Moving back to a standing desk – The Ergotron Workfit-A

[Update : a comparison of the Workfit-A and Workfit-S]

Ever since I left Napster I’ve been missing my standing desk and finally committed to one at home. Given the San Diego housing market, we could only afford a thimble-sized house and, as such, making the best use of space is pretty critical.

I would have jumped on a geekdesk but I was looking when they were backordered on the current version and the next version was still a month out. I’m far too impatient for that. That left a few ergotron options and I decided to jump on the workfit-a laptop/monitor setup.

Putting it together was a joy it looks amazing. I was immediately disappointed, though, when I started typing; the typing made the monitors wobble!

I’m only a night in but am adjusting my behavior to see if it works. So far, it’s not nearly as bad as I first thought it would be. I’ve been looking at getting a new keyboard because my microsoft ergonomic requires too much force to type anyway. A split

I *want* to make this work, and tightening the tension and securing it to a weightier desk has helped. Will post a full review in time.

New JavaScriptU this Tuesday

We’re finally getting into node!

I’ve been using node off and on for a little over a year now and have found it works amazingly well in every situation I’ve put it in. It does present a whole load of questions that need new solutions and I’m pretty sure that’s where a lot of the conflict surrounding the platform comes from.

I remember the first time I started using node, trying to write code the way I did before in Java, perl, ruby, and thinking “Are you effing kidding me?” more than once.

One of the situations that stuck with me was looping over some asynchronous call, expecting to just push to some array that I could return. When that didn’t work I remember thinking “Oh god, what do I do?”

Open Everything

Reproduced from a monthly publication with minor corrections

I often take for granted the perspective I have on a world that many people don’t know exists, despite it powering or assisting nearly every product that is made nowadays. As a software engineer, almost all of my work is done using products that volunteers develop in their free time and distribute for free. We call it Open Source, but it’s just free stuff. Free to use, free to distribute, free to modify, and even free to make money off of.

Occasionally I have to explain Open Source when it gets brought up in conversation and I am reminded of how alien the concept is in day-to-day life. The closest anyone can get to free nowadays is a service that is offered at no charge but drowns you in advertisements, solicitations for money, or upsells for additional services. We don’t often get the chance to take advantage of truly free products.

Open Source-style philosophies have existed for ages but the rise of the internet has allowed people to spread information to a wider audience more quickly. The benefits of free information are felt sooner, and the perceived loss of releasing the product of your own creativity for free is reduced. The cumulative effect is already visibly massive and very indicative of what every entrepreneur will tell you, it’s not the idea that matters, it’s the execution.

20 years ago, would you have bet that an encyclopedia owned and run by the largest and most respected software company in the world would shut its doors while a free encyclopedia that allows anyone to edit its content in their spare time dominates the market?

Microsoft Encarta ended in 2009 because it couldn’t compete with Wikipedia, one of the world’s most trafficked websites with nearly 4,000,000 content entries, 140,000 active volunteers, and 40+ translations. This is, of course, omitting the fact that the software that runs Wikipedia; MediaWiki, PHP, Apache, and Linux are all open source and free as well. Microsoft could now (and then) literally have built the exact same service for minimal cost. And so could you, today. Here are the instructions :

Open source advocates don’t exist in a purely socialistic bubble which is one of the reasons it has such wide reach. You can release content in the public domain, meaning that anyone can do anything, or under a multitude of licenses that adhere most closely to your personal interests. One popular license is the Creative Commons, which can allow you to specify that you don’t want your work to be modified or used commercially (popular for artists and photographers). Other licenses might give up just about every right but require the user to simply reference the original author somewhere in the derivative work.

There currently exists open source schematics on how to build your own 3D printer (a “printer” that extrudes warm plastic and creates 3D objects). That, combined with open source models, might literally mean that you can open source everything.

And this is just what exists now.

The value of readable code

It’s been written about hundreds of times, but I still find it hard to underestimate the value of code that is both self documenting and intuitive to maintain.

Not my code, my code is crap. Except what I wrote today. Everything I wrote yesterday and before is pure junk.

Most code is. Even code that looks readable at first will likely be crap once you start digging in. It’s always a tradeoff. You can’t maintain superior design while specs keep changing with a team that has different ideas of what clean code actually is. Everyone has different limits as to what corners can be cut in the pursuit of clean code. The dirty dish tolerance level.

It’s an unachievable goal, but the willingness to keep trying and refactoring is hugely important.

“JavaScriptU Sucks”

I love criticism or, rather, I love to learn and criticism is one of the best ways to learn about yourself and your beliefs.

Someone recently said that they thought JavaScriptU and what we were teaching was crap. They may have said it in much more diplomatic way, but the gist of it was that we were crap.

This came from a Java perspective and, well, it’s kind of true. Here I am teaching people how to use a library called ‘Underscore’ where you access many array, object, function, and templating methods off a single namespace, an actual, literal underscore. A basic anti-pattern (util buckets with unintuitive namespaces) in any other language is a valuable library in JavaScript. Another class I was going over a dependency management solution (requirejs) where I had to actually explain why dependency management in JavaScript is important.

Ok, so maybe the conversation wasn’t around why JavaScriptU sucks, but rather that JavaScript is crap to teach. There is so little that is core to JavaScript that it requires us to teach with seemingly arbitrary third party libraries in order to do anything great.

It’s true, but that’s one of the reasons I (effing) love JavaScript. You have to learn all the time, and the libraries du jour are an indication of this.

You can’t rely on a core bit of knowledge to get you very far with JavaScript and web applications. Even the people writing the libraries that others use to write “cutting edge” software are still learning and reevaluating their patterns. The range of things that people have created in such an inhospitable environment is incredible and a testament to the resourcefulness of the community.

The community is what we’re trying to encourage. We’ve all worked at companies and with people who don’t fully recognize the speed at which the web is moving and we’re trying to pull people up to speed.

One of the things JavaScriptU has been docked on was that we were pushing “advanced” topics too soon, even from people experienced in the industry. It’s almost as if people think that JavaScript is so complicated that you need to tiptoe around others trying to learn it.

It’s not, but we do need loads more developers coming up to speed soon in order to sustain this growth.

jQuery Pulse Plugin on github

In an ongoing effort to keep this site more up to date, I’ve moved to wordpress and have been trying to add all the redirects from the old links to new locations. Still one of the largest draws to this site is the jQuery Pulse Plugin I wrote a million years ago, but now it has an appropriate place on github here :

I updated the demo page as well but will try to get around to adding all that content to the github page in time.

Backbone.Marionette slides from sandiego.js

You can find the slides here : Backbone.Marionette teaser

They were mostly a test of the extensions we are making to Deck.js for JavaScriptU. Writing modular slides in a flavor of markdown and combining them on the fly is proving to be pretty cool.

We also made a small addon for codemirror that allows for async loading of remote source and simple highlighting of test via HTML markup/markdown, two things which drove me nuts when trying to make slides before. Having to escape your code for HTML is a pain in the ass.