Blog
2024
- Aug 10 One Million Checkboxes and the fear of viral success
- Aug 2 Links #10
- Jul 31 Capability makes your life simpler
- Jun 10 Goodbye Evernote, Hello Obsidian
- Apr 27 The flood of AI website builders
- Mar 8 Why we prefer computers over consoles when introducing kids to gaming
- Jan 27 There's never going to be time
- Jan 7 Links #9
- Jan 1 Made in 2023
2023
- Nov 29 Everyone has a Substack and it's great
- Nov 28 Doubling down on RSS
- Nov 27 Rejecting the algorithm
- Nov 26 I needed to be happier
- Oct 10 Let's Get Creative
- Sep 11 Links #8
- Aug 26 200 lbs
- Aug 22 Good eating habits
- Aug 10 Things I wish someone would have told me about configuring VSCode
- Jun 8 Daily inspiration for iOS users
- Jun 6 The stories we tell ourselves
- May 17 Augmented Development with AI
- May 11 Links #7
- May 9 Microcontributions
- Apr 14 AIs can write for us but will we actually want them to?
- Apr 7 Afraid of AI
- Mar 17 There's a lot to like about the Web Share API
- Jan 3 Made in 2022
2022
- Dec 31 The best part of pair-programming is when things go wrong
- Dec 30 Six Years of Jekyll
- Dec 29 Links #6
- Aug 14 Lunch Lessons
- Jul 16 Scratch is a big deal
- Jun 2 Bill Watterson on creating a meaningful life
- May 11 From Sparkbox to Formidable
- Apr 28 Links #5
- Apr 25 Web developers don't use enough spreadsheets
- Feb 18 ReactJS refs and third-party libraries
- Feb 10 My first program
- Jan 11 Made in 2021
- Jan 10 Lessons learned from Advent of Code
2021
- Nov 17 The right kind of thing
- Sep 21 I keep making things out of checkboxes
- Sep 1 Links #4
- Aug 27 A minimalist development workflow using ES modules and esinstall
- Aug 10 Allowing inline scripts in your Content Security Policy using a hash
- Aug 7 Summer updates
- May 21 The rivers we swim in
- May 13 Links #3
- Apr 15 A ripple animation in JavaScript
- Mar 24 Infinitely nested iFrames
- Mar 18 How I boosted my domain authority on accident
- Feb 19 Links #2
- Jan 18 The Powder Toy
- Jan 4 Made in 2020
2020
- Dec 23 When reading stops helping
- Dec 15 Always be designing
- Nov 9 Links #1
- Nov 6 Using the shrug emoticon in markdown
- Oct 23 ES modules in production: my experience so far
- Oct 3 The Power of a Link
- Sep 8 Gridmaster: Closing Thoughts
- Aug 31 How searching for a bundle-free React led me to web components
- Aug 28 A minimalist development workflow using ES6 modules and Snowpack
- Aug 25 I wrote something for CSS-Tricks
- Jul 28 "We don't miss layups"
- Jul 25 The secondary effects of your work
- Jul 21 What are you paying for, to live where you live?
- Jul 18 Nothing speaks like a demo
- Jul 17 A world of imaginary boundaries
- Jun 6 Checkboxland
- May 7 I wish you bad luck
- Apr 24 Drawing git branching diagrams
- Apr 18 Side-projects as a confidence hack
- Mar 25 Online Tools for Creative Kids
- Feb 18 Better vertical spacing with :not(:last-child)
- Feb 17 Recent Readings
- Jan 2 Made in 2019
2019
- Dec 7 Using the URL to build database-free web apps
- Nov 2 Music Box Fun
- Oct 14 Climbing the right mountain
- Sep 17 Using Tagged Template Literals to escape embedded HTML
- Sep 11 Alt-React
- Aug 21 The best conference I ever attended
- Aug 1 The incentives of business ownership
- Jul 16 Daily Demos: a ritual for raising kids that create
- Jun 27 How to meet great people at tech conferences
- Jun 11 Why do we use "git checkout" to discard file changes?
- Jun 2 The unfairness of doing what you love
- May 13 Connect Four: a case-study in invisible interface design
- May 1 400 terrible blog posts
- Apr 16 Nonsense
- Mar 28 The unique power of games in building intuition
- Mar 1 Hacking my brain with podcasts
- Feb 23 Editing a commit in an interactive rebase
- Feb 13 Working for the side-effects
- Feb 8 How I'm making changes in 2019
- Jan 27 Thank you
- Jan 21 A super-underrated skill
2018
- Dec 31 Made in 2018
- Dec 26 We don't control outcomes
- Dec 6 Two Types of Work
- Nov 9 It's your fault they aren't listening
- Oct 24 I can't believe they gave me an "A" for this garbage
- Sep 30 Youth Group Activity: The Game of Life
- Sep 24 4 Takeaways from Learning Futuristic JS with Wes Bos
- Sep 13 How to ask for help
- Aug 1 I'm working part-time now
- Jul 20 A Brief Overview of Docker Tags
- Jun 20 When NOT to Use a Design System
- Jun 4 Putting your Learning on Autopilot
- Jun 1 On Building Capital
- May 13 It's an Energy Problem
- Apr 17 5 Takeaways from Learning CSS Grid
- Apr 17 Selective Ignorance in the Name of Specialization
- Apr 13 Jonathon Harris on Attention
- Apr 8 The Three Phases of Understanding
- Apr 1 Several Ways to Hide Easter Eggs on your Website
- Mar 15 Favorite Web Podcasts (2018 Update)
- Mar 2 Made in 2017
- Feb 18 The Cure for Boredom is Superpowers
- Feb 15 Never Count on Willpower
- Jan 7 Why new developers shouldn't hesitate to learn Rails in 2018
2017
- Dec 26 Really good, but not quite "landmark" articles
- Dec 26 Web Development with Python or PHP?
- Dec 17 What is Github?
- Dec 7 What I've Learned As A Designer and A Front-End Developer
- Nov 28 What Websites Know About You
- Nov 22 Modern web project learnings
- Nov 19 Hacktoberfesting my Personal Website
- Nov 12 Moved
- Oct 1 Why I like to spend my time in core web technologies
- Aug 29 How I Organize the Code Folder on my Computer
- Jul 27 Do Something Small
- Jul 5 The Unglamorous Work that Nobody Sees
- May 25 Snowboarding and Quitting
- Apr 22 Linking to your Javascript Library from Inside the Github Pages Docs Folder
- Apr 13 On Writing Something Every Day
- Mar 8 Beginner Syndrome
- Feb 24 Your site is slower than you think it is
- Feb 9 Made in 2016
- Feb 7 Fixing the Blank Space in Feedburner to Mailchimp RSS Newsletters
- Jan 31 Constraints and Focus
2016
- Dec 30 Embedding SVG Logos that Contain Text
- Dec 29 New Year, New Website
- Dec 13 Get your stuff out there
- Nov 13 The Perils of Sounding Smart
- Nov 13 How I choose a side project
- Oct 9 Farnam Street: what post-education education should look like
- Sep 21 It's about the Miles
- Sep 5 Let's Get. Stuff. Done.
- Sep 4 Every Possible Way
- Aug 26 Github's opportunity to increase open-source collaboration
- Aug 1 Introducing Bouncy Ball: A TodoMVC for Web Animation
- Jul 27 Design your Default
- Jul 23 Hamilton and the unsettling sense of urgency
- Jun 16 Constraint-based Learning
- May 14 Underdogs
- Apr 29 5 Takeaways from 5 Years of Teaching Myself Web Programming
- Apr 26 How Virtual Reality Works on Websites Today
- Apr 17 Abstraction and Mental Models
- Apr 16 I don't know where to start
- Apr 15 Model your code like the real world
- Mar 27 Immerse Yourself
- Mar 7 Asking Questions
- Feb 8 Don Hertzfeldt on Creative Work
- Jan 28 The Art of the Analogy
- Jan 17 A Degree is an Abstraction
- Jan 4 The News Wasteland
2015
- Dec 6 Study under your Dream Team
- Nov 17 Compounding Benefits
- Oct 20 We are just seeing the beginning of interactive online learning
- Oct 20 Bitbooks: Closing Thoughts
- Sep 25 No Smarter than You
- Sep 19 On keeping your gh-pages and master branch in sync
- Sep 11 Daily Inspiration for Android Users
- Sep 2 Musk Hacks the Economy
- Aug 4 Sparkbox Apprenticeships
- Jul 16 Broken Windows in your Code
- Jun 27 Always use a Server for Local Development
- Jun 16 No Sidebars
- May 25 Good documentation is a signal
- May 21 Medium, and Design Details
- May 17 Setting up automated testing for a small client-side Javascript project
- Apr 17 git checkout -b sparkbox
- Apr 12 Circle of Concern vs Circle of Control
- Mar 18 An Opinionated Guide to Getting Help with Drupal
- Feb 16 On Designing Great Systems
- Feb 9 On project constraints and immovable deadlines
- Jan 2 User Experience and Driver's License Photos
2014
- Dec 29 Share what's working for you
- Dec 24 Think before you put up a sign
- Dec 13 How to Set Up a Simple Javascript Twitter Bot
- Nov 27 Every Possible Way to Define a Javascript Function
- Nov 26 Go Online
- Nov 9 Technology isn't the thing…
- Nov 9 How to make maps with Raphael.js
- Oct 24 Dumb Little Things
- Oct 19 An Overview of Javascript's try-catch
- Oct 1 EMs vs PX: A succinct history lesson
- Sep 10 On Students Solving "Real World" Problems
- Aug 30 Using !important for good, not evil
- Aug 28 If you are going to read, then comment
- Aug 6 Our Excuses
- Jul 31 Duplos and Constraints
- Jul 30 The Expectation of Transparency
- Jul 21 The relentless increase in opportunity costs
- Jul 15 The Frontend Developer's Guide to Docker
- Jul 5 Teachers and raising the bar
- Jun 21 What I've been working on
- Jun 5 The Open Internet is at Risk (and here's what you can do about it)
- May 31 Takedown requests, and the right to privacy
- May 22 Loving What I Do
- May 12 Leaping into a whole new world
- May 6 Connecting to the Github API using Octokit and Sinatra
- May 5 CSS Transitions VS Keyframe Animations
- May 3 Doing What You're Told
- May 1 Good Documentation Delivers Value
- Apr 26 It's time, again, for our education to move up the stack
- Apr 22 Using Metrics to Drive User Behavior
- Apr 17 Make Things Simple
- Apr 10 Don't Optimize Performance Prematurely
- Apr 7 Making Targeted Drupal Cache Clears using Drush
- Apr 2 Publishing Books to Github pages with Bitbooks
- Mar 31 Web Authentication is Broken
- Mar 29 Gumption
- Mar 23 How can Homework Make the World a Better Place?
- Mar 16 Persistence [Quote]
- Mar 15 How I rebuilt "Flying Toasters" using only CSS animations
- Mar 15 Platforms are powerful
- Mar 13 How do we free information?
- Mar 6 If you Free Information, you Improve Education
- Feb 27 Two Principles for 2014
- Feb 14 TLDR
- Feb 8 When Google Can't Help You Anymore
- Feb 2 It's Hard Being New
- Jan 25 Template Picker Now Supports Entities
- Jan 19 AnchorJS
- Jan 1 There's more than one way to save a node
2013
- Dec 30 Unconventional Github Projects
- Dec 19 On Finding Problems
- Dec 18 Packaging
- Dec 14 Always be Translating
- Dec 7 Interview Questions
- Dec 4 Open Source and the Critical Path
- Nov 25 Making Art [Quote]
- Nov 20 Blog the answers to questions that people ask you
- Nov 18 Front-end Style Guides
- Nov 9 If Gmail were built with Drupal
- Nov 1 Put the Hours in
- Oct 30 Open source and autonomy
- Oct 24 What IS Working?
- Oct 22 Junior Developers and Taking Correction
- Oct 19 Installing npm with homebrew
- Oct 12 Learning Drupal with the Janki Method
- Oct 10 Tough Mindedness [Quote]
- Oct 8 Being taught vs teaching yourself
- Oct 7 Pause javascript in the browser using the "debugger" command
- Oct 5 The Fermi Paradox and the Great Filter
- Oct 4 Earn our trust.
- Oct 2 Learned Helplessness
- Sep 30 Take the stage but share the credit
- Sep 28 Purging Life of Maintenance Costs
- Sep 26 Best of the Web Podcasts
- Sep 25 The costs of high-level vs low-level frameworks
- Sep 23 Sitting on the front row
- Sep 21 Please, stop stewing, and start blogging about Drupal
- Sep 20 3 reasons I leave your website
- Sep 19 Making something customizable vs. making it smart
- Sep 18 5 settings you didn't know you could control in Drupal
- Sep 18 Can I get a volunteer?
- Sep 17 Humility Hurts
- Sep 16 Err on the side of generosity
- Sep 15 Don't get frustrated. Get smarter.
- Sep 14 Share Everything
- Sep 12 Talk less, say more
- Sep 11 Shipping early doesn't mean shipping broken
- Sep 10 The Best in the World
- Sep 9 Acting Big
- Sep 8 I Trust You
- Sep 7 Procrastination: The future-you cannot be trusted
- Sep 6 I complain because...
- Sep 5 How I find open source resources
- Sep 4 Don't do everything custom
- Sep 3 My 3rd place
- Sep 2 Online Storytelling
- Sep 1 Taught by Machines
- Aug 31 Job security for knowledge workers
- Aug 31 8 ways to take the pain out of Drupal's admin forms
- Aug 30 Visual attention is a zero-sum game
- Aug 29 Six weeks of Getting Things Done
- Aug 28 Can you believe this is the web?
- Aug 27 The costs of a high-maintenance lifestyle
- Aug 26 The Fogg Behavior Model
- Aug 25 Reflections on the Open Source Culture and Economy
- Aug 24 The World is Flatter
- Aug 23 The Formula for Stress
- Aug 22 Brands, listen up: actions speak louder than words
- Aug 21 We're on Drupal 8!
- Aug 21 Build it before you need it
- Aug 20 5 (free) tools I am really digging right now
- Aug 19 Everybody's Weird
- Aug 18 Thinking Long Term
- Aug 17 Using hook_form_BASE_FORM_ID_alter()
- Aug 17 On Uni-tasking
- Aug 16 How to Email Busy People
- Aug 15 My Funny Little Guy
- Aug 14 Analyze, Filter, Deliver
- Aug 13 Killing Rumors
- Aug 12 The side-effects of sharing your work
- Aug 11 Obstacles to sharing your work
- Aug 10 Change the world with 5% more effort
- Aug 9 The Botched Interface Market
- Aug 8 90% of everything is crap
- Aug 7 Writer Block Regions
- Aug 7 Absorb the Negative. Reflect the Positive.
- Aug 6 Drupal Tutorials: Exposed Filters with Views
- Aug 6 Learn by Doing
- Aug 5 Join the Conversation
- Aug 4 The interface IS the software
- Aug 3 Technical Myopia
- Aug 2 I am turning into everything I swore I wouldn't become
- Aug 1 Who is going to care, if you don't?
- Jul 31 Everybody's bad at new things
- Jul 30 Help Someone Move
- Jul 29 Kinds of Time
- Jul 28 Get 1 percent better, every day
- Jul 27 Design decisions are happening in the code
- Jul 26 Training is a Band-aid
- Jul 25 Adapting to change itself
- Jul 24 Drawing the line on feature requests
- Jul 23 Turn off the News
- Jul 22 Five basic principles for Drupal UIs that anyone can follow
- Jul 22 Changing your Environment
- Jul 21 Dabbling in Design
- Jul 20 Get Enough Rest
- Jul 19 Temporary vs. Forever
- Jul 18 Writing for the Web
- Jul 17 Find People who Care
- Jul 16 Friction is a Tool
- Jul 15 OK isn't
- Jul 14 Tetris
- Jul 13 Err on the side of simplicity
- Jul 12 Which is worse?
- Jul 11 Jargon
- Jul 10 On Obstacles
- Jul 8 Ideas
- Jul 8 Why we need emoticons
- Jul 7 Don't ship early if you aren't going to ship often
- Jul 6 Where is the limit?
- Jul 5 A web developer who cannot use photoshop
- Jul 4 Take control of what you consume
- Jul 3 Recording "Lessons Learned the Hard Way"
- Jul 2 Simplicity Takes Restraint
- Jul 1 Nail your Focus First
- Jun 28 The Training Sequence
- Jun 27 Is this an investment?
- Jun 26 You're not a genius, but it doesn't matter
- Jun 25 You don't have to be amazing… you just have to be consistent
- Jun 24 Nobody will teach you anything
- Jun 23 Everything gets harder
- Jun 22 Leaving it unfinished
- Jun 21 Constraints are Fun
- Jun 20 Fundamental Attribution Error and the User
- Jun 19 So you're bad at public speaking.
- Jun 18 You're going to screw up
- Jun 17 Manage Fields Wisely
- Jun 17 Looking for the bright spots
- Jun 14 Be Real
- May 25 Empowering Content Creators with the Template Picker Module
- May 20 How do I "see" my contributed code on Drupal.org?
- May 20 A New Version of Writer
- May 18 New in Writer 2.1
- Apr 27 Focus
- Apr 14 Preparation
- Mar 30 White Screen of Death
- Mar 20 Web Design for the Artistically Inept
- Mar 16 Writer: Customizing the default front page
- Mar 9 Can you make a sub-theme of a sub-theme?
- Mar 8 The Cost of Stuff
- Mar 2 Africa map using Raphael.js
- Feb 23 Exformation
- Feb 16 The End of Decay
- Feb 9 Let's make software that's easy to extend.
- Feb 2 Order the Octopus
- Jan 24 Usability 2.0
- Jan 19 This is an Amazing World
- Jan 19 Writer: A Blogging Theme for Developers
- Jan 12 What does RTBC mean?
- Jan 6 2012 Retrospective
2012
- Dec 29 Understanding the Command Line
- Dec 28 Tips for Setting up Writer
- Dec 25 In Defense of Scrooge
- Dec 22 History
- Dec 15 Happy Holidays 2012
- Dec 11 Touchscreen
- Dec 9 Writing a Letter
- Dec 3 A Drupal 7 Image Gallery Tutorial
- Nov 25 Vim Color Schemes: A Call for Designers
- Nov 18 Open Source in the Government
- Nov 11 The Ulysses Contract
- Nov 5 The Command Line is a Terrifying Thing
- Oct 28 Perspectives of a Child
- Oct 25 The open source community that embraces designers most, wins.
- Oct 14 Family of Four
- Oct 4 How could I have ever forgotten
- Sep 18 Changes
- Sep 3 Why I Run
- Aug 5 17 States in 14 Days
- Jul 7 In which I explain how I got my dream job
- Jun 30 Turning our challenges into our assets
- Jun 25 Multitasking and Context Switching
- Jun 19 Hey there Delilah, what's it like in Alpine Village?
- Jun 10 Optimism
- May 29 Manliness
- May 20 Jeqe Recipe
- May 13 Commitments
- May 5 Heidi Grows
- Apr 30 In the Press
- Apr 8 Remain Curious
- Apr 8 Climbing walls like Batman
- Apr 2 The Curse of Knowledge
- Mar 25 Drupalcon Denver Retrospective
- Mar 19 Never Settle for Being Mediocre
- Mar 11 Catching things before they hit the floor
- Mar 4 Try Hard Things
- Feb 26 Be Bold
- Feb 19 It's Not About You
- Feb 12 You Only Live Once
- Feb 5 StartUp Weekend Salt Lake City
- Jan 29 Form IS Function
- Jan 22 Generalizing vs Specializing
- Jan 1 Looking back. Looking forward.
2011
- Dec 25 Happy Holidays 2011
- Dec 18 Dichotomous Thinking
- Dec 11 Consider ALL the Options
- Dec 4 Fermi Estimations
- Nov 27 The eBook Enigma
- Nov 20 Spare Time
- Nov 13 There IS such a thing as a free lunch
- Nov 6 Winning Systems
- Oct 30 Turning traditional education upside down
- Oct 23 Do we really need to know all this stuff?
- Oct 16 Locus of Control
- Oct 9 I Like Statistics
- Oct 3 How to get people to do what you want them to do
- Sep 21 The Future is Mobile
- Sep 11 What do Mormons believe?
- Aug 28 Just Ask
- Aug 21 The Fall of Internet Privacy
- Aug 16 A Tribute to YouTube
- Aug 8 Opportunity Costs
- Jul 31 5 must-have Firefox add-ons for the every day person
- Jul 24 6 Ways to do Good on the Internet
- Jul 18 The Growth Mindset
- Jul 10 The 10 best Google search tricks
- Jul 5 Nothing Bad Ever Happens
- Jun 20 Bryan vs the Testing Center
- Jun 12 Things Worth Thinking About [Videos]
- Jun 5 The New York Times and The Sticky Platform
- May 29 Living Deliberately
- May 22 "I don't have time"
- May 9 10 websites that you didn't know you couldn't live without
- May 1 My Book of Impossible Ideas
- Apr 25 5 Awesome Books (that are FREE online)
- Apr 18 Location, Location, Location (putting yourself in the right spot)
- Apr 10 Bryan vs the Sunk Cost Fallacy
- Apr 3 The Future of Educational Games
- Mar 28 5 Reasons You Should Be on Twitter
- Mar 21 Voting with your Dollar
- Mar 13 A Very Long Race
- Mar 6 A Whack on the Side of the Head
- Feb 27 Fear and the Critical Moment
- Feb 20 TED
- Feb 20 Checking In
- Feb 14 Heidi
- Feb 6 Jolly Ranchers
- Jan 30 Planning my 100th Birthday Party
- Jan 23 The Most Important Image ever Taken
- Jan 16 Get a Booklist ASAP!
- Jan 10 The Power of Infographics
- Jan 2 $uccess
2010
- Dec 27 The Dvorak Keyboard: Should I learn it?
- Dec 18 How Big is the Internet?
- Dec 12 How to Play the Wikipedia Game
- Dec 5 How to Lose Friends
- Nov 28 6 Online Sources for Free Learning
- Nov 21 Defining your Grand Challenges
- Nov 15 Kickoff to "Good Attitude Week"
- Nov 4 Bryan vs the Internet