i'm philip
i like to be at the intersection of computers and humanities
if you want to get in touch, drop me an email
- 
			
Commoditized Social Networking
Meta's Threads is joining the Fediverse, now what?
 - 
			
SwiftUI: ScrollView clipping
ScrollView's clipping behavior can be surprising.
 - 
			
SwiftUI: Dynamic status bar style
A minimally invasive approach to dynamically alter the status bar style in SwiftUI 2 projects.
 - 
			
Obtaining Apple Health Workout Icons
Acquiring the official workout icons used across the Apple Health ecosystem is surprisingly difficult.
 - 
			
Pedantic Review: Elgato Thunderbolt 3 Pro Dock
Overly pedantic review of Elgato's Thunderbolt 3 Pro Dock.
 - 
			
Developer Diary Excerpts: machinectl auto-login
Circumventing manual password input for fun and profit!
 - 
			
Python Quirks: Implicit Return
Python function always have to return something, right? Well, its complicated...
 - 
			
Python Tips: Generator unrolling
There are many ways to unroll generators in Python, but which one is the best?
 - 
			
Python Tips: Dynamic function definition
Function definition in Python can be considered static, right? Wrong!
 - 
			
Python Quirks: Lambdas
Python lambdas are weird and underpowered... But why?
 - 
			
Three days of owning a Dell XPS 15 (9570)
Detailed Dell XPS 15 (9570) review and postmortem from the perspective of a previous MacBook owner.
 - 
			
Python Quirks: Comments
Performance comparison of various Python comment types.
 
products
- 
			
				
				Quantile
beautiful workout widgets
 
repos
- 
					
						Python
					
Adds track change notifications and media key support to cmus.
 - 
					
						Python
					
Runtime Python bytecode optimizer. ⚡️
 - 
					
						CSS
					
GitHub syntax highlighter color scheme for Pygments.
 - 
					
						Rust
					
A MCP3008 sensor driver in Rust.
 - 
					
						Python
					
Namespace promotion made easy. ↑
 - 
					
						Shell
					
Excuse Me Sir, Do You Have a Moment to Talk About Tiling WMs?
 - 
					
						JavaScript
					
Lightweight, route-based and data-type preserving network protocol framework.
 - 
					
						Python
					
Lightweight, route-based and data-type preserving network protocol framework.
 - 
					
						Python
					
Non-progressive web app.
 - 
					
					
Posts and comments found on my blog.
 - 
					
						C#
					
Nifty tool that saves your last clipboard entries for later use.
 - 
					
						TypeScript
					
my cv
 - 
					
						HTML
					
Landing page for Quantile. 🏃♂️
 - 
					
						archived
						Python
					
Scrape media right from your terminal with the help of Offliberty.
 - 
					
						archived
						Python
					
Python configuration files in Python. ¯\_(ツ)_/¯
 - 
					
						archived
						Python
					
Bury the undead tracks in your Inbox playlist once and for all!
 - 
					
						archived
						Shell
					
My dotfiles I guess.
 - 
					
						archived
						Python
					
Python abstraction layer around ScriptingBridge to control iTunes with style.
 - 
					
						archived
						Rust
					
A work in progress Bejeweled clone.
 - 
					
						archived
						Python
					
Enumerate all SoundCloud users and save them to a sqlite3 database.
 - 
					
						archived
						C++
					
Horrible rsync clone.
 
services
- 
			
rss feed
still using rss? great, here is a feed for ya'