clipboard sharing with Wine apps does not work in Hyprland. It's fine with Swaywm and other wayland WMs

As the title suggests, I cannot get clipboard sharing to work between wine applications and hyprland.
I've simplified the issue and can replicate easily using just notepad.exe.
Copying from notepad.exe running under Wine successfully goes to the Wayland WM clipboard.
Copying from Wayland / Hyprland does NOT go to the clipboard in Wine.
Clipboard is fine in both directions with swaywm (which is where I am migrating from). I am using the same setup - with copyq - managing the clipboard in both places.
I have also been able to replicate the same results using the recommended / documented clipboard settings in the Hyprland Wiki:
exec-once = copyq --start-server
and separately,
exec-once = wl-paste --type text --watch cliphist store #Stores only text data
exec-once = wl-paste --type image --watch cliphist store #Stores only image data
The problem seems to only occur in Hyprland, which is why I raise this.
Is there a suggestion to help me troubleshoot root cause please?
Thank you!
Hyprland, built from branch  at commit f27873a6f06dc2f87600edb890f3c38298bfb55f dirty ().
Tag: v0.25.0

flags: (if any)~```

Clipboard sharing works in wine-wayland

click

Clipboard sharing works in wine-wayland

It does not for me. Just tested.
I am very specifically talking about clipboard copy from Wine to Wayland / X-Wayland with Hyprland.  From Wayland / X-Wayland to Wine is fine.
I just tried wine-wayland (Arch, wine-wl-git, 8.2.r928.gb2547ddf9e0-1) - exactly the same issue.  Is there anything I can do to help troubleshoot this?

click

Hi. Thanks for the input but I am not asking how to use wl clipboard. There is a specific issue with Hyprland that I am not able to replicate with other Wayland WMs (e.g Swaywm).
Is your suggested wl-clipboard different than copyq or wl-paste? Both of those work fine with Sway but not with Hypr (again, to be explicit: the problem is copying from Wayland to Wine. Not the other way around. And only in Hyprland).

https://aur.archlinux.org/packages/wine-wl-git solves the issue for me as well.

Yes - this solved it. Many thanks all!

having wine-wl-git installed does not fix the issue for me, cant copy paste into any apps running wine and its driving me crazy

Are the games usin the correct wine version in lutris or pure wine, I am also using a clipboard history retaining service clipmon https://git.sr.ht/~whynothugo/clipmon maybe using a clipboard retaining service is also a requirement.

Are the games usin the correct wine version in lutris or pure wine, I am also using a clipboard history retaining service clipmon git.sr.ht/~whynothugo/clipmon maybe using a clipboard retaining service is also a requirement.

ive tried a couple of different configurations, at first it was just wl-clip-persist and it didnt work, so i tried getting a clipboard manager and syncing the primary and secondary  and it didnt work.
then i tried installing wl-clipboard-x11 which is a wrapper around xclip/xsel because i didnt have them, still didnt work.
then i tried syncing the clipboards with wl-paste -pw wl-copy and copyq but it still doesnt work
im trying too copy paste into the notepad that ships with wine, so its wine-wl's notepad app. i cant copy paste into it, but i can copy from it,
it will let me copy paste from wine too proton but not wayland too proton or wayland too wine

@simonm can you please re-open this? the bug isn't fixed, and "use a different wine" isn't applicable for everyone

An actual fix may be wl-paste -t text -w xclip -selection clipboard. This has fixed it for me in a proton game, and in Unity editor. This uses the actual xclip, not  wl-clipboard-x11.

An actual fix may be wl-paste -t text -w xclip -selection clipboard.

Nice. Still a workaround though, not a fix.
@vaxerski could you re-open this?

This has annoyed me for months, just found this ticket today. Using a different wine is not an alternative, I already use specific Wine versions with specific patches to address other issues through Bottles. Glad to see there' a workaround though, so I don't have to manually type out my 35 character random password into the Baldur's Gate 3 launcher.

wl-paste -t text -w xclip -selection clipboard does have some issues. It will start copying constantly if the copy source uses the X clipboard. So it is indeed just a workaround for now.

And funny that it doesn't work all the time, I'm not sure where the problem is.
I had some issues between termite and firefox which doesn't exists anymore with this workaround, but between XWayland or Wine applications it's a hit-and-miss.

wl-paste -t text -w sh -c 'xclip -selection clipboard -o > /dev/null 2> /dev/null || xclip -selection clipboard' fixes the infinite copying issue that occurs in X applications.
Also, without the xclip workaround, I will note that xclip -selection clipboard -o gives Error: target STRING not available on stderr when the copy is from a wayland application. It appears that the X clipboard gets cleared when copying from a wayland application, but does not receive the new thing that is copied.
I think the reason the infinite copying occurs is that when xclip copies while an X application is focused, it gets forwarded to the wayland clipboard, which causes wl-paste -w to trigger, causing xclip to copy again, creating the loop. The new workaround prevents this by only copying with xclip if xclip errors out trying to paste.

Re-opening as per the request in the comments.
Don't overlook the possible issue of PRIMARY v CLIPOBOARD on Xorg or Wayland. You'll need to set up clipboard synchronisation as others have commented. I use copyq. There are other options.

I've tried using copyq and I've made several tests on this regard, when it doesn't copy something on this regard, copyq is totally ignored.

Hi @Menelkir - It may be copying to the "wrong" clipboard.
What happens if you look at copyq toggle UI? Is your copied text there?

wl-paste -t text -w sh -c 'xclip -selection clipboard -o > /dev/null 2> /dev/null || xclip -selection clipboard' fixes the infinite copying issue that occurs in X applications.

This seems to work fine

Edit: the command is inconsistent. I now use wl-paste -t text -w sh -c '[ "$(xclip -selection clipboard -o)" = "$(wl-paste -n)" ] || xclip -selection clipboard'

This will freeze the program when copying large texts. e.g. copying https://github.com/torvalds/linux/blob/master/Makefile from firefox (native wayland mode), then firefox will freeze.

Just out of curiosity, is it clear what the issue is here? From the workarounds, it sounds to me like Hyprland should put copied text into the "XA_CLIPBOARD" selection in the Xwayland clipboard, rather than "XA_PRIMARY" (or maybe both?). If so, isn't this a trivial one-line fix? :thinking:

If so, isn't this a trivial one-line fix? 🤔

given that sway doesn't have this problem, i assume it's a small problem with a simple fix buried somewhere in the code. unfortunately i'm not familiar enough with either project to know how to approach it without help.

I may have reached the root cause. I played with wl-copy, wl-paste, xclip and got wlroots logs as follows.
when mouse focusing on a native wayland window
Case1: test wl -> x11

wl-copy <<< foo
xclip -selection clipboard -o fails to paste foo:

[wlr] [xwayland/selection/outgoing.c:375] XCB_SELECTION_REQUEST (time=0 owner=2097153, requestor=4194305 selection=270, target=248, property=312)
[wlr] [xwayland/selection/outgoing.c:417] denying read access to selection 270 (CLIPBOARD): no xwayland surface focused
[wlr] [xwayland/selection/outgoing.c:26] SendEvent destination=4194305 SelectionNotify(31) time=0 requestor=4194305 selection=270 target=248 property=0
[wlr] [xwayland/selection/outgoing.c:375] XCB_SELECTION_REQUEST (time=0 owner=2097153, requestor=4194305 selection=270, target=31, property=312)
[wlr] [xwayland/selection/outgoing.c:417] denying read access to selection 270 (CLIPBOARD): no xwayland surface focused
[wlr] [xwayland/selection/outgoing.c:26] SendEvent destination=4194305 SelectionNotify(31) time=0 requestor=4194305 selection=270 target=31 property=0

Case2: test x11 -> wl

xclip -selection clipboard <<< foo

[wlr] [xwayland/selection/incoming.c:485] XCB_XFIXES_SELECTION_NOTIFY (selection=270, owner=10485761)
[wlr] [xwayland/selection/incoming.c:450] XCB_SELECTION_NOTIFY (selection=270, property=271, target=272)
[wlr] [xwayland/selection/incoming.c:471] denying write access to clipboard: no xwayland surface focused

wl-paste fails to paste foo

when mouse focusing on a xwayland window
Case3: test wl -> x11

wl-copy <<< foo
xclip -selection clipboard -o succeed to paste foo!

[wlr] [xwayland/selection/incoming.c:485] XCB_XFIXES_SELECTION_NOTIFY (selection=270, owner=2097153)
[wlr] [xwayland/selection/outgoing.c:375] XCB_SELECTION_REQUEST (time=0 owner=2097153, requestor=4194305 selection=270, target=248, property=312)
[wlr] [xwayland/selection/outgoing.c:296] Sending Wayland selection 248 to Xwayland window with MIME type text/plain;charset=utf-8, target 248, transfer 0x555556d695d0
[wlr] [xwayland/selection/outgoing.c:215] Starting transfer 0x555556d695d0
[wlr] [xwayland/selection/outgoing.c:92] read 4 bytes (available 65536, mask 0x1)
[wlr] [xwayland/selection/outgoing.c:145] nothing happened, buffered the bytes
[wlr] [xwayland/selection/outgoing.c:92] read 0 bytes (available 131068, mask 0x4)
[wlr] [xwayland/selection/outgoing.c:126] non-incr transfer complete
[wlr] [xwayland/selection/outgoing.c:26] SendEvent destination=4194305 SelectionNotify(31) time=0 requestor=4194305 selection=270 target=248 property=312
[wlr] [xwayland/selection/outgoing.c:61] Destroying transfer 0x555556d695d0

Case4: test x11 -> wl

xclip -selection clipboard <<< foo

[wlr] [xwayland/selection/incoming.c:485] XCB_XFIXES_SELECTION_NOTIFY (selection=270, owner=10485761)
[wlr] [xwayland/selection/incoming.c:450] XCB_SELECTION_NOTIFY (selection=270, property=271, target=272)

wl-paste succeed to paste foo!

[wlr] [xwayland/selection/incoming.c:450] XCB_SELECTION_NOTIFY (selection=270, property=271, target=248)
[wlr] [xwayland/selection/incoming.c:118] wrote 4 (total 4, remaining 4) of 4 bytes to fd 59
[wlr] [xwayland/selection/incoming.c:129] transfer complete

Summary
wl <-> x11 clipboard sync is already working (Case3&4), but denied by wlroots when xwayland window is not focused, all we need to fix is to bypass the restriction. We feel that x11 -> wl worked before because we usually keep xwayland window focused when trying to copy sth from it.

I failed to launch wine in nested hyprland session, but wps, another xwayland app that can't paste things from native wayland.
Here's wlroots log when trying to copy sth when another random xwayland app opened:

[wlr] [xwayland/selection/incoming.c:485] XCB_XFIXES_SELECTION_NOTIFY (selection=270, owner=2097153)

Here's the one when wps opened:

[wlr] [xwayland/selection/incoming.c:485] XCB_XFIXES_SELECTION_NOTIFY (selection=270, owner=2097153)
[wlr] [xwayland/selection/outgoing.c:375] XCB_SELECTION_REQUEST (time=20628677 owner=2097153, requestor=4194394 selection=270, target=272, property=322)
[wlr] [xwayland/selection/outgoing.c:417] denying read access to selection 270 (CLIPBOARD): no xwayland surface focused
[wlr] [xwayland/selection/outgoing.c:26] SendEvent destination=4194394 SelectionNotify(31) time=20628677 requestor=4194394 selection=270 target=272 property=0
[wlr] [xwayland/selection/outgoing.c:375] XCB_SELECTION_REQUEST (time=20628677 owner=2097153, requestor=4194394 selection=270, target=272, property=322)
[wlr] [xwayland/selection/outgoing.c:417] denying read access to selection 270 (CLIPBOARD): no xwayland surface focused
[wlr] [xwayland/selection/outgoing.c:26] SendEvent destination=4194394 SelectionNotify(31) time=20628677 requestor=4194394 selection=270 target=272 property=0

The log above indicates that wps is trying to read from clipboard right after we yanked something, and the read is denied by wlroots because xwayland window is not focused. But if I keep mouse focusing on wps window when copying with wl-copy, it succeed to paste after that:

[wlr] [xwayland/selection/incoming.c:485] XCB_XFIXES_SELECTION_NOTIFY (selection=270, owner=2097153)
[wlr] [xwayland/selection/outgoing.c:375] XCB_SELECTION_REQUEST (time=20939177 owner=2097153, requestor=4194394 selection=270, target=272, property=322)
[wlr] [xwayland/selection/outgoing.c:26] SendEvent destination=4194394 SelectionNotify(31) time=20939177 requestor=4194394 selection=270 target=272 property=322
[wlr] [xwayland/xwm.c:902] unhandled X11 property 322 (_QT_SELECTION) for window 4194394
[wlr] [xwayland/xwm.c:902] unhandled X11 property 322 (_QT_SELECTION) for window 4194394

I guess the cause for wine is the same, and an obvious workaround looks to me is to bypass the denial of wlroots. I don't know how sway deal with such issue.

nicely done! but if this is indeed the problem, what is sway doing differently that avoids it?

I sent a PR to wlroots https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4359, which drops the restriction of unfocused xwayland apps to read clipboard. Pasting contents from native wayland to wine works with it.

restriction of unfocused xwayland apps to read clipboard.

This hint helped me fix the issue I was having with Warframe, which now pastes properly using the forceinput window rule:
forceinput, class:^steam_app_.*$

Not sure if this has side effects yet, but it works fine for my usecase. Hopefully that PR is merged so this doesn't have to be worked around by the user.

wl-paste -t text -w sh -c 'v=$(cat); cmp -s <(xclip -selection clipboard -o) <<< "$v" || xclip -selection clipboard <<< "$v"'

This breaks coping images from/into xwayland apps at least on my system. When I copy an image from my web browser into another window I get the html of the image instead of the image itself. That works fine when wl-paste is not running or I use wl-paste only to puch stuff into cliphist. What would be best way to add cliphist store to that workaround?
Thanks!

wl-paste -t text -w sh -c 'v=$(cat); cmp -s <(xclip -selection clipboard -o) <<< "$v" || xclip -selection clipboard <<< "$v"'

This breaks coping images from/into xwayland apps at least on my system. When I copy an image from my web browser into another window I get the html of the image instead of the image itself. That works fine when wl-paste is not running or I use wl-paste only to puch stuff into cliphist. What would be best way to add cliphist store to that workaround? Thanks!

I have an aur package w/o the xwayland clipboard restriction of wlroots. Unfortunately, it won't get upstreamed because wlroots maintainers don't think dropping the restriction is the right thing to do

Thanks! Far from perfect solution especially that it completely messed up hyprpm  and I need to build split-monitor-workspaces by hand but got it working so I am fine for now.
Hope a upstream solution will be found some day.

Hope a upstream solution will be found some day.

Agreed. This is currently my only real issue with Hyprland.
I'm currently using the the wl-paste with cliphist method but it's insanely buggy and most of the time I have to swap workspaces to even get it to function at all.

@vaxerski I'm curious to hear if there are any solutions you can think of that don't involve installing custom versions of wine or hyprland :smile:

An actual fix may be wl-paste -t text -w xclip -selection clipboard. This has fixed it for me in a proton game, and in Unity editor. This uses the actual xclip, not wl-clipboard-x11.
exec-once = wl-paste -t text -w xclip -selection clipboard

Opted for this workaround as well. Stable Wayland support for Wine and Proton should be around the corner but as I understand it this is more of a wayland / xwayland issue, correct?
exec-once = wl-paste -w cliphist store -w xclip -selection clipboard

wl-paste -t text -w bash -c '[ "$(xclip -selection clipboard -o)" = "$(wl-paste -n)" ] || [ "$(wl-paste -l | grep image)" = "" ] && xclip -selection clipboard'
A version of the workaround that declines transfer if the copy contains image formats.

tools including wl-clipboard and xclip are unable to perfectly keep wayland and x clipboards in sync because they can't forward every mime types of the yanked stuff, check wl-paste -l and xclip -selection clipboard -o -t TARGETS

I found that running windows applications through Bottles does not have the clipboard issue.
It is only when using Wine/Proton standalone or through Steam do the applications have issues with the clipboard.
One application I have tried in particular is Final Fantasy XIV through the third-party launcher goatcorp/FFXIVQuickLauncher. FFXIVQuickLauncher has an option to try different Wine installations. I tried giving FFXIVQuickLauncher the version of Wine used by Bottles (soda-9.0-1) and the game launched but it did not fix the clipboard issue. I also tried replacing FFXIVQuickLauncher's wine prefix with one generated by Bottles, and the clipboard issue persisted.
So whatever magic Bottles is doing to fix the clipboard issue, it is likely not from the version of Wine being used or the wine prefix. Does anyone have any insights into how applications launched through Bottles avoids the clipboard issue?
I do not have xclip installed and I am not using the xclip workarounds mentioned before.

wl-paste -t text -w bash -c '[ "$(xclip -selection clipboard -o)" = "$(wl-paste -n)" ] || [ "$(wl-paste -l | grep image)" = "" ] && xclip -selection clipboard'
A version of the workaround that declines transfer if the copy contains image formats.

This used to work for me but recently it broke.
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  18 (X_ChangeProperty)
  Resource id in failed request:  0x20aa39
  Serial number of failed request:  22
  Current serial number in output stream:  25
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  18 (X_ChangeProperty)
  Resource id in failed request:  0x20aa3c
  Serial number of failed request:  22
  Current serial number in output stream:  25
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  18 (X_ChangeProperty)
  Resource id in failed request:  0x20aa3f
  Serial number of failed request:  22
  Current serial number in output stream:  25
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  18 (X_ChangeProperty)
  Resource id in failed request:  0x20aa42
  Serial number of failed request:  22
  Current serial number in output stream:  25

this log is repeated ad infinitum with random resource id.

An actual fix may be wl-paste -t text -w xclip -selection clipboard. This has fixed it for me in a proton game, and in Unity editor. This uses the actual xclip, not wl-clipboard-x11.
exec-once = wl-paste -t text -w xclip -selection clipboard

This works for me but then I can't copy paste texts that is ingame for some reason


FFMPEG Pull

FFMPEG Pull Args dont add  -c:v copy -c:a copy
You need to do it manual or it will use default ffmpeg encoding profile and waste a lot of processor usage.

Hey @bojanlisa,
AFAIK, it shouldn't? Are you requesting an enhancement ? Not sure how this should be implemented, search for the string -c:v is missing and append -c:v copy? The point of FFMPEG Pull Args, while not feature complete; offers flexibility. I suspect, adding a text box RTMP url with a custom checkbox just for those who want custom options might work here.
Cheers

I've been considering discontinuing this project for some time now. I'm sorry I couldn't solve your issue, but I just don't enjoy working on multistreamer anymore.

I've been considering discontinuing this project for some time now. I'm sorry I couldn't solve your issue, but I just don't enjoy working on multistreamer anymore.


[SPARK-35903][TESTS] Parameterize 'master' in TPCDSQueryBenchmark

What changes were proposed in this pull request?
Like SPARK-8397, this PR aims to parameterize TPCDSQueryBenchmark's Spark master by reusing spark.sql.test.master.
Why are the changes needed?
This is helpful for testers.
Does this PR introduce any user-facing change?
No. This is a test environment.
How was this patch tested?
Manually, I checked the performance difference with TPCDS 10g data.

Thank you, @wangyum !

Merged to master/3.1/3.0. I backported this test patch to help the release comparison.


SO_REUSEPORT support

Just dropping this here. I tested SO_REUSEPORT on go-dns using:
https://gist.github.com/chantra/dfab011267be22989b25134537963e5c
To test, I patched reflect with https://gist.github.com/chantra/abc8edf0c4cdce2e5aaf8c0d5473dd79
Perf test
GOPATH=~/go go run reflect/reflect.go  -soreuseport 0 -cpu 8

~88k
GOPATH=~/go go run reflect/reflect.go  -soreuseport 0 -cpu 4

~92k
GOPATH=~/go go run reflect/reflect.go  -soreuseport 4 -cpu 8

~225k
GOPATH=~/go go run reflect/reflect.go  -soreuseport 8 -cpu 8

~221k
GOPATH=~/go go run reflect/reflect.go  -soreuseport 4 -cpu 4

~150k
GOPATH=~/go go run reflect/reflect.go  -soreuseport 8 -cpu 4

~150k
So there is ways to squeeze more out of the service but there is some fine tuning that needs to be done between GOMAXPROCS and the number of sockets.
known issue
The empty address is not supported, e.g passing :5353 as an IP/Port to bind to would fail and report error:
address family not supported by protocol

see https://github.com/libp2p/go-reuseport/issues/7

golang 1.11 is slated to support setting socket options before listening or dialing, which includes so_reuseport and tcp_fastopen. Might be better to just wait it out and create a PR when it's natively supported.
https://go-review.googlesource.com/c/go/+/72810

Yeah will be much better. This is not a PR, I just meant to share some findings of the benefits you could expect from using SO_REUSEPORT.

Interesting, @chantra
Always a good technique to look at pipelining, both in UDP and TCP ;)
Weren't there counter-arguments in reusing ports on highly-loaded DNS servers ? i.e. magic number overlap, TCP starvation, spoofing, ordering vs holding, etc ?
As you outline, balance might be when all processors take part into orchestration, and there is a limit where is not so advantageous anymore (load matters, test data too).
I believe it must deal with time_wait and how aggressively or mildly the conneciton is detected as idle, for TCPs. less clear how it acts on UDP ..
Anyway I can see that your code implement both UDP and TCP, could you split the perf results accordingly ? just interested at this since some time.
bonnes vacances,
Max

Weren't there counter-arguments in reusing ports on highly-loaded DNS servers ? i.e. magic number overlap, TCP starvation, spoofing, ordering vs holding, etc ?

I think you are mixing this up with tw_tcp_reuse and tw_tcp_recycle. See https://vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux
On the contrary, SO_REUSEPORT allows you to have multiple listening sockets versus having all threads trying to read from the same socket.

As you outline, balance might be when all processors take part into orchestration, and there is a limit where is not so advantageous anymore (load matters, test data too).
I would tend to believe the bottleneck is lock contention or something, but I did not perform any profiling.

Anyway I can see that your code implement both UDP and TCP, could you split the perf results accordingly ? just interested at this since some time.

This was purely UDP payload performed from the local host.

it is actually dominated by syscall.Syscall which is just below syscall.sendmsg ...

This is pretty neat. I might be worth checking out how this can fit in CoreDNS.
Go does this now automatically I believe:
if *cpu != 0 {
		runtime.GOMAXPROCS(*cpu)
	}

So basically NUMCPU is the amount of listeners we want/need.

I wonder how much of https://github.com/miekg/dns/pull/565 can be attributed to less contention  - or maybe we should do both...

Quickly checked #565 and it does perform better in the "reflect" case only when I use a very small amount of workers (5-10) which bring the QPS in the 8/8 case to 250k vs 225k.

[ Quoting<EMAIL_ADDRESS>in "Re: [miekg/dns] SO_REUSEPORT suppor..." ]

Quickly checked #565 and it does perform better in the "reflect" case only when I use a very small amount of workers (5-10) which bring the QPS in the 8/8 case to 250k vs 225k.

Thanks. Yes, my big dislike of that PR was the magic worker number...
Just using NUMCPU seems a much better why of dealing with this.
/Miek
--
Miek Gieben

I'm trying to replace this, but don't see the impressive increase in qps that you've observed...

Incoming connections and datagrams are distributed to the server sockets using a hash based on the 4-tuple of the connection—that is, the peer IP address and port plus the local IP address and port. This means, for example, that if a client uses the same socket to send a series of datagrams to the server port, then those datagrams will all be directed to the same receiving server (as long as it continues to exist) [https://lwn.net/Articles/542629/]

Is source port randomized ? is server multihomed ?

With go 1.11beta2 out, I played a bit with the new API to set SO_REUSEPORT.
https://github.com/chantra/dns/commit/e80149d8f0aef34cd3055ad2bca62ddc65f27f0f
is an example. With this diff applied, reflect can be used as described above, given that https://gist.github.com/chantra/abc8edf0c4cdce2e5aaf8c0d5473dd79 was included in https://github.com/miekg/exdns/commit/417eb539cc449d2ddcae4aa0638b32c35893380f#diff-362257c9400bf5663ef5ff8016619500
The current patch is not great, I believe at least we may need to put a default function which is a noop and have a linux version that do set SO_REUSEPORT.
Anyway, feel free to play with it.

https://github.com/golang/go/issues/26771 is tracking the availability of syscall.SO_REUSEPORT constant

ok, so unix.SO_REUSEPORT it will be as apparently syscall only get new constant when required by standard library.

@chantra Should this be closed, since Golang 1.11 now supports setting these socket options, and you no longer have to include a 3rd-party library?
Ref: https://golang.org/doc/go1.11#net

Is anyone in a position to create/rework this code into a proper PR? Support wise we need to check if this features is available as we want to support 1.10 and 1.11 (last two releases)


Add TPCH reggression tests

Pull Request Test Coverage Report for Build 158335326

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.07%) to 91.851%

Totals

Change from base Build 158288761:
0.07%

Covered Lines:
4227

Relevant Lines:
4602

💛  - Coveralls

Wanna take a look @andygrove ?

Thanks for reviewing!


Unable to set RabbitMQ Heartbeat option

The RabbitMQ configuration allows a heartbeat option to be provided which lets the sensu EM connection to RMQ to be held open even if the particular server gets no traffic, or runs through HAProxy (for example)
Can this option be added to the module?

This seems like a good parameter - would you take a stab at a PR?

I just added the PR.

resolved by #559

Closing this issue via #559 #596 and #623


Use Lambda URL as CloudFront origin

Closes https://github.com/brefphp/bref/issues/1625
This PR is a draft for using Lambda URL as CloudFront origin domain
Please review and write your opinion about how we must handle logic about this
Pending:

[ ] Protect Lambda URL using IAM
[x] Ensure backwards compatibility
[x] Ensure config is easy to understand
Implement multiple scenarios

[x] No custom domain: Lambda Function URL
[x] Website: CloudFront -> Lambda Function URL
[x] API: CloudFront -> Lambda Function URL

Configuration changes
Before
functions:
    web:
        handler: public/index.php
        memorySize: 1769
        timeout: 28 # in seconds (API Gateway has a timeout of 29 seconds)
        runtime: php-82-fpm
        events:
            - httpApi: '*'

constructs:
    website:
        type: server-side-website
        domain: ${param:domain}
        certificate: ${param:certificate}
        assets:
            '/assets/*': public/assets

After
functions:
    web:
        handler: public/index.php
        memorySize: 1769
        timeout: 60 # in seconds (Lambda URL has a timeout of 900 seconds)
        runtime: php-82-fpm
        url: true

constructs:
    website:
        type: server-side-website
        domain: ${param:domain}
        certificate: ${param:certificate}
        functionName: web
        assets:
            '/assets/*': public/assets

Example Symfony project using CloudFront + Lambda URL
https://docs.block2code.com/components
Screenshots

Done some changes @mnapoli
I din't managed to pass "ts-lint" checks on utils/GetWebLambdaFunctions.ts file after some hours, sorry 😢 .
Maybe something is wrong with AWS function events typescript definition.

@mnapoli Can you review last changes?
Thanks! 👍🏻

Hello @kevincerro, there is any update on this? This change will for sure reduce costs.

Hello @kevincerro, there is any update on this? This change will for sure reduce costs.

Hello, no changes since last comment.
I've a forked version of lift package with this PR changes => npm install --require-dev @kevinc123/serverless-lift
Working in my prod setup for some months. Will be amazin if you can try them also


Homepage: placeholder content

Issue: The website redirects to the WCKDA M+ webpage when "mplus.org.hk" is entered.
Expected behaviour: M+ Stories should have a holding page instead or sending visitors off somewhere else.
Actual behaviour: Site redirects to the WKCDA M+ webpage.
Please liaise with @chrismplus for timings.

Hey @chrismplus, is this issue still relevant?

@rdunk -- I've left this one in the backlog. Let's address other issues first.


Update docgo generated files

Description
A simple update of the docgo generated files to align them with the current repository content
Fixes #135
Type of change

Documentation update

Testing steps
Regular CI

Codecov Report

Merging #136 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #136   +/-   ##
=======================================
  Coverage   49.73%   49.73%
=======================================
  Files          11       11
  Lines         949      949
=======================================
  Hits          472      472
  Misses        419      419
  Partials       58       58

Continue to review full report at Codecov.

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


Parsing an ambiguous date, e.g. 1/2/2000 with a configurable parser

Original issue is here: https://github.com/AtlasOfLivingAustralia/la-pipelines/issues/89
When TemporalInterpreter. interpretTemporal() is parsing DwcTerm.dateIdentified
It can parse:
12/12/2012 , 12/13/2012, 11/DEC/2012.,
but failed without any assertion on
11/12/2012
Solution:
GBIF.org will continue (by default) to recognize only ISO dates, or unambiguous d/m/y m/d/y dates.
By configuration, date parser can choose given formats, like EU or US to parse the ambiguous date

I created a new branch https://github.com/gbif/parsers/tree/24_eu_us_date for discussion
Added a new method:
parse(String input, DateFormatHint[] ambiguous_hints)
When the standard parsing process find an ambiguous date, like 2/3/2000, try @param ambiguous_hints to parse date, and return the first succeeded result

https://github.com/gbif/parsers/pull/25


add delay to acc pedal alert

So that the screen wouldn't appear to "flicker" when openpilot is engaged while the acc pedal is being released

I think this would mess with the state machine in controlsd. The creation delay would cause it to go into the enable immediately instead of the pre enabled state.
@adeebshihadeh am I correct? Is there an elegant way we can make this change without a second alert? I support this change since it was bothering me too.

Yeah tried it w/ my fork and it doesn't work 100% of the time, sometimes the alert still gets created immediately

No, creation_delay only delays the alert. The events (what controlsd looks at) are always there still.


PicoScope 3000 Series

Hi,
I am trying scopehal pico brigde on a PicoScope 3000 Series 3406D but I can not view a waveform. I am getting the following messages (from ps6000d)
Looking for a PicoScope 6000 series instrument to open...
Looking for a PicoScope 3000 series instrument to open...
Successfully opened instrument
    Driver version:   PS3000A Linux Driver, <IP_ADDRESS>94
    USB version:      3.0
    Hardware version: 1
    Variant info:     3406D
    Batch/serial:     FW896/0067
    Cal date:         21Jun18
    Kernel ver:       0.0
    Digital HW ver:   1
    Analog HW ver:    1
    FW ver 1:         <IP_ADDRESS>
    FW ver 2:         <IP_ADDRESS>
    Driver path:      /opt/picoscope/lib/libps3000a.so.2
    Shadow cal:       Default
    IPP version:      libpicoipp.so Linux Driver, <IP_ADDRESS>94
Client connected to SCPI socket
ERROR: ps6000aSigGenRange failed, code 0xc
ERROR: ps6000aSigGenApply failed, code 0xc
ERROR: ps6000aSigGenWaveform failed, code 0xc
ERROR: ps6000aSigGenRange failed, code 0xc
ERROR: ps6000aSigGenApply failed, code 0xc
ERROR: ps6000aSigGenWaveformDutyCycle failed, code 0xc
ERROR: ps6000aSigGenRange failed, code 0xc
ERROR: ps6000aSigGenApply failed, code 0xc
ERROR: ps6000aSigGenFrequency failed, code 0xc (freq=1000000.000000)
ERROR: ps6000aSigGenRange failed, code 0xc
ERROR: ps6000aSigGenApply failed, code 0xc
ERROR: ps6000aSigGenRange failed, code 0xc
ERROR: ps6000aSigGenApply failed, code 0xc
ERROR: ps6000aSigGenRange failed, code 0xc
ERROR: ps6000aSigGenApply failed, code 0xc
ERROR: ps6000aSigGenRange failed, code 0xc
ERROR: ps6000aSigGenApply failed, code 0xc
ERROR: ps6000aSigGenRange failed, code 0xc
ERROR: ps6000aSigGenApply failed, code 0xc
Ignoring START command because trigger is already armed
Ignoring START command because trigger is already armed

You're getting errors about ps6000* series functions, interesting. Seems like it correctly identifies the instrument as a 3000 series early on, but then starts treating it as a 6000 and things go sideways.

Ok so... the ps6000aSigGen errors seem to be harmless. There's no function generator support in ps6000d for the 3000 series yet, so those functions assume they're dealing with a 6000 series instrument and fail when given anything else.
On the glscopeclient side, are you sure that the instrument actually has a valid trigger configured? The default in glscopeclient is to run in normal trigger mode (we don't actually support auto trigger yet, that's a pending TODO item), while the PicoScope software defaults to auto trigger. So if you don't have a trigger correctly configured and actually firing, you won't see anything.

Filed a separate issue #18 for the missing function generator support on the 3000 series.

Hello , I did not know about the trigger setup but I think I configured it properly now still.

Yeah. 3000 series support in libscopehal is still incomplete. There just might not be enough driver-side code to work properly.
I can see what I can do as far as adding it, but it will be hard without hardware to test on.
@noopwafel I think you had some success with 3000 series? What's the status of that?

See https://github.com/glscopeclient/scopehal/pull/481
You can test also

https://github.com/bvernoux/scopehal-pico-bridge

https://github.com/bvernoux/scopehal-pico-bridge/commit/bc20c7d95ecb4f5c625e4f0d8cbc4c973a5ef620
Add support of Picoscope 3000 series (including MSO option)
Shall build fine only on GNU/Linux, Msys2/Mingw64 have issues to build fully with error: no matching function for call to 'max(int64_t&, long int)'... to be investigated with @azonenberg as I'm pretty sure such issue was solved before in glscopeclient code...

@bvernoux are we good to close this issue or are there still pending items?

Waiting https://github.com/glscopeclient/scopehal/pull/481
To be merged as so far no anyone can test it without this PR merged

Yes it can be closed
Feedback from other users will be welcome


Types missing from k8s.io/docs/reference/config-api/

There are a lot of configuration APIs not mentioned here.  Examples include:

KubeletConfiguration
InitConfiguration
ClusterConfiguration

Actually KubeletConfiguration is there, don't know how I missed it.  But the kubeadm types are missing.

kubeadm type reference was generated but not published.
There were not strong support for generating and publishing them.
You can check https://github.com/kubernetes-sigs/reference-docs/blob/master/genref/output/md/kubeadm-config.v1beta2.md for the output at the moment.

Publishing the kubeadm types seems fine. One push back from me was around
changing field comments before doing that.

/kind feature
/language en
This would work better as one GitHub issue per missing page @MikeSpreitzer


Add the feature to auto-scroll

As a music lyric software, it is pretty inconvenient not having the feature to scroll down the lyric box automatically. I recorded the duration into the song object and used the window height and total scroll height as indicators to decide when to begin scrolling and what the interval should be for scroll down one px.
This approach is not accurate but approximate because I assume the constant pace of the music lyrics.
Hope you can add this to the settings of the program so that users can choose it.

Yes please. Please add scrolling feature. Thanks. :)

Hi, @emilioastarita . Please review the changes.


Refactor connectivy checks usage

Currently, our connectivity checks are not really easy to use.
Firstly, we always need to instantiate a metastore before doing anything else. It must be valid otherwise we cannot fetch the index metadata.
So now we fetch the metadata and it means 2 things: the metastore is working and the index exists.
Put it simply, we can remove the metastore and the check on the existence of the index from the checklist. Once we have the index metadata, we can check the storage and finally the sources.
Another question arises when using the CLI, do we really want to print the nice report every time for every command?  As suggested by @guilload it could make sense to print the report in a dedicated command like this quickwit index check --index-id.

maybe a solution could be the following:

check metastore, index existence in the metastore, the storage, and finally the sources in a single function
once this is done do the normal stuff

Of course, we are doing some things 2 times like fetching the index metadata, but the cost is low.
What do you think @fulmicoton? Are you going to save your beautiful report?


How do you build a dynamic update query?

Hello everyone,
I was wondering how to build a dynamic update instruction as I have a use case where I want to update one or more fields in DynamoDB and did not find a clean way.
I have an update coming in that looks like this:
case class IncomingUpdate(firstName: Option[String], xCurrency: Option[Int], yCurrency: Option[Int])

Not all fields could be present and these map onto DynamoDB. I was wondering how you could build an update query in a nice manner.
I detailed my attempts at trying to come up with something over here but alas with no luck:
https://gitter.im/guardian/scanamo?at=57bdd2bb5bdd197c1cb9e405

Thanks for raising the issue @calvinlfer. It's definitely something I want to make possible, but I've yet to find a good solution. Having this here will make it easier for me to ask for help.


[bug] setting core_loaders breaks reading YML configuration file

Describe the bug
When using the core_loaders attribute with the value ["yaml"] Dynaconf fails reading settings from the respective YML configuration file.
To Reproduce

Go into an empty dir.

Setup environment.

Python 3.9
pip install dynaconf[yaml] or poetry add "dynaconf[yaml]"
dynaconf 3.1.2
ruaml.yml 0.16.2

Create settings.yml

test: hallo
logging:
  json: true

Create test.py and execute it. It will succeed.

from dynaconf import Dynaconf

settings = Dynaconf(
    merge_enabled=True,
    settings_files=["settings.yml"],
)

print(settings.TEST)
print(settings.LOGGING.JSON)

Add attribute core_loaders as recommended in the Dynaconf doc. Execute. This will fail.

from dynaconf import Dynaconf

settings = Dynaconf(
    merge_enabled=True,
    core_loaders=["yaml"],
    settings_files=["settings.yml"],
)

print(settings.TEST)
print(settings.LOGGING.JSON)

Nevermind, it has to be uppercase.

Lets work on improving it and have make it to accept lower case.


Look into adding API operation to return non existant row columns.

A few times I have written Fluo code to find the row columns that do not exists.   A primitive operation for this could be optimized.

@keith-turner I would like to up my game and tackle this one next. Can you point me in the correct direction?

This is a very rough outline of what I think needs to be done for this feature.

Add setIfAbsent(Bytes row, Column col, Value val) method to TransactionBase interface.
Implement setIfAbsent(Bytes row, Column col, Value val) in TransactionImpl.  This method could call set(Bytes row, Column col, Value val) with a special value that indicates this row+col is expected to be empty.  This is similar to what delete does internally, delete calls set with a special value.
In the prewrite phase of commit() when a transaction sets its locks, I think a condition can be added to the conditional mutation used for locks.  This condition could configure the snapshot iterator and expect the result to be empty.

Some background on conditional mutations :  http://rleary.com/blog/accumulo-conditional-mutations/

I would like to claim this if possible. The other issues I have currently are fairly trivial.


Detect ' is not?-- in SQLi rules

Description
BB Finding 7NLGEWUC
email=' is not?--

' is not?-- is detected by terjang's new PL2 rule 943520 which was added on Jun 4:
https://github.com/coreruleset/coreruleset/pull/2568/files
[id "942520"] [msg "Detects basic SQL authentication bypass attempts 4.0/4"] [data "Matched Data: ' is not found within ARGS:email: ' is not?--"]
PL2 rule 942110 should match as well, but the rule only has severity "WARNING" and adds a score of 3:
[id "942110"] [msg "SQL Injection Attack: Common Injection Testing Detected"] [data "Matched Data: ' found within ARGS:email: ' is not?--"]

Looks good, linked PR with test is merged!


Empty frames at the beginning of video

When recording an ARSCNView, there's empty (black) frames at the beginning of the video.
Tested on an iPhone 7 Plus.

Is this on the latest release? Can you confirm using the latest pod release


nix-straight.el cannot read Doom package locks

Doom has its own mechanism to lock packages to specific revisions. Currently, nix-straight.el only knows how to extract package names and not additional metadata for versions / tags / git revs as this would require writing multiple fetchers for all the *ELPAS and probably some Git special-case stuff too. Additionally, Emacs Lisp is terrifying and requires a tonne of patience.
This being left unimplemented so far has left Doom working just well enough that no one has bothered since my (inexperienced, messy, researching) attempt a year or so ago, and I'm hoping this issue might incite some action:

Here's the issue on the original vlaci repository where vlaci gives a few hints.
Many many errors, this is like the leading cause of open issues[^1]... #177 #70 #259 #212 #147 (maybe #352)
PR documenting some of this (and current hacks) for end-users at #266
If implemented with one derivation per package, perhaps improvements (on Nativecomp especially) in #324?
Open: Should we go monorepo with nix-straight.el for easier integration? We're may need more hacks for things like #344. Can't find anyone else depending on it but not on nix-doom-emacs on cs.github.com.

This whole thing is like, big and difficult[^2], but very worth it for the community if someone decides to do it.
cc @thiagokokada @YellowOnion @ribosomerocker @evertedsphere
[^1]: …even if each user will only notice one or two things
[^2]: Doesn't split nicely into different work units except the fetchers even.

Have I understood the problem correctly nix-straight.el uses straight-use-package to determine which packages are used, but there is no way to extract further information like the pin or recipe?

@leifhelm: Yes, except Doom is the one calling straight-use-package and it does have the pin info. It's just a lot of unfun specialized Elisp hacking to figure out the details.

I have no clue how to code elisp, So I can't really confirm if this will reduce work load, but why can't we just use doom itself?
there's a bunch of dooms functions for package management in the  file lisp/doom-packages.el
And the function doom-packages-install in lisp/cli/packages.el#L273, calls a few of these against straight-use-package.

Generally, because we want to use nix for package management, which is why this project exists.

Specifically what we want to do is keep our Doom build reproducible, so we can have some hashes -- possibly as many as yarn2nix keeps so all the builds of that Emacs will have the exact same package sources.
We basically have to use some of Doom's package manager, but we need someone with enough patience to setup an advice hook or something to be able to grab hashes and source URLs for all the packages so we can have Nix fetch and verify them for us instead of Doom's ~black box.

The doom-package-pinned-list contains all pinned packages after the initialization. This however does not include the hash of the commit. So a sort of commit to hash resolution is necessary to get the hash of the commit.

 There's a few sources; IIRC the *ELPA's and some Git forges are the common ones.

I want to pick this up considering I still use NDE and am a bit fed up, but don't want to be a Cookie Licker. I have made some attempts at understanding the doom-packages.el for this issue a while back, but got dragged into other things.

I have some free time and I'd love to help; please let me know what I can do!

Wanting to learn Nix and not wanting to keep running doom sync, I ended up writing https://github.com/marienz/nix-doom-emacs-unstraightened, a reimplementation taking a different approach:

Use doom's CLI to export dependencies / pins
Customize emacs-overlay to apply Doom's pins and recipes, and build an emacsWithPackages containing them
Hook into Doom's profile generation to use the "built-in" version for all packages we just built (while keeping Doom's startup optimizations)

The end result does not use straight.el (other than to write an empty build cache to keep some bits of Doom working). All Emacs package-building is handled by Nix.
Applying pins on top of emacs-overlay is a hack, and I had to specialcase a few packages, but it does seem to work so far (on my machine... feedback appreciated!), and I'm cautiously optimistic the entire contraption is maintainable. Or at least it should be once I write tests and set up CI.

... I ended up writing https://github.com/marienz/nix-doom-emacs-unstraightened, a reimplementation taking a different approach:
* Use doom's CLI to export dependencies / pins

* Customize emacs-overlay to apply Doom's pins and recipes, and build an emacsWithPackages containing them

* Hook into Doom's profile generation to use the "built-in" version for all packages we just built (while keeping Doom's startup optimizations)

This is awesome. I started looking into doing this at some point but ran into the problem of the pins referring to repos/projects that are not obvious from the get-go, kept hacking a while, but ended up giving up as I was out of my depth. Looking forward to reading through your project, I really hope I can use it.

This is awesome.

Thanks! :)

I started looking into doing this at some point but ran into the problem of the pins referring to repos/projects that are not obvious from the get-go

That was by far the most bang-head-against-wall trial-and-error bit of development. Tracing through Doom startup to figure out my options for hooking into it also took some time.
Tricky bits include:

Can't use Emacs packages from NixOS 23.11, at least one package Doom pins moved its upstream. nixpkgs-unstable might work but emacs-overlay seemed more reasonable (because if a repo moves and it takes Doom a few days to update you just pin emacs-overlay to before the move, no need to pin all of nixpkgs).
Doom fetches ELPA packages from the https://github.com/emacs-straight mirror repositories. You have to do the same for the pins to work. And that means you can't just override src for those packages, because nixpkgs elpaBuild expects a tarball, not a directory (melpaBuild seems to work). There's enough of those you can't just rely on emacs-overlay + a manageable number of handwritten derivations, generating per-package derivations (for ELPA + a few packages not in emacs-overlay for which Doom provides a recipe) is more or less required.
straight.el applies pins per repository, not package. I thought I could get away with ignoring that, but then almost immediately afterwards discovered ignoring it  triggers the behavior described in https://github.com/magit/magit/pull/5130 (because Doom pins magit but does not explicitly pin the magit-section package, and I assume but did not confirm building the magit package uses magit-section.el from that package's source, not the magit-section dependency). Fixed now but that's the one where straight.el being structured differently really hurt.

Looking forward to reading through your project

It's... not the most readable code. I blame simultaneously learning Nix and having to add an increasing number of hacks to make it work: it could do with a cleanup pass now that it does.
Happy to answer questions if anything's unclear (if you don't understand it now, probably I won't understand it a year from now when it inevitably breaks...)

btw, I asked some time back about trying to fix this, and the author got back to me:
raxod502 (Radon Rosborough)
[JoelMcCracken](https://matrix.to/#/@JoelMcCracken:matrix.org): I'm not sure if it will still be helpful since I'm so late but let me try to answer your question. You should be able to use the straight--convert-recipe function to convert a package name symbol into a plist-style package spec, which is similar to MELPA-style but should be easier to parse. Then you can check the :host and :repo keys to see which upstream repository is in use for that package. As for the commit, under vanilla straight.el that would come from the lockfile, which is just a plist in Emacs Lisp format which you can parse yourself or extract using the functions that straight.el uses for straight-thaw-versions. But I think Doom has its own custom way of specifying package versions that does not use what straight.el uses.

Not sure if this'll help anyone with this


GeneratedRegex attribute

Description (optional)
Support for [GeneratedRegex] attribute.  MS Docs
Rationale
This is the new .Net 8 way of having static readonly regexes in code:
[GeneratedRegex(@"^by\(\s*(?<var>[a-zA-Z_][a-zA-Z0-9_]*)\s*\)")]
private static partial Regex MyRegex();
private static readonly Regex _byForm = MyRegex();

Prior to .Net 8, this is required:
private static readonly Regex _byForm = new(@"^by\(\s*(?<var>[a-zA-Z_][a-zA-Z0-9_]*)\s*\)");

which is arguably cleaner, but it means that regex table lookups are performed at runtime instead of at compile time.  (I expect my usage isn't an ideal example.)
Proposed API
No proposal
Drawbacks
None
Alternatives
None
Other thoughts
None.

It looks like this is not as easy. Maybe even impossible. Even if you provide GeneratedRegexAttribute as a polyfill, the compiler still won't generate the implementation of the partial method. At least not when targeting .NET Framework 4.8 with C# version 12.
Even if you could get the compiler to generate the source code, it would have may compilation errors. From a quick look there are at least the following additional things missing for the generated code:

Missing type SearchValues<T>.
Missing type ReadOnlySpan<T>.
You could reference the NuGet package System.Memory for that. But even then there are missing methods on ReadOnlySpan<T>, e.g. IndexOfAnyExcept. The NuGet package wasn't updated for the last few .NET releases.
Other missing methods like char.IsAscii.
The generated class Runner class inherits from RegexRunner. It looks like RegexRunner was changed from .NET Framework to .NET Core so the generated class doesn't compile (not implemented abstract methods, changed parameters for virtual methods). And you can't just provide your own class for that because the generated Regex inherits from Regex and assigns the field Regex.factory which needs to be of the framework provided RegexRunnerFactory type.

Sounds like a long shot.  No worries.

In fact I suppose you really do not have to replicate also the performances of that Attribute. What's needed is just a polyfill that will write the code and inside the code will call the constructor for the standard regex. Like that the code will cross compile correctly.


Fontbakery should perform some default actions

In reference to Dave's recent TypeDrawers thread requesting feedback on how to make Fontbakery better for type designers who may want to use it, but perhaps find it intimidating, hard to install, or hard to use.
As a casual/occasional user of Fontbakery, I find it to be a bit of a pain looking up and writing all the command line flags just to perform some basic actions. I think there should be some sane default actions that are performed if only the check profile is specified.
For example, if I run fontbakery check-universal, it responds with No applicable files found, which is confusing since I have plenty of .ttf files in the current folder. If no flags/parameters are entered after check-xxxx, it would be sensible to me if it simply runs on all font files (ttf/otf/woff/woff2/etc) in the current folder, with the default log level, and outputs to some default formats like gh-markdown and html.
Further to this idea, it would be useful if those default actions could be overriden with a config file in the current folder, and perhaps a default config file somewhere else on the user's system.

Thanks for posting this @justinpenner

Agree. I also think that the fontbakery CLI is completely unintuitive. For example:
fontbakery check-profile myprofile.py --html report.html font.ttf

does not work; it needs to be
fontbakery check-profile --html report.html myprofile.py font.ttf

even though conceptually check-profile *profilename* is more tightly coupled than *profilename* *fontname*.
As well as having some default settings (I'm forever running checks and then looking for the report file, only to find that it gave me a long output on the terminal but never saved anything because I forgot to ask it to), I think putting the rest of the settings - report format and output filename, profile name to be checked, etc. - into a config file would make the user experience much easier.

We may need to manage the migration process, eg have a new fontbakery-nextgen command line for say 3 months, with the new args/order/defaults, and also a fontbakery-legacy command with the old ones, alias the fb command to the legacy one, and then after 3 months remap the alias.


[Feat] Permanent schedulers in crontab style

Describe the feature
Today, when the user wants to schedule a recurring event, he uses the timers API. However, this API does not support via crontab semantics. It would be interesting to support this somehow.
Why would that be important to you?
It is very common in systems development to stumble upon this type of requirement.
Additional context
We can implement this via Activators, this way it would not be necessary to change the current protocol. This also allows the crontab to be permanent regardless of the actor's state and eliminates the need for a global process of coordinating these schedulers via the Erlang cluster.
We can use the k8s API for CronJobs to provide this.

Closed by #201 and #204


Telemetry.GPIO is not working correctly

Hello,
I am using your SDK for telemetry in an Android app. I want to read the GPIO values and I am using the UNDOCUMENTED (https://estimote.github.io/Android-SDK/JavaDocs/com/estimote/sdk/cloud/model/Telemetry.html -- please fix your docs they have many problems I'll add another issue for that) Telemetry.GPIO boolean array. Unfortunately, this array has (for some reason - can you clarify?) four boolean values (instead of two) and the first two values are always the same. I.e when I set GPIO 1 to 1 it will return [true, true, true, true] and when I setr GPIO 1 to 0 it will return [false, false, true, true].
I did some checking on your decompiled  (since I can't find the source anywhere) classes for version 0.16 (compile 'com.estimote:sdk:0.16.0@aar') and found this gem in com.estimote.sdk.telemetry.internal.TelemetryParse:
 telemetry.GPIO = new boolean[]{(tmp & 16) > 0, (tmp & 16) > 0, (tmp & 64) > 0, (tmp & 128) > 0};

probably the second 16 has to be changed to 32....
Please fix it ASAP and release a new version because we can't use GPO at all.

Hello @spapas
Thanks for feedback about our documentation - you are perfectly right! We are preparing larger update with many fixes to core functionality as wall as documentation. As for telemetry GPIO - thanks for finding this bug, it will be fixed asap.
I will push current version for you with this fixup, but for more changes you need to wait some more time.

Hello @pawelDylag we'll wait for the new release, thank you very much!
Best regards,
Serafeim

Hey @spapas
Repository is live, you can add it to your project:
dependencies {
  compile 'com.estimote:sdk:0.16.1@aar'
}

It might be available after some time - central repo need some time to refresh. I fixed Vector data and GPIO as you requested. More fixes will be introduced in later release.

Hello @pawelDylag just tested 0.16.1 with my app - both fixes work great, thank you very much!
Best regards,
Serafeim

Glad it worked! More improvements in close future, stay tuned :)
We are open for further feedback. Good luck with development!


Update Azure sdk to v10.2.1-beta

I also added Gopkg.* files generated by dep. This will give any user of this library an easy way to deal with dependencies.

That's awesome. Thanks!


apa7-ish:0.2.0

I am submitting

[ ] a new package
[x] an update for a package

Description:

Added table styling
multiple affiliations for authors
minor tweaks

[X] ensured that my package is licensed such that users can use and distribute the contents of its template directory without restriction, after modifying them through normal use.

Thank you!


Created Timestamp: Prometheus progates CT in Remote-Write 2.0

Proposal
Part of https://github.com/prometheus/prometheus/issues/14217
Is blocked by: https://github.com/prometheus/prometheus/issues/14218
With https://github.com/prometheus/prometheus/issues/14218 we could use this information to put into Remote-Write 2.0 created_timestamp proto field for specific series.
Acceptance Criteria

Prometheus adds CT to Remote-Write 2.0 requests when it can.

As I read https://prometheus.io/docs/specs/remote_write_spec_2_0/, it is in the protocol.
But I don't see any handling inside Prometheus.
I expect Prometheus to be able to use created_timestamp to add the initial 0 on counters received via remote-write v2.


Took RNG out of categorical label test

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 80.18%. Comparing base (c7c6569) to head (57c8507).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #306   +/-   ##
=======================================
  Coverage   80.18%   80.18%
=======================================
  Files          11       11
  Lines        1736     1736
=======================================
  Hits         1392     1392
  Misses        344      344


RSpec 3.1 command line failed to run test when the path includes '\t' and with :line_number, "All examples were filtered out"

After upgraded to RSpec 3.1, the following command failed to run specific test case with provided line number when the file path includes "\t"

rspec C:\work\testwise-commmunity\samples\agiletravel-rwebspec\spec\login_spec.rb:17
Run options: include {:locations=>{".commmunity/samples/agiletravel-rwebspec/spec/login_spec.rb"=>[1
7]}}

All examples were filtered out
OK when without line number

rspec C:\work\testwise-commmunity\samples\agiletravel-rwebspec\spec\login_spec.rb

OK when changing 'work\test' to 'work\zest'

rspec C:\work\zestwisecommmunity\samples\agiletravel-rwebspec\spec\login_spec.rb:17

Regards,
Zhimin

@zhimin do you still need something from us here or can we close this?  Unfortunately we're not much help on Windows since none of us actively use it...


Add new method to get folder for Sheets/Drive

By default do not fetch the folders for the Sheets/Drive actions Provide a way to only fetch on explicit ask, while providing a way to enter a url of a folder and extract the folder id from it instead. Solves several issues with large Drives not being able to select all folders.

lgtm


opentasks-davdroid sync error ?

Hi,
I have a owncloud server, and I sync my task list with davdroid (last version from f-droid) - opentasks (last version form f-droid) on my samsung S5mini/Android 4.4.2. It works fine, I'm very happy with it
But there is a strange behaviour when a create/modify a task on my phone.
Davdroid is configured to sync every 24h and imediately after a modification is made (this second part can't be changed)
When I write some items, and it take a long, I see them disappear.
I saw that it's happen when a davdroid sync is made.
Is it a davdroid problem ? A opentask problem ?

From your description I'd say this is a DavDroid issue.


Removing hostname doesn’t remove service scheme in TypeScript client generation

I’m using NSwagStudio <IP_ADDRESS>. If I generate a TypeScript client for http://petstore.swagger.io/v2/swagger.json with the default settings the generated client starts like this:
export class Client {
    baseUrl: string;
    beforeSend: any = undefined;
    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;

    constructor(baseUrl?: string) {
        this.baseUrl = baseUrl ? baseUrl : "https://petstore.swagger.io/v2";
    }

If I change the service host name in the setting to ‘.’ the generated code will then instead be:
export class Client {
    baseUrl: string;
    beforeSend: any = undefined;
    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;

    constructor(baseUrl?: string) {
        this.baseUrl = baseUrl ? baseUrl : "https:///v2";
    }

https:///v2 is not a valid URL :-/ Shouldn’t https:// be removed as well so the default URL will only be /v2?
(Btw, this is my third issue in a really short time. I’m sorry about that, I just really like this tool :-)

Please retest with v11.18.5

Thanks! But it didn’t work :-( Same result as before.
I have an idea what is wrong. The change you did affects the swagger generation. But the setting Service host is specific for the TypeScript generation. Maybe… Not sure how things are put together :-)

It does work if I use the petstore specification URL:
http://petstore.swagger.io/v2/swagger.json
But not the URL generated in my application:
https://localhost:44330/swagger/v1/swagger.json
That specification starts with:
  "x-generator": "NSwag v<IP_ADDRESS> (NJsonSchema v<IP_ADDRESS> (Newtonsoft.Json v<IP_ADDRESS>))",
  "swagger": "2.0",
  "info": {
    "title": "My Title",
    "version": "1.0.0"
  },
  "host": "localhost:44330",
  "schemes": [
    "https"
  ],
  "consumes": [
    "application/json"
  ],


Add Account API to enable users to change their own password

Add new REST endpoint _opendistro/_security/api/account.

GET request to get basic information of the signed-in user

Sample request:
GET _opendistro/_security/api/account

Sample response:
{
    "user_name" : "test",
    "is_reserved" : false,
    "is_hidden" : false,
    "is_internal_user" : true,
    "user_requested_tenant" : "__user__",
    "backend_roles" : [ ],
    "custom_attribute_names" : [ ],
    "tenants" : {
    "test" : true
    },
    "roles" : [
    "own_index"
    ]
}

PUT request to update the credentials of the user.

Sample request:
PUT _opendistro/_security/api/account
{
    "current_password" : "old-pass",
    "password" : "new-pass"
}
Sample response:
{
    "status": "OK",
    "message":"'test' updated."
}

Supporting PR in security-kibana-plugin: https://github.com/opendistro-for-elasticsearch/security-kibana-plugin/pull/126

https://github.com/opendistro/for-elasticsearch-docs/pull/172/commits/a61ba4de1bfcabbd427b9537cf0ff4de77304dd7


Possible bug / inconsistency in _GG.LOS_calc_signal()

While trying to finish / polish the PR #254 , and testing all tutorials, an error occured for:
tutorial plot_custom_emissivity.py
minimize = 'hybrid'
method = 'sum'
Upon closer inspection, it comes from line 3132 in _GG.py.
It seems method = 'sum' is the only case where the result is stored in sig_mv instead of sig.
I suspect this is the source of the error..
Indeed, there is no error if method  = 'simps' or method = 'romb'
The error-check matrix is

sum
simps
romb

hybrid
Error
ok
ok

calls
ok
ok
ok

memory
ok
ok
ok

The error message is:
Traceback (most recent call last):
  File "/Applications/Anaconda/python36/lib/python3.6/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/Home/DV226270/ToFu_All/tofu_git/tofu/tofu/tests/tests09_tutorials/tests01_runall.py", line 182, in test03_plot_custom_emissivity
    self._test_tuto('tuto_plot_custom_emissivity')
  File "/Home/DV226270/ToFu_All/tofu_git/tofu/tofu/tests/tests09_tutorials/tests01_runall.py", line 164, in _test_tuto
    raise Exception(msg)
Exception: failed to get the current screen resources
Traceback (most recent call last):
  File "/Home/DV226270/ToFu_All/tofu_git/tofu/tuto_plot_custom_emissivity.py", line 92, in <module>
    t=time_vector)
  File "/Home/DV226270/ToFu_All/tofu_git/tofu/tofu/geom/_core.py", line 6066, in calc_signal
    Test=True,
  File "tofu/geom/_GG.pyx", line 3132, in tofu.geom._GG.LOS_calc_signal
TypeError: only size-1 arrays can be converted to Python scalars

@lasofivec can you have a look on a dedicated branch ?

Important update:
When running the tutorial, I realize the error seems to be linked to the way the emissivity function is defined:
instead of using emissivity as input function we use:
ff = lambda pts, t=None: np.zeros((1, pts.shape[1])) +1.0 if t is None else np.zeros((len(t), pts.shape[1])) +1.0
There is no error showing up...
What is strange is that both function are defined correctly, their output have the same shape:
In [31]: time_vector = np.linspace(0, 2 * np.pi, num=100)

In [32]: pts = np.random.random((3,10))

In [33]: emissivity(pts).shape, emissivity(pts, t=time_vector).shape
Out[33]: ((1, 10), (100, 10))

In [34]: ff(pts).shape, ff(pts, t=time_vector).shape
Out[34]: ((1, 10), (100, 10))

But the error only shows up when using emissivity...
I suspect it might have something to do with the output being C-contiguous ?
@lasofivec could you try to investigate more closely, and if necessary (i.e. if there are additional constraints of the user-function), include them in the new error message in check_ff() ? (in the full error message)

Could you also plot the C-contiguous flag of the arrays ?

Fixed in devel by PR #257


Use parallel stream instead of sequential for loop for pushing writes to table

Replaced with parallelStream fortable writes and uses the atomic boolean to track failures.

Added tests


doc: Update apispec sort format from : to :

What
doc: Update apispec sort format from <direction>:<fieldname> to <fieldname>:<direction>.
Why
The implementation uses the reversed format, than what is in the docs. Implementation is here:
https://github.com/Netflix/conductor/blob/be9e74ebd8ee784abb2b5d0eeb9d4c3786fe108f/jersey/src/main/java/com/netflix/conductor/server/resources/WorkflowResource.java#L214
Note: Swagger UI already matches the documentation, so no change needed there.

Pull Request Test Coverage Report for Build 4985

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 70.104%

Totals

Change from base Build 4958:
0.0%

Covered Lines:
13024

Relevant Lines:
18578

💛  - Coveralls

Pull Request Test Coverage Report for Build 4985

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 70.104%

Totals

Change from base Build 4958:
0.0%

Covered Lines:
13024

Relevant Lines:
18578

💛  - Coveralls


Enhancement: Generated default output filename

In most of my scenarios, I specify filename in advance when record terminal session, sometimes the name is very long, and it's a bit cumbersome and not very convenient to specify the output name frequently when converting. It will be convenient that generated a default output filename based on the input filename ; )
Is it possible ?

That's something that your shell can already do:
agg very-long-name-of-my-recording.{cast,gif}

Given you can do the above I don't see a need to implement this in agg itself.


Combobox not processing words with accents

Current behavior
Using words with accents in the Combobox with autoSelect causes the input not to process the accent as expected. But, if I clear the input without closing the popover, it works as expected.
See the video.
Steps to reproduce the bug

Open sandbox: https://codesandbox.io/s/cold-grass-tsvptg
Type any word that contains accents such as é

Expected behavior
It should be able to use words with accents without needing to make a second attempt.
Workaround
https://github.com/ariakit/ariakit/issues/2203#issuecomment-1378212426
Possible solutions
https://github.com/ariakit/ariakit/issues/2203#issuecomment-1378212426
Adding the following code combobox.tsx seems to do the work

Let me know if this seems to be the right path, then I can open a PR to fix this issue.

We probably need to check if the change event isComposing before setting the valueChangedRef value:
https://github.com/ariakit/ariakit/blob/1bfe5194ff672eaa437f98295fdd98226434b069/packages/ariakit/src/combobox/combobox.ts#L250
You can fix it in userland by turning autoSelect on/off on composition end/start:
const [autoSelect, setAutoSelect] = useState(false);

<Combobox
  autoSelect={autoSelect}
  onCompositionStart={() => setAutoSelect(false)}
  onCompositionEnd={() => setAutoSelect(true)}
/>

I was trying to fix this one, but I'm confused. I'm not entirely sure how to reproduce. With autoSelect turned on, and trying with different combinations of using an accented character in the items and/or in the search input, auto-selecting the first item always worked.
It also does not help that the link to the screen recording is no longer operational, so it may be the case that we are not sure what to reproduce, and we're trying the wrong way.
I'd appreciate if this is clarified. Like, having a new video example, maybe uploaded here to Github so it no longer expires.

@gnapse This is what I see when I type é. The bug happens before autoSelect is triggered for the first time (that's why it works the second time).
https://user-images.githubusercontent.com/3068563/223430578-7a184afc-0516-45f3-9d36-4acff410d352.mp4

Hey guys, one thing that I noticed is that this was only happening on Apple devices, for instance, if I try to type é using Windows or Linux, it just works as expected.

This is what I see when I type é. The bug happens before autoSelect is triggered for the first time (that's why it works the second time).

@diegohaz that's what we see too. But I do not see the difference vs. when typing a regular non-accented character.
https://user-images.githubusercontent.com/15199/223447620-fd8f25d9-fd3d-45d1-861f-f78a286bf795.mp4

@gnapse The problem is that it produces 'e instead of é the first time I type it.

Hmmm, that's not my experience. Anyway, we were trying to work on this one, but I think we'll pass and leave for someone that understands it and can reproduce it.


Kotlin Data Class support

Hello, I've recently dug up into StarIO and so far the API seemed nice and smooth until I tried applying it to a Kotlin Data Class. Is there any support for it, or am I using bad annotations here ? I keep getting this issue:
Error:(19, 1) Some error(s) occurred while processing annotations. Please see the error messages above.
And my data class looks like:
@StorIOSQLiteType(table = "users")
data class User @StorIOSQLiteCreator constructor(
        @StorIOSQLiteColumn(name = "_id", key = true) val _id: String = "",
        @StorIOSQLiteColumn(name = "email") val email: String,
        @StorIOSQLiteColumn(name = "password") val password: String? = null,
        @StorIOSQLiteColumn(name = "firstName") val firstName: String,
        @StorIOSQLiteColumn(name = "profilePicture") val profilePicture: String? = null,
        @StorIOSQLiteColumn(name = "location") val location: String? = null,
        @StorIOSQLiteColumn(name = "createdAt") val createdAt: String? = null,
        @StorIOSQLiteColumn(name = "updatedAt") val updatedAt: String? = null)

Hi! Are there any messages about an error or it is the only one? Because if it is the only one - it is not very helpful and we need to improve it for sure.
Regarding the error, you need to change properties declaration from val to var since we need both getter and setter to be able to generate correct code for this case.

Got it, yes the only error I'm getting is the one I provided, plus a warning:
Warning:warning: The following options were not recognized by any processor: '[kapt.kotlin.generated]' , besides that nothing more.
Here's the final code that seems to work now
@StorIOSQLiteType(table = "users")
data class User @StorIOSQLiteCreator constructor(
        @StorIOSQLiteColumn(name = "_id", key = true) var _id: String = "",
        @StorIOSQLiteColumn(name = "email") var email: String,
        @StorIOSQLiteColumn(name = "password") var password: String? = null,
        @StorIOSQLiteColumn(name = "firstName") var firstName: String,
        @StorIOSQLiteColumn(name = "profilePicture") var profilePicture: String? = null,
        @StorIOSQLiteColumn(name = "location") var location: String? = null,
        @StorIOSQLiteColumn(name = "createdAt") var createdAt: String? = null,
        @StorIOSQLiteColumn(name = "updatedAt") var updatedAt: String? = null) {

    constructor() : this (email = "", firstName = "")
}

@mattdevelops just ran your example and received following error message:
Error:StorIOSQLiteColumn can not be applied to private field without corresponding getter and setter or private method: password
I'll add an example of library usage with Kotlin in readme though to avoid future misunderstandings.

I just double-checked it and realised that current Kotlin integration doesn't work as it was intended. Your initial code should be perfectly valid and this will be fixed in incoming PR. Meanwhile, the solution with vars and an empty secondary constructor is just a workaround and shouldn't be used at all since it doesn't respect immutability.
Thank your for reporting this issue and I hope that not many people were affected by it.

PR is merged and the fix will be available in the next release.


Feather crashes when reading data in R on clearlinux

Feather crashes when reading data in R on clearlinux (https://clearlinux.org/):
g++ and R version of clearlinux:
$ g++ --version
g++ (Clear Linux OS for Intel Architecture) 7.2.1 20171126
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ R --version
R version 3.4.3 (2017-11-30) -- "Kite-Eating Tree"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-generic-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
http://www.gnu.org/licenses/.

When installing feather in R on clearlinux there is a compiler warning:
$ R
> devtools::install_github("wesm/feather/R")
...

g++ -std=gnu++11 -I/usr/lib64/R/include -DNDEBUG -I. -I"/usr/lib64/R/library/Rcpp/include" -I/usr/local/include   -fpic  -O2 -fPIC -g -feliminate-unused-debug-types  -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=32 -Wformat -Wformat-security -Wl,--copy-dt-needed-entries -Wno-error -Wl,-z -Wl,now -Wl,-z -Wl,relro -Wl,-z,max-page-size=0x1000 -ftree-vectorize -m64 -mtune=skylake -fasynchronous-unwind-tables -fno-omit-frame-pointer -Wp,-D_REENTRANT  -O3 -falign-functions=32 -fno-semantic-interposition -flto=12  -march=haswell -flto=12  -c feather/types.cc -o feather/types.o
g++ -std=gnu++11 -I/usr/lib64/R/include -DNDEBUG -I. -I"/usr/lib64/R/library/Rcpp/include" -I/usr/local/include   -fpic  -O2 -fPIC -g -feliminate-unused-debug-types  -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=32 -Wformat -Wformat-security -Wl,--copy-dt-needed-entries -Wno-error -Wl,-z -Wl,now -Wl,-z -Wl,relro -Wl,-z,max-page-size=0x1000 -ftree-vectorize -m64 -mtune=skylake -fasynchronous-unwind-tables -fno-omit-frame-pointer -Wp,-D_REENTRANT  -O3 -falign-functions=32 -fno-semantic-interposition -flto=12  -march=haswell -flto=12  -c feather/writer.cc -o feather/writer.o
gcc-ar rcs libfeather.a feather/buffer.o feather/feather-c.o feather/io.o feather/metadata.o feather/reader.o feather/status.o feather/types.o feather/writer.o
g++ -std=gnu++11 -g -shared -L/usr/lib64/R/lib -L/usr/local/lib64 -o feather.so RcppExports.o feather-read.o feather-types.o feather-write.o -L. -lfeather -L/usr/lib64/R/lib -lR
./feather/io.h:81:7: warning: virtual table of type ‘struct MemoryMapReader’ violates one definition rule   [-Wodr]
 class MemoryMapReader : public LocalFileReader {
       ^
./feather/io.h:81:7: note: the conflicting type defined in another translation unit
 class MemoryMapReader : public LocalFileReader {
       ^
feather/io.cc:457:1: note: virtual method ‘__base_dtor ’
 MemoryMapReader::~MemoryMapReader() {
 ^
feather/io.cc:457:1: note: ought to match virtual method ‘__base_dtor ’ but does not
installing to /home/user/u0079808/R/x86_64-generic-linux-gnu-library/3.4/feather/libs
** R
** inst
** tests
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (feather)
>

When loading feather data from a file, R crashes (the same dataset loads fine on other nodes with Ubuntu 14.04 (gcc 4.8.4) this file works fine)
> library(feather)
> system.time(mm9db <- read_feather("test.mc8nr.feather"))

 *** caught illegal operation ***
address 0x7f97ae2855a9, cause 'illegal operand'

Traceback:
 1: .Call("feather_coldataFeather", PACKAGE = "feather", feather,     indexes)
 2: coldataFeather(x, i)
 3: `[.feather`(x, )
 4: x[]
 5: as_data_frame.feather(data)
 6: as_data_frame(data)
 7: read_feather("test.mc8nr.feather")
 8: system.time(mm9db <- read_feather("test.mc8nr.feather"))

Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
Selection:

Can you post a gdb backtrace (which can also be obtained from the core dump)?

I tracked down the problem. ClearLinux was compiling all packages that are installed with install.packages() with Haswell as mimimum supported CPU, so it was using opcodes that my Ivybridge CPU didn't know. After changing it to Ivybridge, feather compiles and runs OK:
https://github.com/clearlinux/clr-bundles/issues/41

Cool, glad you figured it out, makes sense


Roll Flutter Engine from cfbf11d757d1 to f06db16b62b3 (1 revision)

https://github.com/flutter/engine/compare/cfbf11d757d1...f06db16b62b3
2024-03-16<EMAIL_ADDRESS>Roll Fuchsia Linux SDK from nTth7xxzAfENAJjMH... to Ow67Jf4AHxeapVlCa... (flutter/engine#51477)
Also rolling transitive DEPS:
fuchsia/sdk/core/linux-amd64 from nTth7xxzAfEN to Ow67Jf4AHxea
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC bdero@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Rank Status Failed

Hi ,
I am developing the demo application of retrieve and rank for my organization and i am facing an interesting issue while i am creating a rank with the cranfield data csv file. Th rank is getting created and after some time ..its failing due to some data problem . I am using a java client to do so and i am completely using the cranfield data as my input to create a rank and i am using cranfield json data to post to my cluster. I am successful in each step except rank status is failing for some reason , can you please throw up any suggestions or any snippet where you can create a rank with the cranfield.
Here is the error
{
  "created": "2016-05-27T16:19:48.114-0500",
  "ranker_id": "3b140ax15-rank-2496",
  "name": "ranker2",
  "status": "Failed",
  "status_description": "Error encountered during training: Training data quality standards not met: invalid header (duplicate feature names). Row 1 of input data.",
  "url": "https://gateway.watsonplatform.net/retrieve-and-rank/api/v1/rankers/3b140ax15-rank-2496"
}

Thanks,
Pranitha.

I have tried again today by starting all teh way from beginning and i have the same issue :+1:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
{
"created": "2016-05-30T05:23:49.521-0500",
"ranker_id": "3b140ax15-rank-2557",
"name": "ranker2",
"status": "Training",
"status_description": "The ranker instance is in its training phase, not yet ready to accept rank requests",
"url": "https://gateway.watsonplatform.net/retrieve-and-rank/api/v1/rankers/3b140ax15-rank-2557"
}
ranker status: TRAINING
ranker status: TRAINING
ranker status: TRAINING
ranker status: TRAINING
ranker status: TRAINING
ranker status: TRAINING
ranker status: TRAINING
ranker status: TRAINING
ranker status: FAILED

This is not a problem of this repository. Seems that the service was having issues


Error getting FormValue in MultipartForm request in Go 1.10

Hello!
In version 1.9, I had no problem getting the FormValue in http request.
After upgrading to version Go 1.10 of FormValue is empty. Did I find the error? in module:
mine/multipart/formdata.go
before:
_, hasContentTypeHeader := p.Header["Content-Type"]
if !hasContentTypeHeader && filename == ""
after
_, hasContentTypeHeader := p.Header["Content-Type"]
if hasContentTypeHeader && filename == "" // del !
began to work as I need

Thank you for raising this issue. Unlike many projects on GitHub, the Go project does not use its bug tracker for general discussion or asking questions. We only use our bug tracker for tracking bugs and tracking proposals going through the Proposal Process.
Please see https://golang.org/wiki/Questions for good places to ask questions.


Display custom header when monthsShown prop is bigger than 1

Custom header now gets rendered for every month when monthsShown prop > 1;
Introduced customerHeaderCount prop to be able to conditionally render and adapt content in custom header, e.g. manipulate the displayed month value based on the date and customHeaderCount props
fixes #2351

@martijnrusschen: I adapted the commit so that the time.jsx files test coverage got back to its previous state. Please merge this PR or leave comment if there are reasons not to merge it. Thank you.

hi @relwiwa in which version of react-datepicker can I get this change?

@murariamar It got merged some days ago, so I guess it will be in the next release

@relwiwa thanks for the prompt response newer version has been published, I could see custom header rendered for both the calendar inputs (as monthShown={2} in my example ) trouble is how do I customise different headers for each calendar displayed, at the moment my code looks as below for renderCustomHeader
 renderCustomHeader={({
            decreaseMonth,
            increaseMonth,
            prevMonthButtonDisabled,
            nextMonthButtonDisabled
          }) => (

                <Button variant='icon-regular' onClick={decreaseMonth} disabled={prevMonthButtonDisabled} startIcon={<ChevronLeftIcon size='small'/>}/>
                <Button variant='text-only' onClick={handleMonthClick} >{`${month} ${year}`}</Button>
                <Button variant='icon-regular' onClick={increaseMonth} disabled={nextMonthButtonDisabled} startIcon={<ChevronRightIcon size='small'/>} />

          )}

Hi @relwiwa, thanks for the prompt response, version has been bumped up now, any idea how to render different custom headers for each calendar rendered, my code for renderCustomHeader looks as below, trouble I am noticing now is each calender renders same custom header, I want to render different header for each example: Month different for each, etc
Please let me know if I need to create an issue for the same
renderCustomHeader={({
            date,
            decreaseMonth,
            increaseMonth,
            prevMonthButtonDisabled,
            nextMonthButtonDisabled
          }) => (

              {console.log('date.....', date)}
              <Button variant='icon-regular' onClick={decreaseMonth} disabled={prevMonthButtonDisabled} startIcon={<ChevronLeftIcon size='small'/>}/>
              <Button variant='text-only' onClick={handleMonthClick} >{`${MONTHS[date.getMonth()]} ${date.getFullYear()}`}</Button>
              <Button variant='icon-regular' onClick={increaseMonth} disabled={nextMonthButtonDisabled} startIcon={<ChevronRightIcon size='small'/>} />

          )}

@murariamar I introduced the new prop customHeaderCount. Like this you know which custom header is currently rendered and based on it, you can manipulate the content, e.g display month for first custom header, month + 1 for second custom header, etc.

Thanks @relwiwa for the quick response, looks its not updated in prop type or am I missing something

@murariamar I think @types/react-datepicker is not yet updated, so need to use ts-ignore for now

ok, thanks again


Use syscall/sysret instead of interrupts for syscalls

Fixes #148

mmm so the DEBUG statements in the k_* syscall implementations seem to "freeze" the OS. With make clean ENABLE_CORE_DEBUG=1 ENABLE_SYS_DEBUG=1 run-debug, I can only run selftest once. With make clean run-debug, it works as expected (i.e. selftest can be executed multiple times)

mmm so the DEBUG statements in the k_* syscall implementations seem to "freeze" the OS. With make clean ENABLE_CORE_DEBUG=1 ENABLE_SYS_DEBUG=1 run-debug, I can only run selftest once. With make clean run-debug, it works as expected (i.e. selftest can be executed multiple times)

I re-enabled interrupts before calling the handler and then disabled them right after. That solves the issue and it sort of makes sense. I am not sure if there are other implications, though.


Update repo README with new wording, locust example, screenshots

Copy latest wording from docs
Add very simple example that shows clearly how a locust file is written
Add some screen shots from the UI
Format features correctly using #### instead of bold bullet points
Use consistent bullet point syntax
Remove unnecessary HTML
Add github links for authors
Move Links to the end as these are boring
Remove Documentation section as this is already in the Links section

Thx!

Huh. It broke the pypi page: https://pypi.org/project/locust/
Perhaps we need to use absolute URLs to github (unless there is some other solution)

OK I can make the image links use raw links to this repo


ledger-tool: Get shreds from BigTable blocks

Picked up from https://github.com/solana-labs/solana/pull/35090
Problem
There is often a desire to examine/replay/etc blocks. If the blocks are
very recent, they can often be pulled from an actively running node.
Otherwise, the blocks must be pulled down from the warehouse node
archives. These archives are uploaded on a per-epoch basis so they are
quite large (100's of GB's). Even with a good download speed and
capable machine, it can take several hours before having access to the
block. And, 100's of GB's must be downloaded and expanded even if
access to only a single block is desired.
Summary of Changes
With the addition of Entry data to BigTable, blocks, in the form that
solana-validator and solana-ledger-tool operate with, can be recreated
from BigTable. This change add a new BigTable command that does just
that; fetch BigTable block data, parse it, and then insert the block
as shreds into a local Blockstore.
Several important callouts:

Shreds for some slot S will not have valid shred signatures; instead,
shreds will signed with a dummy keypair. This does not inhibit the
utility of these shreds by other solana-ledger-tool commands.
Entry PoH data does not go back to genesis in BigTable. While this
data could be extracted and uploaded from existing rocksdb archives,
I'm not sure if that work is planned. So, this change adds a flag that
generates mock PoH entries for such blocks. These blocks are replayable
by passing --skip-poh-verify to solana-ledger-tool commands.

As written, a snapshot from the same epoch must be present to extract
the correct PoH values like hashes per tick. This is technically only
necessary if --allow-mock-poh is True. If not, a user could supply a
valid shred version and avoid the overhead of unpacking a snapshot.
This seems like it'd be useful, but at the moment, I think this can be
done in a subsequent PR.

Quick update - after doing some cleanup to address several other items, latest testing spit this out at me:
error: The argument 'max_genesis_archive_unpacked_size' wasn't found

Once https://github.com/anza-xyz/agave/pull/1774 lands, I'll rebase and we can go from there. I'll explicitly re-request a review when I feel happy with the manual testing.

Ok, I have rebased and tested a bit. I was able to successfully (compute correct bank hash) with some older slots where I had to use --allow-mock-poh. I need to step away for a bit, but I am also going to recreate a couple hundred newer slots that would have entry data available. Will post those results once I have them.

Ok, manual testing complete / I think this is good to go pending final review!
As for the testing, I regenerated a couple hundred slots and compared to original by dumping the contents of ledger-tool slot -vv to disk. The only observed difference is in the SlotMeta; this is expected and ok because ledger-tool is shredding all of transactions at once whereas a live validator streams shreds and broadcasts throughout the slot.
$ diff orig_slot.txt recreated_slot.txt
2c2
<   SlotMeta { slot: 272877789, consumed: 238, received: 238, first_shred_timestamp:<PHONE_NUMBER>729,
last_index: Some(237), parent_slot: Some(272877788), next_slots: [272877790], connected_flags: ConnectedFlags(CONNECTED | PARENT_CONNECTED),
completed_data_indexes: {36, 76, 112, 149, 176, 195, 204, 205, 237} } is_full: true
---
>   SlotMeta { slot: 272877789, consumed: 193, received: 193, first_shred_timestamp:<PHONE_NUMBER>427,
last_index: Some(192), parent_slot: Some(272877788), next_slots: [272877790], connected_flags: ConnectedFlags(CONNECTED | PARENT_CONNECTED),
completed_data_indexes: {192} } is_full: true

I then replayed a couple hundred of the recreated slots with ledger-tool verify. Replay results (bank hashes) matched those from original replay (from validator logs), successful replay also indicates that PoH verify worked which means the parsing of the Entry data from separate table is also working correctly


[AlphaZero] Fix minor typo in train.py

Fix typo: my_model_parmas → my_model_params.

Great thanks! 🙏


ts -> js

squash this in , don't merge
@richierockskool note that once you have deciced to use js and not ts, the build and watch features are no longer available

Good news all those changes are done the plugin still loads with no errors, but no start function on the platform and accessories are not loading.

On Jul 26, 2023, at 11:11 PM, Ben @.***> wrote:
Closed #25 https://github.com/richierockskool/homebridge-inkbird-wifi-gateway/pull/25.
—
Reply to this email directly, view it on GitHub https://github.com/richierockskool/homebridge-inkbird-wifi-gateway/pull/25#event-9930814845, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJE7PVRIEFEHNZBUBUQ7LXTXSHL6TANCNFSM6AAAAAA2ZFRNIM.
You are receiving this because you were mentioned.


Update kitti_point_pillars_mghead_syncbn.py

This config file gives better results because of small mistake;

The default parameters of the PillarFeatureNet differ from the values given to the voxel generator. with this update the point cloud range and voxel size will always be the same for both.
The anchor generator was also given the same point cloud range.

How much accuracy does this PR improve?


Documents marked for Deletion if their URL is not responding

Hi, I got this problem with my Collector Http 2.9.0 installation:
a) collector crawls with a 1 day delay
b) keepDownloads is false to save disk space
c) collector only crawls urls listed in a text file (1 url per line, they are documents, such as: pdf, docx)
the problem:
d) when a URL is temporarily unavailable Norconex marks it for deletion
e) even setting "spoiledReferenceStrategizer" for ignoring BAD_STATUS, NOT_FOUND, ERROR, the next crawling cycle Norconex considers the document as a NEW one, reimporting it and sending it to the committer (IdolCommitter for CFS)
Is there a way to "tell" Norconex Collector that an unavailable URL is not a Document deletion?
thank You

Is there a way to "tell" Norconex Collector that an unavailable URL is not a Document deletion?

I can think of a few ways.
Do not keep crawl history:
With version 2.9.0, you can delete the crawl store before each run.  That way you won't get any deletions as it will not have a crawl history to compare to between crawler runs.
With version 3, the equivalent would be to always launch with the -clean command-line flag.
Turn some HTTP error codes into "valid" codes:
If you are using the GenericDocumentFetcher (or GenericHttpFetcher with v3), you can specify which HTTP response code should be treated as valid codes.
  <documentFetcher
      class="com.norconex.collector.http.fetch.impl.GenericDocumentFetcher"
      detectContentType="[false|true]" detectCharset="[false|true]">
    <validStatusCodes>200</validStatusCodes>
    <notFoundStatusCodes>404</notFoundStatusCodes>
  </documentFetcher>

The above are the default codes used. Anything else can potentially be interpreted as an error.  You can add more to the valid status codes list, comma-separated.

Thank You Pascal,
"That way you won't get any deletions as it will not have a crawl history to compare to between crawler runs"
I dont want already imported documents to be re-imported every run
"you can specify which HTTP response code should be treated as valid codes"
This seems to be the good way to solve my problem - I will check it as soon as I can

My strong desire is:

to not get any deletions where URLs become temporirty unavailable (how to configure repo clean in 2.9.0, pls ?)
to not have any RE-IMPORT when already imported URLs turn available again (i.e. after a run with REJECTED_ERROR:67 -            REJECTED_ERROR urls)

how to combine together these two requirements?

To "clean" a repo with 2.9.x, you have little choice but to delete the crawl store (or the entire "workdir" folder).  That would address your first bullet.  Using "IGNORE" or "GRACE_ONCE" for spoiledReferenceStrategizer should also do it.  The main differences:
Deleting the crawl store:
The crawler will consider all URLs encountered as new after that.
Ignoring/gracing bad URLs:
With IGNORE, if not mistaken, the document is not deleted from your index but will be removed from the cache.  Same with GRACE_ONCE if the URL is not responding for more than one consecutive crawling session.  That means that yes, the moment a URL is available again, it will be considered "new" and will be recrawled.
The second scenario should normally suffice.  The crawler often has to download a file again anyway to find if it has changed.  The difference is whether it resends it to the committer (IDOL in your case) or not.  Given it is only the not responding URLs that would be resent again, and they have the same URL as before, a few more documents sent to IDOL should not make much of an impact, as it should overwrite any existing entry, so it is not like it is creating duplicates or anything like that.
What is the issue in your case of having a few valid documents be resent to IDOL when they are back online?

"What is the issue in your case of having a few valid documents be resent to IDOL when they are back online?"
Dear Pascal, our issue with "having a few valid documents be resent to IDOL" is that hte number of resent document could be 5000 to 10000, because we use the Norconex Http crwaler against a document repository cotnianing upto 1-MLN documents

Is there any advantage by switching to version 3.0.x of Your Http crawler? We not-only need to IGNORE or GRACE_ONCE temporarily offline URLs, we need to avoid re-import thousands documents also (this is the case when a "portion/namespace" of our Hitachi HCP Document Repo goes offline for a time)

any answer?

Yetserday I tried to use the ORPHAN Strategy:
<orphansStrategy>IGNORE</orphansStrategy>
I hoped that would solve my problem, indeed "Orphans are valid documents, which on subsequent crawls can no longer be reached when running the crawler".
But when documents that were Orphan are again online, the crawler import them as NEW. Should not it "remember" they have been imported before?

Glad you found a way.  The crawl cache only keeps traces of documents from their last session so that they can be compared with the next session.  It does not keep a crawl "history" for each document.  That is why if it falls off the radar, it will be considered new next time it is encountered.
To keep track of such history, a few ideas:

Look at implementing your own ICrawlDataStoreFactory (or modify an existing one) and somehow always keep old records (the interface is IDataStoreEngine under version 3.x).
Overwrite (modify existing) IDocumentChecksummer to rely on custom storage of older documents for checksum comparison.