Aerial Screensaver - MacBook Pro OS Sierra

Dear GitHub,
Hope this e-mail finds you well.
Kindly note that I was extremely excited to use the Apple TV's Aerial Screensaver on my MacBook Pro - OS Sierra -  10.12.3 (16D32)
After downloading the application and using it for a few days, it suddenly stopped working and told me that the Aerial version needs to be updated by th vendor.
Kindly advise...
Best Regards,
Shady Sherif.

@shaguib There is a bug in macOS. It has been reported to Apple, but they haven't fixed it.
But there is an easy workaround.

Select Aerial in System Preferences. You may see that error message.
Close System Preferences with Aerial still selected.
Re-open System Preferences. You shouldn't see the error message.

Please try this and let us know how you get on.
You can read more about the bug here. http://alistairmcmillan.github.io/2016/04/25/OSX-Swift-screensaver-bug.html

10.12.1 - above workaround did not fix issue.

@curiopraxis Did you definitely close System Preferences with Aerial selected and then reopen it? If so there are some other steps I'd like to you try to try to establish what is causing this error.

No reply from @shaguib or @curiopraxis. Closing.

Unfortunately, I am having this problem too. New iMac out of the box running OS Sierra 10.12, upgraded to 10.12.6. Installed Aerial and got the dreaded message. Tried the fix a few times. Also deleted and reinstalled. I won't have this iMac after today, but I'd be interested in the other steps to try to establish what might be causing the error.

Quick follow up for those who might be looking for answer. I had given up on using Aerial, chose another screen saver, then left the machine alone and running. When I came back to it, about 30 minutes later, I opened the system prefs/screensaver and noticed that Aerial now showed a picture in the choose frame. I chose it and it worked. Maybe it needed time to populate a video? At any rate, that process worked and it's up and running in all it's splendor.

@djroed  We know exactly why this error is being caused. It isn't a mystery. There is a bug in macOS.
When you load a screensaver that is written using Swift, System Preferences loads the Swift libraries into its process. Unfortunately there are multiple copies of the Swift libraries for each release of Swift. And System Preferences will only load one set of the libraries at a time.
So if you open System Preferences with a screensaver selected that needs version 1 of the Swift libraries then System Preferences will load version 1 of the libraries, but if you select a screensaver that needs another version of the libraries you will get the error saying "You cannot use the ... screen saver with this version of OS X. Please contact the vendor to get a newer version of the screen saver."
The only way to get System Preferences to load a different version of the libraries is to close it and start again. But to make sure it loads the correct version of the libraries needed by Aerial, you need to open it with Aerial selected or another screensaver that uses the same version of the libraries.
This is what you must have done. The "another screen saver" you mention must use the same version of the libraries that Aerial uses. So when you selected Aerial the correct version was loaded.
The bug has been reported to Apple. The rdar number is 25569037. It is now one year and three weeks old.

Ok. That's fine. My point was that I followed your instructions to open system prefs/screen saver, select Arial ScreenSaver, close System Prefs (leaving Arial Selected), then opened it expecting to see Arial work, per Your instructions. It did not work. I did this a number of times. Just did not work, period. I think this is where many people reporting having the same experience as me are getting confused. Perhaps it works every time for you, that's great. But you should understand, as many users are reporting, that the procedure you are recommending just doesn't work every time. That's all I am saying. I don't understand the where's and why's, bug or not,  but I do understand what I experienced. So maybe others can keep my experience in mind and hopefully not give up on Aerial. I think it's the best screensaver going on the Mac or any platform right now.

And that's why my instructions ended with "Please try this and let us know how you get on." So that if it doesn't work I can try to help people figure out why. :)
You are right a few people try this and it doesn't work. My best guess is that if it doesn't work then something else is loading the Swift libraries into the System Preferences process and not just a screensaver.
It's easy to confirm if this is what is happening, and even work out what is doing it. If someone follows the instructions I posted above and STILL gets the "Please contact the vendor to get a newer version of the screen saver." message, then they just need to...

Open Activity Monitor with SystemPreferences still showing the error
Select the SystemPreferences process
Click the Information button
Select the "Open Files and Ports" tab
Copy the files and ports information into a text editor (there will be a LOT of files listed) and search for "libswift". This will show where the Swift libraries are being loaded from. It will look something like this...

/Users/alistair/Library/Screen Savers/iOS Saver.saver/Contents/MacOS/iOS Saver
txt
/Users/alistair/Library/Screen Savers/iOS Saver.saver/Contents/Frameworks/libswiftAppKit.dylib
txt
/Users/alistair/Library/Screen Savers/iOS Saver.saver/Contents/Frameworks/libswiftCoreGraphics.dylib
txt
/Users/alistair/Library/Screen Savers/iOS Saver.saver/Contents/Frameworks/libswiftDarwin.dylib
txt
/Users/alistair/Library/Screen Savers/iOS Saver.saver/Contents/Frameworks/libswiftDispatch.dylib
txt
/Users/alistair/Library/Screen Savers/iOS Saver.saver/Contents/Frameworks/libswiftFoundation.dylib
txt
/Users/alistair/Library/Screen Savers/iOS Saver.saver/Contents/Frameworks/libswiftObjectiveC.dylib
txt
/Users/alistair/Library/Screen Savers/iOS Saver.saver/Contents/Frameworks/libswiftQuartzCore.dylib
txt
/Users/alistair/Library/Screen Savers/iOS Saver.saver/Contents/Frameworks/libswiftSecurity.dylib
txt

Alternatively they can copy and paste that info from the "Open file and ports" tab and send it to<EMAIL_ADDRESS>and I'll look through it myself to work out what is causing the issue.

And that is exactly why I posted my experience, due to your invitation :)  Thank you for posting the other steps. I do set up and maintain all kinds of Macs for people. If the issue with Aerial happens again, I'll send you the data. I didn't mean for my post to reflect badly on you in any way. I understand it is a bug in the OS that Apple hasn't responded to yet. I appreciate that you took the time and effort, and used your skills to bring Aerial to the Mac as a screen saver. I always set Aerial as the default screen saver, and it's a pleasure to see the look on my clients faces when I demo it for them.

Thanks, but it's John Coates' screensaver. I just try to help answer people's questions here and on other random projects. John deserves all the credit for Aerial.

Ah, my bad. Thanks or your helping contribution.  And all Kudos to John !


AttributeError on Startup When Using add_pagination with FastAPI - Pydantic V2 Upgrade

Hello!!
My application looks like this (I have also tried in the lifespan context):
app = FastAPI(
    title=title,
    description=description,
    version=version,
    docs_url=None,
    redoc_url=None,
    openapi_tags=tags_metadata,
    lifespan=lifespan,
)

add_pagination(app)

