8th Light's software craftsmen are bonded together by their singular pursuit of mastery. We challenge ourselves constantly to learn and grow through a combination of...more.
I want to tell you about my Clojure toolchain of choice, but in order to do it right we need to go back; way back....more.
Coauthored by Kelly Steensma Wikipedia defines a kata as a detailed choreographed pattern of movement. Based on the Japanese word meaning "form", katas were originally...more.
At SCNA 2012 I entered into a kata battle against Aaron Bedra. The idea was that we'd both perform the Coin Changer Kata live in...more.
8th Light has accumulated a lot of servers, the cloud kind, over the years. Each one configured by the team that was building our internally...more.
I interviewed a bright young woman today who is graduating from high school this spring among the top of her class. Despite having several generous...more.
"The Manifest for Software Craftsmanship is obvious!" "How could you not agree with it?" "Duh!" These are common reactions to the Manifesto. As an example,...more.
If you had asked me two years ago, I would have said that purchasing a service company makes very little sense. A service company like...more.
While working on website for my sister, I was perturbed that there were no libraries on Clojars for sending email. I was using Leiningen which...more.
Today we released a new and exciting version of Limelight. Just a reminder, Limelight is a user-interface framework for Ruby. Included in this release are...more.
Last week concluded the Hangman Ruby Sparring Tournament. Unlike the previous Battleship Tournament, I put the effort in to write a competitive hangman player (of...more.
Several months ago, I hosted the Ruby Battleship Tournament. It was an all-round fun event where craftsmen sharpened their claws and pitted their skills against...more.
Here’s the situation. You’ve spent days working on an open source project. Your sweat, blood, and tears have been poured into thousands of lines of...more.
I’ve recorded my Langston’s Ant kata for all to see. This particular kata, with slight variations, has been in front of an audience twice before....more.
You remember the classic Simon game, right? The one where the electronic devise will blink a color and make a sound that you have to...more.
Yesterday in my talk at RubyConf2008, I announced the commencement of the Ruby Battleship Sparring Tournament. This is an open tournament. All are welcome to...more.
This release of limelight contains many new features and stability. Perhaps most notably, Limelight will no longer eat 95% of your CPU (ouch)! I’m proud...more.
Last week I attended Agile 2008 in Buenos Aires, Argentina. It was a fun, high energy conference. The highlight was a heated panel discussion at...more.
As craftsmen, we're proud of our work. Yet it's rare that we get the opportunity to show off what we do for clients. Fortunately the...more.
I'm pleased to announce the inception of the Software Craftsmanship Group. http://groups.softwarecraftsmanship.org. The first meeting is October 13th at 7pm in 8th Light's office. Hope...more.
Craftsman Clarification: There has been some discrepancy in the use of the term “Software Craftsman”. Rather than going into details about various uses of the...more.
David Chelimsky has tagged me with this “chain-blog.” I have enjoyed reading other peoples’ stories and I thought I would take the time to share...more.
I’m pleased to announce the open source Limelight project: A thin client and application framework written in Ruby (JRuby). Check it out at http://limelight.8thlight.com. http://limelight.8thlight.com...more.
Back at RubyConf 2007 I prepared a 1 minute presentation, well…more of a teaser, about an application framework called LimeLight. What is it? LimeLight is...more.
Ruby files have to require other files. There’s no avoiding it. Techniques to manage require statements are numerous and varied. Having tried most of them,...more.
There’s a common pattern I’ve seen for developing DSL in Ruby. It’s used in RSpec, the Statemachine Gem, and Unclebob’s Clean Code talk at RailsConf...more.
Last night I presented the Ruby Statemachine Gem to the Chicago Ruby Users Group (Chirb) Below are links to download the slides and coding example...more.
Often in Statemachines, duplication can arise. For example, the vending machine in our examples may need periodic repairs. It’s not certain which state the vending...more.
If your situation matches the following conditions, beware! You’re working in rails. You’re using Postgresql. You’re storing binary data in the database. This was the...more.
If you’re doing any significant amount of work with statmachines, you will most certainly encounter some conditional logic in your Statemachines. Take our vending machine....more.
In my younger days I was a Line Cook at the Olive Garden. In case you’ve never worked in the food industry, Line Cooks are...more.
Using FitNesse allows you to communicate with the customer up front. Before a line of code is written, you can have all the behavior expressed...more.
Part One demonstrated how to build states and transitions. If you go ahead and add some actions to that and you’ll have a truly useful...more.
I consider Statemachines to be a programming gem. An invaluable tool for the software craftsman’s toolkit. It’s not everyday that a Statemachine comes in handy,...more.
BOC is a testing pattern that Unclebob briefly mentioned on fitnesse.org shortly after it was published. It describes the typical steps taken in an automated...more.
I heard about the Getting Real workshop from a good friend who is a web designer/developer. We used to talk some time ago about using...more.
This past Monday my colleagues and I went to 37 Signals’ Getting Real workshop. Overall I give the workshop a thumbs up. They seem to...more.
Show me a software craftsmen and I’ll show you someone who can program in any language if they had to. From time to time I...more.
David Hoover asked me a few questions about my experiences as a software apprentice. I was happy to answer his questions and pleased to hear...more.
I’ve been meaning to learn Smalltalk for years now. Recently Dave Astels and I have a had a few discussion on the topic. They all...more.
David Chelimsky puts it gently…We’ve actually had some heated arguments about these mocking frameworks and it’a all kinda silly. In the end we’re writing good...more.
Work has me visit lots of software teams around the world. This past week I visited a particularly fun team. They worked in a large...more.
Once upon a time there live a young girl named Jill and her next door neighbor Jack. Perhaps you’ve heard of them. When Jack and...more.
It is unavoidable. Every story must go through these milestones of life in order. A story cannot be estimated if it has not been created....more.
Delegates: one of the few unique aspects of .NET. How useful are they? Here’s a delegate declaration. The syntax can take some getting used to....more.
What is building software like? The common belief is that software is like engineering. Most people seem to think that building a software system is...more.
Recently I was working on FitNesse to solve the problem of large file uploading and downloading. Previously when a file was downloaded FitNesse would happily...more.
This IConvention is an interesting one: “Let’s prefix all interfaces with a capital I.” Who thought of this? Why did they think it was a...more.
Tiger Tech Talk, Chicago. This was a free, one day, conference held by Apple. The intent was to give developers a preview of the new...more.