• maiweb v0.1.0
  • ★
  • Feedback

Jon Gjengset

active · last success 2026-06-18 22:57

Visit site ↗ · Feed ↗

  • Jon Gjengset youtube.com channel live-coding video youtube 2026-04-04 13:33
    ↗

    For the past few videos, we've been going pretty high level, especially with the aid of LLMs. Not this time! We went all the way down to "what bits go where", with honest hard-working artisinal hand-written Rust code. Specifically, we implemented an audio generator that...

    ▶ Watch on YouTube Opens in a new tab
    For the past few videos, we've been going pretty high level, especially with the aid of LLMs. Not this time! We went all the way down to "what bits go where", with honest hard-working artisinal hand-written Rust code. Specifically, we implemented an audio generator that produces WAV files with white, pink, brown, and possibly other-colored audio noise. Prior to this, I had no idea how to generate WAV files, nor how to generate those kinds of noise, so this is a good ol' "watch Jon learn as he goes" video. Thanks to the sponsor of this video: Hudson River Trading! http://www.hudsonrivertrading.com/gjengset Repository commit at the end of the stream: https://github.com/jonhoo/trough/tree/33623289870346696724769cded6dc2bbb07fc1d LLM-assissted review and polish of the code (recommended reading!): https://github.com/jonhoo/trough/pull/1 0:00:00 Introduction 0:01:14 Colors of noise 0:08:42 Writing a WAV file 1:24:26 The Fourier transform approach 2:02:16 Implementing white noise 2:48:55 Pink noise 3:25:55 Brown noise 4:12:34 Blue noise 4:52:25 Violet noise 4:56:37 Grey noise Live version with chat: https://youtube.com/live/BKHE7stqhoI
  • Jon Gjengset youtube.com channel live-coding video youtube 2026-02-06 22:20
    ↗

    Some of you may be familiar with Avro, the Apache take on Google's Protocol Buffers. Where Protobuf has just one file format, `.proto`, Avro has *three*. Two of these are JSON-based. The first, .avsc files, are used for "schemas", which are like Protobuf message types. The...

    ▶ Watch on YouTube Opens in a new tab
    Some of you may be familiar with Avro, the Apache take on Google's Protocol Buffers. Where Protobuf has just one file format, `.proto`, Avro has *three*. Two of these are JSON-based. The first, .avsc files, are used for "schemas", which are like Protobuf message types. The second, .avpr files, are for "protocols", which are like gRPC service declarations. The third file format, .avdl, uses an Interface Description Language, or IDL ( https://avro.apache.org/docs/1.12.0/idl-language/ ), which is intended for humans (as opposed to machines) to read and write and looks more like a .proto file. Avro comes with a tool that converts those IDLs into JSONs. That tool is written in Java and maintained by the Avro folks, but also seems to have stagnated somewhat. In particular, it produces *really* unhelpful errors, to the point where I've heard of people spending an hour chasing down a misplaced comma. My sense is that this is probably not *too* hard to fix in the Java version, but after digging a little I discovered that the parser behind this tool uses the ANTLR parser generator ( https://www.antlr.org/ ). ANTLR supports code generation to many languages, *including Rust*! And you know what that means: let's try to port it to Rust using something like miette ( https://docs.rs/miette/ ) for errors, and see how good we can make it! Since we a) have access to the existing Java code and b) there's an infinite supply of tests (the same IDL passed to the Java tool should produce the same JSON), this is also a perfect candidate for powercoding (LLM + review the code), so we decided to see if we could get a complete substitute up and running in just four hours 😅 The resulting repository can be found at https://github.com/jonhoo/avdl Live version with chat: https://youtube.com/live/NqV_KhDsMIs 00:00:00 Introduction 00:03:36 What is Apache Avro? 00:13:44 Setup and trying out the Java tool 00:23:25 ANTLR parser generation 00:46:07 Planning the implementation with Claude Code 01:46:10 Reviewing AI-generated Rust code 02:33:30 Making the LLM iterate 02:44:38 Setting up for a multi-agent workflow 02:57:56 Seeding a decent CLAUDE.md 03:03:08 Parallel issue identification and fixing 03:38:26 Making worktrees work 03:46:22 Brainrot, FOMO, and LLM use 04:16:37 Designing a self-correcting agent loop 04:53:14 Wrap-up & next steps
  • Jon Gjengset youtube.com channel live-coding video youtube 2026-01-02 10:09
    ↗

    Also available as a video on YouTube (https://www.youtube.com/watch?v=S_zp82fYrGw) . Questions and answers session from January, 2026. Timestamps • [@0:00:00] Introduction • [@0:01:44] Marriage and kids plans • [@0:03:26] Have you tried Helix editor? • [@0:06:10] Interview...

    ▶ Watch on YouTube Opens in a new tab
    Also available as a video on YouTube (https://www.youtube.com/watch?v=S_zp82fYrGw) . Questions and answers session from January, 2026. Timestamps • [@0:00:00] Introduction • [@0:01:44] Marriage and kids plans • [@0:03:26] Have you tried Helix editor? • [@0:06:10] Interview questions for Rust developers • [@0:13:19] How did you and your girlfriend meet? • [@0:15:31] Claude Code usage at Helsing • [@0:22:29] Thoughts on Mojo • [@0:26:47] Learning Rust to get a 100k job • [@0:34:40] Writing a new version of your book • [@0:41:47] How do Rust developers get girls? • [@0:45:50] Application-wide error handling patterns • [@0:54:03] Getting a Rust job as a graduate • [@0:54:38] Recommended Rust streamers • [@0:57:42] Advice for early career • [@0:57:55] Interesting companies to work at • [@1:14:11] Will AI widen or narrow the expert-novice gap? • [@1:25:27] One billion row challenge: is Java really the winner? • [@1:28:16] Are you WASM yet? • [@1:28:36] Crust of Rust on self-borrowing and Ouroboros • [@1:30:41] NixOS and its effect on your workflow • [@1:35:02] Interview approach for assessing candidates with LLMs • [@1:39:49] Breaking changes worth making in Rust • [@1:47:47] Improving as an intermediate Rust developer • [@2:02:54] Testing critical software (flight systems) • [@2:09:33] Generalist vs specialist • [@2:13:05] Why care about high salary in Norway? • [@2:16:49] Prep for Impl Rust videos • [@2:18:58] Job security with the rise of AI • [@2:27:20] Rust 4 Linux • [@2:29:45] Quick-fire answers In the quick-fire round, we covered measuring growth as engineer, thoughts on Zig, Rust job market for juniors, the Rust community, how 2025 was, the next-gen trait solver, tech to learn in 2026, ML and Rust, monorepos and CI, missing Rust features, Dioxus, reflection in Rust, Zig leaving GitHub, and favorite CS books.
  • Jon Gjengset youtube.com channel live-coding video youtube 2026-01-02 10:09
    ↗

    Also available as a video on YouTube (https://www.youtube.com/watch?v=zw88-0ofBs0) . Questions and answers session from January, 2025. Timestamps • [@0:00:00] Introduction • [@0:02:42] What’s your stand on “the AI stuff”? • [@0:06:51] Have you had to do a “LeetCode”...

    ▶ Watch on YouTube Opens in a new tab
    Also available as a video on YouTube (https://www.youtube.com/watch?v=zw88-0ofBs0) . Questions and answers session from January, 2025. Timestamps • [@0:00:00] Introduction • [@0:02:42] What’s your stand on “the AI stuff”? • [@0:06:51] Have you had to do a “LeetCode” interview? • [@0:09:52] How can I actually finish projects I start? • [@0:12:53] What is your opinion about nix and NixOS? • [@0:16:48] How do you view the Zig programming language? • [@0:19:18] Will you do any more CodeCrafters streams? • [@0:21:18] will you do any more from-scratch building videos? • [@0:21:57] Do you use a debugger like GDB? • [@0:24:40] Will you decrust rayon? • [@0:26:11] Can you tell us more about ReadySet? • [@0:30:28] Who’s been instrumental in your programming journey? • [@0:34:08] What do you think about Amazon’s recent RTO-mandates? • [@0:39:31] How do you navigate a large codebase? • [@0:45:23] How do I learn to write performant code in Rust? • [@0:49:35] Can we ever be truly free from libc? • [@0:52:15] How did you learn to speak so “carefully”? • [@0:58:32] Do you have any favourite Rust or programming blogs? • [@1:03:23] I’m learning Rust but am struggling to follow your book/videos • [@1:07:48] Should rustc move away from C++ written LLVM? • [@1:11:41] What are your thoughts on the state of IPv6? • [@1:13:30] Are you interested in formal verification? • [@1:25:16] If you could study CS again, what would you do differently? • [@1:29:50] As a Principal Engineer, do you escape the PM aspects? • [@1:34:16] Do you have ethical concerns about working in the military industry? • [@1:44:03] Can you provide more technical details around what you’ve worked on? • [@1:49:30] Thoughts on the Rust 2024 Edition? • [@2:02:12] Rules of thumb for “bolt more on” vs “just rewrite it” • [@2:05:19] What are your main sources to keep up with new technologies? • [@2:09:04] Do you still keep up to date with academic research? • [@2:11:29] What inspired/influenced your way of working with humans? • [@2:18:42] How can we help you make more educational content? • [@2:36:15] Have you read about the academic research around CRDTs? • [@2:37:51] What do you think about Rust-side GUIs like Tauri? • [@2:41:22] What is missing from Rust? • [@2:51:00] What are you looking forward to the most in 2025? • [@2:53:22] How are the cats doing? • [@2:56:56] Is this OK to wish Helsing will never need to use its products? • [@2:58:55] How do you choose the right abstractions when coding in Rust? • [@3:01:18] Is the Rust performance debugging experience worse on macOS than Linux? • [@3:03:49] Have you ever used Elixir/Erlang/other BEAM-based languages? • [@3:07:49] Rust with a team who are excited about Rust but have no experience • [@3:10:06] What’s a concept that you initially found challenging? • [@3:13:35] Picking Rust as a startup language • [@3:15:27] Is the adoption of Rust slowing down? • [@3:16:50] What new technologies are you willing to learn this year? • [@3:18:03] Have you considered going vegan? • [@3:20:37] Does Helsing sell arms to Israel and would you stay if they did? • [@3:22:06] What is something that you think is underrated? • [@3:29:18] Running through remaining questions (list in description) Here are the questions I covered in the “run through” at the end. There were way more questions left that these, but these are the ones we go to! • What is one thing you regret learning in 2024? • Thoughts on gpui from the zed team? • What language would you “main” if rust wouldn’t exist? • How do you see Rust in Linux kernel? • Have you used ghostty? • Have you made any updates to your setup recently? • Are you neurotypical? • What do you think about graphics programming in Rust? 3:32:14 • Why is your mascot a llama? • How hard is it to land a first job working with Rust? • Will you decrust actix-web? • Have you ever had to fix memory fragmentation issues in ...
  • Jon Gjengset youtube.com channel live-coding video youtube 2026-01-02 08:40
    ↗

    As has become tradition, it's time for another new year's Q&A! In the span of three hours, we got through 45 questions covering everything from to job hunting for juniors to testing critical software. The questions were asked both ahead of time and live (using...

    ▶ Watch on YouTube Opens in a new tab
    As has become tradition, it's time for another new year's Q&A! In the span of three hours, we got through 45 questions covering everything from to job hunting for juniors to testing critical software. The questions were asked both ahead of time and live (using https://wewerewondering.com/ ), and I've timecoded them all as chapters on this video for easier discovery. This video was sponsored by the Let's Get Rusty job board: https://jobs.letsgetrusty.com/ 0:00:00 Introduction 0:01:44 Marriage and kids plans 0:03:26 Have you tried Helix editor? 0:06:10 Interview questions for Rust developers 0:13:19 How did you and your girlfriend meet? 0:15:31 Claude Code usage at Helsing 0:22:29 Thoughts on Mojo 0:26:47 Learning Rust to get a 100k job 0:34:40 Writing a new version of your book 0:41:47 How do Rust developers get girls? 0:45:50 Application-wide error handling patterns 0:54:03 Getting a Rust job as a graduate 0:54:38 Recommended Rust streamers 0:57:42 Advice for early career 0:57:55 Interesting companies to work at 1:14:11 Will AI widen or narrow the expert-novice gap? 1:25:27 One billion row challenge: is Java really the winner? 1:28:16 Are you WASM yet? 1:28:36 Crust of Rust on self-borrowing and Ouroboros 1:30:41 NixOS and its effect on your workflow 1:35:02 Interview approach for assessing candidates with LLMs 1:39:49 Breaking changes worth making in Rust 1:47:47 Improving as an intermediate Rust developer 2:02:54 Testing critical software (flight systems) 2:09:33 Generalist vs specialist 2:13:05 Why care about high salary in Norway? 2:16:49 Prep for Impl Rust videos 2:18:58 Job security with the rise of AI 2:27:20 Rust 4 Linux 2:29:45 Quick-fire answers In the quick-fire round, we covered Rust for Linux, measuring growth as engineer, thoughts on Zig, Rust job market for juniors, the Rust community, how 2025 was, the next-gen trait solver, tech to learn in 2026, ML and Rust, monorepos and CI, missing Rust features, Dioxus, reflection in Rust, Zig leaving GitHub, and favorite CS books. Live version with chat: https://youtube.com/live/g1ZgInFTfEo
  • Jon Gjengset youtube.com channel live-coding video youtube 2025-11-30 20:27
    ↗

    I'm late to the party, but it's time we take a stab at the One Billion Row Challenge ( https://github.com/gunnarmorling/1brc ) in Rust. It's an excellent way to dig into optimizing Rust code and learning somethings about assembly, SIMD, performance profiling, and just CPUs in...

    ▶ Watch on YouTube Opens in a new tab
    I'm late to the party, but it's time we take a stab at the One Billion Row Challenge ( https://github.com/gunnarmorling/1brc ) in Rust. It's an excellent way to dig into optimizing Rust code and learning somethings about assembly, SIMD, performance profiling, and just CPUs in general in the process, so let's take it on! Thanks to the sponsor of this video, Hudson River Trading. If you're interested in finding out more about them, see https://www.hudsonrivertrading.com/gjengset There are already several Rust implementations ( https://github.com/gunnarmorling/1brc/discussions/57 ), this excellent write-up ( https://curiouscoding.nl/posts/1brc/ ), and even an existing stream ( https://www.youtube.com/watch?v=Q-0durxAB6s ), but I'm hoping that walking through the iterative optimization process live is still a good teaching exercise. You can find my implementation at https://github.com/jonhoo/brrr, and the commit at the end of the stream is https://github.com/jonhoo/brrr/commit/f1ef7ecd9305be997f6ae0bc6a2c44392406f237. The other posts I refer to in the video are: - https://github.com/gunnarmorling/1brc/discussions/57 - https://curiouscoding.nl/posts/1brc/ - https://github.com/gunnarmorling/1brc/discussions/138#discussioncomment-8319376 0:00:00 Housekeeping 0:01:30 The One Billion Row Challenge 0:10:53 The easy version 0:22:10 First, the build configuration 0:32:15 Aside: reliable perf symbols 0:36:54 Letting perf guide us 0:45:59 Avoid UTF-8 parsing 0:57:04 Memory mapping the file 1:26:59 Fixed point temperature 1:57:00 Splitting strings 2:35:30 Hashing... 3:31:45 Inspiration from a Java solution 4:05:45 Inlining short keys 5:14:08 Concurrent data loading 5:50:55 Playing with the map type 6:06:01 Inspiration from another Java solution 6:35:30 SIMD in next_line 6:48:39 Branchless temperature parsing 7:34:55 Avoiding load_or_default 8:02:45 Multithreading 8:38:48 More hashing 9:16:44 Cycle hunt 9:54:33 Shrinking stats 10:08:20 Temperature parsing again 10:23:19 Maybe hashing this time 10:33:43 Closing thoughts Live version with chat: https://youtube.com/live/g2EKNXKKGM4?feature=share
  • Jon Gjengset youtube.com channel live-coding video youtube 2025-10-26 16:35
    ↗

    Ben and Jon have yet again, and still completely intentionally, fallen behind on the "What's New in Rust" series from Rustacean Station (https://rustacean-station.org/) where they discuss each new Rust release. And all so that they (we?) could do another live marathon stream...

    ▶ Watch on YouTube Opens in a new tab
    Ben and Jon have yet again, and still completely intentionally, fallen behind on the "What's New in Rust" series from Rustacean Station (https://rustacean-station.org/) where they discuss each new Rust release. And all so that they (we?) could do another live marathon stream to go through what's changed across a bunch of Rust releases together! You can listen to the last What's New in Rust podcast episode (covering 1.79 and 1.80) at https://rustacean-station.org/episode/rust-1.79-1.80/ or wherever you listen to podcasts. The recording of this episode will be posted to the regular Rustacean Station feed once it's been cut appropriately :) 0:00:00 Black screen 0:25:29 Introduction 0:32:24 1.81.0 1:04:05 1.82.0 1:57:54 1.83.0 2:14:49 1.84.0 **Links** 1.81.0: https://blog.rust-lang.org/2024/09/05/Rust-1.81.0/ - https://github.com/rust-lang/rust/pull/124032/ - https://blog.rust-lang.org/2024/09/04/cve-2024-43402/ 1.82.0: https://blog.rust-lang.org/2024/10/17/Rust-1.82.0/ - https://doc.rust-lang.org/rustc/target-tier-policy.html - https://github.com/rust-lang/rust/pull/128254 1.83.0: https://blog.rust-lang.org/2024/11/28/Rust-1.83.0/ - https://www.unicode.org/emoji/charts-16.0/emoji-released.html - https://github.com/rust-lang/rust/pull/129687 - https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#changed-9 - https://github.com/rust-lang/cargo/pull/14588 - https://github.com/rust-lang/cargo/pull/14137 1.84.0: https://blog.rust-lang.org/2025/01/09/Rust-1.84.0/ - https://rust-lang.github.io/rfcs/3559-rust-has-provenance.html - https://github.com/rust-lang/cargo/pull/14815 - https://github.com/rust-lang/rust/pull/129248
  • Jon Gjengset youtube.com channel live-coding video youtube 2025-10-09 14:13
    ↗

    ▶ Watch on YouTube Opens in a new tab

    No full content extracted yet.

    Extracting…
  • Jon Gjengset youtube.com channel live-coding video youtube 2025-09-29 14:26
    ↗

    There are a wide variety of ways to describe the locations of objects in space. To name a few, there is: WGS84, the well-known Earth-bound system of latitude and longitude; ECEF (“Earth-centered, Earth-fixed”), a Cartesian coordinate system fixed to Earth’s axes; NED (“North,...

    ▶ Watch on YouTube Opens in a new tab
    There are a wide variety of ways to describe the locations of objects in space. To name a few, there is: WGS84, the well-known Earth-bound system of latitude and longitude; ECEF (“Earth-centered, Earth-fixed”), a Cartesian coordinate system fixed to Earth’s axes; NED (“North, East, Down”), a coordinate system that describes where in compass directions a given object is relative to an observer; or FRD (“Front, Right, Down”), which describes where a given object is relative to the facing direction of an observer. And to make matters worse, points in all of these systems except WGS84 can be expressed in Cartesian coordinates (ie, X, Y, and Z), spherical coordinates (ie, angle to pole, angle on XY plane, and radius), or horizontal coordinates (ie, azimuth, elevation, and distance). When we write software for systems that have to handle real-world coordinates, the question of what coordinate system those coordinates are in, and how they’re represented, comes up a lot. And getting it wrong in even a single place opens the door to disastrous consequences. To that end, for work, I wrote the now-open-source crate Sguaba (named after the self-navigating boat of the Celtic deity Manannán mac Lir that is navigated solely by the thoughts of its pilot). Sguaba is a Rust crate that strongly types coordinates and vectors with their respective coordinate system, and implements conversions between them. In this talk, presented at the Rust Amsterdam meetup @ BlockTech, I go into the complexities of spatial math, as well as how we can use the type system to encode those complexities away. Plus, answers to lots of questions! Sguaba open-source announcement from Helsing: https://blog.helsing.ai/sguaba-hard-to-misuse-rigid-body-transforms-for-engineers-with-other-things-to-worry-about-than-aeaa45af9e0d Sguaba on GitHub: https://github.com/helsing-ai/sguaba You can find the slides at https://jon.thesquareplanet.com/slides/sguaba/ (or an export at https://jon.thesquareplanet.com/slides/sguaba/export.pdf). 0:00:00 Introduction 0:01:28 Talk 0:31:40 Q&A
  • Jon Gjengset youtube.com channel live-coding video youtube 2025-08-01 21:11
    ↗

    Those who have followed me for a while may already know that I'm a bit of an ML Luddite — it's not that I'm opposed to the use of ML-based tools, but rather that I haven't personally found much use for them in my day-to-day work, especially when it comes to programming. My...

    ▶ Watch on YouTube Opens in a new tab
    Those who have followed me for a while may already know that I'm a bit of an ML Luddite — it's not that I'm opposed to the use of ML-based tools, but rather that I haven't personally found much use for them in my day-to-day work, especially when it comes to programming. My hypothesis thus far has been that this at least in part due to the nature of the work I'm doing; it often does not fit neatly into ML's strong-suit, namely pattern-replication where there are already plenty of examples for the ML to draw upon. Well, there's enough hype around vibe coding these days, and especially agentic AI coding assistants like Claude Code, that I felt like I should try it "in anger". Concretely, I have some non-trivial changes I'd like to make to the type-safe rigid body transformation crate Sguaba ( https://github.com/helsing-ai/sguaba ), and figured this could be a good testing ground. Sguaba doesn't have too much code, but it is sufficiently involved both in terms of the implemented logic and the use of Rust's type system that I think the ML will have its job cut out for it. This video is my attempt at disproving my own skepticism — working with Claude Code to implement some of these changes end-to-end. I also haven't used these tools myself *at all* thus far, only watched a few videos and read a few blog posts, so this is an unfiltered first-and-second impressions experience! We got through two (the easiest two) out of the four things, and then ran out of tokens 😅 But overall the experience was interesting and educational. I don't think it disproved my skepticism, though it did certainly prove that with sufficient pair programming, you can get very far. Still unclear to me that it saves time overall though, at least for specifically these kinds of tasks. If you're interested in finding out more about the sponsor of this video, Hudson River Trading, see https://www.hudsonrivertrading.com/gjengset The slides for the Sguaba presentation, you can find at https://jon.thesquareplanet.com/slides/sguaba/ The final PRs to Sguaba are https://github.com/helsing-ai/sguaba/pull/27 and https://github.com/helsing-ai/sguaba/pull/28 0:00:00 My skepticism 0:07:00 The sguaba crate 0:25:18 Compile-time asserting macro constructor 1:30:38 Builder that restricts order with type-state 2:28:17 What I wanted to do next 2:36:06 Concluding thoughts 2:37:28 Questions 2:58:24 A wild sponsor appears! Live version with chat: https://youtube.com/live/3NGXL_8RzEI
  • Jon Gjengset youtube.com channel live-coding video youtube 2025-05-30 19:57
    ↗

    Lately, I've been trying out the game SHENZHEN I/O ( https://www.zachtronics.com/shenzhen-io/ ), and have really enjoyed the assembly-like coding-based puzzle solving. So, this video is trying something new: playing a game on stream in order to teach. We played through parts...

    ▶ Watch on YouTube Opens in a new tab
    Lately, I've been trying out the game SHENZHEN I/O ( https://www.zachtronics.com/shenzhen-io/ ), and have really enjoyed the assembly-like coding-based puzzle solving. So, this video is trying something new: playing a game on stream in order to teach. We played through parts of the game from the beginning, while I explain assembly concepts as we go! The assembly isn't "real", but many of the things you learn relate quite closely to concepts in real-world embedded and assembly programming. 6.828 (now 6.1810): https://pdos.csail.mit.edu/6.828/ 0:00:00 Introducing SHENZHEN I/O 0:05:20 The first puzzle 0:07:37 The instruction set 0:20:53 Finishing first puzzle 0:24:57 Second puzzle: handling input 0:29:49 Third puzzle: conditionals 0:44:38 Fourth puzzle: compound signals 1:10:46 Fifth puzzle: discrete output 1:26:03 Sixth puzzle: arithmetic 1:30:20 Seventh puzzle: handling time 1:45:48 Eight puzzle: discrete inputs 2:21:09 Relation to "real" embedded programming 2:32:18 How to actually learn assembly Live version with chat: https://youtube.com/live/wBREOhqYAPE
  • Jon Gjengset youtube.com channel live-coding video youtube 2025-03-10 08:08
    ↗

    For this stream, I wanted to implement something in Rust where we didn't _also_ need to learn a new technical topic, and instead could focus just on the "writing Rust" part. After digging around for a bit, I came across https://github.com/silentbicycle/guff in my old...

    ▶ Watch on YouTube Opens in a new tab
    For this stream, I wanted to implement something in Rust where we didn't _also_ need to learn a new technical topic, and instead could focus just on the "writing Rust" part. After digging around for a bit, I came across https://github.com/silentbicycle/guff in my old bookmarks — it's a command-line tool that takes a stream of data on STDIN, and plots it to your terminal using good-ol' ASCII (no ncurses interface or TUI or anything, just prints). guff was last updated 10 years ago, and is written in plain C, so felt like a good candidate for a refresh that we could also add functionality to. You can find `dings`, the resulting port, at https://github.com/jonhoo/dings/, and the commit at the end of the stream at https://github.com/jonhoo/dings/commit/e7e7a8f4487cc620719a0672c92b3fe8dd232212. You can join my Discord at https://discord.jonhoo.eu/ 0:00:00 Exploring guff 0:59:44 Gathering data 2:16:38 Scaling to terminal 2:58:52 Adding axes 3:29:23 f64 rounding 3:46:07 Counting mode 4:08:28 What are CDFs? 4:26:47 Time to organize the code 4:58:57 Adding the CDF transform 5:36:17 Adding log(x) and log(y) Live version with chat: https://youtube.com/live/MAwYsKYYXs0
  • Jon Gjengset youtube.com channel live-coding video youtube 2025-01-02 14:32
    ↗

    What better time to start the new year than with a Q&A‽ In the span of four hours, we got through almost 90 questions(!) covering everything from IPv6 to ethics, from Rust's 2024 edition to monetization of content. The questions were asked both ahead of time and live (using...

    ▶ Watch on YouTube Opens in a new tab
    What better time to start the new year than with a Q&A‽ In the span of four hours, we got through almost 90 questions(!) covering everything from IPv6 to ethics, from Rust's 2024 edition to monetization of content. The questions were asked both ahead of time and live (using https://wewerewondering.com/ ), and I've timecoded them all as chapters on this video for easier discovery. Live version with chat: https://youtube.com/live/eMuGHXMjJTU 0:00:00 Introduction 0:02:42 What's your stand on "the AI stuff"? 0:06:51 Have you had to do a "LeetCode" interview? 0:09:52 How can I actually finish projects I start? 0:12:53 What is your opinion about nix and NixOS? 0:16:48 How do you view the Zig programming language? 0:19:18 Will you do any more CodeCrafters streams? 0:21:18 will you do any more from-scratch building videos? 0:21:57 Do you use a debugger like GDB? 0:24:40 Will you decrust rayon? 0:26:11 Can you tell us more about ReadySet? 0:30:28 Who's been instrumental in your programming journey? 0:34:08 What do you think about Amazon’s recent RTO-mandates? 0:39:31 How do you navigate a large codebase? 0:45:23 How do I learn to write performant code in Rust? 0:49:35 Can we ever be truly free from libc? 0:52:15 How did you learn to speak so "carefully"? 0:58:32 Do you have any favourite Rust or programming blogs? 1:03:23 I'm learning Rust but am struggling to follow your book/videos 1:07:48 Should rustc move away from C++ written LLVM? 1:11:41 What are your thoughts on the state of IPv6? 1:13:30 Are you interested in formal verification? 1:25:16 If you could study CS again, what would you do differently? 1:29:50 As a Principal Engineer, do you escape the PM aspects? 1:34:16 Do you have ethical concerns about working in the military industry? 1:44:03 Can you provide more technical details around what you've worked on? 1:49:30 Thoughts on the Rust 2024 Edition? 2:02:12 Rules of thumb for "bolt more on" vs "just rewrite it" 2:05:19 What are your main sources to keep up with new technologies? 2:09:04 Do you still keep up to date with academic research? 2:11:29 What inspired/influenced your way of working with humans? 2:18:42 How can we help you make more educational content? 2:36:15 Have you read about the academic research around CRDTs? 2:37:51 What do you think about Rust-side GUIs like Tauri? 2:41:22 What is missing from Rust? 2:51:00 What are you looking forward to the most in 2025? 2:53:22 How are the cats doing? 2:56:56 Is this OK to wish Helsing will never need to use its products? 2:58:55 How do you choose the right abstractions when coding in Rust? 3:01:18 Is the Rust performance debugging experience worse on macOS than Linux? 3:03:49 Have you ever used Elixir/Erlang/other BEAM-based languages? 3:07:49 Rust with a team who are excited about Rust but have no experience 3:10:06 What's a concept that you initially found challenging? 3:13:35 Picking Rust as a startup language 3:15:27 Is the adoption of Rust slowing down? 3:16:50 What new technologies are you willing to learn this year? 3:18:03 Have you considered going vegan? 3:20:37 Does Helsing sell arms to Israel and would you stay if they did? 3:22:06 What is something that you think is underrated? 3:29:18 Running through remaining questions (list in description) Here are the questions I covered in the "run through" at the end. There were _way_ more questions left that these, but these are the ones we go to! - What is one thing you regret learning in 2024? - Thoughts on gpui from the zed team? - What language would you "main" if rust wouldn't exist? - How do you see Rust in Linux kernel? - Have you used ghostty? - Have you made any updates to your setup recently? - Are you neurotypical? - What do you think about graphics programming in Rust? 3:32:14 - Why is your mascot a llama? - How hard is it to land a first job working with Rust? - Will you decrust actix-web? - Have you ever had to fix memory fragmentation issues in Rust? - What are your plans for 2025 around content creation? - How do you retain knowledge? - How do you stay motivated? - How can you stay so lean all the time? - What do you enjoy except coding? 3:35:35 - Is it expected to look so many things up while reading R4R? - When did you pick up Rust? - Why didn't you stay in academia? - Is self-teaching Rust possible? - Are you afraid of dying (too early)? - How can I improve my English? 3:39:34 - What is the tech stack for this site? - Why doesn't Rust support arbitrary sized integers (e.g., u1, u2)? - Why can't Rust's std be distributed as a static library? - What's the source of your aversion towards Blockchain? - Are you still enjoying Norway? - Are you concerned about Rust unsoundness bugs? - What software do you use for dealing with documentation? 3:44:50 - How do you keep up with friends (esp. across timezones)? - Have you tried the zed editor yet? - Does being in Norway make up for career/income upside lost from the US? - Any wisdom on Borrow vs AsRef?
  • Jon Gjengset youtube.com channel live-coding video youtube 2024-09-21 10:25
    ↗

    In this stream, we peeled back the crust on the quickcheck crate — https://github.com/BurntSushi/quickcheck/ — and explored its interface, structure, and mechanisms. We talked about what property testing is, how quickcheck lets you do it, how to go "more advanced", and how it...

    ▶ Watch on YouTube Opens in a new tab
    In this stream, we peeled back the crust on the quickcheck crate — https://github.com/BurntSushi/quickcheck/ — and explored its interface, structure, and mechanisms. We talked about what property testing is, how quickcheck lets you do it, how to go "more advanced", and how it all works under the hood (spoiler: no magic!). For more details about quickcheck, see https://docs.rs/quickcheck/. Discord: https://discord.jonhoo.eu 0:00:00 Introduction 0:02:59 What is property testing? 0:05:11 What does quickcheck do? 0:08:28 Walking through an example 0:19:03 Decrusting the quickcheck! macro 0:22:01 Decrusting the quickcheck fn 0:23:45 Decrusting the Testable trait 0:31:17 Decrusting Arbitrary::arbitrary 0:47:10 Decrusting TestResult::discard 0:54:16 Decrusting Arbitrary::shrink Live version with chat: https://youtube.com/live/53JgWT9Ugg8
  • Jon Gjengset youtube.com channel live-coding video youtube 2024-08-25 07:27
    ↗

    For some time I've been looking for an opportunity to do a stream on writing a parser + interpreter for... something. Anything really. I've wanted to implement a parser following matklad's excellent article on Pratt parsing (...

    ▶ Watch on YouTube Opens in a new tab
    For some time I've been looking for an opportunity to do a stream on writing a parser + interpreter for... something. Anything really. I've wanted to implement a parser following matklad's excellent article on Pratt parsing ( https://matklad.github.io/2020/04/13/simple-but-powerful-pratt-parsing.html ), though honestly anything in the area of parsing would do. Well, CodeCrafters have recently released a new challenge in beta that follows Robert Nystrom's Crafting Interpreters book ( https://craftinginterpreters.com/ ), so I jumped at the opportunity. Join me in working through the challenges, or try it yourself first and compare notes after the fact! You can access the challenge over at https://app.codecrafters.io/join/interpreter?via=jonhoo , which also gives you 7 days free access, or in free source form (without the nice infrastructure) at https://github.com/codecrafters-io/build-your-own-interpreter . You can find my solution code over at https://github.com/jonhoo/lox You can join my Discord at https://discord.jonhoo.eu/ 0:00:00 Introduction 0:07:36 What is compilation? 0:28:54 The Lox language 0:44:26 Lexing single-character tokens 1:40:31 Lexing multi-character tokens 2:14:18 Lexing numbers 2:47:54 Lexer errors 3:05:37 Lexing comments 3:15:53 Lexing strings 3:29:13 Printing numbers 3:36:09 Outlining the (Pratt) parser 4:16:41 Parsing expressions 5:01:18 Parsing special statements 5:58:56 Extract out statement parser 6:38:42 Finish up expression parser 6:49:34 Printing token trees 6:59:47 Trying out the parser 7:29:13 Aligning with expected output 7:37:02 Tests falling like dominoes 7:50:41 Outro Live version with chat: https://youtube.com/live/FdZmJ0DAmn4
  • End of feed
Maibook — your private personalized AI community
  • rcanand.com
  • mlaillc.com
  • @rcanand (X)
  • LinkedIn
  • Feedback
  • Credits