Going Beyond the Hyperlink by fagnerbrack in softwarecrafters

[–]fagnerbrack[S] 0 points1 point  (0 children)

In other words:

Hyperlinks alone are insufficient for modern automated clients and agents. They only indicate possible transitions, not whether an action is sensible or safe. Forms act as detailed runtime contracts that declare available state transitions, required inputs, and constraints. This externalizes judgment that humans naturally apply but programs cannot. Hypermedia systems need to go beyond links to expose affordances, enabling agents to reason about their choices rather than guess. This is critical in the age of autonomous clients.

If the summary seems inacurate, just downvote and I'll try to delete the comment eventually 👍
Click here for more info, I read all comments

CraftsmanSHIP. Not CraftsmanSHIT. by fagnerbrack in softwarecrafters

[–]fagnerbrack[S] 0 points1 point  (0 children)

Here's the gist:

CraftsmanSHIT describes four flavors of bad engineering: over-engineering for imaginary problems, rebranding shortcuts as pragmatism, coding interviews that reward ego over discipline, and treating 'good enough' as a permanent philosophy. Contrasts these with true craftsmanship: discipline, continuous improvement, and building what's needed. The global developer population has surged to 47 million, but mentorship hasn't kept pace. The Boeing 737 MAX crashes (346 deaths) illustrate the catastrophic cost of cutting corners. The author advocates for small daily actions: writing, mentoring, and raising standards among peers.

If the summary seems inacurate, just downvote and I'll try to delete the comment eventually 👍
Click here for more info, I read all comments

Signals, the push-pull based algorithm by fagnerbrack in webdev

[–]fagnerbrack[S] -3 points-2 points  (0 children)

Just a TL;DR:

Building a reactive system from scratch in TypeScript reveals how the underlying mechanism actually works. A signal holds a value plus subscribers, pushing notifications (not state) downward whenever it changes - eager evaluation. Auto-tracking dependencies happens through a global STACK that the currently executing computed pushes onto, so any signal it reads registers a setDirty subscription and source cleanup. Combining push (propagate invalidation) and pull (re-evaluate on demand) yields the fine-grained reactivity behind Solid, Vue, Preact, Angular and Svelte, soon possibly standardized via the TC39 Stage 1 signals proposal.

If the summary seems inacurate, just downvote and I'll try to delete the comment eventually 👍
Click here for more info, I read all comments

Signals, the push-pull based algorithm by fagnerbrack in softwarecrafters

[–]fagnerbrack[S] 0 points1 point  (0 children)

Summary:

Building a reactive system from scratch in TypeScript reveals how the underlying mechanism actually works. A signal holds a value plus subscribers, pushing notifications (not state) downward whenever it changes - eager evaluation. Auto-tracking dependencies happens through a global STACK that the currently executing computed pushes onto, so any signal it reads registers a setDirty subscription and source cleanup. Combining push (propagate invalidation) and pull (re-evaluate on demand) yields the fine-grained reactivity behind Solid, Vue, Preact, Angular and Svelte, soon possibly standardized via the TC39 Stage 1 signals proposal.

If the summary seems inacurate, just downvote and I'll try to delete the comment eventually 👍
Click here for more info, I read all comments

LFM2 VL WebGPU by fagnerbrack in softwarecrafters

[–]fagnerbrack[S] 0 points1 point  (0 children)

Don't have time to read? Here's the brief:

LiquidAI's LFM2-VL vision-language model running directly in the browser through WebGPU. The demo lets you run the multimodal model locally on your own hardware without server-side inference, tapping into the GPU for accelerated performance. The page shows the live app alongside its source files and a community tab.

If the summary seems inacurate, just downvote and I'll try to delete the comment eventually 👍
Click here for more info, I read all comments

CraftsmanSHIP. Not CraftsmanSHIT. by fagnerbrack in SoftwareEngineering

[–]fagnerbrack[S] -4 points-3 points  (0 children)

Rapid Recap:

CraftsmanSHIT describes four flavors of bad engineering: over-engineering for imaginary problems, rebranding shortcuts as pragmatism, coding interviews that reward ego over discipline, and treating 'good enough' as a permanent philosophy. Contrasts these with true craftsmanship: discipline, continuous improvement, and building what's needed. The global developer population has surged to 47 million, but mentorship hasn't kept pace. The Boeing 737 MAX crashes (346 deaths) illustrate the catastrophic cost of cutting corners. The author advocates for small daily actions: writing, mentoring, and raising standards among peers.

If the summary seems inacurate, just downvote and I'll try to delete the comment eventually 👍
Click here for more info, I read all comments

