Hello I want setup a rosgraph service so that I can visit in client machine

Hello my apollo docker instance runs inside remote docker instance, and I want to expose a service so that I can see rosgraph microservices relationship through a client browser (X11 supported). Any assistance from maintainers is appreciated.
Concretely, in an X11 unsupported server rosgraph will generate a file:
 /control :
    Inbound:
      /play_1510634388173405487
      /dreamview
      /play_1510634388173405487
      /control
      /dreamview
      /localization
      /play_1510634388173405487
      /localization
      /dreamview
      /hmi_ros_bridge
    Outbound:
      /dreamview
      /control
      /record_1510634419401101894
      /record_1510634419401101894

I think I can plot graph using javascript do what ros plot does in front end. Hence I need to setup a service inside docker to export data to the outside.
This service can be integrated into hmi interface using python Flask or something else.
Here is the source code of rqt_graph(GUI written in Qt):

https://github.com/yiakwy/rqt_graph/blob/master/src/rqt_graph/interactive_graphics_view.py

The expected services mesh from ROS I want is in json format (so that I can use wide first traversal to plot nodes)

Sorry we could not get back to you on this request. Please let me know if you still need support on your request. Feel free to re-open the issue.


Wording of footer

Nice work all on napari/napari.github.io#170! I only noticed it now but just wanted to suggest changing the "brands" of things at the bottom to verbs/actions, which are more accessible to newcomers that might not know what "image.sc" or "Zulip" are. Suggestions:

naparihub -> (Browse) Plugins
github -> Code
twitter -> Tweet
image.sc -> Ask
zulip -> Chat

Might be worth putting (some) of these icons at the top, ala pydata-sphinx docs:

The footer doesn't show until you scroll all the way down.

Yes and we should add a mastodon link! (I refuse to use the X logo, though. Happy to have a classic look with the bird. 😃)

Does this look like what you folks have in mind? I kept the original labels in tooltips, just in case.


[PE-D][Tester A] [Application] List command: Success message formatting

The error message indicates "person" instead of "client", which does not match up with the application and user guide of referring to all contacts as clients.

Labels: type.FunctionalityBug severity.VeryLow
original: GiselleTan/ped#17

Addressed in #202


API Theme stacking

Not enough docs or tests yet. Raising for PR.

Initial reading of the code looks reasonable, only minor suggestions relating to namespacing.

CMS tests won't pass until this & https://github.com/silverstripe/silverstripe-cms/pull/1548 is merged.

SiteConfig module needs a patch?


how do I select items in a drop down menu and iterate through a table?

Hi
I used to use the old selenium 1 and I am new to selenium 2.0. I am have difficulties selecting items in a drop down menu. what is the syntax to do this?
also how to I iterate through a table?
Does anyone happen to know a helpful website where I can find the proper vba  syntax for selenium 2?
thanks

I am have difficulties selecting items in a drop down menu. what is the syntax to do this?

Private Sub Handle_Dropdown_List()
    Dim driver As New FirefoxDriver, Assert As New Assert
    driver.Get "http://the-internet.herokuapp.com/dropdown"

    Dim ele As SelectElement
    Set ele = driver.FindElementById("dropdown").AsSelect
    ele.SelectByText "Option 2"
    Assert.Equals "Option 2", ele.SelectedOption.Text

    driver.Quit
End Sub

also how to I iterate through a table?

Private Sub Iterate_A_Table()
    Dim driver As New FirefoxDriver, Assert As New Assert
    driver.Get "http://the-internet.herokuapp.com/tables"

    'Print all cells from the second column
    Dim ele As WebElement
    For Each ele In driver.FindElementsByCss("#table1 tbody tr td:nth-child(2)")
        Debug.Print ele.Text
    Next

    driver.Quit
End Sub

Private Sub Iterate_A_Table2()
    Dim driver As New FirefoxDriver, Assert As New Assert
    driver.Get "http://the-internet.herokuapp.com/tables"

    Dim tbl As TableElement
    Set tbl = driver.FindElementByCss("#table1").AsTable

    Dim Data()
    Data = tbl.Data
    For c = 1 To UBound(Data, 1)
      For r = 1 To UBound(Data, 1)
        Debug.Print Data(r, c)
      Next
      Debug.Print Empty
    Next

    driver.Quit
End Sub

Does anyone happen to know a helpful website where I can find the proper vba syntax for selenium 2?

The usage is very similar to the other language binding which are well documented.
Moreover the API is light and the complexity using Selenium is more about creating the right selector and dealing with timing issues.


SDK DataLoaders 2: barebones Python support

Exposes raw DataLoaders to the Python SDK through 2 new methods: RecordingStream.log_file_from_path & RecordingStream.log_file_from_contents.
Everything streams asynchronously, as expected.
There's no way to configure the behavior of the DataLoader at all, yet. That comes next.
rr.log_file_from_path(filepath)

Part of series of PR to expose configurable DataLoaders to our SDKs:

#5327
#5328
#5330
#5337

Checklist

[x] I have read and agree to Contributor Guide and the Code of Conduct
[x] I've included a screenshot or gif (if applicable)
[x] I have tested the web demo (if applicable):

Using newly built examples: app.rerun.io
Using examples from latest main build: app.rerun.io
Using full set of examples from nightly build: app.rerun.io

[x] The PR title and labels are set such as to maximize their usefulness for the next release's CHANGELOG
[x] If applicable, add a new check to the release checklist!

PR Build Summary
Docs preview
Examples preview
Recent benchmark results
Wasm size tracking


Extension Support and Plugin Section in Awesome Flet

Extension Support and Plugin Section in Awesome Flet
I kindly request the implementation of extension support in the flet project. This enhancement aims to allow contributors to seamlessly publish their extensions, thereby expanding the project's functionality and fostering a more collaborative community.
Additionally, I propose the creation of a plugin section in Awesome Flet, where contributors can showcase and share their plugins. These plugins could be component types, similar to React libraries, with a focus on component libraries in general.
In simpler terms, once this feature is implemented, users will be able to import the flet component library and leverage it for much faster production. This means developers can expedite their development processes and enhance efficiency by utilizing the flet component library.
Objectives:

Implement extension support in the flet project.
Create a dedicated plugin section in Awesome Flet for contributors to showcase and share their extensions.
Enhance the versatility of the flet project.
Encourage a more vibrant ecosystem of extensions.

Your attention to this matter is greatly appreciated.
Thank you.

Any Information?

What is meant by extension here?

I like the idea, but I don't understand what is meant by extension

Implement extension support in the flet project.

What is meant by extension here?

Create a dedicated plugin section in Awesome Flet for contributors to showcase and share their extensions.

@xzripper, what do you think of adding this Plugin section in the Awesome flet repo?

Enhance the versatility of the flet project.
Encourage a more vibrant ecosystem of extensions.

Any suggestions @itsmeadarsh2008 ?

