Macs: Productivity made Easy

Day #3 of the Macbook…

I began working today with the intention of integrating a test Heroku site with Paypal’s Instant Notification System. Didn’t get there quite yet, but I’m getting there. Here’s a few things I worked on this evening:

Modifying the Terminal Prompt

Every line had been displaying “matthew-mazurs-macbook: Matt $” or something long and annoying like that, so I looked into how to change it. Some helpful individual on #rubyonrails told me to look up PS1 and surely enough, changing it is pretty easy. This site teaches you how to change it, though this method only works for the current terminal. When you reload the terminal the name reverts to its previous state. To change it permantely, you have to close down termal and edit /etc/bashrc in some text editor. Change the PS1 name to whatever you want and it’ll be changed permantently for future terminal windows. There’s probably an easier way to do this but hey, it worked.

Using VI

As nerdy readers have probably realized by now, I suck at the command prompt. I regret not taking more opportunities during my college compsci classes to gain more experience with it. Anyway, this tutorial is a pretty good introduction to what you need to know in order to navigate vi.

Ruby Gems

Up until this point in my app’s development I haven’t had to use any gems so I was pretty lost when I read I should install a Paypal gem to interact with Paypal’s Instant Payment Notification system. For the unenlightened, IPN is an alert that Paypal sends to your site when someone has made a purchase. You can use this notification to enable a user’s account, for example. Thankfully, rubygems.org offers an excellent tutorial which quickly brought me up to speed. I worked my way through their progressbar example, which as stupid as it is, was a nice thing to get working.

Fortunately, while developing ALL IN Expert (more to come on that — I promise), I spent a lot of time learning how to do IPN with PHP. Things are slightly different now, but the prior experience is helpful.

Heroku it is

With Domain Pigeon progressing nicely, its time to start learning how to deploy it. While it won’t be ready for several weeks, part of it will be integrated with Paypal so its essential that I have plenty of time to develop and test that portion of it.

Most of my inital hosting research was from a three month old post on HackerNews regarding the best way to work on a Ruby on Rails app. Now I have to admit this is kind of stupid in retrospect… but I didn’t realize I could build and run a Rails app locally; I thought it had to be hosted somewhere. I quickly found out about InstantRails, which I’ve been using since then to experiment and do work. Now that it’s time to actually launch an app, I’m back where I started, looking for a good host.

The responses on that thread pointed to Slicehost, Heroku, Dreamhost, HostingRails, and a few others. I briefly considered learning how to be a system administrator so that I could configure and maintain my own slice at Slicehost, but after doing a little research I realize I have no idea what I’m doing and I’m better off finding a managed solution. Dreamhost seems to have a pretty good reputation, though their lack of focus on Rails turned me off it. HostingRails and Heroku both focused on Rails applications, which I like, so it was mainly a chioce between the two.

HostingRails seemed like a decent option. The reviews were generally favorable and most of the negative comments about downtime were from the 2006 period. The site was pretty well done, though some of the tutorials could have used a bit of work. I could even pay them a one-time sum of $79 and they would set up and configure my app to run on their servers. Or, if I wanted, I could use their tutorials to do it on my own. I looked through them and they seemed reasonable enough. One bad thing is that they require a year’s payment up front, which seems like a +EV move for the makers of a crappy product.

On to Heroku… I had been to Heroku several months back when this all started and when I came back yesterday to check it out I saw that everything was basically the same. That mistakenly led me to believe that the site wasn’t still being updated and for whatever reason was inactive. I later found out that that’s not the case. The site is very much active and the founders apparently are very helpful for whatever issues come up. I also thought that they posted a banner at the top of each site, but again, that was bad information; the banner is for the developer to access the control panel. It can be turned off as required.

I asked HN, which hasn’t disappointed yet, and surely enough they came back with clarifications and help on the issues I had with Heroku. This pretty much sums up their responses:

My experiences with heroku has been very positive so far: The online IDE and tools are very robust and they’ve been responsive to me when I needed to ask questions.

I don’t think you’ll be disappointed

And so, as the title suggestions, I’m going to use Heroku to host Domain Pigeon. I really have no idea what I’m getting into, but the site looks perfect for my skill level and site requirements.

Tomorrow, time permitting, I’m going to try to launch a test application so I can familiarize myself with the site.

On a somewhat unrelated note, I downloaded TextMate, the Ruby on Rails TextMate bundle, and watched a Peepcode screencast on how to use them. Kind of like that Macbook, I don’t know how I ever went without it.

Focusing on Productivity

I’ve been spending some time the last few days thinking about ways I can improve my overall productivity. In general, I’m not working at a pace that I’m satisfied with, and while part of that is due to long hours at work, a lot is also due to not fully taking advantage of the free time I do have.

Accordingly, I made two major changes today that should:

News. A few months back, per Marc Andreessen’s advice, I subscribed to the Wall Street Journal. At first I attempted to read it on a daily basis. Now, I’m lucky if I scan it through twice a week. The problem is twofold: 1) I don’t understand a lot of it and 2) It takes time. The original purpose was to learn the important things going on in the world and in the tech industry. I think a combination of Hacker News, Inc magazine, and a few of the major blogs take care of the tech half of that goal. Usually, when my time was limited, I would just flip to the Business section and see if there were any internet related articles. For the news half, I’m going to subscribe to Time, which I think is excellent. Since they’re a weekly publication they generally avoid a lot of the irrelevent news, and they write less in one issue than the WSJ writes in a day. Starting tomorrow, I’m putting the WSJ on hold. There will hopefully come a time when I have the time and the need of reading it on a daily basis, but that time is not right now.

Computer Usage. I’ve been using InstantRails on Windows Vista in conjunction with UltraEdit for learning and programming Rails. InstantRails, as far as I can tell, is a hack that let’s Windows developers work with Rails. It gets the job done, but it just doesn’t feel natural. And so, today, I took the plunge and bought a Macbook, which I’m currently writing on. It is a breadth of fresh air; I wish I had made the switch earlier. It’s taking a bit of getting used to (I didn’t know what the traffic lights at the top of the windows were), but it’s incredibly straightforward. Usability was clearly a focus for the Mac developers, which is why it’s been such an easy transition. The plan is to do all my web development on this computer from now on.

My goal is to launch Domain Pigeon by the end of the year.

I’m going to try to write more often, as I find that it helps me to write things down.

Thanks for reading.