auraham
Sebastian, if you are reading this, this is an idea for another book: how to orchestrate agents for adversarial code review. I've been looking for learning resources to make something similar to this [1] at a smaller scale. I am aware of codex subagents, though. However, given that Sebastian already has a book for LLMs and another book on planning, I think adversarial code review is an interesting next step.
[1] https://bun.com/blog/bun-in-rust
[2] https://learn.chatgpt.com/docs/agent-configuration/subagents...
Prompt Injection Techniques Every Red Teamer Should Test
- turning js code into something else, arguably high-level code for training neural networks
- a mini OS inside the browser
- a gallery
- document search
Matrix Gradients, Without the Pain
Opensourceprojects.dev
Modern JavaScript Explained for Dinosaurs
Arc and Mutex in Rust
Arc<Mutex<_>> in Rust
I was wrong about Rust on the web [video]
Gpui Tutorial
Gpui
Bootstrap from Twitter
Kobayashi Maru: Win a no-win situation by rewriting the rules -- Harvey Specter
Tauri tutorial: build a desktop app with web technologies
Speeding up a Phoenix LiveView web app with a CDN
Building a Desktop UI in Rust and GPUI
XGBoost from Scratch
Hister – private, self hosted search engine
Practical Introduction to Vim-Fugitive
Vim Fugitive in Action
Statically linking an Elixir command-line application using Burrito
Distributing Elixir Applications with Burrito
Burrito – Cross-Platform Elixir Deployments
Cross-Compilation with Wails
How to Cross-Compile Rust for Windows from Linux
- Both React and Vue are all about reactivity: you have a variable, make it reactive by using something like ref() or useEffect(), and the framework will patch the DOM whenever that reactive variable changes. The idea is easy to understand but hard to implement. I agree with this podcast [1], where the author mentions that writing good React code is hard. I like Vue, but it is a bit overwhelming since it has many functions for creating reactive variables, like ref(), refs(), isRef(), unRef(), reactive(), toRefs(), computed(), etc [2].
- HTMX follows a similar idea: patching the DOM when an event occurs. Unlike React and Vue, HTMX does not rely on reactivity. Instead, it uses attributes like hx-get for requesting HTML fragments to the backend, patching the UI using those fragments. No watchers, no reactivity, just plain requests. This is (to some extend) suitable for dashboards, pagination, sorting tables, autocompletion. But if your application requires a higher level of interactivity, then React and Vue are a better option [2].
Then we have LiveView and Elixir, which I think is a better alternative/trade-off to these three tools:
- Similarly to React and Vue, LiveView has reactive variables (called assigns, you can think of it as a hashmap that holds the state of your application): every time the assigns changes, LiveView reloads the corresponding HTML fragment. This operation is efficient because LiveView knows which parts of the HTML fragment are static and which parts are dynamic. So when some variable changes, LiveView sends a tiny payload to the UI for updating the DOM.
- Also, LiveView follows an arguably simpler approach for reactivity, you only need to implement three functions: mount() to setup the initial state of the assigns, render() to prepare the HTML content, and handle_event() to handle events like button clicks or form submissions.
I think LiveView is so much easier to follow: if the assigns change, then the framework will update all the relevant HTML fragments. That's it. Also, we do not need to worry about adding third-party libraries for routing, state management, forms. Those are likely included in Phoenix.
[1] https://www.youtube.com/live/pMwTR2KeuaU?si=AU7sqxVwTv4lRhV6...
It is a really interesting interview. However, Zig code is a bit hard for me to read.
> microscope is mounted on a elixir nerves deployment!
What do you mean? I imagine that there is an Elixir application running on an embedded system and maybe it relies on an external binary application (compiled using zig). If so, how do you manage the communication between them?
Can you elaborate?