Use a Repository to Learn

In which I laud @DevlinLiles, @eric_burcham, and @olsonjeffery for a great use of GitHub.

Three guys with whom I work have created a repository over at GitHub for the express purpose to hone their JavaScript craft. They use Issues tracker to log the subjects they want to study. I admire this use of GitHub.

You can find the repository at

Documenting leslie-mvp

In which I use docco to document leslie-mvp.

I have known about docco for quite a while because I remain a fan of literate programming that the venerable Donald Knuth proposed. I took docco and applied it to leslie-mvp to get some documentation for the source code that you can now see over at leslie-mvp docs.

Creating and Using Allegro 5 Static Libraries with XCode 5

In which I give instructions on static libraries for Allegro 5.

Allegro is a cross-platform, open-source, game-programming library, primarily for C and C++ developers. Version 5 represents a rethinking of the entire library and the documentation has suffered because developers write code. This post will help you get started with using static linking of Allegro libraries to circumvent distribution problems.

Currently, the Allegro Wiki has instructions to let you

In both cases, you need to package those libraries with your application to ensure they run on machines that do not have Allegro (and supporting libraries) installed. Static linking, while creating larger executables and slower load times, ensures that the binaries you need travel within the executable.

Building a Better Grid

In which I talk about a new grid I need to help build.

Work is crazy, these past few months. We bought a control set from one of those widget companies. That got us 80%+ of the way there. However, now we need a very special kind of control.

We need a grid that freezes columns on the left and right.

“What’s that?” you ask, astounded and bemused.

Yes, frozen columns on the left and right of the grid. Horizontal scrolling in the middle. Vertical scrolling moves the whole shebang.

This ain’t your grandmother’s grid.

Movie Day!

In which I just watch movies.

Yep, taking the day off to watch some cinema. Or film. Or movies. Or talkies, whatever you care to call them. Be back tomorrow.

leslie-mvp, the Beginning

In which I talk about the inspiration and design of leslie-mvp.

My friend Philip accuses me of being one of a handful of people that likes Yahoo! User Interface. It’s true and I feel no shame. However, I had to just give up on mojito because it didn’t meet my needs for the Web application that I’m using. So, I decided to write my own dispatcher to make the use of express much easier. In this post, I will write about the influence of mojito on the design of leslie-mvp and the other stuff it does.

A Little More About Promises

In which I write more about promises with RSVP.

Yesterday, I wrote about

promises in JavaScript with rsvp.

I want to spend a little more time with examples of promises to prepare you for my review of leslie-mvp.

Promises in JavaScript with rsvp

In which I praise the use of promises with practical examples.

JavaScript with its single-threaded execution encourages the use of asynchronous programming and callbacks that can lead to some really tough-to-manage code. The use of promises can radically simplify the structure of our asynchronous JavaScript code which leads to more comprehensible code. This post talks about the use of promises in JavaScript, specifically with the rsvp library.

In case you’re interested, our good friend Bryan Ray has his own JavaScript-oriented post in reference to his awesome side project Huddle, a “node-based chat application that composes many useful features for helping small teams work more effectively.”

Thinking About Forking revalidator

In which I ponder the benefit of forking revalidator.

When it first came out, I was a really big fan of flatiron. I made some contributions to some of the packages in flatiron. That was fun and nice. However, the more I used it, the less I agreed with its opinions. No big deal, right? Either suck it up and drive on or move onto another library or write your own.

That’s the way of open-source software. I like that ecosystem.

I still really like two of the flatiron libraries:

A high-level, caching, CouchDB client for Node.js
A cross-browser / node.js validator used by resourceful and flatiron. Revalidator has JSONSchema compatibility as primary goal.

I don’t use cradle because I wrote stork. No problem.

What does revalidator do?

There’s this cool spec called JSON Schema which does for JSON what schemas do for XML. In other words, it provides a description of the type of information found in a JSON payload. That’s nice.

revalidator creates a library that mimics the JSON Schema specification to validate objects rather than JSON-formatted documents. That’s even nicer.

Natual Human Resources

In which I briefly talk about developers as natural resources.

People are “renewable resources”. Just ask this guy.

Developers are not renewable resources. You use them up and they’re fried. You use them up and the word gets around that you use them up. No one wants to work for you. Training developers to your application, business, and ways of doing things costs lots of money.

I remind myself of this with something that U. Utah Philips said in his album “The Past Didn’t Go Anywhere”. He said it to a bunch of graduating students. I think every manager needs to remember it every day about his or her employees.

You are about to be told one more time that you are America’s most valuable natural resource. Have you seen what they do to valuable natural resources?! Have you seen a strip mine? Have you seen a clear cut in the forest? Have you seen a polluted river? Don’t ever let them call you a valuable natural resource! They’re going to strip mine your soul. They’re going to clear cut your best thoughts for the sake of profit unless you learn to resist, because the profit system follows the path of least resistance and following the path of least resistance is what makes the river crooked!

Better Late Than Never

In which I decry this sentiment.

I just finished watching both seasons of “House of Cards” on Netflix. Admittedly, I didn’t watch-watch it; rather, I had it on the TV in my office while writing code over the weekend. However, I have can pay attention to both to a certain extent. I listened enough to feel bad: the anti-hero saddened me, the politics dispirited me. It reminded me too much of my current work environment but without the marble-lined scenery and the homicide.

Well, without the homicide, yet.

Watching "House of Cards"

In which I ... react.

Ok, so, I feel like I’m embroiled in politics at work, sometimes.

Now, I’m watching Netflix’s House of Cards.

Kevin Spacey’s character feels thwarted in some of the episodes.

I can sympathize.

A Problem in Designing Binary Properties in stork-odm

In which I reflect on the difficulty of a design decision in **stork**.

I wrote a little application in node with couchdb behind the curtain. I enjoyed the exercise and used nano by Nuno Job. That’s like building a Web application with the ASP.NET pipeline and ADO.NET: a really good exercise to understand the technologies in detail but I wouldn’t want to do it again.

Now, I want to rebuild it bigger and better. And, I need a better way to persist my objects’ states.

Blog-a-Day May!

In which I announce my participation in Blog-a-Day May!

So, May Day has rolled around for this fine year of 2014. I have spent 44 days without writing and, darn it, I really miss it.

So, I announce my intent to write a blog of every day in May.