Beancount for Personal Finance
I love learning new things. Rabbit holes can be fun. This year I dug into double-entry accounting. And I didn’t just learn the theory; I decided to use double-entry accounting, with some open source plain text accounting software, for personal finances.
I’ll explain what I mean by these terms and what I have been up to in this post.
- Double-entry accounting: An accounting method where every transaction is recorded against at least two accounts.
- Plain text accounting: An accounting method where all your data is recorded in plain text, making the data portable and scriptable.
- Beancount: An open source accounting package, written in Python, which implements double-entry accounting in plain text.
Turning on Key Lights for Google Meet
I got two Elgato Key Light Airs for better lighting when I am on video calls. After setting them up, I wondered: How do I turn them on automatically for video calls?
I wanted to open a Google Meet link and have the lights turn on instantly, like my webcam.
It’s Not Easy Yet
One danger in mastering anything is forgetting that what seems simple to you is not simple to everyone.
It is normal that something learned deeply seems self-evident to you. According to Albert Einstein, “If you can’t explain it simply, you don’t understand it well enough.” But when you do understand it well — when you have studied something deeply — you can explain it simply. When you have practiced a skill for years, it becomes second nature.
You make it look easy.
But for your friend, what seems obvious to you may be unknown, and what seems easy may require great effort.
It’s your job to support them. Give them your mental models. Teach them your tricks. They might need to watch you because you may have so deeply internalized what you’re doing, that you oversimplify it when explaining it.
Tell them that it isn’t easy yet, but with practice, it can be.
Sharp Tools
Shaving with a new razor is wonderful. I found that out this spring. I was on vacation and had no razor, so I bought a new one. I could not believe how easy it was to shave — fun, even. And that’s when I found out my old razor was dull.
What struck me is that I never noticed that my razor was dull. The gradual wear with every use was imperceptible, until I tried a better tool.
Gradual degradation is all around us. It’s well understood that degradation is a default in the physical world. Iron rusts, things experience “wear and tear,” and nothing lasts like it used to.
Degradation happens in the digital world too.
Open Source for the Rest of Us
One of the amazing gifts that software engineers have today is the volume of free, high-quality, open source software. For instance, Python has 384,273 projects on PyPI. They span everything from utilities like Requests to backend Web frameworks like Django to machine learning packages like scikit-learn — and more. It’s incredible when you think about it.
When I started getting into software, I remember people talking about contributing to open source. And when I heard contribute, I was translating that to create or maintain, even when those words weren’t used. It sounded amazing — and overwhelming.
I’m very grateful for the work of open source creators and maintainers, and we are at no risk of appreciating that work too much. I am glad that we are talking more these days about how to sponsor open source work, as companies and as individuals, and have programs like GitHub Sponsors.
But open source contribution means more than creating a package or being a maintainer, as important as those roles are.