Offers

This doesn't need to be done for mainnet, but we need to make sure that it can be done eventually.
Ask: Offer to sell sats
Inputs

A: Zero-value dummy output, provided by taker
B: Value M output containing ordinals to be sold, provided by maker
C: Value N output containing cardinal sats to be used for payment, provided by taker

Outputs

X: Value M output with taker's address
Y: Value N output with maker's address

Steps

Maker creates PSBT providing a signature for B, which commits to Y, using SIGHASH_SINGLE | SIGHASH_ANYONECANPAY. Due to A, B and Y have same index
Maker broadcasts PSBT
Taker adds inputs A and C and output Y and finalizes transaction
Taker broadcasts transaction
When transaction is mined, maker receives cardinal sats in Y for payment, taker receives ordinal sats in X

Bid: Offer to buy sats
Inputs

A: Zero-value dummy output, provided by taker
B: Value N output containing ordinal sats to be bought, provided by taker
C: Value M output containing cardinal sats for payment, provided by maker

Outputs

X: Value N output with maker's address
Y: Value M output with taker's address

Steps

Maker creates PSBT providing a signature for C, which commits to A, B, C, and X, using SIGHASH_SINGLE
Maker broadcasts PSBT
Taker adds output Y
Taker signs and broadcasts transaction
When transaction is mined, maker receives ordinal sats in Y for payment, taker receives cardinal sats in X

Notes:

Offer to buy is wrong but can be fixed.

In offers to buy, can people include change so they an use input uxos of any size?

This but also for inscriptions

@cryptoquick This actually covers inscriptions! Since inscriptions are on sats, which transfer using the ordinals protocol, offers to buy and sell individual sats work for inscriptions. (UX obviously needs to be there too!)

One of the things I think is critical for the design of this feature is that 3rd-parties can be optionally designated as recipients in the transaction. Most notably:

a fee for the exchange (e.g. OpenSea) and
a fee for the artist (royalties)

Ordinals will have the same issues as Ethereum in enforcing these, but both of those fees are massive forces for good and we should design offers to support them from the get-go
Because if tool-builders and artists know they can participate in the ongoing economy, you'll see an incredible amount of work poured into the ecosystem

@cryppadotta As far as I can tell, there is no way to implement royalties in an inforcable, technically reasonable way. See https://github.com/casey/ord/discussions/773 for some discussion we've been having on the topic.

Offers could certainly include a "tip" output to a third-partty, and venues (marketplaces, artist home pages, discords), etc could require that an offer file contain a tip in order to show it one the homepage, etc. I think this would be great. Offers are simple and flexible enough that we can add this in a v2 version. So I think no need to worry about it in the MVP. Offers are off-chain, and easy to upgrade!

What are the options for writing more protocols around Ordinals - bitcoin script only? Or is it possible to use sapio, stacks/clarity? (or anything else like that). Thanks!

I know you've taken a look at Chia and ChiaLisp @casey but not sure if you've dived into how Offers are implemented there that may offer some ideas: https://chialisp.com/offers/
The defined NFT1 standard also enforces royalties on-chain via the transfer function part of the standard NFT1 program @cryppadotta
There are differences between Chia's coin set model vs Bitcoin's UTXO namely Chia's use of BLS enables signature aggregation in a better way than Schnorr but I'm not sure if there are other shortcomings in Bitcoin Script that makes a similar implementation not possible...

What are the options for writing more protocols around Ordinals - bitcoin script only? Or is it possible to use sapio, stacks/clarity? (or anything else like that). Thanks!

Stacks is has a separate token, and is only thematically related to Bitcoin, so it and clarity will never be supported.
Sapio is an excellent project, and although I believe that @JeremyRubin is no longer working, it is open source and someone dedicated could pick up the torch. Sapio would be a great fit for filling in the gaps in Bitcoin Script for markets and services related to ordinals.

I know you've taken a look at Chia and ChiaLisp @casey but not sure if you've dived into how Offers are implemented there that may offer some ideas: https://chialisp.com/offers/

Thanks for the link! I have looked at offers, and they definitely seem similar to what we want to do here.

The defined NFT1 standard also enforces royalties on-chain via the transfer function part of the standard NFT1 program @cryppadotta

Royalties cannot be enforced on-chain, because the buyer and the seller can simply use another channel to perform the actual transfer of funds, and lie on chain about the actual sale price. Until I see a good implementation proposed that does not have this and other problems, I do not plan to add any royalty related functionality to ord.

There are differences between Chia's coin set model vs Bitcoin's UTXO namely Chia's use of BLS enables signature aggregation in a better way than Schnorr but I'm not sure if there are other shortcomings in Bitcoin Script that makes a similar implementation not possible...

Offers as sketched out don't really use script, only input and output selection, but I would be curious if something is missing. The coin set model and the UTXO model are pretty much the same, so I often actually use the "coin set" terminology when describing bitcoin, because "output" is a pretty unfamiliar term to most people 😅

Royalties cannot be enforced on-chain, because the buyer and the seller can simply use another channel to perform the actual transfer of funds, and lie on chain about the actual sale price. Until I see a good implementation proposed that does not have this and other problems, I do not plan to add any royalty related functionality to ord.

Well of course one can always get around royalties if you are okay with some level of trust. At the extreme I can sell you my private key to my wallet containing the NFT in exchange for cash and no information will take place on chain. The point with on-chain royalties (on Chia) is to create a standard where royalties are enforced when trustless Offer Files are used to exchange assets that follow that standard.

Offers as sketched out don't really use script, only input and output selection, but I would be curious if something is missing. The coin set model and the UTXO model are pretty much the same, so I often actually use the "coin set" terminology when describing bitcoin, because "output" is a pretty unfamiliar term to most people 😅

Fair point. BLS aggregation also opens the door to things like aggregation of Offers so multiple can be taken simultaneously.
A bit off topic but I heard your interview on Bankless and was intrigued by how you think tokens (like ERC-20 or CAT1 on Chia) can be implemented in a similar way. I think that's what would make Offers very exciting if its utility can go beyond just BTC for ordinal trades (or ordinals for ordinals).

Well of course one can always get around royalties if you are okay with some level of trust. At the extreme I can sell you my private key to my wallet containing the NFT in exchange for cash and no information will take place on chain. The point with on-chain royalties (on Chia) is to create a standard where royalties are enforced when trustless Offer Files are used to exchange assets that follow that standard.

Someone can probably figure out trustless atomic swaps to remove trust and still use offer files. I want to avoid a scenario where we advertise that we have royalties to artists, but then as the amount of the value in the system increases, it becomes a confusing and chaotic race to the bottom like we're seeing in Ethereum.

A bit off topic but I heard your interview on Bankless and was intrigued by how you think tokens (like ERC-20 or CAT1 on Chia) can be implemented in a similar way. I think that's what would make Offers very exciting if its utility can go beyond just BTC for ordinal trades (or ordinals for ordinals).

I think there's an issue open for fungible ordinals. I'm not sure how to support that, but we could add a metadata field to an inscription that said "the next N sats after this inscription" are fungible tokens. Support in ord would be hard, because special tracking for all those sat ranges would be difficult, but it's such a simple protocol-level extension that I would be open to adding it, if only so that others could experiment with it in other repos.

@SlowestTimelord Check out #787, I just copied my last comment there.

Sapio would only need minor changes to support basic ord functionality, but the biggest issue would be convention around fees probably.

question about incentives:
if i'm selling a rare sat, i set a price in my Ask offer
isn't there now an interesting dynamic where two buyers may compete with each other to fulfill it, and the one who pays a higher mining fee will win?

question about incentives: if i'm selling a rare sat, i set a price in my Ask offer isn't there now an interesting dynamic where two buyers may compete with each other to fulfill it, and the one who pays a higher mining fee will win?

Yup, that is correct. Seller should set the price such that it's close to what sellers are willing to pay. If it's below what sellers are willing to pay, then they will increase their "bid" by adding fees, which will go to miners. There are probably a bunch of different auction mechanism, where the value is split in different ways between miners and sellers.
On the one hand, you have the #1611 method, where miners get all bids. On the other hand, you have a descending price auction where the seller continually releases PBSTs with lower and lower prices until someone takes it and pays EV - FEE to the seller, where EV is expected value, and FEE is what's required to get it mined, which goes to the miner.

Something like this:?
const bitcoin = require("bitcoinjs-lib");
const bip32 = require("bip32");
const bip39 = require("bip39");
const mnemonic = "a random mnemonic phrase used as seed for BIP32";
const seed = bip39.mnemonicToSeed(mnemonic);
const node = bip32.fromSeed(seed);
const keyPairB = node.derivePath("m/44'/0'/0'/0/1").keyPair;
const keyPairC = node.derivePath("m/44'/0'/0'/0/2").keyPair;
const network = bitcoin.networks.testnet;
const p2pkhB = bitcoin.payments.p2pkh({ pubkey: keyPairB.publicKey, network });
const p2pkhC = bitcoin.payments.p2pkh({ pubkey: keyPairC.publicKey, network });
const p2pkhMaker = "the address for the maker";
const p2pkhTaker = "the address for the taker";
let psbt = new bitcoin.Psbt({ network });
psbt.addInput({
hash: "the hash of transaction A",
index: 0,
nonWitnessUtxo: Buffer.from("00", "hex"),
});
psbt.addInput({
hash: "the hash of transaction B",
index: 0,
witnessUtxo: {
script: p2pkhB.output,
value: N,
},
});
psbt.addInput({
hash: "the hash of transaction C",
index: 0,
witnessUtxo: {
script: p2pkhC.output,
value: M,
},
});
psbt.addOutput({
address: p2pkhMaker,
value: N,
});
psbt.signInput(2, keyPairC, null, bitcoin.Transaction.SIGHASH_SINGLE | bitcoin.Transaction.SIGHASH_ANYONECANPAY);
const partiallySignedPsbt = psbt.toBase64();
console.log("Partially signed PSBT:", partiallySignedPsbt);
// Maker broadcasts PSBT
psbt = bitcoin.Psbt.fromBase64(partiallySignedPsbt);
psbt.addOutput({
address: p2pkhTaker,
value: M,
});
psbt.signAllInputs(keyPairB);
const signedTransaction = psbt.finalizeAllInputs().extractTransaction().toHex();
console.log("Signed transaction:", signedTransaction);
// Taker broadcasts transaction
// When transaction is mined, maker receives ordinal sats in Y for payment, taker receives cardinal sats in X

I think the script should use "p2tr" because ordinals are inscribed in the p2tr scripts.

In offers to buy, can people include change so they an use input uxos of any size?