I am getting this error on startup. If I remove add_pagination(app) from main, then every route works except the ones that are using Pages. Look forward to any suggestions!
Versions:
fastapi = 0.104.1
fastapi_pagination = 0.12.12
pydantic = 2.5.1
  File "/.venv/lib/python3.10/site-packages/starlette/routing.py", line 677, in lifespan
    async with self.lifespan_context(app) as maybe_state:
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/contextlib.py", line 199, in __aenter__
    return await anext(self.gen)
  File "/.venv/lib/python3.10/site-packages/fastapi_pagination/api.py", line 373, in lifespan
    _add_pagination(parent)
  File "/.venv/lib/python3.10/site-packages/fastapi_pagination/api.py", line 362, in _add_pagination
    _update_route(route)
  File "/.venv/lib/python3.10/site-packages/fastapi_pagination/api.py", line 345, in _update_route
    get_parameterless_sub_dependant(
  File "/.venv/lib/python3.10/site-packages/fastapi/dependencies/utils.py", line 125, in get_parameterless_sub_dependant
    return get_sub_dependant(depends=depends, dependency=depends.dependency, path=path)
  File "/.venv/lib/python3.10/site-packages/fastapi/dependencies/utils.py", line 148, in get_sub_dependant
    sub_dependant = get_dependant(
  File "/.venv/lib/python3.10/site-packages/fastapi/dependencies/utils.py", line 269, in get_dependant
    sub_dependant = get_param_sub_dependant(
  File "/.venv/lib/python3.10/site-packages/fastapi/dependencies/utils.py", line 112, in get_param_sub_dependant
    return get_sub_dependant(
  File "/.venv/lib/python3.10/site-packages/fastapi/dependencies/utils.py", line 148, in get_sub_dependant
    sub_dependant = get_dependant(
  File "/.venv/lib/python3.10/site-packages/fastapi/dependencies/utils.py", line 290, in get_dependant
    add_param_to_fields(field=param_field, dependant=dependant)
  File "/.venv/lib/python3.10/site-packages/fastapi/dependencies/utils.py", line 470, in add_param_to_fields
    if field_info.in_ == params.ParamTypes.path:
AttributeError: 'FieldInfo' object has no attribute 'in_'

Hi @bnewman-tech,
It might be related to #891

Thank you!!
The fix was indeed to change Field to Query.
OLD
from fastapi_pagination.links import Page
from pydantic import Field

Page = Page.with_custom_options(
    size=Field(100, ge=1, le=1000),
)

NEW:
from fastapi import Query
from fastapi_pagination.links import Page

Page = Page.with_custom_options(
    size=Query(100, ge=1, le=1000),
)

Great, this fix will also help with this error:
AssertionError: non-body parameters must be in path, query, header or cookie: size

Needed to change Field to Query in my custom page:
from fastapi import Query
from fastapi_pagination.links import Page

Page = Page.with_custom_options(
    size=Query(999, ge=1, le=999),
)


hook not work, it will stuck on Commit preview summary? ▸Yes  No

Version: version: 0.14.0 commit: 6f5ce01
OS: macOS 14.5
Steps to reproduce the behavior:

add hook by codegpt hook install && chmod +x .git/hooks/prepare-commit-msg
(in my environment, chmod +x is necessary to work)
git add .
git commit

❯ git commit
lint.....................................................................^LPassed
format...................................................................Passed
trim trailing whitespace.................................................Passed
fix end of files.........................................................Passed
check yaml...........................................(no files to check)Skipped
check that scripts with shebangs are executable..........................Passed
detect private key.......................................................Passed
Summarize the commit message use gpt-4o model
We are trying to summarize a git diff
PromptTokens: 14569, CompletionTokens: 185, TotalTokens: 14754
We are trying to summarize a title for pull request
PromptTokens: 367, CompletionTokens: 7, TotalTokens: 374
We are trying to get conventional commit prefix (Tools)
PromptTokens: 569, CompletionTokens: 5, TotalTokens: 574
================Commit Summary====================

feat: integrate custom workshop Kanban management

- Update dependencies in `package.json` to newer versions
- Add a new URL entry in `sitemap.xml` and update the `lastmod` date for existing URLs
- Create a new API module `kanban.ts` for managing workshop Kanban operations
- Add `cycleTime` prop to `KanbanMachine.vue` and display its value
- Add `count` prop to `KanbanMachineCount.vue` and display its value
- Add a new menu item for custom workshop Kanban in `AppMenu.vue`
- Add new localization keys for custom workshop Kanban in `tw.json` and `us.json`
- Add `faSlidersH` icon to the font-awesome library in `main.ts`
- Enhance `workshop/1.vue` with new Kanban API integration and WebSocket connection
- Create a custom workshop Kanban page `workshop/custom.vue` with CRUD operations

==================================================
Write the commit message to .git/COMMIT_EDITMSG file
Commit preview summary? ▸Yes  No

@Chindada I will take it.

@Chindada Try https://github.com/appleboy/CodeGPT/releases/tag/v0.14.1

I think there is extra issue in v0.14.1
(hook already reinstall by codegpt hook uninstall && codegpt hook install)
❯ git add .
❯ git commit
trim trailing whitespace.................................................Passed
fix end of files.........................................................Passed
check yaml...........................................(no files to check)Skipped
check that scripts with shebangs are executable..........................Passed
detect private key.......................................................Passed
Summarize the commit message use gpt-4o model
We are trying to summarize a git diff
PromptTokens: 4516, CompletionTokens: 149, TotalTokens: 4665
We are trying to summarize a title for pull request
PromptTokens: 331, CompletionTokens: 7, TotalTokens: 338
We are trying to get conventional commit prefix (Tools)
PromptTokens: 533, CompletionTokens: 5, TotalTokens: 538
================Commit Summary====================

feat: add TimeRange message to protobuf definitions

- Add `TimeRange` message type to the protobuf definition in Golang
- Include `start` and `end` fields of `google.protobuf.Timestamp` type in the `TimeRange` message
- Modify the `file_analysis_analysis_proto_msgTypes` to include the new `TimeRange` message
- Update `file_analysis_analysis_proto_depIdxs` to reference the new fields in `TimeRange`
- Add `TimeRange` exporter function to the proto initialization
- Add `TimeRange` message definition to the protobuf file in `protos/v1/analysis/analysis.proto`
- Add `TimeRange` class to the TypeScript implementation, with `start` and `end` fields and methods for serialization and deserialization

==================================================
Write the commit message to .git/COMMIT_EDITMSG file
Git record changes to the repository
[main c3dd463] feat: add TimeRange message to protobuf definitions
 4 files changed, 194 insertions(+), 14 deletions(-)
fatal: cannot lock ref 'HEAD': is at c3dd463ac344a57ba4ee8af0b618602c25f7032a but expected 713a3e92362b5e0d46b64211abdea0655a5671b6

it will still show commit edit in vi editor
but actualy, codegpt already commit
after i enter :q
git error happen


Reusable workflow for nightly scanning docker images

Contains custom inputs to support all currently automatically released docker images.
Will need to be tested by updating workflows in nri-statsd, nri-prometheus, etc.

Will need to be tested by updating workflows in nri-statsd, nri-prometheus, etc.

If you wanted to test it before merging you could do it by referencing the branch in each repository.


Some verses don't return valid JSON

Hi,
I'm trying to interface with your API from within Second Life, an online virtual world that has its own proprietary scripting language, called LSL. LSL has some limited ability to parse JSON from an external server.
Overall, it works well, but I have found some verses that do not return valid JSON, stymieing my script. They are reliably truncated too early when requested from within Second Life, but work perfectly well in a browser (Chrome).
The verses I have found so far that reproduce this behaviour are Joshua 1:9 and Malachi 3:2.
You can find discussion of this issue at https://community.secondlife.com/forums/topic/440800-body-of-http-response-truncated-early/
I am also having trouble with the character encoding - Second Life uses UTF8, and this is what is returned in Chrome, but something else is being returned to my LSL scripts, resulting in all the quotes and apostrophes being messed up.
Is there something your server sees or fails to see in the request from Second Life that leads it to send something different from that sent to Chrome?

I made a change to the app so it now returns the headerContent-Type: application/json;charset=utf-8. Prior to that, that charset part was missing. While most clients I've encountered don't seem to care, I suspect that the library you're using was consuming the payload as US-ASCII or some other encoding, which could make for some weird interaction with Content-Length value.
In any case, I'm betting things are better now... give it a try!

That was quick!
I gave it a whirl and all seems to be working as expected now. No truncation seen, and special characters are displaying correctly.
Thank you very much :)


Suggesting XUnit instead of NUnit

I would suggest to declare XUnit instead of NUnit, most engagements I've worked on used that and also it is used by some PG's as well.

Hey Dariusz, we actually are planning on making some big changes to this page in particular, and one of those changes will be to avoid making recommendations between many of these testing frameworks.
In the case of xUnit vs NUnit, both are very well supported by .NET Core, and much of the tooling supporting unit testing, including through Visual Studio. While there are advantages to both, I think ultimately it falls down to personal preference to choose between them. In cases where you could easily go either way I don't think we should choose a single framework, instead pitching both and maybe a short comparison where appropriate.
I hope to have the new unit testing page up for review very soon, so I encourage you to come check it out and leave feedback once it has been revised!


TSLint errors not shown with bail option on production build

Issue to watch: https://github.com/wbuchwalter/tslint-loader/issues/18

Worked around the issue for now by removing the option....


Expand test matrix with Python 3.11-3.9 and Django 3.2, 4.0 and 4.1

done in https://github.com/boxine/bx_django_utils/pull/77


Add docs for minReadySeconds in StatefulSet

Add docs from minReadySeconds.
xref: https://github.com/kubernetes/enhancements/pull/2607

Hi @ravisantoshgudimetla .
Is this change for the 1.22 release? Docs for v1.22 features should use the dev-1.22 branch.
/cc @PI-Victor

Hi @ravisantoshgudimetla .
Is this change for the 1.22 release? Docs for v1.22 features should use the dev-1.22 branch.
/cc @PI-Victor

Yes @PI-Victor, updated the branch. Thank you.

@tengqm - Can you apply the required labels?

I don't need to update the featuregates as it was already covered by @tengqm  in 372d34d

/milestone 1.22

Is this behind the StatefulSetMinReadySeconds feature gate? If so, let's also mention that in the StatefulSet concept page, and update https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/

I'm 1.22 release docs shadow for this PR. It looks like the changes for this feature to the dev-1.22 feature-gates page have already been merged. This PR seems to cover the StatefulSet concept page you asked about. @sftim is there more that you think needs to be done or is this ready to be merged?

based on Chris' comment i'd like to merge this, anything to else needs to be added?

All feedbacks addressed. Good to go.
/lgtm
/approve


publish<EMAIL_ADDRESS>

Requested by: @AbhiPrasad
Quick links:

View changes
View check runs

Assign the accepted label to this issue to approve the release.
Targets

[ ] aws-lambda-layer
[ ] gcs
[ ] github
[ ] npm
[ ] registry

Targets marked with a checkbox have already been executed.  Administrators can manually tick a checkbox to force craft to skip it.

Please hold off on publishing this till Monday!


fix install_twisted_reactor for python3 (_threadedselect is now inclu…

…ded in twisted for py3)
see also:

https://github.com/kivy/kivy/issues/5277
https://github.com/kivy/kivy/pull/5026

@tshabs does it work for you without the version fix or is it still necessary?

@KeyWeeUsr I don't need to do any of this to make it work.  Works perfectly on 3.5.2 & Twisted 17.5.0

Tested, both client & server worked correctly. Thanks for the patch! 🍡


CyberTruck-Viv

Hello there, I made a change to my submission by adding a new generative background plus the placement of the truck changes, I hope you guys like it.

Nice work, this is really coming together! But I think you can take it a little further– make the buildings more unique– give some sloping roofs. or supermarkets! Mix it up a little.
You can update the code in this PR without having to close it and open a new PR
@maxwofford

Hi there, thanks for the feed back, I changed shapes of building to be random as well as random tops for the building, hope this is enough.
Sincerely,
Vivaan Shahani


Enhancement Request: Add Interface Selection for Wi-Fi Scanning

Description**
The current plugin scans any Wi-Fi adapter that has an IP but gets stuck on the first one it finds, often leading it to select the wrong interface. In my setup, I use a Wi-Fi USB adapter on wlan1 as an SSH backbone to maintain a constant connection and leave wlan0 for scanning. However, the plugin keeps scanning wlan1, preventing wlan0 from being used for its intended purpose.

Proposed Enhancement
Enhance the plugin to allow explicit interface selection or improve its logic to avoid adapters with active IP connections, ensuring that the correct interface is used for scanning.
Suggested Solutions

Interface Selection Option

Add a parameter (e.g., --interface wlan0) or a configuration setting to specify which interface to use for scanning.

Interface Exclusion Option**

Add a feature to exclude specific interfaces (e.g., wlan1) from scanning. This would focus the plugin on wlan0, ensuring it performs as intended.

Impact
This enhancement would provide greater flexibility for setups using multiple adapters, ensuring that dedicated network roles are respected.
Environment

Plugin Version: [MainBranch
System: [As Required]
Network Setup:

wlan1: Used for SSH backbone connection
wlan0: Reserved for Wi-Fi scanning

Additional Notes
Please let me know if further details or logs are needed. Thank you for considering this improvement!

I will try to fix it thanks for the feedback

Thank you! if you need any help im happy to help.


Space environment variables

Hi!
We're running some Spring Cloud microservices, and we need to specify Spring Cloud Config URL in environment variables for each service, which is not good.
Would be great if Cloud Foundry will support Space-bounded environment variables instead of "per application only"

We currently support environment variable groups for running and staging that apply deployment wide.
http://docs.cloudfoundry.org/devguide/deploy-apps/environment-variable.html#evgroups
Would that work for you?

@dieucao awesome, thanks! Still not sure about difference between "staging" and "running" tho :)

"staging" refers to the phase where we combine your application bits with the buildpack to produce a runnable "droplet".  You may wish to specify different environment variables to be exposed during this compilation step than the set of environment variables to be exposed to your app when it's running.

@dieucao ok, thanks, I got it :) So groups are exactly what I wanted :)


add selectionSort algorithm in javaScript and update Readme.md by adding my name in list

add selectionSort algorithm and add my name in Readme.md

@atyant-yadav suddenly today  this PR has stopped counting  in my hacktoberfest though you added hacktoberfest-accepted label. Can you please check.


Report all "Not Implemented" messages when creating the SWF test run reports

rs=me

We only have a few of those left, so seeing the long tail is useful.


Add support for building without libfuse on FreeBSD

mount() seems to be missing from the libc crate for FreeBSD, so this is blocked on better support for FreeBSD in libc

That's because on FreeBSD, you should use nmount instead of mount.


feat(options): added max_messages option

Description
Some LSP server are very chatty, and when they send too many messages in a short burst the area taken by fidget.nvim becomes so large that it covers up some of the editing window area.
The new option (defaulted to 2) limits the number of messages shown at any given time.
Current behavior

New behavior

Fixes #122

Thank you for this PR!  I really should have merged this in sooner, but I am going to rewrite fidget.nvim from scratch. I'm going to change the base branch to legacy, where I'm keeping a snapshot of the original implementation.

Thank you!


Understand the root cause of the principal problem

When we are comparing two principals (especially using deepEqual) they always look unequal if they come from different sources. Even if they are exactly the same, it seems that there is some sort of invisible data that prohibits them from being actually compared against each other. As a result we have to be very careful that every time we are importing Principal, it is not only coming from the same version of Principal but from the same installation of Principal.
We can't use a custom equal from deepEqual to overcome this because it would need to use a compareObject function (from the create custom deep equal) and it deems them unequal before it even gets to that point.
We had to install @dfinity/agent as a dev dependency of azle instead of locally on each property test because of this problem. And when creating the Principal valueLiteral we have to explicitly import from @dfinity/principal instead of getting Principal from azle because that was also throwing it off.

I'm still not sure on the root cause, but switching to another library has solved the issue


Remove unused errorSample

AFAIS errorSample is unused, but still "sound/feedback/hit.wav" needs to be present. So removing it also removes the need for an external file.

With this change, sampleManager->defaultValue will be nullptr, which will cause GetResource to return nullptr if the resource has not been found.
Does anyone know if this is going to cause issues?

It is going to cause issues indeed. If you want to get rid of the file you should instead generate it in code, for example with a 440Hz sinusoidal wave.

Generating this sample at runtime was my first idea, so I will do that soon

Beware, that's the sound played when a sound is missing (like the "shader not found" for textures), the difference between fallback sound and fallback texture is you just have to look away to not see the fallback texture, but you can't avoid a fallback sound, especially when it is played in a loop, so the fallback sound must be hearable to detect the fault, but not too unbearable. As an example, you can delete the sound/ui/heartbeat*.ogg to hear the fallback sound looping in it's all glory. I'm not sure an infinite continuous 440hz sinusoidal wave is a good idea, it will be played infinitely if a looping ambient sound is missing for example, or some background music.

By the way I agree with the idea of generating that sample at runtime.

A sine wave is that's unpleasant, anyway do we really need that? How about generating a silent sample and print an error on the console?

That sounds better to me.

I can record myself saying "error" and make that a required asset.

what's the status on this?

See #165 for an alternate implementation.

The alternate implementation does not remove the need for an external file, but the best way to remove the need for an external file is to embed it in engine like glsl files are. But before doing that we had to make sure the builtin sound file is not unvanquished specific, hence the switch to the null sound path instead of sound/feedback/hit.
So we can close this PR. The PR to fullfill the need would not have to be a PR about sound file, but a PR about embedding null.wav and other files like the lights/mkintsquarelight1a.png/lights/mkintsquarelight1b.png and others from unvanquished_src.dpkdir.


No italic

Hi
Rose Pine theme:

Another theme:

I don't like italic text because it's hard for me to read it. It will be awesome to be able to change it like this:

Thanks

We do have a section in the readme for disabling italics, although not the cleanest solution. Happy to accept a PR that adds non-italic variants. Our build tool, pinecone, actually makes this pretty simple. Otherwise I can probably get to it in the next few days :)

Update: I didn't submit a PR because I realized I don't know anything about writing a vscode extension.

No worries, maybe @fvrests can generate non italic variants if they have time/agree with adding these :)


