GeistHaus
log in · sign up

https://capnfabs.net/feed.xml

rss
78 posts
Polling state
Status active
Last polled May 19, 2026 04:49 UTC
Next poll May 20, 2026 00:47 UTC
Poll interval 86400s
ETag W/"08d5b5e9a8099f23e7d6398f7bc8446b"

Posts

A method and calculator for building foamcore drawer organisers
It is a truth universally acknowledged, that a man in possession of a good set of drawers, must be in want of a good organization system. Neat. Last year, I bought a Bisley chest of drawers on wheels (it also doubles as a handy pull-out seat if you slap a cushion on top), and it’s been drawer chaos since then. Absolute mayhem; cables getting tangled with old keyrings, snacks sitting uncomfortably close to strong glue.

Continue reading ➡

https://capnfabs.net/posts/foamcore-would-be-a-sick-name-for-a-music-genre/
A custom cardboard insert for Forest Shuffle + expansions
The latest board game obsession in my household is Forest Shuffle. It’s an extremely cute game that’s just the right amount of competitive; if you like Wingspan, you’ll probably like this (I think it’s easier to pick up, and less engine-building-y). Since it first came out, the developers have released two expansion packs which make the game even better (and also, one of them is mountain-themed, and it makes my heart sing). There’s just one problem: the expansions don’t fit in the original box! There’s plenty of space in the box itself… but the cardboard insert on the inside doesn’t have enough room for the extra 72 cards from the expansion.

Continue reading ➡

https://capnfabs.net/posts/forest-shuffle-expansions-custom-insert/
I vibe-coded an app. And also made some jewelry.
Last weekend, I took a silvercasting workshop run by a friend and made an absolute chonker of a ring. I’m going to oversimplify enormously – first, you carve the shape out of wax: This bit took ages and I also broke the first one Then you press it in to sand and oil: You have to clean it out a bit after you make an imprint in the wax

Continue reading ➡

https://capnfabs.net/posts/vibe-coding/
The Windows 98 taskbar, now on macOS
Are you a macOS user? Do you enjoy the elegant user experience? And yet, do you ever stare at your empty desktop in the morning, and think… wow, I wish I just had a little bit more inspiration? A little bit more motivation? A bit more enthusiasm? Do you find yourself thinking… I just wish I knew where to Start? Introducing: The Windows 98 Taskbar, now available for macOS. On the lockscreen

Continue reading ➡

https://capnfabs.net/posts/win98-taskbar-macos/
Five good hikes around Berlin
Here are five good hikes, mostly about 10 or 15km long, each reachable with public transport, around Berlin. this isn’t a cooking blog, but you’re still getting the preamble In late 2020 I made a habit of walking somewhere in nature once a week. In October that year, a cascading set of planning failures meant that I was stuck in Berlin but very, very desperate to spend some time walking in the forest – the original plan was to do a permaculture workshop in the mountains in Austria for a week, but then the borders closed. Then, the plan was to walk the Schwarzwalder Westweg, but a close friend needed me around after a jar fell off a shelf, landed on her foot and severed a tendon.

Continue reading ➡

https://capnfabs.net/posts/berlin-day-hikes/
We all need more reasons to celebrate.
Have you ever thought about how weird birthdays are? Don’t get me wrong – age is a useful concept, it’s just measured arbitrarily. We measure it in fractional orbits around the sun, but we could just as meaningfully choose: the number of times the moon has orbited the earth (~lunar months), or the height of a specific tree in the middle of the town that you live in, or the aggregate distance that your body has traveled relative to the center of the galaxy, like we’re all interplanetary used cars, slowly putting astronomical units on the odometer. We don’t tend to count the days, except when we’re looking forward to something – a wedding, the weekend, a deadline. But maybe we should? Birthdays are arbitrary, there is not enough joy in the world, and we all need more reasons to celebrate.

Continue reading ➡

https://capnfabs.net/posts/reasons-to-celebrate/
How to: Run spotifyd or librespot when a USB sound card is connected (on Linux)
Ok, this blog post has a really specific title, but I’m sure a lot of it generalises to other devices and other software. 😅 I bought a stereo system recently! I don’t own any physical music media anymore – I left all my CDs behind when I moved to Germany seven years ago, and mostly just use Spotify now. So I needed a way to get Spotify on the stereo. There are amps that support streaming services, but I didn’t want an all-in-one solution – the HiFi scene is one of the last places where everything is modular and (relatively) repairable, and I like that about it. Amplifiers feel much less temporal than streaming services (I’m pretty sure my Dad’s got an amp that’s older than me!), and my long-term plan anyway is to eventually finish this Raspberry Pi-powered floppy disk Spotify player and have that as the primary interface for the speakers.

