_Author's note: I wrote this in March 2023, but just published in October 2025. I held back from publishing this originally for fear that I was being sensationalist. But with the launch of Sora 2, I couldn't not share these thoughts. I only regret I didn't publish it 2 years ago._

### AI is influencing human behavior on a massive scale and this is scary

Lately, I’ve heard many…
Learn how to implement dynamic theming in your iOS app using `UITraitAppearance` introduced in iOS 17. This comprehensive guide covers everything from setting up a simple light and dark theme to applying trait overrides for seamless switching. Download the sample code from GitHub to get started and enhance your app's UI today.
This morning, [Bryce Roberts](https://x.com/bryce) shared [this short clip](https://x.com/bryce/status/1876770331450298476) of a conversation between him and [Soleio](https://x.com/soleio), one of the first designers at Facebook (now Meta). Soleio was reflecting how in the early days of Facebook, he'd go out for beers and read it out loud with the rest of the team. Do yourself a favor, and read…
In this blog post, discover how I turned my frustration with Jekyll into a custom static site generator built in Go, using SQLite for data management. Explore the journey!

This is a list of my 7 favorite things about the book [Creativity, Inc.: Overcoming the Unseen Forces That Stand in the Way of True Inspiration](http://amzn.to/2jNhPDS), by Ed Catmull, co-founder of Pixar Animation.

1. Ed Catmull is a fantastic writer and it was a pleasure to read.
2. There is a formula to encourage creativity in large organizations.
3. The portrait of Steve…

This race was a breakthrough for me. I dominated in the swim (3/22 in AG, only ~9s behind the leader), had a PR on the bike in terms of wattage and speed (although it was a flat course), and had my fastest run of any race, including the Splash and Dashes.

The weirdest part about all of it was that, franky, I felt like crap the night before and even the morning of—pretty sure this was…

Woke up at 5:10, a little earlier than I’d planned since my dad-in-law decided he was doing the race at the last minute, so I picked him up on the way. This actually sort of caused a cascade of issues since I didn’t have time to eat breakfast. The steel cut oats, banana, and maple syrup REALLY didn’t appeal to me unfortunately, and because I felt so rushed, I *maybe* got one or two bites in…

After some frustrations in tracking my open water swims and races with the [fēnix 5](http://amzn.to/2u1aq60), I decided to do something a little wild. I'd read around online that some people have experimented with taking their [vívoactive HRs](http://amzn.to/2s3BCEs) and clipping them to their goggles, or in their swim caps, and getting decent results.

I hadn't seen any experimental…

#### Pre-race

Pros:

* Had dinner (chicken + sweet potato) night before before 6pm
* Breakfast (oats, banana, maple syrup) was great once again
* Warmed up for about 10 minutes about an hour pre-swim, stretched, dynamic WU, and then a run (tried to get up to Z4 but couldn't?).
* Tri suit fit GREAT and felt great.

Improve:

* Warm up closer to…
My iMac has started resetting my mouse's tracking speed upon every restart. While somewhat frustrating, it's pretty easy to open up System Preferences -> Mouse, and update the tracking speed to one notch below 'Fast' and get on with my work.

 

While it's gotten a little old, it also got me to thinking: why does Apple measure mouse movement in terms of…
Marco Arment released an [iOS 9 Content Blocker](http://peace.land) on Wednesday and it quickly rocketed up to #1 on the Paid App Store charts. At that ranking, apps can pull in tens of thousands of dollars per day.

For very [good reasons](http://www.marco.org/2015/09/18/just-doesnt-feel-good), he removed it from sale this morning. And then things got…
We're vacationing in Whistler, BC right now as 'endurance spectators' to my father-in-law's 3rd Ironman triathlon. Expecting some beautiful landscapes and weather, I brought my newly acquired X100T to take some nice photos.

Yesterday, I set it up on an interval timer and pointed it right towards Rainbow Mountain, which faces the patio in the kitchen of the little condo unit…

It's now been a few hours after The WWDC 2015 Keynote, and I've had some time to digest everything. My immediate impression of everything was a little 'meh', but then again, that's sort of how I feel every year. It's hard to satisfy everyone.

Second impression is that the WWDC Keynote is no longer for developers. It's for the end users and wannabe developers. Us old-timers are too…

Here's my list of things I'd be overjoyed to see fixed / announced / released at WWDC 2015 next week.

### iOS

* Deep linking support. Let apps define associated URLs (https://twitter.com/* --> open Twitter.app).
* Really want to hide my carrier and clean up that status bar. Such a mess right now.
* It's time to modernize the UI for Notes.app and Reminders.app. iOS 6…

My wife and I have been searching for months for a service to allow us to store our sensitive files in Dropbox securely. There are a lot of services out there that promise to do this well, but frankly, it's hard to trust that our data would be safe if they happened to be hacked or compromised. I therefore went looking for a piece of software that was:

1. Vetted as being…

I've been using and working with Python in a professional context for around 8 years. So it came sort of a shock that something so useful, so obvious, was unfamiliar to me until around a week and a half ago.

It involves a little file called `.pythonrc` that lives in your home directory. To get it to work, you'll need to define an environment variable called `PYTHONSTARTUP`, like…
After hearing a few months back that PostgreSQL had built-in full-text search support, I had been continually searching for reasons to take advantage of it. A few months went by, and when one of our clients at [Lionheart](http://lionheartsw.com) started running into issues with slowness using the Django admin's built-in search support, I knew I had a solid candidate. After all was said and done,…
I normally don’t write reviews, but I figured it’s never a bad time to
start.

I’ll jump right into it.

I have never before gotten a case for my iPhone. Cases add bulk, take
away from the aesthetic of the phone, and are just another “thing” to
keep track of. But when I heard about the…

It's been almost four years since my wife and I made the decision to move to Los Angeles after college. We came here for a lot of reasons, but the biggest ones were family, the lively tech scene, and the practically perfect weather.

All in all, I really do love this place.

But after nearly four years of calling it home, the time has come to make a change.

Real…
A couple weeks back, Google released ngx_pagespeed, an nginx module that is capable of doing a lot of cool stuff behind the scenes to speed up your webpages.

> ngx_pagespeed speeds up your site and reduces page load time. This
> open-source nginx server module automatically applies web performance
> best practices to pages, and associated assets (CSS, JavaScript,
> images)…
Mike Krieger (Instagram cofounder) wrote an article today on
[Opbeat](http://blog.opbeat.com/2013/04/26/picking-tech-for-your-startup/)
regarding the technology stack tech entrepreneurs should use for their
startups. His advice could not ring more true to me (especially in light
of my [previous
post](/archives/2013/04/16/there-is-no-right-way-to-develop-software/)).

>…
TDD is the only way to write bug-free code. Pair programming is the only
way to work. We’re successful because we only hire remote workers. Blah
blah blah blah blah.

I see shit like this every single day.

Little tidbits like this are so mesmerizing because they fool us into
thinking that they’re the only thing separating us from that giant pot
of gold at the end…
Like many other developers, the people who I interact with most often in
my codebases and issue trackers are not other software engineers—they’re
my clients.

My partners have generally never been involved in the development of any
software project at any point in their lives prior to working with me.
This is not to say that they aren’t technically savvy—on the…
I'm a big fan of [Compass](http://compass-style.org/), the CSS framework that uses [Sass](http://sass-lang.com/) under the hood to make developing stylesheets not nearly as tedious as it might be otherwise. One thing that's always been a pain, however, is debugging SCSS while using the web inspector in Google Chrome.

Here's the problem. Compass reads content from a certain file, and…
I've been lamenting the state of static files in Django for a while now. The app has caused one problem after another for me. In one situation, after running \`./manage.py collectstatic\`, my entire development environment was wiped. In another, I found staticfiles was completely unreliable when syncing static media to remote storage backends, due to the way it calculates whether a file has…
I got back from Belize last Sunday, and I thought it might be a good
idea to write a post about it. Plus, I took a ton of pictures and it
would be a shame if no one else could see them.

So, the family vacation to Belize started on December 23rd. We had an
early flight to Dallas-Forth Worth, a short layover, and then another
leg to Belize City. We flew American, and the…

You can click on any of these to add them to your Tweetbot.

 @.+.*@.+.*@.+ 

This mutes tweets that @ reference three or more users.

 #\w{15,} 

This mutes tweets with absurdly long hashtags.

 ^.{1,16}$ 

Mutes tweets shorter than 17 characters.

 ^(C|c)urrent status 

Mutes tweets starting with the text 'Current…

I just gave my blog a bit of a refresh--it's been needing it for a while.

So what changed?

1. Main content is now centered (as opposed to left-aligned).
2. Permalinks are now of the form :year/:month/:day/:slug (before it was just /:slug).
3. The archives have now moved to their own page, as opposed to a sticky div on the right side of every post.
4. The header…
I am participating in an Internet-wide blackout in protest of two
dangerous bills, the [Stop Online Piracy Act
(SOPA)](http://hdl.loc.gov/loc.uscongress/legislation.112hr3261) and the
[Protect IP Act
(PIPA)](http://hdl.loc.gov/loc.uscongress/legislation.112s968), that are
soon up for vote in the United States Senate and House of
Representatives.

Please take some…
Looking to go on a flight soon? I crowdsourced data using Mechanical Turk to figure out the best times to purchase tickets. Check out the results in this post.
[The iPad](http://www.apple.com/ipad/) was announced about a week and a half ago to great fanfare amongst both the tech community and the world at large. It has been hailed as the computer for people who don't know how to use computers.

What a thought.

I really applaud [Apple](http://apple.com/) for this achievement. They've really gotten close to pushing something out to market…
Looking to go on a flight soon? I crowdsourced data using Mechanical Turk to figure out the best times to purchase tickets. Check out the results in this post.

Four days has gone by and I haven't visited [Reddit](http://reddit.com/), [Digg](http://digg.com/), or HN.

When I originally started this experiment, I thought that by this time I would be struggling to make it through the day without a burning desire to start typing 'redd' into my address bar. Strangely enough, this hasn't yet happened to me. In fact, I have basically forgotten…
I vowed on Monday not to visit either Hacker News or Reddit.com for a week starting from yesterday. And my god has it been painful.

I can hardly believe it's already been almost 48 hours. What's most unbelievable to me is how much more 'stuff' I have gotten done without the constant urge to check out what's going on in the social-news-o-sphere. In many ways I feel like I'm a…
I just spent a few hours working on implementing [Clickpass](http://clickpass.com/) with my new project built on [web.py](http://webpy.org/), so I figured I could save everyone else some time by giving some tips on how to fast forward to the actual development of what it is you want to make instead of tweaking configuration files.

[OpenID](http://openid.net/) is nearly ubiquitous at this…

I'm vacationing in Cancun right now, a place where more than a million people a year visit year-round to get away from the daily grind. Cancun is a [ecological](http://www1.american.edu/TED/cancun.htm) disaster, so I don't really recommend you come here, but if you do, I have a few tips that you might enjoy.

First of all, Cancun isn't off-the-wall expensive (at least nowhere near as…

 In America, it seems that the idea of fruit vendors has in some ways died out–but here in China, it can be below freezing, with the wind hitting to the core of your bones, and the loyal sellers will still be outside selling their signature products. A few of these are pretty interesting, not things that you could find in a Gourmet Heaven near you. 
 Think of a citrus four times the size…