Extended dry-run for all procedures

Consider implementing new dry-run or replace existing --without-act.

Do not change anything on cluster or in input Kubemarine files.
Generate, enrich, compile as much as possible

Compile plugin templates
dry-run helm if it is supported
Enrich default plugins
Generate different files in dump (etc_hosts, haproxy configs, etc.) without upload.
Generate final inventory file without replacing of initial (as --without-act currently does)
Other

Consider restrictions when generation of something that depends on real work on cluster (for example, template plugins sometimes depend on shell command through runtime_vars).
In case if it is implemented only locally, consider adding this to kubemarine selftest.

Approach:
For implementing the dry-run we are setting the dry-run field in a cluster context. actual calls for the write function will be received at the wrapper function to prevent actual executions on nodes for sudo/run/put(etc) functions that are making actual changes to the nodes. So whenever the Kubemarine procedure calls to run sudo/run/put it just prints a debug log and all the functionality works similarly except uploading files to the nodes or executing commands on the nodes.
Status:
Currently completed dry-run implementation for install, upgrade, add_node, and reboot procedure. Working on remaining procedures to support dry-run.


add watches to cluster for packagedeployment controller

Fixes https://github.com/nephio-project/nephio-controller-poc/issues/3

cc @johnbelamaric


Feature request

Is your feature request related to a problem? Please describe.
在MacOS系统下，手动将LocalSend设置为启动项后，每当完成LocalSend完成首次自启动，都不会自动隐藏窗口
Describe the solution you'd like
添加一个设置项，可以在首次启动程序时隐藏窗口
Describe alternatives you've considered
自己再写一个AppleScript脚本用来关闭LocalSend窗口
vim ~/Scripts/关闭LocalSend.scpt

tell application "LocalSend"
	activate
end tell

tell application "System Events"
	click button 1 of window "LocalSend" of application process "LocalSend" of application "System Events"
end tell

然后编写一个Shell脚本用来执行这个AppleScript脚本
vim ~/Scripts/关闭LocalSend

osascript ~/Scripts/关闭LocalSend.scpt

将这个Shell脚本添加执行权限
chmod +x ~/Scripts/关闭LocalSend.scpt

将这个~/Scripts/关闭LocalSendShell脚本添加到系统的启动项中
这样每当LocalSend首次启动后，都会有一个脚本自动关闭LocalSend的窗口
Additional context

@Feiju12138 Could you please describe your issue in English, that way the whole community can understand.


Flag: Crawl from scratch

crawlFromScratch: true/false
Set to false, but can be turned on so all articles are re-crawled.

Skipping this one for now. It's just to replace all true to false in ID array.


Auto diyHue Bridge activation

Currently i have a startscript in homebridge to activate the bridge via curl (/hue/linkbutton?username=&password=&action=Activate). Sometimes it works and sometimes it doesnt, can this be a feature to automaticly trigger the button, so that you can checkbox the setting auto connect or something like that and you can define user and password. The curl command is: curl --user user:password http://ip/hue/linkbutton?action=Activate

What issue are you trying to solve?

What issue are you trying to solve?

The issue that it wont connect to the bridge until you click the button yourself

The issue that it wont connect to the bridge until you click the button yourself

See the README and the FAQ

See the README and the FAQ


test: memdisk incomplete

Missing new test system (test.py)
Missing README

Is it possible to split this up into separate folders - one test for each? Is it necessary?

Fixed in #682


Video block paste throws error: Uncaught TypeError: undefined is not a function

Video block paste throws error:
Uncaught TypeError: undefined is not a function
I'm using Sir Trevor JS v0.4.2
Uncaught TypeError: undefined is not a functionsir-trevor.js?body=1:6087
    module.exports.Block.extend.handleDropPastesir-trevor.js?body=1:6077
    module.exports.Block.extend.onContentPasted

Could be something with how I'm setting up ST. Here's a plnkr of my code:
http://plnkr.co/edit/bl67w3eZmtTz09jNi8rY

Looks like it's our bad. I've just created aPR to fix this

cool thanks!


hashset::contains() returns FALSE, although the item is in the set

While playing AoC 2020 I've encountered a very strange issue  with HashSet::contains() -  it reports that an item is NOT present in the set, although it is. Here is a MCVE:
use std::collections::VecDeque;
//use std::collections::HashSet;

use hashbrown::HashSet;

pub fn main() {
    let mut deque = (0..10).collect::<VecDeque<usize>>();

    let mut seen_a = HashSet::new();
    let mut seen_b = HashSet::new();

    for i in 0..100 {
        if !seen_a.insert(deque.clone()) {
            if !seen_b.contains(&deque) {
                println!("{:3}: {:?}", i, deque);
            }
        }

        // already inserted
        // seen_a.insert(deque.clone());
        seen_b.insert(deque.clone());

        deque.rotate_left(1);
    }
}

Expected behavior:
The application does not print anything
Actual behavior
The application prints:
 10: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 11: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
 12: [2, 3, 4, 5, 6, 7, 8, 9, 0, 1]
 13: [3, 4, 5, 6, 7, 8, 9, 0, 1, 2]
 14: [4, 5, 6, 7, 8, 9, 0, 1, 2, 3]
 15: [5, 6, 7, 8, 9, 0, 1, 2, 3, 4]
 23: [3, 4, 5, 6, 7, 8, 9, 0, 1, 2]
 24: [4, 5, 6, 7, 8, 9, 0, 1, 2, 3]
 25: [5, 6, 7, 8, 9, 0, 1, 2, 3, 4]
 26: [6, 7, 8, 9, 0, 1, 2, 3, 4, 5]
 27: [7, 8, 9, 0, 1, 2, 3, 4, 5, 6]
 28: [8, 9, 0, 1, 2, 3, 4, 5, 6, 7]
 29: [9, 0, 1, 2, 3, 4, 5, 6, 7, 8]
 30: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 31: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
 39: [9, 0, 1, 2, 3, 4, 5, 6, 7, 8]
 40: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 41: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
 42: [2, 3, 4, 5, 6, 7, 8, 9, 0, 1]
 43: [3, 4, 5, 6, 7, 8, 9, 0, 1, 2]
 44: [4, 5, 6, 7, 8, 9, 0, 1, 2, 3]
 45: [5, 6, 7, 8, 9, 0, 1, 2, 3, 4]
 46: [6, 7, 8, 9, 0, 1, 2, 3, 4, 5]
 47: [7, 8, 9, 0, 1, 2, 3, 4, 5, 6]
 55: [5, 6, 7, 8, 9, 0, 1, 2, 3, 4]
 56: [6, 7, 8, 9, 0, 1, 2, 3, 4, 5]
 57: [7, 8, 9, 0, 1, 2, 3, 4, 5, 6]
 58: [8, 9, 0, 1, 2, 3, 4, 5, 6, 7]
 59: [9, 0, 1, 2, 3, 4, 5, 6, 7, 8]
 60: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 61: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
 62: [2, 3, 4, 5, 6, 7, 8, 9, 0, 1]
 63: [3, 4, 5, 6, 7, 8, 9, 0, 1, 2]
 71: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
 72: [2, 3, 4, 5, 6, 7, 8, 9, 0, 1]
 73: [3, 4, 5, 6, 7, 8, 9, 0, 1, 2]
 74: [4, 5, 6, 7, 8, 9, 0, 1, 2, 3]
 75: [5, 6, 7, 8, 9, 0, 1, 2, 3, 4]
 76: [6, 7, 8, 9, 0, 1, 2, 3, 4, 5]
 77: [7, 8, 9, 0, 1, 2, 3, 4, 5, 6]
 78: [8, 9, 0, 1, 2, 3, 4, 5, 6, 7]
 79: [9, 0, 1, 2, 3, 4, 5, 6, 7, 8]
 87: [7, 8, 9, 0, 1, 2, 3, 4, 5, 6]
 88: [8, 9, 0, 1, 2, 3, 4, 5, 6, 7]
 89: [9, 0, 1, 2, 3, 4, 5, 6, 7, 8]
 90: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 91: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
 92: [2, 3, 4, 5, 6, 7, 8, 9, 0, 1]
 93: [3, 4, 5, 6, 7, 8, 9, 0, 1, 2]
 94: [4, 5, 6, 7, 8, 9, 0, 1, 2, 3]
 95: [5, 6, 7, 8, 9, 0, 1, 2, 3, 4]

The issue is NOT reproducible with std::collections::HashSet. Just comment out the hashbrown import and uncomment the std one.
Hashbrown version: 0.9.1
rustc 1.48.0 (7eac88abb 2020-11-16)

Another, cleaner example:
use std::collections::VecDeque;

pub fn main() {
    let mut deque = (0..10).collect::<VecDeque<usize>>();

    let mut std_set = std::collections::HashSet::new();
    let mut hbr_set = hashbrown::HashSet::new();

    for _ in 0..100 {
        println!("Key: {:?}", deque);

        let std_x = std_set.contains(&deque);
        let hbr_x = hbr_set.contains(&deque);
        if std_x != hbr_x {
            println!("[C] Std: {}; Hbr: {};", std_x, hbr_x);
        }

        let std_x = std_set.get(&deque);
        let hbr_x = hbr_set.get(&deque);
        if std_x != hbr_x {
            println!("[G] Std: {:?}; Hbr: {:?};", std_x, hbr_x);
        }

        let std_x = std_set.insert(deque.clone());
        let hbr_x = hbr_set.insert(deque.clone());
        if std_x != hbr_x {
            println!("[I] Std: {}; Hbr: {};", std_x, hbr_x);
        }

        println!();

        deque.rotate_left(1);
    }
}

it seems that the issue occurs only with contains() and get(), but never with insert()

The issue is NOT reproducible with std::collections::HashSet.

This is odd since std is based on hashbrown -- but std::collections::HashSet<T, ahash::RandomState> also fails! And going the other way, hashbrown::HashSet<T, std::collections::hash_map::RandomState> is fine.

I tried to bisect this, but it just took me to 182d3e3fd1ceb836f95580cf9a1a84c00e77c6ee, "Replace FxHash with AHash as the default hasher."

It seems ahash gets different values for a rotated (non-contiguous) VecDeque: (playground)
use ahash::AHasher;
use std::collections::VecDeque;
use std::hash::{Hash, Hasher};

fn hash(x: &impl Hash) -> u64 {
    let mut hasher = AHasher::default();
    Hash::hash(x, &mut hasher);
    hasher.finish()
}

fn main() {
    let deque: VecDeque<i32> = (0..10).collect();

    let mut deque2 = deque.clone();
    deque2.rotate_left(5);
    deque2.rotate_left(5);

    assert_eq!(deque, deque2);
    assert_eq!(hash(&deque), hash(&deque2)); // fails!
}

This feels like a bug in VecDequeue's Hash impl: it simply passes two slices to the hasher. This is incorrect since the slice length is allowed to affect the result, which means that hash(([1, 2], [3, 4])) is allowed to return a different result than hash(([1], [2, 3, 4])).

You are right:
fn main() {
    let mut deque: VecDeque<i32> = (0..10).collect();

    deque.rotate_left(5);
    deque.rotate_left(5);
    println!("{:?}", deque.as_slices());

    let hashcode = hash(&deque);

    deque.rotate_left(5);
    deque.rotate_left(5);
    println!("{:?}", deque.as_slices());

    assert_eq!(hashcode, hash(&deque)); // fails!
}