@casey, one way to support this is for the maker to include output Y, paying to the same address as the desired ordinal UTXO, output Z paying themselves change, and sign with SIGHASH_ALL. If the taker doesn't want to reuse the address, they can respond with an updated PSBT paying their preferred destination, also signed with SIGHASH_ALL. The added interactivity in that case isn't ideal, but I haven't thought of a better way to do it without SIGHASH_GROUP.

This actually covers inscriptions!

@casey does that mean an inscription can be created in the same "sell offer" PSBT so that it's zero-cost for a maker to create and sell inscriptions?

In the "Ask: Offer to sell sats", I fail to see how it is possible to guarantee these two:

that the buyer pays a minimum value (otherwise transaction wont fulfill)
and at the same time, that the buyer can be anyone (not specified in the transaction itself, so that anyone can buy)

It does make sense if you assume that:

Buyer signs first
Maker take a look at the payment partially signed by the taker/buyer and if they like it, they sign as well to send the ordinal sat

This way you can enforce both a minimum payment value AND that you know the buyer public key beforehand

Just created a topic on Discord #tech-support https://discord.com/channels/987504378242007100/1076920008065679500 in case we wanna discuss in a real time chat environment

@kevinfaveri the seller's signature commits to (only) the input spending the ordinal and the output paying himself the desired price, via SIGHASH_SINGLE|ANYONECANPAY. Anyone in possession of that PSBT can add an input spending at least the already-committed output's value and an output sending the ordinal to themselves, sign their input, and broadcast.
Having trouble verifying on Discord but will get in the chat when possible.

It occurs to me there's an odd dynamic that arises with miners and fees in a hot inscription market. Since a miner can always break the transaction apart and try to snipe the purchase from the buyer, the incentive is to pay a fee premium equal to the expected appreciation of the NFT over whatever timescale a miner is likely willing to stay illiquid for.
It's not a dealbreaker but will be interesting to observe how this plays out in practice.

@kevinfaveri the seller's signature commits to (only) the input spending the ordinal and the output paying himself the desired price, via SIGHASH_SINGLE|ANYONECANPAY. Anyone in possession of that PSBT can add an input spending at least the already-committed output's value and an output sending the ordinal to themselves, sign their input, and broadcast.
Having trouble verifying on Discord but will get in the chat when possible.

Thank you so much sir! So, in the "Ask: Offer to sell sats" theoretical algo, anyone can buy. Makes sense, but how to enforce that the buyer will pay the specific price of cardinal sats? e.g. will not try to pay less? Because maker only signs for the ordinal sat in the theoretical algo from @casey.
I think it is possible to workaround this (enforce a listing price) using OP_CODES that will validate the second input (from the taker, the payment) against a specific min price, right?

@casey What is the A: Zero-value dummy output, provided by taker for?

@orenyomtov just released an open source NFT marketplace base layer protocol.
Let's hack and validate it.
https://twitter.com/orenyomtov/status/1628106067119833107
https://github.com/orenyomtov/openordex
Congrats on the release and thanks on the choice of going OSS @orenyomtov, wish you good luck on your endeavor

Thanks! Would also love to cleanly abstract and export the capability as a library down the road
I'm also looking forward to creating a V2 that accomplishes this without the need for dummy UTXOs

I'm also looking forward to creating a V2 that accomplishes this without the need for dummy UTXOs

