text:
A concept implementation of a websocket endpoint

Resolves #25
This pr adds a websocket endpoint for all frameworks.

[x] chi
[x] echo
[x] fiber
[x] gin
[x] gorilla
- [ ] decide on websocket implementation
[x] httpRouter
[x] std lib
[x] Decide on error logging

The current implementation does not have any error handling at all, which is obviously not good. I think either a 5xx should be returned or it should be very clear that errors are not handled at all.
Should I just return a 5xx when some error is encountered?

The current implementation does not have any error handling at all, which is obviously not good. I think returning a 5xx is the best option but it might lead to users not looking at the implementation since it "works" as is.
As this is still a wip I have 2 questions as for the direction of this pr
Should this handler just return a 5xx when any error is encountered?
Should there be a comment about specifically looking at the error handling in this endpoint?
I can see a point for doing both but I'd like your opinion on that too before I keep working on this.

Gorilla/mux has their own websocket implementation which could be used for the generated code.  Something that has to be decided is if gorilla/mux is also going to use a different websocket implementation than the rest. Apart from fiber which also uses it's own implementation, all the other implementations use the same websocket library. I think an argument could be made for keeping the generated code in the same ecosystem as much as possible.
Let me know what you think.

I slept on the error logging decision and I decided that it should not be up to the user to implement the error handling for the generated code. I had some trouble getting the fiber websocket endpoint implementation working yesterday and adding error logging there helped a lot.

Okay I decided to push back the possible gorilla/websocket implementation since this pr has gotten quite big already and I don't want to keep expanding it's scope.

This looks good.
I am going to test it out right now and check out the code.
I will give my opinion on the error handling now too.
But there is also a merge conflict that needs to be resolved

I think all of the points are addressed but I still need to test and format the code properly since I can't do that on this computer.

[ ] run gofmt
[ ] test functionality

We might also want to send a close message to gracefully shutdown the websocket

We might also want to send a close message and gracefully shutdown the websocket.

This sounds like a good idea tbh. If this PR gets accepted I think a new PR for that would be appropriate since this PR is large enough as it is imo.

Oh sorry I forgot to test this at home...

authors: Melkeydev MitchellBerend itschip

repo: Melkeydev/go-blueprint


text:
Why is Melown making so many requests on a low altitude map?

Hello,
I am coming back to Melown and comparing it to other 3D viewers and something that I noted is that melown makes about 1000 requests by default for the "Hello World" example:
https://jsfiddle.net/a5rh6vnh/2/
Looking at the Network panel, it looks like Melown loads ALL the tile pyramid from Z0 to initial zoom. So it requesting all the antarctica tiles (imagery and terrain) for some reasons that I can't understand
I noticed that Cesium and iTowns have the same behaviour, so there must be a technical reason behind this I guess ....
Can you give me an explanation as to why it doesn't just load the necessary levels?
Thanks,
Fabien

Hello Fabien,
you are right. In the default load mode vts-browser loads  all the tile pyramid from Z0 to initial zoom. Reason why industry uses this approach is that this way you always have something loaded no mater where you move, jump, fly, ... from initial position, so something is always visible and you don't loose context. Drawback of this solution is that you load more tiles that is needed for displaying specific position in the map.
Good news is that vts-browser also supports different load mode.  All you need to do is set following browser option:
mapLoadMode: "fit"
This mode loads only tiles which are needed. In places where tiles are not yet loaded is displayed grid. You ca try it in following example:
https://jsfiddle.net/ufzpe6jm/

Thanks a lot for your answer, that's exactly the setting I needed, the map loads really fast that way and zooming out/panning still loads the necessary tiles on demand, amazing :)

source: gharchive/issue

authors: DavidLevinsky fnicollet

repo: Melown/vts-browser-js

license_type: permissive

license_source: bigquery


text:
Do not send multiple concurrent refresh token requests

When we send a request to the api, if a 401 is received we ask the auth flow object to refresh it's token before resending the original request.
If we send 5 concurrent requests (for example) that would mean that we might end up sending 5 concurrent refresh token requests.
This PR changes the refresh mechanism to store the first refresh promise on the auth flow object.  Any subsequent token refresh will resolve on this cached promise until it itself resolves, after which the cached promise is removed.

LGTM

source: gharchive/pull-request

authors: achingbrain codename-

repo: Mendeley/mendeley-javascript-sdk


text:
How were the users chosen?

I see that there are 876,145 total users in the dataset, but goodreads has 90 million users (as of july 2019). I was wondering how were those 876,145 users selected. Was there a minimum number of ratings?

Hi Santosh, the users in these dataset are those who in the top 1000 book clubs (https://www.goodreads.com/group) back to early 2017 & chose to public their book shelves - so they are just a subset of the Goodreads community.

Are there any plans for an entire goodreads user review dataset?
I started a script here, but it needs some work
https://colab.research.google.com/drive/1uOyVlKaT4QFtce9yQpKj9hRtj5z8Uyta
It downloads reviews directly from rss feeds.

authors: MengtingWan Santosh-Gupta

repo: MengtingWan/goodreads

license_source: github-api


text:
[Bug Report] Stone Soup

What is the issue you are having?
As soon as people puts down the new Raid Feast, Stone Soup, I get this error
What is the expected behavior?
Not giving me an error?
What actually happened?
.
Suggested Solution/Workaround
No response
Errors
31x ...ilisUI\Mainline\Modules\Skins\FrameXML\UIWidgets.lua:37: Attempt to access forbidden object from code tainted by an AddOn
[string "=[C]"]: in function `SetAlpha'
[string "@ElvUI_MerathilisUI\Mainline\Modules\Skins\FrameXML\UIWidgets.lua"]:37: in function <...ilisUI\Mainline\Modules\Skins\FrameXML\UIWidgets.lua:34>
[string "@ElvUI_MerathilisUI\Mainline\Modules\Skins\FrameXML\UIWidgets.lua"]:145: in function <...ilisUI\Mainline\Modules\Skins\FrameXML\UIWidgets.lua:144>
[string "=[C]"]: in function `Setup'
[string "@Blizzard_UIWidgets\Blizzard_UIWidgetManager.lua"]:459: in function `ProcessWidget'
[string "@Blizzard_UIWidgets\Blizzard_UIWidgetManager.lua"]:495: in function `ProcessAllWidgets'
[string "@Blizzard_UIWidgets\Blizzard_UIWidgetManager.lua"]:227: in function `RegisterForWidgetSet'
[string "@FrameXML\CompactUnitFrame.lua"]:1131: in function `CompactUnitFrame_UpdateWidgetSet'
[string "@FrameXML\CompactUnitFrame.lua"]:329: in function `CompactUnitFrame_UpdateAll'
[string "@FrameXML\CompactUnitFrame.lua"]:182: in function `CompactUnitFrame_SetUnit'
[string "@Blizzard_NamePlates\Blizzard_NamePlates.lua"]:417: in function `OnAdded'
[string "@Blizzard_NamePlates\Blizzard_NamePlates.lua"]:118: in function `OnNamePlateAdded'
[string "@Blizzard_NamePlates\Blizzard_NamePlates.lua"]:56: in function <...eBlizzard_NamePlates\Blizzard_NamePlates.lua:47>

Locals:
(*temporary) = <unnamed> {
 0 = <userdata>
}
(*temporary) = 0

ElvUI Changelog/Troubleshooting

[X] I have confirmed that I have read the Changelog and done the Troubleshooting Steps.

I'll have to do that tonight as I'm about to go for work in an hour :)
As for the version; I'm using v. 4.90, which I believe is the current version? I always look for updates before each raid night, and this bug was happening Monday night during raid.
I do believe it's the actual nameplate/progress bar above the Stone Soup which is giving me the above error.

I'll have to do that tonight as I'm about to go for work in an hour :) As for the version; I'm using v. 4.90, which I believe is the current version? I always look for updates before each raid night, and this bug was happening Monday night during raid. I do believe it's the actual nameplate/progress bar above the Stone Soup which is giving me the above error.

The error you are getting mention line 37 on my UIWidget.lua file... there are no line 37 in this file :>

Try now version 4.92

A fix for this should be now in ElvUI itself.

Hey, sorry for the (really) late reply.
At first, I found out that BugGrabber/BugSack was some part of the problem. As soon as I disabled them, the error stopped coming.. Weird, right?
I just tested it now, with the update from ElvUI and Merathilis, and with BugGrabber/BugSack enabled, and no error has yet to occur.

license: MIT


text:
win11 tun模式可能会选中例如Zerotier的其他接口，导致无法上网

如题，tun模式在启动时可能会选中例如Zerotier的其他虚拟网卡，导致无法上网

@Rashhz 先手动指定适配器凑活着用?

主要我经常切换网卡使用（校园网太卡了，晚上得开热点玩），比较希望meta能精准识别能上网的网卡

加个分组测试interface延迟自动选择？

这个要怎么写，interface也可以测延迟吗？有示例配置嘛

name: en0DIRECT
type: select
interface-name: en0  # 网卡2名称
proxies:

DIRECT

然后测这个分组延迟就行了。

fix in https://github.com/MetaCubeX/Clash.Meta/commit/94a765ee314044cff635629500991672a2a17f56

authors: Rashhz hdchieh wwqgtxx


text:
fix state conversion rate issue

per this thread I think we've got a pretty nasty papercut here:
https://user-images.githubusercontent.com/34557516/118033916-fa0dad80-b32e-11eb-8d26-9a23ade51140.mov
Partially fixes: extension issue #9492
When we fetch invalid conversion rates either because the user hasn't entered a ticker symbol or the symbol ticker is not recognized by the API we use for conversions, we are currently throwing an error and leaving a stale conversion rate in state. This PR changes this failed fetch condition to result in a null conversion rate. This extension repo PR (WIP -> unit tests), deals with the ramifications of potentially null conversion rates.

@brad-decker and @Gudahtt should this be PR be set again a v8.0.0 branch?

I think develop is pretty close to ready - maybe within a day or two. Plus we'll want this change on develop anyway.
It might be best to target develop for now, and backport if necessary?

One way to preserve the error information would be to leave the parsing logic as-is

Yeah this makes sense! I'll take a stab at your recommendation and ping you when I've pushed! Thanks @Gudahtt

@Gudahtt I think I may have an issue with my sequencing and try/catch/finally logic. I'm just trying to make sure that the currencyRate state is updated no matter what and that the right errors still make it through. Let me know what you think? and if you're free to jump on a call and take a look together that would be great.

@Gudahtt I banged my head against the desk for a bit here trying to figure out how to get full test coverage... Not sure why it won't count both conditional branches on this line in my tests? Do you know where I'm going wrong here?

There's an HTML coverage report generated when you run yarn test locally that makes it a lot easier to spot gaps in coverage. You can find it in coverage/lcov-report/index.html.

There's an HTML coverage report generated when you run yarn test locally that makes it a lot easier to spot gaps in >coverage. You can find it in coverage/lcov-report/index.html.

Thanks for the tip!

repo: MetaMask/controllers


text:
fix(transaction-controller): Return global ethQuery when !isMultichainEnabled

