Execution of the mainnet block 99836 fails in reth stage

Describe the bug
RUST_LOG=info cargo run --quiet --bin reth -- stage execution --from 99835 --to 99836
2023-05-06T12:42:49.224237Z  INFO reth 0.1.0 starting stage Execution
2023-05-06T12:42:49.224322Z  INFO Opening database path="/Users/shekhirin/Library/Application Support/reth/mainnet/db"
2023-05-06T12:42:49.229912Z  INFO Unwind iteration finished to_block=99835 unwind_progress=99835 is_final_range=true
Error: Stage encountered a execution error in block 99836: Block gas used 21506 is different from expected gas used 10792..

Caused by:
    Block gas used 21506 is different from expected gas used 10792.

Location:
    bin/reth/src/stage/mod.rs:202:64

Steps to reproduce

Sync the node up to the problematic block for the ease of debug

reth node --debug.tip 0x241668a95fc3bfc2d104a92851f2d2005b0ffcd66f0638ddda51854464685174 --debug.max-block 99836 --debug.terminate

Run a CLI for execution stage re-executing the problematic block:

reth stage execution --from 99835 --to 99836

Node logs
I added some execution logs for this block:
diff --git a/crates/revm/src/executor.rs b/crates/revm/src/executor.rs
index cfc58bae..bfde2884 100644
--- a/crates/revm/src/executor.rs
+++ b/crates/revm/src/executor.rs
@@ -237,6 +237,10 @@ where
             // Execute transaction.
             let ResultAndState { result, state } = self.transact(transaction, sender)?;

+            if block.number == 99836 {
+                println!("DEBUG {:#?} {result:#?} {state:#?}", self.evm.env);
+            }
+
             // commit changes
             self.commit_changes(
                 block.number,

Then, I repeated the steps from Steps to reproduce. Here are the debug print from both commands: https://gist.github.com/shekhirin/2c16d7e7a94f73461209849975315e68
And diff:

It's large

DEBUG Env {							DEBUG Env {
    cfg: CfgEnv {						    cfg: CfgEnv {
        chain_id: 0x00000000000000000000000000000000000000000	        chain_id: 0x00000000000000000000000000000000000000000
        spec_id: FRONTIER,					        spec_id: FRONTIER,
        perf_all_precompiles_have_balance: false,		        perf_all_precompiles_have_balance: false,
        perf_analyse_created_bytecodes: Analyse,		        perf_analyse_created_bytecodes: Analyse,
        limit_contract_code_size: None,				        limit_contract_code_size: None,
        disable_block_gas_limit: false,				        disable_block_gas_limit: false,
        disable_eip3607: false,					        disable_eip3607: false,
        disable_base_fee: false,				        disable_base_fee: false,
    },								    },
    block: BlockEnv {						    block: BlockEnv {
        number: 0x0000000000000000000000000000000000000000000	        number: 0x0000000000000000000000000000000000000000000
        coinbase: 0x2f6bce4fc330b69c9b4c2694d57c63ec7b18fec7,	        coinbase: 0x2f6bce4fc330b69c9b4c2694d57c63ec7b18fec7,
        timestamp: 0x0000000000000000000000000000000000000000	        timestamp: 0x0000000000000000000000000000000000000000
        difficulty: 0x000000000000000000000000000000000000000	        difficulty: 0x000000000000000000000000000000000000000
        prevrandao: None,					        prevrandao: None,
        basefee: 0x000000000000000000000000000000000000000000	        basefee: 0x000000000000000000000000000000000000000000
        gas_limit: 0x0000000000000000000000000000000000000000	        gas_limit: 0x0000000000000000000000000000000000000000
    },								    },
    tx: TxEnv {							    tx: TxEnv {
        caller: 0x7cfa3d23636173a3befaabc8ca86846a07c4b3dd,	        caller: 0x7cfa3d23636173a3befaabc8ca86846a07c4b3dd,
        gas_limit: 50000,					        gas_limit: 50000,
        gas_price: 0x0000000000000000000000000000000000000000	        gas_price: 0x0000000000000000000000000000000000000000
        gas_priority_fee: None,					        gas_priority_fee: None,
        transact_to: Call(					        transact_to: Call(
            0xbcd159845b81e35a0b5aff57feccd0b3114791ab,		            0xbcd159845b81e35a0b5aff57feccd0b3114791ab,
        ),							        ),
        value: 0x00000000000000000000000000000000000000000000	        value: 0x00000000000000000000000000000000000000000000
        data: b"A\xc0\xe1\xb5",					        data: b"A\xc0\xe1\xb5",
        chain_id: None,						        chain_id: None,
        nonce: Some(						        nonce: Some(
            12,							            12,
        ),							        ),
        access_list: [],					        access_list: [],
    },								    },
} Success {							} Success {
    reason: SelfDestruct,				      |	    reason: Stop,
    gas_used: 10792,					      |	    gas_used: 21506,
    gas_refunded: 10792,				      |	    gas_refunded: 0,
    logs: [],							    logs: [],
    output: Call(						    output: Call(
        b"",							        b"",
    ),								    ),
} {								} {
    0x2f6bce4fc330b69c9b4c2694d57c63ec7b18fec7: Account {	    0x2f6bce4fc330b69c9b4c2694d57c63ec7b18fec7: Account {
        info: AccountInfo {					        info: AccountInfo {
            balance: 0x00000000000000000000000000000000000000 |	            balance: 0x00000000000000000000000000000000000000
            nonce: 7,						            nonce: 7,
            code_hash: 0xc5d2460186f7233c927e7db2dcc703c0e500	            code_hash: 0xc5d2460186f7233c927e7db2dcc703c0e500
            code: Some(					      |	            code: None,
                Bytecode {				      <
                    bytecode: b"\0",			      <
                    hash: 0xc5d2460186f7233c927e7db2dcc703c0e <
                    state: Analysed {			      <
                        len: 0,				      <
                        jump_map: JumpMap(		      <
                            BitVec { <
                                addr: 0x0000000117f5c818,     <
                                head: 000,		      <
                                bits: 1,		      <
                                capacity: 8,		      <
                            } [				      <
                                0,			      <
                            ],				      <
                        ),				      <
                    },					      <
                },					      <
            ),						      <
        },							        },
        storage: {},						        storage: {},
        storage_cleared: false,					        storage_cleared: false,
        is_destroyed: false,					        is_destroyed: false,
        is_touched: true,					        is_touched: true,
        is_not_existing: false,					        is_not_existing: false,
    },								    },
    0x7cfa3d23636173a3befaabc8ca86846a07c4b3dd: Account {	    0x7cfa3d23636173a3befaabc8ca86846a07c4b3dd: Account {
        info: AccountInfo {					        info: AccountInfo {
            balance: 0x00000000000000000000000000000000000000 |	            balance: 0x00000000000000000000000000000000000000
            nonce: 13,						            nonce: 13,
            code_hash: 0xc5d2460186f7233c927e7db2dcc703c0e500	            code_hash: 0xc5d2460186f7233c927e7db2dcc703c0e500
            code: Some(					      |	            code: None,
                Bytecode {				      <
                    bytecode: b"\0",			      <
                    hash: 0xc5d2460186f7233c927e7db2dcc703c0e <
                    state: Analysed {			      <
                        len: 0,				      <
                        jump_map: JumpMap(		      <
                            BitVec { <
                                addr: 0x0000000118273678,     <
                                head: 000,		      <
                                bits: 1,		      <
                                capacity: 8,		      <
                            } [				      <
                                0,			      <
                            ],				      <
                        ),				      <
                    },					      <
                },					      <
            ),						      <
        },							        },
        storage: {},						        storage: {},
        storage_cleared: false,					        storage_cleared: false,
        is_destroyed: false,					        is_destroyed: false,
        is_touched: true,					        is_touched: true,
        is_not_existing: false,					        is_not_existing: false,
    },								    },
    0xbcd159845b81e35a0b5aff57feccd0b3114791ab: Account {	    0xbcd159845b81e35a0b5aff57feccd0b3114791ab: Account {
        info: AccountInfo {					        info: AccountInfo {
            balance: 0x00000000000000000000000000000000000000 |	            balance: 0x00000000000000000000000000000000000000
            nonce: 0,						            nonce: 0,
            code_hash: 0x7806ae61c39a23d3b9cf45e46c210492e814	            code_hash: 0x7806ae61c39a23d3b9cf45e46c210492e814
            code: Some(						            code: Some(
                Bytecode {					                Bytecode {
                    bytecode<EMAIL_ADDRESS>                   bytecode<EMAIL_ADDRESS>                    hash: 0x7806ae61c39a23d3b9cf45e46c210492e	                    hash: 0x7806ae61c39a23d3b9cf45e46c210492e
                    state: Analysed {				                    state: Analysed {
                        len: 316,				                        len: 316,
                        jump_map: JumpMap(			                        jump_map: JumpMap(
                            BitVec {	                            BitVec {
                                addr: 0x000000011abb28e0,     |	                                addr: 0x000000010cec4090,
                                head: 000,			                                head: 000,
                                bits: 349,		      |	                                bits: 352,
                                capacity: 352,			                                capacity: 352,
                            } [					                            } [
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                1,				                                1,
                                0,				                                0,
                                1,				                                1,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                1,				                                1,
                                0,				                                0,
                                0,				                                0,
                                1,				                                1,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                1,				                                1,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                1,				                                1,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                1,				                                1,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
                                0,				                                0,
							      >	                                0,
							      >	                                0,
							      >	                                0,
                            ],					                            ],
                        ),					                        ),
                    },						                    },
                },						                },
            ),							            ),
        },							        },
        storage: {						        storage: {
            0x00000000000000000000000000000000000000000000000	            0x00000000000000000000000000000000000000000000000
                original_value: 0x0000000000000000000000007cf |	                original_value: 0x000000000000000000000000000
                present_value: 0x0000000000000000000000007cfa |	                present_value: 0x0000000000000000000000000000
            },							            },
        },							        },
        storage_cleared: false,					        storage_cleared: false,
        is_destroyed: true,				      |	        is_destroyed: false,
        is_touched: true,					        is_touched: true,
        is_not_existing: false,					        is_not_existing: false,
    },								    },
}							      \	}