SLP address

Hello,
Does this library also support validation of SLP addresses?

Maybe you could use some of the parts of a fork of this repository: https://github.com/simpleledger/bchaddrjs?

this library is in maintenance mode, only bug fixes and security upgrades will be added going forward

this library is in maintenance mode, only bug fixes and security upgrades will be added going forward


Compile assets in nightly tests

Part of #22
Also standardises on Node 20 (LTS) everywhere

Should we update the devcontainer.json to match the node version too?

oh, I missed that one. will do

@tomusher done. and rebased to keep the commits clean

Perfect thanks @zerolab !


[Minor] Line height option

Minor thing but I'd much more prefer the older line height as it showed more info for the same space:

Maybe we can get a config file we can edit to customize it?
Also, I love this tool! Do you have any donation options, would love to send a couple of beers your way.

Minor thing but I'd much more prefer the older line height as it showed more info for the same space:
Maybe we can get a config file we can edit to customize it?

No need for a config file, this change was unintentional. Did not notice it, was too focused on implementing a feature.
Will fix it in a moment

Also, I love this tool!

Love to hear it!

Do you have any donation options, would love to send a couple of beers your way.

I love beer! You could send me a fraction of a chia coin: xch1sxgmrrmq95klztd5796ysz8c6jattd6k70z4gxuet5a9792s24hqf4jdtn
Alternativly there is always paypal<EMAIL_ADDRESS>

Latest release should fix that

That was fast! Cheers!

That was fast! Cheers!

That was fast! Cheers!

Cheers and thx a lot


yolov11n_- visdrone.pt

Hi Pandian,
Thank you for your question! Regarding compatibility with DeepStream 7.0, the YOLOv11 model you've mentioned would need to be converted into the TensorRT format for full compatibility. DeepStream 7.0 works best with models in TensorRT (.engine) format, which is optimized for NVIDIA GPUs.
Conversion Process:
Export the YOLOv11 model to ONNX: You can start by exporting the PyTorch .pt model to ONNX format using:
import torch
model = torch.load('yolov11.pt')
torch.onnx.export(model, dummy_input, "yolov11.onnx", verbose=True)
Convert ONNX to TensorRT: After obtaining the ONNX model, you can convert it to TensorRT using NVIDIA's TensorRT toolkit. This will allow the model to be optimized for inference in DeepStream.
Example conversion using trtexec:
trtexec --onnx=yolov11.onnx --saveEngine=yolov11.engine
DeepStream Configuration: Once the model is in TensorRT format, you can use it in DeepStream by adjusting input sizes and other configurations to match the specific needs of your application.
I hope this helps! If you need further assistance with the conversion or DeepStream setup, feel free to reach out.
Best regards,
Samruddhi

Thank you so much for your response! I'll test it on my Jetson AGX Orin
Nano, and I'll let you know if it works.
On Sat, Nov 9, 2024 at 10:34 PM Samruddhi Bande @.***>
wrote:

Hi Pandian,
Thank you for your question! Regarding compatibility with DeepStream 7.0,
the YOLOv11 model you've mentioned would need to be converted into the
TensorRT format for full compatibility. DeepStream 7.0 works best with
models in TensorRT (.engine) format, which is optimized for NVIDIA GPUs.
Conversion Process:
Export the YOLOv11 model to ONNX: You can start by exporting the PyTorch
.pt model to ONNX format using:
import torch
model = torch.load('yolov11.pt')
torch.onnx.export(model, dummy_input, "yolov11.onnx", verbose=True)
Convert ONNX to TensorRT: After obtaining the ONNX model, you can convert
it to TensorRT using NVIDIA's TensorRT toolkit. This will allow the model
to be optimized for inference in DeepStream.
Example conversion using trtexec:
trtexec --onnx=yolov11.onnx --saveEngine=yolov11.engine
DeepStream Configuration: Once the model is in TensorRT format, you can
use it in DeepStream by adjusting input sizes and other configurations to
match the specific needs of your application.
I hope this helps! If you need further assistance with the conversion or
DeepStream setup, feel free to reach out.
Best regards,
Samruddhi
—
Reply to this email directly, view it on GitHub
https://github.com/SamruddhiBande/Parking_Management_System/issues/2#issuecomment-2466299700,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AXSSZ4PCU7BZ5GM7VIPXI6DZ7Y6B5AVCNFSM6AAAAABRG5VRF2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINRWGI4TSNZQGA
.
You are receiving this because you modified the open/close state.Message
ID: @.***
com>

Yes that'd be great!


Add selectNextOccurrence command

Hey there. First of all, congratulations for this awesome library. 👏😊
I was learning about the new version and I noticed that it doesn't have a selectNextOccurrence command, so I implemented it. It tries to mimic the Ctrl-D command from VS Code and Sublime.
This is my first contribution here. Any comments and suggestions will be appreciated :)

Thanks for the contribution. I think this would fit better in the @codemirror/search package though—commands does not currently depend on search, and there it could reuse the wordAt helper in src/selection-match.ts to cut out some of the verbosity. Would you mind creating a PR against that repository instead?

Created new PR here: https://github.com/codemirror/search/pull/1


use pmap to normalize reward model

Hey!
As discussed in our previous PR, we can use pmap to accelerate the reward model normalization step. This PR does that.
Fig below shows that the run time comparison between the pmapped version (cyan) and the previous version (grey). Both versions use normalize_before and normalize_after. The normalization step of the pmapped version is faster.

Test results are almost identical:

Additionally, I noted that in our previous pytorch and jax versions, we have an argument args.normalize_samples not used. We instead used args.local_normalize_samples to effectively mean args.normalize_samples. In this PR, I replaced all args.local_normalize_samples by args.normalize_samples. But feel free to suggest edits if args.local_normalize_samples is still needed.

Nice PR! Please keep the normalize_samples. We should calculate it as normalize_samples =  int(args.local_normalize_samples * len(local_devices) * args.world_size)

keep the normalize_samples. We should calculate it as normalize_samples =  int(args.local_normalize_samples * len(local_devices) * args.world_size)

I see! Done.

Per OAI's setting, I think local_rollout_batch_size = 512. I also added the calculation.

Added two quick fixes. @liutianlin0121 let me know if they look good to you. If so feel free to merge.


Update form styling

Update font
Update alignment
Update colors

@rachita19082 - I have created a new issue for "updating style" - please use and update this one.

Since this is now a duplicate issue, I will go ahead and close it. Also, tagging this as invalid.


So how can this be used? This help borders on useless.

So how can this be used? This help borders on useless.

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

ID: 6bba293e-da7c-fe18-5f6b-5c6f912ceae0
Version Independent ID: 330b7b7a-0462-9f0d-162b-a3c59d0d83ac
Content: BindingExtension.StringFormat Property (Xamarin.Forms.Xaml)
Content Source: docs/Xamarin.Forms.Xaml/BindingExtension.xml
Product: xamarin
Technology: xamarin-forms
GitHub Login: @dotnet-bot
Microsoft Alias: dotnetcontent

This API is marked as "For Internal Use", the lack of doc is OK


fix: remove inputs resolver that relies on chain history provider

Checklist

[ ] JIRA - <link>
[ ] Proper tests implemented
[ ] Screenshots added.

Proposed solution
Use custom input resolver to avoid additional calls to chain-history.
Testing
Describe here, how the new implementation can be tested.
Provide link or briefly describe User Acceptance Criteria/Tests that need to be met
Screenshots
Attach screenshots here if implementation involves some UI changes

Allure Report
allure-report-publisher generated test report!

processReports: ✅ test report for fb73f77e

passed
failed
skipped
flaky
total
result

Total
32
0
4
0
36
✅


Fix/gateio and kuocin perpetual incorrect orderbook amount

Before submitting this PR, please make sure:

[x] Your code builds clean without any errors or warnings
[x] You are using approved title ("feat/", "fix/", "docs/", "refactor/")

A description of the changes proposed in the pull request:

The current gateioperpetual & kucoinperpetual's orderbook volume is wrong and 100 times ( contract size) larger than the actual number.
Change the contract size of the existing orderbook to the amount.
Tests performed by the developer:
unittest
Tips for QA testing:
Compare the orderbook of gateioperpetual & kucoinperpetual for the web page with the orderbook for hummingbot

PR update

Test on AWS and local WSL
Test latest commit 1bdd3fb28c497839ea90603007bc7ba54a1b1476

Behavior of gateio and kucoin perpetual still the same returning the same format as the reported screenshot
It seems on the exchange it displays 9.30K which the same as 9300 on the client

Could you please let us know what expected behavior should we see? Thank you 🙇🏼

