What I've learned in my first few hours using Gleam for a small project.| mtlynch.io
I’ve been experimenting a bit with Gleam and Elixir lately as part of my search for a new programming language. One of Gleam’s flagship features is that it can call Elixir code and libraries, but I couldn’t find any examples of how to do that. I wrote a simple example of calling an Elixir library from a Gleam project, based on my beginner’s understanding of the Gleam/Elixir/Erlang ecosystem. Install dependencies For this example, I’m using| mtlynch.io
I just finished listening to Simon Willison’s interview on the Software Misadventures podcast. I learned a lot from the interview, so I wrote up my notes. This is not a summary of the whole interview, just the parts that were new to me or that I’d like to remember. Simon Willison on the Software Misadventures podcast Who’s Simon Willison? One of the co-creators of Django, the most popular web framework for Python. One of the most popular indepedent bloggers on Hacker News. For the last ...| mtlynch.io
One of my goals for the year is to learn a new programming language. It’s been a while since I learned a new language, and I feel like a lot of the languages I know well (Go, Python, C++) are similar to each other, so I want to try getting out of my comfort zone a bit with a language that feels weird to me. Requirements Here’s what I’m looking for:| mtlynch.io
Suppose you host your podcast on a platform like Libsyn or Podbean. What happens if you decide to switch podcast platforms? You already gave everyone a RSS URL that pointed to your old platform. For example Libsyn gives your podcast an RSS URL like this: https://feeds.libsyn.com/12345/rss When you submitted your podcast to Apple Podcasts and shared your RSS URL with your listeners, you pointed them directly to your podcast platform.| mtlynch.io
I finally found a solution that makes VS Code work consistently with Zig, so I’m sharing my setup in the hope that it saves someone else a headache. Zig extension for VS Code working correctly Before I landed on a working solution, I kept running into issues with Zig version mismatches or VS Code completely failing to recognize Zig semantics and failing over to naive autocomplete.| Notes on mtlynch.io
Oracle is not a very popular cloud hosting service, but they have an unusually attractive free tier offering. You can run the following two VMs for free 24/7: 4 CPU / 24 GB RAM Ampere A1 ARM VM 1 CPU / 1 GB RAM AMD CPU The AMD one is not that exciting, but a 4-CPU / 24 GB system is more powerful than you’ll find in the free tier of any other cloud vendor.| mtlynch.io
I tried out the Cline AI assistant yesterday, and then I went into a trance for five hours where I couldn’t do anything but stare transfixed at Cline fixing bugs for me. As a professional developer, it was both enchanting and terrifying. It’s enchanting that AI has reached this level of proficiency. It’s terrifying for the same reason, as I’m not sure what role I’ll serve in a world where AI can write code better and faster than I can.| Notes on mtlynch.io
My router runs OPNSense Business. I like having an open-source router, but I have a few gripes with it. My biggest issue is that, by default, OPNsense can’t resolve hostnames on my local network. Why can’t OPNsense resolve local hostnames? For every other router I’ve owned in my life, if there’s a computer on my network named foo123 and I run ping foo123 from my main desktop, then everything just works. My desktop successfully pings foo123.| mtlynch.io
The term “cold email” refers to emailing someone who you’ve never spoken to before. There are lots of guides on writing cold emails. This one is a bit niche, as it’s about cold emailing a particular person: me. But I guarantee you that it’s the best guide you can find on this hyperspecific topic. I’m publishing my guidelines under the Creative Commons BY-4.0 license, so you’re welcome to reuse or adapt them to guide people in emailing you.| Notes on mtlynch.io
I have a few Samsung SSDs, and I always have trouble remembering the process of secure erasing them, as Samsung Magician software is terrible. Here are my notes for overcoming Samsung Magician’s gotchas in the process of secure erasing a Samsung SSD. You need a Windows or MacOS system with a Samsung SSD attached This requirement drives me crazy, as Samsung Magician is creating a bootable USB disk, so it shouldn’t care what’s on your current system, but it does. And Samsung Magician only...| mtlynch.io
The cryptocurrency language barrier There’s an unforunate language barrier among technologists right now. Cryptocurrency enthusiasts are excited about the ecosystem and what’s going on in crypto-world right now. They’re trying to bring new people in, but they’re often so entrenched in their crypto bubble that they struggle to explain any crypto stuff to non-crypto people. I feel like I’m a good candidate to bridge the language gap, as I understand the fundamentals of cryptocurrency ...| mtlynch.io
I have a few toy utility apps that I run 24/7 on cloud infrastructure. One example is PicoShare, a simple web app that makes it easy for me to share files with friends and teammates. There are several convenience apps I would run if it were easy to run them constantly. But there’s enough friction to running even a simple app 24/7 that I don’t do it. In the past, I’ve tried running toy apps on my home server.| mtlynch.io
I build this blog using Hugo, a popular static site generator. The way Hugo works is that when I create a new blog post, Hugo generates a default template that looks like this: --- title: "My New Post" date: 2024-11-16T20:33:09-04:00 --- The boilerplate for the post contains a publication time with a timestamp. But the timestamp obviously isn’t the time that I published the post, as I’ve just started writing it.| mtlynch.io
Recently, when I’m having trouble sleeping, I look for software to fuzz test. Earlier this week, I thought back to Fady Othman’s post “Meta Bug Bounty — Fuzzing ’netconsd’ for fun and profit.” It’s a good tutorial about fuzzing code exhaustively. Like most fuzzing blog posts, I found the work a bit difficult to reproduce because it requires the reader to figure out how to replicate the author’s environment and toolchain.| mtlynch.io
Last week, I stumbled upon a reddit post announcing that the author, Charles Marohn, was giving a free talk near my town the next morning. Marohn is the author of Strong Towns, one of my favorite books of the last few years. So, my wife and I attended the talk and enjoyed it. The talk is based on ideas from Marohn’s new book, Escaping the Housing Trap, which I haven’t read yet, so these notes are from memory.| mtlynch.io
A few weeks ago, NVIDIA released Nemotron, a large language model that they derived from Meta’s Llama 3.1 70B. NVIDIA claimed at release that Nemotron outperformed GPT-4o and Claude 3.5 Sonnet on certain benchmarks. That was exciting news, as my experience with self-hostable AI models is that they trail commercial models by about a year in terms of accuracy and quality. I decided to test out Nemotron with a few simple coding tasks to see how it compared to commercial models like Claude 3.| mtlynch.io
Last week, I saw an interesting article on the /r/legaladvice subreddit. An e-commerce business owner was complaining that a customer was suing because the merchant had been sending the customer promotional emails for years that the customer never agreed to. The author deleted the post a few days later, but I found a copy of the text. The merchant was indignant and felt like it was a shakedown, but I was 100% on the customer’s side.| mtlynch.io
A year ago, I listented to an interview with Jesse Pollak on an episode of Into the Bytecode. Jesse works for Coinbase, and he noticed that lots of developers building apps on top of Ethereum were solving the same problems over and over again. He started a project at Coinbase to create a layer on top of Etherum called Base. Base would get Ethereum developers up and running faster because they could use shared solutions to these common problems.| mtlynch.io
I’ve been interested in Ethereum the past year, especially the Base ecosystem. The problem is that after hours of reading about Base, I still don’t get what Base is. Every few months, I check back in on the Base website’s developer section to see if there’s a path to building on Base for a beginner, and the path seems to be “here are some disparate tutorials for very specific things, and if you have questions, come ask us on Discord.| mtlynch.io
Update (2024-07-12): I’ve received more inquiries than I expected, so I’m now closing applications. I’m looking for someone to take over my old content website, Is It Keto. Is It Keto is for sale I worked on the site on and off between 2019 and 2020, but I no longer have time for it, so it’s just been neglected for the past several years. Still, it consistently earns $1-2k/yr in fully passive revenue.| mtlynch.io
My friend Cory Zue has been publishing his live coding sessions, so I decided to watch one and record my notes. My background vs. Cory’s I’ve read a lot of Cory’s blog. We’re both Python developers, but he specializes in Django, whereas I’ve always worked with thinner frameworks like Flask. I have no experience with Django, but I’m comfortable in Python. Dev environment Timestamp 0:10 OS: Ubuntu I expected Cory to be an OS X guy.| mtlynch.io
I’m teaching a small-group, live course about attracting readers to your blog through Hacker News. Sign up by Monday (June 24th) to reserve your slot. Why take a class with me? My blog receives 300k-500k unique readers per year. After Google, Hacker News is the primary way that new readers find my writing. My blog receives 300k-500k unique readers per year, with Hacker News largely connecting me with new readers.| mtlynch.io