sys/net: refactor AODVv2 and RFC 5444

Description

Adds separate RFC 5444 module that can be used without AODVv2 (easier testing, less surprises).
Adds a test for the new module.
Compiles and tests on the GitHub Workflow.

This can be tested on native, cc1312-launchpad and any micro controller with sufficient RAM.
Also works on the ESP32 :wink: if we someday are going to use the powerful ESP-NOW interface which is pretty fast (in terms of Mbps) alongside the IEEE 802.15.4g interface. And yep, this RFC 5444 implementation allows the usage of multiple interfaces at the same time so it's not that distant to use an ESP32 or ESP8266 for these purposes.
Tesing

make BOARD=native -C tests/rfc5444
make BOARD=native -C tests/rfc5444 test

@xkevin190, @luisan00 this is now fully implemented with the respective integration tests (and everything works :tada: ). So please test with the given command and leave your review comments here :)


Add Windows info to Getting Started topics

Proposed changes
Some writes to make the image-building section of Getting Started less Unixy
Unreleased project version (optional)
n/a
Related issues (optional)
Fixes #720

Deploy preview ready!
Built with commit 0273c09483fada78a340832b7b4cf35929ac7399
https://deploy-preview-870--docker-docs.netlify.com


Unitigs are missing kmers

I executed cuttlefish 2.2.0 as follows:
cuttlefish build -s "$DIR/references.fa" -k 31 -t 28  -o "$DIR/unitigs" -w "$DIR/workdir" --ref -c 1 2>&1

The dataset is available at: https://helsinkifi-my.sharepoint.com/:u:/g/personal/sebschmi_ad_helsinki_fi/EbVAH2jJ_z5Dn43CATYWsbsBdjeSamQJcsMBX30dw07bNg?e=UCOC6W

Cuttlefish log
Constructing the compacted reference de Bruijn graph for k = 31.

Enumerating the edges of the de Bruijn graph.
*********************************************************************************************************************************************
Stage 1: 100%
Warning: using counter_max == 1 will cause not storying counters in KMC output file, all counters will be assumed to be 1. This is experimental and is not currently supported in kmc_tools. Will be implemented soon.
Stage 2: 100%

32-mer enumeration statistics:
        Number of sequences:    745409.
        Total sequence length:<PHONE_NUMBER>5.
        Total number of 32-mers:<PHONE_NUMBER>6.
        Number of unique 32-mers:       173831316.
        Number of solid 32-mers:        173831316.
Enumerated the edge set of the graph. Time taken = 128.306 seconds.

Enumerating the vertices of the de Bruijn graph.
Stage 1: 100%
Warning: using counter_max == 1 will cause not storying counters in KMC output file, all counters will be assumed to be 1. This is experimental and is not currently supported in kmc_tools. Will be implemented soon.
Stage 2: 100%

[Building BooPHF]  47.5 %   elapsed:   0 min 1  sec   remaining:   0 min 1  secEnumerated the vertex set of the graph. Time taken = 12.8121 seconds.
Number of edges:    173831316.
Number of vertices: 170648589.

Constructing the minimal perfect hash function (MPHF) over the vertex set.
Total number of k-mers in the set (KMC database): 170648589.
Building the MPHF from the k-mer database /grp-abga/hdd/sebschmi/matchtigs/cuttlefish_build-2023-10-27T11-13-16-7oGlUG23gZ/workdir/unitigs.cf_V.
Using gamma = 10.

Completed a pass over the k-mer database.
[Building BooPHF]  94.9 %   elapsed:   0 min 2  sec   remaining:   0 min 0  sec
Completed a pass over the k-mer database.
[Building BooPHF]  100  %   elapsed:   0 min 3  sec   remaining:   0 min 0  sec
Built the MPHF in memory.

Total MPHF size: 252 MB. Bits per k-mer: 12.4332.
Allocated hash table buckets for the k-mers. Total size: 122 MB.
Total memory usage by the hash table: 374 MB. Bits per k-mer: 18.4332.
Constructed the minimal perfect hash function for the vertices. Time taken = 2.54308 seconds.

Computing the DFA states.
Total number of distinct edges: 173831316.

[Computing DFA states]  99%
Number of processed edges: 173831316

Completed a pass over the k-mer database.
Computed the states of the automata. Time taken = 4.65436 seconds.

Extracting the maximal unitigs.
Number of distinct vertices: 170648589.

[Extracting maximal unitigs]    100%
Number of scanned vertices: 170648589.
Number of maximal unitigs: 8896894.
Number of k-mers in the maximal unitigs: 170648589.
Length of the longest maximal unitig (in bases):  72441.
Length of the shortest maximal unitig (in bases): 31.
Sum length of the maximal unitigs (in bases): 437555409.

There are Detached Chordless Cycles (DCC) present in the graph:
DCC count: 8.
Number of vertices in the DCCs: 38004.
Sum length of the DCCs (in bases): 38244.
Extracted the paths. Time taken = 5.91115 seconds.

Completed a pass over the k-mer database.
Extracted the paths. Time taken = 6.011 seconds.

Maximum temporary disk-usage: 17.9225GB.

Structural information for the de Bruijn graph is written to /grp-abga/hdd/sebschmi/matchtigs/cuttlefish_build-2023-10-27T11-13-16-7oGlUG23gZ/unitigs.json.

Constructed the reference compacted de Bruijn graph at /grp-abga/hdd/sebschmi/matchtigs/cuttlefish_build-2023-10-27T11-13-16-7oGlUG23gZ/unitigs.

The JSON file
{
    "parameters info": {
        "input": "/grp-abga/hdd/sebschmi/matchtigs/cuttlefish_build-2023-10-27T11-13-16-7oGlUG23gZ/references.fa",
        "k": 31,
        "output prefix": "/grp-abga/hdd/sebschmi/matchtigs/cuttlefish_build-2023-10-27T11-13-16-7oGlUG23gZ/unitigs"
    },
    "basic info": {
        "vertex count": 170648589,
        "edge count": 173831316
    },
    "contigs info": {
        "maximal unitig count": 8896894,
        "vertex count in the maximal unitigs": 170648589,
        "shortest maximal unitig length": 31,
        "longest maximal unitig length": 72441,
        "sum maximal unitig length": 437555409,
        "avg. maximal unitig length": 49,
        "_comment": "lengths are in bases"
    },
    "detached chordless cycles (DCC) info": {
        "DCC count": 8,
        "vertex count in the DCCs": 38004,
        "sum DCC length (in bases)": 38244
    }
}

The kmer AACAATGCTGGTATGAAAGAAACATGGCAGG as well as its reverse complement CCTGCCATGTTTCTTTCATACCAGCATTGTT are missing from the cuttlefish unitigs, but present in the input.
Did I use some wrong parameters for cuttlefish?

Hi @sebschmi,
Thanks for the detailed report!  So digging around a bit, I think this may be related to and edge/vertex distinction in how Cuttlefish 2 operates (and in how it is different from Cuttlefish 1).
I confirmed that, as with your cuttlefish command, the resulting unitigs do not have this k-mer (or its rc).  Likewise, I confirmed that if I run KMC to count the 31-mer (with no threshold), and dump this database, the k-mer does appear in the output (with a count of 1).
However, if you run KMC with a k-mer length of 32, you'll notice that no 32-mer containing this k-mer appears in the input.  That is, if you build the 32-mer database (the length the cuttlefish 2 will use for edges when it constructs the graph with vertices of length 31), and then dump it, there will be no occurrence of the k-mer you point out or its reverse complement; both AACAATGCTGGTATGAAAGAAACATGGCAGG and CCTGCCATGTTTCTTTCATACCAGCATTGTT are missing from any 32-mer.
In order for a vertex (31-mer) to be present in the output of cuttlefish 2, it must be present as an endpoint of some valid edge (32-mer).  But this k-mer is not. I believe this explains why it is missing from the unitig set.  This is the expected behavior of the algorithm, under the definition provided in the paper, if I am recalling correctly, but I will ping @jamshed for his thoughts on this.
On the other hand, I'm fairly certain that if we build the unitigs on this dataset using the cuttlefish 1 algorithm (since it is, after all, a reference collection and not a read set), that we will observe this k-mer in the resulting unitigs.  I will confirm this and report back here when I have the answer.
Thanks!
Rob

@sebschmi & @jamshed,
Indeed, I can confirm that, when building using the vertex-centric approach in cuttlefish 1, the given 31-mer unitig is present:
✦10 ❯ rg AACAATGCTGGTATGAAAGAAACATGGCAGG /mnt/scratch1/sebastian_ecoli_data/unitigs_cf1.gfa1
4827650301:S    120194931       AACAATGCTGGTATGAAAGAAACATGGCAGG LN:i:31

--Rob

Great, thanks for the answer. Then I will use cuttlefish 1 instead of 2.

Thanks @sebschmi for the detailed report, and thanks @rob-p for digging into this! Yes, k-mers would be missing from the output if they are completely isolated in the de Bruijn graph, due to the reasons @rob-p discussed—Cuttlefish 2 deduces the vertex set of the graph from the edge set (i.e. (k + 1)-mers), and hence k-mers that do not participate in any (k + 1)-mer would be missing in the vertex set.


eye being launched as root once a day

Apologies for posting here an issue that is almost certainly caused by user error.
We normally run eye daemon as the ‘deploy’ user on our Ubuntu Server EC2 instances; however, mysteriously, once a day eye daemon is also being launched as ‘root’ using the same config. When this happens, the two eye daemons run in parallel and interfere with each other (e.g. when the ‘deploy’ daemon restarts Unicorn, the ‘root’ daemon thinks it has crashed, and attempts to restart it, causing problems).
I have no idea what is causing the ‘root’ copy of eye daemon to launch. I’ve checked all the automated tasks on our instances (cron, etc.), and can find nothing that triggers this behaviour; and yet, like clockwork, once a day (seemingly around the same time, although I have yet to pin this down), a copy of eye running as ‘root’ is spawned.
Most mysteriously of all, this is only occurring on the servers for one of our applications. Another application, which uses the exact same Chef configuration code, is not experiencing this issue!
Anyone have any experience in seeing something like this happening? Any tips on isolating the cause?
Running eye 0.6.4 on Ruby 2.2.0.
For what it’s worth, this is my init script (/etc/init.d/myapp):
#!/bin/sh
#
# This file was generated by chef for ip-123-123-123-123.us-west-1.compute.internal
#
### BEGIN INIT INFO
# Provides: myapp
# Required-Start: $network $remote_fs $syslog $local_fs
# Required-Stop: $network $remote_fs $syslog $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts myapp by eye
### END INIT INFO

EYE=/opt/rbenv/shims/eye
CONFIG_FILE=/etc/eye/deploy/myapp.eye
SERVICE_NAME=myapp
RUNAS=deploy

execute() {
  CMD="$EYE $1 $2"
  if [ "$USER" = "$RUNAS" ]; then
    $CMD
  else
    su $RUNAS -c "$CMD"
  fi
}

case "$1" in
  start)
    echo -n "Loading eye configuration for $SERVICE_NAME"
    execute load $CONFIG_FILE
    execute start $SERVICE_NAME
    ;;
  stop)
    execute stop $SERVICE_NAME
    ;;
  restart)
    execute restart $SERVICE_NAME
    ;;
  status)
    execute info $SERVICE_NAME
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|status}"
    exit 1
    ;;