Explanation
There is a test stating that "MultichainTrackingHelper.getEthQuery should always return ethQuery for global provider when !isMultichainEnabled`".
It was not, but the test was passing anyway due to the mock being hardcoded to do so. This fixes that.
Also refactors tests to actually test for it (separately in #4391).

(Aside: I'm not sure why there even is a distinction between "global provider" and "chain-specific providers" in the first place - seems like there should never be a reason for both to exist simultaneously?)
References
Related

#4391

Blocking

#4359
#4327
#4329

Changelog
@metamask/transaction-controller

FIXED: MultichainTrackingHelper.getEthQuery now returns global ethQuery with

Checklist

[ ] I've updated the test suite for new or updated code as appropriate
[ ] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
[ ] I've highlighted breaking changes using the "BREAKING" category above as appropriate

Also refactors tests to actually test for it (separately in https://github.com/MetaMask/core/pull/4391).

Hi @legobeat, I couldn’t find the test for !this.#isMultichainEnabled in #4391. It’s usually clearer to include tests in the same PR, especially for future reference.

authors: dbrans legobeat

repo: MetaMask/core


text:
Rename initProvider to initializeProvider

This is purely cosmetic. Renames all strings and files named "initProvider" to "initializeProvider".
Down with useless contractions.

CI passes: https://app.circleci.com/pipelines/github/MetaMask/inpage-provider/371/workflows/a4c9d538-7207-42c1-abe7-2c468ccbc287

repo: MetaMask/inpage-provider


text:
Closed questions don't show the aggregate in AI Benchmarking

Current behavior
The CP is not shown on the question below, even though it is closed.

https://www.metaculus.com/questions/29010/on-october-31-2024-will-nvidias-market-capitalization-be-larger-than-apples/

@SylvainChevalier It would be great to have this in a couple days, since right now it is hard to see what the bots are forecasting. But, it definitely can wait a day.

@lsabor I believe this is a backend-related issue. For every question except this one, the aggregation field is empty. The same issue persisted in the previous AI tournament  as well. Can you take a look?

Ahhh, it's a rather easy fix and it's on me. I didn't add the include_bots_in_aggregates flag into building the aggregations, so it just thinks that there are no forecasts at all. I'll fix it ASAP

closed as complete

authors: Tommetaculus lsabor ncarazon

repo: Metaculus/metaculus


text:
Recently followed artists on homepage and mock deactivation

The recently followed artists are now shown on the homepage. The SummaryService's mock is deactivated and the number of followers added to the community's favorite artists.
It might be good to activate the mock also for the "default" profile, as we probably won't have that much content locally so the homepage looks quite barren. What do you think?

 Endpoint for start page infos

It might be good to activate the mock also for the "default" profile, as we probably won't have that much content locally so the homepage looks quite barren. What do you think?

But then we can only test it properly on Preview. With the default profile I would like to have the real behaviour.

But then we can only test it properly on Preview. With the default profile I would like to have the real behaviour.
Yeah sounds sensible, so maybe you should add some default data at some point.

But then we can only test it properly on Preview. With the default profile I would like to have the real behaviour.

Yeah sounds sensible, so maybe you should add some default data at some point.

Yeah sounds sensible, so maybe you should add some default data at some point ;)

repo: MetalDetectorRocks/metal-detector-main


text:
latest meteor

does not work with the latest meteor version

Should all be fixed by now and it should all run fine with the latest simpl-schema

I am closing this issue, feel free to reopen if the issue persist or you re-encounter the issue.

authors: interfaith jankapunkt


text:
Parse exception on service definition with whitespace

I ran glint_ros on a set of ROS1 packages and got the following error.
Traceback (most recent call last):
  File "/usr/local/bin/glint_ros", line 8, in <module>
    sys.exit(main())
  File "/home/user/.local/lib/python3.8/site-packages/ros_glint/main.py", line 123, in main
    pkgs = list(find_packages(args.folder))
  File "/usr/local/lib/python3.8/dist-packages/ros_introspect/package.py", line 270, in find_packages
    yield Package(package_root)
  File "/usr/local/lib/python3.8/dist-packages/ros_introspect/package.py", line 151, in __init__
    self.add_file(infer_package_file(root / subpath, self))
  File "/usr/local/lib/python3.8/dist-packages/ros_introspect/package.py", line 129, in infer_package_file
    return subtype(path, package)
  File "/usr/local/lib/python3.8/dist-packages/ros_introspect/components/ros_interface.py", line 89, in __init__
    self.sections[-1].add_line(line)
  File "/usr/local/lib/python3.8/dist-packages/ros_introspect/components/ros_interface.py", line 69, in add_line
    raise Exception('Unable to parse interface line: ' + repr(line))  # pragma: no cover
Exception: Unable to parse interface line: '--- '

When I ran grep -r -e "--- " in the same directory, I found that it was erroring out because of a trailing white space in a .srv file's request - response divider --- .
The error message could probably be improved / fixed as it's not part of the linting output.

This doesn't seem to be fixed yet. pip3 show ros_introspect --> Version: 0.2.2
I'm getting the exact same error.
Stepts to repro:
catkin_create_pkg test_pkg
mkdir -p test_pkg/srv
echo "--- " > test_pkg/srv/test.srv
glint_ros

I fixed the bug properly, but I did the release badly. Following your steps ros_introspect v0.2.3 works.

authors: Achllle DLu


text:
form validation capitalize

Hi, i trying live demo of form validation.
When i try test@test.com it gives 'This email is already in use!'
but when using Test@test.com it passed.

Hi, @fzone
Thank you for report.
Well, in the case of ajax validation everything depends on how server process the data and it is not Bunny Validation's problem.
In demo I use very simple plain PHP script to compare GET param with direct hardcoded string and because of that it failed since two strings wasn't equal. In real app on backend you will use any framework or ORM and usually won't have this problem.
Anyway I updated that PHP script on demo so it now ignores case.
Thanks again, let me know if you will have any other feedback, ideas or proposals.

authors: Mevrael fzone

repo: Mevrael/bunny

license: mit


text:
Add way to create and modify groups through UI

Group tag are already present in the application as they are understood if added from the code editor they will appear normaly but they have huge limitations.

You can't create a tag directly inside you need to add the tag and then move it inside
Group parameters that applies on all element inside are editable but as they are not recognised they all default to string instead of having editor adapted to the value
You can't add new group parameter
Handles for element inside groups are not shown.

Duplicate of https://github.com/MewPurPur/GodSVG/issues/434

Sorry searched for group but didn't think of searching for the tag itself.

authors: MewPurPur ajreckof

repo: MewPurPur/GodSVG


text:
sops-install-secrets: add mount options for darwin

On macOS, secretfs sometimes appears on the desktop, which is a bit troublesome for me. Mounting with the nobrowse option should avoid this issue.
The other mounting options were derived from already commented code. If there are any issues, please let me know.

@mergify queue


text:
magicmirror2 'does' work on the old model-B pi

Just wanted to comment that you 'can' get MagicMirror2 working pretty simply on the original model-B  if you use the version of node from http://node-arm.herokuapp.com
I used the wget method to download it and dpkg to install it.  The resulting 'npm install' per your instructions took a 'long' time, but completed fine.
I'm running Raspbian 2016-05-27 just as a point of reference.

Does Electron run as well?

how could I tell ?
I'm running serveronly but can hook it up to a monitor if you need me to
check it that way...
On Mon, Jun 6, 2016 at 3:32 AM, Michael Teeuw notifications@github.com
wrote:

Does Electron run as well?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MichMich/MagicMirror/issues/354#issuecomment-223923200,
or mute the thread
https://github.com/notifications/unsubscribe/AAk2KnStW79Siv0lNc-T0WZLQtXIXzZuks5qI_dZgaJpZM4IudjO
.

--
-----  vinceskahan@gmail.com ----

Go to your pi ip address with Web browser with.
:8080

At the end so it looks like xx.x.x.xx:8080

Server only was never a problem wasn't it?

I suspect you'll have issues with Electron on an rpi-modelB, but till you hook up a monitor and try (re)starting it, there's no telling.
@jtyle6, going to the address like that does not actually do anything as you're using a completely different browser to do that. Electron runs on the rpi itself and is visible on a monitor connected to it.

Does not work on a B and B+ this is the same image as Pi 3.
node serveronly                                                      132 ↵
[1]    1381 illegal hardware instruction  node server only

@KirAsh4 fixed the ip.

Do you have display issues running this on your B+? I have exactly the issue mentioned here:
https://forum.magicmirror.builders/topic/80/chromium-rpi-1-display-strange
where the newsfeed and compliments won't go to the bottom. Unfortunately I'm not very skilled at CSS so I can't see the problem.

Hello, i'm french i try to install the mirror 2 but i have more problems !!!
HELP PLEASE
npm ERR! Linux 4.4.11-v7+
npm ERR! argv "/usr/local/bin/node" "/usr/bin/npm" "start"
npm ERR! node v4.2.1
npm ERR! npm  v3.10.3
npm ERR! path /home/fablab/package.json
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open '/home/fablab/package.json'
npm ERR! enoent ENOENT: no such file or directory, open '/home/fablab/package.json'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! Please include the following file with any support request:
npm ERR!     /home/fablab/npm-debug.log

repo: MichMich/MagicMirror


text:
Add a way to view a specific room’s reservations over a large period of time

Is your feature request related to a problem? Please describe.
To do this currently, you would need to go through the entire list, which is tedious and boring.
Describe the solution you'd like
I would imagine a popup or even a dedicated page for this would be appropriate. We could borrow a lot of the code from the reservation view page and show it in a big grid with days as the rows and hours as the column.
Describe alternatives you've considered
Another implementation idea would be to show it like the schedule view, where we simply list out all events that are happening in that room in a schedule view type thing. Compared to above soln, Pros: Save space if there are big gaps between events, Cons: Can't visually see how much free time there is
Additional context
Feature submitted by James Y through the feedback form.

Will be resolved by #484


text:
Extend with Var

We got this
LOCAL [IntegrationEvent] OnAfterUpdateDocumentFields(IncomingDocument : Record "Incoming Document";DocExists : Boolean)
But we need also With Var
LOCAL [IntegrationEvent] OnAfterUpdateDocumentFields(Var IncomingDocument : Record "Incoming Document"; Var DocExists : Boolean)

You should post the request here: https://github.com/Microsoft/ALAppExtensions

repo: Microsoft/AL


text:
Is TextBlock weight useful with markdown?

It seems redundant, and I've noticed a few partners who are making cards just use markdown to bold the text block. They didn't even realize (or care) we had a weight property.

Fair point, closing

repo: Microsoft/AdaptiveCards


text:
ApplicationInsightsTraceListener & internal TelemetryClient

Hi,
Using the tracelistener with application insights it does not allow custom properties since it using a internal TelemetryClient to which we do not have access to. Is this something being looked at?

This question is similar to this: #21
You can add TelemetryInitializer to modify telemetry items.

Hi @abaranch
Thanks for your quick response! Note to self: search closed messages :smile: I will have a look at those initializers.

authors: abaranch funkycoding


text:
can not use gcc compiler

i have installed gcc in bash with apt-get install gcc
i want to use it in codeblocks can i use it?
can not find gcc in code blocks

Hi @hishamwaleed -- Thanks for posting, this sounds like an interesting use case.  But I'm not sure that the WSL bugtracker is the best place to ask about codeblocks features?  You might want to ask the codeblocks folks.
I would guess that they would say that codeblocks will recognize the Linux version of gcc if you also use the Linux version of codeblocks.  Note that graphical applications aren't officially supported, though; you'll need to do a little more setup to get them working.

Note: for now the WSL and Windows programs can't interact much.

thank you

Closing this thread out.

authors: aseering benhillis hishamwaleed xilun

repo: Microsoft/BashOnWindows


text:
When uninstalling, %LOCALAPPDATA%\lxss, Error: The system cannot find the file specified.

Brief description

Following the uninstall instructions at:
https://msdn.microsoft.com/en-us/commandline/wsl/faq#how-do-i-fully-uninstall-wsl
The third step is to remove the WSL app data fails
rmdir /S %LOCALAPPDATA%\lxss

I tried this both from a standard console and a console running as administrator; same result.

Expected results

I did not expect this to work as the %LOCALAPPDATA%\lxss directory is no longer accessible but wanted to document it so

The instructions are updated
That others can see that it is not something they did
That there is a documented answer to what happened to %LOCALAPPDATA%\lxss

Actual results (with terminal output if applicable)
C:>rmdir /S %LOCALAPPDATA%\lxss
C:\Users\Eric\AppData\Local\lxss, Are you sure (Y/N)? Y
The system cannot find the file specified.

Your Windows build number

Edition: Windows 10 Pro
Version: 1607
OS Build: 14393.10
System type: 64-bit operating system, x64-based processor

Steps / commands required to reproduce the error
rmdir /S %LOCALAPPDATA%\lxss

Thanks for calling out that the FAQ needs to be updated.  There were some issues with much older Insider builds where the lxrun /uninstall /full command was not deleting the directory.  Now the the bug has been fixed I'll need to update the link.

You people are awesome.  Keep up the good work.

authors: EricGT russalex


text:
GetTokenDialog responding with retryMessage error after a period of running the bot

Issue
We are using GetTokenDialog for authentication of the user. This is working fine but intermittently we see that bot responds only with the retryMessage that is part of the GetTokenDialog. We have to restart the Bot App Service, then this will start working fine. We donot have any stack trace as only response we get from bot is this retryMessage from GetTokenDialog.
Proposed change
Describe the proposed solution
Component Impact
Though users are authenticated with the bot, GetLoginDialog is throwing retry message which is blocking all the users of the bot.
Customer Impact
Users are not able to chat with our bot.

HI @EricDahlvang @carlosscastro ,
We deployed the changes with 3.19.1.44133 update and the auth issue still came up day before yesterday.
is there any way to capture logs for this or any other changes that we can try?
Thanks

Hi @srungta
Please share the following, so we can investigate from our side:
MicrosoftAppId
BotHandle
UTC time of exception
ConversationId related to exception

Have you configured Application Insights for the bot and for the Web Application hosting the bot?
Bot: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-manage-analytics?view=azure-bot-service-4.0#enable-analytics
Web Application: https://docs.microsoft.com/en-us/azure/application-insights/app-insights-asp-net
This will provide a significant amount of telemetry and diagnostic information related to exceptions and dependency call failures.

Please find the details below:
MicrosoftAppId : 73d715b9-2724-4703-9790-651d954b0e2a
BotHandle : ConnectMe Support Helpdesk Bot
UTC time of exception : mentioned next to conversation id
ConversationId related to exception : A few conversationids related to this

DIRX8wOnBfP4s248ll04bA-g [9:42 PM 25th Feb 2019]
I31RwEwBM3vBYOJbCW6bXA-g [9:41 PM 25th Feb 2019]
B0tJUkcC93AB680Qu5z4Gf-g  [9:36 PM 25th Feb 2019]

If you need any more info around this. Do let me know.

Have you configured Application Insights for the bot and for the Web Application hosting the bot?
Bot: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-manage-analytics?view=azure-bot-service-4.0#enable-analytics
Web Application: https://docs.microsoft.com/en-us/azure/application-insights/app-insights-asp-net
Also, which channel are you seeing these errors on?

Also, please provide the Bot Handle (i think you've provided the description or display name).

Hi Eric,
Bot Handle: connect-me-prod-bot is the bot handle.

From: Eric Dahlvang notifications@github.com
Sent: Wednesday, February 27, 2019 4:32 AM
To: Microsoft/BotBuilder-V3
Cc: venkatesh-bhupathi; Mention
Subject: Re: [Microsoft/BotBuilder-V3] GetTokenDialog responding with retryMessage error after a period of running the bot (#108)
Also, please provide the Bot Handle (i think you've provided the description or display name).
[image]https://user-images.githubusercontent.com/11055362/53452737-05d35a80-39d7-11e9-959e-2c54134b1aaa.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/BotBuilder-V3/issues/108#issuecomment-467651169, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFqcaql7IHmlAjJAZxCMPMo74-z2iMK5ks5vRbz9gaJpZM4Z9cnT.

@venkatesh-bhupathi
Have you configured Application Insights for this bot and for the Web Application hosting the bot?
Bot: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-manage-analytics?view=azure-bot-service-4.0#enable-analytics
Web Application: https://docs.microsoft.com/en-us/azure/application-insights/app-insights-asp-net
Also, please share the code for how you are using the GetTokenDialog.  If you cannot share here, please email me at the address on my profile: https://github.com/EricDahlvang

Closing this issue.  If you still require assistance with this, please contact me on the address on my profile, or in Teams.

authors: EricDahlvang srungta venkatesh-bhupathi


text:
Include SDK version identifier in User-Agent header on all calls to LUIS APIs

Is your feature request related to a problem? Please describe.
Today, we do not have any view into LUIS traffic that are driven by botbuilder. LUIS service instruments all calls to the service and can report on User-Agent to identify the specific client.
Describe the solution you'd like
On all calls to LUIS service, include User-Agent header with the following value -
botbuilder/v3-sdk/csharp/major.minor.patch.build
botbuilder/v3-sdk/js/major.minor.patch.build
[enhancement]
[dotnet]

https://github.com/Microsoft/botbuilder-dotnet/blob/master/doc/UserAgents.md

Eric, I'm very much aware of the user agent doc. This issue will help us instrument bot builder calls on the LUIS service side and can provide usage across SDK, CLI tools and emulator.

@vishwacsena I was planning on implementing this in BotBuilder v3, and just added the link to UserAgents spec so I can refer to it when I get to this. :)

@EricDahlvang, please coordinate the change with those being done by @yshahin and @Zerryth

Closed the PR (format was a hack).
@johnataylor will provide a new format for the user-agent string.

Fix checked in & merged into master.

authors: CoHealer EricDahlvang vishwacsena


text:
[Question] Incorrect conversation creation parameters (CreateConversationAsync)

System Information (Required)

SDK Language: C#
SDK Version: Microsoft.Bot.Connector.Teams (0.5.6), Microsoft.Bot.Builder.Azure (3.2.2)
Development Environment: Azure App Service

Issue Description
I am getting the following error from the CreateConversationAsync:
Incorrect conversation creation parameters

The documentation says that the teamsChannelId and teamsTeamId parameters are obsolete, so I am using channel, team and tenant objects in the channelData object.
The workaround mentioned in #3061 didn't work for me, I have tried various combinations of parameters.
Code Example
            var channelData = new TeamsChannelData
            {
                Channel = new ChannelInfo(subscription.ChannelId),
                Team = new TeamInfo(subscription.TeamId),
                Tenant = new TenantInfo(subscription.TenantId)
            };

            var newMessage = Activity.CreateMessageActivity();
            newMessage.Type = ActivityTypes.Message;
            newMessage.Text = message.ToString();    // about 600 characters
            var conversationParams = new ConversationParameters(
                isGroup: true,
                bot: null,
                members: null,
                topicName: date.ToString("d. M. yyyy"),
                activity: (Activity)newMessage,
                channelData: channelData);

            var connector = new ConnectorClient(new Uri(subscription.ServiceUrl));
            var result = await connector.Conversations.CreateConversationAsync(conversationParams);

Can you advise what are the conditions for the Incorrect conversation creation parameters error?

During my last tests 2 weeks ago, I couldn't create a conversation on MS Teams using the classic CreateConversationAsync of the framework but got to use a method from Microsoft.Bot.Connector.Teams, called CreateOrGetDirectConversation
The following code works to create a conversation:
// Connector init
MicrosoftAppCredentials.TrustServiceUrl(connectorClientUrl, DateTime.Now.AddDays(7));
var account = new MicrosoftAppCredentials(msAppId, msAppPassword);
var connector = new ConnectorClient(new Uri(connectorClientUrl), account);

// Conversation members init
ChannelAccount channelFrom = new ChannelAccount(fromId, fromName);
ChannelAccount channelTo = new ChannelAccount(recipientId, recipientName);

// Create Conversation
// Tenant ID can be found on https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Properties
ConversationResourceResponse conversation = connector.Conversations.CreateOrGetDirectConversation(channelFrom, channelTo, myTenantID);

Then you can send a message to this conversation:
// Create message Activity and send it to Conversation
IMessageActivity newMessage = Activity.CreateMessageActivity();
newMessage.Type = ActivityTypes.Message;
newMessage.From = channelFrom;
newMessage.Recipient = channelTo;

newMessage.Locale = (locale ?? "fr-FR");
newMessage.ChannelId = channelId;
newMessage.Conversation = new ConversationAccount(id: conversation.Id);
newMessage.Text = message;

// Send 1st message to the conversation
var resp = await connector.Conversations.SendToConversationAsync((Activity)newMessage);

Thank you. I don't know whether the CreateOrGetDirectConversation can be used when you need to post to a specific channel, but I got my code working by adding this:
MicrosoftAppCredentials.TrustServiceUrl(serviceUrl, DateTime.MaxValue);

Also, I have specified the app id and password in the constructor of ConnectorClient explicitly but I believe I don't have to as they are fetched from the configuration automatically.

If you look at my code you will see that it's using a variable providing the channel yes.
Finally you didn't use it? Looks like what was missing in my old implementation is the channelData containing the tenantId in that case, thanks.

authors: nrobert tomasherceg

repo: Microsoft/BotBuilder


text:
[QnA Maker] Invoking API through code returns Bad request error.

Bot Info

SDK Platform: .NET
Active Channels: Cortana, MS Teams, Email, Direct Line
Deployment Environment:  Azure App Service

Issue Description
unable to update qna maker to add/delete new qna pairs through code.
Code Example
var client = new RestClient(uri);
client.AddDefaultHeader("Ocp-Apim-Subscription-Key", KBSubscriptionKey);
var request = new RestRequest(Method.PATCH);
request.AddHeader("Content-Type", "application/json");
request.AddBody(postBody);
response = client.Execute(request);
Expected Behavior
the Qna maker should get updated with the new qna makers sent in the body of the request
Actual Results
Qna maker doesn't get updated and returns an error of bad request.

Is your postBody serialized as .json?  The QnAMaker service is serializing the body here: https://github.com/Microsoft/BotBuilder-CognitiveServices/blob/master/CSharp/Library/QnAMaker/QnAMaker/QnAMakerService/QnAMakerService.cs#L169

I'm facing the same issue.

Hi rajendrasolleti, are you able to fetch or generate the answer successfully or are you getting the same error there?

Closing due to no response.


text:
[Skype for Business] Abnormally continuing numbering from two different text groups

The Microsoft Bot Framework team prefers that "How To" questions be submitted on Stack Overflow. The official Bot Framework GitHub repository  is the preferred platform for submitting bug fixes and feature requests.
Bot Info

SDK Platform:  .NET
SDK Version:  Not Sure
Active Channels:  Skype For Business
Deployment Environment:  Skype for Business

Issue Description

Skype for Business continuing the numbering from two different set of text.
Code Example

The actual string
Method 1: Using the Report Editor \n1. From your Power BI workspace, select Get Data > Samples > Retail Analysis Sample > Connect.\n2. The dashboard contains an area chart tile for \"Last Year Sales and This Year Sales.\"Select
 this tile.\n' If this tile was created with Q&A, selecting the tile will open Q&A.\n' But this tile was created in a report, so the report opens to the page that contains this visualization.\n3. Open the report in Editing View by selecting Edit Report. If
 you are not an owner of a report, you will not have the option to open the report in Editing view.\n4. Select the area chart and review the settings in the Fields pane. The report creator built this chart by selecting these 3 values (Time > FiscalMonth, Sales
 > This Year Sales, Sales >Last Year Sales >Value) and organizing them in the Axis and Valueswells.\n\nMethod 2: Using Q & A\n1. Navigate back to the Retail Analysis Sample dashboard.\n2. Using natural language, type something like this into the question box:\nwhat
 were this year sales and last year sales by month as area chart\nAs you type your question, Q&A picks the best visualization to display your answer; and the visualization changes dynamically as you modify the question. Also, Q&A helps you format your question
 with suggestions, auto-complete, and spelling corrections.\nWhen you finish typing your question, the result is the exact same chart that we saw in the report. But creating it this way was much faster!\n3. Similar to working with reports, within Q&A you have
 access to the Visualizations, Filters and Fields panes. Open these panes to further explore and modify your visual.\n4. To pin the chart to your dashboard, select the pin icon.

Expected Behavior

Taken from other channel but want to make it look like this

Actual Results

Hi @joemar53
Which Skype for Business client are you using?
Note: Skype for Business bots are currently in preview.  Edge case issues like this are currently not a high priority for their team.  I've labeled this as a bug, but it is not likely to be addressed soon (see https://github.com/Microsoft/BotBuilder/issues/3808 for reference).
Something you could do as a workaround is to just send two separate messages if the channel is Skype for Business.

Thank you for opening an issue against the Bot Framework SDK v3. As part of the Bot Framework v4 release, we’ve moved all v3 work to a new repo located at https://github.com/microsoft/botbuilder-v3. We will continue to support and offer maintenance updates to v3 via this new repo.
From now on, https://github.com/microsoft/botbuilder repo will be used as hub, with pointers to all the different SDK languages, tools and samples repos.
As part of this restructuring, we are closing all tickets in this repo.
For defects or feature requests, please create a new issue in the new Bot Framework v3 repo found here:
https://github.com/microsoft/botbuilder-v3/issues
For Azure Bot Service Channel specific defects or feature requests (e.g. Facebook, Twilio, Teams, Slack, etc.), please create a new issue in the new Bot Framework Channel repo found here:
https://github.com/microsoft/botframework-services/issues
For product behavior, how-to, or general understanding questions, please use Stackoverflow.
https://stackoverflow.com/search?q=bot+framework
Thank you.
The Bot Framework Team

authors: EricDahlvang joemar53 johnataylor


text:
CustomEvent ES2015 Subclass

ES2015 CustomEvent subclass doesn't show newly defined properties.
class MyCustomEvent extends CustomEvent{
       constructor(args){
           super('myohmy', { detail: args });
       }

       // this property doesn't show up while debugging a MyCustomEvent instance
       get foo(){
            return this.detail.foo;
       }

}

Can confirm behavior difference in Edge 40 and Chrome 47.
class MyCustomEvent extends CustomEvent{
       constructor(args){
           super('myohmy', { detail: args });
       }

       get foo(){
            return this.detail.foo;
       }
}

var e = new MyCustomEvent({foo: 'helloworld'});
e.foo; // F12- undefined; DevTools- helloworld

However a sanity check on subclassing and getters without CustomEvent turns out fine, so I would say this is likely an CustomEvent issue in Edge and recommend filing it on https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/.
class x {
  constructor(y, z) {
    this.type = y;
    for (let prop in z) {
      if (z.hasOwnProperty(prop)) {
        this[prop] = z[prop];
      }
    }
  }
}

class MyCustomEvent extends x{
       constructor(args){
           super('myohmy', { detail: args });
       }

       get foo(){
            return this.detail.foo;
       }
}

var e = new MyCustomEvent({foo: 'helloworld'});
e.foo; // F12- helloworld; DevTools- helloworld

Looks like this one has been opened as an Edge bug here: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12081372/

😄 Yes, it's (aka) me...

Closing as this is not a ChakraCore issue.

authors: beauceant curtisman dilijev liminzhu

repo: Microsoft/ChakraCore


text:
OS#13894912 WASM: Yielding in unreachable code

Allow the eval stack to be empty when yielding values in Unreachable state.

This change is

ping

ping

    EmitInfo retExprInfo = explicitRetInfo ? *explicitRetInfo : PopEvalStack();

I believe this also needs to be changed

Refers to: lib/WasmReader/WasmByteCodeGenerator.cpp:1376 in 4987bb4. [](commit_id = 4987bb48f604a002daaa2fd79dbcfe291b09b8f1, deletion_comment = False)

I believe this also needs to be changed

I don't think we should change it. Since return is an explicit operator, I believe it needs to always have a value to pop. I think the rule applies only to implicit pop (ie yields)

@MikeHolman Can you take a look at the last fix ?

authors: Cellule MikeHolman


text:
DMF_CONTEXT_GET and DMF_CONFIG_GET issue

So I have written and declared 2 modules: Dmf_HostController and Dmf_UsbDevice
Each Module is based on the Dmf_Template.h/c
I noticed that whenever Dmf_UsbDevice called its DMF_CONTEXT_GET, it would call the DMF_CONTEXT_GET of the Dmf_HostController instead. If I remove the Dmf_HostController from the project the Dmf_UsbDevice calls the correct DMF_CONTEXT_GET.
I looked through DmfModule.h and found DMF_MODULE_DECLARE_CONTEXT.  If I append the static keyword like this:
static __forceinline
DMF_CONTEXT_##ModuleName##*
DMF_CONTEXT_GET(          ...

Then Dmf_UsbDevice calls the correct DMF_CONTEXT_GET.
The same issue arises when calling DMF_CONFIG_GET.
So it seems the compiler inserts the wrong function when calling DMF_CONTEXT_GET and DMF_CONFIG_GET
Kind regards

Hello, Laengand,
Something is wrong. It looks to me like you are passing the wrong DMFMODULE handle to DMF_CONTEXT_GET().
Please note that when a Child Module callback happens, the callback always receives the DMFMODULE of the Child Module, not the Parent Module. This is the same as how WDF works. For example, when a WDFTIMER callback happens, it receives the WDFTIMER of the timer object.
So, the when a callback happens you need to use the following pattern:
VOID Callback(DMFMODULE ChildModule, ...)
{
     DMFMODULE ParentModule;
     DMF_CONTEXT_Parent* moduleContext;
     ParentModule = DMF_GetParentModule(ChildModule);
     moduleContext = DMF_CONTEXT_GET(ParentModule);
     …
}

I am assuming that perhaps you are not getting the Parent Module.
It is invalid to do the following:
VOID Callback(DMFMODULE ChildModule, ...)
{
     DMFMODULE ParentModule;
     DMF_CONTEXT_Parent* moduleContext;
     moduleContext = DMF_CONTEXT_GET(ChildModule);
     …
}

DMF_CONTEXT_GET() is always local and private to the Module. That is why it is declared only in the Module's .c.
Please let me know if that is the cause of your problem. If not, I am happy to look at your code if you want to send me a function where this is happening.
You can also look investigate the DMFMODULE by doing this in the debugger:
!wdfkd.load
!wdfhandle
then look at the associated buffer and do
dt DMF_OBJECT
There you can look at the Module handle data and see the name of the Module (ModuleInstanceName).

Hi
The thing is that I don't have child modules. The Dmf_HostController and Dmf_UsbDevice are completely separate (at least for now).
I've attached a video of the issue and source files for the modules. There's a lot of commented code at the moment.
The video shows the Open function of Dmf_UsbDevice. which is called by its Create function. Stepping into DMF_CONTEXT_GET reveals that the HostController function is called.
2018-12-17_10h22_54_Trim.zip

Hi, laengand,
We are looking at your package.
While looking, I would like to ask a question:
Is there a reason you are creating Dmf_UsbDevice as a Dynamic Module? I think a better approach is that Dmf_UsbDevice is set to DMF_MODULE_OPEN_OPTION_OPEN_PrepareHardware instead of DMF_MODULE_OPEN_OPTION_OPEN_Create. Then, in Dmf_HostController's Create function set ChildModulesAdd() callback. Then, it that callback make Dmf_UsbDevice a Child Module of Dmf_HostController. This way both Modules can support all the WDF callbacks. In this case, you do not call Dmf_UsbDevice_Create() in Dmf_HostController_Open(). All of that will happen automatically and the binding of the Parent/Child Modules is strong.
If you do that, I am sure it will resolve your issue. For an example, please see Dmf_ToasterBus.c to see how it creates Child Modules. See its DMF_ToasterBus_Create() and DMF_ToasterBus_ChildModulesAdd().
Having said that, we are going to investigate the strange behavior your a seeing and get back to you.

Hi
I'll try and elaborate a bit on what i'm trying to achieve with the dynamic modules. The Dmf_UsbDevice is going to be an emulated usb device, by using the UDE. The Dmf_HostController is going to be able to  "attach" one or more of these emulated usb devices on demand. So that's why i thought of using dynamic modules.
I agree that it would make sense to let the Dmf_HostController have child modules in the form of Dmf_UsbDevice, but is it possible to have child modules that are dynamic?
I'll take a look at the toasterbus example.

Hi, laengand,
I saw your video and see that there is an issue. I took your files and I see that the way you are including DMF is not quite correct. I updated the files to include DMF correctly. Then, I instantiated your Dmf_HostController Module and its Dmf_UsbDevice. When I do so, the handle is correct and everything is fine. DMF_MODULE_CONTEXT is correct. You can see it here:
3: kd> !wdfkd.load
3: kd> !wdfhandle 0x000050f4`ba4103a8
Treating handle as a KMDF handle!

Dumping WDFHANDLE 0x000050f4ba4103a8
=============================
Handle type is WDFMEMORY [DMFMODULE_TYPE]
Refcount: 1
Contexts:
    <typeless context>
    EvtCleanupCallback fffff803c22bab00 osrusbfx2dmf4!DmfEvtDynamicModuleCleanupCallback

    context:  dt 0xffffaf0b4bd55bb0 osrusbfx2dmf4!DMF_CONTEXT_UsbDevice (size is 0x40 bytes)
    <no associated attribute callbacks>

    context:  dt 0xffffaf0b44e0e8f0 osrusbfx2dmf4!WdfCustomType_DMFMODULE_TYPE (size is 0x10 bytes)
    <no associated attribute callbacks>

Parent: !wdfhandle 0x000050f4b4b64948, type is WDFDRIVER

!wdfobject 0xffffaf0b45befc50
3: kd> dt 0xffffaf0b4bd55bb0 osrusbfx2dmf4!DMF_CONTEXT_UsbDevice
   +0x000 WdfHostController : (null)
   +0x008 UdeUsbDeviceInit : (null)
   +0x010 UdeUsbDevice     : (null)
   +0x018 ControlEndpoint  : (null)
   +0x020 BulkOutEndpoint  : (null)
   +0x028 BulkInEndpoint   : (null)
   +0x030 InterruptInEndpoint : (null)
   +0x038 IsAwake          : 0 ''
3: kd> p

00 ffffd58a`89416640 fffff803`c22c92c0 osrusbfx2dmf4!DMF_UsbDevice_Open+0xee [c:\users\satertza\source\repos\dmf\dmf\modules.template\dmf_usbdevice.c @ 1046]
01 ffffd58a`89416700 fffff803`c22b9ac6 osrusbfx2dmf4!DMF_Internal_Open+0x170 [c:\users\satertza\source\repos\dmf\dmf\framework\dmfinternal.c @ 1562]
02 ffffd58a`89416780 fffff803`c22f0c73 osrusbfx2dmf4!DMF_Module_OpenOrRegisterNotificationOnCreate+0xa6 [c:\users\satertza\source\repos\dmf\dmf\framework\dmfcall.c @ 2470]
03 ffffd58a`894167d0 fffff803`c22feec8 osrusbfx2dmf4!DMF_ModuleCreate+0x33d3 [c:\users\satertza\source\repos\dmf\dmf\framework\dmfcore.c @ 1174]
04 ffffd58a`89416ba0 fffff803`c22fd96a osrusbfx2dmf4!DMF_UsbDevice_Create+0x2e8 [c:\users\satertza\source\repos\dmf\dmf\modules.template\dmf_usbdevice.c @ 1203]
05 ffffd58a`89416c40 fffff803`c22c92c0 osrusbfx2dmf4!DMF_HostController_Open+0x13a [c:\users\satertza\source\repos\dmf\dmf\modules.template\dmf_hostcontroller.c @ 1124]
06 ffffd58a`89416d60 fffff803`c22ebb4b osrusbfx2dmf4!DMF_Internal_Open+0x170 [c:\users\satertza\source\repos\dmf\dmf\framework\dmfinternal.c @ 1562]
07 ffffd58a`89416de0 fffff803`c22b9c71 osrusbfx2dmf4!DMF_Generic_ModulePrepareHardware+0x19b [c:\users\satertza\source\repos\dmf\dmf\framework\dmfgeneric.c @ 297]
08 ffffd58a`89416e70 fffff803`c22dcf43 osrusbfx2dmf4!DMF_Module_PrepareHardware+0xe1 [c:\users\satertza\source\repos\dmf\dmf\framework\dmfcall.c @ 548]
09 ffffd58a`89416ed0 fffff803`c22e2176 osrusbfx2dmf4!DMF_ModuleCollectionPrepareHardware+0x223 [c:\users\satertza\source\repos\dmf\dmf\framework\dmfmodulecollection.c @ 750]
0a ffffd58a`89416f60 fffff80e`4d9e4a08 osrusbfx2dmf4!DmfContainerEvtDevicePrepareHardware+0xf6 [c:\users\satertza\source\repos\dmf\dmf\framework\dmfcontainer.c @ 109]

The only changes I made were to how the include DMF is included. It is not clear to me yet exactly what is wrong about how you included but I will try to track that down. For now, I have attached the corrected files for you here.
This is how your includes should look (All Module should include files in this way)
Modules.Template.zip
:
Dmf_HostController.c
#include "DmfModule.h"
#include "DmfModules.Template.h"
#include "DmfModules.Template.Trace.h"

#include "Dmf_HostController.tmh"

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Module Private Enumerations and Structures
///////////////////////////////////////////////////////////////////////////////////////////////////////
//
#include <ude/1.0/UdeCx.h>

Dmf_UsbDevice.c
#include "DmfModule.h"
#include "DmfModules.Template.h"
#include "DmfModules.Template.Trace.h"

#include "Dmf_UsbDevice.tmh"

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Module Private Enumerations and Structures
///////////////////////////////////////////////////////////////////////////////////////////////////////
//

#include <ude/1.0/UdeCx.h>

(You can replace "Template" with "Library". I added them to the Template library for the test.) Please do a diff between your files and my files.
I will try to figure out exactly what the issue is and, if possible, I will try to prevent that invalid compilation sequence. Thank you for reporting this issue.

Hi, laendand,
Please see the files in this .zip file (and see the my previous comment):
Modules.Template.zip
This is the correct way to add Modules to a Module Library. In the Client driver you are only supposed to include the Module Library's Module Include file. In my case, it is  DmfModule.Template.h. Note how I have modified Dmf_Template.h and Dmf_Template_Public.h.
That is the only place that Dmf_HostController.h and Dmf_UsbDevice.h should be included. (A single time for both Modules and Client drivers.)
In the Client driver you only need to include the following:
#include <DmfModules.Template.h>
In the Modules, you only should include the following:
#include "DmfModule.h"
#include "DmfModules.Template.h"
#include "DmfModules.Template.Trace.h"
#include "Dmf_HostController.tmh"
(Note: Do not include Trace.h.)
That will fix your issue in the correct way. Having said that, we will at a later time, update the macros DMF_CONTEXT_GET() and DMF_CONFIG_GET() to remove make them static.
One more thing: Note that Modules are agnositic about their parents. It is generally not correct that you DMF_UsbDevice's Parent is DMF_HostController. It seems like you are doing that.
Let me know if you have questions.

Hi, laengand,
I have spent a lot of time looking at this issue and I am unable to repro it exactly.
One thing I want to tell you is:
You are not supposed to include the Module's .h files directly in your driver. The Module's .h file is only supposed to be included in a single place: The Module Library's Include file. Then, your driver is only supposed to include the Module Library's Include file.
So, in my example, I added your Module to Template Library. Then, in the Template's Include file I added your Module include files. Then, in your driver you are only supposed to include Modules.Template.h. Then, I link to Template Library. Note that you are not supposed to add Module directly to your driver. You add them to the Library so that all the dependencies exist (both compile and link) in the Library. Then, you link your driver to that Library.
When I do not include the files as I state above, I see some similar behavior (but not exacty) to what you describe.
I also added "static" as you did and I did not see a difference.

Hi, laengand,
No matter what I do, I am unable to repro this issue. It  is my belief that you are including the Modules directly into your driver which is not correct. I tried doing that also to repro your issue, but I was still unable to do so.
I am going to close this issue with out a fix because I don't want to make a change for the wrong reason.
If you can work with me to help me repro the issue (even if I can see it remotely), I am happy to do so.
Please contact me if you are interested pursuing it further.
To be clear, Modules should be added to a Module Library. Then, the Client driver includes that Library's path in the #include directory and that Module's Library in the Link directory. The include files of every Module should be the same in each Library.
Thank your for brining this issue to our attention. Please contact us again or open this issue again if you wish pursue it further.

Hi again
Thank you for looking into my issue. I'm currently on holiday. I'll look into your suggestions when I get back to work on the Jan. 2.

Hi samtertzakian
I followed your suggestions and it seems to work now.
Heres what i did:

Create a static library project for the module library.
In each module I include the following:
#include "DmfModule.h"
#include "DmfModules.Ude.h"
#include "DmfModules.Ude.Trace.h"
#include "Dmf_<Modulename>.tmh"
Where Ude is the name of the library
Include the modules in this library
In my driver project I link to the Ude library instead of including the modules directly

Doing this removed the need for using the static DMF_CONTEXT_GET and DMF_CONFIG_GET
So I guess that my issue was as you stated : "It is my belief that you are including the Modules directly into your driver which is not correct. "
Thank you for your assistance

authors: laengand samtertzakian

repo: Microsoft/DMF


text:
How to set StencilRef

Is there anyway to set the StencilRef value?
It seems its only possible to set the depth stencil state...

The StencilRef value is part of the pass description:
technique11 RenderSceneWithTexture1Light
{
    pass P0
    {
        SetVertexShader( CompileShader( vs_4_0_level_9_1, RenderSceneVS( 1, true, true ) ) );
        SetGeometryShader( NULL );
        SetPixelShader( CompileShader( ps_4_0_level_9_1, RenderScenePS( true ) ) );

        SetDepthStencilState( EnableDepth, 0 /* StencilRef goes here */ );
    }
}

authors: eclazi walbourn


text:
Add ability to specify DSLR focal length and matrix dimensions

Addressing #169. These additional parameters helped me calibrate my camera rig.

@dimatomp,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by Microsoft. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

I tried using additional flags. This did not lead to a significantly better accuracy in my setup. I added two flags responsible for fixing focal length and principal point respectively - user may turn those options on if they wish to.

authors: dimatomp msftclas

repo: Microsoft/HoloLensCompanionKit


text:
fix RF's bug with MAPE & support RF with multi-class

fix #1579
fix #881

@zhongxurpac and @LucasMaron
can you help to test the RF's result ?
For the dart, I am not sure why it will have this issue, can you provide some re-produce samples ?

result comparison:
gbdt:
>>> X, y = load_boston(True)
>>> params = {
...     'boosting_type': 'gbdt',
...     'objective': 'mape',
...     'verbose': -1,
...     'bagging_freq': 1,
...     'bagging_fraction': 0.8,
...     'feature_fraction': 0.8,
...     'boost_from_average': False,
... }
>>> y_mean = y.mean()
>>> print(y_mean)
22.5328063241
>>> lgb_train = lgb.Dataset(X, y)
>>> evals_result = {}
>>> gbm = lgb.train(params, lgb_train,
...                 num_boost_round=100,
...                 verbose_eval=False,
...                 evals_result=evals_result)
>>> pred = gbm.predict(X)
>>> pred_mean = pred.mean()
>>> print(pred_mean)
21.6314628123

rf
>>> X, y = load_boston(True)
>>> params = {
...     'boosting_type': 'rf',
...     'objective': 'mape',
...     'verbose': -1,
...     'bagging_freq': 1,
...     'bagging_fraction': 0.8,
...     'feature_fraction': 0.8,
...     'boost_from_average': False,
... }
>>> y_mean = y.mean()
>>> print(y_mean)
22.5328063241
>>> lgb_train = lgb.Dataset(X, y)
>>> evals_result = {}
>>> gbm = lgb.train(params, lgb_train,
...                 num_boost_round=100,
...                 verbose_eval=False,
...                 evals_result=evals_result)
>>> pred = gbm.predict(X)
>>> pred_mean = pred.mean()
>>> print(pred_mean)
21.2916233916

dart
>>> X, y = load_boston(True)
>>> params = {
...     'boosting_type': 'dart',
...     'objective': 'mape',
...     'verbose': -1,
...     'bagging_freq': 1,
...     'bagging_fraction': 0.8,
...     'feature_fraction': 0.8,
...     'boost_from_average': False,
... }
>>> y_mean = y.mean()
>>> print(y_mean)
22.5328063241
>>> lgb_train = lgb.Dataset(X, y)
>>> evals_result = {}
>>> gbm = lgb.train(params, lgb_train,
...                 num_boost_round=100,
...                 verbose_eval=False,
...                 evals_result=evals_result)
>>> pred = gbm.predict(X)
>>> pred_mean = pred.mean()
>>> print(pred_mean)
19.1290921058

@guolinke Wow, great news about multiclass RF!
Maybe add your snippet to tests?

@StrikerRUS any other problems?

@guolinke Nope. Sorry, forgot to click "Approve".
Lets wait the response from @zhongxurpac and @LucasMaron

@zhongxurpac @LucasMaron, I will merge this PR first. feel free to reopen the issues if still having problems.

authors: StrikerRUS guolinke

repo: Microsoft/LightGBM


text:
how can i dump the model to the specified directory?

hi ,
I want to save the lightlda model to the specified directory. And i have found the code to dump model

how can i parse the "output model dir" argument to this method when i train lightlda?
Thanks very much!

In current implementation it can't. You may need to make modification to the code.

Thank you for reply,  I found that maybe communicator can parse the config of lightlda to server, but only found "new Server(...)" in MPI version in some condition, am i right ?
How can I parse the config without MPI version to server? hope the reply.

Thank you for reply,  I found that maybe communicator can parse the config of lightlda to server, but only found "new Server(...)" in MPI version in some condition, am i right ?

How can I parse the config from lightlda without MPI version to server? Thank you.

repo: Microsoft/LightLDA


text:
Add a basic webrtc extension (#1)

Add a basic webrtc extension ☎
Source for this extension is derived from https://github.com/bengreenier/webrtc-unity-plugin

Overview
This addresses #3590 by providing a basic extension to encapsulate webrtc a/v/d capabilities on winuwp and win32 platforms. It includes a basic signaling example based on https://github.com/bengreenier/node-dss, an example scene (and prefab containing the actual example object logical layout).
We had some concerns about making sure we do the right thing on the licensing side as well (see original proposal) so we'll need to ensure we've done that work before we take this.
@vladkol this includes the signaling interface as discussed - please let me know if that meets your needs or needs further adjustment.
Changes

Rebased from https://github.com/bengreenier/MixedRealityToolkit-Unity/commits/feature/WebRTC - that individual commit context may be useful for reviewers, unsure.

nit: these are currently tabs, you should convert to spaces in vs by selecting the content, Edit -> Advanced -> Untabify selected lines

Refers to: Assets/MixedRealityToolkit.Extensions/Webrtc/Materials/YUVFeedShader.shader:31 in 0322617. [](commit_id = 032261778f41733fb0bef4c1c1e7c86902c9d228, deletion_comment = False)

As this isn't yet targeted for mrtk_development, this is merely a related tangent, please do point me in the right direction if I should pick this up elsewhere.
Now that I'm seeing it happen, I'm really not a fan of putting any Extensions right into the main MRTK repo. Can we not make a MRTK.WebRTC repo and manage this as a first class extension there? Or just bite the bullet and own this thing without the Extension moniker. Even with it, it'll still be confusing what is and isn't maintained or at what levels. If the code/assets are in the repo, they should be revisioned alongside any breaking MRTK changes or the internal consistency of the repo as a whole is broken.
The Extension namespace is kind of lame too and belittles the value of what might be very powerfull tooling that's managed by large engaged communities. Better I think to just publish it as MRTK.WebRTC and just push your artifacts as prerelease versions, or use 0.x.x versions until it's ready to be treated with the same rigor or gets a lot of community adoption.
Making the extensions stand alone will help them move faster, keep the lines of responsibility clear, and empower the community to do more. With the forthcoming NuGet packages, we can show them how to organize their extensions and take a dependency on the MRTK. I think this better helps the ecosystem to thrive and draws much nicer lines by building around and adjacent to the MRTK instead of in it.
@davidkline-ms, thoughts?

As an example, I pulled your PR into the MRTK and then deleted everything that was under Assets/MixedRealityToolkit.Extensions and everything still worked and my automated broken reference testing tool didn't find anything missing. Why couple together this technology with a dependency it doesn't even take?

@chrisfromwork

https://webrtc.github.io/samples/src/content/peerconnection/munge-sdp/
https://github.com/bengreenier/webrtc-unity-plugin
https://unitylist.com/p/cxl/Web-Rtc-Unity-Plugin-Sample

munge-sdp is now removed (ended up not being a valuable sample for this case, at least at the moment). Need to add:
https://webrtc.googlesource.com/src/+/refs/heads/master/examples/unityplugin

Do you know if any files included in this change are direct ports from somewhere else? Are most of the scripts in this change things you yourself wrote?

Most are mine, the direct ports are the ones that do not have the Microsoft copyright text.

You should keep the original namespaces for items that you didn't write.

I wasn't sure this was the right call for MRTK, as they were in the global namespace...can you advise?

For all items that are your own original contribution, you should add the Microsoft licensing to the top of each file

Done.

@chrisfromwork @jwittner Barring the outcome of this discussion i'm going to hold off filing issues related to this work at this time.
As such, i'll use this comment to capture the items that were recently in-code TODOs, but should become issues/feature-requests should we land this work here.

[ ] Feature Request: Support Ice credentials on a per IceServer basis (@vladkol)
[ ] Refactor: NativePeer.GetUniqueId => C# property
[ ] Editor script DevUX: WebrtcPeerEvents.OnInitialized => autobind to Webrtc.OnInitialized event when the WebrtcPeerEvents component is added in the inspector
[ ] Editor script DevUX: WebrtcPeerVideo.OnInitialized => autobind to Webrtc.OnInitialized event when the WebrtcPeerVideo component is added in the inspector
[ ] Refactor: WebrtcSignalControls.HeaderAttribute should be replaced with Editor script verification that sibling component is attached
[ ] Refactor: WebRtcVideoPlayer.FrameQueue has a non-standard lifetime - being allocated and de-alloced in the WebrtcPeerVideo component...this should likely be revised

One set of credentials for a list of servers is how this REST authentication thing is done.

From: Ben Greenier notifications@github.com
Sent: Friday, March 22, 2019 7:20:37 PM
To: Microsoft/MixedRealityToolkit-Unity
Cc: Vlad Kolesnikov; Manual
Subject: Re: [Microsoft/MixedRealityToolkit-Unity] Add a basic webrtc extension (#1) (#3664)
@bengreenier commented on this pull request.

In Assets/MixedRealityToolkit.Extensions/Webrtc/Scripts/Webrtc.cshttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2FMixedRealityToolkit-Unity%2Fpull%2F3664%23discussion_r268378417&data=02|01|vladkol%40microsoft.com|3222da6c14ab4975a2e008d6af36235c|72f988bf86f141af91ab2d7cd011db47|1|0|636889044386461203&sdata=qX9hDxrwN%2Bk54sgFpbWMKkwE0tX8jHpsKZ9CbSLEDfs%3D&reserved=0:

   /// Flag to initialize Webrtc on <see cref="Start"/>

   /// </summary>

   [Tooltip("This will initialize Webrtc on Start()")]

   public bool AutoInitialize = true;

   /// <summary>

   /// Flag to log all errors to the Unity console automatically

   /// </summary>

   [Tooltip("This will log all errors to the Unity console")]

   public bool AutoLogErrors = true;

   /// <summary>

   /// Set of ice servers

   /// </summary>

   [Tooltip("(Optional) Set of Ice servers")]

   public List<ConfigurableIceServer> IceServers = new List<ConfigurableIceServer>()

TLDR: sure, that sounds great. I'll look to you for the changset to allow a signaling server to provide this info.
ah - thought you were proposing supporting giving native library something like:
NativePeer(List servers)
where
struct IceServer
{
string Uri;
int Port;
string Username;
string Credential;
}
which imo is a more common way to describe a set of ice servers. Current native lib only supports once Username and Credential even if N ice servers urls is given.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2FMixedRealityToolkit-Unity%2Fpull%2F3664%23discussion_r268378417&data=02|01|vladkol%40microsoft.com|3222da6c14ab4975a2e008d6af36235c|72f988bf86f141af91ab2d7cd011db47|1|0|636889044386461203&sdata=qX9hDxrwN%2Bk54sgFpbWMKkwE0tX8jHpsKZ9CbSLEDfs%3D&reserved=0, or mute the threadhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAEhA0Czw-tzFVw5vWMnkYFlOO_Jv6rCmks5vZY91gaJpZM4b__ro&data=02|01|vladkol%40microsoft.com|3222da6c14ab4975a2e008d6af36235c|72f988bf86f141af91ab2d7cd011db47|1|0|636889044386471191&sdata=SH06NwKXWk5SZENj9geqbfbuPrX5eqBPXsQjm2E%2Fbto%3D&reserved=0.

@bengreenier  Great work!
I'm currently playing around with this by using it to connect a Hololens to a PC. Perhaps I am doing something wrong or there are still issues being solved at the webrtc level but here are the issues I am seeing:

No audio from PC to Device. Audio does work from Device to PC.  (I need to test on more machines to rule out a device issue).
Very low performance. 3-4 fps using the default settings of the app.  I was able to get 7 fps if I didn't display the local rendering on the Hololens  and 15 fps if I didn't display the local or the remote rendering on the Hololens (which is our target use case).    I plan on tweaking settings more to see if I can slow down the recording to keep the fps high but don't want to re-invent the wheel if there are already plans in place for performance.
The video stream from the PC to the device gets further and further behind the longer you play.  Seems like it is not dropping frames but instead just playing back all frames at a slow speed?

I made the following changes to get this to work:

I changed the UI to use world space in order to work with the Hololens
I added properties to define targetId and deviceId rather than using the unique identifier since it was cumbersome.

I'm going to keep tinkering and seeing if I can get the audio to work and performance improved.  Thanks again for contributing this extension. It is extremely helpful for an upcoming feature I am writing.

There appear to be two efforts to get WebRTC up and running on Hololens. The repo this PR is derived from:
https://github.com/bengreenier/webrtc-unity-plugin
And another:
https://github.com/webrtc-uwp/webrtc-uwp-sdk
Is the webrtc_unity_plugin.dll included in this PR compiled from the work being done with the webrtc-uwp-sdk? It appeared instead to be based on Google's example: https://webrtc.googlesource.com/src/+/refs/heads/master/examples/unityplugin/
Is there a relationship between these two repos? Will this extension be updated to use webrtc-uwp-sdk eventually?

@michael-house The webrtc-unity-plugin pulls in a dll from webrtc-uwp-sdk.  I'm not sure about the google link you are referencing but I believe all of the webrtc-uwp-sdk is based on a google webrtc library.
Check this branch out of webrtc-uwp-sdk if you are trying to rebuild the plugin dll:
https://github.com/webrtc-uwp/webrtc/tree/cse/m71-ks
It has a project within it called Examples.UnityPlugin which creates the dll referenced in this pull request.

@markgrossnickle Thank you! I saw mentions of m71, which I knew was a branch in the webrtc-uwp-sdk, but the interfaces looked to more closely match the google webrtc library (which is linked in the "Why" section of the readme for webrtc-unity-plugin).
I had been working directly with the webrtc-uwp-sdk library to get webrtc into a project. It was struggle given I couldn't test it in Unity, I had to two IL2CPP development builds, which take forever! The webrtc-unity-plugin was easy to get integrated into a project, because I was able to debug in Unity.
Since you've apparently also set this up, maybe you can tell me: The video I'm getting on the desktop from the HoloLens is not a MRC video stream, it's just straight HoloLens camera capture, is that your experience as well? When I was working with the web-rtc-uwp library, I was able to get streaming from the HoloLens to the desktop, and it was a full MRC stream.

I think that is this issue: https://github.com/webrtc-uwp/webrtc-uwp-sdk/issues/130   (So it is being worked on)

Update on my notes above. It was a computer issue on the no Audio I listed above. I am getting audio when using another microphone.
I tried to change the Interval/fps to be 1 fps to see if I could get better performance but I didn't have much luck. I was in simple_peer_connection.cc and added the code below around line 582.  I confirmed in impl_webrtc_VideoCapture that the FPS was set to 1 during StartCapture.  However, the playback on the PC was faster than 1fps (showed 5+fps).  Probably a user error as I am still getting my head wrapped around this library and c++ in general.
`std::unique_ptrcricket::VideoCapturer capture = OpenVideoCaptureDevice();
if (capture) {
webrtc::MediaConstraintsInterface::Constraints* mandatory =
new webrtc::MediaConstraintsInterface::Constraints();
webrtc::MediaConstraintsInterface::Constraints* optional =
new webrtc::MediaConstraintsInterface::Constraints();
  mandatory->push_back(webrtc::MediaConstraintsInterface::Constraint(
      webrtc::MediaConstraintsInterface::kMaxFrameRate, rtc::ToString(1)));
  mandatory->push_back(webrtc::MediaConstraintsInterface::Constraint(
      webrtc::MediaConstraintsInterface::kMinFrameRate, rtc::ToString(1)));

  webrtc::MediaConstraintsInterface* constraints = new wrapper::impl::org::
      webRtc::MediaConstraints::MediaConstraintsImpl(*mandatory, *optional);

  rtc::scoped_refptr<webrtc::VideoTrackInterface> video_track(
      g_peer_connection_factory->CreateVideoTrack(
          kVideoLabel, g_peer_connection_factory->CreateVideoSource(
                           std::move(capture), constraints)));`

using System.Collections.Generic;

Do we want to add the copyrights to these files?

Refers to: Assets/MixedRealityToolkit.Extensions/Webrtc/Scripts/Marshalling/FrameQueue.cs:1 in 701d81c. [](commit_id = 701d81c22a0eece3151d7525d9ab14e7e2e1328a, deletion_comment = False)

@michael-house

There appear to be two efforts to get WebRTC up and running. The repo this PR is derived from:
https://github.com/bengreenier/webrtc-unity-plugin
And another:
https://github.com/webrtc-uwp/webrtc-uwp-sdk
Is the webrtc_unity_plugin.dll included in this PR compiled from the work being done with the webrtc-uwp-sdk? It appeared instead to be based on Google's example: https://webrtc.googlesource.com/src/+/refs/heads/master/examples/unityplugin/
Is there a relationship between these two repos? Will this extension be updated to use webrtc-uwp-sdk eventually?

https://github.com/bengreenier/webrtc-unity-plugin is managed glue that depends on native code. That native code is a version of https://webrtc.googlesource.com/src/+/refs/heads/master/examples/unityplugin/ that is built from the https://github.com/webrtc-uwp/webrtc-uwp-sdk source tree (which is effectively a webrtc fork with lots of additions for uwp to work). we use that fork so that we can modify the sample slightly to add support for the uwp target. So they are all closely related :)

@markgrossnickle

No audio from PC to Device. Audio does work from Device to PC. (I need to test on more machines to rule out a device issue).
Very low performance. 3-4 fps using the default settings of the app. I was able to get 7 fps if I didn't display the local rendering on the Hololens and 15 fps if I didn't display the local or the remote rendering on the Hololens (which is our target use case). I plan on tweaking settings more to see if I can slow down the recording to keep the fps high but don't want to re-invent the wheel if there are already plans in place for performance.
The video stream from the PC to the device gets further and further behind the longer you play. Seems like it is not dropping frames but instead just playing back all frames at a slow speed?

glad to see you got around that. we should take a docs work item to clarify that this path will always use the default communication device (as there is no longer a webrtc api to specify audio device).
this is known, @jamescadd do we have an issue tracking holo perf in webrtc-uwp? tagging @phongcao as i know he was investigating some perf fixes for holo v1 on the releases/m71 codepaths (is there any update you can share publically Phong?)
hadn't noticed that myself. definitely something we should investigate a fix for or at-minimum track a bug for.

Thanks for taking the time to validate some of this work!

@bengreenier Thanks for the response. I think I may have another issue for your list as I am unable to create the data channel.
I am attempting to call PeerEventsInstance.AddDataChannel() from within the OnPeerReady.AddListener event (right below where the stream is added).
I get the following log when trying to connect the data channel:

(impl_webrtc_videocapturer.cpp:464): CaptureDevice::StartCapture: INTERVAL     1000000000 FPS 1
'WebrtcUnityPlugin.exe' (Win32): Loaded 'C:\Program Files\Intel\Media SDK\libmfxhw32.dll'. Cannot find or open the PDB file.
The thread 0x1420 has exited with code 13430019 (0xcced03).
The thread 0x146c has exited with code 13430018 (0xcced02).
The thread 0x1294 has exited with code 13430017 (0xcced01).
The thread 0x1298 has exited with code 13430016 (0xcced00).
The thread 0x102c has exited with code 13430016 (0xcced00).
The thread 0x1460 has exited with code 13430017 (0xcced01).
The thread 0x1328 has exited with code 13430018 (0xcced02).
The thread 0x12b0 has exited with code 13430019 (0xcced03).
'WebrtcUnityPlugin.exe' (Win32): Unloaded 'C:\Program Files\Intel\Media SDK\libmfxhw32.dll'
Exception thrown at 0x774B2CE2 (KernelBase.dll) in WebrtcUnityPlugin.exe: WinRT originate error - 0xC00D36B3 : 'The stream number provided was invalid.'.
(impl_webrtc_videocapturer.cpp:529): CaptureDevice::StartCapture: returning
(messagequeue.cc:513): Message took 449ms to dispatch. Posted from: webrtc::VideoCapturerTrackSource::Initialize@../../pc/videocapturertracksource.cc:357
(messagequeue.cc:513): Message took 453ms to dispatch. Posted from: webrtc::PeerConnectionFactoryProxyWithInternal::CreateVideoSource@C:\projects\Taqtile\webrtc-71-ks2\webrtc-uwp-sdk\webrtc\xplatform\webrtc\api/peerconnectionfactoryproxy.h:59
The thread 0x1470 has exited with code 0 (0x0).
> (datachannel.cc:145): Failed to initialize the RTP data channel due to invalid DataChannelInit.
(simple_peer_connection.cc:631): Fails to create data channel

I am also not sure what the ''The stream number provided was invalid.'.' is being thrown from but audio/video continues to work even after that is thrown.

@markgrossnickle Could you confirm that you're running in release mode?  @bengreenier re: performance, I wanted to double check that your work include the H.264 decoder from Kevin (pretty sure it does). @phongcao reports good performance while both encoding and decoding video on HoloLens so I'm not sure why the plugin has issues.
One additional issue to list above - if you're using a dual GPU machine on the PC side you need to force PeerCC to use NVIDIA so that there are no issues.

@jamescadd I've been switching back and forth between release and debug. I'm not sure which test you are referring to but I believe the FPS I recorded was in release.  I am not sure about the delayed playback.  I am out today but could test again tomorrow.  Currently trying to figure out why I can't get the data channel to connect.

@Yoyozilla Is it possible to get an explicit owner for getting this into mrtk_development? Ben has done some great work here and many customers could benefit from this code.

@chrisfromwork I think we're waiting on @davidkline-ms  getting an answer on keeping extensions out of the MRTK repo? Original reasoning for doing so is here.
I'm still faced with these questions:

Why couple together this technology with a dependency it doesn't even take?
Going further, why even label this with the MixedReality bucket? Why not Microsoft.WebRTC.Unity?

Maybe my perception is askew, but to me the MRTK should be focused on features fundamental to Mixed Reality, and not broadly valuable features that are useful in Mixed Reality applications. When we do the latter we cut off the rest of the Unity community who might use the features by burdening them with Mixed Reality baggage. WebRTC features would be super valuable for many different types of Unity developers, and I'd be sad to see this capability buried in a place they'll never find.

I agree with @jwittner, I think it would be more appropriate to have WebRTC as a standalone project somewhere. However, we could have an MRTK service "wrapper" as an extension. This would allow people to easily integrate the standalone WebRTC project as a MRTK extension service, with MRTK targeted features like MRC or a WebRTC signalling via some kind of shared session (like HTK sharing).

Hey folks - I haven't gone completely dark on this work, but have moved to mostly Microsoft internal communications about it to help make sure that whatever we land is the right fit for the community. Apologies for that delay, I'm spread pretty thin these days.

This fails for me with the following error. I tried both in my current branch which has some local changes and I tried with a clean git checkout using the steps in this doc:

@markgrossnickle sounds like you're working the build issue out over in this issue - glad those folks have been able to chime in.

@bengreenier re: performance, I wanted to double check that your work include the H.264 decoder from Kevin (pretty sure it does). @phongcao reports good performance while both encoding and decoding video on HoloLens so I'm not sure why the plugin has issues.
One additional issue to list above - if you're using a dual GPU machine on the PC side you need to force PeerCC to use NVIDIA so that there are no issues.

Thanks @jamescadd, it does include the h264 decoder work. I'm not clear at this point what might be leading to these perf issues, but I suspect there may be some additional perf fixes that were expecting to land, but hadn't yet? I wish I had more context, but I don't at this time.

I'm still faced with these questions:

Why couple together this technology with a dependency it doesn't even take?
Going further, why even label this with the MixedReality bucket? Why not Microsoft.WebRTC.Unity?

@jwittner, @michael-house I agree, this makes sense. I worry that we may have a hard time finding a set of owners if we go down that path, but probably that's the right thing to go solve. Happy to help, but not sure how to do so at this time.

@Yoyozilla Is it possible to get an explicit owner for getting this into mrtk_development? Ben has done some great work here and many customers could benefit from this code.

@chrisfromwork thanks! It sounds like @djee-ms may be playing some role in this regard, but if the right thing to do is to rethink the path toward this deliverable, then i'm happy having this work live on my personal repo for now, and end up (in some incarnation) somewhere more concrete in the future. This thread serves as a great way for the community to find it in the meantime. 😄

Hi folks, as discussed with the MRTK team, we'll close this out for now, and @djee-ms will work to land similar work (but with a more solid and flexible design 🚀) in the near future.

authors: andreiborodin bengreenier chrisfromwork jamescadd jwittner markgrossnickle michael-house vladkol

repo: Microsoft/MixedRealityToolkit-Unity


text:
Blank tab and error page in project properties with build PTVS.Dev.2015-05-28.VS.2013

I've just loaded PTVS.Dev.2015-05-28.VS.2013.msi on a 64bit Windows 7 Home Premium system and VS Express 2013 Desktop.
When I open the properties of an IronPython project by any means I get a blank tab above the usual General, Debug and Publish tabs. Selecting this blank tab shows an error page.
An error occurred trying to load the page.
Class not registered. Looking for object with CLSID: {00000000-0000-0000-0000-000000000000}.
I've also seen, on the same projects, this different error associated with the blank tab.
An error occurred trying to load the page.
Unable to create the designer.  File is already opened in an incompatible editor.
This does not occur with PTVS 2.2 RC VS 2013 which shows only the usual General, Debug and Publish tabs.

I've' just seen #166. This looks to be the same problem.

Will close this issue as the other one you note is tracking this.
Thanks for letting us know you are still seeing this.

authors: andygraham crwilcox

repo: Microsoft/PTVS


text:
Fixes #482 Fix "VS 2015 required" message in installer

Fixes #482 Fix "VS 2015 required" message in installer
Updates message to recommend Community edition.

:+1:


text:
pbiviz's dependency on Typescript 2.1.5 needs to be upgraded

We’re working on a custom visual and trying to use D3 v4.  Unfortunately when we do, we get a compiler error
info   Building visual...
error  TYPESCRIPT  C:/code/viztest/viztest/node_modules/@types/geojson/index.d.ts : (94,54) ',' expected.
error  TYPESCRIPT  C:/code/viztest/viztest/node_modules/@types/geojson/index.d.ts : (94,56) Type parameter name cannot be 'any'
error  TYPESCRIPT  C:/code/viztest/viztest/node_modules/@types/geojson/index.d.ts : (104,64) ',' expected.
error  TYPESCRIPT  C:/code/viztest/viztest/node_modules/@types/geojson/index.d.ts : (104,66) Type parameter name cannot be 'any'
error  TYPESCRIPT  C:/code/viztest/viztest/node_modules/@types/geojson/index.d.ts : (106,21) Generic type 'Feature<G, P, any>' requires 3 type argument(s).

This is caused by code which looks like this in @types/geojson
export interface FeatureCollection<G extends GeometryObject, P = any> extends GeoJsonObject {
    type: "FeatureCollection";
    features: Array<Feature<G, P>>;
}

The = any feature is apparently a new feature of typescript which is only supported in newer builds of Typescript (>2.4), but the version of Typescript bundled with PBIVIZ is 2.1.5

+1 - It would be great to get this upgraded to TypeScript 3, as many of the typings in the ecosystem seem to be using new language features.

authors: danmarshall mattdot

repo: Microsoft/PowerBI-visuals-tools


text:
Added package dependencies

For the custom R visuals, the R script will most probably require some CRAN packages to be installed on the local machine of the user.
So we are defining a way for a custom R visual author to declare  what are the CRAN packages his script reuires so we will be able to verify and install those packages for the user (after getting user concent)

Hi @raananzvi, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Raanan Zvi). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

authors: msftclas raananzvi


text:
Update MainThreadAwaiter

Changes are required to match current behavior of VS ThreadHelper. Since it sets SynchronizationContext in JoinableTaskFactory.MainThreadAwaite.GetResult, we need to call it from our own awaiter.
This change may also fix some of the rare issues when VS gets hanged on connection switching.

👍

authors: AlexanderSher MikhailArkhipov

repo: Microsoft/RTVS


text:
XML documentation missing in netstandard2.0

For the netstandard2.0 build, the XML documentation is missing in the NuGet package.

.nuspec has been updated - waiting for an infrastructure issue to clear before uploading a new NuGet package

OK, a new NuGet has been pushed. Take a look when you get a chance!

Works fine now, thanks.

authors: cybertyche sehra

repo: Microsoft/Trill


text:
Weird behavior scanning recursive template strings

TypeScript Version:  2.7.0-dev.20171115
Code
import * as tsc from "typescript";

const scanner = tsc.createScanner(tsc.ScriptTarget.ES2016, true, tsc.LanguageVariant.Standard);
const str = "`a${`c` + `d${'e'}f`}g`";
scanner.setText(str);

while( scanner.getTextPos() < str.length ) {
    scanner.scan();
    console.log(`${scanner.getTokenText()}\t=> ${scanner.getToken()}`);
}

Expected behavior:
    `a${    => 14 //TemplateHead
    `c`     => 13 //NoSubstitutionTemplateLiteral
    +       => 37
    `d${    => 14 //TemplateHead
    'e'     => 9
+   }f`     => 16 //TemplateTail
+   }g`     => 16 //TemplateTail

Actual behavior:
    `a${    => 14 //TemplateHead
    `c`     => 13 //NoSubstitutionTemplateLiteral
    +       => 37
    `d${    => 14 //TemplateHead
    'e'     => 9
-   }       => 18 //CloseBraceToken
-   f       => 71 //Identifier
-   `}g`    => 13 //NoSubstitutionTemplateLiteral

You can't just blindly call scan. See the function parseTemplateSpan in parser.ts - when encountering a CloseBraceToken you need to reScanTemplateToken

I thought that the scanner was a state machine that knows its state.
Thanks.

authors: RyanCavanaugh lmcarreiro

repo: Microsoft/TypeScript


text:
Proposal: compiler flag to don't emit outside roots

Context
Consider the case of a solution consisting of multiple projects. These projects usually have references between eachother. Some of them may be typescript projects, but often there'll be mixed content (eg: typescript + ASP.NET).
A typescript file in ProjectB may require a module from ProjectA by doing import {...} from "ProjectA/module"; for runtime, even though on compile time the imported module will actually be imported from ../../../ProjectA/src/js/module. Path mappings make this possible by declaring a mapping {"ProjectA/*": "../../../ProjectA/src/js/"}.
Using path mappings works well both for compiling and for editor experience. But compiling ProjectB will make tsc discover and compile the files from ProjectA, which will confuse a build system. This happens because on a build system that's aware of dependencies, compiling the solution results in:

build ProjectA

compile all resources
bundle them in a dll/war

build ProjectB

compile all resources (will also cause ProjectA typescript files to emit JS files)
bundle them in a dll/war

Now an incremental build with no changes would cause ProjectA to be compiled/bundled again (because the JS files were written after assembling) and ProjectB to be compiled/bundled again because its dependencies changed. Essentially this ends up breaking incremental builds.
There's a possible workaround which is to have ProjectA producing a .d.ts file and have ProjectB to reference that instead of the original sources. However this workaround breaks editor experience causing operations such as Go To Definition to find the generated declaration file rather than the original source.
Proposed solution
A simple solution for this would be a noEmitOutsideRoot flag that would cause the compiler not to emit files outside specified rootDirs. Files would still be considered for the type checking phase, but would produce no .js files (nor .d.ts files if emit declaration is requested).
With such a flag, solution compilation could now be done with this sequence:

build ProjectA

compile all resources
bundle them in a dll/war

build ProjectB (with --noEmitOutsideRoot and --rootDir ProjectB)

compile all resources (finds ProjectA files through paths mapping but doesn't emit them because they're outside the root)
bundle them in a dll/war

Because ProjectB compilation would not cause JS files to be emitted in ProjectA anymore, incremental builds with no changes would behave as expected (ie: figure out there's no work to do).

in my situation help use "types": []
https://github.com/Microsoft/TypeScript/issues/21562

authors: mmv qwabra


text:
Feature Request: Deduce types after function predicate declaration.

Hello,
There should be away to abstract the type of a value after some predicate function is narrowed the scope of possible type. Example:
export type EntryKey<A> = A extends [infer KEY,infer VALUE] ? KEY : undefined
export type EntryValue<A> = A extends [infer KEY,infer VALUE] ? VALUE : undefined
class X<A>{

  filterEntryValueType<K extends EntryKey<A>, V extends EntryValue<A>, VT extends V, B extends [K,VT]>( predicate: (a: V) => a is VT ): X<B> {

}

const foo = new X([ ['a',100], ['b','two hundred'] ] )
foo.filterEntryValueType( (a): a is a number => typeof a === 'number' )

// [string, number | string ]

However, if we do this instead
filterEntryValueType<K extends EntryKey<A>, V extends EntryValue<A>, VT extends V>( predicate: (a: V) => a is VT ): X<[K,VT]> {

We get the correct result
//[string,number]

There should be a way to abstract [K,VT] into B after understanding what predicate does to VT

I really do not understand what EntryKey is mean to do, and why not just have a K, V as type parameters on your class X or method filterEntryValueType. what is B? where is supposed to be infered from? what is that method trying to do ..
if i think of a filter method, i woudl write it as:
class X<K, V>{
    constructor(list: [K, V][]) { }
    filterEntryValueType<V2 extends V>(_predicate: (a: any) => a is V2): Transduce<[K, V2]> {
        return [] as any;
    }
}

The form [K,V][]; that is only a special case of what <A> can be. I've updated my example, the method returns X<[K,V]> the original only complicates the example.

Maybe I'm not explaining it well...
It would be great to refer to [K,V2] from a single symbol, ie, B; that B is evaluated in the right most reference with information that came before it and not just when it was declared.

It would be great to refer to [K,V2] from a single symbol,

you can, the problem is two folds, first there is no place to infer B from in your example. and second, constraints are not inference position, they are only used to report errors.

authors: babakness mhegazy


text:
Suggestion Backlog Slog, 3/7/2016

Picking up the remainder of #7302

Salsa-supporting work

#6992 Use smarter type fallbacks in error cases

Suggestions

#185 Non-nullable: confirm that this is committed?
#3812 Type guards on property access - done as part of non-nullable?
#7279 Trailing commas in argument lists
#7209 Add a "force strict mode" option
#7077 Duplicate identifiers in namespace emit
#7011 Apply interface types to provide types to implicit-any-declared class properties
#6864 Disallow implicitly duplicated enum values
#471 Permit an implementing class to ignore private methods of the implementee class
#6758 Allow --name=value commandline switch format
#7256 Disallow void in truthyness positions
#7071 require of .json file
#6808 Start a deprecation path for module
#3792 Allow export default namespace foo { and other export default combos
#7347 Allow rest args in non-final positions
#6094 Provide a way out for incompatible derived class method signatures
#6895 Outersection types

Salsa-supporting work

#6992 Use smarter type fallbacks in error cases :+1: including in TypeScript

Suggestions

#185 Non-nullable: confirm that this is committed? :+1:
#3812 Type guards on property access - done as part of non-nullable? :+1:
#7279 Trailing commas in argument lists :+1:
Do whatever the ES proposal does
#7209 Add a "force strict mode" option
:-1: write "use strict"; yourself + TSLint if appropriate
#7077 Duplicate identifiers in namespace emit

:+1: in the cases where we can detect it

#7011 Apply interface types to provide types to implicit-any-declared class properties

:+1: see notes in bug

For next time

#6864 Disallow implicitly duplicated enum values
#471 Permit an implementing class to ignore private methods of the implementee class
#6758 Allow --name=value commandline switch format
#7256 Disallow void in truthyness positions
#7071 require of .json file
#6808 Start a deprecation path for module
#3792 Allow export default namespace foo { and other export default combos
#7347 Allow rest args in non-final positions
#6094 Provide a way out for incompatible derived class method signatures
#6895 Outersection types


text:
Type guard function does not work for string literal types

TypeScript Version:
1.8.2
Code
type Click = 'click';

function isClick(event: string): event is Click {
	return event === 'click';
}

function validateClickEvent(event: string): Click {
	if (isClick(event)) {
		return event; // this line raises a compilation error: Type 'string' is not assignable to type '"click"'
	}
	throw new Error('not click');
}

type Creature = {};
type Animal = {} & Creature;

function isAnimal(creature: Creature): creature is Animal {
	return true;
}

function validateAnimalCreature(creature: Creature): Animal {
	if (isAnimal(creature)) {
		return creature; // this line does not raise any compilation error
	}
	throw new Error('not animal');
}

Expected behavior:
Can apply type guard to string literal types.
Actual behavior:
Cannot apply type guard to string literal types.

Related to #7224, and a fix exists at #7235.

Fixed by #7235

authors: DanielRosenwasser kimamula sandersn