docs: add-blog

Adding new blog to Crawlee Blog

Cc: @janbuchar / @barjin

@janbuchar can we please make it live today? I need to give link to marketing for the newsletter :)

@janbuchar can we please make it live today? I need to give link to marketing for the newsletter :)

I believe so, there is just a handful of comments to resolve.

@janbuchar  done :)


G700s: Burns through batteries

Information

ratbagd version (ratbagd --version): 0.12
Distribution: Arch Linux
Kernel version: Linux 5.4.8-arch1-1 x86_64 GNU/Linux

Describe the bug
I go through batteries like crazy since I moved from Windows to Arch Linux. Are we missing a power saving feature? My guess is that on Windows, the Gaming Software is letting the mouse sleep when not in use.

The initial setup process is kind of communication-intensive. Does this happen when ratbagd is not running? If this happens due to too much communication something like #896 for HID++ 1.0 should help.

Hey @calvertdw, bumping, have you ran the device without ratbagd and did you notice a difference?

 On Windows with the gaming software I think it lasts weeks if not months.


add cache_images to lightning

Adds dvclive.lightning.DVCLiveLogger(cache_images=True)

Codecov Report
Patch and project coverage have no change.

Comparison is base (cae5129) 89.70% compared to head (2abe75d) 89.70%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #614   +/-   ##
=======================================
  Coverage   89.70%   89.70%
=======================================
  Files          43       43
  Lines        2983     2983
  Branches      247      247
=======================================
  Hits         2676     2676
  Misses        268      268
  Partials       39       39

Impacted Files
Coverage Δ

src/dvclive/lightning.py
0.00% <ø> (ø)

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

@daavoo Any ideas for how to test when adding a new Live() option that it also exists in the lightning logger?

@daavoo Any ideas for how to test when adding a new Live() option that it also exists in the lightning logger?

I guess we need to remember to update this test with the new args: https://github.com/iterative/dvclive/blob/a0de508ace2df86413b3d9952abaa652cbbdad5d/tests/test_frameworks/test_lightning.py#L144-L158
Seems like the reasonable thing to do since we don't change or have that many args and it is the only framework where the args are not directly passed like in other frameworks as Live(**kwargs)

Seems like the reasonable thing to do since we don't change or have that many args and it is the only framework where the args are not directly passed like in other frameworks as Live(**kwargs)

Added a test, but I think not changing it often is why I forget to do it. Anyways, I don't have any better ideas for now. Just a thought.


client: connect and publish to many accounts

Codecov Report

Merging #30 (192af2b) into main (373e3ce) will decrease coverage by 2.74%.
The diff coverage is 55.76%.

@@            Coverage Diff             @@
##             main      #30      +/-   ##
==========================================
- Coverage   22.00%   19.26%   -2.75%
==========================================
  Files           5        5
  Lines         209      244      +35
==========================================
+ Hits           46       47       +1
- Misses        160      196      +36
+ Partials        3        1       -2

Flag
Coverage Δ

unittests
19.26% <55.76%> (-2.75%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

main.go
3.38% <0.00%> (-0.39%)
:arrow_down:

client/setup.go
51.78% <65.90%> (-37.11%)
:arrow_down:

client/discord.go
0.00% <0.00%> (-21.06%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Possible race condition sometimes gives error: Cannot read property 'uid' of null

First off, I love this starter kit. Thank you so much for the valuable contribution.
I have been building an app with for a few weeks and very rarely, perhaps once every two days, navigating to a screen will return an error:
Cannot read property 'uid' of null
Looking at getFavourites for example:
export function getFavourites(dispatch) {
  if (Firebase === null) return () => new Promise(resolve => resolve());

  const UID = Firebase.auth().currentUser.uid;
  if (!UID) return false;

  const ref = FirebaseRef.child(`favourites/${UID}`);

  return ref.on('value', (snapshot) => {
    const favs = snapshot.val() || [];

    return dispatch({
      type: 'FAVOURITES_REPLACE',
      data: favs,
    });
  });
}

Is it possible this creates a race condition and there are times where the component loads but Firebase did not have the time to provide currentUser (and so getFavourites has replaced uid in the store with null)?
I can't reproduce the error on command, it just happens occasionally and crashes the app.
 But before I try implementing it, I wanted to be sure I am understanding correctly and see if you think this would be a viable solution.
Thanks very much.

I found a way to reproduce this and a solution in case it helps anyone. The problem arose anytime I loaded a screen immediately after the app loaded. There was not enough time for the firebase call to finish. I therefore start componentDidMount with the call to get the member data, and only then do I load the data which requires the uid:
this.props.fetchMemberData().then(() => this.fetchParticipantsOnMount());


Event Gather Fails: Not Enough Disk Space

https://github.com/OpenMontana/missoula-council-data-project/actions/runs/9141557204

I used too large of a date range for this, trying with a smaller window (2 days): https://github.com/OpenMontana/missoula-council-data-project/actions/runs/9148957804

The second try succeeded -- Need to constrain the window to max 2 days as long as we're on GH Runners.


[bug] canvas is not refreshed when its image gets changed.

Describe the bug
When the data of a canvas element is filled by drawIamge(), then it is not refreshed if its data is reset by a new drawImage() operation or by the clearRect() operation. But canvas can be refresed automatically in Chrome browser for the image redraw or clearRect.
Reproduction
No response
Expected behavior
No response
Platform and versions
$ npm version
{
  'tauri-app-1': '0.1.0',
  npm: '8.16.0',
  node: '18.7.0',
  v8: '<IP_ADDRESS>-node.9',
  uv: '1.44.2',
  zlib: '1.2.11',
  brotli: '1.0.9',
  ares: '1.18.1',
  modules: '108',
  nghttp2: '1.48.0',
  napi: '8',
  llhttp: '6.0.7',
  openssl: '1.1.1q',
  cldr: '40.0',
  icu: '70.1',
  tz: '2021a3',
  unicode: '14.0'
}

$ yarn tauri info
yarn run v1.22.19
warning ../../../../package.json: No license field
$ /Users/zhaoliang/work_dir/test/tauri/tauri-app-1/node_modules/.bin/tauri info

Environment
  › OS: Mac OS 12.5.0 X64
  › Node.js: 18.7.0
  › npm: 8.16.0
  › pnpm: Not installed!
  › yarn: 1.22.19
  › rustup: 1.25.1
  › rustc: 1.62.1
  › cargo: 1.62.1
  › Rust toolchain: stable-x86_64-apple-darwin

Packages
  › @tauri-apps/cli [NPM]: 1.0.5
  › @tauri-apps/api [NPM]: Not installed!
  › tauri [RUST]: 1.0.5,
  › tauri-build [RUST]: 1.0.4,
  › tao [RUST]: 0.12.2,
  › wry [RUST]: 0.19.0,

App
  › build-type: bundle
  › CSP: unset
  › distDir: Set automatically by Vue CLI plugin
  › devPath: Set automatically by Vue CLI plugin
  › framework: Vue.js (Vue CLI)
  › bundler: Webpack

App directory structure
  ├─ node_modules
  ├─ public
  ├─ src-tauri
  ├─ .git
  └─ src
✨  Done in 17.92s.

### Stack trace

_No response_

### Additional context

_No response_

Here is my package.json which is generated by "npm create tauri-app":
{
"name": "tauri-app",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"tauri:build": "vue-cli-service tauri:build",
"tauri:serve": "vue-cli-service tauri:serve",
"tauri:dev": "vue-cli-service tauri:dev"
},
"dependencies": {
"core-js": "^3.8.3",
"tauri": "^0.14.1",
"vue": "^3.2.13"
},
"devDependencies": {
"@babel/core": "^7.12.16",
"@babel/eslint-parser": "^7.12.16",
"@vue/cli-plugin-babel": "~5.0.0",
"@vue/cli-plugin-eslint": "~5.0.0",
"@vue/cli-service": "~5.0.0",
"eslint": "^7.32.0",
"eslint-plugin-vue": "^8.0.3",
"vue-cli-plugin-tauri": "~1.0.0"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/vue3-essential",
"eslint:recommended"
],
"parserOptions": {
"parser": "@babel/eslint-parser"
},
"rules": {}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead",
"not ie 11"
]
}

Can you try if Safari has the same behavior? If it does, it would mean that it's a webkit nothing (nothing we could do in that scenario).

I have tried and no luck with Safarii - it is the same as Tauri.

So it means Tauri uses the Safari webkit core internally on macos and it cannot be changed to Chromium specifically. Is my understanding correct?

Yes, correct. So unfortunately there is nothing we can do, but since Safari is quite popular there has to be a manual solution to this, right?


TODO item: Add a --path flag to allow specification of bundle dir to start in

The current behavior is to start at CWD and search up until a bundle.json is found. We should have an option to supply the directory to load the bundle.json from, bypassing the search.

This should be included in all commands? For starters, I was able to add this --path flag to the init command. I just want to make sure that adding this flag to all commands makes sense.

corral[master*] % build/release/corral init --path ".."

init: from dir ..
INFO: Created bundle in /Users/ordepdev/Work
FINE: Going to write /Users/ordepdev/Work/bundle.json
INFO: Writing /Users/ordepdev/Work/bundle.json
FINE: Going to write /Users/ordepdev/Work/lock.json
INFO: Writing /Users/ordepdev/Work/lock.json
INFO: init: created: Work

This should be valid, right?

@ordepdev any command that otherwise has an implicit path yes. For example, a version command doesn't have an implicit path but init does.

PR #60 changes this --path or --directory to --bundle_dir since it overrides specifically the base directory of the bundle (where the corral.json and lock.json files are, and where the _corral/ subdir live)


Add include and exclude options.

For more control over openapi directive than the rather restrictive pathsoption, this PR adds include and exclude options that allow specifying paths to include / exclude using regular expressions.
.. openapi:: api.yaml
   :include:  /person.*

to render /person, /person/{pk}, /person/{pk}/changepw ... This allows splitting a big api specs file into small logical parts within the docs.
It also adds a local cache for deserialized specs to speedup openapi directive reuse.

Hey @jmbarbier! Thanks for the pull request.

Can you please rebase this on top on master in order to pass the tests?
Can you please split the PR into 2: one that implements include/exclude, one that implements caching?


Check boxes for individual cores not appearing under “Manage Cores”

Check boxes for individual cores not appearing under “Manage Cores”. Unable to select cores.
only check box is the one for all in the blue header
occurring in 1.5.0 and 1.5.1
surface pro 7
Win 10
i5 16gb ram

Can you upload a screenshot of what you're seeing?

Definitely an odd one. Can you see if the issue remains in v1.5.2?

Can confirm still problematic in 1.5.2.

It definitely sounds like a scaling thing. Can you both share what Resolution and DPI/Scaling you have set?

1.5.2
Using the surface pro 7 default/“recommended” resolution and scaling:
2736 x 1824
Scale: 200%
Still present on 1.52 with the above resolution and scaling.
The check boxes do appear when I set scaling to 100% (but everything on my screen is then very tiny)

