Ramblings and musings

Articles and Other Writing by Ryan McGrath

Organized by year. Questions? Feel free to email me.

Posts from 2024

Mon 15 January 2024 7 minutes

Plant-Based Berlin Recommendations

A small guide to plant-based eating in Berlin.

Posts from 2021

Wed 15 September 2021 2 minutes

DriverKit, /Applications, and Quarantine

Your app is in /Applications, but DriverKit says it's not? It might be quarantined.

Thu 24 June 2021 2 minutes

Debugging Broken Signed/Notarized Apps on macOS

Sealed resource is missing or broken? Find out why.

Thu 10 June 2021 8 minutes

Cacao: Building macOS (and iOS) Apps in Rust

You can pry Objective-C out of my cold, dead hands.

Posts from 2020

Fri 20 November 2020 9 minutes

What Melee Gave Me

A game that means more to me than I could possibly convey.

Sun 15 March 2020 2 minutes

You Did Not EARN IT

Petition your Representatives to vote against the EARN IT act.

Wed 01 January 2020 4 minutes

Wobbling in Rust

Writing slightly dangerous code in Rust that (literally, mostly) will not die.

Posts from 2019

Sat 07 December 2019 6 minutes

Decoupling, or: where's my data?

Couple was an app for significant others to chat with. It's 2019 - where's the data?

Thu 01 August 2019 1 minute

Automatic Old Reddit Redirect Safari Extension

Miss the old Reddit in Safari? This extension can help.

Wed 05 June 2019 3 minutes

On Sign-In with Apple

An amazing product with features many seem to be missing.

Wed 15 May 2019 2 minutes

One Last Ride

Redesigning a personal website is a personal hell.

Thu 07 March 2019 3 minutes

Vim, ALE, Docker, and Per-Project Linting

How to make ALE use python/flake8 in Docker without running Vim over SSH.

Mon 18 February 2019 1 minute

Rust, Cargo, lcrypto/OpenSSL, Mac, and You

OpenSSL on Mac is a weird mess, and it can make compiling Rust programs annoying. This is a short guide to help.

Thu 31 January 2019 6 minutes

Dynamic Images in iOS Push Notification Extensions

A guide to rendering dynamic images in push notification extensions for iPhone and iPad.

Wed 02 January 2019 1 minute

Using a Custom JSONEncoder for Pandas and Numpy

Serialization that plays nicely together.

Posts from 2018

Mon 31 December 2018 5 minutes

My 2018 Reading List

An end-of-year look at what I read, and what I recommend.

Tue 18 December 2018 3 minutes

Forcing PNG for Twitter Profile Photos

How to ensure your images are crisp and clear on Twitter.

Mon 03 December 2018 6 minutes

Swipeable NSCollectionView

A look at how swipe-to-reveal can be implemented in NSCollectionView.

Fri 29 June 2018 3 minutes

Rust, or: What's the Deal with GUIs?

Exploring what a GUI API could look like in Rust.

Posts from 2016

Tue 22 March 2016 7 minutes

A Deep Dive into PL/v8

A look at how to use JavaScript in PostgreSQL via PL/v8.

Posts from 2015

Thu 04 June 2015 2 minutes

RedNoise, a Django-centric WhiteNoise addon

An open-source project that extends Whitenoise.

Posts from 2014

Wed 08 January 2014 7 minutes

Recording Live Audio Streams on iOS

A guide to using MTAudioProcessingTap to record tricky audio.

Posts from 2013

Wed 10 April 2013 9 minutes

We are the New Blue Collar

Archived commentary on the rise of the learn-to-code movement.

Posts from 2012

Sun 08 April 2012 2 minutes

Where is Ryan now? (tl;dr: Quit myGengo)

Archived rantings about my life.

Posts from 2011

Mon 15 August 2011 4 minutes

Using Javascript to control the Nintendo Wii

A guide to writing JavaScript for the Opera browser on the Nintendo Wii.

Tue 31 May 2011 7 minutes

