Shellcheck warnings

The fzf completion code is a fairly significant chunk of bash, so I ran it through shellcheck out of curiosity.
It often spots a lot of non-issues, but there's a few that should probably be addressed.
In completion.bash line 17:
    \find -L "$1" \
    ^-- SC1001: This \f will be a regular 'f' in this context.

In completion.bash line 25:
    \find -L "$1" \
    ^-- SC1001: This \f will be a regular 'f' in this context.

In completion.bash line 78:
    COMPREPLY=( $(compgen -W "length begin end index" -- ${cur}) )
                                                         ^-- SC2086: Double quote to prevent globbing and word splitting.

In completion.bash line 82:
    COMPREPLY=( $(compgen -W "dark light 16 bw" -- ${cur}) )
                                                   ^-- SC2086: Double quote to prevent globbing and word splitting.

In completion.bash line 92:
    COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                                          ^-- SC2086: Double quote to prevent globbing and word splitting.

In completion.bash line 111:
    eval $(complete | \grep "\-F.* $orig_cmd$" | _fzf_orig_completion_filter)
         ^-- SC2046: Quote this to prevent word splitting.
                      ^-- SC1001: This \g will be a regular 'g' in this context.

In completion.bash line 112:
    source $BASH_SOURCE
    ^-- SC1090: Can't follow non-constant source. Use a directive to specify location.
           ^-- SC2128: Expanding an array without an index only gives the first element.
           ^-- SC2086: Double quote to prevent globbing and word splitting.

In completion.bash line 119:
  [ ${FZF_TMUX:-1} -eq 1 ] && fzf="fzf-tmux -d ${FZF_TMUX_HEIGHT:-40%}" || fzf="fzf"
    ^-- SC2086: Double quote to prevent globbing and word splitting.

