"Uncaught RangeError: offset is out of bounds" Error

Checklist:

[ x] I updated to the latest version available
[x ] I cleared the cache of my browser

Release with the issue:
2.0.0
Last working release (if known):
the one before (Unsure which number )
Browser and Operating System:
Chrome, Ipad Fullkiosk and the HA app on a android table

Description of problem:

My video feeds don't load (White screen) and this appears in the logs since update to latest version

Additional information:

Have not encountered that before. Can you provide your card configuration, and describe what you're doing when those errors arrive? If you have a stacktrace or anything else on on the Javascript console (F12 in Chrome) that would be really helpful.

Also when you visit the Frigate server web UI, do the 'Live' and 'Debug' video streams work okay, or do you see a similar error?

I also get that one randomly on a specific device (Surface Pro / Windows 10 / Edge Latest).
It is mixed with thousands of repeating Uncaught RuntimeError: memory access out of bounds.
In the HA log, I get thousands of Script error and my logs are flooded.
2021-11-14 08:27:27 ERROR (MainThread) [frontend.js.latest.202111090] http://homeassistant.local:8123/hacsfiles/frigate-hass-card/frigate-hass-card.js?hacstag=394082552200:557:39882 Uncaught RangeError: offset is out of bounds
2021-11-14 08:27:27 ERROR (MainThread) [frontend.js.latest.202111090] :0:0 Script error.
2021-11-14 08:27:27 ERROR (MainThread) [frontend.js.latest.202111090] http://homeassistant.local:8123/hacsfiles/frigate-hass-card/frigate-hass-card.js?hacstag=394082552200:557:39882 Uncaught RangeError: offset is out of bounds
2021-11-14 08:27:27 ERROR (MainThread) [frontend.js.latest.202111090] :0:0 Script error.
2021-11-14 08:27:27 ERROR (MainThread) [frontend.js.latest.202111090] :0:0 Script error.
2021-11-14 08:27:27 ERROR (MainThread) [frontend.js.latest.202111090] :0:0 Script error.
2021-11-14 08:27:27 ERROR (MainThread) [frontend.js.latest.202111090] :0:0 Script error.
2021-11-14 08:27:28 ERROR (MainThread) [frontend.js.latest.202111090] :0:0 Script error.
2021-11-14 08:27:28 ERROR (MainThread) [frontend.js.latest.202111090] :0:0 Script error.

In the console of the browser:
       Uncaught RuntimeError: memory access out of bounds
    at 00025b02:0x5b8a
    at 00025b02:0x56d9
    at 00025b02:0x3f4
    at e.t.initializeWasmDecoder (frigate-hass-card.js?hacstag=394082552200:557)
    at e.t.bufferWrite (frigate-hass-card.js?hacstag=394082552200:557)
    at e.write (frigate-hass-card.js?hacstag=394082552200:557)
    at e.t.write (frigate-hass-card.js?hacstag=394082552200:557)
    at A.e.packetComplete (frigate-hass-card.js?hacstag=394082552200:557)
    at A.e.parsePacket (frigate-hass-card.js?hacstag=394082552200:557)
    at A.e.write (frigate-hass-card.js?hacstag=394082552200:557)
$func52 @ 00025b02:0x5b8a
$_malloc @ 00025b02:0x56d9
$_mpeg1_decoder_create @ 00025b02:0x3f4
t.initializeWasmDecoder @ frigate-hass-card.js?hacstag=394082552200:557
t.bufferWrite @ frigate-hass-card.js?hacstag=394082552200:557
e.write @ frigate-hass-card.js?hacstag=394082552200:557
t.write @ frigate-hass-card.js?hacstag=394082552200:557
e.packetComplete @ frigate-hass-card.js?hacstag=394082552200:557
e.parsePacket @ frigate-hass-card.js?hacstag=394082552200:557
e.write @ frigate-hass-card.js?hacstag=394082552200:557
e.onMessage @ frigate-hass-card.js?hacstag=394082552200:557
00025b02:0x5b8a

