Still Learning - ES6

In which I write about my work with ES6

I really like ECMAscript. And, I continue to learn about it every time I write something new in it. Some friends and I want to make learning about the new version of ECMAscript available and approachable to folks that don’t have time to go out and do it themselves. With that, I announce the ongoing development of ES6 Walkthroughs.

Over at that link, @bryan, @davehimself, and I have started putting together a bunch of tutorials, self-guided or narrated, depending on the complexity of the subject.

Houston Techfest 2014

In which I provide a link and reflection on Houston Techfest 2014

I went to Houston TechFest, today. If you stopped by my impromptu lunch-time presentation, I mentioned each of these topics:

But, not a presenter

For the first year, instead of presenting at the Houston TechFest, I sponsored it. Just me as my company curtissimo. I found an interesting reaction to my sponsorship as I sat with @bryanray in my unadorned booth:


That’s right. Most people came by to ask what I was selling. Or what I was trying to get from them. They didn’t understand that I just wanted to sponsor the TechFest because I really appreciate Houston TechFest.

And, now, I wonder about the implications of this. It seems to me that, for whatever reason, something this excellent only gets sponsored by companies trying to sell you something. And, that kind of sucks.

ReST, HTML, JavaScript, and URIs

In which I revisit one of my favorite subjects: ReST over HTTP

We created data- attributes in HTML5 so servers could embed application-specific information in the structural representation of a resource. The IANA also provides a directory of meaningful link relationship types for use in HTML documents. If we comply with ReST over HTTP, then we should use those to contain the information that our JavaScript uses. Otherwise, we end up breaking the core tenets of ReST and our applications become difficult to maintain and extend.

Why Does MSDN Throttle Non-IE Downloads?

In which I complain about MSDN's downloads.

I wanted to download the ISO for Microsoft SQL Server from MSDN, today. I started the download from Safari on OS X. The download plateaued at 377 Kb/s. Um, WTF?

I have “high-speed” Internet. So, I fired up a Windows 8.1 VM in VMware Fusion. I started the download from IE 10. It plateaued at 2 Mb/s. Um, WTF?

I killed that download and went back to Safari. The download plateaued at 379 Kb/s.

I killed that download and went back to IE 10. The download plateaued at 2.4 Mb/s.

Um, WTF?

So, thanks, MSDN. Thanks for screwing my download experience.


Rambling Toward the Sunset

In which I just kind of write some stuff of no great importance about agile on big projects.

Hi. It’s been a while, I know. Sorry about that. How’ve you been?

Me? Well, I’m still working my butt off on this project.

Yeah, that’s the one.

What’s changed since we talked last? Some more really smart people joined. Some really bad ones left. We’re just starting to hit our stride fully.

Yep, still agile. Big project agile. And -

No, “big project agile” does not mean “waterfall”, dork. Some people would probably argue that statement, especially in the so-called enterprise. As if big IT is the enemy of agility.

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.

C# lambdas and LINQ Methods

In which I point you to an instructional video on C# lambdas.

This video no longer exists. Sorry.

Just posted the instructional video “C# lambdas and LINQ Methods”. It’s a primer, kids.

Yeah, nothing.

In which I explain my on-going quietness

I have so many things that I’d like to write about. Unfortunately, they fall into one of two categories, both of which I can’t write about!

  1. Things that occur with regards to my clients
  2. Things related to my current project


jade View Engine for Yahoo! Mojito

In which I present a Yahoo! Mojito view engine for jade.

I like jade.

I like mojito.

Now, they work together.

Moodeling In Color: Date Effective Entities

In which I write about date effective entities and moment-intervals.

I have spent the last month with some really smart guys who have been tasked to distill a problem domain into connected domain-neutral components. All of them have had years of experience modeling domains; however, this exercise represents their introduction to modeling in color. As such, they have challenged my articulations of the domain-neutral component. I address one such challenge in this post: date effectiveness and the «moment-interval» class archetype.

Setup ASP.NET MVC 5 on MonoDevelop 4.2

In which I provide steps to get ASP.NET MVC 5 running on MonoDevelop 4.2

The information in this article is seriously out of date. It will probably not work for you. Please, don't try it unless you absolutely have to try it.

Instead, maybe you should try Visual Studio for Mac.

This is an update to the earlier post Setup ASP.NET MVC 4 on MonoDevelop 4.1.

Using an old project called autotest

In which I find happiness from two years ago.

A friend and I have started building a thing. Not an interesting thing for most people; however, for me, it serves a community to which I belong. A community underserved by technology. So, with that in mind, I’m trying to help folks out and make a little in the process. Really, just a little. Enough to cover infrastructure and the time we’ve put into it.

Anyway, as with all software that I write, I need tests. Yes. I wrote need on purpose. I try hard to distinguish between my “needs” and “wants”. Sometimes I get ahead of myself and tests help reign in my enthusiasm so I don’t drop the eighteen eggs. Just saw a guy do that in the parking lot of the grocery store, today. Pretty sure they were cage-free which, as we all know, doesn’t really mean squat.

All those tests. I got tired of running them over and over. Worse off, all of the autorunners were puking on my project. Sad. Really sad. If only I had used a language and platform that has all kinds of things to help me. Oh well.

Then, I remembered I once wrote a little automated file watcher/test runner. I find it odd that I didn’t think about it before. I headed over to my open-source repositories over on GitHub… there!


I cloned it.

I ran it.


Didn’t have to modify a single line of code.

Thank you, me. I’m glad you were here a while ago.