Server selection API.

I noticed it's possible to log in to all servers and all servers return the vehicle list, but in order to retrieve the vehicle details and send commands it seems you'll have to log in to the server you're car is connected to (error: "Ressource [sic] not found. No status available for VIN ...")
Cars do have a "hub" key, which in my case is set to "HUB_US", which could point to the server where the car "lives on." What are other values people are seeing in Europe and Asia? If "hub" indeed points to the right server, it would be a great way to automatically log in to the right server.

Which API call are you using to get the hub data?

/webapi/v1/user/vehicles/ which returns an array of vehicles connected to the account. Each vehicle includes dealer address, color code, and the "hub" key.

My UK registered one is HUB_ECE

Now we need someone in Mainland China to chime in for the last code.

Isn't GitHub blocked in mainland China? You might be waiting a while!

Are the BMW apps now updated to use SSL Pinning - meaning the charles proxy approach to get the key and secret wont work?

My MacOS app stopped working today, Pinning might the issue. I haven't looked at it, but assume it's possible to copy the SSL certificate from the app bundle, isn't it?

I think I'd have to jailbreak my iPhone though for that.  I'm going to get an android device and decompile that :-/

You don't need Android device to decompile apk
On Wed, Nov 23, 2016 at 10:52 AM, Rick Fish<EMAIL_ADDRESS>wrote:

I think I'd have to jailbreak my iPhone though for that. I'm going to get
an android device and decompile that :-/
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/edent/BMW-i-Remote/issues/3#issuecomment-262460302,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA7B3IOKHNgUd1m5NzQ2rghe4g8Gb-NIks5rA_7egaJpZM4G14og
.

You don't need to jailbreak your iPhone either. You can do everything on a Mac (or Windows for that matter). Download the i-Remote app from within iTunes on your Mac, then right click -> Show in Finder -> rename the .IPA to .ZIP -> Unzip -> Show Package Content.

So I've done all this. There are 2 certs in the package - unfortunately Charles proxy won't use them properly to impersonate. Are there instructions on how to compete this last step

If you are trying to decrypt the messages from the I-remote app, that shouldn't work without the server certificate. You should be able to use the two certificates in your own app though, similar to how API keys work. (I haven't tried that myself yet)

Hmm - was trying to use in a chat bot framework vs an app.  I just really need the api key and secret to get my auth token and then pull back data.  Tesla make this really easy, seems BMW lock it down way more...... :-(

FYI: I've successfully connected to the BMW US server using the SHA256 certificate from the app bundle. If people are interested, I can clean up the code and post a gist. Code is Swift 3, tested on MacOS.

That would be awesome.... I just want to use my chatbot framework to connect to the car and pull back event data and post some journey uploads....  I've done this for Tesla, but would like to also show BMW connectivity (as the private API seems much richer)

Gist is here. Not the most pretty code, but it works:
https://gist.github.com/ronaldmannak/4563d3bf1987d6fbc1981257292eb769

So it turns out the certificate bundled with the app only works with the European server, not the US server. Since the US server has a different top level domain, I assume the app needs a different certificate that isn't included in the app. Now it also makes sense why North American drivers haven't been able to use the app ever since BMW upgraded to SSL pinning.

Thanks ronald, but I still seem to be chasing my tail here :-(.  I can't find the apikey and secret from the android apk anywhere....  As I can't use CharlesProxy to intercept the traffic I can't get the Bearer token that way either so I'm a bit stuck.
I've been able to connect to the connected drive server with the SHA256 cert from the app and get an 'unauthorised' reply from BMW when using the random encoded secret, but without the proper key:secret combo I can't authorise to get a real Bearer token back.
I'm just using a simple curl command structured against the oauth endpoint.  Is it possible to send me a private email / direct twitter message to @rickpoisson with a hint where it is?  Would be much appreciated!!
Tesla make this really simple - see https://github.com/hjespers/teslams/blob/master/teslams.js. the client and secret are embedded in the file!

@rickpoisson  I don't know where to look for the API key in the Android app. If you would download the iOS app, you'll find the keys in the info.plist

@rickpoisson If Ronald's method doesn't work for you, I was able to find the API key and secret in the decompiled android app....it was just buried very deep ;) I could perhaps point you in the right direction?
Also, quick question @ronaldmannak, so if I don't have the SSL cert I won't be able to make API calls? I've just got my Bearer authorization on my local computer, but when I go to get the status of my car I get:
{"error":
    {
        "code":500,
        "description":"(SmartPhoneUtil-A-2012) Ressource not found. No status available for VIN WBY...."
    }
}

although I am able to get a list of vehicles?
{
"vehicle": {
    "vin":"WBY...",
    "model":"i3 94REX",
    "bodytype":"I01",
    "driveTrain":"BEV_REX",
    "colorCode":"C2W",
    "brand":"BMW_I",
    "yearOfConstruction":2016,
    "statisticsCommunityEnabled":false,
    "statisticsAvailable":true,
    "hub":"HUB_US",
    "hasAlarmSystem":true,
    "dealer": {
        "name":"XX",
        "street":"XX",
        "postalCode":"XX",
        "city":"XX",
        "country":"US"
    },
    "countryCode":"V2-US",
    "steering":"LH",
    "hmiVersion":"ID4",
    "a4a":"USB_ONLY",
    "vehicleFinder":"ACTIVATED",
    "remote360":"NOT_SUPPORTED",
    "hornBlow":"ACTIVATED",
    "lightFlash":"ACTIVATED",
    "doorLock":"ACTIVATED",
    "doorUnlock":"SECRET_KNOWLEDGE",
    "climateControl":"NOT_SUPPORTED",
    "climateNow":"ACTIVATED",
    "chargingControl":"WEEKLY_PLANNER",
    "chargeNow":"NOT_SUPPORTED",
    "sendPoi":"ACTIVATED",
    "rangeMap":"RANGE_POLYGON",
    "lastDestinations":"SUPPORTED",
    "intermodalRouting":"AVAILABLE",
    "climateFunction":"AIRCONDITIONING",
    "onlineSearchMode":"MAP",
    "smartSolution":"NOT_SUPPORTED",
    "supportedChargingModes": ["AC_LOW","AC_HIGH","DC"],
    "lscType":"I_LSC_IMM"
    }
}

Thanks!

@dgsmith Could you point me where to look in the decompiled android files? I thought I may have found them in the ae.java file, but these don't seem to work.
Thanks!

@smar000 I'm not sure how much I can give away haha, but I used grep to search for relevant places in the code. e.g. grep -R Basic . (note the period). Best of luck!!

Yes, I had done something similar earlier and had in fact even looked at that very file but somehow missed the relevant line. Got it now though, so thanks!

@dgsmith You're right, the European server seems to accept requests without certificate. Not sure if I spoke too soon or if something changed on BMW's end. The US server doesn't seem to work even with the certificate. The good news: if no certificate is necessary, then Charles should work (again). I wonder if BMW is routing the US car info through the European server now.

@ronaldmannak, I've been able to make requests to the US server after actually using the .us domain haha. I'm not quite sure exactly what is going on though. Inside the BMW connected drive app they mention they're using certificate pinning (and the certs are there -- for Charles?).
Another wrench is that BMW is discontinuing the iRemote app -- which is where I got my basic authentication stuff, but looking through the new connected drive app, it does seem like they're only using the .com domain like you say. But then trying the basic authentication from that app, I get an error about undefined scope for the oauth request. The scope they use is something about journey, but I couldn't make any requests with that scope...

@dgsmith I noticed an error in my App Transport Security settings and am now able to connect to the US server as well (without SSL pinning). Curl now also works. I might be mistaken, but I am pretty sure curl did not work when nobody was able to login to the US server a month ago. Another interesting thing is that my compiled app stopped working that same day the US issues began and still crashes on start. It's odd.
Charles Proxy is still unable to intercept traffic to and from the original BMW apps. I am able to successfully intercept curl requests to BMW. I'm not an expert in SSL pinning, could it be that SSL pinning is optional and used in the original apps but not when our apps without SSL pinning make the requests? I do see the data from other apps that use https like Plugshare.
I also noticed that the new Connected app uses a different server: myc-profile.bmwusa.com. Since i Remote is being phased out, according to a recent email from BMW, I assume we better figure out the new endpoints of myc-profile.bmwusa.com soon if we want to keep our own apps, though I don't know how to do that without Charles Proxy. The old login path does not appear to work on the new server.

hi guys, any update on this? does anyone can provide more info regarding myc-profile.bmwusa.com?


python3Packages.discordpy: 1.7.3 -> 2.0.0

Description of changes
Discord.py 2.0.0 was released tonight.
This release is quite important, since it's compatible to a newer API version & adds support for a lot of features, Discord has added over the last few years.
2.0.0 can have breaking changes. The process of migrating to v2 got described here:
https://discordpy.readthedocs.io/en/stable/migrating.html
The release notes got posted on the official Discord server.
Later they can be found on this page (I'm asking the dev to add them there too): https://discordpy.readthedocs.io/en/stable/whats_new.html

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

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

2 packages built:

python310Packages.discordpy
python39Packages.discordpy

The substituteInPlace for aiohttp seems to be out-dated.

 Fixed that.


Error Domain=PHPhotosErrorDomain Code=-1 "(null)"

the code below will cause error on iOS 13 devices when import uri is https://xxxxx.png

assetRequest = [PHAssetChangeRequest creationRequestForAssetFromImageAtFileURL:inputURI];

this way works well

NSData *data = [NSData dataWithContentsOfURL:inputURI];
UIImage *image = [UIImage imageWithData:data];
assetRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:image];

Thank you for posting the working code! Closing this as duplicate of #157


FIX update for filter_by_select logic

Proposed changes
Issue Number: close #xxx
this pr is aim to update for filter_by_select logic and change delete limit

only support scala type  in delete statement where condition
only support column nullable and predict column support filter_by_select logic, because we can not push down non-scala type to storage layer to pack in predict column but do filter logic

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall


How to get languages to work

Hi
I put in some german words and the bot kept failing.

What needs to be done to get language to work?  Do I need to create a new language in the lex bot or will it work within English ?

Thank you for fixing it so soon. This is really great feature. If I understand it correctly all I have to do is to add Spanish Lanuage and it will work?
eg language from LEX

Does it require any settings in Amazon Connect side or if the user speaks english or a mix of english and spanish the bedrock will work? ( still have to test out the new changes ) Just asking to understand how it is built.


{"message":"Invalid handler specified"} -> too old HA version?

Checklist

[X] I have installed the latest release (or BETA) version of the integration and home assistant.
[X] I have prepared DEBUG log output (for technical issues) | In most of the cases of a technical error/issue I would have the need to ask for DEBUG log output of the integration. There is a short tutorial/guide 'How to provide DEBUG log' here
[X] I understand the SHIT-IN - SHIT-OUT principle (in case of implausible data) | It will happen, that the data that is displayed by this integration does not make much sense (to you) - aka the data is not plausible. Of course it could be the case, that something in this integration has been messed up - but so far - in all reported issues the root cause of implausible data was/is, that the go-eCharger device itself already provided this data [you can check this by directly requesting the attribute from the wallbox]
[X] I confirm it's really an issue | In the case that you want to understand the functionality of a certain feature/sensor Please be so kind and make use if the discussion feature of this repo (and do not create an issue) - TIA

Add a description
Hi! Many thx for your job. I'm discovering HA and when I try to integrate I receive the error message {"message":"Invalid handler specified"}. I will try to make a debug log if you needed but I think this error is due to my lake of knowledge in HA.
Can you help me?
HA Core 2023.7.3-22 on Synology
Add your DEBUG log output
{"message":"Invalid handler specified"}

I would kindly ask for a complete log output - in order to get some details about this exception - might be that just the HA version is too old - but could be also the case that just the IP/URL is not correct.

home-assistant_2024-09-16T19-11-53.788Z.log
Hi! Thnx for your fast response. I hope this log can help to resolve. I see now the actual version is 2024.9.2. My syno is maybe too old.
Best regard

thanks! -> is it possible for you upgrade your HA version to 2023.8.0 at least?!

I dont think so. My syno is DS214 (10 years but always well). I think a ask it to much this time. Did you agree?

if you like, you can provide another log - so I might be able to share some info, if there could be a short cut ;-)

