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