Using the myGengo Translation API with Python

A tutorial on using the myGengo (Gengo) API for human-powered translation.

Sat 07 May 2011 6 minutes

More Power to ExpressionEngine URLs

A breakdown of extending ExpressionEngine 2 for some crazy URL structures.

Sat 16 April 2011 6 minutes

Emitting Custom Events in Node.js

A short guide to using EventEmitter in Node.js

Sun 06 March 2011 5 minutes

Hacking the Human Brain

Experiments with language learning, memorization, and Android.

Mon 07 February 2011 2 minutes

The Everlasting Fight To Expand My Metaphorical Sight (Part 2)

Archived rantings about my life.

Posts from 2010

Sun 05 December 2010 7 minutes

The Everlasting Fight To Expand My Metaphorical Sight (Part 1)

Archived rantings about my life.

Tue 02 November 2010 2 minutes

Emulating Ruby's "method_missing" in Python

An amusing hack using getter overriding.

Thu 14 October 2010 4 minutes

How to properly ask a girl to Homecoming

A small game to pop a question.

Wed 06 October 2010 7 minutes

...and what's the deal with San Francisco? (along with my travels)

Archived rantings about my life.

Mon 02 August 2010 2 minutes

Moving right along...

Archived rantings about my life.

Sun 18 July 2010 3 minutes

On Date/Time/DateTime in Ruby, and why they suck

Porting relative datetime utils out of Rails.

Sun 18 July 2010 6 minutes

The perception of "Inception"

My rantings about the ending of Inception.

Tue 13 July 2010 2 minutes

Rendering emails with Django templates

Using the Django template engine to render HTML emails.

Thu 17 June 2010 4 minutes

You got your Base64 in my CSS!

Tricking IE6 and IE7 into rendering base64-encoded images.

Wed 09 June 2010 1 minute

Quit incorrectly passing functions in Javascript

Demonstrating how to pass function references in JavaScript to avoid closure-inception.

Thu 13 May 2010 0 minute

jQuery Introduction, Refresh Fred May 2010

A presentation on jQuery given for Refresh Fred in 2010.

Mon 10 May 2010 2 minutes

Time for a revival

A meta post about reviving this site.

Mon 25 January 2010 2 minutes

Interviewing for front-end development

A sample test for interviewing frontend developers.

Posts from 2008

Fri 19 December 2008 5 minutes

Open source programming languages for kids

Archived review that looks at programming environments for children. Originally posted at Linux.com.

Mon 15 September 2008 3 minutes

Supercharge Firebug

Archived review that looks at tools for FireBug, the original browser developer tool. Originally posted at Linux.com.

Posts from 2007

Tue 18 September 2007 3 minutes

Easy blogging with Pivot

An archived review of a PHP blogging engine. Originally written for Linux.com.

Tue 31 July 2007 3 minutes

Keep users informed with PHPList

An archived review of a mailing list project. Originally written for Linux.com.

Tue 05 June 2007 3 minutes

Simple polling with LimeSurvey

A review of a software project for running polls. Originally written for Linux.com.

Wed 02 May 2007 7 minutes

Review: Moneydance 2007

A review of Moneydance, a personal finance software project. Originally written for Linux.com.

Tue 27 March 2007 4 minutes

Review: Dreamlinux 2.2

A review of DreamLinux 2.2, originally written for Linux.com.

Wed 17 January 2007 3 minutes

Easy discussions with Simple Machines Forums

An archived review of a forum system. Originally written for Linux.com.

Posts from 2006

Thu 14 September 2006 3 minutes

KToon: Simple 2D animation

A review of KToon, an animation software project for Linux. Originally written for Linux.com.

Posts from 2005

Fri 19 August 2005 2 minutes

Kino makes video editing simple

A review of movie-editing software for Linux. Originally written for Linux.com.

Fri 29 April 2005 2 minutes

My Workstation OS: VidaLinux

A review of VidaLinux, a Gentoo fork. Originally written for Linux.com.

Ryan around the Web