Skip to content

Instantly share code, notes, and snippets.

View vjeux's full-sized avatar

Christopher Chedeau vjeux

View GitHub Profile
@vjeux
vjeux / gist:30e90bd00f8d3ff565c76b3a41bfcf67
Created December 5, 2025 06:18
webcodecs-node-results
RUN v4.0.15 /Users/vjeux/random/webcodecs-harness
✓ test/node-webcodecs/video-decoder.test.ts (13 tests) 7ms
❯ test/node-webcodecs/core-types.test.ts (22 tests | 2 failed) 8ms
✓ should create a VideoFrame from RGBA buffer 1ms
✓ should create a VideoFrame from I420 buffer 0ms
× should throw if required parameters are missing 2ms
✓ should return correct size for RGBA 0ms
✓ should return correct size for I420 0ms
✓ should create an independent copy 0ms
@vjeux
vjeux / gist:7955a64e336c7f1c4fbc74e16d9fb9fa
Created December 5, 2025 06:08
node-libav-webcodecs-results
RUN v4.0.15 /Users/vjeux/random/webcodecs-harness
[libvpx @ 0xc9556c700] v1.15.2
[libx264 @ 0x9fb9dc000] using cpu capabilities: ARMv8 NEON DotProd I8MM
stderr | test/node-webcodecs/integration/hevc-av1-encode-decode.test.js > HEVCEncodeSingleFrame
Encoder error: TypeError: Unrecognized codec
at Module.encoder (/Users/vjeux/random/webcodecs-harness/node_modules/node-libav-webcodecs/src/avloader.ts:414:23)
at /Users/vjeux/random/webcodecs-harness/node_modules/node-libav-webcodecs/src/video-encoder.ts:130:38
at processTicksAndRejections (node:internal/process/task_queues:105:5)
at /Users/vjeux/random/webcodecs-harness/test/node-webcodecs/integration/hevc-av1-encode-decode.test.js:59:3
@vjeux
vjeux / gist:888392b771252fb4fcf7b9412c3060f0
Created December 5, 2025 06:02
webcodecs-polyfill-results
RUN v4.0.15 /Users/vjeux/random/webcodecs-harness
✓ test/webcodecs-polyfill/audio-encoder.test.ts (3 tests) 74ms
[h264_videotoolbox @ 0x868dc0000] [IMGUTILS @ 0x16e3eadf8] Picture size 0x0 is invalid
[h264_videotoolbox @ 0x868dc0000] [IMGUTILS @ 0x16e3eadf8] Picture size 0x0 is invalid
[h264_videotoolbox @ 0x868dc0000] dimensions not set
✓ test/node-webcodecs/video-encoder.test.ts (11 tests) 307ms
✓ test/webcodecs-polyfill/audio-decoder.test.ts (1 test) 451ms
✓ AudioDecoder lifecycle 450ms
❯ test/node-webcodecs/integration/encode-decode.test.js (4 tests | 1 failed) 506ms
@vjeux
vjeux / gist:74383591bfe474f9dda3454fd3589042
Created December 5, 2025 05:57
node-webcodecs-results
RUN v4.0.15 /Users/vjeux/random/webcodecs-harness
[libvpx @ 0x94ade0000] v1.15.2
[libvpx @ 0x94ade0000] v1.15.2
[libvpx @ 0x94ade0000] v1.15.2
[libvpx-vp9 @ 0x94ade0000] v1.15.2
[libvpx-vp9 @ 0x94ade0000] v1.15.2
❯ test/webcodecs-polyfill/audio-decoder.test.ts (1 test | 1 failed) 9ms
× AudioDecoder lifecycle 8ms
[libvpx-vp9 @ 0x94ade0000] v1.15.2
...if it is also Aquatic, it has +25 Damage.
...if it is also Aquatic, it has +50 Damage.
Adjacent Heal items gain 10 Heal for the fight.
Adjacent Heal items gain 15 Heal for the fight.
Adjacent Heal items gain 20 Heal for the fight.
Adjacent Heal items gain 25 Heal for the fight.
Adjacent items are Aquatic.
Adjacent items gain +10% crit chance for the fight.
Adjacent items gain +15% crit chance for the fight.
Adjacent items gain +20% crit chance for the fight.
[0] => "#785 { \xe2\x80\x93}"
[1] => "#813 { \xe2\x80\x94}"
[2] => "#1346 { \xe2\x80\x9c}"
[3] => "#1768 { \xe2\x80\x9e}"
[4] => "#2683 {----------------}"
[5] => "#3178 {.\xe2\x80\x9d}"
[6] => "#3995 {,\xe2\x80\x9d}"
[7] => "#4189 {********}"
[8] => "#4291 {:\xe2\x80\x89}"
[9] => "#4936 {========}"
@vjeux
vjeux / difficulty.js
Created July 12, 2021 06:32
Trackmania fetch difficulty
/*
>> node difficulty.js qDkVXW6pEqrwH0WP86jilQW4uZ8
{ rankAT: 629, rankGold: 4332, rankSilver: 7256, rankBronze: 8158 }
>> node difficulty.js qDkVXW6pEqrwH0WP86jilQW4uZ8
$i$o$s$c30Vashj'ir { rankAT: 629, rankGold: 4332, rankSilver: 7256, rankBronze: 8158 }
>> node difficulty.js 5yg9Ga2Kh11Ow2b4E9f4_viMo_h
$o$s$n$fffT$0ffhe $fffB$0ffank $fffR$0ffobbery { rankAT: 423, rankGold: 5425, rankSilver: 7641, rankBronze: 8913 }
(517) >> yarn test
Using globally installed version of Yarn
yarn run v1.12.1
$ jest src/*
(node:37909) UnhandledPromiseRejectionWarning: Error: Callback didn't resolve
(node:37909) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:37909) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(node:37909) UnhandledPromiseRejectionWarning: Error: Callback didn't resolve
(node:37909) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function
@vjeux
vjeux / tldr.md
Last active April 26, 2020 01:37

tldr of https://serokell.io/blog/2018/12/17/why-dependent-haskell

Standard Haskell: Ergonomics + Performance

He basically wants a language with a type system that lets you ensure that reading an element at an arbitrary position is safe and cannot crash because the index is always within the range of the array. He goes through all the mainstream languages and finds out that none would work.

Agda: Ergonomics + Correctness

He gives an example of a language that has this property, Agda. It's actually not a traditional language but a proof assistant. The way lookup is defined is the following way:

@vjeux
vjeux / x.md
Last active January 6, 2024 07:15
Ocaml / functional programming

I'm taking down this post. I just posted this as a side comment to explain a sentence on my latest blog post. This wasn't meant to be #1 on HN to start a huge war on functional programming... The thoughts are not well formed enough to have a huge audience. Sorry for all the people reading this. And please, don't dig through the history...