Can you Write Code on a Chromebook?
This is an update to Can you Write Code on an iPad?, in which I tried writing...
This is an update to Can you Write Code on an iPad?, in which I tried writing...
In 2013, archaeologists digging in the Valley of the Kings found one of the o...
In 2003 Umberto Eco gave a talk at the opening of the Bibliotheca Alexandrina...
Nicholas Carr wrote in a recent article that he considered the ability of pub...
“Trust thyself: every heart vibrates to that iron string.” When I first read...
Kim and I are heading to Coos Bay this week to celebrate Thanksgiving with th...
Kim and I have been reading The Wind-up Bird Chronice, one of Haruki...
The single thing that improved my daily life the most in 2013 was starting a ...
This is an update to Can you Write Code on an iPad?, in which I tried writing...
My post Becoming a better learner went up on the Safari blog recently. I real...
I wrote a post recently on the Safari blog, this time about how to protect ag...
I wrote a post this week about remote work, specifically how to avoid going c...
Replication is a feature of PostgreSQL that you typically use to achieve high...
Replication is a feature of PostgreSQL that you typically use to achieve high...
A year ago, I set out to write the book on Django database performance. Not ...
This post tries to explain just what goes on when you use Django’s StreamingH...
This is a review of PyCharm 2.7 that covers all of the features of the editor...
IPython has a relatively new featured called the “Notebook,” which improves o...
Apparently this is a confusing topic. Let’s say you have a Django model with ...
This post describes how to use a few common tools to instantly set up and tea...
[T]hough it is worthwhile to attain the end merely for one man, it is fine...
Dear Alma, I assume that if you’re reading this letter for its true purpose,...
Dear Alma, Last night, I took a walk under the evening sky as it showed a co...
Last week at work, I rewrote an API to use FastAPI and as much async Python a...
Download audio version My name is David Browning. I ...
“Trust thyself: every heart vibrates to that iron string.” When I first read...
A few weeks ago, Kim and I were riding home from our weekly trip to Fred Meye...
My favorite board game ever has to be Aliens, published in 1989 by Leading Ed...
Download audio version The night sky above Interstat...
I wrote a blog post recently at work that described my experience porting a g...
I’m coming up on ten years as a professional software developer. On...
After the movie The Social Network came out, I saw a post on the internet wri...
Dear Alma, I assume that if you’re reading this letter for its true purpose,...
“Trust thyself: every heart vibrates to that iron string.” When I first read...
A few weeks ago, Kim and I were riding home from our weekly trip to Fred Meye...
This weekend, Kim and I rode bikes from our apartment in the Lloyd District...
My favorite board game ever has to be Aliens, published in 1989 by Leading Ed...
Kim and I are heading to Coos Bay this week to celebrate Thanksgiving with th...
Kim and I have been reading The Wind-up Bird Chronice, one of Haruki...
Download audio version In 2017 I asked, “Can You Wri...
The single thing that improved my daily life the most in 2013 was starting a ...
A Story February 2021. Maintainers of the cryptography package release a new...
Replication is a feature of PostgreSQL that you typically use to achieve high...
Even though I use PyCharm, I still drop into Vim occasionally to edit configu...
In job interviews I try to casually drop that I learned how to program as a t...
Download audio version In 2019, I spent most of my f...
A year ago, I set out to write the book on Django database performance. Not ...
I started a publishing company! Spellbook Press launched this week, taking pr...
A friend of mine wondered recently, What is Python’s default hash algorit...
A Story February 2021. Maintainers of the cryptography package release a new...
Last week at work, I rewrote an API to use FastAPI and as much async Python a...
Replication is a feature of PostgreSQL that you typically use to achieve high...
Python 3.8 shipped one of the coolest features I’ve seen in a recent Python v...
New Python users are often surprised to learn that you call a global function...
I’ve seen quite a few outages and outage-like scenarios caused by improper ha...
The venerable “mixin” is a technique I learned as a Python developer. Now, af...
This post tries to explain just what goes on when you use Django’s StreamingH...
Even though I use PyCharm, I still drop into Vim occasionally to edit configu...
The video of my first ever conference talk is now available on YouTube. Check...
This review is for the Professional Edition of PyCharm 3. I’ll try to cut str...
I wrote a blog post recently at work that described my experience porting a g...
This is a review of PyCharm 2.7 that covers all of the features of the editor...
In this post I’m going to look at a concrete example of building an in-memory...
IPython has a relatively new featured called the “Notebook,” which improves o...
When profiling a Python app, it’s helpful to have a decorator that wraps func...
This post describes how to use a few common tools to instantly set up and tea...
I’ve seen quite a few outages and outage-like scenarios caused by improper ha...
The venerable “mixin” is a technique I learned as a Python developer. Now, af...
The lack of a desktop-class web browser on iOS is one of several things missi...
Download audio version In 2019, I spent most of my f...
In 2013, archaeologists digging in the Valley of the Kings found one of the o...
If you’re a web developer who uses an iPad, you will eventually need access t...
The lack of a desktop-class web browser on iOS is one of several things missi...
Download audio version In 2017 I asked, “Can You Wri...
[T]hough it is worthwhile to attain the end merely for one man, it is fine...
I’ve been a web developer who uses a Mac for almost ten years, but lately I’m...
I’ve seen quite a few outages and outage-like scenarios caused by improper ha...
This is an update to Can you Write Code on an iPad?, in which I tried writing...
The venerable “mixin” is a technique I learned as a Python developer. Now, af...
I’m coming up on ten years as a professional software developer. On...
Many programmers feel a desire to create reusable components early in the dev...
The merit in all things consists in the difficulty. – Aramis This is ...
Someone who looks for me in form or seeks me in sound is on a mistaken pat...
One of my favorite technical book series is The Architecture of Open Source A...
The video of my first ever conference talk is now available on YouTube. Check...
This review is for the Professional Edition of PyCharm 3. I’ll try to cut str...
I wrote a blog post recently at work that described my experience porting a g...
This is a review of PyCharm 2.7 that covers all of the features of the editor...
Here are a few books that I found useful when I was starting out as a web dev...
One of the small annoyances I found after switching to PyCharm recently was t...
In this post I’m going to look at a concrete example of building an in-memory...
In 2003 Umberto Eco gave a talk at the opening of the Bibliotheca Alexandrina...
Apparently this is a confusing topic. Let’s say you have a Django model with ...
In Python I often use the __file__ constant to get the directory of the curre...
With the dev builds of Sublime Text 2, you can easily set up a build system t...
When profiling a Python app, it’s helpful to have a decorator that wraps func...
I’ve been trying out Sublime Text 2 as a replacement for Vim. While I enjoy u...
Nicholas Carr wrote in a recent article that he considered the ability of pub...
The OS X apps iA Writer and Notational Velocity are great for writing and tak...
Vim, Neovim, and MacVim can all exhibit slow scrolling in macOS. In some case...
This post describes how to use a few common tools to instantly set up and tea...
The other day, I stopped hearing any sound effects on my Toshiba Satellite wo...
Today I ran into trouble configuring a Windows 7 guest on a Linux host: Windo...
</p> I just finished deploying a Fat Free CRM install with all the und...
Solace is a web app I created to search multiple Craigslist locations for the...
Note: This is an outdated, unmaintained, archived post. Proceed with caution....
One-liner to remove all empty files from a directory: ls -s | grep -e '^ 0' ...
The following is a quick run-down of problems you might run into using Views ...
In my quest for the Holy Grail of daily Internet use (IE, how to get vim-styl...
GNU Screen is one of my favorite applications because of its simplicity and u...
In 2013, archaeologists digging in the Valley of the Kings found one of the o...
If you’re a web developer who uses an iPad, you will eventually need access t...
When developing on a remote computer over SSH from iOS, one problem has vexed...
I’ve been a web developer who uses a Mac for almost ten years, but lately I’m...
Download audio version In 2019, I spent most of my f...
Last week at work, I rewrote an API to use FastAPI and as much async Python a...
My 2-year-old daughter’s favorite stuffed animal, “Meow-Meow,” is a critical ...
My 2-year-old daughter’s favorite stuffed animal, “Meow-Meow,” is a critical ...
In January, I started a new job writing and producing technical education vid...
Oregon schools closed over two months ago to prevent the spread of COVID-19. ...
Have you ever been working in Vim over SSH on an iPad and wanted to open up t...
Let’s delve again into copying text to the iOS clipboard from a remote comput...
If you’re a web developer who uses an iPad, you will eventually need access t...
The lack of a desktop-class web browser on iOS is one of several things missi...
When developing on a remote computer over SSH from iOS, one problem has vexed...
Download audio version In 2017 I asked, “Can You Wri...
This is an update to Can you Write Code on an iPad?, in which I tried writing...
The merit in all things consists in the difficulty. – Aramis This is ...
Someone who looks for me in form or seeks me in sound is on a mistaken pat...
In January, I started a new job writing and producing technical education vid...
Oregon schools closed over two months ago to prevent the spread of COVID-19. ...
The lack of a desktop-class web browser on iOS is one of several things missi...
In January, I started a new job writing and producing technical education vid...
A Story February 2021. Maintainers of the cryptography package release a new...
A friend of mine wondered recently, What is Python’s default hash algorit...
A friend of mine wondered recently, What is Python’s default hash algorit...
Python 3.8 shipped one of the coolest features I’ve seen in a recent Python v...
New Python users are often surprised to learn that you call a global function...
In January, I started a new job writing and producing technical education vid...
Oregon schools closed over two months ago to prevent the spread of COVID-19. ...
Have you ever been working in Vim over SSH on an iPad and wanted to open up t...
Let’s delve again into copying text to the iOS clipboard from a remote comput...
When developing on a remote computer over SSH from iOS, one problem has vexed...