I’ve always been a hunt-and-peck typer. I started using computers as early as was physically possible. Sadly, no one ever taught me good habits around typing (let alone ergonomics). Having some small RSI issues in my right wrist, I decided to further go down the route of mechanical keyboards, which I previously discussed here . In October 2025, I purchased a ZSA Voyager mechanical keyboard.…
I last blogged about a “ Tech Go Bag ” in 2015, 11 years ago as I write this. A lot has changed so I thought it’s worth a re-review of my current setup.
About this time last year, I purchased 3 mini computers with the aim of making a Kubernetes cluster. I followed an excellent youtube video: This homelab setup is my favorite one yet - Dreams of Autonomy ( Github Repository ) which described the machines to buy (Beelink EQ 13 Mini), how to upgrade the SSD and RAM , how to provision them with NixOS , setup K3S , and connect using kubectl to manage…
I recently bought a Framework 13 laptop as a personal machine. If you are not aware - Framework makes build-it-yourself laptops. I wanted to review different parts of the process and give an overview of how it’s been from ordering to delivery.
For Christmas as a gift to myself I bought a HomeAssistant Yellow. If you’re not familiar with HomeAssistant - it’s a one-stop-shop to control all your smart lights, plugs, sensors and anything else in your smart home. HomeAssistant is the software part and as it’s open source you can freely install it on any computer you have. In fact many people install HomeAssistant on a…
I’ve written previously on importing transactions to hledger/ ledger from KBC bank in JavaScript and PTSB bank in Python. I took different approaches to each: For KBC, you needed to log in and run Javascript which scrape the transaction table and download it formatted as CSV For PTSB, the script automatted logging in, get the transaction table and save locally as CSV Both approaches are…
I recently replaced a rusty satellite dish and faulty LNB (it has been in use in the house I moved in to for 10+ years I’d guess) and decided to try install one myself. Here in Ireland, the two main broadcast methods of receiving TV are satellite ( Freesat / Sky ) and terrestrial aerial ( Saorview ). An issue I have one larger sitting room TV and one small living room TV. I couldn’t…
Update 2023 : these instructions are out-of-date for the latest Unifi controller software versions . It's preserved here as written for those who still have older versions. This post uses a file called gateway.config.json and Unifi now say : This article is not applicable to the UniFi Dream Machine models, because all configurations are already available in the UniFi Network user interface. So I…
Ubuntu have recently released the new 20.04 LTS codenamed “Focal Fossa” . I’d also recently seen a tool that piqued my interest, Hashicorp Packer . Packer builds machine images that can be deployed to a cloud or as a virtual machine, or just even a plain disk image. You can even generate many images at once, really simplfying deployment. Very handy if you wanted to create virtual…
Over the summer, I upgraded my home network to Ubiquiti gear. Ubiquiti do business Wifi, all the way up to covering stadiums. I first heard about them from Troy Hunt and then again from Marco Arment on Accidental Tech Podcast . Ubiquiti are popular in prosumer space - for people serious about good Wifi . So far it’s been an excellent experience and I’d highly recommend it. After…
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…
I recently started using PiHole to block ads on my home network. As the name suggests, you install it on a raspberry pi . I left it in situ for about a month, until I decided I wanted to swap out the pi, but keep PiHole. The natural solution to this, is to use a docker container. Rather helpfully, there is a publicly available docker build of PiHole . Simple, right? Well my home network is also…
Since hearing about org-mode on the web many years ago, I always meant to give it a spin. I only ever found one two problems: Time - Life eh? It's a mode of Emacs for which I'd also have to learn (again time) So I recently set about solving both shortcomings, as painful as it was to dismiss all the effort I put in to my vim muscle memory over the years. The tough part usually is finding good…
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…
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…
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. The first thing I’ve hosted is Plex . I’ve used Docker Compose to bring up a Plex Docker container, with: Filebot (to tag video files) Beets (to tag audio files)…
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: Log in to online banking Go to the transactions page Select the date range for transactions I needed (double check last date of transaction in…
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. This also got me thinking of what other information would be handy to have. I…
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…
I’m a big fan of the shell and the productivity it brings, you can have a text editor, command to run a server and more within easy reach. I use a shell at work, at home and on the go. On the go could be using my iPad or iPhone. One of the first SSH clients on iOS was iSSH, which I used many years ago. After this, Panic released a professional class application called Prompt . Prompt is what…
For the last few years, I’ve always wanted to budget properly and see where my money was going. But like all habits that are good for you, looking after your finances takes time, care and attention. I started off by researching the market for budgeting software. A lot of the prepackged software out there was very US-centric, including Quicken, Microsoft Money and Mint.com . I eventually…
As part of my masters degree in University College Dublin, we undertook a group project which focused on building a technology product. I’m very proud about how we ran the project, so I’d like to give an overview of it here! The product is a technology news application, which personalised your news feed based on your interests. I like to think of it as Facebook meets Techmeme meets…
If you haven’t tried Google Apps Script , I found a really nifty use for it: smart filtering for email. Wait, shouldn’t I just use Gmails’ built-in filters? As it turns out you can’t - my filter needs to act on email that matched that filter in the past . So in other words: a filter can only act on email it actually “filters”, which kinda makes sense! I’m…
After some thought initially on a new laptop, I decided to spring for an iPad Pro 12.9". So far I am really glad I did, the computer comes with me everywhere. I bring it to work, to visit family, on trips and everywhere in between. It’s the ultimate work computer in many ways, always with you, light enough and comfortable enough for real work™. The keyboard shortcuts in iOS have improved…
I recently read Remote: Office Not Required by David Heinemeier-Hansson (who created Ruby on Rails) and Jason Fried (who co-founded 37 Signals with Heinemeier-Hansson). This book is really a case study in why the future of work will be remote, of which the book did convince me (but I would say, I already believed). The book is really structured to convince those who do not believe in the premise…
Early last year, I purchased two Code Keyboards (one for work and one for home). The Code Keyboards are designed by Jeff Atwood (who founded Stack Overflow ). Mechanical keyboards are “old style” in that the switches are from an era where everything was mechanical, unlike today where everything is glass. So mechanical keyboards have ardent fans and people who don’t really care for them. I did a…
I recently purchased Ulysses Mobile after a recommendation from Macstories . My first impression was how expensive it was priced and what really makes a premium writing application ? Needless to say, I’m not a huge writer. But I do have a real fondness for plain text (it will survive the apocalypse) and by extension, Markdown by John Gruber. The problem for Ulysses is this: there’s…
I backed the Roost laptop stand on Kickstarter , which already had a successful run in their first Kickstarter campaign. I’ve been delighted with the result so far, it lives up to the promises of being super light but yet durable and strong. Here’s a photo of it: It came with a really nice case which holds the Roost underneath and has pockets for a portable keyboard (I use a Logitech…
I recently read O’Reilly Building Maintainable Software (Java Edition). It provides good insight as to what to look for to create maintainability in enterpise software systems. 10 suggestions the book provides: Write shorter units Write simpler units (measured in Cyclomatic Complexity ) Write code once only Keep interfaces very small Seperate code in to modules Couple modules loosely Keep…
In the last year and a half, I set up a Ruby based Dashing dashboard for my team and others in our product area. Here’s what a sample Dashing dashboard looks like: It’s been a huge success, but it was tough to gain traction along the way. Here I’ll summarise what I’ve learned (in no particular order): Don’t do dashboards for managers, do them for teams Use big text,…
Continuing the theme of automation, one of the most repetitive tasks if you work for a big company is timesheets. So I set out to rectify this by scripting it! Start with you configuration, I named mine hours.ini : [DEFAULT] url = FILL_ME_IN username = FILL_ME_IN password = FILL_ME_IN then we need the magic of Selenium to do the heavy lifting, so we install it: $ pip3 install selenium I called…
I love trying to automate the world, it just feels like magic some of the time! I also really enjoy information coming to me, instead of having to seek it. As we are still only in 2016, we have no world killing Artificial Intelligence (yet). So we have to start small, ease the first world problems! So I decided to make my workplaces’ restaurant menu come to me! I decided to write it in Ruby…
I’m a huge fan of Docker ever since I started to use it, approximately a year after it was started. It’s one of those technologies where when you start to use it, you immediately know it’s going to be a sea change in how things are done in the industry. It’s definitely going to be more impactful then Virtual Machines . We’ve used Docker to great effect where I work.…
Deliveries helps you track packages from major shopping (Amazon, Apple) as well as nearly every major package distribution company like DHL, UPS and FedEx. I’ve used the app for years and it’s really impressed me. It can sync via iCloud or the Junecloud cloud service by the makers of the app, Junecloud (not confusing at all, hey!). It started on the Mac as a simple dashboard widget…
Recently I’d seen a post on Hacker News about a course for the React JavaScript Framework . I haven’t done much with JavaScript, apart from a course in work, which was focused on the language itself and jQuery . React is a front end framework, which allows you to build reusable components (and generate them with data.) The only real experience I have is writing an application (using…
You can follow the Microsoft TechNet guide to add VisualBasic code in Outlook rules . You can just replace the code they give with this: Sub AutoDeclineMeetings (oRequest As MeetingItem) ' If its not a meeting, we don't process If oRequest.MessageClass <> 'IPM.Schedule.Meeting.Request' Then Exit Sub End If ' Get the appointment in the meeting Dim oAppt As AppointmentItem Set oAppt =…
Editorial is an iPhone and iPad plain text editor that’s great for markdown 1 . It also has some nifty automation workflows, in which you can use Python scripts. These can search the web, scrape data, transform text and much more… I pretty much wrote this blog post (and many more) in Editorial. It’s much better then the competition for markdown in particular. Byword is an obvious…
I follow Casey Liss’ blog and recently he had a great post about a technology “go pack” . Lifehacker has written about this over the years , and the Wirecutter has a great article I shared here on this very blog . Also Casey linked to a great post by Katie Floyd on Twitter: https://twitter.com/KatieFloyd/status/630707145999314946 I finally took the hint / inspiration from all…
In alphabetical order: Amazon.com / Amazon.co.uk - usually buy electronics here! Apple’s App Store - I use iOS & Mac heavily, buy a lot of apps! Dropbox - sync files across computers Evernote - I store a lot of notes here. Fastmail - My email, contacts, calendars Hover - great place for domain names (like this one). Lastpass - excellent password manager Newsblur - Personalized RSS for news…
My favourite text number crunching app on iOS bar none is Soulver . What makes it the best? Fast to load Simple user interface that gets out of the way Contextual Keyboards (my favourite is the currency keyboard) Can reuse calculations from previous lines (and name calculations). iCloud sync Soulver is great for when a spreadsheet is just to heavy. I use it a lot for it currency conversion, makes…
My favourite text capture app on iOS bar none is Drafts by Agile Tortoise. What makes it the best? No fluff, loads fast Simple user interface that gets out of the way Extensible actions (which you can add to from their directory ) iCloud sync I’ve tried a lot of other apps like Byword (Not worth the money I think), Apples’ built-in Notes app, Textastic and so on. None felt as efficient…
I’ve had this DeLonghi machine for a year and a half now, and I possibly am slightly a little in love. It was the best rated coffee machine (at time of purchase) on Amazon and it doesn’t dissapoint. For the purpose, it’s wonderful: Make great coffee fast, without a mess. If you’re looking for more, I would have a look at the more expensive models. When I shopped around at…
I recently purchased a Mac Mini Server, for this site to run on. It’s hosted on my home broadband connection, but it’s just really for small time side-projects like this site. Also it’s a way to play around with Docker, VirtualBox, Node.js and all those other fun technologies I don’t get time for. I don’t really plan to post links, but maybe I’ll review things…
On holidays in Lithuania recently I was eating in a restaurant and noticed the music was all in English. It’s not the first time I’ve noticed a non English speaking country playing all English songs in bars, restaurants and taxis. Rather what was unusual was the very few ads and the fact it was an American station. I’m no fan of ads, and am a huge fan of audio in general - be it…