The cards stay white and don't recover. The only way to fix it is to reload the page. I have an extension to reload the page every 30 minutes my kiosk view (because it does not refresh automatically if I make changes to the dashboard on another device). Sometimes (maybe every 10 reloads), the cards can't load and these errors loop. I am not able to reproduce it easily. :(

Related errors upstream:
https://github.com/cycjimmy/jsmpeg-player/issues/33
https://github.com/cycjimmy/jsmpeg-player/issues/27
https://github.com/phoboslab/jsmpeg/issues/268

I don't have the stack trace for RangeError: offset is out of bounds".
From what I saw in the related issues upstream, it happens when the page is indeed reloaded multiple times and it may be related to improper garbage collection. So in my case, I just stopped the auto-reload extension. It was more useful when I add authentication errors in the previous version.
@maxi1134 : Do you know if you get this error on a browser which has been open for a long time or on a computer with low memory?

@Mincka  I do leave the browser open for hours on end on the video view!
I also get white screens and no loading after a few reloads of the page.
32GB of ram here

I have seen this when using very high resolutions.

@blakeblackshear  I am using 2 and 4k vameras! ( 5 and 8MP for the biggest ones )

Not my case. Over 4 cards, 3 streams are low resolution (640x360), another is 1920x1080.
Having multiple cards may lead to a similar result: high memory usage.

I cannot reproduce this with any of my cameras -- but I suspect this is just because they are lower resolution / lower bitrate than the cameras you are experimenting with.
Right now both the Frigate card and the Frigate web UI use a 4MB JSMPEG videoBufferSize. If I reduce that value, I can reproduce errors that look like the ones @Mincka reports (although I need to reduce it substantially). This may suggest that increasing it could help.
If anyone can readily reproduce this and is comfortable doing their own build, try setting a much higher value here and lets see if it has any effect?
The upstream issue also suggest that the ffmpeg parameters used for the encoding on the Frigate end could also be something to investigate/fiddle with.

Tested with videoBufferSize: 1024 * 1024 * 40 and it happened again, but only 1 time for about 60 reloads (don't say I didn't try lol).
I am sure it was my build that was loaded when it crashed since I used a custom version number.
I would say it's better and it looks like to load a little bit faster. Since it's hard to reproduce, I will check if it happens again in the coming days. It would be great if @maxi1134 could also test it.
Update your frigate-hass-card.js from config/www/community/frigate-hass-card with the code below:
frigate-hass-card.js.txt
Delete the frigate-hass-card.gz file. Ctrl+F5 and/or Shift+Ctrl+R to reload.

I added a way to specify custom JSMPEG parameters in the card YAML (as specifying a giant video buffer size for most users is probably unnecessarily inefficient). In the next build, you can do something like:
live:
  jsmpeg:
    options:
      videoBufferSize: 41943040

... which is equivalent to the custom build @Mincka did.
@Mincka also mentioned a potential garbage collection problem in the upstream JSMPEG library -- I think they're on to something. If I set a very low videoBufferSize I get the same console spam. If I subsequently set a new videoBufferSize (without reloading) I still continue to get the console spam. This is NOT the card failing to do its garbage collection, the card destroys the JSMPEG player at the right moments (and if I add disableWebAssembly: true I no longer get this behavior, so my theory is the memory issue is related to how JSMPEG uses WASM).

Tested with videoBufferSize: 1024 * 1024 * 40 and it happened again, but only 1 time for about 60 reloads (don't say I didn't try lol). I am sure it was my build that was loaded when it crashed since I used a custom version number. I would say it's better and it looks like to load a little bit faster. Since it's hard to reproduce, I will check if it happens again in the coming days.
It would be great if @maxi1134 could also test it.
Update your frigate-hass-card.js from config/www/community/frigate-hass-card with the code below: frigate-hass-card.js.txt
Delete the frigate-hass-card.gz file. Ctrl+F5 and/or Shift+Ctrl+R to reload.
Edit: Anyhow, would it be possible to catch these exceptions from the card and trigger a reset to prevent an unexpected flooding?

I will try this tomorrow first thing in the morning!

It also still happen in my case. I try a new build with videoBufferSize: 1024 * 1024 * 400 just to see if it happens again.
The YAML additions are very welcome and I will try to use them after this last quick and dirty attempt.

It's quite sad but the error happened again the first time I reloaded the page with the latest build (with 419 430 400 as buffer size). In the end, I am not sure this setting is responsible (at least alone) for this error. I will try with disableWebAssembly as soon as possible.
If the exception bubbles up to the console / HA, I guess you could catch it and reset the card @dermotduffy? Of course it would be best to find the root cause, but I think it could be helpful to prevent an unexpected log flooding from the card. when the dependencies fail for some reason.

It seems like it would be simple, but because the errors are not really related to the card all, and not in any of the call paths I control (they are buried deep inside the JSMPEG libraries in async code that gets triggered from Websocket traffic), there isn't even a straightforward way for me to even notice or catch these errors. I'll see if I can hack something in, but it won't be pretty...
I'm not sure reset the card is right, as there's no guarantee it'll work after the reset either and it could easily generate a reset-loop.

OK I understand. :( I am now running the latest version with only disableWebAssembly as true. I will let you know if it prevents it.

No errors today. With web assembly disabled, the stream seams to take a little bit longer but that's OK for an initial load on a kiosk. It could be a fix for me. I will check back in a few days. Thanks!

Still no error on the Surface Pro used as kiosk while using only this:
          jsmpeg:
            options:
              disableWebAssembly: true

I consider this workaround good enough for me. Thank you. Maybe something to add to the Troubleshooting section?

Is the DisableWebAssemble option available in the latest HACS version?
If not, how can I install it!?
Thanks!

@maxi1134 It's not, you'll either need to build your own custom version or wait for the next beta version (probably within the next week).

I got a new, yet similar error today!
2021-11-25 15:20:16 ERROR (MainThread) [frontend.js.latest.202111090] http://<IP_ADDRESS>:8123/hacsfiles/frigate-hass-card/frigate-hass-card.js?hacstag=394082552200:557:66175 Uncaught RangeError: WebAssembly.Memory.grow(): Unable to grow instance memory

I added
jsmpeg:
options:
disableWebAssembly: true
and it seems to work!

Just because the configuration was not rejected, doesn't mean that option was honored! Unless you did a fresh build yourself, it should not have any effect.
FYI: I'm planning a new build this weekend, just trying to squish a few more bugs first ...

I did a fresh build! ( Only took me 4 hours to figure out how 😅 )

It seems to work after a reboot!
But after a while, my logs get filled with this:

@maxi1134 Can you see if you can get me the stacktrace for one of those in your Javascript console? I'm not sure there's much I can do, but I can try to mute the log spam at least...

I had another look at this, and even wrapping the calls to prevent the exception spam is an exercise in futility -- when it gets into this situation, it seems like the exceptions can stem from a variety of different sync & async methods -- wrapping one only just causes the exceptions to pop out somewhere else. So I am going to close this bug, as I'm struggling to identify a sensible action to take that doesn't just depend on the upstream bugs being resolved.
For those in this situation, if the disableWebAssembly or videoBufferSize tricks don't work for you, and/or if lowering your resolution/bitrate aren't options or don't help, using a different live provider in the card (e.g. WebRTC) may be the necessary direction.
Of course, if anyone else has bright ideas of things that can be done in the card, I'd love to hear it.


(winscp) Shim for Winscp.com triggers an "Suspicious Double File Extension Execution" when used

Below issue is a bit far fetched, but I thought I would post it anyway as this seems to easiest path to fix it.
It appears that the McAfee virus scanner deletes executables with a double file extension when they are executed as part of a script.
I use chocolatey cleaner to maintain the chocolatey install. Part of that cleaner script checks if shims still point to an executable by checking the output of $ShimFile --shimgen-help.
In the case of WinSCP two shims are created under c:\ProgramData\chocolatey\bin\:

winscp.exe which points to c:\Program Files (x86)\WinSCP\WinSCP.exe
winscp.com.exe which points to c:\Program Files (x86)\WinSCP\WinSCP.com (related #1412 and #1134)

The latter shim is seen as "suspicious" and is deleted by McAfee when it is executed from a script.
Expected Behavior

Ideally the created shim would have the same name as the original it points to, i.e. winscp.com instead of winscp.com.exe.
I understand the .exe is added by the shim generator and this is not configurable.
Additionally chocolatey tools (like the cleaner) expect .exe files as shims, so it's best to stick to that extension.
Perhaps the WinSCP install script can rename winscp.com.exe to winscp-com.exe in the folder c:\ProgramData\chocolatey\bin\ during the installation?
Current Behavior

When WinSCP is installed through chocolatey two shims are created under c:\ProgramData\chocolatey\bin\:

winscp.exe which points to c:\Program Files (x86)\WinSCP\WinSCP.exe
winscp.com.exe which points to c:\Program Files (x86)\WinSCP\WinSCP.com (related #1412 and #1134)

Possible Solution

The "proper" method would be to configure a McAfee exception, but in my current working environment I cannot configure those.
The current workaround I use is to rename the winscp.com.exe file manually to winscp-com.exe after every choco upgrade all.
Steps to Reproduce (for bugs)

Have McAfee Endpoint security running
Install chocolatey cleaner
Install WinSCP rom chocolatey
Run C:\tools\BCURRAN3\choco-cleaner.ps1 manually
McAfee should flag this as suspicious behaviour

Context

I manage a Windows server in a corporate environment where antivirus exclusions are not easily obtained. Ideally I would be able to keep using chocolatey, but for that I need to make sure this does not raise any (false positive) antivirus flags.
Your Environment

Package Version used: 5.19.2
Operating System and version: Windows Server 2016 v1607 build 14393.4467
Chocolatey version: 0.10.15
Install/uninstall gist: ...?

The issue here is McAfee being over aggressive in removing files with two extensions (I suspect it's two extensions where the last one is executable). From a package point of view things are being done correctly. From a Shimgen point of view things are being done correctly.

Thanks for the quick reply. I sort of suspected this, but given I have no control over McAfee I thought I would try this route. But I understand it's far fetched and very niche, so I'll stick to my current workaround.

If it was many virus scanners, then I think it would be reasonable for us to look at it as part of Chocolatey Shimgen.
Is there no way to turn this off or exclude folders in McAfee?

Is there no way to turn this off or exclude folders in McAfee?

No way for me at least. In the corporate environment I cannot request exceptions without a valid reason. Unfortunately "I have to manually rename the shimfile after every update" is not a valid reason.


Possibility of migrating to futures-lite/smol-rs?

I think it would be a good idea to migrate to futures-lite/smol-rs in order to be consistent with bevy and reduce overall dependencies. Another idea would be it just use bevy_tasks (which uses futures-lite/smol-rs but has a lot of the boilerplate code already in it) but idk what your thoughts on depending directly on a bevy create is.

This repo is bevy-agnostic, so using bevy_tasks isn't an option.
I'm not sure I see the value in switching to a runtime crate for async, since the only current async dependency is the futures crate itself - the mentioned runtimes already build on top of that, so the main potential benefit would be in removing the ctrlc and notify dependencies in favour of runtime-specific interrupt handling and file watching.
Given that said runtimes pull in a litany of other dependencies to power other parts of the async ecosystem (I/O, networking, process management, etc), the proposition ends up as trading off two local dependencies for a bunch of upstream ones this crate doesn't use, so doesn't seem justifiable from that standpoint.
I played a bit of devil's advocate and had a poke around for parts of this crate that could benefit by being refactored around a runtime's higher-level async abstractions and thus justify such a switch, but there aren't any that really stick out to me; everything relevant (like process management and filesystem handling) is black-boxed behind spirv-builder.
So I'm open to further argumentation - particularly if there are specific parts of the code that could be highlighted as benefitting from switching to a runtime - but as-is I don't think it's worth doing.

The mentioned runtimes do not build off fututes, they build off fututes-lite and I wasn't really suggesting an async runtime more to just move to futures-lite instead of futures to reduce overall project (I.e. any projects using this and bevy) as fututes-lite is what bevy uses and this is bevy oriented

I see - that makes more sense. It looks like the various parts of smol can be pulled in piecemeal, which is more appealing than bringing in an entire runtime, and the "better-implemented futures" pitch of futures-lite is somewhat appealing.
rust-gpu-builder is a binary standalone tool rather than a dependency in the regular crates.io sense, so a slightly suboptimal set of async deps isn't going to waterfall down to any crates in projects that use it. And while it may be bevy-oriented in the practical sense, on a software design level it's purely a rust-gpu tool, so outside of "bevy's design choices are good" there's no causal line to be drawn between the two.
So I'd merge a pull request that swaps in futures-lite and the necessary async- crates with the appropriate code changes, but don't plan to actively pursue it myself on account of the cost : benefit being very low compared to other active issues in the broader project.

Ok if your willing to merge it I'll make a PR :)

A few new tasks have opened for this crate recently, so I sorted this out in the process of fixing them; rust-gpu-builder now uses futures-lite, async-executor, async-channel and easy-parallel instead of futures.

This is great! And sorry I didn;t have time for a PR I was swamped with work :)


[feat] Add missing icons to react-uswds

Does your feature request relate to a specific USWDS component?

Yes, the Icon
What USWDS Version is this feature present in?

Various, but 3.1.0 is an example. That release introduced a linkedin icon.
Missing in react-uswds from usa-icons:

linkedin.svg
edit.svg
fax.svg (😄 )
remove_circle.svg

Is your feature request related to a problem? Please describe.

react-uswds does not have all the icons from USWDS
Describe the solution you'd like

Update the code to use all icons. Update storybook to show them.

FYI edit was already in there, just not in the storybook


Don't emit warnings for each actually supported text YAML wildcard

Silly bug introduced in #103...

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.

Files
Coverage Δ

.../dynamicprompts/wildcards/collection/structured.py
90.76% <100.00%> (-1.42%)
:arrow_down:

:loudspeaker: Thoughts on this report? Let us know!


Check server state when bring nodes back

Fixed the issue when starting up Voldemort in offilne state, it actually
goes online and keeps listening client requests.

The test looks good now. If you can make minor tweak to the original logic and squash your commit, I will merge the commit.

Thanks Arun! I should have been more careful. I have modified that and
rebased my commits. Ready to be merged😀
On Wed, Mar 23, 2016 at 1:24 PM, ARUNACHALAM THIRUPATHI <
<EMAIL_ADDRESS>wrote:

The test looks good now. If you can make minor tweak to the original logic
and squash your commit, I will merge the commit.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/voldemort/voldemort/pull/388#issuecomment-200528978

Rebased and merged  https://github.com/voldemort/voldemort/commit/af3d605f9b953f1caa0bd36cde3f1e3a0635da3e


chore: release main

:robot: I have created a release beep boop
@opentelemetry/auto-instrumentations-node: 0.33.1
Dependencies

The following workspace dependencies were updated

dependencies

@opentelemetry/instrumentation-express bumped from ^0.31.1 to ^0.31.2

instrumentation-express: 0.31.2
0.31.2 (2022-09-28)
Bug Fixes

express: use the same clock for span start and end (#1210) (cbeef6e)

This PR was generated with Release Please. See documentation.

@open-telemetry/javascript-approvers this is a high priority fix for express so we should get this reviewed ASAP

I think the meaningful review is already done for merging the feature.

:robot: Release is at https://github.com/open-telemetry/opentelemetry-js-contrib/releases/tag/auto-instrumentations-node-v0.33.1 :sunflower:

:robot: Release is at https://github.com/open-telemetry/opentelemetry-js-contrib/releases/tag/instrumentation-express-v0.31.2 :sunflower:

@dyladan Seems that publish to NPM was again not executed similar as in the last releaes

@dyladan, to @Flarna's point, it seems like the release please github action skipped the publish to npm step https://github.com/open-telemetry/opentelemetry-js-contrib/actions/runs/3146553848/jobs/5115129297


Fix for rounding issue when calculating step angle.

This caused a rendering gap where in some cases the last fin to be drawn would not touch the first fin (this is visible in the demo screenshot).

This PR is welcome to my repo at https://github.com/refdev/HZActivityIndicatorView (once the conflict is resolved.)


Not compatible with the version of your running IDE (Writerside 2024.2 EAP)

Hi, the D2 plugin clains to be not compatible with 2024.2 versions of Jetbrains. Can you please help?
Thanks
Matthias

Already reported here: https://github.com/develar/d2-intellij-plugin/issues/61


Feature - Negotiator encoder

Would be great have another middleware for reponse encoder :+1:

Like what?

like serialize replacing the response body and place the correct content-type on the response :)


[WFLY-11813] Test for empty username for Elytron's FormAuthenticationMechanism

FormMechTestCase#testEmptyUsername() could be added to FormMechTestBase, however I'm not sure if it is within desired scope of other test classes extending FormMechTestBase

Can one of the admins verify this patch?

The commit messages should also reference the WFLY Jira issue.

Thank you @mchoma and @darranl. I have squashed the commits and added JIRA reference to commit message.

@darranl or @fjuma could one of you please review this?

@spriadka Are you able to get the imports corrected and then we can look to get this merged?

Resolved via #12744, which just corrected the import order here. Thanks!


TGPDiscreteSlider ticksListener is not available from ObjectiveC

I've fixed it by adding corresponding annotations and added pull request. Please approve and merge

I wonder without ticksLister how can it be integrated with Objective C, description page still says can be integrated with Objc. any idea when will this be approved and merged @VladNaimark ?


[Discussion] How much time should training take?

I'm training my first model and it's been running for well over 30 minutes.
The dataset consists of 50 audio files at 1 minutes each, and a validation dataset of 5 files at 1 minute each.
So validation dataset is 10% the size of the training data set.
I can see that both the CPU and GPU CUDA is being used in the task manager.
All I'm seeing in the command line is the following:
INFO:spleeter:Audio data loaded successfully
INFO:spleeter:Audio data loaded successfully
INFO:spleeter:Audio data loaded successfully
INFO:spleeter:Audio data loaded successfully

Is something wrong?
EDIT:
I also tried with 10 files for training and 1 file for validation.
I can see the CUDA meter in task manager rise, then fall for a short while, and the rise, and then fall again, over and over again.
I assume something is being processed, but it shouldn't take 2 hours, should it?

I reinstalled Spleeter for CPU and this is what the CPU usage looks like for 10 song dataset (1min songs) that has been running for 30 minutes:

Ugh this is so frustrating. Nothing in the documentation either other than making the separation process very fast (more than 100x realtime).
In that case my 1 minute song could be processed up to 100 times faster, e.g 0.6 sec, so 10 songs would take 6 seconds.
Even if CPU is slower than GPU, if it did it in realtime it would take only 10 minutes, but still, well above 1 hour has passed now.
Can absolutely no one in the Spleeter dev team address this concern?
I'm eager to train my own models. I have so many different datasets by now :(

Ok so I added the argument --verbose and in fact it seems like something is going on.
I get the following output
INFO:spleeter:Audio data loaded successfully
INFO:spleeter:Audio data loaded successfully
INFO:spleeter:Audio data loaded successfully
INFO:tensorflow:loss = 5.335146, step = 1
INFO:tensorflow:global_step/sec: 0.195653
INFO:tensorflow:loss = 4.650765, step = 11 (51.112 sec)
INFO:tensorflow:global_step/sec: 0.19864
INFO:tensorflow:loss = 4.1607137, step = 21 (50.892 sec)
INFO:tensorflow:global_step/sec: 0.189612
INFO:tensorflow:loss = 5.6790705, step = 31 (52.189 sec)
INFO:tensorflow:global_step/sec: 0.199982
INFO:tensorflow:loss = 5.627528, step = 41 (50.426 sec)

But question still remains: How long should this take?

Dude, how can you tell me the detailed steps? I don't know anything about this, but I feel this thing is great, I want to learn, and I don't know where to start. The point is that English is not very good.

Training using spleeter-gpu stopped working completely.
I went back to spleeter-cpu but now it's going to take forever.

@eerilqin I'm pretty new too. I suggest just going through the wiki and reading as many issues as possible. And also trial and error.

I just realized that the config training file has a key that says train_max_steps that is set to 1000000.
My CPU does aprox 712 steps per hour, so training on my CPU will take ~58 days. YIKES!

I solved my question with this script that I made.
The basic formula to estimate training duration is as following:
(max_steps - elapsed_steps) / steps_per_second
where
steps_per_second = elapsed_steps / elapsed_time
and
elapsed_time = now_time - start_time
Or something. I'm too tired after trying to figure this out for too long.
This should be implemented into Spleeter @mmoussallam @Faylixe
var fs       = require('fs')
const spawn_ = require('child_process').spawn
var rimraf   = require("rimraf")

rimraf('cache', ()=>{})
rimraf('unverb', ()=>{})

function secondsToDhms(seconds) {
    seconds = Number(seconds);
    var d = Math.floor(seconds / (3600*24));
    var h = Math.floor(seconds % (3600*24) / 3600);
    var m = Math.floor(seconds % 3600 / 60);
    var s = Math.floor(seconds % 60);

    var dDisplay = d > 0 ? d + (d == 1 ? " day, " : " days, ") : "";
    var hDisplay = h > 0 ? h + (h == 1 ? " hour, " : " hours, ") : "";
    var mDisplay = m > 0 ? m + (m == 1 ? " minute, " : " minutes, ") : "";
    var sDisplay = s > 0 ? s + (s == 1 ? " second" : " seconds") : "";
    return dDisplay + hDisplay + mDisplay + sDisplay;
}

var log_path = './log.txt'
function newLog(){
    try { fs.unlinkSync(log_path) } catch(e){ }
    try {
        fs.closeSync(fs.openSync(log_path, 'w'))
        console.log('Log created.')
    } catch(e){
        console.log('FAILED TO CREATE LOG')
        console.log(e)
    }
}
newLog()

function log(msg){
    fs.appendFile(log_path, msg + '\n', function(err) { if(err) { return console.log(err); } });
}

var config = JSON.parse(fs.readFileSync('./train_config.json').toString())

var file = fs.readFileSync('./train_train.csv').toString()
var lines = file.split('\n')
var file_count = lines.length - 1

function spawn(opt){
    return new Promise((resolve, reject)=>{
        var spawn_obj = spawn_(opt.cmd, { shell: true });

        var full_output = ''
        spawn_obj.stdout.on('data', function (data) { full_output += data.toString(); if (opt.stdout) opt.stdout(data); });
        spawn_obj.stderr.on('data', function (data) { full_output += data.toString(); if (opt.stderr) opt.stderr(data); });
        spawn_obj.on('exit', function (code) {
            resolve(full_output)
        })
    })
}

var loaded = 0

var start_time
var countdown = {
    timer: undefined,
    time: 0
}

var triggers = {
    '\r\n': data => {
        //console.log(data)
    },

    'INFO:spleeter:Loading audio': data => {
        loaded++
        //console.log(`${loaded} / ${file_count} completed`)
    },

    'step =': data => {
        var steps = parseInt(data.split('step = ')[1].split(' ')[0])
        if (!start_time){
            start_time = new Date()
            console.log('STARTING. Please hold...')
            return
        }

        var now = new Date()
        var timeDiff = now - start_time
        timeDiff /= 1000;

        var steps_per_second = steps / timeDiff
        var ETA = (config.train_max_steps - steps) / steps_per_second
        //console.log(`${steps_per_second} steps per second`)

        countdown.time = ETA
        clearInterval(countdown.timer)
        countdown.timer = setInterval(()=>{
            countdown.time--
            console.log(`${secondsToDhms(countdown.time)} remaining`)
        }, 1000)
    },

    'Model training done': ()=>{
        console.log('DONE')
    }
}

function tryParseProgress(data_in){
    log(data_in)
    var split = data_in.split('\r\n')
    for (var i in split){
        var data = split[i]
        for (var key in triggers){
            if (data.indexOf(key) > -1){
                triggers[key](data)
            }
        }
    }
}

var commands = [
    'c:/users/user/anaconda3/Scripts/activate.bat c:/users/user/anaconda3/',
    ''
]

var args = [
    'python -m',
    'spleeter train -p train_config.json -d e:/ --verbose'
]

var full_cmd = commands.join(' & ') + ' ' + args.join(' ')

spawn({
    cmd: full_cmd,
    stdout: (data)=>{ tryParseProgress(data.toString()) },
    stderr: (data)=>{ tryParseProgress(data.toString()) },
}).then( full_output => {
    clearInterval(countdown.timer)
    console.log('DONE')
}).catch(e =>{
    console.log('Rejected at Spleeter.begin()'.red)
    console.log(e)
})

It's been a long time since you have opened this issue, but dude were you able to train your own model finally? and how long did it take?
And would you tell me please how to use this nodejs script you've put above?

Ugh this is so frustrating. Nothing in the documentation either other than making the separation process very fast (more than 100x realtime).
In that case my 1 minute song could be processed up to 100 times faster, e.g 0.6 sec, so 10 songs would take 6 seconds.
Even if CPU is slower than GPU, if it did it in realtime it would take only 10 minutes, but still, well above 1 hour has passed now.
Can absolutely no one in the Spleeter dev team address this concern?
I'm eager to train my own models. I have so many different datasets by now :(

Hi,
You are doing a lot of calculations, yet I think you missed the most basic point:

Ugh this is so frustrating. Nothing in the documentation either other than making the separation process very fast (more than 100x realtime).
In that case my 1 minute song could be processed up to 100 times faster, e.g 0.6 sec, so 10 songs would take 6 seconds.

Nope. Using the tool for separating is not the same as TRAINING it. You are mixing de-mixing times and training times.
Maybe you could DEMIX 10 songs in 6 seconds.
TRAINING the model to learn to demix them is gonna take a lot more.

My CPU does aprox 712 steps per hour, so training on my CPU will take ~58 days? YIKES!

That seems to be more on par with that I read some time ago about a couple of weeks or so using a GPU with 16 GB RAM and CUDA drivers.


proactively know about media devices

How can we detect whether a media device is attached to the desktop or user has allowed for the permission to access camera?

@shah-pooja This is not helping forum. Post your questions in stackoverflow.


ascii output files

Hi Vasili,
I was curious if it would be possible to have your 10,000 pt examples with same and different radii as CSV files in addition to the xyzd binary files which are there. I cannot understand how to extract the data and load it into, for example, anything except R. Learning R will take me some time.
Many thanks, Chris

After searching through the other issues, I did find that the following is able to accomplish this.
hexdump -v -e '4 "%f "' -e '"\n"' < packing.xyzd > centers_in_ascii.txt
Would you mind posting the 10,000 pt xyzd examples with same and different radii that are in the readme? I will send you a nice image afterwards.

Hi Chris,
i'm glad that you found this way, i didn't think about it. Just a note: it is possible to extract the data in any mainstream language. I have samples in C# (using BinaryReader), Matlab (in examples), C++ (directly in the code), python. In python it will be two lines, numpy.loadbinary + numpy.reshape.
You can find a lot of packings here: https://datadryad.org/stash/dataset/doi:10.5061/dryad.35td0 (i don't remember if i rescaled radii in all of them, but you will notice if particles do not touch each other). If you have any questions, please contact me. Hope this helps!
Best Regards,
Vasili

For python:
np.fromfile('packing.xyzd').reshape(-1,4)

will gets:
[[0.20735877 0.57817284 3.08877623 1.        ]
 [2.22539512 3.22087698 1.25174537 1.        ]
                     .
                     .
 [3.2528435  2.42987461 0.56400898 1.        ]]

In python it will be two lines, numpy.fromfile + numpy.reshape.

For python:
np.fromfile('packing.xyzd').reshape(-1,4)

will gets:
[[0.20735877 0.57817284 3.08877623 1.        ]
 [2.22539512 3.22087698 1.25174537 1.        ]
                     .
                     .
 [3.2528435  2.42987461 0.56400898 1.        ]]


Return to user's last seen page on PaginatedState after timeout

It would be ideal if this would also work if a special timeout state is interjected like in go-refugeerights state_timed_out.

I think this could be approached in one of two ways. Either we could add an option for setting and retrieving page_start (i.e. the current starting point for the list) or you could arrange for the go-refugeerights time out state to record the previous state's metadata in addition to its name and creator_opts. The latter solution covers all state types and so is probably better for go-refugeerights. Having the option of setting page_start might still be nice though.

Yeah, I thought it might be two different implementations for with and without a timed_out state, but thought I'd leave that comment in case it could be architected to work for both. I think it would still be useful in the cases where we don't have a timed_out state.


ID-398 Terms of Service Code Simplification

After getting Terms of Service into an "MVP" state, we now have the time to go through and make the code a lot cleaner. I've made some Sam changes that pull a lot of the logic out of the UI and into Sam. Now, Sam will tell the UI whether or not the user can continue under a grace period, instead of making the UI calculate that for itself.
The auth.js tests were replaced by tests that actually inspect the react rendered state. Hopefully, these provide a bit more coverage regarding the effect of the changes.
No visual changes here. Just code improvements.
https://broadworkbench.atlassian.net/browse/ID-398

I've added more tests to the ToS page, but also wrote tests for the alerts too!

@nawatts Thanks for the detailed review! I'm always down to level-up my JS skills.

Tests pass now. I'm trying to test this out on a BEE to make sure that the ToS doesn't briefly pop up between each page load, but I'm running into errors in the deployment: https://broadinstitute.slack.com/archives/CADM7MZ35/p1677097118577069

@nawatts I've confirmed in a bee running this branch that the ToS no longer shows up briefly on every page load. How do we feel about merging this?


Can't perform a React state update on an unmounted

Describe the bug
Im using the module  of @react-page/react-admin
when i add more than one component i got those 2 errors
createTheme.js:94 Material-UI: the createMuiTheme function was renamed to createTheme.

You should use `import { createTheme } from '@material-ui/core/styles'`
createMuiTheme @ createTheme.js:94
<EMAIL_ADDRESS>@ index.ts:3

 Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in a useEffect cleanup function.
To Reproduce
Steps to reproduce the behavior:
Just add more the one component in the screen in the same time for example 2 texts or video and text
Expected behavior
A clear and concise description of what you expected to happen.
no console error
Screenshots

Desktop (please complete the following information):

OS: window
Version React page: 4.5.0
React-admin version: 3.19.7
React version: 17.0.2
Browser: chrome
Stack trace (in case of a JS error):

 react-dom.development.js:67 Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application.
Due to some reason this component unmounts before the slateProvider is loaded, which calls setState on an unmounted component.
there is nothing particularly wrong with that, but that warning is a bit annoying
This is a good read about the topic: https://www.rockyourcode.com/avoid-memory-leak-with-react-setstate-on-an-unmounted-component/
in this case, the simplests solution is to use a IsMounted variable as suggested in that link (chapter "Keep Track of Mounted State")

@macrozone i do not have access to create a branch and push in your repo

@macrozone  https://github.com/react-page/react-page/pull/1149

@neutron92 thx, will look into it


Handle builds overwriting each other

Short description of the problem:
Imagine a user running ionic serve to lock at the app locally. In another command line window he then runs ionic cordova run android --prod which fails because of reasons. When he now goes back to the browser, the serve session will also be broken and have to be restarted.
What behavior are you expecting?
a) serve recognizes that another process messed with its files and exits
b) serve recognizes that another process messed with its files and restarts
c) no real idea

another way could be two different build directories: one 'www_serve' and one 'www_build' -> this way serve and builds would not go against each other, just multiple builds at the same time (e.g. ios + android simultane) would have some potential to fail


Cells merged using "Keep the contents of the hidden cells" option breaks cell coordinates

Steps to reproduce:

Using LibreOffice, create a simple spreadsheet file called cells-unmerged.ods:

Merge two cells in each section using each of the three merge options:

Save the resulting file as cells-merged.ods

Drop the file to https://oss.sheetjs.com/ and observe data in incorrect columns on row 7 (merged using Keep the contents of the hidden cells option)

Download both cells-unmerged.ods and cells-merged.ods as a zip archive to simplify reproduction
LibreOffice details:
Version: <IP_ADDRESS>
Build ID: 86daf60bf00efa86ad547e59e09d6bb77c699acb
CPU threads: 8; OS: Mac OS X 10.14.1; UI render: default;
Locale: en-GB (en_GB.UTF-8); Calc: group threaded

The current view shows B7 and C7 at the right place.  The xlsx cli tool generated the attached XLSX which looks correct:
xlsx --dev --all --xlsx ~/Downloads/cells-merge-experiment/cells-merged.ods

cells-merged.ods.xlsx


Consider removing init.py files under tests/ dir

See pyest Good Integration Practices

avoid __init__.py files in your test directories. This way your tests can run easily against an installed version of mypkg, independently from the installed package if it contains the tests or not.

Right now we have some relative imports that would fail without an __init__ file. Also, I don't fully understand the advantage of removing these files.
Anyway, feel free to work on it and do a pull request :smile_cat: but I'd like to understand more what's going on here.


selectStatementProvider.getParameters() support for custom typeHandlers

When I specify a custom typeHandler, in my case for mapping org.javamoney.moneta.FastMoney to JdbcType.INTEGER for a PostGreSQL database using org.mybatis.dynamic.sql.SqlTable#column(...), the type handler does not seem to handle my query parameter values e.g. upon calling SelectStatementProvider#getParameters() as argument for the constructor of MapSqlParameterSource(Map<>) required by Spring's NamedParameterJdbcTemplate#query(...), and I get:
org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [select ...]; nested exception is org.postgresql.util.PSQLException: Can't infer the SQL type to use for an instance of org.javamoney.moneta.FastMoney. Use setObject() with an explicit Types value to specify the type to use.

I'm not completely following this. Do you have a small project that would be an example of the problem?

I've looked into this and I understand the issue now.
Spring JDBC template does not have any functional equivalent to a MyBatis type handler. This is generally not a problem for mapping result sets, but it is a problem for setting prepared statement parameters. We would need to build something into the library to support something like a type handler for Spring.
I'll leave this open for now. We may add something for this in the future, but it will take some thought.

Thanks, that's what I meant :-)

Fixed via #227


[native_assets_cli] Add Android RISCV64 target.

coverage: 98.076%. remained the same when pulling 08872b5a797febf6f927af3e012faabbd7d00e91 on rmacnak-google:android-rv64-target into 18bff8ce73ac758a79fe5b8290208559862d35d4 on dart-lang:main.


Monotonic reads violation

A = mria:transaction(fun() -> mnesia:read(Foo) end),
B = mria:ro_transaction(fun() -> mnesia:read(Foo) end).

A may read a later version than B.

Mitigated by https://github.com/emqx/mria/pull/136


[#117] On submit, and on error, will scroll to input

For Encounter and Habitat forms (see Recordings below)
Adds <InputFocusOnError/> component - that can be added to any formik form component. If there is an error in the form, and the user presses the submit button, will scroll and focus on that input.

Also adds tests for Encounter and Habitat forms to ensure will focus on that input

NB: I needed to add new Date() to the startTimestamp initial value of the Encounter form, since otherwise it would deem startTimestamp as an error (not being filled when it is a required field), even though <DateInput/> has been autofilled and transformSubmitValues() alters the timestamp on submit.

Recordings

Hi @peersmg ! Thanks for your review :) Re: the updated code - that is a great solution to it! On one hand I'm aware that that would mean the forms are validated twice on submit, which I'm hesitant about. However, the fact that the errors would be based on the submitted values, rather than the initial values, conceptually makes more sense to me. So I've updated the code as per your suggestion, and removed the new Date(). (NB it also meant updating a test - since the Habitat Form auto-populates so I needed to change an input to raise an error)


how to change the default style to command line arguments

by default CommandLineParser creates --help and --version to a verb that has its own command line for example:
class Options
{
    [Verb("test1", HelpText = "verb for test1.")]
    public class Test1
    {
        [Option('n', HelpText = "input file path")]
        public string inputFilePath1{ get; set; }
        [Option('o', HelpText = "output file path")]
        public string outFilePath1 { get; set; }
    }

    [Verb("test2", HelpText = "verb for test2.")]
    public class Test2
    {
        [Option('n',HelpText = "input file path")]
        public string  inputFilePath2{ get; set; }
        [Option('o', HelpText = "output file path")]
        public string outFilePath1 { get; set; }
    }
    [Option('h', HelpText = "Dispaly this help and exit")]
      public bool Help { get; set; }

how to  make sure that for 'test1' and 'test2' it will not print --help and --version when I run:
app.exe test1  -h?

Hi @tamarlev, if I understand you correctly, you are asking if you can disable --help and --version for verbs? Or just hide it from the help output?

I want to change the style of --help and --version to use only one dash or just one letter '-h' or '-v', basically control the style of commandline parser to use '/' instead of '-' or any kind of other style

ah, I understand. That is not possible in this library, the semantics of Windows' / style are incompatible with the UNIX - style so it's not as easy as simply swapping one character for another. help and version are also hardcoded into the application.


Changing channel to channel_name

to make commands more clear

I don't think the CLI command changed. I added a note to clarify how to specify {channel} for CLI commands.


Issue with v1.10.2

I installed latest version two days ago and the fix for v1.10.2 (743cb44)  is causing issues with the statistics.
For two days the daily production utility "daily" meter have been completely off.  Today showing ~5MWh instead of 40-50kWh.
Checking on the data I can see both days I have had one value reported from Ferroamp that have been off by 18% and 22%, both happening within 15mins around 1400hrs both days.
Attached image shows total energy produced reported around 27MWh, then there is one erroneous at 22MWh, from there on the daily is then at 4.7MWh rather than the ~45kWh.

If this fix is to handle an actual reset, why not block down to 90% rather than the current 10% (also it appears to be actually less than 10%).  A reset is 100% after all! :)
So, the assumption that wrong data only is 10% less is not accurate.

I also noticed this yesterday when i restarted by hub 😊

Hmmm, maybe we should revert that change @henricm ? What versions do you guys have on your EnergyHubs? Just trying to find some kind of pattern here on why/when this is happening.

I am running 5.0.3 if that makes a difference.  Not sure where these erroneous values comes from as it is just one in the serie, then back to correct values again.  There used to be similar issues before it was set to "total_Increasing", but that was fixed more than a year ago and it has worked like a charm ever since.
It would not be so bad if it did not mess up the daily, monthly, yearly aggregates.

How does it continue? Will EH continue to report 22 MWh and increasing from there or does it go back to 27 MWh?
Could you post more data and possibly also how this looks in energy cloud?
When sensors are affected?
Home assistant uses 10% margin when trying to determine if there has been a reset or if there are error values for total-increasing sensors, so that's the reason for using the same.
Also, even if an actual reset happens it may take time before a system is back up again. And the counters may have moved during this time so I don't think we can use eg 90%.
If we should change this back it would be good to know more details when this happens and the nature of the incorrect values. Rather than a % maybe we may also need to use a time frame?

Maybe we could ignore outliers somehow?

As mentioned earlier, not sure why it occurred, never actually seen it before, although that does not mean much as you seldom look at the actual data -- row by row.  But, at least in these two instances, it was just one value that stood out, before and after the series is correct.

Would be good to know how "wrong" the data could be. I guess ferroamp has no clue about this issue?

Maybe we could ignore outliers somehow?

Is it doable to determine this scenario where a value is off a few seconds - and ignore it in that case? We do some average calculation already for values entering in between the configured fetch interval, right? Maybe it can bee hooked in there somehow?

hmm, I cannot see any traces of this in the reports in FA portal -- although they are on a fairly high level.
Just looked at the dataset from 1st of jan this year up until today, exported it into csv and these two instances from today and yesterday are the only entries that are "off".  well.. based on sorting all the rows and checking from lowest ... just these two.
Strange, I mean what are the odds!?  only two errors this year are since after I updated the integration.  I did update from 1.9-ish!? not sure exact "from" version (is it possible to check in HA somewhere!?), could it be one of the other patches that somehow could mess up the data?
Also, last two days have been the sunniest this year :) , so I guess we cannot rule out that the errors from FA could be more frequent under heavy load or something.