I'm running mine out of a virtual machine, so the scaling is dynamic via the size of the VMware window. If i bring the window to a 1920x1080 display, where the scaling is 100%, the checkboxes show up. Anything larger, like my main 5k display, where the scaling goes above 200%, the gui shows the behavior.

Hi - I'm hoping this has all been resolved in v1.5.4
Please check and let me know when possible please.

Confirmed resolved in 1.5.4. Thanks and great work on this.


[Fix] string comparison in TERM check in org-capture

The bin/org-capture script was using -eq, which is a numeric comparison, and was producing an "integer expression expected" error. Changed to =, the string comparison operator.

Whoops! Thanks!


Slate tools 0.14.0 hangs on upload of image asset

Problem
When there is an update on an assets slate tools silently hangs.
This specifically happened to me with a gif file. I was able to upload the asset in the admin of the store.
Replication steps
Setup an environment the following ignores setup in my config.yml
  ignore_files:
  - config/settings_data.json
  - "*.png"
  - "*.jpg"
  - "*.mp4"
  - /\.(txt|gif|bat)$/
  - untitled file
  timeout: 90s
  refill_rate: 2
  bucket_size: 40
  concurrency: 4

Run slate watch
Add a gif to the assets folder.
More Information
I have only tested this with gif so far no other file formats.
The file size was 71kb

Hi @ButsAndCats ,
Thank you for reporting this. I'm also having the same issue as well and even a normal jpg file happens to silently hang.


Brief Character Descriptions

It would be nice if each character had a sentence or two description. It would really tie the data together nicely. Knowing their physical characteristics just doesn't seem enough in this case. I am only proposing this for the characters.
Example:
name: 'Anakin Skywalker',
bio: 'Anakin Skywalker was a Force-sensitive human male who served the Galactic Republic as a Jedi Knight, and later the Galactic Empire as the Sith Lord Darth Vader.'
(Bio was one-liner from wookiepedia)

What if this just became
name: 'Anakin Skywalker',
description: 'Anakin Skywalker was a Force-sensitive human male who served the Galactic Republic as a Jedi Knight, and later the Galactic Empire as the Sith Lord Darth Vader.'

This way, you can also add it to the other items:
name: 'Aleraan'
description: 'From space, the planet of Alderaan, located in the star system of the same name, appeared as a blue-green orb envelopped in a white web of clouds. Its surface had vast bodies of water and was covered in snow-capped mountains, with patches of green grassy hills. Alderaan was known to the galaxy as "the planet of beauty." Famous natural landmarks of Alderaan included the Cloudshape Falls and the Isatabith rain forest.'

name: 'TIE Bomber',
description: 'The TIE bomber was a bombing variant of the TIE line used by the Galactic Empire, and was their main source of anti-emplacement air-support.'

Originally I was just thinking characters, but looking back on this, but what you proposed would be awesome!

Is this going to happen guys?

@euanwho we're accepting pull requests :)

Feel free to assign this to me!

@euanwho it's all yours!

I've submitted a pull request, but there are a couple of errors that I don't understand.  Maybe someone could help


Redesign Multiple gift option

We need to think on the placement of multiple gift option because User can't find  multiple gift creating option easily, may be it is on top and the setting button doesn't indicate that.(to do backlog)

https://xd.adobe.com/view/ebae18ce-2577-4d53-9b75-cb9ae5317eb1-befd/

not required


ANMS_FUN_BLD_002 (Generate Reports) - Setup

Successfully generated control for a table of ADMS, but the table was not listed in the Reports Sent.  This was also noted in other test cases using a table of ADMS.

table issue tracked by https://github.com/NASA-AMMOS/anms/issues/121

Covered by #121


status: Expose datetime of most recent block

Resloves https://app.clickup.com/t/866af85d2
Testing (locally):
curl "localhost:8008/v1/"
{"latest_block":8049056,"latest_block_time":"2022-04-11T13:12:48+02:00","latest_update":"2023-06-25T09:20:13+02:00"}

curl "localhost:8008/v1/emerald/status"
{"active_nodes":0,"latest_block":1004425,"latest_block_time":"2022-04-11T17:04:34+02:00","latest_update":"2023-06-25T09:18:49+02:00"}

Since the change is pretty small and there are no reviewer suggestions, I'll go against convention and merge this PR in. This way, it can make it into the release I'm hoping to cut in the next few hours.


Changes for 4.0.0

When we're ready for the next branch to be 4.0.0:

re-enable HOMEBREW_INSTALL_FROM_API as the default
re-apply the deprecations

Review period skipped due to critical label.

Review period will end on 2023-02-08 at 18:26:59 UTC.

Review period skipped due to critical label.


⚠ Bofrost.be has degraded performance

In 975704a, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1818 ms

Resolved: Bofrost.be performance has improved in d57890b.


Allow to use the command through non-localhost environment

I've tried to use the CLI with docker, but I couldn't use some commands like platform login due to the php server being binded to localhost :
https://github.com/platformsh/platformsh-cli/blob/8f2669e4d17aaee9cce94b335562b496e1e87421/src/Command/Auth/BrowserLoginCommand.php#L65
Ideally, in this place (and maybe others), it should be configurable (through an ENV variable for example).
Test case : create a simple image (ubuntu with php, git, ssh, ...), install the CLI inside the image, and start a new container with the command platform login and correct port mapping. It should display normal output, but when going on http://localhost:5000/ the connection is marked as closed by remote.
Workaround : I use an API token, but I don't know if there is an other place where this might lead to issues

The presence of auth:password-login and this upcoming help message should resolve this issue:
https://github.com/platformsh/platformsh-cli/commit/8baebb450776fc9fed22867bed25d1bb9f0b0083


mimetype in nautilus is different from the mimetype given by busboy

I am using express-fileupload 1.0.0-alpha.1, whith  busboy 0.2.14 as a dependencie.
When I uploaded a .js file, the mimetype given by busboy was application/x-javascript, but in the file properties of nautilus (ubuntu file explorer) the type is specified as application/javascript.
express-fileupload does not change the mimetype.
Is there a specific reason for this?

Mime types are supplied by the HTTP client (e.g. your browser), not busboy. You would probably need to consult the source code (if possible) for whichever HTTP client is being used to upload the file to find out why that mime type is being chosen.

OK, thanks :D 👍


Updating slate from 0.9.1.

Worry
I started using slate when it came out (super cool tool btw). I've put off updating slate but my project has reach a milestone now and I think I need to do it before I get way behind.
I saw the milestones for the releases but I'm unsure of what will actually get updated. Will only the slate files and tool be updated or will my theme will also get some updates? The later is the one that worries me.
More Information
I've tripled checked the slate doc, googled it, etc... I'm not a npm guy (check the slate doc there too) but can't find an answer. I'm probably missing something...

Update
I found closed issues 😅 that mention the same worry (sorry). I'm still not 100% sure as I can't find it in written in the doc.
Questions

I can safely update the CLI using npm install -g @shopify/slate and that won't do anything to my theme. but what about slate-tools? My package.json mention version 0.2.7 "@shopify/slate-tools": "0.2.7" can this also be updated with this command or that's also a manual thing? If manual, does that mean it could break a theme?

Updating a theme started with an older version of slate cannot be updated to the latest release automatically, which makes total sense. This has to be manual. Would be great to know which files can be updated safely if left untouched in the first place, like the following folders:

node_module > *
node_module > shopify > *
node_module > shopify > slate-tools
src > scripts > slate

Is updating manually just a matter of trial and error?

Hey @mightymess -- best thing to do is to run npm install @shopify/slate-tools@latest --save-dev in your terminal from the project folder. That will update you to the latest version. We have not released any breaking changes so you can still upgrade without worry.
npm install -g @shopify/slate@latest will get you the latest version of the command line tool. It will not affect your theme in any way.


SPARQL extension: Bug(?): Numbers and dates

All property values, which are entities (people, places, and things as opposed to numbers and dates ) will be created (or reused if existing) as page references and their matching Wikidata item URI will be inserted as value of same as:: attribute, the same way as the property.

I don't know if this is a bug, but numbers and dates are in fact created as page references rather than literals. Numbers should just be literals. Dates come in as raw timestamps. Would help to Roamify them to DNP page references.

Yes, this is a bug but I thought it was fixed.
On Thu, 30 Sep 2021, 10:30 Jay Bienvenu, @.***> wrote:

All property values, which are entities (people, places, and things as
opposed to numbers and dates ) will be created (or reused if existing) as
page references and their matching Wikidata item URI will be inserted as
value of same as:: attribute, the same way as the property.
I don't know if this is a bug, but numbers and dates are in fact created
as page references rather than literals. Numbers should just be literals.
Dates come in as raw timestamps. Would help to Roamify them to DNP page
references.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dvargas92495/roam-js-extensions/issues/735, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABZYZ4LDSJ6YPL27KN66DI3UEQNZ7ANCNFSM5FBXYZKA
.

Apparently not.


Add coola extension for records

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

Project coverage is 100.00%. Comparing base (8ddd484) to head (0cafe7e).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #18   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            7         7
  Lines          260       273   +13
  Branches        30        30
=========================================
+ Hits           260       273   +13

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


feat: add samples sent error counter

We previously only logged an error when this happened, which can be hard to debug. Particularly in cases where we are writing to more than one project.
This change introduces a counter gcm_export_samples_sent_errors_total that is incremented every time a send call to GCM returns an error. We add the project_id as a label to help better inform the destination project that is experiencing the issue.
On a given collector or rule-evaluator, the cardinality of project_id values should be relatively small, O(100) in the more extreme cases.

cc @lyanco - this may be a nice self-observability case for customers having issues.


Task: Add Local Notifications

Description
See #3
Acceptance criteria
Notifications should work without relying on a backend pushing notifications to the device

On hold until #9 gets addressed

Completed


Implement GenericCamera1 and GenericCamera2.

All protocol implementations implement the interface StreamClient from the common package.

Hello,
Thank you for your PR.
I can see multiple methods that will crash with NPE when you call it before startStream. For example setAuthorization method.
To solve this you need to create all RTMP, RTSP and SRT clients on constructors.
Also, you are creating duplicate code in GenericCamera1 and GenericCamera.
I think that create a GenericStreamClient that extends from StreamBaseClient like RtmpStreamClient but that require RtmpClient, RtspClient and SrtClient is the best solution for this case.
For example, setAuthorization method could be implemented like this:
  override fun setAuthorization(user: String?, password: String?) {
    rtmpClient.setAuthorization(user, password)
    rtspClient.setAuthorization(user, password)
    srtClient.setAuthorization(user, password)
  }

And then only call connect of the required client depend of endpoint as you did.
What do you think about it?
Also, we will need to add this feature to DisplayBase, FromFileBase and OnlyAudioBase

