Writing archive
If this is too much to sift through, check out the greatest hits. For updates, grab the RSS feed. There’s also a latest comments page.
2023
- Sept. 12: Announcing my first proper album
2022
- Dec. 1: Adventures in generating music via ChatGPT text prompts
- Nov. 11: Thoughts on my first machine learning project
- Aug. 10: Let websites framebust out of native apps
2018
2017
- March 28: Machines vs. humans
- Feb. 11: About the PPK talk and tweet
2016
2015
- Dec. 27: Fine-grained cache-name control with service workers
- Dec. 8: How to use your U.S. phone number internationally
- Sept. 18: iOS 9 problems with web audio
- March 9: Using automated screenshots to test <canvas> and user interfaces
2014
- July 25: How to solve CORS IE font issues with Amazon Cloudfront
- March 17: Announcing the Soundslice sheet music player
- Jan. 24: Why Chicago needs to stop playing by Silicon Valley’s rules
- Jan. 13: Adrian and Jacob retiring as Django BDFLs
2013
- Nov. 17: Google+ and YouTube tech disaster report
- Oct. 11: How to redirect domains using Amazon Web Services
- Sept. 26: Support me on Patreon
- Sept. 3: Adrian's guide to Chicago for DjangoCon 2013
- Aug. 19: "Sane data updates" series
- July 15: Announcing Soundslice Pitch Perfect
- July 1: How to make help microvideos for your website
- June 3: Adding /admin/ as a wink to Django developers
- May 28: Using HTML5 prerendering to speed up a multi-page registration process
- May 20: Why I left Heroku, and notes on my new AWS setup
- May 6: In defense of <canvas>
- April 15: Boston.com's viral explosion videos
- March 19: Remembering Malcolm Tredinnick
- Feb. 7: RIP EveryBlock
2012
- Nov. 26: Notes on Soundslice
- Aug. 15: Onto the next chapter
- June 5: The connection between Google Street View and driverless cars
- April 29: Moving Django to GitHub
2011
- Nov. 28: Back in the Django saddle
- Oct. 17: Introducing the YouTube Insult Generator
- July 15: Crash tags
- July 6: Job opportunity: Web/mobile developer at EveryBlock
- March 8: Wanted: EveryBlock general manager
2009
- Aug. 17: EveryBlock acquisition and me
- May 21: The definitive, two-part answer to "is data journalism?"
- May 18: Django tip: Caching and two-phased template rendering
- Jan. 29: Looking toward EveryBlock’s future
- Jan. 9: Announcing the Django Book, second edition
2008
- Dec. 4: Goodbye hyperlocal, hello microlocal
- Sept. 4: Django, still amazing me after all these years
- July 1: New EveryBlock cities launched
- May 2: Request: Headless HTML rendering engine?
- April 4: Check out my Radiohead remix
- Feb. 19: EveryBlock hiring a Python screen-scraping expert
- Feb. 15: A couple of EveryBlock interviews
- Jan. 31: In memory of chicagocrime.org
- Jan. 23: EveryBlock launched
- Jan. 1: Interview at akitaonrails.com
2007
- Dec. 12: Django Book has shipped -- and, thoughts on the next book
- Aug. 23: Me at the Green Mill
- July 6: Introducing templatemaker
- June 9: Some of my recent YouTube videos
- May 23: A new journo-programmer scholarship
- May 23: Knight Foundation grant
- May 1: New at work: Presidential candidate tracker
- April 30: Lead video on YouTube
- March 9: Work with me at washingtonpost.com
- March 8: MediaShift covers newspaper developers
- Feb. 23: New at work: Bill Clinton's paid speeches
- Jan. 28: Profiled in American Journalism Review
- Jan. 26: "MacGyver" theme song, solo acoustic guitar
2006
- Oct. 3: J-schools, computer science and the bigger picture
- Sept. 6: A fundamental way newspaper sites need to change
- Aug. 11: New at work: Mixed Messages
- June 6: Interview at OJR
- May 19: Wanted: Web developer for project
- May 17: 'Dynamic News Stories' article at XML.com
- May 15: Missouri j-school commencement speech
- May 2: Wanted: Movable Type expert for washingtonpost.com project
- April 13: New at washingtonpost.com: Faces of the Fallen 2.0
- April 7: How I'm using Amazon S3 to serve media files
- March 23: Blotters on chicagocrime.org
- March 14: Video profile at NetSquared
- Feb. 10: Python interface to Microsoft Outlook Web Access
- Jan. 31: Chicagocrime.org covered in El Pais
- Jan. 22: Gypsy jazz version of Super Mario Bros 2 song
- Jan. 6: Newest projects at work
2005
- Dec. 11: NYT names chicagocrime.org 'influential'
- Dec. 5: Announcing washingtonpost.com's U.S. Congress Votes Database
- Nov. 22: Post Remix: The Washington Post's official mashup center
- Nov. 21: 39 smart businesspeople ... and me
- Nov. 9: On the inevitable ads in Google Maps
- Oct. 13: The perfect information delivery system
- Oct. 13: Future 10
- Oct. 13: Wanted: Mashup makers
- Sept. 29: Interview at Editor and Publisher
- Sept. 26: I've been podcasted
- Sept. 20: Victory in search for Auto Wreckers
- Sept. 13: Batten winner!
- Sept. 1: I've got something for you
- Aug. 16: New chicagocrime.org feature: Crimes along a route
- Aug. 14: In D.C.? Come to Batten Symposium
- Aug. 9: Google Maps within news stories
- Aug. 3: Job change
- July 24: Compiled Greasemonkey scripts are safe
- June 30: Need custom Google Maps development?
- June 22: On hacking and 'money-grubbing evil things'
- May 31: Drawing arbitrary GIS data on Google Maps
- May 18: Announcing chicagocrime.org
- April 25: Greasemonkey compiler
- April 22: Lawrence.com: iPod edition
- April 19: Chicago Transit Authority map on Google Maps
- April 13: Lawrence Web news operation on NPR
- April 12: Why Greasemonkey is good for publishers
- March 20: Greasemonkey script: Google Suggest
- March 18: Microformats could describe online news intelligently
- March 16: It's tournament bracket time again
- March 10: March travels
- March 9: Romenesko has RSS
- March 7: More on EmPRINT
- March 2: Again, a newspaper PDF experiment is fatally flawed
- Feb. 11: Job opportunity: Web developer at Florida news site
- Feb. 9: Lawrence.com relaunched
- Feb. 8: A few ideas for Google Maps
- Jan. 25: Another reason to open story archives
- Jan. 19: Following the leader
2004
- Dec. 6: 'Links via Feedster' on Washington Post and New York Times sites
- Nov. 21: Grokking Googlezon
- Nov. 19: Registering a complaint about Web news polls
- Nov. 16: Job opportunity: Web editor in Florida
- Oct. 19: BusinessWeek interview transcript: Registration and BugMeNot
- July 21: Extension questions
- July 20: Site-specific browser extension: All Music Guide
- July 16: Required-user-registration debate continues
- June 29: Job: Web developer for World Online in Lawrence, Kansas
- June 20: Accessing your Gmail contact list with Python
- June 18: Accessing your Gmail inbox with Python
- June 16: Required reading from Barry Parr
- June 16: New Media Journalism.com: A promising new resource
- June 14: Seen the BugMeNot bookmarklet yet?
- June 14: Unsuckifying All Music Guide links
- June 11: 'Game': Fun with databases
- June 2: Purple numbers: Useful but unrealistic
- May 29: Enabling MP3 support in Fedora Core 2 Linux
- May 28: Photo expansion on mouseover could get disruptive
- May 28: Return to writing
- April 16: Google News deserves finalist status in journalism awards
- April 4: Topix.net redux
- April 1: Newsmap idea could be worth stealing
- March 13: RSS at Poynter E-Media Tidbits
- March 10: Web site shows your page's metadata
- March 9: IE hack could benefit from centralization
- Feb. 23: How not to solicit redesign comments
- Feb. 13: Wire-story disclaimer at cbs2.com
- Feb. 11: Topix.net service policy: Hypocrisy in action
- Feb. 11: A one-fingered salute from the Firefox folks
- Feb. 4: Participatory journalism in an unlikely -- or likely? -- place
- Jan. 13: Persistent pop-ups? Not a good idea
- Jan. 5: Give online news stories a relative importance rank
2003
- Dec. 21: XFN: Something about personal relationships
- Dec. 13: Job opportunity: Online producer in Florida
- Dec. 11: An interesting navigation idea
- Dec. 5: Bad news art at CNN.com
- Dec. 1: Tagging quotes in a news story
- Nov. 19: Travels
- Oct. 30: Job opportunity: Web programmer/editor in Florida
- Oct. 26: Wanted: Browser filter features
- Oct. 22: Gray day
- Oct. 19: More ESPN Flash mischief
- Oct. 18: Calling all Kansas City-area Web developers
- Oct. 18: ESPN baseball site: Flash for Flash's sake
- Oct. 14: Mailinator changing '1 e-mail per person' mentality
- Oct. 10: Verve Hosting Web-host problems
- Sept. 18: Transcripts add to a story if handled fairly
- Sept. 17: New additions to the 'Recommended' list
- Sept. 17: OJR interview transcript: Linking policies
- Sept. 10: 'AIM this story' on FOXSports.com
- Sept. 3: Die, comment spammers
- Aug. 31: SMS sports alerts on KUsports.com
- Aug. 21: OJR interview transcript: Correction policies
- Aug. 19: Miami Dolphins get big promo on KansasCity.com
- Aug. 14: CNN and Chicago Trib display sitewide breaking-news alerts
- July 29: Separating ads from content in all browsers
- July 24: New weblog feature: Reserved comment names
- July 17: On hiring young Web developers
- July 15: More weather site questions and answers
- July 13: Lawrence weather site in all CSS
- July 2: Best practice: Edmunds.com zip-code prompt
- June 30: Targeted ads way off the mark
- June 25: PHP/MySQL at washingtonpost.com
- June 24: Official BBC News RSS feeds are up
- June 23: Hacks, hacks, hacks...
- June 21: Server switch
- June 17: Why news sites don't need specialized blog systems
- June 15: Survey: Text-messaging increasingly popular
- June 13: Innovative online ad is not necessarily accurate
- June 9: Wrapping up Find The Web Editor's Name And E-Mail Address Week
- June 7: Finding the Web editor at NYTimes.com
- June 6: Finding the Web editor at MSNBC.com
- June 5: Finding the Web editor at sacbee.com
- June 4: Finding the Web editor at FortWayne.com
- June 3: Finding the Web editor at ABCNEWS.com
- June 2: Finding the Web editor at latimes.com
- May 31: Job opportunity: Web programmer/developer
- April 24: Lining up the reasons against Gazette.com's dots
- April 17: CJOnline redesigns
- April 17: NYTimes.com article pages lose left rail
- April 10: Boston.com sells out
- April 4: Bumbling news sites display incorrect Baghdad time
- April 3: Web standards improve 2theadvocate.com navigation
- April 1: April Fool's Day
- March 27: Guidelines for fair, accurate online candidate chats
- March 26: Registration forms make it too easy to cheat
- March 21: Miniblog: Stuff I've done lately
- March 17: A review of Web NCAA bracket interfaces
- March 14: Dallasnews.com: Caught red-handed
- March 10: Interview with Web optimization expert Andy King
- March 10: Standing up for standards
- Feb. 27: Dynamically displaying acronyms and abbreviations
- Feb. 25: Covering elections on LJWorld.com
- Feb. 23: A very large screen
- Feb. 20: Recommended reading
- Feb. 19: ESPN home page now has tableless layout (almost)
- Feb. 11: Recommended reading
- Feb. 11: Read our lead story: We dare you
- Feb. 9: ESPN.com to redesign
- Feb. 6: Recommended reading
- Feb. 5: FOXNews.com advertising should be labeled in all browsers
- Jan. 31: Post-Connections notes: Chron.com
- Jan. 30: Post-Connections notes: Northbay.com
- Jan. 26: Orlando, here I come
- Jan. 23: Busy, busy, busy
- Jan. 10: Recommended reading
- Jan. 10: Blocking stylesheet rules from Safari
- Jan. 7: On bookmarking entertainment listings
- Jan. 2: The need for archives by citation
- Jan. 2: Back in business
2002
- Dec. 21: Happy holidays
- Dec. 20: Dynamically labeling blockquotes with CSS
- Dec. 20: Using 'smart' dates, today
- Dec. 18: Online chat tool on kusports.com
- Dec. 17: How HTML acronyms and abbreviations can help online journalism
- Dec. 9: Trade it on Trodo
- Dec. 1: Holovaty.com code improvements
- Nov. 28: The Case of the Mysterious Date
- Nov. 26: A career move
- Nov. 22: Recommended reading
- Nov. 21: 'Intelligent' design personalization at bbc.co.uk
- Nov. 20: One thing wrong with the Reuters redesign
- Nov. 18: Recommended reading
- Nov. 18: Poynter.org redesign woes
- Nov. 14: GetContentSize changed slightly
- Nov. 14: Two DOM ideas
- Nov. 12: Content-to-code ratio statistics
- Nov. 8: The content-to-code ratio
- Nov. 6: Unfriendly Web design 'may be just fine'?
- Nov. 6: Study links Web design with credibility
- Nov. 5: An announcement for RSS readers
- Nov. 4: Drop caps at NYTimes.com
- Nov. 1: Separating photos and captions at ABCNEWS.com
- Oct. 31: Pull-quotes on Web pages
- Oct. 30: Link abundance gives false illusion of completeness
- Oct. 28: csmonitor.com offers syndication feeds
- Oct. 28: Oops: 'Blocked' parts of PDF file still accessible
- Oct. 27: Searching for the 5 W's
- Oct. 25: Page titles on news article pages
- Oct. 25: A follow-up on nytimes.com ad placement
- Oct. 24: Thursday's recommended reading
- Oct. 24: Advertising placement at nytimes.com
- Oct. 22: Tuesday's recommended reading
- Oct. 21: The Google user-interface perspective
- Oct. 21: While I was gone...
- Oct. 21: Back from New York
- Oct. 17: No updates for a few days
- Oct. 16: Wednesday's recommended reading
- Oct. 14: Discussion about Wired News redesign
- Oct. 11: Why don't big-company sites use valid code?
- Oct. 11: Who says we're making progress?
- Oct. 11: Wired News redesigns in all CSS
- Oct. 10: Thursday's recommended reading
- Oct. 9: Link directly to articles. Please.
- Oct. 9: Site review: suntimes.com's 'online partners'
- Oct. 7: Monday's recommended reading
- Oct. 7: Accessibility court cases worth thinking about
- Oct. 4: Thursday's recommended reading
- Oct. 2: Wednesday's recommended reading
- Oct. 1: A clear path to better navigation
- Sept. 30: There will be a quiz
- Sept. 30: Lumping unrelated content together at sunspot.net
- Sept. 29: CSS in the real world: ajc.com's 'News Break'
- Sept. 29: New feature: Blogroll on home page
- Sept. 27: Making forms more usable (?)
- Sept. 26: 'Smart' URLs are navigation tools
- Sept. 26: Yahoo offers RSS feeds of business info
- Sept. 26: Short thoughts on providencephoenix.com and brownsvilleherald.com
- Sept. 25: Wednesday's recommended links, and thoughts on Google News
- Sept. 24: Tuesday's recommended links
- Sept. 24: Emulate really old browsers
- Sept. 23: Monday's recommended links
- Sept. 23: Holovaty.com site improvements
- Sept. 20: Friday's recommended links
- Sept. 19: Thursday's recommended links
- Sept. 19: Google News smarter than ever
- Sept. 19: Site review: newstimes.com
- Sept. 18: Design lessons from the retail industry
- Sept. 17: Tuesday's recommended links
- Sept. 16: Monday's recommended links
- Sept. 16: Presenting important messages 'to our readers'
- Sept. 13: The Florida terrorism threat, from three perspectives
- Sept. 12: Thursday's recommended links
- Sept. 12: Site review: namibian.com.na
- Sept. 10: Tips for designing bare-bones pages
- Sept. 10: Site review: ocregister.com
- Sept. 9: Extra BBC syndication feeds won't work
- Sept. 9: Monday's recommended links
- Sept. 6: Friday's recommended links
- Sept. 6: The horror of rewritten home-page URLs
- Sept. 5: Thursday's recommended links
- Sept. 5: Site review: edinburghnews.com
- Sept. 4: Wednesday's lunchtime links
- Sept. 3: Tuesday's lunchtime links
- Sept. 3: BBC News site offers syndication feeds
- Sept. 2: Site review: jamaica-gleaner.com
- Aug. 31: Confusing breadcrumb navigation
- Aug. 31: URLs and breadcrumb navigation working together
- Aug. 30: Friday's links, and thoughts on table-based layouts
- Aug. 29: Thursday's lunchtime links, and ideas on highlighting content
- Aug. 29: No site review tonight
- Aug. 28: Wednesday's lunchtime links
- Aug. 27: A blind computer user's thoughts on news Web sites
- Aug. 27: News on the Semantic Web
- Aug. 26: Site news: Permalink URLs changed
- Aug. 26: Monday's lunchtime links
- Aug. 24: Chicagotribune.com strike countdown
- Aug. 23: A glimpse into everyday life
- Aug. 22: Coloring off-site links vs. in-site links
- Aug. 22: Thursday's lunchtime links
- Aug. 22: Site review: indian-express.com
- Aug. 21: Wednesday's lunchtime links
- Aug. 21: How news sites keep robots away
- Aug. 20: Tuesday's lunchtime links
- Aug. 20: Site review: thetriangle.org
- Aug. 19: Automated technology gone wrong
- Aug. 19: Monday's lunchtime links
- Aug. 17: Screenshot: NewsChannel2000.com icons
- Aug. 16: Friday's lunchtime links
- Aug. 15: Thursday's lunchtime links
- Aug. 15: Site review: ljworld.com
- Aug. 14: Wednesday's lunchtime links
- Aug. 13: Redesign at NewsChannel2000.com
- Aug. 13: Tuesday's lunchtime links
- Aug. 13: Smarter search results
- Aug. 13: Attempting an all-CSS layout at hollandsentinel.com
- Aug. 12: Monday's lunchtime links
- Aug. 10: A new online news approach
- Aug. 10: Are 99 Percent of all Web sites obsolete?
- Aug. 9: Lunchtime links
- Aug. 8: How empirical is Web design?
- Aug. 8: Site review: Nzherald.co.nz
- Aug. 7: Lunchtime links
- Aug. 7: Washingtonpost.com to ask for personal information
- Aug. 7: Syndicate this site
- Aug. 6: News site correction pages
- Aug. 6: Site review: HarkTheHerald.com
- Aug. 3: Site review: gazette.com
- Aug. 2: MSNBC in early stages of redesign
- Aug. 2: Why news sites don't use XHTML and CSS
- Aug. 1: Site review: Omaha.com
- July 30: Site review: wlbz2.com
- July 28: Study finds breadcrumb navigation useful
- July 28: Boosting Web site credibility
- July 27: Site review: honoluluadvertiser.com
- July 27: Redesign at canoe.ca
- July 26: A not-so-subtle design hint
- July 26: Inaccessible multimedia at nytimes.com
- July 25: Usability study compares online news presentations
- July 25: Site review: EcoLatino.com beta site
- July 25: A new feature: news site reviews
- July 23: Holovaty.com site improvements
- July 22: Keeping popup blockers in mind
- July 19: Knight Ridder sites regain some design control
- July 19: Search engine lets users control its design
- July 18: Redesign at nydailynews.com
- July 17: Using HTML headings for headlines
- July 16: NAA awards announced
- July 15: Online credibility survey
- July 15: Design copycats
- July 12: Strange section titles
- July 12: Helping the uninitiated 'get it'
- July 12: USATODAY.com hacked
- July 12: At Economist.com, compliance is in the works
- July 11: Auto-refresh on news home pages
- July 10: An important day in accessibility
- July 10: And the survey says
- July 10: List-mania
- July 9: Redoing your old pages in CSS, step by step
- July 8: Bowing down to Microsoft
- July 8: Spacer GIFs and ALT attributes
- July 5: Web news awards overseas
- July 5: A hard day's work
- July 3: Smart code words vs. long, annoying numbers
- July 2: 17 days down, 13 to go
- July 2: Online news audience is stagnant
- July 2: A worthwhile wireless world
- July 1: More on user registration
- June 30: 'The scourge of Arial'
- June 30: Comment system is up and running
- June 28: OJR article on user registration
- June 27: Web accessibility case studies
- June 27: Pledging allegiance to e-mail forums
- June 26: A Flash of non-brilliance
- June 26: The best (and worst) online ad types
- June 26: A note about standards-compliance
- June 26: We have liftoff