Unusual multisig change path warning using Jade with Sparrow wallet

I've set up a 2-of-3 multisig using 3 Jades and Sparrow wallet. When I try to sign a transaction to spend from the wallet, I get a warning message: Unusual multisig change path.
Sparrow wallet uses path ../1/0 for the change, which I believe is standard. It also uses m/48'/0'/0'/2' as derivation paths.

Hi,
Yes, I think you may be right, in that the check for 'expected path' may not be correct for multisig.
We intend to warn if the path deviates from bips 45/48/87, but I think atm the checks are not quite right.
I will look at this over the next few days and will endeavour to get the corrections into the next fw release.
Many thanks.

Just to confirm, does the warning only appear for 'change path' when signing ?  Do you have the full path ?
Does Sparrow support showing your own receive address on the Jade hw - and if so does that also show a warning ?
Cheers.

Looking at the bip48 spec, I think even if I correct this checking to match the spec, m/48'/0'/0'/2' would be flagged as 'unusual' ?

apologies!  closed in error!

does the warning only appear for 'change path' when signing

The warning appears for the change path while trying to send coins. If there is no change, the warning does not appear. The warning is: Warning: Unusual multisig change path. Proceed at your own risk.

A warning is also shown when displaying the change address on the device (in other words, an ../1/n address). The warning is different: Warning: Unusual multisig path. Proceed at your own risk.

No warning appears during multisig registration, nor while showing a regular receive address (in other words, an ../0/n address).

Do you have the full path ?

The full paths are m/48'/0'/0'/2'/<0 for wallet, 1 for change>/n.
From Sparrow UI:
Wallet address derivation path (no warning when displaying this address on the Jade):

Change address derivation path (warning when displaying this address on the Jade):

Does Sparrow support showing your own receive address on the Jade hw - and if so does that also show a warning ?

Yes, this is supported, but a warning only appears when showing a change address.

ps. also, do you/sparrow use sortedmulti() ?

Yes, Sparrow will register a sorted multisig. On the Jade, I see Sorted: Y.

Looking at the bip48 spec, I assume you mean derivation paths m/48'/0'/0'/2' registered in the jade multisig registration + 0/n (or 1/n for change) ?

Yes, correct.

I really need to know what paths Sparrow is registering as part of the multisig registration process, and what it is passing as 'change paths' at signing time - because if it is just passing '1/n' I would not expect that warning. Can you see that sort of info in sparrow's logs ?

m/48'/0'/0'/2' shows up on the Jade during registration with Sorted: Y.
Trying to pull some logs now.

It seems this may be related to the fact that my transaction is a redeposit to myself with change. I think the Jade may be interpreting ../0/10 as the change address.
I created a new transaction, sending to an address I don't own, and I didn't get the warning (made sure the transaction included change).

OK, Yes we have seen similar with other 'companion' code and I think I can guess what is happening ... I am not sure whether the problem is Jade's, really, but am open to suggestion ... ok, here goes ;-) :

The wallet can tell Jade something like: 'output 2 is a p2wsh change address to path (suffix) [1,13]' - in this case Jade will internally verify that if it generates the script-pubkey for that path, it gets the same script as that in the tx output (if it doesn't match the 'sign' action will fail).

Jade issues the red warning you have seen if either a) the penultimate index is not '1' - for change outputs Jade expects /1/n, or b) if the last element (n) is more than 10,000

Now, I suspect what is happening here, is the wallet is flagging the redeposit output as change - ie. it may be using something like:  tell_jade_is_change := (output.fingerprint == this_wallet.fingerprint)
ie. you generate a /0/n address, you send funds to this /0/n address, but the wallet is flagging it as change (as it is an address owned by your wallet).  Jade then prints the warning because it is being told the /0/n address is 'change' - which it thinks is 'unusual' ...

NOTEs:

Send to [external address] then works as expected, as only the actual 'change' address is owned by this wallet and so flagged as 'change', and it can be auto-verified (no need to show to user), and the path is indeed '.../1/n' as expected, all good ...

If the wallet asks Jade to generate/confirm/display etc. an address, Jade assumes this is a 'receive' address (ie one you may give to a counterparty) so it warns if the path is not .../0/n.

Does all this sound consistent with what you are seeing ... I think so ...