Continue reading ➡

https://capnfabs.net/posts/udev-systemd-spotify-usb-audio/
Berlin weather forecasts on an E-ink display
Every few months, I become wildly dissatisfied with my relationship with my mobile phone and vow to take steps to change it. Typically, that has meant removing reasons to pick it up – I want to be able to come home, throw my phone in a drawer and then not think about it until I leave home again. In the past, this has resulted in: Suggestions to my friends that we should all get landlines because it’d be “fun” The same but with fax machines, because it’s kinda lo-fi SMS1 Prototyping a thing which plays Spotify playlists based on floppy disks to deal with the fact that I miss CDs (maybe I should just buy a CD player). I think part of the problem with phones is that they’re devices for everything, and so moving back to single-task devices feels closer to what my lizard brain can handle.

Continue reading ➡

https://capnfabs.net/posts/weather-forecast-eink-dwd/
A walk from Brighton to Eastbourne (via the Seven Sisters)
I had a spare weekend in London before a work trip in February. I booked late, and rather than spending €€€ on a convenient flight, I took a 7:05am flight from Berlin to Gatwick on Saturday morning. I thought I’d go for a walk. There’s (fast!) trains from Gatwick to Brighton every 15 minutes or so, and from Brighton, it’s a 44 km / 28 mi walk along the coast to Eastbourne, which takes you via the Seven Sisters, a chalk cliff formation protected by an eponymous national park.

Continue reading ➡

https://capnfabs.net/posts/brighton-eastbourne-seven-sisters/
Parse huge XML files quick with Rust + Serde + quick-xml
Recently, I wondered whether songs were being increasingly released with entirely lowercase titles. I ended up using MusicBrainz’ library as a datasource, which comes packaged up as a Postgres database, but the data source I considered initially was one of Discogs’ monthly data dumps, which is made available for download as a set of (gzipped) XML files. The file I was interested in – the releases dataset – is 11.62 GB gzipped, 74 GB once decompressed. I wanted to iterate through every record and check for (a) entry quality, and (b) whether the track title was lowercase. Normally I’d use some kind of serialization framework, gesture at the shape of data, and then tell the framework to deserialize the whole object, but - that’s not an option when the file you’re working with is several times the RAM on your computer.

Continue reading ➡

https://capnfabs.net/posts/parsing-huge-xml-quickxml-rust-serde/
kids these days are releasing all their music with lowercase titles
Kids these days are speaking in lowercase on the internet. I mean, kids were always speaking in lowercase on the internet; I dunno if it’s because it’s too much effort to hold down the shift key or if it’s because of the aesthetic or because of something else. I remember messaging people on MSN Messenger in mostly lowercase in the early 2000s, maybe because I was trying to sound all caʒual. I have a Spotify playlist called i am a collector (lowercase), and am subscribed to one titled nineties (lowercase). The title of this blog is fabian writes, again, all lowercase; the links in the top right if you’re reading this on desktop is also lowercase. Hashtags are all lowercase. The screen titles on Windows Phone were all lowercase. My name i.r.l. is capitalised, but on the web it’s lowercase and prefixed with an at-symbol.

Continue reading ➡

https://capnfabs.net/posts/lowercase-dot-mp3/
2022 was
Hello, friends. Here’s my annual(-ish) retrospective. Previous editions are available here. When I was a kid, my mum would type out a letter about all the things that had happened in the last year and tuck copies into the Christmas cards that they’d send to friends and family (“Fabian is in Year 8 now and started learning guitar”, “Marcus and Mike went on a trip to San Francisco with Marcus’ high school jazz band”). This note is similar but modified – it’s maybe a little bit ’life update’, but it’s also a collection of stories that I probably wouldn’t have written as freestanding posts alone. So. Enjoy some stories.

Continue reading ➡

