RSSAmplifier

Blog

Dan's Blog

dlo.meRSS feed ↗72 posts

Latest posts

You Should Be Worried

_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…

Modern iOS Theming with UITraitCollection

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.

The Cult of Done Manifesto

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…

I Ditched Jekyll and Built a Static Site Generator Based on Go and SQLite

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!

Creativity Inc.


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…

Kerrville Tri 2017 Race Report


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…

Jack's Generic Tri 2017 Race Report


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…

How to Accurately Track Open Water Swims


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…

LifeTime Tri CapTex Race Report


#### 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…

Replacing Tracking Speed

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 Did The Right Thing

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…

Making a time-lapse on the command line using FFmpeg and ImageMagick

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…

Post-WWDC 2015 Keynote Thoughts


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…

WWDC 2015 Wishlist


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…

The Free, Easy, and Secure Way to Encrypt Shared Dropbox Folders on Your Mac


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…

Supercharge Your Python Shell


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…

Getting Started with Django and PostgreSQL Full-Text Search

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,…

Review: iPhone 5s Case

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…

So long, California, and thanks for all the fish


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…

Speeding up your site with ngx_pagespeed and Amazon CloudFront

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 on Startup Tech

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/)).

>…

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…

How To Write The Perfect Bug Report

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…

Making Chrome Play Nicely with Compass & Sass

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…

How To Serve Static Files in Django

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…

Belize

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…

My Favorite Tweetbot Mute Filters


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…

Blog Refresh


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…

Why Four Inches?

Why the iPhone 5's four inch screen ain't such a problem.

Blogging Again

Why I'm going back to blogging.

Box Sizing that Works on Every Browser

How to pad divs without having to change their height and width.

Stop SOPA

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…

What To Do When Your Site Goes Viral

Lessons learned the hard way while scaling a viral web application.

Breakup Notifier

How a harmless conversation led to one of the most viral websites ever.

How I Deal With Content Overload

My strategy for dealing with a lot of information. Try it out.

Crazy.

Sometimes being unpredictable is the best thing you can do. Try it out sometime.

When to Buy Airline Tickets Continued

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.

Introspection in Vim

A little Vim plugin I wrote that adds introspection to Python code.

Distribution of Airline Ticket Prices

A small chart that shows the best times to buy airline tickets.

Relative Line Numbers in Vim

Vim (the text editor) now support relative line numbering. This post will explain how to use it.

OpenProvider

An ill-fated plan on mine to revamp the way social networking works on the Internet today.

Why Piracy is Sometimes Good For the Software Industry

Thoughts on why piracy might be a good thing for the software industry after all.

Is the iPad a mistake?

[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…

Random Queries on the Appengine Datastore

Need a way to get random entities out of the Google Appengine Datastore? Here's a solution that should get you running in no time.

When to Buy Airline Tickets

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.

My Social News Escape: Day Four


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…

My Social News Escape: Day Two

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…

OpenID, Clickpass, web.py, and Python

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…

Things that will save you time and money in Cancun


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…

柚子 and 红牛 — the best complements to late night studying


 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…