After rotation, the deque is split in a different way:
([0, 1, 2, 3, 4, 5], [6, 7, 8, 9])
([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [])

I'm going to close this since it isn't a bug in hashbrown or ahash. Can you open an issue in rust-lang/rust?

This feels like a bug in VecDequeue's Hash impl: it simply passes two slices to the hasher. This is incorrect since the slice length is allowed to affect the result, which means that hash(([1, 2], [3, 4])) is allowed to return a different result than hash(([1], [2, 3, 4])).

It doesn't directly hash the slices, but calls Hash::hash_slice -- it's not clear to me if that is supposed to be sensitive to length or just act like each item was fed in sequence. But the Hash::hash_slice for primitive integers casts to a &[u8] and calls Hasher::write, and ahash does add the length there.

Well it's either a bug in VecDeque or in ahash, depending on how we specify Hash::hash_slice. In any case that method needs clearer documentation.


EAS build not launching correctly on iOS

Build/Submit details page URL
https://expo.dev/accounts/memorateam/projects/memora-app/builds/94e56ea8-297b-4eb3-bb8e-0f0656ffcafb
Summary
My app runs perfectly when I use expo start and run it in the Expo Go app.
When I create a build using EAS eas build --development --platform ios it runs successfully, and gives me an install link.
Upon installing on my phone, it opens only to a white blank screen for 10 seconds and crashes. It should show the development client screen (i think) but it doesn't.
When I then run expo start --dev-client it does the same thing. QR code open the app, but it crashes within 10 seconds.
Please help!
I have checked my iOS credentials, certs and profiles and it all looks good. My guess is the installed app is not communicating with EAS for some reason, which I'm not aware of.
Managed or bare?
Managed
Environment
expo-env-info 1.0.5 environment info:
System:
OS: macOS 13.1
Shell: 5.8.1 - /bin/zsh
Binaries:
Node: 16.17.0 - /usr/local/bin/node
Yarn: 1.22.19 - /usr/local/bin/yarn
npm: 8.15.0 - /usr/local/bin/npm
Managers:
CocoaPods: 1.11.3 - /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 21.4, iOS 16.0, macOS 12.3, tvOS 16.0, watchOS 9.0
IDEs:
Xcode: 14.0/14A309 - /usr/bin/xcodebuild
npmPackages:
expo: ~44.0.0 => 48.0.4
react: 17.0.1 => 18.2.0
react-dom: 17.0.1 => 18.2.0
react-native: 0.64.3 => 0.71.3
react-native-web: 0.17.1 => 0.18.12
npmGlobalPackages:
eas-cli: 3.5.2
expo-cli: 6.3.2
Expo Workflow: bare
Error output
No error log, build is stuck on "start metro builder".
Reproducible demo or steps to reproduce from a blank project
Not sure how to reproduce, looking for help here :)

Same problem. Builds created with eas build -p iosand installed on any iOS device just show the SplashScreen briefly and then a white screen indefinitely.


fix: prevent infinite onClose call

fixing https://github.com/kgoedecke/react-oauth-popup/issues/31
to reproduce (react 17)
perform an login and leave the component in place, do not redirect
print in onClose function and see that constantly being called because of the finally in the promise.
that made me think if the timeouts are well placed and always valid in the vars that are generated.
possibly a memory leak further down the line?
the suggested fix, has a check if the window is open , within the useEffect, and also an empty array of dependencies (in case this was meant to run only on first load, otherwise we can remove the latter)

@kapekost thanks a lot for the PR. Tests seem to be failing. Can you check why?

@kapekost thanks a lot for the PR. Tests seem to be failing. Can you check why?

Sure :) I am planning to get back to this soon, and run the build locally
I did a quick PR through the browser editor to note it down.
I will update here with thoughts after that
On Mon, 4 Jan 2021 at 20:16, Kevin Goedecke<EMAIL_ADDRESS>wrote:

@kapekost https://github.com/kapekost thanks a lot for the PR. Tests
seem to be failing. Can you check why?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kgoedecke/react-oauth-popup/pull/32#issuecomment-754193556,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABNCXLSGU6I4PGWMAOSEMO3SYIOYFANCNFSM4VTAS4OA
.

--
Kostas Kapetanakis
Software Engineer

Sure :) I am planning to get back to this soon, and run the build locally
I did a quick PR through the browser editor to note it down.
I will update here with thoughts after that
On Mon, 4 Jan 2021 at 20:16, Kevin Goedecke<EMAIL_ADDRESS>wrote:

@kapekost https://github.com/kapekost thanks a lot for the PR. Tests
seem to be failing. Can you check why?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kgoedecke/react-oauth-popup/pull/32#issuecomment-754193556,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABNCXLSGU6I4PGWMAOSEMO3SYIOYFANCNFSM4VTAS4OA
.

--
Kostas Kapetanakis
Software Engineer

@kapekost awesome thanks a lot for helping out here :)

@kapekost awesome thanks a lot for helping out here :)

I am not sure if it's fixing the case I noticed, but this looks more stable, triggering this use-effect when the externalWindow changes, I will do some manual tests to confirm it works and solves the case I have here, and I will re-open the PR :)

I am not sure if it's fixing the case I noticed, but this looks more stable, triggering this use-effect when the externalWindow changes, I will do some manual tests to confirm it works and solves the case I have here, and I will re-open the PR :)

works great here,
though,  when the window state changes, it calls the onClose, rather than the actual close action
but seems to be intentional behaviour before my fix, and un-necessary breaking change, what do you think?

works great here,
though,  when the window state changes, it calls the onClose, rather than the actual close action
but seems to be intentional behaviour before my fix, and un-necessary breaking change, what do you think?

@kgoedecke hi :) any updates or second thoughts on this one?

@kgoedecke hi :) any updates or second thoughts on this one?

I've been using this version for a while now, the fix seems ok, let me know if you get the chance to review

I've been using this version for a while now, the fix seems ok, let me know if you get the chance to review

@kapekost will try to test it by tomorrow.

@kapekost will try to test it by tomorrow.

I can't reproduce the bug to be honest, but your fix seems to work as well on my end. Which service are you using for the oAuth @kapekost

I can't reproduce the bug to be honest, but your fix seems to work as well on my end. Which service are you using for the oAuth @kapekost

To reproduce, I set a console log for the onClose, then open the pop up, close it again and keep using the rest of the components within the page, it’s pretty consistent...
I’m using it for both Xero and Keycloak
Maybe it’s also related to react version? (17)

To reproduce, I set a console log for the onClose, then open the pop up, close it again and keep using the rest of the components within the page, it’s pretty consistent...
I’m using it for both Xero and Keycloak
Maybe it’s also related to react version? (17)

@kapekost I'm on React 17 as well but we use NextJS, maybe thats the issue. I'm fine merging your PR though, since it still works on my end. Btw: I'm bumping all dependencies today and will open a PR, are you ok to test if that works also on your end? That would be a great help!

@kapekost I'm on React 17 as well but we use NextJS, maybe thats the issue. I'm fine merging your PR though, since it still works on my end. Btw: I'm bumping all dependencies today and will open a PR, are you ok to test if that works also on your end? That would be a great help!

I see, it makes sense,
sure, happy to,
I will get on this as soon as possible and let you know (later today)

I see, it makes sense,
sure, happy to,
I will get on this as soon as possible and let you know (later today)


Leveraged deferrable_sql() in SchemaEditor

LGTM, was it related to a ticket? I remember someone raising a related concern somewhere (IRC, @developers or Trac).

No ticket yet. Someone was asking on IRC yesterday how to make the addition of FKs not deferrable and I stumbled over connection.ops.deferrable_sql() being unused. Wrote it down before I forgot it.

As it's not completely trivial I would create a ticket for keep track of the motivation behind the change (a django-user on IRC).

There we go, @charettes: https://code.djangoproject.com/ticket/26593


add Industrial University of HoChiMinh city

@TanDuy274 I am sorry, the domain iuh.edu.vn is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Custodial Popcorn

"Popcorn", in the sense of a small value being custodied at the LSP on behalf of the client.  The intent is that the coins lost in your couch are more valuable than the popcorn being custodied on your behalf.
A problem is that our base layer really only enforces satoshi-valued amounts, and if the value owned by one side is below the dust limit, it is simply given to miners as fee --- i.e. any value below the dust limit is not practically enforceable onchain.
It would be nice if we could make a "small claims court" where a client could prove it has a lien on a popcorn-sized monetary amount (i.e. less than the dust limit plus fee to open an actual for-reals channel) custodied on an LSP, and the LSP is refusing to let the client use the popcorn to pay someone else.  This would allow enforcement, of a sort, of sub-dust-limit amounts.
Of course, this is custodial, so....
Also, the amounts being considered as so tiny that it might not be worth worrying about anyway.
We would also need some way to upgrade from custodial to non-custodial.

Crazy idea: have every LSP be a Chaumian bank (though using WabiSabi-style keyed-verification anonymous credentials instead of blinded signatures).  LSP issues popcorn tokens to clients.  If the client wants to send out (i.e. use its received zap to zap someone else) it contacts a competitor LSP and hands over control of the popcorn token to the competitor LSP conditional on the HTLC being fulfilled.  Once the competitor LSP has gathered enough popcorn tokens of the LSP, it asks for onchain settlement from the issuing LSP; presumably LSPs are in a better position to enforce this than mere clients.

Custodial Popcorn can possibly be inverted so that risks are inverted i.e. instead of client-trusts-LSP, it is LSP-trusts-client.  The transform is done this way: Client single-funds a channel toward the LSP, LSP issues blinded tokens to client (without a corresponding transfer on the channel!); client periodically uses those tokens / trades the tokens, then client settles to the LSP periodically by saying "these are the tokens that remained with me" and then the client transfers the delta between the channel size and the tokens that remained with the client.
An additional mechanism would be for a client to go to another LSP, say "I have tokens from this first LSP" and make payments out via that other LSP without making a channel to them; the other LSP then aggregates tokens issued by the first LSP from multiple such clients and periodically the LSPs settle over the LN.  The advantage here is privacy: the client has a channel with one LSP but leaks its outgoing payments to another HTLC, decoupling identity of its onchain funds vs its outgoing payments (whereas with a "normal" LSP the identity of its outgoing payments is tied to the onchain funds used by the client to open the channel to the LSP; the LSP might not know who the payee is, but it does know who the payer is and what onchain funds were used to pay with).
Comes from @nothingmuch who credits @moonsettler for this idea.
Against this, we should note that the original impetus / user story is that of nostr zaps, traditionally 21 sats each, being too small to pay for a channel open in the foreseeable future.  The user story is that the client is someone who occassionally posts on nostr, who then aggregates the received funds and then gets a channel opened once the funds are large enough, hence Custodial Popcorn

the original impetus / user story is that of nostr zaps, traditionally 21 sats each, being too small to pay for a channel open in the foreseeable future. The user story is that the client is someone who occassionally posts on nostr, who then aggregates the received funds and then gets a channel opened once the funds are large enough, hence Custodial Popcorn