https://capnfabs.net/posts/2022-retrospective/
A Walk and a Pop-up Newsletter
In November, I walked for eight days along the Rennsteig, a famous, old ridge road in Thüringen, Germany. I’ve been doing solo hikes every year since 2018, but this time I did something new: I set up a short-lived “pop-up” email newsletter, and published photos, stories, rough essays from the road. This post is about the pop-up newsletter as a format. The pictures in this post will be unrelated hike photos

Continue reading ➡

https://capnfabs.net/posts/walk-and-pop-up-newsletter/
Almost deleted photos, 2007 - 2020
Last week, I deleted a bunch of old photos while trying to back them up. By the numbers: 2793 photos deleted by accident 2531 restored from a backup through a complex, heavily manual process 160 restored from a copy on another computer 102 photos lost forever All the files lost were from 2019, but the files almost lost were from 2007 through to 2020. The files I almost lost were saved by a backup. They were hard to get at though – stored somewhere online, encrypted using some buggy software. So the process I used to restore some of the photos was heavily manual, and I had to look through photo individually to make sure that they’d been recovered correctly. I’m still not 100% sure I did it right.

Continue reading ➡

https://capnfabs.net/posts/almost-deleted-photos/
Why is this Floppy Disk Drive Clicking Incessantly?
To head this off before I get questions: yes, dear Reader, it is 2021, and I am writing about a floppy disk drive. Specifically, a USB floppy disk drive that’s connected to a Raspberry Pi. His name is Stefan This is a story about tracing a weird behaviour in a complex computer system. I’ve always thought floppy disks were super cool. They’re really pleasingly tactile; they have this super good tchünk sound when you insert and eject disks, they’re able to hold a whole 1.44 MB of data1, and they have a nice use-metaphor – you can tell when your computer is reading and writing to them because they’re hella noisy, and I think that’s actually a really useful property for removable media. Remember how nice it was to insert a VHS tape? At a certain point the player starts pulling the cassette out of your hand, and it’s clear that you’re agreed on how the relationship works. There’s no USB superposition, there’s no futzing around with drivers or waiting for things to show up in the operating system; you get a kind of gritty, visceral feedback right from the first touch.

Continue reading ➡

https://capnfabs.net/posts/why-is-this-floppy-disk-drive-clicking-incessantly/
Quarantine Diary, Day 12
Content Note: Covid-19 My housemates caught COVID-19 on the last weekend in February. On the 28th of February, one of them started developing symptoms. On the 2nd of March, a close contact informed them that they’d tested positive. On the 3rd, they both tested positive with antigen tests. Jackie and I went to get tested immediately, so we could figure out if we wanted to partition the apartment, or whether we could all be in the same spaces together.

Continue reading ➡

https://capnfabs.net/posts/quarantine-diary/
What on Earth is this Encryption Scheme?
I have taken a couple terabytes of photos over the years, and have a mild phobia of deleting data, so I keep my photos on a Synology DiskStation NAS. I’ve got all the files on the thing: backed up to the cloud encrypted, because back in 2016, my apartment was broken into and thieves took all the electronics. I’ve been slightly paranoid ever since. The Synology NAS generally works pretty well, but the interface for decrypting a drive after booting is extremely painful. It’s about 10 clicks, a username, two different passwords, and a UI that is kinda wonky (it’s a desktop in a web browser)? Here’s a screengrab:

Continue reading ➡

https://capnfabs.net/posts/wtf-encryption-scheme-synology-diskstation-nas/
2020. It's over!
2020 is over, and ooh wee it’s been a weird year. There were fireworks on New Year’s, but significantly fewer than in previous years. That’s probably due to the fact that the sale of fireworks was banned as a measure to reduce stress on hospitals, and so if you wanted to get your hands on them, you had to drive to Poland1. But there were still fireworks, and honestly, I kinda liked it. It’s a nice kind of minor anarchy.

Continue reading ➡

https://capnfabs.net/posts/2020-its-over/
Mushroom Studies, Autumn 2020, Brandenburg
Some people are searching for God. But my wife and I – we’re searching for mushrooms. It comes down to the same thing – God, and the mushrooms, aren’t always where you’re expecting to find them, and many who are looking for God find the Devil instead. He’s always somewhere nearby, like how the Fly Amanita is always somewhere near the Porcini. Or maybe it’s the other way around? Maybe God is following the Devil, to make sure he doesn’t cause trouble.

Continue reading ➡