We ignored all lower values so I guess that's why you don't see any of this before updating to latest.

A quick fix for this particular case would be to change the 10 % limit to 25 % instead and hope that's about how wrong the data can get.
I don't think I've seen this issue except in cases where there has been some issue with my EH. I recently got the SD card replaced for example, resetting some (not all) counters.

I am running 5.3.2. I will doublecheck tomorrow but i think it was showing 0 at one point after reboot of the hub

Maybe we could ignore outliers somehow?

Is it doable to determine this scenario where a value is off a few seconds - and ignore it in that case? We do some average calculation already for values entering in between the configured fetch interval, right? Maybe it can bee hooked in there somehow?

I'm thinking we could have a sliding average of the last minute or so and compare with that?

The big question is if to leave it also for tomorrow to see if I get the same results around 1400 again! 😃

Thanks! Have you reported this to ferroamp? Doesn't look healthy.

@henricm haven't reported this to ferroamp, will do that now :)

Created a ticket to ferroamp now. Noticed that these issues only occur on data from SSO + ESO, not the hub itself.

Maybe we could ignore outliers somehow?

Is it doable to determine this scenario where a value is off a few seconds - and ignore it in that case? We do some average calculation already for values entering in between the configured fetch interval, right? Maybe it can bee hooked in there somehow?

