I just read John Gruber’s The iPad Big Picture entry and the bit that caught my eye was:
But: everyone I spoke to in the press room was raving first and foremost about the speed. None of us could shut up about it. It feels impossibly fast.
That was very similar to my experience when I started using my Air. With this device it’s about as close to instant-on on any laptop I’ve ever had—from opening the clamshell to being able to do anything with it is less than a second. It’s just like pulling out a pad of paper to jot down some notes. I wouldn’t say that the Air is “impossibly fast” but I have to tell you that even though this computer is 1.8 GHz and my Pro is 2.5 GHz, it is an absolute pain to use the Pro now. By the time the Pro wakes up the thought I wanted to write down is gone.
The iPad is definitely something I’m considering now. It seems to fit my needs: I need a quick, responsive, digital device that can get me to my media, to my notes, to a command prompt so I can tweak servers, and enough pixels on the screen so I can read graphs and text. And if it’s hecka fast, well that just about sells me.
Adapted from http://www.depixelate.com/2008/5/24/rails-migrations-for-large-text-columns:
create_table :foo do |t|
t.text :new_col, :limit => 64.kilobytes + 1
Ever accidentally drag an item off the dock? Ever forget what that was and now it’s killing you that you know you might be missing something important? You would think that you can lock your Dock so that things don’t accidentally get removed. It’s such a simple feature—even Windows has had it forever.
Thanks to a quick article on Brighthub, http://www.brighthub.com/computing/mac-platform/articles/43080.aspx, there’s a couple of commands you can type into Terminal to lock it. I took it a step further and just made them into a couple of aliases for my .bash_profile:
alias docklock='defaults write com.apple.dock contents-immutable -bool true;killall Dock'
alias dockunlock='defaults write com.apple.dock contents-immutable -bool false;killall Dock'
So, to lock your Dock now just open the Terminal application and type:
To unlock, type instead:
On one of my newer projects I’m a development and project management team of one. Still, I use a ticket tracking system like Redmine and Git for many reasons.
I like being able to enter a feature or a bug into the ticket tracker to make sure I get back to those issues later. I could use a spreadsheet, a notepad, or something like Remember The Milk but Redmine has the big advantage of integrating with SCM systems.
And I definitely use SCM all of the time. I’ve run into way too many cases where I’ve made a change I regret or I just need to group changes together. Something like Git works perfectly for this. And when I commit code it also reflects in Redmine what I’ve done, when I’ve done it.
Plus there’s a more important thing: what if my development team grows from one person to more than just me? If I’ve been using these systems all the time then adding a new code author or a project manager is really easy. I’m ready to scale!
Recently I started a project where I wanted to have my bug tracking database local and my SCM repository remote. I decided to use the Rails-based Redmine and Git for the remote repo. One of the things you can do with Redmine is have it read repository changes so that the log messages affect the Redmine tickets. (e.g. I commit some code and in the commit message I write “Fixes #1047: parsing of CSVs fixed” and that will close ticket #1047.) To do this Redmine asks you to run a quick little script (which I have set up on a cron job to go every 10 minutes):
ruby script/runner “Repository.fetch_changesets” -e production
Since my Git repo is remote I made a “bare” clone of my repo in a directory on my laptop hard drive just like the Git Wiki says:
git clone –bare remote_git_url local_directory_name
Great. And now every so often all one has to do is fetch the changes from this remote repo. But for some reason it wasn’t moving the head pointer in my bare repo. So after a bit of twiddling I figured out something that seems to work. I tucked this recipe into the same file that the above “ruby script/runner” command is in, resulting in:
git fetch -f origin
git reset --soft origin/master
ruby script/runner "Repository.fetch_changesets" -e production
(The magic line is the “git reset –soft origin/master”.)
Yup. Now I’m totally happy.