https://capnfabs.net/posts/mushroom-studies-autumn-2020-brandenburg/
Cross-Compiling Rust Apps II: Linux Subtrees and Linker Shenanigans
FYI: this is Part II of a series! In the last instalment, we set up cross-compilation for a large-ish rust app (spotifyd) using cross and a custom Dockerfile. If it seems like I’m skipping over something that doesn’t make sense to you in this article, go check there, and please let me know. ✨ Enabling dbus_mpris Now that we’ve got a working cross-compile setup for the base feature set in our app, let’s turn on the additional features that we need for our project.

Continue reading ➡

https://capnfabs.net/posts/cross-compiling-rust-apps-linker-shenanigans-multistrap-chroot/
Cross-Compiling Rust apps for the Raspberry Pi
FYI: this is part one of a two-part series! Part two is available here. I’m picking up a project again which, for a complicated set of reasons, requires me to make changes to a large Rust application which is going to run on the Raspberry Pi. There’s just one problem: The Rust compiler requires a lot of RAM and CPU My Raspberry Pi (model 3+) has exactly 1GB of RAM and a very small CPU1. But hey, let’s give it a shot anyway. How bad can it be?

Continue reading ➡

https://capnfabs.net/posts/cross-compiling-rust-apps-raspberry-pi/
It's 2020, and I still can't figure out why I'm getting your marketing emails
I added email subscriptions to my blog1 and, in the process, signed up for four different email providers to test them out. A week later, I noticed I was getting marketing emails from all of them. I thought this was weird – I’m based in the European Union, and thought that the GDPR forbade companies from emailing me without asking. I’m also usually careful about “sign me up for email marketing” checkboxes, so I thought it was weird that I’d missed… all four of them?

Continue reading ➡

https://capnfabs.net/posts/2020-gdpr-email-marketing-wrong/
How to ask questions well, asynchronously
I’ve been writing and reading a lot of questions on camera and programming forums recently, which got me thinking a lot about how to write questions well. Why should you care about this? The most direct answer is “well written questions solicit better responses quicker”, but my motivations are different to that, so it’s maybe more instructive to talk about those directly. I developed a care for writing questions well from two places:

Continue reading ➡

https://capnfabs.net/posts/ask-questions-well-asynchronously/
Notes on Speaking at EnthusiastiCon 2020
I gave a talk at EnthusiastiCon on the weekend and it was really fun. The format is a bunch of 10 minute talks and a 40 minute keynote, and this year, it was online-only because, y’know, Corona etc etc. Ente-thusiasticon. – ente_ente_ente_ente_ on Instagram This post is about things I learned while prepping for / delivering this talk. But first… Real brief thoughts on the conference EnthusiastiCon is the sort of conference that you go to for exposure to new ideas, not because you want to “level up your skills in a particular technology”.1

Continue reading ➡

https://capnfabs.net/posts/remote-conference-talk-notes/
What is a digital photo, really?
I gave a talk at EnthusiastiCon about the very basics of digital photography and how pixels are actually made of lies 🤐. Here’s the talk + some additional resources!

Continue reading ➡

https://capnfabs.net/posts/what-is-a-digital-photo-really/
Hello Colemak 👋
On April 30, I committed to learning the Colemak keyboard layout. I’m still entirely unsure of the value of this decision, so I’m writing it up here in order to reflect upon it a little more, and to share my experiences with others who might decide to attempt the same thing. ✨ Cole-who? Colemak! It’s pronounced Coal-mack, and is a keyboard layout, exactly like how QWERTY is a keyboard layout. The theory is: QWERTY is not particularly ergonomic! It was released in 1878 on the Remington No. 2 typewriter, which was the first one to support both upper- and lower-case letters. Your left hand ends up doing most of the work1.

Continue reading ➡

https://capnfabs.net/posts/should-you-learn-colemak/
Animating SVGs with Python Scripts
I’ve just published a piece on how Fuji’s RAW file compression algorithm works. I’d spent about two weeks trying to develop an implementation in Rust, and found that the underlying concepts were consistently difficult to explain using words alone. This algorithm is easiest to understand by thinking spatially, so being able to represent things visually in two dimensions is advantageous. I drew a lot of very rough diagrams on scraps of paper while figuring out how it works.

Continue reading ➡

