Archive for November, 2007
Pappas BBQ Pulled Pork == crazy delicious
Friday, November 30th, 2007The Airport
Friday, November 30th, 2007I remember when I was little, my dad would go on business trips. The concept always seemed so romantic to me. To get to fly half way around the world to meet with people because you were so important that someone was willing to pay for that trip. I’ve always wanted to have a job that would allow me to go on business trips. Maybe not for my whole life, but it would be really amazing for a few years. Even if you have to spend most of the time working, there’s got to be some time where you can get out and see the world.
I’m going on my first intercontinental trip. It’s a business trip. I’m sitting in the airport, thinking about all this while I eat some overpriced slop and watching a depressingly ugly woman shovel lettuce and “turkey” into plastic takeout boxes. It must be terribly depressing to food service work at the airport. You have to get up at the butt-crack of dawn, be x-rayed, and searched on your way in, then spend all day shoveling shit into boxes for “important” people who are always in too much of a hurry to be friendly. It’s got to be at least as lonely as I hear business trips become after a while.
Today, I’m grateful to be on this side of the counter.
Amsterdam
Friday, November 30th, 2007I don’t really know much about Amsterdam. In 40 minutes, I’m going there. I just found this out on Wednesday night. I’ve never been to Europe. I’ve never been out of North America. I’m super excited, but I have no idea what to expect. The trip is for business, so I’m afraid I may spend much of my time there in front of a computer screen, but I’m going to do my darndest to get out there and see some sights. What should I see? What do they have there?
Baseball
Tuesday, November 27th, 2007“Baseball’s the only sport I can get into because you can watch baseball on a spreadsheet”
Dear Amazon, Why?
Monday, November 26th, 2007Dear Amazon.com,
I understand that you have a lot of features, and that’s very fancy. Here’s your challenge. Most people who visit your site only want to do something simple. For example, my mother recently asked what I wanted for Christmas, so I pointed her to my wish list on Amazon. It took us like 47 clicks to find it. Again, this afternoon, I decided that I should maybe update my wishlist. Again, I have been thwarted by your horrible interface. Let me explain.
Keeping and Eye on SVN with svn_hooks
Monday, November 26th, 2007I’ve been working on a new ruby gem to make it easier to write scripts for handling subversion events. The idea is to allow you to separate your code into files based on project or task, rather than based on event. There are some simple methods available for filtering based on event type or area of the repository that’s been touched. Also made available are all of the details of the last event, including touched files (and their state flags), author, date, and comment. You can get the package here.
Ruby SVN Hooks
Sunday, November 25th, 2007A domain specific language for implementing svn repository hooks in ruby.
The goal of this project is to allow developers or sysadmins an easier method for responding to svn hook events. The default behavior of subversion is to call an executable script based on the type of event that’s occurred. For places where multiple projects may exist under a single repository, this becomes a bit complicated since it’s probably desirable to respond differently depending on what project has been modified by a commit.
Important: This package is still in early stages of development. Everything you read here is subject to change until version 1.0.0.
Installation:
You can download the gem from RubyForge or just install using the ruby gems command line:
sudo gem install svn_hooks
Once installed, you’ll need to run the setup script on your svn repository (on the server side):
svn_rubyhooks /path/to/my/repository
This will do a couple things. First, it will create all of the callback files that are expected by svn in the hooks directory. If there are existing scripts, they will be moved out of the way by appending their filenames with .old. Next, it will create a scripts directory within the hooks directory.
Usage:
When any event happens to the repository that will trigger one of the event scripts, every script in the hooks/scripts directory with a .rb extension will be executed. Within these scripts, you can use the following filters for deciding how and when your code is executed.
Path Based Filtering
Code within this block will only be executed if files within the specified path or paths have been modified.
for_path 'repo/projects/my_project/trunk/*' do #... event handler here end
Event Based Filtering
Code within this block will only be executed in response to a specific svn event.
for_event 'post-commit' do #... event handler here end
Nested Filters
The preferred method is to filter on both event and path
for_event 'post-commit' do
for_path 'repo/projects/my_project/trunk/*' do
#... event handler here
end
end
Event Details
All filter blocks can optionally receive as SVN::Stat object, which can provide many details about the event.
for_event 'post-commit' do |details| puts details.revision puts details.event puts details.author puts details.date puts details.files end
Parallels Commercial: Why Choose
Monday, November 19th, 2007Starlings in Flight
Wednesday, November 14th, 2007I’ve been reading a lot lately about a concept called emergence which describes the spontaneous creation of complex systems from simple ones. It’s a spectacularly interesting concept that’s becoming more and more relevant as things like search engines and social networks become common place. If you’d like to find out more, there’s an excellent program on the subject as part of the Radio Lab series. You can also check out a book on the subject. Or, for a concrete example, watch this unbelievable video of starlings in flight.
Fixing MySQL in Leopard
Tuesday, November 13th, 2007One issue people have run into with upgrading to OS X 10.5 (Leopard) is that the MySQL 5 package installer doesn’t seem to startup without a bunch of issues. This is especially true for the preference pane that basically just crashes when you try to start the service. The problem seems to come from an issue with how the installer sets permissions on the data directory within the mysql directory. I fixed this by simply taking ownership of this directory with the following command:
sudo chown -R username /usr/local/mysql/data
You may have to modify this based on your configuration, but the essential problem is that the ownership of this directory is busted. After making this modification, I’m able to startup the MySQL server from the command line or preference pane without issue.
