zerosleeps

Since 2010

Reading log for 2021

Reading log summary for 2021: 30 books completed, down on 39 from 2020. I abandoned an additional four.

4×2-stars, 11×3-stars, and 9×4-stars.

Six 5-stars, but spread across just four books as I read Andy Weir’s “The Martian” and “Project Hail Mary” twice in 2021.

Beancount

Well I’ve done it. I’ve converted my personal financial transactions to Beancount plain-text accounting format.

Before I dumped my old MacBook I exported everything from Banktivity to a QIF file. Boy what a pain that file format is to work with. I tried parsing it using Python a few different times, but I eventually resorted to just using Sublime Text and some regular expressions. It’s one of those one-off tasks so there was no point sweating over anything more robust or reusable.

Interestingly, during about my 3rd attempt at scripting the conversion, I installed a trial version of the latest release of Banktivity to see if maybe chucking money at the problem was in fact the best solution. First thing it asked for? The credentials for an online Banktivity account. I couldn’t see any way around the creation of an online account, so that made my easy decision every easier. You blew it, IGG Software.

On autoloading

I made an aside about my dislike of autoloading in Rails a few weeks ago. As is almost always the case, other folk are far more eloquent at explaining these things than I am, so here’s a person called Eric Bower on the matter:

Since there are no import statements at the top of the file, it was a guessing game to figure out where source code was located. Is SomeClass a class we created in one of our repos? Is it a third-party class? I have no clue just by looking at how the class is being used.

Banktivity

I’ve been using an application called Banktivity since early 2016 to track my personal finances. Apparently I paid AU$83 for it back then, and another AU$50 in October 2018 to upgrade to Banktivity 7, and that’s the version I’ve been using ever since.

Then in mid-2020, and with great excitement, IGG Software announced that the next version of Banktivity would be switching to a new pricing model…

…a subscription 😡

They tried to sugar coat it by explaining you could subscribe then unsubscribe, and still be able to use the software. “A subscription unlike any other”. I absolutely get it - subscriptions are a great way of ensuring developers receive a predictable income, and customers receive continual updates. And don’t get me wrong: I rarely hesitate to plonk down money for software that makes my life easier or better, and I have several subscriptions for software.

But Banktivity just wasn’t - and still isn’t - worth another AU$50 to me. I only use it to track where money comes from, and where money goes. I don’t use any of the bank integration stuff, budgeting, or investment tracking functionality. I just like to be able to see how I’m doing, and have a good history of my spending. It’s a great life-journal too (“can you remember when we went to see that show?”) and it’s how I was able to open this post with exact dates and numbers.

So I stayed with version 7.

Right up until I got a new M1 MacBook this week. Banktivity 7 is old enough that I’d need to install Rosetta to use it and that, I’m afraid, was the straw that broke the figurative back.

So here we are. Another blog post where I state a problem, don’t have a solution, and just kind of wonder aloud what I should do about this. As I’ve alluded to I don’t want to stop recording this information, and I have a lot of history that I don’t want to throw away. But it doesn’t feel like a big enough problem that it’s worth paying for? Pre-2016 I just used a spreadsheet. Could go back to doing that? Or I could use something like Beancount which combines the beauty of plain-text files with the nerdiness of Python? I briefly tried GnuCash but it’s ugly and difficult and does way too many things I’d never touch.

Ah well, something else to add to my growing list of projects I really need to give my attention to.

Converting Jekyll posts

Progress update on maybe possibly switching this site to Django.

So far so good. As predicted turning Jekyll posts (which are Markdown files with some YAML front matter) was pretty straightforward: a few regular expressions and a bit of json.dump gets me what I need. It’s not pretty, but it doesn’t need to be.

I dithered around a for a bit trying to work out if I should use migrations (with the posts data baked in since the source files won’t be available anywhere other than my local machine), or JSON fixtures. I’ve settled for fixtures, since I’ll need some realistic data to run tests against anyway, and it means I can load the posts whenever I want and as many times as I want.

Fun fact which doesn’t appear to be particularly well documented in the Django documents: if you include the “pk” value in a fixture, Django will create/update the corresponding record in the database. But you can also omit “pk” and it’ll always create a new record (assuming the model has an automatic primary key).

Also as predicted, turning the reading log entries into something sensible is going to be fiddly. Again, a couple of regular expressions has gotten me about 75% of the way, but for the other entries I’m just going to manually fix them up. There are only 87 of them in total (as I type this) so no big deal if I have to eyeball ≈20 of them.

My next challenge will be tackling Octopress’ code blocks and img tags.