I'm thinking we could have a sliding average of the last minute or so and compare with that?

Maybe not work that well with the scenario @robinostlund is experiencing where values dropping to 0. I'm thinking that maybe this is happening to @u1malmberg too, but the average-calculation we do in between updates maybe hides this fact?
One idea could be to to max() of the x latest values. Then it will take a few updates before an actual reset is taken into account, but a few error values won't affect the sensor.

or should we just add a if >= 0 skip or something? As it seems to go to zero when it is rebooted? 😄

Maybe we could ignore outliers somehow?

Is it doable to determine this scenario where a value is off a few seconds - and ignore it in that case? We do some average calculation already for values entering in between the configured fetch interval, right? Maybe it can bee hooked in there somehow?

I'm thinking we could have a sliding average of the last minute or so and compare with that?

Maybe not work that well with the scenario @robinostlund is experiencing where values dropping to 0. I'm thinking that maybe this is happening to @u1malmberg too, but the average-calculation we do in between updates maybe hides this fact?
One idea could be to to max() of the x latest values. Then it will take a few updates before an actual reset is taken into account, but a few error values won't affect the sensor.

Not sure how that would be handled with regards to average values etc. I think I'm more inclined to do the skip 0-values as @robinostlund suggested. That is if the actual low value seen by @u1malmberg was 0 (it was averaged out in the graphs of course and not sure how to know what the actual value was).

