change scan and while_loop impls to Python versions

Currently lax.while_loop (and as a consequence lax.fori_loop and lax.scan) incur compilation time every time they're evaluated in op-by-op mode, making them seem slow to execute without being inside an @jit (since the @jit will handle the caching). We should remedy that, and make the op-by-op impl rules fast. (Separately, while we're looking at this code, we might be able to replace _while_loop_translation_rule by calling xla.lower_fun on its new impl.)

I can help benchmark for this feature. :)

In #977 we merged a change that avoids doing compilation in op-by-op evaluation of the control flow constructs. However, it introduces its own overheads; it's basically running a jaxpr interpreter (implemented in Python). If those overheads prove significant, there are likely several other things we could do.
Let's make some simple benchmarks! I think our goal is to make lax.while_loop / lax.fori_loop / lax.scan behave as efficiently as their corresponding Python implementations when outside of a jit. @fehiepsi IIRC you have some cases where you've found Python loops to be much faster than the corresponding lax.fori_loop outside of a jit; if that's right, could you share an example?

Hi @mattjj , previously, we observed that jit(lax.fori_loop, ...) is faster than lax.fori_loop depending on body_fn. I think that the following code (a little verbose to make it explicit what I want to illustrate) is good for benchmark because it illustrates some problems with the latest PR:
import time
from jax import grad, jit, lax

def dual_averaging(t0=10, kappa=0.75, gamma=0.05):
    def init_fn(prox_center=0.):
        x_t = 0.
        x_avg = 0.  # average of primal sequence
        g_avg = 0.  # average of dual sequence
        t = 0
        return x_t, x_avg, g_avg, t, prox_center

    def update_fn(g, state):
        x_t, x_avg, g_avg, t, prox_center = state
        t = t + 1
        g_avg = (1 - 1 / (t + t0)) * g_avg + g / (t + t0)
        x_t = prox_center - (t ** 0.5) / gamma * g_avg
        weight_t = t ** (-kappa)
        x_avg = (1 - weight_t) * x_avg + weight_t * x_t
        return x_t, x_avg, g_avg, t, prox_center

    return init_fn, update_fn

def optimize(f):
    da_init, da_update = dual_averaging(gamma=0.5)
    init_state = da_init()

    def body_fn(i, state):
        x = state[0]
        g = grad(f)(x)
        return da_update(g, state)

    last_state = lax.fori_loop(0, 1000, body_fn, init_state)
    x_avg = last_state[1]
    return x_avg

def optimize_v1(f):
    da_init, da_update = dual_averaging(gamma=0.5)
    init_state = da_init()

    @jit
    def body_fn(i, state):
        x = state[0]
        g = grad(f)(x)
        return da_update(g, state)

    last_state = lax.fori_loop(0, 1000, body_fn, init_state)
    x_avg = last_state[1]
    return x_avg

def optimize_v2(f):
    da_init, da_update = dual_averaging(gamma=0.5)
    init_state = da_init()

    @jit
    def body_fn(i, state):
        x = state[0]
        g = grad(f)(x)
        return da_update(g, state)

    last_state = init_state
    for i in range(1000):
        last_state = body_fn(i, last_state)
    x_avg = last_state[1]
    return x_avg

def optimize_v3(f):
    da_init, da_update = dual_averaging(gamma=0.5)
    init_state = da_init()

    def body_fn(i, state):
        x = state[0]
        g = grad(f)(x)
        return da_update(g, state)

    last_state = jit(lax.fori_loop, static_argnums=(2,))(0, 1000, body_fn, init_state)
    x_avg = last_state[1]
    return x_avg

f = lambda x: (x + 1) ** 2

The target is to use various versions of optimize on f. Here are the result with latest PR:
tic = time.time()
print(optimize(f).copy())
print("time before compiling:", time.time() - tic)

fn = jit(optimize, static_argnums=(0,))
tic = time.time()
print(fn(f).copy())
print("time with compiling:", time.time() - tic)

tic = time.time()
print(fn(f).copy())
print("time after compiling:", time.time() - tic)

print("===v1===")

tic = time.time()
print(optimize_v1(f).copy())
print("time before compiling:", time.time() - tic)

fn = jit(optimize_v1, static_argnums=(0,))
tic = time.time()
print(fn(f).copy())
print("time with compiling:", time.time() - tic)

tic = time.time()
print(fn(f).copy())
print("time after compiling:", time.time() - tic)

print("===v2===")

tic = time.time()
print(optimize_v2(f).copy())
print("time before compiling:", time.time() - tic)

fn = jit(optimize_v2, static_argnums=(0,))
tic = time.time()
print(fn(f).copy())
print("time with compiling:", time.time() - tic)

tic = time.time()
print(fn(f).copy())
print("time after compiling:", time.time() - tic)

print("===v3===")

tic = time.time()
print(optimize_v3(f).copy())
print("time before compiling:", time.time() - tic)

fn = jit(optimize_v3, static_argnums=(0,))
tic = time.time()
print(fn(f).copy())
print("time with compiling:", time.time() - tic)

tic = time.time()
print(fn(f).copy())
print("time after compiling:", time.time() - tic)

-0.99569756
time before compiling: 1.5503859519958496
-0.99569756
time with compiling: 1.3272857666015625
-0.99569756
time after compiling: 0.0006554126739501953
===v1===
-0.99569726
time before compiling: 15.485527992248535
-0.99569726
time with compiling: 15.443722009658813
-0.99569726
time after compiling: 0.000667572021484375
===v2===
-0.99569726
time before compiling: 0.29051971435546875
-0.99569726
time with compiling: 0.2970407009124756
-0.99569726
time after compiling: 0.0004899501800537109
===v3===
-0.99569726
time before compiling: 0.034581899642944336
-0.99569726
time with compiling: 0.038028717041015625
-0.99569726
time after compiling: 0.0004868507385253906

While before the PR, I get
-0.99569726
time before compiling: 0.1041407585144043
-0.99569726
time with compiling: 0.039406776428222656
-0.99569726
time after compiling: 0.00051116943359375
===v1===
-0.99569726
time before compiling: 0.04027819633483887
-0.99569726
time with compiling: 0.04513883590698242
-0.99569726
time after compiling: 0.0003654956817626953
===v2===
-0.99569726
time before compiling: 0.2962920665740967
-0.99569726
time with compiling: 0.2989203929901123
-0.99569726
time after compiling: 0.0006308555603027344
===v3===
-0.99569726
time before compiling: 0.03446555137634277
-0.99569726
time with compiling: 0.03931307792663574
-0.99569726
time after compiling: 0.0003647804260253906

I can observe that the behaviour of lax.fori_loop outside jit has been changed with the last PR, and seems worse than before. (btw, while playing with some benchmark codes, I observed that in recent versions of jax (e.g. v0.1.39), lax.fori_loop seems a bit faster than jit(lax.fori_loop, ...) and I am unable to make an example to show jit(lax.fori_loop, ...) is faster than lax.fori_loop).

We haven't forgotten about this! We're working on a rewrite to remove tuples from the jaxpr language (it's an internals-only change, it won't change the API anywhere) and as part of that change we're revising the control flow pretty heavily (because it uses a lot of tuples). Once that other change lands we should fix these performance bugs once and for all!

#1143 at least reverts the timings to look like your "before #977" numbers, as expected (pasted below). Sorry for that performance regression in #977, and for leaving it in for so long! (Users who complain more loudly get more attention... ;) )
I think I've forgotten some context on the original issue of this thread. I think it was that you (@fehiepsi) found lax.fori_loop to be slower than the Python equivalent in some cases, and thus had a switch in NumPyro that turned lax.fori_loop into a regular Python loop. We wanted to remove the need for that switch in NumPyro.
However, in the comment I wrote at the top of this thread, it sounds like I didn't think we were caching the compiled lax.fori_loop computations (or rather the while_loop computations that sit underneath it). But now I think that was wrong: we should be hitting a cache here, and the numbers from your script suggest that as well.
So I'm confused about what we want to do here (according to the original issue description, i.e. now that we've fixed the #977 performance regression).
@fehiepsi can you help me understand what we want to improve further here? Is there a benchmark, or a number in the benchmark you posted, that we want to improve? (Thanks as always for your help!)
In [1]: run issue852
-1.0044563
('time before compiling:', 0.11909985542297363)
-1.0044563
('time with compiling:', 0.05124402046203613)
-1.0044563
('time after compiling:', 0.00017881393432617188)
===v1===
-1.0044563
('time before compiling:', 0.049262046813964844)
-1.0044563
('time with compiling:', 0.05561685562133789)
-1.0044563
('time after compiling:', 0.0001671314239501953)
===v2===
-1.0044563
('time before compiling:', 0.3006608486175537)
-1.0044563
('time with compiling:', 0.30898404121398926)
-1.0044563
('time after compiling:', 0.00013780593872070312)
===v3===
-1.0044563
('time before compiling:', 0.03863787651062012)
-1.0044563
('time with compiling:', 0.04313302040100098)
-1.0044563
('time after compiling:', 0.0001518726348876953)

Hi @mattjj, about Python loop vs fori_loop, I guess you mean this issue. The issue I raised in the chat was to compare fori_loop vs ``jit(fori_loop, static_argnums=(2,)). But that issue was legacy, and as I said in the last comment, I didn't observe a large difference between them any more. But after #977, fori_loopis so slow, so we have to usejit(fori_loop, static_argnums=(2,))(lower, upper, body_fn, init_val)` everywhere in NumPyro, which is a bit inconvenient. It seems that #1143 has resolved that issue. Sorry for making you confused!

Not at all, the confusion issue was all mine.
I'm glad to hear it was fixed! And sorry you had to add that workaround everywhere in your code for a while. Please bug me more when I'm slacking on an issue like that; I don't want users to need workarounds!
IIUC we're ready to close this issue, but let me know if we should reopen/refine, or if you still have workarounds we need to make JAX fixes for.

Thanks @mattjj !


[Feature request] "Use Suggestions" on Entire personal Library

Google has been improving quite a bit the "Use Suggestions" Feature when Editing the Album Information.
So that means, that a lot of the Music uploaded since the "beginning of time" doesn't have the better information associated with album (names, year, genre, album cover image quality, etc).
I was thinking about some way to automate the process, that can be dreadful if you try to update by hand all the albums you have.
First was thinking of some kind of javascript extension plug-in.
But did some googling and yours API popped right way (congrats btw, looks very good).
To conclude, do you think it would be easy to implement this kind of functionality (Use Suggestions for entire library, or artist or genre or etc)? It would probably fit in Webclient Interface.
Additionally any guidelines of where I could start to try to implement the functionality on the API would be most welcomed :)