btw sending ecash on nostr does not require any special setup. it's the simplest most straightforward thing to do. it can even be done with a throwaway nsec and identifying the sender (if desired) inside the encrypted envelope with a meta protocol. the receivers could simply consolidate to self custody at their leisure.
{
"type": "cashu/v1",
"sender": "<real_npub>",
"tokens": [...]
}

@moonsettler The tokens being sent would be cashu-style tokens? As I understand it it would require some interaction with the server anyway to transfer definitely to the receiver, is my understanding correct?

@ZmnSCPxj-jr:

Let me see if I understand this correctly: the 2-of-2 escrow would not be enforceable on the Bitcoin blockchain, but instead requires mutual trust between the LSP and its client, correct?

it's the basis of the escrow, as most cases are assumed to be resolved cooperatively. neither party can gain by not cooperating and you are already in a highly interactive setting with lightning. presigned transactions can further lead to arbitration contracts. that can be trust oracles or maybe even BitVM fraud proofs. (altho i'm skeptical about it's economic viability for small amounts)

Have you considered the use of Smart Contracts Unchained instead of a 2-of-2 mutual trust contract? Basically Smart Contracts Unchained extends the typical 2-of-3 escrow (2 keys are from the direct parties in the contract, 3rd key is an escrow that arbitrates in case of a conflict) so that an "escrow service" is a k-of-n of multiple services (so you get some of the advantages of Blockstream Liquid where you have distributed trust in a k-of-n, but gives you maximal freedom in changing who that k-of-n is) and the parties can agree in an n-of-n or if there is a disagreement they put up their contract and their witnesses to the contract. This does require third-party validation of tokens (because the escrow service is the third party in the contract), which I think are not possible with existing cashu tokens?

yes i baseline recommend 3-of-4 for arbitration where both parties bring their own oracle from a reputable set. ecash fraud proofs are a big part of how arbitration could be carried out.

@moonsettler with the current Poon-Dryja mechanism, every output contract does need to be infect with the Poon-Dryja mechanism, i.e. the 2-of-2 would actually be (A && B) || (B && revocation_key), and the transaction presented would also need to give the escrow and the revocation path AND be relative-time-locked.  This is greatly simplified with Decker-Wattenhofer and Decker-Russell-Osuntokun but the former is groady and the latter requires NOINPUT or equivalent.  At least if you wanted to really minimize trust.  Hmmmmmmmmmmm.
Basically, every contract is infected, so that an arbitrary contract C between Poon-Dryja participants A and B requires both a (A && B && C) || (B && revocation) on the A-side commitment tx, and when this is spent, it also requires that outputs going to A and B on the second-stage tx are also infected with (A && relative-lock-time) || (B && revocation).
With an escrow as you mentioned, the base contract C would be (A && B) || ((A || B) && escrow_contract), which gets infected to (A && B) || (A && B && escrow_contract) || (B && revocation), with the second-stage tx redistributing the funds to an output B and (A && relative-lock-time) || (B && revocation).  Hmmmm.
Sorry, this is melting my brain :P

@nothingmuch

Although being a KVAC system requires knowledge of the secret key to verify a credential presentation, the server can produce a publicly verifiaible proof that such a message was valid using its secret analogous to the proof of valid issuance that it must provide to prevent key tagging attacks, so the specific situation you are describing can be done.

It seems to me, naively, that if the client wanted to show a third party a proof that it was issued a token, it could present both T and its corresponding blinding factor b, and the exact same DLEQ given by the server in the initial issuance of the BDHKE.
Of course, once this is revealed to the escrow and the escrow challenges the server to give the t so it can show that it already marked the t as invalid, the server now knows the b and can now link the blinded token to the specific issuance.  Is this an acceptable privacy leak?

A credential system that is not based on algebraic MACs can be used, e.g. Coconut is a publicly verifiable scheme.

Thanks, how different is this from WabiSabi? Would the credentials need to be group elements / points that are actually Pedersen commitments like in WabiSabi or...?

@moonsettler with the current Poon-Dryja mechanism, every output contract does need to be infect with the Poon-Dryja mechanism, i.e. the 2-of-2 would actually be (A && B) || (B && revocation_key)

sounds good to me. once you have your potential 2-of-2 output you can pre-sign further arbitration steps optionally.

Before this dusts of into the nirvana: I still think a standard like this is needed. No idea when we should work on it (we already have lots on our plate) or how legally feasible it is but the base problem of handling initial small amounts is still here.


[FormRecognizer] Fixing a couple of minor issues

Fixes #12140
Fixes #12319
Fixes #24449
Fixes #29101
Fixes #35571

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.AI.FormRecognizer


Typo in role IO documentation

Hello Author,
I was going through the role IO {} documentation and found a typo for "read-write" mode for "sub open". The current documentation has
my $fh = open("path/to/file", :w);
while it should be
my $fh = open("path/to/file", :rw);
I believe, this is a minor error, but can someone please correct it?
Thanks.
-Tushar

Thank you. It should be fixed on next build (in about an hour)


Add UT for mimo

Signed-off-by: Kaiyuan Hu<EMAIL_ADDRESS>

Codecov Report

Merging #1401 (f7b3670) into main (81123f4) will increase coverage by 0.13%.
The diff coverage is 100.00%.

:exclamation: Current head f7b3670 differs from pull request most recent head daafa17. Consider uploading reports for the commit daafa17 to get more accurate results

@@            Coverage Diff             @@
##             main    #1401      +/-   ##
==========================================
+ Coverage   68.74%   68.87%   +0.13%
==========================================
  Files         295      295
  Lines       16196    16236      +40
  Branches     2619     2635      +16
==========================================
+ Hits        11134    11183      +49
+ Misses       4316     4308       -8
+ Partials      746      745       -1

Impacted Files
Coverage Δ

towhee/functional/mixins/column.py
75.00% <ø> (+9.00%)
:arrow_up:

towhee/engine/execution/vectorized_execution.py
87.50% <100.00%> (+37.50%)
:arrow_up:

.../models/frozen_in_time/frozen_video_transformer.py
91.39% <0.00%> (+0.81%)
:arrow_up:

towhee/models/frozen_in_time/frozen_in_time.py
46.95% <0.00%> (+2.29%)
:arrow_up:

towhee/functional/storages.py
82.14% <0.00%> (+2.38%)
:arrow_up:

towhee/models/frozen_in_time/frozen_utils.py
72.22% <0.00%> (+6.70%)
:arrow_up:

Continue to review full report at Codecov.

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

/lgtm
/approve


for services, generate a Client or pass in a config to each operation

The generated code for each operation currently takes a Configuration. This is how opening-generator currently does it. The other Azure SDKs generate Clients instead. It may be possible to do it that way instead. We will need to evaluate the trade-offs.

I'm leaving it as OperationConfig for now.

In #417, @bmc-msft provides examples for other Azure SDK languages, which pass the configuration into clients. I is time to reevaluate this in combination with moving to the pipeline architecture #294.


Support info and info-detail options on ares-package

:Release Notes:
Support info and info-detail options on ares-package
:Detailed Notes:

Add info and info-detail options for ipk analyze
Update package.json
Update unit test of ares-log
Update unit test of ares-device

:Testing Performed:

Pass unit test on linux and windows
Pass eslint
Before run unit test, run "npm install"
Check outputs below commands

ares-package -i spec/tempFiles/ipks/com.web.app_1.0.0_all.ipk
ares-package -i spec/tempFiles/ipks/com.sample.echo_0.0.1_all.ipk
ares-package -id spec/tempFiles/ipks/com.web.app_1.0.0_all.ipk
ares-package -id spec/tempFiles/ipks/com.sample.echo_0.0.1_all.ipk

:Issues Addressed:
[WRN-4395] Implement info-detail option of ares-package
[WRN-11266] Implement info option of ares-package

could you add new line between "main: helloworld_webos_service.js"  and "id: com.web.app.service2"?
< Service Information >
id: com.web.app.service
services: [{"name":"com.web.app.service"}]
version: 1.0.0
main: helloworld_webos_service.js
id: com.web.app.service2
services: [{"name":"com.web.app.service2"}]
version: 1.0.0
main: helloworld_webos_service.js

code 👎

could you add new line between "main: helloworld_webos_service.js" and "id: com.web.app.service2"?
< Service Information >
id: com.web.app.service
services: [{"name":"com.web.app.service"}]
version: 1.0.0
main: helloworld_webos_service.js
id: com.web.app.service2
services: [{"name":"com.web.app.service2"}]
version: 1.0.0
main: helloworld_webos_service.js

could you add new line between "main: helloworld_webos_service.js" and "id: com.web.app.service2"?
< Service Information >
id: com.web.app.service
services: [{"name":"com.web.app.service"}]
version: 1.0.0
main: helloworld_webos_service.js
id: com.web.app.service2
services: [{"name":"com.web.app.service2"}]
version: 1.0.0
main: helloworld_webos_service.js

I've changed this before style.

Verify +1
Please update :

Replace -id to -I in commit message.
There is a format output difference between "services" filed of Package Information and Service Information

I've updated them


Remove --coverage-dir option from the VM.

We should remove the --coverage-dir option from the VM once the code coverage tool switches to using the vm service protocol for this.
@cbracken

cc @cbracken
Moving to 1.14 as we are not yet ready to switch.

@turnidge @cbracken is this happening in 1.14?

@turnidge @cbracken Ping?

Moving to 1.15 because the replacement API is not yet entirely ready.

@cbracken Please work with Todd to make sure the new API implements the features you need.

Will do!

@turnidge We are working on coverage support in IntelliJ IDEA / WebStorm. Is pub global run coverage:collect_coverage the only recommended way to collect coverage or we can use --coverage-dir VM option or anything else?
cc @scheglov, @jingbian

I guess https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md#sourcereportcoverage

@iposva-google I'm nearing the point where I'll have time to spend time porting package:coverage over to the new coverage API. In all likelihood, next week.
@alexander-doroshko If you've got an existing implementation of the service protocol (I'd imagine you must for debugging etc.) and don't need LCOV output, package:coverage doesn't give you much benefit over rolling your own against the API that @zoechi points out. package:coverage simply provides tooling that runs against that same API -- for the moment, the previous version of it.
What would be nice would be VM service package that wraps up the entire protocol + API. package:coverage would then simply add the merging/formatting tooling.

Hi Chris,
So if we simply want the coverage data dumped into a json file with a
predefined file name. What are your suggestions?
Previously, we ran another process with coverage:collect_coverage to do so.
Is there a better alternative? (like only a flag for "dart" binary instead
of an extra process)
Also --coverage_dir is OK, but seems deprecated and doesn't have an option
to specify the file name.
On Fri, Feb 19, 2016 at 6:05 AM, Chris Bracken<EMAIL_ADDRESS>wrote:

@iposva-google https://github.com/iposva-google I'm nearing the point
where I'll have time to spend time porting package:coverage over to the new
coverage API. In all likelihood, next week.
@alexander-doroshko https://github.com/alexander-doroshko If you've got
an existing implementation of the service protocol (I'd imagine you must
for debugging etc.) and don't need LCOV output, package:coverage doesn't
give you much benefit over rolling your own against the API that @zoechi
https://github.com/zoechi points out. package:coverage simply provides
tooling that runs against that same API -- for the moment, the previous
version of it.
What would be nice would be VM service package that wraps up the entire
protocol + API. package:coverage would then simply add the
merging/formatting tooling.
—
Reply to this email directly or view it on GitHub
https://github.com/dart-lang/sdk/issues/24319#issuecomment-185942730.

