Handmade cities

Boston - Aug 9-10 2024.
Seattle - Nov 20-22 2024.
Tickets available now

Learning Jam

March 15-17. March 22-24.
See the results.
March 15-17.
March 22-24. See the results.
Learn more

We are working to correct the course of the software industry.

We are a community of low-level programmers with high-level goals. Originally inspired by Casey Muratori's Handmade Hero, we dig deep into our systems and learn how to do things from scratch. We're not satisfied by the latest popular language or the framework of the month. Instead we care about how computers actually work.

Software quality is declining, and modern development practices are making it worse. We need to change course. Help us get the software industry back on track.

Latest News

Hello Handmade Network! 2024 has been great so far. Most notably, we held our first-ever Learning Jam in March, in which participants learn about a topic and share that knowledge with the rest of the community. We had great turnout for an experimental jam in its first year, and I’m excited to revisit it in the future.

But looking back, not everything we’ve done over the last couple years has been quite so successful. We’ve excitedly kicked off projects like our education initiative, Time Machine, even a 501c3 behind the scenes. Sadly, none of these have panned out. Making good educational resources with a Handmade flair is hard (really hard) and requires a huge time commitment from a rare type of person. Time Machine was a fun idea, but was never destined to succeed as a large community project. And the 501c3…we’ll save that for another time.

Community members did great work on these projects, and we learned a lot, but as time passed it became clear that we were neglecting the heart of the Handmade community: projects, and the people who author them.

Handmade software is literally the point of the Handmade Network. Communities that talk about programming are a dime a dozen. But Handmade software are different. It is so fast, so capable, so lightweight, so simple, that it shocks people with what modern computers are capable of.

At the end of the day, Handmade projects are what brings people to the community. This is not just me being nice; our Google Search analytics show that RemedyBG is by far the #1 source of traffic to handmade.network. #project-showcase is also the most popular channel on the Discord, and we frequently hear that it inspires people to dig deeper into their own projects. And ultimately, if we’re not making quality software, what’s the point?

So this year, we are 100% focused on projects. Our sole goal is to promote and boost the amazing work being done by the Handmade community. To that end:

  • We’re doing more jams. In addition to the Learning Jam, we’ll bringing back both the Visibility Jam and Wheel Reinvention Jam for another year—and plan to keep doing so indefinitely. The Visibility Jam will be in July, while the Wheel Reinvention Jam will be September. See this page for all the details.
  • We’re doubling down on Unwind. Our monthly Twitch show Unwind is an opportunity to dig deeper into technical details with the authors of various projects. The first few episodes have been a great time, but there’s so much more we can do with the show, and we hope to increase the show’s reach so that even more people can be aware of the great work being done by members of the community.
  • We’re redesigning the website. The current website design is very old, and doesn’t do a good job highlighting the actual work people are doing. Additionally, although the project system has been working pretty well for jams, there are many quality-of-life issues. The wonderful Jes Chuhta has been crafting a new design for us, and Asaf and I have been implementing it this month. In fact, I’m streaming the work every Monday and Friday this month over on Twitch.

As for our previous initiatives, we’ll be sunsetting them and archiving their content as necessary. Nothing will be lost except our time and our pride, but we’ll recover. 🙂

Before I close, a few key project updates:

  • Disk Voyager is coming along beautifully and already has dozens of very happy alpha users. He recently added a bookmarks / quick access panel, which I am very excited about. It will soon enter open alpha, so go to https://diskvoyager.com/ and sign up to make sure you get access.

    A screenshot of Disk Voyager's new bookmarks panel

  • Cactus Image Viewer has been receiving lots of quality updates recently, with more on the way, including a gallery of other images in the folder. You can download the latest version from GitHub.

    A screenshot of Cactus Image Viewer's new gallery UI

  • Orca is on the cusp of another major release. Shaw and I rewrote the Python tooling in C to reduce dependencies, Reuben added a complete libc implementation (no more shim!), and Martin rewrote the vector graphics backend in WebGPU. Make sure to subscribe to the Orca newsletter to be notified when it releases.

And finally, Abner has started a Discord server for Handmade Cities. You can read more about his rationale in this blog post, but if you are interested in meetups or coworking with Handmade folks, I recommend you go join.

Looking forward to many more great things this year! We’re just getting started.


Around the Network

Blog comment: Plotting
Simon Anciaux
New blog post: Plotting

One of my wishlist-items for BEdit has been plotting, especially when dealing with wav-files. Is the sound popping because of my audio mixer or is the file not set up for looping?

How do you plot from the console version of BEdit? Well, you really don't plot on the console directly. Consoles are just not enough for that level of graphics (I did not attempt ASCII art "plotting"), so instead the plots get exported to another file format... but which?

As there aren't really any standardized plot format (unless you count CSV) I though a simple SVG image export would suffice. No need to rasterize the a bitmap and zooming wouldn't degrade the quality. However, after exporting a short WAV plot (about 30k samples), the browser was still showing loading UI after several minutes. I also tried OBJ file format but Paint3D was just as slow.

For the last week or so I've been working on a custom HTML to display the plotted data. A plot file containing around 3.5 million samples will display (after an initial load time of < 10 seconds) without noticeable latency.

Now I've told you about it, but if you want me to show it - a short clip of the UI: https://www.youtube.com/watch?v=HlzS8Evjxfc

New forum thread: Named pipe watch support
New forum thread: Coroutines
Blog comment: How bad is LLVM really?
Miguel Lechón
Blog comment: How bad is LLVM really?

Community Showcase

This is a selection of recent work done by community members. Want to participate? Join us on Discord.