Platform(s)
Mac (Apple Silicon)
What version/commit are you on?
bc5e15090378c482e378d91cfbb466ad83f67505
Code of Conduct

[X] I agree to follow the Code of Conduct

Might be fixed with https://github.com/paradigmxyz/reth/pull/2602

This happens due to unwind of selfdestruct, we'll take care of it in a bit.

I am sorry, but what does 0x241668a95fc3bfc2d104a92851f2d2005b0ffcd66f0638ddda51854464685174 mean in a --debug.tip ?

@sigridjineth block 99836 hash from the canonical chain: https://etherscan.io/block/99836

@rkrasiuk @shekhirin can we close this now?

@gakonst just tested on latest main, works now.


Videos unavailable due to copyright returned from --flat-playlist

version: 2020.09.20
flat-playlist command:
youtube-dl --flat-playlist -j https://www.youtube.com/channel/UCW1me3Ahh9M1KFImtZAfbNA
returns the following row
{"url": "MQ1mBSgLXfw", "_type": "url", "ie_key": "Youtube", "id": "MQ1mBSgLXfw", "title": "Call of duty black ops 3 killing zombies and the first mission"}
trying to download the actual video from the id using:
youtube-dl https://www.youtube.com/watch?v=MQ1mBSgLXfw     [youtube] MQ1mBSgLXfw: Downloading webpage     [youtube] MQ1mBSgLXfw: Downloading embed webpage     [youtube] MQ1mBSgLXfw: Refetching age-gated info webpage     ERROR: This video contains content from Activision Publishing, Inc., who has blocked it on copyright grounds.
Is this an error with the Youtube API or can it be fixed in youtube-dl?

your 1st link - https://www.youtube.com/channel/UCW1me3Ahh9M1KFImtZAfbNA
says something about super mario maker 2
the 2nd one - https://www.youtube.com/watch?v=MQ1mBSgLXfw
is more then likely been removed for copyright violations

Yeah, the issue is that flat-playlist is returning these videos at all if
they can't be downloaded. Is there a setting to disable this or is it a
bug?
On Sat, Oct 10, 2020, 10:07 PM october262<EMAIL_ADDRESS>wrote:

your 1st link - https://www.youtube.com/channel/UCW1me3Ahh9M1KFImtZAfbNA
says something about super mario maker 2
the 2nd one - https://www.youtube.com/watch?v=MQ1mBSgLXfw
is more then likely been removed for copyright violations
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ytdl-org/youtube-dl/issues/26862#issuecomment-706638265,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHBOQQEJA7JEGY7XASNP7CTSKEHNVANCNFSM4SLLP7WA
.

This is the intended behaviour. --flat-playlist -j simply returns all the video data that can be extracted from the playlist. It doesn't matter if the video is blocked/deleted.
Afaik, there is no way to disable this behaviour. Can you elaborate on WHY you want it to behave differently? Then maybe we can help


[CHORE] update unit tests - fix test matches

CHORE
Objective:

fixed empty test data in unit tests
please see the cash reconciliation updates (had an error in this file)

Merging as this was already approved (fixed conflicts and repushed)


According to the paper, these two summands should be exchanged, should they not?

https://github.com/karpathy/deep-vector-quantization/blob/bcc1c38bec754caf0398c4cd054f34a963d348b4/model.py#L58
I believe, the commitment loss term features the stop-gradient op for the quantized latents
diff = (z_q- z_e.detach()).pow(2).mean() + commitment_cost * (z_q.detach()  - z_e).pow(2).mean()

thank you good catch! fixed with https://github.com/karpathy/deep-vector-quantization/commit/b39653a8bb1d36bcd81348ee5b3c9476cd7ca546
re-ran and it converges to about the same result, closing.


Fire and forget Target.closeTarget

In some scenarios GetAwaiter().Result might produce some deadlocks, there are many post about this.
I was never a fan of GetAwaiters because there was something in my mind saying "hey this might break", but we were forced to use GetAwaiter because we don't have a DisposableAsync.
So we fell into some deadlocks in console apps.
When we lock the execution here:
https://github.com/kblok/puppeteer-sharp/blob/master/lib/PuppeteerSharp/Page.cs#L783
There we are preventing the ReceiveAsync method from getting the result the same CloseAsync, through target.closeTarget is waiting for.
https://github.com/kblok/puppeteer-sharp/blob/master/lib/PuppeteerSharp/Connection.cs#L134
I'm fixing this by calling that close as a trigger and forget. I don't think that all SendAsync that are not expecting a value should be a trigger and forget call, because is good to know if the command was successfully executed. But a close is a close, we want to get out of there as soon as possible.
closes #122

@Meir017

couldn't we just change the method CloseAsync to not wait for the response instead of changing the Connection class?

The only thing we'd win would be reducing the scope and avoid adding a parameter only for one call right?
Or do you see another risk on this code @Meir017?

It seems a bit weird for an async method to return a task that does nothing, I think it's a bit misleading

@Meir017 CloseAsync is still returning a Task so you can await it if you want, for instance, if you don't use a using.


Respect the manageyum parameter

TRAINTECH-342 #resolved #time 30m

This will be refactored when we further clean up the module, but this will work for the time being. It doesn't make sense to do it "partially" the right way right now.


Fix a typo in zh-CN documentation.