Hello,
I agree that the GenericCamera classes should have an instance of each of the protocol client classes, and call the methods on these instances, as you propose, and call connect() on the required client.
As I am implementing this, I am not sure what to do about the classes that implement StreamBaseClient. It appears that these classes only forward the calls to the appropriate protocol specific class. But now all these protocol specific classes implement the new StreamClient interface. Would it be okay to remove the StreamBaseClient and its children, and return the class that implements StreamClient directly from the method getStreamClient() in e.g. Camera1Base? Then the Camera1Base can have a protected member of interface StreamClient, and the base can implement getStreamClient() directly. In the child class of Camera1Base this member can be set to an instance for the appropriate protocol. I think the Camera1Base will even be able to implement even more methods that are now abstract, because it has a member of StreamClient itself. In fact, perhaps all methods can be implemented directly in the CameraBase classes, and the classes like RtspCamera1 only have constructors. And this makes me wonder if we could just turn the CameraBase classes into a template class, e.g. Camera1, where T can be RtspClient, RtmpClient, SrtClient or GenericClient. I think that would be really pretty. What do you think?
The only thing that should be taken care of, is the StreamClientListener, with the method onRequestKeyframe(). Is that still required? Could we solve that some other way?
I agree that this also must be done for DisplayBase, FromFileBase and OnlyAudioBase, but I first wanted to check with you about the plan, before implementing it all, and I only use the Camera2Base. :-)
I have done some of the implementation of what I propose above, but will wait for your opinion before continuing, so that I can continue in the right direction.

Hello,

Would it be okay to remove the StreamBaseClient and its children, and return the class that implements StreamClient directly from the method getStreamClient() in e.g. Camera1Base?

StreamBaseClient have the function to avoid users use methods that should be managed by the API like setVideoInfo or connect because this methods require a specific way to work. This is to avoid errors using the API. For example call connect without start encoders. Basically is a way to avoid duplicate code and only allow access to desired methods.
Also, it is more confuse if you want extend Camera2base without know about StreamClientBase implementation (in my opinion).
The current way force you to implement the abstract method in a non null way so you can make sure that this will work if anyone extend it for others protocols (the new protocols must have all commons methods or at least throw an exception to notify if it is not supported). With your suggestion it is not mandatory so you can let StreamClientBase without implement it since you haven't a method to force the user implement it and maybe crash with NPE if you don't initialize a StreamClientBase class.
Also, the current way keep Camera2Base totally protocol agnostic.

I think the Camera1Base will even be able to implement even more methods that are now abstract, because it has a member of StreamClient itself. In fact, perhaps all methods can be implemented directly in the CameraBase classes, and the classes like RtspCamera1 only have constructors. And this makes me wonder if we could just turn the CameraBase classes into a template class, e.g. Camera1, where T can be RtspClient, RtmpClient, SrtClient or GenericClient. I think that would be really pretty. What do you think?

Create a template could be interested  but your suggestion force the user that currently use this library to change so much code.
I really don't like this. I think we must keep compatibility with olders versions with minimal code changes.
Also, I don't want create an interface that must be implemented in all protocols because maybe that protocol don't support fews methods. For example:
If I add support for RTMFP (RTMP under UDP) then I need add setProtocol to RtmpClient like RstpClient but SRT can't implement this method because SRT only use UDP and TCP will never be supported. In this case force add setProtocol to SrtClient only to throw an exception feel really weird.

The only thing that should be taken care of, is the StreamClientListener, with the method onRequestKeyframe(). Is that still required? Could we solve that some other way?

Call onRequestKeyFrame is totally necessary because all protocols need start with a keyframe to work. Maybe we can find a better way to do it but we can't skip this and set VideoEncoder directly don't feel good.

I agree that this also must be done for DisplayBase, FromFileBase and OnlyAudioBase, but I first wanted to check with you about the plan, before implementing it all, and I only use the Camera2Base. :-)

Don't worry about it. I can do it. For now, you can implement only camera1 and/or camera2 and I will do it for the others cases. I said only to keep in mind that the idea is write a minimal code without duplicate code because we will add this to all that cases so the code should be write in a way to avoid it
In summary:

I suggested a new StreamClientBase for Generic because this seem an easy way to avoid duplicate code.
I don't want implement protocols code in Camera2Base to keep it protocol agnostics
In my opinion we don't need add any code to protocols to support GenericCamera2 so we should avoid it if possible and only modify library module for this case.
This implementation must keep compatibility with older library versions so template is discarded for now (even if it is a good idea currently, this lose sense after implement GenericCamera2 because you don't need to worry about the protocol)

Hi Pedro,
I have created a new StreamClientBase and made as few changes to the other code as possible. :-)
It would have been easier if all the protocol clients would implement the interface that is called from the Camera{1,2}Base classes, because then it would be easier to reuse code. Now there is still code in the Camera{1,2} classes that is copied. I would prefer to get some Client class from the Camera{1,2} class to do all the protocol specific things, and not have protocol specific Camera{1,2} classes at all. But that is then for future versions. For now I have removed the interface in the common module, which I had all the protocol classes implement.
What do you think of the new version that I pushed to my repo?

I have no so much time today to check but this feels good. I will check it deep tomorrow when I have more time.
For now, I let you a comment with a question

Hello,
I will merge this PR with my branch feature/refactor-commons, add a little refactor and merge with master.
Thank you for your PR


Request : Nuget Package Update & DefinitelyTyped for TypeScript

Firstly, Thanks very much for this great utility.
We noticed that the postal.js stays at version 0.90 on nuget.org. It will be great to have it updated to the latest.
The other thing we are wondering is if we can have a DefinitelyTyped file which will enable the postal.js to run under TypeScript language --- there is a growing trend of combination of angular.js & typescript, which brings Object Oriented power to angular. We assume there will be a bunch of guys who will need this cool utility running under TypeScript.
Best Wishes

I subscribe on this. Where is the postal.d.ts ? Didn't find it on DefinitelyTyped ?

@shumy Unfortunately I don't have the bandwidth at the moment to get a type definition for the current version of postal (I was in the middle of a few breaking changes at the time the original PR was submitted). I'm certainly open to the original PR being updated with a type def that's current, etc., I just know that it would be a while before I could get to it myself.


Proxy settings needed

When behind a proxy and being served with public_url other than "/" files fail to be served by express. Need to create settings for proxies so that both the application and the dev server aren't reliant on PUBLIC_URL.

/favacon hits renderer. Need to unify the prod and webpack path. Static file serving needs to be better


Add MuJoCo by FZI

ros2_control system interface for MuJoCo. Not tested but looks great!

@mergifyio backport humble iron

@christophfroehlich
Thanks for spotting and referencing that implementation! However, I'm afraid that's a little robot dependent at the moment. As far as I'm concerned, MuJoCo needs a specific configuration .xml that specifies the robot to simulate. We could adapt/change it to provide a more generic interface between MuJoCo and ros2_control so that users can simulate arbitrary robots (manipulators). I didn't continue this idea lately, but I'm interested in supporting/implementing if that's of use for the community.

@christophfroehlich
Thanks for spotting and referencing that implementation! However, I'm afraid that's a little robot dependent at the moment. As far as I'm concerned, MuJoCo needs a specific configuration .xml that specifies the robot to simulate. We could adapt/change it to provide a more generic interface between MuJoCo and ros2_control so that users can simulate arbitrary robots (manipulators). I didn't continue this idea lately, but I'm interested in supporting/implementing if that's of use for the community.

For the scope of this PR it is fine like it is. It should just give a reference implementation for users on control.ros.org
I have a personal interest in bringing MuJoCo and ros2_control closer due to a research project I'm working on. But I haven't tried it out yet and can't comment on the limitations. @traversaro pointed me to https://github.com/google-deepmind/mujoco/issues/1432, so I think there is more work to be done to provide a seamless integration like with Gazebo (classic). Once I have the time to work on that, I'd be happy to discuss future steps to find a more general solution.

@traversaro pointed me to google-deepmind/mujoco#1432, so I think there is more work to be done to provide a seamless integration like with Gazebo (classic). Once I have the time to work on that, I'd be happy to discuss future steps to find a more general solution.

Just to complement the link, I think most of people using URDF with MuJoCo either manually or automatically change the URDF before the loading in MuJoCo, or the resulting .mjcf after the conversion,  and that is why there are not a lot of discussion like https://github.com/google-deepmind/mujoco/issues/1432 in MuJoCo issue tracker.


Fix feature flag

There is a bug, where I forgot to include #[cfg(feature = "embed-static-tiles")] to the method call in the build file, after sqlite feature moved away.
maplibre-demo  can not be running since embed-static-tiles depends on sqlite flag.
💻 Examples

🚨 Test instructions

✔ PR Todo

[x] Included links to related issues/PRs
#107
#116

Ups, seems like i was too foece-ful with that previous merge :D

It's more like my mistake, should have checked in the previous PR. :)


Experiment with the simplifications that supporting a single back-end would give.

After this and other simplification, this could be included with the compiler.
Benefits include being always in sync, take advantage of infra from the compiler, and be called directly instead of spawning a separate process. So for example the error messages can become first-class.
Also, sometimes genType needs to take a conservative approach, not knowing if a function uses curry at runtime. So some unnecessary runtime conversion of values can be removed.


[FEATURE REQUEST] Show the whole response on right side of Flow launcher

I find that most of the time ChatGPT response is longer that the space available on Flow launcher, despite setting 'short' in the settings, and I find myself to open the text file to see the whole response:

Would be possible to show the full answer on the right side (where it says: "Copy to clipboard")?

Hi @mlazzarotto, that is a great idea indeed! I've looked through the Flow Launcher documentation, but I didn't find a way to increase the height of the preview in the bottom right corner. Might be a good idea to do a feature request with Flow Launcher itself, to support this:

Hi @mlazzarotto, that is great, happy you found a way! I'll put it on the list for the update that I will be doing to make this configurable


How can I create a program to run on sdl2?

How can I create a program to run on sdl2? I wanted to somehow learn how to create programs to run on the portable console, but I can't even make a hello world
I've tried using python3,
I was able to make a blue screen, with a gray retainer inside,
However, I tried to write "hello world" inside and couldn't, because it gives an error, what can I do?
Here's the code for the blue background with gray rectangle:

import sdl2.ext

# Configurações da tela
SCREEN_WIDTH = 480
SCREEN_HEIGHT = 320

# Inicialização do SDL
sdl2.ext.init()

# Criação da janela
window = sdl2.ext.Window("Desenho direto na tela", size=(SCREEN_WIDTH, SCREEN_HEIGHT))
window.show()

# Criação do renderizador
renderer = sdl2.ext.Renderer(window)

# Cor do quadrado (azul)
BLUE = sdl2.ext.Color(0, 0, 255)
# Cor do retângulo (cinza)
GRAY = sdl2.ext.Color(100, 100, 100)

# Desenha o quadrado azul e o retângulo cinza
def draw_shapes(renderer):
    renderer.clear()

    # Desenha o quadrado azul
    renderer.fill((0, 0, SCREEN_WIDTH, SCREEN_HEIGHT), BLUE)

    # Calcula as coordenadas para o retângulo cinza no centro da tela
    rect_width = 100
    rect_height = 50
    rect_x = (SCREEN_WIDTH - rect_width) // 2
    rect_y = (SCREEN_HEIGHT - rect_height) // 2

    # Desenha o retângulo cinza
    renderer.fill((rect_x, rect_y, rect_width, rect_height), GRAY)

    renderer.present()