Was going to tell you that I did not receive any wrong data today around 1400 (as usual), but then it happened around 16:30-ish instead.     About the same "distance", ~20%, away from the correct values.
@argoyle, I am not seeing 0 values, just 20%-ish off values.
The 25% limit discussed above might work for me, but then again, since we do not know why the data is wrong, then we do not really know what the diff could be in the future...

Maybe we could ignore outliers somehow?

Is it doable to determine this scenario where a value is off a few seconds - and ignore it in that case? We do some average calculation already for values entering in between the configured fetch interval, right? Maybe it can bee hooked in there somehow?

I'm thinking we could have a sliding average of the last minute or so and compare with that?

Maybe not work that well with the scenario @robinostlund is experiencing where values dropping to 0. I'm thinking that maybe this is happening to @u1malmberg too, but the average-calculation we do in between updates maybe hides this fact?

One idea could be to to max() of the x latest values. Then it will take a few updates before an actual reset is taken into account, but a few error values won't affect the sensor.

Not sure how that would be handled with regards to average values etc. I think I'm more inclined to do the skip 0-values as @robinostlund suggested. That is if the actual low value seen by @u1malmberg was 0 (it was averaged out in the graphs of course and not sure how to know what the actual value was).

Maybe worth a try - if it's always 0-values that's causing this issue. Regardless this needs to be done in the average calc right? Since it's already too late if the incorrect values have been included in the average sum?
Otherwise I was thinking we could keep a list of the latest 10 or so values. Just as we keep values in between the configured update interval to do the average calc. And use Max instead of average for total-increasing energy counters which should make more sense than average calc. That could then also work if other types of junk values can appear.
But it will of course complicate things a bit 🙂.

Was going to tell you that I did not receive any wrong data today around 1400 (as usual), but then it happened around 16:30-ish instead.     About the same "distance", ~20%, away from the correct values.
@argoyle, I am not seeing 0 values, just 20%-ish off values.
The 25% limit discussed above might work for me, but then again, since we do not know why the data is wrong, then we do not really know what the diff could be in the future...

