Data Smoothing is probably not working as intended

Describe the bug
I am getting fast and erratic area changes, sometimes each second. To optimize this, I increased the "Smoothing Samples" value, which did not really change the behavior, which I found strange. I even tried values up to 60 and higher, which in my understanding should make the Area changes slow but more stable. This was not the case.
If I look at the "distance to bt_proxy" entities (not the unfiltered values), the distance sometimes jumps by a lot in each direction. So e.g. in one second the distance of a device to a scanner is like 3m while next second it is 9m and it jumps back to like 4. Looking at the logic of how the averaging is carried out, I can't understand how this behavior is possible. As I'm not a programmer, my interpretation may be flawed. But when I look at this code block, it should only be possible to spontaneously jump to a lower distance value and not to a higher value, as the logic of the iteration loop gives lower distance values "more weight":
 dist_total: float = 0 dist_count: int = 0 local_min: float = self.rssi_distance_raw or DISTANCE_INFINITE for distance in self.hist_distance_by_interval:   if distance <= local_min:     dist_total += distance       local_min = distance     else:       dist_total += local_min       dist_count += 1     if dist_count > 0:       movavg = dist_total / dist_count     else:       movavg = local_min
As soon as the new raw distance values keep filling the list of historic data with higher distances, the average should go up slowly, right?
Would it be possible to check the logic and make it more robust so that erratic area changes are throttled?
Nevertheless, thank you for this awesome integration!

Hi, thanks for your report and digging into this!
TL/DR: It's working (mostly) as intended. You should use a helper template to apply smoothing to the Area sensor when you need to trade some responsiveness for extra stability, because the Area sensor (by design) snaps based on the smoothed "distance" values, every second.

I increased the "Smoothing Samples" value, which did not really change the behavior, which I found strange.

Yes, the smoothing buckets only smooth the distance measurement, and not the Area determination. That sounds a bit pedantic, but if two proxies alternately make sporadic, close readings, the smoothing won't prevent them from alternately winning the "Area". The area sensor's job is to answer the question "Which scanner do you think this device is closest to, right at this instant?".

I even tried values up to 60 and higher, which in my understanding should make the Area changes slow but more stable. This was not the case.

It should make the measurements more sluggish to rise, but won't directly affect how often the Area changes.
Taking screenshots of what you're observing via the history view is super-helpful, as it makes it easier to visualise and discuss what's going on. Enabling some of the "Unfiltered" sensors can make it a bit easier still to understand. Here's a recent 5minute slice from my watch tracking, just looking at data from the two proxies I have in my studio:

While these are both in the same "Area", we can look at the "Nearest Scanner" entity up top (mustard/peach) for what would have happened if the proxies were in different areas. We see the red line lose out to the blue at about 01:07:30, but it's really a "value judgement" at this stage - on a small time scale, you could argue that the teal line clearly shows that prox-studio should not be winning this contest, but indeed the smoothing caused it to win for a few seconds when camfront was very much closer and more consistent - but at a longer timeframe, from 01:07:00 to 01:08:40 you'd say that prox-studio was clearly the rightful winner. But expand the timeframe to the full 5 minutes, and "obviously" camfront is the only sensible choice. All these assertions are value judgements, based on what's important for the individual users' use-case, on an automation-by-automation basis. I want lights to trigger instantly, because the cost of not doing so is me breaking my leg, and the cost of nuisance triggers is $0.00035 per hour of wasted electricity. But I want the air conditioner to start up only when it's sure I'm really there - the cost of a later start is negligible, the cost of false triggers is excessive power usage plus potentially a burnt-out compressor.
And note I was in the "same" place for those whole 5 minutes, but rssi is just noisy, especially when measured from a tiny transmitter strapped to a large sack of salty water that moves a little when typing :-)
So the only sensible choice is that Bermuda give you the most timely, most responsive data it can, based on what it can "prove". And then you can choose to discard information (by smoothing, delaying etc) on a per-application basis.

As I'm not a programmer, my interpretation may be flawed. But when I look at this code block, it should only be possible to spontaneously jump to a lower distance value and not to a higher value, as the logic of the iteration loop gives lower distance values "more weight":

That's spot-on: Instantly accept closer readings, reluctantly move toward distant readings. The idea is that noisiness in the rssi signal almost always (99.99%?) makes a distance longer, almost never shorter. So that filter looks back in time and averages the most optimistic readings, in a way. It's a bit ugly and weird, but sort-of-usually-works-ok-for-most-cases. My primary goal is for it to be quick to respond to "provable" changes, because folks can always add more smoothing if they want on a per-application basis.
From my screenshot above, you can see that the blue and orange lines sort of "hug" the bottom of the yellow and teal lines, responding immediately to shorter readings, and slowly creeping up to meet the longer ones if they persist over time. I'm not anywhere near good enough at math to propose a proof, but eyeballing the graph looks "decent" to me, for what I want to see out of distance measurements. Actually I have been thinking I want to decrease the number of buckets as it hurts responsiveness a bit - but that's also related to having a good calibration (the only place this matters) because the velocity works over a range in "linear" space while rssi is a "logarithmic" space, so the scale of conversion matters in that instance. For reference my actual physical distance from camfront is about 0.5m and to prox-studio is about 2.8m, so those big distance changes would be a lot more subtle if I had calibrated my watch's ref_power more appropriately.
That said, the current Area algorithm is super basic and dumb. Every second, it looks to see which scanner has the closest distance measurement, and applies that. There is no built-in filtering on that because it would remove information by adding latency which for some applications is bad, and for other applications can be added with template sensors - and no one amount of smoothing would suit everyone, or every device, or every automation.
The number of buckets sort of affects (inversely) the steepness of the rise. There is another parameter max velocity which also plays a hand here, it pre-filters the smoothing bucket values by completely ignoring readings that would imply the device had moved away at more than walking speed. This is (probably?) why you see the smoothed curve climbing faster toward higher readings, but not making steep changes due to super-distant readings (like those huge variations from 01:06:50 on teal, above).
Anyway, all that to say.... your analysis of how the smoothing works is bang on (which is impressive, because it still does my head in sometimes), but I don't think it's the cause of your issue, being rapid area changes.
There could be improvements made in Bermuda to offer a control for applying a per-device area-smoothing setting, to control the trade-off between latency and stability, but I'd rather work on getting toward Trilateration, where we can compare the readings (and history) of all proxies to make decisions about where a device really is in relative space, rather than a simplistic binary room-by-room determination. I want to avoid spending time on things that can be done with the existing tools in HA (like template sensors) at the expense of progressing Bermuda's primary goals of trilateration, or improving stability, base UX etc. I hope that makes sense.

Hey thank you very much for the detailed reply! I understood it completely and the template sensor for smoothing the area detection is a good idea that should work sufficiently.
Of course, I am eagerly awaiting the 'holy grail' of trilateration. So it's the right priority to focus on that.

        local_min: float = self.rssi_distance_raw or DISTANCE_INFINITE
        for distance in self.hist_distance_by_interval:
            if distance < local_min:
                local_min = distance

        # The average is only helpful if it's lower than the actual reading.
        if self.rssi_distance_raw is None or local_min < self.rssi_distance_raw:
            self.rssi_distance = local_min
        else:
            self.rssi_distance = self.rssi_distance_raw`

Something like the above to replace lines 405 to 423 in bermuda_device_scanner.py (although I am not confident in Python so it might not be the exact syntax)
Also if Python is anything like Matlab I expect it has a minimum built for that hist_distance_by_interval array/set

wow thanks for this, I was having some issues with switching areas, now I know it's not because of me not understanding the settings.
did anyone make a good template sensor logic for this? can you please share?

After agittins tip, I implemented such a template sensor (quick & dirty). It is based on a trigger-based logic and only switches the Area if the original Area entity stays the same for X seconds. Additionally I implemented a logic which "remembers" the last Area if the value switches to "unknown". I did this because my phone sometimes goes to sleep when it is not moved and the Bermuda Area thus becomes "unknown". In my opinion, it's still valid to keep the last known Area in this case, because the phone was not moved. The Area is only switched to "not_home" if Home Assistant knows that I am away from home.
`- trigger:

platform: state
entity_id: sensor.martin_iphone_ble_area
to:
for:
seconds: 3