For BTC_USDT and ETH_USDT, you can see in the orderbook that the volume is different. @rapcmia


use '--inspect-brk' instead of '--debug-brk' when connecting to node v8

https://github.com/Microsoft/vscode/issues/27597 for now.
This combination of args is the only way to enter debug mode across all node versions. At some point I'll switch to inspect-brk if we don't want to support node 6.x anymore, or will do version detection for it and do something for runtimeExecutable scenarios.

#28070

All I have to do is copy the version detection code from node-debug, and use the old flags when runtimeExecutable is set. I just don't want to change it this late in the month.
There are now far more people using node2 with node 8 than node 6, this needs to be fixed...

In the latest the node-debug extension passes the version string (e.g. "v7.9.0") as a property __nodeVersion to the DAs whenever it had probed by running node --version.

Thanks! However I realized that I still need to test even when node-debug doesn't do version detection, like when "protocol": "inspector" is set.

Still having the warning as of Node 8.7.0 and VS Code 1.17.1:

Debugger listening on ws://<IP_ADDRESS>:23988/5b5294e3-fe2b-4f1c-9045-1998fd739672
For help see https://nodejs.org/en/docs/inspector
Debugger attached.
(node:6044) [DEP0062] DeprecationWarning: `node --inspect --debug-brk` is deprecated. Please use `node --inspect-brk` instead.

works for me with latest node and latest visual studio, running debug mode via npm. I use nodemon to track file changes.
In package.json:
scripts:{
"debug": "DEBUG=pd* nodemon --inspect-brk --harmony --nolazy server.js -e js,mustache,json,yaml"
}

I run debug script via terminal, always running in background and restarting automatically on file changes. Make sure you use --inspect-brk.
Then default debug launch configuration for node from latest VS Code:
{  "type": "node",
    "request": "attach",
    "name": "Attach",
    "port": 9229
}


Problems with running ./train/run.py and Concerns with dependency versions

Describe the bug
I am trying to run the ./train/run.py.
I have several issues:

I had to update the

trainer = Trainer(
    max_epochs=1000,
    logger=wandb_logger,
    callbacks=[model_checkpoint],
    gpus=6,
    precision=32,
    # accelerator="tpu", devices=8
)

To
trainer = Trainer(
    max_epochs=1000,
    logger=wandb_logger,
    callbacks=[model_checkpoint],
    precision=32,
    devices=6,
    accelerator="gpu",
)

Due to having the newer version of Pytorch than it is originally was developed on.

I keep encountering this issue, which I feel like comes from miss match from the versions of the dependencies on which the DGMR was developed:
I can assume that there's an issue with transferring a batch to the GPU device (I am not sure). Let me know if you have any suggestions on how I can verify it.

(venv) ➜  skillful_nowcasting git:(main) ✗ python3 run.py
wandb: Currently logged in as: rutkovskii (nowcasting-research). Use `wandb login --relogin` to force relogin
wandb: wandb version 0.15.12 is available!  To upgrade, please run:
wandb:  $ pip install wandb --upgrade
wandb: Tracking run with wandb version 0.15.11
wandb: Run data is saved locally in /home/arutkovskii_umass_edu/skillful_nowcasting/wandb/run-20231008_213620-edi3updl
wandb: Run `wandb offline` to turn off syncing.
wandb: Syncing run glowing-salad-28
wandb: ⭐ View project at https://wandb.ai/nowcasting-research/dgmr
wandb: 🚀 View run at https://wandb.ai/nowcasting-research/dgmr/runs/edi3updl
/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/loggers/wandb.py:398: UserWarning: There is a wandb run already in progress and newly created instances of `WandbLogger` will reuse this run. If this is not desired, call `wandb.finish()` before instantiating `WandbLogger`.
  rank_zero_warn(
GPU available: True (cuda), used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
HPU available: False, using: 0 HPUs
/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/callbacks/model_checkpoint.py:617: UserWarning: Checkpoint directory /home/arutkovskii_umass_edu/skillful_nowcasting exists and is not empty.
  rank_zero_warn(f"Checkpoint directory {dirpath} exists and is not empty.")
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0,1,2]

  | Name               | Type                     | Params