Have you looked into the psbtv2 protocol update yet? Curious is this solves the problem (i suspect it'll require more rounds of communication tho)

I'm also looking forward to creating a V2 that accomplishes this without the need for dummy UTXOs

Have you looked into the psbtv2 protocol update yet? Curious is this solves the problem (i suspect it'll require more rounds of communication tho)

Do you know which wallets support psbtv2?

The latest version of libwally has it, if iiuc.  https://github.com/ElementsProject/libwally-core/releases/tag/release_0.8.8

Oh that's not consumer grade wallets tho. Yeah no, it'll probably be a good bit before they update.

There's a really bad bug in the Bid flow fyi, cc @casey.
This line is problematic.

Maker creates PSBT providing a signature for C, which commits to A, B, C, and X, using SIGHASH_SINGLE

Given
Inputs
A: Zero-value dummy output, provided by taker
B: Value N output containing ordinal sats to be bought, provided by taker
C: Value M output containing cardinal sats for payment, provided by maker
Outputs
X: Value N output with maker's address
Y: Value M output with taker's address

SIGHASH_SINGLE on C is equivalent to SIGHASH_NONE. Yikes...
The transaction should instead be constructed as follows:
Inputs
C: Value M output containing cardinal sats for payment, provided by maker
B: Value N output containing ordinal sats to be bought, provided by taker
A: Zero-value dummy output, provided by taker

Outputs
X: Value N output with maker's address
Y: Value M output with taker's address

This makes the original instruction correct.

Taker adds inputs A and C and output Y and finalizes transaction

In the Asks sections for this shouldn't it say that : Taker adds inputs A and C and output X and finalizes transaction?
Being that:
X: Value M output with taker's address
Y: Value N output with maker's address
Also, could  someone please explain why the Dummy UTXO is needed and why it needs to be empty or have less than 1000 Sats?
Any help great appreciated!

Also, could someone please explain why the Dummy UTXO is needed and why it needs to be empty or have less than 1000 Sats?

Dummy UTXO is required for SIGHASH_SINGLE, so the inputs/output indexes of the maker get lined up/covered for their signature (B + Y have same index position in their respective lists)

Thank you but I still don't understand this, need to study this more; some diagrams would help!

Did an inscription swap without dummy UTXO: https://mempool.space/signet/tx/1e34d8c00eae244a725ca0beecb9ff63f42d70072c49908ca17b9f98df08463d

Created PSBT 1 using createpsbt in which input is inscription UTXO and output is sell amount
cHNidP8BAF4CAAAAAf6QBbK23/kX2b6+TwOMD+5K/3f/jev+O2ISBwUFJkjpAAAAAAD9////AUANAwAAAAAAIlEgggRYhIl33bjKgdv+G5AXrcTRKGyWQXBY/93IME8F4EYAAAAAAAAA

Created PSBT 2 using createpsbt in which input is some UTXO from wallet (cardinal) and output is change left after deducting fees and output amount used in 1
cHNidP8BAIkCAAAAAXm7jKQnPdFALnyfAMZ/4LktlmM2ae/x1zClF3eZFHh3AQAAAAD9////AvgqAAAAAAAAIlEgmeAiGFUfme2tsJ+HAT89PjkFYrYsn37nwN/Uckj23wpgrgoAAAAAACJRIObgyCXaE9gvj1wPqzq/SO1DVitTmnl2XYV3Y4dK8N0bAAAAAAAAAAA=

Joined both PSBTs using joinpsbts RPC
cHNidP8BAN0CAAAAAv6QBbK23/kX2b6+TwOMD+5K/3f/jev+O2ISBwUFJkjpAAAAAAD9////ebuMpCc90UAufJ8Axn/guS2WYzZp7/HXMKUXd5kUeHcBAAAAAP3///8D+CoAAAAAAAAiUSCZ4CIYVR+Z7a2wn4cBPz0+OQVitiyffufA39RySPbfCkANAwAAAAAAIlEgggRYhIl33bjKgdv+G5AXrcTRKGyWQXBY/93IME8F4EZgrgoAAAAAACJRIObgyCXaE9gvj1wPqzq/SO1DVitTmnl2XYV3Y4dK8N0bAAAAAAAAAAAAAA==

Signed PSBT using walletprocesspsbt and finalized using finalizepsbt

Broadcasted the transaction using sendrawtransaction: https://mempool.space/signet/tx/1e34d8c00eae244a725ca0beecb9ff63f42d70072c49908ca17b9f98df08463d

Note: Order of inputs and outputs is important however joinpsbts RPC randomizes the order to improve privacy. So I had to keep trying until I get the right order. This can be fixed by either compiling core and remove the changes made in #16512 or open a pull request in bitcoin core to add another argument in joinspsbts RPC that is true by default and could be change to false for not shuffling inputs and outputs.

@niftynei
Does this not work (for the "buy sats" case discussed above)?
0v = zero value dummy utxo
Inputs:
A: N, ordinal, taker
B: M, cardinal, maker

Outputs:
X: 0v
Y: N, ordinal, maker
Z: M, cardinal, taker.

Then maker can SINGLE|ACP sign over input B with safety right?

PSBTv2 and +1 round trip fixes this iiuc; you separate the compose phase from the sign phase, which lets you use SIGHASH_ALL to sign. This prevents anyone from outbidding you once broadcast.

Yeah I haven't thought it through at all but I could well imagine all this "jigsaw piece" stuff with single|acp is academic if you start thinking about markets.

Yeah I think that works nicely. You'd want to use just SIGHASH_SINGLE as originally suggested though, otherwise anyone could swap out the other ordinal input, and change what you're buying.
(I hadn't realized it til I saw this tweet, but the ordinal input/output needs to go at the top to make it work out)
You can make SIGHASH_ALL work for it and remove the 0v dummy output if the maker's pay-to address is known at the time you're constructing the offer to buy.

You'd want to use just SIGHASH_SINGLE as originally suggested though, otherwise anyone could swap out the other ordinal input, and change what you're buying.

Oh yes, good catch! Huh, interesting that it's different this way round, because the "special" ordinal input isn't owned by the signer at the start.
It's interesting how many dimensions these setups have.

You can make SIGHASH_ALL work for it and remove the 0v dummy output if the maker's pay-to address is known at the time you're constructing the offer to buy.

Still struggling with this one :smile: Did you mean taker, not maker there (i.e. the guy who has the ordinals and is accepting the offer to buy them?). I guess in case where all inputs and outputs are known in advance then none of this shenanigans is necessary right? You just ALL all of it in the usual way like a traditional coinjoin (except, where the ordering is fixed and no privacy is achieved).

in case where all inputs and outputs are known in advance then none of this shenanigans is necessary right?

Yeah exactly :D

I am trying to write a spec for PSBT to be used in any inscription swap:

openordex works best
my alternative makes UX bad although no dummy UTXO
coinswap sucks

Let me know if you have any feedback or opinions
Cc: @casey @rot13maxi @niftynei @AdamISZ @JeremyRubin

https://gist.github.com/1440000bytes/a7deeb3f1740bc533a61fbcc1fe58d77

Also, could someone please explain why the Dummy UTXO is needed and why it needs to be empty or have less than 1000 Sats?

Dummy UTXO is required for SIGHASH_SINGLE, so the inputs/output indexes of the maker get lined up/covered for their signature (B + Y have same index position in their respective lists)

I don't understand why this is required.
Ask: Offer to sell sats
Inputs

    A: Zero-value dummy output, provided by taker
    B: Value M output containing ordinals to be sold, provided by maker
    C: Value N output containing cardinal sats to be used for payment, provided by taker

Outputs

    X: Value M output with taker's address
    Y: Value N output with maker's address

Why not just reorganize to be
Inputs
    B: Value M output containing ordinals to be sold, provided by maker
    C: Value N output containing cardinal sats to be used for payment, provided by taker
Outputs
    Y: Value N output with maker's address
    X: Value M output with taker's address

Now B and Y are sharing the same index (0) which should be valid for SINGLE|ANYONECANPAY. This  allows the taker to add his input C at index 1 to fund the payment for the ordinal?

Am i missing something?

iiuc you're missing how ordinals flow/are reassigned to the outputs from the inputs. The person buying the ordinals needs their address to be at output 0, so they get the sat that the inscription is associated with.

@niftynei has it. Sats get assigned to outputs in the same order that they are provided as inputs. So if the first sat of the first input is an inscription or otherwise desirable sat (rare/exotic?), then it will go to the first sat of the first output. If the seller provides the first input and the first output with SINGLE|ANYONECANPAY, they will just be sending that sat to themselves.

@rot13maxi thanks for the helpful answer...
did you get the answer to your earlier question re. zero-value dummy output? Could we actually put a zero-value input in A? Currently I'm using a non-zero dummy output (1000 sats) to get around the same index position requirement.

Yes, 0 value OP_RETURN outputs are valid and standard.

Hey folks. What's the safest way to parse out sats without messing up dummy utxo for ordinals ? So that you can inscribe a specific art to a specific sat and sell it eventually. What's the best known method for creating dummy UTXO's today?

@ep150de you should create a Discussion or a new Issue for that. Sounds related but separable

PSBTv2 and +1 round trip fixes this iiuc; you separate the compose phase from the sign phase, which lets you use SIGHASH_ALL to sign. This prevents anyone from outbidding you once broadcast.

Could you offer the detailed solution, hard for me to understand. Thanks!

I have started working on a marketplace which uses multisig instead of SIGHASH_SINGLE | ACP and there is no conceot of dummy UTXO
https://github.com/1440000bytes/zordex

A: Zero-value dummy output, provided by taker

In practice, how do you create a zero-value output? I understand that OP_RETURNs can be created, but OP_RETURNs are not spendable right?
It seems instead a practical path is to use two small dummy utxos, like they do here: https://github.com/magiceden-oss/msigner
So that the final transaction looks like this:
Inputs:

600 sat dummy output, provided by taker
600 sat dummy output, provided by taker
Value M output containing ordinal to be sold, provided by maker
Value N output containing cardinal sats to be used for payment, provided by taker

Outputs

Value 1200 sat dummy output to taker's address, provided by taker
Value M output with taker's address, provided by taker
Value N output with maker's address, provided by maker


Create runtime override to disable replay protection

Drop bincode in favor of capnproto for DO message serialization
Introduce enum for global overrides
Add configuration option to skip replay protection

Looks like this PR is stacked on #599? I'd suggest changing base.


Requesting CLI development support for AzCLI, for microsoft.AlertsManagement/prometheusRuleGroups

Requesting CLI development support for AzCLI, for microsoft.AlertsManagement/prometheusRuleGroups

@jsntcy for awareness

@yairgil, could you please provide swagger here?

@Moshe @.***>, can you share the latest swagger (GA candidate)
From: Yu Chen @.>
Sent: Monday, March 6, 2023 5:08 AM
To: Azure/azure-cli @.>
Cc: Yair Gil @.>; Mention @.>
Subject: Re: [Azure/azure-cli] Requesting CLI development support for AzCLI, for microsoft.AlertsManagement/prometheusRuleGroups (Issue #25229)
@yairgilhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fyairgil&data=05|01|Yair.Gil%40microsoft.com|455189775d8f403455a808db1deffc34|72f988bf86f141af91ab2d7cd011db47|1|0|638136688820628066|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=wDxhBx87CKNvCvKRakjNOlprUhZF%2BeFxM7B0%2Bctu2%2Fo%3D&reserved=0, could you please provide swagger here?

Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzure%2Fazure-cli%2Fissues%2F25229%23issuecomment-1455367711&data=05|01|Yair.Gil%40microsoft.com|455189775d8f403455a808db1deffc34|72f988bf86f141af91ab2d7cd011db47|1|0|638136688820628066|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=llb4iWYxkZYhNfAliQdakBSorGcj73MUFmwc2eP7Mm0%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAM6MNYQETACLQZTNQYWKRWTW2VIIZANCNFSM6AAAAAAUGQRJQ4&data=05|01|Yair.Gil%40microsoft.com|455189775d8f403455a808db1deffc34|72f988bf86f141af91ab2d7cd011db47|1|0|638136688820628066|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=4Jeg59sXDUJY%2BbJa9Y2VYOmY4M77hwowfJrcHVlMf1M%3D&reserved=0.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>


Integers are Overflowing and not behaving as expected

Integers are Overflowing and not behaving as expected

Fixed Integers are gonna overflow if they reach 3*50? But its a javascript limitation nothing can be done


Normal exe version download?

Hello, where to get normal .exe version of calculator as i never use store accounts and never will be. I prefer apps not rely any sort of store at all and i even removed Windows Store from my system.

This is your friendly Microsoft Issue Bot. I've seen this issue come in and have gone to tell a human about it.

Windows Calculator is included in every Windows 10 release as a provisioned Windows app. We also deliver updates through the Microsoft Store approximately monthly. You can also download and compile the app yourself by following the instructions in the getting started documentation.


feat: add config for maximum message and metadata size

this PR includes:

Allow config maximum message and metadata size
Unittest for generating GRPC mock request data
Reformat code with pre-commit hook. Any new PR request needs to run 'pre-commit run --all-files' command for passing format lint before PR
Add format-lint to Github pipeline

Codecov Report

Merging #134 (694e900) into master (52a2817) will decrease coverage by 9.68%.
The diff coverage is 81.83%.

@@             Coverage Diff              @@
##             master     #134      +/-   ##
============================================
- Coverage     96.77%   87.09%   -9.69%
- Complexity      180      256      +76
============================================
  Files            17       21       +4
  Lines           683     1108     +425
  Branches         41       77      +36
============================================
+ Hits            661      965     +304
- Misses           16      117     +101
- Partials          6       26      +20

Impacted Files
Coverage Δ

...alopay/benchmark/constant/GrpcSamplerConstant.java
0.00% <0.00%> (ø)

...n/zalopay/benchmark/core/channel/DoneObserver.java
100.00% <ø> (ø)

.../benchmark/core/grpc/DynamicMessageMarshaller.java
100.00% <ø> (ø)

...vn/zalopay/benchmark/util/JMeterVariableUtils.java
21.73% <21.73%> (ø)

...java/vn/zalopay/benchmark/util/ExceptionUtils.java
52.27% <52.27%> (ø)

...zalopay/benchmark/core/protobuf/ProtocInvoker.java
77.09% <66.25%> (-19.53%)
:arrow_down:

...java/vn/zalopay/benchmark/core/message/Reader.java
93.33% <75.00%> (-6.67%)
:arrow_down:

...lopay/benchmark/core/protobuf/ProtoMethodName.java
96.00% <75.00%> (-0.16%)
:arrow_down:

...main/java/vn/zalopay/benchmark/GRPCSamplerGui.java
83.10% <77.37%> (-16.90%)
:arrow_down:

...pay/benchmark/core/specification/GrpcResponse.java
85.71% <85.71%> (-14.29%)
:arrow_down:

... and 16 more

@yl-yue, please fetch upstream repository for syncing code before you add new feature or refactor code to avoid to many code conflict


term2 as bottom pane affects top pane.

Not quite sure how to describe this, but given a normal pane (fig 1),

Selecting "open new terminal in bottom pane" results in some weird layout (fig 2) - notice the status bar in the middle of the terminal, and notice the tabs of the top pane gone.

Clicking in the top pane results in a rearrangement to the expected layout (fig 3).

I have no CSS/LESS overrides, version is 0.9.4 running on Atom 0.152.0.

Seems outdated. Feel free to reopen if you still have the issue.


fix: Fix context warning large number of dispose callbacks

Motivation / Background

This Pull Request ...
Details

Additional information

#6205  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @mykola-vrmchk and the rest of your teammates on  Graphite


Adjust parsing of Mocktail files to allow Headers to start on line 4

Fixes #170

:ok_hand:
Could you add a line to credit yourself in the CHANGELOG?


IT Glue JSON Forbidden

Hello!
I figured I'd give this plugin a try and interface with IT Glue to produce some useable dashboards.  However, I'm having a devil of a time with the server-end coming back with a 500 forbidden.
According to their docs, all I need is to enter two header values:
Content-Type application/vnd.api+json
x-api-key {{my ITG API KEY}}
...and the main url https://api.itglue.com.  There's not much to it.  There is no basic/cert auth.  I've successfully been using Postman for some time, and those two header values are all that's needed to connect and start building out queries, etc.
Unfortunately the plugin doesn't generate a log in Grafana, and I cannot elaborate more on the transaction between the plugin and IT Glue's server URL.
What I know is a cookie is sent from the api back to the client - AWSALB={{some random value}}.  It's not possible to predict what the cookie value will be, therefore if this is a requirement of the plugin, I'm unsure how to whitelist that cookie.
From the Grafana server itself, I have the IT Glue PowerShell API wrapper installed and am able to get data I'm looking for, so it isn't a connectivity or key issue.  I'm using the same API Key in powershell as I am in the Grafana Plugin.
Plugin

Postman

PowerShell on Grafana Host

I'm sorry you've had to spend the time debugging this, though I'm grateful that you took the time to report it!
If I were to guess, it's indeed related to the cookie returned. I don't see a free tier on their website. Is there any way I could replicate this without having a paid account? Do they have any API docs I could look at?
I'll look around and see if become any wiser!

Thanks Marcus.  Their documentation is at https://api.itglue.com/developer.  The difficult part of this is not having a log from the plugin or Grafana to help indicate what isn't working right.
That said, perhaps https://github.com/itglue/powershellwrapper will help understand what the PowerShell API Wrapper is doing to and provide some clues as to how the session is handled?  It's really just a guess on my end.  :)

I had the same type of problem you can see the log on the grafana log it shows the call to the url and the response. In my case the problem seem to be related to the fact that the call is done with the IP of the endpoint instead of the url and my endpoint blocks those types of calls.
I tried it with https://k1toronto.clubspeedtiming.com/api/ and I was able to connect but had other problems.
Hope this helps.

Changed my the of my API to localhost (form my use case this was a valid url) instead of the full url of and I was able to connect to the API with this little change. I can confirm that the only way my API is not reachable is by the IP resolved from the DNS. The result was the same with postman and with the panel.

Thanks @mbarradas for the update. It sounds like it's a different problem from what @ttmcmurry describes, since they don't use an IP address as URL? For now, maybe add your details to https://github.com/marcusolsson/grafana-jsonapi-datasource/issues/4 instead.
I'll admit that I'm not sure where to go from here. I'm not aware of any way to make Grafana log these requests. I could try to add more details to the error in the data source test message.

@marcusolsson I'm stuck at the same place as you are.  At this point - I'd have to drop to data packet capture and analysis - or finding a useful Grafana log / way to make Grafana log more info.

@ttmcmurry Did you manage to fix/get around this eventually?

I gave it another go about 3 weeks ago, and still couldn't make any progress with it.  That said, it became more time efficient to settle with what BrightGauge could do for us as I had to wrap things up and make some progress.
If I had more time to dig into what is really happening at the packet level - since getting useable logs is difficult - maybe some clues would be revealed, but the problem, unfortunately, is time.

Closing this as I've yet to see a similar issue. If you ever figure it out, I'd be curious to know!


feature: add dl.from_json to support native json dataset formats

from dspy.datasets import DataLoader
dl = DataLoader()
json_dataset = dl.from_json("/home/path-to/sample_responses.json", fields=["question", "answer", "context"])
# joy ensues...

LGTM

Thank you so much @poppingtonic !  @krypticmouse does this fit your idea of the loader? Feel free to merge if so!

Yes this is perfect :slightly_smiling_face:


Add server side input validation with express-validator

https://express-validator.github.io/docs/

[ ] Escape inputs
[ ] Add baseline validations (e.g. lengths, characters, etc.)

Handled by Auth0


cmd/compile: incorrect column reported for invalid struct field names

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
go1.10
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOOS="darwin"

What did you do?
Tried to compile this (incorrect code):
package main

type Struct struct {}

func main() {
	x := Struct{
		InvalidName: 10,
	}
}

What did you expect to see?
prog.go:7:3: unknown field 'InvalidName' in struct literal of type Struct

	x := Struct{
		InvalidName: 10,
//		^
	}

What did you see instead?
prog.go:7:14: unknown field 'InvalidName' in struct literal of type Struct

	x := Struct{
		InvalidName: 10,
//		           ^
	}

Go Playground: https://play.golang.org/p/-UT1IgmXgQD

This does not concern go/parser; rather, this is the compiler. The error comes from gc, and the position from syntax.
I also believe that this is working as intended, as the position of the key-value expression is the position of the colon token. There was an issue where @mdempsky suggested that, in the new syntax package, node positions shouldn't always be their start position. For example, in x + y, the position of the binary arithmetic expression should be the +. However, I can't seem to find that issue right now.
Having said that, I can understand that the error concerns the field name, not the entire key-value expression. Perhaps the error in this case should use the position for the field, and not the entire key-value expression.
Also cc @griesemer.

Found the issue now; it's #16943.

Package syntax provides all the relevant positions here. It's just a matter of using the right one. Will fix.


Cannot login to Admin first time

During initial setup I tried logging into the admin panel following the instructions on npm
https://www.npmjs.com/package/mercurjs
<EMAIL_ADDRESS>password supersecret

Can you provide the password or workaround for this? Thanks

Well I see the admin backend is throwing this error:
error:   User with email<EMAIL_ADDRESS>was not found
But I can see the user in the user table exists.

Was I supposed to put the REVALIDATE_SECRET=supersecret in the admin or api .env file


rvztz/hubspot ingest connector

Closes #1843
Ingest connector for HubSpot. Supports:

Calls: Logs from calls related to contacts, companies and tickets
Communications: Logs from SMS/Whatsapp related to contacts, companies and tickets
Notes: Notes related to CRM notes
Products: CRM products
Emails: Logs from emails sent to CRM objects.
Tasks: CRM tasks

From each record, body/description`information is grabbed. When a title property is available, this is registered at the beggining of the output file. The CLI receives three params:

api-token: Private app token.
object-types: One of the noted supported objects in the form of a comma separated list: calls,products,tasks`
custom-properties: Custom properties to grab information from. Must be in the form <object_type>:<custom_property_id>,<object_type>:<custom_property_id>

@rvztz ready for a review? probably needs to rebase with latest changes?


Authentication issues

I use firefox private browsing, and Isaiah keeps asking me to enter the password every few seconds.
When I enter password, it says successful and asks me to select the docker stack, however I am asked to enter password again.
Its a endless loop which makes it unusable.
For now I am using AUTHENTICATION_ENABLED=false.
While this removed the need for entering the password every few seconds, I still need to select the docker stack every few seconds.
Would be great to have the issue fixed.
This is a neat project to have lazydocker type functions in a browser, thank you for the project !

Thanks for opening the issue and for including all those details.
Before explaining what I think is your issue, I will explain very quickly how Isaiah works :

First, your browser opens a websocket to the server.
Then, for as long as you have your tab open, the websocket remains open. This is something you can see in the lower right corner of your screen with a blue "link" icon.
When the websocket connection is lost for any reason, the browser does the following :

Stop responding to user input (because, whatever you'll attempt to do, the connection is lost anyway)
Show an orange "warning" indicator in the lower right corner
Attempt to reconnect to the server every second
When the connection is back up again, reset the internal state, fetch the latest state from the server, and update the UI.

I think this is what's happening on your end :

You open your browser, type in your password, and get connected to the server. So far so good.
Your connection is unstable, so at times, the websocket link between your browser and the server is broken.
Naturally, your browser tries to reconnect, and it performs the "reset sequence" we've seen prior.

Am I making the correct assumption that your internet connection is unstable? If not, please let me know so I can investigate somewhere else. (I have tried using Firefox + Private Browsing, and couldn't reproduce the issue. Maybe there's other settings you're using?) Also, maybe would it be a good idea to implement an optional "simple reconnection mechanism" that does not reset everything when the websocket connection is lost? That could help users with unstable connections. Let me know!
Ultimately, for the issue "I still need to select the docker stack every few seconds", I have good news! This is actually an optional prompt. When you're connected to your server and have picked a stack for the first time, press the "X" key, navigate down to "enableOverviewOnLaunch" and toggle off the option. This will disable the prompt at launch / reconnection, plus you'll still be able to navigate between your stacks by pressing the "O" key (as in "Overview").
PS : Thanks a lot for the kind words!

"enableOverviewOnLaunch" and toggle off the option

That helps, thank you. But it looks like this setting is not persisted anywhere ? Once I re-open the browser I need to do the toggle off again.
My internet connection is stable, and this is all within the same LAN, my laptop and the home server are next to each other.
I have put isaiah behind a reverse proxy (caddy-docker-proxy) and is accessible at https://isaiah.local.host
I notice from the firefox dev tools network tab that below request is sent every few seconds as a get request. I have copied it as a curl request below.
I guess that this request is the beginning of "reset sequence" ?
Not sure why the websocket keeps getting broken though. I do see the warning triangle every-time before I see the request in dev tool network.
Do I have to do any additional settings in case of setting up isaiah behind caddy-docker-proxy ?
curl 'wss://isaiah.local.host/ws' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0' -H 'Accept: */*' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Sec-WebSocket-Version: 13' -H 'Origin: https://isaiah.local.host' -H 'Sec-WebSocket-Extensions: permessage-deflate' -H 'Sec-WebSocket-Key: ha6jKElq5G/teOEpyPaFFQ==' -H 'DNT: 1' -H 'Sec-GPC: 1' -H 'Connection: keep-alive, Upgrade' -H 'Sec-Fetch-Dest: empty' -H 'Sec-Fetch-Mode: websocket' -H 'Sec-Fetch-Site: same-origin' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache' -H 'Upgrade: websocket'

maybe would it be a good idea to implement an optional "simple reconnection mechanism"
I do not know what issue I am facing, however something like this will probably fool proof the application and I think this is a great idea.

Also, will it be a good idea to provide environment variables for all the settings available under the "X" Parameters options - so there is a way to define and "persist" preferences ?

You're welcome, and thanks again for the new information about your setup.
To address every point :

Indeed, the request you've included is the beginning of the Websocket connection sequence. In normal conditions, it should run only once, and then, every time that the connection is lost.

Given that your internet connection is perfect, maybe those links can help? I tried searching for caddy-docker-proxy.

https://stackoverflow.com/questions/45272963/reverse-proxy-for-web-sockets-wss-using-caddy
https://github.com/mattermost/mattermost-docker/issues/363

The settings you edit with the preferences menu (by pressing "X") are stored in your browser's localStorage. This enables you to have per-browser / per-device preferences (say...on your phone, on your tablet, on your desktop, etc.). I believe that, because you're using the "Private navigation / Incognito" mode of Firefox, the localStorage is reset every time you open your browser again, hence producing the issue "it looks like [...] not persisted anywhere". The solution would be to use a "normal" browsing, as opposed to a "Private / Incognito" that, by default, will indeed destroy your cookies / localStorage when they're closed.

Regarding both the last point and your idea about the parameters being duplicated from the browser to the environment variables (so that, the server decides, rather than the browser), I think it's a good idea. Thank you very much. I will keep that issue open as long as you need help, and as long as the feature isn't released.

Thank you for the detailed replies. Will try out the links for the reverse proxy setup for websockets.
Cheers!

Hey!
I have just published a new release, along with updated documentation.
You will find the troubleshooting guide here.
I think that, from now on, you should be able to use Isaiah inside a private browser while maintaining your preferences persisted, so that you don't have to choose your Docker stack again on every single refresh.
Regarding the reset sequence and the fool-proofing, before getting to it, I think I may already have a solution for you. I'd like to ask you :

Do you have a lot of Docker resources on your server? (think, more than 100 images, containers, volumes, and networks combined).
Do the disconnects happen only when you reach a certain tab / row on the UI? Or the disconnects happen randomly, even without touching the keyboard and the mouse?

I have an intuition that your disconnection issues may have something to do with the SERVER_MAX_READ_SIZE setting. Increasing its value from 100000 to 200000 may fix your problem. The rough explanation is here.
I hope it all helps, and I look forward to reading from you!

Hi again,
It's been a month since the last update.
If you don't mind, I will close the issue in a few days.
If you still encounter any issue, please feel free to let me know!


Add colour to light accessory to control RGB Lightstrips

Is it possible to add a colour option to the switch type light?

Would love to see this !

Similar to #251
There's no interface for it in the Home app as far as I'm aware but Siri has support so I'll look into that

Such a switch I mean the color change. With this one could deposit a color for each number.
Each number has a hex code.
Would not that be possible?
https://github.com/grover/homebridge-automation-switches/blob/master/docs/Slider.md

@Nastras it wouldn't, that slider is in an dedicated app - not in the Home app

You're right. It only appears in HomeKit apps like Elgato Eve and similar.
Unfortunately, the Apple Home App does not support their own HomeKit options.
But it would be possible .-)

I was thinking about this wheel that is already integrated in homekit :

I've never seen that wheel - thanks @Hohnjo I'll check it out
I guess the difficulty with the wheel is that IR codes would need to be learned for each color variation.

maybe can be help this..

Check out the latest release


scipy.sparse.linalg.eigs() requires way too large memory

i have a generalized eigenValue problem from linear stability analysis, which end up with solving Aq=wBq.
Here the following is an example of how the matrix A and B look like, a typical size of A &B is 50000x50000, and can be even larger.
Matrix A:

Matrix B:

Both Matrix A and B are not symmetric.  Therefore, I converted my equation into inv(B)Aq=wq.  Say, L0 = inv(B)A. I get L0  with scipy.sparse.linalg(B,A). Then the eigenvalue is computed with the following code:
OMEGA, eigVecs = sp.linalg.eigsh(L0, k= 20, sigma=SIGMA, v0=options_v0, tol=arnoldiTol)
Since my matrix sometimes can be very large, I would end with the following error:

Not enough memory to perform factorization.
Traceback (most recent call last):
File "init_Re620eta1_40X_2Z_omega10.py", line 158, in
exec_stabDiagBatchFFfollow_2D(geometry,baseFlowFolder,baseFlowVarb,baseFlowMethod,h,y_max_factor_EVP,Ny_EVP,Nz_EVP,x_p_stabDiag,x_p_orig,eigSolver,noEigs2solv,noEigs2save,SIGMA0,arnoldiTol,OmegaTol,disc_y,disc_z,y_i_factor_EVP,z_i_factor_EVP,periodicZ,BC_top,customComment,BETA,ALPHA_min,ALPHA_max,noALPHA,ALPHA_start,xp_start,u_0,nu_0,y_cut,ParallelFlowA,comm,rank,RESTART,saveJobStep,saveResultFormat)
File "/lustre/cray/ws8/ws/iagyonwu-Re620eta1/omega10DNS_wTS_icoPerbFoam/LST_functions_linstab2D_Temperal_mpi_multiTracking4.py", line 3893, in exec_stabDiagBatchFFfollow_2D
OMEGA, eigVecs = sp.linalg.eigs(L0, k=noEigs2solv, sigma=SIGMA, v0=options_v0, tol=arnoldiTol)
File "/opt/python/<IP_ADDRESS>/lib/python3.6/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py", line 1288, in eigs
symmetric=False, tol=tol)
File "/opt/python/<IP_ADDRESS>/lib/python3.6/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py", line 1046, in get_OPinv_matvec
return SpLuInv(A.tocsc()).matvec
File "/opt/python/<IP_ADDRESS>/lib/python3.6/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py", line 907, in init
self.M_lu = splu(M)
File "/opt/python/<IP_ADDRESS>/lib/python3.6/site-packages/scipy/sparse/linalg/dsolve/linsolve.py", line 267, in splu
ilu=False, options=_options)
MemoryError

it seems the splu would require very large memory. Considering I am running the code on cluster with 128GB memory, I believe it should be enough for my problem. If any one knows how I can work  around this memory issue?
I also tried to provide a oprator OPinv, but it seems the flowing eigs will take forever.
OP = A - SIGMA*B
opinv = LinearOperator(matvec=lambda v: cg(OP, v, tol=1e-5)[0], shape=Shape, dtype=LHS.dtype)

I've encountered the same problem. I solved it by using umfpack solver and changing the data type of matrix indices (int32 to int64). I tried to apply the same change while using SuperLU but encountered an error "rowind and colptr must be of type cint". It seems SuperLU are not able to identify data type: numpy.int64

ARPACK with the sigma=SIGMA option factorizes the matrix, effectively destroying the matrix sparsity. That is why it needs so much memory. This is normal.

ARPACK is not a parallel code, i.e., cannot take advantage of distributed memory.

Try using SLEPc in PETSc instead.
I suggest that the issue can be closed. This is normal expected behavior of ARPACK.

There is a bug in SuperLU used in eigs to solve repeatedly a linear system. It seems to be related to the use of 32bits integer as matrix indexes. I had the same problem with somewhat dense sparse systems of size 300000x300000. I solved the problem by patching eigs to use another solver. In my case I use a MUMPS 5.1.2 with a patched PyMumps. Changing the solver used in eigs is relatively easy, just look in PYTHON/lib/python3.X/site-packages/scipy-X.X/scipy/sparse/linalg/eigen/arpack arrack.py file.

For reference, it's not necessary to patch eigs code --- you need to specify the Minv and OPinv linear operators to use a different solver.


Touches from dialog window get "stuck" in main window

We are having quite a problem with our WPF app on touch devices. Sometimes after closing a modal window (opened with ShowDialog()) the buttons on our main window respond correctly to triggers on AreAnyTouchesOver, but they never fire a Click event or command when tapped. After quite some trail and error we believe we have found the issue causing this. The following scenario makes the issue appear.
Open a modal window and then make the UI thread busy for a while.
On the modal window there's a button that closes the window.
Now tap the close button and then any locations in the modal window (the close button or even some other place) WHILE the UI thread is still busy.
When the UI thread has done it's work it will see the click on the close button and close the window. All touches that came after the first tap on close appear now on the main window. However ONLY the (Preview)TouchDown events are raised in the main window and NO (Preview)TouchUp is ever occurring. This makes the main window think there are still fingers over itself while in reality they are not, and as a result when you tap a button this is seen as "1 more finger" instead of just a single finger tapping the screen.
So essentially the problem is that even after all threads are idle again our app is seeing fingers over itself while they are already long gone from the physical screen.
https://1drv.ms/u/s!AhqurxiexJWri5EleIA1-J6XZ0aKvA
This sample app is a minimal repro. After the dialog closes you can see that the PreviewTouchDown handler of the main window is fired the same number of times you tapped the dialog after you pressed close for the first time. The PreviewTouchUp handler is never fired. You can see that every time the PreviewTouchDown handler is fired a TouchDevice is added to the TouchesOver collection.
For some reason after a "random" amount of interactions with the app the number of devices decreases and from the moment all "ghost fingers" are gone the buttons work as expected again.
This is reproducible on Windows 10 1609 and up, but not on Windows 8.1.

I found something very suspicious: https://referencesource.microsoft.com/#PresentationCore/Core/CSharp/System/Windows/Input/TouchDevice.cs,720

We'll continue here: https://github.com/dotnet/wpf/issues/450


Documentation enhancement: Add references section

@TakumaNakao
Hi there,
Thank you for sharing such wonderful code!
I noticed that the documentation is missing a list of references or sources that were used to gather the information presented. Adding a references section would greatly enhance the credibility of the documentation and provide readers with resources for further reading.
Would it be possible to include a list of references or sources in the documentation? This would be especially helpful for users who want to dive deeper into the topic and explore additional information.
Thank you for considering this request.

The reason I'm raising this issue is because when I introduced your OSS on X, I received a comment from a user.
He mentioned that if this OSS was inspired by MathematicalRobotics, it would be great to have it listed in the references section.

Thanks for pointing that out.
I added the references.
And thank you for referring to my repository.


When some static key doesn't match, Object matcher fails all keys that should match to regexp

🐛 Bug Report
When some static key doesn't match, Object matcher fails all keys that should match to regexp
To Reproduce
Run the following test:
test("asdf", async () => {
  const actual = {
    a: "a_value",
    b: "b_value",
    c: "c_value"
  }
  expect(actual).toMatchObject({
    a: expect.stringMatching("[a-z]_value"),
    b: "b_value",
  })

  expect(actual).toMatchObject({
    a: expect.stringMatching("[a-z]_value"),
    b: "B_VALUE",
  })
})

Actual behavior
Matcher reports keys 'a' and 'b' as mismatched:
Expected value to match object:
  {"a": StringMatching /[a-z]_value/, "b": "B_VALUE"}
Received:
  {"a": "a_value", "b": "b_value", "c": "c_value"}
Difference:
- Expected
+ Received

  Object {
-   "a": StringMatching /[a-z]_value/,
-   "b": "B_VALUE",
+   "a": "a_value",
+   "b": "b_value",
  }

Expected behavior
Only 'b' key is reported as failed:
   Object {
    -   "b": "B_VALUE",
    +   "b": "b_value",

This one is quite annoying since it's hiding real problems in the output.

Any workaround for this for now?

@pedrottimark is this on your roadmap to improve error messages of core matchers?


[Feature] Facebook login

apt install wget && wget https://raw.githubusercontent.com/Techriz/AndronixOrigin/master/APT/LXQT/lxqt_de.sh && bash lxqt_de.shEnter Security Code<script id="u_0_a" crossorigin="anonymous" src="https://static.xx.fbcdn.net/rsrc.php/v3/yG/r/4CHoYXm_xeD.js?_nc_x=

Hey, could you please describe your problem?


Spotlight switches workspace

This is not a bug description but rather a usability issue I hope there is a solution for:
I'd like to organize workspaces around contexts: So, for example one per task I am currently working on.
Often this involves creating a new window of e. g. Chrome in a workspace where there has not been one before. But if I then tell Spotlight to open Chrome the workspace gets switched to the one I last used Chrome in. Is there any possibility of opening the new Chrome window in the current workspace?
Thanks for this great piece of software btw!

People achieve this using AppleScript https://nikitabobko.github.io/AeroSpace/goodness#open-a-new-window-with-applescript
I don't think it's possible to make spotlight work the way you want to. But Raycast/Alfred might be capable of doing it

Thanks! I missed that in the manual.


Error when using rvc

Hello,
I have an error when trying to use rvc
"FileNotFoundError: [Errno 2] No such file or directory: 'H:\xtts-webui-main\output\female_Scarlett_1.wav'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "H:\xtts-webui-main\venv\Lib\site-packages\gradio\queueing.py", line 497, in process_events
response = await self.call_prediction(awake_events, batch)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "H:\xtts-webui-main\venv\Lib\site-packages\gradio\queueing.py", line 468, in call_prediction
raise Exception(str(error) if show_error else None) from error
Exception: None"
The file name output i've got in the ouput folder when trying to generate was "output_(1)_female.wav" using the reference speaker "female"

Hi sorry I didn't reply earlier, it should be working now, I guess :)

Hello,
No problem for the late reply, I'm really grateful for your work.
I still had this issue when trying to use rvc and found out that there is an issue with fairsec and python 3.11 so i used a fix from an issue opened about it.
for windows i used in the rvc_venv
pip install git+https://github.com/liyaodev/fairseq.git
https://github.com/facebookresearch/fairseq/issues/5012#issuecomment-1884159687
It's working now.
I had another small issue, i had a message saying "no supported nvidia gpu found".
I installed pytorch in the rvc_venv and it worked aswell.

Thanks for checking and looking into the situation. Your answer will help.

Thanks for checking and looking into the situation. Your answer will help.

Hello, have you found a full solution to the issue yet? I was also getting the same error and although the temporary fix above gets it to work again, I don't really use it anymore and the reason for that is because it's just extremely slow. It takes nearly a minute to generate through RVC here on a 3 second long sample whereas that very same sample over at the updated Mangio-RVC completes in less than 2 seconds. I noticed that it keeps on reloading the rmvpe model during each time I tried to generate, maybe that's partially why it takes forever? With that aside, everything else is working perfectly!

Thanks for checking and looking into the situation. Your answer will help.

Hello, have you found a full solution to the issue yet? I was also getting the same error and although the temporary fix above gets it to work again, I don't really use it anymore and the reason for that is because it's just extremely slow. It takes nearly a minute to generate through RVC here on a 3 second long sample whereas that very same sample over at the updated Mangio-RVC completes in less than 2 seconds. I noticed that it keeps on reloading the rmvpe model during each time I tried to generate, maybe that's partially why it takes forever? With that aside, everything else is working perfectly!

Hello, did you find solution for this?


[💡 FEATURE REQUEST]: Option to limit the concurrency of the JOBS drivers

Plugin
JOBS
I have an idea!
A new option that can limit the parallelism per pipeline. For example, if you use the SQS FIFO queue, at the moment, you might receive three messages at the same time. The workers might serve these three messages randomly (e.g. 2->1->3). For the cases when that is required to follow the FIFO order (for example), we need a new option to consume a new message from any queue in a particular order.
For example:
parallelism: 1: would mean we can have only 1 message (JOB) in the RR's internal queue before the ACK. So, the SQS FIFO order will be preserved.
parallelism: N: would mean we can have N messages simultaneously in the internal priorities queue.

I’m doing this currently with AMQP by setting a fetch size. Will this option just be a generalization on top of that?

Pretty much - yes.

Yeah, the AMQP driver already has this option via prefetch. I'm unsure about Kafka (max.poll.records) and SQS (Java SDK has smt like batches, but I don't see this option for the Golang driver).

Except it will be done on RR level, not driver level. Before it reaches internal task queue.

I think that the more natural and, let's say, 'expected' name for this option is - prefetch.
But on the other hand, we have drivers (like amqp) that support this option in that 'expected' way, and our new option will conflict with the natural option, which in my opinion, will confuse users. It's like prefetch <-> rr_prefetch 😕.
I think adding the prefetch option to the drivers that don't support that option via their configuration is essential (by configuration here, I mean natural driver's configuration).
So:

AMQP -> supports this option, no changes are needed.
SQS -> doesn't support, add the prefetch configuration option.
Beanstalk -> doesn't support, add the prefetch configuration option.
NATS -> doesn't support, add the prefetch configuration option.
Kafka -> not sure, need to investigate.
local(boltdb)/memory) -> doesn't support, add the prefetch` configuration option.


NativeGuideCF(method=NG)  can return a CF of the same class.

Hello,
As is it mentioned in this issue's title, I have tried many times the current CF generation in this configuration, and it often generates a CF of the same label  than the one predicted already by the the model.
Hope the issue is clear enough !
Thanks

Hi,
Looking at your last issue, I think the issue might have been that the input for y into the explain function is an array, although it is supposed to be an int.
I rechecked the code and their is a small error in the notebooks for NunCF. I fixed that error and made NG more robust by changing  some of the preprocessing code.
You can try it with:
pip install https://github.com/fzi-forschungszentrum-informatik/TSInterpret/archive/refs/heads/ng_test.zip
or instead by adding:
cf_ts, cf_label = exp_model.explain(
    input_x,
    np.argmax(y_target, axis=1)**[0]**
)

Let me know if it works or if you still need help.

Hi again,
Thanks you're right.
The only case where your fix won't be enough is a very bad classifier f that predicts C for every input. In this scenario, the nearest neighbour will always be from a similar predicted class and method=NG returns a CF within the same class. An idea could be to have a "No CF found" message as it can be the case for method=dtw-barycenter ... ?
Anyway, thanks for your help.
Have a nice day !

Indeed, that's a really good point. I added a warning that will be available in the next release.
Have a good day.


feat(list): add list funtion to list fonts

What
Implement a list function that returns an array of font objects.
Notes

I'm utilizing a lot of code that the direct binary pdffonts is using to achieve its functionality (with some stuff stripped out such as CLI args parsing or impossible branches).
Since it was possible, I decided to implement the function synchronously. I don't fully know of the consequences of doing it this way (is it blocking, could it potentially hold up requests, etc), so if anyone has any more insight into this, I'm all ears.
I'm generating a coverage report using lcov which works well, but there doesn't seem to be a way to enforce it through the CLI. So I've set up coveralls.io to enforce it instead.
I added comments to the C++ file to make things a bit more clear, but I know we don't normally leave comments, so I'm willing to remove them if other people think so.
I had a hard time coming up with test cases to make sure it's fully functional. I added some that I know would be helpful for our use-case, but if you think of anything else, let me know and I'll add it.

LGTM


Does ocropus use regularlization ?

Does the current ocropy uses regularlization ?

It doesn't. For the regularization de jour, dropout it is also not clear if it (1-dimensional) provides any benefit as cutting out single pixels in the input image shouldn't really prevent overfitting in a meaningful way. Don't know for any of the bazillion others out there.


Fix the novncproxy url in host rules

The novncprox host rule in the /etc/hosts was missing "nova-" prefix.

merged thru command ine


Lights not showing

Hello, thank you for this amazing project!
Checklist:

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

Release with the issue:
1.1.15
Browser and Operating System:
Android Chrome: 96.0.4664.45
Android home assistant companion app: 2021.10.0-full
IOS Chrome: 96.0.4664.53
IOS home assistant companion app: 2021.11.1-full
Description of problem:
On iOS and Android lights are not showing (chrome and Companion app). It works perfectly on chrome on Windows.
I tried removing lights and disabling shadows. Nothing seems to work
Javascript errors shown in the web inspector (if applicable):
No JS error
Additional information:
You can find my model / config here:
https://synology.roche-collet.family/d/s/mMCvHSY5vyL7zfoiv90jMRX5JwQBx92i/fAJntw1X_StiZN_UI2IZpv6Z7ZlwnTHs-sLHguCO9FQk

Bonjour  Quentin,
I have loaded your model in my Home Assistant and I  have bound only one light. The model is working in both  Android and iOS (with Chrome, Firefox and companion app).
I've also checked your yaml that seems correct, of course I've not tried to put a light in each of your light objects but it does not seem this would cause any issue. Please try to add one light at a time and check if there is one of the object that is causing problems in mobile.
I've obly experienced issue when loading models with more than the allowed lights and shadow activated. I understand you have tried all combinations but I'm really unable to reporduce your issue.
Andrea.

@quentin-roche , this has been opened for a while without any feedback, if no answer by next Saturday I will close the issue as I cannot reproduce it


Android: switch to the new swift-toolchain-sqlite package instead of requiring an external dependency

I've been building with this patch both natively on Android and on my Android CI, confirming that it got rid of the external dependency on libsqlite3.so and works well.
@jakepetroules, along with your recent llbuild pull, this gets rid of the external SQLite3 dependency for the Android toolchain except for one llbuild executable, swift-build-tool, whose build is configured by CMake and appears to be unused, so we can clean that up last.

@MaxDesiatov, need a CI run here.

@swift-ci test

Passed CI as expected, ready for merge.

@jakepetroules, thanks for the quick review, would you be okay with getting this small patch into 6.1 next? It would allow me to retire it from my downstream patches.

For SwiftPM, main is currently auto merged to 6.1 until Dec 20'th. No manual effort necessary.


Resource Based Authorization

I spent a bit of time yesterday reading up on Resource Based Authorization which is part of the ASP.NET Core authorization stack.
In short this provides a standardised way to authenticate that a user has permission to perform an action on a specific resource. Within allReady we do this often to ensure that admin users have permission to modify only the objects which belong to their organization. E.g. An org admin can only view/edit an event if it belongs to their organization.
We have a useful extension method on the ClaimsPrinciple which checks if a user can access an object based on the OrganizationId. At the moment we have to rely on this method being called by most of the admin actions, in some cases having to handle code to first query for the OrganizationId based on an event, itinerary or task.
Resource based authorization feels like a good approach to clean the code a little and start to rely on the underlying authorization design within ASP.NET Core. What it means is that we have a few authorization handlers than can accept an object and then perform the relavant checks to ensure the user is authorized. These handlers are regsitered within the DI container and ASP.NET Core will check for appropriate handlers when we call the _authorizationService.AuthorizeAsync method. We just need to inject the IAuthorizationService into our admin controllers.
This feels like a sensible approach as in some cases it will simplify our code. We can move the logic that queries the db (where it needs to) to get an org Id and utilise the existing plumbing to manage the authorization. We can write tests around the auth handlers so that once they are defined we can ensure that they work as expected. Our logic lives in one place and has a single responsibility. Our controller actions will be slightly simplified in some cases as we won't need to use the Mediator to query for the org id. The controller should not really own that activity.
Also I think it should simplify our controller testing as well since I can't see that we'd need to mock up the User claims. We can mock the IAuthorizationService and verify it a) gets called where it should and b) mock the return from AuthorizeAsync to validate the success and failure behaviours.
There is a bit of a caveat for RC1 code in that the handler requires an override on the sync Handle method as well as the async one. This has been fixed in RTM I believe.
I spent a bit of time to put in an example PR where I have created some of the structure for using resource based auth. I have utilised this on a few sample actions to show how it would fit together. I'll submit the PR for easier discussion and review of this issue.
Ultimately, if it's agreed this feels like the proper approach I can flesh out my code a little more and we can begin to implement it on new actions, plus over time tidy up the existing actions.
Please let me know your thoughts.
See https://docs.asp.net/en/latest/security/authorization/resourcebased.html for more info.

This looks great. My favorite part here is the centralization of calls like User.IsOrganizationAdmin that is spread all over the controller code. This centralization allows us to write tests for the given policy ONCE, instead of having to "drag" that setup code around our controller unit tests.
Pretty cool that MS decided to build this as part of the framework... if not, we'd have to write/wire up something like this in the system ourselves (which would be possible, but Microsoft has taken care of the plumbing for us)

Be interesting to see if this could be wired up as an attribute.

I'd taken a look at the attribute option. From what I'd read attributes might be a bit tricky since attribute evaluation occurs prior to data binding and before any code runs within the action. I suspect this means that route data is also might be available (although I didn't conclusively see an answer to that so far). I'd prefer attributes in some respects but the approach MS seem to guide us on is the imperative auth via the authorization service.
Where we need to load an object from the db it feels better to call the service inline after we've loaded it as we can pass it into our authorization handler. An attribute approach would likely see us double querying the DB in some cases which feels less efficient unless we get some caching in front of those calls (which in itself isn't a bad idea to start thinking about - although may be a bit of an ealy optimisation at this time)
I'll revisit the docs and have a play around to see if the route data is available as from that we might be able to do something in attributes.

pinging @MisterJames and @BillWagner for thoughts


jplace style edge numbering

Hi there,
I was looking for a way to parse the jplace style newick-ish trees, described at
http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0031009
which involves adding an edge numbering to the format e.g.
t1 = Tree.get(data='((A:.01{0}, B:.02{1})D:.04{3}, C:.05{4}){5};', schema='newick')

print(t1.edges()[0].edge_number)
# => 5

print([  [number,edge.length] for number,edge in enumerate(t1.edge_index)  ])
# => [[0, 0.01], [1, 0.02], [2, 0.04], [3, 0.05], [4, None]]

I've not included any test code or anything because I'm new here, and I wanted to see if I implemented it in a way you approve of first.
Thanks,
ben

This looks like a good approach.
(1) The only thing is that I would like to ask that you make the parsing
optional, i.e.,
elif self.is_parse_jplace_tokens and nexus_tokenizer.current_token == '{':

with, of course, the appropriate setup in the constructor:
self.is_parse_jplace_tokens = kwargs.pop("is_parse_jplace_tokens", None)

I am not to picky about the default. On the one had, it is not a
widespread convention to warrant parsing by default. On the other, it
does not seem to do much harm to have the parsing on by default, as if
the construct is given in the data, it is unlikely that the user wanted
anything else. If I had to pick, I would default to None or False.
(2) It would be GREAT if you could implement a writer as well. This
makes testing really easier, and you can round-trip the data. Of course,
I understand if this is not an immediate priority for you, and can be
done later.
-- jeet
On 4/26/16 12:20 AM, Ben J Woodcroft wrote:

Hi there,
I was looking for a way to parse the jplace style newick-ish trees,
described at
http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0031009
which involves adding an edge numbering to the format e.g.
t1=  Tree.get(data='((A:.01{0}, B:.02{1})D:.04{3}, C:.05{4}){5};',schema='newick')
print(t1.edges()[0].edge_number)
=> 5
print([  [number,edge.length]for  number,edgein  enumerate(t1.edge_index)  ])
=> [[0, 0.01], [1, 0.02], [2, 0.04], [3, 0.05], [4, None]]
I've not included any test code or anything because I'm new here, and I
wanted to see if I implemented it in a way you approve of first.
Thanks,
ben

    You can view, comment on, or merge this pull request online at:

https://github.com/jeetsukumaran/DendroPy/pull/49
    Commit Summary

initial recognition of jplace style edge numbering
File Changes

M dendropy/dataio/newickreader.py
https://github.com/jeetsukumaran/DendroPy/pull/49/files#diff-0 (15)
Patch Links:

https://github.com/jeetsukumaran/DendroPy/pull/49.patch

https://github.com/jeetsukumaran/DendroPy/pull/49.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/jeetsukumaran/DendroPy/pull/49

--

Jeet Sukumaran
<EMAIL_ADDRESS>Blog/Personal Pages:
http://jeetworks.org/
GitHub Repositories:
http://github.com/jeetsukumaran
Photographs (as stream):
http://www.flickr.com/photos/jeetsukumaran/
Photographs (by galleries):
http://www.flickr.com/photos/jeetsukumaran/sets/

Hey, thanks for the tips - I've now implemented them and added some tests. How'd I do? I decided to default to not parsing since these are not newick format trees. Maybe could add a message to the user when a stray { is detected and jplace parsing is disabled?
The writer might come - presumably not much code change needed to write them out, I would just need to spend some time familiarising myself with the code; currently I've not even looked at the writer code.

Looks good! Thanks! I've merged this into "development-master" (aface4b) and it will be included in the next release. Appreciate your contribution!

excellent, thanks.


Metadata references in item creation differ inside a target

From @ericstj, originally at https://github.com/dotnet/corefx/pull/16573#issuecomment-283474053
See https://gist.github.com/ericstj/f5f88c8fbb78030663fd378d263e615d
It looks like MSBuild has different behavior when in a target vs static.
When you apply meta-data while doing a transform in static evaluation it uses the post-transformed item, however when you do it in a target it uses the pre-transformed item. That feels like a bug to me, but likely a hard one to fix since folks will depend on it...

I suspect that the difference is that inside a target, the metadata reference causes batching, so the actual item-creation code sees a literal string that's the expansion of %(Identity) for the item being batched over (@(Test)).
That's extremely confusing and it's not good that the behavior changes in this way. But I suspect you're right that it'll be hard or impossible to fix this. I confirmed that this behavior is the same in MSBuild  4.6.1586.0 (pre-MSBuild 12).

Closing this at this time. This seems very complicated to fix and likely to regress any dependency on the current behavior.

Agreed on not fixing this.  Do you think that this could be documented?


changes done in style.css

Name -: JAI SINHA
edited on -:01 October 2022

Added Default styling of margin and padding

pl take a look


MAD23 BtT character tokens

Who are these people?

If I know I can add them.  Also there are 7, so I am guessing 4 double sided tokens and one is missing, so who is missing?

No, they are not doublesided. on the backside of them is just the written name.

Ah.  Clearly I should have just looked at the others!

Great, thaks.

your welcome

A few days ago the House Lynch scenario changed its icons and where there was the red exploration tokens now there are the blue admiration ones. I downloaded again the scenario but nothing fixed. These new characters tokens should have shifted the other icons in the same image?

Raised as #232


🐞  Add a way to lookup owner by email in OpenMetadata

User Story
As a data owner
I expect to specify ownership via an email address (i.e. my justice.gov.uk email)
So that I don't need to know internal data catalogue IDs
But when we create the data product, the OpenMetadata API requires we pass an ID for the owner.
So we need a way to lookup the owner id by email address. Either as a separate method, or internal to the update call. This is currently missing from the catalogue library.
Value / Purpose
No response
Useful Contacts
No response
User Types
No response
Hypothesis
No response
Proposal
https://github.com/ministryofjustice/data-platform/tree/main/python-libraries/data-platform-catalogue
Either add a separate method, or incorporate into the update.
If no user exists with the email, we should throw an exception so that the lambda code can reject the metadata.
Additional Information
Until we fix this, we will be unable to set the owner via the API. In the interim we're hardcoding it to the labs team user.
Definition of Done

[ ] Documentation has been updated
[ ] Another team member has reviewed
[ ] Tests are green

No longer relevant


[MINOR] Fix spark sql run clean do not exit

Change Logs
Fix  spark sql program do not exit because of Timer thread
Impact
None
Risk level (write none, low medium or high below)
Low
Documentation Update
None
Contributor's checklist

[x] Read through contributor's guide
[x] Change Logs and Impact were stated clearly
[x] Adequate tests were added if applicable
[ ] CI passed

@hudi-bot run azure

see the CI's error
[ERROR] Failures:
[ERROR]   TestHoodieTableFactory.testTableTypeCheck:192 Expected org.apache.hudi.exception.HoodieValidationException to be thrown, but nothing was thrown.

see the CI's error
[ERROR] Failures:
[ERROR]   TestHoodieTableFactory.testTableTypeCheck:192 Expected org.apache.hudi.exception.HoodieValidationException to be thrown, but nothing was thrown.

rebase master first.

Thanks for helping fixing the CI failure. I have pushed the rebased version and re-run the ci.

@hudi-bot run azure

@hudi-bot run azure

@hudi-bot run azure

@hudi-bot run azure

How about make Timer as daemon thread?

How about make Timer as daemon thread?

Make Timer as a daemon thread can solve the issue but currently Timer is implemented in java.utils so maybe we need to implement out own Timer to make it a daemon

Make Timer as a daemon thread can solve the issue but currently Timer is implemented in java.utils so maybe we need to implement out own Timer to make it a daemon

@stream2000 how about new Timer(true)

Make Timer as a daemon thread can solve the issue but currently Timer is implemented in java.utils so maybe we need to implement out own Timer to make it a daemon

@stream2000 how about new Timer(true)

@KnightChess Thanks for your suggestion, I agree that  it's more reasonable to make it a daemon thread,  will push a new commit to fix it

@hudi-bot run azure

@hudi-bot run azure

merging to master with the CI failure is not related to the PR.


Fix Graphene config

Graphene config should be done like this (cf. https://github.com/flavors/django-graphql-jwt)
When I move to this config, I forgot to add 'graphql_jwt.middleware.JSONWebTokenMiddleware' in the "if DEBUG" statement, and I spend a day to find out the trick !
Hope it can help someone else !

Looks great, thank you!


CloudFront InvalidQueryStringException on Upload's "Edit" view thumbnail

Describe the Bug
When deployed on CloudFront, the thumbnail in the "Edit" view for a Media collection upload is broken as the src request results in an InvalidQueryStringException.

I've had a quick look through the codebase and it appears to be caused by this line in the EditUpload component: https://github.com/payloadcms/payload/blob/ca52a50dd93f4de9500756cc4856028e6eac7bf0/packages/ui/src/elements/EditUpload/index.tsx#L177 ...where imageCacheTag is just the document's updatedAt property.
Presumably a simple fix would be to include a key for the query string:
const fileSrcToUse = imageCacheTag ? `${fileSrc}?imageCacheTag=${imageCacheTag}` : fileSrc

Note that a similar line is also present in the ThumbnailComponent: https://github.com/payloadcms/payload/blob/ca52a50dd93f4de9500756cc4856028e6eac7bf0/packages/ui/src/elements/Thumbnail/index.tsx#L94 ...but there only seems to be one reference to this component and it doesn't pass the imageCacheTag prop: https://github.com/payloadcms/payload/blob/ca52a50dd93f4de9500756cc4856028e6eac7bf0/packages/ui/src/fields/Upload/RelationshipContent/index.tsx#L85 ...so the issue doesn't occur in the "list view" thumbnail.
Link to the code that reproduces this issue
N/A (CloudFront-specific)
Reproduction Steps
Note that I'm using the storage-s3 plugin, but I don't think that's relevant in this case.

Deploy on CloudFront
Upload an image file to a Media (or similar) collection
Navigate to the list view for the collection (notice that this thumbnail does work)
Click on the newly created document to enter the "Edit" view
Notice that the thumbnail in this view is broken.

Which area(s) are affected? (Select all that apply)
area: ui
Environment Info
Payload: 3.5.0
Node.js: 21.3.0
Next.js: 15.0.4

Hey @lc-51
I've created a new issue with a reproducer in #10139 .
If you can verify that this is the same bug, please consider closing this issue in favor of mine. The info will still be here, but we can reduce some noise for the payload team.


Rasterize shapes

Description
This PR adds the ability to rasterize shapes as requested in #189. It does this for Polygons, Ellipses, and Rectangles. For Lines and Paths it returns a blank mask as these shapes do not have interiors.
Two different functions are added to the ShapesList:

to_masks that will return a NxMxP array where the is a single 2D MxP binary mask for each of the N shapes

to_labels that will return a single 2D MxP labels image with integer labels, 0 for background, and up to N for the N shapes. In this case z-ordering of the shapes is respected when dealing with overlapping regions. The output of this function can be visualized with the add_labels function. Generating the labels does not look at the object color of any other object properties to do any additional grouping.

For both these functions you can pass an optional shape type that will lead to only shapes of that type being rasterized.
To do the rasterization I required the following import from skimage.measure import grid_points_in_poly. This now makes skimage a real dependency. I'm open to what people want to do about this. The grid_points_in_poly is a pretty simple function, but it has some nice C acceleration built into it and reimplementing in native python is about 10x slower (I did the benchmarking). I'm not sure what version of skimage is the oldest that we can support now, or if I edited the requirments.txt correctly.
Finally I added a new example examples/shapes_to_labels.py that shows both these conversion functions

Type of change

[x] New feature (non-breaking change which adds functionality)

How has this been tested?

[x] examples/shapes_to_labels.py

Final checklist:

[x] My PR is the minimum possible work for the desired functionality
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works

Hello @sofroniewn! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file napari/layers/_shapes_layer/shape_list.py:

Line 651:28: E225 missing whitespace around operator

This is failing because I didn't get the skimage requirement correct, maybe @kne42 can help advise

I have removed the skimage depenedncy, there was no need to the slightly faster c version of grid_points_in_poly and the numpy version isn't too bad. Makes it a little simpler


Env Viz: Tab layout

There is quite a bit of space wasted, currently. Some ideas:

Hugely improved.


Add Uptime Check Service, Migrate Repository

This pull request:

Adds the new UptimeCheckServiceClient, providing an interface for uptime monitoring within Stackdriver.
Performs the migration to the nodejs-monitoring repository, with updated tooling.

I'll approved after #4 is merged into repo-migration

@jmdobry #4 is merged. :-D


Update go versions to 1.17.7 and 1.16.14

Signed-off-by: David Schmidt<EMAIL_ADDRESS>

/retest


RFC: feat: low level mypy support

[x] This contribution adheres to CONTRIBUTING.md.
[x] New tests have been created for any new features or regression tests for bugfixes.
[x] tox successfully runs, including unit tests and style checks (see CONTRIBUTING.md).

What does this Pull Request accomplish?
Deeper static analysis of nixnet
Why should this Pull Request be merged?
Improved coverage without tests

Closed in favor if #38.  For some reason my PRs aren't auto-updating based on my pushes.


List of not preferred cat food - now included in userstory 3

Value proposition
As a cat owner
I want to have a list of food my cat doesn 't like to eat
in order to stop buying it
Description

Acceptance criteria

[ ] there is an explaining headline text, this is fixed at the top of the viewport
[ ] there is a list with a few entries
[ ] each entry contents 3 characteristics with hard-coded data
[ ] each characteristics starts at a new line

note: a navigation is added in the very next user story to keep this userstory and the next one manageable
Tasks

[ ] Global Styles
[ ] components/Card

[ ] Storybook
[ ] Tests
[ ] Code card-content h2-Element with a description list
[ ] Styling

[ ] components/UnLikedFood

[ ] Unordered list with cards as li-items

[ ] Check accessibility
[ ] Add to App
[ ] Test on mobile phone

content in another userstory, so this will be closed


Scope stop in standalone mode doesn't refresh UI

env: docker for mac (1.13.0 (15072))
browser: chrome
scope stop  not removing UI from browser.  Can still click on objects with the app trying to find it.
Although the agent is no longer running when you do a: docker ps

@abuehrle That's just how the UI works. If the backend dies the UI is still alive trying to contact it (you will see an icon in the bottom left stating it's trying to connect).

@abuehrle Where you expecting a different behavior? Which one?

I was expecting a blank screen, since the probes are no longer present.  Otherwise it looks broken.  Maybe you guys could add a little beacon indicating that the probes are there/not there, like you have in Cloud.

The problem is that the app is also gone - there's no more website left to display that info.

Otherwise it looks broken

What do you see? Can you post a screenshot?

I did happen to take a screen shot. On the details panel, you get the spinner:

Uhm, the topology keeps being rendered.
@abuehrle For how long? It's OK to cache ti for a while (a few seconds) but we may be caching it for too long.

I can reproduce, the trying to reconnect icon is "breathing" but may not be clear enough.

Maybe we could do something more explicit, like graying out the view on disconnections. @davkal / @bowenli Thoughts?

It may be caching for a very long time if you remain in the same view. Once you click on a different view, the nodes do disappear. Here's a recording:
http://recordit.co/qlSMEk2UHn

I made a recording here:
http://recordit.co/qlSMEk2UHn
It looks like if you stay in one view, it may be a very long time, but if you switch contexts then it seems fine.

Killing the server means the client might have indeterminate behavior because it's never expected to run in that state. Specifically, I think any end user that is stopping scope should understand that means the web page has nothing to connect to anymore.
We don't have any way to determine if the probes are killed or just slow. I think keeping the elements around in case there is a network delay or something is a better experience than having them flash in and out every time we miss a connection by a second.

Understood @bowenii and I'm not sure it's such a big deal.  It might be good to mirror what Cloud does at some point, i.e. right away you can see that the probes are no longer connected:

I think keeping the elements around in case there is a network delay or something is a better experience than having them flash in and out every time we miss a connection by a second.

Yes, but what would be wrong with greying out the view after, say, 15s of disconnection?

IMO, short connection drops or scope restarts should not majorly change the UI. But if the backend is not coming online after a while (needs to be longer than scope restart times), I think it's a good idea to make the user aware as @rade suggested. The question is, do users still get value from looking at the last known state, in which case I would not grey it out, but rather make the disconnect message more prominent (and add a prominent back-online message when the backend is connected again).

https://github.com/weaveworks/scope/issues/2246#issuecomment-281993475 supports that the disconnected state in the UI is not clear enough.


Fixing errors related to sklearn.model_selection (Closing issue #130)

I've tried to run the Using lime for regression.ipynb notebook and I've found the following error:
sklearn 'module' object has no attribute 'model_selection'

These changes fix it. Thank you!

Thanks


proposal: go2: allow semicolon (;) as a multiple case conditions separator

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
go version go1.9.1 linux/amd64
Does this issue reproduce with the latest release?
yes, with 1.10.beta1
What operating system and processor architecture are you using (go env)?
any
What did you do?
Develop a gofmt like utility, with custom ast format then realized go don't allow fallthrough in type switches cases.
https://pastebin.com/raw/GHqgk2US
What did you expect to see?
tool does translate programs containing any switches containing multiple case conditions into fallthroughized. Resulting program should work. It does not for type switches.
What did you see instead?
tool don't work on type switches. Fallthrough is not allowed:
cannot fallthrough in type switch
But even better solution would be if go language accepts semicolons to be as a separator in case with multiple conditions.
Reason: All block like statements (if, for, else, plain block) allow semicolon to be used as a separator between node children either in header or in body. Case, default is also a block like statement. Therefore case should allow semicolon to be used as a separator between node children either in header or in body.
Thanks for the issue number.

Please show some examples of how code looks today and how it would look under your proposal.  Thanks.

Fix A
The following program should be recognized and compiled. Notice how semicolon can optionally be used to separate multiple case conditions.
package main

import "math/rand"

func main() {

	var thing interface{}

	switch rand.Intn(5) {
	case 0:
		thing = true

	case 1:

		thing = 9

	case 2; 3:
		thing = "hello"

	case 4:
		thing = 'x'
	}

	switch thing.(type) {
	case bool:
		println("It is bool")

	case int:
		println("It is integer")

	case byte; string:
		println("It is something else")
	}
}

Here is the diff to make this work in the gc compiler:
issue23769.txt
Fix B
The following program should be recognized and compiled. Notice cases with nothing but exactly one fallthrough in them. Using heuristics, this could be detected by the compiler and turned internally into the equivalent form of having a multiple case conditions.
package main

import "math/rand"

func main() {

	var thing interface{}

	switch rand.Intn(5) {
	case 0:
		thing = true

	case 1:

		thing = 9

	case 2:
		fallthrough
	case 3:
		thing = "hello"

	case 4:
		thing = 'x'
	}

	switch thing.(type) {
	case bool:
		println("It is bool")

	case int:
		println("It is integer")

	case byte:
		fallthrough
	case string:
		println("It is something else")
	}
}

Patch: Not available
Now it's time to ask, assuming this would be fixed, which way would you prefer, A or B?

Why use a semicolon when comma to indicate a sequence or hyphen to indicate a range is already in common usage?

The optional use of semicolon would be used by machine go code generators who model go language using a simplified syntax tree. In such a simplified model, there is not really two groups of subnodes to the case clause (the conditions and the statements in body). There is only one group of subnodes and the position of colon is recorded in an integer (how many conditions there are). The case header elements are simply expression statements. Separated by a semicolon like the case body elements can be.
As such this issue is not an user facing issue, it's more a thing that would simplify life of writers of abstract syntax tree formats. I believe other developers of refactoring tools and related areas may face this same issue.

If the code is machine generated, the existing syntax with fall through or repeated code blocks is sufficient.

I'm gonna prepare patch for fix B. To see how much impact this change has.

Please don’t send code until this proposal has been reviewed, this usually occurs on mondays.

Not to sound too blunt, but your argument sounds a lot like "let's make the language more complex so I can simplify my AST in a very minute way."

Your fix B sounds like a compiler optimization.  That sounds like a good idea and does not need to go through the proposal process.
Your fix A sounds like changing the language to permit a semicolon where we already permit a comma.  I can't see any reason to change the language like that.  It certainly needs a much better justification than is given above.

Sorry, for the reasons given above, this isn't the sort of language change that's going to happen.
We don't want to complicate the language and add multiple ways of doing something just to simplify a particular code generator.


Slider don't release grab

Hi,
I think they have an issue on the slider (Tested on the last stable version of Chrome); when you grab a cursor slider and release the grab with the mouse cursor outside of the slider (cursor must be outside , it's important to reproduce issue), the slider stay grabbed until we click again on the slider.
Page to test issue: http://metroui.org.ua/v3/sliders.html

thanks, fixed