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