--
Thanks and regards,
Jing Bian

Clearing out 1.15 milestone as the last full push to dev has happened. If any changes are required before 1.15 is shipped, please file a merge request

So if we simply want the coverage data dumped into a json file with a predefined file name. What are your suggestions? Previously, we ran another process with coverage:collect_coverage to do so.
Is there a better alternative?

collect_coverage is the way to do it.

Fixed with c434931517ae2a05f96b26c0fe6ff581d322ed02


WIP: Two new cheatcodes to enable Forge scripts to send Flashbots bundles

Motivation
I wanted to be able to easily send flashbots bundles within forge scripts for use-cases involving transactions that cannot hit public mempools for security reasons (e.g. MEV-able transactions, whitehat rescues, etc).
Solution
Two new cheatcodes, vm.startBundle(target_block_number, gas_price) and vm.stopBundle(), which allow users to send flashbots bundles in foundry scripts, for example like this:
vm.startBroadcast(ACCOUNT_1);
vm.startBundle(uint64(block.number + 3), 100 gwei);
address(0xFDA4C65985934043412fdFAbf3F11552b9A6932D).call{value: 0.1 ether, gas: 21000}("");
// more transactions / deployments / etc
vm.stopBundle();
vm.stopBroadcast();

This is a draft PR as this is a work in progress, and I'm also very new to Rust, so may not have built this optimally. I'd like to get feedback and code review from the community if possible.