esac

And this is the format of my eye config (/etc/eye/deploy/myapp.eye):
require File.join(File.dirname(__FILE__), "config.rb")

Eye.application "myapp" do

  env_vars = {
    PATH: "/opt/rbenv/shims:/opt/rbenv/bin:#{ENV['PATH']}",
    RAILS_ENV: "production",
    RBENV_ROOT: "/opt/rbenv",
  }
  env_vars["example"] = "xxx"

  env(env_vars)

  working_dir "/srv/myapp/current"
  uid "deploy"
  gid "deploy"

  process :unicorn do
    start_command "/usr/bin/env bundle exec unicorn /srv/myapp/current/config.ru -Dc /srv/myapp/shared/config/unicorn.rb"
    stop_signals [:TERM, 10.seconds]
    restart_command "kill -USR2 {PID}"
    stdall "/srv/myapp/shared/log/unicorn.log"
    pid_file "/srv/myapp/shared/pids/unicorn.pid"

    check :memory, every: 1.minute, below: 200.megabytes, times: [3, 5]

    start_timeout 1.minute
    restart_grace 1.minute

    trigger :flapping, times: 2, within: 1.minute, retry_in: 7.seconds

    monitor_children do
      stop_command "kill -QUIT {PID}"
      check :memory, every: 1.minute, below: 250.megabytes, times: [3, 5]
    end
  end
  process :sidekiq do
    start_command "/usr/bin/env bundle exec sidekiq --daemon -C /srv/myapp/current/config/sidekiq.yml"
    stop_signals [:TERM, 10.seconds, :KILL]
    pid_file "/srv/myapp/shared/pids/sidekiq.pid"

    check :memory, every: 5.minutes, below: 750.megabytes, times: [6, 8]

    start_timeout 1.minute
    restart_grace 1.minute

    trigger :flapping, times: 2, within: 30.seconds, retry_in: 7.seconds
  end
  process :allora do
    start_command "/usr/bin/env bundle exec ruby /srv/myapp/current/config/schedule.rb"
    pid_file "/srv/myapp/shared/pids/allora.pid"
    daemonize true
    stdout "/srv/myapp/shared/log/allora.log"
    stderr "/srv/myapp/shared/log/allora_error.log"
    stop_signals [:QUIT, 5.seconds, :TERM, 5.seconds, :KILL]

    check :memory, every: 1.minute, below: 200.megabytes, times: [3, 5]

    start_timeout 1.minute
    restart_grace 1.minute

    trigger :flapping, times: 2, within: 30.seconds, retry_in: 7.seconds
  end
end

to start eye as root, there should be someone to call load. Enable eye log, and you would see time, when new eye started, maybe some cron?

Thanks for your thoughts!

to start eye as root, there should be someone to call load.

Good to confirm that’s the only way it can end up running.

Enable eye log, and you would see time, when new eye started,

Thanks, I’ll give this a try! It may be slightly tricky to get the two copies of eye logging to different log files, but I’ll see what I can do.

maybe some cron?

I’m pretty sure I’ve eliminated actual cron tasks; however, I do have chef-client daemon running (as root) periodically, so that seems like the most likely source of the problem to me. It runs every 15 minutes, though, and the root eye process only seems to be spawning once a day, so I need to figure out why that is.

Or may be this happens after deploy, which do load under root.

That’s what I thought at first. I’ve triggered deploys and watched the results, and this doesn’t seem to spawn the extra eye process.

Also add to you init script some log, when it call load, to log user name.

Great idea; I’ll give this a shot.

Also not sure about su, we are usually using sudo -u deploy -H eye load ..., that properly set all env variables.

Hmm the init script I’m using comes from https://github.com/hamann/eye-chef-cookbook, but I’ll give it a try. If it makes a difference, I’ll submit a pull request to @hamann.

As suggested, I put some logging in the init script and I’ve now proven that the eye daemon running as root is not being launched via that script. Now looking into my chef-client logs so see if it’s launching eye daemon itself under some circumstances.

