A Microsoft project that compiles a simple, declarative JSON-based spec of a data visualization into a form that Vega-Lite, ECharts or Chart.js can render. It's pitched at agentic use, but is a simple intermediate format humans could benefit from too.
Microsoft Research
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍1
Famously, the only thing Java gave JavaScript was the first four letters of its name. That goes unmentioned in 😉 this new documentary about Java (74 minutes), but I enjoyed learning Java's story anyway. It's from the same folks as the fantastic Vite, Angular, and Node.js documentaries.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣4👍2❤1
A dissection of a North Korean campaign that hides malware inside SVG images in a fake job interview's JavaScript 'coding challenge'. The targeting of job-seeking devs is on the increase, as Roman Imankulov recently discovered first-hand.
Daniel Stepanic (Elastic)
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣5❤3👍1
A PDF parser built in Rust with bindings for Node (plus WASM, Rust, and Python) — it worked great in my testing. It includes OCR, handles layouts/is spatially aware, and is fast (a complex 140-page PDF took ~10 seconds). Here's how to get started from Node.
LlamaIndex
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2
CHALLENGE
class Timer {
constructor() { this.seconds = 0; }
start() {
this.tick = () => { this.seconds++; return this.seconds; };
return this.tick;
}
}
const t = new Timer();
const tick = t.start();
const obj = { seconds: 100, tick };
console.log(tick(), obj.tick(), t.seconds);👍2🔥1
❤3
From the creator of NodeBook, a thorough guide to Node's internals, comes a scroll-driven visualization following every step a single HTTP POST request takes from the user's click to Node's event loop and on to a database behind it.
Ishtmeet Singh
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1🔥1
CHALLENGE
const primArr = [1, 2, 3];
const copyArr = [...primArr];
copyArr[0] = 99;
const objArr = [{ x: 1 }, { x: 2 }];
const copyObjArr = [...objArr];
copyObjArr[0].x = 99;
console.log(primArr[0], copyArr[0], objArr[0].x, copyObjArr[0].x);
❤1
CHALLENGE
const arr = [1, [2, 3], [4, [5, 6]], 7];
const a = arr.flat();
const b = arr.flat(2);
const c = arr.flatMap(x => Array.isArray(x) ? x : [x, x]);
const d = [1, 2, 3].flatMap(x => [[x]]);
console.log(JSON.stringify([a, b, c, d]));
What is the output?
Anonymous Quiz
21%
[[1,2,3,4,[5,6],7],[1,2,3,4,5,6,7],[1,1,2,3,4,[5,6],7,7],[1,2,3]]
38%
[[1,2,3,4,[5,6],7],[1,2,3,4,5,6,7],[1,1,2,3,4,[5,6],7,7],[[1],[2],[3]]]
33%
[[1,2,3,4,5,6,7],[1,2,3,4,5,6,7],[1,1,2,3,4,[5,6],7,7],[[1],[2],[3]]]
8%
[[1,2,3,4,[5,6],7],[1,2,3,4,5,6,7],[1,1,2,3,4,5,6,7,7],[[1],[2],[3]]]
👍1
CHALLENGE
const source = {
_val: 1,
get val() { return this._val; }
};
const copy1 = Object.assign({}, source);
source._val = 100;
const copy2 = { ...source };
copy1._val = 999;
console.log(copy1.val, copy2.val, source.val, copy1._val);❤2
What is the output?
Anonymous Quiz
24%
1 100 1 999
38%
1 100 100 999
31%
100 100 100 999
7%
1 1 100 999
❤1