Leaving this PR open as I would like to see native support (tracking here: https://github.com/foundry-rs/foundry/issues/4947) for private transactions but it will likely be better to start from scratch given the update to Alloy, deprecation of ethers-flashbots, updates to cheatcodes + the changing landscape of block building and the prominence of L2s with trusted sequencers.
Related PR: https://github.com/foundry-rs/foundry/pull/4931 introduces the broadcastRawTransaction cheatcode which could be useful in this context
Related Alloy support: https://github.com/leruaa/alloy-mev

Still supportive but given the required changes I think it makes sense that we go back to the drawing board before proceeding


feat: Improve CSV/compression writers performance

Jira: https://keboola.atlassian.net/browse/PSGO-596
All tests will pass in the final PR.
Large set of fixes and E2e tests is divided into smaller PRs to do a review.

Changes:

Improved CSV/compression writers throughput.
Reduced allocated memory size.
Reduced number of allocations per write.
Even before, it was quite fast, but I completed some WIP optimizations from the past.

Commend per commits. Please, explore the final version in the IDE.

FULL BENCHMARKS

Benchmark Summary
Input Data Write Speed: +60-300%

🔵  compression=None,sync=None

The most simple case, no compression, no waiting for the sync.
1,4M/s x 1kB record

🟢 compression=GZIP_Parallel_DefaultCompression,sync=ToDisk,wait=true

Default configuration, parallel GZIP compression, waiting for the sync to the disk.
500M/s x 1kB record

Memory allocations count per write: =0,

(the number of allocations does not increase with the number of writes)

AVG allocated memory per write: -80%

(the allocated memory does not increase with the number of writes)

The updated diagram for writers chain, after the review, I will commit it to the repo.


[FEATURE] Persistence types should partition the data so can be multi-threaded

Should check to make sure there's enough records to bother - so will probably need to chunk linearly, although that's a poor strategy.

Or split anyway and decide on serial or parallel reading later

If we partition on a hash of the data, we can dedupe in parallel.


Why extra folder?

files:
    style.css:
        - html/src/styles/main.less

why gassetic is creating %outputfilder%/style.css/style.css, and not just plain %outputfolder%/style.css ?

To remove the extra folder, replace this line on gassetic.coffee:
destination = path.join<EMAIL_ADDRESS>destinationFilenameConfigKey
To this:
destination =<EMAIL_ADDRESS>

Thank you!


Initialize Firebase Admin with enviroment variables instead of service-account.json file

I have initialized Firebase Admin in one of my .NET projects like this.
services.AddSingleton(FirebaseApp.Create(new AppOptions()             {                 Credential = GoogleCredential.FromFile("./firebase-settings.json"),             }  ));
But when I deploy this to production, for example in Azure App service, I have to do a workaround to push this JSON file to the App Service, since we shouldn't add the JSON file to the source control.
So Instead of using this approach, is there a way to initialize this package by passing the projectid, private key, etc to the appSettings.json file and providing those credentials to the package using the code, instead of adding the JSON file path?
I saw that this approach is available for Nodejs as follows, But is there an equivalent for .NET?
 admin.initializeApp({   credential: admin.credential.cert({     projectId: process.env.FIREBASE_PROJECT_ID,     clientEmail: process.env.FIREBASE_CLIENT_EMAIL,     privateKey: process.env.FIREBASE_PRIVATE_KEY?.replace(/\\n/g, '\n'),     }),   })

Hi @PasinduPrabhashitha ,
You can store the contents of the key in a secret or in an environment variable in your production environment and load the credentials from json.
FirebaseApp = FirebaseApp.Create(new AppOptions()
                {
                    Credential =
                        GoogleCredential.FromJson(...),
                });

If you can upload the key file to your production service set the environment variable GOOGLE_APPLICATION_CREDENTIALS and use GoogleCredential.GetApplicationDefault(). See Initialize the SDK in non-Google environments for more on this.
GoogleCredentials API is part of googleapis/google-api-dotnet-client. You can see all the supported ways to initialize credentials in that codebase.
Additionally, service account keys can become a security risk if they are not managed properly. Look into workload identity federation to authenticate your apps without a service account key.


Crash with ATM3 (All the mods 3)

Game crashes on start up as soon as I install the latest 1.12 version into All The Mods 3
https://pastebin.com/Qkgqggwc

Old issue, closed.


Improve preview/confirmation formatting

Would be nice for the release preview to have better formatting. Currently it's just printing the object it'll be sending to the releases API:
{ tag_name: 'v1.1.0',
  target_commitish: '394c232692d89ff3c904d4d3b046db4bc43c2aa0',
  name: 'v1.1.0',
  body: '* target node `0.12` and `iojs` on travis\n* user docker and cache `node_modules` on travis\n* add oauth2 token authentication method [#5](https://github.com/ngoldman/gh-release/issues/5)\n\n',
  owner: 'ngoldman',
  repo: 'gh-release',
  draft: false,
  prerelease: false }

I'm thinking it would be more readable like this:
repository: ngoldman/gh-release
release: v1.1.0
tag: v1.1.0
commit: 394c232692d89ff3c904d4d3b046db4bc43c2aa0
draft: false
prerelease: false
body:
* target node `0.12` and `iojs` on travis
* user docker and cache `node_modules` on travis
* add oauth2 token authentication method [#5](https://github.com/ngoldman/gh-release/issues/5)

:+1:
Should we add colors?

We could if we want to get fancy. Could use https://www.npmjs.com/package/chalk

Resolved by @paulcpederson in #24. Thanks! :cool:


Slow performance with Firefox / Yosemite during first seconds

I have been using Pixi v3 for a while (I am very happy with it, thanks for your work !) and I am facing quite weird performance under Firefox with OSX (Yosemite).
With Chrome, Safari and Opera, I have a really smooth result. With Firefox, when page has loaded, I have to wait several seconds (it is quite random, sometimes 6 seconds, sometimes minutes) before everything goes as smooth as with other browsers. It does the same on multiple computers with same configuration.
At first sight, I thought it was a problem with my own project, maybe due to texture sizes. But I have the same result with examples provided on Pixi v3 pages. For example, here is a video record I made.
I am not telling that it does not work with Firefox, but just that the result is not very smooth during the first second.
Chrome : https://www.dropbox.com/s/5iv3u3htaeh3ddu/chrome.mov?dl=1
Firefox : https://www.dropbox.com/s/u9x2c95f6zjjwz4/firefox.mov?dl=1
If you look closer, you will see that the dragon beak is quite saccade (as the rest of the body).
If I wait a moment it will then go normal.
In my own project I only start the render animation when everything is loaded, so there are not any background processes running that may slow the animation. Moreover, I have a FPS stat utils that show that the animation is running 60fps at all time, as if there was not any image drop.
I am using a new Macbook pro 2.8Ghz i7 with 16Go DDR3 and a AMD Radeon R9 M370X 2048 Mo.
I test the same PIXI  example on a Windows platform with Firefox and everything goes well. So it might be a Firefox OS X issue, but my question is do you have any ideas on what could be done (on PIXI experience code side) to improve general performance with Firefox ? Do you have any ideas on what this delay before it goes well could be related to ?

I'am also having problems with performance on my project in Firefox. But also with the canvas renderer. The WebGL looks to deal way beter with more sprites.

+1

I have the same problems on a slightly older Retina MBP running the latest FF (41.0.2), OSX 10.10.5, fps drops to around 40.
Weird that it always speeds up after time and from then on even refreshing the page wont knock it from a solid 60 fps, so, is this something to do with getting on to the GPU? I'm not clear how that stuff works but given that a page refresh wont knock the fps back down again its gotta be more than just code.
I see similar slowdown with the bunnymark, but far far less.
The profiler is telling me most time is spent in WebGLRenderer.prototype.render and in the shader Shader.prototype.syncUniforms, although, opening the profiler normally kicks everything into life and gets me the 60 fps.

My test is just rendering a container with a few interactive graphics circles in, about 30, nothing spectacular. I'll try and create a gist that replicates it.

In my case, stats.js doesn't display the fps drop, but like in this example ( https://www.dropbox.com/s/u9x2c95f6zjjwz4/firefox.mov?dl=1 ) i can see slow performance with firefox.

Hello! This initial slow down caused when pixi first creates all its shaders / buffers and initially uploads textures to the GPU.
@mattstyles if you could provide a gist or fiddle I will make sure to look into this. Thanks!

I was just looking at trying to simplify a project into a gist for you, but with 3.0.9 the ParticleBuffer does not seem to work very well for FF & Safari. Apologies if this has been reported elsewhere, this is the error log from Firefox
"Pixi.js 3.0.9 - WebGL - http://www.pixijs.com/" main.js:42729:13
TypeError: invalid arguments
[185]</ParticleBuffer.prototype.initBuffers()
ParticleBuffer()
[186]</ParticleRenderer.prototype.generateBuffers()
[186]</ParticleRenderer.prototype.render()
[184]</ParticleContainer.prototype.renderWebGL()
[169]</Container.prototype.renderWebGL()
[169]</Container.prototype.renderWebGL()
[194]</WebGLRenderer.prototype.renderDisplayObject()
[194]</WebGLRenderer.prototype.render()
Main/this.onRender()
emit()
Tick/<()
[468]</EventEmitter.prototype.emit()
iter()

It's this line inside initBuffers
this.dynamicData = new Float32Array( this.size * this.dynamicStride * 4);

Safari has the same issue but has slightly more helpful error details
TypeError: Invalid array length argument (fractional lengths not allowed)

Chrome doesnt seem to give a shit and ploughs on regardless.
Any ideas why the array size of stride is fractional?
Firefox version 43.0.4
Pixi version 3.0.9
Yeah, I tried Pixi 3.0.7 and that works, but at 35-45fps. Project link, not sure how useful that will be though, other than the profiler showing where the time is spent. Still want a gist from 3.0.7? I'm inclined to investigate the 3.0.9 particle buffer thang and then worry about perf issues.

should be all good in v4 :


Vincent explore

Adding calibration procedure
Re-organising folder names
Re-naming some scripts
Adding instructions to README about how to use this repo
Metrics exploration more structured now, and including all known metrics.

@Anne-Linde perhaps good if you could first run this branch locally and the merge with master if all goes well.


Uncaught Error: Invalid text decoration iterator position: (136, 79).Buffer row 136 has length 375.

[Enter steps to reproduce below:]

...
...

Atom Version: 1.9.0
System: Mac OS X 10.11.6
Thrown From: Atom Core
Stack Trace
Uncaught Error: Invalid text decoration iterator position: (136, 79).
Buffer row 136 has length 375.
At /Applications/Atom.app/Contents/Resources/app.asar/node_modules/text-buffer/lib/display-layer.js:1074

Error: Invalid text decoration iterator position: (136, 79).
Buffer row 136 has length 375.
    at DisplayLayer.module.exports.DisplayLayer.getScreenLines (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/text-buffer/lib/display-layer.js:1074:19)
    at TextEditorPresenter.<anonymous> (/Applications/Atom.app/Contents/Resources/app.asar/src/text-editor-presenter.js:1355:37)
    at TextEditorPresenter.module.exports.TextEditorPresenter.updateLines (/Applications/Atom.app/Contents/Resources/app.asar/src/text-editor-presenter.js:1362:12)
    at TextEditorPresenter.module.exports.TextEditorPresenter.getPreMeasurementState (/Applications/Atom.app/Contents/Resources/app.asar/src/text-editor-presenter.js:121:12)
    at TextEditorComponent.module.exports.TextEditorComponent.updateSyncPreMeasurement (/Applications/Atom.app/Contents/Resources/app.asar/src/text-editor-component.js:265:60)
    at TextEditorComponent.module.exports.TextEditorComponent.updateSync (/Applications/Atom.app/Contents/Resources/app.asar/src/text-editor-component.js:205:12)
    at /Applications/Atom.app/Contents/Resources/app.asar/src/text-editor-component.js:324:28
    at ViewRegistry.module.exports.ViewRegistry.performDocumentUpdate (/Applications/Atom.app/Contents/Resources/app.asar/src/view-registry.js:221:9)
    at /Applications/Atom.app/Contents/Resources/app.asar/src/view-registry.js:3:61

Commands

Config
{
  "editor": {
    "softWrap": true
  }
}

Installed Packages
# User
emmet, v2.4.3 (active)
Remote-FTP, v0.8.3 (active)
terminal-plus, v0.14.5 (active)
atom-dark-syntax, v0.27.0 (inactive)
atom-dark-ui, v0.51.0 (inactive)
atom-light-syntax, v0.28.0 (inactive)
atom-light-ui, v0.43.0 (inactive)
base16-tomorrow-dark-theme, v1.1.0 (inactive)
base16-tomorrow-light-theme, v1.1.1 (inactive)
one-dark-ui, v1.3.2 (active)
one-light-ui, v1.3.2 (inactive)
one-dark-syntax, v1.2.0 (active)
one-light-syntax, v1.2.0 (inactive)
solarized-dark-syntax, v1.0.2 (inactive)
solarized-light-syntax, v1.0.2 (inactive)
about, v1.5.2 (active)
archive-view, v0.61.1 (active)
autocomplete-atom-api, v0.10.0 (active)
autocomplete-css, v0.11.1 (active)
autocomplete-html, v0.7.2 (active)
autocomplete-plus, v2.31.0 (active)
autocomplete-snippets, v1.11.0 (active)
autoflow, v0.27.0 (inactive)
autosave, v0.23.1 (active)
background-tips, v0.26.0 (active)
bookmarks, v0.41.0 (active)
bracket-matcher, v0.82.1 (active)
command-palette, v0.38.0 (inactive)
deprecation-cop, v0.54.1 (active)
dev-live-reload, v0.47.0 (active)
encoding-selector, v0.22.0 (active)
exception-reporting, v0.38.1 (active)
fuzzy-finder, v1.3.0 (active)
git-diff, v1.1.0 (active)
find-and-replace, v0.198.0 (inactive)
go-to-line, v0.31.0 (inactive)
grammar-selector, v0.48.1 (active)
image-view, v0.58.0 (active)
incompatible-packages, v0.26.1 (active)
keybinding-resolver, v0.35.0 (active)
line-ending-selector, v0.5.0 (active)
link, v0.31.1 (inactive)
markdown-preview, v0.158.0 (active)
metrics, v0.53.1 (active)
notifications, v0.64.1 (active)
open-on-github, v1.2.0 (inactive)
package-generator, v1.0.0 (inactive)
settings-view, v0.238.0 (active)
snippets, v1.0.2 (active)
spell-check, v0.67.1 (active)
status-bar, v1.4.0 (active)
styleguide, v0.46.0 (active)
symbols-view, v0.113.0 (inactive)
tabs, v0.98.0 (active)
timecop, v0.33.1 (active)
tree-view, v0.208.0 (active)
update-package-dependencies, v0.10.0 (active)
welcome, v0.34.0 (active)
whitespace, v0.32.2 (active)
wrap-guide, v0.38.1 (active)
language-c, v0.52.1 (active)
language-clojure, v0.21.0 (active)
language-coffee-script, v0.47.0 (active)
language-csharp, v0.12.1 (active)
language-css, v0.36.2 (active)
language-gfm, v0.86.0 (active)
language-git, v0.13.0 (active)
language-go, v0.42.0 (active)
language-html, v0.44.1 (active)
language-hyperlink, v0.16.0 (active)
language-java, v0.22.0 (active)
language-javascript, v0.119.0 (active)
language-json, v0.18.0 (active)
language-less, v0.29.3 (active)
language-make, v0.22.2 (active)
language-mustache, v0.13.0 (active)
language-objective-c, v0.15.1 (active)
language-perl, v0.35.0 (active)
language-php, v0.37.0 (active)
language-property-list, v0.8.0 (active)
language-python, v0.45.0 (active)
language-ruby, v0.68.5 (active)
language-ruby-on-rails, v0.25.0 (active)
language-sass, v0.52.0 (active)
language-shellscript, v0.22.3 (active)
language-source, v0.9.0 (active)
language-sql, v0.21.1 (active)
language-text, v0.7.1 (active)
language-todo, v0.28.0 (active)
language-toml, v0.18.0 (active)
language-xml, v0.34.8 (active)
language-yaml, v0.26.0 (active)

# Dev
No dev packages

Closing in favor of #12085 - feel free to subscribe there for updates.


[Service Bus] ATOM API: Retain the status code in the response from the service for MessageEntityNotFoundError

Issue - https://github.com/Azure/azure-sdk-for-js/issues/10144

Fine returning the service status code even if its nonsense. Let's just make sure it's documented!

Fine returning the service status code even if its nonsense. Let's just make sure it's documented!

I still think throwing a 404 is better.
Reasoning from the .NET SDK to not change the status code seems to be that the service can change in the future, and also the users hitting the endpoint directly would be confused because of the inconsistency in status codes. (Though I highly doubt if the service would ever change the status code.)
I think we should be consistent given their reasoning. Thoughts @bterlson?
Reference: https://github.com/Azure/azure-sdk-for-js/issues/10144#issuecomment-662285882

@HarshaNalluru agreed.

/azp run js - servicebus - tests

/azp run js - servicebus - tests


caSecret is missing in helm template

What is the bug?
caSecret is missing from the Helm template for security.tls.transport and security.tls.http
What is your host/environment?
chart version: 2.7.0

PR to fix the issue: https://github.com/opensearch-project/opensearch-k8s-operator/pull/903


Consider using webhook for learning about deleted records

we currently poll the list endpoints to get archived records, but this is bad for a few reasons:

After 90 days, archived records get permanently deleted and aren't queryable --- this is ok since it's unlikely that we stop syncing for 90 days in a row.
Bigger reason: there is no /search endpoint for archived records, so we have to use the list endpoint, which doesn't allow filtering by timestamp > highwatermark. Therefore, if a customer deletes a huge number of records, even if we "incrementally" pull new data from hubspot, we're not doing so for archived data, and it can be very expensive.

we could consider using webhook.

Migrated to internal project management tool.


fixes typo in package.json

Fixes package.json files section to not read the root.
related:
https://github.com/zeit/pkg/issues/524#issuecomment-423476064
https://github.com/zeit/pkg/issues/528

Coverage remained the same at 100.0% when pulling b72a60514efd4d37b7c29951e54ed6aa79e6517a on nikhedonia:patch-1 into 24de20f9f765a3ba18400fda43b2e4e1b70a0541 on studio-b12:master.


Python process occupies 100% of a core

Once using the Alfred command "d" the python process permanently occupies 100% of a processor core. Only killing the python process helps. Seems there is an endless loop...?!
I am using macOS Sierra 10.12.4 Beta and Python 2.7.10 is in the path.

Same happening for me too :(, my fans usually jump to being really loud. Sometimes I get multiple instances of the python process as well, even on beta 5. I would love a fix for this, it's honestly my favourite workflow and I'm pretty bummed that I had to disable it.

FYI, version =<0.6 seems ok, the issue only appears later. v0.6 is quite usable for me, that's what's my daily driver now. Must be an issue with the external process.

Same here. The "d FILENAME" command causes Alfred to use 100% of one CPU core. When killing Alfred, a Python task remains that still uses 100% CPU.
Are there any suggestions by the developer?

Also getting this

PR #22 should fix this issue. Closing task.


Add --split-wheels option to pip-compile to split non-wheel packages out into a separate requirements file

Changelog-friendly one-liner:
Contributor checklist

[ ] Provided the tests for the changes.
[ ] Gave a clear one-line description in the PR (that the maintainers can add to CHANGELOG.md on release).
[ ] Assign the PR to an existing or new milestone for the target version (following Semantic Versioning).

@chadrik Hi Chad, I opened this PR as internal for my fork so we can probably do some reviews before opening the PR directly to their repo?

Ok, looks good.  let's squash these down and make a public PR.


[QA] Left menu elements picks browser's language instead of the oC account settings

Tested using oCIS 1.0.0.-RC5
Left menu elements picks browser's language instead of the oC account settings

Retested with rc6
System language: German,
Einsteins selected language: French

We see a mixture of one third German, one third English and one third French.
Expected behaviour: Tutes francais!


"Export to CSV" does not work.

The "Export to CSV" option gets the error "$ERR_OHNDREQ - 604 Object handle required"
The call to the Csv function in the DoCreateCsv routine is not setup to generate the csv file name to be used. Also the data that is passed is an alpha field and not a string object. The alpha field in the place where it is expecting a string object is what is causing the Object handle required error.
I have pasted a suggested revision to the subroutine below. It is also the version I have implemented in the code I am using and it seems to be working fine.
;;-----------------------------------------------------------------------------
;; Export ISAM file to CSV file
;;
DoCreateCsv,

    xcall log(" - Export starting at " + %TimeNow)

    try
    begin
        data csvFileSpec, a128, Settings.LocalExportPath
        data localCsvFile, string

        ;;Determine temporary file names

.ifdef OS_WINDOWS7
        localCsvFile = %atrim(csvFileSpec) + "\" + %atrim(instruction.structure_name) +".csv"
.endc
.ifdef OS_UNIX
        localCsvFile = %atrim(csvFileSpec) + "/" + %atrim(instruction.structure_name) + ".csv"
.endc
.ifdef OS_VMS
        localCsvFile = %atrim(csvFileSpec) + %atrim(instruction.Structure_name) + ".csv"
.endc

        functionName = %atrim(instruction.structure_name) + "Csv"
        status = %xsubr(functionName,localCsvFile,Settings.TerminalChannel,Settings.LogFileChannel,,dberrtxt)
        if (status) then
            xcall verboselog(" - Export complete at " + %TimeNow)
        else
            xcall LogFunctionError(functionName,status,dberrtxt)
    end
    catch (ex, @SynException)
    begin
        ok = %LogFunctionFail(functionName,ex.Errno,ex.Message)
    end
    endtry

    return

I think this may be another case of "the code has moved on since you cloned it". The code you mention now looks like this, which I believe addresses the issue you are describing.
DoCreateCsv,

    Logger.Log(" - Export starting at " + %TimeNow)

    try
    begin
        data csvFileSpec, a128, Settings.LocalExportPath
        functionName = %atrim(instruction.structure_name) + "Csv"
        status = %xsubr(functionName,csvFileSpec,dberrtxt)
        if (status) then
        begin
            Logger.VerboseLog(" - Export complete at " + %TimeNow)
        end
        else
        begin
            Logger.LogFunctionError(functionName,status,dberrtxt)
        end
    end
    catch (ex, @SynException)
    begin
        ok = Logger.LogFunctionFail(functionName,ex.Errno,ex.Message)
    end
    endtry

    return


Added APE BNB-SISTA

mooBananaBNB-SISTA
vault: https://bscscan.com/address/0x43819F48B4AcC9AC9e89cFA158139033C150fdE3#code
strategy: https://bscscan.com/address/0x406D2EC5DC8Fe03cF0670B403116c2EeFAe210e6#code
beefy API PR: https://github.com/beefyfinance/beefy-api/pull/328

Contracts on BSC need to inherit the GasThrottler contract.


Fix crash when re-importing model with AnimationPlayer panel open and node selected

closes https://github.com/godotengine/godot/issues/95769
closes https://github.com/godotengine/godot/issues/95744
Edit:   Removed CONNECT_DEFERRED from connection
player->connect(SNAME("current_animation_changed"), ... ), CONNECT_DEFERRED);

->
player->connect(SNAME("current_animation_changed"), ... ));

The re-import process attempts to update the scene via EditorNode::reload_instances_with_path_in_edited_scenes(). I believe this function disassembles the scene and then reassembles it with the updated resource. During this process, the AnimationPlayer player is null, leading to the crash."
OLD FIX
added null check to AnimationPlayer before use within AnimationPlayerEditor::_current_animation_changed

I'm not sure this is a proper fix, there's no reason the player should be connected and be null IMO, I think there's some missing disconnection somewhere, I think this just hides a larger issue that should be fixed

I'm not sure this is a proper fix, there's no reason the player should be connected and be null IMO, I think there's some missing disconnection somewhere, I think this just hides a larger issue that should be fixed

I definitely agree, I'd much rather not see this method being called at all with a null player.
Here's what I believe the timeline of events are:
EditorNode::reload_instances_with_path_in_edited_scenes():5983
EditorData::restore_edited_scene_state
AnimationPlayerEditor::set_state
AnimationPlayerEditor::_update_player()
AnimationPlayer::set_assigned_animation
emit_signal(SNAME("current_animation_changed"), playback.assigned);
//Called on player addresses 0x...fc0,  0x...4b6,  0x...fc0,  0x...4b6
//0x...fc0 becoming the new valid player, 0x...4b6 is the old one

->
EditorNode::reload_instances_with_path_in_edited_scenes():6138
AnimationPlayerEditor::_node_removed
// player is set to null, addresses 0x...fc0

->
AnimationPlayerEditor::_current_animation_changed
// signal resolves and player is null (crash) (i believe to be trying to hit the old 0x...fc0 player)
//new player 0x...fc0 then called and works as expected.

I attempted to disconnect the callbacks for these methods on removal, but no dice since the signals are emitted beforehand?
This null player gets cleaned up after this and the new one loads in as expected.  Happy to add these disconnects in the node_removed, however I'm not super familiar with how signals are handled in cpp, so not certain they are necessary cleanup wise:
if (player->is_connected(SNAME("animation_list_changed"), callable_mp(this, &AnimationPlayerEditor::_animation_libraries_updated))) {
    player->disconnect(SNAME("animation_list_changed"), callable_mp(this, &AnimationPlayerEditor::_animation_libraries_updated));
}
if (player->is_connected(SNAME("current_animation_changed"), callable_mp(this, &AnimationPlayerEditor::_current_animation_changed))) {
    player->disconnect(SNAME("current_animation_changed"), callable_mp(this, &AnimationPlayerEditor::_current_animation_changed));
}

Will take a look, but would need a good check for what causes this specific case, from my casual reading of the code there shouldn't be any time where:

player == nullptr
Signals haven't been disconnected

So either this is a race condition (always possible) or something isn't handled properly, I'll try and go through the code later today or tomorrow and see if I can identify any weird looking code

Well, that was simpler than I thought... Certainly odd that animation_list_changed is CONNECT_DEFERRED, but now both "current_animation_changed" connections are not. Seems to have alleviated the issue

This was introduced in:

#80813

Didn't find any explanation in the PR for this specific change (it wasn't before)