----------------------------------------------------------------
0 | discriminator_loss | NowcastingLoss           | 0
1 | grid_regularizer   | GridCellLoss             | 0
2 | conditioning_stack | ContextConditioningStack | 4.2 M
3 | latent_stack       | LatentConditioningStack  | 7.2 M
4 | sampler            | Sampler                  | 42.1 M
5 | generator          | Generator                | 53.6 M
6 | discriminator      | Discriminator            | 44.7 M
----------------------------------------------------------------
98.3 M    Trainable params
0         Non-trainable params
98.3 M    Total params
393.086   Total estimated model params size (MB)
SLURM auto-requeueing enabled. Setting signal handlers.
Sanity Checking: 0it [00:00, ?it/s]2023-10-08 21:36:26.395303: I tensorflow/tsl/cuda/cudart_stub.cc:28] Could not find cuda drivers on your machine, GPU will not be used.
2023-10-08 21:36:28.016597: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 AVX512F FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
2023-10-08 21:36:32.347232: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT
Repo card metadata block was not found. Setting CardData to empty.
Too many dataloader workers: 6 (max is dataset.n_shards=1). Stopping 5 dataloader workers.
2023-10-08 21:36:39.281432: W tensorflow/tsl/platform/cloud/google_auth_provider.cc:184] All attempts to get a Google authentication bearer token failed, returning an empty token. Retrieving token from files failed with "NOT_FOUND: Could not locate the credentials file.". Retrieving token from GCE failed with "FAILED_PRECONDITION: Error executing an HTTP request: libcurl code 6 meaning 'Couldn't resolve host name', error details: Could not resolve host: metadata.google.internal".
2023-10-08 21:36:39.481086: E tensorflow/compiler/xla/stream_executor/cuda/cuda_driver.cc:268] failed call to cuInit: CUDA_ERROR_NOT_INITIALIZED: initialization error
2023-10-08 21:36:39.481129: I tensorflow/compiler/xla/stream_executor/cuda/cuda_diagnostics.cc:168] retrieving CUDA diagnostic information for host: gpu006
2023-10-08 21:36:39.481138: I tensorflow/compiler/xla/stream_executor/cuda/cuda_diagnostics.cc:175] hostname: gpu006
2023-10-08 21:36:39.481189: I tensorflow/compiler/xla/stream_executor/cuda/cuda_diagnostics.cc:199] libcuda reported version is: 525.125.6
2023-10-08 21:36:39.481214: I tensorflow/compiler/xla/stream_executor/cuda/cuda_diagnostics.cc:203] kernel reported version is: 525.125.6
2023-10-08 21:36:39.481224: I tensorflow/compiler/xla/stream_executor/cuda/cuda_diagnostics.cc:309] kernel version seems to match DSO: 525.125.6
Traceback (most recent call last):
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/trainer/call.py", line 43, in _call_and_handle_interrupt
    return trainer_fn(*args, **kwargs)
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 571, in _fit_impl
    self._run(model, ckpt_path=ckpt_path)
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 980, in _run
    results = self._run_stage()
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1021, in _run_stage
    self._run_sanity_check()
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1050, in _run_sanity_check
    val_loop.run()
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/loops/utilities.py", line 181, in _decorator
    return loop_run(self, *args, **kwargs)
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/loops/evaluation_loop.py", line 115, in run
    self._evaluation_step(batch, batch_idx, dataloader_idx)
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/loops/evaluation_loop.py", line 361, in _evaluation_step
    batch = call._call_strategy_hook(trainer, "batch_to_device", batch, dataloader_idx=dataloader_idx)
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/trainer/call.py", line 294, in _call_strategy_hook
    output = fn(*args, **kwargs)
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/strategies/strategy.py", line 270, in batch_to_device
    return model._apply_batch_transfer_handler(batch, device=device, dataloader_idx=dataloader_idx)
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/core/module.py", line 332, in _apply_batch_transfer_handler
    batch = self._call_batch_hook("transfer_batch_to_device", batch, device, dataloader_idx)
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/core/module.py", line 321, in _call_batch_hook
    return trainer_method(trainer, hook_name, *args)
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/trainer/call.py", line 146, in _call_lightning_module_hook
    output = fn(*args, **kwargs)
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/core/hooks.py", line 571, in transfer_batch_to_device
    return move_data_to_device(batch, device)
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/lightning_fabric/utilities/apply_func.py", line 101, in move_data_to_device
    return apply_to_collection(batch, dtype=_TransferableDataType, function=batch_to)
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/lightning_utilities/core/apply_func.py", line 80, in apply_to_collection
    v = apply_to_collection(
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/lightning_utilities/core/apply_func.py", line 51, in apply_to_collection
    return function(data, *args, **kwargs)
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/lightning_fabric/utilities/apply_func.py", line 95, in batch_to
    data_output = data.to(device, **kwargs)
RuntimeError: CUDA error: unspecified launch failure
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "run.py", line 239, in <module>
    trainer.fit(model, datamodule)
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 532, in fit
    call._call_and_handle_interrupt(
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/trainer/call.py", line 67, in _call_and_handle_interrupt
    trainer._teardown()
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1003, in _teardown
    self.strategy.teardown()
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/pytorch_lightning/strategies/strategy.py", line 498, in teardown
    self.lightning_module.cpu()
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/lightning_fabric/utilities/device_dtype_mixin.py", line 79, in cpu
    return super().cpu()
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/torch/nn/modules/module.py", line 967, in cpu
    return self._apply(lambda t: t.cpu())
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/torch/nn/modules/module.py", line 810, in _apply
    module._apply(fn)
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/torch/nn/modules/module.py", line 810, in _apply
    module._apply(fn)
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/torch/nn/modules/module.py", line 810, in _apply
    module._apply(fn)
  [Previous line repeated 3 more times]
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/torch/nn/modules/module.py", line 857, in _apply
    self._buffers[key] = fn(buf)
  File "/home/arutkovskii_umass_edu/skillful_nowcasting/venv/lib/python3.8/site-packages/torch/nn/modules/module.py", line 967, in <lambda>
    return self._apply(lambda t: t.cpu())
RuntimeError: CUDA error: unspecified launch failure
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

wandb: Waiting for W&B process to finish... (failed 1). Press Control-C to abort syncing.
wandb: 🚀 View run glowing-salad-28 at: https://wandb.ai/nowcasting-research/dgmr/runs/edi3updl
wandb: ⚡ View job at https://wandb.ai/nowcasting-research/dgmr/jobs/QXJ0aWZhY3RDb2xsZWN0aW9uOjEwMzkwMzkwNA==/version_details/v6
wandb: Synced 5 W&B file(s), 0 media file(s), 2 artifact file(s) and 0 other file(s)
wandb: Find logs at: ./wandb/run-20231008_213620-edi3updl/logs
(venv) ➜  skillful_nowcasting git:(main) ✗

In order to run ./train/run.py, should I move the run.py into the root of the repository?

Looks like TensorFlow is used inside of the datasets library from HuggingFace, inside of nimrod-uk-1km.py. Can you also indicate what is the functional version of TF?

If you know, please, tell me the potential source for the error in second comment and if you can, please provide the requirements.txt that includes versions of dependencies from the working code. What would be the version of CUDA?
My dependencies (based on the ones in requirements.txt):
torch==2.1.0
antialiased-cnns==0.3
pytorch-msssim==1.0.0
numpy==1.24.3
torchvision==0.16.0
pytorch-lightning==2.0.9.post0
einops==0.7.0
huggingface-hub==0.17.3
tensorflow==2.13.1

CUDA version: 12.1 of the PyTorch since PyTorch comes with Cuda and cudnn binaries.

Hi,
Sorry for the delayed response, I was on annual leave. I just pushed a minor update that should also fix some incompatibilities from using newer dependencies.
For 2. you can try running the test_train_dgmr in tests/test_model.py and set it to use GPUs, that should give a quicker and faster feedback loop on using the model. When I ran it on my CPU, there was no errors, so I think you might be right that its an issue with moving the batches to the GPU for some reason. That also gets rid of a lot of the extra code that might be masking the issue.

You should be able to run that from the folder it is in, I believe, but moving it to the root should also work.

It was tensorflow>2.0, newer ones should work though as well.

CUDA version is 11.8, the model currently doesn't run on my local machine, so I can try taking a look later on our ML machine.

@jacobbieker Thank you for your response. I progressed forward, but encountered more issues.
$ python3 tests/test_model.py
GPU available: True (cuda), used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
HPU available: False, using: 0 HPUs
Initializing distributed: GLOBAL_RANK: 0, MEMBER: 1/4

It has been stuck at this moment for over 20 min. I am trying to understand what may cause this.
Also upon running cmnd+c it appears to be frozen and not react.
I would guess maybe the system gets overloaded? But it would be great to hear your thoughts on that.
Can you also say how long did it take one your CPU to run the test_train_dgmr?

@jacobbieker Thank you for your help.
I advanced forward a bit.

Your updates did make the code runnable. I obtained server with GPU that has 40 GB VRAM and it allowed to run the test_train_dgmr.

For the train/run.py I had to do this change (changing num_workers from 6 to 0) to the trainer and validator dataloaders in order to overcome CUDA error: unspecified launch failure:
dataloader = DataLoader(TFDataset(split="train"), batch_size=1, num_workers=0)

I set batch_size=1 for both dataloaders, while trying to overcome this error, but I did not succeed:

  File "/home/arutkovskii_umass_edu/.conda/envs/dgmr-venv/lib/python3.9/site-packages/torch/nn/modules/conv.py", line 456, in _conv_forward
    return F.conv2d(input, weight, bias, self.stride,
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 20.00 MiB. GPU 0 has a total capacty of 39.39 GiB of which 12.06 MiB is free. Including non-PyTorch memory, this process has 39.38 GiB memory in use. Of the allocated memory 1.73 GiB is allocated by PyTorch, and 113.93 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

I think I might get it solved by getting server with larger VRAM (80GB instead of 40GB). Coming from that, I have 2 questions:

What size of GPU memory do you recommend?
Anything else that comes to mind seeing these issues?

Thanks!

Does anybody have answers to these questions? Thank you in advance!

How large are the GPU(s) on the machine on which the training of DGMR was done?
2.. Has anyone got the training working on multiple GPUs?

Does anybody have answers to these questions? Thank you in advance!

How large are the GPU(s) on the machine on which the training of DGMR was done?
Has anyone got the training working on multiple GPUs?

Please update me if you have managed to solve this issue. I am also encountering the same issue.

Hi, we used an A6000 to do the intial training of DGMR, which has 48GB of GPU memory. We haven't tried it with multiple GPUs yet, last time I did, the spectral norm didn't work on multiple GPUs, but that might have been fixed now.

Hi, the 48GB was enough for a few steps, not sure if all 6 though, its been awhile unfortunately. There were a few issues, originally it was because of nan values (see https://github.com/openclimatefix/skillful_nowcasting/issues/10), but then there were issues when trying multi-gpu with the spectral norm with errors about modifying in-place (see: https://github.com/openclimatefix/skillful_nowcasting/issues/47, although I noticed you commented there too!) I might be able to try training it again in a couple weeks and digging into it more, but unfortunately don't have much time soon for that.

Thank you for the information.
I soon will try to train on multiple gpus
Leaving solution and explanation for nan for people in case they encounter the same problem:
I resolved the nan issue on my side. Indeed, the code of DGMR was good and the problem was with my data.
Specifically, I am using from netCDF4 import Dataset which by default creates numpy arrays that are masked. Doing calculations on the masked array produces nan.
My solution (using set_auto_mask=False did not work):
from netCDF4 import Dataset
import numpy as np

    def _load_frame(self, file_path):
        with Dataset(file_path, "r") as data:
            return np.ma.filled(data.variables["rainfall"][:], 0)

More about that issue in 5b here:
https://towardsdatascience.com/debugging-a-machine-learning-model-written-in-tensorflow-and-keras-f514008ce736

@jacobbieker
Hi Jacob,
I continued working with your implementation of DGMR and can train it with our data, full configuration (6 generation steps, batch size 16, precision 32) on NVidia A100-80GB whether it is 1 GPU or 8 GPUs running via DDP.
I created a pull request with few additions to help other users get started with limited resources. Pl
Please take a look.
https://github.com/openclimatefix/skillful_nowcasting/pull/77


Joining multiple arrays

Hello thank you for such awesome script!
I want to join 4 arrays. But honestly I coudn't undersand the documentation.
Right now I have an sql query:
$ZoneID = '1';
$TillageID = '2';
$rs = mySQLquery("SELECT
        CR.CropID AS CropID,
        CP.OperID AS OperID,
        CP.ParentOperID AS ParentOperID,
        A.ActionID AS ActionID,
        A.WorkloadUnit AS WorkloadUnit,
        A.WorkpayUnit AS WorkpayUnit,
        AT.ActionTypeID AS ActionTypeID,
        A.Labor_prod AS LaborProd,
        A.Labor_rate AS LaborRate,
        A.Mech_rate AS ServiceRate,
        AT.Category AS WorkCategory,
        CP.Feature AS Feature,
        CP.StartYear AS StartYear,
        CP.StartMonth AS StartMonth,
        CP.StartDay AS StartDay,
        CP.EndYear AS EndYear,
        CP.EndMonth AS EndMonth,
        CP.EndDay AS EndDay
        FROM
        ((mlp_cropplan CP
        INNER JOIN mlp_crops CR ON CP.CropID = CR.CropID)
        INNER JOIN mlp_actions A ON CP.ActionID = A.ActionID)
        INNER JOIN mlp_actiontypes AT ON A.ActionTypeID = AT.ActionTypeID
        WHERE (CP.TillageID = 0 OR CP.TillageID = " . $TillageID . ")
        AND (CP.ZoneID = 0 OR CP.ZoneID = " . $ZoneID . ")
        ORDER BY CR.CropID ASC, CP.OperID ASC");

But I want to use yalinqo instead of mysql. I dumped all the date from these table and made php arrays. Here is the code:
$rs2 = from( $mlp_cropplan )
        ->where(function( $mlp_cropplan ) {
            global $TillageID, $ZoneID;
            return ( ( $mlp_cropplan['TillageID'] == 0 || $mlp_cropplan['TillageID'] == $TillageID ) && ( $mlp_cropplan['ZoneID'] == 0 || $mlp_cropplan['ZoneID'] == $ZoneID ) );
        } )
        ->orderBy( function( $mlp_cropplan ) { return $mlp_cropplan['CropID']; } )
        ->thenBy( function( $mlp_cropplan ) { return $mlp_cropplan['CropID']; } )
        ->join( from( $mlp_crops ),
            function( $mlp_cropplan ) { return $mlp_cropplan['CropID']; },
            function( $mlp_crops ) { return $mlp_crops['CropID']; },
            function( $mlp_cropplan, $mlp_crops ) {
                return array(
                    'CropID' => $mlp_cropplan['CropID'],
                    'OperID' => $mlp_cropplan['OperID'],
                    'ParentOperID' => $mlp_cropplan['ParentOperID'],
                    'Feature' => $mlp_cropplan['Feature'],
                    'StartYear' => $mlp_cropplan['StartYear'],
                    'StartMonth' => $mlp_cropplan['StartMonth'],
                    'StartDay' => $mlp_cropplan['StartDay'],
                    'EndYear' => $mlp_cropplan['EndYear'],
                    'EndMonth' => $mlp_cropplan['EndMonth'],
                    'EndDay' => $mlp_cropplan['EndDay'],
                    'ActionID' => $mlp_cropplan['ActionID'],
                );
            } )
        ->join( from( $mlp_actions ),
            function( $mlp_cropplan ) { return $mlp_cropplan['ActionID']; },
            function( $mlp_actions ) { return $mlp_actions['ActionID']; },
            function( $mlp_cropplan, $mlp_actions ) {
                return array(
                    'CropID' => $mlp_cropplan['CropID'],
                    'OperID' => $mlp_cropplan['OperID'],
                    'ParentOperID' => $mlp_cropplan['ParentOperID'],
                    'ActionID' => $mlp_cropplan['ActionID'],
                    'WorkloadUnit' => $mlp_actions['WorkloadUnit'],
                    'WorkpayUnit' => $mlp_actions['WorkpayUnit'],
                    'LaborProd' => $mlp_actions['Labor_prod'],
                    'LaborRate' => $mlp_actions['Labor_rate'],
                    'ServiceRate' => $mlp_actions['Mech_rate'],
                    'Feature' => $mlp_cropplan['Feature'],
                    'StartYear' => $mlp_cropplan['StartYear'],
                    'StartMonth' => $mlp_cropplan['StartMonth'],
                    'StartDay' => $mlp_cropplan['StartDay'],
                    'EndYear' => $mlp_cropplan['EndYear'],
                    'EndMonth' => $mlp_cropplan['EndMonth'],
                    'EndDay' => $mlp_cropplan['EndDay'],
                    'ActionTypeID' => $mlp_actions['ActionTypeID'],
                );
            } )
        ->join( from( $mlp_actiontypes ),
            function( $mlp_cropplan ) { return $mlp_cropplan['ActionTypeID']; },
            function( $mlp_actiontypes ) { return $mlp_actiontypes['ActionTypeID']; },
            function( $mlp_cropplan, $mlp_actiontypes ) {
                return array(
                    'CropID' => $mlp_cropplan['CropID'],
                    'OperID' => $mlp_cropplan['OperID'],
                    'ParentOperID' => $mlp_cropplan['ParentOperID'],
                    'ActionID' => $mlp_cropplan['ActionID'],
                    'WorkloadUnit' => $mlp_cropplan['WorkloadUnit'],
                    'WorkpayUnit' => $mlp_cropplan['WorkpayUnit'],
                    'ActionTypeID' => $mlp_actiontypes['ActionTypeID'],
                    'LaborProd' => $mlp_cropplan['Labor_prod'],
                    'LaborRate' => $mlp_cropplan['Labor_rate'],
                    'ServiceRate' => $mlp_cropplan['Mech_rate'],
                    'WorkCategory' => $mlp_actiontypes['Category'],
                    'Feature' => $mlp_cropplan['Feature'],
                    'StartYear' => $mlp_cropplan['StartYear'],
                    'StartMonth' => $mlp_cropplan['StartMonth'],
                    'StartDay' => $mlp_cropplan['StartDay'],
                    'EndYear' => $mlp_cropplan['EndYear'],
                    'EndMonth' => $mlp_cropplan['EndMonth'],
                    'EndDay' => $mlp_cropplan['EndDay'],
                );
            } );

The code is working, bu after second join the data of the first join is disappearing, please help me :-(

If amount of data you're working with isn't small, I'd advise to use RDBMS like MySQL. YaLinqo is supposed to be used when a database isn't avalaible or adequate, not to replace databases. You'll just lose performance, write more code and gain nothing in return.
The problem with joining is that functional syntax of LINQ supports joining only two arrays. In order to join more arrays, you'll need to create temporary arrays or objects between joins which is quite verbose and, well, annoying. In .NET, query syntax can be used, which performs all these transformations for you, but it isn't available in PHP.
You also don't need to wrap arrays in "from" if you don't perform any operations on them, YaLinqo accepts arrays as arguments in all methods.

If you don't understand how some method works, you can just look at the code, in most cases it's pretty simple. Let's look at join (it's actually one of the most complex methods). Without boilerplate, its code looks like this:
$lookup = $inner->toLookup($innerKeySelector);
foreach ($this as $ok => $ov) {
    $key = $outerKeySelector($ov, $ok);
    if (isset($lookup[$key]))
        foreach ($lookup[$key] as $iv)
            yield $resultSelectorKey($ov, $iv, $key) => $resultSelectorValue($ov, $iv, $key);
}

So, it creates a lookup (array matching keys to many values), then iterates over outer sequence matching keys.
One bonus of PHP is that merging arrays is simple. So, if you have two arrays with indexes which are either unique or equal, you can use array_merge to join the results. If some keys are common, one more array can be added as an argument to "override" collapsed keys. So the general pattern is this:
$join = from($as)
    ->join($bs,
        '$v["keya"]', '$v["keya"]',
        function ($a, $b) { return array_merge($a, $b); })
    ->join($cs,
        '$v["keyb"]', '$v["keyb"]',
        function ($ab, $c) { return array_merge($ab, $c); })
    ->join($ds,
        '$v["keyc"]', '$v["keyc"]',
        function ($abc, $d) { return array_merge($abc, $d, [
            'v1' => $abc['v1'],
            'v2' => $d['v2'],
        ]); });

One more reason of losing values is calling toArray instead of toList, as multiple join method calls can result in equal keys.
P. S. Not sure whether this is what you're doing — there's too much code. I hope my advice can simplify your code considerably.

Thank you @Athari . The response was quite fast!
I have a loop that cycles about 1000 times. And each time it makes request to database. I was trying to optimze it. I think I went by wrong way :-(

Thank you @Athari . The response was quite fast!
I separated joines, and changed toArray to toList, now everything is ok!
Thank you!

@anvarulugov Getting rid of RDBMS may result in performance improvements if you're working with a high-performance language like C++ and you know how to perform your queries optimally on a low level. Reimplementing RDBMS in PHP will never make your program faster, and even if it does, there's likely something which can be done on RDBMS level which can do much better, like adding indexes and giving hints to optimizer.
In your case, the obvious solution is to not perform the same query 1000 times. If all you're chaning is two arguments in WHERE statement, just query all data you need with one query, then perform filtering in your program. This is where YaLinqo can actually be useful.
Unless you have enormous volume of data, one query with filtering on app level will be faster than thousand queries — you'll lose more time on inter-process communication than on actual queries.

Yes, you are right, that's why I got all the data in to arrays, from 4 tables into 4 arrays, and used YaLinqo. @Athari,  you are genius. I replaced my code with yours now the code looks like this:
$rs = from( $mlp_cropplan )
        ->where(function( $mlp_cropplan ) {
            global $TillageID, $ZoneID;
            return ( ( $mlp_cropplan['TillageID'] == 0 || $mlp_cropplan['TillageID'] == $TillageID ) && ( $mlp_cropplan['ZoneID'] == 0 || $mlp_cropplan['ZoneID'] == $ZoneID ) );
        } )
        ->orderBy( function( $mlp_cropplan ) { return $mlp_cropplan['CropID']; } )
        ->thenBy( function( $mlp_cropplan ) { return $mlp_cropplan['CropID']; } )
        ->join( $mlp_actions,
            '$v["ActionID"]', '$v["ActionID"]',
            function ($a, $b) { return array_merge($a, $b); })
        ->join( $mlp_actiontypes,
            '$v["ActionTypeID"]', '$v["ActionTypeID"]',
            function ($a, $b) { return array(
                'CropID' => $a['CropID'],
                'OperID' => $a['OperID'],
                'ParentOperID' => $a['ParentOperID'],
                'ActionID' => $a['ActionID'],
                'WorkloadUnit' => $a['WorkloadUnit'],
                'WorkpayUnit' => $a['WorkpayUnit'],
                'ActionTypeID' => $b['ActionTypeID'],
                'LaborProd' => $a['Labor_prod'],
                'LaborRate' => $a['Labor_rate'],
                'ServiceRate' => $a['Mech_rate'],
                'WorkCategory' => $b['Category'],
                'Feature' => $a['Feature'],
                'StartYear' => $a['StartYear'],
                'StartMonth' => $a['StartMonth'],
                'StartDay' => $a['StartDay'],
                'EndYear' => $a['EndYear'],
                'EndMonth' => $a['EndMonth'],
                'EndDay' => $a['EndDay'],
            ); });

$mlp_cropplan = $rs2->toList();
print_r($mlp_cropplan);


Roll engine 8b1a299ed52d..4b01d795feec (23 commits)

https://github.com/flutter/engine/compare/8b1a299ed52d...4b01d795feec
git log 8b1a299ed52d4ef9521ccd65c6c52d563129d8af..4b01d795feec3ba8231a397a4ec2759954d8216e --no-merges --oneline
4b01d795f Add frame and target time metadata to vsync events and connect platform vsync events using flows. (flutter/engine#8172)
f7a092262 [fuchsia] Remove deprecated libraries from snapshot (flutter/engine#8085)
09db84fad Android Embedding PR 19: Add accessibility to new FlutterView. (flutter/engine#8109)
246f0e3f4 Add an allocator specific check to ensure that strings passed to the timeline are not heap allocated. (flutter/engine#8168)
7a6bb9998 Roll src/third_party/skia feb720f746dc..512e38091c85 (11 commits) (flutter/engine#8169)
5825bdac9 Roll src/third_party/dart 7d560f8385..7418238239 (61 commits)
66fdeb163 Add dump-shader-skp switch to help ShaderWarmUp (flutter/engine#8148)
403337ebb Do not pass short-lived buffers as labels to Dart_TimelineEvent (flutter/engine#8166)
e514f0bd1 Ensure that typed data is released within SendPlatformMessage scope. (flutter/engine#8155)
f2b42d6c5 Roll src/third_party/skia f699bf0437db..feb720f746dc (15 commits) (flutter/engine#8165)
fbca3d34e Roll src/third_party/skia 5412618d503c..f699bf0437db (2 commits) (flutter/engine#8164)
23cff1a1c Roll src/third_party/skia 8b9b8f8c5846..5412618d503c (1 commits) (flutter/engine#8163)
bbd58fab5 Roll src/third_party/skia 1386b2d5579d..8b9b8f8c5846 (3 commits) (flutter/engine#8162)
cdf55a8d7 Roll src/third_party/skia 29d5dec9a078..1386b2d5579d (123 commits) (flutter/engine#8161)
cae083657 Roll src/third_party/dart 1bd36d694d..7d560f8385 (27 commits)
fcc66fc23 Suppress deprecation warning for use of Build.CPU_ABI (flutter/engine#8154)
fdad56f5f Anti-Aliasing for shape layers (flutter/engine#8157)
906d684a7 Reland ""Add support for trace counters with variable arguments and instrument the raster cache." (flutter/engine#8145)
3c9381783 Add “full-dart-debug” that disabled optimizations in the Dart VM. (flutter/engine#8147)
b1b388f1c Encode scroll motion events in the Android touch processor (flutter/engine#8149)
2daebebf4 Fix text.dart height docs (flutter/engine#8079)
2e427030f Revert "Disable build_ios task due to lack of credits. (#8150)" (flutter/engine#8153)
8be2aca56 Roll src/third_party/dart 1bd36d694d..674fd0e060 (48 commits) #8152
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff (jsimmons@google.com), and stop
the roller if necessary.

Trybots failed. These were the failed builds: https://cirrus-ci.com/task/6023407530409984 , https://cirrus-ci.com/task/6304882507120640


Fire event on CertificateRequest when it has not been Approved yet.

When the default approver is disabled and an approver is not currently running, it can be not clear to uses why a request is not progressing. This can be frustrating for users are can seem like things are not working correctly.
PR updates the internal signers to fire an event on CertificateRequests which are not yet approved so is clear why the request is not progressing.
/milestone v1.11
/kind feature
/assign @irbekrm
Signers fire an event on CertificateRequests which have not been approved yet. Used for informational purposes so users understand why a request is not progressing.

Internet flake
/retest

/test pull-cert-manager-master-e2e-v1-25


Fixing variable name

We used "deployments" in the choices and need to set the variable name to the same.

Actually lets flip the name from deployments to promotions

thank you @bmitchboxboat! good find

Closing in favor of #22


docker.run container output

Hi,
I'm using your example from the docs, but can't seem to work out how to get the actual uname -a output from the container. I can get the content from data but this does not include the output. However, the output does right to my console's stdout but it's not readable from any of the variables.
Can you please explain what I'm missing.
//promise
docker.run('ubuntu', ['bash', '-c', 'uname -a'], process.stdout).then(function(data) {
  event.sender.send('asynchronous-reply', data)
  var output = data[0];
  var container = data[1];
  console.log(output.StatusCode);
  return container.remove();
}).then(function(data) {
  console.log('container removed');
}).catch(function(err) {
  console.log(err);
});

I can confirm that this seems to be broken.

You could pipe out the data to a new stream:
const stream = require('stream');
const finalStream = require('final-stream');
const stdout = new stream.PassThrough();

const container = await docker.run('ubuntu', ['bash', '-c', 'uname -a'], stdout);
const data = await finalStream(stdout).then(buffer => buffer.toString());

console.log(data);


document & improve build procedure for online presence

we build&deploy the website by triggering pkgdown via travis on a push to master.
this does not guarantee that the links in "Content" point to the most recent/corrected versions of the slides or exercises.
can/should we do this as well?

thought:
if we package this as an "R package", maybe the different slide sets and exercise sheets should be rendered as/treated as  vignettes as well -- then the pkgdown site would automatically point to their latest versions? not sure how much cross-referencing of vignetttes pkgdown supports?

this
https://slu-soc5650.github.io/
seem worthy of emulation --
they use R markdown, embed videos, etc all in bookdown, with rendering/publishing via travis , IIUC
the course itself has one repo per lecture, not sure how/why that works yet...

remaining open points from here:
https://github.com/compstat-lmu/lecture_i2ml/issues/385#issuecomment-553458162

closed in ee8d5f3. remaining open points are website-related, so moved to #385.

https://www.shinyproxy.io/
this seems to offer shiny hosting from your own network, so we could host the interactive parts from a docker container running on LRZ infrastructure?

Cool other projects:

https://datasciencebox.org/
https://codefreezr.github.io/awesome-LearnRwithR/


JSONEditor "root": null error for one of two similar objects

Hi, thanks for making this great component.
i'm trying to build a json editor for editing the layout of a grid component. I keep the json in a 'gridLayout' object where one of the keys is called 'panels'. Elsewhere in my code i have a function that filters some of the keys in panels.byID so i can dynamically generate a 'gridjson_' object & use that with JSONEditor
my base json -
panels: {
    byID: {
      static1: {
        id: 'static1',
        key: 'static1',
        x: 1,
        y: 1,
        w: 1600,
        h: 80,
        static: false,
        isDraggable: true,
        isResizable: true
      },
      limits: {
        id: 'limits',
        key: 'limits',
        x: 1,
        y: 1,
        w: 1600,
        h: 80,
        static: false,
        isDraggable: true,
        isResizable: true
      }
    },
    allIds: ['static1', 'limits']
  }

for the purpose of this issue, i generated a gridjson_ that was exactly similar to gridLayouts.panels.byID

I can render gridLayouts_.panels.byID all right
<JSONEditor
          data={gridLayouts_.panels.byID}
          collapsible={true}
          onChange={this.onJsonChange}
          view="dual"
        />

but i just can't seem to render gridjson_
<JSONEditor
          data={gridjson_}
          collapsible={true}
          onChange={this.onJsonChange}
          // onChange={saveLayout}
          view="dual"
          // collapsedNodes={gridLayouts.grids}
        />

What am i doing wrong?
full code
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { JSONEditor } from 'react-json-editor-viewer';
import { Button, Dropdown } from 'semantic-ui-react';

const gridLayouts = {
  grids: {
    byID: {
      dashboardGrid: {
        id: 'dashboardGrid',
        className: 'dashboardGrid',
        rowHeight: 1,
        breakpoints: { lg: 2560, md: 1920, sm: 1600, xs: 1366, xxs: 1280 },
        cols: { lg: 2560, md: 1920, sm: 1600, xs: 1366, xxs: 1280 },
        verticalCompact: 'null',
        preventCollision: false,
        panels: ['static1', 'limits']
      },
      workspaceGrid: {
        id: 'workspaceGrid',
        className: 'workspaceGrid',
        rowHeight: 1,
        breakpoints: { lg: 2560, md: 1920, sm: 1600, xs: 1366, xxs: 1280 },
        cols: { lg: 2560, md: 1920, sm: 1600, xs: 1366, xxs: 1280 },
        verticalCompact: 'null',
        preventCollision: false,
        panels: ['static1']
      }
    },
    allIds: ['dashboardGrid', 'workspaceGrid']
  },
  panels: {
    byID: {
      static1: {
        id: 'static1',
        key: 'static1',
        x: 1,
        y: 1,
        w: 1600,
        h: 80,
        static: false,
        isDraggable: true,
        isResizable: true
      },
      limits: {
        id: 'limits',
        key: 'limits',
        x: 1,
        y: 1,
        w: 1600,
        h: 80,
        static: false,
        isDraggable: true,
        isResizable: true
      }
    },
    allIds: ['static1', 'limits']
  },
  panelGridsJoin: {
    byID: {
      1: {
        id: 1,
        gridId: 'dashboardGrid',
        gridItemID: 'static1'
      },
      2: {
        id: 2,
        gridId: 'dashboardGrid',
        gridItemID: 'limits'
      },
      3: {
        id: 3,
        gridId: 'workspaceGrid',
        gridItemID: ''
      }
    }
  }
};

class LayoutEditor extends Component {
  static propTypes = {
    saveLayout: PropTypes.func.isRequired,
    gridLayouts: PropTypes.object.isRequired
  };

  constructor(props) {
    super(props);
    this.state = {
      gridLayouts_: props.gridLayouts,
      selectedGrid: null
    };
    this.onJsonChange = this.onJsonChange.bind(this);
    this.handleDropdownChange = this.handleDropdownChange.bind(this);
  }

  /**
   *
   * @param nextProps
   */
  componentWillReceiveProps(nextProps) {
    if (this.state.gridLayouts_ !== nextProps.gridLayouts) {
      this.setState({ gridLayouts_: nextProps.gridLayouts });
    }
  }

  onJsonChange(key, value, parent, data) {
    this.props.saveLayout({
      key: key,
      value: value,
      parent: parent,
      data: data
    });
  }

  handleDropdownChange = (e, { value }) => {
    this.setState({ selectedGrid: value });
  };

  render() {
    const { gridLayouts, saveLayout } = this.props;
    const { gridLayouts_, selectedGrid } = this.state;
    const gridJson = null;
    const gridJson_ = null;
    const gridOptions = Array.from(gridLayouts_.grids.allIds);
    const gridDropdownOptions = gridOptions.map(grid => {
      return {
        key: grid,
        value: grid,
        text: grid
      };
    });
    const defaultPanel = gridDropdownOptions[0].value;
    if (selectedGrid === null) {
    } else {
      const panels = gridLayouts_.grids.byID[selectedGrid].panels;
      const gridJson = panels.map(panel => {
        return {
          key: panel,
          value: gridLayouts_.panels.byID[panel]
        };
      });
      const arrayToObject = array =>
        array.reduce((obj, item) => {
          obj[item.key] = item.value;
          return obj;
        }, {});
      const gridjson_ = arrayToObject(gridJson);
    }

    return (

        {/*language=CSS*/}

Save layout for grid {selectedGrid}

        <Button icon="save" size="mini" onClick={saveLayout} />
        <Dropdown
          onChange={this.handleDropdownChange}
          //defaultValue={defaultPanel}
          placeholder="Select Grid"
          options={gridDropdownOptions}
          fluid
          selection
          value={selectedGrid}
        />
        <JSONEditor
          data={gridjson_}
          collapsible={true}
          onChange={this.onJsonChange}
          view="dual"
        />

    );
  }
}

export default LayoutEditor;

Hi @demorphica let me investigate and get back to you

@demorphica I made some corrections to your code to get it to work. I've published a new version with the fix https://www.npmjs.com/package/react-json-editor-viewer/v/1.0.6, doing an npm install should fetch the latest version
The problem was that the JSONEditor and JSONViewer were only accepting the very first props and any new prop changes did not get re-rendered
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { JSONEditor } from 'react-json-editor-viewer';
import { Button, Dropdown } from 'semantic-ui-react';

const gridLayouts = {
  grids: {
    byID: {
      dashboardGrid: {
        id: 'dashboardGrid',
        className: 'dashboardGrid',
        rowHeight: 1,
        breakpoints: { lg: 2560, md: 1920, sm: 1600, xs: 1366, xxs: 1280 },
        cols: { lg: 2560, md: 1920, sm: 1600, xs: 1366, xxs: 1280 },
        verticalCompact: 'null',
        preventCollision: false,
        panels: ['static1', 'limits']
      },
      workspaceGrid: {
        id: 'workspaceGrid',
        className: 'workspaceGrid',
        rowHeight: 1,
        breakpoints: { lg: 2560, md: 1920, sm: 1600, xs: 1366, xxs: 1280 },
        cols: { lg: 2560, md: 1920, sm: 1600, xs: 1366, xxs: 1280 },
        verticalCompact: 'null',
        preventCollision: false,
        panels: ['static1']
      }
    },
    allIds: ['dashboardGrid', 'workspaceGrid']
  },
  panels: {
    byID: {
      static1: {
        id: 'static1',
        key: 'static1',
        x: 1,
        y: 1,
        w: 1600,
        h: 80,
        static: false,
        isDraggable: true,
        isResizable: true
      },
      limits: {
        id: 'limits',
        key: 'limits',
        x: 1,
        y: 1,
        w: 1600,
        h: 80,
        static: false,
        isDraggable: true,
        isResizable: true
      }
    },
    allIds: ['static1', 'limits']
  },
  panelGridsJoin: {
    byID: {
      1: {
        id: 1,
        gridId: 'dashboardGrid',
        gridItemID: 'static1'
      },
      2: {
        id: 2,
        gridId: 'dashboardGrid',
        gridItemID: 'limits'
      },
      3: {
        id: 3,
        gridId: 'workspaceGrid',
        gridItemID: ''
      }
    }
  }
};

class LayoutEditor extends Component {
  static propTypes = {
    saveLayout: PropTypes.func.isRequired,
    gridLayouts: PropTypes.object.isRequired
  };

  constructor(props) {
    super(props);
    this.state = {
      gridLayouts_: props.gridLayouts,
      selectedGrid: null
    };
    this.onJsonChange = this.onJsonChange.bind(this);
    this.handleDropdownChange = this.handleDropdownChange.bind(this);
  }

  /**
   *
   * @param nextProps
   */
  componentWillReceiveProps(nextProps) {
    if (this.state.gridLayouts_ !== nextProps.gridLayouts) {
      this.setState({ gridLayouts_: nextProps.gridLayouts });
    }
  }

  onJsonChange(key, value, parent, data) {
    this.props.saveLayout({
      key: key,
      value: value,
      parent: parent,
      data: data
    });
  }

  handleDropdownChange = (e, { value }) => {
    this.setState({ selectedGrid: value });
  };

  render() {
    const { gridLayouts, saveLayout } = this.props;
    const { gridLayouts_, selectedGrid } = this.state;

    let gridJson_ = null;
    const gridOptions = Array.from(gridLayouts_.grids.allIds);
    const gridDropdownOptions = gridOptions.map(grid => {
      return {
        key: grid,
        value: grid,
        text: grid
      };
    });
    const defaultPanel = gridDropdownOptions[0].value;
    if (selectedGrid === null) {
    } else {
      const panels = gridLayouts_.grids.byID[selectedGrid].panels;
      const gridJson = panels.map(panel => {
        return {
          key: panel,
          value: gridLayouts_.panels.byID[panel]
        };
      });
      console.log(gridJson)
      const arrayToObject = array =>
        array.reduce((obj, item) => {
          obj[item.key] = item.value;
          return obj;
        }, {});

      gridJson_ = arrayToObject(gridJson);
    }

    return (

        {/*language=CSS*/}

Save layout for grid {selectedGrid}

        <Button icon="save" size="mini" onClick={saveLayout} />
        <Dropdown
          onChange={this.handleDropdownChange}
          //defaultValue={defaultPanel}
          placeholder="Select Grid"
          options={gridDropdownOptions}
          fluid
          selection
          value={selectedGrid}
        />
        <JSONEditor
          data={gridJson_}
          collapsible={true}
          onChange={this.onJsonChange}
          view="dual"
        />

    );
  }
}

export default LayoutEditor;

thanks @constantoduol yes it works now!
apologies there were some variable name issues etc. when i removed the logging parts from the code i posted. I'm really grateful you spent the time to fix
i was desperately hoping you'd respond - so i worked on the UI in the meanwhile. Here is what the result looks like after the update - i did not have to change anything else

if in some future release you could also support getting styles as a prop it would be really amazing! Thanks again for making this library - fyi i'm making my own dashboard framework using https://github.com/STRML/react-grid-layout & your library as the layout editor so that's what the JSON in my code relates to.


Pods don't seem to get the port env-vars they need

Firstly, I noticed model isn't part of the install script, but I suspect that's just because it was only (re-)added into the full system recently. I trivially resolved that just by copying the existing two blocks for differ.
However, I then hit a more-complex issue.
It seems that none of the services receive the CYBER_DOJO_XXX_PORT env-vars they need to talk to the other services, causing them to attempt to talk on port 0.
A few pods (model, differ, and creator) fail to start because of this, but after adding the env-vars by hand, I found that KataController#edit then failed trying to talk to port 0 on saver, so I have to assume not every pod is checking its necessary ports at startup.
More to the point, it's not clear how this is intended to work. I don't see anything attempting to set env-vars for the ports of the other services in the scripts, so it's not clear to me what's broken, so it's not as simple a fix as the other issues I've noticed giving this a burl today.
In case I or someone else comes looking for this later, I worked around this by adding the below block to almost all the '*-k8s-general-values.yml' files in the installer dir, before volumeMounts in the container definition.
    env:
      CYBER_DOJO_PROMETHEUS: "true"
      CYBER_DOJO_CUSTOM_START_POINTS_PORT: "4526"
      CYBER_DOJO_EXERCISES_START_POINTS_PORT: "4525"
      CYBER_DOJO_LANGUAGES_START_POINTS_PORT: "4524"
      CYBER_DOJO_CREATOR_PORT: "4523"
      CYBER_DOJO_MODEL_PORT: "4528"
      CYBER_DOJO_DIFFER_PORT: "4567"
      CYBER_DOJO_REPLER_PORT: "4657"
      CYBER_DOJO_RUNNER_PORT: "4597"
      CYBER_DOJO_SAVER_PORT: "4537"
      CYBER_DOJO_SHAS_PORT: "4522"
      CYBER_DOJO_WEB_PORT: "3000"

Again thank you.
There is a env-var-values.yml file
eg https://github.com/cyber-dojo/differ/blob/master/.circleci/env-var-values.yml
and this gets concatenated to the helm yaml in the deploy_to_namespace.sh script
eg https://github.com/cyber-dojo/differ/blob/master/.circleci/deploy_to_namespace.sh#L15
That's how it works when deploying to https://cyber-dojo.org
It looks like this step is missing in the k8s-install scripts.

Ah, right. Yeah, that would explain it. I hadn't actually noticed until you pointed it out, that the end of the file is in the right place to append the env-vars.
So yeah, should be a simple fix after all.

As a simplification, if the default port in the code was changed from 0 to 80, and the Services deployed at port 80 instead of using a different port each, then this set of env-vars wouldn't be needed at all on k8s, as the default would be correct.
For non-k8s deployments (where there is no Service layer to manage this) then things would keep working as they do now.

This sounds a very nice improvement. Thank you.


Add java 11 workflow

FYI we are running prebid server with Java 11 since half a year now without any issues 🥰

FYI we are running prebid server with Java 11 since half a year now without any issues

BTW, are you using ParallelGC or G1GC in prod?


Loading old configs crashes the game.

As title, is anyone having the same problem though.
Link to config:
0.zip

This problem has peen posted like 3 times in 2-3 days so you might wanna make a new one.

I don't see any but that's ok, ty.


Treating JSON response as text (for IE).

I was wondering if rather than forcing all JSON typed responses to be of type text that then requires the end user to parse into json - would it be better to have a post processor for just IE and let the browser native parsing of the response work as intended. This should improve performance in chrome and firefox and all browsers who natively support json as a response type. I believe this is how jquery does it (not 100% sure).
export function responseTypeTransformer(client, processor, message, xhr){
var responseType = message.responseType;
if(responseType === 'json'){
responseType = 'text'; //IE does not support json
}
xhr.responseType = responseType;
}

We would certainly consider that. Would you consider putting together a PR to do that?

Closing for now since no response or PR from the original submitter and no upvotes from the community.


Memberwise initializers for objects?

Info:
macOS 10.15.3
Xcode Version 11.3.1 (11C504)
Swift 5
apple/swift-protobuf 1.8.0
Question
So I see swift-protobuf supports the following ways of initializing objects:
// Create a BookInfo object and populate it:
var info = BookInfo()
info.id = 1734
info.title = "Really Interesting Book"
info.author = "Jane Smith"

// As above, but generating a read-only value:
let info2 = BookInfo.with {
    $0.id = 1735
    $0.title = "Even More Interesting"
    $0.author = "Jane Q. Smith"
  }

Is there a reason why we don't also generate a membewise initializer (outlined here for structs)?
Would be a little less clunky than the above read-only variation, support autocomplete, etc.
Eg:
let info3 = BookInfo(id: 1736,
                     title: "The Most Interesting",
                     author: "Jane Z. Smith")

See some of the recent discussions in #938.
The main issue is they can be source breaking if someone adds, reorders, etc. fields; which isn't breaking from a protobuf pov.


Adding clarification around NAT

Adding clarification around NAT

@JackStromberg : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Please disregard.


Fix #481: URLEncode UI resources

Fix #481: URLEncode UI resources
Basically we need to store the UI Resource names at rest as URI Encoded so they match what the browser is sending.

I have no idea why the Integration tests are failing.

I have no idea why the Integration tests are failing.

did you test locally?

I have reverted my #486. now let's see

@melloware it would be nice to have a test for this?


Markdown extension is not using codicons?

I think the icons are not aligned well:

@misolori didn't we adopt codicons for all our built in extensions?

Good catch, I thought we had already updated these. Fixed. Worth noting that we can't update the preview icon to use codicons until #90616 is fixed.


ndarray.ipynb doesn't load

Getting error "Sorry, something went wrong. Reload?" with no improvement after reloading

it's github problem. you can try this link: http://nbviewer.jupyter.org/github/dmlc/mxnet-notebooks/blob/master/python/basic/ndarray.ipynb

This one works thanks


Dropdown Bootstrap

Dropdown can't show submenu when i click it

Can you create a codepen example?

Got the same error, with bootstrap 5 and flask as backend.
If I refresh the webpage (F5), dropdown works, but if I naviagte to the webpage via a link dropdown won't work.
Browser developer view shows my local
"turbo.es2017-esm.js:430"
as initiator to load assets.
To be specific
"document.body.replaceWith(this.newElement);"
is the relevat code line.

Is this already resolved? I encounter same issue.

Hey @lrjbrual, this issue wasn't actively resolved.
But if you are be able to provide a minimal example which reproduces the issue we are more than happy to take a look. Thank you!

Move bootstrap js

Move bootstrap js

@Rebelfront Had the same issue, and tried what @gary02 said... and it worked! Just moved the script tags into the head section of the html. I had it in the bottom, previously.


[Documentation]: How should help panels integrate with the app layout?

Description
I'm struggling to understand the documentation relating to the help panels.
https://cloudscape.design/patterns/general/help-system/ says "Info links are the triggers that opens the help panel and display the corresponding content." and "An info link should always be anchored to headers." ... but that documentation just points to the documentation for the Link component and doesn't explain:

How the help panel gets opened
How to link the Link component to specific content - it mentions headers but how are they referenced?

Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate requests

Hey, thank you for opening this issue.
The help panel has no automatic connection to links on the page without code on your side. You can control the open/close state of the help panel through the AppLayout's toolsOpen property (and the associated onToolsChange property).
"An info link should always be anchored to headers" refers to the location of the Info links on the page. You can see an example of this in our demos, where the "Info" links are placed next to the header of the page, headers of containers, and headers of form fields (but not e.g. in descriptions or other text). The Header and FormField components each provide an info slot, where you can place such links. There is however no automatic reference between a header and the content that the link points to.
To implement the pattern that you linked, you need to tie these properties together in a way that fits your application architecture. A common choice is to have a handler function and pass that to each info link either through prop drilling or a React context. In our demos, we use such a function, and pass it through to every info link (for example here). The tools panel then displays the content that has been selected through that function (line 39).

In my current project, I use redux to hold the data of helper content and dispatch action to trigger it open


Not working on iOS10

Hi, i am using this below code to start the broadcast, which actually start the broadcast on device, but in console gives error:
Code to start broadcasr:
[Kickflip presentBroadcasterFromViewController:self ready:^(KFStream stream) {
if (stream.streamURL) {
bstream = stream;
NSLog(@"Stream is ready at URL: %@", stream.streamURL);
}
} completion:^(BOOL success, NSError error){
if (!success) {
NSLog(@"Error setting up stream: %@", error);
} else {
NSLog(@"Done broadcasting");
}
}];
Console errors:
[KFAWSCredentialsProvider credentials]: unrecognized selector sent to instance 0x17444b4c0
2016-12-30 11:20:01.553694 LittleStar[600:102235] -[KFAWSCredentialsProvider credentials]: unrecognized selector sent to instance 0x17444b4c0
[hls @ 0x10211fa00] EXT-X-MEDIA-SEQUENCE:0
2016-12-30 11:20:11.483984 LittleStar[600:102682] -[KFAWSCredentialsProvider credentials]: unrecognized selector sent to instance 0x17444b4c0
2016-12-30 11:20:11.503410 LittleStar[600:102682] -[KFAWSCredentialsProvider credentials]: unrecognized selector sent to instance 0x17444b4c0
2016-12-30 11:20:11.513940 LittleStar[600:102682] -[KFAWSCredentialsProvider credentials]: unrecognized selector sent to instance 0x17444b4c0
[hls @ 0x10211fa00] EXT-X-MEDIA-SEQUENCE:0
2016-12-30 11:20:21.548701 LittleStar[600:103042] -[KFAWSCredentialsProvider credentials]: unrecognized selector sent to instance 0x17444b4c0
2016-12-30 11:20:21.573707 LittleStar[600:103042] -[KFAWSCredentialsProvider credentials]: unrecognized selector sent to instance 0x17444b4c0
[hls @ 0x10211fa00] EXT-X-MEDIA-SEQUENCE:0
2016-12-30 11:20:24.770127 LittleStar[600:103042] -[KFAWSCredentialsProvider credentials]: unrecognized selector sent to instance 0x17444b4c0
2016-12-30 11:20:24.790692 LittleStar[600:102121] Done broadcasting
2016-12-30 11:20:24.798276 LittleStar[600:102744] -[KFAWSCredentialsProvider credentials]: unrecognized selector sent to instance 0x17444b4c0

Seconded. Is the iOS example still supported? Hope so!


Fail to reproduce tensorQTL result from ftp

While using the supposedly same genotype, covariates file, and phenotype file, I fail to generate the same results as those that were uploaded to the FTP server.
Target data:
0. The data shrishtee generated, uploaded to FTP, and extracted only the gene ABCA7
Generated data

100kb windows and the covariates, genotype file I generated, unpartitioned phenotype, interactively ,only the gene ABCA7

1M windows,  genotype file I generated , unpartitioned phenotype ,using sos ,only the gene ABCA7

4 but only gene ABCA7

1 and 2 are identical, and quite different from 0, 3 is identical to 0

1M windows,   genotype file I generated  , phenotype I partitioned, using sos , full chromosome
4 is identical to 0

So the conclusion is, using unpartitioned bed.gz, will change the nominal sumstat???

This is issue is due to the difference in covariates file