You do not see all values that EH sends since the sensor in HA is only updated every 30 second but values from EH arrives more often than that. The values that arrives in between are collected and used in average calculation every 30 second (or the interval you've configured). To see all values maybe you could connect an mqtt explorer or if it's possible to enable more logging of mqtt messages in HA?

@henricm what version are you running? they did some changes regarding the measurement in latest version: https://support.ferroamp.com/en/support/solutions/articles/47001241579-software-release-5-3-2

@robinostlund I'm on 5.0.3

Closing. Please reopen or file new issue if the problem comes back.


unhandled error on shutdown

This error is not consistent and might actually be a redis issue. But during testing we try to shutdown our server and restart with a different configuration. Occasionally it will throw this error during shutdown causing a test failure. It seems to be a timing issue where a command is being processed when the shutdown is called and the error event is not being handled.
kue version: 0.11.5
redis version: 2.6.3
events.js:154
      throw er; // Unhandled 'error' event
      ^
 AbortError: Stream connection ended and command aborted. It might have been pro
cessed.
    at RedisClient.flush_and_error (C:\Projects\services_engine\trunk\server\nod
e_modules\redis\index.js:351:23)
    at RedisClient.connection_gone (C:\Projects\services_engine\trunk\server\nod
e_modules\redis\index.js:586:14)
    at Socket.<anonymous> (C:\Projects\services_engine\trunk\server\node_modules
\redis\index.js:282:14)
    at Socket.g (events.js:273:16)
    at emitOne (events.js:90:13)
    at Socket.emit (events.js:182:7)
    at TCP._onclose (net.js:484:12)

To reproduce I was able to get it throw the error with this code. It happens pretty consistently on my machine with 100 iterations, but fewer iterations will make it less likely.
var kue = require('kue');

var i = process.argv[2] || 100;

function start() {
  console.log('starting', i);
  var jobQueue = kue.createQueue();
  console.log('started', i);
  jobQueue.client.on('error', function() {
    console.log('err');
  });
  jobQueue.shutdown(function() {
    console.log('kue shutdown', i--);
    if (i > 0) {
      process.nextTick(function() {
        start();
      });
    }
  });
}
start();

I experienced the same

You should use jobQueue.on('error'...)  not jobQueue.client.on

@behrad Unfortunately, the issue we are talking about isn't caught by that handler. The reason I tried the client one was because the queue level handler doesn't catch it either. Essentially, I would expect this code to work correctly without any error, and it does not on the systems I have tried it on.
var kue = require('kue');

var i = process.argv[2] || 100;

function start() {
  var jobQueue = kue.createQueue();
  jobQueue.shutdown(function() {
    if (i > 0) {
      process.nextTick(function() {
        start();
      });
    }
  });
}
start();


Fixed new event registration according to obsidian documentation

Obsidian docs says:

Any registered event handlers need to be detached whenever the plugin unloads. The safest way to make sure this happens is to use the registerEvent() method.

But it's not used. I changed it.
https://docs.obsidian.md/Plugins/Events

I am not sure if this function was even available when I initially wrote the plugin, but good job catching that in the documentation.


Adding initial user authentication.

I added some simple user authentication.
https://strava.pbworks.com/w/page/27902330/authentication-login

This is super old, closing.


Automatic sizing of the table columns

Today the table columns have fixed size, then the user can change it for example double-clicking the columns borders.
It could be nice to find a good solution to have them automatically sized to their content.
See https://stackoverflow.com/questions/10152828/javafx-2-automatic-column-width/10152992

For each column takes a random sample of the content (some rows) and sizes the column based on that sample. This makes it fast and "good enough". It works perfectly well for the 99% of the cases: if there is a special value in a row that is much longer than the others and was not used for the column sizing, the user can resize the column manually.


startup visorProvider.authenticate

Hello
I don't understand the idea to launch the visorProvider.authenticate when the page is loaded.
Specially with your example with an $http promise.
Could you please explain more the concept ?
thanks

There are many applications where authenticating is required for every page so doing it on page load saves extra code (you can rely that authentication happened, even if the page isn't restricted) and can be a bit faster.
you can disable it with visorProvider.authenticateOnStartup=false .


Have Solution to Inlines

Hi there,
I show inlines as broken in the latest build - the chained menu does not populate correctly like it does in a normal admin. I've fixed the issue myself in the JavaScript file locally and things seem to work fine. My guess is that inline functionality was added a while ago, but was since broken and nobody noticed.
Here's the code change to chainedfk.js:
Old:
                $(chainfield).change(function(){
                    var start_value = $(id).val();
                    var val = $(this).val();
                    fill_field(val, start_value, id, url, empty_label, auto_choose);
                })

New:
                $(chainfield).change(function(){
                    // Handle the case of inlines, where the ID will depend on which list item we are dealing with
                    var localID = id;
                    if (localID.indexOf("__prefix__") > -1) {
                        var prefix = $(this).attr("id").match(/\d+/)[0];
                        localID = localID.replace("__prefix__", prefix);
                    }

                    var start_value = $(localID).val();
                    var val = $(this).val();
                    fill_field(val, start_value, localID, url, empty_label, auto_choose);
                })

Please excuse my ignorance, but this is my first attempt at contributing to GitHub. I'd like to submit my fix for consideration for the community. How do I go about getting permission to do this?

Thank you very much man!
@digi604 Consider use this please.

No problem - thanks for this very handy addition to the admin. Oh, one more thing - for our purposes we found we really wanted to prepopulate chained foreign keys with the first value in the list. Most of our list items were sorted by date (latest submissions of a software project) and the majority use case is to select the latest. So for our case we changed this test for the "auto_choose" case to ">="
                    if(auto_choose && j.length >= 1){
                        $(elem_id + ' option[value="'+ j[0].value +'"]').attr('selected', 'selected');
                    }

This may not be what you want as the default auto choose behavior, but it was what we wanted. FYI.

Can you make a pr?

Not sure. I think I need to push to a branch first, correct? And I don't think I have permission to do that - at least when I tried, it asked for master credentials (even though I was pushing to a new branch). Apologies - I've never submitted to GitHub before.

@thegiffman，I edit the js file as you said, but in inline, django-smart-selects
still don't work.

@GoTop , all works fine for me. What is your Django version?

@millin
I use Django 1.9.9
I install your fork‘s lastest commit with this command:
pip install git+git://github.com/millin/django-smart-selects.git@9ba57a34767611f3c63ac7a24a985763d88c8c31

@GoTop
And it not works forgot you?

@millin
yes , it doesn't work in inline
This is my model.py:
class Group(models.Model):
    name_cn = models.CharField(max_length=200, null=True, blank=True)
    name_en = models.CharField(max_length=200, null=True, blank=True)
    name_kr = models.CharField(max_length=200, null=True, blank=True)
    wiki_url = models.URLField(null=True, blank=True)

    def __unicode__(self):
        if self.name_cn:
            return self.name_cn

class Singer(models.Model):
    name_cn = models.CharField(max_length=200, null=True, blank=True)
    name_en = models.CharField(max_length=200, null=True, blank=True)
    name_kr = models.CharField(max_length=200, null=True, blank=True)
    group = models.ForeignKey('Group', null=True, blank=True)
    wiki_url = models.URLField(null=True, blank=True)

    def __unicode__(self):
        if self.name_cn:
            return self.name_cn

class Song(models.Model):
    name_cn = models.CharField(max_length=200, null=True, blank=True)
    name_en = models.CharField(max_length=200, null=True, blank=True)
    name_kr = models.CharField(max_length=200, null=True, blank=True)
    # member = models.ForeignKey('Singer', null=True, blank=True)
    group = models.ForeignKey('Group', null=True, blank=True)
    wiki_url = models.URLField(null=True, blank=True)

    member = ChainedForeignKey(
        Singer,
        chained_field="group",
        chained_model_field="group",
        show_all=False,
        auto_choose=True
    )

This is my install module:
pip list
Django (1.9.9)
django-debug-toolbar (1.5)
django-smart-selects (1.2.3)
futures (3.0.5)
google-api-python-client (1.5.3)
goslate (1.5.1)
httplib2 (0.9.2)
isodate (0.5.4)
oauth2client (3.0.0)
pip (8.1.2)
pyasn1 (0.1.9)
pyasn1-modules (0.0.8)
PySocks (1.5.7)
python-dateutil (2.5.3)
requests (2.11.1)
rsa (3.4.2)
setuptools (0.6rc11)
simplejson (3.8.2)
six (1.10.0)
sqlparse (0.2.1)
translate (2.0.0)
translation (1.0.5)
uritemplate (0.6)
win-inet-pton (1.0.1)

This is not working to me. I'm using django 1.10 with master branch (1.2.5)

@minholi Thank you for posting your Django and D-S-S versions, but can you be a little more specific: how does it not work? And are there any errors logged in your browser console? Does Python dump a traceback? Thanks!

This may be a duplicate of #60.

@blag sorry! There is no error on terminal or javascript console, it just returns a empty list [] when I open the chaining url that pops on the terminal when the change page is served. I'm using models and inlines just like @GoTop example and Python 3.5.2 (32bit) on windows.

On master branch all works fine.

I pushed changes in master out to PyPI with version 1.2.6. Can you upgrade to that version and test it again?

Other very similar issues seem to have been solved with the 1.2.6 release, so I'm closing this. Feel free to reopen if it's not.

Hi there,
it seems it doesn't work in inline (admin.TabularInline)
This is my model config:
class Deal(models.Model):
    name = models.CharField(max_length=100)
    description = models.TextField()
    price = models.FloatField(verbose_name='Base price', default=0)
    photo = models.ImageField(upload_to='uploads/avatar/', max_length=100)
    start_period = models.DateField()
    end_period = models.DateField()

    def __str__(self):
        return self.name

class DealComposition(models.Model):
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    deal = models.ForeignKey(Deal, on_delete=models.CASCADE)

    product = ChainedForeignKey(
        Product,
        chained_field="category",
        chained_model_field="category",
        show_all=False,
        auto_choose=False,
        sort=True
    )

    attribute = ChainedForeignKey(
        Attribute,
        show_all=False,
        auto_choose=False,
        sort=True,
        chained_field="product",
        chained_model_field="product"
    )

    option = ChainedManyToManyField(
        Option,
        horizontal=True,
        verbose_name='option',
        chained_field="attribute",
        chained_model_field="attribute"
    )

class DealCompositionTablesInline(admin.TabularInline):
    model = DealComposition
    extra = 0

class DealAdmin(admin.ModelAdmin):
    list_display = ['name', 'description', 'price', 'photo']

    inlines = [DealCompositionTablesInline]

And this is my installed module info:
attrs (17.4.0)
certifi (2018.1.18)
chardet (3.0.4)
click (6.7)
coreapi (2.3.3)
coreapi-cli (1.0.9)
coreschema (0.0.4)
decorator (4.2.1)
Django (2.0.3)
django-debug-toolbar (1.9.1)
django-nested-admin (3.0.21)
django-smart-selects (1.5.4)
djangorestframework (3.7.7)
idna (2.6)
ipdb (0.11)
ipython (6.2.1)
ipython-genutils (0.2.0)
itypes (1.1.0)
jedi (0.11.1)
Jinja2 (2.10)
MarkupSafe (1.0)
parso (0.1.1)
pexpect (4.4.0)
pickleshare (0.7.4)
Pillow (5.0.0)
pip (9.0.3)
pluggy (0.6.0)
prompt-toolkit (1.0.15)
psycopg2 (2.7.4)
psycopg2-binary (2.7.4)
ptyprocess (0.5.2)
py (1.5.3)
Pygments (2.2.0)
python-monkey-business (1.0.0)
pytz (2018.3)
requests (2.18.4)
setuptools (39.0.1)
simplegeneric (0.8.1)
six (1.11.0)
sqlparse (0.2.4)
traitlets (4.3.2)
uritemplate (3.0.0)
urllib3 (1.22)
wcwidth (0.1.7)
wheel (0.30.0)


Improve and refactor Markdown linting pipeline (OSOE-405)

After OSOE-92 has been merged.
Problem
Currently, lint-markdown.js uses markdownlint.sync() to lint markdown files.
The release notes for version 0.21.0 of markdownlint mention:

Lint concurrently for better performance (async only)

Let's use that.
Another reason to use the async version is that it takes a callback that receives both Error and Result objects. In the error case, we can then use handleError the same way that we do for textlint.
Additional improvements

Use handleErrorMessage from handle-error,.js on throw new Error("Couldn't find a .NET solution (.sln) file.");.

Jira issue

Another reason to use the async version is that it takes a callback that receives both Error and Result objects.

That's not actually an advantage, the way the sync version behaves (by throwing the Error object) is much cleaner. Luckily we can use the promise version which behaves just like the sync version (so rejecting the promise and passing the Error object) but it still uses the async version under the hood. This is achieved simply by passing it through Node.JS's promisify utility. The useTextLint() in the same file is already a Promise-based task, so this way they are both handled the same.

Beware that I've changed the whole Markdown linting execution approach in OSOE-84 by now to conform to the other pipelines, so please try not to touch that part (too much). The inner linting "engine" is staying as is, but the invocation works differently now.

Fixed by https://github.com/Lombiq/NodeJs-Extensions/pull/20.


new early project for showcase.

Making a simple western style low poly shooter. My first VR project.

Nice; Do you have a link to a landing/project page that I can link to with the picture when I include it?

Not yet. Need to add some more stuff still to this. Will let you know once that is available.

Hi, do you have a project page or video now that I could link to?

Nothing more than https://twitter.com/Plopsis1/status/1248305905055170560?s=20
I haven't been on my dev computer for some time.

Here's my game for a show case entry: https://wavesonics.itch.io/fugitive-3d

Thanks @Wavesonics; I added it to the showcases; at the moment it is only in the experimental branch; but I will merge it soon into master


Update JSON Schema on schemastore.org

:wrench: Summary
The JSON Schema published on schemastore.org is out of date.
(re #288, cc @hyperupcall )
Lefthook version
1.6.1
Steps to reproduce
Create a config like this:
pre-commit:
  piped: true
  commands:
    formatter:
      priority: 1
      glob: "*.go"
      run: go fmt ./...
      stage_fixed: true
    vet:
      priority: 1
      glob: "*.go"
      run: for f in {staged_files}; do go vet "${f}"; done

Expected results
No schema violations
Actual results
*.commands.*.priority not supported:

There may be more mismatches for any features added and changes made since SchemaStore/schemastore@c4b2db5d; this is just the one I ran into.
Possible Solution

Update the schema to the current state.
Source the schema in this repository and include tests against it in the build; re-submit to schemastore on releases.

Would the schema need versioning?

In https://github.com/SchemaStore/schemastore/pull/3591, I updated the schema to include the latest additions to the config file. Since schemas in schemastore aren't maintained by project maintainers but rather schemastore, it is probably better to open an issue there.

How curious! Is there no way for a project to maintain their own schemas? Where can I read up on that?

I appear to have mispoken. What I meant, simply, is that when a schema is located in the schemastore repository, it is better to file an issue in the schemastore repository. I said what I said because typically, for the project maintainers that do add schemas or make fixes to schemas that are hosted in schemastore, it's usually not something that happens every release or update - other contributors fill in the gaps. I personally don't expect project maintainers to do this updating, that is why the schemas are in SchemaStore. And the other reason, for some schemas, the contributions are made from only non-project maintainers, which is why raising the issue in schemastore would be more relevant. But this isn't always the case and there many examples where this isn't the case.
To answer your question: there are two places where projects can maintain their schema: either in schemastore, or in the project repository itself.
If the schemas are located in schemastore, the testing infrastructure is already setup, merging fixes is typically faster (me and the primary owner typically merge within a few hours to a few days, depending on PR complexity), and we also use a GitHub action to allow maintainers to merge fixes themselves, reading from CODEOWNERS file (so yes, a project can maintain their own schemas within SchemaStore).
If the schemas are located in the project repository itself, then of course the project has more control over the schema.
The pattern I've observed is that people sometimes people choose this if the schema is automatically generated by a command or, usually if the schema is used by a proprietary tool. There are plenty of exceptions, of course. There is a tradeoff, and we give the ability for project maintainers to choose what they'd like. For more information, we have a CONTRIBUTING.md and if you have questions that aren't answered by that I'd be happy to answer them

Since https://github.com/SchemaStore/schemastore/pull/3591 has been merged, is this issue fixed?


Support for running on ARM.

If Qt can run on arm (for example a Raspberry Pi) should we support it? Would performance be reasonable enough?
Was publishing my app with dotnet publish -r linux-arm and running with dotnet [app_name].dll but resulted in an exception Could not find Qml.Net library or something like that.

It is possible currently, you just need to compile libQmlNet.so yourself.
I think it's a bit too early to provide precompiled binaries for it though.

result I try running on raspbery pi3
~/Desktop/netcoreapp2.2/publish /dotnet PhotoFrame.App.dll
Unhandled Exception: System.TypeInitializationException: The type initializer for 'Qml.Net.Internal.Interop' threw an exception. ---> System.Exception: Couldn't find the native Qml.Net library.
at Qml.Net.Internal.Interop..cctor()
--- End of inner exception stack trace ---
at Qml.Net.Internal.Qml.NetVariantList..ctor()
at Qml.Net.QGuiApplication.Create(List`1 args)
at Qml.Net.QGuiApplication..ctor(String[] args)
at PhotoFrame.App.Program.Main(String[] args) in D:\Hardware\Raspbery PI\qmlnet-develop\qmlnet-develop\samples\PhotoFrame\PhotoFrame.App\Program.cs:line 25
Aborted
===========================================
how to compile libQmlNet.so for linux-arm on raspberypi 3 ?

i try to compile Native On raspberypi 3 , but problem on compile
pi@kiosk:~/Desktop/QmlNet/native $ qmake --version
QMake version 3.0
Using Qt version 5.7.1 in /usr/lib/arm-linux-gnueabihf
pi@kiosk:~/Desktop/QmlNet/native $ sudo sh build.sh
Project ERROR: Unknown module(s) in QT: quickcontrols2
make: *** No targets specified and no makefile found.  Stop.
make: *** No rule to make target 'install'.  Stop.

We would like to use your library on Yocto ARM.
I managed to compile the native layer, libQmlNet.so, for Yocto ARM & QT 5.12 by running your build.sh.
Inside the folder "output' I got:

libQmlNet.so
lib
plugins
qml

However, using these new binaries into the project Features doesn't seem to be that easy. I will probably do a 'portable' dotnet publish because that creates a 'runtimes' subfolder that contains that contains target specific subfolders with a structure similar to what I got from build.sh.
This kind of publish doesn't create the executable, so to run it i need netcore2.2 on Yocto.
The next step would be to install netcore2.2 on Yocto; this task doesn't seem easy either. I found a link that explains how to do it for netcore2.0. I hope it will work for 2.2, as well.
https://github.com/dotnet/core/blob/master/samples/YoctoInstructions.md

With Yocto, the .NET publishing should touch any native libs. You should build/package the libQmlNet.so into the Yocto distribution like any other recipe.
As for adding dotnet into the Yocto build, use this: https://github.com/pauldotknopf/meta-dotnet
Also, there is a Yocto layer for the native libs of QmlNet here: https://github.com/qmlnet/meta-qmlnet/tree/master/recipes-qmlnet/qmlnet

I managed to build the lib (just the native part) in a Raspberry Pi 3 running Ubuntu 18.10 arm64 using this:
https://bazaar.launchpad.net/~ed10vi86/+junk/qmlnet-native/view/head:/snap/snapcraft.yaml
($ snapcraft prime)
But when I execute dotnet run, it exits with code 139
Using qt 5.11.1 and dotnet 3.0.0-preview3

Exit code 139 is a segfault.
Can you grab the core dump, and get me a stack trace?

This?
(gdb) bt full
#0  0x0000ffff8e01ff2c in _dl_debug_initialize (ldbase=ldbase@entry=0, ns=-2)
    at dl-debug.c:57
        r = 0xffff8e03ef88
#1  0x0000ffff8e0233e8 in _dl_open (
    file=0x38ca4af0 "/home/edv/dev/qtq-tst/qtq-tst/bin/Debug/netcoreapp3.0/runtimes/linux-arm64/native/libQmlNet.so", mode=-2147483646,
    caller_dlopen=0xffff145db1b0, nsid=<optimized out>, argc=1,
    argv=0xffffeeb7a198, env=<optimized out>) at dl-open.c:632
        args = {
          file = 0x38ca4af0 "/home/edv/dev/qtq-tst/qtq-tst/bin/Debug/netcoreapp3.0/runtimes/linux-arm64/native/libQmlNet.so", mode = -2147483646,
          caller_dlopen = 0xffff145db1b0, caller_dl_open = 0xffff8d86b014,
          map = 0x0, nsid = -2, argc = 1, argv = 0xffffeeb7a198,
          env = 0xffffeeb7a1a8}
        exception = {objname = 0xfffeec00493f "dlopen",
          errstring = 0xfffeec004930 "invalid caller",
          message_buffer = 0xfffeec004930 "invalid caller"}
        errcode = 0
        __PRETTY_FUNCTION__ = "_dl_open"
#2  0x0000ffff8d86b014 in ?? ()
   from /home/edv/dev/qtq-tst/qtq-tst/bin/Debug/netcoreapp3.0/runtimes/linux-arm64/native/lib/libdl.so
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#3  0x0000ffff8e038f10 in ?? ()
No symbol table info available.
Backtrace stopped: not enough registers or memory available to unwind further```

See this comment about adding support for ARM.
@ed10vi, sorry for the delay, back that segfault looks unrelated to Qml.Net.

With Yocto, the .NET publishing should touch any native libs. You should build/package the libQmlNet.so into the Yocto distribution like any other recipe.
As for adding dotnet into the Yocto build, use this: https://github.com/pauldotknopf/meta-dotnet
Also, there is a Yocto layer for the native libs of QmlNet here: https://github.com/qmlnet/meta-qmlnet/tree/master/recipes-qmlnet/qmlnet

Hi,
I tried this for a linux-arm and got the following error below. Can you please advise you to fix this?
e/c++/6.4.0/map:60:0,
|                  from ../recipe-sysroot/usr/include/qt5/QtCore/qmetatype.h:55,
|                  from ../recipe-sysroot/usr/include/qt5/QtCore/qobject.h:54,
|                  from ../recipe-sysroot/usr/include/qt5/QtQml/qqmlengine.h:44,
|                  from ../recipe-sysroot/usr/include/qt5/QtQml/QQmlEngine:1,
|                  from ../git/src/native/QmlNet/QmlNet/qml/NetValue.cpp:1:
| /home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/0.3.0-r0/recipe-sysroot/usr/include/c++/6.4.0/bits/stl_tree.h: In member function 'std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_hint_unique_pos(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, const key_type&) [with _Key = long long unsigned int; _Val = std::pair<const long long unsigned int, NetValue*>; _KeyOfValue = std::_Select1st<std::pair<const long long unsigned int, NetValue*> >; _Compare = std::less<long long unsigned int>; _Alloc = std::allocator<std::pair<const long long unsigned int, NetValue*> >]':
| /home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/0.3.0-r0/recipe-sysroot/usr/include/c++/6.4.0/bits/stl_tree.h:1928:5: note: parameter passing for argument of type 'std::_Rb_tree<long long unsigned int, std::pair<const long long unsigned int, NetValue*>, std::_Select1st<std::pair<const long long unsigned int, NetValue*> >, std::less<long long unsigned int>, std::allocator<std::pair<const long long unsigned int, NetValue*> > >::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const long long unsigned int, NetValue*> >}' will change in GCC 7.1
|      _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
|      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| In file included from ../recipe-sysroot/usr/include/qt5/QtQml/5.9.7/QtQml/private/qv4functionobject_p.h:53:0,
|                  from ../git/src/native/QmlNet/QmlNet/qml/JsNetArray.h:5,
|                  from ../git/src/native/QmlNet/QmlNet/qml/JsNetArray510.cpp:1:
| ../recipe-sysroot/usr/include/qt5/QtQml/5.9.7/QtQml/private/qv4object_p.h:182:1: error: invalid conversion from 'bool (*)(QV4::Managed*, uint, const QV4::Value&) {aka bool (*)(QV4::Managed*, unsigned int, const QV4::Value&)}' to 'void (*)(QV4::Managed*, uint, const QV4::Value&) {aka void (*)(QV4::Managed*, unsigned int, const QV4::Value&)}' [-fpermissive]
|  }
|  ^
| ../recipe-sysroot/usr/include/qt5/QtQml/5.9.7/QtQml/private/qv4object_p.h:186:1: note: in expansion of macro 'DEFINE_OBJECT_VTABLE_BASE'
|  DEFINE_OBJECT_VTABLE_BASE(classname) \
|  ^~~~~~~~~~~~~~~~~~~~~~~~~
| ../git/src/native/QmlNet/QmlNet/qml/JsNetArray510.cpp:12:1: note: in expansion of macro 'DEFINE_OBJECT_VTABLE'
|  DEFINE_OBJECT_VTABLE(NetArray);
|  ^~~~~~~~~~~~~~~~~~~~
| Makefile:3630: recipe for target 'JsNetArray510.o' failed
| make: *** [JsNetArray510.o] Error 1

We don't support Qt 5.9, but I suspect that we could easily support it if you remove the JsNetArray support. It should be easy to carve that out in the source.

Hi,
I tried to use the latest release by changing the preferred version in layer.conf. I then got the following below. What do you suggest I do? I'm not familiar with yocto much.
| arm-oe-linux-gnueabi-g++  -march=armv7-a -mfpu=neon -mfloat-abi=hard -fstack-protector-strong -pie -fPIE -D_FORTIFY_SOURCE=2 -Wa,--noexecstack -Wformat -Wformat-security -Werror=format-security --sysroot=/home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/git-r0/recipe-sysroot -c -pipe  -O2 -Wa,--noexecstack -fexpensive-optimizations -frename-registers -fomit-frame-pointer -ftree-vectorize   -finline-functions -finline-limit=64   -Wno-error=maybe-uninitialized -Wno-error=unused-result  -fvisibility-inlines-hidden --sysroot=/home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/git-r0/recipe-sysroot -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQMLNET_LIBRARY -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_QUICKCONTROLS2_LIB -DQT_QUICK_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NO_QML_DEBUGGER -DQT_NETWORK_LIB -DQT_TESTLIB_LIB -DQT_CORE_LIB -DQT_TESTCASE_BUILDDIR='"/home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/git-r0/build"' -I../git/src/native/QmlNet -I. -I../git/src/native/QmlNet -I../recipe-sysroot/usr/include/qt5 -I../recipe-sysroot/usr/include/qt5/QtQuickControls2 -I../recipe-sysroot/usr/include/qt5/QtQuick -I../recipe-sysroot/usr/include/qt5/QtWidgets -I../recipe-sysroot/usr/include/qt5/QtGui -I../recipe-sysroot/usr/include/qt5/QtQml -I../recipe-sysroot/usr/include/qt5/QtNetwork -I../recipe-sysroot/usr/include/qt5/QtCore/5.9.7 -I../recipe-sysroot/usr/include/qt5/QtCore/5.9.7/QtCore -I../recipe-sysroot/usr/include/qt5/QtTest -I../recipe-sysroot/usr/include/qt5/QtCore -I. -I../recipe-sysroot/usr/lib/qt5/mkspecs/linux-oe-g++ -o moc_QCoreApplication.o moc_QCoreApplication.cpp
| ../git/src/native/QmlNet/QmlNet/qml/QTest.cpp: In function 'int qtest_qWaitFor(waitForCb, int)':
| ../git/src/native/QmlNet/QmlNet/qml/QTest.cpp:16:19: error: 'qWaitFor' is not a member of 'QTest'
|      auto result = QTest::qWaitFor([&]() {
|                    ^~~~~
| ../git/src/native/QmlNet/QmlNet/qml/QTest.cpp:29:1: warning: control reaches end of non-void function [-Wreturn-type]
|  }
|  ^
| Makefile:3792: recipe for target 'QTest.o' failed
| make: *** [QTest.o] Error 1
| make: *** Waiting for unfinished jobs....
| ERROR: oe_runmake failed
| WARNING: /home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/git-r0/temp/run.do_compile.12982:1 exit 1 from 'exit 1'
| ERROR: Function failed: do_compile (log file is located at /home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/git-r0/temp/log.do_compile.12982)

Hi,
I removed the QTest.o from the make file and it sucessfully was built. libQmlNet.so was created.
What's needed to be done after this step?

Looks like qWaitFor isn't supported in 5.9. See here.
There may be more things that aren't present, you'll have to just refer to the docs.

So which QT version is supported 5.10? It's not stated in the readme.

I was able to build with tag v.0.6.0 against Qt5.9.
Where should you place the *.so on Linux?
I just want to try out before I use the yocto build.

Anyone care to share their linux-arm build for QmlNet? Or share instructions as to how it's done? I have build host setup on a vm, just not sure what to do next...

+1 I would really appreciate some doc on how to compile to project for ARM.
I need to be able to run my qmlnet project on a raspberry pi pretty soon.


[Wownero] Display node donation address

From v<IP_ADDRESS>, public node operators are able to add a donation address to an address.txt file in the same directory as wownerod and announce it in RPC get_info call

forgot we added that functionality. beautiful. changes incoming.

added


Simplified format for fields parameter when using GET

Related Issue(s):
N/A
Proposed Changes:

Add a simplified format for API Fields Extension when using a GET query parameter
Make language more explicit that the fields value is a suggestion/hint to the server, and that the semantics of it are entirely up to server (with recommendations)

PR Checklist:

[ ] This PR has no breaking changes. - this PR changes the format of a parameter
[X] I have added my changes to the CHANGELOG or a CHANGELOG entry is not required.
[X] API only: I have run npm run generate-all to update the generated OpenAPI files.

PR should be against dev, not,master.


views: template filters + search bar in header

Signed-off-by: Lars Holm Nielsen<EMAIL_ADDRESS>

Ready for review

LGTM, @drjova?

:shipit:


In-Person: Make DHCP Server

The Beaglebone Black ships with a USB DHCP server on it and pretends to be an ethernet dongle.....could we replicate?  This would remove the need for a WiFi router and losing internet from these devices.

This has been tested at the GeorgiaTech workshop, and it worked fantastically!


Allow configuring NTP pools and servers for LBMs

This PR adds options (flags and corresponding helm values) to the yawol-controller for configuring NTP pools and servers for LoadBalancerMachines.
The LBM controller passes the configured NTP pools and servers to the chrony config via user-data.
If no NTP pools and servers are configured, it falls back to the current chrony default config, i.e., uses pool.ntp.org.
The chronyd service is restarted after writing the config file.
Note: this PR bumps the chart version to 0.25.0 and the chart's application version to v0.25.0, i.e., merging the PR will release a new chart version referencing new controller images.
Once this PR and #408 have been merged, we should release v0.25.0 of the controller images accordingly.

@maboehm please take another look, I have addresses your feedback :)


Integration test should be run on presubmit

The integration tests are not configured for reconciler-test repo. They should be set up here and enabled in test-infra repository.

/kind enhancement


Issues with Approval Count

What happens when the required number of approvals are met? Does one have to run the builds again, or does this resource type check approvals automatically?

Is there a way to specify versions by number of approvals and git commit? That might solve the shared issue, but I don't know how to determine that the resource needs to check again...


[2.1-3] [Sponsor] View Shipment page

After the moment when Shipment entry is created (#58) Site Actor should be able to navigate to it from the dashboard (#123) or from the notification (#109)
This task does not include the development of Cancel Order & Shipment handler

For references have a look at CMO View Shipment Page.
For the controller, you should add your modifications on SingleShipmentController in csc-services.


Testdesign "monolithic" fails to compile with Vivado 20.2

Compilation fails to start due to issues with the vivado_hls command
****** Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2020.2 (64-bit)
  **** SW Build 3064766 on Wed Nov 18 09:12:47 MST 2020
  **** IP Build 3064653 on Wed Nov 18 14:17:31 MST 2020
    ** Copyright 1986-2020 Xilinx, Inc. All Rights Reserved.

source /dataL/XILINX/Vitis_HLS/2020.2/scripts/vitis_hls/hls.tcl -notrace
invalid command name "::vivado_hls_bin"
    while executing
"::vivado_hls_bin -f run_hls.tcl -init"
    ("eval" body line 1)
    invoked from within
"eval "::$proc_name $::argv $initOpt" "
ERROR: [HLS 200-70] There is an error calling 'vivado_hls', try '-help'.
INFO: [Common 17-206] Exiting vitis_hls at Sat Jan 22 19:54:36 2022...
make[4]: *** [icmp_prj/solution1/impl/ip] Error 1
make[4]: Leaving directory `/ibm/gpfs-dataP/hle/cloudFPGA/cFp_HelloKale/cFDK/SRA/LIB/SHELL/LIB/hls/NTS/icmp'
make[3]: *** [icmp] Error 2
make[3]: Leaving directory `/ibm/gpfs-dataP/hle/cloudFPGA/cFp_HelloKale/cFDK/SRA/LIB/SHELL/LIB/hls/NTS'
make[2]: *** [NTS] Error 2
make[2]: Leaving directory `/ibm/gpfs-dataP/hle/cloudFPGA/cFp_HelloKale/cFDK/SRA/LIB/SHELL/LIB/hls'
make[1]: *** [hls_cores] Error 2
make[1]: Leaving directory `/ibm/gpfs-dataP/hle/cloudFPGA/cFp_HelloKale/cFDK/SRA/LIB/SHELL/Kale'
make: *** [ShellSrc] Error 2

The building flow was fully tested with 2017.4 and 2019.2. It may also work up to Vivado 2020.1 but not above (for the time being). I will update the README files accordingly.

Deferred, closing


Fix Docker image on Mac M1 architecture

https://github.com/rust-lang/rust-bindgen/issues/2074
https://github.com/rust-lang/rust/issues/80346
https://github.com/docker/for-mac/issues/5123
https://github.com/docker/for-mac/issues/6070
https://stackoverflow.com/questions/68630526/lib64-ld-linux-x86-64-so-2-no-such-file-or-directory-error

Closing because this fixed the issue: https://github.com/docker/for-mac/issues/6030#issuecomment-992590521
M1 Macs have this issue that usually can be solved by disabling iCloud Private Relay as shown here.


Spyder not starting in macOS because pyopengl is present

I updated python and spyder using "conda update spyder" and "conda update python" respectively on MacOSX. Is this a python error or a spyder error?
Please find attached the conda list output listing the versions.
Thanks for your support.
Traceback (most recent call last):
File "/Users/Nagraj/anaconda3/bin/spyder", line 7, in
conda_list.txt
from spyder.app.start import main
File "/Users/Nagraj/anaconda3/lib/python3.6/site-packages/spyder/app/start.py", line 19, in
from OpenGL import GL
File "/Users/Nagraj/anaconda3/lib/python3.6/site-packages/OpenGL/GL/init.py", line 3, in
from OpenGL import error as _error
File "/Users/Nagraj/anaconda3/lib/python3.6/site-packages/OpenGL/error.py", line 12, in
from OpenGL import platform, _configflags
File "/Users/Nagraj/anaconda3/lib/python3.6/site-packages/OpenGL/platform/init.py", line 35, in
_load()
File "/Users/Nagraj/anaconda3/lib/python3.6/site-packages/OpenGL/platform/init.py", line 29, in _load
plugin = plugin_class()
TypeError: 'NoneType' object is not callable

Do you have pyopengl installed?

I saw from the conda_list.txt file you posted that that's the case. Please uninstall it to workaround this problem in the meantime. We'll fix in our side in our next release.

Thanks Carlos!
On Sat, Dec 30, 2017 at 3:11 AM, Carlos Cordoba<EMAIL_ADDRESS>wrote:

Closed #6076 https://github.com/spyder-ide/spyder/issues/6076 via
ecc7d4a
https://github.com/spyder-ide/spyder/commit/ecc7d4ac3bfe2977992e3e320276fd1adb758232
.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/spyder-ide/spyder/issues/6076#event-1404886840, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AhSwm9Je5WESmbe0V82ejTpa6wTnQ42tks5tFVyBgaJpZM4ROJgL
.

--
Nagraj Atlur


Fixed new yaml deprecations

Q
A

Bug fix?
yes

New feature?
no

BC breaks?
no

Deprecations?
no

Fixed tickets
none

Related issues/PRs
none

License
MIT

Documentation PR
none

What's in this PR?
This PR removes the deprecations introduces by the Symfony YAML component to be compatible with the YAML specification.
Why?
In some environment the tests were failing because of that.

@danrot ACK

I am just waiting for @christianbader testing it out. Can be merged as soon as he approves the changes.

@wachterjohannes Was working on @christianbader's machine, but realized that we had two doctrine nodes in one config. Moved it, and wait for the tests again.

@wachterjohannes This can be merged now.


🐛[BUG]自定义菜单icon时，没有生效或错误

🐛 bug 描述 [详细地描述 bug，让大家都能理解]
router中配置路由时：
//   icon: '/favicon.png',                  菜单没有icon
//   icon: ,    无法渲染的错误
📷 复现步骤 [清晰描述复现步骤，让别人也能看到问题]
  {
    path: '/workbench/index',
    name: '工作台',
    icon: <Icon type='setting' />,
    component: './Workbench/Workbench',
  },

配置为  icon: '/favicon.png'，没有错误，但是也没有图标出现。
🏞 期望结果 [描述你原本期望看到的结果]
出现setting的图标
💻 复现代码 [提供可复现的代码，仓库，或线上示例]
© 版本信息

Ant Design Pro-layout 版本: [e.g. 4.7.3]
"antd": "^3.23.6",
umi 版本  "umi": "^2.9.6",
浏览器环境 chrom
开发环境 [e.g. mac OS]
vscode window 10

🚑 其他信息 [如截图等其他信息可以贴在这里]
icon: <Icon type='setting' />时
浏览器打印出下面错误×
Objects are not valid as a React child (found: object with keys {key, ref, props, _owner, _store}). If you meant to render a collection of children, use an array instead.
in a (created by BaseMenu)
in li (created by MenuItem)
in MenuItem (created by Connect(MenuItem))
in Connect(MenuItem) (created by Context.Consumer)
in Trigger (created by Tooltip)
in Tooltip (created by Context.Consumer)
in Tooltip (created by Context.Consumer)
in MenuItem (created by BaseMenu)
in ul (created by DOMWrap)
in DOMWrap (created by SubPopupMenu)
in SubPopupMenu (created by Connect(SubPopupMenu))
in Connect(SubPopupMenu) (created by Menu)
in Provider (created by Menu)
in Menu (created by Context.Consumer)
in InternalMenu (created by Context.Consumer)
in Menu (created by BaseMenu)
in BaseMenu (created by SiderMenu)
in div (created by Context.Consumer)
in aside (created by Context.Consumer)
in InternalSider (created by Context.Consumer)
in Sider (created by SiderMenu)
in SiderMenu (created by SiderMenuWrapper)
in SiderMenuWrapper (created by BasicLayout)
in section (created by BasicLayout)
in BasicLayout (created by Context.Consumer)
in Adapter (created by BasicLayout)
in div (created by BasicLayout)
in BasicLayout (created by BasicLayout)
in BasicLayout (created by ConnectFunction)
in ConnectFunction (created by Component)
in Component (created by Component)
in Authorized (created by _default)
in _default (created by Component)
in Component (created by Route)
in Route (created by RouteWithProps)
in RouteWithProps (created by ret)
in ret (created by RouterWrapper)
in Switch (created by RouterWrapper)
in Router (created by ConnectedRouter)
in ConnectedRouter (created by Context.Consumer)
in ConnectedRouterWithContext (created by ConnectFunction)
in ConnectFunction (created by RouterWrapper)
in sfc (created by LocaleWrapper)
in IntlProvider (created by LocaleWrapper)
in LocaleProvider (created by Context.Consumer)
in LocaleReceiver (created by ConfigProvider)
in ConfigProvider (created by LocaleWrapper)
in LocaleWrapper (created by RouterWrapper)
in RouterWrapper
in Provider (created by _DvaContainer)
in _DvaContainer

config.js 不支持 dom，你只能使用 string

basemenu中
不是这么注释的吗？
var IconFont = _Icon.createFromIconfontCN({
  scriptUrl: defaultSettings.iconfontUrl
}); // Allow menu.js config icon as string or ReactNode
//   icon: 'setting',
//   icon: 'icon-geren' #For Iconfont ,
//   icon: 'http://demo.com/icon.png',
//   icon: '/favicon.png',
//   icon: <Icon type="setting" />,

那如果要自定义icon，只能重写menuItemRender传入prolayout?


Notebooks UX - language selector button

Testing #101325
I always felt that the language selector button is out of place in the lower right corner. All action buttons are in a border while the language selector is just floating in the cell. Have we considered putting it in a border in the lower right hand corner? Have we considered putting the language selector in the upper right hand corner with the other buttons? Maybe separate them with a bar?

We actually followed the status bar model here where each item has a hover bg and is an action. Since we don't believe users will interact with this button too often we didn't want to place it with the other actions as that tends to get too busy. So we thought of having it in the bottom right, just like a regular language selector, was more appropriate and consistent.

Do you think a subtle border between the status bar and the cell editor would help with the "floating" feeling @lszomoru?

Yes, if the idea is that each cell has a "status bar" and that button is part of it, we should visually separate the cell from the status bar. I also think that it might be a waste of space to have each cell have a status bar, especially if we only have this one button in it, and we expect people not to interact with it too often. Might be better than to move it up with the other actions.

It also has the cell execution status (checkmark, error indicator, progress indicator, and duration)

We use to have a border but there were too many lines that made it feel busy:

That does seem busy indeed but it is an edge case where the cell only has one line of code/text.

I don't think a single line cell is an edge case, at least in all of the VS Code notebooks most cells are this way. I'm still not convinced of a better alternate though.

Given that this issue is a bit older and we haven't seen similar feedback, I'm going to close this one out.


Soapy multichan

The implementation should be backwards compatible via the builder interface. The new() signature changes the chan param to a Vec.
This builds upon the optional parameters PR #71.
Fixes: #62
Refs: #70, #71

I cherry-picked the two commits that are on top of #71 to avoid the merge commit. Thank you!