To summarize my understanding of the issue:
You're correct because of the hot-reloading is essentially quietly swapping the whole scene around and the old animation player emits a deferred signal which is then picked up by the AnimationPlayerEditor which by that time has had its AnimationPlayer pointer set to null. Still trying to understand why it would have been flagged as deferred so it might be worth pinging @TokageItLab in case they remember. Either way, there should be mulitple ways to workaround this, but I would like to know if there was a specific reason the DEFERRED flag was added since I'd be nervous about other implications.

Since the AnimationTree now has a direct AnimationLibrary, the AnimationEditor can directly create an AnimationPlayer if it has one, or a dummy AnimationPlayer if it has an AnimationTree and assigns it.
Will the AnimationPlayer be regenerated on re-import? If so, I think the problem is when moving from the old pointer to the new one.

For now, crashes need to be prevented, so I approve it. The crash is pointed out in #96637, but since this PR will resolve the issue before reaching #96637, this PR takes precedence.
Probably the crash is caused by _current_animation_changed being called after the player is deleted, so disconnecting the signal when the player is deleted could also solve the problem, but I don't remember why I make the connection be deferred. I didn't see any regression with this PR with quick test, so it might be fine.


Exception after switching from 2.15.0 to 2.20.2

A customer reported, that his app was not working any more, after he switched to the newest version of the app which switched from Drift 2.15.0 to 2.20.2.
He is running macOS 10.13 and Firefox 115.0. He also seems to have similar issues when running this app on Safari on his Mac, however I currently have no stack trace.
I tried to reproduce the issue by installing Firefox 115.0 on macOS 14.6.1 without success, unfortunately.
Just posting the stack trace here, in case someone has the same problem or maybe a solution to it.
minified:awR: [Exception... "Failure"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: https://web.appella.app/drift_worker.js :: hw/$async$hw< :: line 4543"  data: no]
  at _asIntS(org-dartlang-sdk:///dart-sdk/lib/_internal/js_shared/lib/rti.dart:1598:3)
  at A.TextEditingDeltaState.inferDeltaState(drift_worker.js:665:3)
  at dartProgram(drift_worker.js:985:58)
  at dartProgram(drift_worker.js:985:58)
  at Object.hash.iv.prototypebg(org-dartlang-sdk:///dart-sdk/lib/core/uri.dart:910:31)
  at _BigIntImpl.parse.mt.prototype_BigIntImpl.parse(org-dartlang-sdk:///dart-sdk/lib/_internal/js_runtime/lib/bigint_patch.dart:155:18)
  at A.dv(org-dartlang-sdk:///lib/_engine/engine/vector_math.dart:902:16)
  at dartProgram(drift_worker.js:543:3)
  at dartProgram(drift_worker.js:985:58)
  at A.TextEditingDeltaState.inferDeltaState(org-dartlang-sdk:///lib/_engine/engine/text_editing/text_editing.dart:619:7)
  at A.h2.prototypeda(drift_worker.js:8:7)
  at A.TextEditingDeltaState.inferDeltaState(drift_worker.js:665:3)
  at dartProgram(drift_worker.js:985:58)
  at dartProgram(drift_worker.js:985:58)
  at Object.hash.iv.prototypebg(org-dartlang-sdk:///dart-sdk/lib/core/uri.dart:910:31)
  at _BigIntImpl.parse.mt.prototype_BigIntImpl.parse(org-dartlang-sdk:///dart-sdk/lib/_internal/js_runtime/lib/bigint_patch.dart:155:18)
  at A.dv(org-dartlang-sdk:///lib/_engine/engine/vector_math.dart:902:16)
  at dartProgram(drift_worker.js:543:3)
  at dartProgram(drift_worker.js:543:3)
  at A.w9(org-dartlang-sdk:///lib/_engine/engine/util.dart:430:3)
  at A.isMacOrIOS(org-dartlang-sdk:///lib/_engine/engine/util.dart:441:3)
  at dartProgram(drift_worker.js:985:58)
  at ? (<asynchronous suspension>)
  at StackTrace.current(org-dartlang-sdk:///dart-sdk/lib/_internal/js_runtime/lib/core_patch.dart:788:58)
  at DriftCommunication.request(../../../.pub-cache/hosted/pub.dev/drift-2.20.2/lib/src/remote/communication.dart:113:66)
  at A.awO.prototypeGB(../../../.pub-cache/hosted/pub.dev/drift-2.20.2/lib/src/remote/communication.dart:109:13)
  at _RemoteQueryExecutor.ensureOpen(../../../.pub-cache/hosted/pub.dev/drift-2.20.2/lib/src/remote/client_impl.dart:172:37)
  at _wrapJsFunctionForAsync(org-dartlang-sdk:///dart-sdk/lib/_internal/js_runtime/lib/async_patch.dart:303:19)
  at _wrapJsFunctionForAsync.<anonymous function>(org-dartlang-sdk:///dart-sdk/lib/_internal/js_runtime/lib/async_patch.dart:328:23)
  at _asyncStartSync(org-dartlang-sdk:///dart-sdk/lib/_internal/js_runtime/lib/async_patch.dart:233:3)
  at _RemoteQueryExecutor.ensureOpen.akT.prototypebh3(../../../.pub-cache/hosted/pub.dev/drift-2.20.2/lib/src/remote/client_impl.dart:166:12)
  at _RemoteQueryExecutor.ensureOpen.akT.prototypemM(../../../.pub-cache/hosted/pub.dev/drift-2.20.2/lib/src/remote/client_impl.dart:166:12)
  at LazyDatabase.ensureOpen.<anonymous function>(../../../.pub-cache/hosted/pub.dev/drift-2.20.2/lib/src/utils/lazy_database.dart:64:39)
  at A.cfU(org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:1407:46)
  at _CustomZone.runUnary(org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:1405:3)
  at _CustomZone.runUnary(org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:1307:34)
  at _Future._propagateToListeners.handleValueCallback(org-dartlang-sdk:///dart-sdk/lib/async/future_impl.dart:128:29)
  at _Future._propagateToListeners(org-dartlang-sdk:///dart-sdk/lib/async/future_impl.dart:890:13)
  at _Future._completeWithValue(org-dartlang-sdk:///dart-sdk/lib/async/future_impl.dart:666:5)
  at _Future._asyncCompleteWithValue.<anonymous function>(org-dartlang-sdk:///dart-sdk/lib/async/future_impl.dart:736:7)
  at A.cfS(org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:1399:12)
  at _CustomZone.run(org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:1390:3)
  at _CustomZone.run(org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:1300:34)
  at _CustomZone.runGuarded(org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:1209:7)
  at _CustomZone.bindCallbackGuarded.<anonymous function>.bWb.prototype$0(org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:1249:18)
  at _microtaskLoop(org-dartlang-sdk:///dart-sdk/lib/async/schedule_microtask.dart:40:12)
  at _startMicrotaskLoop(org-dartlang-sdk:///dart-sdk/lib/async/schedule_microtask.dart:49:5)
  at _AsyncRun._initializeScheduleImmediate.internalCallback(org-dartlang-sdk:///dart-sdk/lib/_internal/js_runtime/lib/async_patch.dart:48:10)

Is it possible that you've upgraded drift without upgrading the drift worker? Generally that's something explicitly supported and tested, but IIRC we have a bug sending bigints over worker channels in older versions. These have been fixed, but required slight changes to the protocol when big ints are involved (I didn't consider this to be a breaking change because bigints were broken before).
It's possible that this can only be reproduced when a database operation actually returns a large value that can't be represented by JavaScript's number type, since IIRC we otherwise prefer to use normal numbers for efficiency.

The release is using the Drift worker of the 2.20.1 release: https://github.com/simolus3/drift/releases/tag/drift-2.20.1

Do you have access to the raw trace as reported by Firefox? There's no inferDeltaState in the worker, so I think another tool might have applied a wrong source map here. The demangled trace when ignoring all entries that don't have drift_worker.js appears to be:
org-dartlang-sdk:///lib/_internal/js_runtime/lib/string_helper.dart 164:8  dartProgram
org-dartlang-sdk:///lib/_internal/js_shared/lib/rti.dart 1225:1            dartProgram
org-dartlang-sdk:///lib/_internal/js_shared/lib/rti.dart 1225:1            dartProgram
org-dartlang-sdk:///lib/_internal/js_shared/lib/rti.dart 1225:1            dartProgram
org-dartlang-sdk:///lib/_internal/js_runtime/lib/string_helper.dart 164:8  dartProgram
org-dartlang-sdk:///lib/_internal/js_shared/lib/rti.dart 1225:1            dartProgram
org-dartlang-sdk:///lib/_internal/js_shared/lib/rti.dart 1225:1            dartProgram
org-dartlang-sdk:///lib/_internal/js_shared/lib/rti.dart 1225:1            dartProgram

That's not really helpful...


chromium OS not using all 64GB

so i've seen one other post like this but its closed and i don't know how to fix this even the solution didn't make much sense to me (i'm new to this)

You need to execute the script for expanding the space.

How though unfortunately i don't understand.

check out this "resolved with answer" issue:
https://github.com/FydeOS/chromium_os-raspberry_pi/issues/10


Using the best identified UQ method for new data

Thanks for getting the documentation up! I was able to try it out with one of our datasets. What's unclear to me is how I can then use the identified method saved under errors models to then predict the uncertainty of new examples.
For example, unique determined that UniqueRandomForestRegressor[UQmetrics+predictions](l1) is the most performant method across the three metrics for my dataset. Does the package then provide any way to use that method for determining the uncertainty of new predictions?
I tried to unpickle this file error_models/UQmetrics_predictions/UniqueRandomForestRegressor_model.pkl but it looks like this is just a dataframe of the predictions for each model rather than something I could pass new examples to.

Hi @nhadler ,
at the moment, the package does not offer that feature but we are working on it.

Hi @nhadler,
Thank you for your interest in UNIQUE! As mentioned by @gscebba, the "inference" module is still under development, but once released it will allow users to apply the best performing UQ method to new predictions at inference time. Stay tuned for updates!
Re: your issue with the error model - could you please provide a reproducible MWE/code snippet/data, or at least details on the environment and UNIQUE version that is causing you the issue? So that we can try to pinpoint the possible bug.
I just re-run the two public examples we provide in the documentation using the latest UNIQUE release (v0.2.1), and I was able to successfully load the pickled error models as sklearn models:

I tried to unpickle this file error_models/UQmetrics_predictions/UniqueRandomForestRegressor_model.pkl but it looks like this is just a dataframe of the predictions for each model rather than something I could pass new examples to.

Just for completeness: along with the pickled error model, in each error model's subfolder we save the data used to generate (train and validate) the error model themselves, as csv files (data.csv):

Let me know if we can provide anymore help!

Hi @mtdhuynh
Sure! Here's an example of what happens when I unpickle the model:

I've attached a zipped file containing config file, pickled input data, and outputs. I ran unique in a new conda environment with just python 3.11 installed. One thing that may be different from your examples is that my dataset is only about ~420 entries.
UQ.zip

@nhadler: I tried to reproduce your issues with a fresh conda env with python=3.11.10 and unique=0.2.1 using your same data and code you provided, but the error model loads correctly for me. I tried as well with both unique=0.2.0 and building from source again, with the same end result.

Sure! Here's an example of what happens when I unpickle the model:

What you are seeing here is the first output from pipeline.fit(), a dictionary with the UQ metrics name and values computed for your input dataset.
Have you tried running the pipeline again from scratch (e.g., deleting the outputs folder)?

@nhadler: I tried to reproduce your issues with a fresh conda env with python=3.11.10 and unique=0.2.1 using your same data and code you provided, but the error model loads correctly for me. I tried as well with both unique=0.2.0 and building from source again, with the same end result.

Sure! Here's an example of what happens when I unpickle the model:

What you are seeing here is the first output from pipeline.fit(), a dictionary with the UQ metrics name and values computed for your input dataset.
Have you tried running the pipeline again from scratch (e.g., deleting the outputs folder)?

I just deleted the outputs and reran the pipeline and now I'm getting the model being pickled instead of the outputs.

Glad to hear the issue was resolved, @nhadler!

For example, unique determined that UniqueRandomForestRegressorUQmetrics+predictions is the most performant method across the three metrics for my dataset. Does the package then provide any way to use that method for determining the uncertainty of new predictions?

Regarding reproducing at inference time your specific use-case while we develop the official inference module ourselves:

As you mentioned, the most fitting UQ metric for your dataset is the RF error model that uses as inputs the UQ metrics values and the original predictions, and predicts the L1 prediction error (UniqueRandomForestRegressor[UQmetrics+predictions](l1)).
In order to apply the error model at inference time, you need to reproduce the inputs to it for the new datapoints. In this case, the inputs are: 1) the prediction from your original model, 2) all the input base UQ metrics. In your specific case, the UQ metrics that UNIQUE computes (based on the config file you provided) are:

Distance-based metrics: you need to provide also the training data in order to compute how distant the new datapoints are from the original training set.
Ensemble variance: in addition to the point-wise single-value prediction (e.g., the average of the predictions of your ensemble, column Predictions in your dataset), you need to also provide the individual model's predictions of your ensemble (column Ensemble Predictions in your dataset).

Finally, you can apply the sklearn trained model at inference time.

Below, an example code snippet to do so:
import numpy as np
import pandas as pd
import pickle

from unique.input_type import FeaturesInputType, ModelInputType

# Load original data
with open("<PATH_TO_PKL>/UQ_input.pkl", "rb") as f:
    original_data = pickle.load(f)

# Filter only the training data
training_data = original_data.loc[original_data["Subset"]=="TRAIN"]
# Drop unnecessary/unavailable columns at inference time
training_data = training_data.drop(columns=["Labels", "index"])

# Generate a random datapoint
rng = np.random.default_rng(42)
test_datapoint = {
    "Descriptors": [rng.uniform(-1, 1, size=(79,))],
    "Ensemble Predictions": [rng.uniform(0, 5, size=(4,))],
    "Subset": ["INFERENCE"],
}
test_datapoint["Predictions"] = [np.mean(test_datapoint["Ensemble Predictions"])]
test_datapoint["Ensemble Variances"] = [np.var(test_datapoint["Ensemble Predictions"])]

# Concat together
data = pd.concat([training_data, pd.DataFrame.from_dict(test_datapoint)], axis=0).reset_index(drop=True)

# Initialize UNIQUE inputs
data_inputs = FeaturesInputType(
    column_name = "Descriptors",
    input_values = data["Descriptors"],
    which_set = data["Subset"].to_numpy(),
    problem_type = "regression",
)
model_inputs = ModelInputType(
    column_name = "Ensemble Predictions",
    input_values = data["Ensemble Predictions"],
    which_set = data["Subset"].to_numpy(),
    problem_type = "regression",
)

# Compute UQ values
uq_values = {}
uq_values.update(data_inputs.fit())
uq_values.update(model_inputs.fit())

# Only select the test datapoint's UQ values
test_uq = []
for v in uq_values.values():
    test_uq.append(v[-1]) # In this specific case it's the last element

# Also append the original model's point-wise prediction
test_uq.append(test_datapoint["Predictions"][0])

# Load the trained error model
with open("<PATH_TO_ERROR_MODEL>/outputs/error_models/UQmetrics_predictions/UniqueRandomForestRegressor_model.pkl", "rb") as f:
    trained_error_model = pickle.load(f)

# Predict on the new datapoint
output = trained_error_model.predict([test_uq]) # input shape needs to be (n_samples, n_features)

output here is the predicted error from your trained error model (in this case, the predicted L1 error). In your case, you would need to replace the test_datapoint section with your actual data, instead of generating a random one.

[!NOTE]
This example applies specifically to your provided data and pipeline's output (i.e., with the RF error model trained on UQ metrics and original predictions only being the best performing UQ metric).

If you want to use other UQ metrics and input features in your error model, you will need to compute and add them using a similar workflow as the one above (e.g., transformed UQ metrics). Please, refer to the docs for more details on the input data to error models and feel free to ask for help!
Similarly, if you wish to show other UQ metrics at inference time, you can follow the same steps as above.
Hope this was helpful!
Stay tuned for more updates on the inference module and let us know if you have any more issues.

Glad to hear the issue was resolved, @nhadler!

For example, unique determined that UniqueRandomForestRegressorUQmetrics+predictions is the most performant method across the three metrics for my dataset. Does the package then provide any way to use that method for determining the uncertainty of new predictions?

Regarding reproducing at inference time your specific use-case while we develop the official inference module ourselves:

As you mentioned, the most fitting UQ metric for your dataset is the RF error model that uses as inputs the UQ metrics values and the original predictions, and predicts the L1 prediction error (UniqueRandomForestRegressor[UQmetrics+predictions](l1)).

In order to apply the error model at inference time, you need to reproduce the inputs to it for the new datapoints. In this case, the inputs are: 1) the prediction from your original model, 2) all the input base UQ metrics. In your specific case, the UQ metrics that UNIQUE computes (based on the config file you provided) are:

Distance-based metrics: you need to provide also the training data in order to compute how distant the new datapoints are from the original training set.

Ensemble variance: in addition to the point-wise single-value prediction (e.g., the average of the predictions of your ensemble, column Predictions in your dataset), you need to also provide the individual model's predictions of your ensemble (column Ensemble Predictions in your dataset).

Finally, you can apply the sklearn trained model at inference time.

Below, an example code snippet to do so:

import numpy as np

import pandas as pd

import pickle

from unique.input_type import FeaturesInputType, ModelInputType

# Load original data

with open("<PATH_TO_PKL>/UQ_input.pkl", "rb") as f:

    original_data = pickle.load(f)

# Filter only the training data

training_data = original_data.loc[original_data["Subset"]=="TRAIN"]

# Drop unnecessary/unavailable columns at inference time

training_data = training_data.drop(columns=["Labels", "index"])

# Generate a random datapoint

rng = np.random.default_rng(42)

test_datapoint = {

    "Descriptors": [rng.uniform(-1, 1, size=(79,))],

    "Ensemble Predictions": [rng.uniform(0, 5, size=(4,))],

    "Subset": ["INFERENCE"],

}

test_datapoint["Predictions"] = [np.mean(test_datapoint["Ensemble Predictions"])]

test_datapoint["Ensemble Variances"] = [np.var(test_datapoint["Ensemble Predictions"])]

# Concat together

data = pd.concat([training_data, pd.DataFrame.from_dict(test_datapoint)], axis=0).reset_index(drop=True)

# Initialize UNIQUE inputs

data_inputs = FeaturesInputType(

    column_name = "Descriptors",

    input_values = data["Descriptors"],

    which_set = data["Subset"].to_numpy(),

    problem_type = "regression",

)

model_inputs = ModelInputType(

    column_name = "Ensemble Predictions",

    input_values = data["Ensemble Predictions"],

    which_set = data["Subset"].to_numpy(),

    problem_type = "regression",

)

# Compute UQ values

uq_values = {}

uq_values.update(data_inputs.fit())

uq_values.update(model_inputs.fit())

# Only select the test datapoint's UQ values

test_uq = []

for v in uq_values.values():

    test_uq.append(v[-1]) # In this specific case it's the last element

# Also append the original model's point-wise prediction

test_uq.append(test_datapoint["Predictions"][0])

# Load the trained error model

with open("<PATH_TO_ERROR_MODEL>/outputs/error_models/UQmetrics_predictions/UniqueRandomForestRegressor_model.pkl", "rb") as f:

    trained_error_model = pickle.load(f)

# Predict on the new datapoint

output = trained_error_model.predict([test_uq]) # input shape needs to be (n_samples, n_features)

output here is the predicted error from your trained error model (in this case, the predicted L1 error). In your case, you would need to replace the test_datapoint section with your actual data, instead of generating a random one.

[!NOTE]

This example applies specifically to your provided data and pipeline's output (i.e., with the RF error model trained on UQ metrics and original predictions only being the best performing UQ metric).

If you want to use other UQ metrics and input features in your error model, you will need to compute and add them using a similar workflow as the one above (e.g., transformed UQ metrics). Please, refer to the docs for more details on the input data to error models and feel free to ask for help!
Similarly, if you wish to show other UQ metrics at inference time, you can follow the same steps as above.
Hope this was helpful!
Stay tuned for more updates on the inference module and let us know if you have any more issues.

This looks great! Thanks for taking the time to send a snippet on how to do this---I'll be testing this out immediately. I really appreciate this new tool--we've been wanting to apply more advanced UQ metrics in our lab but not really sure where to start. Thanks!


Error.captureStackTrace is not supported by all browsers

IE11 throwing errors in the TimeoutError constructor.
Is there a recommended polyfill for Error.captureStackTrace?

@Madd0g Just a polyfill probably won't get you there, since the file also has require('util').inherits() for the class inheritance.
I just pushed a branch portable-timeout where I use the output from Babel.js for extending the Error class. Can you try it and see if it works in IE11?

Huh, I'm using webpack+babel, I guess they solved the require('util') problem for me, because the only error I was getting is for the captureStackTrace.
While waiting for you to reply, I added just a tiny if statement to check if captureStackTrace exists on Error and it solved the problem for me.
I tried that branch in my IE11 VM and this is what I get from that branch:
Unhandled promise rejection TypeError: Invalid operand to 'instanceof': Function expected.

@Madd0g I found a StackOverflow comment which seems like a good approach. I've updated my branch. Let me know how it works.

@leedm777 I faced the same problem. And the portable-promise branch works for me. Thanks!

Fix published with v1.3.0. PRs/issues welcome if there are further problems.


Switch which for that in README.md

Signed-off-by: TomSweeneyRedHat<EMAIL_ADDRESS>Replace #512 changing out "which" for "that" in the README.md.  Thanks for the heads up @quaid!

LGTM
@rh-atomic-bot r+

@rhatdan, you might want to change the repository's description as well:
"A tool which facilitates building OCI images"

Thanks fixed.


:four_leaf_clover: Proposal: Make unit test not rely on network

What Would You Like to Add? Why Is This Needed?
The test logic in internal/pkg/pluginmanager/downloader_test.go will try to download file from website, this will make test slow and prone to failture. we can mock this download logic to make test smooth.
Design
make download logic a field of DownloadClient，when we init class pass this func as field, like below

Great. Let's do a mock in the unit test.


Segmentation Network

The provided code don't contain the code of segmentation network, can you give the code? thanks a lot.

The code gives you labels for a segmentation network. You can use your own then!

I want to reappear this paper by the given code, so it's important to get the code for segmentation network.

No need to make your own segmentation network. For the result of Ours-DeepLab, I just used [https://bitbucket.org/deeplab/deeplab-public/src] without changing any hyperparameters.

Thanks a lot. But I want to reappear the result  of Ours-ResNet38, Can you tell me the code you used in the paper?

The original ResNet-38 code will do. [https://github.com/itijyou/ademxapp] The only difference is that I adopted Adam instead of SGD.

Thanks. And is DeepLabv1 you used in experiment?

Yup. Specifically, it's DeepLab-CRF-LargeFOV.

Thank you for your patience.

Hi, I am working to reproduce the results reported in your paper, so I am wanting to train ResNet-38 on the refined CAMs I have created using this repo. Do you have a command or any code for how to train ResNet-38? The ademxapp repository does not include specific instructions on how to train a voc model, though it appears as if their voc.py is capable of doing so.

Hi, I am working to reproduce the results reported in your paper, so I am wanting to train ResNet-38 on the refined CAMs I have created using this repo. Do you have a command or any code for how to train ResNet-38? The ademxapp repository does not include specific instructions on how to train a voc model, though it appears as if their voc.py is capable of doing so. I am curious as to how you initialized the weights, what crop size you used, and what origin-size you used. Currently, I am trying something like the following:
(ademxapp) austin@vader:~/ssd/ademxapp$ python issegm/voc.py --gpus 0,1 --data-root data/VOCdevkit --output train_out --phase train --weights models/voc_rna-a1_cls21_s8_coco_ep-0001.params --split train --crop-size 448 --batch-images 10 --to-epoch 1000 --debug --origin-size 1024

hello，do you have reproduced the result of the ResNet-38. I got some trouble when I reproduced the result of the ResNet-38.


ContinuousPerforming: Add token generator support to Scheduler

🎊 My diff is ready for review at http://codereview.cc/D1733


HTML Dialog Demos: Add example for dynamically creating multiple tabs in a tab view

This has been a question that has been asked multiple times over the years.
Since ivy-rew converted a very old example to Ivy 10, we will include this in here.
See #4394 for details.

I think yes, but this is not obvious to many developers.
The master/detail demo works with dialogs. Often, there is just the need, let's say, for an invoice, to send each position to a possibly different reviewer/accepter, and once accepted to proceed to payment of the invoice.
While the process is very similar technically, it is just not on the radar of the developers searching for a solution.


How can i change the batch size?

Hi
how can i change the batch size in your code?
thank you
kindly regards

Hi @Jeiyoon, you can change the batch size in config.json, e.g.: https://github.com/ksanjeevan/crnn-audio-classification/blob/f09449b87ed61d28b82931c7055d033a7b69160b/config.json#L9


Repeat slow when removing elements

Hey!
We're using the repeat directive (from master) for fast list renderings, but we noticed it's quite slow when elements are removed in the middle of the list. This is likely because a the removal of an item in the middle changes the index of the following elements which triggers their reparenting while in reality, the repeat directive would only need to remove the dom node corresponding to the removed element.
https://github.com/PolymerLabs/lit-html/blob/5742a9e5e6ae74ee91b0421bca92d90f3e2b0601/src/lib/repeat.ts#L78-L86
Reorderings work extremely well though, so I wonder if this behavior can be improved.

Something I forgot to mention: using naïve Array.map inside the interpolation instead of the repeat directive yields kinda better results for us. Removals in the middle of large lists work better, but the overall performance seems worse (as expected).

I can confirm with numbers that it is very slow ;)

Extracted from this recent benchmark : https://github.com/vogloblinsky/web-components-benchmark

BTW are you deleting one by one (doesn't need to be fast) or multiple at the same time?

I delete 50 items one by one. I start the telemetry before starting the delete sequence, and stop it after.
Same stuff for all the implementations.

If you delete one by one, then performance might depend on how the UI is updated, like whether it is batched or not... Like if you delete all 50 elements in one iteration of requestAnimationFrame or just one per iteration

That is actually a bad benchmark, because if the user deleted manually one by one, that would render super fast so the user never saw any lag. But if the user selected every second element and click remove, that should be just as fast and would be a much better benchmark

Your test just tests how the rendering is batched. If you schedule 50 items for deleting within an animation frame that should just result in one update, but if scheduling takes longer it will not.
Like with vanilla lit-html you would delete all 50 and then render and not before.

That is actually a bad benchmark
Ok so did you think better to just measure the deletion of one element inside the 50 elements list ? number 25 for example.

Well, you could make separate benchmarks. I think it would be interesting if you deleted say the middle 25 items in one go. Or every second items in one go. Just make sure that each delete call doesn't result in a direct rendering updatw

That way you test the rendering and diffing algorithms and not the rendering batching/update system. Of course testing both is valid, just need to make sure you use the framework right

Ok i will update the 'delete benchmark' with just deletion of item 25. Will post results soon.

Is it possible to not benchmark pre-release unoptimized code? :)

If you use vanilla lit-html you control when you call render, with LitElement you don't control it so directly. Which can mean that each change calls a property change which results in multiple renders for no apparent reason

At least it is good knowing what you are benchmarking :-)

Is it possible to not benchmark pre-release unoptimized code? :)

Ok, if you want, i can explain like for Angular Elements implementation i create in the repository that it is too early to bench them.


Update installation instructions to include demo script

@bkeepers: I like the idea very much. I would still suggest to keeping one explicit example in the README.mdbefore including the demo file so that first time observers get an idea on the syntax without having to look into another file

@bkeepers: finished my changes, need some 👀  now 😄