# Loop principal
running = True
while running:
    for event in sdl2.ext.get_events():
        if event.type == sdl2.SDL_QUIT:
            running = False

    draw_shapes(renderer)

# Finalização do SDL
sdl2.ext.quit()

And here's the code I tried to write hello world:
import sdl2.ext

# Screen settings
SCREEN_WIDTH = 480
SCREEN_HEIGHT = 320

# Initialize SDL
sdl2.ext.init()

# Create window
window = sdl2.ext.Window("Direct Drawing on Screen", size=(SCREEN_WIDTH, SCREEN_HEIGHT))
window.show()

# Create renderer
renderer = sdl2.ext.Renderer(window)

# Square color (blue)
BLUE = sdl2.ext.Color(0, 0, 255)
# Rectangle color (gray)
GRAY = sdl2.ext.Color(100, 100, 100)
# Text color (white)
WHITE = sdl2.ext.Color(255, 255, 255)

# Draw blue square, gray rectangle, and "Hello World" text
def draw_shapes(renderer):
    renderer.clear()

    # Draw blue square
    renderer.fill((0, 0, SCREEN_WIDTH, SCREEN_HEIGHT), BLUE)

    # Calculate coordinates for the gray rectangle in the center of the screen
    rect_width = 200
    rect_height = 100
    rect_x = (SCREEN_WIDTH - rect_width) // 2
    rect_y = (SCREEN_HEIGHT - rect_height) // 2

    # Draw gray rectangle
    renderer.fill((rect_x, rect_y, rect_width, rect_height), GRAY)

    # Render "Hello World" text in the center of the rectangle
    font_manager = sdl2.ext.FontManager(font_path=None, size=30)
    text_surface = font_manager.render("Hello World", color=WHITE)
    text_width = text_surface.size[0]
    text_height = text_surface.size[1]
    text_x = rect_x + (rect_width - text_width) // 2
    text_y = rect_y + (rect_height - text_height) // 2
    renderer.copy(text_surface, dstrect=(text_x, text_y, text_width, text_height))

    renderer.present()

# Main loop
running = True
while running:
    for event in sdl2.ext.get_events():
        if event.type == sdl2.SDL_QUIT:
            running = False

    draw_shapes(renderer)

# Quit SDL
sdl2.ext.quit()

I tried to use pygame, but I couldn't even install lib pygame because it gave an error when I try to install pygame...
Are there other ways or some easy solution for me to create programs that run on my handheld device, I wanted to be able to contribute to the community with some programs that can add some non-existent functionality, or even create a little game

I can only guide you to how to convert ArkOS to a development environment on your device by following the instructions here: https://github.com/christianhaitian/arkos/wiki/Building-packages-and-modules-on-your-device
I'm not versed on writing programs.  I just know how to compile them with some instruction.  You may have better luck talking with some of the folks in the PortMaster Discord.  The invite link to it is here: https://discord.gg/JxYBp9HTAY
Good luck.

Also taking a peek on existing graphic programs that run on ArkOS, like PortMaster, etc.


Plex issue while streaming - EAE timeout

Details
What steps did you take and what happened:
Tried to stream a Linux ISO over Plex and it hung, the error in the logs was:
Mar 07, 2021 13:04:06.502 [0x7f7c7dffb700] INFO - [Transcode] CodecManager: starting EAE at "/tmp/pms-f9e5eb1e-80b6-4ffa-9c24-45a956bed940/EasyAudioEncoder"
Mar 07, 2021 13:04:09.000 [0x7f7c7e7fc700] ERROR - [Transcoder] [eac3_eae @ 0x1db9800] EAE timeout! EAE not running, or wrong folder? Could not read '/tmp/pms- f9e5eb1e-80b6-4ffa-9c24-45a956bed940/EasyAudioEncoder/Convert to WAV (to 8ch or less)/689d14c290fef10b-com-plexapp-android_633-0-0.wav'
Mar 07, 2021 13:04:09.000 [0x7f7c7e7fc700] ERROR - [Transcoder] [eac3_eae @ 0x1db9800] error reading output
Mar 07, 2021 13:04:09.000 [0x7f7c7e7fc700] ERROR - [Transcoder] Error while decoding stream #0:1: Input/output error
Mar 07, 2021 13:04:12.000 [0x7f7c7e7fc700] ERROR - [Transcoder] [eac3_eae @ 0x1db9800] EAE timeout! EAE not running, or wrong folder? Could not read '/tmp/pms-f9e5eb1e-80b6-4ffa-9c24-45a956bed940/EasyAudioEncoder/Convert to WAV (to 8ch or less)/689d14c290fef10b-com-plexapp-android_633-0-1.wav'
Mar 07, 2021 13:04:12.000 [0x7f7c7e7fc700] ERROR - [Transcoder] [eac3_eae @ 0x1db9800] error reading output
Mar 07, 2021 13:04:12.000 [0x7f7c7e7fc700] ERROR - [Transcoder] Error while decoding stream #0:1: Input/output error

