Measuring WiFi signal strength via the standard API causes packet loss

Environment

Item
Value

OS, Version / Build
___

Processor Architecture
___

Processor Type & Model
___

Memory
___

Storage Type, free / capacity (e.g. C: SSD 128GB / 512GB)
___

Relevant apps installed
___

Description

When you query RSSI signal strength in dbm, it causes packet loss.
Steps to reproduce

Query RSSI signal strength in dbm every 2-3 seconds.
Expected behavior

Querying the signal strength should be able to be performed without causing packet loss.
Actual behavior

Querying WiFi signal strength (RSSI) every few seconds causes packet loss.

If you call WlanScan() every second to get the current rssi information (so you can walk around and determine the quality of signal in a live capacity), it causes packet loss to run this function.  Thus, it is destructive, when it should be non-desctructive/passive.

This isnt an issue at all. You are just using it completely wrong.
WlanScan() does of course cause a Packet loss, you are forcing the NIC to cycle through all channels, how could this not cause a loss?
Calling WlanScan() to get your current RSSI is a total overkill, you need to get this info from the current connection object, so you dont need to perform a scan
https://docs.microsoft.com/en-us/windows/win32/api/wlanapi/ns-wlanapi-wlan_association_attributes

also i dont understand your issue, who cares about packet loss if you are just want to walk arround and check your signal strength?