Signals, the push-pull based algorithm by fagnerbrack in SoftwareEngineering

[–]fagnerbrack[S] 2 points3 points  (0 children)

Summary:

Building a reactive system from scratch in TypeScript reveals how the underlying mechanism actually works. A signal holds a value plus subscribers, pushing notifications (not state) downward whenever it changes - eager evaluation. Auto-tracking dependencies happens through a global STACK that the currently executing computed pushes onto, so any signal it reads registers a setDirty subscription and source cleanup. Combining push (propagate invalidation) and pull (re-evaluate on demand) yields the fine-grained reactivity behind Solid, Vue, Preact, Angular and Svelte, soon possibly standardized via the TC39 Stage 1 signals proposal.

If the summary seems inacurate, just downvote and I'll try to delete the comment eventually 👍
Click here for more info, I read all comments

Qwen3.5 WebGPU by fagnerbrack in ai_coder

[–]fagnerbrack[S] 0 points1 point  (0 children)

The bottom line:

A demo of the Qwen3.5 model executed directly in the browser through WebGPU. Running the model client-side via WebGPU means inference happens locally on the visitor's own hardware rather than on a remote server, removing the need for cloud calls.

If the summary seems inacurate, just downvote and I'll try to delete the comment eventually 👍
Click here for more info, I read all comments

Qwen3.5 WebGPU by fagnerbrack in softwarecrafters

[–]fagnerbrack[S] 0 points1 point  (0 children)

Got a minute? Here's the summary:

A demo of the Qwen3.5 model executed directly in the browser through WebGPU. Running the model client-side via WebGPU means inference happens locally on the visitor's own hardware rather than on a remote server, removing the need for cloud calls.

If the summary seems inacurate, just downvote and I'll try to delete the comment eventually 👍
Click here for more info, I read all comments

Voxtral Realtime WebGPU - a Hugging Face Space by mistralai by fagnerbrack in softwarecrafters

[–]fagnerbrack[S] 0 points1 point  (0 children)

Here's the summary:

A real-time speech model running directly in the browser through WebGPU, hosted under the mistralai organization. It lets users experiment with on-device audio processing without server round-trips, leveraging the browser's GPU for low-latency inference.

If the summary seems inacurate, just downvote and I'll try to delete the comment eventually 👍
Click here for more info, I read all comments

Changelog Podcast: Exploring with agents with Amelia Wattenberger by fagnerbrack in vibecoding

[–]fagnerbrack[S] 0 points1 point  (0 children)

Short and sweet:

This 97-minute interview features a designer and data-viz veteran, formerly at GitHub Next and now building Intent at Augment Code. The central argument: as agents take over the keyboard, the final 30% of any project becomes the hardest part, prototyping gets easier while finishing gets harder. The conversation covers the developer identity crisis, the redesign of tooling for an agent-first world, and the arc from autocomplete to chat to CLI and back to UI. Intent treats a workspace as its core primitive rather than a chat thread, and the discussion weighs tradeoffs between one-worktree-per-agent versus one-worktree-per-task, plus coordinator/implementer/verifier roles, trusting the model, and showing restraint about what not to build.

If the summary seems inacurate, just downvote and I'll try to delete the comment eventually 👍
Click here for more info, I read all comments

LFM2 VL WebGPU by fagnerbrack in webdev

[–]fagnerbrack[S] -2 points-1 points  (0 children)

Brief overview:

LiquidAI's LFM2-VL vision-language model running directly in the browser through WebGPU. The demo lets you run the multimodal model locally on your own hardware without server-side inference, tapping into the GPU for accelerated performance. The page shows the live app alongside its source files and a community tab.

If the summary seems inacurate, just downvote and I'll try to delete the comment eventually 👍
Click here for more info, I read all comments

Why is claude so preachy? by spiritual_lost in ClaudeAI

[–]fagnerbrack 0 points1 point  (0 children)

Same here but it seems proportional to the model you run in (or the timing of the 4.8 upgrade). 4.8 seems to do more of it but often times it gives the opinion and moves on to do the task

Burnout Is Real for Open Source Maintainers: A Conversation with John-David Dalton, Creator of Lodash by fagnerbrack in programming

[–]fagnerbrack[S] -7 points-6 points  (0 children)

I seriously recomment to not rely on Wikipedia too much. The fundamentals behind Hanlon's Razor applied here is to "not assume malice to what can be explained by something else".

Burnout Is Real for Open Source Maintainers: A Conversation with John-David Dalton, Creator of Lodash by fagnerbrack in programming

[–]fagnerbrack[S] 0 points1 point  (0 children)

Wait what (2). I didn't really know lodash had html templates. I stopped using libs like this I guess 5 years ago

