By Casey Liss
It's That Easy?

A couple days ago, I wanted to see if I could deploy this site to a hosted platform. I knew that both Heroku and Azure had great support for Node.js, which is the platform this site is built on. I chose to try Heroku first, because in looking at both Heroku’s and Azure’s pricing, it was easier for me to understand that deploying to Heroku would be free in my use case.

At this point, I already had my project built and running locally, and also had a local git repository. I already had a standard node package.json. In every way, I felt ready. Thus, I took a look at Heroku’s quick-start documentation for Node, and started walking through it.

As I worked through the guide, I downloaded the Heroku toolbelt (command-line app), and after that, I was able to breeze through the guide, since I already had everything required of me. The first real action I had to take was to add a Procfile. My Procfile is one line; this is it:

web: node camel.js

(Note that camel.js is the entry point for my app.)

After installing the toolbelt, and creating the Procfile, I performed the following operations:

  1. heroku login to log into Heroku.
  2. heroku create to create the application within Heroku.
  3. git push heroku master to push my git repository to Heroku.
  4. heroku ps:scale web=1 to tell Heroku to create a dyno (a worker, to respond to web requests).
  5. heroku open to open Safari at my new, custom URL.

That was it. The only other thing I chose to do was to point my domain to Heroku:

heroku domains:add www.caseyliss.com

I was — and remain — stunned. I probably shouldn’t be, as Heroku has been around for a while now, but as someone who is used to working on the Microsoft ASP.NET stack, it was foreign. I’m used to standing up a server, fiddling with IIS settings, cursing some weirdo one-off issue that I’ve never seen before, and generally hating life until I get that first deployment done. While I expected things to be easier in this whole new world, I couldn’t imagine the only “real” task I had was to add a one-line file.

Not long ago we had the roll-a-raw-VM versus roll-using-high-level-tools debate. I’m working at a different level—a personal blog—and as such my priorities and needs are not the same as Marco’s and Justin’s. However, down here things are far less stressed and far less stressful. For something smaller and less demanding, it’s hard for me to reason through why you wouldn’t choose a solution like Heroku.


ATP T-Shirts

Starting today, and running until 11 May, ATP T-Shirts will be available for sale. They’re $19, available at Teespring, and for Americans should deliver before WWDC.

In case you’re not familiar with Teespring, think of it as Kickstarter for T-Shirts. Since we already (!) hit our goal of 200, the shirts wil be printed.

Wondering what’s on the back? It’s the code, in Objective-C, that it takes to create the logo on the front.

We’re nerds.

And proud of it.

A New Beginning
I'm speaking to you now from inside one of the venturi tunnels!

Welcome.

I’m speaking to you now from my new website, which I’ve uncreatively titled Liss is More.

This project was done for a few reasons.

Learn. I needed an excuse to learn Node.js, which is something I’ve heard quite a lot about lately. From what I’ve gathered, it’s a great way to stand up an easy HTTP server. In my experience, it’s been exactly that. At the time of this writing, I wrote just under 400 lines of code to create the blogging engine that served you this page.

Granted, it isn’t very advanced, but that’s damned impressive.

I decided to host at Heroku, because I had heard good things about it, I thought I could get hosting for free (since the site is so small), and I wanted to try it. I had also considered Azure, but their pricing information is so convoluted, I gave up on figuring it out.

While I don’t really have a name for the engine, I am considering open-sourcing it. There’s a lot of violations of DRY that I need to clean up first, as well as some other general tidying. Smart money says I’ll never get around to it, but we’ll see.

Control. As a friend of mine has said, controlling your own environment is important. While I’ve been a Tumblr user since January of 2008, I wanted to try something new, and perhaps more serious. Furthermore, I wanted to control things. I wanted to write the code myself, and I wanted to control how it is executed and deployed.

Personally, I don’t want to control the machine it’s running on. I don’t want to worry about patches, updates, connection issues, or anything else like that. I just want to write the code I care about, push it to some server somewhere, and watch my changes appear like magic.

What I did want is to control everything about my code and my content. Now I do.

Trends. Come on! Everybody’s doing it! Certainly, both cohosts of my podcast wrote their own blogging engines in their languages of choice. I wanted to do the same, but I wanted to write my blogging engine using a framework/technology that was, itself, trendy. Hence, I used Node, as well as some other technologies.

Inspiration. Finally, I created Liss is More in order to inspire me to write more, and do so long-form. I’m a prolific Twitter user, but I feel like there is room between writing 140 characters ephemerally and talking for an hour or two weekly. By having a site that I’m proud of, and that I made myself, I hope to quietly convince myself to write more. Time will tell if I accomplished that goal…