In completion.bash line 120:
  cmd=$(echo ${COMP_WORDS[0]} | sed 's/[^a-z0-9_=]/_/g')
        ^-- SC2001: See if you can use ${variable//search/replace} instead.
             ^-- SC2086: Double quote to prevent globbing and word splitting.

In completion.bash line 126:
    eval base=$base
              ^-- SC2086: Double quote to prevent globbing and word splitting.

In completion.bash line 129:
    while [ 1 ]; do
            ^-- SC2161: Instead of '[ 1 ]', use 'true'.

In completion.bash line 130:
      if [ -z "$dir" -o -d "$dir" ]; then
                     ^-- SC2166: Prefer [ p ] || [ q ] as [ p -o q ] is not well defined.

In completion.bash line 136:
        matches=$(eval "$1 $(printf %q "$dir")" | $fzf $FZF_COMPLETION_OPTS $2 -q "$leftover" | while read item; do
                                                       ^-- SC2086: Double quote to prevent globbing and word splitting.
                                                                            ^-- SC2086: Double quote to prevent globbing and word splitting.
                                                                                ^-- SC2162: read without -r will mangle backslashes.

In completion.bash line 162:
  type -t $post > /dev/null 2>&1 || post=cat
          ^-- SC2086: Double quote to prevent globbing and word splitting.

In completion.bash line 163:
  [ ${FZF_TMUX:-1} -eq 1 ] && fzf="fzf-tmux -d ${FZF_TMUX_HEIGHT:-40%}" || fzf="fzf"
    ^-- SC2086: Double quote to prevent globbing and word splitting.

In completion.bash line 165:
  cmd=$(echo ${COMP_WORDS[0]} | sed 's/[^a-z0-9_=]/_/g')
        ^-- SC2001: See if you can use ${variable//search/replace} instead.
             ^-- SC2086: Double quote to prevent globbing and word splitting.

In completion.bash line 172:
    selected=$(cat | $fzf $FZF_COMPLETION_OPTS $1 -q "$cur" | $post | tr '\n' ' ')
                          ^-- SC2086: Double quote to prevent globbing and word splitting.
                                               ^-- SC2086: Double quote to prevent globbing and word splitting.

In completion.bash line 203:
  [ ${FZF_TMUX:-1} -eq 1 ] && fzf="fzf-tmux -d ${FZF_TMUX_HEIGHT:-40%}" || fzf="fzf"
    ^-- SC2086: Double quote to prevent globbing and word splitting.

In completion.bash line 205:
  selected=$(ps -ef | sed 1d | $fzf -m $FZF_COMPLETION_OPTS | awk '{print $2}' | tr '\n' ' ')
                                       ^-- SC2086: Double quote to prevent globbing and word splitting.

In completion.bash line 216:
    \grep -v '^\s*\(#\|$\)' /etc/hosts | \grep -Fv '<IP_ADDRESS>' |
    ^-- SC1001: This \g will be a regular 'g' in this context.
                                         ^-- SC1001: This \g will be a regular 'g' in this context.

In completion.bash line 223:
    cat <(cat ~/.ssh/config /etc/ssh/ssh_config 2> /dev/null | \grep -i '^host' | \grep -v '*') \
                                                               ^-- SC1001: This \g will be a regular 'g' in this context.
                                                                                ^-- SC1001: This \g will be a regular 'g' in this context.
                                                                                ^-- SC2063: Grep uses regex, but this looks like a glob.

In completion.bash line 224:
        <(\grep -v '^\s*\(#\|$\)' /etc/hosts | \grep -Fv '<IP_ADDRESS>') |
          ^-- SC1001: This \g will be a regular 'g' in this context.
                                               ^-- SC1001: This \g will be a regular 'g' in this context.

In completion.bash line 265:
  eval $(complete | \grep '\-F' | \grep -v _fzf_ |
       ^-- SC2046: Quote this to prevent word splitting.
                    ^-- SC1001: This \g will be a regular 'g' in this context.
                                  ^-- SC1001: This \g will be a regular 'g' in this context.

In completion.bash line 266:
    \grep -E " ($(echo $d_cmds $a_cmds $x_cmds | sed 's/ /|/g' | sed 's/+/\\+/g'))$" | _fzf_orig_completion_filter)
    ^-- SC1001: This \g will be a regular 'g' in this context.
                       ^-- SC2086: Double quote to prevent globbing and word splitting.
                               ^-- SC2086: Double quote to prevent globbing and word splitting.
                                       ^-- SC2086: Double quote to prevent globbing and word splitting.

In completion.bash line 282:
    eval "$(printf "$orig" "$func")"
                   ^-- SC2059: Don't use variables in the printf format string. Use printf "..%s.." "$foo".

In completion.bash line 284:
    complete -F "$func" $opts "$cmd"
                        ^-- SC2086: Double quote to prevent globbing and word splitting.

Thanks, I'll take a look.

Most of the warnings were false positives. But I noticed using read instead of read -r actually had issues with file paths containing backslashes. Fixed it. Thanks!

Note there are some issues in the install script too:
$ shellcheck myscript

Line 69:
  read -p "$1 ([y]/n) " $read_n -r
                        ^-- SC2086: Double quote to prevent globbing and word splitting.

Line 78:
  if [ $? -ne 0 ]; then
       ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.

Line 97:
   ln -sf $1 fzf)
          ^-- SC2086: Double quote to prevent globbing and word splitting.

Line 98:
  if [ $? -ne 0 ]; then
       ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.

Line 115:
  command -v curl > /dev/null && curl -fL $1 | tar -xz
                                          ^-- SC2086: Double quote to prevent globbing and word splitting.

Line 119:
  command -v wget > /dev/null && wget -O - $1 | tar -xz
                                           ^-- SC2086: Double quote to prevent globbing and word splitting.

Line 129:
    if [ -x "$fzf_base"/bin/$1 ]; then
                            ^-- SC2086: Double quote to prevent globbing and word splitting.

Line 130:
      symlink $1 && check_binary && return
              ^-- SC2086: Double quote to prevent globbing and word splitting.

Line 135:
  if [ $? -ne 0 ]; then
       ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.

Line 142:
  if ! (try_curl $url || try_wget $url); then
                 ^-- SC2086: Double quote to prevent globbing and word splitting.
                                  ^-- SC2086: Double quote to prevent globbing and word splitting.

Line 149:
  if [ ! -f $1 ]; then
            ^-- SC2086: Double quote to prevent globbing and word splitting.

Line 154:
  chmod +x $1 && symlink $1 && check_binary
           ^-- SC2086: Double quote to prevent globbing and word splitting.
                         ^-- SC2086: Double quote to prevent globbing and word splitting.

Line 178:
  if [ $? -ne 0 ]; then
       ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.

Line 187:
    [ $? -eq 0 ] && ruby=$system_ruby
      ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.

Line 195:
  if [ $? -eq 0 ]; then
       ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.

Line 205:
    if [ $? -ne 0 ]; then
         ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.

Line 218:
  if [ $? -eq 0 ]; then
       ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.

Line 221:
    if [ $? -eq 0 ]; then
         ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.

Line 282:
shells=$([ $has_zsh -eq 1 ] && echo "bash zsh" || echo "bash")
           ^-- SC2086: Double quote to prevent globbing and word splitting.

Line 297:
  cat > $src << EOF
        ^-- SC2086: Double quote to prevent globbing and word splitting.

Line 324:
if [ $has_fish -eq 1 ]; then
     ^-- SC2086: Double quote to prevent globbing and word splitting.

Line 330:
  [ $? -eq 0 ] && echo "OK" || echo "Failed"
    ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.

Line 363:
    lno=$(\grep -nF "$line" "$file" | sed 's/:.*//' | tr '\n' ' ')
          ^-- SC1001: This \g will be a regular 'g' in this context.

Line 365:
    lno=$(\grep -nF "$pat" "$file" | sed 's/:.*//' | tr '\n' ' ')
          ^-- SC1001: This \g will be a regular 'g' in this context.

Line 370:
    if [ $update -eq 1 ]; then
         ^-- SC2086: Double quote to prevent globbing and word splitting.

Line 389:
  [ $shell = zsh ] && dest=${ZDOTDIR:-~}/.zshrc || dest=~/.bashrc
    ^-- SC2086: Double quote to prevent globbing and word splitting.

Line 390:
  append_line $update_config "[ -f ~/.fzf.${shell} ] && source ~/.fzf.${shell}" "$dest" "~/.fzf.${shell}"
                                                                                ^-- SC2088: Tilde does not expand in quotes. Use $HOME.

Line 393:
if [ $key_bindings -eq 1 ] && [ $has_fish -eq 1 ]; then
                                ^-- SC2086: Double quote to prevent globbing and word splitting.

Line 401:
  [ $has_zsh  -eq 1 ] && echo "   source ${ZDOTDIR:-~}/.zshrc   # zsh"
    ^-- SC2086: Double quote to prevent globbing and word splitting.

Line 402:
  [ $has_fish -eq 1 ] && [ $key_bindings -eq 1 ] && echo '   fzf_key_bindings  # fish'
    ^-- SC2086: Double quote to prevent globbing and word splitting.

(You can run it on http://www.shellcheck.net/ )


Add Anytime and Until

This adds Anytime and Until nodes. We've avoided them so far as the semantics are trickier, but I've included them here in favour of adding complexity to Observation #13 . cc @leonidr-da
There are still some bits that are unimplemented - you'll get warnings when you build - notably, the lifecycle operation. I'm currently working on fixing #10 which will change that operation, so would hold off refactoring lifecycle until that's been resolved (the refactor should make it easier to work with it, hopefully (!).

I've realised that we need to think about adding a function to prune expired branches. This wasn't really necessary so far with the way we implemented lifecycle - all the primitives expired at acquisition time, I think. However, at least for Until this is not the case.
This will probably be done by having a new pruneExpired : t -> Claim -> Claim, and also a lifecycleAndExpire that does everything in a single step.

In general banking terminology, to "lifecycle" is also to get rid of things that have expired.

I've committed a preview of the refactoring I've done on lifecycling.
Functionality
I've split the old lifecycle function into three new API functions, following discussion with @leonidr-da .

settle, which does the same as the old function, but aborts on Or nodes now. i.e. users must first get rid of those nodes using the new function ...
exercise, which takes a tree as an argument, and replaces any matching Or's with this tree. This is also used to resolve an Anytime node (i.e. exercise (Anytime c) -> c.
expire. This is used to prune any branches that have expired, particularly Until.

This still leaves it up to the implementer to use these correctly. E.g., exercise should only be used by the bearer, and needs to be run before settle.
With this new set-up we should now be able to handle option exercises much better, and also support Anytime and Until fully.
Implementation
I've split the old lifecycle' function into a number of different functions, to make it easier to reason about the different effects:

lazily'. This doesn't transform the tree in any way; it needs to be pre-composed with other functions, to 'short-circuit' the traversal when a condition is false. Now that this logic is no longer in the other functions, you must remember to first apply this function; otherwise e.g. running settle' on it's own will settle all nodes in the tree, not only the current ones.
settle' which has the Writer monad for logging One leaves that need to be settled.
exercise' which replaces Or and Anytimes with the passed-in branches.

There are a couple more. But the point now is that each of these functions is succinct, easy to reason about, and this means that we can test these separate parts independently.
Performance wise, the traversals are still O(n), as all the functions are fused together in calls to apoParaM. There's probably some overhead for the sequencing steps, but I'm hoping this is minimal.

I like the enthusiasm of this approach but I am still a bit confused. In my mind the intent of a lifecycle function is to advance the claim; to convert the claim into payments/obligations and a resulting claim. You've previously identified the two inputs into this process

The state of the world. A way to reify observations.
Potential exercise instructions.

I am not certain why we need to decompose lifecycle into three methods. Your choice of names (ex. settle, expire) is also problematic as they already have overloaded meanings. Trades settle, not the instrument within a trade. (Most) Bonds do not expire they mature.
Lastly, I think that lifecycling should be lazy by default. We should not traverse the whole tree unless the claim compels us to.

I am not certain why we need to decompose lifecycle into three methods.

After reading some of your feedback, I think I'm beginning to come around to your way of thinking about this.
If I get you correctly, the two parties will take turns to lifecycle the instrument, peeling off layers of the Claim until they can no longer proceed. For example, until a (false) When, Give or a Or node is reached. Then the other party takes up the lifecycling. Is this correct?

Your choice of names (ex. settle, expire) is also problematic as they already have overloaded meanings. Trades settle, not the instrument within a trade. (Most) Bonds do not expire they mature.

Noted. I'll think about it some more. Maybe keep lifecycle for settle. And perhaps elect for exercise.

Lastly, I think that lifecycling should be lazy by default. We should not traverse the whole tree unless the claim compels us to.

I agree.

Then the other party takes up the lifecycling. Is this correct?

As I said in another part: I think this is where no one solution will handle all situations. For true trustless defi one should stop evaluation. For a custodian case, the custodian should mandate instructions from the client (s) and a default action otherwise.

@chrisnorris-da this is now in a state which could be merged. There's still stuff missing, notably:

Implement LIfecycle.expire function. This handles e.g. American options that haven't been exercised. It's not crucial as you won't be able to exercise them past expiry, but it's untidy as you can't replace the claims with a Zero.
Handling of Give node. The idea will be that the Lifecycle.exercise will also return a value (probably a boolean) indicating who exercised the choice. It's then up to the implementer to check authorization. Currently an option can be Lifecycle.exercised, but there is no way of knowing who was the 'owner' of the Or/Anytime node that was exercised.
I'm thinking of swapping around the arguments of Lifecycle.Result, just so you can fold over the resulting tree.
Thinking of swapping the arguments of Until constructor, so you can write e.g.

Anytime (after t) _ `Until` maturity

And some general cleanup


fix: Removed serial keyword from mkdocs.yml file

Proposed changes
Modified the metadata to remove "serial" keyword from the preview link
https://tekhsi.readthedocs.io/stable/
Types of changes
What types of changes does your code introduce?
Put an x in the boxes that apply

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Functionality update (non-breaking change which updates or changes existing functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] CI/CD update (an update to the CI/CD workflows, scripts, and/or configurations)
[x] Documentation update (an update to enhance the user experience when reading through the docs)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[x] I have followed the guidelines in the CONTRIBUTING document
[x] I have signed the CLA
[x] I have checked to ensure there aren't other open Pull Requests for the same update/change
[ ] I have created (or updated) an Issue to track the status of this update/change and updated the link in this PR description (see above in the Proposed changes section) using the wording Addresses #<issue_number>
[x] I have performed a self-review of my code
[x] My code follows the style guidelines of this project
[x] I have commented my code, particularly in hard-to-understand areas
[x] Basic linting passes locally with my changes
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] I have added necessary documentation (if appropriate)
[ ] I have updated the Changelog with a brief description of my changes

Please update the main PR description.

The summary also needs to be updated to better indicate what was fixed.

Please sign the commit


Replace GPG key ID with current one

… from RStudio site: https://cran.rstudio.com/bin/linux/ubuntu/README.html#secure-apt
fixes #8

Oh wow, completely forgot this PR, so sorry. Maybe I didn't even see it. Anyway #26 removed this part of the Dockerfile so we can close this one :sweat_smile: Sorry again, and thanks for your contribution!


ingress: Add conformance test for KPR=false

This is to test the combination of kubeProxyReplacement=false, but with nodePort.enabled=true.

/test


IO/Storage: CPU-bound and cross-thread scheduling

This introduces the concept of an intent enum for Storage.on_next_tick which controls how the NextTick is scheduled. The enum includes: yield which defaults to IO.timeout(0) as usual, cpu_work which runs the NextTick on a thread pool, and cpu_inject which brings the NextTick back from a random (pool) thread to the IO thread. This is done with tb_client.Signal which now uses proper IO events (eventfd, EVFILT_USER, PostQueuedCompletionStatus) instead of a hacky, local TCP server.
The following LSM bits now utilize cpu_work to offload heavy tasks from the main thread:

Sorting of TableMutable to TableImmutable.
TableBuilder.data_block_finish in Compaction (this calls vsr.calculate_checksum_body)
Grid.read_block_validate after a Storage.read_sectors occurs (this also calls vsr.calculate_checksum_body).

Pre-merge checklist
Performance:

[x] Compare zig benchmark on linux before and after this pr.# benchmark results before
1223 batches in 135.30 s
load offered = 1000000 tx/s
load accepted = 73908 tx/s
batch latency p00 = 0 ms
batch latency p10 = 28 ms
batch latency p20 = 29 ms
batch latency p30 = 30 ms
batch latency p40 = 30 ms
batch latency p50 = 31 ms
batch latency p60 = 32 ms
batch latency p70 = 33 ms
batch latency p80 = 34 ms
batch latency p90 = 36 ms
batch latency p100 = 5517 ms
transfer latency p00 = 0 ms
transfer latency p10 = 4166 ms
transfer latency p20 = 10805 ms
transfer latency p30 = 21106 ms
transfer latency p40 = 34218 ms
transfer latency p50 = 49408 ms
transfer latency p60 = 64719 ms
transfer latency p70 = 74813 ms
transfer latency p80 = 90404 ms
transfer latency p90 = 106386 ms
transfer latency p100 = 125316 ms

# benchmark results after
1223 batches in 82.40 s
load offered = 1000000 tx/s
load accepted = 121362 tx/s
batch latency p00 = 1 ms
batch latency p10 = 27 ms
batch latency p20 = 28 ms
batch latency p30 = 29 ms
batch latency p40 = 30 ms
batch latency p50 = 32 ms
batch latency p60 = 33 ms
batch latency p70 = 34 ms
batch latency p80 = 35 ms
batch latency p90 = 37 ms
batch latency p100 = 3281 ms
transfer latency p00 = 1 ms
transfer latency p10 = 2101 ms
transfer latency p20 = 5877 ms
transfer latency p30 = 11111 ms
transfer latency p40 = 17961 ms
transfer latency p50 = 26298 ms
transfer latency p60 = 35204 ms
transfer latency p70 = 44132 ms
transfer latency p80 = 53201 ms
transfer latency p90 = 62509 ms
transfer latency p100 = 72410 ms

@kprotty I added some tracing.

Utilization is kind of low. I wonder if that's due to the control plane not supplying enough work, or to the overhead of communication.

tracer is not thread-safe because of https://github.com/tigerbeetledb/tigerbeetle/blob/6e4ed3bacdb865f1b71979a26ac601cdce7c7875//src/tracer.zig#L337. Since the yield and thread-pool queue are traced, this can cause UB and crashes when tracing benchmarks.

We decided to focus on improving single threaded performance first. There's still a few more things to implement there.


SDL: Text rendered using a text session is missing kerning.

Kerning is added when glyphs are however, it seems to not work properly on some fonts which when rendered without using a session.

SDL platform is deprecated.


Introduction to Udoo X86 II Ultra

Article checklist
ATTENTION: In your PR - add the ISSUE (topic form) # that this PR corresponds to. You can do this by also adding a comment that states "This fixes #(enter your Idea Content Form #)" to link and close your Idea Content (issue) when the PR is merged.
NOTE: (Please ensure that you have only one open issue + linked pull request at a time. This will ensure that we complete the article in a timely manner from inception to publishing.)
If you have not already please go over our Resources Page for more tips and tricks on how to improve our overall technical writing.
Preliminary Checks - Formatting and Structure

[x] Is the article you are submitting an in-depth and unique article? Does it go beyond what is in the official docs and what is covered in other blog sites. See these articles as examples.
[x] Does your article follow any of the suggested structure formats? - see example formats
[x] Is your article properly formatted in Markdown? - see Github Markdown guide
[x] Have you used the correct folder and file structure? - see Contribution Guidelines
[x] Is your article over 750 words? - Tool: Wordcounter.net
[x] Have you used our preferred heading structure? - H3 (###) and up
[x] Does your article provide enough value and detail about your topic? - Articles should be clear, accurate, and fully explained.
[x] Can your article be understood by beginners? - Assume the audience is smart but has no prior exposure to the common terminology in your article.
[x] Have you included a hero image that is 600x400 pixels and have the copyright to use it? - Tools: Pixlr Image Editor for resizing and Unsplash for Creative Commons images
[x] In your PR - add a comment that states "This fixes #(enter your Idea Content Form #)" to link and close your Idea Content (issue) when the PR is merged.

Grammar & plagiarism checks

[x] Have you spellchecked and grammar checked your article? - Tools: Write&Improve - ProWritingAid -  Grammarly
[x] Please place your article through a 3rd party plagiarism checker? We suggest using Quetext, this tool is free and has a daily limit. We typically accept articles with 10% or less.
[x] Have you checked your article for readability? - Tool: Hemmingway
[ ] Have you added sources for quotes and images that aren't yours?

Technical checks

[ ] Are your code snippets properly formatted for syntax highlighting - see Syntax guide

Contribution guidelines
For first-time contributors and for more details, see Contributing Guidelines
This fixes #2982

Greetings @sheldonaswani,
Welcome to Section's Eng-Ed program. We're excited to have you onboard. Thank you for submitting your first article for review.
I'll be reviewing it to check and fix any errors before being published!

Greaetings @Ericgacoki
Thank you. I am happy to work with you.

@sheldonaswani, I have made several changes to improve the flow of your article. Kindly check them out.

@sheldonaswani, push the changes you've made. You say you've addressed the suggestions but there's no commit to verify that.

@Ericgacoki Kindly check i have already committed.

@sheldonaswani
Upon a quick glance this article seems rather short on substance.
It seems rather light.
cc @Ericgacoki

plagiarism check done

Hey @sheldonaswani,
Upon further discussion with other reviewers, it has come to our attention that your article does not meet the required standards to be published. Simply because this article has been covered in detail by various sites, it's relatively short and conveys quite minimal information.
According to our guidelines:
"We lean towards content that offers an original viewpoint/approach around programming-oriented topics."
What's next?

You can go ahead and build a viable project based on UDOO X86 II Ultra and the embedded Arduino board.
If (1) seems difficult to you or for some reason, you can't be able to do so at the moment, we'll permanently close this PR and ask you to suggest another topic.

@sheldonaswani, Please let us know what you think (based on the above options). Thank you!
cc: @hectorkambow

Good evening @Ericgacoki
I can change  the topic to ###Udoo x86 Ultra compatibility with arduino
Let me know if this is right?
cc: @hectorkambow

How will that add value to this article?

Does changing the topic mean you'll change the whole content as well?

I am changing my topic.


Implement com.google.fonts/check/metadata/has_tags

Description
Fixes issue #4465
Checklist

[X] update CHANGELOG.md
[x] wait for the tests to pass
[ ] request a review

I don't know what's happened to me this morning. I'm usually against making checks fails but this one feels appropriate.

Two reasons why I went for a WARN:

Nothing breaks. If WARN doesn't mean "this isn't a disaster but you should still fix it", then it doesn't mean anything.
It's entirely appropriate for a new font not to have a tag in the spreadsheet before it's onboarded.

SGTM. I feel like we may have to organise family tagging sessions periodically so they don't get stale.

I think this is too lax

SGTM. I feel like we may have to organise family tagging sessions periodically so they don't get stale.

This is not what I've said; we must not allow families to reach prod without tags, starting today.


use deep of tesseract

How can I deeply tess?
im lang persion but not good
example:

He does not find everyone

Please respect guidelines for posting issue: use tesseract user forum for asking questions/support.
Don't forget to read documentation first.


Test token refresh with and without scopes

During token refresh, the SMART App Launch spec states that a scope parameter is optional -- i.e., that the client may include or omit it. Inferno should test both ways to ensure that servers can handle the presence + absence of this scope parameter. (We've seen servers in the wild that only work in one case or the other, so it'd be good to catch this in testing.)

Thanks @jmandel, we are working on this in PR #248.
There are a couple of minor discrepancies between the initial access token code exchange and the token refresh that we now see.  We are updating the test to reflect this differences, but let me know if I'm misreading the spec because I wasn't expecting them:

The expires_in property is required in the token refresh response, but is only recommended in the access token exchange.
The access token exchange requires Pragma and Cache-Control headers in the response, but the refresh token exchange does not

Thanks @arscan for the response + close read.
Re: expires_in property and Pragma + Cache-Control headers, it looks to me like the spec should have made all three required for all access token responses (irrespective of grant_type). It's a good issue for us to take up in the next SMART App Launch publication, and I've created https://github.com/HL7/smart-app-launch/issues/293 to capture it (though I'll note we don't currently have an update in-progress).
In the meantime, I suppose a good behavior for Inferno would be to follow the spec as currently written when generating formal errors (which is slightly weaker than ideal), and perhaps generate warnings in the other cases.


.get_csrf_from_body() fails with Input should be a valid dictionary or instance of Body

The current implementation of .get_csrf_from_body() doesn't seem to work, at least not with latest Pydantic, as it does not (automatically) coerce a string into a dict. If the form wasn't read before the call to csrf_protect.validate_csrf(request), request._form is None and .get_csrf_from_body() fails with Input should be a valid dictionary or instance of Body.
https://github.com/aekasitt/fastapi-csrf-protect/pull/20 should fix it, but it wasn't merged for some reason.

fixed in version 0.3.7
fix: library used deprecated methods by pydantic, changed that to modern alternatives
reason why PR#20 was not merged and merged PR#21 instead was written in those PRs
tl;dr: pydantic does as good of a job at parsing body data with a few tweaks, saw no reason to expand dependencies

Thank you for raising the issue.

Regarding rejecting #20 and accepting #21
We avoided CVE-2024-53981 for not adding python-multipart to our dependencies.


Storybook >Components>Cache>Default> Text spacing issues

Describe the bug

Cache>Default> Text spacing issues.
Cache>Pagination> Text spacing issues.

To Reproduce
Steps to reproduce the behavior:

Go to 'Components'
Click on 'Cache'
Click on 'Default'

Screenshots

Desktop (please complete the following information):
-OS: [Windows 10 Enterprise]
-Browser [ edge]
-Version [ 125.0.2535.92]
Smartphone (please complete the following information):NA

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Completed

Version 1.1.7


updated dropdmg (3.2.9)

Thank you for the contribution. It was merged directly as b09cb3ace9c8266b0fe517fa2c14fe2dc22dc0fb to keep commit history cleaner. Your contribution is still credited to you.


Actuatlize info about modules in getting-started

At this moment the support of esm in browsers is pretty decent — 87%.

fixed

@montogeek ping

Thanks!


Sample AppleScript implementation of quarantining

[x] Have you followed the guidelines in our Contributing document?
[ ] Have you checked to ensure there aren't other open Pull Requests for the same change? See discussion
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example. amyspark has
[x] Have you successfully run brew style with your changes locally?
[x] Have you successfully run brew tests with your changes locally?

See discussion.
Does not yet contain latest availability checks. Edit: Rebased.

Thanks for this @claui but think we're 👍 on the Swift version now.


Change hr element to comply with XML syntax

XML syntax specifies that a self-closing element should be <element />.
Also, this PR tests whether the CI will fail.

I reverted the changes. The / is completely unnecessary in HTML5 syntax.
Also, this PR proves that my CI pipeline is properly reporting failed tests~


Add support for Settings Revision History

Client and server changes to support displaying and comparing changes to Settings.
Fixes #5187

Adds a new API to get the settings history
Adds a new client page to display this data.

See issue above for steps on how to test.

a couple things on the design / ux side (is there a plan to run this by design for a second iteration?)

the history link appears even for areas where there are no revisions
the flags display beneath the differ is a little confusing, may want to think about a better way to display that info

💯 Agreed.
Right now our users are only internal. Before we expose these pages to customers, we'd need a full UX round of cleanup and reorganization.
I think I put this in the comments, but History shows up even without any settings for a section because there might be items that were deleted.
The flags look like an afterthought because they were. I noticed while writing unit tests that the IsDeleted looked wrong on some items, so decided to surfacing it. Wasn't sure the best place for it, so I just stuck it at the bottom for now.


Add Inkscape to Images Category

Project URL
https://gitlab.com/inkscape/inkscape
Category
Images
Description
Adding Inkscape to the Images category
Why it should be included to Awesome macOS open source applications  (optional)
Checklist

[x] Edit applications.json instead of README.md.
[x] Only one project/change is in this pull request
[x] Screenshots(s) added if any
[x] Has a commit from less than 2 years ago
[x] Has a clear README in English

@zwhitten Thank you! 🚀


Sui Code Bug or Feature Request

Steps to Reproduce Issue
Fill this in with the concrete steps needed to reproduce the bug. When providing code in the reproduction steps, use the smallest snippet of code that demonstrates the issue, removing any extraneous details.
e.g.

Call function .
Use return value and call .

Expected Result
Specify what outcome you expected should have resulted, but didn't.
e.g.
Expected  to return 42.
Actual Result
Specify what the actual unexpected outcome was.
e.g.
 returned 41.
System Information

OS:
Compiler:

Hi pagareritesh,
I assume you were trying out the issue creation process here?
Thanks for deleting or closing this issue if it's not required anymore.
,KR GCB


Not using requested Sphinx version

My build seems to be running Sphinx v1.3.5 although in my requirements file I specify sphinx>=1.4.0. How can I force newer Sphinx version? Building my docs needs Sphinx 1.4.0 or newer. Thanks for any help!
In the build logs, I can see the following line:
Requirement already satisfied (use --upgrade to upgrade): sphinx>=1.4.0 in /home/docs/checkouts/readthedocs.org/user_builds/bayespy/envs/latest/lib/python3.4/site-packages (from -r doc/requirements_rtd.txt (line 1))

But still the doc building begins with:
Running Sphinx v1.3.5

Details

Project: bayespy
Build #: 3923030

https://readthedocs.org/projects/bayespy/builds/3923030/

Any workaround ideas for this? I still haven't figured out any working setting.

I tried specifying sphinx>=1.4.0 in both the requirements file and setup.py, and it seems like it does install the latest 1.4.1 but for some reason it still keeps using 1.3.5 when building the docs:
https://readthedocs.org/projects/bayespy/builds/3969160/

I'm not sure what exactly fixed this issue but it seems to work now. I wiped my environments and put the requirement to setup.py and chose to install my package to the virtual environment in the settings.

This bugs should be reopened, RTD fails to install correct version of sphinx, even if the project specifies it.
See https://readthedocs.org/projects/jira/builds/6905467/

Resolved on https://github.com/rtfd/readthedocs.org/issues/3734#issuecomment-373941644


Propagate "scalability" when using peeling for vectorisation

Adds the missing logic to enable scalable vectorisation when using
CPUDoubleTilingPeelingExpert (i.e. peeling). The default strategy for
SVE remains "masking", but that will likely be updated to peeling in the
near future (to avoid calculating masks).
The default value for -iree-codegen-enable-vector-peeling is updated
to false. The corresponding bool can be used to check whether the
default is being overriden by the user. This enables testing the peeling
config generation for SVE  - with the default set to true that
wouldn't be possible. We could consider replacing:
-iree-codegen-enable-vector-peeling

with e.g.:
-iree-codegen-select-pproc-strategy=peeling

That would allow more flexibility and facilitate better testing
coverage.

The existing flag is more about "allow peeling in the optimization strategies when the heuristics decide to use it" than enforcing peeling as the only strategy. I think we should rename/improve the doc for this flag.

OK, thanks for the clarification!

I also like the idea of having a flag to enforce one strategy. As you said, having that for testing would be really good. Can we go with the extra flag approach then?

Yup, I will be sending an update shortly. In general, it sounds like we want to consider two cases:

the user specifies the pre-processing strategy with a CL flag and that should be respected,
when no flag is used, we should rely on the compiler heuristics.

And then, on top of that, we'd have something specifically for peeling.

the user specifies the pre-processing strategy with a CL flag and that should be respected,

I guess the problem is... to which ops should the user strategy be applied? Mostly because not all the ops support all the strategies and not all the ops may perform well on the same strategy. Not sure if we can have something that is powerful enough to use beyond testing but would definitely like to hear what you have in mind!

Not sure if we can have something that is powerful enough to use beyond testing but would definitely like to hear what you have in mind!

Indeed and that's basically what I had in mind - the flags would only be used to facilitate testing.

This PR seems to be doing two things... setting configuration for peeling strategy and also disabling peeling through command line.

Yeah, it's grown a bit. I will split it into two.

Does scalable vector work prefer the masking strategy?

Masking comes at a price and is better avoided. Peeling with the remainder loop masked is going to perform much better. However, I need a few more changes before I can make the switch.

This PR seems to be doing two things... setting configuration for peeling strategy and also disabling peeling through command line.

Yeah, it's grown a bit. I will split it into two.

Does scalable vector work prefer the masking strategy?

Masking comes at a price and is better avoided. Peeling with the remainder loop masked is going to perform much better. However, I need a few more changes before I can make the switch.

Thats interesting. It would be very informative to see some numbers if you can share them (if and when you have them. I am just curious).

Thats interesting. It would be very informative to see some numbers if you can share them (if and when you have them. I am just curious).

This will obviously be quite nuanced (i.e. depend on the microarchitecture etc), but you can check Arm® Neoverse™ V1 Software Optimization Guide and compare throughput for:

whilelt (predicated loop), and
cmp - unpredictable loop.

Now, this happens to be micro-arch that I am benchmarking on and so far peeling looks quite promising. This might (and likely will be) different for other implementations. Long term we are interested in a framework that allows us to easily switch between different approaches. So I care about both Masking and Peeling. However, ATM I am focusing on a best possible performance for a particular implementation.
Btw, I will be posting some numbers (at least relative) when updating the IREE config.

I think your rebase is broken.  Maybe you can try
git rebase -i main # Only choose your commit
wget https://patch-diff.githubusercontent.com/raw/openxla/iree/pull/16041.patch -O /tmp/patch
git apply /tmp/patch
git commit -m "cherry-pick https://github.com/openxla/iree/pull/16041"
git rebase -i main # and swap two commits

hmm this might fix conflicts in a bad way.  Maybe you can try
git rebase -i main # Only choose your commit
wget https://patch-diff.githubusercontent.com/raw/openxla/iree/pull/16041.patch -O /tmp/patch
git apply /tmp/patch
git commit -m "cherry-pick https://github.com/openxla/iree/pull/16041"
git rebase -i main # and swap two commits

hmm this might fix conflicts in a bad way.

That's a neat trick, thanks!


Posgresql for framework development

As a developer, I want to run all the tests with the least amount of external dependencies, so that I can contribute to a small part of the framework without bothering about the rest so much and not breaking it.
Current:

There is a test postgres.test.ts requiring the installation of PostgreSQL database (if I understand it correctly).

Expected:

We need to add a description of how to install Postgres dependencies to DEVREADME.md or we need to figure out how to get rid of it by splitting tests into some separate groups.

Related issue: https://github.com/hyperledger/aries-framework-javascript/issues/758


Socket timeout or query timeout setting parameter

I need to set a timeout for query processing( execution + reading data) time, I tried the parameters "query_timeout" and "connect_timeout" with no success. Any solution for this please?
This is my test code:
@test
void testDriverTimeout(){
Properties clickhouseProperties = new Properties();
clickhouseProperties.setProperty("user", "");
clickhouseProperties.setProperty("password", "");
clickhouseProperties.setProperty("query_timeout", "1");// one second
clickhouseProperties.setProperty("connect_timeout", "3"); // 3 second
DataSource balancedCkDs = new BalancedClickhouseDataSource("**", clickhouseProperties);
List<String> result = new ArrayList<>();

try (Connection conn1 = balancedCkDs.getConnection()) {
	PreparedStatement ps = conn1.prepareStatement("blab blab);
	long start1 = System.currentTimeMillis();
	ResultSet rs = ps.executeQuery();
	long end1 = System.currentTimeMillis();
	System.out.println("Elapsed Time in seconds: "+ (end1-start1)/1000);

	start1 = System.currentTimeMillis();
	while(rs.next()){
		result.add(rs.getString("external_id"));
	}
	end1 = System.currentTimeMillis();
	System.out.println("Elapsed Time for reading data in seconds: "+ (end1-start1)/1000);
}catch (Exception ex){
	System.out.println(ex);
}

System.out.println(result);

}
Output:
Elapsed Time for query execution in seconds: 0
Elapsed Time for reading data in seconds: 73
No timeout exception thrown!

You should use max_execution_time

System is logging this:
09:23:13.880 [main] WARN com.github.housepower.jdbc.ClickhouseJdbcUrlParser - ignore undefined setting: max_execution_time=3
Indeed the class SettingKey does not contain this parameter. I'm using the version 2.6.4 which is the last.

com.github.housepower
clickhouse-native-jdbc-shaded
2.6.4

Hi,
adding the parameter "max_execution_time" as a custom SettingKey is causing a DB error as follows:
com.github.housepower.exception.ClickHouseSQLException: Software caused connection abort: socket write error
[].
Thanks for support

How about using:
 SettingKey key = SettingKey.builder()
            .withName("max_execution_time")
            .withType(SettingType.Int64)
            .build();

        Properties props = new Properties();
        ClickHouseConfig config = ClickHouseConfig.Builder.builder()
            .withProperties(props)
            .withSetting(key, 1)
            .withJdbcUrl(String.format(Locale.ROOT, "tcp:clickhouse://%s:%s", CK_HOST, CK_PORT))
            .build();

        String jdbcUrl = config.jdbcUrl();

Now it's working
Last error thrown by the system was relative to this line
.withType(SettingType.Int64), I wrote SettingType.UTF8 instead of SettingType.Int64. My new code is like this:
SettingKey userDefined = SettingKey.builder()
.withName("max_execution_time")
.withType(SettingType.Int64)
.build();
Map<SettingKey, Serializable> settings = new HashMap<>();
settings.put(SettingKey.user,"");
settings.put(SettingKey.password,"");
settings.put(userDefined,10L);
	DataSource balancedCkDs = new BalancedClickhouseDataSource(*", settings);

Thank you.


Make client MI available to wallet MI

To remove duplicates and have access to more methods

Won't do


chore: Prepare for the v0.9.0 release

@gmpinder when you're ready
:bullettrain_front: v0.9.0 merge train

https://github.com/blue-build/modules/pull/369
all CLI updates and release
https://github.com/blue-build/legacy-template/pull/260 (bypass branch protections)
https://github.com/blue-build/website/pull/69

P.S. I couldn't get rechunk working in the GHA, and as such didn't put it in the blog post yet either. If you want to delay the release to figure that out I'm fine with that. Everything else is ready.

You should be good to merge the module changes ahead of time so that way we can test out the builds in this particular pull request. The CLI's current patch should already have everything it needs for the JQ migration.

Looks like I have some legacy tests that I need to remove. I'll take care of that later today.


NOTES PAGE

NOTES PAGE
Acceptance Criteria
GIVEN a note-taking application
WHEN I click on the link to the notes page
THEN I am presented with a page with existing notes listed in the left-hand column, plus empty fields to enter a new note title and the note’s text in the right-hand column

Notes page is linked


Fix to enable background updates when NSLocationWhenInUseUsageDescrip…

…tion is set.
Problem: (iOS)
Location updates are not working in background when user allows When in use authorization, but works when user allows Always allow.
In Geolocation/RCTLocationObserver.m, setAllowsBackgroundLocationUpdates are set only for Always allow case, but native iOS allows us to setAllowsBackgroundLocationUpdates even for When in use authorization.
Solution:
setAllowsBackgroundLocationUpdates is now set for both cases.
Test Plan:
Target: iOS 11+
Permissions:
-> Permissions.request('location', { type: 'always' })
-> geolocation.watchPosition();
-> Background the application and you would see location updates works even when app is in background. On iOS 11+ a blue banner on top is displayed showing "Your application is Actively Using Your Location".
Release Notes:
Help reviewers and the release process by writing your own release notes. See below for an example.
[CATEGORY] [TYPE] [LOCATION] - Message

Warnings

:warning:

:clipboard: Release Notes - This PR may have incorrectly formatted Release Notes.

  Generated by :no_entry_sign: dangerJS


if database support multi card （Ampere 3090）

I think it's safe to say that support is coming

Excellent.
Looking forward to the release as soon as possible.

@cmdares
I meant the support for Ampere's architecture is coming; we support multiple GPUs on a system since forever


[CI] add java13/14/15 ci

What do these changes do?
add java13/14/15 ci

Related issue number

Closes #680
Check code requirements

[ ] tests added / passed (if needed)
[ ] Ensure all linting tests pass, see here for how to run them

JDK14 is not provided by github action


i18n(fr): add guides/deploy/fleek.mdx

Description (required)
Translate in French guides/deploy/fleek.mdx (see #9457)

Related issues & labels (optional)

Suggested label: i18n

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

fr
guides/deploy/fleek.mdx
Localization added, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


Two IEnumerable collide

Hi,
My generated container has two separate IEnumerable sets of services. It looks like Jab tries to create two (internal) properties named "_IEnumerable" both with the same name.
I'm getting this error message:
ServiceContainer.Generated.cs(115,98,115,110): error CS0102: The type 'ServiceContainer' already contains a definition for '_IEnumerable'

I will look further into this issue tomorrow.

Should be fixed in https://www.nuget.org/packages/Jab/0.6.1


add bookmark project button

What does this PR do and why?
Provide a description of what this PR does. Link to any relevant GitHub issues, Notion tasks or Discord discussions.
Screenshots or screen recordings
If applicable, provide screenshots or screen recordings to demonstrate the changes.
Acceptance checklist

[ ] I have evaluated the Approval Guidelines for this PR.
[ ] I have tested this PR in all supported browsers.
[ ] I have tested this PR in dark mode and light mode (if applicable).

Current dependencies on/for this PR:

main

PR #2280

PR #2281

PR #2282   👈

This comment was auto-generated by Graphite.


ServiceBusReceiverAsyncClient: When creating Multiple receiver from same builder: last message does not arrive

When creating Multiple receiver from same builder : The last message does not arrive and receiver timeout .
This only fails for non-session entity and works fine for session enabled entity.
Test to replicate this issue
ServiceBusReceiverAsyncClientIntegrationTest:multipleReceiverAndClientComplete
Error :
VerifySubscriber timed out on reactor.core.publisher.FluxLimitRequest

Tested this . This is not an error, upon more testing, since first receiver pre-fetch message and keep a lock , so the second receiver on same queue does not get this message in time.


httpc - empty content-type header on delete without body

#147 and its workaround (https://github.com/teamon/tesla/commit/63363f16d5d78141477672d375442edf29d902d3) fixes run time error, but still httpc passes empty Content-Type header (instead of omitting Content-Type header completely), and servers may not accept such requests.
httpc is fixed but it's only in 21, which elixir does not support yet.

https://bugs.erlang.org/browse/ERL-536
https://github.com/erlang/otp/commit/fd2af907bc854e5dc92fbd71efdab096be572573

Is it ever possible to workaround it from Tesla?

Unfortunately I don't think we can do anything about it since this happens on the httpc level :|

That was my guess :(
There are several adaptor-specific issues (e.g. hackney timeout). What about listing them somewhere? Wiki page or README or adaptor module doc..

This is now fixed in OTP 21.


fx-cast-bridge: pin nodejs to version 18

Pins the nodejs to version 18 to fix the build.
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

CC @dtzWill

@ofborg eval

Result of nixpkgs-review pr 273768 run on x86_64-linux 1

1 package built:

fx-cast-bridge


Proposal: Route Namespacing

It would be nice for repetitive commands to have namespacing. For example, I'd like the following code:
robot.namespace /admin/, (admin) ->
  admin.reply /do a thing/, (res) ->
    # command replies to "hubot admin do a thing".

  admin.hear /let's have a party/, (res) ->
    # command replies to "admin let's have a party"

If people like it for inclusion into core, and we nail down an API, I can open a PR for it.

Oooh, I really like this idea. cc #873, where I had some related ideas, but this feels super clean.
Namespaces could automatically add a prefix to the listener IDs as well.

We may be able to combine #873 really nicely with this.
Perhaps some sort of context command, where all of the options you specified can be made in a declarative way.
For example, with my API proposal, you could do something like:
robot.namespace /admin/, (admin) ->
  admin.config "ADMIN_TOKEN", required: true, description: "Here's some token", validation: (value) ->
  admin.namespace /hosts/, (hosts) ->
    hosts.config "AWS_ACCESS_KEY", required: true

    hosts.preConfig (env, done) -> # preconfiguration, perhaps to retrieve information for the subroutes
      setupSomething (resp) ->
        env.region = resp.region
        done()

    hosts.respond /for tag (.*)=(.*)/, (msg) -> # respond/hear should wait for done callback if preConfig is defined
      label = res.match[1]
      value = res.match[2]
      aws.getHosts({region: msg.message.env.region, label: label, value: value}) # get context from higher namespaces
     .done (hosts) -> msg.reply(JSON.stringify hosts)

I'll think on this more, but first pass: namespaces should probably be strings instead of regular expressions. Prevents weird problems like overlapping namespaces and allows for easy lookup of a namespace (imagine spreading listeners in the same namespace across multiple files or even multiple modules)

:+1: on that.

I've got scripts that would benefit from this, but I think we can do even more. The usual pattern is:

Many commands start with a prefix.
All the commands use msg.finish().
There's a final command that displays help if the prefix was used but no previous command matched.

This helps with the first of those three, but not the second two related issues. How would you feel about special semantics for the "matches a prefix but no other command" case?

This helps with the first of those three, but not the second two related issues. How would you feel about special semantics for the "matches a prefix but no other command" case?

We already have a pattern for this in hubot core: catchAll. I don't think this often gets used though. In the earlier example:
    # hubot admin hosts for tag (label)=(value)
    hosts.catchAll (msg) -> # respond/hear should wait for done callback if preConfig is defined
      msg.send "I don't know what you mean by #{msg.message.text}, maybe try one of these?"
     # insert help output here.

@bkeepers this should probably go in the v3 brainstorming

@michaelansel thanks. I'm imagining that "Commands" on the roadmap would replace this feature. I'll get the evolution repo set up soon and we can talk through it.


Angular fixes

@fulv by the way, I tested the exercise with the last plone.restapi-angulat (1.2.4) and it works fine


/traveltocrossroads did not work for me

Got "you travelled" message, but still in farmland aftewards

@wstathis this seems to be closed with your branch


Tuner not able to find invocations for analysis

Problem
aws-lambda-live-tuner is not able to analyze invocations for a Lambda function, even though the function gets a lot of invocations (thousands in a couple of minutes). Checking CloudWatch we can see an ingest delay of ~8 minutes for the logs, increasing the wait time to 15 minutes did not resolve the problem

Found out that the tested Lambda function was using an alias.
The aws-lambda-live-tuner was updating the memory successfully, but did not adapt the alias. Therefore the alias which received the traffic, still had the old memory configuration.
Adding support for aliases will be added in #38

:tada: This issue has been resolved in version 0.7.4 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Strange compile cache

VSCode Version: master
OS Version: windows 64

Steps to Reproduce:

Add some code like /// <reference lib="es2015.collection" /> to "src/typings/new.d.ts"
Compile will fail

[22:16:48] Error: X:/kendryte-ide/node_modules/typescript/lib/lib.es2015.collection.d.ts(33,14): All declarations of 'prototype' must have identical modifiers.

Ok, bad try, revert everything to unchanged.
Compile again, still same error.
Try to delete X:/kendryte-ide/node_modules/typescript/lib/lib.es2015.collection.d.ts file
Compile again, still same error, even this file is not exists, no error report about missing file.

Is there any cache anywhere?? I tried restart from clean checkout, clear system $TEMP dir, but still reporting the same error.

the error suddenly gone... I will try again.

OK, I think this is out of scope far away, close here...


Sync with upstream

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 10 committers have signed the CLA.:white_check_mark: jbearer:x: OptimismBot:x: mergify[bot]:x: ajsutton:x: tynes:x: pcw109550:x: hamdiallam:x: refcell:x: clabby:x: mslipperYou have signed the CLA already but the status is still pending? Let us recheck it.


Different file paths returned depending on method of selection (Android 8)

I've just noticed something strange about picking files with the "file chooser" that this launches on Android 8..
in this scenario, I'm trying to import a JSON file that I've downloaded, so naturally it's currently sitting in my device's "Download" folder. when the file chooser opens, by default the left sidebar has the usual source options like "Images", "Videos", "Audio" and "Recent". after this it shows "Downloads" and "Documents" before listing other apps that can be used to choose a file.
if I close this sidebar and open the kebab menu in the top right corner, I have an option to "Show internal storage". after this, I now see another option below "Documents" that lists my device's name, providing access to my device internal storage. in this route, I simply open the "Download" folder and I see the exact same files as the "Downloads" shortcut in the sidebar.
this is where things get interesting... I put some console.log calls at key points to see what was going on, thereby ending up with the following code:
this.fileChooser.open().then((uri) => {
  console.log(`fileChooser.open() result: "${uri}"`);
  return this.filePath.resolveNativePath(uri).then((fileEntry) => {
    console.log(`filePath.resolveNativePath(uri) result: "${fileEntry}"`);
    let path = fileEntry.substring(0, fileEntry.lastIndexOf("/"));
    let file = fileEntry.substring(fileEntry.lastIndexOf("/") + 1, fileEntry.length);
    console.log(`about to call readAsText() with: "${path}" "${file}`);
    return this.file.readAsText(path, file).then((content) => { ... });
  });
}).

as for the different ways of choosing the file, this is what I discovered:
when selected via "Downloads" sidebar shortcut:

fileChooser.open() result: "content://com.android.providers.downloads.documents/document/raw%3A%2Fstorage%2Femulated%2F0%2FDownload%2Fcustom-folder%2Fmy-custom-file.json"
filePath.resolveNativePath(uri) result: "file:///storage/emulated/0/Download/my-custom-file.json"
about to call readAsText() with: "file:///storage/emulated/0/Download" "my-custom-file.json

when selected via "browse internal storage":

fileChooser.open() result: "content://com.android.providers.downloads.documents/document/raw%3A%2Fstorage%2Femulated%2F0%2FDownload%2Fcustom-folder%2Fmy-custom-file.json"
filePath.resolveNativePath(uri) result: "file:///storage/emulated/0/Download/custom-folder/my-custom-file.json"
about to call readAsText() with: "file:///storage/emulated/0/Download/custom-folder" "my-custom-file.json

from what I can see, the path is fine up to the point that I use cordova-plugin-filepath to resolveNativePath().. so is this a bug in this plugin or am I simply misunderstanding something here?

Hi
I've got the same problem. If fileChooser is used to open a file from downloads subfolder the subfolder is cut out.
content://com.android.providers.downloads.documents/document/raw%3A%2Fstorage%2Femulated%2F0%2FDownload%2Fapptest%2F9f143ca0-7893-11e9-a410-87bb962a3e2a.pdf
resolves to
file:///storage/emulated/0/Download/9f143ca0-7893-11e9-a410-87bb962a3e2a.pdf
If I use the internal storage it works correctly.

The same problem from @zigapeda the subfolder is been cut out from the result
"content://com.android.providers.downloads.documents/document/raw%3A%2Fstorage%2Femulated%2F0%2FDownload%2FTESTE%2FOutroNome.docx"
Returns:
"file:///storage/emulated/0/Download/OutroNome.docx"

Is there any workaround for subfolder issue?

Is there any workaround for subfolder issue?

I haven't found anything yet for this.. The app in which I discovered this behaviour simply includes a note in the user feedback message to suggest using a different "file browser" if file.readAsText fails to open the path returned from file.resolveLocalFilesystemUrl.
I've been working on other projects since then, so I haven't actually looked at this for a little while.. I still have a note of this in my backlog though, so when I get to this, if I do work out anything useful, I'll come post back here again.

decodeURI(content://.../raw) worked for me before fetching the nativePath.

decodeURI(content://.../raw) worked for me before fetching the nativePath.

I have vague recollections of trying that previously, but I just tested again now and it doesn't make any difference.. decodeURI gives me the exact same URI as the string that comes from fileChooser.open().
interestingly, we seem to be experiencing what seems to be the same issue in iOS now, but I haven't had a chance to dig any more into that side yet.

FWIW: I've abandoned this route of importing files from the local device.. I've replaced cordova-plugi-file-picker, cordova-plugin-file-chooser, and as a result, the usage of cordova-plugin-filepath, with cordova-plugin-chooser reading in the file Blob and decoding the data with TextDecoder... so, pretty much all of my example code in the OP has been replaced with two lines.
feel free to do whatever you want with this issue report, I'll be unsubscribing from notifications after posting this. :+1:

Came across this issue just now.
@hiddentao is there no possibility to get a fix?

@graphefruit This package is no longer actively maintained. PRs are of course welcome.


virt menager highlight text

Sure, here's the text formatted according to the given template:
Describe the bug
I have a small issue with Virt-Manager. I have installed a ParrotOS VM. I can copy and paste between the host and the guest, but I can't highlight text in the terminal on the VM. When I try, it highlights text only while I hold the left mouse button, and I can't copy the text.
Steps To Reproduce
Steps to reproduce the behavior:

Open Virt-Manager and start the ParrotOS VM.
Open a terminal within the ParrotOS VM.
Attempt to highlight text in the terminal by clicking and dragging with the left mouse button.

Expected behavior
I expect to be able to highlight text in the terminal, release the left mouse button, and have the text remain highlighted so that I can copy it.
Notify maintainers
@jtojnar
Metadata
➜ nix-shell -p nix-info --run "nix-info -m"

system: "x86_64-linux"
host os: Linux 6.9.5, NixOS, 24.11 (Vicuna), 24.11.20240618.c00d587
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.18.2
nixpkgs: /nix/store/pfqbxdicyksnqda6h5xv285sx7vamwzd-source

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

Do you mean the terminal emulator? What desktop environment and/or terminal emulator do you use? Can you perhaps provide a screenshot?

I also tried these tools, but the result is the same:

Additionally, I tried using other shells like fish, but it didn't help either. I even created a new profile in the terminal emulator, but the issue persisted.
My friend tested this issue on his device with an Ubuntu VM and encountered the same bug as me.

any idea @jtojnar  ?


Add a whitelist in options for header parameters that do not begin with oauth_

Right now the toHeader() function will strip away all parameters that don't begin with "oauth_", I have added a white list option to deal with cases where there are non-standard headers such as xoauth that is required in the Authorization string.

is this really necessary? you can modify the header after got it from toHeader()

is this really necessary? you can modify the header after got it from toHeader()

I think its necessary for 2 main reasons, abstraction and consistency.
Firstly for abstraction.
The toHeader() method takes the oauth parameters and creates an authorization string that is comma separated, URI encoded and sorted by name.
You are correct in saying the header can be modified, but that would mean the user has to URI encode and then insert each extra parameter in the correct sorted position. (It would be simpler to just generate the entire string from scratch)
However my point here is, in order to do the above, the user is required to have the knowledge of URI Encoding and Sorting standard of OAuth protocols.
The use of the library is to abstract away these sophisticated protocol steps so the user can simply throw in everything and the oauth works.
Secondly, for consistency.
The getSignature() or getBaseString() function already accounts for extra parameters included in the oauth_data object, which makes it awkward when passing the same oauth_data object to toHeader() function that doesn't support extra parameters.
An alternative solution instead of using a whitelist is simply to add a new boolean option (such as allowExtraOAuthParams) which disables the
if (sorted[i].key.indexOf('oauth_') !== 0 checking.
I didn't opt for this solution because it seems to dissuade precaution when making the oauth_data.

good point, im still consider about it. ty


chore(build): Reworks babel build

Please check if the PR fulfills these requirements

[ ] Tests for the changes have been added (for bug fixes / features)
[X] Docs have been added / updated (for bug fixes / features)

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[X] Build related changes
[ ] CI related changes
[ ] Other... Please describe:

What is the current behavior? (You can also link to an open issue here)
What is the new behavior?
Does this PR introduce a breaking change?

[ ] Yes
[X] No

If this PR contains a breaking change, please describe the following...

Impact:
Migration path for existing applications:
Github Issue(s) this is regarding:

Other information:

Add module export in project root
Remove npmignore in favor of files array in package.json
Adds minimal Gulp v4 build

clean
lint ( ESLint ./src )
build ( Babel transpile to ./lib )
watch ( Incremental watch & rebuild )
default ( Cleans, lints & builds )

The only thing I would say is babel options should come from .babelrc so they shouldn't be specified


Allow on_state() functions

Allow states to have a on_state() function that will run while in that state.
Main program loop will need a call to run_machine() to resolve than on_state() calls and resolve timed transitions.
This example shows how it would work (not tested, can contain errors):
#include <Fsm.h>

/*
 * FSM Library sample with user and timed
 * transitions.
 * Uses a button and Arduino builtin led,
 * button can be replaced just grounding
 * pin.
 */

// Used pins
#define LED_PIN     13
#define BUTTON_PIN  8

//Events
#define BUTTON_EVENT  0

int buttonState = 0;

/* state 1:  led off
 * state 2:  led on
 * transition from s1 to s2 when pusshing button
 * transition back from s2 to s1 after 3 seconds
 * SECOND PARAM IS NEW "on_state()" FUNCTION
 */
State state_led_off(&led_off, &check_button, null);
State state_led_on(&led_on, null, null);
Fsm fsm(&state_led_off);

// Transition functions
void led_off()
{
  digitalWrite(LED_PIN, LOW);
}

void led_on()
{
  digitalWrite(LED_PIN, HIGH);
}

void check_button()
{
  buttonState = digitalRead(buttonPin);
  if (buttonState == LOW) {
    fsm.trigger(BUTTON_EVENT);
  }
}

// standard arduino functions
void setup()
{
  pinMode(LED_PIN, OUTPUT);
  pinMode(BUTTON_PIN, INPUT);

  fsm.add_transition(&state_led_off, &state_led_on,
                     BUTTON_EVENT, null);
  fsm.add_timed_transition(&state_led_on, &state_led_off, 3000, NULL);
}

void loop()
{
  // Call fsm run
  fsm.run_machine();
}

Created pull request #11 solving this and other issues.

I am using this version of the library but I am now getting errors:
collect2.exe*:error: ld returned 1 exit status
Error creating .elf
Is there an include statement missing?

@DeeJee You'll need to post some code. That error can be for multiple reasons (e.g. missing namespace). Try to reproduce the error with as small a program as possible and post it here.

Also worth making sure that by "this version" you mean the code in the pull request this issue references?
Yes, I was referring to the code in the pull request.

I did what you suggested and made a tiny program with only the state machine code in it. It now compiles fine. That leaves me with a quest to find the code that caused the problem. The main version of the state machine works fine with my code but the code from the pull request does not. I think I made a mistake in my own code that I got away with....  until now.
Anyway, thank you for your tip. I should have thought about that myself :o

I currently have the state machine in use in my project. It is working fine and I an using all three functions. Thank you for creating this library.

@DeeJee Are you referring to init, check and trigger as the "three functions"?

I am referring to the three functions that are passed into the State objects. I believe they are called on_enter, on_state and on_exit.


refactor(apps/prod/tekton/configs): simplify multi arch image collect to tekton task run

Signed-off-by: wuhuizuo<EMAIL_ADDRESS>

/approve


Poor real variable mixing (Add HMC moves for real variables)

I've been prototyping a few simple examples in Blang based on Stat 520 (see, for example, here) and it seems that there is poor mixing.
One reason is that only one move is being used for real variables (the Peskun move is failing similarly to #6). I plan to address #6 shortly, but also want to solicit feedback on including the AHMC library's HMC functionality as another move for real variables.
Any feedback is appreciated.

Sounds good. Do you mean using the adaptive BO for MH hyperparameter tuning, or with the actual HMC as well? In the latter case, the issue is that we would need automatic differentiation. I guess we could resort to numerical differentiation too. What option did you have in mind?

Thanks for the comment, Alex. I had been thinking along the lines of HMC + numerical differentiation (and perhaps doing a block HMC move on all real variables -- I have been working on IID collections but this could be generalized).
I took a quick look at BO for the MH Hyperparameter tuning as discussed in Mahendran et al 2012. This might be an easier approach? I am not very familiar with the AHMC library so I am not confident that it can help too much here, but the approach seems to address issues we had in tuning the ASP MH hyperparameters (which was tedious to do manually). Perhaps you are more familiar with Ziyu's code? I am willing to develop this feature into the core blang moveset.

An issue with HMC + numerical is that each numerical diff will take n evaluations, where n is the number of real variables (since we need all n partial derivatives). But I guess we could do HMC within block Gibbs to address this, taking blocks to be variables that are connected and therefore perhaps more likely to be correlated.
Alternatively, something that might be easier to implement is slice sampling.

Thanks! Due to time constraints, I will first try a slice implementation (it seems straightforward to implement). Builds reflecting this change are forthcoming (next few days).

Summary of changes before I close this issue:
(i) Created a new branch of bayonet called dev. As the name suggests, we can put in-development items in here until they have passed all of the tests and have been vetted. I've committed a basic slice sampler here.
(ii) I've added the overrelaxed slice sampler of Neal 2003 to the main branch. It has been added to the list of samplers for RealVariables. In my testing it seems to improve mixing.
(iii) In the distribution unit tests, it is not entirely clear why some samplers work while others do not. It seems we need some sort of policy or set of units tests that all samplers should pass.


Is there a way of knowing if bump detected an increment?

I would like to programatically disable subsequent steps in a workflow if no increment is detected in this action (If cz bump detects no increment).
Does it make sense to add an output variable that states whether or not an increment was detected or is there a simpler way of approaching this?

cz bump throws an error code different than 0, this means that most pipelines will be interrupted.
If you are writing a POSIX shell script, you can do something like:
#!/bin/sh -e

if cz bump; then
    echo 'it was bumped correctly'
else
    echo "there was an error, whose error code is $?"
    exit 3  # 3 is the error code thrown by no commits found
fi

Thanks for your answer @Woile. Unfortunately, it looks like cz bump returns 0 even if no increment is detected. Example:
$ cz bump --changelog
bump: version 1.3.0 → 1.3.0
tag to create: 1.3.0
increment detected: None
$ echo $?
0

And the same result happens when using this action in a workflow: https://github.com/now8-org/app/runs/4832942786?check_suite_focus=true (check the commitizen step output).

Nice catch, it is actually a bug on commitizen, not on this github action, I've submitted a PR to cz.
An error code should be returned instead (I think). (If) Once merged, it should solve this issue.
https://github.com/commitizen-tools/commitizen/pull/473
Thanks for reporting

Can you test with the latest version?
Thanks

It's working now. Thanks.
In case it helps anyone what I did to condition the execution of subsequent steps was:
      - name: commitizen
        id: commitizen
        continue-on-error: true
        uses<EMAIL_ADDRESS>        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}

     - name: Some other task
        if: steps.commitizen.outcome == 'success'
        run: something


Spurious newline is output

fcct appears to output an unneccessary newline to STDOUT even when -output is being used.

Thanks for the report.
I think this has been already fixed by https://github.com/coreos/fcct/pull/49, which is not part of any release yet though.
@keithy can you maybe compile master and check if it behaves properly? Otherwise, I know @ajeddeloh has an fcct release planned soon-ish.


Go examples should have caught NewClient issue

When trying to upgrade grpc-go to include our changes to add the NewClient method, we accidentally broke the go sdk. The issue stems from how we used the replace directive to point to our forked version of grpc-go.
https://github.com/momentohq/client-sdk-go/blob/01d60a2214c891a9a7300eba390cdc8c0338fed5/go.mod#L24
When a customer would install our sdk, they would see an error saying NewClient method does not exist. This should have been caught by our examples
https://github.com/momentohq/client-sdk-go/blob/01d60a2214c891a9a7300eba390cdc8c0338fed5/examples/go.mod#L11
Which we pointing to a version of the sdk that included this replace change, but the examples passed. We should figure out why they were passing, and fix it so they are able to validate our sdk installs correctly. The change was released in version 1.17.0

we can't do this due to how go packaging works; we could instead add a CI script that checks for replace in the go.mod and fails CI.


Investigate reuse/adapting Inferno IPS Test Kit for AU Patient Summary Test Kit

@projkov  While there isn't yet an AU Patient Summary IG, it will be derived from IPS and impose AU Core Profiles. Cycle for IG development and testing will be very short so to help prepare, please look at the Inferno IPS test kit to check for any issues with Sparked leveraging this.
https://github.com/inferno-framework/ips-test-kit

@StephThaoOng Hello Steph. Looks like we can close this issue.


WorldArchetype SerializationBehaviors.NONE not obeyed

I am currently running

SpongeForge version: 1.12.2-2825-7.1.7-RC3768
Java version: 1.8.0_202/64-bit (Oracle Corporation)
Operating System: Linux (4.15.0-43-generic/amd64)

Plugins/Mods: Tekxit 3, Minecraft, Minecraft Coder Pack, SpongeAPI, Sponge, CatClearLag, EpicBanItem, GriefPrevention, LuckPerms, MMCReboot, MMCRules, Nucleus, ServerListPlus, Total Economy, spark, worldedit-sponge

Attempting to implement regeneration for worldedit sponge,
It seems that setting the SerializationBehavior to NONE still results in files being written to the worlds folder for the new world when it is loaded.
Code in question: https://github.com/EngineHub/WorldEdit/pull/486/files
(This is currently worked around by unloading and deleting the world after)

I think I found the issue:
In MixinMinecraftServer, the World is not checked for serialization behaviors none.
@Zidane is this the right point where we'd need to check for saving?

Correct but I doubt this is the only spot.

@clienthax I am making a fix for you but some folders and files will still be wrote and only because Vanilla's SaveHandler very much assumes they'll be there and mods do too.
At the least, we'll only write what we have to. Chunks for sure won't be wrote.

@Zidane thought this should be fixed now or still no?

What's the status on this? If this has been abandoned, feel free to assign it to me and I'll get to it sometime in the next week.

@JBYoshi - are you still willing to take a look at this?

Yep. I'll look into it tomorrow.


CUDNN_STATUS_EXECUTION_FAILED while compiling model on GPU

Click to expand!
Issue Type
Bug
Have you reproduced the bug with TF nightly?
Yes
Source
source
Tensorflow Version
2.11.0
Custom Code
No
OS Platform and Distribution
Rocky linux
Mobile device
No response
Python version
3.9
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
A bug happened!

Standalone code to reproduce the issue
CUDNN_STATUS_EXECUTION_FAILED
in tensorflow/compiler/xla/stream_executor/cuda/cuda_dnn.cc(5750): 'cudnnBatchNormalizationForwardTrainingEx( cudnn.handle(), mode, bn_ops, &one, &zero, x_descriptor.handle(), x.opaque(), x_descriptor.handle(), side_input.opaque(), x_descriptor.handle(), y->opaque(), scale_offset_descriptor.handle(), scale.opaque(), offset.opaque(), exponential_average_factor, batch_mean_opaque, batch_var_opaque, epsilon, saved_mean->opaque(), saved_inv_var->opaque(), activation_desc.handle(), workspace.opaque(), workspace.size(), reserve_space.opaque(), reserve_space.size())'

Relevant log output
No response

Hello, I am Urmil Pawar. I am just a beginner in open source contribution but I would like to give a try to your issue.Can you please explain me how to approach it

Hello @UrmilPawar, Let me help you,

Firstly, You have to understand the problem well, it even includes the code provided above.
Then recall that whether you have encourtered such issue in your past working projects, if yes then it will become more easy for you to debug it.
else, finally confirm the solution from the official TensorFlow documentation and comment it.

@gauravbaluni,
Could you please provide the CUDA and cuDNN version you are using and also provide the complete error log which helps us to debug the issue more effectively. Kindly confirm whether you are facing this issue while trying to run any code? Thank you!


[CRITICAL] Explore an API in Onyx to globally cache derived values

Tracking issue for @janicduplessis's investigations into better caching for Onyx data.

I started exploring some options, will post a proposal with my findings next week.

Sounds great! I think this is gonna be huge!


Only show screen when value above 0

I have several screens working and all based on a value.  Let's take solar power as an example. I want it to update and show the solar watts from panels only above 0 watts.  When it is 0 watts, I want it to not show in the rotation.  I mostly have it working, but instead of going away at 0, it reads the last value forever which is normally 1 watt.  I noticed this is possible from the 'days til christmas" screen but can't duplicate it.  I am pulling the values from MQTT, is that the problem?
I am using a function node with this code:
`var percent = msg.payload
msg.payload = percent;
if (percent === 0) {
msg.show = false
}
else if (percent > 0) {
return msg;
}`

were you able to fix it? because I have the same problem

Yes, I did get some help.  Here is the code I am using now.
`var percent = msg.payload;
if (percent > 0) {
msg.show = true;
node.status({ fill: "green", shape: "dot", text: "percent > 0, show" });
} else {
msg.show = false;
node.status({ fill: "red", shape: "dot", text: "percent <= 0, hide" });
}
return msg;`

thank you very much

If you get the error Screen data cannot store! on the Core Node, do not forget to set the msg.duration value to at least 1 anyway :D


Budget App Features

Below features have been added

Splash screen
Sign up and log in to pages
Home page (categories page)
Transactions page

Hi @elyor-doniyorov , Thanks for reminding here is the recorded video link


FlakyTest TestBKDistributedLogManager.deleteDuringRead

Is this a question, feature request, or bug report?
BUG REPORT

Please describe the issue you observed:

What did you do?

run the unit tests

What did you expect to see?

all the unit tests should pass

What did you see instead?

TestBKDistributedLogManager.deleteDuringRead failed occasionally.

This is merged at #204


HandShakeEception: WRONG_VERSION_NUMBER

Your environment.

Version: master
Browser: none
Other Information:

I/flutter ( 5124): [Logger::Dart::WebSocket] DEBUG: connect https://<IP_ADDRESS>:8443/ws?peer=08b97ada-7430-4e95-95c2-ba786b688159, {}, null
I/flutter ( 5124): [Logger::Dart::WebSocket] ERROR: error HandshakeException: Handshake error in client (OS Error:
I/flutter ( 5124):      WRONG_VERSION_NUMBER(tls_record.cc:242))
I/flutter ( 5124): [protoo-client] DEBUG: emit "error" [currentAttempt:NoSuchMethodError: The getter 'closeCode' was called on null.
I/flutter ( 5124): Receiver: null
I/flutter ( 5124): Tried calling: closeCode]

What did you do?

Cloned this repo on one Windows machine
Run the Flutter example project
Running as it, no image is broadcast between the devices (all I can see is my own cam, but join/leave messages pops up)
Decided to try to install server on an Ubuntu 18.04 machine via docker
When connecting, the exception with WRONG_VERSION_NUMBER is thrown on Flutter project.

What did you expect?
To work
What happened?
Exception HandshakeException.WRONG_VERSION_NUMBER

Same

Flutter sdk moved to:
https://github.com/pion/ion-sdk-flutter
Please make issue there


Gradle fails to even start correctly (logging problem)

Fresh install of Gradle-5.4.1 via Macports on MacOS 10.14.4, successful. Attempt to test it results in a failure:
$ gradle --full-stacktrace -v
[main] INFO org.gradle.internal.nativeintegration.services.NativeServices - Initialized native services in: /Users/ur20980/.gradle/native

FAILURE: Build failed with an exception.

* What went wrong:
org.slf4j.impl.SimpleLogger cannot be cast to org.gradle.api.logging.Logger

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Current Behavior
See above.
Context
I was trying to build pdftk-java, but it doesn't matter. Even gradle -v in a directory with no project at all results in this.
Steps to Reproduce

On MacOS install Oracle JDK.
Install Gradle via sudo port install gradle
Try gradle -v and observe the result.

Your Environment
MacOS Mojave 10.14.4, Oracle JDK 1.8.0_211, Macports-2.5.4, Gradle 5.4.1.
Minimal slf4j and log4j installed in /Library/Java/Extensions:
$ ll /Library/Java/Extensions/*slf4j*.jar
-rw-r--r--  1 root  wheel  23645 May 20 16:52 /Library/Java/Extensions/log4j-over-slf4j-1.7.25.jar
-rw-r--r--  1 root  wheel  41203 May 20 10:58 /Library/Java/Extensions/slf4j-api-1.7.25.jar
-rw-r--r--  1 root  wheel  15257 May 20 15:53 /Library/Java/Extensions/slf4j-simple-1.7.25.jar
$ ll /Library/Java/Extensions/*log4j*.jar
-rw-r--r--  1 root  wheel  489884 May 20 16:53 /Library/Java/Extensions/log4j-1.2.17.jar
-rw-r--r--  1 root  wheel   23645 May 20 16:52 /Library/Java/Extensions/log4j-over-slf4j-1.7.25.jar
$

Removing those files did not seem to help.

Hmm, I haven't seen that sort of failure before.
I don't see this with the same macOS version, a slightly older JDK8 and the 5.4.1 install from macports.  I don't have any files in /Library/Java/Extensions.  What else do you have in that directory?
Could you try downloading 5.4.1 from https://gradle.org/install/#manually and running gradle directly from the zip?  This is to rule out something funky with the MacPort install.
If that still fails, I would suggest...

Try a different version of Java.  Maybe the extensions are interfering with what Gradle would expect.
Check JAVA_OPTS, GRADLE_OPTS, JAVA_TOOL_OPTIONS for something funky (e.g., extra arguments that may influence the JVM)

I did not re-install gradle manually, but removed all the slf4j*.jar files from the classpath /Library/Java/Extensions and placed there the following files:
$ ll /Library/Java/Extensions/log4j*
-rw-r--r--  1 root     wheel  489884 May 20 16:53 /Library/Java/Extensions/log4j-1.2.17.jar
-rw-r--r--  1 ur20980  wheel  143213 May 20 20:52 /Library/Java/Extensions/log4j-api-2.4.1.jar
-rw-r--r--  1 ur20980  wheel  991033 May 20 20:52 /Library/Java/Extensions/log4j-core-2.4.1.jar
-rw-r--r--  1 root     wheel   23645 May 20 16:52 /Library/Java/Extensions/log4j-over-slf4j-1.7.25.jar
-rw-r--r--  1 ur20980  wheel    1196 May 20 20:52 /Library/Java/Extensions/log4j.properties
$

After that everything became normal:
$ gradle -v

------------------------------------------------------------
Gradle 5.4.1
------------------------------------------------------------

Build time:   2019-04-26 08:14:42 UTC
Revision:     261d171646b36a6a28d5a19a69676cd098a4c19d

Kotlin:       1.3.21
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM:          1.8.0_211 (Oracle Corporation 25.211-b12)
OS:           Mac OS X 10.14.4 x86_64

$

I suspect that log4j-1.2.17.jar and log4j-over-slf4j-1.7.25.jar are not needed (collaterals ;), but they don't bother me at this time.

@big-guy you may want to document somewhere that the presence of SLF4J jars anywhere on the class path would prevent Gradle from working - and likewise, the absence of LOG4J on the class path would break Gradle.

This is something specific to how things are configured on your machine. None of these steps are necessary nor what we would expect someone to worry about. (e.g., installing jars into /Library/Java/Extensions/)
log4j and SLF4J are both included in Gradle's distribution, so I'm not sure what's happened for you.


Fix postgres-types crate name

Postgres types crate is now called postgres-types: https://crates.io/crates/postgres-types

@windowsdeveloperwannabe Thank you, much appreciated :)


Prevent race condition for from_url(create=True) in case of parallel processing

This PR is to fix the issue that from_url(xxx, create=True) implemented in #245 can fail in parallel processing situation.
# from_url.py
import pfio
pfio.v2.from_url('non-existent-dir', create=True)

> mpiexec -n 4 python from_url.py
Traceback (most recent call last):
  File "from_url.py", line 5, in <module>
    pfio.v2.from_url('non-existent-dir', create=True)
  File "/usr/local/lib/python3.8/site-packages/pfio/v2/fs.py", line 359, in from_url
    fs = _from_scheme(scheme, dirname, kwargs, bucket=parsed.netloc)
  File "/usr/local/lib/python3.8/site-packages/pfio/v2/fs.py", line 371, in _from_scheme
    fs = Local(dirname, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/pfio/v2/local.py", line 56, in __init__
    os.makedirs(self._cwd)
  File "/usr/local/lib/python3.8/os.py", line 223, in makedirs
    mkdir(name, mode)
FileExistsError: [Errno 17] File exists: 'non-existent-dir'

When create=True option is set, pfio checks the existence of the directory, then creates if it doesn't exist, but this process is not atomic (especially when combined with NFS, where there can be relatively large delay after a filesystem operation is recognized from other processes).
It is quite difficult to realize it as an atomic filesystem operation, but in this case it is sufficient to specify exists_ok=True option to makedirs.
The same issue can happen to HDFS, so I fixed both local and HDFS filesystems (for S3 it's not necessary) in this PR.

/test


Implementation and performance on CPU's

Hello @HanGuo97,
This fast matrix multiplication kernel works on CPU's also? Have you done any experiments on CPU's, if any?

Thanks for the reply @HanGuo97.
Is there any plan/possibility to extend this work on CPU's ? also any references/links in this regard is helpful.
Thanks.

FLUTE makes a few assumptions about the hardware platform. Because of this, FLUTE is designed specifically for NVIDIA GPUs. We do have near term plans to extend FLUTE to additional Ampere/Ada-generation GPUs, but CPU is, unfortunately, not in our plan at the moment. We are happy to help out if you are interested in extending to CPUs, though.
As for the references, what are kind of references are you looking for?

@HanGuo97,

Is it feasible to extend the work on CPU's specifically ARM? From your expertise, what can be challenges? can we expect same performance boost? Since you have compared to torch.mm and bitblas for GPU's, on CPU's there is optimized JIT'ed library know as oneDNN which use BRGEMM(batch reduce gemm),an optimized matmul which is more optimized. So any chance you have compared FLUTE with BRGEMM algorithm?
References I am looking for is in regard to optimized execution of matrix multiplication on CPU's that speeds up LLM's.

I think some of the "ideas" used in FLUTE might be useful for CPUs. For example, offline partitioning to reduce runtime re-ordering before hardware-accelerated matmul intrinsics --- although I'm not familiar with what kind of intrinsics are available in CPUs. I had very little high performance CPU programming experience, so it's a bit hard for me to judge.
The lineup of works related to tensor compiler (also referred as ML compilation) could be useful. For example, this is a very good reference: https://mlc.ai/

@HanGuo97  Thanks for the insights and links, will get back to you if I have any further doubts.

Great to hear!

FLUTE supports a somewhat limited set of models. This is not a hard limitation, and we are actively working on integrating FLUTE with a wider array of models.
This is a great question. Here's a somewhat technical answer. FLUTE is, loosely speaking, more general than Marlin as integer quantization is a special case of LUT-quantization with a particular choice of LUT. The generality did come with a cost. While the former could use more advanced optimizations through bit-level manipulation entirely in registers, FLUTE needs to read the table in shared memory. This introduces extra memory accesses, which are expensive in memory-bound settings like LLM inference. As such, we consider Marlin to be an upper bound to FLUTE.
Unfortunately, the Tensor Core layout is somewhat hard to read. I have attached examples below if you are interested.

cutlass-mma-layout.pdf


Bumped required mxnet version.

We use features not available in 1.3.0.

Job PR-96/1 is complete.
Docs are uploaded to http://gluon-ts-staging.s3-accelerate.dualstack.amazonaws.com/PR-96/1/index.html