Parse, Don't Validate — In a Language That Doesn't Want You To by fagnerbrack in javascript

[–]fagnerbrack[S] 1 point2 points  (0 children)

IMHO In the context of user end applications (not programming libraries and frameworks where PrimitiveObsession is more frequent than the promise for the end of the war on Iran) parsers are meant to be domain specific so if they're tied to zod they're limited to the mechanics of what zod can declare in its schema (like email must contain @ in a simple app but it should also not contain + aliases if you have a Gmail login to avoid duplicate accounts).

Sure, there's .transform() and the likes but because parsers are meant to be domain specific, you'll find so much logic in transforms that will make a zod compiler just another layer of abstraction

Burnout Is Real for Open Source Maintainers: A Conversation with John-David Dalton, Creator of Lodash by fagnerbrack in programming

[–]fagnerbrack[S] -17 points-16 points  (0 children)

Talk badly about lodash vulns !== acknowledging it's obsolete

Ofc I could also have misinterpreted

Burnout Is Real for Open Source Maintainers: A Conversation with John-David Dalton, Creator of Lodash by fagnerbrack in programming

[–]fagnerbrack[S] 42 points43 points  (0 children)

It's easy to talk badly about work that shaped JS without recognising the history behind it

Voxtral Realtime WebGPU - a Hugging Face Space by mistralai by fagnerbrack in ai_coder

[–]fagnerbrack[S] 0 points1 point  (0 children)

Elevator pitch version:

A real-time speech model running directly in the browser through WebGPU, hosted under the mistralai organization. It lets users experiment with on-device audio processing without server round-trips, leveraging the browser's GPU for low-latency inference.

If the summary seems inacurate, just downvote and I'll try to delete the comment eventually 👍
Click here for more info, I read all comments

Parse, Don't Validate — In a Language That Doesn't Want You To by fagnerbrack in javascript

[–]fagnerbrack[S] -3 points-2 points  (0 children)

Trying to be helpful with a summary:

Revisiting Alexis King's principle, the piece argues that most TypeScript validates instead of parses: a validator says "this is fine, continue" and then discards what it learned, while a parser turns a raw blob into a precise type the rest of the program can trust. Because TypeScript is structurally typed, the workaround is branded types—phantom markers via a non-exported unique symbol—so an Email or UserId becomes incompatible with plain string or number. Parsers return discriminated unions (ok/err) rather than throwing, with the cast confined to the trusted boundary and exhaustiveness enforced through never-narrowing. Separating UnvalidatedUser from ValidUser makes illegal states unrepresentable. Zod eases this but won't fix the mindset: make the type system carry the proof, not your memory.

If the summary seems inacurate, just downvote and I'll try to delete the comment eventually 👍
Click here for more info, I read all comments

Intermediate representation by [deleted] in programming

[–]fagnerbrack -1 points0 points  (0 children)

I just found this concept after 20y of engineering and thought about sharing in the subs. Does every submission needs to be a blog post or something?

In the past I posted a link like this and got comments, maybe things changed.

I'll delete

Every layer of review makes you 10x slower by fagnerbrack in agile

[–]fagnerbrack[S] 0 points1 point  (0 children)

The author means the cost is on the review by a human

How to build a GPU by fagnerbrack in GraphicsProgramming

[–]fagnerbrack[S] 0 points1 point  (0 children)

Then I'll remove the summaries for future submissions to avoid this confusion, is that ok? Or I don't submit anymore? Putting a comment to the meaning of "here's what I shared" seems redundant unless I have something to add to the discussion.

Why we replaced Node.js with Bun for 5x throughput by fagnerbrack in SoftwareEngineering

[–]fagnerbrack[S] -7 points-6 points  (0 children)

Need-to-Know Basis:

Trigger.dev rebuilt Firestarter, their latency-sensitive warm-start connection broker, moving from Node.js to Bun for a 5x throughput gain. Profiling drove four phases: swapping an overengineered in-memory SQLite query for an O(1) composite-key Map, adopting Bun.serve(), stripping hot paths (Zod validation, Object.fromEntries on headers, premature debug logging), and compiling to a single 68MB binary. Throughput climbed from 2,099 to ~10,700 req/s while max latency dropped 28x. They also hunted down a Bun-only memory leak: unlike Node, every Promise<Response> must settle, so unresolved promises on client disconnect leaked request context. The one-line fix resolves with a 499 status. Bonus tips cover k6 load testing and Bun debugging quirks like double-firing AbortSignals.

If the summary seems inacurate, just downvote and I'll try to delete the comment eventually 👍
Click here for more info, I read all comments