I haven't really looked into this, but I suspect "use suggestions" just means copying metadata from their store database when they were able to match it. That'd be pretty straightforward, but #224 blocks it.

Ouh too bad, when updating the metadata i could even use a better source than the store.
Is it remotely possible to workaround #224? Any tips of where to start to try and fix it?

#229 mostly worked at one point; the only blocker was the webclient/mobileclient mismatch on metadata keys. If that endpoint is still around you could do that conversion yourself and it should work.

I was looking at the code for change_song_metadata, and see that BatchMutateTracks and think that the endpoint is https://mclients.googleapis.com/sj/v1.10/trackbatch, where can I find the specification online? Googling got me nothing.

There is no specification. The Google Music API is not really a public one. Endpoints are mainly found through traffic monitoring and then reverse engineered. Fiddler is a common tool for finding calls and responses.

Any news on this feature?
Is change_song_metadata working again and is there a call to get the suggestions for a given song?

Any news on this feature?

Not that I know of. Following this issue is the best way to get updates.

that would be awesome feature !

Yes, this would be a very cool feature :)

Any update on implementing the updating of metadata with "Use suggested"

No updates; sorry.

pls

As far as I know, the mobileclient still doesn't allow changing metadata. There's not a great way to implement this without that.

seems like you can change the song metadata. idk about using suggetions yet.
https://unofficial-google-music-api.readthedocs.io/en/latest/reference/mobileclient.html#gmusicapi.clients.Mobileclient.change_song_metadata

Sorry, the docs for that note that it doesn't work on any fields but rating:

Currently, only the rating key can be changed. Set it to '0' (no thumb), '1' (down thumb), or '5' (up thumb).

This is unlikely to be something we can do unless Google makes changes on their end.

also wishing for this feature...
any news here?

Yes, please!