home-assistant_2024-09-17T20-27-58.554Z.log
Maybe that's can help somebody with this same old NAS.
Many thx

if you still like to experiment a bit
open custom_integration\goecharger_api2\__init__.py and search for:
def _friendly_name_internal(self) -> str | None:
and replace with: (so just change the method signature by adding a 'x')
def _xfriendly_name_internal(self) -> str | None:

No. Problem seems to be the seem.
thank you for the try.
I will install my new syno tomorrow. I think it will be better with the virtual HA.
Best regard


CAI enabled vs. disabled Bucket ACL violations discrepancy

The Bucket ACL scanner retrieves violations when CAI is disabled, while no violations are found when CAI is enabled.

Analysis: gcs_policy data is not written to gcp_inventory when CAI is enabled, investigating root cause.


[Bug] Electron nodeIntegrationInWorker enabled breaks monaco-editor loading

Reproducible in vscode.dev or in VS Code Desktop?

[X] Not reproducible in vscode.dev or VS Code Desktop

Reproducible in the monaco editor playground?

[X] Not reproducible in the monaco editor playground

Monaco Editor Playground Link
No response
Monaco Editor Playground Code
No response
Reproduction Steps
In samples/electron-amd-nodeIntegration:

Enable nodeIntegrationInWorker in browserWindow in main.js
Update monaco-editor in /samples.package.json to latest
See the when starting the application you will get the following console errors in the chrome devtools

The factory function of "vs/language/typescript/tsWorker" has thrown an exception
TypeError: d0 is not a function

Actual (Problematic) Behavior
Monaco-editor will render but not work as expected since the types are no longer visible on hover
Expected Behavior
It should load without errors as with version 0.36.1
Additional Context
The problem is visible from version 0.37.0 onwards. From some debug I've already done, I think I might've narrowed it to the typescript 5 update and this change in detecting the isNodeLikeSystem
https://github.com/microsoft/TypeScript/commit/dc92488da8de8ca204000ff5019f4c35915a5e37

hi @pedroabreu did you found the solution

No we didn't, the solution has been to keep Monaco editor updates blocked to the last working version...


The CRUD generator expects the entity object has a primary key field named "id" with a getId() method

Just like https://github.com/symfony/symfony/issues/1505
[RuntimeException]
The CRUD generator expects the entity object has a primary key field named "id" with a getId() method.
Woul'd i name PK as "code" and create method getId() { return $this->code; } ?
My table must has PK named ID, doesn't it?

Excuse I but the change is made in which array
if (!in_array('Id', $metadata->identifier)) {
throw new \RuntimeException('The CRUD generator expects the entity object has a primary key field named "id" with a getId() method.');
}

I think the "generate:doctrine:crud" is a wonderful tool, but I would like that the "id" it expects will be a dinamyc parameter, could be one more question when the comman run, something like:
Welcome to the Doctrine2 CRUD generator
This command helps you generate CRUD controllers and templates.
First, you need to give the entity for which yo.....
The Entity shortcut name: .....
//My suggestion
Enter the Id field for the Entity [id]:
.....
So if I put "idMytable" it will look for it not just "id".


🍒 Cherry pick PR #6417 to staging 🍒

🍒 Cherry pick https://github.com/Expensify/App/pull/6417 to staging 🍒

🚀 Cherry-picked to staging by @chiragsalian in version: 1.1.16-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to production by @roryabraham in version: 1.1.16-10 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Add ability to create empty table

Add "make empty" option to makefile, this helps with testing against hapi-pipelines.
@b-j-mills FYI

Will this need more changes after we merge https://github.com/OCHA-DAP/hapi-schemas/pull/12 ?

Superseded by #16


Convert to paket format

Fixes https://github.com/demetrixbio/FSharp.Data.Npgsql/issues/79

Typeprovider SDK submodule no longer required as it is handled by paket now.
Build steps:
dotnet tool restore -allows using paket in local scope
dotnet restore <sln> - restore packages for solution
dotnet build <sln> -build the package
To create nupkg, do dotnet paket pack .publish which will use the paket.template file like nuspec and generate package in the .publish folder

I currently run ubuntu, and appears to work fine using the nupkg generated from paket.
I might later create github actions, to do CI stuff
@kerams @melanore Review please.

Tested the test project (not the SampleApp) with the provided docker image. Appears to work fine with no issues. There are some fsx fsi script files there which looks to have been outdated since its referencing old netcore typerprovider files i think.

Also added github actions, which should perform CI builds on future PRs
Result would like this:
https://github.com/Swoorup/FSharp.Data.Npgsql/runs/563049950?check_suite_focus=true


On 27 February 2017 at 20:48, Joshua Wilson<EMAIL_ADDRESS>wrote:

@joshuawilson commented on this pull request.
In src/app/header/header.component.html
https://github.com/fabric8io/fabric8-ui/pull/213#discussion_r103359322:

@@ -9,7 +9,7 @@
<div *ngIf="loggedInUser" id="header_dropdownToggle_header">

<span *ngIf="!imgLoaded" class="nav-icon pficon-user">

         <img (load)="onImgLoad()" src="{{ loggedInUser.attributes?.imageURL }}" [ngClass]="{'show' : imgLoaded,'img-icon' : imgLoaded, 'hide' : !imgLoaded}">

       <img (load)="onImgLoad()" src="{{ loggedInUser.attributes?.imageURL }}" [ngClass]="{'show' : imgLoaded,'img-icon' : imgLoaded, 'hide' : !imgLoaded}">

Why were the indents removed on this page?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/fabric8io/fabric8-ui/pull/213#pullrequestreview-24142790,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAJoQWI81zWo147uLjAOE54UHh7JWbQTks5rg30IgaJpZM4MNy3Z
.

@joshuawilson rebased


Make omniauth-clever compatible with present-day Clever OAuth 2.0 implementation

Thanks to contributions by @thinkthroughmath and @studypad.
Tested using the omniauth-test-harness.

Actually intending this to be on Clever's fork, closing in preference to that.


MRG: Fix event dtype for Windows

Closes #4712.
@jjnurminen can you see if this fixes your problem?

@larsoner thanks, it does

backported for 0.15.1
thx


Randomize feature restored

Is it too much to ask to have the Randomize button/feature? I often used this to discover new sounds that I would never have iteratively worked into existence.

Hi! I considered it, but I felt it "Mutate" was random enough. Did Randomize produce much different sounds for you?

Oh yes, very different and often surprising!
I also remember reading that the developers at Williams when then were coming up with the sfx for the old arcade games would power cycle their equipment, which would load arbitrary parameters into memory and they would discover sounds that made it into the final games. This is how I feel with the Randomize button in other versins of sfxr.

Nice story about Williams, that's a very bare-metal way to generate random values :)
Anyway, I just added back the Randomize button.


Cleanup Smart Contract E2E tests

Current e2e tests related to smart contracts are outdated or simply failing. This issue aims to refactor and remove the unnecessary legacy code from those tests.
The tests are located at test-clients/src/main/java/bdd/suites/contract/. We can see that there are a lot of tests.

Revise existing e2e tests. Execute them and determine whether some of them must be deleted or not. Compile a list of the failing tests and add it as comment here. We must be sure that failing tests are failing correctly and on purpose we are deciding that we won't support such use-cases OR we must act based on the failing tests and resolve issues with our Integration
Once the already existing list of tests has been revised; all issues have been resolved and unnecessary tests are removed, we can introduce our own tests. Atm we are placing everything inside ContractCallSuite and the majority of the tests are commented. We must extract different types of tests into different files as-well as make sure that all tests can be uncommented and get them to pass.