https://capnfabs.net/posts/svg-animations-python-script/
I Guess you Could Call this a Crash Landing
Content Note: Covid-19 stress and societal impact. We’ve been back in Berlin for two weeks now. We left New York in a hurry. My original flight was supposed to be today – I’d planned to take a few days after my batch at the Recurse Center in NYC, figuring out what my time there had meant. I’d expected it to challenge my mentality around work, and art, and creativity, and my goals for my life, and thought some time for processing all of that and for saying goodbye would be nice.

Continue reading ➡

https://capnfabs.net/posts/crash-landing-coronavirus/
The Bagel Code
Ordering a bagel in NYC is like cracking a code. What kinds of bagel are there? Do you call it a bagel or a sandwich? Is it wrong to put egg and cheese on a Cinnamon-Raisin bagel (I hope so)? You’re somehow expected to just know, and if you don’t, then you’re clearly new to the city. And that’s not a terrible thing – people are mostly tolerant – but it’s a little embarrassing, so you’re motivated to overcome it pretty quickly.

Continue reading ➡

https://capnfabs.net/posts/bagel-code/
2019. It's done!?
2020 is here, and I’m writing this from Brooklyn Roasting Company off the tail of about 7 hours of accumulated jetlag. I’m in New York! This is crazy and surprising and surreal, and my first impressions are… New York is cool? I mean, that’s not exactly an original thought; but I like that it’s clean, and there’s parks, and holy crap the metro network is enormous and so well-branded.

Continue reading ➡

https://capnfabs.net/posts/2019-its-over/
When do you Stop Writing?
Yesterday, I published a rather long post about the way that SQLAlchemy uses database transactions. This was one of the most difficult things I’ve written about, not so much because of the subject matter, but because I couldn’t figure out when to stop writing. In the end it took two and a half months to finish, mostly because it was intimidating as heck. Today I want to unpack why I was afraid of it a little.

Continue reading ➡

https://capnfabs.net/posts/when-do-you-stop-writing/
How Does SQLAlchemy Manage Database Transactions?
I’ve been working on database stuff for the last few months at Sendwave. It’s… unexpectedly satisfying? There’s so much thought that’s gone into making databases reliable and useful and fast and somehow mostly text-based. Sendwave is using the SQLAlchemy ORM for database operations, and we’re getting to a point now where scale and performance concerns demand that we’re doing things efficiently. This means we’re no longer able to treat SQLAlchemy as a black-box, but instead, it’s time to dive in to the way SQLAlchemy itself uses the database.

Continue reading ➡

https://capnfabs.net/posts/sqlalchemy-connection-management/
To Read the Heretics
2019 is almost done. And I am procrastinating on everything because there is too much change in progress. Zen gardening the filesystem on my hard-drive. Getting ready to wipe and reinstall the OS on my computer. Time to make everything new again. I’ve been thinking a lot about the concept of time this year. My eyesight got a notch worse sometime between turning 29 and 30. There’s that song from Adventure Time that I had on repeat for a good part of the year…

Continue reading ➡

https://capnfabs.net/posts/reading-heretics/
3 Novel Features for Hugo Themes
A few months ago; I switched this blog over from Jekyll to Hugo, and in the process, built a new theme. I like building blog themes! Front-end HTML/CSS development is sorta how I got into the whole “programming” thing, and every couple years when I come back to it, I’m blown away how much the technologies, ideas, and aesthetics have changed. I don’t want to talk so much about the features of the new design today – I don’t think it’s particularly remarkable, and, like, you’re seeing it now! – but there’s a few features that I’ve built into the Hugo theme that I think are novel and useful, and I wanted to share those here in case they’re useful to anyone else.

Continue reading ➡

https://capnfabs.net/posts/hugo-theme-exclude-processed-images/
Grouse, a difftool for static site generators
Yesterday I released the first version of Grouse, a diff tool for websites generated with Hugo. There’s install instructions on Github and you can see the announcement post on the Hugo discussion forums. In this post, I’m going to discuss why I built Grouse, some of the design decisions I made, and some of the things I learned along the way.

Continue reading ➡

https://capnfabs.net/posts/grouse-diff-tool-hugo-static-site-generators/
Just Diff It
When working with anything semi-automated, you sometimes run into a situation where the following are true: The environment you’re working in has a lot of interlocking pieces, and changing one thing can result in unexpected changes to lots of other things You have to change just one thing You want to make sure that there’s no weird side effects. Have you ever added an extra two or three words to a sentence in a word processor, and then found it had follow-on effects that changed the location of all the pictures on the next page? Then you know what I’m talking about!