sensor:
- name: "Martin iPhone BLE Area Filtered"
unique_id: "sensor.martin_iphone_ble_area_filtered"
state: >
{% if not is_state('person.martin','home') %}
{{ 'not_home' }}
{% else %}
{{ states('sensor.martin_iphone_ble_area') if not is_state('sensor.martin_iphone_ble_area','unknown') else states('sensor.martin_iphone_ble_area_filtered') }}
{% endif %}`
It has room for optimization but even the three second window improved the Area switching drastically. I also had good results with 5 seconds.
What could be optimized?

Sometimes the value is constantly changing between two areas. In my implementation the Area "wins" which by chance keeps its value for the specified amount of time. A better approach could be to calculate some kind of "time average". Let's assume the entity constantly switches to "living room" for 2 seconds and switches back to "kitchen" for one second. In this case, it is more likely that I am in the living room, but if by chance "kitchen" would be randomly active for three seconds, the sensor would switch to this Area (not optimal). If it would be possible to evaluate which Area was active for the longest amount of time in a specified time window (e.g. 10 seconds), it could make sense to assume that I'm most likely in this place. But for this implementation, I'm lacking the skills. Also As soon as trilateration is implemented, all of this will become obsolete.

Thanks a lot, need to find some time to implement this as well, switched back to the previous version for now which worked quite fine for me. There are quite a few automations depending on the correct area, so this was the quick fix for now.


<EMAIL_ADDRESS>decompress error

scoop install twilio
Checking repo... OK
The twilio-scoop bucket was added successfully.
Installing '7zip' (22.01) [64bit] from main bucket
7z2201-x64.msi (1.8 MB) [=====================================================================================] 100%
Checking hash of 7z2201-x64.msi ... ok.
Extracting 7z2201-x64.msi ... done.
Linking ~\scoop\apps\7zip\current => ~\scoop\apps\7zip\22.01
Creating shim for '7z'.
Creating shim for '7zFM'.
Creating shim for '7zG'.
Creating shortcut for 7-Zip (7zFM.exe)
Persisting Codecs
Persisting Formats
Running post_install script...
'7zip' (22.01) was installed successfully!
Notes

Add 7-Zip as a context menu option by running: "C:\Users\tempsteve\scoop\apps\7zip\current\install-context.reg"
Installing 'twilio' (5.4.1) [64bit] from twilio-scoop bucket
twilio-win32-x64.tar.xz (33.5 MB) [===========================================================================] 100%
Checking hash of twilio-win32-x64.tar.xz ... ok.
Extracting twilio-win32-x64.tar.xz ... ERROR Exit code was 2!
Failed to extract files from C:\Users\tempsteve\scoop\apps\twilio\5.4.1\twilio-win32-x64.tar.
Log file:
~\scoop\apps\twilio\5.4.1\7zip.log

HI @krauses ,Could you try installation via scoop in powershell as an admin. Its mentioned in the doc here


Add a back/up button to slides

fixes https://github.com/galaxyproject/training-material/issues/825
adds a link back to the topic page to all slides

ping @martenson
Thanks @shiltemann


Remove nth node from end of list added

Hey @Pratik-Shrivastava  thanks for your contribution ❗. Keep up the good job and leave a star if you liked the repo .
Happy hacking 😉


internal/function: implement language function

Closes #192
Can be used as:
language(path)

OR

language(path, blob)

Rebased

Rebased


sbt 1.2.7

Thanks! The CI is not passing due to https://github.com/tpolecat/tut/issues/244. I'll get it merged once I update the tut version.


 Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file QUANTAXIS/QAData/financial_mean.py:

Line 191:51: E261 at least two spaces before inline comment
Line 191:52: E262 inline comment should start with '# '
Line 192:47: E261 at least two spaces before inline comment
Line 192:48: E262 inline comment should start with '# '

In the file QUANTAXIS/QAFetch/QATdx.py:

Line 691:41: E231 missing whitespace after ','
Line 734:48: E261 at least two spaces before inline comment
Line 734:80: E501 line too long (105 > 79 characters)
Line 738:48: E261 at least two spaces before inline comment
Line 738:48: E262 inline comment should start with '# '
Line 738:80: E501 line too long (103 > 79 characters)
Line 744:46: E261 at least two spaces before inline comment
Line 744:46: E262 inline comment should start with '# '
Line 744:80: E501 line too long (101 > 79 characters)
Line 747:59: E261 at least two spaces before inline comment
Line 747:59: E262 inline comment should start with '# '
Line 747:80: E501 line too long (114 > 79 characters)
Line 779:44: E261 at least two spaces before inline comment
Line 779:44: E262 inline comment should start with '# '
Line 779:80: E501 line too long (99 > 79 characters)
Line 805:80: E501 line too long (139 > 79 characters)
Line 805:84: E261 at least two spaces before inline comment
Line 805:84: E262 inline comment should start with '# '

In the file QUANTAXIS/QASU/save_tdx.py:

Line 1185:26: E201 whitespace after '['
Line 1606:26: E201 whitespace after '['
Line 1733:26: E201 whitespace after '['
Line 5171:26: E201 whitespace after '['
Line 6129:26: E201 whitespace after '['
Line 6235:26: E201 whitespace after '['
Line 6364:26: E201 whitespace after '['

In the file QUANTAXIS_Test/mytest.py:

Line 34:45: W291 trailing whitespace
Line 35:44: W291 trailing whitespace
Line 36:52: W291 trailing whitespace
Line 39:72: W291 trailing whitespace
Line 40:72: W291 trailing whitespace
Line 41:72: W291 trailing whitespace
Line 48:1: E722 do not use bare 'except'
Line 56:28: W291 trailing whitespace
Line 58:1: E722 do not use bare 'except'
Line 80:80: E501 line too long (84 > 79 characters)
Line 84:5: E303 too many blank lines (2)
Line 88:1: W293 blank line contains whitespace
Line 95:80: E501 line too long (84 > 79 characters)
Line 99:5: E303 too many blank lines (2)
Line 106:80: E501 line too long (84 > 79 characters)
Line 110:41: W291 trailing whitespace
Line 111:44: W291 trailing whitespace
Line 113:60: W291 trailing whitespace
Line 114:48: W291 trailing whitespace
Line 125:22: E128 continuation line under-indented for visual indent
Line 126:21: E128 continuation line under-indented for visual indent
Line 127:40: E231 missing whitespace after ','
Line 130:22: E128 continuation line under-indented for visual indent
Line 131:21: E128 continuation line under-indented for visual indent
Line 132:40: E231 missing whitespace after ','
Line 134:22: E128 continuation line under-indented for visual indent
Line 135:21: E128 continuation line under-indented for visual indent
Line 136:40: E231 missing whitespace after ','
Line 138:22: E128 continuation line under-indented for visual indent
Line 139:21: E128 continuation line under-indented for visual indent
Line 140:40: E231 missing whitespace after ','
Line 142:22: E128 continuation line under-indented for visual indent
Line 143:21: E128 continuation line under-indented for visual indent
Line 144:40: E231 missing whitespace after ','
Line 146:22: E128 continuation line under-indented for visual indent
Line 147:21: E128 continuation line under-indented for visual indent
Line 148:40: E231 missing whitespace after ','
Line 150:22: E128 continuation line under-indented for visual indent
Line 151:21: E128 continuation line under-indented for visual indent
Line 152:40: E231 missing whitespace after ','
Line 154:22: E128 continuation line under-indented for visual indent
Line 155:21: E128 continuation line under-indented for visual indent
Line 156:40: E231 missing whitespace after ','
Line 159:22: E128 continuation line under-indented for visual indent
Line 160:21: E128 continuation line under-indented for visual indent
Line 161:40: E231 missing whitespace after ','
Line 164:22: E128 continuation line under-indented for visual indent
Line 165:21: E128 continuation line under-indented for visual indent
Line 168:22: E128 continuation line under-indented for visual indent
Line 168:40: E231 missing whitespace after ','
Line 171:22: E128 continuation line under-indented for visual indent
Line 172:21: E128 continuation line under-indented for visual indent
Line 175:22: E128 continuation line under-indented for visual indent
Line 175:40: E231 missing whitespace after ','
Line 178:22: E128 continuation line under-indented for visual indent
Line 179:21: E128 continuation line under-indented for visual indent
Line 182:22: E128 continuation line under-indented for visual indent
Line 182:40: E231 missing whitespace after ','
Line 188:80: E501 line too long (81 > 79 characters)
Line 190:80: E501 line too long (85 > 79 characters)
Line 193:80: E501 line too long (87 > 79 characters)
Line 194:80: E501 line too long (86 > 79 characters)
Line 201:5: E265 block comment should start with '# '
Line 205:13: E265 block comment should start with '# '
Line 206:80: E501 line too long (89 > 79 characters)
Line 208:13: E265 block comment should start with '# '
Line 209:80: E501 line too long (89 > 79 characters)
Line 211:13: E265 block comment should start with '# '
Line 212:80: E501 line too long (88 > 79 characters)
Line 214:13: E265 block comment should start with '# '
Line 215:80: E501 line too long (90 > 79 characters)
Line 217:13: E265 block comment should start with '# '
Line 218:80: E501 line too long (95 > 79 characters)
Line 220:80: E501 line too long (86 > 79 characters)
Line 225:21: W291 trailing whitespace
Line 257:41: W291 trailing whitespace
Line 258:44: W291 trailing whitespace
Line 259:46: W291 trailing whitespace
Line 262:48: W291 trailing whitespace
Line 273:22: E128 continuation line under-indented for visual indent
Line 274:21: E128 continuation line under-indented for visual indent
Line 277:40: E231 missing whitespace after ','
Line 280:22: E128 continuation line under-indented for visual indent
Line 281:21: E128 continuation line under-indented for visual indent
Line 284:40: E231 missing whitespace after ','
Line 287:22: E128 continuation line under-indented for visual indent
Line 288:21: E128 continuation line under-indented for visual indent
Line 291:40: E231 missing whitespace after ','
Line 293:22: E128 continuation line under-indented for visual indent
Line 294:21: E128 continuation line under-indented for visual indent
Line 297:40: E231 missing whitespace after ','
Line 299:22: E128 continuation line under-indented for visual indent
Line 300:21: E128 continuation line under-indented for visual indent
Line 303:40: E231 missing whitespace after ','
Line 305:22: E128 continuation line under-indented for visual indent
Line 306:21: E128 continuation line under-indented for visual indent
Line 309:40: E231 missing whitespace after ','
Line 311:22: E128 continuation line under-indented for visual indent
Line 312:21: E128 continuation line under-indented for visual indent
Line 315:40: E231 missing whitespace after ','
Line 317:22: E128 continuation line under-indented for visual indent
Line 318:21: E128 continuation line under-indented for visual indent
Line 321:40: E231 missing whitespace after ','
Line 323:22: E128 continuation line under-indented for visual indent
Line 324:21: E128 continuation line under-indented for visual indent
Line 328:22: E131 continuation line unaligned for hanging indent
Line 329:22: E128 continuation line under-indented for visual indent
Line 329:40: E231 missing whitespace after ','
Line 332:22: E128 continuation line under-indented for visual indent
Line 333:21: E128 continuation line under-indented for visual indent
Line 337:22: E131 continuation line unaligned for hanging indent
Line 338:22: E128 continuation line under-indented for visual indent
Line 338:40: E231 missing whitespace after ','
Line 344:80: E501 line too long (81 > 79 characters)
Line 346:80: E501 line too long (85 > 79 characters)
Line 349:80: E501 line too long (91 > 79 characters)
Line 351:80: E501 line too long (86 > 79 characters)
Line 358:5: E265 block comment should start with '# '
Line 362:13: E265 block comment should start with '# '
Line 363:80: E501 line too long (89 > 79 characters)
Line 365:13: E265 block comment should start with '# '
Line 366:80: E501 line too long (89 > 79 characters)
Line 368:13: E265 block comment should start with '# '
Line 369:80: E501 line too long (88 > 79 characters)
Line 371:13: E265 block comment should start with '# '
Line 372:80: E501 line too long (90 > 79 characters)
Line 374:13: E265 block comment should start with '# '
Line 375:80: E501 line too long (95 > 79 characters)
Line 382:21: W291 trailing whitespace
Line 416:33: E128 continuation line under-indented for visual indent
Line 417:33: E128 continuation line under-indented for visual indent
Line 418:33: E128 continuation line under-indented for visual indent
Line 419:33: E128 continuation line under-indented for visual indent
Line 419:57: W291 trailing whitespace
Line 420:33: E128 continuation line under-indented for visual indent
Line 421:33: E128 continuation line under-indented for visual indent
Line 421:45: W291 trailing whitespace
Line 422:33: E128 continuation line under-indented for visual indent
Line 431:5: E265 block comment should start with '# '
Line 435:5: E265 block comment should start with '# '
Line 439:13: E265 block comment should start with '# '
Line 440:80: E501 line too long (89 > 79 characters)
Line 442:13: E265 block comment should start with '# '
Line 443:80: E501 line too long (89 > 79 characters)
Line 445:13: E265 block comment should start with '# '
Line 446:80: E501 line too long (88 > 79 characters)
Line 448:13: E265 block comment should start with '# '
Line 449:80: E501 line too long (90 > 79 characters)
Line 451:13: E265 block comment should start with '# '
Line 452:80: E501 line too long (95 > 79 characters)
Line 467:21: E131 continuation line unaligned for hanging indent
Line 474:9: E265 block comment should start with '# '
Line 478:80: E501 line too long (85 > 79 characters)
Line 479:33: E128 continuation line under-indented for visual indent
Line 480:33: E128 continuation line under-indented for visual indent
Line 481:37: E128 continuation line under-indented for visual indent
Line 483:45: E231 missing whitespace after ':'
Line 483:80: E501 line too long (90 > 79 characters)
Line 484:9: E722 do not use bare 'except'
Line 496:80: E501 line too long (169 > 79 characters)
Line 499:80: E501 line too long (124 > 79 characters)
Line 500:16: E128 continuation line under-indented for visual indent
Line 508:55: W291 trailing whitespace
Line 510:43: W291 trailing whitespace
Line 520:5: E265 block comment should start with '# '
Line 524:5: E265 block comment should start with '# '
Line 528:13: E265 block comment should start with '# '
Line 529:80: E501 line too long (89 > 79 characters)
Line 531:13: E265 block comment should start with '# '
Line 532:80: E501 line too long (89 > 79 characters)
Line 534:13: E265 block comment should start with '# '
Line 535:80: E501 line too long (88 > 79 characters)
Line 537:13: E265 block comment should start with '# '
Line 538:80: E501 line too long (90 > 79 characters)
Line 540:13: E265 block comment should start with '# '
Line 541:80: E501 line too long (95 > 79 characters)
Line 559:21: E131 continuation line unaligned for hanging indent
Line 566:9: E265 block comment should start with '# '
Line 570:80: E501 line too long (85 > 79 characters)
Line 571:33: E128 continuation line under-indented for visual indent
Line 572:33: E128 continuation line under-indented for visual indent
Line 574:9: E722 do not use bare 'except'
Line 586:80: E501 line too long (160 > 79 characters)
Line 589:80: E501 line too long (115 > 79 characters)
Line 590:16: E128 continuation line under-indented for visual indent
Line 591:1: W293 blank line contains whitespace
Line 593:23: W291 trailing whitespace
Line 594:17: E128 continuation line under-indented for visual indent
Line 594:25: W291 trailing whitespace
Line 595:17: E128 continuation line under-indented for visual indent
Line 596:17: E128 continuation line under-indented for visual indent
Line 596:41: W291 trailing whitespace
Line 597:17: E128 continuation line under-indented for visual indent
Line 597:29: W291 trailing whitespace
Line 598:17: E128 continuation line under-indented for visual indent
Line 608:22: E128 continuation line under-indented for visual indent
Line 609:21: E128 continuation line under-indented for visual indent
Line 610:40: E231 missing whitespace after ','
Line 613:22: E128 continuation line under-indented for visual indent
Line 614:21: E128 continuation line under-indented for visual indent
Line 615:40: E231 missing whitespace after ','
Line 620:80: E501 line too long (81 > 79 characters)
Line 622:80: E501 line too long (85 > 79 characters)
Line 625:80: E501 line too long (87 > 79 characters)
Line 626:80: E501 line too long (86 > 79 characters)
Line 633:5: E265 block comment should start with '# '
Line 637:13: E265 block comment should start with '# '
Line 638:80: E501 line too long (89 > 79 characters)
Line 640:13: E265 block comment should start with '# '
Line 641:80: E501 line too long (89 > 79 characters)
Line 643:80: E501 line too long (86 > 79 characters)
Line 648:21: W291 trailing whitespace
Line 679:1: E305 expected 2 blank lines after class or function definition, found 1
Line 682:22: E231 missing whitespace after ','
Line 682:32: W292 no newline at end of file

In the file config/update_x.py:

Line 47:32: W291 trailing whitespace

1


Date Input not working in AOT build

The date input is not working correctly when building AOT. The datepicker is totally mangled and "exploded" with huge svg 's all over the form.
Steps to reproduce:

Create a new angular-cli project
Install angular-formio
Add a form with date input
Test with ng serve (works)
Build AOT (broken datepicker)

We depend heavily on formio and angular-formio in our project and would really appreciate a solution/workaround for this.

Hi Joakim,
I’ve received your alert to this issue, thank you. I have added it to our backlog to investigate. If you need a quicker resolution to this, we also have priority support with our paid plans as well as support packages available if you need one on one time with our developers. They can help with training, code-review or development on your project if you are short on resources.
Let me know if you would like to connect on a support package, or if I can assist with anything further!
Zach

Closed due to no activity.


Support to launch Epic Games Store and GOG games from Heroic Games Launcher

The Epic Games Store launcher is poorly optimised and ridden with bugs, and GOG Galaxy seems to have been somewhat abandoned by it's developers. Of course, for GOG, the option to install games from their installers still remains, but what of Epic Games Store games? Many people have games on this launcher, either due to the fact that Epic have given away a large amount of quality games for free, and because of their exclusives. But many people would prefer not to be stuck with such a poor quality launcher.
This is where Heroic Games Launcher comes in, it's an open source launcher capable of launching games from Epic Games Store and GOG.
https://heroicgameslauncher.com/
Heroic Games Launcher is better optimised compared to Epic Games Launcher (https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/wiki), and I use it to launch my Epic Games games.
However, sadly, Playnite does not have the option to launch games from this launcher, so I propose that optional support for the launcher be added to the Epic Games Store and GOG library plugins, so that people who use this launcher are able use it to launch their games while also enjoying the benefits of Playnite.
Thanks for reading!

I don't have time to maintain additional library integrations or alternative launchers (already have plenty to maintain) so this will have to be done by somebody else as a community plugin.


Adding quotes

🚀 Feature
Adding quotes in cards of Rollick Games.

Can I work on this issue? I'm a participant of LGM Soc21.

/assign


Document the BigtableSession API

Users are asking for a non-HBase API.  BigtableSession and its ilk are already used by some users and by Dataflow's BigtableIO.  Create a wiki, and add a page or two about how to use it.

We are building a new non-HBASE API for Cloud Bigtable in the google-cloud-java repository.  Our product management team is hesitant about documenting this API, given that we'll have a new API.
We ought to have an offline conversation about this.

We will not be doing this.  The google-cloud-java artifact is going to replace cloud-bigtable-client in the very near future.


io: there should be a multicloser

I propose there be a multi-closer like struct inside of io/multi.go. The purpose would be that multiple close objects could be returned under one. Since there are already multi objects, (ie: reader/writer), it makes sense to me to also include multistructs for other things as well, including io.closer.
https://go-review.googlesource.com/c/41814/

Where would this be used?
Generally we don't add things to the standard library unless they're common.
See also: https://golang.org/doc/faq#x_in_std

I would imagine this would get somewhere around the same amount of usage as a MultiWriter or MultiReader (which I can't say I've ever had a reason to use myself lol).

@bradfitz
One use would be used where a function must return a closer, while having multiple things to close, in order to fulfill the interface of io.Closer.
But the point of this proposal is to complete the functionality of src/io/multi.go. I feel more like it is missing from the bunch.

One use would be used where a function must return a closer, while having multiple things to close, in order to fulfill the interface of io.Closer.

Yes, but where concretely? Could you find places in the standard library where code would be simplified by using this.
In previous proposals where things are added to the standard library, the commit or the immediately following one updates the standard library to use the new feature. For instance, when I added strings.Contains in e198a5086a2039ab88737f9b047b88e3e42c6838, the following commit b0afb931a81a1799d0f52ccfc61f19a6dcb8df35 used it. When time.Until was added in 67ea710792eabdae1182e2bf4845f512136cccce, the following commit 298791a9 used it. When sort.Slice was added in 22a2bdfedb95612984cec3141924953b88a607b7, the following commit ad26bb5e3098cbfd7c0ad9a1dc9d38c92e50f06e used it.
Where would you use this?

But the point of this proposal is to complete the functionality of src/io/multi.go.

That by itself doesn't meet the bar for standard library inclusion, especially this late in the game. It needs to be simplify existing code.

@bradfitz
When you put it like that, it makes sense not to include this into the standard library. I'll be closing this Issue for now.

Apologies for bumping this, but it's something I was looking for today. I would like to be able to close a MultiWriter and close all of the underlying io.CloseWriters.

Just ended up in this thread again after hitting a need for this in an unrelated project.

@SirCmpwn I don't think what you are asking for (closing an io.MultiWriter is the same as what this CL is about (closing a set of io.Closer values).  An io.MultiWriter is a collection of io.Writer values, not io.WriteCloser values.

An io.MultiWriter only implements io.Writer, not io.Closer. It cannot be closed.

Yes.  I guess I'm confused.  What are you asking for?

Thanks, but I don't think we're going to do that, per @bradfitz's comment above.  they can be written in a third party library just as effectively.

I don't agree with @bradfitz's argument. Is the purpose of the standard library to serve itself? Of course not. If the use case for users of the standard library is compelling, then the standard library should be updated even if the features don't see internal use within the standard library.

But this is the kind of functionality that can easily be written outside of the standard library.  For this kind of thing, that is the place to start.  Then if it proves to be popular, it can be brought in.
https://golang.org/doc/faq#x_in_std


Prevent remove of cni binaries when relation departs.

flannel cni files are installed by kubernetes-worker
and shouldn't be enforcedly removed by the flannel charm
when the relation departs.
Fixes LP: #1866869
Signed-off-by: Jorge Niedbalski<EMAIL_ADDRESS>

@tvansteenburgh hey tim, any chance to merge this patch?
Thanks

LGTM, thanks!


fix(jest): compatibility with jest@28

Closes #36
The way to detect fake timers has been changed in Jest28. This PR updates project's dependencies and fixes the problem.
P.S. I wanted to keep this change as small as possible, but without updating jest there is no way to write unit tests. And to update jest I had to update other dependencies.

Hello, any progress on this? I am running into issues with this library and fake timers in Jest 29

Is this repo dead? This issue and PR has been open for over a year and no movement 😞


Android App V1.1

New Features:
-New GUI design
-View Pager at the first time opening the App
-Map system

I have added some comments. There are so many debug .json files that it is hard to review the source code. Are these JSON files needed? There are also .json files with references to a local folder in your laptop. We need to remove all these local references. Finally, please make sure that source code comments are in English.


Text displayed really small

With the latest release, on Mojave 10.15.2 the screensaver is way too small for the screen. This happens on my Mac's screen as well as on external screens. See attached screenshots

Also, I don't think #18 should have been marked as a duplicate with issue #13 since the font used to be normal-sized in previous versions, while #13 is more like an optional feature to fit everyone's preference. But I really can't imagine the font is supposed to be that small, is it? Like this is a deal-breaker for me and many colleagues :/

Hi, there has certainly been a change ein behaviour of fonts in the macOS ScreenSaverView beginning with Catalina.
I'm going to close this issue and shut down issues for this project now.
As this is only a side-project of mine I might or might not fix it at some point in time, however every developer is more than welcome to contribute to this repository by raising a PR.


Some comments on the manuscript

I have red your manuscript with great interest and I have several comments and suggestions. I will make separate issues on few important topics that I have in mind, but I will start here by suggesting some recent review articles which you, and the targeted audience of the manuscript may find useful. I also list several small comments and suggestions below.
POTENTIALLY INTERESTING LITERATURE
Review discussing practical aspects of running lipid bilayer MD simulations:
Efficient preparation and analysis of membrane and membrane protein systems
Matti Javanainen  and Hector Martinez-Seara
Biochimica et Biophysica Acta (BBA) - Biomembranes
Volume 1858, Issue 10, October 2016, Pages 2468-2482
https://doi.org/10.1016/j.bbamem.2016.02.036
Review discussing combining lipid bilayer MD simulations with NMR
and scattering data:
Atomistic resolution structure and dynamics of lipid bilayers in simulations and experiments
O.H. Samuli Ollila and Georg Pabst
Biochimica et Biophysica Acta (BBA) - Biomembranes
Volume 1858, Issue 10, October 2016, Pages 2512-2528
https://doi.org/10.1016/j.bbamem.2016.01.019
Review discussing different methods to calculate elastic constants from simulations:
The Membrane Bending Modulus in Experiments and Simulations:
A Puzzling Picture
D. Bochicchio and L. Monticelli
Advances in Biomembranes and Lipid Self-Assembly
Volume 23, 2016, Pages 117-143
http://dx.doi.org/10.1016/bs.abl.2016.01.003
Publications comparing performance of different force fields against
experiments:
A Critical Comparison of Biomembrane Force Fields: Structure and
Dynamics of Model DMPC, POPC, and POPE Bilayers
Pluhackova et al.
DOI: 10.1021/acs.jpcb.6b01870
J. Phys. Chem. B 2016, 120, 3888−3903
Molecular electrometer and binding of cations to phospholipid bilayers
Catte et al.
Phys. Chem. Chem. Phys., 2016,18, 32560-32569
DOI: 10.1039/C6CP04883H
Toward Atomistic Resolution Structure of Phosphatidylcholine Headgroup and Glycerol Backbone at Different Ambient Conditions
Botan et al.
J. Phys. Chem. B, 2015, 119 (49), pp 15075–15088
DOI: 10.1021/acs.jpcb.5b04878
COMMENTS AND SUGGESTIONS:

The references are not listed in the order of the appeareance.

Page 2, left column, second paragraph
"Lamellar lipid bilayers often exist as vesicles (also known
as liposomes–basically bilayer spheres) in solution, but can
also exist as planar bilayers in periodic simulation systems,
with experimental supports, or multilayer stacks for struc-
tural analysis."
This could be little bit reformulated because multilamellar stack, not unilamellar
vesicles, is the thermodynamically stable phase for most lipids that
form lamellar phases.

Page 2, left column, end of the second paragraph
I would not call bilayer as a Gibbs monolayer.
As far as I know, Gibbs monolayer is usually used for
"a monolayer formed by a compound that is soluble in one of the phases
separated by the interface on which the monolayer is formed. (wikipedia)"
Such a monolayer has a surface pressure, which depends on the
chemical potential of the compounds. I think that this is different from a bilayer.

Page 2, right column, bulleting point list
I have hard time to understand what does this mean:
"When bilayer self-assembly and the saturation assump-
tion are not a given"

Page 3, right column
"In general, force field developers
seek to first capture thermodynamic properties, then address
dynamical properties."
I think that also structural properties are also substantially
addressed.

Page 4, right column, third line
"However, force fields like CHARMM36 [42] appear
to be well-tuned for phase changes within 5 o C."
I would be happy to see reference for this.
Pluhackova et al. [ J. Phys. Chem. B 2016, 120, 3888−3903
DOI: 10.1021/acs.jpcb.6b01870 ] seems to argue that
the phase transition temperature would be too high.

Page 4, left column, before equatio (1)
frame tension is not defined.

Page 4, Equation (1)
L_z, P_z, P_x and P_y are not defined.

Section 3.3.2
Citations to works preparing membranes with self-assembly would be
useful, e.g. Vries et al. J. Am. Chem. Soc., 2004, 126 (14), pp 4488–4489.

Section 3.3.3. first line
"the system should be minimized (without dynamics, at 0 K)"
->
"the system should be energy minimized (without dynamics)"
Here and elsewhere it should be specified that the energy
is minimized. I think that temperature is not really defined
here, so it should not be reported.

Page 5, last paragraph of section 3.3.3
Citation to a good block averaging and autocorrelation analysis
protocol would be useful.

Page 6, section 3.4.1
"The region numbering scheme proceeds
from the exterior water layer to the bilayer midplane, and the
typical density hierarchy is as follows: region 2 ("interface")

region 3 ("soft polymer") > region 1 ("perturbed water")
region 4 ("decane")"
I have hard time to understand this.

Page 6, section 3.4.1
There is -center option in g_density, right?

page 6, section 3.4.2
mdstress.org package is asking to cite also other
references than [59].

Page 7, right column, second paragraph
Citation to LOOS would be useful.

Page 9, after equation (12)
Citation to spontaneous curvature experiments
would be useful.

Page 19, left column, last sentence
"When simulation and experiment do not agree and one is
fairly confident in the simulation procedure and results, the
experimental results can be questioned"
I think that this is quite bold statement.
Experimental results should be questioned only with
very good arguments, not just because they disagree with simulations.

Page 11, PREPARATION OF INITIAL CONFIGURATIONS, fourth box
Minize energy ...

Page 11, PREPARATION OF INITIAL CONFIGURATIONS, sixth box
suggestion:
"Dynamics" -> "Equilibration"

Page 11, PREPARATION OF INITIAL CONFIGURATIONS, seventh box
suggestion:
"confirm thermodynamic averages"
->
"confirm equilibration of thermodynamic averages"

Section 4.1.1
It might be useful to mention/discuss here the
above mentioned publications comparing the performance
of different atomistic resolution force fields against experiments.

"United atom (UA) force fields remove hydrogen
atoms for an increase in efficiency (factor of ∼2), and are
becoming competitive with AA force fields in accuracy."
Someone might say opposite, because the united atom Berger
force field was the most accurate for quite many years.
This may also be a good place to mention that there are
libraries of models available, like lipidbook (lipidbook.bioch.ox.ac.uk)
and www.nmrlipids.fi.

Page 12, right column, second paragraph
"Practically speaking, only two sites per lipid are needed (one
hydrophilic and one hydrophobic) to capture amphiphilicity
and consequently self-assembly into lipid bilayers."
I would be very happy to the citation for this.

Page 13, section 4.1.3
"It is worth noting that certain models, particularly
CG ones, sometimes experience difficulty in capturing phase
transition temperatures and even entire phases (for example,
subgel and ripple for Martini)"
Based on Pluhackova et al. [ J. Phys. Chem. B 2016, 120, 3888−3903
DOI: 10.1021/acs.jpcb.6b01870 ] it seems that atomistic
models have difficulties as well on this.

Page 14, section 4.4.1 discusses only lateral diffusion so
"Nuances to diffusion calculations" might more
appropriate title.

Page 14, section 4.4.1, first paragraph
"The subdiffusive regime has been shown to exist between the ballistic
and random (linear MSD) walk regimes, spanning as many
as five orders of magnitude in time and timescales reaching
many seconds in multicomponent membranes. While this
potentially has crucial consequences for dynamical validation
of membrane models, its application to a robust protocol for
multiscale lipid models is at this point unestablished."
I would be happy to see the citation for this.

Table 1, disadvantages of self-assembly.
It would be good to mention that self-assembly
is really slow compared to the typical simulation
timescales.

Page 15, right column, line 8
"0.1 m" is the unit correct?

Various python packages made for the analysis,
like MDtraj (http://mdtraj.org/), MDanalysis (https://www.mdanalysis.org/),
etc. would be good to mention somewhere.

Hi Samuli,
Thank you so much for your thorough read of this manuscript and highly beneficial feedback. We are in the process of addressing your comments and suggestions, and are awaiting further feedback from the peer review process. Once we receive those reviews, we intend to compile all edits and responses and address your GitHub Issues directly to hopefully arrive at a consensus for a refined and improved Best Practices document. Thank you again for your time and efforts, and we will be in touch.
Sincerely,
Dave Smith


chore: better css

Further CSS cleanup
Fixes for IntelliJ IDEA, VSCode, Firefox and Chrome

On IntelliJ with the AsciiDoc extension, the preview works out of the box.
On VS Code with the AsciiDoc extension, update your settings:
"asciidoc.preview.style": ".asciidoctor/docs.css"
"asciidoc.preview.useEditorStyle": false
"asciidoc.useWorkspaceRootAsBaseDirectory": false

Signed-off-by: Fabrice Flore-Thébault<EMAIL_ADDRESS>

Looks way better in preview of https://redhat-developer.github.io/red-hat-developers-documentation-rhdh/pr-300/plugin-rhdh/ so let's merge this!
/approve

This looks great in light mode and kinda crap in dark mode:

with your CSS disabled:

in light mode w/ css enabled:


Support stopAnimation like Animated?

Thx for this component!
As the follow code shows, I can start animation at anytime when I want, and I also need to stop the animation in some cases:
state = {
  fill: 0,
};

startAnimation = () => {
  this.setState({fill: 100}, () => {
    this.progress && this.progress.performLinearAnimation(100, 1000 * 10);
  });
};

<AnimatedCircularProgress
  ref={r => this.progress = r}
  fill={this.state.fill}
/>

So, do you have a plan to support stop animation just like call stopAnimation?

thks


Images wont swap

Hello,
The zoom works on the primary image.
I'm having trouble getting the images to swap.
I'm populating my gallery using a foreach.
Upon inspecting the element I also noticed the a href zoom image, for every thumb in the gallery, is the primary image!
Please help and advise
ElevateZoomPlus - Images won't swap.txt

sorry, hadn't had time at all for anything.
Unless you create a plunker where one can reproduce the issue, for the time being I can only point you to look into the example of angular-based zoom-elevate.
Demo
http://igorlino.github.io/angular-elevatezoom-plus/#/main
Source code:
https://github.com/igorlino/angular-elevatezoom-plus/tree/master/demo
There you see how it interacts with the elevate zoom. Originally I also had problems, and made some corrections to make it work nice and pretty.

Thank you for the input!  I'm working on creating a sample in plunker but I also wanted to know...  Is it a problem if I'm using the owl-carousel for the gallery?  I need the carousel functionality for the gallery.  All my images are contained in a content management system...so I'm loading them using a loop.  As I previously mentioned.  The zoom only works on the first image.

Also...do you know of any examples that combine the owl carousel with the elevatezoom

I just took a look at the OWL carousel, it looks very interesting. I think we really need to create an integration for that library. I have done so for angular-colorbox and angular-fancybox-plus galleries.
The most important thing is to understand the lifecycle of the owl carousel. Which events are triggered when, and I think is not big problem to integrate the elevate zoom.
In the worst case you may re-create an elevate zoom per image.
Unfortunately, I don't have at the moment anytime to create any integration till January....

That sounds great and I do agree.  I think elevateZoom/Plus would work great with owlCarousel.  I think the most practical use of the carousel is the dual synced version.  There are several examples available... http://poligon.pro/owl/...and http://owlgraphic.com/owlcarousel/demos/sync.html.  I'm currently using the first example.  Let me know what you think....I'm excited to see the new development.

Hello,
Is there any progress on this feature?

Sorry, although I generally would spend some slot of time, due to private matters I have had zero(0) free time for any open source in the last 3 months and I feel its going to last more than that.
So, of course I would be happy if anyone steps in and would like to integrate/create a working example with the owl. (Just give it a try, I accept nearly all pull requests)

I try to integrated owl-carousel V1 slider sync with elevatezoom.
add this
before
example image slider sync

javascript in html is

news ?

this not a perfect integration, get some bug in events...
Is someone can post a full working example of EZ + OWL ...

Is there any one who solved the problem of EZ + OWL? I am having the same problem with integration of owl carosole and elevate zoom plugin integration. Any body has solved this issue then please paste the code here. Very much appreciated.

any luck on this? maybe a js jedi master to write a similar hook "getGalleryList" for owl?
    $("#img-zoom").bind("click", function(e) {             var ez = $('#img-zoom').data('elevateZoom');	           //$.fancybox(ez.getGalleryList()); //original code           //$.owlCarousel(ez.getGalleryListForOwl()); //we need this :)           return false;       });


Migrate from static_config to k8s_sd_config for prometheus metrics

Type of PR

[X] Code changes

Purpose of PR
Migrate prometheus config of NGSA apps from static_config to kubernetes_sd_config so that prometheus can capture individual pod's metrics.
Does this introduce a breaking change

[ ] YES
[X] NO

Validation

[ ] Tested after deploying to EastUS dev cluster

Issues Closed or Referenced

Closes https://github.com/retaildevcrews/wcnp/issues/932

Can you update the template file as well?

Updated Prometheus template file


Tutorial 3 - Added RemarkCommand

dont merge

Housekeeping on the current open PRs to achieve a cleaner look.


Skillmap: Content of tutorial "Planets" is not accurate

Describe the bug
Skillmap: Content of tutorial "Planets" is not accurate
Steps to reproduce the behavior
1.Navigate to https://arcade.makecode.com/skillmap
2.Planets------>START
3.Click step 7
Expect behavior
Change "set position to" to "set mySprite x to" in content of tutorial "Planets".
Actual behavior
Skillmap: Content of tutorial "Planets" is not accurate.

Additional context
1.OS: Win10(rs6)

Thanks for logging!  We've removed the "Planets" card from the skillmap, so I'll close this bug...but I'll keep it in mind in case it's also present in the tutorial that inspired this exercise.

Thanks for logging!  We've removed the "Planets" card from the skillmap, so I'll close this bug...but I'll keep it in mind in case it's also present in the tutorial that inspired this exercise.


adding abililty to specify alternate registry to download images from

This allows ability to use this library/cli to download images that are hosted in a private registry (not dockerhub).  https://github.com/cloudfoundry/hydrator/issues/2

@calebwashburn I see const for registry token URL here https://github.com/cloudfoundry/hydrator/blob/master/registry/registry.go#L19
Seems it also need to be changed.


Last Seen date and time on Offline host cards and table overview

This PR adds a hover title to the hostname on both the cardview and table view.
If a host is offline it will show it when it was last seen, otherwise it just shows it is Online.
Closes #1804

cc/ @ rocketnova!

Awesome! Can't wait to see it. Thank you!


Url error when hosting ghost via docker and using port publishing.

I got error when host ghost via docker using port publishing.

to reproduce

docker pull ghost

docker run -d --name myname -p 12368:2368 ghost

Open a post page, see homepage link. And image link error too when i use London theme.

Docker image version: 3.42.5-alpine

@ErisDS Did you see any questions from me? I don't need help because I have not use Ghost in production env at all but you or the ghost docker image team  do need fix this problem that I can always reproduce rather than close this issue directly.
I think using absolute link cause this problem. Is it necessary that use a  absolute link?


Replaced the doc URLs from development to main branch in all docs

Replaced the repo links from development to main branch in all odim, plugin and svc docs.

Closing this PR...

Raising a new one to compare content on dev branch with a new branch
Raising another PR to compare content on the new branch (step 1) with release branch

Step 1 has been missed out. Hence closing this PR and raising 2 other new PRs.


Any action drops first subtitle entry

Any action whether conversion, resync or otherwise causes the resultant file to consistently drop the first subtitle entry
sample.zip

I'm seeing the same, parsing the sample with verbose logs shows:
WARN: Unknown part 1
00:00:01,885 --> 00:00:03,247
♪ Mastered economics ♪

Appears to be a mistake in the regex expecting all parts to start with a newline, including the first section which never does. Adding two blank lines to the start of the SRT file fixes the problem, although an error is still logged in verbose mode.


Add some description about Windows to the Linking section of the FAQ.

This PR adds some text describing how to use the --linker option on Windows.

Sweet. Thanks @kulibali


How to evaluate FPS for Voxel-RCNN ?

Hi, I am trying to reproduce the FPS for the Voxel-RCNN but I don't see anything relevant metric in the test.py for that.
I have tried to write a script for that which gives me approx 23.5 fps with batch_size=1, which is lower than the official results(25 FPS). Would appreciate it if anyone can guide if i am wrong in somewhere to reproduce the FPS of Voxel-RCNN!

def eval_one_epoch(cfg, args, model, dataloader, epoch_id, logger, dist_test=False, result_dir=None):
    result_dir.mkdir(parents=True, exist_ok=True)

    log_interval =50
    samples=2000

    dataset = dataloader.dataset
    class_names = dataset.class_names
    det_annos = []

    logger.info('*************** FPS %s EVALUATION *****************' % epoch_id)
    model.eval()

    if cfg.LOCAL_RANK == 0:
        progress_bar = tqdm.tqdm(total=len(dataloader), leave=True, desc='eval', dynamic_ncols=True)

     # the first several iterations may be very slow so skip them
    num_warmup = 5
    pure_inf_time = 0

    for i, batch_dict in enumerate(dataloader):
        load_data_to_gpu(batch_dict)

        torch.cuda.synchronize()
        start_time_fps = time.perf_counter()

        with torch.no_grad():
            pred_dicts, ret_dict = model(batch_dict)

        torch.cuda.synchronize()
        elapsed = time.perf_counter() - start_time_fps

        if i >= num_warmup:
            pure_inf_time += elapsed
            if (i + 1) % log_interval == 0:
                fps = (i + 1 - num_warmup) / pure_inf_time
                print(f'Done sample [{i + 1:<3}/ {samples}], '
                      f'fps: {fps:.1f} sample / s')

        if (i + 1) == samples:
            pure_inf_time += elapsed
            fps = (i + 1 - num_warmup) / pure_inf_time
            print(f'Overall fps: {fps:.1f} sample / s')
            break

if __name__ == '__main__':
    pass

Hello, I also encountered this issue while evaluating Voxel R-CNN. Have you resolved it?

Hello, I also encountered this issue while evaluating Voxel R-CNN. Have you resolved it?

Actually, i used the shared code you calculate the FPS, although it doesn't match the claimed results.

I noticed that there is a Generate label finished (sec_per_example: 0.0168 second) in the automatic evaluation results after the model training is completed, which should be FPS

Hello, I also encountered this issue while evaluating Voxel R-CNN. Have you resolved it?

Actually, i used the shared code you calculate the FPS, although it doesn't match the claimed results.

I noticed that there is a Generate label finished (sec_per_example: 0.0168 second) in the automatic evaluation results after the model training is completed, which should be FPS


[feature request] Add "command" webhook that will execute a command and pass json to it

I would like gogs to add the "Command" hook as a type of a webhook.
It will send the same json to the stdin of the user specified command instead of sending it into the POST request.
The reason: it is much easier to do something simple from the script, rather than having another web server listening to the POST requests. I need to listen to the pull request submission events, and fire up some side process. But I don't want to have to run another web server app for this. Shell script is much simpler.
"Command" hook should only be allowed for the admin user for security reasons.

Thanks your feedback!
I think you should use Git hooks.

Once the local admin wants to use the webhook, he doesn't want http/push. He wants the shell command executed, because this is much easier.
Any ability to run scripts by the user should be authorized by the admin, because otherwise this is a security violation.
Whether to use git hooks - is another issue.

Web hooks are called web hooks because they hooks called by web.
You're requesting different things.

There is a webhook solution which do the same - execute a command and pass json to it. With nice improvements.

There is a webhook solution which do the same - execute a command and pass json to it. With nice improvements.

Yes, but it still receives webhook and then do the custom tasks. If it is integrated into the server, such as Gogs. It is a different thing, because "web" is never part of it.

I don't offer to integrate webhook into gogs. They all does own things. Very fine, I sure.
BTW, in case they run on same host there is no any web there.

Just call them "GogsHooks"? Github calls them "webhooks" because GitHub is web-only for clients, and gogs isn't.
Any admin will say they want commands rather than http/post. I don't think git hooks have access to the pull request numbers, etc.

I don't think git hooks have access to the pull request numbers, etc.

It would be better to call APIs (thought APIs aren't complete yet).

What is the status of this issue?

Close for now but open for continuing discussion.

Close for now but open for continuing discussion.


fix(mock): mock scheduler could not gracefully handle the concurrent deploy / scale

This adds a simple locking mechanism to ensure cache items are not overwriting one another when handling some of the bigger "global" lists
Should make Travis pass again consistently

Current coverage is 81.85% (diff: 100%)

No coverage report found for master at 0e2ebd7.

Powered by Codecov. Last update 0e2ebd7...996be37


rqt_logger_level takes too long to start up / refresh

From @tkruse on August 16, 2013 10:10
On my machine, with a reasonable number of nodes running on a remote PR2, rxloggerlevel takes about 6 seconds too start, rqt_logger_level about 12. Similarly a refresh in rxloggerlevel takes 3 secs, rqt_loggerlevel 12 again.
Since they do roughly the same, I assume that is a bug in rqt_loggerlevel. Probably you won't notice if the nodes are running locally or just a few nodes.
Copied from original issue: ros-visualization/rqt_common_plugins#147

From @ablasdel on August 16, 2013 18:5
This is due to the python interface to rosservice not having an "exists" speed/convenience function like the cpp implementation. For this reason rqt_logger_level is forced to iterate over the existing services on each node in existence to see if it has "set_logger_levels".
If there is an api I'm not aware of to find this more quickly in python feel free to point it out. Otherwise I am closing this
relevant apis that are in use by rx and rqt logger levels:
http://www.ros.org/doc/api/roscpp/html/classros_1_1ServiceClient.html#a3e52e37ed6cedd85d824979cc9aadc3b
http://mirror.umd.edu/roswiki/doc/diamondback/api/rosservice/html/

From @ablasdel on August 16, 2013 15:16
I'll take a look at this later today.

From @ablasdel on August 16, 2013 19:25
Then taking a step back and verifying it actually happens would be the next step. (I jumped to the possible culprits stage)
I think untargeted is correct in this case due to there being much more important issues to handle for hydro release.

Since the issue is not resolved and still a problem the ticket should not be closed.
If you don't see a way to fix it you could mark it with the milestone "untargeted" and comment why it can not be fixed earlier.
If you would really close it you should mark it with the label "wontfix".
In this specific case it might be most reasonable to figure out if that missing "exists" you mentioned is feasible to be implemented and would actually fix the prroblem.


[BUG] - Serilog: field server is not set when MapHttpAdapter  is null, even though server can be set from standard Serilog enricher fields.

Elastic.CommonSchema.Serilog
ECS schema version (e.g. 1.4.0): 1.6
ECS .NET assembly version (e.g. 1.4.2): 1.5.3
.NET framework / OS: .NET 6, Win 10
Description of the problem, including expected versus actual behavior:
Goal:
I want to log what user (service account) context the process runs in.
Scenario:

No MapHttpAdapter is set.
Serilog is configured with .Enrich.WithEnvironmentUserName()

Expected:
Windows user running the service should be set in field server.user.
Actual:
server.user is not set.
Possible fix:
Move ecsEvent.Server = GetServer(logEvent, configuration); outside the if (configuration.MapHttpAdapter != null) scope here:
https://github.com/elastic/ecs-dotnet/blob/909c4655ea1b9217fd6c41ca987df007e774134f/src/Elastic.CommonSchema.Serilog/LogEventConverter.cs#L70

This issue has been addressed in https://github.com/elastic/ecs-dotnet/pull/185, but somehow wasn't closed automatically. Please close.


fix(android) [snackbar] initialization of SNACKBAR_TEXT_ID

the value for SNACKBAR_TEXT_ID was not initialized, bacause the static attribute was used instead of the getter function

@alexander-mai thanks released!


[BUG]: Timestamp formatted differently if fetched as relation rather than directly

What version of drizzle-orm are you using?
0.30.7
What version of drizzle-kit are you using?
No response
Describe the Bug
Full thread in Discord - https://discord.com/channels/1043890932593987624/1225414684119662746.
I'm seeing a little issue that I can't get to the bottom of, whereby timestamps are being formatted differently on retrieval from the DB, depending on whether the entity is being queried directly, or whether it is included via a relation on another entity when that is queried.
The entity in question here is a "Farm", which also has a 1 to many relationship with an "Assessment". We can either fetch this from the "farm" table as a standalone object (in which the timestamp appears to be formatted incorrectly), or we can fetch an "Assessment" from the "assessment" table "with" its corresponding "Farm" (in which case the timestamp is formatted correctly).
Farms schema:
export const farmsTable = pgTable(
  "farms",
  {
    id: uuid("id").defaultRandom().primaryKey().notNull(),
    ...
    createdAt: timestamp("created_at", { withTimezone: true, mode: "string" }).defaultNow().notNull(),
    updatedAt: timestamp("updated_at", { withTimezone: true, mode: "string" }).defaultNow().notNull(),
  },
  (table) => {
    return {
      ...
    };
  },
);

export const farmsRelations = relations(farmsTable, ({ one, many }) => ({
  assessments: many(assessmentsTable),
}));

Assessment schema:
export const assessmentsTable = pgTable(
  "assessments",
  {
    id: uuid("id").defaultRandom().primaryKey().notNull(),
    ...
    farmId: uuid("farm_id")
      .references(() => farmsTable.id)
      .notNull(),
  },
  (table) => {
    return {
      farmIdx: index("assessments_farm_idx").on(table.farmId),
    };
  },
);

export const assessmentsRelations = relations(assessmentsTable, ({ one, many }) => ({
  ...
  farm: one(farmsTable, {
    fields: [assessmentsTable.farmId],
    references: [farmsTable.id],
  }),
}));

Querying directly, the timestamps are in a readable but non-ISO format:
Query:
await this.dbClient.query.farmsTable.findFirst({
        where: (farm, { sql }) => sql`${farm.id} = ${id}::UUID`,
        with: {
          owner: true,
        },
        columns: {
          ownerId: false,
        },
      });

Result:
{
  "id": "13f109e2-13b8-497f-a515-4d99cc5630ee",
  "createdAt": "2024-03-24 15:03:29.127413",
  "updatedAt": "2024-04-04 10:29:59.38",
  ...
}

As a relation, the same timestamps are in the desired ISO format:
Query:
await this.dbClient.query.assessmentsTable.findFirst({
        where: (assessments, { sql }) => sql`${assessments.id} = ${id}::UUID`,
        with: {
          runs: true,
          createdBy: true,
          farm: {
            with: {
              owner: true,
            },
            columns: {
              ownerId: false,
            },
          },
        },
        columns: {
          pathwayId: false,
          createdById: false,
          farmId: false,
        },
      });

Result:
{
  "id": "13f109e2-13b8-497f-a515-4d99cc5630ee",
  "createdAt": "2024-03-24T15:03:29.127413+00:00",
  "updatedAt": "2024-04-04T10:29:59.38+00:00",
  ...
}

Expected behavior
Ideally all timestamps would be returned consistently in the ISO format, so that we can handle these consistently when displaying in the rest of our application.
Environment & setup
No response

I'm experiencing this too, pgTable column: timestamp('createdAt', { mode: 'string' })
When fetched as query with top level columns it returns:
2024-05-10 01:22:33
but if it's a fetched as a relationship column (in "with" object) it returns:
2024-05-10T01:22:33

Just ran into this myself on drizzle-orm version 0.30.8.

Still happening with 0.32.1 with postgres-js. It also differs from the top level of the relational query to any included entities.
direct select of datetime [ { createdAt: '2024-08-09 21:47:00.686191+00' } ]
top level datetime 2024-08-04 01:04:14.718633+00
one level nested datetime 2024-08-05T17:24:00.757786+00:00
two levels nested datetime 2024-08-09T21:47:00.686191+00:00

I've found the problem. The issue is the single query being generated for relational queries using an intermediate json representation, and converting a date to json converts to ISO.
here's the relevant part of the generated query:
select <top level fields>, "mytable_relatedTables"."data" as "relatedTables" from "mytable" "mytable" left join lateral (select coalesce(json_agg(json_build_array("pathtecOrder_fulfilledTestKits"."id", <related table fields>)), '[]'::json) as "data" from "relatedtable" "mytable_relatedTables" where "mytable_relatedTables"."my_table_id" = "my_table"."id") "mytable_relatedTables" on true

You can see this behavior for yourself - run a select to_json(timestamp_field) from table; in psql.
There are likely to be similar problems for any other data types used that are changed as a result of a to_json call in postgres.


[Addition]: BIG SCAM from 10 month ago and Helium know about it, but do nothing. 1600+ FAKE Hotspots Benidorm Mallorca Menorca Ibiza

Hotspot b58 Addresses
https://explorer.helium.com/accounts/13EZUDcWYQ9CfRmTrBE3tBH4sE1Td1tZrwsJbbQ89nsWjqVUKcg/hotspots
https://explorer.helium.com/accounts/13XMTUaVMTb8QeK9sDaUsjeKmZdXsU7BWuCq22X9iKy2RKvKn1e/hotspots
https://explorer.helium.com/accounts/14DjbeH7zvj7bNEoPKpBrJBsPCYFcy4fttpJ5hM4WwcXegvCW2Z/hotspots
https://explorer.helium.com/accounts/14XEARg2dvtJAnw5fkpqSYFL2pGKC8riEeEjbMMnwdequrP81ey/hotspots
https://explorer.helium.com/accounts/13c9xK1ARjhnJ7McYJCBXkhYJeU4opxoX5uBnvsULUmAngRecPs/validators
Discord Handle
https://discord.com/channels/404106811252408320/892761815795257424
Reason(s)
Hello, post this big problem, there is no excuses from Helium group ..  they know it very well ... ** Here  screenshot **

So. In Benidorm have more than 500 fake hotspots,  the wallet is 13EZUDcWYQ9CfRmTrBE3tBH4sE1Td1tZrwsJbbQ89nsWjqVUKcg
here is a screenshot from a mapper

there is no response from any hotspot from the wallet 13EZUDcWYQ9CfRmTrBE3tBH4sE1Td1tZrwsJbbQ89nsWjqVUKcg
Interestingly, this same wallet, makes payments to this other wallet 13c9xK1ARjhnJ7McYJCBXkhYJeU4opxoX5uBnvsULUmAngRecPs

this wallet 13c9xK1ARjhnJ7McYJCBXkhYJeU4opxoX5uBnvsULUmAngRecPs , have 20 validators !  10.000 HNTs for start! nice!

lets continue with the wallet 13c9xK1ARjhnJ7McYJCBXkhYJeU4opxoX5uBnvsULUmAngRecPs,  recive payments from anothers wallets like this 14XEARg2dvtJAnw5fkpqSYFL2pGKC8riEeEjbMMnwdequrP81ey , a well know fake cluster in Mallorca island, then any response from hotspots with the mapper

The Scam continues.....
So, in the end of te day  ... this deny list is useless . only ban people that have 2 , 3 miners on their balcony.  not this big whales ...
I have a question ,  whats happen when the HIP55 starts .  the cheaters will have priority on their fake hotspots?
I think investors will not like it when they read this post.

I second this.
Same as #2912, #2920 #2949

Helium knows all this, just like the deeper fake Hotspots in Europe and they don't do enough... they don't dedicate resources, a simple script can detect what users have to report without means... STOP THIS NOW!!

Me too

stop that

Its worth checking,if theyr fake for sure.


WHERE is not detected across multiple lines

See below:
: go run main.go --file=test/test.sql
Linting `DELETE FROM
person
WHERE
age

