About Archive Tag Cloud Translations RSS

Will Larson

An picture of Will Larson

I'm Will Larson, and I am a programmer. I graduated from Centre College in 2007 with a Bachelors of Computer Science. Since then I worked for a year teaching English in Japan, and am now an independent contractor. You can see an informal resume here.

You can reach me at lethain@gmail.com.

Entries written by Will Larson

  1. SuperFamily Relationships with Lazyboy
  2. Tailing in Python
  3. Callbacks Are An Informal Pipeline
  4. Porting Django's urlpatterns to Node.js
  5. Retiring and Releasing Codernote.com
  6. The Day I Broke Production
  7. Looking For a New Agenda
  8. Log Collection Server with Node.js
  9. Debugging Crashes With Small Scripts
  10. A Python-Markdown Extension for Embedding Graphviz
  11. Formatting Multipart Formdata in Erlang
  12. A Photo Album with Python and PIL
  13. Refactoring & Testing Our Dynamo Clone
  14. Quick Notes for Starting 2010
  15. Crash on Compiling App With MKMapView
  16. Nagios Monitoring for Erlang
  17. Replicating receive-after in an Erlang gen_server
  18. Durable Writes & Consistent Reads
  19. Hands On Review of the Dynamo Paper
  20. Recurring Events and Message Passing
  21. Scalable Scraping in Clojure
  22. A Couple of Clojure Agent Examples
  23. Writing Files in Clojure
  24. Reading Files in Clojure
  25. Setting Up TLA+ Tools on OS X
  26. Comments on "Why Engineers Should Consider Formal Methods"
  27. Money or Meaning: Spending Our Wealth of Time
  28. Cleaning up erlang_markdown
  29. A Failed Stack-based Markdown Interpreter
  30. Proposal for Authenticating Web Callbacks
  31. Generating RSS feeds via BeepBeep
  32. How Pitance Versions Documents in CouchDB
  33. Erlang Brush for SyntaxHighlighter
  34. Pitance: Template and Snippet Infrastructure
  35. Load Balancing Across Erlang Process Groups
  36. Changing Mimetypes for Text Responses in BeepBeep
  37. Paper Review of "Hints On Computer System Design"
  38. Paper Review of "A Transaction Model"
  39. Success and Dancing Shoes
  40. Several Approaches to Versioning Files in PHP
  41. Distinguishing Strings from Lists in Erlang
  42. Freebase Hackday and Image Game
  43. BeepBeep, CouchDB and a Trivial Blog
  44. Using Ajax with the BeepBeep Microframework
  45. Getting Started With BeepBeep
  46. What Do Django People Search About?
  47. YUI Dialogs, IE z-index and Tragedy
  48. Feedback Loops in Software Development
  49. Recycling Hacker Fear-Mongering
  50. Skew, The Frontend Engineer's Misery
  51. OS X Textfield Encoding (maybe) Issue
  52. Findjango Redesign & Slides for django-nyc
  53. How To Remotely Admin Servers Via Twitter
  54. Findjango, A Week of Progress
  55. Making Django Apps Run On and Off GAE
  56. Technical Debt and Peanut Butter Jars
  57. Findjango: A Django Search Vertical
  58. Solango and Tomcat 6 on Ubuntu Intrepid
  59. Simplified django-springsteen Deploy on GAE
  60. Deploying django-springsteen on Google App Engine
  61. Reranking Results in django-springsteen
  62. django-springsteen and Distributed Search
  63. Leaving DreamHost
  64. Depicting Human Relationships
  65. Smaller Header, JobSyndicate, Printable Articles
  66. Measuring Single and Multi Server Performance
  67. Rewriting Parameterized URLs with Nginx
  68. Overview of Single vs. Multi Server Architecture
  69. When psycopg2 Can't Import tz
  70. The Django and Ubuntu Intrepid Almanac
  71. Visually Representing Word Structures
  72. Using Threadpools in Python
  73. Setting up CouchDB-Lucene on OS X
  74. We're All Sinners and Cosiners
  75. Circle and Line Diaspora
  76. Spiral and Square
  77. Visualizing Keyterms with BOSS and Processing
  78. Cull Lingering Erlang Heart Processes
  79. Hard and Soft, Fluffy and Brittle
  80. Simple Unittesting in PHP
  81. Stripping Illegal Characters from XML in Python
  82. Huge CSV and XML Files in Python
  83. A Filter to Display Neighbors in a List
  84. Genetic Programming: A Novel Failure
  85. Genetic Algorithms: Cool Name & Damn Simple
  86. Moving Into 2009
  87. Django-Portfolio: Organize and Display Projects
  88. The Subtle Joys of Generic Methods
  89. A Command Line Tool for Loading CouchDB Documents
  90. Full-Text Search in CouchDB Using... CouchDB
  91. Blogging as People
  92. Intro to HTTP::Server::Simple::CGI
  93. Finally Waving The White Flag to Objective-C 2.0
  94. Fixing What Ails LifeFlow
  95. Prevent Cron Cancer With a File-based Mutex
  96. Parallel HTTP Requests in Python
  97. Reading XML Files on the iPhone
  98. A Different Approach to local_settings.py
  99. XML::Twig for Large XML Files in Perl
  100. Slides from django-nyc on 11/18/2008
  101. Python-Brightkite for... you get the idea
  102. Introducing a Tutorial and touchDefense
  103. The Blogging Hypochondriac
  104. The Fate of Pop and Hip-Hop in 2008
  105. XML::Simple for Non-Perlers
  106. You Only Learn the First Time
  107. Bad Ideas and Regular Expressions in Templates
  108. Deploying Django with Fabric
  109. Development to Deployment in Django
  110. Creating Slideshows with Cocos2d iPhone
  111. Customize site style by user with django-userskins
  112. User Registration Apps for Django
  113. Releasing Kappa Source (PyObjC Twitter Client)
  114. Advice to Programmers in College
  115. Touch Detection in Cocos2d iPhone
  116. Being a Local Maximum
  117. HSS and YUI Compressor in AYM CMS
  118. R.I.P. Your Resume Site to Awesome
  119. Taming AuditTrail Proliferation
  120. Releasing Source for Mahou
  121. Choosing Between AuditTrail and Django-Rcsfield
  122. Setting Up Django-Rcsfield
  123. Restricting User Signups in Django
  124. Failing a Contract
  125. The Magical Source of YUI Get's Power
  126. Notes on Cocos2d iPhone Development
  127. Suffer Less By Using Django Dev Server as a Proxy
  128. Writing for Consumption
  129. Starting Again, Keeping It Simple
  130. As-You-Type Slug Uniqueness Validation
  131. Layers of Authentication
  132. Custom Django Views for Happier Ajax
  133. Using Automator to Scale Images Horizontally
  134. Redesign of Lethain.com
  135. Intro to Unintrusive JavaScript with Django
  136. A One-Stop AYM CMS Solution
  137. Making Static Dynamic Again; AYM CMS
  138. Intricate Static Websites With Django Templates
  139. Sparklines.js Port to Python
  140. Yes, You Do Care About Cappuccino
  141. Extending Mahou; Gotchas and Snippets
  142. Extracting Data From Google Analytics Reports
  143. Extending Classes in Cappuccino
  144. Writing Mahou; a Cappuccino Image Search
  145. Startups and Assembly Lines
  146. Migrating the 'This Week in Django' Concept
  147. Poor Wireless Connectivity for MacBook
  148. Naming and Casing Convention in PyObjC
  149. Introducing Kappa, a Twitter Client
  150. I Live in New Jersey
  151. Dynamic Ad Targeting With django-monetize
  152. Transcending Search-as-You-Type Stickiness
  153. Epic PyObjC, Part 5: Resources and Farewell
  154. Epic PyObjc, Part 4: Drag & Drop, Multiple Nibs
  155. Epic PyObjC, Part 3: Browsing, Caching, Indicating
  156. Epic PyObjC, Part 2: Adding a Library & Bindings
  157. An Epic Introduction to PyObjC and Cocoa
  158. Writing to Application Support in PyObjC
  159. Writing Titles Under Ninety-Five Characters
  160. Deleting From NSOutlineView With the Delete Key
  161. How to Use Selectors in PyObjC
  162. An Introduction to Using CouchDB with Django
  163. Global Popularity of Programming Languages
  164. An Introduction to Compassionate Screen Scraping
  165. A Syntax Coloring Template Filter for Django
  166. A Year Later, Home From Japan
  167. Python Content Scraper for OneManga.com
  168. Reading "The Nudist on the Late Shift" in 2008
  169. Cocoa Drag and Drop text into the Dock Icon
  170. How to Write a Wrapper Library
  171. BossArray for list-like Yahoo search results
  172. Replacing Django's ORM with SQLAlchemy
  173. Replacing Django's Template Language With Jinja2
  174. An Introduction to Django's Loose Coupling
  175. Reflections on a Year of Blogging and Japan
  176. 小学校と教える授業の最後の日
  177. Last Day of Elementary School and Classes
  178. Stripping Reddit From HackerNews With BOSS Mashup
  179. Polishing Up Our Django & BOSS Search Service
  180. Search Recipes for Yahoo's BOSS in Python
  181. Yahoo's Build your Own Search Service in Django
  182. Release of LifeFlow 0.91
  183. Advice for ALTs Considering a Second Year
  184. A Thursday: Elementary School
  185. An Introduction to a Week in Japan
  186. ReST, Textile and HTML in Markdown
  187. Updates to Sparklines.js
  188. Sparklines in Javascript With Sparklines.js
  189. Ambush Code Review Learns Code Diffs
  190. Overview of Using Django on the Google App Engine
  191. A Sunday Project: Ambush Code Review
  192. A Django Anti-Pattern, Rolling Your Own REST
  193. Working on LifeFlow's Public Face
  194. Release of LifeFlow Version 0.90
  195. Deployment Scripts With BeautifulSoup
  196. Processed Tower Defense 1.0
  197. Things I'll Miss in Japan
  198. Strangest JavaScript Bug I've Ever Seen
  199. Looking for Recycling's Lost Sex Appeal
  200. Updates to Processed Tower Defense
  201. May in Review
  202. Processing.jsの使い方
  203. Spoken Languages, Blub, and Convenience
  204. Music From the iTunes Store, 1
  205. Improvements to LifeFlow Editor
  206. Updating Processing.js Graphics via Ajax
  207. Using Our Own Software
  208. Using Optional Parameters in Django Urls
  209. Technical Aspects of the Life Flow Editor
  210. Introducting the LifeFlow Editor
  211. Why Was The Syllabus Born?
  212. On Hegemony and an Anti-Capitalist Bias in European Textbooks
  213. 5. A Chartered Bus to Downtown Tokyo
  214. Standard Workflow for Publishing With LifeFlow
  215. Replacing the Karma Social Model with Whuffie
  216. Catching Lessons From Spam
  217. Translating Entries into Other Languages with LifeFlow
  218. A Historical Perspective on the JET Program in 2008
  219. On The Causes and Cures of Malware
  220. Failures of Proactive Communication & Other Generic Complaints
  221. かかった年と新しい年の取り返し
  222. 生きて変わる
  223. Opinionated Programming Languages, The Huddled Masses, and Elitism
  224. Lesson Plan: My Winter Vacation
  225. New Style for Including Resources in Entries on LifeFlow
  226. Adding Arbitrary Mods to LifeFlow
  227. Changes from Living
  228. Odors from Shoes Curious in OS X 10.4
  229. Driving on the Left Side
  230. Don't Repeat Yourself for Bloggers: Dynamic Blog Context in LifeFlow
  231. Cleanly Extending Python Markdown with Syntax Highlighting
  232. Customizing LifeFlow Quickly with Skins
  233. Installing a Development Deployment of LifeFlow, a Django Blog Solution
  234. Reflections on the old year, and the new one
  235. BluePrint CSS makes LifeFlow look better, and easier to customize
  236. Music Recommendations & Snow Pictures
  237. Implementing Threaded Comments in LifeFlow
  238. Visiting Kiyomizudera
  239. Status Update for LifeFlow
  240. Accolades for Pygments 0.9
  241. Actors in Common Lisp
  242. Packaging of Renu Contact Solution
  243. Miyajima and Hiroshima
  244. Designing My Future Home
  245. Another Breakfast With You
  246. Merry Christmas 2007
  247. Two-Faced Django Part 7: PyFacebook and FBJS Ajax
  248. Two-Faced Django: Live install
  249. Two-Faced-Django Part 6: PyFacebook
  250. Two-Faced Django Part 5: JQuery Ajax
  251. 4. Airplanes
  252. Two-Faced Django Part 4: The Webapp
  253. Two-Faced Django Part 3: Newforms
  254. Two-Faced Django Part 2: Models and Django Testing
  255. Two-Faced Django Part 1: Building a project that exists simultaniously on Facebook and the web
  256. 3. Shuttle Busses
  257. On Education, Self-Responsibility and Manure
  258. 2. Traffic Jams
  259. 1. Beginnings
  260. 0. Introduction
  261. Using JQuery with Django for Autocomplete Fields
  262. Using PyFacebook without the Facebook middleware
  263. "You Are Beautiful At All Times" by Yppah
  264. Context is a Parameter in Calculating Truth
  265. Those Annoying Habits
  266. Defining Your Web Aesthetic
  267. Introducing my Japanese Kitchen
  268. Hiking Tengaisan
  269. Reliable Mealtime Friends
  270. Grocery Shopping in Japan
  271. Getting Cold in Kamioka
  272. Teaching Adult English Classes
  273. Getting started with Shoes on OS X
  274. Expectations and Reality for the lowly ALT
  275. FAQ about JET
  276. A Few Quick Updates to Site
  277. Eating Cornflakes
  278. Leaving Tokyo, Arriving in Kamioka
  279. From America into an American Bubble: The Flight to Japan
  280. JET Pre-Departure Orientation
  281. Picture from Hotel Room
  282. Heading toward Atlanta
  283. Applying to the JET Programme
  284. Failure of Implicit Conventions: Determining Function Destructiveness
  285. "Building Scalable Web Sites" by Cal Henderson
  286. Dreamier Dream Server with Nginx
  287. Apache/Lighttpd Confusion
  288. Adding Social Bookmarking To a Django App
  289. Syntax Highlighting with MarkDown, and a pinch of Automagick for Django
  290. Music Video? Movie? The 'Once' Dilemma
  291. Extracting Models From Django Datadump
  292. Creating my Dream Server for Django
  293. New Look for LifeFlow, Deployment on Dreamhost
  294. "Puddle City Racing Lights" by Windmill
  295. YouTube Scalability
  296. Stability Issues
  297. How to Migrate Data Across Model Changes
  298. Writing Custom Contexts for Django
  299. Examining Web Analytics to Implement (repost)
  300. A Django Middleware for Google Analytics (repost)
  301. Anti-Objects and Reflexive Decisions (repost)
  302. A Comp. Sci Degree is What You Make Of It (repost)
  303. Is the JVM the "next assembly"? I hope not. (repost)
  304. Good to Great, Paul Graham and Ayn Rand (repost)
  305. Reflections on Django (repost)
  306. Finding Our Programming Flow (repost)