In the past month I’ve taken an interest in improving my chess. I learned the basics and played perhaps a few dozen games in school over a decade ago but I’ve otherwise not given it any attention since. I know that sharing the journey with others makes it that much more likely that I’ll build a successful habit so if you’re learning chess and fancy playing a weekly game or…
A combination TIL/PSA: since iOS 18 shipped last year FaceTime has both screen sharing and remote control functionality available if both sides are sufficiently up to date. I’ve found this to be a huge help when providing remote tech-support to family and friends. At the very least it spares folks of the challenge of having to explain all the relevant detail on their screen but it might also…
This week I was working on a QEMU-based integration test suite and needed to customize the base QCoW2 images shipped by the Ubuntu project for use in my test harness. Previously I would have treated this in a similar manner to EC2 and AMIs: launching a VM, SSH’ing into it and applying tweaks, and cloning it to create our desired VM image. Unsurprisingly there is a better way in the form of…
tl;dr Spilled! is the prototypical small, relaxing, cute game. You clean up ocean waste to reveal lovely pixelated landscapes and creatures below, accompanied by a wonderful soundtrack. Runs excellent on Steam Deck - well worth your $6 entry. Separately, check out the noclip_2 interview with the developer Lente on her life and journey to game dev (she developed Spilled! while living on a canal…
Very briefly TIL that, if like me you happen to run Tailscale on your OpenWrt device, you can extend OpenWrt’s backup/restore script to include its Tailscale state allowing its identity to persist through upgrades or restore procedures. To do so, add a new line with /etc/tailscale/ to /etc/sysupgrade.conf . This directs OpenWrt to include the contents of this directory in its backup. NB: The…
In the last year I have developed a strong interest in simracing as a hobby. We are currently living in a golden age of simulated racing with many great titles to choose from, but my preferred one is iRacing . Alongside iRacing’s official matchmaking races there exists a large and healthy ecosystem of community-operated league races. These leagues run the spectrum from extremely competitive…
tl;dr Every Github Gist can be accessed as a Git repository over either HTTPS via their URL or via SSH using the keys you have registered with Github. Github Gist clone menu showing 'clone via HTTPS' and 'clone via SSH' options I enjoy using gists to share example code but when multiple files are necessary it can be very cumbersome to copy and paste them one at a time and re-create their metadata.…
I recently acquired a 50 series NVidia GPU and was unable to get DLSS 4 multi frame gen working in any of the supported titles before realizing that HAGS (Hardware-Accelerated GPU Scheduling) is required to be enabled for it to function. If you are having trouble getting DLSS 4 to work with a supported GPU make sure that you have not accidentally turned HAGS off in the past like me. Hopefully this…
While working on my blog I discovered that some of the image and link sources in different posts had become broken without me noticing. Outside of “hugo says OK” I don’t have any other validation running on my blog so I decided to look for something that could lint the rendered output for dead links and other issues. I tried a number of different tools but ended up using htmltest…
Another short “today I learned” post from the analytics mines. If you have previous experience writing any form of data munging or analytics tasks then you have almost certainly encountered Python, Pandas, and AWS S3 in some combination. These jobs usually follow the structure: download the files from S3. deserialize them into Python objects & create Pandas dataframes. perform…
I attended BSidesSF this year for the first time in a while and saw Aalaa Kamal Satti and Yuru Shao of Pinterest speak about their efforts on password security for both Pinterest’s consumer and business users . During their talk they spoke about implementing support for the /.well-known/change-password URI that allows websites to integrate with the password managers that ship within most…
One constant throughout my past decade has been the presence of a work and personal journal on my desk. I journal for a number of different reasons: to capture contemporaneous notes and details about meetings and life to reference later, to organize and document the different bits of projects and to make them legible into plans, and to leave myself instructions on how to repeat tasks in the future…
This week at work I had the need to build a small ETL (Export, Transform, Load) process to move some data from PostgreSQL database A (a primary relational database used by our application to serve customer traffic) to PostgreSQL database B (a back-of-house instance used to perform metering and other usage analytics). We already use Apache Airflow to orchestrate the metering tasks, data sync and…
I recently had the chance to join Guy Podjarny of Snyk to record an episode of The Secure Developer podcast . We spoke about my time at Intercom and my winding journey into security engineering starting from the product side. You can find a link to the recording and a full transcript of the episode .
Last year I started making a more deliberate effort to make digital memories of everyday life in the form of audio recordings, photos, and video. While I’ve long been a fan of taking a camera with me on trips, the months-long absences of any photos in my Lightroom library made me realize how much every day life I was neglecting to record. As a byproduct of this new habit I’ve ended up…
Web content accessibility has been on my mind recently as I watched one of the other engineering teams at Intercom in San Francisco undertake to make the Intercom Messenger accessible and compliant with the Web Content Accessiblity Guidelines (WCAG) 2.0 Level AA . Despite the continued growth and evolution of the internet it has yet to really live up to its true potential as universally accessible…
The following is a list of some of the projects that I’m currently working on and about which I hope to write periodically on the blog. Eurorack Modular Synthesis (as written about in making again SatNOGS ground station an open hardware/software satellite ground station You might also know me from such projects as: SunshineSF - a public resource to make San Francisco Sunshine Ordinance…
This is an extension of my last post: A brief musical journey , as well as a number of stories which I’ve been posting on Instagram in recent days. As part of my of my adventures in the world of producing elecronic music I came across the fascinating world of modular synthesis. Modular synthesizers are composable musical instruments which are built up of many discrete modules, almost like…
I’m back! It’s been a while but I’ve decided to dust off my old blog and to start trying to write some more regular updates as to what I’ve been doing these last 18 months. For those of you who I’ve not seen in a while it’s been a busy time. One of the primary things I’ve been spending time at recently has been all things music, in particular both learning…
My name is Patrick O’Doherty. Originally from Dublin Ireland, I live in San Francisco’s Inner Sunset neighborhood with my wife Ariane and our wonderful rescue dog Sophie. I’m a big fan of making of all types, and this blog hosts a smattering of some of the things that I’m working on. I hope you find it both entertaining and educational. You can find me on all the usual…
This weekend I took the opportunity of some downtime and the fact that I’ve deployed a new primary VPS (with the wonderful iocoop ) to migrate my blog source to use hugo , leaving behind the Octopress setup I’ve had for a while. Why? Well I’ve been on a small Go kick recently at $DAYJOB and elsewhere and having played with some of the other utilities developed by spf13 such as…
Administrating a single server that’s your sole responsibility isn’t that much of a hassle but anyone who’s shared this responsibility with others or inherited machines manually configured by others knows without documentation will quickly tell you it’s a pain to work backwards from the finished server and maintain it going forward. Getting bitten by this once or twice is…
I’ve lapsed yet again in the weekly writing requirement of the Iron Blogger project at Noisebridge and so feel compelled to give a core-dump type post to recount the happenings of the last two weeks. I made a real breakthrough in my running in the last two weeks, after picking out some advice from /r/running on Reddit. I was absentmindedly browsing looking for training plans when I came upon…
This week I finished the first version of the barcode scanning flow I’ve been working on for Noisebridge . It’s a very simple Rust CLI that listens for input from a specified input device, and outputs only valid ISBN13 codes that it receives. Today I’ll work on a small Go program to take the ISBN numbers, looks them up and records the books in a PostgreSQL database. The next step…
It’s been a while since I’ve had the opportunity to sit down and write a nicely thought out blog post, but in the complete absence of any rhythm in recent postings I figured I’d write down some thoughts about the last 2 weeks. I’ve been making slow (mostly due to time commitments), but good progress on the USB barcode scanner project I’ve been hacking on for…
I’ve been neglecting my weekly blog post the last few weeks, but I’m back! The last few weeks and weekends have been busy with fun stuff. The workshop I gave on Data Security for Journalists at the CPJ conference was really wonderful fun. It was great to meet Cyrus and Micah and hang out with them teaching journalists how to use security tools to protect both themselves and their…
Last Saturday I gave a workshop on Data Security to a small group of Bay Area journalists at Noisebridge. The workshop was a small-group test of the same material that’ll be used at a larger workshop I’m helping to lead at the Committe to Project Journalism’s SF conference later this month. Overall it was a great success and a really awesome experience, with 4 journalists walking…
I started riding my bike to work the other day, and it’s very enjoyable. I’ve been feeling a bit sedentary in recent times, so a more active morning and evening commute is a really welcome change. I’d kinda forgotten that nice feeling you get post-exercise, and it’s made me realise that I should do this more often. I find it easy to fill time with non-exercise related…
It’s been 3 weeks since Noisebridge’s Iron Blogger kicked off. While I’m happy to have kept myself to a schedule of writing at least once a week, I’m still trying to beat the anti-pattern of scrambling to write something last thing on a Sunday evening. Thankfully, I have a few things I’m working on that I’d like to write about in more detail. I’m hoping to…
PSA: Don’t trust your valued data to proprietary products. When they break you’ll be up a proverbial creek without a paddle. The Drobo FS honeymoon period Back in 2011 I bought a Drobo FS with the intention of using it as a home backup solution. The features it offered were exactly what I was looking for: some RAID-like setup promising single parity as well as a neat ability to setup…
I finally, this past weekend, got around to implementing the Iron Blogger group that I’d been hoping to start at Noisebridge before Christmas (better late than never). This post is actually the first of my weekly obligations. Watch this space for more blogging. Things are going well. Life is busy on many fronts. The plans that I had for Linux Fest North West and, more specifically Hackers on…
I realise it’s been a while since I last posted. I’ve had some ideas for meaty blog posts but I’ve found them to be very difficult to shape into something I actually want to publish. The solution I think is to post more frequently about lighter material in a bid to get the hang of this blogging thing. Just before Christmas, Torrie took a long train ride from Jack London Square in…
As I write this I’m back in Dublin having been at 31C3 these last few days. It was a fantastic time meeting a whole range of new interesting people, as well as getting to know better the wonderful friends that I’ve made this year. Running into the end of the year I was feeling a little burnt out, mostly due to fire-fighting interpersonal drama in Noisebridge. I was very much looking…
Inspired by the twitter account “Shit Noisebridge says” I set about recently to script together that trains a Markov chaina on the complete archive of the noisebridge-discuss@ mailing list to create a rival account “Shit noisebridge probably says”. It’s not yet complete but one useful thing to have fallen out of this project already is a script that makes it easy to…