Authorization Headers are not supported

I am trying to use api to make request to Alpaca. The Readme.io demo page shows me that I can add Authorization Headers for the API Key & API Secret. When I follow the example, my code crashes with the following message:

Error: Sorry, this operation currently requires multiple forms of authentication which this library doesn't yet support.

Here is the example:
import api from 'api';
const sdk = api('@testalpacadocs/v1#zryj16ll4d1dl0');

sdk.auth(process.env.API_KEY);
sdk.auth(process.env.API_SECRET);

await sdk.postOrder({side: 'buy', type: 'market', time_in_force: 'day'});

Screenshot

So yeah api does support authorization headers, but it doesn't support API endpoints that have multiple forms of auth because sdk.auth() has no way of knowing which security scheme, and authorization header, to apply that value to.
We've had some ideas on how to improve this, like adding a second argument to sdk.auth('API-KEY', 'x-api-key') to let you specify the header to attach it to but that conflicts with sdk.auth's handling of basic auth.
Will leave this open for discussion.

Getting this integrated would be a big enabler. Is there any workaround for me as a developer to set headers on the SDK? Can I access some internal variables or apply an interceptor to add the necessary header information?

There's unfortunately no workarounds at the moment.

I use API that requires 2 secrets, so it's really a blocker in using this lib. At least workaround would be great 🙏


chore: Fix javadoc in Http2FrameCodec.

Motivation:
Fix the javadoc rendering
Modification:
add {@code } to the code block.
Result:

Thanks @He-Pin


Overhaul Azure Pipelines configuration

Summary
This restructures our monolithic azure-pipelines.yml file into a
modular setup that separates the logic of specifying "what to run" from
"how to run".  For example, the different processes for running the
Python tests on Linux, Mac and Windows are separated out into three
template files, which are then called by the "branch push" and "PR sync"
pipeline files in a few different stages.  This is also to centralise
the logic for "how to run"; previously, it was duplicated in a few
different stages.  The exception to separating "what" and "how" is in
the deployment (tag) pipeline; each wheel is only built once, and there
is no need to put in an extra layer of indirection.
There are also major changes to content of "what to run".
Branch push:
    This now only runs a single Linux test, just as a sanity check.
    Previously it ran the full PR CI suite, including lint, docs,
    tutorials, and the entire Python testing matrix.  This was
    unnecessary, as the branch protection rules and PR merge
    strategy ensured that the code must already have been up-to-date
    and passed the PR CI before it could be pushed to the branch, so
    was simply burning CI resources for no benefit.  To the best of
    my knowledge, the branch-push CI had never caught a bug.

PR sync:
    This remains split into two stages, but now only the oldest and
    newest Python versions are tested, rather than the entire
    matrix.  It is exceedingly rare (I'm not sure it's ever
    happened) that a commit breaks an intermediate Python version
    _only_, so instead we add a new "nightly" CI run to test the
    full matrix, which should be sufficient to catch these.  The
    "preliminary" stage is reduced to lint, docs and a single test
    run; about half of PR commits cause a CI failure, and over 90%
    of these would be caught by the new structure.  The second stage
    contains the tutorials and the rest of the
    `{oldest,newest},{windows,mac,linux}` matrix.  This is to reduce
    total CI load, with the intent that failing runs should almost
    universally fail just as quickly as they did before.

Nightly:
    Entirely new.  This is tests of the full matrix of Python
    versions and OSes for the `main` and `stable` branches, if a
    given branch was updated since the last run.  It should be very
    unlikely that this run catches errors.

Tag push:
    The deployment process is entirely unchanged.

Details and comments
The YAML files should all be syntactically valid and spawn the correct jobs, but I need access to Terra's CI to actually get VMs allocated to run the pipelines.
This PR needs to come along with a corresponding change to the Azure configuration.  The azure-pipelines.yml file is magic and automatically recognised, but this new structure needs the pipelines to be manually added on the Azure web interface (I can't do this for Qiskit-org repos).  This is normal for Azure - it's expected if you want to have more than one pipeline.
We already had more than one "logical" pipeline, this PR just separates them out into physical units, and makes the structure modular so it's clearer to see what's run, without the chaff of "how" it's run.
The new files are in the .azure directory.  Loose files are the actual pipelines.  Files in .azure/templates are the modules that define how to "run a test on Linux", "lint and style check" or "build the documentation" (etc).

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.005%) to 83.385%

Files with Coverage Reduction
New Missed Lines
%

qiskit/pulse/library/waveform.py
3
89.36%

Totals

Change from base Build<PHONE_NUMBER>:
-0.005%

Covered Lines:
52311

Relevant Lines:
62734

💛  - Coveralls