How do you get RSSI in dBm on an ongoing basis WITHOUT causing packet loss?
According to Microsoft support, all of the other methods do not provide RSSI in dBm, and are also not very accurate.
-Tim-
From: HelgeKeck<EMAIL_ADDRESS>Sent: Friday, November 6, 2020 5:54 AM
To: microsoft/WinDev<EMAIL_ADDRESS>Cc: Tim Titus<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [microsoft/WinDev] Measuring WiFi signal strength via the standard API causes packet loss (#59)
This isnt an issue at all. You are just using it completely wrong.
WlanScan() does of course cause a Packet loss, you are forcing the NIC to cycle through all channels, how could this not cause a loss?
Calling WlanScan() to get your current RSSI is a total overkill, you need to get this info from the current connection object, so you dont need to perform a scan
https://docs.microsoft.com/en-us/windows/win32/api/wlanapi/ns-wlanapi-wlan_association_attributes
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WinDev/issues/59#issuecomment-723092304, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUH2RXPWFRD2C3KVQ6FABLSOP5XLANCNFSM4TKIXJVA.

The link i provided gives you an accurate RSSI value between -50 and -100 dBm, this value is based on the exact same data you would get from a WlanScan(), it is absolutely accurate in its provided span.
and even if i still dont understand the use case here, you still could put the NIC into monitor mode, set it to the desired channel, live decode the PCAP stream and getting your values from there. But this doesnt work if you want to be connected to a network.
you should do only one thing at a time, capturing or walking arround for a signal check

Here’s the use case:
As an engineer trying to solve problems, you want to know a number of things:

CPU utilization
Backplane/internal bus utilization
Disk IO
Wireless health (signal strength, retries, etc.)
Network throughput (packet loss, latency, jitter, etc.)
Stability of packet flow to a local location (default gateway)
Stability of packet flow to a remote host (Internet target)
Tracert to remote host (VPN tunnelling, as well as split-tunnelling)

If you have to do each of these as a separate test, it may take you 30 minutes to collect all of the information and analyze it to detect the problem.
If you can combine all of the tests into one tool that will analyze all of the above, you can solve problems within 5 minutes.
From: HelgeKeck<EMAIL_ADDRESS>Sent: Friday, November 6, 2020 8:32 AM
To: microsoft/WinDev<EMAIL_ADDRESS>Cc: Tim Titus<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [microsoft/WinDev] Measuring WiFi signal strength via the standard API causes packet loss (#59)
The link i provided gives you an accurate RSSI value between -50 and -100 dBm, this value is based on the exact same data you would get from a WlanScan(), it is absolutely accurate in its provided span.
and even if i still dont understand the use case here, you still could put the NIC into monitor mode, set it to the desired channel, live decode the PCAP stream and getting your values from there. But this doesnt work if you want to be connected to a network.
you should do only one thing at a time, capturing or walking arround for a signal check
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WinDev/issues/59#issuecomment-723174309, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUH2RRNQ4GPZMYSACIF26DSOQQJRANCNFSM4TKIXJVA.

thats a bit more than:
"so you can walk around and determine the quality of signal in a live capacity"
Anyway, thats maybe not what you want to hear, but this is definitely not an issue in the Windows WlanAPI. Its just the wrong way to do it

So what is the exact method that you say WILL work?  We tried a number of different methods, and none of them got RSSI information returned reliably.
From: HelgeKeck<EMAIL_ADDRESS>Sent: Friday, November 6, 2020 9:08 AM
To: microsoft/WinDev<EMAIL_ADDRESS>Cc: Tim Titus<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [microsoft/WinDev] Measuring WiFi signal strength via the standard API causes packet loss (#59)
thats a bit more than:
"so you can walk around and determine the quality of signal in a live capacity"
Anyway, thats maybe not what you want to hear, but this is definitely not an issue in the Windows WlanAPI. Its just the wrong way to do it
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WinDev/issues/59#issuecomment-723193461, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUH2RR5S5WWLH3PCR6RASTSOQUPBANCNFSM4TKIXJVA.

really? i gave you 2 reliable ways to do it, pick one

Sorry, we tried that.  Here’s the results (tested with 5 different wireless NICs to make sure we weren’t seeing a limitation from a single vendor):
wlanSignalQuality always shows 100 even when there is really poor signal quality.  Thus, this is a completely useless stat.
Have you used this metric before to measure over time?  Have you found it to be useful in any situation?
I did not see the other method you referenced.
From: HelgeKeck<EMAIL_ADDRESS>Sent: Friday, November 6, 2020 9:16 AM
To: microsoft/WinDev<EMAIL_ADDRESS>Cc: Tim Titus<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [microsoft/WinDev] Measuring WiFi signal strength via the standard API causes packet loss (#59)
really? i gave you 2 reliable ways to do it, pick one
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WinDev/issues/59#issuecomment-723197395, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUH2RRE4UDF7YM633WZUG3SOQVMDANCNFSM4TKIXJVA.

did you even read the documentation? i dont think so, its directly on the page i shared with you.

this works 100%

I did not see the other method you referenced.
you still could put the NIC into monitor mode, set it to the desired channel, live decode the PCAP stream and getting your values from there. But this doesnt work if you want to be connected to a network.

Yes, I read it through 6 months ago, and re-read it based on your recommendation.
We tried this and discovered that the update frequency of this value is perhaps once a minute if not longer (is not specified in that doc, and I could not find it otherwise).  Thus, you might have a strong signal when initially connected, but might be poor after the user starts to use it.  Thus, by the time you see that you have poor quality, you might be back at good quality, so you keep moving around.
Additionally, it will continuously show 100% even when signal strength was poor.  Thus it was not a reliable value shown no matter what.
From: HelgeKeck<EMAIL_ADDRESS>Sent: Friday, November 6, 2020 9:24 AM
To: microsoft/WinDev<EMAIL_ADDRESS>Cc: Tim Titus<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [microsoft/WinDev] Measuring WiFi signal strength via the standard API causes packet loss (#59)
this works 100%
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WinDev/issues/59#issuecomment-723201443, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUH2RUUX7JMAQDC2N5X5G3SOQWKJANCNFSM4TKIXJVA.

Huh?  Captured packets show signal strength?  Where is that shown?  I’ve been involved in networking for over 30 years and have not seen this in an 802.11 frame definition.
From: HelgeKeck<EMAIL_ADDRESS>Sent: Friday, November 6, 2020 9:31 AM
To: microsoft/WinDev<EMAIL_ADDRESS>Cc: Tim Titus<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [microsoft/WinDev] Measuring WiFi signal strength via the standard API causes packet loss (#59)
I did not see the other method you referenced.
you still could put the NIC into monitor mode, set it to the desired channel, live decode the PCAP stream and getting your values from there. But this doesnt work if you want to be connected to a network.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WinDev/issues/59#issuecomment-723205075, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUH2RWBQB2OIBM7IQWFLQTSOQXFLANCNFSM4TKIXJVA.

30 Years, thats amazing.
the Answer is the Radio Tap Header, transmitted in almost any wifi frame. You can even see the Signal strength per Antenna of the NIC.

where do you think is Windows getting the signal strength value from?

Ok, this is valuable stuff!  I’ll start researching this.  Thanks.
From: HelgeKeck<EMAIL_ADDRESS>Sent: Friday, November 6, 2020 9:46 AM
To: microsoft/WinDev<EMAIL_ADDRESS>Cc: Tim Titus<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [microsoft/WinDev] Measuring WiFi signal strength via the standard API causes packet loss (#59)
30 Years, thats amazing.
the Answer is the Radio Tap Header, transmitted in almost any wifi frame. You can even see the Signal strength per Antenna of the NIC.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WinDev/issues/59#issuecomment-723212242, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUH2RTRCCY6SOZ6F66DPXLSOQY6TANCNFSM4TKIXJVA.

i know you wont ask for, but here is one advice.
Just let it be and dont try to code this.
You will understand it in one year
Good luck for your journey

Ok, this is a cryptic answer.
AirPcap (the only way it seems to get the radiotap information on Windows systems) is a hardware-based USB device sold by Riverbed (they acquired it from Cacetech a number of years ago).
Riverbed announced end of life of AirPcap in December 31, 2017.  Thus, this is not a solution.
From: HelgeKeck<EMAIL_ADDRESS>Sent: Friday, November 6, 2020 9:51 AM
To: microsoft/WinDev<EMAIL_ADDRESS>Cc: Tim Titus<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [microsoft/WinDev] Measuring WiFi signal strength via the standard API causes packet loss (#59)
i know you wont ask for, but here is one advice.
Just let it be and dont try to code this.
You will understand it in one year
Good luck for your journey
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WinDev/issues/59#issuecomment-723214427, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUH2RQDBYHQKF2OYU3ME6LSOQZPZANCNFSM4TKIXJVA.

put your nic into monitor mode and capture the frames, tons of programs can do this.

From what I’m reading/learning, the AirPcap card (discontinued) is the only adapter that adds radiotap information.
All of the packet captures I have done via my laptop do not have any radiotap information.  How else should this information be captured using a standard wireless NIC?
From: HelgeKeck<EMAIL_ADDRESS>Sent: Friday, November 6, 2020 10:31 AM
To: microsoft/WinDev<EMAIL_ADDRESS>Cc: Tim Titus<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [microsoft/WinDev] Measuring WiFi signal strength via the standard API causes packet loss (#59)
put your nic into monitor mode and capture the frames, tons of programs can do this.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WinDev/issues/59#issuecomment-723233657, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUH2RSSIZBBCGQ72X4N3RLSOQ6F3ANCNFSM4TKIXJVA.

The purpose of this repo is to collect and catalog issues that affect / impact developers who work on Windows.
This here is clearly not an issue and we should not discuss such things here.
To close this, i can only recommend you to search Stack Overflow or even here in github for more information. As i already said, my advice is not to try to code it by your own. Just use an already existing tool. From what i can see you havent been in touch with this technology before and this is a highly complex topic, which not only involves coding skills, you need to understand the WiFi Technology itself, Windows Driver Development, Hardware and much more.
Every WiFi Adapter provides a Radio Tap Header to the OS, not only AirPcap. You should give your research more time than just some hours, this takes months.
If you are on twitter search for people with a CWNE certification and try to get in contact with them.

HelgeKeck:
I (and others) might disagree with you that this is not an issue.
I have researched quite a bit on this already.  I appreciate your additional information, as it has been enlightening to research this, but it seems that some of your information is not showing to be technically correct.
If you say that “Every WiFi adapter provides a radiotap header to the OS”, then I would ask why it seems that every document I find online seems to be a dead project, no longer supported, or no longer implementable.
Pointing someone to dead technology is not really a good solution, and is not a defensible position.
If you have information of how to get a better quality stats out of Windows API regarding RSSI, I’m all ears.  So far, I have not heard of a workable solution yet as I have tried the other methods and they do not update often enough to be useful.
…and I am certainly not asking you for code – I posted here because my Microsoft support ticket experts ran to the end of their ability to help us and said that the API was currently deficient and could not get live stats without causing packet loss.  They recommended I post here so someone from the product team inside Microsoft would review it and consider adding better API support.
I presume you do not work for Microsoft or have control over changing their API to improve on it?
-Tim-
From: HelgeKeck<EMAIL_ADDRESS>Sent: Friday, November 6, 2020 8:42 PM
To: microsoft/WinDev<EMAIL_ADDRESS>Cc: Tim Titus<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [microsoft/WinDev] Measuring WiFi signal strength via the standard API causes packet loss (#59)
The purpose of this repo is to collect and catalog issues that affect / impact developers who work on Windows.
This here is clearly not an issue and we should not discuss such things here.
To close this, i can only recommend you to search Stack Overflow or even here in github for more information. As i already said, my advice is not to try to code it by your own. Just use an already existing tool. From what i can see you havent been in touch with this technology before and this is a highly complex topic, which not only involves coding skills, you need to understand the WiFi Technology itself, Windows Driver Development, Hardware and much more.
Every WiFi Adapter provides a Radio Tap Header to the OS, not only AirPcap. You should give your research more time than just some hours, this takes months.
If you are on twitter search for people with a CWNE certification and try to get in contact with them.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WinDev/issues/59#issuecomment-723391015, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUH2RS2JDYKZJVRMLKUV5LSOTF3FANCNFSM4TKIXJVA.

this is not a dead technology, this is not even a own technology. Im using this every day, like any other WiFi Engineer in the world.
The radio tap header is by default not exposed to user mode applications in windows. Gettings this information is technically extremly difficult, you need to understand all the technologies i listed above, then you are able to code this by your own.
And no, im not working for Microsoft, and this is definitly not an technical issue that needs to be fixed. There is just no easy solution, like just making some API calls and then getting this information, this is complex stuff.

and just for the records, one of the microsoft persons, who is running this repo, asked me to jump in because i have experience with this topic and i know this API very well.

Ok, so if you know the API very well, you must agree with me that there is no Microsoft published API that would allow you to query the RSSI values on a second-by-second basis that does not cause packet loss.
Thus, you must agree with me that there is a performance limitation with the API.
Saying that there is a non-Microsoft supported method using radiotap information that NICs may or may not support is not really a solution.
From: HelgeKeck<EMAIL_ADDRESS>Sent: Friday, November 6, 2020 9:19 PM
To: microsoft/WinDev<EMAIL_ADDRESS>Cc: Tim Titus<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [microsoft/WinDev] Measuring WiFi signal strength via the standard API causes packet loss (#59)
and just for the records, one of the microsoft persons, who is running this repo, asked me to jump in because i have experience with this topic and i know this API very well.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WinDev/issues/59#issuecomment-723393977, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUH2RTHJXJSVX26QZTWCCLSOTKDJANCNFSM4TKIXJVA.

dont agree, noone ever will.
There exists no performance issue, no issue at all. This API works exactly as expected. Also, i said nothing about a non microsoft way, dont know where this is coming from.
anyway, i cant help you any further.
wish you the best

I’m sorry you feel that way, but I think you may be alone with your feelings.
I will work with Microsoft directly on this, as they already see that there is a deficiency.
Sorry your time was wasted.
From: HelgeKeck<EMAIL_ADDRESS>Sent: Friday, November 6, 2020 10:10 PM
To: microsoft/WinDev<EMAIL_ADDRESS>Cc: Tim Titus<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [microsoft/WinDev] Measuring WiFi signal strength via the standard API causes packet loss (#59)
dont agree, noone ever will.
There exists no performance issue, no issue at all. This API works exactly as expected. Also, i said nothing about a non microsoft way, dont know where this is coming from.
anyway, i cant help you any further.
wish you the best
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WinDev/issues/59#issuecomment-723398130, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUH2RQUWQTSKQAQVGCPA7LSOTQCNANCNFSM4TKIXJVA.

Hey all. Thanks for the spirited discussion thus far.
Helge has created very powerful network signal analysis tools for Windows (and other platforms) that I've been a big fan of for several years. I reached out to Helge, and asked him if he could provide some pointers/guidance/etc. Thank you for sharing your experiences and suggestions above.
@TimothyTitus: I appreciate that you're frustrated that getting the signal strength data you seek isn't as easy as you might want.
This is a valid criticism about which I am happy to start a conversation with Windows' networking team to discuss. However, note that even if we're successful in convincing the team to add an API to expose this data to user-mode apps and tools, that it'll take a while for that API to show up in Windows Insider builds, and in subsequent OS releases.
So, what to do in the meantime?
As Helge suggests above, there are a few ways to get some amount of signal strength info but that you may have to compromise - if you're okay with simpler data, there are some approaches that avoid you needing to frequently call WlanScan() to get your current RSSI because doing so will cause the machine's wifi card to have to scan all networks, channels, etc. which may result in switching/dropping/losing connections, temporarily.
But, as you indicate, you'd prefer more accurate data, you have some options to consider and some work to do:
Ultimately, you want something, somewhere to expose signal strength data to user-mode code.
As Helge described above, he's previously used the existing capabilities of PCAP that will add the necessary signal strength data to a Radio Tap Header pseudo frame in the PCAP output stream. User-mode code can then decode the PCAP stream, and extract & display/analyze the data.

⚠ PCAP and the Radio Tap Header is not a Windows-specific thing - it originated in BSD and is now prevalent in Linux too. The Radio Tap Header enables code in the networking stack to add arbitrary data frames to network data streams, but it's arbitrary, not consistently supported, and to be avoided if not required (if nobody's listening why waste cycles and bytes adding data that's not read).

If you don't want to rely on NPCAP, you'll have to build your own. However, note that doing so is very non-trivial: You will need to build, install, configure, secure, service, etc. a kernel mode driver. Thus I would recommend that you attempt this only as a last resort. Instead, I would strongly encourage you to explore whether NPCAP will work for your requirement. (note: Wireshark's docs state that, on Windows, NPCAP should be preferred and that it's under active development).
A wise piece of guidance in this doc states:

The next logical question is: “how to I get radiotap headers in my captures?”. The headers are added by the wireless adapter (or its driver) that is being used to perform the frame capture. If the adapter does not inject the additional information as it captures frames, then no radiotap headers will be added.
I guess the best way to verify this is simply to perform a capture and see if they appear in your capture using Wireshark. In my own particular case, I was performing a capture with an AirPcap NX card, which provides radiotap information. However, I also performed captures with the internal WLAN NIC of my laptop, which does not provide radiotap data.

In the meantime, as I stated above, I'll at least start a conversation with the Windows networking team to see if they have any suggestions/recommendations, or if anything can be done to support your requirements.
HTH.

Rich:
Thank you for your response, it’s tone is far more understanding and solution-oriented than Helge.
I have quite a bit of experience with PCAP, and know packet decodes very well, but have never seen radiotap headers, so Helge did teach me something I did not know before.
The problem with the previously suggested option: AirPcap adapters are no longer sold, so I can’t expect my customers to go out and buy one.
Question:
Do all Promiscuous-mode WiFi adapters (monitor/capture mode) support radiotap?  Thus, this list would be a way of doing this:
https://secwiki.org/w/Npcap/WiFi_adapters
PS: I completely understand that the timeframe for improving this API might be months/years/never.  I figure as a user of the API, it is always beneficial to consider improvements to make the data easier to collect/ingest/interpret, so I’m happy to work with you and your team to offer suggestions so the API becomes a more valuable and more frequently used API versus falls into disuse because it does not provide useful data.
-Tim-
From: Rich Turner<EMAIL_ADDRESS>Sent: Monday, November 9, 2020 1:36 PM
To: microsoft/WinDev<EMAIL_ADDRESS>Cc: Tim Titus<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [microsoft/WinDev] Measuring WiFi signal strength via the standard API causes packet loss (#59)
Hey all. Thanks for the spirited discussion thus far.
Helge has created very powerful network signal analysis tools for Windows (and other platforms) that I've been a big fan of for several years. I reached out to Helge, and asked him if he could provide some pointers/guidance/etc. Thank you for sharing your experiences and suggestions above.
@TimothyTitushttps://github.com/TimothyTitus: I appreciate that you're frustrated that getting the signal strength data you seek isn't as easy as you might want.
This is a valid criticism about which I am happy to start a conversation with Windows' networking team to discuss. However, note that even if we're successful in convincing the team to add an API to expose this data to user-mode apps and tools, that it'll take a while for that API to show up in Windows Insider builds, and in subsequent OS releases.
So, what to do in the meantime?
As Helge suggests above, there are a few ways to get some amount of signal strength info but that you may have to compromise - if you're okay with simpler data, there are some approaches that avoid you needing to frequently call WlanScan() to get your current RSSI because doing so will cause the machine's wifi card to have to scan all networks, channels, etc. which may result in switching/dropping/losing connections, temporarily.
But, as you indicate, you'd prefer more accurate data, you have some options to consider and some work to do:
Ultimately, you want something, somewhere to expose signal strength data to user-mode code.
As Helge described above, he's previously used the existing capabilities of PCAP that will add the necessary signal strength data to a Radio Tap Header pseudo frame in the PCAP output stream. User-mode code can then decode the PCAP stream, and extract & display/analyze the data.
⚠ PCAP and the Radio Tap Header is not a Windows-specific thing - it originated in BSD and is now prevalent in Linuxhttps://www.kernel.org/doc/html/latest/networking/radiotap-headers.html too. The Radio Tap Header enables code in the networking stack to add arbitrary data frames to network data streams, but it's arbitrary, not consistently supported, and to be avoided if not required (if nobody's listening why waste cycles and bytes adding data that's not read).
If you don't want to rely on NPCAP, you'll have to build your own. However, note that doing so is very non-trivial: You will need to build, install, configure, secure, service, etc. a kernel mode driver. Thus I would recommend that you attempt this only as a last resort. Instead, I would strongly encourage you to explore whether NPCAP will work for your requirement. (note: Wireshark's docs state that, on Windows, NPCAP should be preferredhttps://wiki.wireshark.org/libpcap and that it's under active development).
A wise piece of guidance in this dochttps://medium.com/@tooethiopic/what-are-radiotap-headers-53a93a71e08e states:
The next logical question is: “how to I get radiotap headers in my captures?”. The headers are added by the wireless adapter (or its driver) that is being used to perform the frame capture. If the adapter does not inject the additional information as it captures frames, then no radiotap headers will be added.
I guess the best way to verify this is simply to perform a capture and see if they appear in your capture using Wireshark. In my own particular case, I was performing a capture with an AirPcap NX card, which provides radiotap information. However, I also performed captures with the internal WLAN NIC of my laptop, which does not provide radiotap data.
In the meantime, as I stated above, I'll at least start a conversation with the Windows networking team to see if they have any suggestions/recommendations, or if anything can be done to support your requirements.
HTH.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WinDev/issues/59#issuecomment-724292445, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUH2RXGWS4UESB275YLLZLSPBOCRANCNFSM4TKIXJVA.

Timothy,
if i was to direct my apologies, thats just how i am.
Windows once had an API that did what you want. But due to lack of support from the Hardware Vendors and bad driver Implementations, Microsoft ditched this API. Imo it is highly unlikely that we see this coming back.
AirPcap Adapter just offered a convienent way to access these kind of data. Not having these adapters doesnt mean it is not possible anymore on windows. Thats why i suggested that you are trying to contact people with a CWNE certification. These people deal everyday with this technology and they can answer you most of your questions. Use existing solutions for your problem.
Once i have been in the exact same situation like you are now. Believe me when i say that trying to code this by your own will cost you a year of your life, and most likely it wont work at the end.

I completely agree with you that trying to code a solution myself will lose a year of my life.
This is why I am asking Microsoft’s PM to consider making it a “Windows Wireless certified” requirement that this information is available via ALL wireless adapters that will be supported by Windows, thus forcing the vendors to all participate.
This was done years ago where Microsoft forced standards for mice, sound cards, network adapters, hard drives.  This information should be required for wireless to help identify and troubleshoot problems in the wireless realm.
-Tim-
From: HelgeKeck<EMAIL_ADDRESS>Sent: Tuesday, November 10, 2020 10:07 AM
To: microsoft/WinDev<EMAIL_ADDRESS>Cc: Tim Titus<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [microsoft/WinDev] Measuring WiFi signal strength via the standard API causes packet loss (#59)
Timothy,
if i was to direct my apologies, thats just how i am.
Windows once had an API that did what you want. But due to lack of support from the Hardware Vendors and bad driver Implementations, Microsoft ditched this API. Imo it is highly unlikely that we see this coming back.
AirPcap Adapter just offered a convienent way to access these kind of data. Not having these adapters doesnt mean it is not possible anymore on windows. Thats why i suggested that you are trying to contact people with a CWNE certification. These people deal everyday with this technology and they can answer you most of your questions. Use existing solutions for your problem.
Once i have been in the exact same situation like you are now. Believe me when i say that trying to code this by your own will cost you a year of your life, and most likely it wont work at the end.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WinDev/issues/59#issuecomment-724872382, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUH2RXW6AWWOUPFPKICHCTSPF6LJANCNFSM4TKIXJVA.

Unlikely that Microsoft will add these infos the WlanAPI, Microsoft offers these kind of data already on another place:
https://docs.microsoft.com/en-us/message-analyzer/microsoft-message-analyzer-operating-guide

im sure there is a seperate Forum for this on the Microsoft Tech Community Sites

Hey all. I just heard back from the engineering lead responsible for our wifi stack.
In short, he echoes some of @HelgeKeck's points:

If the goal is to get signal strength/quality for the currently connected AP, a non-invasive way to get signal quality is to register for WLAN notifications (WlanRegisterNotification) and listen for wlan_notification_msm_signal_quality_change. If dBm RSSI is needed, in first approximation one can apply the MSDN rule: “WLAN_SIGNAL_QUALITY is of type ULONG. This member contains a value between 0 and 100. A value of 0 implies an actual RSSI signal strength of -100 dbm. A value of 100 implies an actual RSSI signal strength of -50 dbm. You can calculate the RSSI signal strength value for wlanSignalQuality values between 1 and 99 using linear interpolation.”
If the goal is to get signal strength/quality for all the currently visible networks: there is an intrinsic contradiction between maintaining high quality/reliability on the channel where the currently-connected AP is located, and requiring to know in details whatever is present/visible on dozens of other channels. Discovery of Wi-Fi networks located on other channels requires the Wi-Fi radio to hop from channel to channel and sit on those channel for short-but-compounding dwell times. As result performance on current channel/connection is seriously affected during scans. In general that should not result in disconnections (if it does there may be other factors, such as driver bugs or low signal quality on channel N), but it will definitely result in packet loss and dramatic bandwidth reduction during the scan (and a scan time can sometimes approach 5 seconds).

New Wi-Fi adapters are coming to market that basically have two radios and will be able to scan with no impact on performance on the connected channel, but their availability in the market is still minor and expected to grow quite slowly.
Alternatively instead WlanScan, one could use WlanGetAvailableNetworkList and get opportunistic network visibility data, but the freshness of that data depends on driver and network conditions, and in general it is not nearly good enough for network analyzer purposes.
In general Wlan APIs have not been designed for such usage.

So, @TimothyTitus - while your goal is indeed noble, valid, and useful, it is simply unrealistic to expect current single-radio wifi cards/chipsets to maintain a reliable, high-perf wifi connection whilst instructing the radio to sample each of the available networks.
Hopefully, as Wi-Fi 6 / MIMO cards/chipsets that support multiple radios become more prevalent over time, your goals may be easier to achieve. However, as the engineering lead points out, this will take some time to become the norm, and is subject to driver vendors commitment to delivering high quality drivers that support independently driving multiple physical radios, etc.
So, in the meantime, one approach you might want to consider is fitting your engineers' laptops with USB wifi adaptors and using those devices to scan available networks, leaving the built-in Wi-Fi to handle normal traffic.
And if you want to survey Wi-Fi 6 networks, signals, etc. you'll likely need to use Wi-Fi 6 adaptors, as and when they start to (inevitably) arrive in-market.
Oh, and then there'll be Wi-Fi 7/802.11AY, etc. 😉

Thanks for this info.  The WLAN_SIGNAL_QUALITY does not update often enough to be useful.  I think it updates every 60 seconds, if not less often.
Thus, if you are doing a signal study, and are walking around, you may walk right past the “sweet spot” and well into a bad area before realizing it.
If @HelgeKeck’s point about radiotap headers being on most all wireless frames at this point, then I would assume that it is an easy task to have the kernel take the signal strength off of each packet to have a dynamic (updated per packet, or perhaps every 100 packets even) value that would be non-destructive, right?
From: Rich Turner<EMAIL_ADDRESS>Sent: Tuesday, November 10, 2020 11:04 AM
To: microsoft/WinDev<EMAIL_ADDRESS>Cc: Tim Titus<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [microsoft/WinDev] Measuring WiFi signal strength via the standard API causes packet loss (#59)
Hey all. I just heard back from the engineering lead responsible for our wifi stack.
In short, he echoes some of @HelgeKeckhttps://github.com/HelgeKeck's points:

If the goal is to get signal strength/quality for the currently connected AP, a non-invasive way to get signal quality is to register for WLAN notifications (WlanRegisterNotification) and listen for wlan_notification_msm_signal_quality_change. If dBm RSSI is needed, in first approximation one can apply the MSDN rule: “WLAN_SIGNAL_QUALITY is of type ULONG. This member contains a value between 0 and 100. A value of 0 implies an actual RSSI signal strength of -100 dbm. A value of 100 implies an actual RSSI signal strength of -50 dbm. You can calculate the RSSI signal strength value for wlanSignalQuality values between 1 and 99 using linear interpolation.”
If the goal is to get signal strength/quality for all the currently visible networks: there is an intrinsic contradiction between maintaining high quality/reliability on the channel where the currently-connected AP is located, and requiring to know in details whatever is present/visible on dozens of other channels. Discovery of Wi-Fi networks located on other channels requires the Wi-Fi radio to hop from channel to channel and sit on those channel for short-but-compounding dwell times. As result performance on current channel/connection is seriously affected during scans. In general that should not result in disconnections (if it does there may be other factors, such as driver bugs or low signal quality on channel N), but it will definitely result in packet loss and dramatic bandwidth reduction during the scan (and a scan time can sometimes approach 5 seconds).

New Wi-Fi adapters are coming to market that basically have two radios and will be able to scan with no impact on performance on the connected channel, but their availability in the market is still minor and expected to grow quite slowly.
Alternatively instead WlanScan, one could use WlanGetAvailableNetworkList and get opportunistic network visibility data, but the freshness of that data depends on driver and network conditions, and in general it is not nearly good enough for network analyzer purposes.
In general Wlan APIs have not been designed for such usage.
So, @TimothyTitushttps://github.com/TimothyTitus - while your goal is indeed noble, valid, and useful, it is simply unrealistic to expect current single-radio wifi cards/chipsets to maintain a reliable, high-perf wifi connection whilst instructing the radio to sample each of the available networks.
Hopefully, as Wi-Fi 6https://en.wikipedia.org/wiki/IEEE_802.11ax / MIMOhttps://en.wikipedia.org/wiki/Multi-user_MIMO cards/chipsets that support multiple radios become more prevalent over time, your goals may be easier to achieve. However, as the engineering lead points out, this will take some time to become the norm, and is subject to driver vendors commitment to delivering high quality drivers that support independently driving multiple physical radios, etc.
So, in the meantime, one approach you might want to consider is fitting your engineers' laptops with USB wifi adaptors and using those devices to scan available networks, leaving the built-in Wi-Fi to handle normal traffic.
And if you want to survey Wi-Fi 6 networks, signals, etc. you'll likely need to use Wi-Fi 6 adaptors, as and when they start to (inevitably) arrive in-market.
Oh, and then there'll be Wi-Fi 7/802.11AY, etc. 😉
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WinDev/issues/59#issuecomment-724902117, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUH2RW4B4THOQNISGMBHZDSPGFCTANCNFSM4TKIXJVA.

Timothy,
what you want to do is a WiFi Survey, please take my advice and try to connect to a Certified Wirless Network Engineer (CWNE), search for them on Twitter, Facebook or LinkedIn. Thats what they every day do, they know exactly how you should do that.
Thats also a good starting point.
https://wlanprofessionals.com/

I am working with a couple of vendors in the space already, thank you.
The intent is to assist them with creating tools for troubleshooting, so it’s not that we want to buy an existing tool – moreover build a solution that folks like yourself would want to use to better solve problems than what you currently have.
I should be asking you: What would you want in a tool that you currently can’t do with your existing tool?  (wishlist)
From: HelgeKeck<EMAIL_ADDRESS>Sent: Tuesday, November 10, 2020 1:00 PM
To: microsoft/WinDev<EMAIL_ADDRESS>Cc: Tim Titus<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [microsoft/WinDev] Measuring WiFi signal strength via the standard API causes packet loss (#59)
Timothy,
what you want to do is a WiFi Survey, please take my advice and try to connect to a Certified Wirless Network Engineer (CWNE), search for them on Twitter, Facebook or LinkedIn. Thats what they every day do, they know exactly how you should do that.
Thats also a good starting point.
https://wlanprofessionals.com/
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WinDev/issues/59#issuecomment-724963174, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUH2RQSKYTW6XMSO7ZMSQLSPGSWNANCNFSM4TKIXJVA.

@TimothyTitus The purpose of WLAN_SIGNAL_QUALITY is not to enable you to perform real-time Wi-Fi signal survey, and so is unlikely to suit your goals of performing real-time signal survey.
And, alas, not every Wi-Fi cards/chipsets and/or driver expose accurate and detailed signal RSSI data, so a comprehensive solution is unlikely to be forthcoming in the short term.

Understood.
From: Rich Turner<EMAIL_ADDRESS>Sent: Tuesday, November 10, 2020 1:17 PM
To: microsoft/WinDev<EMAIL_ADDRESS>Cc: Tim Titus<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [microsoft/WinDev] Measuring WiFi signal strength via the standard API causes packet loss (#59)
@TimothyTitushttps://github.com/TimothyTitus The purpose of WLAN_SIGNAL_QUALITY is not to enable you to perform real-time Wi-Fi signal survey, and so is unlikely to suit your goals of performing real-time signal survey.
And, alas, not every Wi-Fi cards/chipsets and/or driver expose accurate and detailed signal RSSI data, so a comprehensive solution is unlikely to be forthcoming in the short term.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WinDev/issues/59#issuecomment-724971526, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARUH2RUM5UVYZPVURW4W2VDSPGUURANCNFSM4TKIXJVA.

As if to make the reasons why one might experience packet loss while surveying all available Wi-Fi signals using a laptop's built-in Wi-Fi card/chipset, this just arrived in my Twitter feed 😜
At up to 5s dwell per network, that'd require up to 27 x 5s = 135 secs to survey available networks in this building!
https://twitter.com/Nick_Craver/status/1326293272076177408

And with that, since there's nothing to actively track here, I'll close this thread.
Thanks everyone for your input, recommendations, and considerations.


Question: Why is the Spring Boot autoconfiguration for FhirRestfulServerConfiguration conditional on a AbstractJaxRsProvider?

This is not an issue, but a question.
Project: hapi-fhir-spring-boot-autoconfigure (v4.2.0)
Class: FhirAutoConfiguration
Code snippet in question:
@Configuration
@ConditionalOnClass(AbstractJaxRsProvider.class)
@EnableConfigurationProperties(FhirProperties.class)
@ConfigurationProperties("hapi.fhir.rest")
@SuppressWarnings("serial")
static class FhirRestfulServerConfiguration extends RestfulServer {
    ...
   }

Question:I was just wondering the reasoning behind why an autoconfiguration of a RestfulServer (Servlet based) is @ConditionalOnClass(AbstractJaxRsProvider.class) (A JAX-RS Server based class)?
If I don't include hapi-fhir-jaxrsserver-base, then my fhir server fails to start (as expected).  Is this the intended behaviour?
Thanks.

Hi @jrahhali - Please see this wiki page for details on where to ask questions about HAPI FHIR: https://github.com/jamesagnew/hapi-fhir/wiki/Getting-Help


How to skip useless import path

I have a import which is not used for javascript
When use this plugin to generate the code, the useless import become a require(xxx)
How to disable this.

@dibenede
I want to generate both the server's code and the browser's javascript code
Some import is only for server like field value validate extend
Need a way to skip this, there are too may other extends can be find on github


Use Feather icons instead of FontAwesome

FontAwesome is nice and all, but the free icons are a bit very thick. After looking at a few icon packs, Feather icons seemed pretty good. The react-icons package gives us very easy access to a large number of icon packs. We use one single icon (search) from Heroicons because I really dislike the one in Feathericon. This works nicely, IMO, because they have the same stroke width and, at least to me, the style (round ends) also fits.

Lisa said it's looking good! :D


Allow to set a background image into the editor

Issue Type: Feature Request
There are some extentions that support set image for editor as background, but when startup there is a spalsh , which is not elegant. It will be awesome if vscode can support background image natively like Jetbrains IDEA.
VS Code version: Code 1.51.1 (e5a624b788d92b8d34d1392e4c4d9789406efe8f, 2020-11-10T23:34:32.027Z)
OS version: Windows_NT x64 10.0.19042

We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding, and happy coding!

Aww
If there's not going to be any first-class support for this, is it possible it will become something one could make as an extension in the future then..?
There already is one that's trying to do this, but it modifies VSCode internals to work, and that doesn't seem particularly great


:sparkles: Custom header

Describe the NEW feature
Hi,
A nice improvement of the current modal would be a customizable header.
It could possibly function something like this:
<template>
  <button @click="isOpen = true">Open modal</button>

  <SwipeModal
    v-model="isOpen"
    snapPoint="auto"
  >
    <template #header>
      <SomeComponent />
    </template>

    <button @click="isOpen = false">Close modal</button>
    Modal content
  </SwipeModal>
</template>

This way I and other would be able to customize the header and change the visuals a bit for Android compared to IOS.
Additional context
No response

Similar functionality has been implemented!
https://vue-swipe-modal-docs.takumaru.dev/documents/custom-style#draghandle

@RoyvanEmpel
Please let me know if this did not solve your issue.

Hi @takuma-ru, this is exactly what I meant! Amazing to see it added this fast.


Can the tenant change on save?

I think it is possible to over-write the tenant-id with the current implementation.
It should throw exception

Fixed in 0.0.25


add getDates function with DELETED_AT constant in SoftDeletes Trait

and laravel user use softDelete like https://github.com/laravel/docs/pull/1020

Not sure this is the right way to go, if the Model itself has getDates method it will be overwritten.

This seems to delivery better what I want.
i will pull request refectory code like below code when this commit accepted
public function getDates()
{
    return array_merge(parent::getDates(), [static::DELETED_AT]);
}

:+1:

Why not just change your commit?


Path to no-poster.jpg and user-profile thumb image 404's when using base path

Describe the bug
Path to no-poster.jpg and user-profile thumb image 404's when using base path
To Reproduce
Steps to reproduce the behavior:

add a base path
See error

Expected behavior
no 404 :P
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

OS: docker
Browser chrome

@AshDyson is this a duplicate of #243 or this is different?

Lol I even looked for a similar issue..🤦♂

It's the same cause but different bug. Worth having both open

Lol I even looked for a similar issue..🤦♂ I did make it at 4AM though...

I was just making sure. You know I love you 😘

Fix coming in next patch, fix referenced in #243


Problems when using splunkdev-cli

Hi, thanks for the response of the last issue, a new problem I found today:
I can't use splunkdev-cli correctly, here is the error message:
wguan-mbp:Splunk wguan$ splunkdev reload
Splunk: /Applications/Splunk
[?] Current task requires configuration. Do you want to continue? Yes
[?] Splunkd username: admin
[?] Do you want to store password? (will be stored in base64 text under user home folder): No/N)
[?] Splunkd scheme: https
[?] Splunkd host: localhost
[?] Splunkd port: 8089
[?] Splunkd version: 6.0
>> Local Npm module "grunt-contrib-watch" not found. Is it installed?

Running "splunk-services:reload-apps" (splunk-services) task
[?] admin password is required for connection to splunkd: **********
Fatal error: this.restartSplunk is not a function
ERRCODE: 3

wguan-mbp:Splunk wguan$ splunkdev watch
Splunk: /Applications/Splunk
>> Local Npm module "grunt-contrib-watch" not found. Is it installed?

Running "splunk-watch:*" (splunk-watch) task

Watching all...
Warning: Task "watch" not found. Use --force to continue.

Aborted due to warnings.
ERRCODE: 3

Thanks!
By the way, https://github.com/splunk/splunk-dev-cli is not accessible... it's that a private repo? I'd like to make some contributions to it if that's possible. :)

It's also prompt Splunk: /Applications/Splunk Local Npm module "grunt-contrib-watch" not found. Is it installed?
Seems need add it to dependency?
Just have a look of the package.json of "splunk-dev-cli", as below:
  "dependencies": {
    "async": "^1.5.0",
    "gaze": "^1.0.0",
    "lodash": "^3.10.1",
    "tiny-lr": "^0.2.1"
  },
  "description": "Run predefined tasks whenever watched file patterns are added, changed or deleted",
  "devDependencies": {
    "grunt": "^0.4.5",
    "grunt-cli": "^0.1.13",
    "grunt-contrib-internal": "^0.4.14",
    "grunt-contrib-jshint": "^1.0.0",
    "grunt-contrib-nodeunit": "^1.0.0",
    "grunt-jscs": "^2.8.0",
    "underscore.string": "^3.2.2"
  },

Unfortunately, this tool isn't Splunk supported and we weren't planning on opening up the repository. For help with these sort of questions, I would recommend visiting our community site at https://answers.splunk.com.
Sorry about that.

Thanks, got it!
Will ask for help in community, closing.


Path Configuration Settings Block and Arrays 🤔

When the settings block of the path configuration json file contains an array GSON crashes with the following (example path configuration file below):
Caused by: java.lang.IllegalStateException: Expected a string but was BEGIN_ARRAY at line 6 column 14 path $.settings.
        at com.google.gson.stream.JsonReader.nextString(JsonReader.java:826)
        at com.google.gson.internal.bind.TypeAdapters$16.read(TypeAdapters.java:402)
        at com.google.gson.internal.bind.TypeAdapters$16.read(TypeAdapters.java:390)
        at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:187)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:145)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
        	... 50 more

I see that this is because the TurboPathConfigurationSettings file only supports key/value pairs as per the docs:
/**
* Gets the top-level settings specified in the app's path configuration.
* The settings are map of key/value `String` items.
*/

Is there a way to support arrays of objects in the settings block? It could even be a map of some sort so that it's generic.
I took a look at some custom GSON Deserializers but it was not immediately clear how to best model this so I wanted to run it by here. If not, how would you recommend we model this below in the path config?
The settings block has some code that looks like this, note the tabs array in the settings - this is the array that causes the problem.
{
  "settings": {
    "screenshots_enabled": true,
    "register_with_account": true,
    "require_authentication": false,
    "tabs": [
      {
        "title": "Home",
        "path": "/",
        "image_name": "house"
      },
      {
        "title": "What's New",
        "path": "/announcements",
        "image_name": "megaphone"
      },
      {
        "title": "Notifications",
        "path": "/notifications",
        "image_name": "bell",
        "show_notification_badge": true
      }
    ]
  },
  "rules": [ ... ]
}

@donnfelker I agree that this is currently a weak spot in the path configuration. Let me think about this a bit more, because we need to provide backwards compatibility with existing settings configs in the wild. We might need to leave settings as simple key/value and add a new default block that we can let the app provide a deserializer or something similar.

In the meantime, you could consider including string-escaped json in your settings value and deserialize the String value on your own.

@jayohms Good point, maybe I could just do that for now (send down some escaped json). Thanks for the idea. Not optimal, but it will work until a solution is determined. Thanks.

@jayohms I think this also exposes a potential bug. If the settings are as above (tabs is an array), the app will crash. This exposes a potential issue with the configuration parsing. If the Server returns an invalid path config, it could crash the app.
What do you think about some sort of try/catch around that logic and then logging an error if it cannot parse?
This is the error that is thrown if the parsing bombs (and kills the app).
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected a string but was BEGIN_ARRAY at line 1 column 110 path $.settings

Yep, that's a good call. There's no reason to crash the app if the remote config cannot be parsed. However, it might make sense to crash the app if the packaged local config parsing fails, since you shouldn't ship a build with that issue. I'll take a look at it after the new year.
I also recommend adding (at least) a smoke test on the Rails side. Something like:
test/integration/mobile_app_configuration_test.rb
require "test_helper"

# This is a sanity check to ensure the file exists, is accessible, and can be parsed
# it doesn't test it is *correct*
class MobileAppConfigurationTest < ActionDispatch::IntegrationTest
  test "iOS: v1 configuration is accessible and parseable" do
    get "/configurations/ios-v1.json"
    assert_response :ok
    assert response.parsed_body["rules"].count > 1
    assert response.parsed_body["settings"].count > 1
  end

  test "Android: v1 configuration is accessible and parseable" do
    get "/configurations/android-v1.json"
    assert_response :ok
    assert response.parsed_body["rules"].count > 1
    assert response.parsed_body["settings"].count > 1
  end
end


Direct references to service classes will cause problems

I've been able to login in to the latest candidate branch Rowan (sha f6aa2dd). However, I believe that the method reference to the services classes will cause a problem. e.g. RwGsPlatform>>projectServiceClass, etc
If I compile a new version of a service class, this method will still point to the old version of the class. At least that's what I saw when I was implementing support for this in Jadeite.
I fixed the problem by having the new methods reference the class through the user profile. There may be better solutions.
projectServiceClass
^System myUserProfile symbolList objectNamed: #RowanProjectService

Compiled references to a class with a new version should not cause a problem - compiled in references to classes should compile in a reference to the association, not a direct reference to the class itself ... if you are seeing an issue, then either the method is compiled with a reference to the wrong association (possible given some of the things that I'm doing during the bootstrap step --- although I haven't explicitly changed the bootstrap process in my recent work, it is always possible that something odd might be going on) and/or we are looking at a completely different class ...
I will take a look and see if I can characterize the issue further ...

It's not inconceivable that my other image got into a bad state.
Even though your change looks like what I did in my development environment, I'm not seeing the problems since I got your code.
I'll close the issue and reopen if I see anything similar.

Okay ... this little experiment (run in a fresh build) indicates that they are all pointing at the same class:
| assoc |
assoc := RowanKernel associationAt: #RowanProjectService.
{Rowan projectServiceClass asOop.
RowanProjectService asOop.
assoc value asOop.
(System myUserProfile symbolList objectNamed: #RowanProjectService) asOop}
 anArray( 40154113, 40154113, 40154113, 40154113)

This doesn't rule out different associations --- which could also lead to your problem ... I will poke around a bit more --- while the iron is hot ...

What happens if you compile a new version of the class?

What happens when you compile a new version of the class?

Heh - touche. So far I don't see any problems.

Right now I am trying to figure out how to determine whether or not there is an association compiled into the methods (the most likely explanation for a problem if there is one ... is that a direct reference to the class is compiled into the method --- I seem to recall that this is actually done in some cases, especially for Kernel classes. I am not seeing literal references to the name of the class, when I query the method (which is beginning to look suspicious), but I may be doing it wrong. I will probably need to work with Allen to verify that the methods do indeed contain references to the associations and if not find out what we need to do to guarantee that associations are used ...

Okay ... I think that the final answer is that things do look correct in the current build ... the following confirms that we are referencing the proper associations in each of the methods that reference the class:
(ClassOrganizer new referencesToObject: (RowanKernel associationAt: #RowanProjectService))
	collect: [:meth | meth inClass printString, (meth inClass isMeta ifTrue: [' class >>'] ifFalse:[ '>>']), meth selector]
 anArray(
'RowanPackageService>>createSamplePackage',
'RowanPackageService>>createPackageNamed:inProject:',
'RowanPackageService>>createPackage',
'RwGsPlatform>>projectServiceClass',
'RwRowanProjectIssuesTest>>testIssue150_branches')

and this confirms that both RowanKernel and Globals (my workaround while waiting for you to change Jadeite) reference the same assocation:
{(RowanKernel associationAt: #RowanProjectService) asOop.
(Globals associationAt: #RowanProjectService)  asOop
} anArray( 34839809, 34839809)

Sooo we're good unless we catch it misbehaving ...

It seems that I have "caught it misbehaving ..."...
I've written a test with a reference to RwProjectConfigurationVisitor compiled into it ... :
testVisitProjectCompoundConfiguration

	| url rowanSpec config visitor |
	rowanSpec := (Rowan image _projectForNonTestProject: 'Rowan') specification.
	url := 'file:' , rowanSpec repositoryRootPath , '/test/configs/RowanProjectCompoundConfiguration.ston'.

	config := RwProjectCompoundConfiguration fromUrl: url.

	visitor := RwProjectConfigurationVisitor new.
	visitor visit: config.

However, as Eric noted above, the class has started misbehaving in that it is not responding properly to messages ... and this time, I was able to confirm that association for the RwProjectConfigurationVisitor class compiled into the method does not match the current association present in RowanKernel symbol dictionary (the array should not be empty):
(ClassOrganizer new referencesToObject:
	(RowanKernel associationAt: #RwProjectConfigurationVisitor))
	collect: [:meth |
		meth inClass printString,
			(meth inClass isMeta
				ifTrue: [' class >>']
				ifFalse:[ '>>']), meth selector]
 anArray( )

Since the problem does not seem to be easily reproducible I will spend some time examining the logs and my memory to see if I can reconstruct the work that I've done in this stone leading to this problem ...

I've got a reproducible test case (based on commit 9be1e4cf86f4e8bed6742304b05dd4c8f2cf29f0):
run
Object rwSubclass: 'RwProjectConfigurationVisitor'
	instVarNames: #( packageNames visitedConfigurationNames xxx)
	classVars: #()
	classInstVars: #()
	poolDictionaries: #()
	category: 'Rowan-Configurations'
	options: #().
RwAbstractTest rwSubclass: 'RwProjectConfigurationsTest'
	instVarNames: #( xxx)
	classVars: #()
	classInstVars: #()
	poolDictionaries: #()
	category: 'Rowan-Tests'
	options: #().
Object rwSubclass: 'RwProjectConfigurationVisitor'
	instVarNames: #( packageNames visitedConfigurationNames xxx yyy)
	classVars: #()
	classInstVars: #()
	poolDictionaries: #()
	category: 'Rowan-Configurations'
	options: #().
RwProjectConfigurationsTest debug: #testVisitProjectCompoundConfiguration
%

Note that the intermediate new version of RwProjectConfigurationsTest is required...
Without the new version of RwProjectConfigurationsTest, the yyy instance variable is visible, which indicates the method is compiled with a reference to the correct association:
-----------------------------------------------------
GemStone: Error         Nonfatal
a Halt occurred (error 2709)
Error Category: 231169 [GemStone] Number: 2709  Arg Count: 1 Context : 38843905 exception : 38831617
Arg 1: [20 sz:0 cls: 76289 UndefinedObject] nil
topaz 1> fr 4
4 RwProjectConfigurationsTest >> testVisitProjectCompoundConfiguration @15 line 12   [methId 40497153]
    receiver [38830593 sz:1 cls: 39994625 RwProjectConfigurationsTest] aRwProjectConfigurationsTest
    visitor [38828801 sz:4 cls: 38836737 RwProjectConfigurationVisitor] aRwProjectConfigurationVisitor
    config [38828033 sz:5 cls: 40195329 RwProjectCompoundConfiguration] aRwProjectCompoundConfiguration
    url [38827265 sz:83 cls: 74753 String] file:$ROWAN_PROJECTS_HOME/Rowan/test/configs/RowanProjectCompoundConfiguration.ston
    rowanSpec [41985281 sz:10 cls: 34902273 RwSimpleProjectSpecification] aRwSimpleProjectSpecification
(skipped 1 evaluationTemps)
topaz 1> obj1 @38828801
[38828801 sz:4 cls: 38836737 RwProjectConfigurationVisitor] a RwProjectConfigurationVisitor
  packageNames        [38825729 sz:5 cls: 102401 Set] a Set
  visitedConfigurationNames [38825217 sz:5 cls: 102401 Set] a Set
  xxx                 [20 sz:0 cls: 76289 UndefinedObject] nil
  yyy                 [20 sz:0 cls: 76289 UndefinedObject] nil

With the new version of RwProjectConfigurationsTest created, the yyy instance variable is not seenm indicating the association referencing RwProjectConfigurationVisitor is not correct:
-----------------------------------------------------
GemStone: Error         Nonfatal
a Halt occurred (error 2709)
Error Category: 231169 [GemStone] Number: 2709  Arg Count: 1 Context : 38816513 exception : 38820609
Arg 1: [20 sz:0 cls: 76289 UndefinedObject] nil
topaz 1> fr 4
4 RwProjectConfigurationsTest >> testVisitProjectCompoundConfiguration @15 line 12   [methId 38816769]
    receiver [38841345 sz:2 cls: 38818817 RwProjectConfigurationsTest] aRwProjectConfigurationsTest
    visitor [38814721 sz:3 cls: 38819329 RwProjectConfigurationVisitor] aRwProjectConfigurationVisitor
    config [38813953 sz:5 cls: 40195329 RwProjectCompoundConfiguration] aRwProjectCompoundConfiguration
    url [38813185 sz:83 cls: 74753 String] file:$ROWAN_PROJECTS_HOME/Rowan/test/configs/RowanProjectCompoundConfiguration.ston
    rowanSpec [41985281 sz:10 cls: 34902273 RwSimpleProjectSpecification] aRwSimpleProjectSpecification
(skipped 1 evaluationTemps)
topaz 1> obj1 @38814721
[38814721 sz:3 cls: 38819329 RwProjectConfigurationVisitor] a RwProjectConfigurationVisitor
  packageNames        [38811649 sz:5 cls: 102401 Set] a Set
  visitedConfigurationNames [38811137 sz:5 cls: 102401 Set] a Set
  xxx                 [20 sz:0 cls: 76289 UndefinedObject] nil

Now it's time to characterize and fix ...

It appears that the source of this problem lies in how RwGsPatchSet creates the tempSymbols:
setupForApply

	"Copy the entire namespace from the user's transient SymbolList into a temporary SymbolDictionary in a temporary
	SymbolList, the tempSymbols. The tempSymbols, once suitably modified, will be used as the environment in which
	to compile methods during this apply operation."

	| symbolList |
	tempSymbols := SymbolDictionary new.
	symbolList := Rowan image symbolList.	"If there are any duplicated symbols, we only want the one that will be found first one,
	so we copy in reverse order of search order, thereby overwriting later definitions with earlier ones."
	symbolList
		reverseDo: [ :dict | dict keysAndValuesDo: [ :aKey :aValue | tempSymbols at: aKey put: aValue ] ]

New associations are always created for all classes, however, in RwGsMethodPatch>>compileUsingNewClasses:andExistingClasses:, we are using this symbol dictionary with new Associations for each class as a symbol list for adding and recompiling methods for classes with new versions:
compileUsingNewClasses: createdClasses andExistingClasses: tempSymbols

	| sourceString symbolList protocol |
	self primeBehaviorNewClasses: createdClasses andExistingClasses: tempSymbols.
	behavior
		ifNil: [ self error: 'Class ' , self className printString , ' not found.' ].

	sourceString := methodDefinition source.
	symbolList := SymbolList with: tempSymbols.
	protocol := (methodDefinition propertyAt: 'protocol') asSymbol.
	compiledMethod := behavior
		compileMethod: sourceString
		dictionaries: symbolList
		category: protocol
		intoMethodDict: false
		intoCategories: nil
		intoPragmas: nil
		environmentId: self methodEnvironmentId

will now create a fix and create some tests to cover this area ... to expose this bug we need to have new versions of at two interrelated classes ...


A compiler bug with typeof(nil.not_nil!.foo)

The code
typeof(nil.not_nil!.foo)

gives a compiler error of the form
BUG: `typeof(nil.not_nil!
)` at play:1:1 has no type

The method name foo does not seem to matter.
I am running Crystal 0.23.1 [e2a1389] (2017-07-13) LLVM 3.8.1.

Well it makes sense that it complains about calling not_nil! on a value that can't be anything else than nil.
However this shouldn't be labeled as a compiler bug because it is simply a invalid code.

Yes, this is absolutely a compiler bug because we get an internal compiler exception instead of a nice error message.

This is actually working well in master (not crashing the compiler)

Ah, no, doing p typeof(...) doesn't crash it.


Unable to provide explicit precedence on combinations such as UNION and INTERSECT

It does not seem to be possible to be explicit about the precedence when applying more than one combination.
In the example below, without the additional parentheses the INTERSECT will take precedence over the UNION.
(SELECT 1

UNION

SELECT 2)

INTERSECT

SELECT 2

Is there a way to workaround this issue and add parentheses as needed to enforce the desired precedence?

I'm having the same issue

Not 100% identical but with subqueries you can achieve the same result
var query =
new Query().From(
    new Query("A").Union(new Query("B")).As("U1")
).Intersect(new Query("C"));

Union and Intersect example


Formatting number of lines bug, processDiffOutput can not handle larger line numbers than original file

Expected behavior
Formatting sql with sqlfmt through 'Format document with..'  should return formatted document
Input:
with
    source_data as (
        select 1 as col_1, 2 as col_2, 3 as col_3 union all select 3 as id_1, 4 as id_2, 2 as col_3
    )
select * from    source_data

Expected Output:
with
    source_data as (
        select 1 as col_1, 2 as col_2, 3 as col_3
        union all
        select 3 as id_1, 4 as id_2, 2 as col_3
    )
select *
from source_data

Actual behavior
Input:
with
    source_data as (
        select 1 as col_1, 2 as col_2, 3 as col_3 union all select 3 as id_1, 4 as id_2, 2 as col_3
    )
select * from    source_data

Formatting sql with sqlfmt through 'Format document with..' --> dbt Power User (dbtDocumentFormattingEditProvider) throws the following error:

Note:
When adding empty lines in the input (up to 8 lines in total), the bug does not appear
Input :
with
    source_data as (
        select 1 as col_1, 2 as col_2, 3 as col_3 union all select 3 as id_1, 4 as id_2, 2 as col_3
    )
select * from    source_data

result: successfully formatted :
with
    source_data as (
        select 1 as col_1, 2 as col_2, 3 as col_3
        union all
        select 3 as id_1, 4 as id_2, 2 as col_3
    )
select *
from source_data

Running sqlfmt from command line works fine for both inputs.
Steps To Reproduce
Format a SQL file from the 'Format Document with.. ' that will generate more lines than the current file has.
System:
dbt Power User :  0.11.6
sqlfmt : 0.17.0
VSCode :  1.76.1
Log output/Screenshots
My first guess would be that processDiffOutput in  dbtDocumentFormattingEditProvider is not taking into account the extra lines that sqlfmt might generate. Hence the 'Illegal value for line' Error.
I have minimal experience with typescript, but I am happy to give it a go at resolving this bug,
Operating System
Mac OSX
dbt version
1.4.2
dbt Adapter
big-query
dbt Power User version
0.11.6
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Hi @b-ned, please have a try to fix the issue! It is very easy to open the project in debug mode with your own dbt project and try to fix it.

Hi @mdesmet , thanks for the explanation, I will give it a go.

Hi @mdesmet,
I managed to solve the bug, by taking into account document.lineCount the parser. My forked branch: https://github.com/b-ned/vscode-dbt-power-user/tree/bugfix/formatting-lines-bug/src
I found another bug, during the testing of my changes (which is also present in the original master).
I solved this one in the same branch.
This second bug caused swapped lines at the end of a diff chunk.
Example input:
with
    cte_1 as (
        select 1 as col_1, 1 as col_2, 1 as col_3 union all select 2 as id_1, 2 as id_2, 2 as col_3
    ),  -- cte_1

    cte_2 as (
        select 3 as col_1, 3 as col_2, 3 as col_3
        union all
        select 4 as id_1, 4 as id_2, 4 as col_3
    ),  -- cte_2
    cte_3 as (
        select 5 as col_1, 5 as col_2, 5 as col_3
        union all
        select 6 as id_1, 6 as id_2, 6 as col_3
    ),  -- cte_3

select *
from cte_1

Buggy Output:
with
    cte_1 as (
        select 1 as col_1, 1 as col_2, 1 as col_3
        union all
        select 2 as id_1, 2 as id_2, 2 as col_3
    ),  -- cte_1

        select 3 as col_1, 3 as col_2, 3 as col_3
    cte_2 as (
        union all
        select 4 as id_1, 4 as id_2, 4 as col_3
    ),  -- cte_2
    cte_3 as (
        select 5 as col_1, 5 as col_2, 5 as col_3
        union all
        select 6 as id_1, 6 as id_2, 6 as col_3
    ),  -- cte_3

select *
from cte_1

Could you add me to the repo so I can submit a PR?


4 - PEP format formalisation

Left a brief note in the peps/README.rst about the intention and structure of future PEPs
Also moved the note about not using prestans3 yet to the top of the page for better clarity.

Coverage remained the same at 6.452% when pulling 9cf631a07c1d273820be889fb5e6e027a8d6e58c on 4 into 2230dafe81eacc4b32434d35e4366f25fcbc7036 on master.

Coverage remained the same at 6.452% when pulling 9cf631a07c1d273820be889fb5e6e027a8d6e58c on 4 into 2230dafe81eacc4b32434d35e4366f25fcbc7036 on master.

Coverage remained the same at 6.452% when pulling a8bf9fe2671867073cb8183e9d84ed27f2d41aa1 on 4 into 2230dafe81eacc4b32434d35e4366f25fcbc7036 on master.


Fix iOS generation for @ReactNativeFlow methods

Before
RCTBridgeMethodWrapper("testFlow") { args, promise -> testFlow(args as List?, promise as PromiseIOS)},
RCTBridgeMethodWrapper("testFlowNullable") { args, promise ->  testFlowNullable(args as List?, promise as PromiseIOS)},
RCTBridgeMethodWrapper("testFlowComplex") { args, promise -> testFlowComplex(args as List?, promise as PromiseIOS)},
RCTBridgeMethodWrapper("testFlowType") { args, promise -> testFlowType(args as List?, args[0] as Double, promise as PromiseIOS)})

After
RCTBridgeMethodWrapper("testFlow") { args, promise -> testFlow(args[0] as String?, promise as PromiseIOS)},
RCTBridgeMethodWrapper("testFlowNullable") { args, promise -> testFlowNullable(args[0] as String?, promise as PromiseIOS)},
RCTBridgeMethodWrapper("testFlowComplex") { args, promise -> testFlowComplex(args[0] as String?, promise as PromiseIOS)},
RCTBridgeMethodWrapper("testFlowType") { args, promise -> testFlowType(args[0] as String?, args[0] as Double, promise as PromiseIOS)})


Replace request with http.

We want to replace request with http.
A pass at this was done in #122, but is no longer valid because we let it drift too far out of date.
This issue exists to track this work.

Note, if we want to add support for the browser, then we should look at using something like axios as our transport layer.

I am not that familiar with how people use a node library in the browser, but my understanding is that http module is already supported by browserify. Would that not work?
It is a 'nice to have' thought to be able to work in a browser environment, but if it requires weird contortions for this library to get there then perhaps we should re-think.
BTW, another alternative to using raw http would be to use https://github.com/mikeal/r2 which, being built around fetch supports both node and the browser. It is pretty minimal too. One thing @matthewloring  didn't like about it were these custom promise properties that are probably not best for performance (not that is a pressing concern in this library).

I have the first cut of this over in #182.  Still working on a few tests and cleanup. Thoughts welcomed!

This is fixed in the next branch.  As soon as the 1.0 release is ready it will go out.


Adds Block operator

This PR adds a block operator to Ginkgo. Similar to Combination, and Composition, this linear operator is build up from other linear operator. It represents block matrices of the form:
Op = \begin{bmatrix}
A & B \\
C & D
\end{bmatrix}

Individual blocks can be 0, by using a nullptr, but no row or column can consist only of nullptr. The block operator does not need to be square.
The block operator can be created in the following way:
std::shared_ptr<LinOp> A;
std::shared_ptr<LinOp> B;
std::shared_ptr<LinOp> C;
std::shared_ptr<LinOp> D;
auto bop = BlockOperator::create(exec, {{A, B}, {C, D}});

The passed-in LinOps are copied to the correct executor if necessary.
The block operator can be applied to Dense vectors, or block operators (currently only single block column).
Todo:

[x] documentation
[x] apply with >1 block column -> not necessary due to below
[x] maybe separate concerns and use block operator only for matrices and not for vectors -> only use BlockOperator for block matrices, not for vectors

LGTM in general. Do you have some example or integration request this feature?

I did not intend to write an example for that. I think it has been mentioned somewhere before, but adding a new example for each new feature seems a bit overkill to me. Something like this could best be handled through documentation, but of course our current setup is not well suited for that.

* No EnableCreateMethod already?

Yes. I think that was a great suggestion by @upsj, so I'm using it, since it also has no effect on the user interface.

* multiple right hand side or multiple col block in right hand side

Since I'm not allowing using BlockOperator for block vectors, there should be no confusion here anymore. I decided to disallow block vectors because it requires non-const access to the blocks, and those block vectors could not be used in solvers anyway. So if we want to support block-vectors, that would have to be its own class.

* empty row and empty col allowance? It should be okay when only apply but it may not make sense when using them in solver.

It would be ok if the passed-in blocks are empty matrices (think of Csr::create(exec)). I only do not allow a row/column full of nullptrs, because that complicates determining the overall size of the block operator.
@yhmtsai


Fix docs-release prow job

Similarly to what happened to our e2e prow jobs, doc releases are
failing because they are pointing to an old version of acktest
This patch fixes that by pointing to the most recent ack-test commit
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

/lgtm


Schematica Works on all servers but This one?

I have this problem where schematica works on every server except  this one. Is this server side or Client Side?

I believe schematica allows for a server-side version that can be set to allow all, nothing, or just overlay. What server is it?

The server most likely disabled the mod. Check the logs, you should see a message that says the following: ```
Server capabilities{printer=false, save=false, load=false}


Standing Animation Prevents Export

Having a standing animation will prevent exporting the model. It will not show the message that the export succeeded.
Replication:
Create a standing animation with at least two frames
try to export the png.
Really amazing mod, btw :)

On the animation tab click the Skin Layer settings button, then press OK. This popup 'should' appear when exporting a model, and it sets up the animation exporter. Will be fixed in the next release.


PLANNER-617 Add optaplanner-wb-upstream-model definitions

Relates to https://github.com/droolsjbpm/optaplanner-wb/pull/94.

+1


Create @Authorized decorator

Separate what @CurrentUser and @Authorized does

@CurrentUser returns a UserModel if it exists, undefined otherwise
@Authorized does nothing if user is authorized, returns an Unauthorized exception otherwise

@Authorized follows this: https://github.com/typestack/routing-controllers#authorized-decorator

Potentially make an @OptionalAuthorized middleware as well

the reason for forced unwrapping is for a method like getSavedPostsByUserId. @ currentUser is used but we need the userId to then leftJoin the saved column, which means the user we get will not be undefined, even though type inference says it might be. This is a case where we want to force unwrap the UserModel. Addressing this issue does not seem to address the need for the forced unwrapping of a (UserModel | undefined) type


doc(xresources): add examples for opacity and disableAlphaCorrection

not sure about the wording, also my english is quite bad

I think is better for the file to stay together with the code
On Tue, 7 Jul 2020 at 17:00, neeasade<EMAIL_ADDRESS>wrote:

@neeasade commented on this pull request.
In .Xresources
https://github.com/gnotclub/xst/pull/99#discussion_r450932652:

@@ -57,6 +57,15 @@ st.boxdraw_bold: 0
! braille (U28XX):  1: render as adjacent "pixels",  0: use font
st.boxdraw_braille: 0

+! opacity==255 means what terminal will be not transparent, 0 - fully transparent
+! (float values in range 0 to 1.0 could be used instead)
+st.opacity:      255
+! (0|1) don't pre-multiply color values of the pixels when using transparency
+! (useful for the systems where composite manager not running all the time,
+! as color pre-multiplication will make the "opaque" colors look darker/lighter
+! without the composition)
+st.disableAlphaCorrection: 0
sameee. I think disableAlphaCorrection should maybe be changed to
snake_case, and then maybe we consider moving the example .Xresources file
to the wiki
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/gnotclub/xst/pull/99#discussion_r450932652, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAMUG5NC7XHMZOTKM5DQZRTR2M2CNANCNFSM4OS4VEMA
.


Mark known spurious frequencies in a Kepler Periodogram?

The Kepler Data Characteristics Handbook contains a wonderful table listing all the known spurious frequencies in Kepler short cadence data (plus explanations).  I wonder if we should provide an easy way to plot them, e.g. Periodogram.plot(show_spurious=True).  Unfortunately this is Kepler-specific so it would make Periodogram a lot less generic.

Slightly different idea: should we emit a warning if e.g. the estimate_numax() method returns one of the spurious frequencies?  (Caveat: Periodogram does not know if the data came from Kepler or TESS.)

Great idea. Couple caveats / ideas:

From the footnotes, looks like it likely wasn't updated past Q7, so frequencies have likely shifted / change quarter-to-quarter.

As you note some of these could be totally different for K2, and campaign-dependant.

I made a note to ask Doug, Steve et al. how these were calculated back in the day. My guess is based off the PDC CBVs. If so, (or even if they did it another one), one idea is to calculate them for all K2 campaigns based on the CBVs for each, which should capture well characteristic frequencies --- if useful to community, this strikes me as a good project potentially for @KenMighell

I'm going to close this issue for now because it hasn't come up yet as something that is required by an active use case.  We can re-open when a well-identified need for this feature appears!


[AutoPR storagesync/resource-manager] [Hub Generated] Review request for Microsoft.StorageSync to add version stable/2019-03-01

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/5941

(message created by the CI based on PR content)

Codecov Report

Merging #5210 into master will decrease coverage by 0.61%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #5210      +/-   ##
==========================================
- Coverage   49.24%   48.62%   -0.62%
==========================================
  Files        6330     6538     +208
  Lines      179278   185429    +6151
==========================================
+ Hits        88285    90167    +1882
- Misses      90993    95262    +4269

Impacted Files
Coverage Δ

...ure/mgmt/iothub/models/endpoint_health_data_py3.py
50% <0%> (-7.15%)
:arrow_down:

...n/face/operations/large_person_group_operations.py
21.68% <0%> (-1.09%)
:arrow_down:

...ces/vision/face/operations/face_list_operations.py
19.32% <0%> (-0.84%)
:arrow_down:

.../face/operations/person_group_person_operations.py
17.88% <0%> (-0.83%)
:arrow_down:

...operations/large_person_group_person_operations.py
17.88% <0%> (-0.83%)
:arrow_down:

...sion/face/operations/large_face_list_operations.py
17.64% <0%> (-0.68%)
:arrow_down:

...azure/mgmt/iothub/models/routing_properties_py3.py
100% <0%> (ø)
:arrow_up:

...mt-iothub/azure/mgmt/iothub/operations/__init__.py
100% <0%> (ø)
:arrow_up:

...azure/mgmt/iothub/models/iot_hub_properties_py3.py
100% <0%> (ø)
:arrow_up:

...re-mgmt-iothub/azure/mgmt/iothub/iot_hub_client.py
100% <0%> (ø)
:arrow_up:

... and 213 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b60fec4...064dfe4. Read the comment docs.


s/Show/Debug

Show is deprecated, and f32 and f64 don't have Show instances on the latest nightly. This fixes the build for me.

Thanks!


cert-manager-webhook Firewalld Issues

Describe the bug:
When deploying cert-manager (tested with versions v1.2.0 \ v1.3.1 \ v.1.4alpha ) using Helm all resources show Running, but when I try to create either a SelfSigned Issuer \ ClusterIssuer, I get the following Error:
Error from server (InternalError): error when creating "clusterIssuer.yaml": Internal error occurred: failed calling webhook "webhook.cert-manager.io": Post "https://cert-manager-webhook.cert-manager.svc:443/mutate?timeout=10s": dial tcp <IP_ADDRESS>:443: i/o timeout

Tested Name resolution, using a test pod (on kube-system NS) and the name "cert-manager-webhook.cert-manager.svc" gets resolved successfully.
Tested the port connection, using a pod (on kube-system NS) and Netcat, and I am able to reach port 443/tcp of the webhook container.
I have the following ports enabled on Firewalld (note that even with these ports enabled I am not able to deploy any cert-manager Custom Resources):
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp1s0
  sources:
  services: cockpit dhcpv6-client ssh
  ports: 9345/tcp 6443/tcp 8472/udp 10250/tcp 2379/tcp 2380/tcp 30000-32767/tcp 80/tcp 443/tcp 2379-2380/tcp 4240/tcp 4244/tcp 4245/tcp 6942/tcp 9090/tcp 9876/tcp 9890/tcp 9891/tcp 9892/tcp 9893/tcp
  protocols:
  masquerade: yes
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

ONLY After Disabling Firewalld I am able to deploy ClusterIssuers and Issuers without any problem.
Expected behaviour:
Even with Firewalld Enabled cert-manager should be able to create Issuers.
Steps to reproduce the bug:
Deploy RKE2 Single Node Cluster with Selinux \ CIS Becnhmark \ Firewalld Enabled.
Install Cert-Manager using the helm command:
$ helm install \
  cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --version v1.3.1 \
  --set installCRDs=true

Try to create a ClusterIssuer:
$ cat clusterIssuer.yaml

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: selfsigned-cluster-issuer
spec:
  selfSigned: {}

$ kubectl apply -f clusterIssuer.yaml

Reports the error:
Error from server (InternalError): error when creating "clusterIssuer.yaml": Internal error occurred: failed calling webhook "webhook.cert-manager.io": Post "https://cert-manager-webhook.cert-manager.svc:443/mutate?timeout=10s": dial tcp <IP_ADDRESS>:443: i/o timeout

Disable Firewalld:
sudo systemctl disable --now firewalld

Able to successfully create ClusterIssuer:
kubectl apply -f clusterIssuer.yaml
clusterissuer.cert-manager.io/selfsigned-cluster-issuer created

Environment details::
Nodes:
NAME                STATUS   ROLES                       AGE    VERSION          INTERNAL-IP       EXTERNAL-IP   OS-IMAGE         KERNEL-VERSION          CONTAINER-RUNTIME
rkecluster1.dfvaz   Ready    control-plane,etcd,master   128m   v1.20.6+rke2r1   <IP_ADDRESS>   <none>        CentOS Linux 8   4.18.0-240.el8.x86_64   containerd://1.4.4-k3s1
rkecluster2.dfvaz   Ready    control-plane,etcd,master   112m   v1.20.6+rke2r1   <IP_ADDRESS>   <none>        CentOS Linux 8   4.18.0-240.el8.x86_64   containerd://1.4.4-k3s1
rkecluster3.dfvaz   Ready    control-plane,etcd,master   116m   v1.20.6+rke2r1   <IP_ADDRESS>   <none>        CentOS Linux 8   4.18.0-240.el8.x86_64   containerd://1.4.4-k3s1

SELinux: Enforcing   (audit logs don't report any errors)
Firewalld: Enabled
Cilium CNI Version:  v0.6
RKE2 Version: 1.20
Cert-Manager: v1.3.1
Helm Version: v3.5.4
/kind bug

Just to show that indeed all pods show Running \ Ready State:
NAME                                           READY   STATUS    RESTARTS   AGE
pod/cert-manager-85f9bbcd97-fk6rh              1/1     Running   0          43m
pod/cert-manager-cainjector-74459fcc56-b8gx5   1/1     Running   0          43m
pod/cert-manager-webhook-57d97ccc67-6tnwd      1/1     Running   0          43m

NAME                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/cert-manager           ClusterIP   <IP_ADDRESS>     <none>        9402/TCP   43m
service/cert-manager-webhook   ClusterIP   <IP_ADDRESS>   <none>        443/TCP    43m

NAME                                      READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/cert-manager              1/1     1            1           43m
deployment.apps/cert-manager-cainjector   1/1     1            1           43m
deployment.apps/cert-manager-webhook      1/1     1            1           43m

NAME                                                 DESIRED   CURRENT   READY   AGE
replicaset.apps/cert-manager-85f9bbcd97              1         1         1       43m
replicaset.apps/cert-manager-cainjector-74459fcc56   1         1         1       43m
replicaset.apps/cert-manager-webhook-57d97ccc67      1         1         1       43m

As of my personal experience this issue is still valid. Should be re-opened. At the moment, the. "solution" is disabling the firewall. I doubt this to be good practice.

Can we fix this? No security audit will pass with the firewall disabled.


send with array of buffers

Currently, I'm doing this:
ws.cork(() => {
  for (const data of buffer.splice(0)) (
    ws.send(data)
  }
})

Which does a lot of js->cpp calls. Would it make sense to be able to do the following?
ws.cork(() => {
  ws.send(buffer.splice(0))
})

#528 #679 are similar posts.
I'm not interested in micro optimizing some specific use case - JavaScript is a script and if you plan your data flow you can get decent IO perf with uWS. But the shortcomings of this script should not result in this library adding tons of hacks to avoid JavaScript behavior. After all you are scripting.
If these micro overheads are a problem then use C++, but these are not really low hanging fruits there are way way heavier problems in Node.js itself (we lose 70% perf in node.js 14 because of mistakes in nodejs)

A more interesting solution would be to use the fast calls of v8, but again nodejs do not include them because they, the geniuses at nodejs camp, have decided such an API is "too hard to use" so they've simply removed it

All functions like writeStatus, writeHeader, write, send, should ideally be V8 fast calls but until Node.js camp exposes that API I cannot do anything about it. But even now, the overhead of calling into C++ is negligible compared to the overhead of calling into JS with node::MakeCallback. It's like day and night of a difference. You lose a drip going into C++ but you lose an entire ocean going into JS.

@uNetworkingAB Trying to raise the MakeCallback issue again. https://github.com/nodejs/performance/issues/24
Do you have any benchmark script that can be used for reference in the discussion?


Add Debezium IO to doc

Please add a meaningful description for your change here
Fix: https://github.com/apache/beam/issues/23489
I believe the debezium source supports both bounded (via withMaxNumberOfRecords) & unbounded mode, but I might be wrong...
cc: @kennknowles

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @damccorm @kennknowles
sorry for the ping. Would you like to take a look?

@johnjcasey could you please take a look?


Sample bots deployed on Azure but none are responding

I deployed the sample bots on Azure but none have been responding. I tried each of the steps in this how-to. The bots work locally, but they do not work when using Test in Web chat

Hi @bashirk,
A couple questions for you:

Which sample(s) did you attempt to deploy?
What bot type did you try (Managed Identity, Multi-Tenant, Single Tenant)?
Did you make sure to add the Azure bot resource information to your appsettings.json, and double-check for typos?
There are multiple tabs you can select based on the bot type, whether you're using a new or existing resource group, etc. Did you make sure you used the correct tabs?

Hi @bashirk,
A couple questions for you:

Which sample(s) did you attempt to deploy?
What bot type did you try (Managed Identity, Multi-Tenant, Single Tenant)?
Did you make sure to add the Azure bot resource information to your appsettings.json, and double-check for typos?
There are multiple tabs you can select based on the bot type, whether you're using a new or existing resource group, etc. Did you make sure you used the correct tabs?

Thanks for reply @anishprasad01.

I attempted the welcome users sample, and also the multi turn prompt sample
I tried all three, the reason I'm super shocked
I setup the Javascript samples, so it's .env, and a I ensured to fill in the bot information inside the .env file, matter of fact, I double-checked the config settings in App Service to ensure the bot information was successfully propagated
I made sure the correct tabs were selected, and the correct deployment templates were used

Additionally, this behaviour was first discovered when I tried publishing a chatbot I was working on. After I discovered nothing I tried was working, I started trying out the bot samples just to figure if I had been doing anything wrongly.
Thanks for your help, in anticipation.

Great. All my resources are deployed to East US.
Thanks again for your help
On Tue, 29 Mar 2022 at 16:06, Anish Prasad @.***> wrote:

Which Azure Region did you attempt to deploy in? I'll give it a try and
see if I can repro.
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/BotBuilder-Samples/issues/3721#issuecomment-1081988288,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AG2XFPNVJ4OVH4BPW3DFXGTVCML57ANCNFSM5RZEYPDA
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Best regards,
Korede

I deployed the multi turn prompt Javascript sample to a Multi-Tenant Azure Bot resource following the same instructions linked before to the East US region. As expected, the bot responded properly in "Test in Web Chat" after deployment, as you can see in the screenshot below.

As I am unable to reproduce your issue, perhaps it would be a good idea to retry the step again and ensure that you didn't miss anything? You could also try following the steps for a C# bot to see if you can successfully deploy one of those. Lastly you could also double check if there are any permissions issues that might be preventing you from successfully deploying.

Thanks for this, @anishprasad01. Did you also try the Managed Identity or the Single Tenant option?

Haven't had any issues with those either.

Oh okay. Many thanks, Anish
On Wed, 30 Mar 2022 at 16:10, Anish Prasad @.***> wrote:

Haven't had any issues with those either.
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/BotBuilder-Samples/issues/3721#issuecomment-1083261488,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AG2XFPPYROKKNM4MPEVNBIDVCRVENANCNFSM5RZEYPDA
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Best regards,
Korede

You're welcome.
Since the samples appear to be deploying as expected, I am going to go ahead and close this issue. If you have issues or feature requests in the future, please feel free to raise them in the appropriate repository.


Hello world in Vietnamese

#351
I'm creating an account. I will update account number here.

My account number: ec5aa47719460ee5bcd16ab3cfe94c521d702eb9fc7d80f603762c23014f8ab8


[HA ADD-ON] The add-on starts on boot even with the option disabled

What version of Music Assistant has the issue?
2.0.0b131
What version of the Home Assistant Integration have you got installed?
2024.3.6
Have you tried everything in the Troubleshooting FAQ and reviewed the Open and Closed Issues and Discussions to resolve this yourself?

[X] Yes

The problem
If you don't select the option "start on boot" on the add-on, and restart HA core or the whole host, the add-on starts anyway
How to reproduce
If you don't select the option "start on boot" on the add-on, and restart HA core or the whole host, the add-on starts anyway
Music Providers
no applicable
Player Providers
no applicable
Full log output
Nothing related in the supervisor...
2024-04-07 22:51:23.066 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/music-assistant/home-assistant-addon repository
Additional information
No response
What version of Home Assistant Core are your running
2024.04.01
What type of installation are you running?
Home Assistant OS
On what type of hardware are you running?
Generic x86-64 (e.g. Intel NUC)

the add-on is managed by the integration (in fact while installing the integration you selected that option). if you disable the integration, it will also disable the add-on. Start on boot is required for the integration to operate, the integration depends on the add-on. A nice improvement on the HA-side would be if the "auto start" option would be disabled in this case.

Ahm, I got you. Okay!
So nothing to report in here.
I was having always the add-on started but my problem is about the port it is using (8095 and following in case of problems), in my installation apparently the 8095 is already in use so it is taking the 8096 which is though to be used by Emby/jellyfin. So, finally I have a lot of problems to get my installation ready to use after a reboot because I can not manually set the port in any of the add-on mentioned.
Thank you!

@txitxo0 If your issue is solved don't forget to close it


[AutoPR cognitiveservices/data-plane/ComputerVision] Analyze brands

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/5141

Build output:


performance

Thank you. I want to know how the performance of this depository is trained ？Is it exactly the same as in the table? If not, can you post the specific performance?

Yes. The models provided in the README are trained by this codebase.

Have you tried to train YOLOF with this codebase on your own?

Have you tried to train YOLOF with this codebase on your own?

Yes

Could you achieve comparable results?

Could you achieve comparable results?

Please wait

Yes, I ran three times, 37.5/37.6/37.7

Yes, I ran three times, 37.5/37.6/37.7

Hi, may I ask which yaml profile you are running, I am using the "yolof_CSP_D_53_DC5_9x_stage2_3x.yaml" and getting about 38% mAP.


Clean up the dependencies

Hi. fhir-kindling has a lot of dependencies, some of them does not seem necessary at the moment:
https://github.com/migraf/fhir-kindling/blob/b33d215a0f445a76ae3b3bd78eaa8dd713de1059/setup.py#L34-L48

tqdm is never called in the code
click is only used for this unique click.echo call
pandas is huge, maybe it can be made an optional dependency ?
pendulum is only called a few times for pendulum.now

What do you think?

Datascience dependencies such as pandas are now separated and only install when you install with the ds extra
pip install fhir-kindling[ds]