Not working tests:
BenchmarkStoreSpec
-benchmarkSingleSetter(), //failing due to lack of uint256 support
-benchmarkLoadTx(), //failing due to lack of uint256 support
-benchmarkNCreations(), //failing due to lack of uint256 support
-benchmarkNCreationsWithUpdates(), //failing due to lack of uint256 support
-benchBigSSTORE(), //failing due to lack of uint256 support
-SSTORE() //failing due to lack of uint256 support
InsufficientSpec
-lowBalanceFails //skip to the completion of support smart contract factory development
-undersizedMaxResultFails //skip to the completion of support smart contract factory development
-impureCallFails //skip to the completion of support smart contract factory development
-insufficientFeeFails //skip to the completion of support smart contract factory development
-rejectsInsufficientGas
-rejectsInvalidBytecode
-revertsNonzeroBalance
SmartContractFailFirstSpec
-smartContractFailFirst
InvalidSpec
-invalidAbi //skip to the completion of support smart contract factory development
-invalidCallReceiverAccount
-invalidDelegateCallReceiverAccount
-invalidStaticCallReceiverAccount
PayableSpec
-payableSuccess //skip to the completion of support smart contract factory development
-nonPayable //skip to the completion of support smart contract factory development
ContractGetRecordsSuite
-recordsExpire
-vanillaSuccess
ChildStorageSpec
-childStorage
SmartContractSelfDestructSpec
-payTestSelfDestructCall
ContractCallLocalSuite
-vanillaSuccess //skip to the completion of support smart contract factory development
ContractCallSuite
-vanillaSuccess //skip to the completion of support smart contract factory development
ContractGetBytecodeSuite
-vanillaSuccess
NewOpInConstructorSuite
-contractCreateWithNewOpInConstructor - ChildStorage
-contractCreateWithNewOpInConstructor - AbandoningParent
OCTokenSpec
-ocToken
SmartContractInlineAssemblySpec
-smartContractInlineAssemblyCheck


chore(deps): upgrade dev dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-dev-dependencies-k8s-26-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 2689

Questions ?
Please refer to the Backport tool documentation


Add more options for temporal aggregation

This PR should add two more options to aggregate the network temporally:
(1) aggregate timeseries to representative snapshots with e.g. 25sn as sector_opts would results in taking every 25th snapshot
(2) using segmentation method from tsam similar to PyPSA-Eur, except that all time-dependent data is considered (to include e.g. also the COP of heat pumps) and that the options is added to overwrite the pypsa time-series with time profiles generated by tsam. For example 60SEG in sector_opts would results in 60 representative snapshots of the original timeseries.

I am actually pretty sure that the options to aggregate to x representative snapshots with xsn was tat some point in the code. @fneum to you have any experience with overwriting the timeseries of pypsa with the ones generated by the tsam package? I just did a quick check but they didn't seem to be very similar. Therefore, I am currently setting the option to overwrite them as False and haven't moved the option to the config. We could also remove this part if it is not helpful.

Thanks a lot for the review @fneum !


Multi-arch support and more

Better error checking on restoredb
Organization (renaming, cleanup)
Regression test guidance

If all works well, should close #3 , #6 and #10


UI: Don't allow attach to the unready node

UI should prevent this.
API should returns error.

Current there is no effect since the manager on that down node won't able to pick up the volume.

Fixed.


PR for official todomvc repo?

Elm isn't displayed on http://todomvc.com
Is there anything lacking the implementation for it to be accepted?
If not, I would also suggest that maybe http://elm-lang.org/blog/Blazing-Fast-Html.elm is included in the sidebar of links since this is what converted me to elm

:+1: for being accepted on http://todomvc.com
I have found it very useful and convincing

There's a PR open to do this thanks to @passy, but it got stalled on me not having enough time to really focus on everything going on right now. I'm currently struggling to balance some work at Prezi with the 0.15 release, so if anyone in this thread is able, it'd be a huge help to get this working!

I'm in the same boat trying to find a proper balance between OSS, events and work. I'm still super keen on getting this into TodoMVC. The test flakiness described in the issue is probably okay, because it's more likely an issue with the test runner than with Elm, but someone would have to look into the learn bar and positioning the app correctly.
If someone would be interested in helping out, that would be fantastic!

I posted on the mailing list, but maybe it'd be good to ask for help on twitter? I'll try it out once it's daytime in SF and Budapest.


Use Check with CartographicGeocoderService

For #4794. Use Check instead of DeveloperError. Also fix unit tests.

Thanks for fixing these tests!


Confusing exception message at databases.py

I've been confused of seeing 'Key already exists' right before I printed real exception.

Hi @robert-werner. This is actually working as intended. The idea behind not to show detailed error reports for database errors as I believe giving out details of your database setup to users is generally a bad idea.
However you do raise a fair point. it might be better to change it to simply "Integrity Error" as the message.  #66


DERT device error when run inference_detector in mmdetecion

Hi everyone,
When a run the inference_detector to DERT algorithm, I got this error message:
AssertionError  Traceback (most recent call last)
 in ()
6 cfg.data.test.test_mode = True
7
----> 8 modelx = init_detector(cfg, '/content/drive/MyDrive/Doutorado/tree detction/dert0/epoch_24.pth', device='cuda')
9
10 # test a single image
9 frames
/content/mmdetection/mmdet/models/dense_heads/transformer_head.py in init(self, num_classes, in_channels, num_fcs, transformer, positional_encoding, loss_cls, loss_bbox, loss_iou, train_cfg, test_cfg, **kwargs)
104         class_weight = loss_cls.get('class_weight', None)
105         if class_weight is not None:
--> 106             assert isinstance(class_weight, float), 'Expected '
107                 'class_weight to have type float. Found '
108                 f'{type(class_weight)}.'
AssertionError: Expected class_weight to have type float. Found <class 'torch.Tensor'>.
The device paramenter of init_detector is default ('cuda:0') and distributed=False. Can you help me?

Please @v-qjqs have a check and fix the issue.

Hi, as the error message suggests, 'class_weight' in the config file should be type float, not Tensor. What's your detr config?

Anyone found the solution
?

just add this before infering:
cfg.model.bbox_head.loss_cls.class_weight = float(1.0)
should be good IA.


[Device request FEATURE] Textbox in PM/IT approval section must be required field

Pre-condition
User login successfully to W2 by using PM/IT account
There's at least 1 device request sent to PM/IT email
Steps

Go to the email inbox
Click on the received Device Request email
Click on "View Task Detail" at the bottom of that mail (User will be directed to that request page on W2)
Scroll to PM/IT Approval section
Tick Approve or Reject
Don't fill in the textbox
Click submit button

Expected Result

Textbox is required field-> PM/IT submit confirmation successfully only when PM/IT ticked Approve/Reject and filled in the textbox
Show error message "Please fill in the required field" when PM/IT click submit without filling in the textbox

Actual Result
PM/IT submit successfully without filling in the textbox

Done

Done


Timezone from TZ Aware datetime string

When I tried to parse this string looking for the timezone:
maya.parse('2018-04-23T12:00:00+05:30').timezone which is Asia/Kolkata the response is UTC. Is this by design?
I understand the .local_timezone gives the timezone of the machine, which is also not what I am looking for.
If a human being reads 2018-04-23T12:00:00+05:30 I think they will assume, 12oclock in Kolkata or somewhere in india.

Is this by design?

Yes, this is by design. Maya always converts the parsed datetimes to UTC.
That's what allows what's listed here: Why is this useful
If you want to convert it back from a MayaDT instance to a timezone aware datetime object you can do the following:
>>> m = maya.parse('2018-04-23T12:00:00+05:30')
>>> m.datetime()
datetime.datetime(2018, 4, 23, 6, 30, tzinfo=<UTC>)
>>> m.datetime(to_timezone='Asia/Kolkata')
datetime.datetime(2018, 4, 23, 12, 0, tzinfo=<DstTzInfo 'Asia/Kolkata' IST+5:30:00 STD>)


FIX: README POSTGRES addition

Add to part 2 of install notes information to su postgres user to run initdb etc

Hi! Can you provide a bit more information on which notes you think need to be added to?

Closing this, please do re-open if you have further issues!


Support for MongoDB

Hello Dhananjay,
This is a very nice open source contribution. Hats off!  Can this be configured for MongoDB?
Best
JB

Yes, I have plans to add support to majority of NoSQL database platform like

MongoDB
Cosmos DB
Initially to kick-off, I will be adding an option to export data in JSON format (just like I gave CSV option). This opens up path to upload this JSON to any of NoSQL database platform of user's choice (like even GCP & AWS)

@jbeuria  Thanks for reminding this. I am converting this thread to feature request .

@dhananjay1405 thanks! looking forward to a new release.

@jbeuria just to update you, project now supports exporting of JSON files. In technology simple specify json instead of mssql, which will generate JSON files. I am not aware how to load JSON files into MongoDB (maybe you need some Python coding for this). But I am sure this option can serve as enabler (or starting point) for your requirement.


publishing 3rd message fails

Hi,
I have setup an FreeRTOS application that is publishing 3 (multirarray) messages in 3 different tasks.
My micro ros agent is displaying all of the topics with 'ros2 topic list'. However one of them is not giving an echo. I can always echo only 2 out of the 3 and I can change the 2 in any combination (msg1+msg2, msg1+msg3 or msg2+msg3).
The call rcl_publish() is returning with RCL_RET_OK for the call that leads to the missing echo.
I already changed in the file colcon-embeddedrtps.meta file the parameter DERTPS_MAX_PUBLISHERS=10 but with no success so far.
Any hint?
Best Regards
Markus

micro-ROS by default are not thread-safe so, are you locking your micro-ROS calls between threads?
Also, could you share a micro-ROS Agent log output with the -v6 flag enabled?

Yes, it shall be enough to lock with a mutex/semaphore the access to rclc/rcl calls.
I'm closing since solved.


Fixes for the Lyapunov filter

There was a problem with the DE solution for nu.  The 1D test works now perfectly:
@test message.soldis[1,:] ≈ message2.soldis[1,:] rtol=1e-10
@test message.soldis[2,:] ≈ message2.soldis[2,:] rtol=1e-10
@test message.soldis[3,:] ≈ message2.soldis[3,:] rtol=1e-10
@test isapprox(solend, solend2, rtol=1e-10)

For the multivariate test example, there might still be an issue because the solutions for nu and P do not agree very well with the covariance filter:
@test message.soldis[1:dim,:] ≈ message2.soldis[1:dim,:] rtol=1e-2
@test message.soldis[dim+1:dim+dim*dim,:] ≈ message2.soldis[dim+1:dim+dim*dim,:] rtol=1e-1

Codecov Report

Merging #67 (ed228bf) into main (c501b0f) will increase coverage by 0.36%.
The diff coverage is 96.29%.

@@            Coverage Diff             @@
##             main      #67      +/-   ##
==========================================
+ Coverage   91.51%   91.87%   +0.36%
==========================================
  Files           8        8
  Lines         377      394      +17
==========================================
+ Hits          345      362      +17
  Misses         32       32

Impacted Files
Coverage Δ

src/sample.jl
93.75% <87.50%> (-6.25%)
:arrow_down:

src/filter.jl
94.26% <100.00%> (+0.34%)
:arrow_up:

src/guiding.jl
91.76% <100.00%> (+0.40%)
:arrow_up:

src/types.jl
89.55% <100.00%> (+0.32%)
:arrow_up:

src/utils.jl
58.82% <0.00%> (+5.88%)
:arrow_up:

Continue to review full report at Codecov.

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

I think we should test with a different value than
 ν = 0.0

in the 1-d case

🚀

Codecov Report

Merging #67 (d55e22d) into main (c501b0f) will increase coverage by 0.36%.
The diff coverage is 96.29%.

@@            Coverage Diff             @@
##             main      #67      +/-   ##
==========================================
+ Coverage   91.51%   91.87%   +0.36%
==========================================
  Files           8        8
  Lines         377      394      +17
==========================================
+ Hits          345      362      +17
  Misses         32       32

Impacted Files
Coverage Δ

src/sample.jl
93.75% <87.50%> (-6.25%)
:arrow_down:

src/filter.jl
94.26% <100.00%> (+0.34%)
:arrow_up:

src/guiding.jl
91.76% <100.00%> (+0.40%)
:arrow_up:

src/types.jl
89.55% <100.00%> (+0.32%)
:arrow_up:

src/utils.jl
58.82% <0.00%> (+5.88%)
:arrow_up:

Continue to review full report at Codecov.

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


Refactor the payment module

Description
This PR follows what was outlined in this https://github.com/celestiaorg/lazyledger-app/issues/33#issuecomment-926149689 , where we utilize a more standard sdk.Tx instead of creating a custom one for SignedTxPayForMessage, which let's us plug into the cosmos sdk in a less hacky/more traditional way.
This refactor still needs to fix cli WirePayForMessage tx generation and need more tests. It should be considered a WIP. I might also be able to break it up into smaller PRs
closes: #28, #33, #48, #59
blocked by #127

Not sure why all the CI is failing, all tests pass locally.

it seems there are some unrelated changes in this PR. Are they coming from upstream?

brief summary with chat with marko:

without custom fee logic, the default fee applies (which is locally set and could be zero and which is fine and part of the goal of this PR)
if custom logic is necessary just add it to the AnteHandler

Let's just make sure that if the base-fee is non-zero, we pay more if the blob/msg the payformessage commits to gets larger. Every other aspect around fees is not important right now!

Let's just make sure that if the base-fee is non-zero, we pay more if the blob/msg the payformessage commits to gets larger.

OK, this is apparently out of scope for this PR and paying for the blob will be handled in another PR.

it seems there are some unrelated changes in this PR. Are they coming from upstream?

Yeah, sorry we merged the branch that this PR was based off of #127 last evening and I didn't rebase this branch until today. Hopefully this is better. There are still a few minor code quality changes and some additions to tests that were orthogonal to this PR and definitely should have been in a separate PR. That's my mistake.

 I dont see the ante handler being touched, so i could be looking in the wrong place

This PR doesn't change how the fees are getting handled. I miscommunicated that by including #59 and #48 in this PR's message! I think I was going to handle those issues when this was a draft PR by burning the fees in the payment keeper, but then removed that later as it is not the best mechanism and this PR was already too big. This PR only changes the way we handle messages. Fees for MsgPayForMessage are still handled like a normal sdk.Msg, but the rollup data (core.Message) is not yet paid for.


Stopped working with latest nixpkgs?

After updating nixpkgs today, I now get an error in flake-programs-sqlite on rebuild:
error: attribute 'f91ee3065de91a3531329a674a45ddcb3467a650' missing

       at /nix/store/dnkgqnx4gqz811qkl6fjaphd08w1nj4r-source/programs-sqlite.nix:3:10:

            2| let
            3|   meta = (lib.importJSON ./sources.json)."${rev}";
             |          ^
            4| in
(use '--show-trace' to show detailed location information)

I assume something is now out of date?
I'm new to NixOS, but happy to provide details.

I just checked and you probably updated before the scraper could catch up with the channel bump.
The entry is now available (https://github.com/wamserma/flake-programs-sqlite/blob/f89d7d7b0affb1b8cf30462f1313ffe18e18ec23/sources.json#L4538) and things should be working on your side.
Can you confirm?

Looks like that did the trick, thanks!
For some reason, I had to delete my flake.lock to get it to see the latest version.

Instead of deleting the lockfile you can do nix flake update or nix flake lock --update-input flake-programs-sqlite.

That is what I originally did, which is why I was confused about the error persisting. I'll have to ask on Discourse to see what understanding I'm missing. But I appreciate your help.


Upgrade Java version to 21 LTS

What is expected
Please describe the wanted featured and how it could work
What is Happening
What is the actual behavior and lacks without this feature and what's the fallback while this feature is not implemented yet
Changes (Optional)

When upgrading to JDK 21 I faced the issue related to forced upgrade GCC version as DPS uses dynamic linking, maybe  I should consider #285  first


0551 - Student Attendance Record I

Description of the Problem
You are given a string representing an attendance record for a student. The record only contains the following three characters:
'A' : Absent.
'L' : Late.
'P' : Present.
A student could be rewarded if his attendance record doesn't contain more than one 'A' (absent) or more than two continuous 'L' (late).
You need to return whether the student could be rewarded according to his attendance record.
Code
class Solution:
    def checkRecord(self, s: str) -> bool:
            aCount = 0;
            lCount = 0;
            for ch in s:
                if ch == "L":
                    lCount += 1
                else:
                    lCount = 0

                if ch == "A":
                    aCount += 1

                if lCount > 2:
                    return False
                if aCount > 1:
                    return False

            return True

Link To The LeetCode Problem
LeetCode

Could this be assigned to me? Thanks!


When the parameter gpus of Trainer> 1, _pickle.PicklingError:

❓ Questions and Help
Before asking:

search the issues.
search the docs.

What is your question?
I have 4 GPUs, only Trainer(gpus=1,row_log_interval=10,max_epochs=100) can run normally. But the cpu utilization rate is extremely low, 40 cores only use 1 core. When the parameter gpus=2, the following error will occur.
Traceback (most recent call last):
File "/home/mingjian/pythoncode/GNNPyg/test/testskorch.py", line 51, in
trainer.fit(model, train_loader)
File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/pytorch_lightning/trainer/trainer.py", line 988, in fit
results = self.__run_ddp_spawn(model, nprocs=self.num_processes)
File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/pytorch_lightning/trainer/trainer.py", line 1068, in __run_ddp_spawn
mp.spawn(self.ddp_train, nprocs=nprocs, args=(q, model, ))
File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/torch/multiprocessing/spawn.py", line 200, in spawn
return start_processes(fn, args, nprocs, join, daemon, start_method='spawn')
File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/torch/multiprocessing/spawn.py", line 149, in start_processes
process.start()
File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/multiprocessing/process.py", line 105, in start
self._popen = self._Popen(self)
File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/multiprocessing/context.py", line 284, in _Popen
return Popen(process_obj)
File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/multiprocessing/popen_spawn_posix.py", line 32, in init
super().init(process_obj)
File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/multiprocessing/popen_fork.py", line 19, in init
self._launch(process_obj)
File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/multiprocessing/popen_spawn_posix.py", line 47, in _launch
reduction.dump(process_obj, fp)
File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/multiprocessing/reduction.py", line 60, in dump
ForkingPickler(file, protocol).dump(obj)
_pickle.PicklingError: Can't pickle typing.Union[torch.Tensor, NoneType]: it's not the same object as typing.Union
Code
trainer = Trainer(gpus=2,row_log_interval=10,max_epochs=100) trainer.fit(model, train_loader)

What have you tried?
What's your environment?

OS: [ Linux,Ubuntu 16]
Packaging [pip]
Version [0.8.5]

ddp_spawn requires everything to be pickleable (see https://pytorch-lightning.readthedocs.io/en/latest/multi_gpu.html#make-models-pickleable).
Do you have typing.Union[torch.Tensor, NoneType] anywhere in your codebase?
I believe you are running into this issue because you store something in your traininscript or LightningModule that is not pickleable. You don't see this error because for gpus=1 there is no need to pickle for multiple processes.
If you can't figure out what it is, try distributed_backend="ddp" setting in the Trainer.

Thank you so much! New problem arises. But the frustrating thing is that I have no idea to solve it.The new error is as follows：
Traceback (most recent call last):   File "/home/mingjian/pythoncode/GNNPyg/test/testskorch.py", line 51, in <module> Traceback (most recent call last):   File "/home/mingjian/pythoncode/GNNPyg/test/testskorch.py", line 51, in <module>     trainer.fit(model, train_loader)     trainer.fit(model, train_loader)   File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/pytorch_lightning/trainer/trainer.py", line 982, in fit   File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/pytorch_lightning/trainer/trainer.py", line 992, in fit     results = self.spawn_ddp_children(model)   File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/pytorch_lightning/trainer/distrib_data_parallel.py", line 462, in spawn_ddp_children     self.ddp_train(process_idx=task, q=None, model=model)   File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/pytorch_lightning/trainer/distrib_data_parallel.py", line 560, in ddp_train     results = self.ddp_train(local_rank, q=None, model=model, is_master=True)   File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/pytorch_lightning/trainer/distrib_data_parallel.py", line 560, in ddp_train     results = self.run_pretrain_routine(model)   File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/pytorch_lightning/trainer/trainer.py", line 1213, in run_pretrain_routine     results = self.run_pretrain_routine(model)   File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/pytorch_lightning/trainer/trainer.py", line 1213, in run_pretrain_routine     self.train()   File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/pytorch_lightning/trainer/training_loop.py", line 333, in train     self.reset_train_dataloader(model)   File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/pytorch_lightning/trainer/data_loading.py", line 211, in reset_train_dataloader     self.train()   File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/pytorch_lightning/trainer/training_loop.py", line 333, in train     self.train_dataloader = self.auto_add_sampler(self.train_dataloader, train=True)   File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/pytorch_lightning/trainer/data_loading.py", line 167, in auto_add_sampler     self.reset_train_dataloader(model)   File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/pytorch_lightning/trainer/data_loading.py", line 211, in reset_train_dataloader     dataloader = self.replace_sampler(dataloader, sampler)   File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/pytorch_lightning/trainer/data_loading.py", line 179, in replace_sampler     self.train_dataloader = self.auto_add_sampler(self.train_dataloader, train=True)     dataloader = type(dataloader)(**dl_args)   File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/pytorch_lightning/trainer/data_loading.py", line 167, in auto_add_sampler   File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/torch_geometric/data/dataloader.py", line 55, in __init__     collate_fn=Collater(follow_batch), **kwargs) TypeError: __init__() got multiple values for keyword argument 'collate_fn'     dataloader = self.replace_sampler(dataloader, sampler)   File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/pytorch_lightning/trainer/data_loading.py", line 179, in replace_sampler     dataloader = type(dataloader)(**dl_args)   File "/home/mingjian/anaconda3/envs/python36/lib/python3.6/site-packages/torch_geometric/data/dataloader.py", line 55, in __init__     collate_fn=Collater(follow_batch), **kwargs) TypeError: __init__() got multiple values for keyword argument 'collate_fn'
and my code
from torch_geometric.datasets import GNNBenchmarkDataset from torch_geometric.data import DataLoader dataset = GNNBenchmarkDataset(root=data_root, name=name, split=“train”) train_loader = DataLoader(dataset, batch_size=256,pin_memory=True,num_workers=8) trainer = Trainer(gpus=2,row_log_interval=10,max_epochs=100,distributed_backend="ddp") trainer.fit(model, train_loader)
Is the error due to a problem with the geometry library loading the dataset? Is there a good solution?

A quick search on their github reveals several issues with pickling. It looks like they still need to work on DDP compatibility. https://github.com/rusty1s/pytorch_geometric/issues?q=is%3Aissue+is%3Aopen+pickle

But the cpu utilization rate is extremely low, 40 cores only use 1 core

probably just increase num_workers to a higher number :)
now back to your new problem. It looks like torch_geometry uses a different type of dataloader so when we try to replace the ddp sampler it fails. Do you have a minimal code you can share in a google colab notebook? It would save me some time to reproduce, but if not it's ok and I'll try myself.