Continue reading ➡

https://capnfabs.net/posts/just-diff-it/
The tripod mount screws fell out of my Fuji X-T2
Two weeks ago, I got back from a hiking trip in Austria and South Tyrol, and discovered that my Fuji X-T2 had developed a rattle. I gave it a quick check over, and discovered that the rattle was being caused by something rather offputting: the tripod mounting thread had disappeared into the body of the camera, and was jiggling around as I moved it.

Continue reading ➡

https://capnfabs.net/posts/fuji-xt2-tripod-screws/
How To: Find and Fix Light Leakages on a Film Camera
My good pals Tom and Mikaely moved from the greater Wollongong area to Roseburg, Oregon, back in 2015. Mikaely got a job in a zoo, and Tom got a job doing sales at an engineering company. I was chatting with Tom about film photography – one of my colleagues is super into it, and we’d been talking about it for most of the week. Tom says “hey, actually, I’ve got four film cameras – you can have one if you want.” It turns out there’s a lot of downtime when you’re living in Roseburg, and Tom had spent it looking for bargains at flea markets and garage sales. Looking for bargains at flea markets, garage sales, and in the local Trading Post is a bit of an Australian pasttime.

Continue reading ➡

https://capnfabs.net/posts/film-camera-fix-light-leaks/
Techniques for setting boundaries around your remote job
Remote work is, on balance, great, but one of the disadvantages compared to a normal job is that it’s harder to switch off from work in your lunch break, at the end of the day, or when you’re on holidays. You see, remote companies are built on the ability to contact your colleagues using technology; which means you need to be much more deliberate about how you use the technology in order to maintain separation between your work life and your personal life. Here are some techniques that I’ve used to create and maintain separation. You might not want to use all of these, and your job might be such that you’re not able to use all of these, but hopefully, they’re useful to you.

Continue reading ➡

https://capnfabs.net/posts/techniques-for-setting-boundaries-around-your-remote-job/
Eleven days on the E5 Long Distance Hiking Trail
In late September, 2018, I hiked for eleven days along the E5 long-distance hiking trail. If you walk the whole thing, it starts off on the West Coast of France and takes you all the way to Verona in Italy, but when people talk about walking the E5, they mean they “hiked from Oberstdorf in Germany, to Meran in the North of Italy”. That piece is referred to as the Kernstück in German, the ‘core piece’.

Continue reading ➡

https://capnfabs.net/posts/2018-eleven-days-e5/
Is Fabian Still Alive?
Back in May 2017, I took a solo backpacking trip through Georgia and Armenia. In the lead-up to the trip, a lot of friends and family asked me to text them along the way “to let them know I was still alive”. It was mostly a joke (?), but it still felt like an odd request, and the frequency was uncanny. I’m of the opinion that both Georgia and Armenia are (a) incredibly safe, and (b) full of ludicrously hospitable people, so the concern from my friends and family seemed a little undue.

Continue reading ➡

https://capnfabs.net/posts/is-fabian-still-alive/
I sit in 13A.
I board the plane to Addis. I am the sixth person on the plane, but I get to my seat (12A) and it is taken. No problem. I sit in 13A instead. A man sits next to me, he is friendly. His ticket says 13A, and makes no mention of the fact that I’m in his seat. He receives a phone call. Someone comes with the ticket for 13C, and says ‘Excuse me, you’re in my seat’. But 13C is on the phone, and doesn’t speak much English, and most importantly doesn’t care. After all, it’s just a seat on a fifty minute flight. I explain to the new man that nobody cares, and if he doesn’t mind, he’s best off just taking any seat somewhere else. But he insists. He calls the flight attendant.

Continue reading ➡

https://capnfabs.net/posts/i-sit-in-13a/
Lofoten // Norway
I went to Lofoten in Norway for a four-night getaway with some friends this week. Here are some photos.

Continue reading ➡

https://capnfabs.net/posts/lofoten-norway/
Australian Election Map 2016
I wrapped up at Google last week, but I spent the months before I left working on an Australian Election tracker map, which was completely unlike any project I’d worked on before. We first assembled the team for this about 10 weeks before the election, from a number of teams across Google Sydney. By the time we actually started building anything, it was about six weeks out from the election.