I vote for this too. Not looking likely now though :-(


yarn: update lockfile

What it does

The commit address issues where the yarn.lock was not committed causing lockfile updates whenever the repository was built.
How to test

confirm that yarn does not cause git changes
confirm that yarn start:electron works

Review checklist

[x] as an author, I have thoroughly tested my changes and carefully followed the review guidelines

Reminder for reviewers

as a reviewer, I agree to behave in accordance with the review guidelines

Signed-off-by: vince-fugnitto<EMAIL_ADDRESS>

I found the reason why, will update the lockfile shortly.


Application always recreates swap chain.

In Application::DrawFrame() when checking the present result, successfully creating the swap chain doesn't clear the frameBufferResized flag. The clear needs to be moved after recreateSwapChain().

Thanks for reporting the issue
It's fixed 😃


Problem importing Tensor flow in chapter 3

In the interactive version of Chapter 3, the third code cell that imports from keras and tensorflow gives the error ModuleNotFoundError: No module named 'tensorflow'. Additionally, if import tensorflow as tf is run by itself the same error is thrown. Obviously, this means none of the rest of the notebook can be executed.

We decided to remove the interact button (PR #51 to address Issue #43), so this is no longer an issue.


Slow transfer speed

I'm not sure if the official team has conducted any transmission stress testing. Currently, in my production environment, the server has a bandwidth of 300Mbps, and the local upload bandwidth is around 100Mbps. In a Windows environment, I have observed upload speeds of (4-6) MB/s. On the same server, using the quiche library(https://github.com/cloudflare/quiche), I can achieve speeds of up to 10+MB/s. However, when using GoQUIC, the transmission performance is halved. I'm unsure if the official team has any restrictions on default configurations in this area.

quic-go

I believe it is a problem that should be thoroughly discussed rather than simply being closed or ignored, including the UDP buffer settings. These optimizations have already been configured, but the speed is indeed not ideal

The maintainers might be more willing to engage with your alleged problem if they could see that you put at least a tiny amount of effort in creating the issue.
Getting the name of the library right seems like a pretty low bar.
Insinuating that we didn't do any performance benchmark doesn't earn you any sympathy either (and is completely wrong).
Most importantly, just complaining "quic-go is slow", without any more information on hardware / software / network configuration and without any attached logs is a pretty meaningless statement.

The maintainers might be more willing to engage with your alleged problem if they could see that you put at least a tiny amount of effort in creating the issue.
Getting the name of the library right seems like a pretty low bar. Insinuating that we didn't do any performance benchmark doesn't earn you any sympathy either (and is completely wrong). Most importantly, just complaining "quic-go is slow", without any more information on hardware / software / network configuration and without any attached logs is a pretty meaningless statement.

Yes, it's possible that my description of the problem is quite direct, or perhaps the translation software has made the communication seem rather brusque. I have reviewed past issues and there have been discussions on similar topics. Currently, quic-go is the only outstanding networking library in Go. Raising this issue is at least a step towards making this library even better.

The client currently connects to the server, and the server creates a new data stream. Subsequently, the client sends a file to the server via the new stream. I have recorded the local qlog here, but I do not know how to analyze the log. I hope the author can help to review this log. Currently, I have uploaded a 500MB file, resulting in a 312MB log. The log file is stored on Google Drive. I would appreciate it if the author could assist in analyzing the reasons for this or confirm if there are no issues.
https://drive.google.com/file/d/1rTvseqZlg_mC8-QvlhzroMzaZQmw8GOA/view?usp=sharing

qvis report photo

https://drive.google.com/file/d/1VwEQ5m1Tk-xMqcFQ_8IGArZ6N5hy-Mqd/view?usp=sharing
This qlog file contains logs generated using the netty-quic library, which is based on the quiche library. The author can refer to and compare the performance of the two by testing them. The comparison shows that quiche is 1-3 MB/s faster than quic-go, although quic-go is also very stable. Hopefully, this information can help the author with their analysis and bring some joy!

https://drive.google.com/file/d/1VwEQ5m1Tk-xMqcFQ_8IGArZ6N5hy-Mqd/view?usp=sharing
This qlog file contains logs generated using the netty-quic library, which is based on the quiche library. The author can refer to and compare the performance of the two by testing them. The comparison shows that quiche is 1-3 MB/s faster than quic-go, although quic-go is also very stable. Hopefully, this information can help the author with their analysis and bring some joy!

Thank you for the author for reopening the issue. Currently, I observed that the congestion window sizes in the two screenshots are somewhat different. At the same time, in the document, I see future plans (https://quic-go.net/docs/quic/congestion-control). Will the performance be better in later versions? If so, perhaps this topic can indeed be closed.


merge package from arlac77/npm-package-template

package.json

chore(package<EMAIL_ADDRESS>chore(package<EMAIL_ADDRESS>

Codecov Report

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

@@           Coverage Diff           @@
##           master     #402   +/-   ##
=======================================
  Coverage   33.33%   33.33%
=======================================
  Files           5        5
  Lines          93       93
=======================================
  Hits           31       31
  Misses         62       62

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 55c90bf...9dd2965. Read the comment docs.

Coverage remained the same at 29.204% when pulling 9dd29652a4b0a0aed4f0fd901ad2145b942fb6dc on template-sync-1 into 55c90bf9013b5b2afcf1c855c5f5244b78ab1cd1 on master.


Semigroups for combining - FutureWs, CompletableFutures, Xors, Iors, Trys

For example - combine Futures by selecting the first successful (see https://github.com/aol/cyclops-react/issues/354)
Or the first or last 'primary' Xor or Ior (see https://github.com/aol/cyclops-react/issues/346)
Rationale is that Monoids for combining Monads / Applicatives can be used for the same use case as https://github.com/aol/cyclops-react/issues/344
See https://github.com/aol/cyclops-react/issues/343 on how to lift Monoids and Semigroups to process Values and Zippables / Applicatives.

Merged in https://github.com/aol/cyclops-react/pull/339


signup page design updated

issue: #16
Screen shot:

The conflicts arise due to someone has copied some code from chatGPT and pasted in the sign up page design and he is not assigned to the issue.

We already got a new signup page.
Join our discord for communication with other collaborators - https://discord.gg/XNdFjduy


Examples for String fields should not get converted to numbers.

Defined Metadata
epc: String @spectaql(options: [{ key: "example", value: "303404673001200000000002" }])

Generated output

Expectation
I would expect the example to render as a String "303404673001200000000002" and not be attempted to converted to a number.

it looks like this can be worked around by defining the metadata like:
epc: String @spectaql(options: [{ key: "example", value: "\"303404673001200000000002\"" }])


[3.0] urls argument should be optional

https://github.com/ekalinin/sitemap.js/blob/9cf26148844467104583b5f3c010c73a21d8ea2d/lib/sitemap.ts#L69
Since the default value of urls is an empty array, the urls argument should also be optional. I ran into this issue because I dynamically build my sitemap after initializing:
const sitemap = sm.createSitemap({
    hostname: process.env.SITEMAP_HOSTNAME,
});
sitemap.add("/");
sitemap.add("/some_page");

After updating to 3.0, the above code triggers a type error but it works fine in 2.x

Good spot, I'll look at this tonight

This is blocking me since: I can't create sitemap now and docs don't show a working way to create a map.

@cekvenich just stick to version 2.x until patched. 3.0.0 was released this morning.

urls: string is still not optional in 3.1

@cekvenich looks like I missed it in the createSitemap function. You can instantiate sitemap directly for now as I did make that optional. See the definition of sitemap for the map of function to constructor.


How to add speech to text in dialog bot using nodejs

i have created a dialog bot using sdk4 now i want to add speech to text in this bot so that bot will work when user speech. so how can i do that using nodejs. i did not find any sample regarding this.

@jnaman509 speech processing would happen on the channel-side of the conversation. Some channels have built-in speech support, such as Web Chat and Cortana.


Move spring-data-azure-documentdb to a separate GIthub repository

The Spring Data integration for DocumentDB is not tied to the Spring Boot support and should have a different release cycle.
Release should match a Spring Data release train so maintenance branches would have a different lifecycle as well.
I'd argue that the auto-configuration should be kept here, in azure-autoconfigure if #158 is accepted

@snicoll, thanks for the valuable feedback. spring data documentdb support has its own repo now at https://github.com/Microsoft/spring-data-azure-cosmosdb-documentdb.

@yungez thank you but that link is 404 for me. Perhaps the repo is private?

https://github.com/Microsoft/spring-data-azure-cosmosdb-documentdb/invitations

Can you please give me a invite to this repo too? I want to build Spring Boot App with Azure CosmosDB

Thanks, I have access now

the repo is public now, enjoy it.


Inter DC partitioning can disrupt replication

Partitioning a cluster of data centers running AntidoteDB can cause :ok g-set adds to not be fully replicated, or in some cases appear on other nodes only to not be present in the final read.
Details of the Jepsen test: https://github.com/nurturenature/fuzz_dist/blob/main/doc/antidotedb.md
Jepsen environment configured for AntidoteDB: https://github.com/nurturenature/jepsen-docker-workaround
Test commands:
# multiple dcs with no faults Ok
lein run test --topology dcs --workload g-set --nemesis none

# intra dc partitioning  Ok
lein run test --topology nodes --workload g-set --nemesis partition

# inter dc partitioning fails
lein run test --topology dcs --workload g-set --nemesis partition

# property driven tests don't always fail every run, can be run multiple times
lein run test --topology dcs --workload g-set --nemesis partition --test-count 5

The best way to initially interact with the test results is through the web server as described in jepsen-docker-workaround.
Here's a sample workflow tracing an anomaly:

click on invalid test from summary screen
click on results.edn
see 81 elements are missing from the final reads, pick one, i.e. 136
open history.txt, scroll to bottom, add see that 136 is only present on original node

Now lets look at an AntidoteDB log file for a node:

from the test summary screen
click on a node name to see all log files from that node
click on the AntidoteDB log of intestest
scroll to bottom to observe message loss recovery caused by partitioning

The timeline.html can also be used:

see :ok add for value 136 by worker 4
see it was replicated in read by worker 3 a few transactions later:

But missing from final read by worker 3:

Please ask if there's any questions, desired changes to the test, environment, etc.

P.S. a good way to get a representative feel for what happens during inter dc partitioning:
# run test multiple times regardless of valid? true/false
lein run test-all --topology dcs --workload g-set --nemesis partition --test-count 10

Most will be invalid. Take a quick look at the test summary pages, latency-raw.png to see partition timing/duration and any failed transactions (red/orange), results.edn for total :ok adds missing from final reads, and the general feel in jepsen.log.
Test failure does seem to group into several patterns:

several sequential adds not fully replicating
adds replicating to a node and then being lost on that node
zero mq getting disrupted and no further replication for remainder of test


CockroachDB support: tracking issue

This is a tracking issue for CockroachDB support, listing all issues related to incompatabilities.

[ ] information_schema compatability (#523, #1134)
This prevents infer_schema! and diesel print-schema functionality.
[ ] Do not generate default updated_at migration stored procedure
Cockroachdb does not support stored procedures (yet), so the defaul migration generated by diesel setup  does not work
[ ] diesel database reset support
Currently fails with the error database postgres does not exist

I agree with this comment by a core team member in Gitter


Very important PR many changes

Description of changes:
Fixes a slight typo toward the start of the README that happened to confuse me a little.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Thanks and sorry for the confusion!


Stop AppPool - Environment Block [...] cannot be longer than 65535bytes

hello guys,
i often get the problem that the task "WinRM - IIS Web App Management" which is normally used to stop my app pools runs into an exception as you can see in the log file:
"[error]Unable to find type [VstsTaskSdk.TerminationException]"
it seems that the environment variables are too long because of 35 build artifacts.

Add-Type : Der Umgebungsblock zum Starten eines Prozesses darf nicht länger als 65.535 Bytes sein. Ihr Umgebungsblock ist 74126 Bytes lang. Entfernen Sie einige Umgebungsvariablen, und wiederholen Sie den Vorgang.

is there any solution for this problem?
tasklog_38.log

Yes you are correct, having a large number of build artifacts adds a lot of environment variables for each artifact. The error is thrown by PowerShell process while trying to execute the task when the env variables size cross the limit.
Currently we do not have a proper solution for this other than reducing the number of artifacts.


Consumer not listening for messages at all

Consumer not listening for messages at all
I am trying to access consumer by cluster as shown below:
let consumer = self.cluster.getConsumer

On the latest kafka version, the group state name "AwaitingSync" has been renamed by "CompletingRebalance" state. So self.cluster.getConsumer not listening for messages at all

is this issue resolved please let me know ...i need help on this


Build failure: dd_rescue

Steps To Reproduce
Steps to reproduce the behavior:

build dd_rescue using master branch

Build log

Build Log
<...>
dd_rescue> checking if gcc supports -msse4.2... yes
dd_rescue> checking if gcc supports -mavx2... yes
dd_rescue> checking if gcc supports -mrdrnd... yes
dd_rescue> checking if gcc supports -maes... yes
dd_rescue> checking whether asm rep nop is supported... yes
dd_rescue> configure: creating ./config.status
dd_rescue> config.status: creating config.h
dd_rescue> test -e test_crypt.sh || ln -s ./test_crypt.sh .
dd_rescue> test -e test_lzo_fuzz.sh || ln -s ./test_lzo_fuzz.sh .
dd_rescue> test -e calchmac.py || ln -s ./calchmac.py .
dd_rescue> #gcc -Os -Wall -g -D_FORTIFY_SOURCE=2  -DHAVE_CONFIG_H -I . -DHAVE_AESNI -DGEN_DEP -msse4.2 -maes -mavx2 -mrdrnd -MM ./*.c >.dep
dd_rescue> gcc -Os -Wall -g -D_FORTIFY_SOURCE=2  -DHAVE_CONFIG_H -I . -DHAVE_AESNI -DGEN_DEP -D__AES__ -D__SSE4_1__ -D__SSSE3__ -D__SSE3__ -D__SSE2__ -D__SSE__ -D__MMX__ -I . -MM ./*.c >.dep
dd_rescue> sed 's/\.o:/\.po:/' <.dep >.dep2
dd_rescue> cat .dep2 >> .dep
dd_rescue> rm .dep2
dd_rescue> /nix/store/5mh7kaj2fyv8mk4sfq1brwxgc02884wi-bash-5.2p37/bin/bash: line 1: git: command not found
dd_rescue> gcc -Os -Wall -g -D_FORTIFY_SOURCE=2  -DHAVE_CONFIG_H -I . -DHAVE_AESNI -DVERSION=\"1.99.8\"  -D__COMPILER__="\"gcc (GCC) 14.2.1 20241116\"" -DID=\"DD_RESCUE_1_99_8\"  -fPIE -c random.c
dd_rescue> random.c: In function 'random_bytes':
dd_rescue> random.c:69:37: error: implicit declaration of function 'getrandom'; did you mean 'srandom'? [-Wimplicit-function-declaration]
dd_rescue>    69 | #define READ_RAND(fd, buf, ln, flg) getrandom(buf, ln, flg)
dd_rescue>       |                                     ^~~~~~~~~
dd_rescue> random.c:102:27: note: in expansion of macro 'READ_RAND'
dd_rescue>   102 |                 int err = READ_RAND(fd, &rnd, 4, flg);
dd_rescue>       |                           ^~~~~~~~~
dd_rescue> make: *** [Makefile:226: random.o] Error 1

Additional context

Metadata

❯ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.6.67, NixOS, 25.05 (Warbler), 25.05.20241221.a168813`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.25.0pre20241101_2e5759e3`
 - nixpkgs: `/nix/store/rfidw50bwmp9by3zlc17jgfwv2zp4896-source`

my nixpkgs is slightly modified but only in minor ways that should be unrelated to this. i have recently merged 9a90c6b6218860ab29f79ecd6213c3a547c15c7e and before that was successfully on 3f0036916daca9836ba2c3f236b0ae051949a0a8 and have made no modifications since.
Notify maintainers

Note for maintainers: Please tag this issue in your PR.

Add a :+1: reaction to issues you find important.

I think this is an upstream issue; can you contact them and link back here?

I'll try to find a contact! It's a very old program so I'm not sure it's development status.

Probably fall-out from the GCC14 update and it's probably just missing an explicit inclusion of a header that was previously included implicitly.
A patch might be trivial.


Active Directory Container located in Child Domain - Workday Active Directory User Provisioning

If set active directory container to a location in the child domain nothing gets mapped and the account is created with a HEX value for CN and sAMAccountName. If set in the root domain the account is created/updates without issue. I don't see in the documentation above that this is an invalid scenario or anything else that needs to be done to get it working.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 799c371a-a17e-08aa-ef56-86eef2395f7e
Version Independent ID: 1339cc93-712c-3a32-8321-dfd016a50ed4
Content: Tutorial: Configure Workday for automatic user provisioning with Azure Active Directory
Content Source: articles/active-directory/saas-apps/workday-inbound-tutorial.md
Service: active-directory
GitHub Login: @asmalser-msft
Microsoft Alias: asmalser

Thanks for your feedback! We will investigate and update as appropriate.

So.... It's been a month. Any update?

So whats the word on this issue? We are starting a Workday project and I have to go back and report this is how the Sync works.

@rudolph4, @Eseldorf, Sincere apologies for the long delay in getting back on this issue. We recently released a new version of the agent in public preview and updated our documentation. I recommend trying this scenario with our latest agent and provisioning app. After installing the agent, register each domain with the agent and for each domain create a separate instance of the Workday provisioning application.

#please-close


Closing API docs does't bring back the focus to the working tab

 Issue by yasassri
Sunday Oct 22, 2017 at 06:34 GMT
Originally opened as https://github.com/ballerina-lang/composer/issues/4128

Implementation has differed we no longer have API docs.


Change dashboard information to live data, no longer hard-coded data

Dashboard no longer has hard coded values
Values are taken from Live information
Changed CSS to look more appealing

Changelog update pls


Remove out-dated PackageIconUrl property and fallback to the one in common.props

See https://github.com/dotnet/corefxlab/pull/2383#discussion_r202849635

@dotnet-bot test Innerloop OSX10.12 Debug Build and Test
@dotnet-bot test Innerloop OSX10.12 Release Build and Test


At the same time to fuzzing multiple format files

Suggest to add a function that generated fuzzed files to retain the original file suffix, so that can fuzzing multiple file format at the same time.
Some app  must only parse the specific file suffix name.,but the default generated file suffix name is *.fuzz, and -e arg can only specify a file suffix, so the fuzzing would be invalid when input dir have multiple file suffix name.

I add a pull request:
https://github.com/google/honggfuzz/pull/101


Spring data 2.1.x

Thank you - will merge this together with #213

Thank you so much!
Merged via #220


failed to run HECHMS

I am using Ubuntu 16.04.7 LTS and the kernel version is 4.8.0-58-generic. I just followed the installation instruction like unzip using "tar" and run ./hec-hms.sh. Following is what I got. What should I do to solve this problem? Thanks for your attention.
==============================================================================
/volume/NFS/yw922/HEC-HMS-4.9/bin/taudem:/volume/NFS/yw922/HEC-HMS-4.9/bin/mpi:/volume/NFS/yw922/bin:/volume/NFS/yw922/miniconda3/bin:/volume/NFS/yw922/miniconda3/condabin:/usr/local/pandaseq-2.11/bin:/usr/local/Matlab2020a/bin:/usr/local/Python37/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/usr/local/slurm/bin:/usr/local/cuda-9.1/bin
Native library load failed.
java.lang.UnsatisfiedLinkError: /volume/NFS/yw922/HEC-HMS-4.9/bin/gdal/libgdalalljni.so: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by /volume/NFS/yw922/HEC-HMS-4.9/bin/gdal/./libgdal.so.26)
Feb 10, 2022 2:09:45 PM hms.m <init>
SEVERE: 'void org.gdal.gdal.gdalJNI.SetConfigOption(java.lang.String, java.lang.String)'
java.lang.UnsatisfiedLinkError: 'void org.gdal.gdal.gdalJNI.SetConfigOption(java.lang.String, java.lang.String)'
        at org.gdal.gdal.gdalJNI.SetConfigOption(Native Method)
        at org.gdal.gdal.gdal.SetConfigOption(gdal.java:180)
        at hms.m.<init>(Unknown Source)
        at hms.m.<clinit>(Unknown Source)
        at hms.Hms.<clinit>(Unknown Source)

Heclib.init: :java.lang.UnsatisfiedLinkError: /volume/NFS/yw922/HEC-HMS-4.9/bin/libjavaHeclib.so: libgfortran.so.5: cannot open shared object file: No such file or directory
Heclib.init:java library path=/volume/NFS/yw922/HEC-HMS-4.9/bin:/volume/NFS/yw922/HEC-HMS-4.9/bin/gdal
java.lang.UnsatisfiedLinkError: /volume/NFS/yw922/HEC-HMS-4.9/bin/libjavaHeclib.so: libgfortran.so.5: cannot open shared object file: No such file or directory
        at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
        at java.base/java.lang.ClassLoader$NativeLibrary.load(Unknown Source)
        at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(Unknown Source)
        at java.base/java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.base/java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.base/java.lang.System.loadLibrary(Unknown Source)
        at hec.heclib.util.Heclib.<clinit>(Heclib.java:195)
        at hec.heclib.dss.HecDSSFileAccess.zset(HecDSSFileAccess.java:308)
        at hms.model.ProjectManager.<init>(Unknown Source)
        at hms.Hms.<init>(Unknown Source)
        at hms.Hms.main(Unknown Source)
Exception in thread "main" java.lang.UnsatisfiedLinkError: /volume/NFS/yw922/HEC-HMS-4.9/bin/libjavaHeclib.so: libgfortran.so.5: cannot open shared object file: No such file or directory
        at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
        at java.base/java.lang.ClassLoader$NativeLibrary.load(Unknown Source)
        at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(Unknown Source)
        at java.base/java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.base/java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.base/java.lang.System.loadLibrary(Unknown Source)
        at hec.heclib.util.Heclib.<clinit>(Heclib.java:195)
        at hec.heclib.dss.HecDSSFileAccess.zset(HecDSSFileAccess.java:308)
        at hms.model.ProjectManager.<init>(Unknown Source)
        at hms.Hms.<init>(Unknown Source)
        at hms.Hms.main(Unknown Source)
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f3fe89a178c, pid=49376, tid=49419
#
# JRE version: OpenJDK Runtime Environment AdoptOpenJDK (11.0.9+11) (build 11.0.9+11)
# Java VM: OpenJDK 64-Bit Server VM AdoptOpenJDK (11.0.9+11, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# C  [ld-linux-x86-64.so.2+0xc78c]
#
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /volume/NFS/yw922/HEC-HMS-4.9/hs_err_pid49376.log
#
# If you would like to submit a bug report, please visit:
#   https://github.com/AdoptOpenJDK/openjdk-support/issues
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
./hec-hms.sh: line 38: 49376 Aborted                 $JAVA_EXE -DMapPanel.NoVolatileImage=true -Xms32M $PYOPTS $JAVA_LIB_OPT -classpath $DIR/*:$DIR/ui:$DIR/lib/*:$DIR/lib/hec/* $PROG $*
============================================================================

Can you try 11.0.14 from adoptium.net and see if that works?

Sorry that I cannot change the system since I am using HPC organized by the
department. Do you have any idea about what caused this problem? Thank you!
Best
Yifan
Martijn Verburg @.***> 于2022年2月10日周四 16:16写道：

Can you try 11.0.14 from adoptium.net and see if that works?
—
Reply to this email directly, view it on GitHub
https://github.com/adoptium/adoptium-support/issues/450#issuecomment-1035526136,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AXP2NM6PAT4S53EAZTRPKIDU2QTKHANCNFSM5OBYJEEQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

Have you confirmed the existence of libgfortran.so.5, as the error is saying that there is an attempt to open it but cannot find it.
/volume/NFS/yw922/HEC-HMS-4.9/bin/libjavaHeclib.so: libgfortran.so.5: cannot open shared object file: No such file or directory
Potentially related:
https://stackoverflow.com/questions/59182655/why-libgfortran-so-5-is-not-located-after-upgrade-to-the-newest-gcc
https://stackoverflow.com/questions/56932991/how-to-fix-importerror-libgfortran-so-5-cannot-open-shared-object-file-no-su


Make FLATPAK: For everyones simplification of life

Is your feature request related to a problem? Please describe.
I suggest creating a flatpak limiting the need to support multiple distros yourself.
Describe the solution you'd like
Make package available in flatpak instead of PPA, and various distro specific packages.
Describe alternatives you've considered
Painful install and configuration with complex instructions that do not survive upgrades.
Additional context
Using Ubuntu.

ratbag needs access to /dev/hidraw devices which is not possible under flatpak and there are no portals that allow for this either. Until we have that in flatpak, there's nothing we can do.


DNS property is ignored while creating service via compose file

Description
Creating a service via a compose file in Docker 1.13-rc4 doesn't seem to support the DNS property, even though assigning a custom DNS server through the commandline tool is possible. The documentation for the new Docker Compose version 3 file doesn't indicate that the DNS property is unsupported either.
Steps to reproduce the issue:

Create a swarm with docker swarm init
Run docker stack deploy --compose-file test.yml test with the following compose file:

# test.yml
version: '3'

services:
  hello:
    image: hello-world:latest
    dns: <IP_ADDRESS>

Describe the results you received:
Running the deploy command shows the output below. Notice the "Ignoring unsupported options: dns" line.
Ignoring unsupported options: dns

Creating network test_default
Creating service test_hello

Describe the results you expected:
The service should be started with the custom DNS server, as happens when we create it via the commandline tool with docker service create --dns <IP_ADDRESS> --name test hello-world:latest.
Output of docker version:
Client:
 Version:      1.13.0-rc4
 API version:  1.25
 Go version:   go1.7.3
 Git commit:   88862e7
 Built:        Sat Dec 17 01:34:17 2016
 OS/Arch:      windows/amd64

Server:
 Version:      1.13.0-rc4
 API version:  1.25 (minimum version 1.12)
 Go version:   go1.7.3
 Git commit:   88862e7
 Built:        Sat Dec 17 01:34:17 2016
 OS/Arch:      linux/amd64
 Experimental: true

Output of docker info:
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.13.0-rc4
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
Swarm: active
 NodeID: j7e2dqmqhrahu9b4fnxp22esq
 Is Manager: true
 ClusterID: kbp1q4rd44axp9hyqk346u0xj
 Managers: 1
 Nodes: 1
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
 Node Address: <IP_ADDRESS>
 Manager Addresses:
  <IP_ADDRESS>:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e
runc version: 51371867a01c467f08af739783b8beafc154c4d7
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.8.15-moby
Operating System: Alpine Linux v3.4
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.934 GiB
Name: moby
ID: AMFI:3SYV:IXKB:BNOT:TOQF:ITPN:VHK6:RMMR:PVIJ:QEQX:3KXW:TXX6
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 30
 Goroutines: 135
 System Time: 2016-12-24T16:07:23.4117973Z
 EventsListeners: 0
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
 <IP_ADDRESS>/8
Live Restore Enabled: false

Additional environment details (AWS, VirtualBox, physical, etc.):
Tested on both Docker for Windows and AWS EC2 with equal results. The docker info and docker version outputs were created in the Docker for Windows environment.

/cc @dnephin @vdemeester

There is already a warning for this: Ignoring unsupported options: dns, so this is working correctly for 1.13.  We can add support in the next release.

Thank you for your response.
Two questions:

Might it be useful to document somewhere that this option is unsupported? Maybe in the compose file v3 documentation?

Is there a way to work around this other than updating the service through the CLI? As all my containers need the same DNS server, I tried adding it to /etc/docker/daemon.json on the swarm host, but to no avail. I still can't resolve the necessary domains. Are these 'default' DNS servers not added to swarm networks?

Thank you for your response.
Two questions:

Might it be useful to document somewhere that this option is unsupported? Maybe in the compose file v3 documentation?

Is there a way to work around this other than updating the service through the CLI? As all my containers need the same DNS server, I tried adding it to /etc/docker/daemon.json on the swarm host, but to no avail. I still can't resolve the necessary domains. Are these 'default' DNS servers not added to swarm networks?

@Thanaton the V3 file format documentation was added in this pull request; https://github.com/docker/docker.github.io/pull/937 and will be published when docker 1.13 is released. Would you be interested in opening a pull request if you have suggestions on what to add to that documentation? The pull request should be opened against the vnext-compose branch; https://github.com/docker/docker.github.io/blob/vnext-compose/compose/compose-file.md

Any alternative ways of specifying container DNS server/options in a stack?
Otherwise docker stack set of utilities is just useless for me

@ifourmanov a PR is opened to add support for it : https://github.com/docker/docker/pull/32059

@ifourmanov I refrained from using Compose V3 and swarm mode for this reason.
However, while testing in Januari I found a possible solution. If all of your containers use the same DNS servers and options, you can change the configuration of each Docker daemon in your swarm.
For example, add the configuration below in de daemon configuration file (default: /etc/docker/daemon.json) and restart the daemon. All containers started on that server should now use that DNS server.
{
    "dns": "<IP_ADDRESS>"
}

Once the PR goes through, you should be able to specify DNS servers and options per container instead of per server / daemon.

Hi All @thaJeztah @vdemeester @seriousben
This issue should be reopened according this issue: https://github.com/moby/moby/issues/34259


Making headers links and fixing text alignment

Problem
While I was reviewing a recipe, I noticed the new recipe title and Ignite title were not clickable. They were they same color as the links on the page and I kept trying to click them each time I visited.
Solution
Make the headers links for ease of navigation. Also align the text between the two columns so they have the same visual cadence. I'm using xScope for the guilds so you can seen the alignment.

Before
After

@lindboe Wanted to give you a chance to look at this without all the formatting changes before I merge.


Added vern.cc Public Instance

done on behalf of ~vern admins (https://vern.cc/admins)

verne.cc looks like a cool project!. Thanks.

http://rb.vern.cc/ down?
@tinywifi


[BUG] Connect-PnPOnline behind firewall error: "Host not reachable" version 2.2.0 and above

Reporting an Issue or Missing Feature
Issue confirmed by several users. See https://github.com/pnp/powershell/discussions/3151
Related to Release Release 2.2.0 · pnp/powershell · GitHub

Improved Connect-PnPOnline cmdlet to handle ping on the destination server to check if it exists. PR and #3154

Expected behavior
Scripts asks for credentials
Actual behavior
Error by command: Host not reachable
Steps to reproduce behavior
Simply run command Connect-PnPOnline -Url "contoso.sharepoint.com" behind a firewall. Proxy set.
Command is working well in 2.1.1 and below.
What is the version of the Cmdlet module you are running?
From 2.2.0 to latest 2.4.44 nightly
Which operating system/environment are you running PnP PowerShell on?

[ X] Windows
[ ] Linux
[ ] MacOS
[ ] Azure Cloud Shell
[ ] Azure Functions
[X ] Other : official latest Docker image mcr.microsoft.com/powershell

@alternone - sorry for the inconvenience , have fixed it. We will now validate it only if -ValidateConnection  parameter is specified.
Had added this check because we ran into an issue where if you entered incorrect URL, PowerShell itself froze, but looks like that's not happening and is an edge case which we can put behind a parameter.


DW texts: Minor INT3-issue

INT3 statements in DW texts
are mostly great. One thing came up:
If a ref type int refers to a citedRange within a bibl that contains another citedRange that is wholeText, the referred-to-URI must be built from that wholeText citedRange xml:id.
Currently:
#INT3 intertext relationship
<https://sk.acdh.oeaw.ac.at/DWbibl00070/relation/0> a ns1:INT3_IntertextualRelationship  ;
  rdfs:label "Intertextual relation"@en ;
  ns1:R12_has_referred_to_entity <https://sk.acdh.oeaw.ac.at/DWbibl01964/passage/1> ;
  ns1:R13_has_referring_entity <https://sk.acdh.oeaw.ac.at/DWbibl00070/passage/0> .

Line 3 of the statement should be
ns1:R12_has_referred_to_entity <https://sk.acdh.oeaw.ac.at/DWbibl01965/passage/1> ;

Done.

@BergListe Well, you did even more - added another ID to the URI, line 3 is now:
ns1:R12_has_referred_to_entity <https://sk.acdh.oeaw.ac.at/DWbibl01965 DWbibl01335/passage/1> ;
I think this is the issue I mentioned in https://github.com/semantic-kraus/dw-data/issues/41 – it seems like a condition (@wholeText) is missing, so it just takes all the IDs in all the citedRange elements.

This should be fixed - see #40


webhook: register metrics only with default stats reporter

This is a followup from knative/pkg#2931. RegisterMetrics may register unwanted metrics if the default stats reporter is not used.
/kind cleanup
None

/ok-to-test


feat: cache webmanifest for one day

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)

@raisedadead if this caching strategy makes sense, can you add this to the client VMs?
Ref: https://github.com/freeCodeCamp/freeCodeCamp/pull/55776

Do you want to deploy this? Would be great test of our Overlay network based SSH.

That's the stuff you previewed on Tuesday? Sure, I'll be around this afternoon if you've got time to walk me through it.


Added gesture handling to leaflet map

Please test this on your mobile device and tell me how buggy it is.

I added user-scalable=no to the viewport options (https://developer.mozilla.org/de/docs/Mozilla/Mobile/Viewport_meta_tag).
Now it seems to be working.


Change default Pattern Search for Names and Observations

Delivers Pivotal #164957447
This is a draft PR because it cannot be merged until #494 is merged. (Test suite will not pass until it's merged.)
Manual tests

Pattern Search for Names, pattern "Hydnum neorepandum".
Result should include H. neorepandum, H. washingtonianum, and exclude H. subgenus Hydnum and H. sect. Hydnum
Pattern Search for Observations, pattern "Boletus edulis".
Result should include Observations only of B. edulis, and exclude Caloboletus inedulis, Boletus austroedulis, Amanita muscaria subsp. flavivolvata, etc.

Note: The new default Observation pattern search does not return Observations of subtaxa of the pattern. It ideally would, but that would require a new Query parameter. IMO, this PR is an improvement over master, so it should be merged when ready, and perfected later.

Closing this PR because its approach is obsolete. See https://www.pivotaltracker.com/story/show/164957447/comments/204469528


Bookmarks - Open in new Tab

Description
I love the recently added Bookmarks, but I would like having the option to "Open in a New Tab"
Priority
Medium (Would be very useful)

@Surgical71 I tried to reproduce the same issue but I can open the bookmarks in a new tab. Do you want links to open in a new tab by default?

Thank you @souravghosh01 for considering to implement this. Should I assign you this issue?
Let us know if you need any help! You can contact us via Discord too if you need anything.

@manuel-rw Yes, please assign it to me

Assigned, thank you!

Completed in #983


#115 WIP Request for Code-Style Review when it comes to DSL

This PR is a draft to demonstrate how I plan on acting while in the DSL part of the code.
Given that macros and DSLs in general have a tendency to be pretty mean in terms of complexity, I developed a few habits over the years to structure those well enough so I can more easily get back into it after a while.
I plan on introducing some of those in the owlkettle DSL because I believe them to be beneficial to the overall project and for readability.
I wanted to open up this PR to already show you how I tend to act on every proc I touch when it comes to these to give you the chance to veto any of these habits up front.
(Sidenote, the below proc I mostly touched because I originally added a stateRef field to the generated WidgetState, then realized that's unnecessary, but at that point I'd already written myself a doc comment and it felt like a waste to throw that away)
In general:

Add doc comments to any proc involved in code generation. Even private procs.
Procs that generate NimNodes and thus Code directly I also annotate with a pattern that demonstrates what they generate (see doc comment in the code)
A variable should always only hold one type of NimNodeKind.
I just found it a ton easier to reason about what a given NimNode is if I can know for sure what NimNodeKind it is.
That's visible here in how I replaced the bits of result with var fieldName until the final code generation step
Separate sections in a proc into either smaller procs with fitting names, or at the very least split with doc comments. Code-generating related procs tend to become hard to see what they're about really fast, which is why I have this rule so you have something that allows you to see at a glance what this codeblock is about.

The last 2 commits implement an example on how to use the stateRef by implementing a feature we previously didn't have - keyCaptureWidget on search.
It allows "forwarding" keypress-events that happen while another widget is in focus to the SearchEntry Widget.
This allows in the example to have the list of items underneath the searchentry in focus, and while typing with it in focus the searchEntry fills with text.
From what I can tell it works correctly.
Some thoughts where I'd like to have your opinion:

As written in discord, StateRef is the only field where assignments can have 2 meanings: Assigning to a stateRef field means "Fill the StateRef instance I passed into the widget with a reference". Assigning to anywhere else means "Use the StateRef instance I passed into the widget for whatever". Unless you know stateRef is the "source" for the Ref and the other fields are the "sinks" for their usage, this is very non-obvious

To properly deal with subscribing/unsubscribing as stateRef changes on a widget, I need to do things in both the build and the update hook of stateRef. In the build-hook I need to do the initial subscription with observer. In the update-hook I need to first check if the stateRef changed. If it did, I want to unsubscribe the observer from the old stateRef and then add the observer to the new stateRef. That's a bit wordy and I'm not 100% if that's accurate.

Just had a chat with leorize: He suggests using the as operator for the semantics on assigning a ref. And I very much agree that the semantics look a lot clearer.
This would basically change this:
      ScrolledWindow:
        stateRef = app.keyCaptureRef
        ... other stuff....

to this
      ScrolledWindow as app.keyCaptureRef:
        ... other stuff....

It'd require some finageling with the DSL I think but in my eyes this improves clarity on where a ref comes from quite a bit.

I did some experimenting about how to implement this.
With the newest commit (which can easily be reverted) we can now have the as Syntax, see search_entry.nim in this PR:
      ScrolledWindow as app.keyCaptureRef:
        ListBox:
          ... other stuff ...

I wrote an in-depth explanation of what I did and the reasoning behind it in the commit message if anything further is necessary.

 ScrolledWindow as app.keyCaptureRef:
   ... other stuff....

This looks pretty nice! How does it interact with adders and the insert statement?

The way it currently is implemented I think it doesn't interact with the insert statement at all.
By which I mean you likely can't use this syntax with insert at the moment, that'd require additional changes to what I did in parseGui.
As for with adders, in which sense do you mean?

As for with adders, in which sense do you mean?

My question is if using as breaks the adder syntax. Where is the adder specified when using as? Widget {. ... .} as ... or Widget as .... {. ... .}?

I wanted to open up this PR to already show you how I tend to act on every proc I touch when it comes to these to give you the chance to veto any of these habits up front.

I think that such refactoring should be made in a separate PR as they are not really related to adding Refs (or given the current title of this PR, adding refs should be a separate PR).

My question is if using as breaks the adder syntax. Where is the adder specified when using as? Widget {. ... .} as ... or Widget as .... {. ... .}?

Right now this breaks the DSL, should be fixable by adjusting some of the parsing again.

This is going to interact with adder or rather pragmas in general in a really ugly way that I haven't yet found a simple way to solve.
Parsing of pragmas happens in     of nnkPragmaExpr: in line 123.
However, adding the possibility of an infix approach, that means expanding that section because you might be parsing a pragma either as part of a "normal" line such as <Widget> {.addRow.} or as part of an infix line such as <Widget> as <someRef> {.addRow.}.

@can-lehmann Fixed the interaction with adders not working, example for that is added to SearchEntry. I likely shouldn't put that there but inspiration didn't hit me on how/where else to demonstrate it.

I likely shouldn't put that there but inspiration didn't hit me on how/where else to demonstrate it.

I recently wrote a guide on the GUI DSL. You need to add a short subsection on state refs there anyways, so maybe add it there. Of course add a simple example first and then say "To get the reference of a widget with adders, the following syntax is used: "

Another issue you need to solve is what happens when a widget subsribes to a state ref but is deleted afterwards. Currently the observer still remains registered causing a use after free as far as I can see.

Another issue you need to solve is what happens when a widget subsribes to a state ref but is deleted afterwards. Currently the observer still remains registered causing a use after free as far as I can see.

The obvious and clean way to solve that efficiently architecturally speaking is having a destroy hook.
Now how that's supposed to work I don't even have a concept for.

Any thoughts on how a destroy-hook in owlkettle would be implemented?

You might need to attach it to the gtk widget directly (via destroy notify I believe), as the lifetime of the WidgetState is not necessarily equal to the lifetime of the gtk widget.

Memo to me for later in another PR:
I'll need to see if I can create some procs that make performing this setup easier when I implement a second feature that makes use of this.

You might need to attach it to the gtk widget directly (via destroy notify I believe), as the lifetime of the WidgetState is not necessarily equal to the lifetime of the gtk widget.

The other option would be making sure that the lifetime of the gtk widget is always at least equal (or longer) than the lifetime of the WidgetState (by using g_object_ref/unref correctly). This might actually be a nice thing to do. Then you could use =destroy.

The other option would be making sure that the lifetime of the gtk widget is always at least equal (or longer) than the lifetime of the WidgetState (by using g_object_ref/unref correctly). This might actually be a nice thing to do. Then you could use =destroy.

I'll claim incompetence on that one, this goes over my head on how I'd even make sure that is correct. It also conceptually makes no sense to me because in my head WidgetState persists across various iterations of Widgets, it just gets updated. That's one of the reason why the usage of StateRef requires you assigning it to WidgetState.

Okay, so I found it rather easy to add destroy-hooks to be parseable, just add to the HookEnum and to parseHookKind and you're done.
I'm getting the feeling doing this would be infinitely easier for you than for me because I'm massively struggling even vaguely getting an idea on where to add things and the intended place for additions.


A possible enhancement for the bot. Add audio alerts.

Hello, Woyken!
I've been using Your bot for quite a while already, and I'd like to thank You for all the work You've done. However, I would like to ask You about adding one more feature.
Since the captcha confirmnation is requested quite often now, you have to check the bot operability manually, which is not really convenient. It would have been really nice if You add a feature of playing a custom audiofile, placed in the bot's directory by user, every time the bot stops working, using the system's default audioplayer. It's OK, if You won't add it for some reason. Anyway, thanks one more time and sorry for (possibly) bad English.

Thanks for the feedback. Since I'm not really using the bot myself, I don't notice such things 😅. I think this would be a nice addition.
I'll see what I can do about that one.

And... After looking around for a bit there doesn't seem to be an easy way to play sounds in node.js app in cross-platform friendly way 😢

Actually, I've never ever woked with node.js😅, but... may be this may help?
https://thisdavej.com/node-js-playing-sounds-to-provide-notifications/

Or this method isn't suitable for cross-platform?

For this to work you would have to install one of these players:

I don't have any of them, and don't think many of people do... I was searching for some solution that wouldn't require to install some external player for sound to work.

Sounds quite logical.
https://github.com/Marak/play.js
I'm completely not sure that I understood everything correctly, but what about this?


Use std library ipaddress instead of legacy pypi backport package

ipaddress from PyPi is an out of date backport of the ipaddress module in the standard library that is designed to support Python versions < 3.3.
Since this project requires python 3.6, we should be able to use the stdlib and drop this package as a dependency.
This issue arose due vulnerability scanner indicating that ipaddress from PyPi was 'high risk'.

Thanks! Can you sign your commit? https://github.com/envoyproxy/envoy/blob/main/CONTRIBUTING.md#fixing-dco

Got stuck figuring out how to ammend this PR with the signoff. Created a new one: https://github.com/envoyproxy/protoc-gen-validate/pull/479


[RESOLVED] High ICMP ping response time

Problem started at 13:39:14 on 2023.07.05
Problem name: High ICMP ping response time
Host: MF-FG
Severity: Warning
Operational data: Value: 552ms
Original problem ID: 31999
Event details in Zabbix: http://<IP_ADDRESS>/tr_events.php?triggerid=23132&eventid=31999

Problem has been resolved in 6m 0s at 13:45:14 on 2023.07.05
Problem name: High ICMP ping response time
Host: MF-FG
Severity: Warning
Original problem ID: 31999


Integrate with schema utils js

https://github.com/open-rpc/schema-utils-js

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Mrv2 clamps the image after using OCIO

After applying any Aces config in the OCIO settings, the image values begin to be clamped using rgb channels. The values are truncated to 1, however, if we look through the nuke viewer, we see that the shooting values from the Arri camera, when interpreted through the Arri Wide Gamut (EI800), are much higher than one.
This results in loss of information when changing the gamma and exposure parameters. It is necessary to ensure that the image in mrv2 corresponds in values to the image from the nuke viewer. How to achieve this, it would be useful to get instructions on how to properly configure Access in mrv2.
A similar problem is observed in mrv
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: Linux Mint Kernel 5.4.0
Version mrv2 v1.2.3 (the same problem on mrv 6.2.3)

Things to check in mrv2:

Preferences->Video->Color Buffers' Accuracy set to Automatic or Full Float.

If that's not it, then I will need a sample .exr file to check the problem myself.

Thanks for the .exr.  I am going to need also the .ocio config you are using and all the OCIO settings you use.

https://drive.google.com/file/d/1ukGMh7MneQK9ljnd9BMH_yPloHkSNcIm/view?usp=sharing
I uploaded the exr and config file to the disk, which is in the settings.
The configs in this case are slightly different, but when using 1.0.3 in mrv2, the colors are also displayed incorrectly, so the reason is probably not in different configs.

Thanks.  I was able to reproduce the problem on mrv2 AND OpenRV with the old aces_1.0.3.
The issue seems to be that aces_1.0.3 is a v1.0 config that has been deprecated.
You should not confuse ACES 1.0.3 with ACES 1.3 which is the latest one, btw.
I'm afraid I don't have a solution or an idea what the problem might be.  At first glance it seems it could be an incompatibility in OCIO 2, that somehow Nuke works around it.

I came to the conclusion that mrv2 truncates values for some reason, regardless of the versioning of OCIO and config.
At the same time, even when using the latest versions of config inside nuke, we see a larger dynamic range of values, which, with a strong change in the image in gamma and gain, tries to preserve the color gradient.

Fixed in v1.2.4 currently in beta.


Debug commands should have deterministic toggle interface

From @deeprave on February 15, 2016 15:40
A feature request for the firmware to simplify and improve things a little:
Instead of the debug command being a toggle to the debug interface, be more deterministic and provide (even in addition to the toggle is ok):
debug [input]X [on|off]
and
debug [input]X ?
returning the current debug state for the selected channel, where X is 1 or 2.
In addition, missing value  of 'X' should affect all available channels, and return status of all channels in the second case.  e.g. "debug on" or "debug input on" should enable debug on all channels.
Copied from original issue: timvideos/HDMI2USB-firmware-prebuilt#3

@deeprave - To make this change the C code at https://github.com/timvideos/HDMI2USB-misoc-firmware/blob/master/firmware/lm32/ci.c#L629 should be modified.


[Product] Store "Add to Cart" option is missing in US hero banner

The "Add to Cart" option is not available on the "Ordering Options" tab and in the banner section for US.

Current progress: The basic form is functional, you can select options and variants. The conditions for styling of the variant drop down if nothing is selected in the options drop down is also in place, the quantity indicator also works.
Whats still left to do: Right now the data for the products and variants is only simulated, but needs to be replaced with the real data coming from the API call. The price calculation of the products and their variants needs to be implemented and the add to cart functionality.


Upper level "native" FoodOn Food Product scheme

The "foodon product type" facet is ideally a happy marriage between logical categories and familiar catalogue-like categories that items like "baked goods", "french fries" and "carrot sticks" can be arranged under.  It would support multi-homed products, whereas the other FoodOn/LanguaL facets are mainly strict hierarchies focusing on respective conceptual domains. We'll prepare a new "foodon product type" owl file for consideration which contains structure described below, for your feedback.
FoodOn inherited "foodon product type" from ENVO along with sibling product type designation systems that LanguaL listed for various organizations like FDA CFR, EUROFIR, etc.  We want to add depth and breadth to FoodOn's food product hierarchy so it can act as a mapping hub for the other product type schemas, as well as providing an easy home for food products.  We need some organizational wisdom here though. This will be quite iterative.  In this first round we're basically using SIREN food products (http://www.langual.org/download/IndexedDatasets/FDA/SIREN (updated).TXT) as guinea pigs to see where they fit well.  We realize this is fairly western-diet centric so far.
Briefly, top level would look like the following …
foodon food product
	food product by organism
	food product by culinary role
	processed food product
	food component product
	food product analog

Justification for this schema:

Keeps a "food product by organism" which is true to Envo and LanguaL's existing biology focused organism food source and food product.  (e.g. Envo "animal food product" = bird, fish, mammal and insect)
Introducing a "food product by culinary role" upper level to satisfy prepared food category tree according to type of experience in eating food – its general role (desert, candy, meal dish, snack).
Reusing a "processed food product" branch that focuses on what has been done to a food product.
Introducing a "food component product" containing cooking and food processing components that aren't usually eaten on their own.
Introducing a "food product analog" branch to place products that are marketed as imitations or substitutes for other products.  This eliminates the logical contradiction of having non-dairy products under dairy products, etc.  (Often can't position all imitation/substitutes as siblings because e.g. Then under alcohol one would have beer, and imitation beer).  Another symmetric relation "has food analog" exists in FoodOn to attach vanilla and vanillin for example.

With the above there should be guaranteed at least one route to a given food product.  Subordinate categories are able to be "multi-homed" (multiple inheritance in computer science terms), I.e. "avian egg product" can go under "avian product" and "egg product".
Also, right now for FoodOn "food source" facet we have equivalency that mentions 'has consumer' some organism (which I got Chris Mungall to add to RO, but with some discussion, realize that should probably be named 'has potential consumer'):
('chemical food source' or 'algae, bacteria or fungus used as food source' or 'animal used as food source' or 'plant used as food source' or 'liquid as food source') and ('has consumer' some organism)

So the "food product by organism" and underlings would have a "'has source' some organism" or a "'has substance added' some organism".
There is a conceptual tug-of-war between FoodOn/LanguaL's facets that describe basic features of food, and upper-level product types who use the very same facets as their distinguishing features.  However, it is inappropriate to directly subclass a food product under a langual facet, so in that case we have a food product with a "[other foodon facet name] product type" naming convention in the product type branch. Initially many SIREN food product types will be subclassed directly, but eventually we'll revise their equivalencies to enable placement by inference.
Envo/Foodon's EXISTING food product top level schema mirrors LanguaL's "food source" tree somewhat when it comes to organisms. It is likely that for any food source there will be a variety of food products related to it, so the food product hierarchy will have a subclass structure whose terms are about corresponding "food source" items. We will flush this out so that there is a comfortable mirrored structure.
foodon food product
	food product by organism [rougly MIRRORS "food source" at top 2 or so levels]
		animal food product
			avian food product
				avian egg food product
				…
			fish food product
				…
			mammal food product
				dairy product
				meat food product
			invertebrate food product
				insect food product
				shellfish food product
				…
		plant …
		fungal …
		microbial (bacteria) …
		algae …

We were also thinking of introducing a "food product by culinary role" upper level to satisfy prepared food categorizations.  This category would emphasize the phenotypic sensation end-product of a given food over other characteristics.
food product by culinary role
	desert food product
	confectionary …
	snack …
	meal (dish) food product
		soup …
		sandwich …
		meal mix …
	beverage related product …
		liquid beverage
		beverage mix
	condiment and dressing
		gravy
		pickle
		…

A processed food product is another grab-bag slice on food products that focuses not so much on the end product (as culinary role does) but rather on the process and or other use-role of the food.
processed food product
	dietary or therapeutic formulation food product
	bakery food product
	condiment food product
	…

food product analog
	fish analog
	meat analog
	plant analog
	dairy analog
	egg analog

I find the existing "food source" -> "chemical food source" awkward.  All those items are invariably products, so this case is unlike cases described above where other FoodOn feature facets can't have products under them.  Instead I suggest we place those terms under a "food component product", which probably is a subclass of processed food product?  Something like:
processed food product
	food component product
		bread leavening agent
			Bakers yeast (multi-homed)
			Engevita nutritional yeast (multi-homed)
			baking soda
			baking powder
			…
		vinegar
		…
		food additive
			…

Feedback appreciated...

I've just loaded this scheme up into foodon (but not made a new release version).

A few changes:

"food component product" now sits directly under "foodon product type".
"chemical food component" is a subclass of "food component product".
"extract, concentrate, or isolate of plant or animal" is a subclass of "food component product". There may be a case for moving it uner "chemical food component" although extract etc. implies mixtures.


How to perform a text classification using a custom model

I've been working on text binary classification using a very domain specific data. I've been following the steps shown in the  tutorials using distilbert-base-uncased'. I've tried to test other mutilingual models  but for some reason that doesn't work.
I also want to test a custom model that I built from scratch but I don't know how to do that.
Does anyone know how to do that ?
Thank you for the help!

At the end of the same tutorial you just mentioned, there is information on how to do this.  You'll need to use the Transformer API in ktrain, as described in detail here.
# load text data
categories = ['alt.atheism', 'soc.religion.christian','comp.graphics', 'sci.med']
from sklearn.datasets import fetch_20newsgroups
train_b = fetch_20newsgroups(subset='train', categories=categories, shuffle=True)
test_b = fetch_20newsgroups(subset='test',categories=categories, shuffle=True)
(x_train, y_train) = (train_b.data, train_b.target)
(x_test, y_test) = (test_b.data, test_b.target)

# build, train, and validate model (Transformer is wrapper around transformers library)
import ktrain
from ktrain import text
MODEL_NAME = 'distilbert-base-uncased' # replace with any transformers model you want
t = text.Transformer(MODEL_NAME, maxlen=500, class_names=train_b.target_names)
trn = t.preprocess_train(x_train, y_train)
val = t.preprocess_test(x_test, y_test)
model = t.get_classifier()
learner = ktrain.get_learner(model, train_data=trn, val_data=val, batch_size=6)
learner.fit_onecycle(5e-5, 4)
learner.validate(class_names=t.get_classes()) # class_names must be string values

u for the quick answer.  Indeed, I have already tried this by adjusting it to my case (my pre-trained model is in a local folder) but it did not work.

Please provide example code to reproduce the problem or tell me the model you're trying to load if you want further assistance.


Update readme.md

tiny typo in requirements

Thanks @mark-thm, how do I merge? It seems like we're waiting on the autosquash workflow?


Test giantswarm/cilium-app#136

What this PR does / why we need it
Test giantswarm/cilium-app#136 for https://github.com/giantswarm/giantswarm/issues/29542
Checklist

[ ] Update changelog in CHANGELOG.md.

Trigger e2e tests

/run cluster-test-suites

/run cluster-test-suites


Add New Moderation Roles

Since the new change over to the Trusted LBRYian roles, the config on wunderbot needs updated.

Updated in Production.


Replaced one letter import

This PR updates a code example for consistency across the docs based on feedback from this comment:
"In terms of style we usually stay away from one-letter imports like this (even if the community uses them) as they are not always known by beginners and one letter is very undescriptive. Here it wouldn't change anything to use albumentations instead of A."

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Thanks for the docs fix for consistency.
Again for consistency, it would be nice to make the same fix across all the docs, e.g.
https://github.com/huggingface/datasets/blob/310cdddd1c43f9658de172b85b6509d07d5e31a1/docs/source/image_classification.mdx?plain=1#L41

Excellent point!

@albertvillanova Should be all of them now :)


Integrate K8s HTCondor deployment in coffea-casa helm chart

[ ]  Integrate SSL K8s HTCondor deployment https://github.com/maniaclab/htcondor-cc in coffea-casa Helm charts

I've tried several times to integrate htcondor into casa without luck.  jobs don't start, files can't move, jobs get held.  Even getting the submission to work requires the manual creation of a condor token and editting /opt/condor/config.d/schedd to point at the internal cm and submit pods.  This needs more attention from a condor expert.


pip install rq-scheduler does not install latest version (0.5.1)

When installing rq-scheduler using pip install rq-scheduler the files installed seem not to be from the latest version. Specifically, the scheduler.schedule method lacks the id and description keyword arguments.
Reproduction:
$ pip install rq-scheduler
[...]
Successfully installed rq-scheduler-0.5.1
$ pip show rq-scheduler
[...]
Location: /usr/local/lib/python2.7/site-packages
$ cat /usr/local/lib/python2.7/site-packages/rq-scheduler/__init__.py
VERSION = (0, 5, 1)

from .scheduler import Scheduler
$ cat /usr/local/lib/python2.7/site-packages/rq-scheduler/scheduler.py
import logging
import signal
import time
import warnings

from datetime import datetime, timedelta
from itertools import repeat

from rq.exceptions import NoSuchJobError
from rq.job import Job
from rq.queue import Queue

from redis import WatchError

from .utils import from_unix, to_unix

logger = logging.getLogger(__name__)

class Scheduler(object):
    scheduler_key = 'rq:scheduler'
    scheduled_jobs_key = 'rq:scheduler:scheduled_jobs'

    def __init__(self, queue_name='default', interval=60, connection=None):
        from rq.connections import resolve_connection
        self.connection = resolve_connection(connection)
        self.queue_name = queue_name
        self._interval = interval
        self.log = logger

    def register_birth(self):
        if self.connection.exists(self.scheduler_key) and \
                not self.connection.hexists(self.scheduler_key, 'death'):
            raise ValueError("There's already an active RQ scheduler")
        key = self.scheduler_key
        now = time.time()
        with self.connection._pipeline() as p:
            p.delete(key)
            p.hset(key, 'birth', now)
            # Set scheduler key to expire a few seconds after polling interval
            # This way, the key will automatically expire if scheduler
            # quits unexpectedly
            p.expire(key, int(self._interval) + 10)
            p.execute()

    def register_death(self):
        """Registers its own death."""
        with self.connection._pipeline() as p:
            p.hset(self.scheduler_key, 'death', time.time())
            p.expire(self.scheduler_key, 60)
            p.execute()

    def _install_signal_handlers(self):
        """
        Installs signal handlers for handling SIGINT and SIGTERM
        gracefully.
        """

        def stop(signum, frame):
            """
            Register scheduler's death and exit.
            """
            self.log.info('Shutting down RQ scheduler...')
            self.register_death()
            raise SystemExit()

        signal.signal(signal.SIGINT, stop)
        signal.signal(signal.SIGTERM, stop)

    def _create_job(self, func, args=None, kwargs=None, commit=True,
                    result_ttl=None, queue_name=None):
        """
        Creates an RQ job and saves it to Redis.
        """
        if args is None:
            args = ()
        if kwargs is None:
            kwargs = {}
        job = Job.create(func, args=args, connection=self.connection,
                         kwargs=kwargs, result_ttl=result_ttl)
        job.origin = queue_name or self.queue_name
        if commit:
            job.save()
        return job

    def enqueue_at(self, scheduled_time, func, *args, **kwargs):
        """
        Pushes a job to the scheduler queue. The scheduled queue is a Redis sorted
        set ordered by timestamp - which in this case is job's scheduled execution time.

        Usage:

        from datetime import datetime
        from redis import Redis
        from rq.scheduler import Scheduler

        from foo import func

        redis = Redis()
        scheduler = Scheduler(queue_name='default', connection=redis)
        scheduler.enqueue_at(datetime(2020, 1, 1), func, 'argument', keyword='argument')
        """
        job = self._create_job(func, args=args, kwargs=kwargs)
        self.connection._zadd(self.scheduled_jobs_key,
                              to_unix(scheduled_time),
                              job.id)
        return job

    def enqueue_in(self, time_delta, func, *args, **kwargs):
        """
        Similar to ``enqueue_at``, but accepts a timedelta instead of datetime object.
        The job's scheduled execution time will be calculated by adding the timedelta
        to datetime.utcnow().
        """
        job = self._create_job(func, args=args, kwargs=kwargs)
        self.connection._zadd(self.scheduled_jobs_key,
                              to_unix(datetime.utcnow() + time_delta),
                              job.id)
        return job

    def enqueue_periodic(self, scheduled_time, interval, repeat, func,
                         *args, **kwargs):
        """
        Schedule a job to be periodically executed, at a certain interval.
        """
        warnings.warn("'enqueue_periodic()' has been deprecated in favor of '.schedule()'"
                      "and will be removed in a future release.", DeprecationWarning)
        return self.schedule(scheduled_time, func, args=args, kwargs=kwargs,
                            interval=interval, repeat=repeat)

    def schedule(self, scheduled_time, func, args=None, kwargs=None,
                interval=None, repeat=None, result_ttl=None, timeout=None, queue_name=None):
        """
        Schedule a job to be periodically executed, at a certain interval.
        """
        # Set result_ttl to -1 for periodic jobs, if result_ttl not specified
        if interval is not None and result_ttl is None:
            result_ttl = -1
        job = self._create_job(func, args=args, kwargs=kwargs, commit=False,
                               result_ttl=result_ttl, queue_name=queue_name)
        if interval is not None:
            job.meta['interval'] = int(interval)
        if repeat is not None:
            job.meta['repeat'] = int(repeat)
        if repeat and interval is None:
            raise ValueError("Can't repeat a job without interval argument")
        if timeout is not None:
            job.timeout = timeout
        job.save()
        self.connection._zadd(self.scheduled_jobs_key,
                              to_unix(scheduled_time),
                              job.id)
        return job

    def enqueue(self, scheduled_time, func, args=None, kwargs=None,
                interval=None, repeat=None, result_ttl=None, queue_name=None):
        """
        This method is deprecated and only left in as a backwards compatibility
        alias for schedule().
        """
        warnings.warn("'enqueue()' has been deprecated in favor of '.schedule()'"
                      "and will be removed in a future release.", DeprecationWarning)
        return self.schedule(scheduled_time, func, args, kwargs, interval,
                             repeat, result_ttl, queue_name=queue_name)

    def cancel(self, job):
        """
        Pulls a job from the scheduler queue. This function accepts either a
        job_id or a job instance.
        """
        if isinstance(job, Job):
            self.connection.zrem(self.scheduled_jobs_key, job.id)
        else:
            self.connection.zrem(self.scheduled_jobs_key, job)

    def __contains__(self, item):
        """
        Returns a boolean indicating whether the given job instance or job id is
        scheduled for execution.
        """
        job_id = item
        if isinstance(item, Job):
            job_id = item.id
        return self.connection.zscore(self.scheduled_jobs_key, job_id) is not None

    def change_execution_time(self, job, date_time):
        """
        Change a job's execution time. Wrap this in a transaction to prevent race condition.
        """
        with self.connection._pipeline() as pipe:
            while 1:
                try:
                    pipe.watch(self.scheduled_jobs_key)
                    if pipe.zscore(self.scheduled_jobs_key, job.id) is None:
                        raise ValueError('Job not in scheduled jobs queue')
                    pipe.zadd(self.scheduled_jobs_key, to_unix(date_time), job.id)
                    break
                except WatchError:
                    # If job is still in the queue, retry otherwise job is already executed
                    # so we raise an error
                    if pipe.zscore(self.scheduled_jobs_key, job.id) is None:
                        raise ValueError('Job not in scheduled jobs queue')
                    continue

    def get_jobs(self, until=None, with_times=False):
        """
        Returns a list of job instances that will be queued until the given time.
        If no 'until' argument is given all jobs are returned. This function
        accepts datetime and timedelta instances as well as integers representing
        epoch values.
        If with_times is True a list of tuples consisting of the job instance and
        it's scheduled execution time is returned.
        """
        def epoch_to_datetime(epoch):
            return from_unix(float(epoch))

        if until is None:
            until = "+inf"
        elif isinstance(until, datetime):
            until = to_unix(until)
        elif isinstance(until, timedelta):
            until = to_unix((datetime.utcnow() + until))
        job_ids = self.connection.zrangebyscore(self.scheduled_jobs_key, 0,
                                                until, withscores=with_times,
                                                score_cast_func=epoch_to_datetime)
        if not with_times:
            job_ids = zip(job_ids, repeat(None))
        jobs = []
        for job_id, sched_time in job_ids:
            job_id = job_id.decode('utf-8')
            try:
                job = Job.fetch(job_id, connection=self.connection)
                if with_times:
                    jobs.append((job, sched_time))
                else:
                    jobs.append(job)
            except NoSuchJobError:
                # Delete jobs that aren't there from scheduler
                self.cancel(job_id)
        return jobs

    def get_jobs_to_queue(self, with_times=False):
        """
        Returns a list of job instances that should be queued
        (score lower than current timestamp).
        If with_times is True a list of tuples consisting of the job instance and
        it's scheduled execution time is returned.
        """
        return self.get_jobs(to_unix(datetime.utcnow()), with_times=with_times)

    def get_queue_for_job(self, job):
        """
        Returns a queue to put job into.
        """
        key = '{0}{1}'.format(Queue.redis_queue_namespace_prefix, job.origin)
        return Queue.from_queue_key(key, connection=self.connection)

    def enqueue_job(self, job):
        """
        Move a scheduled job to a queue. In addition, it also does puts the job
        back into the scheduler if needed.
        """
        self.log.debug('Pushing {0} to {1}'.format(job.id, job.origin))

        interval = job.meta.get('interval', None)
        repeat = job.meta.get('repeat', None)

        # If job is a repeated job, decrement counter
        if repeat:
            job.meta['repeat'] = int(repeat) - 1
        job.enqueued_at = datetime.utcnow()
        job.save()

        queue = self.get_queue_for_job(job)
        self.connection.sadd(queue.redis_queues_keys, queue.key)
        queue.push_job_id(job.id)
        self.connection.zrem(self.scheduled_jobs_key, job.id)

        if interval:
            # If this is a repeat job and counter has reached 0, don't repeat
            if repeat is not None:
                if job.meta['repeat'] == 0:
                    return
            self.connection._zadd(self.scheduled_jobs_key,
                                  to_unix(datetime.utcnow()) + int(interval),
                                  job.id)

    def enqueue_jobs(self):
        """
        Move scheduled jobs into queues.
        """
        self.log.info('Checking for scheduled jobs...')

        jobs = self.get_jobs_to_queue()
        for job in jobs:
            self.enqueue_job(job)

        # Refresh scheduler key's expiry
        self.connection.expire(self.scheduler_key, int(self._interval) + 10)
        return jobs

    def run(self):
        """
        Periodically check whether there's any job that should be put in the queue (score
        lower than current time).
        """
        self.log.info('Running RQ scheduler...')
        self.register_birth()
        self._install_signal_handlers()
        try:
            while True:
                self.enqueue_jobs()
                time.sleep(self._interval)
        finally:
            self.register_death()

I'm having this issue, too. Any solutions?

Any way to get around this apart from building our own?

As a temporary solution, pip can install directly from git. For example, you can add the following to your requirements.txt:
-e git://github.com/ui/rq-scheduler.git@4e6837bb6a6e5be4ca364ff9d6218c2b2153009a#egg=rq-scheduler

Will try to release a new version soon. Closing this as duplicate of https://github.com/ui/rq-scheduler/issues/106


Why the generated real robot‘s color heightmap is not good？

Hello, first of all thanks for sharing your amazing job. I want to know Why the generated real robot‘s color heightmap is not good？My color heightmaps are often deformed and have a lot of black Points. Is this caused by inaccurate camera calibration? I have try with your calibration method.(0.448x0.448 resolution=0.02 and 0.672x0.672 resolution=0.03)
and ROS easy_handeye method. the second method cant get the same R.t matrix with the first. so i can‘t use it.

Thanks in advance ;)

I also have some related questions. Could you please give me your contact information<EMAIL_ADDRESS>


Installation

Ah, there seems to be a bit more to installing that just adding the gem and bundling. I need jquery.ui.sortable, and even though I've added it to my application.js and application.css along with the jquery-ui-rails gem it's still not working.
Starting with a completely clean installation, what's the secret to installing your gem?

I've updated the JS require to use jquery-ui/sortable.


AUTH option form config

Usefull for Redis Server Password protected like Azure Redis

Looks good. Could you update to latest version and maybe add a small test


Update to clap 3.1.x

Updated to use clap 3.1.x instead of structopt.

Seems the same issue applies with the atuin search subcommand (again a --human flag). I also agree that it should be --long only


Updated syntax error in documentation on models.py

solved this issue https://github.com/argilla-io/argilla/issues/3294

Description
Fixed syntax error on sample documentation python code.
Closes #3294
Type of change
(Please delete options that are not relevant. Remember to title the PR according to the type of change)

[x] Documentation update

How Has This Been Tested
NA
Checklist

[x] I added relevant documentation
[x] follows the style guidelines of this project
[x] I did a self-review of my code
[x] I made corresponding changes to the documentation

Thanks for your contribution, @manijhariya !!!


Misleading or unfinished documentation

The page Service Hooks Events Work Item Updated have misleading information. It states that workitem.updated event can be configured to trigger on multiple work item fields but only through custom API calls. There is no explanation or example shown in how to achieve this.
Note in the page

Creating a Service Hooks subscription with multiple fields is not supported through the UI, but you can achieve this by either creating a custom payload through the API, or by creating separate Service Hooks subscriptions for each field.

Either add an example or explanation for this or remove the note that hints that this is something that is achievable.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 6033d681-9093-547c-20fd-b31183c2bb33
Version Independent ID: 0d92e3f0-7fb4-57e5-d913-f305a055a819
Content: Service hooks events - Azure DevOps
Content Source: docs/service-hooks/events.md
Service: azure-devops
Sub-service: azure-devops-service-hooks
GitHub Login: @chcomley
Microsoft Alias: chcomley

@pedalocam -- thank you for your feedback.  Please consider these resources:

Azure DevOps Services
Azure DevOps on Stack Overflow

@chcomley -- please look into this issue.

I added steps for creating a service hook subscription for each field, as requested in the original description of this issue, which should go live shortly. Thanks for the feedback. I've also created a user story for my backlog to refresh this article. Thanks so much.


[alarm] add message input and dated Events

Users can now create Events (triggered based on time and date, vs alarms, which are triggered based on time and day of week).  In this first version, there is no "Repeat" option for Events (e.g. "20th of each month"), but I hope to add that in a future version.
Users can now input a message to be shown for alarms, timers and dated events.  The message input is optional: I don't add a dependency to textinput, but juste remove the Message entry if it isn't detected.

Eventually, if we want to allow people to download just the functionalities they want from this "default" alarm app (e.g. if they don't need dated Events and want to spare resources), I could use the "custom" and "content" options of metadata.json to read and customize app.js based on user's choice.
e.g. tag the source code with comments such as the following, and remove everything in between if the user does not want a feature:
/*Option1->*/
...
/*<-Option1*/

Great, thanks!

e.g. tag the source code with comments such as the following, and remove everything in between if the user does not want a feature:

I think for now it's best to leave that - I feel like the proportion of users that would ever do that is pretty small, and the actual space/speed saving may not be that significant.
... but there is a more general problem of users forking apps and making a tiny change, which makes it really difficult to maintain things - so it was suggested that something like 'patches' could be added - but again I do wonder how many people would actually contribute changes that way, as it's just more complexity


Unable to filter by Timestamp using Table API

Describe the bug
Applying a date filter for the Timestamp column yields zero results.
To Reproduce
// Filter to get entities for the last 30 days
string timestampFilter = TableQuery.GenerateFilterConditionForDate("Timestamp", QueryComparisons.GreaterThanOrEqual, DateTimeOffset.Now.Date.AddDays(-30)),

var query = new TableQuery<ResponseEntity>().Where(timestampFilter);

var segment = await table.ExecuteQuerySegmentedAsync(query, null); // Zero entities

query = new TableQuery<ResponseEntity>();

segment = await table.ExecuteQuerySegmentedAsync(query, null); // All entities

Expected behavior
Expected result with entities matching the filter (it works with the exact same filter string in the Azure portal's "Data Explorer").
Actual behavior
Result with zero matches.
Environment summary
Microsoft.Azure.Cosmos.Table 0.9.1-preview or Microsoft.Azure.DocumentDB.Core 2.1.3 (both yield the same result)
WindowsAzure.Storage 9.3.2
Windows 10
Additional context
Question on Stack Overflow

Nevermind, this was because I had WindowsAzure.Storage installed. Uninstalling it and using the namespaces from the Microsoft.Azure.Cosmos.Table package instead works.