Extensions let you create your custom component library for the flet framework, similar to popular ones for React.js like Next UI (https://nextui.org/), Chakra UI (https://chakra-ui.com/), and Ant Design (https://ant.design/).
You can build beautiful, smooth apps with less code using this extension. If you're an experienced developer familiar with Flutter packages, you can easily bring your packages into the flet environment, just like community-unofficial packages.
For instance, let's say you want a music visualizer in your flet app. A kind developer has already ported the music_visualizer: ^1.0.4 package (https://pub.dev/packages/music_visualizer) from pub.dev to a flet component library. To install, run pip install flet-music-visualizer.
Once installed, integrate it into your code:
import flet as ft
from music_visualizer import music_visualizer

def main(page: ft.Page):
    page.title = "Flet Music Visualizer Example"
    page.vertical_alignment = ft.MainAxisAlignment.CENTER

    # Create a Row with the music visualizer
    row_with_visualizer = ft.Row([
        music_visualizer('/path/to/mp3')
    ])

    # Add the Row to the Page
    page.add(row_with_visualizer)

    # Update the page
    page.update()

# Run the flet app with the main function as the target
ft.app(target=main)

Now, you're ready to elevate your app with the power of the extension, making development simpler and more efficient.

To test the UI component libraries we need a sample app with all native components and a configuration file that describes the styles of components. For e.g BorderRadius, Color, Color scheme etc.

To test the UI component libraries we need a sample app with all native components to showcase and a configuration file that describes the styles of components. For example BorderRadius, Color, Color scheme etc.

updates?

I like your idea.
Flet needs the basic components/controls and for the idea with extensions to be successful, the devs need to be taught how to implement new packages/widgets.
With time perhaps...

Can you make a sample app with all flet components present for UI development? I can develop a better UI and publish it to the marketplace.


it doesn't work on windows 10!

can not input anything!

what should I do , may be some config ?

same here. atom 1.12.6/win 10 x64

me too.

Same issue on Windows 7 (x64). No output in terminal panel !

Any fix yet?


Create IG route for Domestic standing order consent

Description

[ ] Create Route on Ig routes project openbanking-demo routes
[ ] Create if necessary specific groovy script to implement on IG the domestic standing order payment consent.
[ ] Methods to support: GET, POST

Endpoints

Endpoints

Acceptance criteria

[ ] The route is deployed in Ig with no errors.
[ ] Proper response expected by the spec
[ ] Errors expected match with the OBIE specs
[ ] Route documented

[ ] Route source commented
[ ] Add the route documentation to the wiki route section

Hey team! Please add your planning poker estimate with ZenHub @andra-racovita @mariantiris


⚠ Bofrost.es has degraded performance

In 44096f8, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1878 ms

Resolved: Bofrost.es performance has improved in 21ecf5b after 1 hour, 34 minutes.


Unable to send embeds in v1.3.0

I updated to v1.3.0 and found that I am unable to send messages with embeds.
Could not parse 'message_content' as 'message_content': Could not parse value in 'embeds' list with index 0: Cannot invoke "carpet.script.value.Value.getString()" because "this.image" is null in discord at line 268, pos 7

The code that fails: (where "embed" is any valid embed dict)
_embed(embed, channel) -> (
	task(_(e, c) -> (
		dc_send_message(c, {
			'content' -> '',
			'embeds' -> [e]
		});
	)
	, embed, channel);
);

This bug persists in v1.3.1 for me.
note: I do not have the Scarpet Graphics mod.

I did further testing and was able to send embeds if no thumbnail property was used. This appears to be an issue where I provide a string URL.

Turns out it's just a copy&paste mistake 🤦♂

Hey, just a friendly poke to see how this is going. Just making sure, since you seemed to have identified the issue but no commit/release was made fixing it and this is marked closed still.
Thanks for the continued support. o/

I've fixed it in 10975c7015e387167a906c6106af9742079cedc5. I'm hoping to make a release soon too


Short solution needed: "golang slice" (golang)

Please help us write most modern and shortest code solution for this issue:
golang slice (technology: golang)
Fast way
Just write the code solution in the comments.
Prefered way

Create pull request with a new code file inside inbox folder.
Don't forget to use comments explain solution.
Link to this issue in comments of pull request.

How to create slice


fix: improve genei and shippori fonts

Greatly improves the font rendering of Genei Koburi Mincho and Shippori Mincho on Windows PCs and lower resolution devices. Along with that, changed the name from "Genei Koburi Mincho v5" to "Genei Koburi Mincho" since v5 refers to the release version.

Hi,
ty for your pr. The font key name change is actually a (temporary) breaking one - if someone used genei before it would actually fail and load a fallback system font until settings are changed as the name. Also - while being an edge case - if someone have created a custom variant via userfont with that name it would now clash too.
I guess you could check if the old value is used and map it to the new one but tbh i would simply leave it as is and just replace the font files

I've updated the pr back to the original Genei name to avoid the potential issues.

Also the Genei Koburi Mincho version used is outdated and the latest version is v6.1a. I wasn't sure if it was intentional to use the v5 version so I left it, but I could update it to v6.1 and add it to the pr.

the original list is based on a discord post and the author liked v5 more. If someone wants to compare/use a different one they can always load it via userfont feature (which did not existed back then)


Issue 18

added csv, removed xlsm

Polina,
Perhaps the XLS was better for this purpose. I'm quite sorry if my suggestion made things worse, it seems GitHub doesn't like really big TSV/CSV files anyway.  Also, as you note this wasn't a source repository but one for reporting.
Should we revert this?  I probably should be asking before I merged... sigh
Clark


upgrade dependencies for react 18

i have error<EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>warning " ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>warning " ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>

The same issue: https://github.com/orbita-center/react-dadata-box/issues/68
Upgrade your react-dadata-box version to latest.

thanks. i upgrade it.


[opentitantool] Fix config files bug

It appears that hyperdebug_teacup_default.json got left out of the list of built-in config files.

The CI failure is unrelated to this change.


Questions for the IITB Stakeholder Engagement

Draft questions for the user to get feedback on Continues Learning Strategy , collect the information and figure out persona
links to issue #477

New framapad (cleaner version): https://semestriel.framapad.org/p/9eye-interviews?lang=en

New New Framapad: https://mensuel.framapad.org/p/9f58-interview-questions?lang=en

Pending review with test directors


runtime: test timeouts / deadlocks on OpenBSD after CL 232298

There appears to be an uptick in test timeouts (perhaps deadlocks?) in the OpenBSD and NetBSD builders on or around CL 232298. Since that CL affects runtime timers, we should investigate the failures to see whether it introduced a regression that could account for these timeouts.
2020-10-27T18:38:48-f0c9ae5/netbsd-amd64-9_0
2020-10-27T18:23:46-e3bb53a/openbsd-amd64-62
2020-10-27T18:13:59-3f6b1a0/netbsd-386-9_0
2020-10-27T18:13:59-3f6b1a0/netbsd-amd64-9_0
2020-10-27T18:13:59-3f6b1a0/openbsd-amd64-62
2020-10-27T17:24:42-8fdc79e/openbsd-amd64-62
CC @ALTree @ChrisHines @ianlancetaylor @aclements

Looks like it may also affect Windows: TestTicker failed there once too.
2020-10-27T22:57:36-b4b0144/windows-amd64-longtest
2020-10-27T20:03:25-d68c01f/netbsd-386-9_0
2020-10-27T19:52:40-c515852/netbsd-386-9_0

Given that it's happening significantly on OpenBSD 6.2 and not at all on OpenBSD 6.4, it may be a problem with the old OpenBSD version or the amount of resources it has.
An important difference between those two builders, beyond the OpenBSD version, is that the 6.4 builder was configured to significantly improve performance at the cost of disabling Spectre/Meltdown mitigations (see https://github.com/golang/build/commit/31ed75f74635bc739ba5a817b37317579192d506 and https://github.com/golang/build/commit/d3ddf67ac5c858c99152a37bce5bcf8bce820d06).
CC @golang/release.

Looks like x/sync/semaphore may trigger the same issue:
2020-10-20T16:03:32-67f06af/openbsd-386-62
2020-10-20T16:03:32-67f06af/openbsd-amd64-62

Just a thought: it may be worth stress testing this under the lock rank checker on these OSes. The dashboard only runs lock rank checking on Linux.

Looping in @mknyszek , since he's pretty familiar with the timer code.

Looping in @mknyszek , since he's pretty familiar with the timer code.

Thanks. I have looked at most of the failures linked above and first impressions are that it's clearly not breaking the same way every time. The panic dumps look like a collection of blocked goroutines that are not consistent across failures. My first guess would be a missed thread wakeup somewhere leaving the runtime's P's under serviced. I haven't been able to do an in depth analysis or testing yet.
I also wonder if I missed something when rebasing to resolve conflicts with https://go-review.googlesource.com/c/go/+/259578/, so any help @prattmic double checking that would be appreciated.

I also wonder if I missed something when rebasing to resolve conflicts with https://go-review.googlesource.com/c/go/+/259578/, so any help @prattmic could give double checking that would be appreciated.

I took a look at that rebase when I had to rebase golang.org/cl/264477 around your change, and it seems OK to me, but I'll take another look.

I'm stress testing lock ranking on openbsd-amd64-62 now:
gopool create -setup 'gomote push $VM && gomote run $VM go/src/make.bash' openbsd-amd64-62
stress2 -p 8 -timeout 30m gopool run gomote run -e GOEXPERIMENT=staticlockranking \$VM go/bin/go test -short runtime

No luck so far, though. I'm not even getting the failures that are showing up at ~100% on the dashboard.

I'm able to get occasional timeouts by running all.bash on openbsd-amd64-62, but haven't had any luck getting any useful extra information yet.

It's slow going, but I've at least confirmed that we do indeed seem to missing timer expirations. From one timeout:
##### GOMAXPROCS=2 runtime -cpu=1,2,4 -quick
SIGQUIT dump:
now<PHONE_NUMBER>7748
p 0 status 0 timer0When<PHONE_NUMBER>5384
p 1 status 0 timer0When 0
p 2 status 0 timer0When<PHONE_NUMBER>6726
p 3 status 0 timer0When<PHONE_NUMBER>6203
SIGQUIT: quit
PC=0x47ab5f m=18 sigcode=0
...

All 3 of these timers should have expired 60-80s before this test failed, but didn't (unless I've missed a place where we leave expired timers in timer0When).

Hi, the issue can be reproduced by the following command on linux/amd64:
../../bin/go test -count 4 -bench BenchmarkWithTimeout

Thanks for that tip @erifan. Using that I was able to reproduce a deadlock pretty reliably. Setting some debug env vars (GODEBUG=schedtrace=1000 GOTRACEBACK=system) I was able to get a pretty rich picture of the issue. Here is a full console log of a trial built from commit 8fdc79e18a9704185bd6471b592db1e8004bd993.
stack-dump.txt.zip
Note that although I set the -test.timeout=30s that doesn't seem to work since the runtime gets deadlocked and timers aren't serviced. So on the run linked above I aborted the program after about 13s with ctrl-\.
When I look at the stack traces I am seeing a deadlock related to memory allocation. Most of the Ps have status _Pgcstop, except P1 is _Pgidle. Meanwhile most of the Ms are blocked without an associated P. Three Ms are interesting:
  M5: p=0 curg=1672 mallocing=0 throwing=0 preemptoff= locks=0 dying=0 spinning=false blocked=true lockedg=-1
  M1: p=-1 curg=-1 mallocing=0 throwing=0 preemptoff= locks=0 dying=0 spinning=false blocked=false lockedg=-1
  M0: p=-1 curg=-1 mallocing=1 throwing=1 preemptoff= locks=2 dying=1 spinning=false blocked=true lockedg=-1

The stack trace for G1672 is disappointing:
goroutine 1672 [running]:
        goroutine running on other thread; stack unavailable
created by testing.(*B).RunParallel
        /Users/chines209/gotip/go/src/testing/benchmark.go:768 +0x19e

Most all other stack traces show goroutines in a runnable state blocked on something trying to allocate or a function entry point, which I am guessing means they are blocked waiting for the GC, which isn't making progress for some reason.
Maybe someone else can tease more information out of the report I've provided. Next step for me when I have some time is to revive some of the runtime debuglog code I preserved from when I was working on the timer changes in  CL 232298. I've rebased that code and posted it at https://github.com/ChrisHines/go/tree/dlog-backup if anyone else wants to give that a try. proc.go on that branch has a lot of useful dlog() calls that are all commented out. Uncommenting a useful subset of them and increasing const debugLogBytes = 16 << 10 in debuglog.go to a higher value proved useful to me to trace the scheduler in the past.

Trying the same test on the prior commit I did not observe any deadlocks after several attempts.

Now that we have a local reproducer, would it make sense to roll back CL 232298 until it can be diagnosed and fixed?

FWIW, we got a couple hits on the vanilla linux-*-longtest builders too:
2020-11-02T15:23:43-d5388e2/linux-amd64-longtest
2020-10-30T15:25:49-e1faebe/linux-386-longtest

I've got a case in gdb (thanks for the repro @erifan!) with similar symptoms to @ChrisHines.
One there is in STW, waiting for running Ps to voluntarily stop:
(gdb) bt
#0  runtime.futex () at /usr/local/google/home/mpratt/src/go/src/runtime/sys_linux_amd64.s:580
#1  0x0000000000433c97 in runtime.futexsleep (addr=0x653308 <runtime.sched+264>, val=0, ns=100000) at /usr/local/google/home/mpratt/src/go/src/runtime/os_linux.go:50
#2  0x000000000040d239 in runtime.notetsleep_internal (n=0x653308 <runtime.sched+264>, ns=100000, ~r2=<optimized out>) at /usr/local/google/home/mpratt/src/go/src/runtime/lock_futex.go:201
#3  0x000000000040d311 in runtime.notetsleep (n=0x653308 <runtime.sched+264>, ns=100000, ~r2=<optimized out>) at /usr/local/google/home/mpratt/src/go/src/runtime/lock_futex.go:224
#4  0x000000000043cede in runtime.stopTheWorldWithSema () at /usr/local/google/home/mpratt/src/go/src/runtime/proc.go:1077
#5  0x000000000046d4c6 in runtime.systemstack () at /usr/local/google/home/mpratt/src/go/src/runtime/asm_amd64.s:375
#6  0x000000000043d180 in ?? () at /usr/local/google/home/mpratt/src/go/src/runtime/signal_unix.go:1031
#7  0x00007f3a70000020 in ?? ()
#8  0x0000000000800000 in ?? ()
#9  0x0000000000000000 in ?? ()

sched.stopwait is 1 (we are waiting for one P to stop).
 This indicates some kind of race. This P either should have been put in _Pgcstop directly by stopTheWorldWithSema, or it should have placed itself into _Pgcstop before sleeping.

@bcmills The rollback will be a bit messy due to conflicting changes that have gone in since, but I'll prepare a CL.

I am not getting any deadlocks if I run with GOGC=off either. Further indicating a bad interaction with GC.

Capturing a debuglog trace as I described above it looks like the stuck P is blocked in gcstopm probably on the call to lock(&sched.lock) since _p_.status = _Pgcstop has not happened yet. In my trace gcstop was called from schedule after a call to gopreempt_m.
So it looks like a deadlock on sched.lock may be the culprit, but not sure where the other lock holder is yet.

I'm getting close: the immediate cause is the new wakep in wakeNetPoller.
Here, P 9 is acquired by that wakep and then never put into GC stop.
As a continuation of above, what I'm seeing is that the stuck idle P is sitting an m.nextp in the M it is supposed to be running on:
(gdb) p (*'runtime.allp'.array[4]).status
$5 = 0
(gdb) p ('runtime.allp'.array[4])
$7 = (runtime.p *) 0xc000038000
(gdb) p ('runtime.p'*)(*(('runtime.m'*)(*'runtime.allm').schedlink)).nextp
$15 = (runtime.p *) 0xc000038000

This M is still sitting in mPark:
Thread 3 (Thread 0x7f8116bb2700 (LWP 4192516)):
#0  runtime.futex () at /usr/local/google/home/mpratt/src/go/src/runtime/sys_linux_amd64.s:580
#1  0x0000000000435d46 in runtime.futexsleep (addr=0xc000054950, val=0, ns=-1) at /usr/local/google/home/mpratt/src/go/src/runtime/os_linux.go:44
#2  0x000000000040f1bf in runtime.notesleep (n=0xc000054950) at /usr/local/google/home/mpratt/src/go/src/runtime/lock_futex.go:159
#3  0x000000000043f699 in runtime.mPark () at /usr/local/google/home/mpratt/src/go/src/runtime/proc.go:1297
#4  0x0000000000440d32 in runtime.stopm () at /usr/local/google/home/mpratt/src/go/src/runtime/proc.go:2210
#5  0x000000000044230e in runtime.findrunnable (gp=0xc000038000, inheritTime=false) at /usr/local/google/home/mpratt/src/go/src/runtime/proc.go:2858
#6  0x0000000000443657 in runtime.schedule () at /usr/local/google/home/mpratt/src/go/src/runtime/proc.go:3065
#7  0x0000000000443bdd in runtime.park_m (gp=0xc00060e480) at /usr/local/google/home/mpratt/src/go/src/runtime/proc.go:3214
#8  0x000000000046fdbb in runtime.mcall () at /usr/local/google/home/mpratt/src/go/src/runtime/asm_amd64.s:323
#9  0x00007f8108000020 in ?? ()
#10 0x0000000000800000 in ?? ()
#11 0x0000000000000000 in ?? ()

AFAICT, this is a general problem with M wakeup: it would seem that the notewakeup in startm simply didn't wake the M. However, that would be very surprising to me since the CL didn't really change anything around that.
One thought is that the CL did remove a startm from sysmon on timer expiration. It's possible that this wakeup bug existed before, but sysmon was kicking another M awake eventually. However, that still doesn't explain how the stuck M would get unstuck (it needs to put the P in gcstop before execution can continue).

Ah, I think I figured it out: startm takes ownership of the P from pidleget, puts it in mp.nextp, and then is preempted on call to notewakeup for its gcstop [1]. The ownership of the idle P is now in limbo, as there is nothing to put it to sleep.
Sure enough, adding acquirem/releasem to startm to disable preemption makes the hangs go away (at least so far).
That said, I don't know what this bug really has to do with the original CL.
[1] This could also happen on any other call after pidleget.

Thanks to @aclements and @mknyszek: the reason this CL trips up on this issue is that it introduces the first preemptible call to startm. Before this CL, all calls were already on the system stack and thus not preemptible.

@prattmic I am finding the same behavior here. For example, in this case P 17 was the stuck P:
[0.109546131 P 15] startm claim P 17 for M 17
[0.109546873 P 15] gopreempt_m G 1096 M 11
[0.109564601 P 11] stopTheWorldWithSema gcing
[0.109565223 P 11] signaling preemption for G 1079 on P 0 on M 16
[0.109565811 P 0] gopreempt_m G 1079 M 16
[0.109569695 P 11] signaling preemption for G 1097 on P 1 on M 29
[0.109570060 P 1] gopreempt_m G 1097 M 29
[0.109573633 P 11] signaling preemption for G 1108 on P 2 on M 21
[0.109573887 P 2] gopreempt_m G 1108 M 21
[0.109577135 P 11] signaling preemption for G 1089 on P 3 on M 7
[0.109577479 P 3] gopreempt_m G 1089 M 7
[0.109580959 P 11] signaling preemption for G 1078 on P 4 on M 15
[0.109581553 P 4] gopreempt_m G 1078 M 15
[0.109585512 P 11] signaling preemption for G 1102 on P 5 on M 12
[0.109586052 P 5] gopreempt_m G 1102 M 12
[0.109589976 P 11] signaling preemption for G 1116 on P 6 on M 35
[0.109590632 P 6] gopreempt_m G 1116 M 35
[0.109594136 P 11] signaling preemption for G 1122 on P 7 on M 3
[0.109594435 P 7] gopreempt_m G 1122 M 3
[0.109598334 P 11] signaling preemption for G 1081 on P 8 on M 25
[0.109598934 P 8] gopreempt_m G 1081 M 25
[0.109602854 P 11] signaling preemption for G 1117 on P 9 on M 31
[0.109603316 P 9] gopreempt_m G 1117 M 31
[0.109607104 P 11] signaling preemption for G 1076 on P 10 on M 13
[0.109607362 P 10] gopreempt_m G 1076 M 13
[0.109610936 P 11] signaling preemption for G 1083 on P 12 on M 24
[0.109612396 P 12] gopreempt_m G 1083 M 24
[0.109615062 P 11] signaling preemption for G 1124 on P 13 on M 20
[0.109616059 P 13] gopreempt_m G 1124 M 20
[0.109619478 P 11] signaling preemption for G 1113 on P 14 on M 19
[0.109619796 P 14] gopreempt_m G 1113 M 19
[0.109623780 P 11] signaling preemption for G 1093 on P 15 on M 11
[0.109625658 P 15] gopreempt_m G 1093 M 11
[0.109627348 P 11] signaling preemption for G 1115 on P 16 on M 0
[0.109629183 P 16] gopreempt_m G 1115 M 0
[0.109631242 P 11] signaling preemption for G 1082 on P 25 on M 22
[0.109631990 P 25] gopreempt_m G 1082 M 22
[0.109651735 P 0] schedule stopping for GC M 16
[0.109658744 P 1] schedule stopping for GC M 29
[0.109664307 P 2] schedule stopping for GC M 21
[0.109669077 P 3] schedule stopping for GC M 7
[0.109674709 P 5] schedule stopping for GC M 12
[0.109679822 P 4] schedule stopping for GC M 15
[0.109684558 P 7] schedule stopping for GC M 3
[0.109691593 P 8] schedule stopping for GC M 25
[0.109698169 P 6] schedule stopping for GC M 35
[0.109704428 P 10] schedule stopping for GC M 13
[0.109711273 P 9] schedule stopping for GC M 31
[0.109716885 P 12] schedule stopping for GC M 24
[0.109723725 P 13] schedule stopping for GC M 20
[0.109732296 P 14] schedule stopping for GC M 19
[0.109737186 P 15] schedule stopping for GC M 11
[0.109741955 P 16] schedule stopping for GC M 0
[0.109745648 P 25] schedule stopping for GC M 22

Thanks for the bug fix. 🥇

I ran into issues with openbsd-amd64-62 still failing on https://golang.org/cl/267257 after switching from systemstack() to acquirem(), leading me to believe I may have misunderstood the issue. After more testing, it appears that the systemstack() approach can also fail on openbsd-amd64-62.
https://golang.org/cl/267257 is definitely fixing a real issue, so I'll go ahead with it, but unfortunately I don't think that is the only bug here.

I've been slowly debugging further openbsd issues on trybots (no luck on gomote :(). Sample failure: https://storage.googleapis.com/go-build-log/a89e0973/openbsd-amd64-62_559bc97d.log
I don't have much in terms of details yet, but I can say that these aren't stuck waiting for STW like the previous failures.

I was investigating #42379 and I believe I found a way to reproduce this issue via gomote quite reliably. Please see https://github.com/golang/go/issues/42379#issuecomment-722054437 for details.

Thanks @dmitshur, that is extremely helpful. I can now test much faster and collect runtime traces (which I was trying to hack into trybot output last night 🙈).
The trace is quite telling (2 bad traces I've collected so far look the same):

On the left side, we can see TestSelectDuplicateChannel running. It starts goroutine B, then enters this 1ms sleep, and the entire runtime goes to sleep (should wake in 1ms).

Two minutes later sysmon wakes forcegchelper. This gets a P running, which (presumably) notices the expired 1ms timer and continues execution of the test.

From this it is pretty clear we are missing timer expirations. It seems like the obvious immediate cause of this is that sysmon no longer calls startm for expired timers. It is not yet clear to me if this is a problem due to an error in golang.org/cl/232298, or a pre-existing issue catching timers that sysmon wakeups were masking (this would not at all surprise me).

That is interesting. Questions I have:

Is there a spinning M or one in the netpoller when P3 entered the 1ms sleep?

If so, did it get woken to observe the new timer?
If not, did P3's M calculate an appropriate pollUntil value and enter the netpoller itself?

The brief start/stop cycle of P1 in the second screen shot above implies wakep->startm was called by P3. One of those two M's should have found the timer and entered the netpoller with the associated pollUntil value. Did they not notice the timer, or did the netpoller fail to wake on time?

The windows-amd64-longtest failure is also not fixed by CL 267257.
2020-11-05T19:22:02-370682a/windows-amd64-longtest
Silver lining: at least that gives us pretty good confidence that the remaining bug is also not specific to OpenBSD‽

I think I've figured it out.
Here's the log:
# Non-blocking netpoll
[4.329701056 P 1] netpoll: M 10 delay 0 ts.tv_sec 0 ts.tv_nsec 0
# kqueue(2) returns
[4.329728713 P 1] netpoll: M 10 kqueue = 0

# M 7 enters netpoll with 781ns timeout
[4.330284929 P -1] findrunnable: M 7 netpoll pollUntil<PHONE_NUMBER>548 delta 781 now<PHONE_NUMBER>767
[4.330375444 P -1] netpoll: M 7 delay 781 ts.tv_sec 0 ts.tv_nsec 781
# kqueue(2) never returns!!!!

...

# modtimer for test 1ms sleep
[129.063108051 P 0] modtimer: M 4 t 0xc0003b80a0 when<PHONE_NUMBER>242
...
# Found next timer (the one above).
[129.063198566 P 0] findrunnable: M 4 checkTimers now<PHONE_NUMBER>829 pollUntil<PHONE_NUMBER>242
# Don't enter netpoll: another M is in netpoll
# Don't netpollBreak: other M's netpoll pollUntil expires sooner than ours.
[129.063238236 P -1] findrunnable: M 4 don't netpoll break: pollerPollUntil<PHONE_NUMBER>548 <= pollUntil<PHONE_NUMBER>242
[129.063253601 P -1] findrunnable: M 4 stopm
[129.063266172 P -1] mPark: park M 4

... Nothing until force gc wakeup ...

When performing the sleep, we don't enter netpoll because we see another M is in netpoll with an earlier expiration. But look closer at that pollerPollUntil expiration: it was minutes ago and should have already expired!
Back at the beginning of the log, that netpoll entered kqueue(2) with a 781ns timeout and simply never returned. Uh oh.
Every case I've seen stuck in kqueue(2) is with a very short timeout (e.g., <1000ns). This sounds an awful lot like a kernel bug that might have been fixed by https://github.com/openbsd/src/commit/a36f8271cbe1fe2c9def06c66e3a077f13a6f19c (which was committed between OpenBSD 6.2 and 6.4 (6.4 is passing)). That commit claims that timeout <1us should have been a poll rather than blocking, but perhaps that's not quite accurate?
I suspect the fix here is going to be to force short delays either to 0ns or 1000ns, which I'll try now.

Aha, the fix was actually in https://github.com/openbsd/src/commit/c9604848bb4e9be45966dba9590f2331e15e0b53.
Prior to this commit, they checked timespec.tv_nsec == 0 for "no timeout" rather than timeval.tv_usec == 0. i.e., they were checking before timespec -> timeval truncation instead of after.
Before (code), tv_nsec < 1000 would result in atv.tv_usec = 0, timeout = 0, the same values as tsp == NULL (blocking call).
Thus far, pinning delay < 1000ns to no timeout has fixed the hangs.

https://golang.org/cl/267885 is a workaround to avoid this kernel issue. It is very simple, but will probably be a very slight perf regression for newer versions of OpenBSD, as they will spin in netpoll for <1us timers rather than blocking in the kernel.
Another option would be to do nothing and drop support for OpenBSD <6.4, as that is more than two release old per https://github.com/golang/go/wiki/OpenBSD#longterm-support. I don't know if this is a big enough issue to warrant that though, or if we'd need to give a cycle or two of announcement.
cc @golang/release

@bcmills looks like this issue is quite specific to OpenBSD. :) We'll have to take a look at Windows separately.

@prattmic, in that case I've filed #42424 separately to track the remaining issue, on the theory that each issue should track only one root cause. (That way, we can mark this issue as closed once the BSD builders are sorted out.)

Any idea whether the NetBSD kernel has the same bug as OpenBSD? (https://build.golang.org/log/28fcb871ec9f9d01d787eec2c5f32f38450d5774 on netbsd-arm64-bsiegert was after your CL landed.)
CC @bsiegert

https://golang.org/cl/267885 is a workaround to avoid this kernel issue. It is very simple, but will probably be a very slight perf regression for newer versions of OpenBSD, as they will spin in netpoll for <1us timers rather than blocking in the kernel.
Another option would be to do nothing and drop support for OpenBSD <6.4, as that is more than two releases old per https://github.com/golang/go/wiki/OpenBSD#longterm-support. I don't know if this is a big enough issue to warrant that though, or if we'd need to give a cycle or two of announcement.

OpenBSD only supports the last two releases - that is currently 6.8 (released last month) and 6.7 (released May 2020). Anything older (6.6 and earlier) are unsupported and no longer receive reliability or security fixes. Based on previous discussions, Go should target the same - there is little gained by intentionally supporting OpenBSD 6.6 or earlier, or running builders with EOL releases (in fact the opposite is true - Go risks running into problems by not running builders for supported releases).

@prattmic @4a6f656c I came here to suggest/ask something similar.
If we've determined here that the Go code is correct and this issue is due to a kernel bug in OpenBSD 6.2 which has been fixed in OpenBSD 6.4, then I think we should drop the builders.
The primary reason we still have OpenBSD 6.4 and 6.2 builders is because we didn't have enough bandwidth to get them updated more frequently (the last update was in 2018, see CL 139857 and CL 143458). If the builder health were at 100%, we would have OpenBSD 6.8 and 6.7 builders for the supported versions of OpenBSD. (Issue #35712 is about adding a OpenBSD 6.8 builder.)
If all this sounds right, I think we should add to Go 1.16 release notes that Go 1.16 requires at least OpenBSD 6.4, and disable the builder for Go 1.16 and newer.

@bcmills From a quick glance at the NetBSD source, it looks fine. I can try testing there and see what I can find.

The primary reason we still have OpenBSD 6.4 and 6.2 builders is because we didn't have enough bandwidth to get them updated more frequently (the last update was in 2018, see CL 139857 and CL 143458). If the builder health were at 100%, we would have OpenBSD 6.8 and 6.7 builders for the supported versions of OpenBSD. (Issue #35712 is about adding a OpenBSD 6.8 builder.)

@dmitshur - please let me know if you need assistance - while I can readily update the script that produces the OpenBSD images, I would not have the ability (at least as far as I know) to actually deploy the new builders, so would need someone from the Go team to push it over the line.

If all this sounds right, I think we should add to Go 1.16 release notes that Go 1.16 requires at least OpenBSD 6.4, and disable the builder for Go 1.16 and newer. Opened #42426 for that.

Sounds good to me.

For easier testing, I created this simple test case. tl;dr, all the systems I tested seem fine expect for OpenBSD 6.2.
#include <errno.h>
#include <inttypes.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/event.h>
#include <sys/time.h>

int64_t nanoseconds(const struct timespec* ts) {
  return ts->tv_sec * 1000 * 1000 * 1000 + ts->tv_nsec;
}

int64_t nanotime(void) {
  struct timespec ts;
  int ret = clock_gettime(CLOCK_MONOTONIC, &ts);
  if (ret < 0) {
    perror("clock_gettime");
    exit(1);
  }
  return nanoseconds(&ts);
}

void do_kevent(int kq, const struct timespec* timeout) {
  int64_t start = nanotime();

  if (timeout != NULL) {
    printf("%" PRId64 ": %" PRId64 "ns timeout...\n", start, nanoseconds(timeout));
  } else {
    printf("%" PRId64 ": NULL timeout...\n", start);
  }
  fflush(stdout);

  struct kevent event;

  errno = 0;
  int ret = kevent(kq, NULL, 0, &event, 1, timeout);

  int64_t end = nanotime();

  printf("%" PRId64 ": kevent = %d, %d (took %" PRId64 "ns)\n", end, ret, errno, end-start);
  fflush(stdout);
}

int main(int argc, char** argv) {
  // Die if we hang.
  alarm(5);

  int kq = kqueue();
  if (kq < 0) {
    perror("kqueue");
    exit(1);
  }

  struct timespec ts;
  ts.tv_sec = 0;
  ts.tv_nsec = 0;
  do_kevent(kq, &ts);

  ts.tv_sec = 0;
  ts.tv_nsec = 500;
  do_kevent(kq, &ts);

  ts.tv_sec = 0;
  ts.tv_nsec = 1000;
  do_kevent(kq, &ts);

  ts.tv_sec = 1;
  ts.tv_nsec = 0;
  do_kevent(kq, &ts);

  // Expect to hang.
  do_kevent(kq, NULL);

  return 0;
}

Results:
openbsd-amd64-62 (buggy!):
$ MOTE=user-mpratt-openbsd-amd64-62-0 bash -c 'gomote put ${MOTE} ~/Downloads/kqueue.c && gomote run ${MOTE} /usr/bin/clang -o kqueue kqueue.c && gomote run ${MOTE} ./kqueue'
1627543870910: 0ns timeout...
1627544323482: kevent = 0, 0 (took 452572ns)
1627544343037: 500ns timeout...
Error running run: signal: alarm clock

openbsd-amd64-64:
$ MOTE=user-mpratt-openbsd-amd64-64-0 bash -c 'gomote put ${MOTE} ~/Downloads/kqueue.c && gomote run ${MOTE} /usr/bin/clang -o kqueue kqueue.c && gomote run ${MOTE} ./kqueue'
237994200170: 0ns timeout...
237994807203: kevent = 0, 0 (took 607033ns)
237994812267: 500ns timeout...
238006095872: kevent = 0, 0 (took 11283605ns)
238006132626: 1000ns timeout...
238026102134: kevent = 0, 0 (took 19969508ns)
238026124456:<PHONE_NUMBER>ns timeout...
239036098928: kevent = 0, 0 (took<PHONE_NUMBER>ns)
239036123229: NULL timeout...
Error running run: signal: alarm clock

(N.B. alarm expected here; NULL should hang forever)
netbsd-amd64-9_0:
$ MOTE=user-mpratt-netbsd-amd64-9_0-0 bash -c 'gomote put ${MOTE} ~/Downloads/kqueue.c && gomote run ${MOTE} /usr/bin/gcc -o kqueue kqueue.c && gomote run ${MOTE} ./kqueue'
229687432330: 0ns timeout...
229687493302: kevent = 0, 0 (took 60972ns)
229687496804: 500ns timeout...
229703566876: kevent = 0, 0 (took 16070072ns)
229703584739: 1000ns timeout...
229723596147: kevent = 0, 0 (took 20011408ns)
229723613393:<PHONE_NUMBER>ns timeout...
230734957755: kevent = 0, 0 (took<PHONE_NUMBER>ns)
230735056352: NULL timeout...
Error running run: signal: alarm clock

freebsd-amd64-12_0:
$ MOTE=user-mpratt-freebsd-amd64-12_0-0 bash -c 'gomote put ${MOTE} ~/Downloads/kqueue.c && gomote run ${MOTE} /usr/bin/clang -o kqueue kqueue.c && gomote run ${MOTE} ./kqueue'
188217590805: 0ns timeout...
188217636051: kevent = 0, 0 (took 45246ns)
188217637761: 500ns timeout...
188217655127: kevent = 0, 0 (took 17366ns)
188217657050: 1000ns timeout...
188217670601: kevent = 0, 0 (took 13551ns)
188217672169:<PHONE_NUMBER>ns timeout...
189228987829: kevent = 0, 0 (took<PHONE_NUMBER>ns)
189229006286: NULL timeout...
Error running run: signal: alarm clock

darwin-amd64-10_15:
$ MOTE=user-mpratt-darwin-amd64-10_15-0 bash -c 'gomote put ${MOTE} ~/Downloads/kqueue.c && gomote run ${MOTE} /usr/bin/clang -o kqueue kqueue.c && gomote run ${MOTE} ./kqueue'
3819989126000: 0ns timeout...
3819989197000: kevent = 0, 0 (took 71000ns)
3819989202000: 500ns timeout...
3819989218000: kevent = 0, 0 (took 16000ns)
3819989223000: 1000ns timeout...
3819989239000: kevent = 0, 0 (took 16000ns)
3819989241000:<PHONE_NUMBER>ns timeout...
3820999322000: kevent = 0, 0 (took<PHONE_NUMBER>ns)
3820999375000: NULL timeout...
Error running run: signal: alarm clock

dragonfly-amd64-5_8:
$ MOTE=user-mpratt-dragonfly-amd64-5_8-0 bash -c 'gomote put ${MOTE} ~/Downloads/kqueue.c && gomote run ${MOTE} /usr/bin/gcc -o kqueue kqueue.c && gomote run ${MOTE} ./kqueue'
2574121283184035: 0ns timeout...
2574121283245496: kevent = 0, 0 (took 61461ns)
2574121283276226: 500ns timeout...
2574121294009713: kevent = 0, 0 (took 10733487ns)
2574121294199402: 1000ns timeout...
2574121314043824: kevent = 0, 0 (took 19844422ns)
2574121314370960:<PHONE_NUMBER>ns timeout...
2574122324036714: kevent = 0, 0 (took<PHONE_NUMBER>ns)
2574122324235063: NULL timeout...
Error running run: signal: alarm clock

@prattmic, the observed builder failures on NetBSD have been on the arm64 (not amd64) builder — did you check that configuration?

Hmm, actually, there's one on netbsd-386-9_0 now too:
https://build.golang.org/log/8f6922ad5c468e77a32e18757775ddf709219705

(So... do we need a separate issue to track the NetBSD deadlock?)

I shall leave no stone unturned, so I just ran the test of every builder matching (bsd|dragon|darwin). The only failures were openbsd-amd64-62, openbsd-386-62, darwin-amd64-10_11 (didn't compile, missing clock_gettime?).
So, yes, we'll need a new issue for NetBSD.

darwin-amd64-10_11 (didn't compile, missing clock_gettime?)

That builder runs macOS 10.11 El Capitan, and Go 1.14 is the last release that supports it, so it's normal for Go 1.16 to not work on it.

https://github.com/golang/go/issues/42402 was closed as a duplicate of this issue.
I recently started seeing hangs when running some benchmarks on ppc64le.

@laboger , @prattmic , I think we're trying to keep this issue focused on the OpenBSD failure, which is now understood to be specific to an OpenBSD kernel bug. But there are clearly other issues on other platforms. Since @laboger reproduced timer hangs on linux/ppc64le and linux/amd64 in #42402, is #42424 really the right issue to merge that into?

@aclements I agree that #42402 shouldn't be closed as duplicate of this.
Given @prattmic's analysis above and that #42426 is in NeedsFix state now, I don't think there's anything more to do here for OpenBSD in Go 1.16 specifically and this can be closed. Is my understanding right?

@dmitshur Correct. There is nothing more than needs to be done here for OpenBSD. #42426 covers it.


Detail page changes

Addresses the following:

[x] In the Result Details page make the “Follow Training URL” link in the top right and the URL field value both open the link target in a new tab

[ ] In the Result Details page order the HPC-ED field in a pre-defined custom order (can be hardcoded in the source)

[x] In the Result Details page create a separate fields block at the bottom of the page where all the Globus Search metadata fields, like subject and entry_id are listed separately from the HPC-ED fields listed earlier

Special Note Globus Portal Framework currently doesn't support returning entry ids from result info, due to how result formats previously worked in Globus Search. It's doable, just a bit more work. Let me know if that's preferred.

@jpnavarro I wasn't sure what the "HPC-ED field" was in item 2 or how to order it, can you clarify that please?
Screenshots:

HPC-ED fields are the application defined metadata fields. A flexible design would be to define an ordered list of field names that determines the display order, with an optional "*" element in the list which displays all fields not in the list. This would render named leading fields in order, optional unnamed fields in any order, and trailing fields in order. Please use this initial order: Title, Abstract, Authors, Expertise_Level, Learning_Outcome, Learning_Resource_Type, Target_Group, Keywords, *, Provider_ID, Rating.

New changes format dates, order things, and make display names nicer.


Log filtering logic to wandb

Logs a variety of statistics and filtering methods to Wandb so that we can view and compare filters live during dry land testing. See the windSensorFilters() docstring for what has been implemented so far, and ideas for more exotic filtering methods. The graphs in sailbot-default-project have been updated accordingly.
@hhenry01 no need to checkout to this branch if you are only testing 1 wind sensor. Works when all 3 sensors are running, but will need to modify the WIND_SPEED_FIELDS and WIND_DIRECTION_FIELDS global variables to get it working when 2 sensors are running.
https://github.com/UBCSailbot/local-pathfinding/blob/a62360d57d383a364f611e9cd1cb25b3bf9b328c/python/wandb_log.py#L31-L32
Notes

I arbitrarily chose the value for the WIND_SPEED_THRESHOLD global variable, so that can be finetuned
Idea: time average as a function of wind speed: higher speed -> shorter average
Consider warning when sensor values are far apart
Once GPS AIS is working, look into GPS filter options

Average

I created a Wiki page for Wandb, feel free to add to it: https://github.com/UBCSailbot/local-pathfinding/wiki/Wandb

Potential Resources

Kalman filter

https://towardsdatascience.com/kalman-filter-an-algorithm-for-making-sense-from-the-insights-of-various-sensors-fused-together-ddf67597f35e
https://www.researchgate.net/publication/267705230_Wind_direction_and_speed_forecasting_optimization_algorithm_for_ship_based_on_time_series_and_Kalman_filter

Moving average, exponentially weighted moving average: https://hackaday.com/2019/09/06/sensor-filters-for-coders/

Does it matter what the wind direction is set to when the wind speed is below the threshold?

https://core.ac.uk/download/pdf/79618904.pdf
Here's the paper I mentioned earlier with extra info on wind sensor filtering, might be something useful here

https://core.ac.uk/download/pdf/79618904.pdf Here's the paper I mentioned earlier with extra info on wind sensor filtering, might be something useful here

Notes from the paper (Chapter 4 - Collecting and Filtering Data):

Explore the single-pass procedure to compute a mean wind direction
Moving average filters introduce a delay between the raw measurement and final averaged value, which heavily influences the performance of their implicit tack controller; is this relevant to us?
Their GPS signals sometimes drops for up to 10 seconds, which would affect our global wind calculations; check if that is the case for us

Moving average filters introduce a delay between the raw measurement and final averaged value, which heavily influences the performance of their implicit tack controller; is this relevant to us?

@UBCSailbot/controller can you read over what the implicit tack controller does (Section 6.2) to confirm?

Moving average filters introduce a delay between the raw measurement and final averaged value, which heavily influences the performance of their implicit tack controller; is this relevant to us?

@UBCSailbot/controller can you read over what the implicit tack controller does (Section 6.2) to confirm?

Reading over the section on implicit tack, I think the filtering might be an issue depending on the size of the window we use for filtering. If its short enough it could be okay but a longer one will cause overshooting on tacks but testing would be required to actually figure out if it will be an issue. In the paper they fix the issue by allowing the controller to shorten the averaging window, could be a solution we implement if it becomes an issue.

Closing this testing branch, used to create https://github.com/UBCSailbot/local-pathfinding/pull/283 which has been merged


Table with Checkboxes - Update tbody a11y docs

replace title_cell_id to 'row_header_id' in this body of text, so that the id name is more meaningful.
| aria-labelledby="[title_cell_id]" or aria-label="[descriptive text] | .pf-c-table__check input[type="checkbox"] | Provides an accessible name for the checkbox. Required |
| id | title cell <th> > * | Provides an accessible description for the checkbox. Required if using aria-labelledby for .pf-c-table__check input[type="checkbox"] |

:tada: This issue has been resolved in version 2.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


RFP - hasleoeasyuefi

Checklist

[x] The package I am requesting does not already exist on https://chocolatey.org/packages;
[x] There is no open issue for this package;
[x] The issue title starts with 'RFP - ';
[x] The download URL is public and not locked behind a paywall / login;

Package Details
Software project URL : https://www.easyuefi.com/index-us.html
Direct download URL for the software / installer : https://www.easyuefi.com/downloads/EasyUEFI_Trial.exe
Software summary / short description:
this app is for managing UEFI and partition for Windows

Status: Review
https://community.chocolatey.org/packages/easyuefi

Package has been approved.


Readme - update ides, add note about progen replacement

I can remove the note about progen, and can add it with IAR progen PR which will come soon.
@sg-

:+1:

Note: progen exporter for IAR will land soon to this repository. I'll rebase and test the IAR with progen branch within this week, to be able to send it for testing for the next mbed release.


ng serve --proxy-config unspecified

Bug Report
Affected Package

I am not sure what package is responsible. ng serve requires ng-cli.
Is this a regression?

This does not report a behavioral bug.
Description
The ng serve command supports several options, which are listed in the Options section of its documentation page. One of the useful options is --proxy-config, which allows to proxy to backend servers. Unfortunately, its documentation is limited to:

--proxy-config
Proxy configuration file.
string

While this clearly implies that the value is the path to a configuration file, the semantics of that file are entirely unspecified.
Minimal Reproduction

This does not report a behavioral bug.
Exception or Error

Your Environment
Angular Version:

Angular CLI: 8.3.29
Node: 12.19.0
OS: win32 x64
Angular: 8.2.14
... animations, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, platform-server
... router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.803.29
@angular-devkit/build-angular     0.803.29
@angular-devkit/build-optimizer   0.803.29
@angular-devkit/build-webpack     0.803.29
@angular-devkit/core              8.3.29
@angular-devkit/schematics        8.3.29
@angular/cdk                      8.2.3
@angular/cli                      8.3.29
@angular/material                 8.2.3
@ngtools/webpack                  8.3.29
@schematics/angular               8.3.29
@schematics/update                0.803.29
rxjs                              6.6.3
typescript                        3.5.3
webpack                           4.39.2

Anything else relevant?

No

No
The documentation about proxying hints about what kind of files --proxy-config expects.

I think in this case there are 2 parts for this fix.

From https://angular.io/cli/serve#options we link to https://angular.io/guide/build#proxying-to-a-backend-server
In https://angular.io/guide/build#proxying-to-a-backend-server we provide more details about the format.


Update snap to use base:

More info: https://github.com/microsoft/vscode/pull/118116#issuecomment-802251920

From @igorljubuncic:

Some notes:

Code-oss needs to be built in a 20.04 docker container, so you will need to amend the docker line to use a 20.04 image, build your own image, or configure the container to have core20 installed. Otherwise, it will either segfault on pixbufs, or hang on launch.

Re: docker/image, we have some of this documented:
https://github.com/snapcore/snapcraft/blob/master/docker/Dockerfile
This is a direct link to a Dockerfile that can be parametrized to build the right thing.

For reference, I built vscode from deb on a 20.04 machine, and it works just fine.
I ran it in both Ubuntu and Fedora.

VS Code:
name: vscode
version: "1.0"
summary: Code editing. Redefined.
description: |
  Visual Studio Code is a new choice of tool that combines the
  simplicity of a code editor with what developers need for the core
  edit-build-debug cycle.

architectures:
  - build-on: amd64
    run-on: amd64

grade: stable
confinement: classic
base: core20

parts:
#  gnome:
#    plugin: nil
#    build-packages:
#      - software-properties-common
#    override-pull: |
#      add-apt-repository -y ppa:ubuntu-desktop/gnome-3-26
#      apt -y update

  code:
#    after:
#      - gnome
    plugin: dump
    source: ./code_1.54.3-1615806378_amd64.deb
    source-type: deb
    stage-packages:
      - libx11-xcb1
      - libx11-6
      - libxcomposite1
      - libxdamage1
      - libxext6
      - libxfixes3
      - libxrandr2
      - libasound2
      - libatk1.0-0
      - libatk-bridge2.0-0
      - libatspi2.0-0
      - libcairo2
      - libdrm2
      - libgbm1
      - libgdk-pixbuf2.0-0
      - libgtk-3-0
      - libnspr4
      - libnss3
      - libpango-1.0-0
      - libsecret-1-0
      - libxcb1
      - libxkbcommon0
      - libxkbfile1
#    prime:
#      - -usr/share/doc
#      - -usr/share/fonts
#      - -usr/share/icons
#      - -usr/share/lintian
#      - -usr/share/man

apps:
  code:
    #extensions: [gnome-3-34]
    command: usr/share/code/bin/code
    common-id: code.desktop
    environment:
      DISABLE_WAYLAND: 1
      GSETTINGS_SCHEMA_DIR: usr/share/glib-2.0/schemas

  url-handler:
    command: usr/share/code/bin/code --open-url
    environment:
      DISABLE_WAYLAND: 1
      GSETTINGS_SCHEMA_DIR: usr/share/glib-2.0/schemas

OSS:
name: @@NAME@@
version: @@VERSION@@
summary: Code editing. Redefined.
description: |
  Visual Studio Code is a new choice of tool that combines the
  simplicity of a code editor with what developers need for the core
  edit-build-debug cycle.

architectures:
  - build-on: amd64
    run-on: @@ARCHITECTURE@@

grade: stable
confinement: classic
base: core20

parts:
#  gnome:
#    plugin: nil
#    build-packages:
#      - software-properties-common
#    override-pull: |
#      add-apt-repository -y ppa:ubuntu-desktop/gnome-3-26
#      apt -y update

  code:
#    after:
#      - gnome
    plugin: dump
    source: .
    stage-packages:
      #- libc6 # without it, pixbuf segfaults, with it code-oss runs on non-xenial-built images but is not responsive
      - libx11-xcb1
      - libx11-6
      - libxcomposite1
      - libxdamage1
      - libxext6
      - libxfixes3
      - libxrandr2
      - libasound2
      - libatk1.0-0
      - libatk-bridge2.0-0
      - libatspi2.0-0
      - libcairo2
      - libdrm2
      - libgbm1
      - libgdk-pixbuf2.0-0
      - libgtk-3-0
      - libnspr4
      - libnss3
      - libpango-1.0-0
      - libsecret-1-0
      - libxcb1
      - libxkbcommon0
      - libxkbfile1
#    stage-packages:
#      - ibus-gtk3
#      - fcitx-frontend-gtk3
#      - gvfs-libs
#      - libasound2
#      - libgconf-2-4
#      - libgdk-pixbuf2.0-0
#      - libglib2.0-bin
#      - libgnome-keyring0
#      - libxkbfile1
#      - libgbm1
#      - libgtk-3-0
#      - libnotify4
#      - libnspr4
#      - libnss3
#      - libpcre3
#      - libpulse0
#      - libsecret-1-0
#      - libxss1
#      - libxtst6
#      - zlib1g
#    prime:
#      - -usr/share/doc
#      - -usr/share/fonts
#      - -usr/share/icons
#      - -usr/share/lintian
#      - -usr/share/man

apps:
  @@NAME@@:
    #extensions: [gnome-3-34]
    command: electron-launch $SNAP/usr/share/@@NAME@@/bin/@@NAME@@
    common-id: @@NAME@@.desktop
    environment:
      DISABLE_WAYLAND: 1
      GSETTINGS_SCHEMA_DIR: $SNAP/usr/share/glib-2.0/schemas

  url-handler:
    command: electron-launch $SNAP/usr/share/@@NAME@@/bin/@@NAME@@ --open-url
    environment:
      DISABLE_WAYLAND: 1
      GSETTINGS_SCHEMA_DIR: $SNAP/usr/share/glib-2.0/schemas


node tests: Get 100% coverage on rendered_markdown

Merged, thanks @showell!  This a security-sensitive module, so it's very nice to have proper test coverage for it.
@andersk FYI


Cannot create pasta?

Hi there,
I have deployed this repo from https://github.com/ChristopherRabotin/microbin on https://paste.nyxspace.com/ . Until the other day I was running version 1.x and never encountered any issue.
Right now, with the latest version, clicking "Save" does nothing at all. No error in the JS console, no sending of data to a server in the network tab, and nothing in the logs:
Jul 5 06:47:55 PM  2023-07-06T00:47:55 [INFO] - <IP_ADDRESS> "GET / HTTP/1.1" 200 11047 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/114.0" 0.000085
Jul 5 06:47:55 PM  2023-07-06T00:47:55 [INFO] - <IP_ADDRESS> "GET /static/water.css HTTP/1.1" 200 26764 "https://paste.nyxspace.com/" "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/114.0" 0.000122
Jul 5 06:47:55 PM  2023-07-06T00:47:55 [INFO] - <IP_ADDRESS> "GET /static/aes.js HTTP/1.1" 200 63732 "https://paste.nyxspace.com/" "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/114.0" 0.000159
Jul 5 06:47:55 PM  2023-07-06T00:47:55 [INFO] - <IP_ADDRESS> "GET /static/logo.png HTTP/1.1" 200 3591 "https://paste.nyxspace.com/" "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/114.0" 0.000066
Jul 5 06:47:55 PM  2023-07-06T00:47:55 [INFO] - <IP_ADDRESS> "GET /static/favicon.ico HTTP/1.1" 200 15406 "https://paste.nyxspace.com/" "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/114.0" 0.000081

In my environment on render, I define these env vars but nothing else:

Any idea what could be happening ?
Thanks

Hi there!
Sorry that this is happening and thank you for reporting it! Especially big thanks for letting me try your instance. In the console, on submission I see an error:
Uncaught (in promise) TypeError: Cannot read properties of null (reading 'value')     at form.onsubmit ((index):149:27)
Which refers to this JS code in the submission function:
if (passwordField.value.trim() != "") {
Basically I am trying to check whether your set password is empty or not, but you don't even have a password field because MICROBIN_ENCRYPTION_SERVER_SIDE is not set:
https://github.com/szabodanika/microbin/blob/aec6cab27562df6c671ef05b304a92ae90e19c6e/.env#L201
This will be an easy fix, and in the meantime you can enable server-side encryption so that the password field shows up. For now I think also enable client-side encryption, I think if you only have one of the two enabled, it will cause some more unexpected things to happen

Thanks! Just adding MICROBIN_ENCRYPTION_SERVER_SIDE = true fixed the issue.


Calculate Running Statistics & Make Accessible In Algorithm

Calculate the running statistics for the algorithm such as sharpe / sortino etc and make their values accessible in the algorithm.
==
Expected Behavior
Be able to access runtime statistics (e.g. win rate, sharpe ratio, etc) with the algorithm.
Actual Behavior
Algorithm statistics are calculated at the result handlers and users don't have access to this information during an algorithm execution which may be important for live algorithms.
Link: https://www.quantconnect.com/forum/discussion/3619/better-live-tracking-statistics/p1
Potential Solution
N/A
Checklist

[x] I have completely filled out this template
[x] I have confirmed that this issue exists on the current master branch
[x] I have confirmed that this is not a duplicate issue by searching issues

Yes! I can do that from the algorithmic trading platform AlgoTerminal, www.algoterminal.com
Please add that to QuantConnect.

Is that possible to do right now?

Create IStatisticsService Interface, make IResultHandler implement statistics service.
Add IStatisticsService.StatisticsResults method no args; returns StatisticsResults instance.
In SetAlgorithm() set the IStatisticsService to the algorithm as a private algorithm.SetStatisticsService(_statisticService);
In IAlgorithm create property Statistics return StatisticResult object
in QCAlgorithm implement Property as read-only get { return _statisticService.StatisticsResults(); }

Bonus points if:

If we can avoid recalculating it at the end of the backtest and reuse the same object
Add custom entries to the dictionary of result statistics. Statistics.SetSummaryStatistic(key, value)
Which together might open the possibility to add custom properties to the result summary

im not sure if these stats are written out into the backtest results json, I didn't see them. They are available in the backtest though. It would be great if they were added to the written out json files on a per period basis for example:
        for symbol, trade_bar in slice.Bars.items():  # there is 1 tradebar for each symbol
            tradeBar: TradeBar = trade_bar
            holding: SecurityHolding = self.Portfolio[symbol]

            ticker: str = holding.Symbol.Value

            self.statsHistory.securityStats[ticker].profits.append([timestamp, holding.Profit])
            self.statsHistory.securityStats[ticker].holdingsValues.append([timestamp, holding.HoldingsValue])
            self.statsHistory.securityStats[ticker].unrealizedProfits.append([timestamp, holding.UnrealizedProfit])
            self.statsHistory.securityStats[ticker].unrealizedProfitPercent.append([timestamp, holding.UnrealizedProfitPercent])
            self.statsHistory.securityStats[ticker].averagePrices.append([timestamp, holding.AveragePrice])
            self.statsHistory.securityStats[ticker].quantitys.append([timestamp, holding.Quantity])
            self.statsHistory.securityStats[ticker].isLongs.append([timestamp, holding.IsLong])
            self.statsHistory.securityStats[ticker].isShorts.append([timestamp, holding.IsShort])

also it would be great if we could download the files from cloud in the same format maybe via a zip as they get generated locally. cloud has orders in a csv vs json for local for example. a few other differences.


Locators chaining not working in taiko

this.fetchTheCourse=async function(){
let rows=await $('table#product > tbody > tr').elements();
for (row of rows){
let cells = row.$('td').elements();
if(cells[2]=='35'){
console.log(await cells[1].text());
}
Expected behavior
row.$('td').elements() should fetch 'td' locators under the particular row
Actual behavior
Getting the error as -- 'row.$ is not a function'
Steps to reproduce

Gauge version
Run gauge -v on your system and paste the results here.

taiko -- 1.0.3

taiko does not support this syntax. The idea is that the selectors should abstract the DOM as much as it can.
If you can explain the objective, possibly with the help of an example, we can either suggest a way with taiko or take it up as a feature, if it's not possible. Thanks.

The objective is  to manipulate the webtables. The Idea was to first determine the table 'css' then within the table css find the number of rows . Then start the for loop in rows and then in each row  , find the cells with in that row.
Hope I am making sense?
In Selenium we achieve through this :-
WebElement table = driver.findElement('....');
List rows = table.findElement(by.tagName('tr'));
for (WebElement row : rows){
List cells =  row.findElement(by.tagname('td'));
System.out.println(cells.get(0).getText());
}
How we will achieve this objective in taiko ?

You can use the Evaluate api which lets you to execute your code on the browser.


Parameters  and property names conflictions

C#:
        public override void Write(char[] buffer, int index, int count)
        {
            if (buffer == null)
            {
                throw new ArgumentNullException(nameof(buffer));
            }

            if (index < 0 || index >= buffer.Length)
            {
                throw new ArgumentOutOfRangeException(nameof(index));
            }

            if (count < 0 || (buffer.Length - index < count))
            {
                throw new ArgumentOutOfRangeException(nameof(count));
            }

            Buffer.AppendHtml(new string(buffer, index, count));
        }

VB.NET:
Option Compare Text
Option Explicit On
Option Infer Off
Option Strict On
Public Overrides Sub Write(buffer As Char(), index As Integer, count As Integer)
    If buffer Is Nothing Then
        Throw New ArgumentNullException(NameOf(buffer))
    End If

    If index < 0 OrElse index >= buffer.Length Then
        Throw New ArgumentOutOfRangeException(NameOf(index))
    End If

    If count < 0 OrElse (buffer.Length - index < count) Then
        Throw New ArgumentOutOfRangeException(NameOf(count))
    End If

    Buffer_Renamed.AppendHtml(New String(buffer, index, count))
End Sub

the Buffer_Renamed.AppendHtml(New String(buffer, index, count)) is wrong. Buffer is not buffer in C#. As I mentioned b4, changing param name leads to errors in EF and other tech. so the only solution is to add Me. b4  any variable has the same name as a param but starting with Uppercase letter.
Me.Buffer_Renamed.AppendHtml(New String(buffer, index, count))
is the equivalent VB for:
Buffer.AppendHtml(new string(buffer, index, count));
And by the way, turn Option Infer On, as it is the default for C#, and turning it of causes errors in VB.

You can control Options that are generated in output file and that are used for testing under Options/Advanced Options....I have changed the code to add Me. in next version but not sure it will not break something else.


page doesnt exist

Unable to load tweetdeck keeps saying Hmm...this page doesn’t exist. Try searching for something else.

that means plugin is not installed

indeed, it was disable and i dont remember disabling it, thanks!


High Severity Vulnerability in xstream-1.4.16.jar

https://github.com/Netflix/eureka/blob/4d1cc8077922bdeb9ef0762681be36ac22316028/eureka-client/build.gradle#L10
CVE-2021-29505: The processed stream at unmarshalling time contains type information to recreate the formerly written objects. XStream creates therefore new instances based on these type information. An attacker can manipulate the processed input stream and replace or inject objects, that result in execution of a local command on the server.
The proposed solution is to upgrade xstream to version 1.4.17

CVE-2021-29505 POC: http://x-stream.github.io/CVE-2021-29505.html
Credits: V3geB1rd, white hat hacker from Tencent Security Response Center found and reported the issue to XStream and provided the required information to reproduce it.

Thanks for the report and for the fix, appreciate it.


Firmware Update fails on Nitrokey 3C

My system:
Fedora 35
Python 3.10.2
pynitrokey installed via pip install --user pynitrokey
[mattes@t480s ~]$ nitropy version
Nitrokey tool for Nitrokey FIDO2, Nitrokey Start, Nitrokey 3 & NetHSM
0.4.16
[mattes@t480s ~]$ nitropy nk3 fetch-update
Nitrokey tool for Nitrokey FIDO2, Nitrokey Start, Nitrokey 3 & NetHSM
Download v1.0.1: 100%|███████████████████████████| 304k/304k [00:00<00:00, 715kB/s]
Successfully downloaded firmware release v1.0.1 to ./firmware-nk3xn-lpc55-v1.0.1.sb2
[mattes@t480s ~]$ nitropy nk3 update firmware-nk3xn-lpc55-v1.0.1.sb2
Nitrokey tool for Nitrokey FIDO2, Nitrokey Start, Nitrokey 3 & NetHSM
Current firmware version:  v1.0.0
Updated firmware version:  v1.0.1

Please do not remove the Nitrokey 3 or insert any other Nitrokey 3 devices during the update. Doing so may damage the Nitrokey 3.
Do you want to perform the firmware update now? [y/N]: y

Please press the touch button to reboot the device into bootloader mode ...

Traceback (most recent call last):
  File "/home/mattes/.local/bin/nitropy", line 8, in <module>
    sys.exit(nitropy())
  File "/home/mattes/.local/lib/python3.10/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/mattes/.local/lib/python3.10/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/mattes/.local/lib/python3.10/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/mattes/.local/lib/python3.10/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/mattes/.local/lib/python3.10/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/mattes/.local/lib/python3.10/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/mattes/.local/lib/python3.10/site-packages/click/decorators.py", line 33, in new_func
    return f(get_current_context().obj, *args, **kwargs)
  File "/home/mattes/.local/lib/python3.10/site-packages/pynitrokey/cli/nk3/__init__.py", line 377, in update
    raise CliException(*msgs, exc)
  File "/home/mattes/.local/lib/python3.10/site-packages/pynitrokey/cli/exceptions.py", line 19, in __init__
    super().__init__("\n".join(messages))
TypeError: sequence item 2: expected str instance, McuBootConnectionError found

Hi! Thank you for the report. This error message should not be that unpleasant. As for the cause, please check if you have Udev rules installed:
* https://docs.nitrokey.com/nitrokey3/linux/troubleshooting.html#nitrokey-is-not-detected-on-linux

I've copied the udev rules beforehand.

@maaattes Can you please follow the steps described in this comment to make sure that the udev rules are applied correctly?

Sure. Here are my results:
[mattes@t480s ~]$ nitropy nk3 reboot --bootloader
[mattes@t480s ~]$ dmesg
…
[79865.086577] hid-generic 0003:20A0:42DD.000F: hiddev100,hidraw7: USB HID v1.00 Device [NXP SEMICONDUCTOR INC. USB COMPOSITE DEVICE] on usb-0000:3c:00.0-1/input0
[mattes@t480s ~]$ udevadm info --query=path /dev/hidraw7
/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/0000:05:02.0/0000:3c:00.0/usb3/3-1/3-1:1.0/0003:20A0:42DD.000F/hidraw/hidraw7
[mattes@t480s ~]$ udevadm test /devices/pci0000:00/0000:00:1c.4/0000:04:00.0/0000:05:02.0/0000:3c:00.0/usb3/3-1/3-1:1.0/0003:20A0:42DD.000F/hidraw/hidraw7
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

Trying to open "/etc/systemd/hwdb/hwdb.bin"...
Trying to open "/etc/udev/hwdb.bin"...
…

Reading rules file: /etc/udev/rules.d/41-nitrokey.rules
…
hidraw7: /usr/lib/udev/rules.d/60-fido-id.rules:5 Importing properties from results of 'fido_id'
hidraw7: Starting 'fido_id'
Successfully forked off '(spawn)' as PID 145516.
Skipping PR_SET_MM, as we don't have privileges.
hidraw7: 'fido_id'(err) 'Failed to get current device from environment: Invalid argument'
hidraw7: Process 'fido_id' failed with exit code 1.
hidraw7: /usr/lib/udev/rules.d/60-fido-id.rules:5 Command "fido_id" returned 1 (error), ignoring
hidraw7: Handling device node '/dev/hidraw7', devnum=c239:7
hidraw7: Preserve permissions of /dev/hidraw7, uid=0, gid=0, mode=0600
hidraw7: Failed to adjust timestamp of node /dev/hidraw7: Permission denied
DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/0000:05:02.0/0000:3c:00.0/usb3/3-1/3-1:1.0/0003:20A0:42DD.000F/hidraw/hidraw7
DEVNAME=/dev/hidraw7
MAJOR=239
MINOR=7
ACTION=add
SUBSYSTEM=hidraw
Unload module index
Unloaded link configuration context.

Thank you.  Apparently, the udev rules are loaded but not applied.  Can you share the content of /etc/udev/rules.d/41-nitrokey.rules please?  Are you using systemd on your system?

Yes, I'm using systemd.
I've just updated the udev rules so I can't give you the content of the "old" rules. But I'm pretty sure that these were up-to-date.
Running nitropy nk3 test gives me on error.
Nitrokey tool for Nitrokey FIDO2, Nitrokey Start, Nitrokey 3 & NetHSM
Found 1 Nitrokey 3 device(s):
- Nitrokey 3 at /dev/hidraw7

Running tests for Nitrokey 3 at /dev/hidraw7

[1/3]	UUID query              	SUCCESS  	[not supported]
[2/3]	Firmware version query  	SUCCESS  	v1.0.0
Please press the touch button on the device ...
[3/3]	FIDO2                   	FAILURE  	PIN activated -- please set the --pin option

3 tests, 2 successful, 0 skipped, 1 failed

Summary: 1 device(s) tested, 0 successful, 1 failed

Critical error:
Test failed for 1 device(s)

Could this be the cause?

No, the nitropy nk3 test error is unrelated.  Did you set a FIDO2 PIN?  In that case, you have to call nitropy nk3 test --pin <yourpin> to fix the test failure.
Does the update work now?  If not, what are your current udev rules?

Perhaps you have not reloaded Udev service after copying the rules? Either that, or the previous set was outdated. Anyway, it works now.
@robin-nitrokey We should try to extend the Udev diagnostics in pynitrokey with some semi-automatic procedure for such occasions like this one.
Leaving ticket open until correcting the initial UI error message.

Corrected through #195. Closing as done.


Dev docs are undiscoverable

How can Bevy's documentation be improved?
Dev docs are very difficult to find, and probably unknown from most devs.

I discovered their existence randomly browsing the Bevy 0.7 release notes
I can never remember the link, and that blog post is the only place where I know the link exists
It's not even prominent in that blog post, it's way down after many other things

I'm not sure what can be done here, if a link from the main website or a link from docs.rs would be useful, but as is their value is quite low.

This is probably a side effect of not wanting them to be indexed by search engines.

Link to dev-docs just for people coming into this issue.

As mentioned by @Nilirad, this is partially intentional. We didn't want new users to accidentally stumble onto them and get frustrated when the book and publicly released version of the engine doesn't match the docs.
I'd actually suggest against putting a link in the README, and instead in the CONTRIBUTING file instead, even if the latter is harder to find and currently pretty lengthy already. The core audience of the dev docs are either Bevy contributors or ecosystem crate devs looking to update their crates near a release.

The core audience is currently nobody; it took me several months and some luck to discover those.


Add spaces between text and images

@strykerin : Thanks for your contribution! The author(s) have been notified to review your proposed change.

The doc change looks good to me.
#sign-off


Switch to remote created branch

Switch to branch, created on remot GIT host (by GitHub / GitLab for example)... That just works with the CLI at the Moment :/

Brackets 1.1.0-0 (win), Git 1.9.5.msysgit.0 & Brackets-Git 0.14.16

What I mean is, i had to open CLI then git fetch and then git checkout -b MYREMOTECREATEDBRANCH and then in XDK I could work on that branch.
After that I was able to Switch branches using the GUI Control, but previous I had to use the CLI.

In the new branch dialog, there's refresh button which does fetch to all your remote repositories and then you simply chose your remote branch there.


Labels in color bar

I have customized the levels for the color bar in my code. According to the code, the color bar is supposed to display the levels: -3.5, -2.5, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2.5, and 3.5. However, the figure does not display the specified levels on the color bar as expected. I have attached a copy of the code along with the figure. I would appreciate it if you could help me understand why this is happening and how to fix it.
r=cf.read(dwp+'praw_mon_OBS_*.nc')[0]
cmix=[-3.5,-2.5,-1.5,-1,-0.5,0,0.5,1,1.5,2.5,3.5];
cti='regression slope (mm day$^{-1}$ PW$^{-1}$)'
cfp.cscale('scale1',ncols=len(cmix)+1, white=[5,6], reverse=True)
cfp.levs(manual=cmix)
cfp.con(r,lines=False,colorbar_title=cti,colorbar_label_skip=None)

Thanks Rabiul, as I said in reply to your email on this, this is a bug and your code should produce the colourbar with all ticks labelled, as you wanted, but doesn't because of the bug. I'll comment here once I make the fix - I will try to carve out time to do that this week.


feat: Make parser optional peer dependency

Description

Make parser optional peer dependency.
Motivation and Context

Parser is a big dependency, yet it is not needed in all contexts. This would allow users to decide whether they want the parsing functionality or not.
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] I have updated the documentation accordingly. If you are changing code related to user secrets you need to really make sure that security documentation is correct.
[ ] I have read the CONTRIBUTING document.
[ ] I haven't repeated the code. (DRY)
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Closing this


added image processing extras

In anticipation of ambient occlusion and other future image processing stages, I added extras for use with jimp (https://www.npmjs.com/package/jimp) in the form of a gltf-level scratch Jimp image and Jimp copies of all the existing images, stored as jimpImage in extras._pipeline.
Since this won't be used for every pipeline configuration, I tried to make it as optional as possible.
I also added relevant specs.

Coverage decreased (-0.4%) to 93.806% when pulling e1819815fe5b6f2b7c0a8fff6e4b2b8cc05556ce on loadGltfUris_jimp into 0a06110eefc7d240c35143cfc1c7fade42f39c35 on master.

I'm a bit torn, because while it's faster to make the image processing an optional step, it makes the code a bit more confusing. It would be kind of nice if image processing was completely hidden from gltfPipeline.js, and instead it always decoded in loadGltfUris and encodes in writeSource (but only if the data was changed, this can be marked by a flag in the image's extras that is set by the AO stage/atlas stage etc).
An alternative is to continue to allow readGltf and loadGltfUris to take the imageProcess flag, but not have an encodeImages stage in gltfPipeline, instead always encode in writeSource using the flag idea above.
Let me know what you think, or if I'm overlooking something.

Can't this be handled with each stage declaring its dependencies?  See #75.

I really like option 2 for re-encoding. I also toyed with the idea of
changing 'loadGltfUris' to take an options parameter instead of 'basePath',
which might let us hide the image processing more. I'll give it a try.
On Thursday, June 16, 2016, Sean Lilley<EMAIL_ADDRESS>wrote:

I'm a bit torn, because while it's faster to make the image processing an
optional step, it makes the code a bit more confusing. It would be kind of
nice if image processing was completely hidden from gltfPipeline.js, and
instead it always decoded in loadGltfUris and encodes in writeSource (but
only if the data was changed, this can be marked by a flag in the image's
extras that is set by the AO stage/atlas stage etc).
An alternative is to continue to allow readGltf and loadGltfUris to take
the imageProcess flag, but not have an encodeImages stage in gltfPipeline,
instead always encode in writeSource using the flag idea above.
Let me know what you think, or if I'm overlooking something.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/AnalyticalGraphicsInc/gltf-pipeline/pull/91#issuecomment-226628030,
or mute the thread
https://github.com/notifications/unsubscribe/AFJTN9BRgESGRtXNUIqnPzTutqOSCaWkks5qMckYgaJpZM4I3xQl
.

Updated! As discussed offline, we decided to keep the encodeImages stage where it is for now. It seems like writeSource (which handles moving extras back into the json) is currently tied to writeGltf and not to writeBinaryGltf, and we may want to move it to come before the actual file writing options. When that happens we will move encodeImages over to that. encodeImages also now checks for an imageChanged flag before encoding.
I also updated loadGltfUris to take in an options parameter instead of just basePath and updated all relevant specs accordingly.

merged in master.

Coverage decreased (-0.4%) to 93.816% when pulling 438f84c00498857f1baef4a38f3507110690e42a on loadGltfUris_jimp into 0a06110eefc7d240c35143cfc1c7fade42f39c35 on master.

Updated!

Coverage decreased (-0.4%) to 93.854% when pulling f6d4f01d297a0e32bd0547a6382671bad9f2d8ad on loadGltfUris_jimp into 0a06110eefc7d240c35143cfc1c7fade42f39c35 on master.

@pjcozzi integrating image processing into runStages might be a little messy since the encoding and decoding have to happen at the beginning and end of the pipeline and it seems like runStages handles the stages that are more synchronous.
I imagine we could add something before runStages that checks if the pipeline needs image processing extras, but that could get messy if we have to add anything else that wraps the pipeline like this.

ok. Updated!

Coverage decreased (-0.4%) to 93.854% when pulling 364c4502c248ec3170004e63a77c687d2df29e1c on loadGltfUris_jimp into 0a06110eefc7d240c35143cfc1c7fade42f39c35 on master.

@pjcozzi integrating image processing into runStages might be a little messy since the encoding and decoding have to happen at the beginning and end of the pipeline and it seems like runStages handles the stages that are more synchronous.

We should adopt a promise style architecture for both synchronous and asynchronous stages; it would allow all stages to be run in the same fashion.

We should adopt a promise style architecture for both synchronous and asynchronous stages; it would allow all stages to be run in the same fashion.

Yes, please add it to #1.


Create argo install chart, issue #1

Helm chart to create argocd instances for assemble using the redhat gitops operator. Review the README file in the gitops-operator folder for instructions to install.

I actually going to merge this without the suggested readme changes, because the next PR already includes this commit, so it will save us getting out of sync by merging as is.


Common map and GIS questions

Please add any ideas for basic FAQ style questions below as comments

Q: How do I georeference a map?
A: Information about QGIS, ArcGIS Pro, Allmaps, Georeferencer, etc. Maybe GDAL2tiles.py?

Q: Who can I talk to about making a map?
A: SGC?

Q: How do I learn GIS?
A: SGC resources

Q: How do I add my data to Google Maps?
A: (assumption is "Google Maps" is not the specific need) Felt maps, ArcGIS Online, Google Earth Web, StoryMaps JS

Q: How do I map a set of addresses?
A: SGC address locator service guide

Q: How do I make a map without using GIS software?
A: Felt maps, Google Earth Web...

Q: How do I make a map for publishing in a journal article or on a poster?
A: SGC cartography resources.

Q: How do I make comparisons between an historical map and a current / contemporary map?
A: Introduce concept of georeferencing; tools and examples = georeferencer, allmaps, felt, arcgis

Q: How do I find interesting / relevant maps in Stanford's collections?
A: Searchworks, different branches, reach out to librarians

Q: How do I include images of maps in my paper / presentation / digital exhibition / art project?
A: Download links on Searchworks & DR.com; direct linking using IIIF; exporting map images from ArcGIS

Q: How should I identify or cite maps I use in my academic work?
A. Examples; description of acceptable uses

Q: Where can I find datasets to use in a project?
A: ArcGIS, Earthworks, data.gov

Q: How do I layer data on top of a historical map?
A: Concept of georeferencing; ArcGIS, Felt, StoryMap, etc

Q: "I just need a map"
A ...


Ackermann function in php

💥 Proposal
Ackermann function in php
Have you read the Contributing Guidelines on Pull Requests?
Yes

/assign


membrane tubulation synonym query

Membrane tubulation has the broad synonym "vesicle scission" but I can't figure out why. If anything I would say these were 'sibling' terms

Quick notes for self:

synonym added in 2012; couldn't find any record of such request in SourceForge; may want to look at PMIDs associated with term
whatever the decision, remember that 'regulation of membrane tubulation' also has the broad synonym 'regulation of vesicle scission', so edit for consistency if needed

Abstracts of associated PMIDs indicate that membrane tubulation is upstream of vesicle formation (as expected). @ValWood , I'll change the synonym scope from broad to related, for both tubulation and regulation thereof.

That is certainly true for the ESCRT-III complex activity!

Done.


Full screen mode crashes OSX application built with v2.1.4

Enabling the full-screen from either the settings or dynamically on MacOS 10.12.6 when building using Godot v2.1.4 stable crashes the application.
This does not happen with v2.1.3.stable

Tested on Godot 3.06 OSX 10.12 mid 2014 macbook air, could not reproduce.
Tested fullscreen from project settings : working
Tested fullscreen from project input : working

Propose closure.

Close 2.1 issue because you couldn't reproduce it on 3.0? 🤔

Is it reproducible in 2.1.5-stable?

Is it reproducible in 2.1.5-stable?

Bump.

Is it reproducible in 2.1.5-stable?

Will test either later today or tomorrow.

Confirming that this no longer appears to be an issue.  Although the Mac used is not on 10.13.4 OS version.

Thanks for testing. I think it should behave similarly on 10.12 and 10.13, so closing.
Please comment if you even happen to reproduce it again and we'll reopen it.


Question: what is the static hook used for?

Hi,
I'm running in to an issue where a class generated by cglib (via Mockito) has a CGLIB$STATICHOOK method larger than 64K which causes the JVM to throw an error.
So now I'm curious:

Conceptually, what is the static hook used for? It seems like there is one generated per class. Is this used to intercept static initialization? Something else?
How would I be able to reduce the size of the static hook generated by my class?

Thanks for your time!

The static hook is generated by cglib to initialize the proxy. For example, Mockito needs to know for each method what methods was invoked for which cglib adds Method instances in static fields. These instances are cached for performance reasons.
There is not much you can do here. Especially as new versions of Java will require static final fields to be initialized in the static initializer what makes it impossible to change this. You can try to upgrade Mockito to a newer verion where Byte Buddy is used as a mock provoider but if your class really declares that many methods (should be several thousand), this will still happen, despite Byte Buddy defining slightly more efficient initializers.


Remove bin/omero

Replace bin/omero -> omero

The double // indicates that  autogen did not work correctly

Double // in the path is fixed in https://github.com/ome/ome-documentation/pull/2069
To check output download zip from https://merge-ci.openmicroscopy.org/jenkins/job/OMERO-docs-superbuild-build/52/

Changes look good. 👍


Document.pid mapping adds the prefix pid

It is more a question than an issue.  Why is it prefixing the field pid with pid: when value is a integer?
Description:
I am using the default search_api_mapping.json mapping file where the pid of a document is defined as:
  "Document": {
    "base_icat_entity": "Investigation",
    "pid": ["doi", "id"],

If I do:
http://<IP_ADDRESS>:5000/search-api/documents

The returned pid  values will be look like:
pid | "10.15151/ESRF-ES-94520246"
pid | "pid:13175377"

I see that it is not an error as it is forced in the code:
https://github.com/ral-facilities/datagateway-api/blob/c67420548dd4cf951c31195362557496880ce7bb/datagateway_api/src/search_api/models.py#L253
However, by looking at the Document definition given in the search-api impementation for sci-cat, I did not see that it was mandatory:
https://github.com/panosc-eu/search-api/blob/master/doc/data-model.md#document
So, I was wondering the reason why there is a prefix.
Thanks!

Hi @antolinos, thank you for your question.
This is not mandatory as per the Data Model guide but it is a best attempt solution to make the identifiers persistent. The corresponding ICAT columns for the pid PaNOSC fields are nullable (optional), meaning that the values of these columns for some entity instances could be set to NULL in ICAT. In the case of ISIS, we discovered that the pid values of some ICAT Samples are set to NULL and this is when we decided that when such case occurs that its id is instead taken and used in setting the value of the PaNOSC pid field in the pid:<id> format. During this stage, we also discovered that the other ICAT entities have nullable corresponding pid columns. Because of this, we decided to apply the same solution to the rest of the PaNOSC entities, not just Sample. The decision to prefix the pid at the Search API level was based on the suggestions in https://github.com/icatproject/icat.server/issues/231.
Considering the above, your Document with pid pid:13175377 is prefixed with pid: because the doi value of the corresponding investigation in ICAT is NULL, therefore it takes its id (the alternative ICAT mapping field) and sets the pid to be in the pid:<id> format. I hope this makes sense.
Relevant issue to the work mentioned above - https://github.com/ral-facilities/datagateway-api/issues/314
Relevant PR to the work mentioned above - https://github.com/ral-facilities/datagateway-api/pull/324

Dear @VKTB. Thanks for your complete explanation.
Currently, the format of the results look a little bit heterogeneous. I am not sure if the PANOSC clients will be able to handle this when there is no DOI.
Thanks!


bug: 0's look weird in this instance (redo all of the numbers) - nicabar

UI/UX - This feels like tiny eyes looking at me or a badly done infinity symbol.

Shoul


Feature: opened pull requests

Hi there!  First off I really love this tool, thank you for all your efforts!
I'm interested in being able to include number of opened pull requests in the output table and believe that data is in the dataset and could be added here somehow.
Would that be a reasonable thing to add and if so would it be very difficult?

Hi @adzuci, it's easy to add, but I've received many requests on different stats, so which ones should be added that add the most value?
I'm working on a web version that allows each team to decide which stats to present, I hope it's released soon ;)


Unable to convert some datapoints.

Hi,
Thanks for the amazing software.
I have a 2 channel tuya device with built-in rf module. https://www.primezen.in/products/zen-2c5w/
I successfully extracted the firmware from the device.
While analyzing using ltchiptool, it says tuyamcu found and needs to download schema.
It downloads a schema which is unable to convert few datapoints.
Attached is an image for better understanding.

3 datapoints viz,
102 - sends a pairing command to internal mcu which puts rf device in pairing mode to pair a rf switch.
103 - sends a clear pairing command to internal mcu which clears pairing information from rf device.
116 - switches on both relays at once.
I have two questions.

How do i make above three work.
How to get new schema since the schema used by ltchiptool to poll data differs from the schema available in my device as stated in the image.

Attached below is the firmware binary for your reference.
ltchiptool_dump_2023-12-20_23-13-00.zip
Kindly help.
Thanks.

You need to implement these manually into your YAML. Not all datapoint types are supported, among those are write-only enum types (as in your example).
ltchiptool pulls whatever schema is returned for the device by Tuya servers. The mismatching ID likely only means that it pulled an updated version of the schema.

Ok, I'll try that and get back to you.
Is there a manual way of pointing out schema. example from my tuya developer account?

No, there isn't. Usually the schemas aren't any different anyway, so it would most likely produce the same output.
Keep in mind that UPK2ESPHome is only meant to be a starting point - you should always review the generated output and adjust to your needs.

Will keep that in mind.
Thanks.


Catch Exception instead of Throwable

Catching Throwable is too broad and considered to be an anti-pattern

/gcbrun


Newsletters: add 98 (2020-05-20)

[x] Lede, action items, news, releases/RCs, any additional notable merges @harding
[x] Update the release/RC section Tuesday afternoon @harding
[x] Changes to services and client software @bitschmidty
[x] Bitcoin Core #18877 @jnewbery
[x] C-Lightning #3614 @dongcarl

Made suggested edits (thanks @jonatack and @jnewbery!) and made a few small edits to the merge summary written by @jnewbery (thanks!).

ACK 99ea5a86ad11219c63d722f415c76d7aa5f0048c. All looks good so far. Thanks for the quick turnaround, @harding.

ACK f9a2f1e. Looks good!

Thanks @bitschmidty for your section and @dongcarl for your merge summary!  I made a few edits, most of which I think are self-explanatory, but two to Schmidty's section that might warrant additional explanation:

I added a mention about the protocol upgrade in the Blockstream Satellite section for two reasons: (1) so that it is clear to existing satellite users that they need to upgrade to get the ability to IBD over satellite and (2) because, from what I've heard, the new protocol is pretty nifty, so I wanted to mention it explicitly.

I moved the comma-delimited parenthetical in the Copay description to a separate sentence both because it was a bit awkward (and I never (ever) write awkward parentheticals) and because I wanted to make it clearer to readers that waiting four hours to fee bump is not a requirement of CPFP, it's a decision by the Copay authors.

As always, please feel free to revert or edit any changes.  Thanks!

added a mention about the protocol upgrade in the Blockstream Satellite
SGTM

moved the comma-delimited parenthetical in the Copay description to a separate sentence
I parenthetical too much. Change looks good.

All changes look good to me. Thanks Harding!

@jonatack thanks for that extra review!

Squashed and merged!
👍 team! Thanks to @harding @jnewbery @dongcarl for authoring and @adamjonas @jonatack for reviewing.


CFFL

CFFL

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_4636veu1_9/clone/recipe/meta.yaml:17: uses_setup_py: python setup.py install is deprecated.
WARNING: /tmp/abs_4636veu1_9/clone/recipe/meta.yaml:38: missing_description: The recipe is missing a description
Errors were found


Upgraded some gems and added skip conditionals around 2 failed specs

Upgraded 3 gems by rebuilding Gemfile.lock file.
Added skip conditionals around 2 failed specs. See separate issues #928, #929 to fix these failed specs.

Removed "2015" updates as requested.

Great, thanks @jasnow


Fix CS

We have 100 function foo();
and 27 function bar() {}
What to do now?

I think every stub should use ;
So can you update this PR to fix everything?

Oh no! Only interfaces may have function foo();

Not only interfaces but also methods. So only functions should have {}

Not only interfaces but also methods.

I've tried in a commit above. Everything went berserk :x:

Thank you!


Investigate incorporation of InstaScale into CodeFlare Operator

The core instascale logic is not very complex: https://github.com/project-codeflare/instascale/tree/main/controllers
We should investigate pulling in this logic into the CodeFlare operator itself as a separate controller within it.
Related: #32, #34, #48, #56, #59

Done with #279.