From Crazy Idea to Customer in a Weekend

I launched a small business called http://GeekRations.com and got a paying customer in a weekend. Full disclosure, that was my only customer. I'm still learning and likewise I'm not completely sure how to go about finding my next one. This was still a huge milestone for me this year. A paying customer. That was my goal.

You'll see a lot of parallels to The Lean Startup in this and that's totally cool. I'm not, however, trying to adhere to some methodology. Experience has taught me that that's the Wrong Thing. The zen I've been able to pick out of The Lean Startup and Customer Development is really just that a solid business model is testable. It's not a black art. There's no reason or excuse to go months building a product or service without talking to potential customers.

Read the rest of this post »

Creating an Image Proxy server in Node.js

This will be a short post. I am writing this to document how I created a Node.js server that can act as an image proxy. I needed this to get around a limitation in HTML5's canvas implementation that prevents getting a loaded image's binary data if that image is from a different web domain. This function is very handy though if you're building an image editor so I had to find a work around.

My solution is to create an image proxy on the web server in question. I pass the url of the image I want to a specific route on my server and then it downloads the image data and returns it to my javascript thus hiding its true origins.

Read the rest of this post »

Why I'm (Finally) Switching to CoffeeScript

CoffeeScript Misconceptions

You may have already heard about CoffeeScript and some of the hype surrounding it but you still have found several reasons to not make the switch. This blog post is for you. Here are some of the reasons I held out for so long:
  • I wanted to understand Javascript and just didn't see how using a "simpler version" (my own thoughts) would make my life easier in the long run.
  • If I DID use an intermediate language, I wanted to be able to dump it at any time and not feel like I was forced to continue using it.
  • Putting one more thing with bugs in between myself and my code seemed fool hardy.

Read the rest of this post »

Introducing GeekRations

What's GeekRations?

Tonight I launched my latest project, GeekRations (check it out at http://www.geekrations.com). It's a gift of the month club for geeks that pulls weird and off the wall gifts from the hidden nooks and crannies of the internet and delivers them to you monthly. I originally envisioned it for people like myself who love receiving packages in the mail just for the surprise of what's inside. It also makes for an awesome gift for that geek in your life you don't know how to buy for. 

Where We're At Right Now

Currently, GeekRations is taking emails from interested prospective customers. As soon as we're ready to start shipping gifts you'll be notified where you can sign up for the service. Visit http://www.geekrations.com and sign up to be notified once we're taking orders! 

Geeky Details

GeekRations is a lean start up in the purest sense of the word. The purpose of the landing page was to see if anyone even cared about this business idea. Apparently people do, so the business idea will be moving forward. Furthermore, GeekRations has an A/B test running on the splash page wording. One of them is pretty straight faced and very plain in describing our service while the other tries to be a little looser and silly. I will reveal the results of which one wins once I feel I've aggregated enough data that I can tell which is the clear winner.

Unit Testing the DOM

How I Unit Test in jQuery

I created a function that will add arbitrary html to the DOM and remove it immediately after my test has run. This is what it looks like in use:

And this is what comprises the function:

It is important to note that errors leave garbage divs behind. This is definitely a work in progress. :)

If you're looking for the short and quick, that was it. If you're wondering why I'm doing this read on. (You can also view the live typed version here: http://ietherpad.com/ep/pad/view/Ek6pNOcyjv/latest)

Read the rest of this post »

Selling Software or Wanking Code

First off, I love beautiful code and have been known to fixate on it so this article is a formalization of what I think to myself every time I start to get religious over coding quality.

Code quality is an oft talked about yet poorly defined topic amongst programmers. Ask 100 different developers what "quality" means to them and you'll receive 100 different answers. Responses will range from "Quality code is code that can be easily changed and understood" to "Quality code is hard to define but following the SOLID principles is a good start" to "it's more of an art that's hard to define." Ok, but maybe you're thinking that these are too abstract and should refer to reducing costs and reducing bugs. Sure. Maybe. Ultimately, however, all of these definitions of "quality" skirt the elephant in the room.

Read the rest of this post »

Introducing STFU and Code

My recent foray into the Ruby world with Sinatra and Heroku has taught me a lot about what we could be doing better in .NET. STFU and Code is my **first** response.

I formed this project with Tim Erickson, a great friend, to reduce the friction of getting down to brass tacks and working on a small .NET project. We're using AvalonEdit (http://wiki.sharpdevelop.net/AvalonEdit.ashx) to provide us with syntax highlighting and in order to suss out whether or not the code parses.

It's really more of a code thought, but it's usable and your comments are welcome!