'Install' should be '安装'.

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @nikomatsakis (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

Thanks!


Typing "Con" in preload freezes the editor

Godot version:
3.1 beta 8
OS/device including version:
Windows 10 x64
Issue description:
When you type "Con" in preload, the editor will freeze.
https://gfycat.com/CloudyScrawnyArmyant
A warning also appears in the console:

WARNING: _open: Case mismatch opening requested file 'Con.remap', stored as 'Con' in the filesystem. This file will not open when exported to other case-sensitive platforms.
At: drivers/windows/file_access_windows.cpp:104

Steps to reproduce:

Write preload("
Write Con
Kill Godot :(

Nevermind, seems like duplicate of #20110 :/


Fix missing main.css issue

Pelican comes with a default main.css file that is not correctly loaded on the gh-pages branch.

Done.


esp 8265  M2 wifi connection issues

Hi,
I am getting in troubles trying to use an esp M2 mounted on a led controller module . I have no issue when using the tasmota firmware based on arduino and platformio but I can't connect to any access point with esp-open-rtos
I use the http_get example to test it.
Everything works well on a ESP12E module I use as reference.
On the ESP M2

if I do not change anything on the makefile:
infinity loop of

epc1=0x4000228b, epc2=0x00000000, epc3=0x00000000, excvaddr=0x000000b5, depc=0x00000000
Fatal exception (28):

if I set FLASH_MODE ?= dout on the makefile,
the firmware run without any error but never connect to my AP (infinity loop of dns lookup fails)

p_task_hdl : 3ffef808, prio:14, stack:512
pm_task_hdl : 3ffef270, prio:1, stack:176
frc2_timer_task_hdl:0x3fff3818, prio:12, stack:200

ESP-Open-SDK ver: 0.0.1 compiled @ Jul 19 2018 13:26:29
phy ver: 273, pp ver: 8.3

SDK version:0.9.9
mode : sta(dc:4f:22:81:4f:a7)
add if0
HTTP get task starting...
Running DNS lookup for ipv6.google.com...
DNS lookup failed err=202 res=0
Running DNS lookup for ipv6.google.com...
DNS lookup failed err=202 res=0

Do you have any idea of what could be wrong?
Regards

Hi,
It seems to me that

you have to use dout flash mode to program (it depends on the boards (https://github.com/espressif/esptool/wiki/SPI-Flash-Modes)
Can be that the problem is ipv6.google.com and not your board. In the http_get example try to change the web server from ipv6.google.com to www.google.com.

Regards,
Paolo

Thank you for your help, but actually, the wifi station doesn't connect to the access point so it is not an ipv6 issue and the dhcp server does not display any traces

Another test you can do is using the wificfg example. It allows you to create a new wifi network (default mode) or to connect to a existing one.
See in the code for user / password.

Yes, but the same code works on another target (esp12e) so it should be a low level issue or something related to the hardware

Hi all,
Does anyone have any idea of what could be wrong,
As previously, a given code is working well on esp-12. The only change made on it is the DOUT flash mode to flash the esp-m2.
It correctly boots but:

it still does not want to connect to any wifi essid (no scandone log)
any sysparam_* function fails

Regards


Traduzir "io.js Week of May 29th"

https://medium.com/node-js-javascript/io-js-week-of-may-29th-89bdeace6056

Draft: https://medium.com/@iojs_pt/6948b99a9c6

:+1:

:+1:

Publicado.


when function will not receive options

If a prompt has a when-option, the callback is called, but the first param is always an empty object (instead of the already given answers).
Here's an example code that brings up the second question if the first one is answered with a on prompt. But if it's given as option (yo some-generator --q1 a), the second question will not come up, because the first param of the when function is just an empty object:
var yeoman = require('yeoman-generator');
var optionOrPrompt = require('yeoman-option-or-prompt');

module.exports = yeoman.Base.extend( {
     _optionOrPrompt: optionOrPrompt,

     prompting: function () {
         var done = this.async();
         this._optionOrPrompt(
             [
                 {
                       type:    'input',
                       name:    'q1',
                       message: 'Question 1',
                 },
                 {
                     type:    'input',
                     name:    'q2',
                     message: 'Question 2',
                     when:    function( alreadyGivenAnswers ) {
                         console.log(alreadyGivenAnswers);
                         return alreadyGivenAnswers.q1 === 'a';
                     }
                 },
             ],
             function ( answers ) {
                 this.log( answers );
                 done();
            }.bind( this )
         );
     }
} );

I already digged into the code, but am afraid, that it's not possible to solve this. I hope someone can prove me wrong.

I rethought it and think the provided PR fixes the issue.

Closing this as a duplicate of #5.  I'll look through the PRs today.


Flickering at startup

When I boot my pc ly just randomly flickers for a few miliseconds. Is this intended ?

How does it flicker? Can you tell us a bit more details?

The ly login box for a split second moves a bit to the upper left corner while the lines around it change to question marks (like if there is some problem with font?).
OS: Arch Linux
Downloaded ly trough the AUR

Hmm. I've had a similar problem when I was on Arch. Definitely something to investigate a bit.

I am running arch and I do have the same problem. The login box always appears at the top left corner and i usually hit the right arrow key to drag it down.


withFileOffset and withFile options not present in UploadPartRequest of multipart upload in c++ sdk.

AWS SDK for C++
What platform/OS are you using?
Ubuntu 14.04
In multi part upload request there is no options of  withFileOffset and withFile options in UploadPartRequest of multipart upload in C++ sdk of AWS S3 and it's present in JAVA sdk,
So how to split parts using C++ sdk without using the withFileOffset and withFile options ?

I'd suggest you to use transfer manager to manage file upload/download for you.

Aws::String str(data.data(), size);
auto&& input_data = Aws::MakeSharedAws::StringStream("UploadPartStream", str);
通过自行读取文件内容的方式可以完成分片上传,保存在buffer里转换成string就行


Mailer doesn't send email

Yii::$app->mail->compose()
<EMAIL_ADDRESS><EMAIL_ADDRESS>    ->setSubject('subject')
    ->setTextBody('text')
    ->send();

always return true and write in config that all ok, but doesn't send email. if i use
@mail<EMAIL_ADDRESS>"subject", "text");

mail send. What's the problem?

I have the same code but mi yii2 dont send emails, but if I prove the swiftmailer out my proyect in one file with php with include folder switfmailer this send email correctly. what i do to correct this ?
my yii2 is the basic.


feat: cache SSM calls (v0.35.x)

Fixes #N/A
Caches SSM parameter results for 24 hours to reduce duplicate API call volume. SSM parameter results are expected to be relatively static since we only query EKS managed SSM parameters.
Description
/karpenter snapshot
How was this change tested?
Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[x] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>6
Details

31 of 33 (93.94%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.06%) to 77.591%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/operator/operator.go
0
2
0.0%

Totals

Change from base Build<PHONE_NUMBER>3:
0.06%

Covered Lines:
5637

Relevant Lines:
7265

💛  - Coveralls


Outputs in switch does not have default value

when using output in switch, default value are filled with go's default value instead of benthos's default value as noted in doc.
{"@timestamp":"2020-09-29T13:11:59+07:00","@service":"benthos","level":"ERROR","component":"benthos","message":"Service closing due to: failed to create output 'switch': failed to create case '0' output type 'kafka': failed to create output 'kafka': failed to construct batch policy: failed to create condition: condition type was not recognised"}

Hey @rucciva, can you provide me with an example config that triggers this?

sure
---
input:
  type: kafka_balanced
  kafka_balanced:
    addresses: [ ${KAFKA_BROKERS:"kafka:9092"} ]
    topics: [ ${KAFKA_INPUT_TOPICS:logs} ]
    consumer_group: ${KAFKA_CONSUMER_GROUP:my_app}
    client_id: ${KAFKA_CONSUMER_CLIENT_ID:my_app_kafka_input}
    batching:
      count: ${KAFKA_MAX_BATCH_COUNT:50}

pipeline:
  threads: ${PIPELINE_THREADS:4}
  processors:
    - type: my_custom_processor
       my_custom_processor:

output:
  type: switch
  switch:
    cases:
      - check: meta("output") == "kafka"
        output:
          type: kafka
          kafka:
            addresses: [ ${KAFKA_BROKERS:"kafka:9092"} ]
            client_id: ${KAFKA_PUBLISHER_CLIENT_ID:my_app_kafka_output}
            topic: ${! meta("output_kafka_topic")  }
            batching:
              byte_size: ${BATCH_SIZE:20971520}
              period: ${BATCH_PERIOD:5s}

      - check: meta("output") == "elasticsearch"
        output:
          type: elasticsearch
          elasticsearch:
            urls: [ ${ELASTICSEARCH_BASE_URLS:"http://elasticsearch:9200"} ]
            index: ${! meta("output_elasticsearch_index") }
            id: ${! meta("output_elasticsearch_id") }
            batching:
              byte_size: ${BATCH_SIZE:20971520}
              period: ${BATCH_PERIOD:5s}
    ```

also another context. this happens in go test. i'm trying to write integration test of my custom processor. i invoke it somewhat like this
os.Args = os.Args[:1]
service.RunWithOpts(service.OptOverrideConfigDefaults(myDefaultConfigOverride))`

I can't seem to reproduce this with v3.29.0, are you using any custom lib to parse the YAML config or are you letting service do all of that?
Another possibility is that there's a mismatch in lib versions if you're building with plugins. Can you paste me the output of these two commands:
cat ./go.sum | grep benthos/v3

And
cat ./go.sum | grep yaml.v3

And I'll compare with what I've got.

ah, i'm using yaml.v2, let me check first

Yeah that'll be it, is there something preventing you from using yaml.v3? For enforcing defaults I'm only currently implementing the v3 APIs as they're easier to work with.

nope, i can safely use yaml.v3. I guess this is just me not knowing that benthos v3 use yaml v3. thanks for the fast response. cheers

No problem, I assumed plugin users were always parsing configs through service so I didn't make any announcements when I upgraded to yaml.v3, I think in hindsight I should have made it clearer and added comments in the plugin repo explaining the changes. Sorry for the confusion, I've marked this issue as annoying but will close it in favour of https://github.com/benthosdev/benthos-plugin-example/issues/5.


"MOT 2020 Labels" and "MOT 2020 Images"

Discussed in https://github.com/bdd100k/bdd100k/discussions/204

Hi,
I am not able to download the MOT 2020 Images from the given links of .zip files. I have tried using chrome as well as firefox browsers but I am getting the same issue. The download stops after downloading some 400-500 MBs. I have even tried downloading it using terminal (wget command) but facing the same problem.
Can anyone suggest some solution to this?
Thanks

I just tried the download on my side and it is working. Can you double-check that you have enough disk space and your internet connection is stable?

I tried it again. I have tried it on different machines as well. But don't know why after downloading some MBs it stops. Also when wget automatically try to resume the download it says the file is already present.
We have lan connection so there is no connection problem or disk space problem(as I am trying to download files one by one and each zip file size is just around 5 gb.)
Is there anyway I can resume the download from where it stopped as this way it will be easier to download the data.
Thanks

It is working for us, so it seems like the issue is related to your connection to the download server. Unfortunately, we cannot change the hosting location of the data, so maybe try again in a bit and see if it works.

yes, same problem. Did you solve it?
My lab is 1000M Broadband but when I download these datasets,  it is just 15kb/s. I don't know why.


fix(sidenav): update sidenav state on backdrop click (#1616)

Pull Request Test Coverage Report for Build 1753

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 53.53%

Totals

Change from base Build 1752:
0.0%

Covered Lines:
9522

Relevant Lines:
15785

💛  - Coveralls


Added prefixes to config.yml

Fixes #6092

Done: https://github.com/mapping-commons/sssom-py/issues/357


[Bug]: Query Engine expects an Open AI API Key even when using local embeddings and having set llm as None

Bug Description
I am trying to create a query_engine as follows :
index = VectorStoreIndex.from_documents(documents=documents)
query_engine = index.as_query_engine(llm=None, embed_model="local")

And I have used a custom HuggingFaceEmbedding model.
from llama_index.embeddings.huggingface import HuggingFaceEmbedding

embed_model = HuggingFaceEmbedding(
model_name="BAAI/bge-small-en-v1.5"
)

But I get an ValueError error when running, saying that I have to specify an Open AI API Key eventhough I am using a local llm and a local embedding model.
query_engine = index.as_query_engine(llm=None, embed_model="local")

As mentioned in previous issues https://github.com/run-llama/llama_index/issues/852, a ServiceContext cannot be specified as it it has been deprecated in the current version of llama_index.
Version
llama-index==0.10.20
Steps to Reproduce
Define a local HuggingFaceEmbedding class and specify the index and query engine as follows :
from llama_index.embeddings.huggingface import HuggingFaceEmbedding

embed_model = HuggingFaceEmbedding(
model_name="BAAI/bge-small-en-v1.5"
)

index = VectorStoreIndex.from_documents(documents=documents)
query_engine = index.as_query_engine(llm=None, embed_model="local")

An error arises from the line
query_engine = index.as_query_engine(llm=None, embed_model="local")

Relevant Logs/Tracbacks
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
File ~/my_data/01_python/llm-evaluation/llm-eval-env/lib/python3.10/site-packages/llama_index/core/embeddings/utils.py:59, in resolve_embed_model(embed_model, callback_manager)
     58     embed_model = OpenAIEmbedding()
---> 59     validate_openai_api_key(embed_model.api_key)
     60 except ImportError:

File ~/my_data/01_python/llm-evaluation/llm-eval-env/lib/python3.10/site-packages/llama_index/embeddings/openai/utils.py:104, in validate_openai_api_key(api_key)
    103 if not openai_api_key:
--> 104     raise ValueError(MISSING_API_KEY_ERROR_MESSAGE)

ValueError: No API key found for OpenAI.
Please set either the OPENAI_API_KEY environment variable or openai.api_key prior to initialization.
API keys can be found or created at https://platform.openai.com/account/api-keys

During handling of the above exception, another exception occurred:

ValueError                                Traceback (most recent call last)
Cell In[2], line 1
----> 1 query_engine, rag_dataset = create_query_engine_rag_dataset(
      2     "./data/paul_graham"
      3 )

Cell In[1], line 24
...
API keys can be found or created at https://platform.openai.com/account/api-keys

Consider using embed_model='local'.
Visit our documentation for more embedding options: https://docs.llamaindex.ai/en/stable/module_guides/models/embeddings.html#modules
******

@sherwin684 you aren't passing in the embed model to the initial index creation
I would just do this
from llama_index.core.llms import MockLLM

index = VectorStoreIndex.from_documents(documents=documents, embed_model=embed_model)
query_engine = index.as_query_engine(llm=MockLLM())

Yes it worked thanks. It would be great if it is documented as mentioend above. I never found about MockLLM in the documentation regarding using local embedding models.

@logan-markewich if I'm using Azure and not OpenAI directly, do I pass AzureOpenAI as llm?

@namedgraph yup 👍 (assuming AzureOpenAI was imported from llama-index of course)

llm=MockLLM()

This worked for me too. Thanks


Replace nip with bnip

This looks fine. Will you run your bot for 30 mins or so with this PR and let me know if it has any issues?


Integration tests - the battle continues

Mostly aggregation testing this time.  Have several FIXME that have to be addressed.

Fixed error message regressions
Moved helper/convenience code to it's own file
Aggregation Tests
User Tests

+1


(native) initial todo item incorrectly rendered

When you first display the native demo, the second todo item is not checked, so it is supposed to be incomplete. However, when you mark the first one as complete, the second one is marked completed as well when the component is refreshed.
Likewise, if we start by marking the second item completed, it seems it does not have any effect the first time we click.
The culprit seems to be the line this._checked = false; in TodoItem constructor.
Shouldn't it be this._checked = this.checked; ?

Hello,
thanks for sharing this. You were right. It is fixed now.


[FEAT]: Profile Page ReDesigned

Closes #441
Redesigned the profile page with some features, and needs to be add some pages for our website. as of now, profile page is designed as per requirements in the issue.

https://www.loom.com/share/85d7d754d6de4f70979748e2e5106001?sid=0d838129-53d9-4a1f-87b9-21251525efad

Merge Conflicts @senthil-k8s
Is it designed according to the dark mode also?

Ok, I will check it out.

@sourabhsikarwar  conflict solved for both the issue #473 and issue #472

@sourabhsikarwar conflict resolved and everything working perfectly. need to review for deployment.

Failed in Deployment
src/components/Banner/MovieBanner.jsx
13:17:01.012 | Line 226:18:  'Splide' is not defined       react/jsx-no-undef
13:17:01.012 | Line 228:22:  'SplideSlide' is not defined  react/jsx-no-undef
13:17:01.012 | Line 229:24:  'Youtube' is not defined      react/jsx-no-undef
the keywords to learn more about each error.

@sourabhsikarwar now review the code to deploy.


fix new mapit 3 and 4 not being added to the Mapit loadbalancer/target group

this fixes https://github.com/alphagov/govuk-aws/commit/404c03c45265f6b07ff29257bc25ccabdb37f16e where new mapit instances 3 and 4 were added to the infrastructure but no logic was included to add them to the Mapit load balancer/target group

I guess you gotta re-run the generate-docs script 🙄

I guess you gotta re-run the generate-docs script 🙄

Will do thanks.


bootstrap-4-beta.2  tabpanel not working - wrong #active removed

In bootstrap-4-beta all working - .active removed https://jsfiddle.net/q2tf3naw/
In bootstrap-4-beta.2 not working - .active not removed https://jsfiddle.net/q2tf3naw/3/

It's because your .tab-content is a <ul> instead of a <div> see my CodePen which work using this small change : https://codepen.io/Johann-S/pen/PEZmdQ

Thanks. Everything is working.


Aerial not working with MacBook 2017 using High Sierra

I have a MacBook (Retina, 12-inch, 2017) running MacOS 10.3.1 and Aerial 1.2 just downloaded from you page in GitHub.
Aerial starts normally and in seconds fills the screen with horizontal lines.
Please see video attached.
Thanks
IMG_1401 480.zip

@MikaelMahid It's a known issue with High Sierra and certain models of Macs. Seems to be a problem with the Intel drivers. As a workaround for the moment, if you tick the "Show with clock" option the corruption should go away.
Closing as duplicate of #377

Thank you very much for your answer with the workaround, it worked.
I apologize for duplicating the issue.
Congratulations for your software, best screensaver ever, very elegant, excellent implementation
On Oct 22, 2017 at 6:29 PM, <Alistair<EMAIL_ADDRESS>wrote:
@MikaelMahidhttps://github.com/mikaelmahid It's a known issue with High Sierra and certain models of Macs. Seems to be a problem with the Intel drivers. As a workaround for the moment, if you tick the "Show with clock" option the corruption should go away.
Closing as duplicate of #377https://github.com/JohnCoates/Aerial/issues/377
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/JohnCoates/Aerial/issues/405#issuecomment-338517728, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AfeMmZhVlk3suMsoVRzEB_xrgiw5y6ewks5su8_DgaJpZM4QB7mt.


sensu-go-backend: 6.7.5 -> 6.8.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/sensu/sensu-go/releases.
meta.description for sensu-go-backend is: "Open source monitoring tool for ephemeral infrastructure & distributed applications"
meta.homepage for sensu-go-backend is: "https://sensu.io"
meta.changelog for sensu-go-backend is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 6.8.0 with grep in /nix/store/yc97wxdpf82nva5z2qj2s9xyqk11nxm5-sensu-go-backend-6.8.0
found 6.8.0 in filename of file in /nix/store/yc97wxdpf82nva5z2qj2s9xyqk11nxm5-sensu-go-backend-6.8.0

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath
sensu-go-agent
sensu-go-backend
sensu-go-cli

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/yc97wxdpf82nva5z2qj2s9xyqk11nxm5-sensu-go-backend-6.8.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A sensu-go-backend https://github.com/r-ryantm/nixpkgs/archive/1b3013e460aba90a38c6f639cef7a30a0e0847fe.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/yc97wxdpf82nva5z2qj2s9xyqk11nxm5-sensu-go-backend-6.8.0
ls -la /nix/store/yc97wxdpf82nva5z2qj2s9xyqk11nxm5-sensu-go-backend-6.8.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

3 packages built:

sensu-go-agent
sensu-go-backend
sensu-go-cli

Maintainer pings
cc @thefloweringash for testing.

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

3 packages built:

sensu-go-agent
sensu-go-backend
sensu-go-cli


Request: alternate sorting for Roster page

Roster seems to be sorted by last name, but it's OIs, then first_name, last_name that show, making it difficult to find someone without Ctrl+F.

AG

It is sorted by lastname, then firstname, yes.


don't rerun tests on README updates

currently the tests rerun on all pushes. Even if that push was just to update the README.
very minor change, it just bugged me seeing the tests always rerun on readme changes :)

I would err on the side of keeping the current behaviour. Currently our tests don't include any text linting, but they may do in the future. We also have 100+ repos to maintain, so I like to keep them as similar as possible :)
Happy to be overruled though. Any thoughts @brainglobe/active-devs?

no problem. Happy to close it!

Thanks @PolarBean. I will close this now, but it may be an idea we come back to.


Implementing filter dialog

- writing dialog component
- new context feature to save filter to display

Ticket: #247
Change-Id: I373b22e1cd4709a484f5a91ba96fb98c525b83f1

All done, can be merged.
So this was a good copy paste, split and combine components workout :) But we have done some refactoring here and there and it was a good exercise i think.


Add support for delegating test and run/debug execution

The hooks seem to be there but it is currently unimplemented. We need to be able to delegate test and run execution to Gradle.
It seems from the blog is this is planned. Is there an ETA?

Hi @graemerocher,
Yes, it's in our plan. So far there is no concrete ETA yet.

Hi @graemerocher,
I'm working on the test delegation support with @Arthurm1 recently, and the code is closed to be ready.
Is there any sample project in Micronaut using Gradle in which tests are not working in VS Code previously. I can use it to test if that's working now.

Great news! Sure you can grab any example from Micronaut Launch hat uses testcontainers/docker to run tests:
curl --location --request GET 'https://launch.micronaut.io/create/default/com.example.demo?lang=JAVA&build=GRADLE_KOTLIN&test=JUNIT&javaVersion=JDK_21&features=mysql&features=data-jdbc' --output demo.zip

running tests that require testcontainres/docker requires delegating to the build tool

Works now, thanks for sharing the sample project. I'll keep you updated.

Update: client side PRs are under reviewing:
https://github.com/microsoft/vscode-java-test/pull/1705
https://github.com/microsoft/vscode-gradle/pull/1510

does this also support delegating the static void main method in src/main/java to Gradle's run?

does this also support delegating the static void main method in src/main/java to Gradle's run?

I need to split out and re-submit the original buildTarget/run support.  I'll try to sort this week.
I'm not sure what plans there are on the BSP client side @jdneo?

I'm not sure what plans there are on the BSP client side @jdneo?

I'll make a pre-release for the test delegation late this week. Next I'll do the test debug support (In this month)
Delegate run will be the next.

PR for debug test support: https://github.com/microsoft/vscode-gradle/pull/1536

The Gradle Test Delegation (both run and debug) has supported now.
To use this feature, you need to install the latest Test Runner for Java and Gradle for Java extension.
To delegate the tests to Gradle, you can set the default testing profile in Testing explorer:

If you do not want to change the default testing profile, you can trigger an one-time execution via:

nice!

is there a way to default to this setting for all Gradle projects under Gradle settings? Or does it need to be done every time you open a project

Seems that output from Gradle is not collected into the Test Results log window, is that a bug?

is there a way to default to this setting for all Gradle projects under Gradle settings? Or does it need to be done every time you open a project

VS Code will remember the choice for the project.

Seems that output from Gradle is not collected into the Test Results log window, is that a bug?

Yes, it's not implemented yet.

is there an issue to track that?

FYI - #147 needs to be merged to send stdout/err back.  See spec

@graemerocher we have already published a blog for delegating test to Gradle. If possible, we would greatly appreciate if you could also help us to promote that as well: https://x.com/NickZhu9/status/1818951420454072769 . Thanks!


Improve  dotfiles/git/git-templates/hooks/prepare-commit-msg

When using git commit --amend the script will append text at the beginning. Try to remove this, it's a bit annoying to remove the text.

Hook removed


[feature] Sanitize XSS content

Sanitize XSS content with DomPurify

looks like missing to add 'dompurify' on package.json ?


Missing custom unmarshaller for slices of time.Time in structs

In models.ts:generateJSONUnmarshallerBody() there is no handling of custom unmarshallers for slices of time.Time.

Fixed in 4.0.0-preview.23


i like it and have a little add to use with twitch

i found this and like it at the first view.
i made some lil changes in the design and addet a few lines to let the egg connect with twitch chat so i can use it as overlay in OBS or similar programs...
adding in the head of the "index.html"
<script src="https://github.com/tmijs/tmi.js/releases/download/v1.8.5/tmi.min.js"></script>
then i`ve addet in the "index.js"
/*************** Twitch Connection *********************/

const client = new tmi.Client({
	options: { debug: true },
                identity: {
                    username: 'YOUR-BOTNAME',
                    password: 'OAUTH:AAASSSDDDFFFXXX'
                },
	channels: [ 'YOUR-CHANNEL' ]
});

client.connect();

client.on('message', (channel, tags, message, self) => {
  // What we want to happen when a comment occurs
  console.log(`${tags['display-name']}: ${message}`);
  if (message === '!food') {
						// select the element by finding the id of food button
document.querySelector(".food1").click();
      // say out loud.
		client.say(channel, `Thanks ${tags['display-name']} for feeding the Bot!!!`);
   }
   if (message === '!pet') {
						// select the element by finding the id of pet
document.querySelector(".pet").click();
      // say out loud.
		client.say(channel, `Thank you ${tags['display-name']} for Bot petting!!!`);
   }
});

/************** Twitch Connection END *********************/

maybe someone like ^^

Very nice idea, thank you for sharing it with us! I'm glad that you liked the virtual pet!


Run dialogue at the end of a song.

I already know how dialogue runs at the start of a song. But how can I run a dialogue at the end of a song? So far, I have not enough clues to find out how. Can you tell me how it's done?

It's Lua.


Fix rendering for table in pyguide

There are missing spaces for the syntax of the table (matters in Github Markdown) that causes rendering error.

Thanks.  I see the cause of this on our end internally (copybara stripping a comment as it stripped some stuff out for the external version of the guide was leaving extra space).  I'm fixing that internally so that future updates won't repeat this problem.  In the interim, merging this PR.


pyrcc5 -o libs/resources.py resources.qrc

im using ubuntu 16.04
I still see the  :
pyrcc5 -o libs/resources.py resources.qrc
any suggestion?

It is no problem. Run "python3 labelImg.py" it should work


How to/Can I change the URL of a project

Hello,
Exploring this theme further, I thought to change the URL of the project pages I created under _projects. Reason is that I would like to sort my projects (using the (x) indication as in the example files), while not having the number in the actual url (e.g. remove the number from www.site.com/projects/4-example-project).
I tried adding a permalink Front Matter, but that doesn't seem to work (or I'm doing something wrong). Could support for changing the URLS be added? Or if it's possible, how should I do it?

Actually, I see this code in _config.yml:
### Collections ###
collections:
  projects:
    output: true
    permalink: /projects/:name

How come name is not picked up in the URL - does it not refer to the same field in the Front Matter?

How come name is not picked up in the URL - does it not refer to the same field in the Front Matter?

The :name placeholder refers to the file name as it's mentioned [here].(https://jekyllrb.com/docs/permalinks/#:~:text=of the document.-,%3Aname,-The document's base)
This leaves you with either one of these two options:

Name the file as you want your project URL to look like (e.g. example-project.md).
Use permalinks (I know you mentioned it doesn't work as exptected, but you might being something wrong, so please provide an example)


Access old values in beforeUpdate ?

Given a model
export default class User extends Model {
    static tableName = 'users';
    async $beforeValidate() {
        console.log('beforeValidate', this, arguments);
    }
    async $afterValidate() {
        console.log('afterValidate', this, arguments);
    }
    async $beforeUpdate() {
        console.log('beforeUpdate', this, arguments);
    }
    async $afterUpdate() {
        console.log('afterUpdate', this, arguments);
    }
}

// then
const user = await User.query().insert({ a: 1 });
await user.$query().patch({ a: 2 });

Seems like I never have the old value { a: 1 } in thisor json. Is it possible?

queries started using $query() method are a bit confusing. You would expect that calling:
user.$query().patch({a: 2})

would call $beforeUpdate with this being the callee object before the update, but actually this is the patch object itself. This is because you often want to do stuff like this in the $beforeUpdate:
$beforeUpdate() {
  this.updatedAt = new Date()
}

Now if this was the old object, and not the patch object, updatedAt would not get updated in the db. This makes more sense with the static query() method where there is no "old state".
What is the use-case here? Why do you need the old values in the $beforeUpdate?

I guess this is related to https://github.com/Vincit/objection.js/issues/81
I understand the implementation here but my usecase is close to that simplified one :
const user = ...;
// set a status
user.$query().patch({ status: 'DELETED' });

// if status is different from the previous one, set deletedAt on the patch
$beforeUpdate(previous) {
  if (this.status === 'DELETED' && previous.status !== this.status) {
    this.deletedAt = new Date()
  }
}

With such a hook handling those dates on the whole lifecycle would be easy : NO STATUS => VALIDATED (validatedAt) => DELETED (deletedAt)
But maybe that's because we're used to ActiveRecord impls...

Just to chime in with another potential use case - the afterUpdate would be handy for application-level auditing (eg. logging the before and after states, and which user performed it). There are other ways to achieve though.


Allow subclassing of StyledTextAreaModel to fix cloning issues

When I attempted to modify StyledTextAreaBehavior to account for the generics using this code:
class StyledTextAreaBehavior
    <
        View extends StyledTextAreaBase<?, ?, Model>,
        Model extends StyledTextAreaModel<?, ?>
    >
implements Behavior {
    private final View view;

    private final Model model;

    StyledTextAreaBehavior(View area {
        this.view = area;
        this.model = area.getModel();
    }
}

I got compiler warnings about unchecked calls in various places. Since StyledTextAreaBehavior's EventHandlers can be overridden, I decided to leave it out since it seems pointless to modify it any further.

I'm not sure if you've looked through this PR, @TomasMikula, but could you give some feedback about it? If you see more work to do, I'd like to start working on it.

I'm closing this PR and rebasing it on your recent work in a new one.


Issue when running npm audit

Describe the bug
npm audit fix throws an error
Did you try recovering your dependencies?

7.19.1
Which terms did you search for in User Guide?

npm, audit
Environment

current version of create-react-app: 4.0.3
  running from C:\Users\Username\AppData\Local\npm-cache\_npx\c67e74de0542c87c\node_modules\create-react-app

  System:
    OS: Windows 10 10.0.19042
    CPU: (4) x64 Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz
  Binaries:
    Node: 14.2.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.5 - C:\Program Files (x86)\Yarn\bin\yarn.CMD
    npm: 7.19.1 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Chrome: 91.0.4472.124
    Edge: Spartan (44.19041.1023.0), Chromium (91.0.864.67)
    Internet Explorer: Not Found
  npmPackages:
    react: ^17.0.2 => 17.0.2
    react-dom: ^17.0.2 => 17.0.2
    react-scripts: ^4.0.3 => 4.0.3
  npmGlobalPackages:
    create-react-app: Not Found

Steps to reproduce

(Write your steps here:)

Run npm audit fix
Error shown

Expected behavior

Vulnerabilities should be resolved
Actual behavior

Reproducible demo

{
  "name": "client",
  "homepage": ".",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.11.4",
    "@testing-library/react": "^11.1.0",
    "@testing-library/user-event": "^12.1.10",
    "history": "^4.10.1",
    "mobx": "^6.3.2",
    "mobx-react": "^7.2.0",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "react-router": "^5.2.0",
    "react-router-dom": "^5.2.0",
    "web-vitals": "^1.0.1"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "react-scripts": "^4.0.3"
  }
}

I even moved the react-scripts to devDependencies as suggested in #11174

Sorry, is this vulnerability actually resolved in a published edition of the react-scripts package? I see no change in the present NPM package.


Update README.md

Summary 🎯

Changes 🔁

Added usage instructions
Added FAQ
Please feel free to edit if something is unclear

Thanks!


loadChildren: ()=> './myroute/blah/blah' is not assignable to type Route

Hi there,
I'm getting the above error when I'm configuring my routes.  I'm following the docs exactly as described, but the lamba expression fails the Typescript intellisense (in VS2015) and the build process does not complete.
I'm using ng-router-loader 2.1.0 and angular 4.1.2 (angular/router 4.1.2).
The specific error is this:
Type '{ path: string; loadChildren: () => string; }' is not assignable to type 'Route'.
My code is basically this: { path: 'sales', loadChildren: './sales.module#SalesModule' },
I realise this isn't likely to be ng-router-loader's problem, but that is the specific format the documentation says to use, so I'm starting here :)
Do I need to match a specific version of angular or similar?
Thanks.

+1

+1

+1

Hi
This is not clear to me...
The loadChildren type is:
export type LoadChildren = string | LoadChildrenCallback;

Si there is no violation there...
Is it specific to VS2015? What's the TS version?

@shlomiassaf According to the current Angular documentation, LoadChildrenCallback is a function that returns one of Type<any>| NgModuleFactory<any>| Promise<Type<any>>| Observable<Type<any>>, not a string.
type LoadChildrenCallback = () =>
Type<any>| NgModuleFactory<any>| Promise<Type<any>>| Observable<Type<any>>;

Assigning loadChildren a string works, but assigning it a callback function that returns a string (as per your documentation) does not work.

I'm having the same issue...
Also, passing a valid string isn't working for me either...

I had the same issue, I am on Angular 5.2.1. Try to explicit declare the variable route:
import { RouterModule, Route } from '@angular/router';
then update the variable that you are using for example:
var routes: Route[] = [     {         path: 'main',         loadChildren: './components/main/main.module#MainModule'     },     { path: '', redirectTo: 'main', pathMatch: 'full' },     { path: '**', redirectTo: 'main' } ];

i am facing problem in loadchildren value asign.
i can use angular version = 13.1.0
typescript = 4.5.2


Set-Secret deletes secrets unexpectedly

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.

Steps to reproduce
I am trying to leverage the secrets management module to manage secrets in Azure KeyVault and want to update some metadata when a password is updated. This works fine in the AKV but fails when doing it with the module.
Expected behavior
PS> Set-Secret -Name "SomeSecret" -SecureStringSecret $NewPasswordSecureString -Vault MyVault -Metadata @{Expiration = (Get-Date).AddMonth(1)}

Congrats! Your secret was updated and has all is well! Yay!

Actual behavior
PS> Set-Secret -Name "SomeSecret" -SecureStringSecret $NewPasswordSecureString -Vault MyVault -Metadata @{Expiration = (Get-Date).AddMonth(1)}

Set-Secret: Cannot add secret metadata 'SomeSecret' to vault 'MyVault': The vault does not support the Set-SecretInfo function.

Yet this works fine if I specify the same metadata with Set-AzKeyVaultSecret or do it manually through the portal

Error details
Exception             :
    Type        : System.Management.Automation.PSNotSupportedException
    ErrorRecord :
        Exception             :
            Type    : System.Management.Automation.ParentContainsErrorRecordException
            Message : Cannot add secret metadata '...' to vault '...: The vault does not support the
Set-SecretInfo function.
            HResult : -2146233087
        CategoryInfo          : NotImplemented: (:) [], ParentContainsErrorRecordException
        FullyQualifiedErrorId : NotSupported
    Message     : Cannot add secret metadata '...' to vault '...: The vault does not support the
Set-SecretInfo function.
    HResult     : -2146233067
TargetObject          : Microsoft.PowerShell.SecretManagement.ExtensionVaultModule
CategoryInfo          : NotImplemented: (Microsoft.PowerShel…xtensionVaultModule:ExtensionVaultModule) [Set-Secret],
PSNotSupportedException
FullyQualifiedErrorId : SetSecretMetadataCommandNotSupported,Microsoft.PowerShell.SecretManagement.SetSecretCommand
InvocationInfo        :
    MyCommand        : Set-Secret
    ScriptLineNumber : 1
    OffsetInLine     : 1
    HistoryId        : 48
    Line             : Set-Secret -Name "..." -SecureStringSecret $(New-Password -SecureString) -Vault
...-Metadata @{Expiration = (Get-Date).AddDays(100)} -Debug
    PositionMessage  : At line:1 char:1
                       + Set-Secret -Name "..." -SecureStringSecret $(New-Password -Sec …
                       + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    InvocationName   : Set-Secret
    CommandOrigin    : Internal
ScriptStackTrace      : at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo :

Environment data
Name                           Value
----                           -----
PSVersion                      7.4.4
PSEdition                      Core
GitCommitId                    7.4.4
OS                             Microsoft Windows 10.0.20348
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Version
im not using cresendo
Visuals
No response

Hi, can you please cross-file a bug with https://github.com/Azure/azure-powershell? They maintain https://www.powershellgallery.com/packages/Az.KeyVault/2.0.0 which is the implementing module you're getting an error from.

opened https://github.com/Azure/azure-powershell/issues/25975 as requested, though im not sure the az.keyvault module is to blame here. consider the verbose output from Set-Secret:
VERBOSE: Performing the operation "Write secret to vault and override any existing secret of the same name" on target "asdf".
VERBOSE: Invoking command Set-Secret on module Az.KeyVault.Extension
VERBOSE: Invoking command Set-SecretInfo on module Az.KeyVault.Extension
Set-Secret: Cannot add secret metadata '624881344' to vault 'asdf: The vault does not support the Set-SecretInfo function.
VERBOSE: Invoking command Remove-Secret on module Az.KeyVault.Extension
VERBOSE: Secret 624881344 was successfully removed from vault asdf.

looking through the tests it seems maybe the module isnt intended to support metadata at all?
https://github.com/PowerShell/SecretManagement/blob/de1e4996241f4234e5ff893e12d15e81001db2fd/test/Microsoft.PowerShell.SecretManagement.Tests.ps1#L127
contrary to this comment, Set-SecretInfo also does not set metadata in AKV, although it doesn't delete the secret at least 🤷


Release 2.5.0

Main guidelines:

This release should be dedicated to bug fixing, refactoring and code optimizations to ensure build stability.
We should rewrite/refactor/decouple some of the (ideally all) existing ETJump pieces using C++ and OOP, and increase the test coverage.
We should refrain from adding major features.
We should ensure that any G_Error or CG_Error called at any time of the execution won't crash the client or server without apparent reason.
We should allow ETJump features to be easily removed from the compiled binaries by reconfiguring CMake variables.
We may add UI improvements to ensure quality UX.
We should consider enhancing timerun feature by:

Adding checkpoint support.
Improving timerun (end/checkpoint) printings.
Adding visual indicators for timerun start/end/checkpoint.

We should consider finishing the trickjump lines by:

Adding feature documentation.
Improving existing commands and their outputs - refactoring the code (consider unit test the code).
Adding visual window to control the recording state.
Improving line segments stitching.
Applying any other possible optimizations.

Revert #696 before release

Revert #700  too.


feat: "Width" options for describe.File

ACH Version: v1.18.6
What were you trying to do?
I'm displaying an ACH file with masked account numbers and/or names, but each one is still the original length. This leaks information that might not allowed under certain risk profiles / business requirements.
What did you expect to see?
An option to hide the cleartext length of account numbers / individual names.
What did you see?
https://github.com/moov-io/ach/blob/v1.18.6/cmd/achcli/describe/file.go#L17-L20

Maybe MaskedNameWidth and MaskedAccountNumberWidth?

We've solved this with https://github.com/moov-io/ach/pull/1140 and https://github.com/moov-io/ach/pull/1146


Consider removing some branches

It appears to be the case (please correct me if I'm mistaken) that there are several branches that are still in git, but have been merged into master.
I think it would help keep things organized if some of these branches were to be removed.

I removed merged branches and some old ones.
One of the reason I push my temporary branch is start CI processes (travis-ci and appveyor).
And I forget removing it.
I create an organization https://github.com/mqtt-cpp ago.
If I transfer repository, I guess I can do the following  things

I can do above trial CI  process on redboltz/mqtt_cpp
Pull request is managed on mqtt-cpp/mqtt_cpp. Branches can be kept clean.

But I need to study transfer 's side effect. I don't have much time to do that .

Looks good so far!


CLIMATE-817 - More informative error messages for data_source.load_file()

This change will now show the filename string that gets passed into the function in the error message.

Can one of the admins verify this patch?

Coverage remained the same at 84.16% when pulling fc61608a931da03050925bd629765036559eaf87 on agoodm:CLIMATE-817 into 705403a03ddabaf10d13ae281b118270c35467ce on apache:master.


Add: Set of functions that act as database functions

Create a file db.go that has the following functions:

isExistDB : Checks if the file db.json exists, returns boolean value true or false
createDB : Creates a new file db.json. If the file exists, overwrite the file and create a new one
writeToDB : Takes a Map variable (where the key and the value are both strings), and writes into database if exists. Returns true if write is successful
readFromDB : Takes a string key as parameter, and returns the string associated with it, else returns appropriate response if not found

Write a main function to test the functioning of these methods.

okay I got it, but what if the db.json has some data, do still need to overwrite that file?

If createDB is called, it overwrites the file even if data is present. If writeToDB is called, then it only appends and does not overwrite.
I'll assign the issue to you :D

ahhh, I can't figure out how should I save the data in the json file like?
I mean, if I saved it like {'key':'value'} how will I be printing it out / filtering it out by the key?
func writeToDB(key, value string) bool  {
	data := map[string]string{
		key:value,
	};
	jsonS, jsonString := json.Marshal(data);
	if jsonString != nil {
		return false;
	}
	fmt.Println(string(jsonS));
	f, err := os.OpenFile("db.json", os.O_APPEND|os.O_WRONLY, 0644);
	if err != nil {
		panic(err)
	}
	if _, err = f.WriteString(string(jsonS)); err != nil {
		panic(err)
	}
	f.WriteString("\n");

	return true;
}

Okay, so the db.json file needs to be maintained as a storage for all key value pairs right? Let's say we use writeToDB to write the following key value pair:
writeToDB("key1", "value1")

The status of the file would be:
{
    "key1": "value1"
}

The next time writeToDB is called again, with a different key and value, the new keypair will be appended to the file in json format.
writeToDB("key2", "value2")

Status of db.json:
{
    "key1": "value1",
    "key2": "value2"
}

This can be achieved by reading the file db.json as a regular string, and parsed into a Map variable (this article specifies how to achieve this). The map variable can then be converted to string to write into a file (this article helps with that)
(Note: the formatting in db.json doesn't matter, it could be written as one straight line.)

Hi @ArshErgon, do let me know if you need any more clarification!

Hi @z404 no i will do it, if I failed I ask you about it

@z404 hey, theres no way that the json file can append the data, we can only getting data at runtime, means we can retrieve the data only once, if we run the program again with different key and values as parameters, the previous one will get deleted and the new key will take its place.

Sure, create a PR with whatever you have so far, we'll try and work with that for now


Issue with k8s.io/docs/tasks/run-application/horizontal-pod-autoscale/

I missing a comparison to vertical Pod autoscaler.
I think these questions should be answered:
When to use hpa, when vpa?
Can you use hpa and vpa together?

/language en
/sig autoscaling

/retitle Seeking clarification regarding usage and compatibility of Horizontal and Vertical Pod Autoscalers

I can see in the kuberenete/autoscaler  repository's VPA documentation (Vertical Pod Autoscaler - Known limitations), there's a known limitation mentioned:

Vertical Pod Autoscaler should not be used with the Horizontal Pod Autoscaler (HPA) on CPU or memory at this moment. However, you can use VPA with HPA on custom and external metrics.

/triage accepted

/assign @pegasas
I will raise a PR for this but also seeking community suggestions for this issue.
@guettli With my limited resource,

HPA happens in stateless service, which could increase the number of pods for traffic.
VPA happens in stateful service, generally, you do not wish your workload killed by OS. When traffic is up, you wish it could tune CPU/memory automatically for short-term increasing traffic.

How about adding a character on docs/concept, and describing it shortly?

@pegasas this part you posted is good. I have not found it yet. I think it would be nice to  have something like that in the docs.

I would add a quarter like https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/ in this section.


Apply two-phase termination to rpc_server

Applied two-phase termination to pfi::network::rpc::rpc_server by adding start() stop() wait_until_stopped() methods().
The approach is to create an internal client which sends an exit message to the server.
We can extract server interface which has methods for two-phase termination so that pfi::network::mprpc::mprpc_servercan inherit from the interface, but I haven't done it yet.

[ ] Unify two mutexes into one
[ ] Make stop() thread-safe
[ ] Acquire lock in large scope

[ ] Unify two mutexes into one
[ ] Make stop() thread-safe
[ ] Acquire lock in large scope

The termination flow will be as follows.

a server thread which has no connection

At first, the thread is waiting for connection at server_socket::accept().
When rpc_server::stop() is called, a client created in the method sends connection request and the thread accepts it.
The thread receives EXIT_MSG and exits inner for loop.
The thread tries to acquire lock in rpc_server::is_running(), which is acquired by 'rpc_server::stop()'
After calling rpc_server::stop() finishes, the thread executes rpc_server::is_running() which returns false and exits outer while loop.

a server thread which has connection

At first, the thread is waiting for new message from clients at ia>>name
When rpc_server::stop()is called, a client created in the method sends connection request but the thread already has connection and cannot receive it. Now that the socket is closed, the client thread throws cannot_get_connection.

If the socket is not closed, the request for connection is added the backlog queue of listen syscall. But there is no thread to accept it, the process blocks forever.

When the connection of the thread ends (e.g. destructor of the client is called), the thread gets empty string at ia>>name and exits inner for loop because !ss is evaluated as true.
The thread executes rpc_server::is_running() which returns false and exits outer while loop.

Commits from 46c741f to 5663e38 make lock protect large sections.
072d2d5 99d3304 9f6e253 are commits for refactoring of rpc_test.cpp .


Extract def-end snippets ending with "end"-only line properly

This fixes snippet extraction so that missing end line in def-end snippet can be extracted properly (similar issue with #2167).
RSpec.describe 'def-end snippet extraction with ArgumentError' do
  def foo(arg)
    p arg
  end

  it 'cannot extract the last `end` line' do
    foo
  end
end

Failures:

  1) def-end snippet extraction with ArgumentError cannot extract the last `end` line
     Failure/Error:
       def foo(arg)
         p arg

     ArgumentError:
       wrong number of arguments (given 0, expected 1)

LGTM!

(I'll leave it to @JonRowe to LGTM it as well since he initially reviewed it).


Add Coding platforms Links for each question in Readme

Need to add coding platform links such as Leetcode, GFG, etc for each question if available.
It will help to redirect to coding platform to practice the question directly.

Would like to contribute in this