Home

Posts

Scraping Transaction Data from KBC Bank

  • 1 min read

In a previous post, I mentioned importing transactions using ledger/hledger and plain text accounting. As my former bank PTSB recently raised their fees, I decided to move to KBC. I was excited to see, as part of the open payments directive, they have a nice developer portal. I reached out to KBC’s dev team, but alas they are only accepting registered companies, who meet stringent criteria. They told me they hope to open it up soon to end users, I live in hope!

Read More

Favourite Podcasts

  • ~1 min read

Over the last while I’ve been collecting wonderful podcast episodes from the hundreds of hours I’ve listened to. I’ve even workshopped some of my favourites with colleagues and friends (they all approve!). Luckily a neat service called HuffDuffer allows you to create a personalised feed from episodes spanning any podcast you see fit. All you need is a direct link to the MP3 or indeed any format audio file.

Read More

Python 3 In-Memory Zip File

  • 1 min read

In Python, BytesIO is the way to store binary data in memory. Most examples you’ll see using zip files in memory is to store string data and indeed the most common example you’ll find online from the zipfile module is zipfile.writestr(file_name, "Text Data"). But what if you want to store binary data of a PDF or Excel Spreadsheet that’s also in memory? You could use zipfile.write() (designed to take binary data) but then you can’t specify a filename (since our in-memory file was never written to a location on disk). The reason for this is simple: for a web request or for a test case, you shouldn’t need to store any files on disk.

Read More

The year of self hosting

  • 1 min read

Over the last month or so, I’ve come to embrace my home server setup and how powerful it can be. Here I have this small little Intel NUC Server, for which I promised myself I would do lots of cool and interesting things with.

Read More

Scraping Data from your Bank in Python

  • 4 min read

As part of my previous posts, I talked about ledger and plain text accounting. The only part missing is that you need a method to import transactions from your bank. For this I have been doing this by hand, bi-weekly. I would have to do the following:

Read More

Slack Bots for Work

  • 1 min read

In a previous post, I mentioned how I get notified of the restaurant menu via a Ruby script. Recently I’ve moved to a totally different product area and the main communication channel we use is Slack. Naturally enough, I ported the Ruby code I wrote, and it now posts the menu every day to our Slack channel.

Read More

Run Command on SSH Login

  • 1 min read

Do you need to run a command on SSH login? There are a lot of solutions on the web for this, but most of them are very complex. I stumbled across this easy method of using the authorized_keys file, simply add command="ls -l" (replacing ls -l with something a bit more useful like tmux or screen) in front of the key fingerprint. This also means you can have different commands for different keys if you choose.

Read More