If this is the case, would the issue be in HWI? From my understanding, the wallet (Sparrow) just calls the sign_tx(psbt) ref, right? (and then HWI translates that to device commands)
One strange thing about this though, is that it does seem like the Jade knows what's change and what's redeposit at the signing screen. On the confirmation screen, it shows the output as being the redeposit address, and the change address is hidden (meaning it's detected as the change address), and yet the warning shows up.

Yes indeed - The [actual] change address is not the issue - it has it has a /1/n path as expected, and since Jade can 'rebuild' the script/pubkey/address from the path given, it is all auto-verified and not shown to the user at all.  No problems there.
The issue is the redeposit address, which has a /0/n path BUT has been flagged as a change output by the wallet.
Jade thinks this alleged 'change' output looks suspicious, and so shows it to the user, with a warning about it being 'unusual'.
FYI Jade itself does not 'detect' that it is a change output - the wallet app tells Jade it is change, and Jade internally confirms that indeed the given path creates the given output script/pubkey/address.
If this wallet is using hwilib, then yes, the issue would be caused by HWI guessing what is change, using the 'matching fingerprint' method described above.
I wonder what tomfool added that !?  ;-o

Lol!
That makes sense. Thank you for investigating. 🙂

Options:

change HWI so it only flags .../1/n paths as 'change'.
con: This would then not 'auto-verify' any change output not using that convention - as as HWI is not the actual wallet (just the hww 'interface' layer), it doesn't actually know what is change and what is not... so has to make an 'educated guess'.

change jade to not warn about /0/n and /1/n being change or not - maybe just treat it as 'ok' so long as that element is 0 or 1 (or maybe even if it is less than some ceiling ... regardless of whether it is 'change')
con: this is slightly less strict checking [does that matter?]

Do nothing
con: redeposit txs will show that warning, esp. if the wallet is using HWI or the wallet uses the same 'fingerprint matching' scheme to determine what is 'change'.

I feel like the "change" parameter passed into the Jade is similar to the "outputs" parameter in the PSBT pasted above, but with less information, and only attached to the actual change output. If an ideal hardware signer is one that can take in any PSBT and sign, I think we should keep any interpretation of the PSBT in HWI to a minimum, as the computer is untrusted anyway. With this reasoning, I feel like option 2 is a good way to go, with the long-term goal of reworking the "change" parameter in the Jade to match the "outputs" parameter of the PSBTs. Like this, the Jade will also be better positioned to support future PSBT features.

An additional benefit of option 2: The jade would also be able to mark the output address as a "redeposit" directly on the signing screen (instead of requiring the user to first display the address, and then make sure it matches the output address on the signing screen).

I have recently made a PR to HWI which should address this issues - ofc we have to wait for HWI to take them, release, and then Sparrow to upgrade HWI ...
See https://github.com/bitcoin-core/HWI/pull/753

Amazing, I’m really looking forward to the next HWI release.


Constraint output using template

https://github.com/outlines-dev/outlines (what vLLM is using, most popular purely structured LLM repo)
https://github.com/jxnl/instructor (clone of outlines)
https://github.com/sgl-project/sglang (fast, but I've had issues running/installing, too many bugs.  But now with outlines inside vLLM, speed gain from sglang not issue IMO)
https://github.com/guidance-ai/guidance (original structured LLM repo, but while feature rich its too slow for production use IMO)
Others:
https://github.com/stanfordnlp/dspy (programming prompts and fine-tuning them, but dumb for structured output given outlines)
https://github.com/eth-sri/lmql (dspy clone)


Enable users to join a subdomain other than their account

My company currently operates a Campfire room, but we'd like our bot to use a separate account. In order to accommodate this, I've added a "subdomain" option. If a subdomain is specified, it will use that for requests, otherwise it will try to use their account name.

I suppose it's also worth noting that some account names don't translate to campfire subdomains. Mine, "Fauntleroy von Patton" for instance, has a couple spaces in there...


Multiple External Identity Provider Support

Hi, I am currently implementing an IDSRV4 application as a federated gateway. The following is what i am trying to achieve:

Dynamically registering external identity providers (via a management ui)
Users to enter username (email address)

Based on the email address domain, redirect to the relevant external provider (ADFS, AAD) for that domain. I do not want the user to have to select the relevant provider themselves.

I do not want to have to reboot the app in order to achieve this.
Is there any documentation (can not seem to find anything on the docs site regarding this) that details at least the starting point of how this can be achieved?

You seem to be mixing the functions of client and IdP.
OpenID Connect dynamic registration is from a client to an IdP based on a (for example) email address from the user.

I don't think he's talking about dynamic registration at all. He simply wants to dynamically add external IdPs to his gateway.

not sure what the difference might be?  Is there some other method?

not sure what the difference might be?

Well, mainly control of who adds those IdPs. And those upstream IdPs are IdPs, not clients.

so, in Microsoft speak, dynamically adding a DI service?  Yeah, that sounds unlikely.

OK, thanks for the pointer of direction.
I did start to go down this road, but thought i would get the experts advice 😄
I am not too far from a solution now then, i will get some samples together over the next few days and post them on this issue.

The ASPNET team have the following samle: https://github.com/aspnet/AuthSamples/tree/dev/samples/DynamicSchemes
I am going to make a richer sample that you can select and configure various scheme types (google/facebook/oidc/wsfed/adfs/etc).
You were correct in that its all around the IAuthenticationSchemeProvider

Hi @martinfletcher
I believe I am looking for something similar to what you are doing:

One instance of identityserver4 acting as "federation gateway"
Multiple clients where each client can be connected to zero to many external identityproviders (google, azure ad, etc)

In other words:
When client A is redirecting to the identityserver4 the user who signing in with client A should be presented all the external identityproviders configured for client A. Same for client B, but in identityserver4 client A and client B will typically be configured to use different client configuration when redirecting to google, azure ad etc. (because client A and client B is typically belonging to different of our customers)
For this to work I guess I have to add multiple external IDP's using multiple uses of
.AddOpenIdConnect("oidc", "OpenID Connect", options =>

One for each combination of external client and internal client. In addition each client using identityserver4 has to somehow be filtered to only present the external IDP's configured for this client when a user is authenticating
Looking forward to have a look at what you come up with

Yeah that is possible out of the box i believe by using the quick start UI.
The solution i will be posting will not show a list of external IDP's, but select which IDP to use at runtime based on the domain of the email address, and redirect to that external IDP, or allow the user to enter a password if not configured with an external IDP.

@martinfletcher If what I described is possible out of the box I must have overlooked something.
As far as I know each external identityprovider has to be configured at startup. On the client configuration there is an option to use
/// <summary>
        /// Specifies which external IdPs can be used with this client (if list is empty all IdPs are allowed). Defaults to empty.
        /// </summary>
        public ICollection<string> IdentityProviderRestrictions { get; set; } = new HashSet<string>();

but given a scenario where there exists 100 different clients where each client should be configured to use its own azure AD client configuration I currently cannot see how to:

Avoid registrering 100 .AddOpenIdConnect(" in my pipeline
Changing configuration runtime (new client with its own azure ad clientconfig)

dev branch does not currently work, current link:
https://github.com/aspnet/AuthSamples/tree/master/samples/DynamicSchemes

@bkb503 yeah got a partial solution, but the project requirements changed and we moved to use azure b2c once they had the generic third party oidc in preview.
I still want to get the partial prototype up on github as reference when I have the time.

@martinfletcher  thanks for your reply, I have been looked at Azure B2C but openid provider is still in preview and i'm looking other alternative like wise I also looked AWS Cognito but no support for refresh token and angular js..

@martinfletcher, I am also interested in your dynamic schemes sample. Please share it, even if is raw, when you have time.

@martinfletcher Same comment as @VasylSenko - Would appreciate sharing where you left off. Doesn't need to work 100%. Just curious the path you were on. I'm just starting the same project.

If you're interested, I developed a package to dynamically manage Asp.Net  core authentication providers. And I'm looking for tester before publishing a release. The repository is here

@martinfletcher I am trying to achieve the same what you were trying to achieve previously that is support for multiple authentication provider (ADFS with multiple clients and Azure AD) with identity Server 4. Can you please guide for that ?


⚠ DDoS-Relay US-W-sfo3-02 has degraded performance

In 61cd4d9, DDoS-Relay US-W-sfo3-02 (http://<IP_ADDRESS>:42069/;csv) experienced degraded performance:

HTTP code: 200
Response time: 106 ms

Resolved: DDoS-Relay US-W-sfo3-02 performance has improved in e7d6cde after 11 minutes.


[Enhancement] onFirstJoin

This trigger would happen when the player logs in to the server for the very first time only.
Options:
Mana: true/false: does this trigger check for mana cost
Cooldown: true/false Does this trigger check if is on cooldown

This trigger doesn't make much logical sense and poses a bit of an architecture question. This would only fire on the very first join, and would be questionable if the user even gets assigned a default class before this would fire anyway.


Add 11st-Starter-Kit to the starter projects

👋 I would like to add my 11ty + Snowpack + tailwindcss starter kit to the starter projects.

Thank you!


Added Project on issue #83

🛠 Issue 83

Closes #
Description
Project added in projects folder
Type of change

[ ✅] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Checklist:

[ ] I have made this from my own
[ ] I have taken help from some online resourses
[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] The title of my pull request is a short description of the requested changes.

ATTACH SCREEN-SHOTS / DEPLOYMENT LINK

If applicable, add screenshots/deploying link.

Write description about your project

the whole documentation is provided in its root directory


Update makefiles to suggest using -B and depend on MAKEFILE_LIST

If makefiles are changes, a rebuild is forced of all targets.
make help instructs the user that if variables are specified on the command line,
they should use -B on the first call with the new flags, to force a rebuild.
Closes #168

Now also resolves #181 and resolves #183


Add support for pip 23.1 in workflows

Description
Currently, upgrading pip to 23.1 causes a fail in the .github/workflows, so the version of pip is pinned to 23.0.1. This constraint should be removed.

It seems that the failure of importing torch in building the wheel of geomloss may be related to the version of "wheel" or "setuptool". After it runs the following commands, there is no longer this error. I'm not sure what is the real cause of this problem, because yesterday the workflow was free of this error without upgrading "wheel" or "setuptool" as well.

So by upgrading "setuptools" and "wheel" the dependencies can be successfully installed with pip 23.1; otherwise there will be an ImportError of torch when building geomloss. Keeping pip version to 23.0.1 also worked, so I think a possible explanation is that the newest versions of "setuptools" or "wheel" must be installed to match the new release of pip 23.1. But it is just hypothetical.

This is fixed by #178. Thanks @TZTsai


Update ChangeLog.md

Added another entry

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


how can use definition extension correctly ?

Hi,
I use flexmark and i have a problem with definition extension.
This is my markdown text :
Definition 1
: My name is john
:
: **John riley**

Definition 2
: And you ?
:
: Me ? really ?

After processing, i have this html render

Definition 1

My name is john

John riley

Definition 2

And you ?

Me ? really ?

I would like something like that

Definition 1

My name is john

John riley

Definition 2

And you ?

Me ? really ?

Means, two blocks of
 instead one, and no double
 for second line of definition content.
This is my java code :
static final MutableDataHolder OPTIONS = new MutableDataSet()
            //.set(Parser.REFERENCES_KEEP, KeepType.LAST)
            .set(HtmlRenderer.INDENT_SIZE, 0)
            .set(HtmlRenderer.PERCENT_ENCODE_URLS, true)
            .set(Parser.EXTENSIONS, Arrays.asList(
                    AbbreviationExtension.create(),
                    TablesExtension.create(),
                    FootnoteExtension.create(),
                    AnchorLinkExtension.create(),
                    TypographicExtension.create(),
                    SuperscriptExtension.create(),
                    StrikethroughSubscriptExtension.create(),
                    EmojiExtension.create(),
                    AutolinkExtension.create(),
                    DefinitionExtension.create()

            ));

    public static final Parser PARSER = Parser.builder(OPTIONS).build();
    public static final HtmlRenderer RENDERER = HtmlRenderer.builder(OPTIONS).build();

    Node doc = markdown.PARSER.parse(md); // md is String of markdown content
    System.out.println(markdown.RENDERER.render(doc));

Can you explain me Definition Extension options ?

@firm1, you don't need the empty : lines. You can delete those lines or just replace them with blank lines.
If you want two dl lists then you need to add an HTML comment between the definitions to break the list, just like bullet and numbered lists.

The other configurations are:

Thank for return.
But, I want to learn from this definition extension to build another extension in which the  is optionnal for break the list.
It's possible ? If yes how ?

@firm1, you can take a look at the source for the extension in the flexmark-ext-definition module.
The parsing process first handles definition item parsing for lines starting with :.
After parsing of the document is done, the list item block pre processor converts preceding paragraph lines to definition terms and puts both of these in definition lists.
Definition list block pre-processor handles auto-loose definition list item spacing.
You can make a copy of the module and add code to handle two or more blank lines between definition terms as a definition list break by starting a new definition list.

Hello,
Despite my research I didn't find how to tell the AST will close the block when it sees that there's a blank line between the end of a definition and the beginning of a term definition.
Will you be able to tell me how modify exactly the code of the definition extension to get there ?
I guess it has to be done in the DefinitionItemBlockParser, but I can not figure out or ?
Thank a lot.

@firm1, you need to add logic to DefinitionListItemBlockPreProcessor.preProcess() where it sets the flag hadPreviousList to set it to false if the space between previous paragraph and the definition item contains two or more blank lines. Below I wrote the code but not tested to replace the hadPreviousList
// intervening characters between definition item and previous paragraph
final BasedSequence interSpace = BasedSequenceImpl.of(previous.getChars().baseSubSequence(previous.getChars().getEndOffset(), definitionItem.getChars().getStartOffset()).normalizeEOL());

final boolean hadPreviousList = paragraphPrevious instanceof DefinitionList && interSpace.countChars('\n') < 2;

The first line gets the characters between the end of previous node and the definition item and normalizes EOL (from \r\n and \r to \n). The second line will cause the code not to use the previous definition list if there are two or more blank lines between the nodes.
You may need to debug the code.

@firm1, decided to test the code because I have no confidence in memory based coding.
These are the lines that will work:
                // intervening characters between previous paragraph and definition terms
                final BasedSequence interSpace = paragraphPrevious == null ? BasedSequence.NULL : BasedSequenceImpl.of(paragraphPrevious.getChars().baseSubSequence(paragraphPrevious.getChars().getEndOffset(), paragraph.getChars().getStartOffset()).normalizeEOL());

                final boolean hadPreviousList = paragraphPrevious instanceof DefinitionList && interSpace.countChars('\n') < 2;

I also added an option to DefinitionExtension to allow enabling this behaviour for the next release. Set DefinitionExtension.DOUBLE_BLANK_LINE_BREAKS_LIST to true.

@firm1, repo updated. Maven update in progress

@vsch Thank's a lot for your commit.
Now I'm looking for a parameter that i can't find.
I would like the blanklines between the terms to be significant. For example, I would like the following markdown :
Term 1
:   Definition 1 (paragraph)

:   Text out of definition (paragraph)

Give me this html :

Term 1

Definition 1 (paragraph)

:  Text out of definition (paragraph)

Can you tell me what option to adjust for this behavior ?

@firm1, I added the logic to DefinitionItemBlockParser to ignore definition terms spaced two or more blank lines from previous element when DefinitionExtension.DOUBLE_BLANK_LINE_BREAKS_LIST is true.
The two or more blank lines condition makes it consistent with the option to break lists and also does not conflict with having a single blank line being used to mark a loose definition list (ie. text wrapped in p tags).
The example you gave should be changed to:
Term 1
:   Definition 1 (paragraph)

:   Text out of definition (paragraph)

The original is interpreted as a term with two definitions loosely spaced.
Repo updated. Maven update in progress.

Hello @vsch ,
Sorry for my questions, but I'm trying to make an extension that is inspired by the definition extension.
I tried with the definition extension this :
Term 1
:   Definition 1 (paragraph)

:   Text out of definition (paragraph)

But  Text out of definition (paragraph) stay always in block. I would like to get this :

Term 1

Definition 1 (paragraph)

:  Text out of definition (paragraph)

with this markdown content :
Term 1
:   Definition 1 (paragraph)

:   Text out of definition (paragraph)

@firm1, I do not understand why the current implementation of definition list extension with DefinitionExtension.DOUBLE_BLANK_LINE_BREAKS_LIST option set to true does not give you what you want. I modified the implementation to handle your case.
Here is a test case with you exact text and resulting HTML and AST:
With multiple terms, broken into two lists:

```````````````````````````````` example(Definition List Extension: 15) options(break-list)
Term 1
:   Definition 1 (paragraph)

:   Text out of definition (paragraph)
.

Term 1

Definition 1 (paragraph)

:   Text out of definition (paragraph)

.
Document[0, 76]
  DefinitionList[0, 36] isTight
    DefinitionTerm[0, 7]
      Paragraph[0, 7]
        Text[0, 6] chars:[0, 6, "Term 1"]
    DefinitionItem[7, 36] open:[7, 8, ":"] isTight hadBlankLineAfter
      Paragraph[11, 36] isTrailingBlankLine
        Text[11, 35] chars:[11, 35, "Defin … raph)"]
  Paragraph[38, 76]
    Text[38, 76] chars:[38, 76, ":   T … raph)"]
````````````````````````````````


CI Updates: Add dependabot.yml and limit link checks to intel/perfmon

Dependabot

Introduce dependabot.yml to enable version updates for pip and GitHub Actions. Dependabot scanning and alerts for dependencies with security updates is already enabled.
At the moment Python scripts aren't using additional packages via requirements.txt. Enabling PIP scans is for upcoming tools / checks.

Limit link checks to intel/perfmon

Automatically checking links is intended to be a low volume reminder to update stale links. It isn't necessary for every fork (examples below) to also act as a reminder. This pull request checks if the repository is intel/perfmon and further removes push and pull_request  triggers.
https://github.com/edwarddavidbaker/perfmon/actions/workflows/check-markdown-links.yml?query=event%3Aschedule
https://github.com/captain5050/perfmon/actions/workflows/check-markdown-links.yml?query=event%3Aschedule

Thanks Kshipra. I'll submit a PR here soon for the internal repo.


Changes: Made changes on header and footer part

Related Issue
[Cite any related issue(s) this pull request addresses. If none, simply state "None”]
#147
Description
[Please include a brief description of the changes or features added]
Have made some changes in header and footer part to make it similar with the original one
Type of PR

[x] Bug fix
[x] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)
[Attach any relevant screenshots or videos demonstrating the changes]
Checklist:

[x] I have performed a self-review of my code
[x] I have read and followed the Contribution Guidelines.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers, screenshots, and videos after making the changes.
[x] I have commented my code, particularly in hard-to-understand areas.

Additional context:
[Include any additional information or context that might be helpful for reviewers.]

@arghadipmanna101 Can you check this I have made changes on the updated clone.

Not look good.

Sir I have made footer like this

There have some conflict issue check it once

@arghadipmanna101 can you now check now

The previous footer is better and original as flipkart.

So sir what changes should I do I have also updated header file


Wrong MD5 checksum when uploading files

It seems that the adapter (or one of its dependencies) calculates an MD5 checksum of the uploaded file and sends it to S3 along with the file itself.
However, for some reason, when I upload a file, the calculated checksum is different from the actual checksum I get when I calculate it locally.
I have calculated the checksum locally of the uploaded file (md5 path/to/file on OS X) and compared it to the following situations:

When I upload the file directly to S3 using their Management Console, the checksum matches what I calculate locally
When I upload the file using skipper-s3, the checksum is different (via curl -F track=@/path/to/file http://path-to-server)

The invalid checksum appears for every file I upload so it does not seem to be content-dependent.
As a temporary workaround, is there any possibility to disable sending the content-md5 header to S3 during upload?
Thanks for your help! Let me know if I can provide any troubleshooting information.
PS. Here is the code I use to upload the file. It looks very ordinary to me. :)
function upload (req, res) {

  var eventid = req.param('eventid')
    , trackid = req.param('trackid')

  req.file('track').upload(
    { adapter: require('skipper-s3')
    , key: sails.config.aws.accessKeyId
    , secret: sails.config.aws.secretAccessKey
    , bucket: sails.config.s3.params.Bucket
    , dirname: eventid
    , saveAs: trackid + '.ogg'
    , maxBytes: 100 * 1024 * 1024   // 100 MB
    }
  , function (err, files) {
      if (err)
        return res.serverError(err)

      return res.ok(files)
    }
  )
}

Is the server rejecting your files?

No, the server accepts the files and also takes the provided MD5 checksum with it, even though it is incorrect...
It seems that S3 simply trusts in the validity of the checksum and does not validate it itself. There is no indication whatsoever that the checksum might be invalid, the issue only appears when I download the file, calculate the checksum of that file and compare it with the ETag header S3 provides.
Which indicates the file has been uploaded correctly, just the checksum has been miscalculated.
Note that when no content-md5 header is provided, S3 calculates the checksum itself.

Is there anything I can do to help further this issue...? I was unable to track down the issue in the code so I am afraid I cannot help with a patch, but if there is troubleshooting to be done let me know!
Thanks for your help!


Advanced indexing (numpy) not supported

Any plans on this?
  File "train_test.py", line 177, in train_epoch
    loss.backward()
  File "/root/anaconda2/lib/python2.7/site-packages/chainer-<IP_ADDRESS>-py2.7-linux-x86_64.egg/chainer/variable.py", line 277, in backward
    gxs = func.backward(in_data, out_grad)
  File "/root/Code/TripleChain/loss.py", line 111, in backward
    dLda[self.Li==0.] = 0.
  File "cupy/core/core.pyx", line 1037, in cupy.core.core.ndarray.__setitem__ (cupy/core/core.cpp:20894)
  File "cupy/core/core.pyx", line 969, in cupy.core.core.ndarray.__getitem__ (cupy/core/core.cpp:19883)
ValueError: Advanced indexing is not supported

Or maybe how i can overcome this temporary?

We have no concrete plan on advanced indexing yet, though we want to support it in the future. It seems you want to fill 0 by boolean indexing. You can use copyto to do that. I found that the current implementation does not accept Python scalars as src, so pass a numpy scalar explicitly (I've raised another issue):
xp.copyto(dLda, dLda.dtype.type(0), where=self.Li==0.)

great, thank you!

Advanced indexing is implemented in #2203.


AssertionError

AssertionError happened when I run train_voc.sh, but I don't know how to solve this problem:
Namespace(backbone='resnet', base_size=513, batch_size=16, checkname='deeplab-resnet', crop_size=513, cuda=False, dataset='pascal', epochs=50, eval_interval=1, freeze_bn=False, ft=False, gpu_ids='0,1,2,3', loss_type='ce', lr=0.007, lr_scheduler='poly', momentum=0.9, nesterov=False, no_cuda=False, no_val=False, out_stride=16, resume=None, seed=1, start_epoch=0, sync_bn=False, test_batch_size=16, use_balanced_weights=False, use_sbd=True, weight_decay=0.0005, workers=4)
Traceback (most recent call last):
File "train.py", line 303, in
main()
File "train.py", line 292, in main
trainer = Trainer(args)
File "train.py", line 30, in init
self.train_loader, self.val_loader, self.test_loader, self.nclass = make_data_loader(args, **kwargs)
File "/Users/xy/Desktop/models/pytorch-deeplab-xception-master/dataloaders/init.py", line 7, in make_data_loader
train_set = pascal.VOCSegmentation(args, split='train')
File "/Users/xy/Desktop/models/pytorch-deeplab-xception-master/dataloaders/datasets/pascal.py", line 52, in init
assert os.path.isfile(_image)
AssertionError

hello,i have the same problem! Have you solved it?thx!

sorry, I haven't solved it yet.
I can't download the resnet and mobilenet in the github successfully.
If you solve it, please tell me.thx
At 2020-01-09 17:51:01, "leedoge"<EMAIL_ADDRESS>wrote:
hello,i have the same problem! Have you solved it?thx!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

make sure to set right gpu_id and workers，i changed the gpu_id=0 since i only have one gpu and set workers=1 or 2 | | YING<EMAIL_ADDRESS>| Signature is customized by Netease Mail Master On 01/09/2020 19:42, JasonChenhx wrote: sorry, I haven't solved it yet. I can't download the resnet and mobilenet in the github successfully. If you solve it, please tell me.thx At 2020-01-09 17:51:01, "leedoge"<EMAIL_ADDRESS>wrote: hello,i have the same problem! Have you solved it?thx! — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

hello,i have the same problem! changing the gpu_id isn't work


Inconsistent deprecation of ViewColumn

Tests https://github.com/Microsoft/vscode/issues/48453
readonly viewColumn?: ViewColumn; is deprecated but reveal(viewColumn?: ViewColumn): void; not. This seems to be inconsistent.

The intent is that viewColumn will be replaced by gridPosition or similar. When this happens, viewColumn will be undefined if the webview is not in any of the main columns, making the properly far less useful. We will always have a reveal method though, it will just would be overloaded to take a gridPosition instead of a viewColumn. Callingreveal using a viewColumn will continue to work in grid layout


flutter macos desktop launch,

Appears when the desktop version starts
Unhandled Exception: Exception: Websocket url not found
May I ask what is the reason

Appears when the desktop version starts Unhandled Exception: Exception: Websocket url not found May I ask what is the reason

got the same error, any solution?

hank you, I also solved the problem here. I forgot to come back and recover.

how to do this on linux?

is there any solution without touching app-sandbox ?

It worked for me on debug mode when I set to sandbox:false, but when I export the macOS app, that was the error:
creation failed, path = .local-chrome


Unable to use custom ModelConverter for custom typename resolving

Hi,
I'm using swagger-jaxrs2 to generate the open api spec and I'm ran into the use case where swagger doesn't understand multiple classes with the same name present in different packages, As per PR #2797, this can be fixed using custom typename resolving .
However, I don't understand how to inject a custom model converter because:

io.swagger.v3.jaxrs2.Reader class in swagger-jaxrs2, internally calls io.swagger.v3.core.util.ParameterProcessor to process parameters into Schema objects, but there is no way to inject a custom model converter (similar to the example shown in CustomResolverTest) here. ParameterProcesser uses the default model converter.

io.swagger.v3.jaxrs2.Reader class in swagger-jaxrs2 also uses the default ModelConverter to parse the response object into Schema and here too, there is no way to inject a custom model converter.

Is there a way to get around this?

Both Reader and ParameterProcessor make use of converters via ModelConverters.getInstance() therefore allowing to inject a custom converter; #2797 is related to 1.x line (1.5 branch), while I assume you are using 2.x/master; in this case please check #2798 instead; custom converters can be added via config (see modelConverterClasses field) or programmatically
please close ticket if it answers your question.

Hello,
Thank you for the prompt response. This answers my question. Closing the ticket.


Path helper remote file inclusion security check fail

The currently implemented security check to make sure the path is NOT a URL can easily be bypassed (gives false negative) for all subdomains.
Eg "subdomain.domain.com" should ideally show an error but it does not.
The new security check (in addition to the previous one) tries to make a fsockopen connection to validate whether the URL is external or not.

This is hardly a real security check, it's only designed to reject the most obvious URLs and that's just for the developer's convenience, it is not a user input sanitizer function.
fsockopen() is a huge overkill for that (especially given that even the path existence checks are optional) and could easily result in false positives - actual domain names are often used as wwwroot directory names.

Okay, just to confirm this again, this is not valid due to the fsockopen() overkill or just simply because that the check is not that important.
What I mean to ask is that if I modify only the regex string to filter out more of those 'obvious URLs' (which won't result in any overkill) then would it be considered useful ?

Both. :)
The regular expression may be modified just as long as you don't make it over-intrusive, i.e. making it reject "subdomain.domain.tld" wouldn't be appropriate due to the possible false positives that I explained in my previous comment.

Yeah got it. As long as I decrease the false negatives and don't increase the false positives it's all good.


FIX IP in VPN by user

Hi,
Please how could i fixe the IP in VPN for users/profils  ?
I would need one server to have always same IP in the VPN for filesharing with other log by the VPN
regards

This is not supported by the installer. Check the OpenVPN documentation for further information.


Parameters editing

Dear experts,
I installed your toolbox and I've encountered some issues setting the parameters.
First, is there a way to choose the best HRF basis function based on my data?
Could be a correct approach to estimate both canonical and gamma functions and then compare them? If so, how should I do it operatively?
Then, in the case of gamma function, how can I estimate the number of basis functions?
In Threshold (SD) for event detection should I change the value (i.e 1)? (considering both the options: canonical and gamma function). I read here in the solved issues that your advice is to do not change if I don't know what parameter set.
Also, what is K (local peak)? How is it calculated?
Many thanks in advance
Beatrice

Dear Beatrice
thanks for your questions, please see some replies inline below
First, is there a way to choose the best HRF basis function based on my data?
There's no universal rule. The gamma mixtures will best reproduce a wide variety of shapes. FIR is more agnostic and data driven, and possibly more suitable if your target property is the whole hrf shape, for example with afni 3dMSS. It's also more suitable for unusual shapes, like animal or pathology.
Could be a correct approach to estimate both canonical and gamma functions and then compare them? If so, how should I do it operatively?
Unless there's a "ground truth" to compare to, then it's difficult. Indicators such as spatial or temporal variance can be useful though.
In the case of gamma function, how can I estimate the number of basis functions?
It's a choice you make, rather than an estimation. To avoid overfitting, the number should not be too high.
In Threshold (SD) for event detection should I change the value (i.e 1)? (considering both the options: canonical and gamma function)
This is not necessary, but it's indeed a parameter that you can choose to tune.
Also, what is K (local peak)? How is it calculated?
See eq. [3] of the tutorial paper, where K is defined as the range of x values in which we look for a peak.:
y(i) is defined as peak: y(i)>y(i+x),  x=[-K: K];
I hope this helps


[Cosmos] When are we getting Deno drivers?

Are Cosmos drivers for Deno in the works?  We now have MongoDB https://github.com/denodrivers/deno_mongo and all the others -- but no Cosmos.  Why don't I see any mention of this?   Where are the drivers to use Azure blob storage?  How can one use Deno within Azure without any hooks into the services layer?

#13281 is the issue that we are using to track all discussions around deno support in Azure SDKs
@zfoster, @southpolesteve If you have nothing to add here that will be specific to cosmos, I would recommend moving this conversation to #13281
cc @bterlson, @xirzec, @chradek

Yep that sounds good, thanks! nothing I can think of so closing this one


Error?

So, i'm kinda retarded, and been trying to figure out how to use your tool for a while, managed to do the pip install, but doing the "Usage" step it gives this. i'm assuming it failed. if you could help. appreciate it

Could you check your downloadPath in the config?
If your path contains singular backslashes, try doubling them up.
# Example of before
C:\some\path\to\directory

# Example of after
C:\\some\\path\\to\\directory

Hey, thanks for replying. I followed your advice and it worked but it seems it got stuck in the "starting download" i let it run for 5 minutes and nothing changed

And nothing showed up in the download directory either.

I have noticed that the "TheSimsResource" site now has basically 2 downloads timers, first a 14 second one and then a 4 second one, i don't know if that changed affected your tool.

Tested it out on my end, and it works, I discovered it freezes up like that if the downloadPath does not exist.
Looking at your downloadPath you have a ./ before the directory.
Corrected config file:
{
	"downloadDirectory": "D:\\Sims4Mods",
	"maxDownloads": 5
}

I tested it, you where correct, the ./ was the issue. it downloaded now. Thank you. Very useful tool you have here. Keep up the great work and thank you for the help. have a nice day


Error when detaching a project

I'm getting an error when I try to detach an expo project with exp v40.0.2
Configuring iOS dependencies...
Cleaning up iOS...
[exp] ENOTEMPTY: directory not empty, rmdir '.../temp-ios-directory/ios/Pods/Headers'

I'm using MacOS Sierra (10.12)

Does this prevent your project from working? It should be harmless. If it's blocking you, maybe just try discarding local changes and detaching again.

Thank you for your answer. Yes it prevents the detaching to be done, what changes should I discard ?

We looked into this a bit more, and we think the issue may happen if there is another process doing work inside the same folder while detach is happening. For example, if you have Dropbox sync enabled in this folder, I recommend temporarily turning it off.
By "discard local changes" I meant if you are using version control, just go back to whatever state you were in before you ran exp detach.

I tried again and it worked fine 💯. I wasn't able to reproduce the problem, I tried with the project folder open in Atom. Thank you.


node: Bump NODE_BUILD_VERSION

This bumps NODE_BUILD_VERSION in build_deploy and pr_check scripts from the default 16 to version 18.

/retest


Bug: missing code for the hooks

The website used to have the code for each hook, but something must have broken in the UI update, as they're no longer there and it instead says to install the hook.
It must be a bug, cause that's a terrible UX.

You already know my answer since you commented on the thread of which this is a duplicate issue.


Support jupyterlab 3

Update to JL3 and pin cytoscape to latest version
Closes #72

ipywidgets 8 is coming soon... you'll probably want to pin that in your project, as well as install_requires, e.g. ipywidgets >=7.6,<8 until we know for sure what the damage will be...

Okay all green. Thanks for helping locate everything @nrbgt


Fix mypy/annotations in atomic_reactor/util.py

Maintainers will complete the following section

[ ] Commit messages are descriptive enough
[ ] Code coverage from testing does not decrease and new code is covered
[ ] JSON/YAML configuration changes are updated in the relevant schema
[ ] Changes to metadata also update the documentation for the metadata
[ ] Pull request has a link to an osbs-docs PR for user documentation updates
[ ] New feature can be disabled from a configuration file

change to annotations in codebase, no release notes needed


Move katib docs to website

Docs were added in kubeflow/kubeflow#989; we should move them to our webiste.

/assign

Waiting on #105.

@amsaha @jlewi My 2c is that the Katib docs should be part of "Guides -> Components". Currently the Katib guide is quite short, but we may expand it later so that it becomes more than just a getting-started guide for Katib.
My thinking is that the "Getting Started" section should focus on getting started with Kubeflow as a whole, rather than on getting started with components of it. So, I think it's OK for the Minikube and gke quickstarts to be in the getting-started section, but the quickstarts for each component belong rather in the "Guides" section.
An added advantage of this thinking is that we can keep the getting-started section short, which makes it simpler for new users.

Thanks @sarahmaddox and @jlewi  for the comments. I will work on this (thats why I assigned it to myself). So I will put it in Guides->Hyperparameter Tuning.
Wondering whether Katib should be part of the name (Guides->Hyperparameter Tuning (Katib)) so that users who know of Katib (instead of the general area of hyperparameter tuning) can also easily locate the doc.

/close


Remove #![feature(proc_macro_hygiene)] everywhere

Requires the solana bpf sdk to be on Rust 1.45 or above.

Blocked on the solana sdk, so labeling as p3.

Blocked on the solana sdk, so labeling as p3.

When we do this, we should also switch travis to run stable rust. Currently we use nightly so that we can compile the rust client tests in CI, which depends on solana programs, which use #![feature(proc_macro_hygiene)], which cannot be used on stable rust (as #![feature] is a nightly only attribute). The switch to nightly is introduced here https://github.com/project-serum/anchor/pull/85/files.

Addressed by https://github.com/project-serum/anchor/pull/139.


Fix docked FAB bottom padding when BottomBar size is 0

https://material.io/design/components/app-bars-bottom.html#behavior
Used to replicate the scrolling behavior of material design

Without this fix the FAB will stick to the bottom, ignoring padding.
class _MyHomePageState extends State<MyHomePage>
    with SingleTickerProviderStateMixin {
  AnimationController animationDouble;

  @override
  void initState() {
    super.initState();
    animationDouble = new AnimationController(
        vsync: this, value: 1.0, duration: Duration(milliseconds: 250));
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text(widget.title),
      ),
      body: new NotificationListener(
        onNotification: (t) {
          if (t is UserScrollNotification) {
            if (t.direction == ScrollDirection.reverse) {
              animationDouble.reverse();
            } else if (t.direction == ScrollDirection.forward) {
              animationDouble.forward();
            }
          }
        },
        child: new ListView(
          children: <Widget>[
            new ListTile(
              title: Text("Test 1"),
            ),
            new ListTile(
              title: Text("Test 2"),
            ),
            new ListTile(
              title: Text("Test 3"),
            ),
            new ListTile(
              title: Text("Test 4"),
            ),
            new ListTile(
              title: Text("Test 5"),
            ),
            new ListTile(
              title: Text("Test 6"),
            ),
            new ListTile(
              title: Text("Test 7"),
            ),
            new ListTile(
              title: Text("Test 8"),
            ),
            new ListTile(
              title: Text("Test 9"),
            ),
            new ListTile(
              title: Text("Test 1"),
            ),
            new ListTile(
              title: Text("Test 2"),
            ),
            new ListTile(
              title: Text("Test 3"),
            ),
            new ListTile(
              title: Text("Test 4"),
            ),
            new ListTile(
              title: Text("Test 5"),
            ),
            new ListTile(
              title: Text("Test 6"),
            ),
          ],
        ),
      ),
      bottomNavigationBar: new SizeTransition(
        sizeFactor: animationDouble,
        child: new BottomAppBar(
          shape: CircularNotchedRectangle(),
          notchMargin: 8.0,
          color: Colors.blueAccent,
          child: new Row(
            children: <Widget>[
              IconButton(
                icon: Icon(Icons.menu),
                onPressed: () {
                  print("open menu");
                },
                color: Colors.white,
              )
            ],
          ),
        ),
      ),
      floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
      floatingActionButton: new FloatingActionButton(
        onPressed: () {},
        tooltip: 'Add',
        child: new Icon(Icons.add),
      ),
    );
  }
}

This will need a test.
cc @HansMuller or @goderbauer for more detailed review.

@littlemarc2011 thanks for the contribution!  I'm going to mark this as "needs love" due to the inactivity over the past 20 days (as @Hixie says, this PR needs a test).  Are you willing to add a test for this code?

I will try my best to add a test, it is on my list of things to do.

@littlemarc2011 any luck?

I'm going to close this because there hasn't been any activity for a while.


Fix cursor location in a*

fixes #49

Actually wait this doesn't completely fix #49, because the behaviour of o* is still unchanged. I wonder if it would be better to fix o* at the same time.
It would be pretty much the same fix, except that we would use Path::push() to move the cursor down a level in the tree.


Subcell limiting: Revise order of bounds using a Dict

In later PRs, the order of bounds in variable_bounds can be very confusing.
For instance, in the branch with all subcell limiting features, there is this code to get the right position in variable_bounds (see here):
@unpack variable_bounds = limiter.cache.subcell_limiter_coefficients

counter = 2 * length(limiter.local_minmax_variables_cons) + spec_entropy +
              math_entropy
if local_minmax
    if variable in limiter.local_minmax_variables_cons
        for (index_, variable_) in enumerate(limiter.local_minmax_variables_cons)
            if variable == variable_
                var_min = variable_bounds[2 * (index_ - 1) + 1]
                break
            end
        end
    else
        for variable_ in limiter.positivity_variables_cons[1:index]
            if !(variable_ in limiter.local_minmax_variables_cons)
                counter += 1
            end
        end
        var_min = variable_bounds[counter]
    end
else
    var_min = variable_bounds[counter + index]
end

This PR now revises the implementation using a Dict, reducing the linked code to 2 only lines:
@unpack variable_bounds = limiter.cache.subcell_limiter_coefficients
var_min = variable_bounds["$(variable)_min"]

The reason why it was so complicated earlier was, that I only allocate the bound arrays for variables which are actually limited. Moreover, if a variable is limited with both the positivity limiter and the local limiter, only the more restrictive bound should be saved, but both limiter should be able to access the saved bound. Therefore, I had to check for every positivity variable, whether the same variable is limited locally. In both cases, the location of the bound in variable_bounds is different.

After @efaulhaber 's suggestion from above, I directly implemented the variable variable_bounds as Dict. It actually wasn't necessary to use an additional bounds ordering variable. Your suggestions/questions seem to treat an old version. @sloede
I will push the change to use Symbols instead of Strings and request a review from you.


Point to impyla?

If you're willing, you could also point to impyla on the README, which will be maintained by Cloudera.

@laserson makes a very good point.

:+1:


Full control fleet adapter crashes when receiving a delivery request from its current waypoint

When a delivery request is sent such that the current waypoint of a robot in the fleet is the same as the pickup waypoint of the request, the full control fleet adapter crashes with the following message:
[rviz2-7] [INFO] [1607920480.283272288] [rmf_panel]: Queued delivery request
[rviz2-7] 12:34:40	Delivery	From: tinyRobot2_charger	To: cubicle_2
[rviz2-7]
[ERROR] [full_control-12]: process has died [pid 326411, exit code -11, cmd '/home/rushy/Desktop/rmf_demos_ws/install/rmf_fleet_adapter/lib/rmf_fleet_adapter/full_control --ros-args -r __node:=tinyRobot_fleet_adapter --params-file
/tmp/launch_params_rl986a1k --params-file /tmp/launch_params_37r64xfb --params-file /tmp/launch_params_m4kj8hj_ --params-file /tmp/launch_params_4unzo_z4 --params-file /tmp/launch_params_v42maxw8 --params-file /tmp/launch_params_inexicsc
--params-file /tmp/launch_params_iqz4xlw0 --params-file /tmp/launch_params_1f4fruh_ --params-file /tmp/launch_params_5sv1cz9_ --params-file /tmp/launch_params__r6618kn --params-file /tmp/launch_params_k_dq7f1j
--params-file /tmp/launch_params_gsdbmv6p --params-file /tmp/launch_params_5nzb689h --params-file /tmp/launch_params_dzpybgtp --params-file /tmp/launch_params_hd9_jh8h'].

Did a bit of digging, and it seems like the error occurs in the following lines:
https://github.com/osrf/rmf_core/blob/7909c0474e4c290f1bdd56c240ddeda2376832d6/rmf_fleet_adapter/src/rmf_fleet_adapter/agv/FleetUpdateHandle.cpp#L88-L97
pickup_plan has 0 waypoints in its plan, so pickup_plan_end is undefined, causing a segmentation fault when dropoff_start is constructed.

This should be fixed by #217 . Please feel free to reopen this ticket if the problem persists.

This should be fixed by #217 . Please feel free to reopen this ticket if the problem persists.


Reorganize and split out some code from the WelsDecodeSlice

Not sure if this is an improvement, but I was a little overwhelmed by the gigantic if/else. I might further reduce this by creating separate loops for Recoding vs Decoding that call into helper functions for shared logic. That would reduce the number of parameters being passed in. Thoughts @danielrh @pathorn?

Patrick managed to merge it in 885d760628d831ae868b1dc0e56d671f96d06549
Unfortunately the authorship information was not preserved

No problem. I hope it wasn't more trouble than it was worth!
On Tue, Aug 18, 2015 at 10:02 PM, Daniel<EMAIL_ADDRESS>wrote:

Patrick managed to merge it in 885d760
https://github.com/danielrh/losslessh264/commit/885d760628d831ae868b1dc0e56d671f96d06549
Unfortunately the authorship information was not preserved
—
Reply to this email directly or view it on GitHub
https://github.com/danielrh/losslessh264/pull/2#issuecomment-132447495.


Got "Cannot read property 'width' of undefined"

This function  71 line: gm(filepath).size(function(err, size) { }  returns size that equals undefined.
I've installed ImageMagick and all needed libs. (convert -help are working)
Grunt config:
image_resize: {
            '16px':{
                options: {
                    width: 16,
                    height: 16,
                    overwrite: true
                },
                files: [{
                    expand: true,
                    src: ['input/*.png'],
                    dest: 'out/'
                }]
            }
    }

And in fact some files are processed(until task find an error)

OS: Windows7
Upd: It's definitely not a wrong path issue.

+1 (win 7)


Connect to multiple consul server

With consul it is very easy to create a cluster see for example here: https://hub.docker.com/r/progrium/consul/
A far as I have seen, with docker-machine it is only possible to pass along one consul server for --swarm-discovery and --engine-options (one IP) like i.e.
docker-machine create \
  -d digitalocean \
  --swarm \
  --swarm-master \
  --swarm-discovery="consul://${KV_IP}:8500" \
  --engine-opt="cluster-store=consul://${KV_IP}:8500" \
  --engine-opt="cluster-advertise=eth1:2376" \
  master

wouldn't it make perfect sense to able to pass multiple consul IP addresses, so in the case one consul fails, all can continue without problems?
Not sure If swarm itself cannot take more then one IP. Could be the case of course.

I'm not 100% positive, but I think that after bootstrapping a Consul cluster you would just point Swarm at any node you are exposing the HTTP API from.  Consul handles the coordination and consensus "behind the scenes" and each agent exposes a unified interface, so it wouldn't do you any good to connect to multiple endpoints.
Maybe @vieux @abronan @al can chime in with additional commentary.
From the referenced page:

The Agent endpoints are used to interact with the local Consul agent. Usually, services and checks are registered with an agent which then takes on the burden of keeping that data synchronized with the cluster.

If concerned about high availability of the Consul node you're connecting to, you might be able to put several nodes behind one elastic IP or DNS record.  Not sure what Hashicorp's "best practice" architecture is here.

@nathanleclaire Thanks!
I played a bit around with this and it seems you are right:: consul does this behind the scenes and therefore there is no (absolute) need to give more the one consul IP/DNS.
Of course this does not work  if the primary node  is permanently down for some reason. Then, if one restarts the whole cluster (which should not happen anyway), the primary node needs to be set to another host probably manually. So for this use-case it might come in handy to have more then one node.
Nathan, there is still the other issue namely #3303 which is kind of a blocker to me and is somehow minor related to this, since I cannot fully test the consul cluster. I'm not sure if I do it correctly but in #3303  with my last post, I explain what happens when Port 4000 is closed. Would be very nice if you could have a look again at #3303!
thanks!!


Add an External Trigger for enhancement

Add an External Trigger to easily inquire ChatGPT from the different workflows. (1)
Also, fix the wrong Call External trigger name. (2)

Thank you, but the fix already exists internally so this PR would conflict with it. For such minor changes, an issue is preferred.

Add an External Trigger to easily inquire ChatGPT from the different workflows.

Can you give an example of how you’re using this?


Support higher extension versions than auto-upgrade

We should support extensions set up at higher-versions
than what we would auto-upgrade to as long as they are
in the valid range.
Previously, we errored if the version was higher than expected.
But this isn't right. Users should be able to use extension versions
at the bleeding edge just fine (e.g. pre-release versions or versions
that are above the default version); we just shouldn't auto-upgrade
tp them. This fixes the logic to not error in such cases.

bors r+


Possible bug: what if a command is dispatched with id = null?

On this line (and 159) https://github.com/AxonFramework/AxonFramework/blob/037954e80df3ba2d7b76d1cf46ac97a70f6d96ba/messaging/src/main/java/org/axonframework/commandhandling/distributed/AnnotationRoutingStrategy.java#L161
You call Objects#toString on the value of the id (method or field). In case the value is null, the identifier goes as string "null" which bypasses further validation and is considered valid.
This looks suspicious, so wanted to let you know.

The null which would be returned in this example, will end up in the AbstractRoutingStrategy, which performs a null check for the routingKey in question.
Depending on the selected UnresolvedRoutingKeyPolicy, several things might occur if the routingKey is null.
By default, this would be ERROR, but you could configure this to RANDOM_KEY or STATIC_KEY.
Concluding though, I don't view this as a bug for two reasons:

The above mentioned set up should cover this occurrence, and
If no routing key is found for a command, the CommandBus in turn will have no clue where to route the message too either. Note that Commands need a single point of handling, as you express the intent for a specific Aggregate/Component to perform some action. If that point isn't clear, then it's fine if an exception is thrown

Hope this explanation alleviates your concern @Sam-Kruglov!

@Sam-Kruglov, I'd like to extend my apologies, as you were right to mark this as an issue. Must have been a Monday-blues kind of thing from my part, because I completely missed you stated a "null" String was returned instead of the expected null.
I've corrected my response, and fixed the issue as well, in commit 1d22836.
Thanks again for the shared issue @Sam-Kruglov!

Glad I helped! Are you sure there is no need for a similar change on line 159?
https://github.com/AxonFramework/AxonFramework/blob/037954e80df3ba2d7b76d1cf46ac97a70f6d96ba/messaging/src/main/java/org/axonframework/commandhandling/distributed/AnnotationRoutingStrategy.java#L159

Darn, it definitely was a blue Monday.
I'll fix that asap, thanks for pointing it out @Sam-Kruglov!


LOGGING.md change for newlog

Signed-off-by: Naiming Shen<EMAIL_ADDRESS>
change the LOGGING.md for newlog infra

added also the APIv2.md changes, and protobuf for reply of POST with message 'serverMetrics'

updated to address the comments.


Re-run job

If a job fails due to a job template containing an error, if would be useful being able to re-run the failed job again (after the issue has been fixed). Re-running the job would remove error, start/end times and also any outputs.

Implemented in:

18f5f9957da3ca70ebed8574fb1b8e995107cc23
ufdl-python-client

I have added couple of extra methods for controlling the life-cycle of a job, release and abort.
The current life-cycle of a job is:
Normal life-cycle, completes successfully, all methods performed by the same node:
[created] --acquire-> [acquired] --start-> [started] --finish-> [finished]

Completes with error, performed by the node that owns the job :
[started] --finish-> [finished with error]

Reset, can be performed by the node itself or an admin:
[finished with error] --reset-> [acquired]

Node voluntarily releases job:
[acquired] --release-> [created]

Abort (can be performed by an admin only, resets and releases the job)
[created|acquired|started|finished with error] --abort-> [created]

The abort action sounds really useful for an admin, already added that to the flow managing the backend.
The abort_job action in the python-client was calling the reset_job mixin, which I fixed.


Markdown table is not rendered

Type: Bug
CC @meganrogge
Copilot renders a markdown table in a webview automatically; however, vision extension does not.
Reproducible Steps

Ask Copilot and see if the table is rendered:

Compare TypeScript and Python data types in a markdown table.

This time, take a screenshot of VS Code and ask Vision extension:

@vision Replicate the spatial layout of the screenshot in a markdown table. [paste your screenshot]

🐛 The table is not rendered in a web view.
Extension version: 0.2.2024111316
VS Code version: Code - Insiders 1.96.0-insider (2ed1e9b48c8f55e1b92322a992c6c12b1e86e444, 2024-12-02T05:06:23.390Z)
OS version: Windows_NT x64 10.0.26100
Modes:

System Info

Item
Value

CPUs
11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz (8 x 2611)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_graphite: disabled_offvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabledwebnn: disabled_off

Load (avg)
undefined

Memory (System)
15.71GB (3.35GB free)

Process Argv
. --crash-reporter-id b05b88e5-8894-4031-ae34-fa034ebddea9

Screen Reader
yes

VM
0%

A/B Experiments
vsliv368:30146709
vspor879:30202332
vspor708:30202333
vspor363:30204092
vscod805cf:30301675
vsaa593:30376534
py29gd2263:31024238
c4g48928:30535728
a9j8j154:30646983
962ge761:30841072
pythonnoceb:30776497
asynctok:30898717
dsvsc014:30777825
dsvsc015:30821418
pythonmypyd1:30859725
h48ei257:31000450
pythontbext0:30879054
cppperfnew:30980852
pythonait:30973460
dvdeprecation:31040973
dwnewjupyter:31046869
nativerepl1:31134653
pythonrstrctxt:31093868
nativeloc1:31118317
cf971741:31144450
e80f6927:31120813
iacca1:31150324
notype1:31143044
dwcopilot:31158714
h409b430:31177054
cf1a2727:31183122
5b1c1929:31184661

I wonder if this has to do with how the response is structured? I'll do some investigation

@jooyoungseo does this reproduce? I think you said you got it working?

This issue still exists. I mentioned a workaround to make it work using live server extension by copying and pasting the response content code block into a separate HTML. That was a temporary workaround.


HDDS-6488. Intermittent failure in ozone debug read-replicas with one datanode STALE

What changes were proposed in this pull request?
Smoketest for read-replicas assumes chunkinfo and read-replicas return datanodes in the same order.  This turned out to be false, causing intermittent failures.
This PR eliminates this assumption, improving the test to not rely on replica order.
https://issues.apache.org/jira/browse/HDDS-6488
How was this patch tested?
Temporarily changed execute_debug_tests to corrupt replica=2 instead of replica=0.
Excerpt from read-replicas manifest:
"replicas": [
  {
    "hostname": "ozone_datanode_1.ozone_default",
    "uuid": "00fab883-5d74-403c-ad54-2d31da07e445"
  },
  {
    "hostname": "ozone_datanode_5.ozone_default",
    "uuid": "ff218756-b571-41e9-9d4b-65f79dee30f0"
  },
  {
    "hostname": "ozone_datanode_3.ozone_default",
    "uuid": "5025a57f-8178-42d5-b18c-5731b71cc678",
    "exception": "java.util.concurrent.ExecutionException: org.apache.ratis.thirdparty.io.grpc.StatusRuntimeException: UNAVAILABLE: io exception"
  }
]

Order of datanodes in chunkinfo output:
$ cat result/testfile-blocks-10827 | jq -r '.KeyLocations[0][]["Datanode-HostName"]'
ozone_datanode_1.ozone_default
ozone_datanode_5.ozone_default
ozone_datanode_3.ozone_default

Test still passed.
CI with only this test:
https://github.com/adoroszlai/hadoop-ozone/runs/5649813090#step:5:127
Regular CI:
https://github.com/adoroszlai/hadoop-ozone/runs/5650040811#step:5:887

cc @dombizita for review.

Thanks @dombizita and @sadanand48 for the review.


Change

Hi, I'm getting this error

unexpectedly found nil while unwrapping an Optional value
(lldb)
Can you help me? Thank you!

Hi @Jkurbs
Can you explain more about that error?
Did you change example code?
If yes, let me know what part is changed.
If no, when did you get that error?
Run this example and get that error right away? or
Run and draw something and then get that error?
Thanks.


Merge documentation for nested types

Search Terms
merge types / merge declarations / merge properties / merge documentation
Problem
Hello!
I've created a repository to demonstrate my problem. Please, take a look at this source file:
export interface ParamsBag <ParamsType> {
  params: ParamsType;
  qux: boolean;
}

export interface MyFuncParams {
  foo: string;
  bar: number;
}

export type MyFuncOptions = ParamsBag<MyFuncParams>;

export function myFunc(options: MyFuncOptions): void {
}

It defines a simple function myFunc that has a single argument of type MyFuncOptions, which builds upon two other types: ParamsBag and MyFuncParams. So there are three types involved when it comes to the function argument, but the final merged type declaration is quite simple:
export interface MyFuncOptions {
  params: {
    foo: string;
    bar: number;
  };
  qux: boolean;
}

However, typedoc will generate 3-4 pages for this function and it's argument where each type is declared separately. This is quite precise, but from the end-user perspective who will read the documentation this is absolutely unreadable. The user will have to build the merged type declaration in it's head to understand the structure of the function's argument.
Suggested Solution
Instead, it would be much better to merge all this type information to generate a single page that will describe the function argument. Ideally, it should look somewhat like this.
Is it possible to do? Would this be hard to implement? The thing is that it is pretty common in TypeScript projects to have resulting type built from dozen of other generics and type-helpers. Currently the documentation generated for such types are practically useless and I can't use typedoc to document my libraries.
Thank you!

Similar to #1519, #2032. I suspect this will be something that someday ends up as a plugin, but I'm not sure it will ever be a part of TypeDoc itself.

It's worth mentioning, however, that in this case you can do:
export interface MyFuncOptions extends ParamsBag<MyFuncParams> {}

Which, because it's an interface, means that TypeDoc will resolve all of the type members to give you:

It's worth mentioning, however, that in this case you can do:

That's good to know, thanks. I will try to use this approach where applicable as a workaround.

but I'm not sure it will ever be a part of TypeDoc itself

Please allow me to disagree. Using "reflective" typing, type aliases and type helpers is so common in TypeScript, that I believe that it's not only must be a core feature, but it is actually a critical feature. In my case, I don't see any use for documentation generated by TypeDoc, because it's impractical to use by the end users. I have had to change the structure of my library and spend couple of days refactoring it just to allow TypeDoc to generate somewhat useful docs.

There's nothing to disagree with - it's more a statement of that I'm unlikely to ever get around to implementing it. I've been more and more busy with non-typedoc projects.

Closing in favor of #1519


Super slow queries

You can run the backend with DEBUG=psql npm run dev to see all the queries with their execution time in ms. Queries shouldn't take more than 1s. You may want to see if we shouldn't add some indexes or loaders.
This is just to load the page http://localhost:3000/uk
(might also be related to my current logged in user: xdamman)
psql --------------------  --------------------
SELECT COALESCE(SUM("amount"), 0) AS "total"
FROM "Transactions" AS "Transaction"
WHERE (("Transaction"."deletedAt" > '2018-11-02 21:38:37.682 +00:00' OR "Transaction"."deletedAt" IS NULL)
AND ("Transaction"."amount" > 0
AND "Transaction"."createdAt" < '2018-11-02 21:38:37.677 +00:00'
AND "Transaction"."CollectiveId" = 302))
LIMIT 1;

-------------------- </query executionTime="3208"> --------------------
psql --------------------  --------------------
psql  Executed (default):
SELECT "CollectiveId", COALESCE(SUM("netAmountInCollectiveCurrency"), 0) AS "balance"
FROM "Transactions" AS "Transaction"
WHERE (("Transaction"."deletedAt" > '2018-11-02 21:38:37.694 +00:00' OR "Transaction"."deletedAt" IS NULL)
  AND "Transaction"."CollectiveId" IN (302))
GROUP BY "CollectiveId";

-------------------- </query executionTime="3196"> --------------------
psql --------------------  --------------------
psql  Executed (default):
SELECT "Transaction"."CollectiveId", COUNT(DISTINCT("FromCollectiveId")) AS "count", "fromCollective"."type"
FROM "Transactions" AS "Transaction"
INNER JOIN "Collectives" AS "fromCollective" ON "Transaction"."FromCollectiveId" = "fromCollective"."id"
  AND ("fromCollective"."deletedAt" > '2018-11-02 21:38:37.695 +00:00' OR "fromCollective"."deletedAt" IS NULL)
WHERE (("Transaction"."deletedAt" > '2018-11-02 21:38:37.695 +00:00' OR "Transaction"."deletedAt" IS NULL)
  AND ("Transaction"."CollectiveId" IN (302)
  AND "Transaction"."type" = 'CREDIT'))
GROUP BY "fromCollective"."type", "CollectiveId";

-------------------- </query executionTime="3202"> --------------------

Some suggestions(not necessarily all of them together and respectively) on how we can approach this issue:

Create effective indexes on the related table
Improve/simplify query
Look for caching solution through either sequelize or directly on the project itself
Create views on the database
Identify the slowest queries(not only for one user but in general) and run jobs to store straight results.

@xdamman I tested all 3 queries and they all execute in ~100ms.


button "latest transactions" automaticaly creates new receiving addresses for all accounts

Issue description
I thought we could keep one fixed receiving address per account, but wondered that i saw them changing without a recognisable pattern.
I did the following test on a total fresh profile
before every tx i saved the receiving addresses of the account
-request from faucet to acc1
-create acc2
request from faucet to acc2
-transfer from acc1 to acc2
-transfer from acc2 to acc1

always 3 Mi tx value
i ping ponged this several times and recognized that whenever i pushed "latest transactions" in the main view because the t x did not arrive in time i had afterwards different receiving addresses

Wallet version
Firefly v0.2.1
Platform: win32
Platform Version: 10.0.19041
Platform Architecture: x64
CPU Count: 4
Total Memory: 6082.5 MB
Free Memory: 2089.1 MB
User Path: C:\Users\Amedw\AppData\Roaming\Firefly
Is it a repeatable issue?
Yes
Steps To reproduce the issue
see above
Expected behaviour
1.) i expected the whole cool thing of chrysalis where reusable addresses so 1 address fixed for 1 account that i can use forever to receive and send tokens.
Actual behaviour
addresses change if i push a button that has no indication that addresses will be changed - this button seems to be a refresh button to get updated tx states and balances.
Also if we can generate new addresses for an account - how do we keep track of that addresses? Only if we write them down and look in explorer what happens to them?

If addresses can change we need a function / a log - of all addresses related to one account in the wallet
Errors
no errors
this is the file with all addresses that where generated per account during the sending forth and back between 2 accounts"
acc address change.txt
thats the button that changes the addresses:

This requires a broader discussion, since it is possible to reuse your address (you could send to an already used address and it would show up in your balance). Due to privacy reasons, this is not recommended which is why currently Firefly automatically switches addresses once they have been used.
I'll close this down, since the button works as intended. The confirmation of a new transaction triggers address generation. The refresh button looks for new transactions or transaction state changes, which is why it looks like the refresh button triggers it.
Feel free to reopen this or convert it to a discussion if you want to add something to the topic!


ethernet online endpoint

To support the helium wallet we need an endpoint that reports true or false depending on network.
EthernetOnline - Characteristic
UUID: e5866bd6-0288-4476-98ca-ef7da6b4d289

Data Type: ASCII String

Example Value: "true" or "false"

maybe expand the network/address endpoint to include status for both network interface eth0 and wlan0?

Now we get a json from api/network/address like
{
  "ip": "<IP_ADDRESS>",
  "port": 80,
  "eth0_mac": "D8:3A:DD:AD:95:30",
  "wlan0_mac": "D8:3A:DD:AD:95:31",
  "interfaces": {
    "eth0": "<IP_ADDRESS>",
    "wlan0": "<IP_ADDRESS>",
    "supervisor0": "<IP_ADDRESS>"
  }
}

This can be used to find interfaces that start with en/eth for ethernet, wl for wlan. if you have an ip in ethernet this is of course regarded as online.


Update russian translation for apply-the-flex-direction-property-to-c…

…reate-rows-in-the-tweet-embed.russian.md

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

Is there a way to see how translation works by the way? Or is this functionality only planned?

Closed and Reopened this PR to attempt to resolve a specific Travis build failure.

Thank you for your contribution to the page! 👍
We're happy to accept these changes, and look forward to future contributions. 🎉


waterfall 计算行宽导致crash

This PR/issue doesn't received response since Weex migrated to Apache two years ago and this repository is no longer active yet.
Feel free to ask question in new repository and thanks for your contribution.

This issue is outdated for a long time and will be closed now. You can create a new one if you still have questions.