Continue reading ➡

https://capnfabs.net/posts/australian-election-map-2016/
Embassy Reviews (a Twitter bot)
Posts a review of an embassy direct from Google Maps every six hours. Yes, people review embassies. No, I don’t know why; it’s not like there are alternatives.

Continue reading ➡

https://capnfabs.net/posts/embassy-reviews-a-twitter-bot/
Emoji Haikus
☀️ 💣 👨‍👨‍👦 🦃 🌨️ 🖲 BLACK SUN WITH RAYS BOMB FAMILY: MAN, MAN, BOY TURKEY CLOUD WITH SNOW TRACKBALL Nonsense haikus generated using unicode emoji description text.

Continue reading ➡

https://capnfabs.net/posts/emoji-haikus/
Three tips for better Android development productivity
I’ve been working on Android apps at Google for about two years. In that time I’ve worked on a diverse set of codebases - from small, tightly-contained internal tools that only target Lollipop and newer, to extremely complicated apps with large development teams, such as Google Maps, and even system-level code such as the Activity Manager for Android Auto. In that time, I’ve also seen a lot of new team members come up to speed, and found myself consistently giving the same advice to help them get there quickly. Here’s my top three tips for becoming productive whilst developing for Android.

Continue reading ➡

https://capnfabs.net/posts/android-development-developer-productivity/
Faking Screen Resolution on Android Devices
Required hardware and an open-source project For the Buendia medical records system project, we’re building an Android tablet app that’s capable of displaying and modifying electronic records out in the field. So far, we’ve been targeting the Sony Xperia Z2 tablets as our reference platform - they’re a great size, they’re really light and they’re waterproof. The project is open-source, and we’re finding that we have contributors who want to help, but don’t have a tablet device to test on. We’ve had developers use the Android emulator before, but emulation can be quite resource-intensive. Even if you’ve enabled HAXM (it’s a huge speed-up if your processor supports it!), the emulator still uses a couple of GB of RAM, which, in combination with Android Studio, can push even modern hardware pretty hard!

Continue reading ➡

https://capnfabs.net/posts/mocking-screen-resolution-on-android-devices/
App-level Resources Done Right on Android
Lots of developers love the Application class as a container for application-wide resources, because: it’s a singleton, so it’s easy to ensure that each of these global resources is only initialized once it has access to a Context (in fact, it is a Context), and it’s easy to obtain a reference to the Application from anywhere. This, however, is actually a really bad idea that will only cause you pain, for two main reasons:

Continue reading ➡

https://capnfabs.net/posts/app-level-state-done-right-on-android/
So I Rebuilt My Website
This website has always been about having an identity on the internet. It was a vogue thing in the 2000s, I think. If you were SRS BSNS about the internet, you had your own domain name. And for some reason I took that and ran with it a few years late in 2011.

Continue reading ➡

https://capnfabs.net/posts/so-i-rebuilt-my-website/
Android Auto Demo With Bill Shorten
So today Bill Shorten, Australian opposition leader, came to work to chat about Computer Science / Engineering education, and I gave him a demo of Android Auto. Featuring me in an upside-down Google t-shirt.

Continue reading ➡

https://capnfabs.net/posts/android-auto-demo-with-bill-shorten/
Ebola Crisis Response
I was in London for the last month working on an Ebola Crisis Response project. It’s a collaboration between MSF, Google, and a bunch of volunteers from the community. In a nutshell, Ebola’s highly contagious, and so nothing that’s been anywhere near a patient can leave a special designated ‘high risk’ zone without being dunked in a chlorine solution for ten minutes. As a result, the record keeping system MSF’s doctors were using was to take readings onto a clipboard whilst wearing full hazmat, and then to yell them over the fence to someone else who would copy them down onto another sheet of paper.

Continue reading ➡

https://capnfabs.net/posts/ebola-crisis-response/
Iran
Steph and I went to Iran with a friend who was going back to visit her family.

Continue reading ➡

https://capnfabs.net/posts/iran/
Under the Hood of Android Auto
I wrote and gesticulated wildly in a video talk for Google I/O this year on how Android Auto works. It’s pretty high level, but it covers the key aspects of the architecture.

Continue reading ➡

