Friday, September 14, 2007

getting up and running with buildr

for the last couple of days i've been trying to get buildr running on my laptop to build an example project. i already had java 1.5 running on windows, with JAVA_HOME set accordingly, and i have installed ruby 1.8.6 via the one-click installer.

i decided to follow the buildr getting started guide and but i unfortunately had problems at the first hurdle - installation. the instruction was to run the following at the command line:
gem install buildr

however this would not run as expected and instead refused to install due to a missing dependent library as indicated here:
C:\dev\ruby\gems>gem install buildr
ERROR: While executing gem ... (RuntimeError)
Error instaling buildr:
Buildr requires rubyzip >= 0.9.0

i thought it may be due to my firewall, so after reading this post on ashish's blog, i decided to download the missing gem manually from the gems repository, installing that first in the same way, then continuing as above.

this worked at first, but then i was informed by gems of another dependency, and after following this process a couple of times i realised this may take a while and i had to find another way around.

i had a look at the gems user guide and looked up the section for installing a gem remotely and found that by adding a '-r' or '--remote' at the right place would force the install to fetch the gem libraries remotely. i believed this should have happened if they libraries weren't found locally anyway, so i'm not sure why this didn't work in the first place.

so i decided to proceed, and i had a brief look at the buildr help by running 'builder --help':
Usage:
buildr [-f buildfile] {options} targets...

Options:
--buildfile (-f)
Use FILE as the buildfile.
--freeze (-F)
Freezes the Buildfile so it always uses Buildr version 1.2.5
--help (-H)
Display this help message.
--nosearch (-N)
Do not search parent directories for the buildfile.
--quiet (-q)
Do not log messages to standard output.
--require=MODULE (-r)
Require MODULE before executing buildfile.
--trace (-t)
Turn on invoke/execute tracing, enable full backtrace.
--unfreeze (-U)
Unfreezes the Buildfile to use the latest version of Buildr
--verbose (-v)
Log message to standard output (default).
--version (-V)
Display the program version.

For help with your buildfile:
buildr help

then i needed to create a simple buildfile and i could do that by just creating a top level project directory, entering that directory in my console, and simply running the 'buildr' command on its own, followed by selecting option 1, to create a buildfile from the directory structure. this is what was created:
# Generated by Buildr 1.2.5, change to your liking
# Version number for this release
VERSION_NUMBER = "1.0.0"
# Version number for the next release
NEXT_VERSION = "1.0.1"
# Group identifier for your projects
GROUP = "dvdcat"
COPYRIGHT = ""

# Specify Maven 2.0 remote repositories here, like this:
repositories.remote << "http://www.ibiblio.org/maven2/"

desc "The Dvdcat project"
define "dvdcat" do

project.version = VERSION_NUMBER
project.group = GROUP
manifest["Implementation-Vendor"] = COPYRIGHT
end

i could then have a look at the buildfile help by running 'builder help':
Buildr 1.2.5

Usage:
buildr [-f buildfile] {options} targets...

Top-level projects (buildr help:projects for full list):
dvdcat # The Dvdcat project

Common tasks:
artifacts # Download all artifacts
build # Build the project
clean # Clean files generated during a build
compile # Compile all projects
default # The default task it build
eclipse # Generate Eclipse artifacts for all projects
help:projects # List all projects defined by this buildfile
help:tasks # List all tasks available from this buildfile
idea # Generate Idea artifacts for all projects
install # Install packages created by the project
javadoc # Create the Javadocs for this project
junit:report # Generate JUnit tests report in reports/junit
package # Create packages
release # Make a release
test # Run all test cases
uninstall # Remove previously installed packages
upload # Upload packages created by the project


For help on command line options:
buildr --help

Using Java 1.5.0_06, Ant 1.7.0.

To run a full build without running any test cases:
buildr test=no
To run specific test case:
buildr test:MyTest
To run integration tests:
buildr integration

The buildr RDoc is very useful too browse through, as is the code in SVN through FishEye. This book on Ruby Programming will be of help if you're not too offay with that yet, as is Dave Thomas and Andrew Hunt's pickaxe book.

Wednesday, September 12, 2007

desktop software

here is an attempt at an exhaustive list of all the desktop software i use from time to time...

audio

Audacity
iTunes (Apple)
Last.fm

video
DivX
XviD
AVIcodec
Videora iPod Converter
VirtualDub
TMPGEnc

photo
IrfanView
Flickr Uploadr
NeatImage
Characterizer
AutoStitch
ThePanoramaFactory
Oriens Enhancer
MS Image Resizer Powertoy
MS Photo Info
MS Color Control Panel Applet
MS Photo Story
MS SyncToy

cd/dvd ripping/burning
DVDShrink
Folder2ISO

graphics
GIMP

system
Process Explorer (SysInternals)
WinRAR - http://www.download.com/3001-2250_4-10745708.html
7-zip
cygwin
VMWare Player
MS Network Monitor
MS SteadyState
MS Command Here Powertoy
MS VirtualDesktop Manager Powertoy

network
putty
WinSCP
SmartFTP / FileZilla
TortoiseSVN
TortoiseCVS

internet
Flock
Avant Browser (IE Equivalent Browser)
Azureus
EbayTurboSeller
Pidgin
Miranda IM - http://www.miranda-im.org/
-Skype Plugin - http://addons.miranda-im.org/details.php?action=viewfile&id=3200
-Modern Contact List Plugin - http://addons.miranda-im.org/details.php?action=viewfile&id=2103
Skype - http://www.skype.com/intl/en-gb/
FireFox
-Firebug
-Gmail Space (GSpace)
-Google Browser Sync
-GreaseMonkey
--Gmail GTD Tickler
--Folders4Gmail
-GTDInbox
-IEViewLite
-LiveHTTPHeaders
-ma.gnolia
-MeeTimer
-ScribeFire
-SwitchProxy Tool
-United States English Dictionary
-Web Developer Toolbar

security
AdAware
SpyBot
AVG
ZoneAlarm

misc
TextPad
notepad++
notepad2
GoogleDesktop
wikidpad
wink

office
OpenOffice / StarOffice
getCals

development
OpenWorkbench
Oracle SQL Server
SQL Explorer
RadRails
InstantRails
Softerra LDAP Browser
StarUML
Maven
RubyInstaller - http://rubyinstaller.rubyforge.org/wiki/wiki.pl
InstantRails - http://instantrails.rubyforge.org/wiki/wiki.pl
Aptana RadRails - http://www.aptana.com/download_rails_rdt.php
Aptana Web IDE - http://www.aptana.com/download_all.php
eclipse
-Mylar/Mylyn
-OmondoUML
-Mavenide

servers
Apatar ETL
MySQL
OpenLDAP
Mingle