Thank you for your patience. Since I have not used google colab notebook. I will learn it as soon as possible. Hope to run it on google colab tomorrow. Please wait for me, thank you！

The code has been reproduced in the google colab notebook. However, only one gpu can be used on colab.

https://colab.research.google.com/drive/1yKg_Kb9gydFx1tWkRmOgoa2qJVp01AJP?usp=sharing

trainer = Trainer(gpus=2,max_epochs=100,distributed_backend="ddp")
Error is:

usr/local/lib/python3.6/dist-packages/pytorch_lightning/trainer/distrib_parts.py in sanitize_gpu_ids(gpus)
    408                 You requested GPUs: {gpus}
    409                 But your machine only has: {all_available_gpus}
--> 410             """)
    411     return gpus
    412

MisconfigurationException:
                You requested GPUs: [0, 1]
                But your machine only has: [0]

When gpu=1 is tested, and it can run normally.

Hi @guangmingjian
Thanks for the code, I was able to run it and investigate the dataloader issue. The solution for the reported error message
TypeError: __init__() got multiple values for keyword argument 'collate_fn' is to disable automatic replacement of the DistributedSampler and create it yourself:
trainer = Trainer(..., replace_sampler_ddp=False)
dataset = ...
sampler = torch.utils.data.DistributedSampler(dataset, num_replicas=num_gpus, rank=trainer.global_rank)
train_loader = torch_geometric.data.DataLoader(..., sampler=sampler)

The reason why we have to do this manually here is that torch geometric has a custom dataloader, and it is impossible for us to know which args we need to pass in. The use a custom collate_fn and set it internally. As far as I know, we cannot automate this.
This will solve the problem of the error message, but you will run into a different new problem, a new error saying that your batch is not on the correct device. I found out that torchgeometric uses a custom DataParallel module to move their Batch data to the device, but they don't implement a module for DistributedDataParallel.
It's a very similar problem as for torchtext. These datasets/dataloaders return objects that are not simple dicts, and so we don't have a generic way of moving data to the device, scatter and gather it.
Maybe the best is to open an issue on their github, although I already see some related ones to distributed.
cc @PyTorchLightning/core-contributors

Thanks for your answers!!!

you can try to use the latest version (not the stable one) e.g.:
pip install --upgrade pytorch-lightning==0.9.0rc11
see the related issues fixed with replacing the distributed backend implementation

@guangmingjian based on @awaelchli 's answer, closing this issue for now. Re-open if you think there is a need for further discussion.

Hi, I encountered a similar problem. When I set devices=2, accelerator="gpu". I got  _pickle.UnpicklingError: pickle data was truncated error.  I can't find distributed_backend in the document.


put sys.h back in to .gitignore. As part of the mistaken addition of sys.h, it was removed from .gitignore. Put it back.

Signed-off-by: Ronald G. Minnich<EMAIL_ADDRESS>

shouldn't this also delete sys.h from the tree?

sys.h is already deleted from the tree, earlier.

LGTM


option to specify path to tax dump files

As far as I can tell, the path to the tax dump files download by download_taxonomy.sh is hardcoded into StrainPro-build. It would be helpful if the user can specify the location to the tax dump files so that custom taxonomies can be used (eg., GTDB tax dump files instead of NCBI) or if the user already has the NCBI tax dump files downloaded and located elsewhere (eg., in a "databases" directory).

Thanks for the suggestions. I'll make it happen.

@nick-youngblut I was wondering if GTDB tax dump files are organized with the same format of NCBI files. If yes, you may specify their path in a text file which looks like below and run StrainPro with "-dump "
NodesDumpFilePath /path/nodes.dmp
MergedDumpFilePath /path/merged.dmp

Yeah, the GTDB tax dump files are in the same format as the standard NCBI taxdump files. Thanks for quickly creating the -dump option! I'll give it a try.
btw, my simple code for creating the taxdump files from the GTDB taxonomy can be found at https://github.com/nick-youngblut/gtdb_to_taxdump


RegExp match.groupCount problem

example code:
void main(List arguments) {
RegExp exp = RegExp(r'D(\d+)');
Iterable arMatch = exp.allMatches('D1D2D3');
for (final match in arMatch)
{
print('Capture Group Count: ${match.groupCount}');
print('Capture Group 0: ${match.group(0)}');
print('Capture Group 1: ${match.group(1)}');
}
}
result:
Capture Group Count: 1
Capture Group 0: D1
Capture Group 1: 1
Capture Group Count: 1
Capture Group 0: D2
Capture Group 1: 2
Capture Group Count: 1
Capture Group 0: D3
Capture Group 1: 3
the match.groupCount is 1, but I can index 0 and 1. Is it a bug?

It works by design (I think based on how I read the documentation). If you read the documentation for groupCount property:

Returns the number of captured groups in the match.
Some patterns may capture parts of the input that was used to compute the full match. This is the number of captured groups, which is also the maximal allowed argument to the group method.

The reason why can be found in the documentation for the group method:

Returns the string matched by the given group.
If group is 0, returns the match of the pattern.

So the value 0 is special since it will not return the result from any group but instead the match. Therefore if groupCount is e.g. 1 then the max value we can insert into the group method is 1. groupCount should therefore not be used like the length property of lists.
This can also be showed in the following example where I specify that the (\d+) should be a Non-capturing group:
void main(List arguments) {
  final exp = RegExp(r'D(\d+)');
  final arMatch = exp.allMatches('D1D2D3');

  print('Normal capture group:');
  for (final match in arMatch) {
    print('\tCapture Group 0: ${match.group(0)}');
    print('\tCapture Group 1: ${match.group(1)}');
    print('\tGroup Count: ${match.groupCount}');
  }

  final expNonCapture = RegExp(r'D(?:\d+)');
  final arMatchNonCapture = expNonCapture.allMatches('D1D2D3');

  print('\nNon-capture group');
  for (final match in arMatchNonCapture) {
    print('\tCapture Group 0: ${match.group(0)}');
    print('\tGroup Count: ${match.groupCount}');
  }
}

Which gives the following result:
Normal capture group:
	Capture Group 0: D1
	Capture Group 1: 1
	Group Count: 1
	Capture Group 0: D2
	Capture Group 1: 2
	Group Count: 1
	Capture Group 0: D3
	Capture Group 1: 3
	Group Count: 1

Non-capture group
	Capture Group 0: D1
	Group Count: 0
	Capture Group 0: D2
	Group Count: 0
	Capture Group 0: D3
	Group Count: 0

As you can see, even if groupCount is 0 we can still get the match with match.group(0).

Yes, it is correct according the document.
I find this problem because I used to write Java, C#, Go, they all return 2 at match.groupCount, but in dart it is 1. It is a little strange.
This problem is not a big problem when you know what the match.groupCount means. But it maybe confuses some starters switched from other languages.

Not sure about other languages but for Java it looks to be the same as Dart:

Returns the number of capturing groups in this matcher's pattern.
Group zero denotes the entire pattern by convention. It is not included in this count.
Any non-negative integer smaller than or equal to the value returned by this method is guaranteed to be a valid group index for this matcher.
https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#groupCount()

And:

Capturing groups are indexed from left to right, starting at one. Group zero denotes the entire pattern, so the expression m.group(0) is equivalent to m.group().
https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#group(int)

I am sorry, I confused my memory, Dart is same as Java, and C# itself do some trick.
Thanks for all the reply. It is my fault.


Added support for NAT, resolved #69

This resolves issue #69

now user can inject port number for communication to device, this can be useful for devices which are behind NAT router

I am also interested in a test by @GreNait which can be performed with the binaries generated here: https://github.com/ifm/ifm3d/actions/runs/264972185
To test the framegrabber module the usage of the Hz command should be sufficient ifm3d hz

this feature is already merged to master

this feature is already merged to master


fix: vue api doc issues

fix: vue api doc issues

:hammer_and_wrench: Type Of Change

[ ] Fix
[ ] Feature
[ ] Refactoring
[x] Documentation

:book: Description
Fixed a few issues with Vue API documentation, mostly with components not following correct naming conventions and @values not being set for certain properties. This should allow us to complete the Vue API docs story.
:bulb: Context
Certain components were showing blank for Vue API on docsite.
:pencil: Checklist

[x] I have reviewed my changes

:crystal_ball: Next Steps
Update in dialtone docs

Gonna merge this in since it's blocking me but let me know if you have any comments


Move and enhance the class_decoration property

Description:

The class_decoration property of a form needs two changes. First, it needs to be moved below the derived class properties. Secondly, it needs to be applied to the Derived class only if one is specified, and applied to the base class if not.

The location of the property has already been moved. I'm dubious about trying to outguess the user and know whether they want the decoration only for the base class, only for the derived class, or both. I think we should leave this up to the user to decide.


Does this have support for google sign in ?

Just need help with how to access this using a google account, is that currently supported?

I am attempting this as well with no luck.


Particle.io Argon Support

Hello,
I was wondering what it would take to get this to work on a Particle Argon?
I think I'm having a problem configuring the EMAIL_NETWORK_TYPE correctly, do you have any suggestions?
The Particle Argon uses a Espressif ESP32-D0WD 2.4 GHz Wi-Fi coprocessor.
Best,
Alan

Hi @ahartquist,
I am asking for a sample device to integrate into my library.
Bye Renzo

Hi @ahartquist,
No response from particle, you can try to write yourself to help me be supported.
Bye Renzo


Support multiple spaces in components

Is your feature request related to a problem? Please describe
Components like ui.stat convert multiple spaces to single space.
Describe the solution you'd like
Support multiple spaces.
Describe alternatives you've considered
Detailed discussion here: https://github.com/h2oai/wave/discussions/1665
Additional context
It should be supported for all components where it's relevant.

I can pick this up if possible and explore replicating the HTML behavior with

After a bit more digging I found that using \u00A0 as an extra space works even today.
q.page['example'] = ui.tall_stats_card(
    box='1 1 2 4',
    items=[
        ui.stat(label='PARAMETER \u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0 NAME', value='125%'),
        ui.stat(label='PARAMETER NAME', value='578 Users'),
        ui.stat(label='PARAMETER NAME', value='25K')
    ]
)


Update taskcv_loader.py

Typing error: replace self.opt.max_dataset_size with self.max_dataset_size

@ksaito-ut and @kunisaito I think this is a typing error in this file since there is no self.opt here.


Execution failed for task ':react-native-community_netinfo:generateReleaseRFile'.

Environment

System:
OS: Windows 10 10.0.22621
CPU: (8) x64 Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz
Memory: 4.20 GB / 15.91 GB
Binaries:
Node: 16.14.0 - C:\Program Files\nodejs\node.EXE
Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
npm: 8.3.1 - C:\Program Files\nodejs\npm.CMD
Watchman: Not Found
SDKs:
Android SDK: Not Found
Windows SDK: Not Found
IDEs:
Android Studio: AI-212.5712.43.2112.8815526
Visual Studio: Not Found
Languages:
Java: <IP_ADDRESS> - /c/Program Files/Eclipse Adoptium/jdk-<IP_ADDRESS>-hotspot/bin/javac
npmPackages:
@react-native-community/cli: Not Found
react: Not Found
react-native: Not Found
react-native-windows: Not Found
npmGlobalPackages:
react-native: Not Found
Platforms

i don't know for sure.
i am developing for android now
Versions

react-native-netinfo: "@react-native-community/netinfo": "^9.3.6"
react-native: "0.70.3"
react: "18.1.0"

Description

I am trying to build aab
i did ./gradlew clean, then ./gradlew bundleRelease then i get this error

Reproducible Demo

https://github.com/saver711/ringOnConnect

@mikehardy I am using react native version 0.61.5 and I applied the hotfix as the patch update. But I am still facing this issue. Please help.

React-native 0.61.5 is so old i wouldn't consider using it at all. Definitely out of support

I just update the react-native-community_netinfo version and it all working fine. Thank you @mikehardy for the quick response.


This site can’t be reached

Checklist

Have you pulled and found the error with jc21/nginx-proxy-manager:latest docker image?

Yes

Are you sure you're not using someone else's docker image?

Yes

Have you searched for similar issues (both open and closed)?

Yes

Describe the bug

This site can’t be reached
ERR_CONNECTION_TIMED_OUT
Nginx Proxy Manager Version

v2.9.18 © 2022 jc21.com.
To Reproduce
Steps to reproduce the behavior:

Go to 'add proxy host to my web server'
Click on 'domain name'
Scroll down to '....'
See error

Expected behavior

I want to enter website through my domain
Screenshots

Operating System

Rpi Debian 11 bulleye
Additional context

Hello, the same thing happens to me.  I had to reinstall the container and now it doesn't work for me with the same configuration.

That error seems to suggest that the forwarding from router to NPM is broken. It isn't an error that comes from a web browser after it connects to a proxy, but one that is given when it cannot get a response from IP:PORT asked for.


Unable to edit loaded fields from database

Hi, first of all its so great. Actually it is fantastic. I love it.
I need a little help. When the user create a form for the first time, I save the formData as JSON in database and after that when the user reloads the old schema ans it is json parsed into formData there is no way to delete and/or edit old fields.
any suggestions would be appreciated.

You should be able to load the data into the variable you pass to v-model, provided it's in the same format. I would suggest loading the data in the created lifecycle event of the parent vue component and then invoking the q-form-builder component and pass that data in as the v-model. If you're having trouble with that, could you post some examples (i.e. through something like pastebin) and I can take a look.

Thanks man for the quick reply. This is exactly what I have done. but neither I can edit a field nor delete it
created() {         this.commonSetPageTitle("Form Schema")         this.$q.loading.show({ spinner: QSpinnerGears })         this.fetch()     },     methods: {         fetch() {             this.formFetch(this.$route.params.slug)                 .then(() => {                     if (this.formGetItem.schema)                         this.formdata = JSON.parse(                             this.formGetItem.schema.schema                         )                 })                 .finally(() => {                     this.$q.loading.hide()                 })         },
I will send a pastebin link ASAP.

Sorry. I don't know why the codes are not formatted accordingly.

CodePen
Here is the code pen but I couldn't figure how to include Quasar in it so it is not running the code

And the screen shot is after fetching the saved schema from DB.

I would suggest stripping it all down to bare essentials, like not using Vuex. Put the value(s) you want to load right into a data object and pass that to v-model. If you can get that working, add in things like Vuex and see how it differs. Have you checked out and run the demo locally? I think it would give you a lot of insight into how to set up and run things.


Rounding-related tests

Make these tests pass:
{      //Alternative 1: Implicit rounding based on datatype
        using q4_4 = cnl::rounding_elastic_number<8, -4>; //8 bit fixed point with 4 fractional
        using q4_1 = cnl::rounding_elastic_number<5, -1>; //5 bit fixed point with 1 fractional
        q4_4 a = 0.4375;
        EXPECT_EQ(static_cast<double>(a), 0.4375);

        q4_1 b = a;
        EXPECT_EQ(static_cast<double>(b), 0.5);
}
{      //Alternative 2: Explicit rounding directed by programmer
        using q4_4 = cnl::elastic_number<8, -4>;
        using q4_1 = cnl::elastic_number<5, -1>;
        q4_4 a = 0.4375;
        EXPECT_EQ(static_cast<double>(a), 0.4375);

        auto b = cnl::round<q4_1>(a);
        EXPECT_EQ(static_cast<double>(b), 0.5);
}

As requested by @hbe72 .

Typical use case for rounding in DSP algorithms:
using storage_type = cnl::elastic_number<24,-20>
using accumulator_type = cnl::elastic_number<48,-40>

storage_type *a,*b,*c;
accumulator_type accu;
for (int k = 0; k<input_length;k++) {
   for (int i = 0; i < array_length; i++) {
      accu += a[i]*b[k+i];
   }
   c[k] = round<24,-20>(accu); //Here rounding from <48,-40> datatype to <24,-20>
}

Typically rounding is specified explicitly as above. But similar functionality can be achieved if a datatype supports rounding.

Changes merged. Note that the rounding_integer branch of CDSP no longer works because I deleted the rounding_integer branch of CNL. Change line 12 of CMakeLists.txt to develop and it should work.

Feel free to re-open if you find missing functionality. Given the dizzying combination of operators and types involved, there are bound to be things that don't work yet and I am fixing them lazily -- rather than make everything work perfectly at once.


simplex-chat: Add version 1.0.0

/verify

Please send this PR to the main bucket, because it is a command-line program.

Superseded by https://github.com/ScoopInstaller/Main/pull/3222


If possible, I would like to get the name of the method of the test well.

Looks like this is what you are looking for:
https://junit.org/junit4/javadoc/4.12/org/junit/rules/TestName.html

I can work around it by using that, but it still seems tedious to have to create an index like i++ for tests when taking multiple shots within a single method.
I think it would be ideal to be able to define Rules and Runners and override settings in such a way that those with narrower scopes are given priority.


Does not compile on raspberry pi 5 bookworm

The GPIO halt utility does not compile on Raspberry Pi 5 (bookworm). It is included as part of the Adafruit Arcade Bonnet script and I have reported this separately on that repository:

Issue #314 on the Adafruit Raspberry-Pi-Installer-Scripts repository

Including here for completeness.
If I clone the repo and run make, the error I get is:
gpio-halt.c:63:10: fatal error: bcm_host.h: No such file or directory
    63 | #include <bcm_host.h>
       |          ^~~~~~~~~~~~

It would compile after I installed the following headers as per this raspberry pi stack exchange forum.
sudo apt-get install libraspberrypi-dev raspberrypi-kernel-headers

But it still doesn't seem to run.

I worked at this some more, but didn't get very far. It's a non issue really because you can just use the built-in power button on the raspberry pi 5.


Signing algorithm

In the guidelines on the certificate governance (section 4.1.1), it is stated that Elliptic Curve "SHOULD BE" used. It is stated that RSA-PSS "SHOULD NOT" be used. At the moment, our PKI does not support either algorithm. We do support RSA-PKCS#1. Can we use RSA-PKCS#1 for the DSC-certificate? It is not explicitely stated for the DSC-certificate. For the other certificates (upload, TLS, DSCA) it is stated that you can use RSA-PKCS#1. Is it also allowed for the DSC-certificate?
Can the DSC-certificate contain an extended key usage "<IP_ADDRESS>.<IP_ADDRESS>.2" (clientAuth)?

Maybe this helps you Peter?
https://github.com/eu-digital-green-certificates/dgc-participating-countries/blob/main/gateway/CertificatePreperation.md#rsa-public-key-certificates
Best Regards
Panayiotis Savva

Dear Peter,
maybe I can provide some more insights.
It seems that you confuse the algorithm that the Document Signer (the entity that holds the document signer certificate (DSC)) uses to sign the digital green certificate with the algorithm that the CSCA uses to sign the DSC certificate.
It is recommended that the Document Signer uses ECDSA, hence he should hold a public key certificate that contains an EC public key. However, this certificate can be signed with RSA PKCS#1 v1.5 padding.
The certificateGovernance contains requirements for the DSC signature algorithm in Section 4.1 pointing to the Technical Specifications for Digital Green Certificates Volume 1 - Section 3.3.2. This document states that the Document Signer MUST use either ECDSA or RSA-PSS for his digital signatures.
The algorithm that the CSCA uses to sign the DSC certificate depends on the key of the CSCA and can be independent from the DSC signature algorithm.

Thanks for the response.
So now

Our CSCA is signed itself with RSA-PKCS#1.
we generated a DSC that was itself signed by that the private key of the CSCA (using RSA-PKCS#1).
We generated a DGC and used the DSC to sign it using RSA-PKCS#1
We validated that QR code of the above DGC (after trusting the DSC public). It worked

Just to confirm, 2 questions:

Can we continue working like that?
In case we must sign our QR codes with an Elliptic Curve signing also: I am afraid that we would need a DSC that is itself signed with Elliptic Curve, or its there no transitional requirement to do so?

Dear Peter,
please be aware that there are two signature schemes defined in RSA PKCS#1 with different padding. The first one is the legacy padding, often called RSA PKCS#1 v1.5 (often used to sign public key certificates). The RSA signature scheme that is called RSA-PSS (or RSASSA-PSS for RSA Signature Scheme with Appendix Probabilistic Signature Scheme) was defined in PKCS#1 >= v2. The most recent version of PKCS#1 is v2.2 and it can be found in RFC8017.
The digital signature that you apply at your Document Signer with COSE should be PS256 in case of RSA, which is RSASSA-PSS as of RFC 8230 (this was defined in Technical Specifications for Digital Green Certificates Volume 1 - Section 3.3.2.). In case you use PS256 (aka RSA-PSS) you should not use keys > 3000 Bit due to the space limitations of the QR code.
Hope this helps.
Best regards
Robin

Thanks for the responses. Clear now. Two more querstions:

According documentation, path length constraints of the CSCA certificate is required to be 0. Our CA does not specify the path length constraint. Is that going to be blocking us?
Can the DSC-certificate contain an extended key usage "<IP_ADDRESS>.<IP_ADDRESS>.2" (clientAuth)?

I believe the signing algorithm is now clarified, if new questions arise please open a new issue


How to disable 'Drag' on child element

I would like to use the drag option but not on all the .vue-grid-item element.
How to disable inside a child element ?
With an iframe or a button inside a .vue-grid-item element, it's not dragable, this is the behavior that I want with a textarea.

You can use the 'dragIgnoreFrom' prop on Grid Item to achieve this.
Specify the child element names to disable drag from in the comma-separated string for the prop.
Defaults to:  "a, button"
<grid-item v-for="item in layout"                            :x="item.x"                            :y="item.y"                            :w="item.w"                            :h="item.h"                            dragIgnoreFrom="a, button, textarea"                            :i="item.i">                     {{item.i}}         </grid-item>

Thanks, it works.
I can also specify a class or an id in the dragIgnoreFrom prop, nice !


Support to locate source file of finding for non-trivial stacks

Currently, only the toplevel item is used to locate the source file of a finding.
But this fails for stacks like this (taken from spring-petclinic):
All except the last item are located in JAR dependencies.
      "stack": [
        "org/springframework/data/jpa/repository/support/SimpleJpaRepository.java:382",
        "org/springframework/data/jpa/repository/support/SimpleJpaRepository.java:95",
        "org/springframework/data/repository/core/support/RepositoryMethodInvoker.java:119",
        "org/springframework/data/repository/core/support/RepositoryComposition.java:500",
        "org/springframework/data/repository/core/support/RepositoryComposition.java:277",
        "org/springframework/data/repository/core/support/RepositoryFactorySupport.java:624",
        "org/springframework/data/repository/core/support/QueryExecutorMethodInterceptor.java:137",
        "org/springframework/data/jpa/repository/support/CrudMethodMetadataPostProcessor.java:132",
        "org/springframework/samples/petclinic/PetClinicIntegrationTests.java:48"
      ],

I'm unable to reproduce this anymore.
Rendering of the above stack (VSCode is showing an empty stack):

The last item is correctly shown. The previous items, which are all located in libraries, are now shown.
@ahtrotta Should I display them somehow? Navigation to the source would be possible, at least for Java (either source files attached to the library or decompiled .class files).
IMHO, the non-project stack frames should be displayed as being disabled. I couldn't find out what VSCode would show...


MessagesListAdapter.clear() does not call notifyDataSetChanged()

This causes crashes when adding new data, especially if you were using custom ViewHolders.

Oh, yeah, we have missed it. Thanks! I fixed it in version 0.3.0.

One tiny fix. We added separate method clear(boolean notifyDataSetChanged). It can be useful if you want to add messages immediately after clearing. Method clear() does notifyDataSetChanged by default.


[fix] member blog addon form view #1329

Coverage decreased (-0.04%) to 84.753% when pulling ab4d70707b68cd3457eb78af57a638974c5d5b57 on itowtips:fix-member-blog into 41fcfc1cf1462995427e2d74dd614ba289aeddde on shirasagi:master.


Typescript error in Getting started example

Hello nick-keller!
I want to use react-datasheet-grid with my react-typescript project
since it has imposing features with great documentation.
But I think there's an issue when it's used with typescript.
here's the thing
When I copy-paste this Getting started example,
typescript complains since value is inferred as
Record<string, any>[]

However type of data is this
{
    active: boolean;
    firstName: string;
    lastName: string;
}

Maybe the issue above is caused by keyColumn function's incorrect type?!
(typescript stopped blaming the wrong type when I removed keyColumn from the above example because data was correctly inferred)
Could you please check this issue and give me some feedback?!
I'll wait for your answer. thanks for reading.

Hey @mass2527 ,
I just added a TS section in the doc, and some TS examples throughout, it should be easier now ;)


Allow for setting a base URL for hugging face

Actually, I see that this change is not enough with regards to the API key...

I am going to close this and introduce a more general change


Add CMake or Makefile to compile the libraries

Describe you problem / suggestion:
The install.sh script installs the sfml library from the distro packet manager, but it would be nice to use the sfml libraries included with the project in the /lib folder. Also, using CMake or Makefile will add support for Windows and MacOS.
Steps to reproduce (optional):
None
Possible fix (optional):

Option 1: Fix the current Makefile to compile the libraries and the source code into a single executable.
Option 2: Use CMake instead of Makefile for the same purpose.

OS

[x] : Windows
[x] : Mac OS
[x] : Linux

I added CMakeList.txt with commit https://github.com/alesbe/sorting-visualizer/commit/80669d05f05fe3e935da644257aa570a0a160298 and remove the old Makefile, but im getting this error:
sorting-visualizer: error while loading shared libraries: libsfml-graphics.so.2.5: cannot open shared object file: No such file or directory
I'm working on it right now.

Commit https://github.com/alesbe/sorting-visualizer/commit/9de51c6e99e77172a1f215c0afe8c75242dd69c5 and https://github.com/alesbe/sorting-visualizer/commit/46995711589da04015ef24b598b9b38c8ed696e4 fixes this issue, now the project builds using CMake!


[SPARK-7563] (backport for 1.3) OutputCommitCoordinator.stop() should only run on the driver

Backport of "[SPARK-7563] OutputCommitCoordinator.stop() should only run on the driver" for 1.3

CC @JoshRosen per request on https://issues.apache.org/jira/browse/SPARK-7563

Merged build triggered.

Merged build started.

Test build #39420 has started for   PR 7865 at commit f4479bc.

This patch merges cleanly.

Test build #39420 has finished for   PR 7865 at commit f4479bc.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test build #1279 has started for   PR 7865 at commit f4479bc.

This patch merges cleanly.

Test build #1279 has finished for   PR 7865 at commit f4479bc.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

I think branch 1.3 isn't building because of the same problem fixed by https://github.com/apache/spark/pull/7597  -- I will back-port it first.

Test build #1280 has started for   PR 7865 at commit f4479bc.

This patch merges cleanly.

Test build #1280 has finished for   PR 7865 at commit f4479bc.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Backport seems fine to me, so I think you can close this PR now.


2.1 -  cross browser testing needed

Not sure whether IE 11 is supposed to work with 2.1 or not (is there a list of browsers this release is targeting?), but the head of our conservation department reports the following with the 2.1 demo site:
"Having problems. I first opened it in IE (11) but there was overlaid text where the annotation tools are supposed to be. I then tried Firefox and all seemed well until I actually tried to place a selected annotation circle or square or etc on the image."
followups:
"It works well in Chrome. I love it and so pleased we moved to Mirador.
The only problems I encountered:
•	The polygon annotation tool does not let me add text and it continues to add data points until I click on something else.
•	I could not get the arrow tool to work.
•	Sometimes – not often - the text did not appear when I moused over an annotation.
I just tried Firefox a second time and this time it worked. I also tried Chrome again and the arrow tool for panning worked.  Life is a mystery. Should the arrow be a panning hand symbol?"
So, it seems IE 11 still has some issues and the above is mostly UX feedback on the annotation experience.

• The polygon annotation tool does not let me add text and it continues to add data points until I click on something else.

You should double click to finish drawing.We should add guide I suppose.

More browser testing results by a conservator within our organization [this testing was done on a Mac]:
Safari

Added each of the annotations and comments: all worked.
Replace object / Add slots / Toggle side panel / Arrows for panning in/out:  all worked.
Change Layout did not work — it got hung up with the spinning ball and I had to close.

Firefox

The annotations will not prompt me to add comment unless it is the first one I pick;  in other words, I have to clear existing annotations to get the comment box. [I have asked for more specifics on this]
Everything else OK.

Chrome

Everything worked.

Thanks, this is really helpful

FYI - This is what IE 11 looks like when opening a manifest.

@beaudet I can't recreate either of the issues mentioned for Safari or Firefox.  Can you get more information to recreate?

I've asked for more information including Safari version and OSX version.

The on-screen CSS based controls for contrast, brightness, grayscale, etc. have no effect on on IE11.  MS Edge seems to work ok.  Here's a screenshot from a test using browserstack.com showing grayscale enabled (yet the sepia color still shows) and brightness at 0% which obviously isn't happening.

I think we need to decide as a community what browsers to support.  The problem for organizations that are still running Windows 7 Enterprise (like us) is that the Edge browser requires a later operating system, so I'd strongly encourage the community to continue to support IE 11 for the sake of those who are subject to the Enterprise IT gods.

http://caniuse.com/#feat=css-filters
Unfortunately, not everything supports the CSS3 filter property which is
what those controls use.  See the table of support above. That will tell
you right away what browsers those controls will and won't work in.
Alternative approaches to supporting the manipulation controls in browsers
that don't support the CSS3 filter property are a bit out of scope for the
filter functions currently written.  Helper javascript functions would have
to be introduced to get the job done where CSS3 filters are not supported.
It would look something a lot like what is found on these posts (which show
grayscale, but the brightness, contrast and saturation helper functions
would be about the same) :
http://www.majas-lapu-izstrade.lv/cross-browser-grayscale-image-example-using-css3-js/
http://www.majas-lapu-izstrade.lv/cross-browser-grayscale-image-example-using-css3-js-v2-0-with-browser-feature-detection-using-modernizr/
That would give the power to pick and choose what browsers are supported.
You can see the list of supported browsers for this function listed on the
website and weight it against the caniuse.com table to see the difference
in cross-browser support you will gain, or if you are just worried about
having it work in a specific browser, you can model a solution off that bit.
I weighed those choices when writing the functions for my applications and
settled with taking whatever would support CSS3 filters for the ease of
sharing that function between applications (and ultimately with you all!).
Sadly, IE stopped supporting the -ms-filter property, and some old versions
of browsers don't know what the filter property is, so this introduced
restrictions which now you are seeing as well.
This should give you an overview of the choices you can make and the work
involved with making them for the filters.  Let me know if there are
questions.
On Sep 1, 2016 2:13 PM, "Dave Beaudet"<EMAIL_ADDRESS>wrote:

The on-screen CSS based controls for contrast, brightness, grayscale, etc.
have no effect on on IE11. MS Edge seems to work ok. Here's a screenshot
from a test using browserstack.com showing grayscale enabled (yet the
sepia color still shows) and brightness at 0% which obviously isn't
happening.
[image: image]
https://cloud.githubusercontent.com/assets/77699/18180755/3c4518c6-7056-11e6-8732-541dad032e58.png
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/IIIF/mirador/issues/1072#issuecomment-244181754, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ADIn3hoDF1cYS8bMC0QX1f35br4E2gPbks5qlyOtgaJpZM4JtC94
.

Would it make sense to hide the controls that don't work if the browser is detected to have no support for CSS filters?

I support simply hiding the CSS controls if feature detection doesn't have them possible. My understanding of the CSS is for simple and in-place controls of the image, which not every browser or user (depending on vendor, platform, and preferences) may support. There is a more deliberate and limited manipulation that would just rerequest the image as grayscale or any future supported transformation. The most compatible option would be canvas element transformations, which would allow for very rich filters, but would have to be performance tested and would require integration into the OSD module, which may not be worth the complexity.
So, +1 @beaudet for hiding the CSS filters.
Perhaps the future (or fork) feature from this would allow for transformations to the canvas simply by annotation of script or a few simple preloaded functions. In this way, users would be able to develop very specific-case and complex tools to run on images, even support for edge-detection and RTI and save them for future reference. The current CSS can do this, but not within Mirador and still to the limits of compatibility.


Documentation for Log4Net JSON payloads

Once the release has been published, I'll add back a readme.md file that just links to the documentation on googleapis.dev.

I'm fixing the AppVeyor failure in a separate PR.


Small playlist refactor. Fix for #1877, #1880 and #1882

Description
While using Plex Meta Manager, I stumbled upon some odd behavior with the playlist functionality. This got me digging into the code to make a few improvements.
The key changes in this pull request are:

Explicit User Specification: The modifications allow end users to explicitly specify their Plex admin user in the sync_to_users and exclude_users parameters. This provides more control and flexibility to the users.

Improved Playlist Fetching: I reworked the delete_playlist section. If the admin doesn't have the playlist, it now fetches it from regular users. This was necessary because my changes allow the end user to create playlists for specific users, excluding the admin. Without this change, the code would just look at the admin and stop if the playlist wasn't found. This required the addition of a new function, get_playlist_from_users(), in plex.py.

Fixed Unexpected Playlist Deletion: I fixed an issue where playlists were unexpectedly being deleted from the admin account. The problem was in the delete function. It was deleting the object before checking if it was a playlist. I rearranged the code to check for the playlist before. If self.obj is not a playlist object, the code now executes the elif self.obj: section. I also added more logic under if self.playlist: to handle different scenarios for the admin and other users.

These changes are all about making playlist management in Plex Meta Manager smoother and more user-friendly.
For more detailed information, please refer to the linked issues associated with this pull request. I welcome any feedback or suggestions for further improvements.
Issues Fixed or Closed

Fixes #1877
Fixes #1880
Fixes #1882

Type of Change

[x] Bug fix (non-breaking change which fixes an issue)

Checklist

[x] My code was submitted to the nightly branch of the repository.

For point 1 - do any wiki pages need updated to reflect this change? If so I would recommend adding to this PR

For point 1 - do any wiki pages need updated to reflect this change?

I believe the current documentation already implies that the sync_to_users and exclude_users parameters should support all users, including the admin user. The issue I encountered (#1877), was due to the admin user not being initially supported in these fields. This was not immediately clear and required a deep dive into the code to identify the root cause.
My pull request fixes this, aligning the functionality with the existing documentation. Therefore, I don’t see a need for changes to the wiki pages. The fix ensures the application behaves as one would intuitively expect based on the current documentation.
Please let me know if there are any further questions or concerns.


Can I built a website with similar CSS?

First of all, thanks for the nice stuff that is here! :sparkles:
I'm building a site that provides a nice API for listing and understanding software licenses, and I want to make sure I can take some CSS from choosealicense.com (especially the home page: the big title and the blue { description }).
Since it's open-source, probably it's fine, but I want to be 100% sure I'm not doing it wrong.
I will add also some thanks in my project as well. :smile:

Hi @IonicaBizau! Check out the license info here; the content for this website is CC-BY-3.0, and the underlying source code, including CSS, is MIT.

I'm building a site that provides a nice API for listing and understanding software licenses…

I'm just curious, what kind of software licenses?
Good luck!

and the underlying source code, including CSS, is MIT.

Should be OK, then. Thanks!! :cake:

I'm just curious, what kind of software licenses?

Mainly open-source licenses, but anybody will be able to add new licenses (via the GitHub workflow). I will share a link when my app is ready, but if you have superpowers, you can check out my private repos and you will find it. :grin:

I'm building a site that provides a nice API for listing and understanding software licenses...but anybody will be able to add new licenses (via the GitHub workflow)

@IonicaBizau have you seen https://developer.github.com/v3/licenses/ (which is powered by the licenses in this site)?

@bkeepers Yes, I saw that. I built a site to display licences and optionally fill the copyright data using querystring parameters and optionally show available paragraph-by-paragraph explanations, maintained by the community.
Example:

http://showalicense.com/?year=2013&fullname=Alice#license-mit

It fills the year data and fullname in the MIT license output.

I open-sourced all the things: http://showalicense.com/
You can check out the code at https://github.com/IonicaBizau/showalicense.com :sparkles:
Thanks! :cake:


consider the possibility of tilted Jres spectra (Hz/ppm)

I propose that you make it possible to display:

tilted J-res spectra. These spectra will have a chemical shift scale in the horizontal direction and a scale in Hz in F1. (typically 50 Hz in F1). Compared to a 1D spectrum, the multiplets would be tilted vertically (F1 projection: pure shift spectrum). I can provide examples. These spectra would be obtained by tilting J-res spectra or re-organizing DIAG spectra.
multiple quantum spectra. Usually Hz in F1. This would allow to work with 2D inadequate spectra. In general, the multiple quantum have scales in F1 are Hz, and vary with double the scale in F2.
Conclusion, generally, it would be nice to have ppm or Hz in both dimensions as default unit for 2D spectra. It means that the Larmor frequencies should be specified in F1 and F2 to interconvert.
In these two cases, what the projection would be may be different than for simple COSY; HSQC; HMBC.

@nes-cgn Do we have JRES of cytisine somewhere ?


Function not outputting the same hash as built-in function

The function doesn't output the same hash as PHP 7.2.
PHP 5.3.10 using this function
$hash = password_hash('mypassword', PASSWORD_BCRYPT, array('cost' => 10));
$hash is $2y$10$mdrfl9XUF9J/qe2wnxopNevC1HtAcVxmYz9JSoetyABJggR7aMmNe
PHP 7.2.24 calling native password_hash()
$hash = password_hash('mypassword', PASSWORD_BCRYPT, array('cost' => 10));
$hash is $2y$10$HV3YTr/Mg2KvijZzUz9VDet.dlLbeKqToYHhodFCnCURgZVz.VEy2
Am I missing something?

That is by design. It should always output a different hash. Here's an explanation.

Yeah, don't mind me.  I wasn't supplying it with the same salt.

One note: the salt parameter has been removed as of PHP-8, so my suggestion would be to not use it: https://github.com/php/php-src/commit/94ae35c9fbc34b26c514b2ba097e021744100f28

Oh, ok thanks.
If I didn't use my own salt, and I later upgraded to a version of PHP where password_hash() is built in, how would I verify the stored hashes if a different hash is output?

password_verify()

^^ That exactly. The hash value is supposed to change on every single call to password-hash. Instead, you use password_verify to check if an existing hash matches a password.

I've never used this function and am used to storing a hash, random salt
and hash algo in the database.
I tested password_hash() followed by password_verify() between this
function and the built-in function and it continues to work great.
Thanks!
On Thu, Apr 8, 2021 at 1:57 PM Anthony Ferrara @.***>
wrote:

^^ That exactly. The hash value is supposed to change on every single call
to password-hash. Instead, you use password_verify to check if an existing
hash matches a password.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ircmaxell/password_compat/issues/112#issuecomment-815985103,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACYPYQORQKW3IUR6AYQ7OZTTHXOBPANCNFSM42PGVBXA
.

Suggestion: do not implement a salt yourself. There is no need to store the hash algo in the DB as well. The output of password_hash has everything required to re-create it, including a random salt, an algo identifier, and the options. It manages it all for you, and that's the design of it.