Articles
-
How Clojure Babies are Made: What Leiningen Is 07 April 2013It's time to take a step back and get a high-level understanding of what Leiningen is. It's time to stare deeply into Leiningen's eyes and say "I see you," like Jake Sully in that Avatar documentary.
-
How Clojure Babies are Made: Leiningen's Trampoline 23 March 2013An explanation of what lein trampoline does and how it does it.
-
How Clojure Babies Are Made: Understanding lein run 18 March 2013Leiningen reminds me a lot of Major Alex Louis Armstrong from Fullmetal Alchemist:
- They are both manly
- They are both artistic
- Sometimes you don't know what the f* they're saying (but it's amazing anyway)
- Mustaches
- Sparkles
-
How Clojure Babies Are Made: Compiling and Running a Java Program 13 March 2013If you're at all like me, the moment you got your first Clojure program running you belted out, "SOOO MUUUUUUUCH POOOOOOOWEEEEEEEER!" and thrust one or both fists into the air. Then, fifteen minutes later, you found yourself muttering things like "What's a maven?" and "Classpath what now?" and "What is Leiningen actually doing, anyway? Sure, those are the most handsome mustaches I ever laid eyes on, but can I really trust them?"
-
Notes From Tapestry 2013 28 February 2013Notes and links from Tapestry 2013
-
Datomic for Five Year Olds 23 February 2013Datomic is a unique new database. This article explains it by relating it to existing kinds of databases.
-
The Unofficial Guide to Rich Hickey's Brain 06 December 2012Part of the excitement of working with Clojure is being exposed to Rich Hickey's thoughts on programming. Rich Hickey has a clear, consistent way of viewing fundamental programming concepts that I think any programmer would benefit from. Here is the beginning of my attempt to catalog Mr. Hickey's unique viewpoint.
-
My Failed(?) Social Web Experiment Still Haunts Me 01 December 2012What will people post if they can't include links and can't use a nickname?
-
A Detailed Look at a Small DCI Refactoring in Ruby 30 November 2012In this post I go over a small refactoring to clean up some code in Whoops by implementing the DCI pattern. I'll cover the actual code changes and include my usual hand-wringing about what could be done better.
-
Look, Ma! No batteries! A Clojure Web App Without Noir 10 November 2012Having put together a website using Noir, I wanted to to try and get closer to the metal. Here are some of my findings, including: templating heaven with Enlive and Middleman; using macros to enforce full stack consistency; roll-your-own-validations; more!
-
Loving Without Fear 07 November 2012Reflections on how embracing love has changed my life.
-
Daily Gratitude 16 October 2012I've been doing a daily gratitude practice for half a year now and have found it very useful. Here are some suggestions for your own practice.
-
Love is Power 21 September 2012Aikido is love. You make this great great love of the universe your heart and then you must make your own mission the protection and love of all things. -- O'Sensei
-
Releasing Foreman 09 September 2012My first ever Mac app is out. Get it while it's hot!
-
On Learning Skills (A Response to Move Your Feet) 27 August 2012Matt Swanson has shared the secret to improving your running: move your feet! I elaborate on that advice and give a more complete way of figuring out your learning roadblocks and removing them.
-
Three Dev Tools You Probably Already Know 26 August 2012You probably already know about the following tools, but I found it useful to be reminded of them.
-
Dissecting The Dumbest Clojure/Noir App In Existence 25 August 2012Recently, I released OMG! SMACKDOWN!!!, which is the dumbest Clojure/Noir app created to date. This post dissects it in excruciating detail.
-
Thoughts on Racism 01 August 2012Rambling thoughts on racism from a mixed-race guy who grew up in the South.
-
Lessons Learned From My First Tech Lead Assignment 18 July 2012What I've learned so far working with a distributed team in an enterprise environment.
-
Refactoring to Datamappers Clojure 06 July 2012In this post I give a detailed description of a recent refactoring for my site OMG! SMACKDOWN!!! . I make no attempt to enliven the article with "cats" or "memes" or "humor" - it's straight up code and commentary.
-
Deeper Into the Land of Lisp: First Contact with Noir 25 June 2012Clojure and noir are great fun. This post describes some of the code I wrote and gives some tips and tricks. There's other stuff too but I'm not going to try and summarize it here.
-
Global Noir Routes 25 June 2012Noir has a helper function, url-for, which you can use to generate URL's when given a named route. The problem arises when you have two different views which need to have links to each other.
-
Design: The Art of Reducing Frustration 31 May 2012What causes frustration? How can we eliminate those causes?
-
Encouraging Programmers to Learn Visual Design 23 May 2012A talk I gave: Why you might want to learn more about visual design and how it's pretty similar to what you already know as programmers.
-
Open Source, Open Heart 23 March 2012I'm open sourcing Open Hercules an application I've put a lot of time into. This article explains my motivations, both practical and personal.
-
Chunky Bacon in the Land of Lisp: a Rubyist Becomes Intimately Acquainted with Parentheses 03 March 2012Almost seven years since my first exposure to Ruby, I've found another language to be excited about.
-
Abstract Mathematics and Programming 23 February 2012Learning about abstract math is rewarding in itself, but it could also be helpful to beginning programmers.
-
Machine-Aided Introspection 22 February 2012In the year 2000, you will know all there is to know about yourself thanks to technology.
-
An Exhaustive Explanation of Minimax, a Staple AI Algorithm 10 January 2012The minimax algorithm is used to determine which moves a computer player makes in games like tic-tac-toe, checkers, othello, and chess. You can think of the algorithm as similar to the human thought process of saying, "OK, if I make this move, then my opponent can only make two moves, and each of those would let me win. So this is the right move to make."
-
A Philosophy of Programming, Rough Sketch 05 January 2012An attempt to describe an approach to programming within an integrated framework.
-
Why I Don't Want to Start a Startup 03 August 2011I don't want to start a startup because of the experiences I've had with working for them. Also, the idea of financial freedom is not as appealing to me as it once was. Finally, there are already big challenges in my life.
-
Thank You 02 May 2011Thank you, everyone who has viewed Clean Up Your Mess. Thanks as well to everyone who has passed it on.
-
Higml: Hierarchical, Cascading, Dynamic Configuration 21 January 2011If your configuration is convoluted as all hell, Higml might be for you. Also, this is my first attempt at writing first-class documentation.
-
Writing Better Documentation 19 January 2011The learning curve for code libraries is often unnecessarily steep. I frequently feel that if the author had written better documentation, I'd be able to use his work much more quickly, or at least figure out that it's wrong for me and move on. I'm trying to write better documentation myself.
-
Blog Reboot 14 January 2011It's been nearly a year since I've added anything to this site. There are a few reasons for that, though for now I'll only mention that I didn't like that the site existed in part to sell an iphone app and possibly future apps. Well, it turns out that I don't really care about overtly selling stuff. What I really want is a place to write about the pursuits I care about most.
-
Models for Dealing with Fear 15 February 2010The world abounds with wacky models that help actual people actually overcome actual fear. Some people believe their obstacles are put there by God as tests for them to pass. Others believe that mortal life is a game played by immortal energy beings, just for the fun of it. And some folks believe that there is nothing more to life than what we see; when we die, that's the end, so we better make the most of it. Wacky!
-
Look Into My Eyes 10 January 2010My first attempt to give myself super powers merely gave me sore palms. Riding in the back of my mother's beater as a five-year-old, I focused sunlight on the center of each hand using a magnifying glass likely found in a cereal box. After I was "charged up" I would point at trees, cars, fire hydrants, and other hapless objects and think to myself, "In five years, that thing's going to burst into flames."
-
I'm Going to Take All the Help I Can Get 06 January 2010A few months ago, I was really psyched about some project (don't recall which), and said to myself, "I'm going to finish this thing, and nothing's going to get in my way." Immediately it occurred to me that a better attitude would be, "I'm going to finish this thing -- and I'll take all the help I can get."
-
Control Time Submitted to App Store 01 January 2010Today I finally wrapped up Control Time and submitted it to the app store :-). Hopefully they'll publish it soon.
-
How to Get and Stay Motivated 12 December 2009A lot of people view their motivation as something out of their control. It comes and goes, catlike in its fickleness. By breaking down motivation to its components, however, you'll be able to troubleshoot your lack of motivation and figure out ways to increase it.
-
The Why of this Site 01 December 2009I'm a young software developer and caregiver. This web site is about my experimentations in creating and following a system for constant personal growth. This article gives some background on the circumstances that motivated me to start those experimentations and this site.
-
Follow Your Followers Using Ruby 21 May 2009A quick way to automatically follow people who follow you on twitter.
-
Aikidoka Prevents Namespace Collisions 11 May 2009A way to avoid namespace collisions.
-
Usability Embodied 24 August 2008A few years ago I ordered DSL service. The DSL modem came with an ethernet cable, and one end was labeled "this end goes in your computer", and the other was labeled "this end goes in the modem." Obviously, it doesn't matter which end goes where, but the labels undoubtedly eliminated any possible confusion.
-
Robots! 14 July 2008I've been learning more about electronics, in part to get a ground-up understanding of computers. In the process I've become interested in learning to build robots.
-
RubyProfHelper: Reducing ruby-prof Boilerplate 02 June 2008This is meant to save me from having to write the same boilerplate profiling code over and over.
-
Announcing Palmist 14 May 2008A tool for finding and fixing mysql bottlenecks in Ruby on Rails
-
Chunky Iterator: So You Don't have to Load All your AR Objects at Once 12 May 2008The following code lets you iterate over large collections of Active Record objects without having to load them all at once, thus reducing memory usage. It's allowed me to run cron jobs which iterate over thousands of records without getting the cron'd process killed for using too much of a system's resources.
-
Rails Prototypal Attributes 05 April 2008Give your models javascript-esque prototypal methods. When accessing an attribute on the prototypal object, the attribute's value is returned if not nil. Otherwise, the "linked" object's attribute value is returned.
Projects
-
Foreman: The $2 Mac Power Tool for Reducing Clutter Foreman reduces clutter and helps you focus. It opens the apps you need and closes or hides the rest.
-
Clean Up Your Mess: a Guide to Visual Design for Everyone This popular guide will help you communicate with conscious skill. It will show you how to create designs that are easy to understand and attractive.
-
Whoops: Log Anything Whoops is a free, self-hosted tool for logging application events like errors or background worker completion.
-
Open Hercules: Productivity, Greek Myth Style A free, open-source, keyboard-friendly, social list app
When we appreciate the good in our lives, the good grows and we have more of it.