As I suspected, I traced this to user error. :stuck_out_tongue_closed_eyes:
My logrotate lastaction for rotating eye’s log file was incorrectly stopping (eye q) and restarting (eye l …) the eye daemon. Since this action ran as root, it was causing an instance of eye daemon to start as root.
I had already implemented proper log rotation by sending USR1 to the eye daemon (according to #113); however, I had neglected to deploy this configuration change to the this particular production environment.
Thanks for your help!


feat: package.json check

make sure we are not executing this in a folder or target folder that already has package.json
have to re-think fix/update

:tada: This PR is included in version 1.5.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


IGNITE-8898

rename command argument '--force' to '--yes' for control.sh

The ticket is resolved, closing PR.
Please close PRs for your resolved tickets and other non-needed PRs.
Alternatively, ask a committer

to use GitHub UI (committer  can associate accounts here: https://gitbox.apache.org/setup/ )
or /scripts/apply_pull_request.sh from Apache Ignite source.
or mention in commit message 'Fixes #(a number of PR)'.

These methods will automatically close PR.
Feel free to reopen this PR if it is actual.


ImplementAddCommandFeature

Closes #38

So we're now using InternshipApplication class to replace the Person class.
I hope to bring everyone's attention to this massive implementation change @jianminglok @benjamin-wee @laihuiqi . With the merging of this PR, we shall now update our respective PR accordingly.


Example for TabsList

Component not import from @xelene/tgui (like some others).
If import :
import {TabsList} from<EMAIL_ADDRESS>import {TabsItem} from<EMAIL_ADDRESS>Result:

Thank you, we fixed this issue in version 2.0.5 https://github.com/XeleneStudio/TelegramUI/commit/2ce0fb49304ae9d211094b5047e55c18150e95a6.


Typing in a valid date returns NaN/NaN/NaN

Describe the bug
If you focus in on the Datepicker and quickly type in a valid date from the past formatted as MM/DD/YYYY then the value NaN/NaN/NaN will populate the field.
To Reproduce

Set a min date for the Datepicker as today
Focus in on the Datepicker component
Type in 08/19/2019 quickly
The value "NaN/NaN/NaN" populates the field

Expected behavior
The value "NaN/NaN/NaN" should not populate the field and the value that the user typed in should populate the field
Screenshots

Desktop (please complete the following information):

OS: Mac OS
Browser: Chrome
Version: latest

Smartphone (please complete the following information):

Device: N/A
OS: N/A
Browser N/A
Version N/A

Additional context

I feel that there is an implementation issue here. While I can repo this issue in the demo you created, I am unable to have this happen with the demo here https://auro.alaskaair.com/components/auro/datepicker
@jason-capsule42 can you confirm this?

I was able to repro this sometimes on this page https://auroized-fly-website.surge.sh/ by typing in an date in the past.


CFY-6009 Add the 'cfy ha start' command for starting a HA cluster

This commands starts a HA cluster on the current manager, and sets
it as the leader of the cluster.

depends on #454

merging back to one PR #454


[chore] allow latest version for exenv dependency

Acceptance Checklist:

[x] All commits have been squashed to one.
[x] The commit message follows the guidelines in CONTRIBUTING.md.
[x] Documentation (README.md) and examples have been updated as needed.
[x] If this is a code change, a spec testing the functionality has been added.
[x] If the commit message has [changed] or [removed], there is an upgrade path above.

Coverage remained the same at 87.173% when pulling bf52e9aa419d71019359128694cfedb1d476b5fb on rywhee:master into 8dbed58b7645bf3fe6c24988e1861bc08a7b079e on reactjs:master.

Coverage remained the same at 87.173% when pulling bf52e9aa419d71019359128694cfedb1d476b5fb on rywhee:master into 8dbed58b7645bf3fe6c24988e1861bc08a7b079e on reactjs:master.

@rywhee Thank you!


[BugFix] fix shared buffer io coalesce

What type of PR is this：

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

Since we move shared buffer under cache input stream, we have to do alignment, and merge consecutive io ranges.
But there is a problem that after alignement, some small io ranges can be merged with large io range(>8M), which will make even large io range and that's very bad for memory consumption.
So in this PR, we separate raw_offset, raw_size from offset, size (after alignment). And we do io coalsece wrt. raw offset and size, instead of offset,size
Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[ ] I have checked the version labels which the pr will be auto backported to target branch

[ ] 3.0
[ ] 2.5
[ ] 2.4
[ ] 2.3

@MergifyIO backport branch-3.0


The conf file is /etc/config/yawac not /etc/yawac/config !

The conf file is /etc/config/yawac not /etc/yawac/config !

Thank you
Fixed : https://github.com/mehdichaouch/YAWAC/blob/master/README.md#how-it-works ;)


emupdk v.s ucsim

For pdk14, there also is another emulator:
ucsim has support for pdk14 (emulates the PMCS132B, though so far just the core, no peripherals yet).
Since the SDCC regression tests and ucsim interact well (ucsim is also used for regression testing of some other SDCC backends), that one is used in the automated regression testing of pdk14.
ucsim does not yet support the pdk13 or pdk15 (see https://sourceforge.net/p/sdcc/feature-requests/619/).
I wonder if it makes sense to keep developing two different simulators.
Philipp

Right now there is only the 14 bit simulator (also without peripherals) implemented.
I quickly wrote it to understand some of the magic (calibration) code inserted from IDE.
Do you have any pointer for how to use ucsim easily? The learning curve seems a bit steep if you have no experience with it.

Invoke like
spdk test.ihx

Simulate until next breakpoint or end via
run

Add breakpoint via
break <address>

Which works for at least decimal and hexadecimal (with 0x prefix) addresses.
Simulate for a specific number of cycles via
step <n>

Show memory contents via
dump rom <address>
dump ram <address>

There is a lot more, which can be discovered via
help


Should check node module dependencies at startup

The locker will fail in all sorts of curious ways if its dependencies are not all installed, e.g.:
node.js:134
throw e; // process.nextTick error, or 'error' event on first tick
^
TypeError: undefined is not a function
at CALL_NON_FUNCTION_AS_CONSTRUCTOR (native)
at Object. (/home/mdz/src/singly/Locker/Ops/webservice.js:33:13)
It would be good to check these dependencies at startup, or in checkEnv.sh, and fail in a more obvious way (and earlier).
There's some work in progress in an npm branch to add a command which would make this trivial:
https://github.com/isaacs/npm/issues/1213
https://github.com/isaacs/npm/issues/1279

The issue seems to have stalled in npm, poked for update.


[Python] Python3.10 wheel not released

Thank you for reporting the problem!
Please make sure what you are reporting is a bug with reproducible steps.
Describe the bug
Cannot install by  pip install pyfury --pre
Expected behavior
Install pyfury on my machine
To Reproduce
In a AWS EC2 instance, run pip install pyfury --pre
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):
In AWS EC2 instance, Ubuntu 20.04, Python 3.10.9, pip 23.2.1 from /home/ubuntu/anaconda3/lib/python3.10/site-packages/pip (python 3.10)

@Suyi32 Thanks for filing this issue, we haven't release wheel for python 3.10. Currently we only release for python3.6~3.9. Fury python relies CAPI of pyarrow==4.0.0 for row format schema and convert to arrow, which doesn't release for python3.10.
We have plan to upgrade to newer pyarrow version in next days.

Thanks for your timely response. Still get the following errors with Python 3.8.2 and pyarrow==4.0.0

Thanks for tesing again, we missed a shared library. The CI use pip install -v -e ., which doesn't cover for python setup.py bdsitg_wheel. I fixed it in #862

@Suyi32 Could you try it again? We just released pyfury==0.1.1.a1


CLOUD-53828 global parameters as stack params

@biharitomi || @schfeca75 || @mhmxs please review the change

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/2241/

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/2242/

Jenkins build failed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/2243/

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/2244/


The Go Gopher is the mascot of Go, and is the closest thing they have to a logo. Some assets are here: https://golang.org/doc/gopher/ (gophercolor.png in particular looks nice) all of which are licensed CC-BY.

@encryptio: I think the reason we didn't use the Gopher is that he doesn't scale down well, so it looks fairly unattractive as an icon.

Hmm. Now that I look at it, the favicon for golang.org (which works decently well, IMO) is a different image (just the gopher's head), and it's not in that folder.

I vote for the golang.org favicon. I think part of the appeal of the Go
Gopher is his somewhat garish derpedness.
2015-12-14 15:02 GMT-08:00 Chris Kastorff<EMAIL_ADDRESS>
Hmm. Now that I look at it, the favicon for golang.org
https://golang.org/favicon.ico (which works decently well, IMO) is a
different image (just the gopher's head), and it's not in that folder.
—
Reply to this email directly or view it on GitHub
https://github.com/rethinkdb/docs/issues/981#issuecomment-164588213.

Closed in #982


Selectors

Selectors can now be used for benchmarking.
Changes:

Merged with branch fix_test_failures.

GAScoreTypeBasedSelection.{max,min}_score() don't provide default implementations anymore. Instead, the structs that implement the trait (GARawScoreBasedSelection, GAScaledScoreBasedSelection) implement those functions using the new GAPopulation.{best,worst}_by_{raw,scaled}_score() functions. This is so that GAScoreTypeBasedSelection objects remain ignorant of the sorted lists of GAPopulation (otherwise, they would need to know that the individual at position 0 is the best one).

Added rather detailed documentation to some structs and traits, but stopped doing so because I was not using the language consistently. I need to read more / study the theory.

Updated the tests to reflect these changes.

TODO:

Use the new RNGs to improve the tests.

There are some terms that we use interchangeably: Solution and individual; scaled score and fitness. I would like us to choose one of the terms for each and stick with them.

I don't like much the use of GAPopulation.individual(<index>, <sort_basis>) in selector code for 2 reasons: 1) We agreed that passing enums to functions to choose among things was bad style. 2) Selector code (except GAScoreTypeBasedSelection) has too much knowledge about GAPopulation when it comes to accessing individuals: It knows that the best individual is at 0 and the worst at n-1. I think we should implement iterators for GAPopulation, one for traversing from best-to-worst raw score, one for best-to-worst scaled score. For selecting individuals, to implement GARankSelector.select(), we would implement a function in GAPopulation that would return a slice of the individuals' array of individuals with score X; GARankSelector.select() would then pass X=best-score and would choose at random from the slice. To implement GAUniformSelector.select(), we could implement a GAPopulation method that would return a slice spanning the whole individuals' array, explicitly stating that no order should be assumed; GAUniformSelector.select() would then choose at random from the slice.

I like the idea of doing iterators on GAPopulation, I don't think the selector knowing about ordering in the Population, or assuming some order, if you give it some randomly ordered population you shouldn't assume the selector will work correctly... so it can be assumed as part of the contract.
RE: Words - Yeeaaah, I would like to settle for Individual and Fitness as they are the most 'traditional' terms, scaled_score / raw_score is more an implementation name / internal detail.
RE: Rngs - If you call new_unseeded() it will use constant values to seed the interal RNG so it can be used as a reference RNG, great for tests.

Ok, so I won't merge this branch yet. The next pull request should contain the following commits:

Iterators for populations, used by selectors.
'Solution' will become 'Individual' (this includes GASolution -> GAIndividual).
'Scaled score' will become 'Fitness score' (GAGenome._fitness in galib is documented as "(possibly scaled) fitness score", so it may not always be scaled, and we should assume that either). 'Raw score' will remain. Both need to be 'scores', so that the name GAScoreTypeBasedSelection actually makes sense.
Selector tests will use unseeded RNGs.

Sounds good!


Extended paragraph width 100% conditionally

Closes #1469

Title will take 100% width when the lead image isn't available for section, article in section listing and home page featured content.

@sheralim012 could you please review.

Section listing

Home page featured content

Section listing with progress


Broken link in Document

Link broken under Heading "Deploy Defender for Identity"
Try Defender for Identity (part of EMS E5) The trial is valid for 90 days.

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

ID: 0ed5b3f3-a6ea-f89c-2170-620b9c005bc2
Version Independent ID: 188d24d6-fe0a-04f7-67b7-03cef5b78407
Content: List of helpful resources for Microsoft Defender for Identity
Content Source: ATPDocs/resources.md
Service: microsoft-defender-for-identity
GitHub Login: @dcurwin
Microsoft Alias: dacurwin

Thanks for your feedback. We'll investigate and get back to you.

Thank you for the comment. We've updated the link.


apidog: init at 2.6.28

This PR aims to add Apidog for x86_64-linux.

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)

[x] 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.11 Release Notes (or backporting 23.11 and 24.05 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

[x] Fits CONTRIBUTING.md.

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

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 353724

x86_64-linux

:x: 1 package failed to build:

apidog

sorry, i should have specified. it seems for me it failed stating some 404 on the archive url. i'm not sure why that is, tho i did try twice. maybe this works better for someone else?

Looks like you're right, I asked some users to give it a try with nixpkgs-review and it returned a 404 error for them. So the issue must be on my end, which is ironic since the package works XD. I'll work on it asap, thanks for telling me about the error :100:

had you perhaps omitted to clear the hash? i think otherwise it would just give you old cashed results even if you swap out stuff like the url.

Yeah, it was exactly that. Now I'm getting the 404 error as expected, thank you very much! I completely forgot to clear the hash haha

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 353724

x86_64-linux

:white_check_mark: 1 package built:

apidog

nice, i got it to work this way as well :)


Examples using https://ahocevar.com/geoserver are not working

Describe the bug
https://ahocevar.com/geoserver is returning 404 errors for several days.
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://ahocevar.com/geoserver/gwc/service/tms/1.0.0/ne:ne_10m_admin_0_countries<EMAIL_ADDRESS>(Reason: CORS header ‘Access-Control-Allow-Origin’ missing). Status code: 404.

cc @ahocevar
Thanks!

That server is often under heavy load due to folks finding it necessary to scrape it for widely available Natural Earth tiles with standard styles. It will come back up eventually.


Policies: Error downloading language pack

Error: [404] Error downloading language pack<EMAIL_ADDRESS>    at getSpecificNLS (D:\a\_work\1\s\build\lib\policies.js:426:15)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async getNLS (D:\a\_work\1\s\build\lib\policies.js:442:20)
    at async Promise.all (index 4)
    at async getTranslations (D:\a\_work\1\s\build\lib\policies.js:476:12)
    at async Promise.all (index 1)
    at async main (D:\a\_work\1\s\build\lib\policies.js:480:38)

https://monacotools.visualstudio.com/DefaultCollection/Monaco/_build/results?buildId=180793&view=logs&j=ca7250c6-0e2d-5a52-28a2-5c6aea023c92&t=a704f971-fb7e-553d-39e9-08631f8eece9

Workaround https://github.com/microsoft/vscode/commit/73fd3f11032e7b83c2ae011b5516e6ddd19e3db2

That language pack version doesn't exist. Ever since we moved to the extension build pipelines, the patch version is random, not incremental.
My guess is that there's a bad Marketplace query here

That language pack version doesn't exist. Ever since we moved to the extension build pipelines, the patch version is random, not incremental.

Oh :( How do we guarantee versions within the same major.minor have incremental patch numbers then?

They're not totally random, the patch version is the date+time.
There is prior art in the unpkg service for fetching the correct language pack:
https://github.com/microsoft/vscode-unpkg/blob/main/src/marketplace.ts#L171
This, given a vscode engine version and a locale, will return the highest compatible version of a language pack for that locale.
Can you use this?


Updated the minor typos

I have updated the typos mentioned in below issues:
MicrosoftDocs/azure-docs#25628
MicrosoftDocs/azure-docs#25627

@angoyal-msft : Thanks for your contribution! The author, @ronortloff, has been notified to review your proposed change.

Merging typo fixes.
@angoyal-msft Thanks for contributing.


Cleanup/Restructure utils in common library

Is this a BUG REPORT or FEATURE REQUEST?
Choose one: BUG REPORT or FEATURE REQUEST

What happened:
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:

The utils have now been restructured as per new guidelines (common/platform/runtime/apps)


Document procedure for building, installing and running the extension.

I'm interested in giving this a try and can write up some documentation while I'm at it.
Can you give me a rough idea on how to get started? (I already tried cloning the extension by got errors about the client/out/ folder).

Compile the language server according to https://github.com/kraigher/rust_hdl and place the vhdl_ls binary in a directory named "server" at the project root.
Install Node.js
In the project root run

npm install
npm run compile

In VsCode you can now start the build task (ctr-shift-b).
Press F5 to open the debug window and then run Launch Client.
I have note really had any tme took look at this lately and there is nothing in place for publishing the extension.

👍 I got this running today. I'll do a pull request for an updated README then look into publishing

What is the status of this, @Xcodo ?

@Bochlin when you say put the vhdl_ls in the project root, the root of vs code or the VHDL project?

Relative the root of the plugin project:
<plugin_project>/server/vhdl_ls
There is an option in the plugin to use the docker image provided by rust_hdl (on linux) and I think that it should also work by compiling with cargo and then the plugin will run it from cargo's install directory. You can change the location of the vhdl_ls binary in the plugin settings under extensions/VHDL.

Added CONTRIBUTING.md with description for project setup


Student admin

Did: fixes #984 and added a new role called student Admin. Student admin should have the same privileges as program managers for all programs aside from Bonner.
Test:

Switch to branch studentAdmin
Reset the data to ensure the role in the database (test data).
In the bottom left corner switch the current user to Student Admin: bledsoef
Go through events, create, delete, and edit events. Make sure the user has access and can edit for events associated with all programs except for Bonner
Switch to user to Admin and go to settings and then user management. Try to add and remove a new student Admin to make sure it works as expected.
review code

The Student Admin doesn't have access to the edit page

When an admin creates a bonner event, a student admin has access to it when you switch roles

Student Admin Program table on user profile is broken:

Solved. Thanks.

Please, resolve this merge conflict.

Please, resolve this merge conflict.

resolved @stevensonmichel

Finn is set as a student admin by default, even though in the database, he exists as faculty. Faculty cannot be student admin. It should not be possible for faculty to be student admin. This should be fixed and the actual student from the database should be set as a student admin by default, or if you are going to use Finn, make him a student and not faculty so that he can be set as a student admin.

Other than what Karina said, everything looks and works as described in the PR comment!

Placing on hold because we need to reevaluate what permissions student admins should be able to have.

Spreadsheet has been created, still waiting to hear back from @BrianRamsay on whether not the permissions are correct so we can finalize this PR.


Honeycomb.OpenTelemetry.CommonInstrumentations uses incorrect packages

Link to my full Program.cs:
https://github.com/Al4ric/ThingsFinder/blob/9412d18597b8aed00374843a1c745bab3d95f6ea/ThingsFinder/Program.cs
Branch: opentelemetry_init
Versions
0.27.1-beta

.NET runtime & version (eg .NET Core, .NET Framework): .Net 8.0.200-preview.23624.5
Honeycomb OpenTelemetry Distribution: everything in latest versions as of today

Steps to reproduce
Having this setup in Program.cs:
builder.Services.AddOpenTelemetry()
.ConfigureResource(resource => resource.AddService(serviceName))
.WithTracing(tracing => tracing
.AddHoneycomb(honeycombOptions)
.AddCommonInstrumentations()
It builds fine, but when trying to run it causes runtime error:
System.TypeLoadException
Could not load type 'OpenTelemetry.Trace.TracerProviderBuilderExtensions' from assembly 'OpenTelemetry.Instrumentation.Http, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7bd6737fe5b67e3c'.
Additional context
When method AddCommonInstrumentations() is removed - application works fine. Weird thing is that there is no version 1.0.0 of OpenTelemetry.Instrumentation.Http. It was just "RC" versions and went from 1.0.0.rc-9.14 straight to 1.5.0-beta.1

Interesting - thanks for raising. We'll take a look.


Too many configs. Where to change '/static/' to '/custom/'?

(using npm run dev for now)
Places I've attempted (yes, I know it has the same code quality of a scribble):

build/webpack.dev.conf.js

module.exports = merge(baseWebpackConfig, {
...,
  dev: {
    assetsPublicPath: '/',
    assetsSubDirectory: 'artefacts'
  }

build/webpack.dev.conf.js

module.exports = merge(baseWebpackConfig, {
...,
  build: {
    assetsPublicPath: '/',
    assetsSubDirectory: 'artefacts'
  }

Note: both 1 and 2 result in a failure to build. Failure: /root/vue-cli/node_modules/webpack/lib/webpack.js:19 		throw new WebpackOptionsValidationError(webpackOptionsValidationErrors);

config/dev.env.js

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  build: {
    assetsPublicPath: '/',
    assetsSubDirectory: 'artefacts'
  }
})

Build succeeds, but has no effect

Etc. Tried multiple variations but the results are always the same: Either npm run dev fails completely, or the change has no effect.

@Joshfindit
Here is what you are looking for: http://vuejs-templates.github.io/webpack/backend.html
The variable to change for the "static" directory name is in:
config > index.js


auto encoding detection

https://github.com/sunfish-shogi/electron-shogi/issues/403

Codecov Report
Patch coverage: 62.50% and project coverage change: -0.02 :warning:

Comparison is base (54b386f) 71.58% compared to head (348daf1) 71.57%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #457      +/-   ##
==========================================
- Coverage   71.58%   71.57%   -0.02%
==========================================
  Files          69       70       +1
  Lines       14720    14751      +31
  Branches     1894     1900       +6
==========================================
+ Hits        10538    10558      +20
- Misses       2315     2320       +5
- Partials     1867     1873       +6

Impacted Files
Coverage Δ

src/renderer/store/record.ts
66.23% <50.00%> (-0.01%)
:arrow_down:

src/renderer/helpers/encode.ts
64.70% <64.70%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


changed filter design pattern per #142

Needs the axiom. Did I miss it? An equivalence class axiom:  Filter: Material Artifact and bearer of some Filter Function

@alanruttenberg added, just an oversight.


Remove "/api" prefix from client functions

Makes Client.req add the "/api" prefix after BaseURL.

:+1:


More logging options

It can be very difficult to troubleshoot things when you're using batect.
As an example, if I have a task that start my app code, and has a dependency on a localstack container, I only have access to the app logs (via stdout). I have no way to see the logs of the localstack container at all.
Things that would be useful:

An option to keep stopped containers so I can docker logs them, even if they don't fail
The ability to interleave logs from all running containers to stdout (like docker-compose does)
An option to save container logs to a file

Hey @ineffyble, thanks for the feedback. I agree this is something that batect could do better.

An option to keep stopped containers so I can docker logs them, even if they don't fail

This wouldn't be too hard to implement - this is something I could do in the short term

The ability to interleave logs from all running containers to stdout (like docker-compose does)

This would be much more complex to implement, but it would also be the best user experience - this is probably more of a long-term feature

An option to save container logs to a file

If you had the other two options available, would you still want / need this?

I've just added the ability to keep the stopped containers running (provide --no-cleaup-after-success or --no-cleanup) and this will be part of the next release.

I've added the ability to show output from all containers interleaved (run the task with --output all), and this will be part of the next release. I'm not going to implement the ability to save logs to a file just yet - if you feel that --output all doesn't satisfy your needs enough, please submit a new issue.
Thanks again for your feedback @ineffyble!

Yaaas I was just coming here to chime in that this feature would be super helpful, and it's already done! 😁
Time to go update all my repos to 0.36.0!


"TypeError: undefined is not a function" in typescript lib.

I get this error on mac os 10.10.5, npm 2.14.2, node v0.12.7.
black-screen version 7b11841a50c4dcde25ad4c9c8b24ad918e2b7878.
$ npm run install-all
...
# No errors.

$ gulp
[17:35:09] Using gulpfile ~/black-screen/gulpfile.js
[17:35:09] Starting 'default'...
[17:35:09] Starting 'watch'...
[17:35:09] Starting 'clean'...
[17:35:09] Finished 'default' after 359 ms
[17:35:09] Finished 'clean' after 58 ms
[17:35:09] Starting 'typescript'...
[17:35:09] Starting 'sass'...
[17:35:10] Starting 'react'...
[17:35:11] gulp-notify: [Black Screen Watcher] React has been compiled.
[17:35:11] Finished 'react' after 1.83 s
/Users/agkish/black-screen/node_modules/typescript/lib/typescript.js:35171
            if (host.fileExists(fileName)) {
                     ^
TypeError: undefined is not a function
    at tryLoad (/Users/agkish/black-screen/node_modules/typescript/lib/typescript.js:35171:22)
    at loadNodeModuleFromFile (/Users/agkish/black-screen/node_modules/typescript/lib/typescript.js:35164:20)
    at loadModuleFromNodeModules (/Users/agkish/black-screen/node_modules/typescript/lib/typescript.js:35213:30)
    at nodeModuleNameResolver (/Users/agkish/black-screen/node_modules/typescript/lib/typescript.js:35158:20)
    at resolveModuleName (/Users/agkish/black-screen/node_modules/typescript/lib/typescript.js:35140:41)
    at /Users/agkish/black-screen/node_modules/typescript/lib/typescript.js:35417:113
    at Object.map (/Users/agkish/black-screen/node_modules/typescript/lib/typescript.js:945:29)
    at resolveModuleNamesWorker (/Users/agkish/black-screen/node_modules/typescript/lib/typescript.js:35417:65)
    at processImportedModules (/Users/agkish/black-screen/node_modules/typescript/lib/typescript.js:35833:35)
    at findSourceFile (/Users/agkish/black-screen/node_modules/typescript/lib/typescript.js:35795:21)

+1

Possibly related to https://github.com/Microsoft/TypeScript/issues/4565

Same issue on Linux Mint 17.2.

Getting same issue, also on osx 10.10.5

See my pull request #22 for a possible fix, but I get a few more errors after fixing this one and I don't know how to deal with ES6/Typescript/Node issues.

Same here

Same here. OS X 10.10.5

Same here: Arch 4.1.6-1

Same on Ubuntu 14.04

Same here. OS X 10.10.5

@ibrahima, I tried your fork and it indeed runs (well done!). Unfortunately, I can't figure out how to bring up a prompt. There's no prompt or text on the screen. This might be a high DPI Linux only issue.

@ibrahima i tried installing from your PR and it looks like what's happening is an issue with import paths: https://github.com/shockone/black-screen/blob/00974e9aa944048983968036c1f881dc24acddbb/views/main.js#L4.
this should probably be a relative path. i'll submit a PR for this.

Confirming that @ibrahima's fork https://github.com/ibrahima/black-screen works if you update views/main.js.
Everything's pretty solid. Love the interface. Kind of slow, but was expecting that.

Same error
Archlinux

@kirankgollakota Just submitted a PR for the same issue. #25

@jimmyhmiller nice. turns out good things happen when you take a break for pizza :)

same error
Linux crunchbangplusplus 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux

elixir@crunchbangplusplus:~/black-screen$ gulp -v
[11:17:19] CLI version 3.9.0
[11:17:19] Local version 3.9.0

elixir@crunchbangplusplus:~/black-screen$ node -v
v0.10.40

+1
 $ npm --version

1.3.10

 $ cat /etc/lsb-release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.3 LTS"

npm install gulp-typescript seems to resolve the issue.

+1 to this issue and can confirm @Star-Lord-XIII 's fix

@Star-Lord-XIII's fix works.
➜  black-screen git:(master) iojs --version
v2.3.3
➜  black-screen git:(master) sw_vers
ProductName:	Mac OS X
ProductVersion:	10.10.4
BuildVersion:	14E46

OmgImAlexis+1. I'm in exact same state.

+1 I get the same error:
$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.10.5
BuildVersion:	14F27

$gulp
...
[4667:0906/001730:INFO:CONSOLE(336)] "Uncaught Error: Cannot find module '/Users/me/dev/black-screen/compiled/src/views/TerminalLayout'", source: module.js (336)

@ilianaza @samet @OmgImAlexis see #25 as already mentioned by @jimmyhmiller above

Fixed with help of @ibrahima and others. Thank you, guys.

Thank you for the cool terminal!
On Sun, Sep 6, 2015 at 3:13 AM, Volodymyr Shatsky<EMAIL_ADDRESS>wrote:

Fixed with help of @ibrahima https://github.com/ibrahima and others.
Thank you, guys.
—
Reply to this email directly or view it on GitHub
https://github.com/shockone/black-screen/issues/21#issuecomment-138062239
.


Steam Audio

This adds a spatializer that uses SteamAudio (also known as the much cooler name: phonon).

I took a approach that is different than some of the other "optional libraries".  I linked with phonon at runtime instead of at build time.  This means that phonon could be enabled with regular lovr builds by putting the phonon library next to the lovr executable.  There is probably some disadvantage to using runtime linking (linking with the dl library for example, platform restrictions), but the advantage of not needing to recompile lovr may be worth it.  This approach could possibly be used with other libraries if it's successful.  There could also be a compile flag to optionally use this runtime linking method (it would only be 2-3 ifdefs).
New Source accessors:

[x] Source:setFalloff enables distance attenuation.  Currently takes a boolean or a number.    A number is used to control the distance where falloff starts.  I might remove this number variant because it is somewhat difficult/confusing to use (if the distance is bigger than one, the max gain of the Source starts to decrease) and 32 bits is kind of a lot of data compared to 1 bit (>_> !!! I apologize), so the benefit of being able to control it may not be worth it.  As a data point, the Unity plugin exposes this as a checkbox, not a slider.
[x] Source:setDirectivity enables directivity, controlling whether the Source is omnidirectional or directional.  Similarly it can be a boolean or 2 numbers.  Directivity is sort of weird.  The first parameter is a blend between a monopole and dipole pattern.  Zero meas omnidirectional and one means dipole, where the source outputs on its front and back.  .5 makes a cardioid pattern, which only outputs in one direction.  The second number is a "power" value that controls how focused the pattern is.
[x] Source:setAbsorption controls air absorption.  It can be a boolean if you just want to enable it and don't care about numbers, or it can be 3 numbers to control the low, medium, and high frequency bands.  This is another situation where maybe a boolean is sufficient (but if it can be used to support stuff like underwater maybe that would be cool, gah!), because I feel like <1% of people are going to go through the trouble of plugging in accurate frequency-dependent exponential absorption values for the fluid of their world.  Unity also exposes this as a checkbox, for reference.  (Hmm, what if enabling it was per-source but the coefficients were global?)
[ ] Source:setHRTFInterpolation (name TBD) could be used to control bilinear vs. nearest HRTF interpolation.
[ ] Source:setSpatialBlend could be used to smoothly transition to unspatialized stereo when a Source gets close to the head, where HRTFs kinda break down.
[ ] Source:setRadius can allow for partial occlusion, but more rays need to be traced.
NOTE: These accessors are just directly derived from SteamAudio's API.  They may need to be massaged if there are multiple spatializers that support these features.

[ ] Occlusion.  This requires specifying scene geometry for raytracing.

[ ] It would be great to use a Model for this.  Model would have to know its global-space triangles.
[ ] Audio meshes can use various materials.  There are presets like "concrete", but custom materials can also be used.  They can be changed on a per-triangle basis, but maybe just a per-object or global one would be nice.
[ ] There is support for dynamic meshes that can move around.  API is challenging (AudioMesh object?)
[ ] There are misc settings like "raytracing thread count" and "max bounces" (maye conf.lua?)

[ ] Reverb/Reflections

It seems like this can either be per-source (slower, but can apply effects afterwards) or global (uses ambisonics, faster).

[ ] Ambisonic Source playback (these can be spatialized using HRTFs).
[ ] Ambisonic Mixing

Sources can be rendered to ambisonics and mixed together.  Then the single ambisonic track can be spatialized.  It's lower quality but apparently saves a bunch of overhead for a high source count.  Some sort of flag for this would be neat.

Features I'm skipping that could be supported:

Custom SOFA HRTFs
GPU Raytracing
Audio probes and baking (no idea how this works)
Some way of using the simpler panning spatialization instead of HRTFs

The dynamic meshes appear to be supported only with the Embree raytracer, so maybe I won't look into those.


values() -> ListIter bug?

I tried to run the example here to iterate over the elements (or values?) of a list. I'm running this in a binary file, src/bin/playground.rs, with vscode:
use anyhow::Result;
use extendr_api::prelude::*;

fn main() -> Result<()> {

    let robj = list!(1, 2, 3);

    let objects: Vec<_> = robj.as_list().unwrap().values().collect();

    dbg!(objects);

    Ok(())

}

And getting this error:
error[E0599]: no method named `values` found for struct `extendr_api::List` in the current scope

Not as well versed on what counts as a minimal reproducible example in Rust. Hopefully, this is sufficient.

Nevermind, this was a Windows issue.
Needed to add use extendr_engine::with_r; and use the libR-sys instructions for Windows.


Reaching definitions code developed during class

Testing AvailableExpressions class

Code from the SCSR course will not end up on the main repository.


Add terraform lint to CI pipeline

Related to #96 #412

@dtzar - @NathanielRose wanted to discuss the differences / best practice between doing listing client side via a GitHook vs server side like this PR.
What is common?  Are there tradeoffs?

This works and will at least enforce the linting now.  You can switch out (potentially) for the GitHub actions later if we think there is enough value.   Advantage of doing it server side is there is one place to check everything.

There is an option to have it on both sides. But I see more value in having in enforcing the linting prior to a PR since the server side approach does not automate updating the files to pass a lint. Unless this can be done through a GH action?


How to browse the .vmdk content in Windows

Issue Type

Support Request
Your OS
Windows 10
Summary
I there any easy tool (like 7-zip) to browse the contents of the .vmdk file located in the 'VirtualBox VMs" directory on Windows 10?
It should be a small tools not a huge software like VMware. I thougt it could be done with 7-zip, but this does not work.
Is there any other small tool for browsing the .vmdk content on Windows 10? Thank you.

Thanks for the question! I think this is a more generic question that would be better answered in either the Vagrant or VirtualBox forums, since it's a pretty specific question surrounding VirtualBox files:
https://forums.virtualbox.org


[hotfix-DTStack#957][chunjun-core,chunjun-connector-kudu]  fixed kudu…

I fixed kudu's type UNIXTIME_MICROS convert to Timestamp avoid ClassCastException the issue address [no.957]
(https://github.com/DTStack/chunjun/issues/957)

@FlechazoW


BC2A-1408: Fix conflict name issue during APP building

2nd round of the fix.
After fixing the BC2A-1408 (https://github.com/LedgerHQ/ledger-secure-sdk/pull/445), there is a side effect in this app, because of hardcoded dep/ directory path.
This PR fixes that to align with sdk update.
Note:

The scan-build fails on the latest NanoS SDK, because of macro redefinition: UNUSED
The scan-build fails on the latest NanoSP, NanoX and Stax SDK, because of DEPRECATED crypto functions

Don't forget to rebase the branch :)


Update with new Github Actions workflows

This is created for new sites using the doc plugin, but won't automatically update for existing sites.
Grab the two new ones and send a PR.

sorry got confused -- the plugin will add these in on init since this is the template


[AutoRelease] t2-appplatform-2024-07-03-87424(can only be merged by SDK owner)

https://github.com/Azure/sdk-release-request/issues/5316
Recording test success
https://dev.azure.com/azure-sdk/internal/_build?definitionId=1918

issue link:https://github.com/Azure/sdk-release-request/issues/5316


Create model discount parameters

Pull request details
Describe the changes made in this pull request

create a toml file for data on the model level (should be scenario data in the future) only for multi-year
this file is directly read in create_model. Note this means all other cases will use this toml. The discount year will matter to other test cases. Since all other cases have a year of 2030, making a discount year of 2030 would mean doing nothing.
the generalization of this data and separation of model data and scenario data should be done in the refactor #701 (under AND THEN)

List of related issues or pull requests
Closes #802
Collaboration confirmation
As a contributor I confirm

[ ] I read and followed the instructions in README.dev.md
[ ] The documentation is up to date with the changes introduced in this Pull Request (or NA)
[ ] Tests are passing
[ ] Lint is passing

Hi both @abelsiqueira @datejada, I have this draft PR to hear your opinions.
The idea is to create two parameters that apply to the model, i.e., which do not depend on the assets. Since we currently don't have a place for that, I just put them in graph-assets-data. Do you think there is a better way to do it now?
For example, I thought about creating a new file. But since my references are the current files, which look differently from this potential file (just two names with two parameters), I don't yet see a straightforward way to do it.

Hi both @abelsiqueira @datejada, I have this draft PR to hear your opinions.
The idea is to create two parameters that apply to the model, i.e., which do not depend on the assets. Since we currently don't have a place for that, I just put them in graph-assets-data. Do you think there is a better way to do it now?
For example, I thought about creating a new file. But since my references are the current files, which look differently from this potential file (just two names with two parameters), I don't yet see a straightforward way to do it.

This proposal is not ideal, we will repeat values unnecessarily. I was looking for inspiration in other models and this data is normally stored in a new entity/file/table with the model properties/constants/parameters.
What is the best way to go forward in Tulipa? I am not sure, but I am leaning toward a separate file (CSV, TOML, YAML, or JSON) to store this information and any other constant that we might want to define or need in the model.

I agree, this should be a separate file. I recommend using TOML:
model_discount_rate = 0.03
model_discount_year = 2020

Since these are parameters, not data, it makes sense that they have a different, simpler, format. Also, that they will be manage outside of TulipaIO.

Thank you both @datejada @abelsiqueira.
I created a toml file. Since it is outside TulipaIO, so I suppose it's not part of the connection (which currently is tied to read_csv in TulipaIO), but rather something else. For that I added an extra argument in io.jl. Note that this extra argument will need to added to lots of other places.
I just want to check with you if this is fine before I make changes accordingly.

It is not part of the connection. Some questions before judging how to handle it:

Is the file mandatory? Do you need it in all uses of Tulipa? If you don't have one, is there a reasonable default for the parameters?
Where do you begin to need these parameters? Which function?
Is it part of the EnergyProblem? Does it make sense to keep these parameters inside it?

@abelsiqueira thanks for thinking along

If it's planned as a temporary solution, I would just open the file directly in create_model! and then we discuss these questions in more details later.
Also, I would suggest not creating the file for every test/input, since it's only necessary for multi-year. This way you ensure you're not making it necessary.
Also, it's good to add to #701 to remember that we have to change it afterwards.

@abelsiqueira I made the changes accordingly, but read in the data in create_model instead of create_model!, this way I don't have to add additional arguments for now.

Closed in favor of #813.


Encountered "recursive loop does not contain a tag union" unification panic

Ran into this:

An internal compiler expectation was broken.
This is definitely a compiler bug.
Please file an issue here: https://github.com/roc-lang/roc/issues/new/choose
thread '' panicked at 'recursive loop does not contain a tag union', crates/compiler/unify/src/unify.rs:2383:13

To reproduce, add this to helloWorld.roc: (removing the type annotation from await fixes it)
Effect a : [
    FileWriteUtf8 Str Str (Result {} [NotFound, Malformed] -> a),
    FileReadUtf8 Str (Result Str [NotFound, Malformed] -> a),
    StdoutLine Str a,
    StdinLine (Str -> a),
]

CompleteTask : [
    Done,
    Run (Effect (CompleteTask)),
]

PartialTask a := (a -> CompleteTask) -> CompleteTask

await : PartialTask a, (a -> PartialTask b) -> PartialTask b
await = \@PartialTask f, g ->
    @PartialTask \c -> f \x -> (g x) c

Here's another reproduction which triggers it - this one has a type mismatch in it (I updated FileWriteUtf8 and FileReadUtf8 in SimEffect but didn't update their pattern matches in simualateFx to match), and it triggers the same panic: https://gist.github.com/rtfeldman/ec587f3a00f83dd60a97ead0c77c833a

Smaller repro: https://gist.github.com/rtfeldman/ceca03f1610c14a0cdf4e3e77712b72d


fix(Select): Fix the placeholder's color

Issue: #770
What I did

Fix the placeholder's color.
Screenshots:

Checklist

[x] changeset has been added
[x] Pull request description is descriptive
[ ] I have made corresponding changes to the documentation
[x] New and existing unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works

How to test

Looks good!


fix: Make required changes in hotkey custom timer message.

fix #3719
Description
Make required changes in custom timer alert message .
Visual Changes
Before

After

Changelog
go to
src -> components -> HotkeyAnchor -> HotkeyAnchor.tsx
inside startTimer function, I just change the title according to the requirement.
Checklist

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] The light- and dark-theme are both supported and tested
[x] The design was implemented and is responsive for all devices and screen sizes
[x] The application was tested in the most commonly used browsers (e.g. Chrome, Firefox, Safari)

Hey @m-njot-singh, thank you for your contribution! Please make sure that the new toast message is translated into English and German. To do this, you should edit our translation file in the `public/' folder.

Hey @brandstetterm  I just commit the require changes in public folder, can you please review once .

Thank you for your contribution @m-njot-singh 🥳


Postgresql sequences values incorrectly shown and saved

Description
When I open existing sequence it displays "Last value" - which is ok - it's the current value.
After editing the Last value to 5 it makes the alter sequence:
ALTER SEQUENCE public.testtable_id_seq 	RESTART 5;
which really sets the "next" value of sequence. But there are some problems:

it is confusing - input with label Last value sets Next value
it doesn't allow me to decrease the sequence by 1 - because I need to input the same value - but then it can not be saved (because the IDE doesn't see any change)
after editing and saving the sequence editor doesn't show any value even after refreshing sequences list

I see 2 possible solutions:

better - use two fields - last value (read only) and next value (initially empty, editable)
use current field - last value (editable) - save could be done with sql setval (with third parameter is_called = false - this sets the current value)

DBeaver Version
CE <IP_ADDRESS>303250535
Operating System
Linux Mint 21
Database and driver
Postgresql 14
Steps to reproduce
Create table
CREATE TABLE public.testtable (
	id serial4 NOT NULL,
	testchar varchar NULL, -- this is my comment
	CONSTRAINT testtable_pkey PRIMARY KEY (id)
);

Insert any data (to really create sequence):
insert into testtable(testchar) values ('test');

Verify sequence:
select currval('testtable_id_seq')

=> 1 - OK
Edit sequence - set value (into field labeled Last value) - 5. Close.
Open the sequence - the Last value is empty.
Verify sequence value via sql:
select currval('testtable_id_seq')

=> 1 - current value is not changed (that's ok - we really set next value)
Insert any data and watch the created id:
insert into testtable(testchar) values ('test');
select max(id) from testtable;

=> 5 - ok
Additional context
No response

Thank you for bug report.

Ran into this issue on version <IP_ADDRESS>311191730, may I know if this is currently being worked on?

We haven't worked on this issue yet.
You can vote for the issue with 👍 under the issue description to promote it to a higher priority.


can I get server current time using node.js ?

Hi all,
please, I need to get the Redis server insert time put I didn't find a way to do that the only one that was useful is to me is to insert the current Redis server time that found in this site, did anyone know how to use time command with node.js have a way to get the insert time?

@MarwaAbed TIME is supported. In node_redis it should be client.time(function(err,resp) { ... }).

thank you Mr. Kyle J. Davis


Add media info get/subscribe to DLNAService

See https://github.com/ConnectSDK/Connect-SDK-Android/issues/166

It was implemented in v1.4.0.


Can't switch or close tabs on tablet view, after enabling bottom tolbar on phone view ( Galaxy Fold3 )

Describe the bug
While the app is used in in tablet/unfolded mode/view, the "bottom toolbar" option that was enabled previously in phone/folded mode/view, will make the tab selecting or quitting unfunctional in tablet mode, meaning that I can't quit or select them at all ( as a workaround the tab switch can be used by sliding left or right on the toolbar )
To Reproduce

Open the app in phone/folded view/mode
Go to Setting/Toolbar/ and enable "Bottom Toolbar"
Quit app
Unfold the phone/make it into unfolded view/mode, then open Kiwi
Open multiple tabs
Try to press on the tab "X" button to close them, or try to directly press on the tabs to switch them

Expected behavior
Pressing the "X" button should close the tab, and pressing the tab should actually switch to it.
Smartphone (please complete the following information):

Device: Samsung Galaxy Z Fold3
Android Version : Android 12
Kiwi Browser Version 101.0.4951.48

Additional context
I will try to investigate the code and fix this myself, If I don't manage to do it until I get a reply, please let me know where I should look.

???

The Devs are sleeping lol

Can't seem to understand who is the "owner" or act as maintainer of the app...


Ubuntu does not bind to ip adress - only localhost

Thanks for your efforts here!
This is probably more of a question than an actual issue: I tried running minirps on my Ubuntu box. It is accessible over http://localhost but not over host ip. Other services running on the same host does not have this issue. Any hints?

Normally when it works on localhost but not via IP it may be related to the firewall.
This is very common for me on AWS and other providers.
Normally what I do is:

Check the firewall of the machine in question.
Check the router or, in the case of AWS, the access rules.

It is important at each stage to try to create the simplest examples you can to isolate the problem in question.

In the case of Ubuntu Box I never messed with it.
I believe it is a virtual machine.
I don't know how to use any operating system other than Linux.
You have to see how the host OS communicates with the Ubuntu box.

My suggestion is to use well-established commands like:
python3 -m http.server
which only serves static directories and is available on all Linux.
If it fails, it is certain that the problem is the Ubuntu firewall or the host OS.
Otherwise, the problem is very likely to be the minirps.


Translation

Where to find all translations, want to translate it into russian.

The community uses Crowdin to translate Gogs: https://crowdin.com/project/gogs/invite

Thank you!

@loicsaintroch thanks for your answer!
@DraugDev here are some help info: http://gogs.io/docs/features/i18n.html

How to translate the website?

@alexandre-mbm The documentation is at gogits/docs

@alexandre-mbm I see! Sorry! That is not translatable at the moment, as you can see here

Hi @alexandre-mbm , for the part you circled, you have to translate in home.tmpl  where @dentmaged pointed. :dizzy:

There will be i18n for the home.tmpl?

Here is the example of how to add Chinese version: https://github.com/gogits/gogs/blob/6f81c05dde2def51c30a97f65f901ae45c971e05/templates/home.tmpl#L54-L90
You can copy and paste and translate to your language :satisfied:


Django 3x error fix

Summernote not working in Django 3x

Must use for summernote to work in Django 3x
In settings.py
X_FRAME_OPTIONS = 'SAMEORIGIN'

Must use for summernote to work in Django 3x
In settings.py
X_FRAME_OPTIONS = 'SAMEORIGIN'

Must use for summernote to work in Django 3x
In settings.py
X_FRAME_OPTIONS = 'SAMEORIGIN

Must use for summernote to work in Django 3x
In settings.py
X_FRAME_OPTIONS = 'SAMEORIGIN


move inline_elements, special_elements, self_closing_elements out of …

…module to the initial options

Hi, thanks for your contribution.
Unfortunately, this one is not passing CI : (
Also, it appears to be mutating the constants which would have side effects on subsequent calls. If you come up with a better solution, please submit a new PR.


Update iterm2-nightly.rb: zaps and appcast

Just bringing this formula in line with the iTerm2 stable formula, mostly so that a zap will remove all files. Also added the appcast url.
If there’s a checkbox you can’t complete for any reason, that's okay, just explain in detail why you weren’t able to do so.
After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

Additionally, if updating a cask:

[ ] If the sha256 changed but the version didn’t,
provide public confirmation by the developer: {{link}}

Additionally, if adding a new cask:

[ ] Named the cask according to the token reference.
[ ] brew cask install {{cask_file}} worked successfully.
[ ] brew cask uninstall {{cask_file}} worked successfully.
[ ] Checked there are no open pull requests for the same cask.
[ ] Checked the cask was not already refused in closed issues.
[ ] Checked the cask is submitted to the correct repo.

Thank you, and welcome.


Fixes GUIInputBox issues

Fixes issue #115

Could you split this PR out into a different branch that has fewer Intermediate commits? Merging this would add a lot of stuff to the git log.


Version control added to build

For issue #11
Whenever a version update happens, all that needs to change is the new git_commit.js file version number.
Instead of using number of commits to head git rev-list --count HEAD, I chose first 8 characters of commit (Linux builds does the same). If it was number of commits from HEAD, I thought there might be duplicates if we do a commit fixup or reverts of main.

I think this only versions the TypeScript packages. We have to define a version for both the built '.vsix' package and the native 'p4analyzer' binary.
Nx allows you to build custom executors that allow you to define build utilities. This may be the best approach.

The .vsix file name does get updated with the file version automatically from npx. You can see it in action with the artifact from the CI pipeline.
I will work on the prebuild script for the binaries names

Redundant as #40 is a better approach


Add command line --json argument

Add an argument to output the device._json_state to simplify the process of obtaining device json data for future development. Write a section in the readme to describe how to use this functionality to add an issue to request the addition of the device.

Finished in v0.10.0


Migrate documentation from wiki to Read The Docs

Summary
I'm raising this issue here to collect the conversation that happened in the past in various xspec repos, namely https://github.com/xspec/xspec/issues/1053#issuecomment-655534644, https://github.com/xspec/xspec.github.io/issues/2 and https://github.com/xspec/xspec.github.io/issues/3
Using the GitHub wiki for storing xspec documentation has the following shortcomings:

We cannot create PRs to fix documentation errors as discussed in https://github.com/xspec/xspec/issues/1053#issuecomment-655534644. The wiki works on a single branch and any change to the docs needs to be applied directly to that branch, no review mechanism is currently possible on the wiki.
There is no search functionality for the content (the only search functionality provided by the wiki is search by title page).
When a new feature is developed, we have to wait for the feature to be merged into the master branch to create the relevant documentation.
There is no concept of documentation versioning in the wiki (e.g. a feature may have a difference behaviour from - say - version 1 to version 2 but the wiki documentation can't reflect this).

My initial idea was to migrate the documentation to the xspec website as it allows the usual PR review workflow to update documentation. However, I found a neater solution in Read the Docs which is a popular framework for storing and sharing documentation.
I set up a proof of concept with a couple of documentation pages at https://xspec-docs.readthedocs.io
This is currently linked to my personal GitHub repository where the docs files are stored at https://github.com/cirulls/xspec-docs/tree/main/docs/source
I believe setting up a Read The Docs site fixes the following shortcomings of the wiki:

We can use the usual workflow PR -> review -> merge -> publish new documentation.
There is a full search functionality for content. You can see it in action in this screenshot:

More details on how search is implemented in Read The Docs are in https://docs.readthedocs.io/en/stable/development/search.html and https://docs.readthedocs.io/en/stable/guides/advanced-search.html
We can prepare the documentation in a PR while the feature is being developed and update the docs when the feature is merged.
Read The Docs supports versioning.

But I can also see some issues in using Read The Docs:

The documentation is in a separate repository so there is a separation between the code and the documentation. This could be a good or a bad thing but I want to raise it.
As far as I could read, using the hosted version of Read The Docs requires to write the documentation in reStructuredText which is a documentation format popular in Python. Markdown is supported only on the deploy-yourself Read the Docs (I need to do more digging here but this is what I understood so far). It is fairly easy to pick up and there are tools like pandoc to automatically convert from Markdown to reStructuredText (in fact, I have been using pandoc for the proof of concept with very little manual editing). Again, I want to raise this as it is yet another documentation format that we don't currently use in XSpec.

Next steps
I would like to get some feedback on the proof of concept at https://xspec-docs.readthedocs.io and see if it is worth for me to continue with the migration. In particular, I'd like feedback to the following questions:

Do you find the proof of concept interesting? Could Read The Docs be a good tool for migrating our documentation? Can you see any other advantages/disadvantages?
Shall I continue with migrating XSpec docs to Read the Docs? If so, I'll like to create a new repo in the xspec organisation  (instead of using my personal repo) or move the ownership to the xspec organisation and continue migrating the docs from there.
If 2 is yes, is anyone interested in helping out with the docs migration? This would involve migrating the current docs, reviewing PRs, testing the Read the Docs website, contributing with ideas, etc.

Thanks!

Hi, @cirulls .
Thanks for exploring this idea! It looks interesting. I'm not very familiar with the xspec website, so I wondered what makes Read The Docs better.
Given that the Read The Docs approach would put the doc in a separate GitHub repo compared to the XSpec code, is there a way to make it easy for XSpec contributors or XSpec users to update the doc and code together if that's what they want? Is that what submodules do?
The Home page of the XSpec wiki says 43 pages. Is that the number of pages we would need to migrate, if we go ahead? I should be able to pitch in, though it might be spread out over a period of time.

I missed this one !
Read the docs seems to be a good solution, but :

there will be now 3 sites on xspec, github, xspec.io, and xspec-docs.read...), which
is not the best thing for a centralized access
would we be able to automate documentation publication to this new site ?
do we still need xspec.io site ?


Sorting files in Project Panel

Check for existing issues

[x] Completed

Describe the feature
Add the ability to sort files like in VS Code.
If applicable, add mockups / screenshots to help present your vision of the feature
VS Code

Zed

looks like Zed still does sort it, but alphabetically instead of numerically

+1 sort order option to customize sorting.


Code Block error

When I indicate the language of the code block，Mind-map would fail. I delete the language mark and then mind-map worked.

It is Not programmer-friendly

Try using ![[note1#codeblock]] to reference the code block from other notes.

I had the same problem


OOM when doing 2 back to back training with RMM allocator.

Error log, as we see that the first training is successful while the second training failed. Both training use the same training data and same training params. I wonder if you can test with a back to back training use case, if not I can provide a repro, it will take a bit of time.
task [xgboost.dask]:tcp://<IP_ADDRESS>:33887 connected to the tracker
task [xgboost.dask]:tcp://<IP_ADDRESS>:33887 got new rank 3
[05:42:11] WARNING: /script/xgboost/src/learner.cc:516:
Parameters: { silent, verbose_eval } might not be used.

  This may not be accurate due to some parameters are only used in language bindings but
  passed down to XGBoost core.  Or some parameters are not used but slip through this
  verification. Please open an issue if you find above cases.

Training evaluation history: {'train': {'rmse': [0.491223, 0.483855, 0.477688, 0.472255, 0.467351, 0.463474, 0.459847, 0.456857, 0.454022, 0.451582, 0.449487, 0.447611, 0.445904, 0.444342, 0.443071, 0.441811, 0.440697, 0.439497, 0.438545, 0.437626, 0.436761, 0.435945, 0.435231, 0.434618, 0.434, 0.433466, 0.432905, 0.432366, 0.431946, 0.431472, 0.431012, 0.430578, 0.430223, 0.429786, 0.429488, 0.429174, 0.428837, 0.428552, 0.428244, 0.427933, 0.427624, 0.427457, 0.42716, 0.426887, 0.426606, 0.426406, 0.426178, 0.426049, 0.425808, 0.425553, 0.425341, 0.425107, 0.424916, 0.424803, 0.424621, 0.424426, 0.424233, 0.42408, 0.423866, 0.423771, 0.423574, 0.4234, 0.423313, 0.423156, 0.422995, 0.422862, 0.422741, 0.422633, 0.422497, 0.422372, 0.422204, 0.422142, 0.422026, 0.421863, 0.421704, 0.421597, 0.421515, 0.421353, 0.421272, 0.421151, 0.421096, 0.420942, 0.420857, 0.420706, 0.4206, 0.420483, 0.420418, 0.420319, 0.420217, 0.420169, 0.420044, 0.419974, 0.419871, 0.419833, 0.419772, 0.419668, 0.419597, 0.419533, 0.419422, 0.419391]}}
---<PHONE_NUMBER>0204773 seconds ---
task [xgboost.dask]:tcp://<IP_ADDRESS>:33887 connected to the tracker
task [xgboost.dask]:tcp://<IP_ADDRESS>:33887 got new rank 0

terminate called after throwing an instance of 'thrust::system::system_error'
  what():  for_each: failed to synchronize: cudaErrorIllegalAddress: an illegal memory access was encountered

@hcho3

Thanks for testing. Did you re-use the Dask cluster object?

correct the code looks like:
  async with Client(address, asynchronous=True) as client:
    dask.config.set({'distributed.scheduler.work-stealing': False})
    print(dask.config.get('distributed.scheduler.work-stealing'))
    dask.config.set({'distributed.scheduler.bandwidth': 1})
    print(dask.config.get('distributed.scheduler.bandwidth'))
    dask.config.set({'distributed.logging.distributed':'debug'})
    print(dask.config.get('distributed.logging.distributed'))
    dask.config.set({'distributed.logging.worker':'debug'})
    print(dask.config.get('distributed.logging.worker'))
    dask.config.set({'distributed.logging.tornado':'debug'})
    print(dask.config.get('distributed.logging.tornado'))

    await client.wait_for_workers(4)
    colnames = ['label'] + ['feature-%02d' % i for i in range(1, 29)]
    df = dask_cudf.read_csv('/script/rapids/higgs_1g/*',header=None, names=colnames)
    start_time = time.time()
    dtrain = await xgb.dask.DaskDeviceQuantileDMatrix(client, df[df.columns.difference(['label'])], df['label'])
    output = await xgb.dask.train(client,
                        { 'verbosity': 2,
                         'learning_rate': 0.1,
                          'max_depth': 8,
                          'objective': 'reg:squarederror',
                          'subsample': 0.6,
                          'gamma': 1,
                          'silent': True,
                          'verbose_eval': True,
                          'tree_method':'gpu_hist'
                        },
                        dtrain,
                        num_boost_round=100, evals=[(dtrain, 'train')])
    booster = output['booster']
    history = output['history']
    booster.save_model('xgboost-model')
    print('Training evaluation history:', history)
    print("--- %s seconds ---" % (time.time() - start_time))
    output2 = await xgb.dask.train(client,
                        { 'verbosity': 2,
                         'learning_rate': 0.1,
                          'max_depth': 8,
                          'objective': 'reg:squarederror',
                          'subsample': 0.6,
                          'gamma': 1,
                          'silent': True,
                          'verbose_eval': True,
                          'tree_method':'gpu_hist'
                        },
                        dtrain,
                        num_boost_round=100, evals=[(dtrain, 'train')])
    booster2 = output2['booster']
    history2 = output2['history']
    booster2.save_model('xgboost-model')
    print('Training evaluation history:', history2)
    print("--- %s seconds ---" % (time.time() - start_time))
    await client.shutdown()

Where is the cluster object? Did you use LocalCUDACluster?

this is not a localCUDACluster, but a distributed scheduler + dask cuda workers
In localCUDACluster, the second training won't even start.
Training evaluation history: {'train': {'rmse': [0.49104, 0.483645, 0.477122, 0.471811, 0.467029, 0.463054, 0.459339, 0.456481, 0.453707, 0.451405, 0.449211, 0.447246, 0.445589, 0
.444098, 0.442544, 0.44127, 0.440069, 0.438924, 0.437801, 0.436787, 0.435917, 0.435151, 0.434412, 0.433683, 0.433105, 0.432483, 0.431929, 0.431403, 0.430921, 0.430507, 0.430177, 0.429744, 0.429332, 0.428975, 0.428683, 0.428295, 0.427951, 0.427533, 0.427227, 0.426927, 0.426637, 0.426253, 0.425954, 0.425682, 0.425407, 0.425167, 0.424892, 0.42458, 0.42435, 0.
424168, 0.423898, 0.423657, 0.423483, 0.423272, 0.423049, 0.422932, 0.42271, 0.42245, 0.422215, 0.421989, 0.421871, 0.421697, 0.421489, 0.421351, 0.421198, 0.421085, 0.420974, 0.4
20793, 0.42061, 0.420468, 0.420281, 0.420081, 0.41997, 0.419868, 0.419712, 0.419562, 0.419361, 0.419209, 0.419019, 0.418898, 0.418787, 0.418601, 0.418497, 0.418411, 0.418236, 0.418165, 0.418011, 0.41789, 0.417751, 0.417647, 0.41757, 0.417474, 0.417383, 0.417252, 0.417147, 0.416991, 0.416833, 0.416696, 0.416626, 0.416525]}}
---<PHONE_NUMBER>2247314 seconds ---
distributed.scheduler - CRITICAL - Tried writing to closed comm: {'op': 'lost-data', 'key': 'tuple-e2429eb0-7913-4b2c-bdb5-7d329969c85e'}
distributed.scheduler - CRITICAL - Tried writing to closed comm: {'op': 'lost-data', 'key': 'tuple-56a2ab2c-e1a8-4a13-bbcc-ed33f76f085a'}
distributed.scheduler - CRITICAL - Tried writing to closed comm: {'op': 'lost-data', 'key': 'tuple-b22273e6-e66f-4953-a6e2-7e7f6cbbacbc'}
distributed.scheduler - CRITICAL - Tried writing to closed comm: {'op': 'lost-data', 'key': 'tuple-bfc682ba-b3c8-4a74-95f1-dd83b034c400'}
distributed.scheduler - CRITICAL - Tried writing to closed comm: {'op': 'lost-data', 'key': 'tuple-508c9c31-f5fa-46e3-8da7-73d823f88d01'}
distributed.scheduler - CRITICAL - Tried writing to closed comm: {'op': 'lost-data', 'key': 'tuple-2470f6ca-9865-4ce4-9a03-41c1bfb5232c'}
distributed.scheduler - CRITICAL - Tried writing to closed comm: {'op': 'lost-data', 'key': 'tuple-ec7cc568-cb1a-48ff-8c24-98169f3f4241'}
distributed.scheduler - CRITICAL - Tried writing to closed comm: {'op': 'lost-data', 'key': 'tuple-95080cf6-5fb9-491b-a7bb-670885e6fa58'}
distributed.scheduler - CRITICAL - Tried writing to closed comm: {'op': 'lost-data', 'key': 'tuple-8c472815-d187-443c-8cb7-cca22fb65dea'}
distributed.scheduler - CRITICAL - Tried writing to closed comm: {'op': 'lost-data', 'key': 'tuple-156b3541-dfaa-46c7-9352-ea5825ca14e5'}
distributed.scheduler - CRITICAL - Tried writing to closed comm: {'op': 'lost-data', 'key': 'tuple-fab857f5-08cf-4685-b452-ece0a93d7f98'}

Also I think ideally when XGBoost and dask_cudf both use RMM, dask_cudf should be able to hand over the GPU memory to XGBoost and spill to host memory. The current behavior is OOM.

You can set rmm_pool_size option in LocalCUDACluster. How do you currently initialize the RMM memory pool? Without initializing, XGBoost will use the default CUDA memory allocator, which just defaults to cudaMalloc().

Can you post an example with LocalCUDACluster that produces crashes?

@hcho3 To launch a cuda cluster on local machine, you can first launch dask-scheduler and then dask-cuda-worker.

They are command line tools, you can check the help option.

localCUDAcluster:
import dask_cudf, rmm
from dask.distributed import Client, wait
from dask_cuda import LocalCUDACluster
from dask_cuda.initialize import initialize
import asyncio
import xgboost as xgb

if __name__=='__main__':
  enable_nvlink = True
  initialize(
    create_cuda_context=True,
    enable_nvlink=enable_nvlink
  )

  colnames = ['label'] + ['feature-%02d' % i for i in range(1, 29)]
  cluster = LocalCUDACluster(rmm_pool_size='20GB')
  client = Client(cluster, asynchronous=True)
  df = dask_cudf.read_csv('/rapids/my_data/RAPIDS/higgs_1g/*e.csv',header=None, names=colnames)
  start_time = time.time()
  dtrain = xgb.dask.DaskDeviceQuantileDMatrix(client, df[df.columns.difference(['label'])], df['label'])
  output = xgb.dask.train(client,
                        { 'verbosity': 2,
                         'learning_rate': 0.1,
                          'max_depth': 8,
                          'objective': 'reg:squarederror',
                          'subsample': 0.6,
                          'gamma': 1,
                          'silent': True,
                          'verbose_eval': True,
                          'tree_method':'gpu_hist'
                        },
                        dtrain,
                        num_boost_round=100, evals=[(dtrain, 'train')])
  booster = output['booster']
  history = output['history']
  booster.save_model('xgboost-model')
  print('Training evaluation history:', history)
  print("--- %s seconds ---" % (time.time() - start_time))
  output = xgb.dask.train(client,
                        { 'verbosity': 2,
                         'learning_rate': 0.1,
                          'max_depth': 8,
                          'objective': 'reg:squarederror',
                          'subsample': 0.6,
                          'gamma': 1,
                          'silent': True,
                          'verbose_eval': True,
                          'tree_method':'gpu_hist'
                        },
                        dtrain,
                        num_boost_round=100, evals=[(dtrain, 'train')])
  booster = output['booster']
  history = output['history']
  booster.save_model('xgboost-model')
  print('Training evaluation history:', history)
  print("--- %s seconds ---" % (time.time() - start_time))

@mengdong I ran your script just now and I could not reproduce the error.
Output:
task [xgboost.dask]:tcp://<IP_ADDRESS>:34721 connected to the tracker
task [xgboost.dask]:tcp://<IP_ADDRESS>:36311 connected to the tracker
task [xgboost.dask]:tcp://<IP_ADDRESS>:34655 connected to the tracker
task [xgboost.dask]:tcp://<IP_ADDRESS>:34299 connected to the tracker
task [xgboost.dask]:tcp://<IP_ADDRESS>:34721 got new rank 0
task [xgboost.dask]:tcp://<IP_ADDRESS>:36311 got new rank 1
task [xgboost.dask]:tcp://<IP_ADDRESS>:34655 got new rank 2
task [xgboost.dask]:tcp://<IP_ADDRESS>:34299 got new rank 3
[06:39:28] WARNING: ../src/learner.cc:516:
Parameters: { silent, verbose_eval } might not be used.

  This may not be accurate due to some parameters are only used in language bindings but
  passed down to XGBoost core.  Or some parameters are not used but slip through this
  verification. Please open an issue if you find above cases.

[06:39:28] WARNING: ../src/learner.cc:516:
Parameters: { silent, verbose_eval } might not be used.

  This may not be accurate due to some parameters are only used in language bindings but
  passed down to XGBoost core.  Or some parameters are not used but slip through this
  verification. Please open an issue if you find above cases.

[06:39:28] WARNING: ../src/learner.cc:516:
Parameters: { silent, verbose_eval } might not be used.

  This may not be accurate due to some parameters are only used in language bindings but
  passed down to XGBoost core.  Or some parameters are not used but slip through this
  verification. Please open an issue if you find above cases.

[06:39:28] WARNING: ../src/learner.cc:516:
Parameters: { silent, verbose_eval } might not be used.

  This may not be accurate due to some parameters are only used in language bindings but
  passed down to XGBoost core.  Or some parameters are not used but slip through this
  verification. Please open an issue if you find above cases.

  This may not be accurate due to some parameters are only used in language bindings but
  passed down to XGBoost core.  Or some parameters are not used but slip through this
  verification. Please open an issue if you find above cases.

[06:39:39] WARNING: ../src/learner.cc:516:
Parameters: { silent, verbose_eval } might not be used.

  This may not be accurate due to some parameters are only used in language bindings but
  passed down to XGBoost core.  Or some parameters are not used but slip through this
  verification. Please open an issue if you find above cases.

[06:39:39] WARNING: ../src/learner.cc:516:
Parameters: { silent, verbose_eval } might not be used.

  This may not be accurate due to some parameters are only used in language bindings but
  passed down to XGBoost core.  Or some parameters are not used but slip through this
  verification. Please open an issue if you find above cases.

[06:39:39] WARNING: ../src/learner.cc:516:
Parameters: { silent, verbose_eval } might not be used.

  This may not be accurate due to some parameters are only used in language bindings but
  passed down to XGBoost core.  Or some parameters are not used but slip through this
  verification. Please open an issue if you find above cases.

Training evaluation history: {'train': {'rmse': [0.489754, 0.481133, 0.473923, 0.467656, 0.462325, 0.457787, 0.453964, 0.450485, 0.447503, 0.445082, 0.442774, 0.440819, 0.439023, 0.437513, 0.436065, 0.434803, 0.433585, 0.432497, 0.431408, 0.430439, 0.429598, 0.428798, 0.427992, 0.427289, 0.426687, 0.426076, 0.425612, 0.425083, 0.424635, 0.424269, 0.423906, 0.423535, 0.423229, 0.422898, 0.422565, 0.422271, 0.422061, 0.421806, 0.421545, 0.42131, 0.4211, 0.420845, 0.42065, 0.420438, 0.420241, 0.420024, 0.419833, 0.419666, 0.41949, 0.41932, 0.419182, 0.419015, 0.418866, 0.418687, 0.418552, 0.418415, 0.41828, 0.41814, 0.417975, 0.417875, 0.417804, 0.417663, 0.417529, 0.417413, 0.417312, 0.417224, 0.417101, 0.416989, 0.416836, 0.416736, 0.416636, 0.416564, 0.416505, 0.416407, 0.416332, 0.416286, 0.416221, 0.416118, 0.41606, 0.415951, 0.415845, 0.415791, 0.415687, 0.415581, 0.415539, 0.415444, 0.41538, 0.415314, 0.4152, 0.4151, 0.415057, 0.414944, 0.414873, 0.41484, 0.414746, 0.414695, 0.414594, 0.41447, 0.414364, 0.414303]}}
--- 25.125795602798462 seconds ---

Hardware: AWS EC2 instance, g4dn.12xlarge type (Four NVIDIA T4 GPUs), Ubuntu 18.04 LTS, CUDA 10.2, GCC 7.5.0
I obtained HIGGS.csv from https://archive.ics.uci.edu/ml/datasets/HIGGS and put it in the EBS volume attached to the EC2 instance.
 -DPLUGIN_RMM=ON -DUSE_CUDA=ON -DUSE_NCCL=ON -DGPU_COMPUTE_VER=75 \
    -DCMAKE_PREFIX_PATH=$CONDA_PREFIX -DBUILD_WITH_SHARED_NCCL=ON -GNinja
ninja
cd ..

I use about 12 GB of data for 1 T4.

Does your system have only 1 T4 card? Please be more specific about your hardware setup.

@mengdong Is it possible to share characteristics of the data? I assumed it was HIGGS, but I may be wrong.

@mengdong Thank you for letting me access to your data. I downloaded all 46 CSV files (each 1GB) and ran the script. It ran all the way without crashing.
import dask_cudf, rmm
from dask.distributed import Client, wait
from dask_cuda import LocalCUDACluster
from dask_cuda.initialize import initialize
import asyncio
import time
import xgboost as xgb

if __name__=='__main__':
  enable_nvlink = True
  initialize(
    create_cuda_context=True,
    enable_nvlink=enable_nvlink
  )

  colnames = ['label'] + ['feature-%02d' % i for i in range(1, 29)]
  cluster = LocalCUDACluster(rmm_pool_size='8GB')
  client = Client(cluster, asynchronous=True)
  df = dask_cudf.read_csv('../data/*.csv', header=None, names=colnames)
  start_time = time.time()
  dtrain = xgb.dask.DaskDeviceQuantileDMatrix(client, df[df.columns.difference(['label'])], df['label'])
  output = xgb.dask.train(client,
                        { 'verbosity': 2,
                         'learning_rate': 0.1,
                          'max_depth': 8,
                          'objective': 'reg:squarederror',
                          'subsample': 0.6,
                          'gamma': 1,
                          'silent': True,
                          'verbose_eval': True,
                          'tree_method':'gpu_hist'
                        },
                        dtrain,
                        num_boost_round=100, evals=[(dtrain, 'train')])
  booster = output['booster']
  history = output['history']
  booster.save_model('xgboost-model')
  print('Training evaluation history:', history)
  print("--- %s seconds ---" % (time.time() - start_time))
  output = xgb.dask.train(client,
                        { 'verbosity': 2,
                         'learning_rate': 0.1,
                          'max_depth': 8,
                          'objective': 'reg:squarederror',
                          'subsample': 0.6,
                          'gamma': 1,
                          'silent': True,
                          'verbose_eval': True,
                          'tree_method':'gpu_hist'
                        },
                        dtrain,
                        num_boost_round=100, evals=[(dtrain, 'train')])
  booster = output['booster']
  history = output['history']
  booster.save_model('xgboost-model')
  print('Training evaluation history:', history)
  print("--- %s seconds ---" % (time.time() - start_time))

Do we have a specific commit of RMM and dask and dask cuda?

I verify the issue no longer exists when I use a stable rapids runtime. Closing the bug. Thanks @hcho3 for investigating and @trivialfis


Switch to elm-test 0.18.4

Using latest elm-test, some of the files generated by elm-doc-test
become redundant and/or breaking. Removing all but the actual specs mean
running elm-test from the project root after generating the tests,
will automatically pick them up.

Looks good to me. Thanks for your contribution ❤

published with 3.0.0


Resetting the progress from the form doesn't seem to refresh the progress gauge on study chapters

fixed in v2.3.164


Fixes #12013: Fix for a pure virtual call in Sds constructor

Signed-off-by: Dmitri Dolguikh<EMAIL_ADDRESS>Fix for https://github.com/envoyproxy/envoy/issues/12013
Risk Level: low
Testing: Added a test
Docs Changes: n/a
Release Notes: n/a

ping @snowp

Realised there's a better way to handle this.