Cold Hard Code: Purveyors of Fine Internet Properties

Backing It With Books: Learning Design

One of the reasons I founded Cold Hard Code with Jay was to explore interests that weren't part of our day to day jobs. One of these passions for me is design. I — with a lot of help from Jay and some close friends — am the creative mind behind our properties. Cold Hard Code has given me an opportunity to pursue this love.

My only "training" is over 10 years of using Photoshop and an equal time writing markup. I've always held strong opinions on design and style, but I rarely talk about them to anyone but close friends because I don't feel that I have a firm enough base in the material.

So over the last year I've been working on changing that. Starting with this very site I've shaped a style through trial and error as well as more traditional methods: books. Here's a list of some of the tomes that line my shelves now.

We'll begin with Robert Bringhurst's The Elements of Typographic Style. This book single-handedly convinced me as to the power of design books. Of all the books I've read thus far it is this one that I consult most often. I have a dozen pages bookmarked and I consult it often enough that it stays on my desk rather than on my bookshelf.

Although interestingly named, Alexander Lawson's Anatomy of a Typeface was a work I never really found my stride with. It makes a droning sound in my head if I read it for too long. It does, however, contain some very interesting history that I will almost certainly dip back into. In writing this entry I've noticed some passages deeper in the book that I have yet to reach and am looking forward to.

Ellen Lupton's Thinking with Type: A Critical Guide for Designers, Writers, Editors, & Students (Design Briefs) is one that I consumed in bite-sized pieces while on business in New York City. That being said, I don't remember a lot of the material. A quick glance reminds me that it was very "project" based and flowed well from one topic to the next. It is rich with examples.

Entering the world of Edward Tufte has been one of the more interesting experiences related to this renaissance. I managed to obtain The Visual Display of Quantitative Information, 2nd edition, Envisioning Information and Visual Explanations: Images and Quantities, Evidence and Narrative. I still have one left to read: Beautiful Evidence. These 3 books have had a significant impact on some of my more recent work. Tufte argues extensively against "chartjunk" and other wasteful use of real-estate in graphics as well as using the lack of color to convey information. I could go on for many posts about what Tufte has to say and still not touch the bottom.

Due for delivery this week is Luke Wroblewski's Web Form Design: Filling in the Blanks. This came from a post at one of my recent feed additions: The Designer's Review of Books, who gave it 4 and a half stars. Forms are one of the design elements that I feel steadily improve from project to project for me. I have high hopes that this one will increase that trend.

I'm excited to see what 2009 brings to my style, as a considerable number of design blogs and an Amazon wishlist full of books are waiting for me. I look forward to posting again in a year!.

MooseX::Storage and DateTime

I'm wrapping up a weekend project that uses MooseX::Storage extensively. The object I'm storing is pure moose, except for one thing: a DateTime field. Luckily ::Storage is up to the task and serializing a DateTime attribute is as simple as:

MooseX::Storage::Engine->add_custom_type_handler(
    'DateTime' => (
        expand => sub { DateTime::Format::ISO8601->parse_datetime(shift) },
        collapse => sub { (shift)->iso8601 }
    )
);

Simply add that to the class you want to serialize and it will henceforth know how to handle any DateTime objects it encounters.

I chose to use DateTime::Format::ISO8601 but you can use pretty much any mechanism you like!

We neglected to mention our other contributions to the Catalyst advent entry in a timely fashion. Day 3 covered creating sparklines and Day 9 covered Catalyst::View::Graphics::Primitive and how to build PDFs.

Each of these entries revolved around the power of Graphics::Primitive when coupled with Catalyst. These topics were both exciting to cover and give people some interesting options when choosing what modules to use for "rich" output in a web application.

We're very happy to write several articles for the 2008 Catalyst Advent Calendar, one of which has a detailed example application to go along with it.  While the main article isn't live yet, you can download the application now to play around with it.  This entry will be updated when the article is published.

This is a simple application designed to demonstrate Progressive Authentication using Catalyst.  This application employs OpenID authentication and a local password store:

Download ProgressiveAuth-0.01.tar.gz

Come see us (talk) at Orlando Perl Oasis

Both Cory Watson and Jay Shirley will be speaking at the Orlando Perl Oasis.  Please see our detailed talk page for full information.

For now, your ears and minds can expect to be assailed by:
  • Catalyst and Chained
  • Chart::Clicker

Cartionary: Our own Tea Party

We love cars.  We love to write code.  Cartionary.com is the result of the CHC crew merging two loves.

Cartionary aims to the premier site for the automotive enthusiast.  We wanted to raise the bar in terms of features and feel.  The high quality, gratuitous, hedonistic, luxury model as compared to the existing economy sites.  We don't, and won't, measure success in member counts but instead the quality of our members.  Raising the bar, and creating a wealth of information for car enthusiasts of all types.

We understand that car enthusiasts come in all forms; car care, speed freaks, classic show cars.  Each true car enthusiast can well respect the origins and knowledge of any other enthusiast.  Whether you are Richard Griot in a classic racer, cared for immaculately or Jeremy Clarkson seeing just how much rubber you can convert to smoke, there is a common bond between them.

Cars.  That's what we're about.

The way Cartionary fits in is our growing product to help facilitate the best accumulation of knowledge and socialization of true car enthusiasts.  Much of Cartionary is centered around the creation and maintenance of your garage.  Your garage can contain as many cars as you like.  You can even create multiple garages!  These virtual garages allow you organize and categorize your vehicles.

Speaking of vehicles, you are allowed to create descriptions, tag and make a list of the equipment that you've got.  If you have customized it, then this would be the place to talk about the custom modifications.  If your car is stock, then perhaps you might detail the extra stuff you opted for or discuss why you picked that car.

Cartionary isn't about a particular type of vehicle: It's a about a particular type of driver. We put the same attention to detail into Cartionary that we put into our beloved cars. We hope you will to.

MogileFS Overview

For quite some time now, MogileFS has been under examination but never has it been used in the development of a project.  Until now.

At this point, it became quite apparent that MogileFS is rather well documented to setup the database, tracker and storage nodes.  However, there is very little in the way of advice on how to setup the entire picture.

At this point, Jay decided to fix this.  What is happening is the beginning of a series of MogileFS overview articles that talk about how we're integrating it into our applications, combined with the best practices and advice from the experts in the MogileFS community.  This content will also be cross-posted in a recipe format over at the new MogileFS wiki.

An Open Door

It's beginning.

Welcome to the Cold Hard Code site and blog.  Here we will be posting a number of articles, code and product announcements as time goes on.