On the subject of templating the different OS paths for testing: I considered it, and it wasn't clear to me if it'd be easier to read or update.  There's a fair amount that changes between the different OSes, and these scripts don't really need updating very much, so I leaned in the direction of being slightly more verbose, but keeping all the logic in one place and very explicit rather than trying to make a potentially awkward abstraction.  That's not a decision I'm married to, but so far the even more verbose/repetitive way we've done things has worked fine and not been especially difficult to update.
The main original purpose of the PR was to change the "what to run" bits (reduce PR sync load, gut branch push and create the nightly run).  Before we were running all the triggers out of a single file (I'm surprised Azure don't make a pipelines: array element in their YAML schema if they're going to have a single magic file), but at the point we wanted to run really different things between branch push, PR sync and nightly, it became unreasonable/impossible to manage in a single file.  I added the test-*.yml templates because complete duplication didn't feel like great style.

I'm surprised Azure don't make a pipelines: array element in their YAML schema if they're going to have a single magic file

IIRC, the way I've seen this done in the past is to have pipelines as stage templates (that are never reused) that get conditionally expanded into a single entrypoint azure-pipelines.yml.
I think the separation as you have it is a nice improvement.

I've just force-pushed this, since it's been rebased over some changes to the pipelines in the time since I originally wrote it.  Those changes are just incorporated into the relevant template files.  Additionally, I've put the wheel builds into a template file now (they previously were hard-coded with repetition) - it's just a little easier to read now, perhaps?
I tested the jobs and passing of environment variables as best I could on a private Azure organisation using a custom local agent in a VM - I could only attempt to run the Linux parts, but everything seems to be getting passed through correctly.
The current form of this PR would need 4 different pipelines configuring in the Qiskit Azure organisation.  That's a bit nicer for sorting purposes, but it's a little harder work to set up, and has the downside of losing continuity of what we have.  @kevinhartman put me on to a way to conditionally compile these individual pipelines into one main entry point (azure-pipelines.yml) with the various stages only included if they match the correct trigger.  I meant to try that before I resynced this PR.  I'll try it now.

Ok, 51884294f updated this PR so it's now all conditionally built off the pre-existing azure-pipelines.yml file, which is entirely re-written compared to the PR base.  You can see the new testing structure running in the reported statuses now.

Ok, I've now configured the Azure bot to leave comments on #7864 whenever the nightly testing run fails and include a link to the logs for that run.  You can see on example from my fork: https://github.com/jakelishman/qiskit-terra/issues/11#issuecomment-1086296122.

This sounds like a good idea with the split between "working" and "full" CI. We've essentially made the split already with the two-stage process, and we can certainly update the Pipelines template compilation to only run the second stage if a particular label is applied to the GitHub PR.  I think there should be a separate label for that (i.e. not "automerge") because to me they're two separate parts of the PR process, but that's not so major.
I think it might be best to make those changes in a follow-up PR, because that'll need to come with some additional updates to the Mergify bot configuration and potentially to the branch-protection rules on Terra.  Perhaps we can merge this now, and follow up on the larger split?

Also: I was thinking for the split between "partial CI" and "full CI", perhaps it's better to condition it on whether the PR is in draft or not, rather than a label.


Add instructions for using 'extra:' fields in landscape.yml

To support the drive for more complete project information in landscape.yml

@tegioz I missed the PR adding the "extra" field instructions in the landscape2 repo. I agree, information should live only in one place. deleted the file on this side and linked to yours.


Claim Window

@negamax commented on Wed Jul 18 2018

It would be good to have two buttons for claiming ETH and REP separately. There are two transactions on one click. The amount of ETH may be lower than the gas fee and user may want to accumulate.

I made multiple transactions for participation tokens. They don't get displayed correctly. Sometimes 0 on the Dispute window, sometimes previous ones at claim window. I see all of them now in claim window after resolution

@petervecchiarelli commented on Fri Jul 20 2018
https://app.clubhouse.io/augur/story/14283/github-claim-window

@sharkcrayon commented on Mon Jul 23 2018
@negamax You're talking about claiming ETH/REP as a reporter on the Portfolio: Reporting page, correct?
@nuevoalex If the user has ETH to collect from multiple fee windows, is that going to be done in one tx overall or one tx per fee window? I suspect it's the second way, in which case waiting to accumulate ETH will not help.

@sharkcrayon commented on Mon Jul 23 2018
@negamax Can you clarify this a bit for me?

They [PTs] don't get displayed correctly. Sometimes 0 on the Dispute window, sometimes previous ones at claim window. I see all of them now in claim window after resolution

@nuevoalex commented on Wed Jul 25 2018
Its currently one tx per fee window, though an API exists to do multiple claims in one tx so we may improve this later

Closing as a duplicate of #575


Cloudfront 403 Error

When I try to download an episode, I get the following error:
./crunchy-cli download https://www.crunchyroll.com/de/watch/GJWU294XK/attack-on-titan-final-season-the-final-chapters-special-1
:: √ Logging in
:: √ Parsed url 1
:: √ Loaded series information for url 1
:: Attack on Titan Season 4 (Attack on Titan Final Season (German Dub))
::      1. Erdrumoren » S04ESP1
:: An error occurred: parse error HEAD: Expecting </META> found  (https://pl.crunchyroll.com/evs3/25c7dccaa8c6970503b348dc97d006b0/assets/604ffb646f0fc34e3a0f00307d396093_,5265820.mp4,5265821.mp4,5265819.mp4,5265817.mp4,5265818.mp4,.urlset/manifest.mpd?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cCo6Ly9wbC5jcnVuY2h5cm9sbC5jb20vZXZzMy8yNWM3ZGNjYWE4YzY5NzA1MDNiMzQ4ZGM5N2QwMDZiMC9hc3NldHMvNjA0ZmZiNjQ2ZjBmYzM0ZTNhMGYwMDMwN2QzOTYwOTNfLDUyNjU4MjAubXA0LDUyNjU4MjEubXA0LDUyNjU4MTkubXA0LDUyNjU4MTcubXA0LDUyNjU4MTgubXA0LC51cmxzZXQvbWFuaWZlc3QubXBkIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzEwNTkzNzE5fX19XX0_&Signature=OOreZO8OpWmQi3UfX2zV9yK1bwK~OGQilnAyx18~7BNbDuEjmd0Xm5nmUr6flFwh40VXFGIRqjUwd1W2l-vyEm9DL9coo3pKAz10hDsSui1U4rWxNXctLF5AhI7CVKN9KKnwlgKcs1wx50h2kr6eLIq5s9sSm2tquz6e3bIDTt1OdaSlK9y4mJoNiueiK9V8DPG8bRZdKDDRaoO6~fiWVTC9qGaEbVRWTuOtc37kCpJ0~SPjlXJZP3yIGYFxIL7vC9klfMNJhw0TmGnEF3ZHdkrgyR9ykJbYfBPhKMC2nYKp~QEkyq1U6pH1VoEJiXld2j3t3nv6uZJYB4P6Okz9wA__&Key-Pair-Id=APKAJMWSQ5S7ZB3MF5VA): <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>

403 ERROR

The request could not be satisfied.

Request blocked.
We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.

If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.

Generated by cloudfront (CloudFront)
Request ID: zHX99stDva3I9Mq3Ila7Icvuy26WYKAZUnmWhHlE9aIkl0HTBa4B1g==

<ADDRESS>
</ADDRESS>

It was working fine a few days ago.
Client:

OS: Windows
Version: 3.3.1

same

I am also getting this error.

I think I worked out why, Crunchyroll updated their server protocol i think,
the missing file says something about manifest.mpd, with a format of https://pl.crunchyroll.com/evs3/[something]/assets/[something]_,[fileset],.urlset/manifest.mpd?Policy=[base64_data]&Signature=[base64_data]&Key-Pair-Id=[something]
now it's in a format of
``` with a token set in `Authorization: Bearer: [base64_data]`

Hope this helps!

i also see something about Widevine DRM so that might cause further problems (drm would make it effectively impossible to download from unless there was some exploit/key leak)

Wait sorry I’m kinda new to GitHubs what’s the difference between an issue and a pull request?

yt-dlp tracking this same issue yt-dlp/yt-dlp#9439

There seems to be a workaround that was made on that issue, it might help with this project

same error

es broke for me too.

@TheAznCoderPro You don't need to "exploit" or "have a key leak", you could easily sniff the key with a MITM on a rooted android. ^^"
@samchop The server status went well again, but the problem still exists. I don't think it's server related. :)

Wait sorry I’m kinda new to GitHubs what’s the difference between an issue and a pull request?
@TheAznCoderPro An issue is generally when someone is having an "issue" with the code, haha. Like they've found a bug/error, or sometimes they're used to ask the devs to add new features.
A pull request is when someone has written new code or changes they would like to contribute to the project. A ticket is opened and the code is reviewed before deciding if it should be merged with the project.

@kerkmann dang, I was sure hoping this would fix itself haha

@kerkmann dang, I was sure hoping this would fix itself haha

I think the downloading logic might have to be rewritten slightly to use a different download algorithm, might have to wait for devs unless someone can 'pull request' something.

I think it could be the end
See https://github.com/yt-dlp/yt-dlp/issues/9453

You plan to add support to WV stream using self owned l3 file?

what's an i3 file? decryption key?

I've tested all endpoints I know of and none has working drm-free streams anymore. If Crunchyroll keeps this change, downloading/decrypting with an L3 file/decryption key as @hazy-kun suggested will be the only way to go

You plan to add support to WV stream using self owned l3 file?

what's an i3 file? decryption key?

@TheAznCoderPro yes it is

now what are the assumable ways we can do to download

now what are the assumable ways we can do to download

Currently nothing. I will evaluate the impact of the issue and see if I can add something to bypass it later today

You plan to add support to WV stream using self owned l3 file?

what's an i3 file? decryption key?

@TheAznCoderPro yes it is

how do you get i3 file?

now what are the assumable ways we can do to download

Currently nothing. I will evaluate the impact of the issue and see if I can add something to bypass it later today

Please do it, we will be grateful to you (thats all I can say hehe)

I've tested all endpoints I know of and none has working drm-free streams anymore. If Crunchyroll keeps this change, downloading/decrypting with an L3 file/decryption key as @hazy-kun suggested will be the only way to go

The best will be switch to Android endpoint, MPD and self-provided L3 (from user not you) as a lot of others teams does but it's just a hint, I'm just here to help

And some hints about getting L3 from yourself would be appriciated.

[Crunchyroll-Downloader-v3.0] is fixed for now
https://github.com/hama3254/Crunchyroll-Downloader-v3.0/issues/911
check if fix works for you

[Crunchyroll-Downloader-v3.0] is fixed for now
hama3254/Crunchyroll-Downloader-v3.0#911 check if fix works for you

It's broken again.

I've tested all endpoints I know of and none has working drm-free streams anymore. If Crunchyroll keeps this change, downloading/decrypting with an L3 file/decryption key as @hazy-kun suggested will be the only way to go

TPD has made a mark on this Crunchy DL and it is working fine as per users, I guess you need to have a look at implementation of his version and that would definitely crunchy-cli take its mark again!

[Crunchyroll-Downloader-v3.0] is fixed for now
hama3254/Crunchyroll-Downloader-v3.0#911 check if fix works for you

It's broken again.

The END of the Crunchyroll-Downloader-v3.0!

[Crunchyroll-Downloader-v3.0] is fixed for now
hama3254/Crunchyroll-Downloader-v3.0#911 check if fix works for you

It's broken again.

The END of the Crunchyroll-Downloader-v3.0!
DRM

there's 2 paid softwares that still can download cr. streamfab and cleverget. If you're clever you'll find the means for free.

[Crunchyroll-Downloader-v3.0] is fixed for now
hama3254/Crunchyroll-Downloader-v3.0#911 check if fix works for you

It's broken again.

The END of the Crunchyroll-Downloader-v3.0!
DRM

there's 2 paid softwares that still can download cr. streamfab and cleverget. If you're clever you'll find the means for free.

may i know which softwares you meationed?

[Crunchyroll-Downloader-v3.0] is fixed for now
hama3254/Crunchyroll-Downloader-v3.0#911 check if fix works for you

It's broken again.

The END of the Crunchyroll-Downloader-v3.0!
DRM

there's 2 paid softwares that still can download cr. streamfab and cleverget. If you're clever you'll find the means for free.

may i know which softwares you meationed?

oh... well... this is weird as I already mentioned them...

Other downloaders are working on it:
https://github.com/anidl/multi-downloader-nx/issues/588
(I've got the mpd branch working locally for me.) It seems like this will be the only path forward, which is fine, but has the downside of not being able to be a 'batteries included' solution. Linking to information about how to get the required keys dumped might also be an issue, so it because a bit of a burden on the user. That said, it wasn't even that hard with the tutorial I found.

Other downloaders are working on it:
anidl/multi-downloader-nx#588
(I've got the mpd branch working locally for me.) It seems like this will be the only path forward, which is fine, but has the downside of not being able to be a 'batteries included' solution. Linking to information about how to get the required keys dumped might also be an issue, so it because a bit of a burden on the user. That said, it wasn't even that hard with the tutorial I found.

nah, you just need to tell what to get and where to put (folder). How to get will depend of research skills of the user. It's 5 minutes until a good tutorial shows on google. If the user can't do that then it's for the better (both for devs and user)

It's 5 minutes until a good tutorial shows on google.

I found a bunch of tutorials for Android and Windows users, but couldn't find anything for MacOS and iPhone, should i just spin up a windows vm and dump keys from that?

It's 5 minutes until a good tutorial shows on google.

I found a bunch of tutorials for Android and Windows users, but couldn't find anything for MacOS and iPhone, should i just spin up a windows vm and dump keys from that?

There is tutorial for Android and Windows only for a reason. I don't think it would be possible to extract CDM from any apple device. Instead download android studio and follow this tutorial

It's 5 minutes until a good tutorial shows on google.

I found a bunch of tutorials for Android and Windows users, but couldn't find anything for MacOS and iPhone, should i just spin up a windows vm and dump keys from that?

There is tutorial for Android and Windows only for a reason. I don't think it would be possible to extract CDM from any apple device. Instead download android studio and follow this tutorial

Thanks for the tutorial link!

It's 5 minutes until a good tutorial shows on google.

I found a bunch of tutorials for Android and Windows users, but couldn't find anything for MacOS and iPhone, should i just spin up a windows vm and dump keys from that?

There is tutorial for Android and Windows only for a reason. I don't think it would be possible to extract CDM from any apple device. Instead download android studio and follow this tutorial

got my keys, just wondering how long do they last?

utill Google revokes it.

if i don't share the key is the chance of that pretty low? do they have some kind of key rate limit?

if i don't share the key is the chance of that pretty low?

Yes , the fewer people that knows about the key been used illegally, the lower the chances of Google revolving it.

do they have some kind of key rate limit?
Knowing Google, there will be a rate limit or some AI watching the activities of each key.

utill Google revokes it.

if i don't share the key is the chance of that pretty low? do they have some kind of key rate limit?

Do not share your keys. Do you share the keys to your house? Do not do that. You'll lose control over it therefore the key itself.

Quick question about the keys - I tried Pixel 6 with Pie, but CR there said that Chrome is too old.
What Device/OS combination worked?

Quick question about the keys - I tried Pixel 6 with Pie, but CR there said that Chrome is too old. What Device/OS combination worked?

at which step? browsing to a drm site to dump the keys?
use https://bitmovin.com/demos/drm

The blob thing is the .bin right? And the private key is the json? Am I doing that right?

The blob thing is the .bin right? And the private key is the json? Am I doing that right?

private_key.pem -> device_private_key
client_id.bin -> device_client_id_blob

my .pem is a json is that a problem?

multi-downloader-nx is working for me on both mac and linux, but have to say I still miss crunchy-cli. I'm not sure if this was something effected by the recent changes but downloading with CC was much faster than MDN (even when I don't include the time it takes to decrypt). it would be amazing if there's a way to use it with our own cdm.

multi-downloader-nx is working for me on both mac and linux, but have to say I still miss crunchy-cli. I'm not sure if this was something effected by the recent changes but downloading with CC was much faster than MDN (even when I don't include the time it takes to decrypt). it would be amazing if there's a way to use it with our own cdm.

i tried to use it but it gave me a weird error, what install did u use?

On mac I got weird issues at first using the GUI so now im using the latest mac os cli on  the release page
Make sure you do the following:

Have all the requirements installed that are listed on the github page
bin-path file has all the requirements set to the right paths, or that you can access the ffmpeg, mp4decrypt etc from the command line.
your two l3 files are in the widevine folder
in the cli-defaults file add "kstream: 5"

It's a shame, it seems there's still no solution for this DRM issue. I even used an automated script to make the download of new episodes automatic haha. I hope the developers can find a workaround for this problem. I would even pay a reasonable amount (within my budget) monthly to keep this tool functional. I use StreamFab, but it doesn't compare to our beloved crunchy-cli. The real charm is in automation, and crunchy-cli is a thousand times more powerful. I'm eagerly awaiting an update that can bypass this issue.

It's a shame, it seems there's still no solution for this DRM issue. I even used an automated script to make the download of new episodes automatic haha. I hope the developers can find a workaround for this problem. I would even pay a reasonable amount (within my budget) monthly to keep this tool functional. I use StreamFab, but it doesn't compare to our beloved crunchy-cli. The real charm is in automation, and crunchy-cli is a thousand times more powerful. I'm eagerly awaiting an update that can bypass this issue.

I had my previous automated script working with yt-dlp. I just fixed mine yesterday and got back to work. It now uses 2 tools combined (because I'm lazy and the new tool is a nightmare to parse as it is but works as a charm for download and it is faster). I just changed my script to get the episode id instead of links as the new tool like a lot of that. I have opened an issue there for the dev to make CR API json dump to file (as it is easear and faster to make than console output) for now. This will make automation possible again using only one tool.
What is the new tool? It was discussed in this topic. Go read a bit.

It's a shame, it seems there's still no solution for this DRM issue. [...]. I hope the developers can find a workaround for this problem.

Technically solutions are there. I have local code changes which is able to decrypt DRM (with the download command), but unfortunately I'm not allowed to distribute them legally.
Sony owns Crunchyroll and Sony has a history of aggressively DMCA'ing projects and sending cease-and-desist letters. I might take the risk of a DMCA takedown, but I do not have the financial resources to pay a cease-and-desist letter (besides other legal trouble which might come along with it).

I use StreamFab [...]

StreamFab operates from China and Sony can't do anything against them. Sadly I doesn't reside in China (or any other country in which Sony can't take down the project) :p

StreamFab operates from China and Sony can't do anything against them. Sadly I doesn't reside in China (or any other country in which Sony can't take down the project) :p

Maybe we find someone from China who wants to provide a fork with the DRM code? jk :P

It's a shame, it seems there's still no solution for this DRM issue. [...]. I hope the developers can find a workaround for this problem.

Technically solutions are there. I have local code changes which is able to decrypt DRM (with the download command), but unfortunately I'm not allowed to distribute them legally. Sony owns Crunchyroll and Sony has a history of aggressively DMCA'ing projects and sending cease-and-desist letters. I might take the risk of a DMCA takedown, but I do not have the financial resources to pay a cease-and-desist letter (besides other legal trouble which might come along with it).

I use StreamFab [...]

StreamFab operates from China and Sony can't do anything against them. Sadly I doesn't reside in China (or any other country in which Sony can't take down the project) :p

use alternatives methods to share it like TG or self-hosted solutions, just to not waste all the time on this project

There won't be any further development. See #362

Well a DRM-free endpoint was discovered, until this closes down development (or at least maintaining) will continue. See https://github.com/crunchy-labs/crunchy-cli/issues/362#issuecomment-2034838294.
v3.3.2 works again.


Integrated terminal not showing up

VSCode Version: 1.40.0
OS Version: Windows_NT x64 10.0.17763

Steps to Reproduce:

Open VS Code
Click on Terminal - New Terminal

Does this issue occur when all extensions are disabled?: Yes
Integrated terminal is a black screen without any prompt.

@arjunbox can you open Developer Tools (F1 -> Toggle Developer Tools) to see if there is any error logged there?

VSCode Version: 1.40.0
OS Version: Windows_NT x64 10.0.17763
Extensions: None. Its a fresh install. .vscode/extensions folder is empty.
Steps to Reproduce:
Open VS Code
Click on Terminal - New Terminal
Integrated terminal is a black screen without any prompt.
There are no errors in Dev Tools console.

Please let me know if you need any other information.

Same issue happens after upgrading to the latest 1.40.1.
I found a workaround that you can try. Enable the '--verbose' option on the command line, then the terminal will show up. Otherwise it gets stuck forever, cannot do debugging, cannot build.
This is on amd64 Ubuntu 16.04.

This is a bug in Windows 10 1809, unfortunately we have no way to work around the issue so you will need to wait until you get the next version of Windows 10 (1903).
/duplicate https://github.com/Microsoft/vscode/issues/57803

@tufei please create a new issue as I believe this one is a Windows 10 problem.


Compilation fails when using  project references with tsc -b

TypeScript Version:  3.1.0-dev.20180901
Typescript build fails when using tsc -b with project references. The generated .d.ts files in outDir fails to resolve relative imports imports
Another(consequence) issue is that extending an interface does not recognizes properties of super interface. As can be seen in the output below a.ts imports interface IT2 from which it extends with another property prop3 but the compiler fails to resolve relative reference in generated d.ts file and throws error.

Search Terms:
tsc build
project references
Code
https://github.com/pragatisureka/typescript-build-test
This repo is similar to https://github.com/RyanCavanaugh/project-references-outfile  but without outFile
Expected behavior:
Build succeeds
Actual behavior:
Build fails
mainpkg/dist/a.d.ts:1:21 - error TS2307: Cannot find module './b'.

1 import { IT2 } from './b';
                      ~~~~~

pkg2/c.ts:6:9 - error TS2322: Type '{ prop1: string; prop2: string[]; prop3: number; }' is not assignable to type 'IT1'.
  Object literal may only specify known properties, but 'prop1' does not exist in type 'IT1'. Did you mean to write 'prop3'?

6         prop1: 'text',

Related Issues:
#26863
#26689

For relative imports to work correctly with project references, you need to make sure that the output structure in outDir is the same as the source directory. That's because the compiler doesn't rewrite the import paths for referenced projects.
Your current setup outputs the following structure:
dist
  ... output files of mainpkg
  ... output files of pkg2
src
  mainpkg
    ... files of mainpkg
  pkg2
    ... files of pkg2

But you actually need the following structure to make it work.
dist
  mainpkg
    ... output files of mainpkg
  pkg2
    ... output files of pkg2
src
  mainpkg
    ... files of mainpkg
  pkg2
    ... files of pkg2

Thanks for clarifying. I misread the outDir config.
with this setup you would actually need import {IT1} from '../../mainpkg/dist/a' in c.ts to make the compiled output work but compilation might still fail.
I guess the issue importing ./b in a.d.ts is caused by the fact that outDir is nested inside rootDir. Switching to a directory structure like the one I described above should fix that.

Thanks for the reply I will try it out if this works then maybe we can mark it as workaround available and close this issue

@ajafff moving the outDiroutside rootDir solves this problem. Closing this issue.


Added support for requestMtu

Since API 21, is possible to set the MTU connection parameter and send packet with length up to 512 bytes.
This implementation bring the support to the RxAndroidBle library.
I've also added the related tests method and updated the sample.
If you prefer I can set up a different activity in the sample for test this functionality.
I've also added the request for the location permission in the sample project.
Tested on a Nexus 5X with Nougat
I know that there is already another PR related to the MTU, but I've implemented as a separated function.

I've experienced some stalled negotiation when the device is not paired with the phone (or is not paired correctly).
In that case, sometimes, you will never get a response.

@pregno could you find some information about the stalled negotiation somewhere on the stackoverflow or other place? I would like to read more about it.

Unfortunately not, but during my tests I've experienced when:

device not paired
device appears in the bonded list, but actually is not paired
device goes out range when connecting

In this situation how did you tested it? Using what code?

The tests has been done on my application, without using your library, so plain (and pain) Android BLE stack.The application is a companion app for our product, so we tested it intensely in every condition.
I know it is a borderline situation, maybe it depends on the firmware implementations.
If you are not convinced about that we could remove the timeout from the request and add it lately if  happens again

The situation with device going out of range will be automatically handled by the library as RxBleGattCallback is reporting an error if the device is disconnected.
About the case when the device is not bonded - I see no hint anywhere that negotiating MTU requires bonding. There are some issues regarding bonding in the Android OS but it's not directly connected with the MTU. If you know more about bonding / mtu - please say or direct me to a place where I can read more.
I think that having a programmable timeout is not the best idea (differently to discovering services as it will be longer if a peripheral has a lot of services / characteristics) because MTU is a two-packet procedure and shouldn't take long. The simpler the API is the better in my opinion.

ok

Can we have a snapshot version of this feature, since it's really useful and I really need this feature.
Or any other way I can achieve this function without compile the whole project as a dependency (It seems BluetoothGatt is not exposed).
Thanks in advance!

Thanks for re-adding the timeout as it is useful till we will deal with bonding related issues. I have added comments to the code.
Things to do before I can merge the changes:

Fix checkstyle issues.
Add a test for timeouting MTU negotiation operation.
Add a RequiresApi on RxBleConnectionImpl.requestMtu(int mtu) call.
Remove all changes that do not touch functionality of the mtu. (new lines in import).
Extract changes regarding getting the permissions to a different pull request.

Once the above things will be addressed we should be there. 👍

Three things left:

There are some obsolete changes with line breaks in RxBleConnectionImpl
Checkstyle is whining about unused imports in RxBleRadioOperationMtuRequest you can check it here: https://travis-ci.org/Polidea/RxAndroidBle/builds/181702296
There is now unused line in ScanActivity -> public final static int PERMISSIONS_REQUEST_LOCATION = 16;

I will mark them in the code to make it easier.

@pregno I hope that you are not taking my requests personally. Our current setup is currently not building artifacts if the checkstyle is complaining - thus the need of removing unused imports. And it doesn't look good if there are changes that are not relevant to the topic of a pull request - so removing unnecessary formatting and leftovers from parts that were already removed will boil down the code to easily understandable bare minimum.
I am really thankful to you for committing your work towards what I hope will be the best android ble library. :+1:

Don't worry :)
I will close the various fixes soon

ok, done

Thank you for your effort @pregno - your changes are merged and will be available in the 1.2.0-SNAPSHOT release shortly. :) 💯
Best Regards

thank you too!
best

Great job! Thank you all for this nice feature.


Add 3 tests in cell_spec and Update README

Hey team; I wrote 3 tests based on the Interaction Pattern and added some notes to the README. Not sure If I'll keep updating the README, but hopefully it makes things a little easier. Communication is important, and I think this could get complicated, depending on how far we get. Thoughts?
[Ticket: X]

Alright @WilliamLampke it's all yours!
After you merge the pull request remember to 'git pull origin main' and then create a branch to work on


Trello clone example

Trello clone example not working
I'm learning python in evening school and i wanted to follow your Trello clone example
I copied the codes for the first 4 files and already have trouble.
In main.py "TrelloApp" is unknown, i added:
from app_bar import TrelloApp

Running this already gives an error:
"""
C:\Users\SIDDMRO.conda\envs\am2311_serverx\python.exe \ampythonbelgium\Jobs\COO\apps\trello_clone\src\main.py
Unhandled error processing page session e5c7dd52-f539-49c5-9706-215777c8e5f0: Traceback (most recent call last):
File "C:\Users\SIDDMRO.conda\envs\am2311_serverx\Lib\site-packages\flet_runtime\app.py", line 359, in on_session_created
session_handler(page)
File "\ampythonbelgium\Jobs\COO\apps\trello_clone\src\main.py", line 15, in main
page.add(app)
File "C:\Users\SIDDMRO.conda\envs\am2311_serverx\Lib\site-packages\flet_core\page.py", line 300, in add
r = self.__update(self)
^^^^^^^^^^^^^^^^^^^
File "C:\Users\SIDDMRO.conda\envs\am2311_serverx\Lib\site-packages\flet_core\page.py", line 411, in __update
commands, added_controls, removed_controls = self.__prepare_update(*controls)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\SIDDMRO.conda\envs\am2311_serverx\Lib\site-packages\flet_core\page.py", line 433, in __prepare_update
control.build_update_commands(
File "C:\Users\SIDDMRO.conda\envs\am2311_serverx\Lib\site-packages\flet_core\control.py", line 374, in build_update_commands
ctrl.build_update_commands(
File "C:\Users\SIDDMRO.conda\envs\am2311_serverx\Lib\site-packages\flet_core\control.py", line 386, in build_update_commands
innerCmds = ctrl._build_add_commands(
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TrelloApp' object has no attribute '_build_add_commands'
"""
Operating system = Windows 11

Hi @RonnyDeMeyer,
I also looked for that and found the example here:
https://github.com/flet-dev/examples
But also that code is deprecated. Let's hope that the example gets a fix for stable release 1.0:
https://github.com/flet-dev/examples/issues/115

when will 1.0 release

Can you please give the code another try? It has been updated.


Icon does not appear in the middle of the Bottom Navigation Bar

Hi! So the icon in the bottom navigation bar doesn't seem to align in the middle of the bar. Is there any way to fix this manually?

Hi! I was able to change the positions by overriding the dimensions value! Thanks for reading. 👍


python: don't use keep for hooks, so they will be spliced

as far as i can see there should be no reason to not splice the hooks
wrapPython for some reason has to be not spliced because 'substitutions.pythonHost = python;' causes
error: output '/nix/store/li07bad6s9brxx7cf8j408631nca39ka-python3.10-chardet-5.1.0-aarch64-unknown-linux-gnu' is not allowed to refer to the following paths:
         /nix/store/fdqpyj613dr0v1l1lrzqhzay7sk4xg87-python3-3.10.10

ericson said in https://github.com/NixOS/nixpkgs/pull/104201#discussion_r527041018 that the reason they were in keep was to not splice them but before the commit which broke hook splicing (33d12e5) everything appeared to be working correctly when cross-compiling
we also somehow get a correctly spliced python in nativeBuildInputs for free, it was broken in https://github.com/NixOS/nixpkgs/pull/194205#issuecomment-1304921297
Description of changes
experimenting with hook splicing fix @amjoseph-nixpkgs

Things done

Built on platform(s)

[ ] 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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 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

[ ] Fits CONTRIBUTING.md.

@Ericson2314 maybe made them not splice to work around https://github.com/NixOS/nixpkgs/issues/211340

https://github.com/NixOS/nixpkgs/blob/7482a0e6ef6c53539467df143d825a9545eacf67/pkgs/development/tools/misc/itstool/default.nix#L20
$ nix build ".#pkgsCross.aarch64-multiplatform.itstool"
error:
       … while calling the 'derivationStrict' builtin

         at <nix/derivation-internal.nix>:9:12:

            8|
            9|   strict = derivationStrict drvAttrs;
             |            ^
           10|

       … while evaluating derivation 'itstool-aarch64-unknown-linux-gnu-2.0.6'
         whose name attribute is located at /home/artturin/nixgits/my-nixpkgs/pkgs/stdenv/generic/make-derivation.nix:300:7

       … while evaluating attribute 'nativeBuildInputs' of derivation 'itstool-aarch64-unknown-linux-gnu-2.0.6'

         at /home/artturin/nixgits/my-nixpkgs/pkgs/stdenv/generic/make-derivation.nix:344:7:

          343|       depsBuildBuild              = lib.elemAt (lib.elemAt dependencies 0) 0;
          344|       nativeBuildInputs           = lib.elemAt (lib.elemAt dependencies 0) 1;
             |       ^
          345|       depsBuildTarget             = lib.elemAt (lib.elemAt dependencies 0) 2;

       (stack trace truncated; use '--show-trace' to show the full trace)

       error: makeWrapper/makeShellWrapper must be in nativeBuildInputs

Let me be totally honest here, I'm trying to remove setup hooks from nixpkgs -- starting from the cc-wrapper and binutils-wrapper which is where this whole mess begins.
The main reason why setup hooks exist is that there are pieces of data that get stuffed into $out/nix-support instead of in Nix attrsets.  Once that happens, you can't branch/select/switch on those values at eval time (without IFD of course).  When these values are used to compute other values, you get an "avalanche" of logic that gets forced out of the Nix eval language and into hideous gross piles of bash.
It turns out that 99% of this stuff is actually knowable at Eval time.  But you have to stop the avalanche before it starts.
That is my mission.
With all that said, @Artturin I appreciate your heroic efforts to tame the bash-monster, and we need these efforts.  I just wanted to explain why it's really hard for me to motivate myself to get a deep enough understanding of problems with this stuff on one hand when I'm putting a lot of effort into being able to get rid of it on the other.
It's also starting to look like I'm probably the only even-semi-qualified reviewer for a lot of this stuff.  I will give it a try.  Please keep pestering me.
I'm going to cherry-pick this into my local tree and rebuild my 100%-cross platforms (aarch64 and mips) overnight to see what breaks.

It turns out that 99% of this stuff is actually knowable at Eval time. But you have to stop the avalanche before it starts.

This is interesting. I've been wanting this as well, however, a big worry is that eval time increases.
E.g., with Python we still use propagated-build-inputs. We can get rid of that in two ways, either writing a custom file linking runtime deps, or keeping track of deps in eval only and writing references out when building an env.

Addendum: the kicker starts with this commit, which isn't part of the PR I linked (but goes immediately on top of it).  This commit does not eval, but it's sort of the first milestone I've been working towards:

https://github.com/amjoseph-nixpkgs/nixpkgs/commit/3d45166c6e46d8a3732532745b07da4d97029bc4

keeping track of deps in eval only and writing references out when building an env

You definitely want to do this.

I've been wanting this as well, however, a big worry is that eval time increases.

Why would it though?  The evaluator still has to instantiate all ancestral dependencies either way.  So the number of derivations instantiated is the same either way; the only difference is whether the list is passed as lines in nix-support/propagated-build-inputs or as a Nix list.
It might make sense to "keep track of deps" using an attrset rather than a list though, since attrset union is O(n) (cppnix implements this by merging pre-sorted lists) but list-concatenation is (in the pathological case) O(n^2).

This breaks eval for claws-mail but everything else was fine.  Builds underway; I'll check back in the morning.
Built on:

[ ] aarch64-linux laptop packageset (cross from x86_64-linux)
[ ] mips64el-linux router packageset (cross from x86_64-linux)

[ ] abi=64 (stuff that uses rust, golang, and boost-context)
[ ] abi=n32 (everything else)

useful
nix-diff $(nix eval --raw "nixpkgs/$(git merge-base staging HEAD)#pkgsCross.aarch64-multiplatform.python3Packages.frozenlist.drvPath") $(nix eval --raw ".#pkgsCross.aarch64-multiplatform.python3Packages.frozenlist.drvPath")

python3Packages.cryptography cross will be fixed by https://github.com/NixOS/nixpkgs/pull/212795, so not a regression
the other 3 build on https://github.com/NixOS/nixpkgs/pull/245475 so i'm going to merge that pr

PyQt5 failure

error: builder for '/nix/store/w8a7pipahqqj1mg30kdvh33ilr88m7bk-python3.10-PyQt5-5.15.9-aarch64-unknown-linux-gnu.drv' failed with exit code 1;
       last 10 log lines:
       >   full command: /nix/store/ci5b14j87px5h2j83244qrdxzy9c89lc-python3-3.10.12/bin/python3.10 /nix/store/04r3170l9d81id0gd4nk1cr14jjbfa3p-python3.10-pip-23.0.1/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py prepare_metadata_for_build_wheel /build/tmpxoo9ltc7
       >   cwd: /build/PyQt5-5.15.9
       >   Preparing metadata (pyproject.toml) ... error
       > error: metadata-generation-failed
       >
       > × Encountered error while generating package metadata.
       > ╰─> See above for output.
       >
       > note: This is an issue with the package mentioned above, not pip.
       > hint: See above for details.
       For full logs, run 'nix log /nix/store/w8a7pipahqqj1mg30kdvh33ilr88m7bk-python3.10-PyQt5-5.15.9-aarch64-unknown-linux-gnu.drv'.

python3Packages.cryptography cross will be fixed by #212795, so not a regression

I already have the equivalent of that PR in my tree.  python3Packages.cryptography cross-compiled before cherry-picking this PR, and failed after.
Granted I'm not using exactly #212795's commits, but that PR has been such a headache to review; the author doesn't seem to believe in using the "commit suggestion" button, or even putting each response in a separate commit.  They just squash+forcepush making the reviewers re-review the whole thing.  It's kind of annoying.

Do you think we could merge my qutebrowser cross-compilation PRs ahead of this one?  At least that way we could get ofborg to verify that qutebrowser builds before merging this (or some future version of this) as well as after (i.e. no regressions).
They've been pending since ~April-ish.
Specifically,

https://github.com/NixOS/nixpkgs/pull/227900
https://github.com/NixOS/nixpkgs/pull/227902
https://github.com/NixOS/nixpkgs/pull/227901
https://github.com/NixOS/nixpkgs/pull/220315
https://github.com/NixOS/nixpkgs/pull/220319
https://github.com/NixOS/nixpkgs/pull/220314
https://github.com/NixOS/nixpkgs/pull/220316

I already have the equivalent of that PR in my tree. python3Packages.cryptography cross-compiled before cherry-picking this PR, and failed after.

Sorry it was not this PR, but rather #245475 which breaks #212795.  I cherry-picked both before running the rebuild.

Rebased but there's some serious issues with python cross now as not even this can make python and the hooks spliced
so the message in the first commit we also somehow get a correctly spliced python in nativeBuildInputs for free is now wrong
nix-repl> pkgsCross.aarch64-multiplatform.flashfocus.nativeBuildInputs
[
  «derivation /nix/store/5k1b6g2qgy2a7kiis6snyidzryz6bljl-python3-3.12.5.drv»
  «derivation /nix/store/fx72jxhykc327pd3lym03x9ajprm471d-wrap-python-hook.drv»
  «derivation /nix/store/alb6sn9w7gvrh50cnh3q6wnrnvwhi841-ensure-newer-sources-hook.drv»
  «derivation /nix/store/yzwjwd5arv6vpzfdxrgsp750rbxwx2iq-python-remove-tests-dir-hook.drv»
  «derivation /nix/store/0ngx73bzdilmp1zn151kb1xgia5jyn7h-python-relax-deps-hook.drv»
  «derivation /nix/store/9sl7kpk8playqdi8i2vmhp90mkw04iis-python-remove-bin-bytecode-hook.drv»
  «derivation /nix/store/kv0zz11pfcr21yp8xhv4pkhkv3qa7ng9-pypa-build-hook.sh.drv»
  «derivation /nix/store/6dpb1rwmvxfx2g72qszsgfma6frcnkhh-python-runtime-deps-check-hook.sh.drv»
  «derivation /nix/store/6lp9xisrwzkmvgac6vnjnil29g2ii25b-pypa-install-hook.drv»
  «derivation /nix/store/fwyagzwkj49b8y3hj468qia68rdl5xqj-python-namespaces-hook.sh.drv»
  «derivation /nix/store/h05097ifb6kjab4fiin7gfzkxwq3xl10-python-output-dist-hook.drv»
  «derivation /nix/store/1ay4kcjvb78xr2z83r3c5rqz8dik5z58-python3.12-setuptools-72.1.0.drv»
]

nix-repl> p = lib.elemAt pkgsCross.aarch64-multiplatform.flashfocus.nativeBuildInputs 0

nix-repl> p ? __spliced
false

nix-repl> p = lib.elemAt pkgsCross.aarch64-multiplatform.flashfocus.nativeBuildInputs 1

nix-repl> p ? __spliced
false

Yeah idk what's going on, doesn't work


Migrating existing saga state data from Masstransit  2.x to 3.x

Hi,
We have implemented workflow Masstransit saga 2.x and it is up and running in production.
We have upgraded Masstransit version 3.x (using rabbitmq).
How can we migrate existing running work flow  saga data (it was magnum statemachine) to Masstransit    3.x (Automatonymous ).
Our new implementation uses Sql server to store state.  earlier we were using NHibernate and now we are using Entityframework to save saga state.
Major difference is earlier  saga state data were stored as  Hex string now with EF it is cleaner data.
Let me if you have any good strategy to do this.
Thanks,
MT 3.x works great  though.

The migration is going to depend upon how you were storing the data from the Magnum state machine in SQL, and how the schema for the Automatonymous state machine differs from that original storage method.
If you are able to have down time, a transform script is the best approach. This way, you can convert the original table to a new table for the new state machine. And if something breaks, you can drop the new table and try again.
For a zero downtime approach, I would create scripts for the new table and create the new table. Then, put triggers in place so that existing state machine instances are replicated to the new table on insert/update. That way, new activity will start replicating to the new table. Then, use a script to transform all of the old data that doesn't exist in the new table. Once you have all this in place you can deploy the new code and the new instances will use the new table.
Those are just some initial thoughts on how I would do it.
Honestly, if you can stop the old service, run the transform, and start the new service with a minimal service outage, that would be ideal (and the easiest approach). Since the messages will just queue up until the new service is started, should be just fine, right?

Thanks a ton for your response Chris,
We have done similar like you have suggested. This is real beauty of having Servicebus in between process that this kind of things are very easy to implement.
Thanks again,
Atul


C++ Build using CMake error

I ran (my cmake version is of 3.20):
$ mkdir -p cppbuild/Debug
$ cd cppbuild/Debug
$ cmake ../..
$ cmake --build . --clean-first
$ ctest
But step 4 (cmake --build . --clean-first) prompted some error as recorded in the attached file. Just want to know whether these errors are acceptable or I should solve them.
result.txt

This set of commands works fine with GCC 10.  The error suggests that you are not using a C++ 11 compliant compiler.

Hi, I'm not about this error, but about another error with gcc 11.1.0 and gtest.
I had only one error: simple-binary-encoding/cppbuild/Release/thirdparty/gtest/src/gtest/googletest/src/gtest-death-test.cc:1301:24: error: dummy may be used uninitialized [-Werror=maybe-uninitialized]
after changing 1301 line to int dummy=0; gtest will successfully built and pass
This is offtop, maybe not issue, but can help.

I checked CMakeCXXCompiler.cmake content:
set(CMAKE_CXX_COMPILER "/bin/c++")
set(CMAKE_CXX_COMPILER_ARG1 "")
set(CMAKE_CXX_COMPILER_ID "GNU")
set(CMAKE_CXX_COMPILER_VERSION "4.8.5")
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
set(CMAKE_CXX_COMPILER_WRAPPER "")
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "98")
by running
/bin/c++ --version
c++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
I thought I was using C++ 11 compliant compiler. I have c++20 GCC compliant compiler. please advice how to force "$ cmake --build . --clean-first" to use latest compiler on my platform.

https://www.google.com/search?channel=fs&client=ubuntu&q=cmake+set+compiler

Hi Michael Barker,
Everything is ok now.
Thanks.
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10
From: Michael @.>
Sent: Tuesday, July 20, 2021 6:41 AM
To: @.>
Cc: @.>; @.>
Subject: Re: [real-logic/simple-binary-encoding] C++ Build using CMake error (#859)
https://www.google.com/search?channel=fs&client=ubuntu&q=cmake+set+compiler
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/real-logic/simple-binary-encoding/issues/859#issuecomment-882907891, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADU4H774QX3KVMTUPAQGDXDTYSSXVANCNFSM5AR4ELHA.


Use deserialize_str for well-known formats

Follow-up to #466, these formats are all strings, so deserialize_str should be fine instead of deserialize_any.

The diff is fine (I'm not sure how I missed it during the previous change). GitHub shows your commit as unverified. Can you double-check your public key on GitHub is correct? Something obviously isn't correct on your end.

GitHub shows your commit as unverified.

I can confirm it's mine, I haven't signed it.

Yeah, I don't particularly mind — the diff is good regardless. I just wanted to make sure you were aware! You'll need to reüpload the key to GitHub with your new email.

Thanks, much appreciated!

@jhpratt Could you make a new release including this PR? I'd love to see bincode plays well with the time crate :)

I was hoping to have a release out this weekend! I need to wrap up a couple of items first.


你好，请问这个项目有对应的论文吗

另外请问能上传pytorch版本的代码吗，感激不尽

Please reference A light-weight stereo matching network with color guidance refinement. I am not certain if I have a PyTorch backup from a project 4 years ago. If available, I will update in spare time.

Please reference A light-weight stereo matching network with color guidance refinement. I am not certain if I have a PyTorch backup from a project 4 years ago. If available, I will update in free time.

谢谢前辈的及时回复，我已经下载了论文。如果有pytorch代码就更好了，没有也没办法，再次感谢！

Please reference A light-weight stereo matching network with color guidance refinement. I am not certain if I have a PyTorch backup from a project 4 years ago. If available, I will update in free time.

前辈，冒昧叨扰，请问还有吗，我自己尝试转换pytorch版本，一直没有成功...

Please reference A light-weight stereo matching network with color guidance refinement. I am not certain if I have a PyTorch backup from a project 4 years ago. If available, I will update in free time.

前辈，抱歉多有打扰，我在pytorch下复现了您的工作，仍有些问题想要请教，kitti2015的3PE我测得的是3.95，比论文中的2.68要高不少，kitti2012和论文中很接近。另外3060显卡测得的生成视差图时间是0.16s左右，与文中2080ti下0.04s差距很大。请问可能是哪里出问题了？

Have you attempted to use the Paddle version of the code and the provided model checkpoint to inference KITTI2015?

For the issue of inference time, on the one hand, the performance of the 3060 is still a gap from the 2080Ti or Titan XP. Additionally, the inference time should not include data loading and post-processing.
Have you tried to use the Paddle version of the code and provided model checkpoint to inference KITTI2015 directly? I recommend doing this first to get correctly FPS and accuracy.

前辈，可是我看其他项目的代码，他们的预测时间都是加上后处理的呀，类似下面这种
def test(imgL,imgR):
model.eval()
if args.cuda:
    imgL = imgL.cuda()
    imgR = imgR.cuda()

with torch.no_grad():
    output = model(imgL,imgR)
output = torch.squeeze(output).data.cpu().numpy()
return output

For the issue of inference time, on the one hand, the performance of the 3060 is still a gap from the 2080Ti or Titan XP. Additionally, the inference time should not include data loading and post-processing.
Have you tried to use the Paddle version of the code and provided model checkpoint to inference KITTI2015 directly? I recommend doing this first to get correctly FPS and accuracy.

前辈，可是我看其他项目的代码，他们的预测时间都加上了前后处理所需要的时间呀，类似下面这种
def test(imgL,imgR):
model.eval()
if args.cuda:
    imgL = imgL.cuda()
    imgR = imgR.cuda()

with torch.no_grad():
    output = model(imgL,imgR)
output = torch.squeeze(output).data.cpu().numpy()
return output

...........................
start_time = time.time()
pred_disp = test(imgL,imgR)
print('time = %.2f' %(time.time() - start_time))

As far as I know, Anynet should have higher efficiency during the inference process because they have implemented CUDA operators at the lower level to accelerate computations. Similarly, different versions of PyTorch can also affect inference efficiency.
In my view, inference time refers to the time it takes for a neural network to perform a single forward pass, and for some task e.g. object detection, it should also include the post-process time like NMS which whould significantly effect the model accuracy.
If calculating the entire pipeline time, it should include data loading and post-processing, as preprocessing and postprocessing are often data-related but independent of the model. For regular model inference, the sizes of data input and output are usually fixed.


Stop using Retrofit BaseUrl for switching REST api endpoint

See https://github.com/square/retrofit/pull/1652

Retrofit2 is released :tada:

For this situation, I'm using a Configuration class. Which can inject to ApiModule to get Retrofit a base url.
With this, we can easy to change configuration environment for each build type as well as function testing.
Interceptor is an interesting way, but I think using Configuration is more natural.

The thing is that I'd like to be able to change endpoint url without restarting the app, I think, recreation of Retrofit is the best option in such case.
See https://github.com/square/retrofit/pull/1652

Change endpoint url without restart app is really cool, but recreation of Retrofit with clean code in mind is quite hard. Looking forward the solution for this.

Recreation can be done via Dagger, we'll either recreate only Retrofit or also objects that depend on it, not sure yet

@artem-zinnatullin This issue turns out to be a little bit more complicated that it seems to be. Even if you re-create the object graph (with new retrofit instance pointing to another URL), you need to propagate / re-inject dependencies into targets (views, presenters). Otherwise, behaviour of the app will be unpredictable. The most obvious, but not elegant solution is to restart process by using: https://github.com/JakeWharton/ProcessPhoenix. If process will be restarted, we won't have stale instances of dependencies within application.
What do you think?

Noo, process restart is not an option because it won't work in UI tests
since they run in same process (instrumentation API).
On 14 Oct 2016 6:18 pm, "Araz Abishov"<EMAIL_ADDRESS>wrote:

@artem-zinnatullin https://github.com/artem-zinnatullin This issue
turns out to be a little bit more complicated that it seems to be. Even if
you re-create the object graph (with new retrofit instance pointing to
another URL), you need to propagate / re-inject dependencies into targets
(views, presenters). Otherwise, behaviour of the app will be unpredictable.
The most obvious, but not elegant solution is to restart process by using:
https://github.com/JakeWharton/ProcessPhoenix. If process will be
restarted, we won't have stale instances of dependencies within
application.
What do you think?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/artem-zinnatullin/qualitymatters/issues/111#issuecomment-253831838,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA7B3MLqv5R6hjLxIp4vOZgyNykjx7HQks5qz51VgaJpZM4Hq3wd
.

@artem-zinnatullin would you accept Interceptor solution as per conversation in https://github.com/square/retrofit/pull/1652 ?
This issues blocks #208

@Yurii-Laguta yep, we can start with that, would be better to re-create Retrofit on base URL change though


Inventory search with export

Should make something capable of scanning through your bags and banks. Then we get:

item ids of everything in your bags
quantity of each item in your bags
items in your bank

Then we export it to json the web app can use. We can run this through something like export search to find the best server to sell it on for crazy people with hundreds of different items to track.

This is gonna be an interesting one. There is an addon called BagAppraiser, it does the item count and all, but to show how much worth you have. It is horribly slow. Need to check if I can make it faster. Will take some time though


Change C++/CX to C++/Winrt

This page gives an example that uses C++/CX, which is of little help to those of us who are trying to use C++/WinRT.  Please update it.

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

ID: 9b0077ac-da13-5f5e-09f5-c017a982b149
Version Independent ID: 9b0077ac-da13-5f5e-09f5-c017a982b149
Content: Hello Win2D World - Windows apps
Content Source: hub/apps/develop/win2d/hellowin2dworld.md
Product: reunion
Technology: apps
GitHub Login: @stevewhims
Microsoft Alias: stwhi

Thanks! I've added C++/WinRT code.
-Steve


Exception while integrating SOAP service with Netflix Eureka Service Registry?

I am trying to call SOAP service using WebserviceTemplate. The SOAP service & the client calling the service are registered with Eureka Service Registry. While trying to implement SOAP service call using WebserviceTemplate and use the qualified URL of the SOAP service getting exception.
Bean initialized as --
@Bean  @LoadBalanced  public WebServiceTemplate webServiceTemplate() {          WebServiceTemplate webServiceTemplate = new WebServiceTemplate();          webServiceTemplate.setDefaultUri("http://fil-bosscarrierstatus-service/fil/PostBossCarrierStatus");          webServiceTemplate.setCheckConnectionForFault(true);          return webServiceTemplate;     }
SOAP Webservice called as --
StringResult responseResult = new StringResult(); webServiceTemplate.sendSourceAndReceiveToResult(new StringSource(request), responseResult);
**fil-bosscarrierstatus-service -- This is the qualified URL or the application name.
Expected result is webservice call should happen successfully. It is working with full URL having IP (eg localhost:8089). But for qulaified URL giving the exception -- org.springframework.ws.client.WebServiceIOException: I/O error: fil-bosscarrierstatus-service; nested exception is java.net.UnknownHostException: fil-bosscarrierstatus-service

Hello, @anubhabmohanty do you see the service registered under this id in your Eureka server? What exactly do you see there in the registered services list?

@OlgaMaciaszek
Hello,
Yes, I can see the service registered under this id in Eureka server. Both the SOAP service and the service which acts like client are registered in the Eureka server. Both service's status is UP and the actual URL is being shown at the right side of the service details.

Ok. Looks like there's an issue. @anubhabmohanty .
Please provide a minimal, complete, verifiable example that reproduces the issue, so that we can analyze it.

@OlgaMaciaszek
Please check the repo of github. This contains three services :-

Eureka Server service (EUREKA_SERVER)
SOAP service (SOAP_PROJECTS)
REST service to call SOAP and acts as SOAP client (REST_PROJECTS)

Both 2 & 3 are registered with Eureka server.
https://github.com/anubhabmohanty/soap-service-registry

Ok, thanks @anubhabmohanty Will do

Hi @anubhabmohanty Have gone through your example; unfortunately, you can't use it in this way. Simply put, @LoadBalanced is not supported for WebServiceTemplate and I don't think we will ever introduce such support.
However, you could still use Service Discovery, such as Eureka to communicate with your soap service, but via DiscoveryClient and not @LoadBalanced.
If you modify your WebServiceTemplate bean definition like this, it works:
@Bean
	public WebServiceTemplate webServiceTemplate(DiscoveryClient discoveryClient) {
		 String uri = discoveryClient.getInstances("bangalore-details-service")
				 .get(0).getUri().toString();
		 WebServiceTemplate webServiceTemplate = new WebServiceTemplate();
		 webServiceTemplate.setDefaultUri(uri + "/find/getBangaloreLocationDetails.wsdl");
		 webServiceTemplate.setCheckConnectionForFault(true);
		 return webServiceTemplate;
	}

Of course, in this case, load-balancing would fall on you. In the example, I just pick the first available instance, but you should probably implement a more elaborate solution to select the right instance (i.e., load-balance), you could look for some inspiration in Ribbon implementation or here . Also, keep in mind that then you should probably retrieve the URI and pass it to template at each request and not use the default set at bean instantiation (cuase then you would end up sending requests to one instance either way).
Let me know if this is helpful.

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.

Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.

@OlgaMaciaszek Thanks for the info. I tried with LoadBalancerClient object and fetched the ServiceInstance object to get URL on basis of Load balance. Now able to use Service Registry for SOAP service.


Add testnet launch procedure

Per discussions yesterday.

We already have a list of validators we would like to invite first. I think @adrianbrink should have a better idea on the selection process/criteria.

thanks @tzemanovic :)


add compression type code and framing support

In bzng reader and writer, add support for in-line compressed data, by using a type code to indicate a compressed section:
<comp-type-code><comp-kind><uvarint-len><len bytes of compressed zng data>

I'm moving this under the boyer-moore epic https://github.com/brimsec/zq/issues/682 , as this should be implemented alongside that work.

Verified in zq commit 253c336.
After this support was added, that newer zq was used to regenerate the ZNG zq-sample-data in this new compressed format (https://github.com/brimsec/zq-sample-data/pull/13), with the prior uncompressed ZNG moved to a separate directory in the sample data repo. The byte counts showing the benefits of the compression:
~/work/zq-sample-data$ gzcat zng/* | wc -c
 74663004

~/work/zq-sample-data$ gzcat zng-uncompressed/* | wc -c
 175949386

So, for this particular data, that's 2.35x compression.
Also, the zq performance numbers were updated, showing that even with compression enabled, the read/write performance of ZNG is roughly the same as it was before (#1064).
Thanks @nwt!


[Firestore] Authenticate as Firebase user

I have a scenario in which I have a Node application that runs on each of my customer's hardware and connects to Firestore using the Firebase JS SDK (not admin), and I also authenticate with a Firebase user because each customer can only read and write their own data. Is there a way to do that with the .Net SDK?

No, as far as I'm aware the Firestore Server SDKs all authenticate via Google Service Account credentials, not with Firebase credentials.
@schmidt-sebastian can confirm this.

Closing the issue as there's no more work required for this repo.

What would it take to get this to work? If I have the user session access token and all other app tokens in hand, can I just override some base grpc call to pass those on?

@cirvladimir: No, I don't believe so. As @schmidt-sebastian said, this isn't a supported scenario.

While this is a popular feature request, this requires both backend and client work that is still pending. I am sorry that we don't have better news for now.

@schmidt-sebastian I understand the reasons, now I'm just curious about what would need to be changed on the backend. Isn't the backend code platform independent, so that the dotnet client could use the same authentication method as the Javascript SDK?


Translations of SciPy core project website

Hi team,
I'm working on setting up translation infrastructure for the Scientific Python Community and Communications infrastructure grant from CZI. With support from this grant, Quansight Labs is helping Scientific Python Core Projects develop and publish translations of their brochure websites, like what exists now for https://numpy.org.
I published an FAQ here: https://scientific-python-translations.github.io/faq/, with more information. Please take a look if you're interested and let me know if you have any questions or concerns. If we get consensus to participate, I'll start setting up the translation infrastructure.
As a disclaimer, all of the personnel on this grant are either SciPy maintainers, former maintainers, or members of the triage team, but for the sake of transparency I thought it would be best for me to open an issue so everyone has a chance to make comments if they'd like.

Kudos for the transparency 👏
I am +1 on the initiative. If that can help get wider adoption and reach more communities, I am all for it 🚀

Hello, folks!
We are happy to announce that we are setting up infrastructure for multiple project’s websites to be translated, including SciPy.
You can read more in this blog post: Blog - Translations for Scientific Python projects 1
We also have some documentation at https://scientific-python-translations.github.io/
If you are interested in joining this effort, feel free to engage in the #translation channel of the Scientific Python Discord server where we can give you more info.
See you there! :rocket:


Fix some minor typos.

Thanks for the great tutorials. I found a couple minor typos while reading them.

Looks like these were covered here, but thanks for the PR!


Creating OVS bridge fails and complains Open vSwitch is not installed

Required information

Distribution: NixOS
Distribution version: 22.05
The output of "lxc info" or if that fails: lxc.info.txt

Kernel version: 5.15.60
LXC version: 4.0.12
LXD version: 5.1
Storage backend in use: zfs

Issue description
Attempting to create a second network using OVS in addition to default lxdbr0. The command
$ lxc network create ovsnet --type=bridge bridge.driver=openvswitch

gives the error message
Error: Open vSwitch isn't installed on this system

but ovs-vsctl is installed:
$ ovs-vsctl --version
ovs-vsctl (Open vSwitch) 2.17.0
DB Schema 8.3.0

Expected behavior is for the network to be created.
Steps to reproduce

Step one: start with a fresh installation of LXD with only the default lxdbr0 bridge
Step two: execute, either as user or as root:

$ lxc network create ovsnet --type=bridge bridge.driver=openvswitch

There are no error messages in the systemd journal. The source code checks if ovs-vsctl is installed, which should succeed considering the command is in the path.
Information to attach

[ ] Any relevant kernel output (dmesg)
[ ] Container log (lxc info NAME --show-log)
[ ] Container configuration (lxc config show NAME --expanded)
[ ] Main daemon log (at /var/log/lxd/lxd.log or /var/snap/lxd/common/lxd/logs/lxd.log)
[ ] Output of the client with --debug
[ ] Output of the daemon with --debug (alternatively output of lxc monitor while reproducing the issue)

Yeah, only way for this to fail is if ovs-vsctl isn't in the PATH.
My guess would be that your LXD daemon is running with a different PATH than your shell and that its PATH doesn't include what's needed for ovs-vsctl.
Can you show which ovs-vsctl as well as cat /proc/PID-OF-LXD/environ | tr '\0' '\n' | grep PATH?

Well spotted. As the user:
$ which ovs-vsctl
/run/current-system/sw/bin/ovs-vsctl
$ readlink $(which ovs-vsctl)
/nix/store/m7gvl62d3bn3cnbbglm21dgyqfsxpilc-openvswitch-2.17.0/bin/ovs-vsctl

which is exactly the same package as root:
# which ovs-vsctl
/run/current-system/sw/bin/ovs-vsctl
# readlink $(which ovs-vsctl)
/nix/store/m7gvl62d3bn3cnbbglm21dgyqfsxpilc-openvswitch-2.17.0/bin/ovs-vsctl

The LXD daemon path should contain the path to the ovs-vsctl binary but does not:
$ ps aux | awk '/bin\/lxd/{print $2}'
2325233
$ sudo cat /proc/2325233/environ | tr '\0' '\n' | grep PATH | sed 's/PATH=//;s/:/\n/g'
/nix/store/1j8bp97d7m9j7pzm58q2fhqfm1p3pnzi-iptables-1.8.7/bin
/nix/store/b9cgfd1ly01khk5kfrqq3gjrjfhxqxj5-acl-2.3.1-bin/bin
/nix/store/l2cvi0rfkrm14axd6fidixldayf2x1q7-rsync-3.2.3/bin
/nix/store/mnln1nxdhxx5qj8rcyvllhhs6d4h668b-gnutar-1.34/bin
/nix/store/plwz40xsmqsiq5gqavij50lp9vzpn2p6-xz-5.2.5-bin/bin
/nix/store/71kz0gns59s0ixwpjrp96wgxwdzhsf2d-btrfs-progs-5.17/bin
/nix/store/6707csjy3qf4p9anrrg3lbsjlh7il7lh-gzip-1.12/bin
/nix/store/ffsaal905zxdgdc39r5gqini7ls2wid3-dnsmasq-2.86/bin
/nix/store/n5fdwh6ay0h5217wbc7qxl6ps34hi0w3-squashfs-4.5.1/bin
/nix/store/fjbhss3462zaf8dwgbw7fz0w3kqynv3k-iproute2-5.17.0/bin
/nix/store/xbdqbi2mscmhl5wcpbgpjdwxbsrvpkil-bash-5.1-p16/bin
/nix/store/mkjh5k224ch5wb51rqmp3a8mgn1g2ykk-criu-3.15/bin
/nix/store/gdh49qwa3diyfdsxg9azh738pyarmdaw-attr-2.5.1-bin/bin
/nix/store/99vgmb9xbdlfrvdgv3b84i6w7j1qmyh8-apparmor_parser/bin
/nix/store/56cnxji4339lgb3my8fpg289cgs8q5f9-zfs-user-2.1.5/bin
/nix/store/p643r4aczmzb0dhyrx3dj592f0s5v7xj-coreutils-9.0/bin
/nix/store/7g48ahc3xnmb5b851vw60nbdgvk0wsf8-findutils-4.9.0/bin
/nix/store/ja8bi2cbpm36nwqy1hvklm3y9n7s3247-gnugrep-3.7/bin
/nix/store/lrxxki2m4gr4w3lxw08qpd465skpa04y-gnused-4.8/bin
/nix/store/vqy0ljiks17602r88abb4z3lwzny70qh-systemd-250.4/bin
/nix/store/56cnxji4339lgb3my8fpg289cgs8q5f9-zfs-user-2.1.5/sbin
/nix/store/p643r4aczmzb0dhyrx3dj592f0s5v7xj-coreutils-9.0/sbin
/nix/store/7g48ahc3xnmb5b851vw60nbdgvk0wsf8-findutils-4.9.0/sbin
/nix/store/ja8bi2cbpm36nwqy1hvklm3y9n7s3247-gnugrep-3.7/sbin
/nix/store/lrxxki2m4gr4w3lxw08qpd465skpa04y-gnused-4.8/sbin
/nix/store/vqy0ljiks17602r88abb4z3lwzny70qh-systemd-250.4/sbin

As is likely obvious from above, NixOS is a very different Linux distribution, particularly where paths and packages are concerned. I activated Open vSwitch in my system configuration which also installs ovs-vsctl accessible to both root and user. But as can be seen, it isn't available in the LXD package. (All NixOS packages are self-contained and independent.) I'll need to figure out how to add OVS as a dependency to LXD to solve the problem.
Thanks for your help Stéphane. I'll move this discussion to the NixOS Forum and close the issue.