What did you expect to happen:
My Linux ISO to be viewable in Plex.
Anything else you would like to add:
Fixed it by exec'ing into the Plex pod and running the following command and restarting the pod.
rm -rf /config/Library/Application\ Support/Plex\ Media\ Server/Codecs/*

Also worth noting that I had to update my transcode directory to tmp in my helm release and Plex config, for some reason EAE is transcoding there or something judging by the error logs above.

Thanks for this! Issue has been on plex forums for over 4 years now with no fix ... removing the codecs did it for me. Cheers.


Performance in android

I don't know what I'm doing bad, but if I do this:
const scenes = Actions.create(
  <Scene key="root">
      <Scene key="tabbar" component={TabBar} tabs={true}>
          <Scene key="homeTab" title="Home" icon={TabIcon}>
              <Scene key="home" component={Home} title="Home"/>
              <Scene key="login" component={Login} title="Login"/>
          </Scene>
      </Scene>
  </Scene>
);

export default class Example extends React.Component {
    render() {
        return (
            <Router createReducer={reducerCreate} sceneStyle={{backgroundColor:'#F7F7F7'}} scenes={scenes}/>
        )
    }
}

the performance on android is really bad. If I switch a view it takes 10 seconds until it switches. I've tested this with several devices.
In iOS this issue is not occuring...
Could you help me pls?
best regards,
albo

duplicate of #355

Allright, so Navigation is useless on react native android?

So far, yes. You may try v2 version for Android.


Add support for braces

See http://gregorio-project.github.io/gabc/details.html#braces
Will require:

improvements to the gabc parser to handle instructions in []
a new brace visualizer type to draw the brace (maybe a couple different types depending on the brace type?)
also, at least one new marking type to span the brace over notes

How important is it to support millimeter instructions in braces? Manual size specs seem pretty useless for web based rendering...

Fixed by 896731dea6d75cebd58391b2ebf74e460e5ddfc9


what ‘s wrong？

src/App.js:22
22: function render(Component: any, store: Store) {
^^^^^ identifier Store. Could not resolve name
src/store/configureStore.js:17
17: export default function configureStore(initialState?: Object): Store {
^^^^^ identifier Store. Could not resolve name
test/example.spec.js:10
10: describe('Example test', () => {
^^^^^^^^ identifier describe. Could not resolve name
test/example.spec.js:21
21:   beforeEach(() => {
^^^^^^^^^^ identifier beforeEach. Could not resolve name
test/example.spec.js:25
25:   it('should run successfully', () => {
^^ identifier it. Could not resolve name
teste2e/example.spec.e2e.js:6
6: describe('Page', () => {
Found 9 errors
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
npm ERR! Windows_NT 10.0.14393
npm ERR! argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "start"
npm ERR! node v6.10.0
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>start: yarn run check:all && cross-env NODE_ENV=development babel-node tools/run start
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script 'yarn run check:all && cross-env NODE_ENV=development babel-node tools/run start'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the l-react package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     yarn run check:all && cross-env NODE_ENV=development babel-node tools/run start
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs l-react
npm ERR! Or if that isn't available, you can get their info via:

Try to do following steps:

make sure you have flow-typed installed (if not run npm install -g flow-typed)
remove flow-typed directory from root folder of the project if it exists
run flow-typed install
run yarn run flow -- stop
run yarn run start

Closing this issue, please comment here if the provided steps doesn't solve the issue.


Add layer sizes to index_part.json

Second attempt at #2456, superceding #2561 by leaning more on the json softness.
Missing:

[x] LayerFileMetadata for layers added at runtime
[x] LayerFileMetadata for downloaded layers

my understanding is that download doesn't really touch RemoteTimeline, only downloads
thus the missing metadata does get collected during attach_local_tenants but of course, it would be better to "check metadata" when downloading, should metadata be already available

[ ] Any sort of comparisons metadata or support for them between local vs. IndexPart
[ ] Recovery paths for new failures

e.g. downloaded file checks out, but is not redownloaded after fsync failure

I am resolving the threads involving the problem of LayerFileMetadata::file_size(&self) -> Option<u64> but further discussion regarding that is can be found under https://github.com/neondatabase/neon/pull/2610#discussion_r994527863. Will work towards downloading truncated files in the meantime to get this PR ready.

There have been different kind of build failures, but none I recognize happening multiple times (failed test) while of course passing every now and then.


Update anchored heading icon

At the moment, we're using a unicode link icon in lieu of a proper
GDS-style icon. This updates the icon to one that's a touch more
fitting.
Looks a bit like this:

Looks good to me.
Where does the icon come from?

@thehenster Icon is courtesy of @dashouse – I believe this is one we use elsewhere on GOV.UK.


[SPRINT] Adding halo model to Firecrown

Adding halo model to Firecrown
Best approach to adding halo-model-based theory predictions to Firecrown
Contacts: Christos Georgiou
Time: [Morning]
Main communication channel: #desc-firecrown
GitHub repo: https://github.com/LSSTDESC/firecrown
In-person/Virtual/Hybrid: Hybrid possible
Zoom room (if applicable):
Goals and deliverable
Plan ahead for including halo-model-based predictions in Firecrown, possibly with a small example.
Resources and skills needed
Experience with working on Firecrown, familiarity with the halo model of CCL.
Detailed description
Currently, the halo model formalism in CCL is sub-optimal in working together with Firecrown, which relies heavily on dealing with tracer objects. Tracer objects do not exist in the conventional way for the halo model formalism. This sprint will have as a goal to find the best possible way to include halo-model-based predictions in Firecrown.

Likely to merge with the Firecrown huddle between 10-11 am.


JavaScript/ Web examples

Hi all!
I noticed that currently there are only React-based examples here as well as the V2 startup pages.
There is a Node.js section but that combined with the examples here allude to WalletConnect may not be compatible with native JS or JS frameworks outside of React.
I'm an Angular-specific dev but native JS and TS can be applied directly within that framework.
Please let me know how I can best help.

Just commenting here about this as well. Does v2 even work without React?

Yeah it works, but there is zero developer experience points here. I've even offered to help write the docs and the leads ignored me.
I did get the project to work through beta to latest but man it was an enormous pain and I'm not going to continue.


webhook: Basic validation for multiple HTTPRoute Rule filters

What type of PR is this?
/kind feature
What this PR does / why we need it:

This is a skeleton admission webhook to validate duplicate HTTPRoute Rule.Filters

Which issue(s) this PR fixes:
Fixes #349
Notes For Reviewers

This PR still needs some further deploy config for actually setting up and using the webhook. I mainly wanted to add it early so we can validate if the logic looks sane.

Does this PR introduce a user-facing change?:

NONE

/cc @hbagdi @robscott

This is now ready for review @robscott @hbagdi
If you deploy the service-api crds and then ./deploy/webhook.yaml, it will configure the webhook. I also have two examples that you can test located under the deploy folder.

This is now ready for review @robscott @hbagdi
If you deploy the service-api crds and then ./deploy/webhook.yaml, it will configure the webhook. I also have two examples that you can test located under the deploy folder.

@robscott @hbagdi This should be ready for review but I am having a problem with one of the go linters failing on goimports.
./hack/verify-golint.sh
pkg/admission/server.go:30: File is not `goimports`-ed with -local sigs.k8s.io/service-apis (goimports)
	"k8s.io/klog/v2"
cmd/webhook/main.go:30: File is not `goimports`-ed with -local sigs.k8s.io/service-apis (goimports)
	"k8s.io/klog/v2"

When I try to run goimports with local it just hangs. Do you have any ideas ?

@robscott @hbagdi This should be ready for review but I am having a problem with one of the go linters failing on goimports.
./hack/verify-golint.sh
pkg/admission/server.go:30: File is not `goimports`-ed with -local sigs.k8s.io/service-apis (goimports)
	"k8s.io/klog/v2"
cmd/webhook/main.go:30: File is not `goimports`-ed with -local sigs.k8s.io/service-apis (goimports)
	"k8s.io/klog/v2"

When I try to run goimports with local it just hangs. Do you have any ideas ?

@cmluciano This PR has had so many comments that it is hard to keep track of. There are a few issues from the early PR review that need fixing. Could you take a look at those?

Thanks for the work to update this @cmluciano! This feels like it's quite close, it just got tripped up by some of our API changes that made optional fields pointers.

I talked to @cmluciano today. I'll try to get this over the finish line this week.

I'm reworking parts of this PR and breaking it up to get this over the finish line.
#606 is first of one such patch.
/hold

Superceded by #617


Bug with passing Procs around: "RuntimeError: unreachable"

Hey! Sorry for not coming back to #32 yet! I was trying things out and stumbled around a really weird bug that I cannot explain.
I extracted the following snippet that reproduces the problem (at least on my machine):
import { DefaultRubyVM } from 'ruby-head-wasm-wasi/dist/browser.umd'

const main = async () => {
  // Fetch and instantiate WebAssembly binary
  const response = await fetch(
<EMAIL_ADDRESS>  );
  const buffer = await response.arrayBuffer();
  const module = await WebAssembly.compile(buffer);
  const { vm } = await DefaultRubyVM(module);

  window.wrapProc = (proc) => {
    return () => {
      proc.call('call')
    }
  }

  vm.eval(`
    require 'js'
    require 'json'

    class Test
      def initialize
      end
    end

    proc = Proc.new do
      json = {a: 1}.to_json
      Test.new
    end
    wrapped_proc = JS::global.call('wrapProc', JS::Object.wrap(proc))
    wrapped_proc.call(:call)
  `)
};

main();

The error this produces is:
Uncaught (in promise) RuntimeError: unreachable
    at asyncify_stop_unwind (09f33406:0x674834)
    at rb_abi_guest_rb_funcallv_protect (09f33406:0x97c7)
    at __wasm_export_rb_abi_guest_rb_funcallv_protect (09f33406:0xa4dc)
    at RbAbiGuest.rbFuncallvProtect (browser.umd.js:669:33)
    at callRbMethod (browser.umd.js:1456:40)
    at RbValue.call (browser.umd.js:1343:30)
    at main.js?t=1660228644277:14:12
    at Object.reflectApply (browser.umd.js:1201:34)
    at imports.rb-js-abi-host.reflect-apply (browser.umd.js:906:23)
    at rb_js_abi_host_reflect_apply (09f33406:0x86bf)

I tried to wrap my head around this for some time now and can't find the source of the problem. The error disappears when removing for example the to_json line or the class initialization or when removing the empty initialize method of the Test class.
Let me know if more information is needed of if I can help on this somehow else!

The last call frame, which hit unreachable instruction, shows that it's crashing at Asyncify.
Uncaught (in promise) RuntimeError: unreachable
    at asyncify_stop_unwind (09f33406:0x674834)

Unfortunately, Asyncify has a fixed-size buffer for unwind/rewind, and it can be exhausted when C call frame is deep. In this case, the nested rb_funcallv_protect calls consume most of the buffer, I guess.
For now, you need to build ruby from the source to extend the size of the buffer.
I have a plan to support segmented buffers in Asyncify to allocate buffers dynamically, but I haven't done it yet.
Let's keep this open until segmented buffer will be supported.

Hey @kateinoigakukun, this sounds reasonable, thanks for the explanation! I tried manually changing the buffer sizes by setting WASM_SETJMP_STACK_BUFFER_SIZE to 7168, however this always leads to the following error:
Assertion failed: 0 && "unexpected state" (/src/build/src/head/wasm/setjmp.c)

I suspect it has something to do with the increased struct size that gets used there? Maybe you've already encountered the issue or I need to change something else to make it work? Do you have an idea?

I suspect it has something to do with the increased struct size that gets used there? Maybe you've already encountered the issue or I need to change something else to make it work? Do you have an idea?

Yes, that's right. And the struct is usually allocated on stack space, so you need to extend the stack size also by passing -Xlinker -z -Xlinker stack-size=XXX. By default XXX is 16777216.

Thank you. I tried increasing the stack size but it did not help. I'm still receiving the same error after increasing it by two or ten times. I changed it using the Rakefile that already includes the default 167772160.
Maybe it's not about the size the struct needs but some kind of struct memory/alignment issue? It's just a theory from somebody with some base level of C understanding but it seems like the state variable is not correct.
I enabled debug logging to see what we got and it showed me that the first call to _rb_wasm_setjmp_internal has a state of<PHONE_NUMBER>. This seems like a random memory location interpreted as state.

@richardboehme Hmm, weird. Maybe my witapi ext code doesn't care about reentrance... I'll check it.

Hi.
I tried looping the vm.ware() function and got the same error "Runtime error: unavailable" in the latest version 0.6.0. In versions 0.5.0 and below, memory consumption increased rapidly until the application shut down with an error.

The latest 2.2.0 includes several improvements for this issue.


odroid-m1: fix UBOOT_ROOT default asignment

The default UBOOT_ROOT is now being correctly set from one of the provided UBOOT_ROOT_{mmc, nvme}. It currently defaults to the EMMC.
To boot from the NVME it can be set as follows, even from KAS:
UBOOT_ROOT = ${UBOOT_ROOT_nvme}
This also moves the defaults to the odroid-m1 machine configuration, as these should be board specific.

thanks

forgot to close


Fix execute_cpu running more cycles than requested

execute_cpu() has a cycles parameter, but instead of actually corresponding to the number of executed cycles, it corresponds to the number of calls to execute_core(), each of which can run up to 8 cycles by default. This changes it so that execute_cpu uses the cycle clock to track when to stop calling execute_core, and also passes it the maximum number of cycles to execute in case it's less than Spec::switch_steps (i.e. 8).

Hi Sylvie-
Thanks for the pull request. Definitely a bug we need to fix.
I think the biggest issue is that the terminology in the original API wasn't precise. What was being passed as "cycles" actually turned into something more like "time slices" (i.e., how many different times threads are switched between). I just opened a pull request on your repository with some additional changes to try to address this more fundamental underlying issue. Let me know how these look and if they would adequately solve the issue you've been running into. (The PR's on this branch, so if you merge it in it should apply to this pull request which we can then merge in).
Apologies for the delayed response, I should be much more on the ball to respond and communicate more rapidly going forward. Thanks again for the contribution --- really glad to have you getting some use out of the software and helping to improve it.
Matthew

Also, the tests are broken right now because I need to fix the Docker container build. This PR doesn't need to wait on that though. So don't worry about trying to make the GH actions tests pass as long as everything passes locally :)

Merged! 🥂


update xml document (batch 7 "W")

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
API changes are not detected in this pull request.


Help me with the new game Vampire the Masquerade Reckoning of NY

The game is in english already but I would like to try a new language.
Im using the BepInEx IL2CPP Plugin and DeepL Translator.
The problem is that some texts it is not being translated, I already enabled every Text Framework. On the same "page" in game which is the Glossary some texts are translated but others not. Check the screenshots.
Other thing is that I want to translate it to Portuguese Brazilian, I check the DeepL API page and it says that for brazilian I have to use PT-BR but when I use it on the config file the translator not work. It only work when I use PT which is Portuguese from Portugal.. the thing is that some words from PT-PT is reaaallly strange for me some are even swear words... that's why I wanted to change.
As you can see the Glossary it just translate when the text is just a few lines but if it has more than 2 lines it not translate.
On the third picture the first and third paragraphs were translated, but the middle one was not.
And on the last picture you can see that it is still in english, I thought it was a texture but as you can see the title "No ar, Missão Principal" was translate.
I also tried use ALT+U to see if the tool can find more texts.

Check the text character limit setting.

Check the text character limit setting.

Yeessssss it works great THANK YOU THANK YOUUU SO MUCH, I am using 2000 now.
And do you have any idea how I could use Portuguese-BR instead of Portuguese-PT with DeepL? I know that GoogleTranslate always uses PT-BR but it not works for me. Tested with GoogleTranslate and v2

Check deepl developer docs for a list of languages.

deepl developer docs

Its "pt-br" but the XUnity Translator not work when using this :(
But thank you sooo much for the attention!!

Hi! I'm also trying to use pt-br with DeepL, but i get no output.
I saw DeepL developer docs and it's listing pt-br as an option, but XUnity cant translate to it for some reason.
Using only pt works, but it's not Brazillian portuguese, unless i use GTranslate instead of DeepL.
Can someone else try this and see if it's only us having this problem?


Issue reporter misbehaves if you delete characters of the header with the Delete key

Description
What steps will reproduce the problem?

Open the Issue reporter window, and start typing in the Steps to reproduce edit box, just a word or two is fine. Then go up to the first line ("### What steps will reproduce the problem") and delete the third hash mark. This effectively breaks editing. For example, but the cursor on the line you typed, hit HOME, then type another character. The cursor jumps to the end of the line and inserts the character there.
Alternatively, open the window and immediately delete the third hash mark. You will now be in a mode where you cannot enter any text at all, including adding the hash mark back.
Alternatively, open the Issues reporter window, select all text in the Steps to reproduce edit box, and press delete. All text disappears, and you are no longer able to enter any text at all.
Versions

Spyder version: 4.0.0b4
Python version: 3.7.3
Qt version: 5.9.6
PyQt5 version: 5.9.2
Operating System: Windows 7

Dependencies
pygments >=2.0    :  2.4.2 (OK)
qdarkstyle >=2.6.4:  2.7 (OK)
sphinx >=0.6.6    :  2.1.2 (OK)
pyls >=0.27.0     :  0.28.2 (OK)
nbconvert >=4.0   :  5.5.0 (OK)
pandas >=0.13.1   :  0.25.1 (OK)
numpy >=1.7       :  1.16.4 (OK)
sympy >=0.7.3     :  1.4 (OK)
cython >=0.21     :  0.29.13 (OK)
qtconsole >=4.5.2 :  4.5.4 (OK)
IPython >=4.0     :  7.8.0 (OK)
matplotlib >=2.0.0:  3.1.1 (OK)
pylint >=0.25     :  2.3.1 (OK)

You missed the critical part in your report, but thanks for doing it. This was caused by a refactoring in our code editor widget to better handle the Del key there, but we forgot to update the issue reporter after that.


Allow the Pubnub keys to be empty if required.

Supports target environments that are not network connected.
Connects-to: #53
Change-type: patch
---- Autogenerated Waffleboard Connection: Connects to #53

It looks like the last PR may not have included the changes for the built JS, as building for this PR has included it. Would like confirmation that this is now correct (@LucianBuzzo).

@pimterry Yeah, I had considered just totally removing the keys to start with, but I think that'll cause an issue with the API, so I've left as is for the moment. Thanks!


Release 1.2.7

Codecov Report

Merging #152 into 1.2 will decrease coverage by 0.09%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##               1.2     #152     +/-   ##
==========================================
- Coverage     59.2%   59.11%   -0.1%
+ Complexity    1521     1519      -2
==========================================
  Files          147      147
  Lines         6479     6479
  Branches       661      661
==========================================
- Hits          3836     3830      -6
- Misses        2163     2168      +5
- Partials       480      481      +1

Impacted Files
Coverage Δ
Complexity Δ

...m/arm/mbed/cloud/sdk/common/SynchronousMethod.java
47.05% <0%> (-11.77%)
2% <0%> (ø)

.../java/com/arm/mbed/cloud/sdk/common/SdkLogger.java
62.96% <0%> (-3.71%)
11% <0%> (-1%)

...java/com/arm/mbed/cloud/sdk/AccountManagement.java
75.19% <0%> (-2.33%)
23% <0%> (-1%)

Continue to review full report at Codecov.

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


BUG:  The concurrency of settimeofday and ssh connect would lead to coredump

Hi, pals:
we found a coredump when we do ssh connection. the basic information as follow:
the stack trace in coredump:
(gdb) bt
#0  0x20007510 in raise () from /lib/libc.so.6
#1  0x2000c718 in abort () from /lib/libc.so.6
#2  0x2053d42c in __mulvsi3 (a=, b=) at /home/l00194794/yocto/c08_sdk/sdk/build/script/cpu_hcc/ppc-linux/../../../toolchain_soft/ppc-linux/src/gcc-4.7.1/libgcc/libgcc2.c:159
#3  0x2050d030 in ms_subtract_diff (start=start@entry=0xbfa20a9c, ms=0x48027c40, ms@entry=0xbfa20a98) at misc.c:871
#4  0x204d2568 in ssh_exchange_identification (timeout_ms=timeout_ms@entry=5000) at sshconnect.c:580
#5  0x204d3e3c in ssh_login (sensitive=sensitive@entry=0x20586ea8, orighost=, hostaddr=hostaddr@entry=0x20586e28, port=, pw=pw@entry=0x20589ae8, timeout_ms=5000)
at sshconnect.c:1346
#6  0x204c433c in main (ac=, av=) at ssh.c:1326
the direct cause of the coredump, is that the function __mulvsi3 in gcc checked the plus operation is overflow, then this gcc function abort().
the reason of the overflow is cause by the time-setting operation when do ssh connect. in function ms_subtract_diff .  the timeoutp get a very big value because of the time-change.
So could we add a limitation for the differ of the 2 values get from gettimeofday ? if it's too big, would lead to overflow, we set a default value and report a warning log.
thanks for you attention and expect your reply.
B.R.
Le Wang

Are you sure this is an OpenSSL problem?
It looks like an OpenSSH one.
The functions and source files mentioned don't exist in OpenSSL.

you are right. it's an OpenSSH probel. Sorry for wasting your time.


:sparkles: Feat: Add forkHandler

Description
Add forkHandler action
Testing
Explain the quality checks that have been done on the code changes
Additional Information

[ ] I read the contributing docs (if this is your first contribution)

Your ENS/address:

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

Current dependencies on/for this PR:

main

PR #894

PR #895

PR #896   👈

This stack of pull requests is managed by Graphite.


Fixes bug where saturation is just ignored.

This number can be tweaked if you like, but as the comment line says it does exactly the same amount of hunger as when 1 half heart is healed.
EDIT: Going to add that that math is according to this, https://minecraft.gamepedia.com/Hunger#Exhaustion_level_increase , and I did test myself. I figure you would rather tweak the number yourself though, this just gives a working way to do it.

Also feel like I should add on that running a custom server with this change implemented (by compiling it myself) I was able to run out of hunger with no problems, power stopped generating, no corruption, all works smoothly.
Once again gonna emphasize that the number I used takes less hunger than the current amount, so that will need to be tweaked before it is pushed out.


Questions on available functions

Hi,
I'm working on raspberry Pi with NEON and I was looking for some functions.

We have warpAffine function, is there something to estimate an affine transformation between two images (like getAffineTransform and estiamteRigidTransform with OpenCV).

It's possible to compute image histogramm with NEHistrogram, is there a function to equalize an histogram like equalizeHist with OpenCV (or CLAHE on OpenCV)

Image Blur can be done with the Gaussian kernel. This kernel is available with 5x5 and 3x3 sizes, I need some custom size (like 8x8, 9x9 or even 3x6). The convolution kernel exists only for 5x5 7x7 and 9x9 is there a way to convolve with other non squared kernels ? (I'm looking for something flexible, like GaussianBlur in OpenCV)

Thanks

Hi @SRimbaudNviso

ACL has no equivalent to OpenCV's  getAffineTransform() and estiamteRigidTransform(). ACL's focus is on optimizing ML algorithms for ARM Systems; these functions you mention are not likely to bring massive performance gains.
We have `NEEqualizeHistogram' in ACL: https://github.com/ARM-software/ComputeLibrary/blob/master/arm_compute/runtime/NEON/functions/NEEqualizeHistogram.h . It's based on the OpenVX 1.2 specification.
The function NEConvolutionRectangle allows non square sizes for the convolution matrix but the sizes must be  3, 5, 7 or 9. You can take a look at the header: https://github.com/ARM-software/ComputeLibrary/blob/master/arm_compute/runtime/NEON/functions/NEConvolution.h#L115 . Presently there is no function in ACL allowing arbitrary matrix sizes for the convolution.

Ok, thanks for you answers.
One last question, is there some camera calibration functions in ACL ? There is an optical flow kernel, is there a way to perform operation like solvePnP available on OpenCV ?

Hi @SRimbaudNviso
No, there no camera calibration functionality in ACL. This is really something not in the scope of the library which I mentioned in my previous post: optimise Vision & ML algorithms for ARM systems.


hotfix/issue-740

fixes #740 - incorrect description removed from readme

This change is

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


syntax/javascript: Do not override syn sync when included

It's very surprising that including syntax/javascript.vim (or some other
syntax that includes it, e.g. syntax/html.vim) sets some syn sync
parameters (fromstart, maxlines). Additionally, there's no point in
overriding these unless javascript.vim also tells vim how to sync, which
is correctly guarded by main_syntax already.
Be a good citizen and avoid touching syn sync unless
main_syntax == "javascript".

Codecov Report

Merging #4372 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #4372      +/-   ##
==========================================
+ Coverage   80.33%   80.34%   +<.01%
==========================================
  Files         109      109
  Lines      142465   142465
==========================================
+ Hits       114456   114459       +3
+ Misses      28009    28006       -3

Impacted Files
Coverage Δ

src/if_xcmdsrv.c
83.84% <0%> (-0.18%)
:arrow_down:

src/gui.c
57.99% <0%> (-0.16%)
:arrow_down:

src/ex_cmds2.c
87.78% <0%> (-0.12%)
:arrow_down:

src/message.c
76.6% <0%> (-0.05%)
:arrow_down:

src/undo.c
83.42% <0%> (+0.06%)
:arrow_up:

src/gui_gtk_x11.c
48.69% <0%> (+0.44%)
:arrow_up:

Continue to review full report at Codecov.

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

Please send this to the maintainer, who is mentioned in the header.  Claudio may be a bit slow to respond, but he is still the maintainer of this file.

Oh, I'm sorry. I didn't read this far in CONTRIBUTING.md. I'll read more next time. :-)

Hi again. It's been a year since I e-mailed both Claudio and Scott, but neither responded. :-(
I see there's been an update to javascript.vim nevertheless: https://github.com/vim/vim/commit/5be4ceecea5520265066eac972460ebb1cdf05e7#diff-83f2183b969b67eb8e03572e7824caa3
Did that come from Claudio? Can you perhaps forward this PR to him, assuming my e-mails aren't reaching him for some reason?
Any other way to move this forward?
Thanks!

Hi again. It's been a year since I e-mailed both Claudio and Scott, but neither responded. :-(
I see there's been an update to javascript.vim nevertheless: https://github.com/vim/vim/commit/5be4ceecea5520265066eac972460ebb1cdf05e7#diff-83f2183b969b67eb8e03572e7824caa3
Did that come from Claudio? Can you perhaps forward this PR to him, assuming my e-mails aren't reaching him for some reason?
Any other way to move this forward?

Yearly ping? :-)
Let me just include that change.  Would be good to actually have an
active maintainer though.
--
From "know your smileys":
|-(	Contact lenses, but has lost them
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Yearly ping? :-)

I did send that along with the comment here. If I get an answer, I'll let you know. :-)


ImageDisplay: report frame issues

Currently, image displays report "no image received" - also in case images were received but had an unknown image frame. This PR adds a corresponding failure handling for TF frames.
However, for ImageDisplay an issue remains with CameraInfo: If the camera info is published latched, rviz only receives a single message (either success or failure depending on the frame status). If rviz' fixed frame changes (which probably changes the frame status of the camera as well), this change is not noticed anymore, because updates can only happen when a new TF message is received.
@wjwwood, hence my question: Should we latched CameraInfo messages be supported?
If so, we would need to memorize the latest received message in any case and validate its frame "manually" as soon as the fixed frame changes.

Should we latched CameraInfo messages be supported?

Assuming you mean "should we support them", then I'd say, without looking into it much, yes. It seems like something that doesn't change often and therefore is a prime candidate for latching.

If so, we would need to memorize the latest received message in any case and validate its frame "manually" as soon as the fixed frame changes.

That seems like a reasonable thing to do. It would be nice if there was a "on fixed frame changed" callback that displays could implement. Then the ImageDisplay could just implement that and react appropriately when it occurs.


Please add main to bower.json

when using angular-fullstack yo generator, the datepicker is not picked (no pun intended)
by the injector. so i found the problem is that in your bower.json file, there is no "main" clause.
the missing line i believe should be:
"main": ["src/js/datetimepicker.js","src/js/datetimepicker.templates.js"]
and it solves the problem.
if you want to read more about it:
https://github.com/taptapship/wiredep#what-can-go-wrong
Thanks.

This project has dropped support for Bower - you can use the overrides section in bower.json make use of this directive and wiredep.


Improvereadonlyaccess

More work on improved read access to existing datastructures by allowing any fmt.Stringer implementation as a map key and allowing to access map struct values that are not pointers.
I am bit unsure if the change in ReadField() and ReadFieldWithFieldName() is okay, maybe its better to add two new ReadFieldElem() and ReadFieldElemWithFieldName() ?

I found a better solution with no API change and LESS new code. Will open a new pull request


<C-u>/<C-d> doesn't work after 857095c

69c8ace8644dcd8e599b3c9e68fe2fb24c1df15d works fine, the issue appears after 857095c03d00e9b4c6869c6e93c182f9d99066c8
Tell me if you need something for reproduction

From that commit the default keymaps no longer override keymaps that already exist. Could you please try executing :map <C-U> to check if a keymap is being set somewhere else?
To just override the other keymaps you can add to add to your config:
vim.keymap.set({ 'n', 'x' }, '<C-u>', "<Cmd>lua Scroll('<C-u>', 1, 1)<CR>")
vim.keymap.set({ 'n', 'x' }, '<C-d>', "<Cmd>lua Scroll('<C-d>', 1, 1)<CR>")

Could you please let me know how you go :)

Could you please try executing :map  to check if a keymap is being set somewhere else?

69c8ace8644dcd8e599b3c9e68fe2fb24c1df15d give me that those keys mapped to the Scroll function in Normal and Visual map-mode (n, x)
but 857095c03d00e9b4c6869c6e93c182f9d99066c8 map Scroll function only for Visual map-mode (x)

Manually setting keymap for <C-u>/<C-d> fixed the problem, but why should I do it if I never override the keymap ?

I think the keymaps might be getting set by another plugin? If :nmap <C-U> doesn't show anything then I'm not sure why cinnamon is detecting a pre-existing keymap. I'm now adding an option to override all existing keymaps if you update the plugin :)
require("cinnamon").setup({
  override_keymaps = true,
})

As far as I'm aware, there is no plugin that overrides the key, and if it does, :map will show you where the keys has been mapped.
Thanks for the latest commit, it fixed the issue


Rapid Development Environment

It would be best to figure out how to create a rapid development environment locally so that we don't have to pay a lot to test in a deployed environment. This will have to include a couple different things.

The main server code
The UI code
local dynamodb store
local SQS (maybe?)
local Lambda (maybe?)

This is important for development for cost savings.

This is solved here: https://github.com/SaxyPandaBear/TwitchSongRequests/blob/master/package.json
Now, we just need to put all the pieces in it. Closing this out for now since we have a solution in place


Add data field to the Packet-In message.

Update the Packet-In struct (by adding data field) as per OpenFlow standard for OFPT_PACKET_IN message.

I'll work on updating the tests (in order to pass CI), hopefully tomorrow.

@costiser , thank you for this PR!

Done. PTAL.


Dependent types in records

Hi, I was trying to define a record type similar to this one:
noeq type a = { typ:Type; f:typ -> nat }

F* does not accept this because it cannot find the identifier typ. However, F* has no problem accepting the following definition:
noeq type a =
  | MkA : typ:Type -> f:(typ -> nat) -> a

I thought these two definitions are the same internally in F* so I expected F* would yield the same result in both of them.

This is a frequent request. See #801 and #1184.

Thanks for the pointer! Feel free to close it since there are multiple tickets about it already.

Closing.


Condition can be signaled by other Conditions

I'd like a cross-check on this. /cc @tarcieri
Basically when the Condition is used in exclusive mode or in a normal Thread, the Mailbox#receive will return any SystemEvent messages.
This means it potentially could be returned a SignalConditionRequest which is for the same Thread but a different Condition.
code

@halorgium is this still here? 10/13

Please reopen this in 0.18.0 if there is still interest. It seems Future is still not Condition based, so whenever we do that it might be a good time to reincarnate this.


Training the model

Hello! I am trying to train SC-GlowTTS models and can not figure out the proper way to do this. I tried launching train_glow_tts.py script from coqui-ai/TTS with config and commit hash from colab notebooks, but this generates errors and I am not sure this is a correct way to do it. I also tried using configs from coqui with the latest version but this does not work either. Could you please explain, what are the intended steps to reproduce your experiments? :)

Hello,
Since the implementation of the model, the Coqui repository has undergone some restructuring. For you to train SC-GlowTTS-Trans use config.json and speakers.json present here.

Now it points to "not found" page. :(

@The0nix  Try again.


Fixed URL to ASP.NET Core WebListener

Right URL https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/weblistener

Hi @wagsousa, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. Real humans will now evaluate your PR.

TTYL, MSBOT;

@wagsousa : Thanks for your contribution to the Azure documentation! The author, @BharatNarasimman, has been notified to review your proposed change.

@BharatNarasimman Please review these updates, resolve the merge conflict, and sign off if you approve the changes. Thanks.

I think this has been merged already and should be closed.
/cc: @jomolnar

Hi @wagsousa,
Closing this PR as the proposed changes have already been merged per @MaximRouiller
Thanks.


Previous S2 Shadow Plugin draft

Before you submit this PR: make sure to put all operations-related information in a wiki-note, a PR should be about code and is publicly accessible
What does the code in this PR do / what does it improve?
This plug in could compute the previous s2 shadow variable, which could be used to reduce the isolated S1 and S2 events.
Can you briefly describe how it works?
we define the shadow parameter as [previous s2 area/ time difference].
To calculate this, we loop over the previous 20 events (about 3 seconds given the event rate now)
and take the maximum as the shadow value.
Can you give a minimal working example (or illustrate with a figure)?
here is an example of how to use the variable
https://github.com/XENONnT/analysiscode/blob/master/AC_BG/shadow_plugin_test.ipynb
Please include the following if applicable:

[ ] Update the docstring(s)
[ ] Update the documentation
[x] Tests to check the (new) code is working as desired.
[ ] Does it solve one of the open issues on github?

Notes on testing

Until the automated tests pass, please mark the PR as a draft.
On the XENONnT fork we test with database access, on private forks there is no database access for security considerations.

All italic comments can be removed from this template.

@chnlkx Hi Kexin, thanks for starting this PR for the S2Shadow cut. I have a question on the definition of previous S2. It seems that previous S2 is based on "event", not "peaks". Do you think it should be changed baed on peaks In case if we miss S1s for some reason? maybe @jingqiangye or @l-althueser have a suggestion?

Hi @chnlkx I also agree with Shingo that the plugin should depend on peaks and events. In addition instead of always taking the last 20 events I think we should make things a bit more reproducible by taking a fixed time window. If you need any help by modifying your plugin let me know via slack.

@chnlkx
Hi Kexin, thanks for the update. I just checked your code and modified some typos. Here you can see my notebook for your plugin test. I managed to create event_shadow plugin and showed s2_area vs s2_shadow in the notebook.
Can you also add some variables like position difference between current s2 and the other s2 used for S2shadow cut calculation?

Can you register your plugin around here in the context?:
https://github.com/XENONnT/straxen/blob/master/straxen/contexts.py#L97

Can you register your plugin around in the context.py?:
https://github.com/XENONnT/straxen/blob/master/straxen/contexts.py#L97


fix: semantic release

:tada: This PR is included in version 1.109.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[FR] Load/Create Dataset from xarray

Proposal Summary
Xarray is a great library for working with labelled multi-dimensional arrays - this feels quite similar to what this (fantastic!) library does, so it would be great to be able to load data from and work with the xarray format.
Motivation

I like to store multi-dimensional arrays in zarr format, which would perhaps make moving around fiftyone datasets easier + make  working with cloud storage (e.g. AWS S3) easier.
Xarray support lazy loading of data for big datasets: https://xarray.pydata.org/en/stable/user-guide/dask.html
Xarray seems quite popular and is a part of the PyData stack.

I'm definitely not an expert on the fiftyone library, so please feel free to point me to doc regarding solutions to the above :)
What areas of FiftyOne does this feature affect?

[ ] App: FiftyOne application
[x] Core: Core fiftyone Python library
[ ] Server: FiftyOne server

Details
As an example, suppose I have the following xarray:
import numpy as np
import xarray as xr

data = xr.DataArray(
    data=np.array([[[[1, 1, 0], [2, 2, 0]], [[3, 3, 0], [4, 4, 1]]],
                      [[[10, 10, 0], [20, 20, 0]], [[30, 30, 0], [40, 40, 1]]]]),
    dims=["sample_idx", "height", "width", "band"],
    coords={"band": ["band1", "band2", "label"]},
    attrs={"res": 1}
)

In fiftyone, this may look something like:
import fiftyone as fo

sample = fo.Sample(filepath=None)
sample["X"] = data.sel(band=["band1", "band2"])
sample["Y"] = fo.Segmentation(mask=data.sel(band="label"))

dataset = fo.Dataset(name="training-data")
dataset.add_samples([sample])
dataset.default_mask_targets = {0: "Yes", 1: "No"}
dataset["res"] = data.res  # not sure if you can store dataset metadata?
dataset.save()

I've had a little look through the fiftyone doc, and possibly this could be solved via https://voxel51.com/docs/fiftyone/user_guide/dataset_creation/datasets.html#custom-formats
Willingness to contribute

[x] Yes. I would be willing to contribute this feature with guidance from the FiftyOne community.

Many thanks for any help! :)

Hi @asmith26 👋
Just to orient us, here's a couple FiftyOne axioms:

FiftyOne is designed for representing collections of visual data (currently images and videos) together with any associated metadata, which can be task-specific (eg detections, segmentations, polylines), or primitive fields (str, float, int, bool) or arbitrary JSON.
FiftyOne always "owns" the storage of a dataset's metadata. When you load data into FiftyOne, it is always written to a backing MongoDB database, which is henceforward the source from which that dataset's contents are served when you interactive with the FiftyOne App or the Python API
The actual media (images and videos) are not stored in MongoDB; only pointers to the images and videos on disk/cloud storage are stored. And, FiftyOne requires random access to these images and videos, eg when viewing a dataset or view into it in the FiftyOne App

That said, if you have an xarray that contains information about a set of images or videos that you want to load into FiftyOne (presumably because you prefer the visualization and query capabilities that FiftyOne provides), then it would absolutely make sense to write a custom importer that will load the xarray into FiftyOne dataset format.
Since xarray offers very flexible, schema-less storage, the importer would to either expect that the xarray data satisfied a certain data model, or you'd need a way to define the schema of your xarray in such a way that the data could be transformed into the appropriate FiftyOne Label/field types.

Thanks very much for this information @brimoor

...(presumably because you prefer the visualization and query capabilities that FiftyOne provides)...

This is what I am after thanks. Regarding how to use a custom importer, I think I understand what this may look like:
import fiftyone as fo

xr_importer = XarrayDatasetImporter(...)
dataset = fo.Dataset.from_importer(xr_importer)

the thing I'm a bit unsure on is how to write XarrayDatasetImporter. I hoping to use this for an image segmentation problem, so I think I need to inherit from foud.LabeledImageDatasetImporter.
I'll give this a go, and thanks again for this fantastic lib! :)

The DatasetImporter interface is just a fancy way to encapsulate the code required to transform a certain external/disk representation of some data in a pre-defined format into FiftyOne Sample instances.
The simplest approach is to just start by writing a function that takes your xarray as input and constructs a FiftyOne dataset via a simple Python loop.
Refactoring that function into a DatasetImporter would allow you to use methods like Dataset.from_importer(), Dataset.add_importer(), and Dataset.merge_importer() that provide slight tweaks such as creating a new dataset vs adding to an existing dataset vs merging new fields onto an existing dataset "for free".
The DatasetImporter subclasses like UnlabeledImageDatasetImporter and LabeledImageDatasetImporter just define slightly different interfaces depending on whether you are importing images only or images with one-or-more label fields, respectively.
There is also a GenericSampleDatasetImporter class for situations where you find it easier to just let your importer construct and return entire Sample instances containing arbitrary contents. Since xarray can contain arbitrary data, the most ambitious implementation would be a GenericSampleDatasetImporter that could generate lots of different types of samples depending on what the input array's schema is. GeoJSONDatasetImporter is an example of such an importer.
tldr; I'd recommend just writing a simple utility function first :)

Thanks very much for all your help @brimoor. I've been trying to implement the simple Python loop method, but I'm struggling to initialize a sample without providing a filepath:
sample = fo.Sample(filepath=filepath)

Just wondering if it is possible to do something like:
sample = fo.Sample(image_data=np.array([...]))

Many thanks again!

This is what I was getting at with this point:

The actual media (images and videos) are not stored in MongoDB; only pointers to the images and videos on disk/cloud storage are stored. And, FiftyOne requires random access to these images and videos, eg when viewing a dataset or view into it in the FiftyOne App

In order to use FiftyOne, you'll have to write the images as png/jpg/etc files on disk somewhere and pass those paths to Sample.filepath. FiftyOne isn't an in-memory data format; media is stored on disk and metadata is stored in MongoDB.

@brimoor Could I get a little more details on why this is not possible, i.e. why can't there be a fetching function, which would get you an image array upon request? Doesn't have to be stored in memory all the time.
What makes the common image formats special, that the functionality can't be extended over an arbitrary object?

Hi @mg515, an image fetching API could probably be added. Some work would need to be done to standardize the way that media is accessed across the entire library though, because there are lots of ways media must be consumed across the library:

The App would need to use the fetch API whenever it requests media for either its grid view or expanded modal
Methods like apply_model() and compute_embeddings() that feed images to data loaders
Things like annotation integrations that upload media to other services

@mg515 Are there any updates on the possibility of adding an image fetching API?
We are dealing with a similar case, but we would love to use Fiftyone.

@brimoor, are there any updates on an image fetching API implementation? It would greatly improve the usability of FiftyOne for various dataset formats.

@brimoor , @danielgural I note a similar request in slack channel regarding loading from npz. While the custom parser allows to ingest the npz, it would be great to not have to store the images locally in jpg/ png format while they are already available in another format.


About the old version filename and main file

Hi, I'm going to host this lib on cdnjs.
First I am not sure which files should be added.
Is the file in src needed?
And second I want to confirm the file Vimeo.js in the latest version which is same as the file media.vimeo.js in v1.0.2 or not.
Please help me solve it, thanks.
https://github.com/cdnjs/cdnjs/pull/9565

Hey, so, we're in the process of updating this plugin to use the official vimeo API. It'll also be published to npm and be available in the dist/videojs-vimeo.js file from that package. So, you could probably update it to use that format and update via npm updates. Some other videojs plugins are already working with that, I think, even video.js itself works that way now.

Hi @gkatsev I tried to use npm run build to get dist/Vimeo.min.js, but nothing appeared. Is there any other way to get the file same as dist/Vimeo.min.js? Maybe minify src/Vimeo.js in v2.0.0 ~ v2.0.2 and src/media.vimeo.js in v1.0.2? Thank you!


many0() False Fails with Streaming Functions

I'm trying to move my parser that uses complete to streaming because I won't be able to load all of the data into memory. The test case below is a simplified recreation of the issue I'm experiencing, along with my expected output.
If my expected output isn't correct, could someone explain why, along with how I can get this simple case to work with a streaming function?

Rust version : rustc 1.48.0 (7eac88abb 2020-11-16)
nom version : 6.0.1
nom compilation features used: default

Test case
#[macro_use]
extern crate nom;

#[cfg(test)]
mod tests {
    use nom::IResult;
    use nom::multi::many0;
    // NOTE: Replacing this with the `complete` version of the method will pass.
    use nom::bytes::streaming::tag;

    fn parse_apples(input: &str) -> IResult<&str, Vec<&str>> {
        many0(tag("apple"))(input)
    }

    #[test]
    fn match_apple_streaming() {
        assert_eq!(
            parse_apples("appleappleapple"),
            // Fails with: Err(Incomplete(Size(5)))
            Ok(("", vec!["apple", "apple", "apple"]))
        )
    }
}

This is failing because, on the 4th loop, the parser attempts to run, and returns Incomplete. This is the correct behavior, because the parser could continue to parse successfully if more input was available, and it has no way of knowing that the end of "appleappleapple" is the actual end of the streaming input data.
In general, streaming parsers need to be looped outside of parser combinators. This is because nom parsers aren't capable of "saving" their state, so you need to take care of parsing each item (streaming more input if necessary) , processing it (in this case, pushing it to a vector), and then moving on to the next one. You yourself are the arbiter of when you're done, and need to take care of responding to an empty string either by returning success, or by streaming in more data, depending on the state of your data source.

Thank you for your explanation. I'm going to close this since I think it's well known that documentation on how how to write a streaming parser is pretty lacking (see #1160), so this issue is just a duplicate at best.


How to redirect to app's info dynamically after denied the run-time permission in android?

Describe your environment

React-Native version: 0.57.0
Platform: Android

If I have always denied the runtime permissions and need to redirect to current app's info for the enable the permission, then how can I redirect to the app info?

I am closing this since this issue does not exists anymore with the 2.0.0 release.


Mods not loading in load order.

Linux and windows load in different order.
This causes item ID mismatches.

I didn't look into the code, but I suspect it may also load in different order on two Windows machines, depending on the circumstances - at least if the order is purely based on how the underlying IO returns the file list. I can imagine it returning in different order for, say, different file date metadata or different file systems.

Related commit: fde396f7511771f23f818999052a636cc9861bda


conference_info: acronym cleaning

Clean the acronym field for the conference information.
Currently we have the acronym field in the datafield 711__, since conference_info is an array now, the acronym should be part of a conrete conference (datafields 711__ or 111__), and not be apart from them.
Here an example (check record here):
Currently we have this:
<datafield tag="111" ind1=" " ind2=" ">
  <subfield code="9">20180912</subfield>
  <subfield code="a">Proceedings of the 2018 Asia–Europe–Pacific School of High-Energy Physics</subfield>
  <subfield code="c">Quy Nhon, Vietnam</subfield>
  <subfield code="d">12 - 25 Sep 2018</subfield>
  <subfield code="f">2018</subfield>
  <subfield code="g">quynhon20180912</subfield>
  <subfield code="i">C18-09-12</subfield>
  <subfield code="n">4</subfield>
  <subfield code="w">VN</subfield>
  <subfield code="z">20180925</subfield>
</datafield>
<datafield tag="711" ind1=" " ind2=" ">
  <subfield code="a">AEPSHEP2018</subfield>
  <subfield code="x">Acronym</subfield>
</datafield>

(Note the field 711 with the subfield x=acronym and the value of the acronym in the subfield a)
And after the cleaning of this field we should expect this:
<datafield tag="111" ind1=" " ind2=" ">
  <subfield code="9">20180912</subfield>
  <subfield code="a">Proceedings of the 2018 Asia–Europe–Pacific School of High-Energy Physics</subfield>
  <subfield code="c">Quy Nhon, Vietnam</subfield>
  <subfield code="d">12 - 25 Sep 2018</subfield>
  <subfield code="f">2018</subfield>
  <subfield code="g">quynhon20180912</subfield>
  <subfield code="i">C18-09-12</subfield>
  <subfield code="n">4</subfield>
  <subfield code="x">AEPSHEP2018</subfield>
  <subfield code="w">VN</subfield>
  <subfield code="z">20180925</subfield>
</datafield>

The acronym now appears in the subfield x of the conference.

There is no more record where there is more than 1 acronym in the record (I have cleaned a few records), please attribute the acronym Information to the conference in 111__


Bug to connect tasks involving CSemanticSegmentationIO as input

To Reproduce
Create a new workflow, add infer_yolo_v8_instance_segmentation with auto_connect, then add infer_hf_stable_diffusion_inpaint with auto_connect. Make sure infer_yolo_v8_instance_segmentation is not run before connecting the tasks.
Expected behavior
Tasks should be linked.
Logs/Screenshots
Traceback (most recent call last):
File "/home/ambroise/Developpement/recherches/test_algos.py", line 11, in
std = wf.add_task(name="infer_lcm_stable_diffusion_inpaint", auto_connect=True)
File "/home/ambroise/Developpement/IkomiaApi/ikomia/dataprocess/workflow.py", line 294, in add_task
self.connect_tasks(parent_task, task)
File "/home/ambroise/Developpement/IkomiaApi/ikomia/dataprocess/workflow.py", line 364, in connect_tasks
self.connect(src_id, target_id, -1, -1)
RuntimeError: OpenCV(4.7.0) /home/ambroise/Developpement/opencv/modules/core/src/matrix_expressions.cpp:24: error: (-5:Bad argument) Matrix operand is an empty matrix. in function 'checkOperandsExist'
Environment:

OS: [e.g. Windows11, Ubuntu 22.04]
Python version [e.g. 3.7, 3.8, 3.9, 3.10]
Ikomia API version 0.10

Fixes in Ikomia-dev/IkomiaCore@9e6d915