https://capnfabs.net/posts/under-the-hood-of-android-auto/
Open Source Electrical Networks Toolkit
During my thesis, I’d found that sensitivity analysis was something that a lot of researchers talked about but rarely explained. I found it to be a really useful technique, and so I wrote a paper that attempted to distill the basics.

Continue reading ➡

https://capnfabs.net/posts/open-source-electrical-networks-toolkit/
Information Technology, Data and Context
Information Technology - it’s an awfully un-glamourous pair of words. When people think of IT, they think of business applications that don’t really work as well you’d expect them to, database administration, and ugly-looking spreadsheet-y things on badly designed websites. I’m moving into a software development job next year, and I so badly want to rush to tell people that IT is not what I do. The thought makes me cringe, and I’m not sure why. It’s not the stereotypes (ok, it’s a little bit the stereotypes); it’s a deep desire to be known for doing something that’s meaningful.

Continue reading ➡

https://capnfabs.net/posts/information-technology-data-and-context/
Selling Recommendations
My undergraduate thesis has two main outcomes. I’m not going to bore you with the details here - if you’re really interested, you can read my thesis comic here - but I had a couple of thoughts about two different kinds of products/goals/outcomes that I’ll be working on. Outcome One is a tool that provides a lot of information to businesses. This tool doesn’t directly save anyone any money, but it enables people to make decisions that could.

Continue reading ➡

https://capnfabs.net/posts/selling-recommendations/
Abstraction, Humanity and Design
A couple of months ago, I did a presentation on “re-humanising people through design” for a job interview. It’s an idea I got partially from the work of Bret Victor and a lot from the first issue of The Manual. The core idea is that a lot of aspects of our society, and especially the way we share information, are based on abstraction. To abstract something is to make its representation less specific, so that it’s easier to work with, to understand, or to communicate.

Continue reading ➡

https://capnfabs.net/posts/abstraction-humanity-and-design/
Desperate Men
The idea of four hundred embittered, burdened men and their families flocking to a man who was chosen by God to be king is just… odd.

Continue reading ➡

https://capnfabs.net/posts/desperate-men/
Designing Timecard, A Windows Phone 7 App
I finished off an app for the Windows Phone 7 Marketplace this week, it’s called Timecard. You can find a link to it here, and, aside from some slight icon colouring issues, I’m pretty happy with it! Anyway, I just figured I should write a few notes about how I put it together and some of the design decisions I made, and I’d love to hear what you think in the comments section below if you’ve got any thoughts.

Continue reading ➡

https://capnfabs.net/posts/designing-timecard-a-windows-phone-7-app/
On Guidance: Listening Carefully for the Voice of God
…And, I have to say, there’s been plenty of times in my life when I’ve longed for something as blunt as this. For the heavens to part, for angels to drop out of the sky and say “listen, fool!” (Ok, so in my head, when angels talk it sounds something like Mr T), and for some kind of obvious direction as to what the next step is…

Continue reading ➡

https://capnfabs.net/posts/on-guidance-listening-carefully-for-the-voice-of-god/
Lessons: Getting Arduinos to play nice with I2C
Well, I’m doing a project at Uni at the moment in a team of eight. Don’t get me started about the coordination nightmare! We’re building a Hip Replacement Monitor: the idea being as follows: When someone gets hip replacement surgery, there’s a large risk of the hip joint dislocating Patients need to know which movements will and will not contribute to this risk The hip replacement monitor sounds an alarm when the hip moves beyond its limits, and periodically (a few times a second) logs data to an SD card, so that the rehabilitation specialist can analyse the data and identify any issues the patient may be having. The concept seems to be fairly sound (I mean, it’s got a couple of issues, like the fact that the buzzer is going to get mighty annoying), but we’ve been having major issues implementing the system over the last little while.

Continue reading ➡

https://capnfabs.net/posts/project-hip-replacement-monitor/
In the Shoes of Jesus' Disciples
When it comes to understanding my relationship with Jesus, I feel a great need to put myself into someone else’s shoes. I’m not really sure why, and I suppose lately I haven’t really been sure how. The disciples, particularly, have been something of a fascination to me; humble men who seem to know that something’s going on, but largely unable to figure out what it is.

Continue reading ➡

https://capnfabs.net/posts/in-the-shoes-of-jesus-disciples/