My Point of View
technology, programming, and rants (not necessarily in that order)
I love Ruby, but I don’t understand how it works. And my biggest character flaw is that I can’t just read the source, I have to build my own.
You can see my previous posts on this subject:
I Built a Ruby Parser I Built a Ruby Compiler Ideally the interpreter would have been in between those two.
And before you get too far, here’s some required background reading: justforfunnoreally.dev
Cora 🔗So me and the clanker have been working on a new Ruby interpreter named Cora.
Working in technology in your mid forties feels scary. This is an account mostly for myself, as a diary entry.
Early to Mid 2025: Feeling Behind 🔗2025 was a weird year for most coders. I felt it somewhat at my day job, but more so in my personal open source work. That’s where my identity as a coder really lives, for whatever reason. It’s the stuff I do when no one needs me to do it.
Note: Please don’t share this on Hacker News – I don’t need the grief from gatekeepers telling me I don’t know how to write a compiler. This is an account for myself and for friends. /hugs
I said in my previous post, I Built a Ruby Parser, that I would write about my ongoing compiler project Natalie, but I really wanted to finish the compiler rewrite first. I’m proud to say the rewrite is finished! (More about that in a bit.)
Sorry, this post will read like a “dear diary” entry rather than some life-changing HN-worthy guidance.
Back in November 2020, almost on a whim I started work on a new parser for the Ruby programming language. It was almost exactly a year after I had started working on my compiler project (I hope to write a longer post about that someday soon), and in my frustration with the state of affairs with Ruby parsers available to a humble C/C++ programmer, I decided to see how hard it would be.
Hi! 👋
My name is Tim. I like to create stuff.
You can follow me on the birdsite. Indeed, I have left Twitter at least once, but for now, I’m back. :-) In the day I work for a company called Planning Center, which builds really great software for churches. At night and on weekends I like to tinker with things that bend my mind, such as compilers and algorithm challenges. I often do volunteer tech work for my church, so this blog might talk about the intersection of technology and church life. I like to record videos on YouTube of my coding sessions. I have a few other sites that I have created, some of which may still be around in the year you are reading this: timmorgan.org timmorgan.dev tilde.town/~seven1m seven1m.sdf.org github.com/seven1m git.sr.ht/~tim
First, some background 🔗My church uses Planning Center Check-Ins to track attendance for churchgoers, and to help with security with little ones going to kids areas. It’s a great product. Yay!
Check-Ins runs on iOS, Android, macOS, and Windows machines. Yay!
Dymo label printers are cheap and plentiful. Yay!
Check-Ins can print to a Dymo printer from macOS or Windows, but not from a tablet. Boo!
I’m very proud to announce the completion of my first programming language compiler!
Malcc is an incremental and ahead-of-time lisp compiler written in C.
This is the story of my progress over the years and what I learned in the process. An alternate title for this post is: “How to Write a Compiler in Ten Years or Less”
(There’s a TL;DR at the bottom if you don’t care about the backstory.)
Recently I switched to the Sway window manager on my favorite laptop and realized that ClipIt does not work there. I was reminded of an old Ruby script I wrote way back in 2012 to serve this purpose.
Time to dust that thing off and make it work with Wayland! I installed the excellent wl-clipboard by Sergey Bugaev and started hacking.
Here is my script:
Here’s how to use it:
Save the script above to a file at /usr/local/bin/clipd and make it executable.
Recently I made the decision to shut down the church.io website (it’s now a redirect), delete the corresponding Slack community, and move the GitHub repositories back to my own personal account. Church.IO failed to build the community of software creators I dreamed of.
Mistakes were made. This is a retrospective, and an explanation for anyone wondering where we went.
What Was it? 🔗“Church.IO” was created in 2011, intended to be a lovely little community of developers and designers who code and craft open source software specifically for churches. The seed project was my personal labor of love, OneBody, which I’ve been hacking on for over decade. There were a few of my other other small projects like bible_api, too.
Late in 2017, I politely said good-bye to Twitter and deleted my account. My Twitter account was 10 years old, and the anniversary, as anniversaries often do, prompted me to think about the value of a decade spent microblogging.
I remember when Twitter was a quiet site for geeks, and my first tweets were about HTTP servers and Git and SliceHost (remember them?). And my geek friends replied sometimes. And there were no politics.