>

6;
`
{Delete contains no WHERE clause, is this intentional? 1 1 1}

Closing as this was an issue on the go branch


Replace ServerWithAuth by Server in getFiatRate

To get a fiat rate there is no need to pass by the authentication mechanisms.
Also, previously the BWS was waiting for a 'source' in query, but the BWC it is sending a 'provider' query, not 'source', turns out that it is impossible to the client to query a specific provider, because fiatRateService do not recognize the variable 'source'.
Related PR: https://github.com/bitpay/bitcore-wallet-client/pull/365
Close: https://github.com/bitpay/bitcore-wallet-client/issues/364

Coverage decreased (-0.06%) to 83.125% when pulling ea54fe5a58e5bf524591201447a5e0b8ac5a6ef7 on carlosfaria94:master into 752f86029ac6f4d498c133de92f6cff2560ce98d on bitpay:master.

Good job. Thanks!


Parse json string to a function for socketio parameter.

Hi,
This is our first PR ever.
We are testing allowRequest socketio option.
What we are trying to acomplish is to authorize first GET handshake, and allowRequest method looks like it is meant for that.
When parsing laravel-echo-server.json function is parsed as string and leads to an error once a websocket connection is started.

TypeError: this.allowRequest is not a function

The cleanest solution we could think of is this https://stackoverflow.com/a/28011280/2908113
Hope this PR is clear enough, and is properly formated.

This is example laravel-echo-server.json where is defined socketio option allowRequest.
In this example the function is bare minimum to test if the function is working.
{
        "authHost": "https://HOST",
        "authEndpoint": "/broadcasting/auth",
        "clients": [],
        "database": "redis",
        "databaseConfig": {
                "redis": {},
                "sqlite": {
                        "databasePath": "/database/laravel-echo-server.sqlite"
                }
        },
        "devMode": true,
        "host": null,
        "port": "6001",
        "protocol": "http",
        "socketio": {
           "allowRequest": "function(req,res) { return res(null, true);}"
        },
        "sslCertPath": "",
        "sslKeyPath": "",
        "sslCertChainPath": "",
        "sslPassphrase": "",
        "apiOriginAllow": {
                "allowCors": false,
                "allowOrigin": "",
                "allowMethods": "",
                "allowHeaders": ""
        }
}

Thanks but will need to think about using functions in JSON. Will get back to you.

Thanks for such a fast reply.
This is the only way at the moment to pass this particular SocketIO method.
BTW, is there any way to authorize handshake before connecting to websocket "natively" with laravel-echo-server?


Compose 1.5.0 beta, Kotlin 1.9.0, minor Coroutines and AndroidX Activity version

Updated Libraries
This includes updates to the following:

Library
From
To

Kotlin
1.8.2
1.9.0

Coroutines
1.7.1
1.7.3

Compose
1.4.2
1.5.0-beta03

Jetbrains Compose
1.4.0
1.5.0-dev1122

AndroidX Activity
1.7.0
1.7.2

Changes
AnimatedContentScope was converted to an Interface so now we need to use AnimatedContentTransitionScope
EnterTransition with is deprecated and replaced by togetherWith
ComposeUIViewController replaces Application on iOS and title string parameter is no longer used so removed.
Validations
I'm running this in a new project targeting Android, iOS & JVM. My project is running and navigating on each platform. Publish and test gradle commands succeed.
Note:
This is my first time submitting a PR to an OSS project. Please let me know how I can help.

Thanks for the PR!
The 1.5.x version of Compose breaks the build as the same as #74 , I'm trying to figure it out.

I didn't update usage of PreComposeApplication in the molecule sample to remove the title parameter. I'll get that in right now.
I also did not remove binaries.executable() as in this commit on #74. I don't have a Js target in my app so I'm not sure if that change is needed.

I'm going to disable signing and publishing and try to run the build action on my fork. I'll let you know if I can get it to pass.

I try to make it built in #78 and merged into master base on your pr, thanks for the pr, and I'll release a new version very soon.


Sync: Have an option to copy the Sign In link

Testing #85944
In my weird setup, Code can't really open links in the system browser. When I chose Sync: Turn On, a popup came up asking me to sign in. I clicked Sign In, the browser failed to open. The opener service should be used here, which will give the user the chance to copy the link instead.

Auth related, assigning to @RMacfarlane

The opener service should be used here, which will give the user the chance to copy the link instead.

@joaomoreno this is an oldie but we use vscode.env.openExternal so I would think that this "just woks"...

Yeah just feel free to close this. It's not a real-world issue.


feat: Allow user to set the cache directory

Closes #681
This adds the ability to set the cache dir using an environment variable:
export PIXI_CACHE_DIR=/path/to/cache
# OR
export RATTLER_CACHE_DIR=/path/to/cache

I added the RATTLER_CACHE_DIR so that we could use that in all our libraries so that it gets shared (like it does before this change)
I added the PIXI_CACHE_DIR to not confuse users that don't have any knowledge that rattler is our backend.

What's the default value for PIXI_CACHE_DIR in macos?

Thanks for adding this feature.
Is there a central list of all pixi related environment variables?

Thanks for adding this feature.
Is there a central list of all pixi related environment variables?

No sorry, the docs could use some extra love

I'll see if I can add the doc page.
Is there a guideline for documentation contributions?

Cool, no it's mostly me writing down what I can think of. Some outsider help would be awesome. Open to ideas!


Finalize implementation of  ACL functionality

The implementation of the ACL functionality is currently incomplete. Several API endpoints need to be protected to allow only operations that should be allowed from the ACLs point of view

I am talking here about the backend functionality !


infrared_ac is a supported device type, but homebridge is not recognizing it

Prerequisite

[X] Yes, I've read the readme completely.

Cache

[X] Yes, I've cleaned accessory cache and the issue still exists.

Version
v1.7.0-beta.54
Device Infomation JSON File
},
        {
            "name": "Tuya",
            "options": {
                "projectType": "2",
                "endpoint": "https://openapi.tuyain.com",
                "accessId": "my access id",
                "accessKey": "my access key",
                "countryCode": 91,
                "username": "my email",
                "password": "my password",
                "appSchema": "smartlife",
                "deviceOverrides": [
                    {
                        "id": "d740f23d7c8822d0b1czqs",
                        "category": "infrared_ac"
                    },
                    {
                        "id": "d725509fc070a18c8bx0mn",
                        "category": "infrared_ac"
                    },
                    {
                        "id": "d78ddd2317b4ba7219xjgz",
                        "category": "hidden"
                    }
                ],
                "debug": false
            },
            "platform": "TuyaPlatform"
        }

Device Control Mode
None
Logs
[8/17/2024, 2:01:28 PM] [Tuya] [TuyaDeviceManager] Get device specification failed. devId = d78ddd2317b4ba7219xjgz, code = 2009, msg = not support this device
[8/17/2024, 2:01:28 PM] [Tuya] Fetching scene list.
[8/17/2024, 2:01:28 PM] [Tuya] Override 'Right AC' category from 'infrared_ac' to 'infrared_ac'
[8/17/2024, 2:01:28 PM] [Tuya] Override 'Left AC' category from 'infrared_ac' to 'infrared_ac'
[8/17/2024, 2:01:28 PM] [Tuya] Override 'Left IR' category from 'wnykq' to 'hidden'
[8/17/2024, 2:01:29 PM] [Tuya] Got 4 device(s) and scene(s).
[8/17/2024, 2:01:29 PM] [Tuya] Device list saved at /var/lib/homebridge/persist/TuyaDeviceList.in1723827275635usko2.json
[8/17/2024, 2:01:29 PM] [Tuya] Restoring existing accessory from cache: Right Air Conditioner
[8/17/2024, 2:01:29 PM] [Tuya] Unsupported device: Right AC.
[8/17/2024, 2:01:29 PM] [Tuya] Restoring existing accessory from cache: Air
[8/17/2024, 2:01:29 PM] [Tuya] Unsupported device: Left AC.
[8/17/2024, 2:01:29 PM] [Tuya] Restoring existing accessory from cache: Right IR and Sensor
[8/17/2024, 2:01:29 PM] [Tuya] Hide Accessory: Left IR

Other Infomations
Usually in my old homebridge, it would recognize it as infrared_ac without override, but it doesnt now, so ive had to override it. Any one know whats the issue?

I noticed that if you add IR devices while Homebridge is running it messes up with Tuya Platform cached devices (I think it might have to do something with how it gets IR devices only on startup).
Try this:

remove IR hub entirely from your app account (important: use option to wipe the data otherwise device ID won't be reset). 2. power off your home bridge - so it doesn't get new device through MQTT
add your IR hub back, setup IR remotes
power back homebridge, Tuya Platform should get IR devices and cache them

There's probably an easier way to clean device cache, but that fixed it for me.

I did a bit more testing with another IR hub I had cached - tried removing it from cache JSON file and re-adding AC device while homebridge was offline and all... Nothing worked until I actually removed and wiped the IR hub entirely from Tuya and re-added it back. I suspect it might be something on the Tuya side, I enabled IR Service after I added the hub, maybe that the issue.
Either way, different brand of IR hub, different AC controller, still same way to solve as I posted above - remove it completely from Tuya, power off homebridge (just in case), add the hub back, add IR devices, power homebridge back one.

Alright after spending some extra debugging time I'm pretty sure I figured it out: my problem was setting the IR hub category as hidden to hide it from Homebridge, no need to remove and wipe it and get a new id for it. Getting new id was helpful because it removed my category preset. Seems that you have to live with unsupported hub accessory to have it working.
In other words, the solution:
To get your IR hub working make sure you don't override its category in deviceOverrides


Sending arrow functions in HTTPS responses?

Can arrow functions and other programmatic syntax used by Blitzar be sent over HTTPS and parsed correctly for generating pages on the fly through the use of schemas?
As an example, could the part following "error" below be successfully sent as a string or some other format in a GET request's response and then used to generate a page's contents? Referring to: "(val) => (val === true ? null : 'You must accept our terms')"
{
id: 'consent',
label: 'Do you agree with our terms?',
component: 'input',
type: 'checkbox',
defaultValue: false,
dynamicProps: ['error'],
error: (val) => (val === true ? null : 'You must accept our terms'),
},

I think this is similar to #158
The actual API request code is out of scope for the Blitzar library, but making sending functions is something that would be nice if provided.


Venue Request: unable to delete the readers on "Additional Submissions Fields"

When a PC set an additional field with restricted readers and after that tries to remove it, the submission invitation is not updated correctly.
This is because when using the API 2, all the fields must be removed using { delete: true }.
I suggest to synchronize the fields of the invitation and the additional submission fields setting "delete:true" so the fields where readers are not present anymore.

I think the issue also is that we were maybe not expecting the PCs to add readers to fields in the submission invitation (since we use hide_fields for the post_submission invitation, which sets the readers only as PCs and paper authors)
Two comments:

adding readers (other than PCs and authors) at this point before the post submission is run won't make a difference because at this point papers are only visible to PCs and authors anyways
even if we do add readers at this point (for example NeurIPS.cc/2023/Workshop/OTML/Submission${{4/id}/number}/Reviewers), these will be overwritten when the Post Submission stage is run:

if the field was added to hide_fields, then the readers will be overwritten (to include only PCs and authors)
if the field was not added to hide_fields, then the readers will be deleted

I think we need to find a way to make both readers and hide_fields work together and not overwrite each other, @melisabok what do you think?

I see what you mean. hide_fields was created for the API 1 and it only supports field name, we could make the field a json and add more information, like the readers for each field we want to hide. This field could be initialized with the value from Additional Submission Fields"?
PCs should be able to set specific readers in the submission invitation and don't have to wait until the post submission stage to hide them. Post Submission is intended to run automatically.
Another option is to get rid of hide_fields and asks the PCs to specify the fields to hide in the "Additional Submission Fields".
To fix this issue, the "Additional Submission Fields" must be synchronized with the existing submission invitation and add delete: true when the field readers is removed.
How to reproduce this issue:

Submit a venue request
Deploy venue
Add additional submission fields like supplementary_material with readers: [PCs, Authors]
Submit a few submissions
Post a venue revision editing "Additional Submission Fields" where supplementary_material doesn't have readers.
The submission invitation shouldn't have readers on invitation.edit.note.content.supplementary_material

What happens with the submissions posted in step 4? I believe they remain with the restricted readers.


[bug 1130469] Add a filter for hb test rows and distinguish them by color

Add a filter for hiding test rows in hb survey answers table. Distinguish them by background color when not hidden.

After you fix the CSS issue, I'll test this out. But it looks good so far!

Removed !important and used a more specific CSS selector to set the background color.

Since I haven't used LESS before I had no idea :) Now I have fixed that.

I looked at it and I think the #fee is too subtle. Can we change it to #fdd?
Also, I think the is_test filter needs to be able to show all three states of the filter: all, is_test=yes and is_test=no. The purpose of the filter is to filter out test items, but also to only show test items. These two modes make it easier for development work that Gregg is doing.
Given that I think it should be a drop-down and not a checkbox. Plus the filtering logic probably needs to change a little.

@willkg I have changed the color to #fdd and made the filters into a dropdown as you have suggested.

Looks great!

be95d8e [bug 1130469] Add filter for hb test rows and distinguish them by color
Thank you!