Thursday, March 20, 2008

Fixing the Teac HDB820 C.100 Error

The other day I mentioned I was feeling slightly hot and bothered. Well, so was my Teac HDB820.

I woke up this morning and I was greeted by the dreaded C.100 error. I tried turning it on and off, no go. I´ve had it for about 2 years so warranty was no option. On cracking it open one of the 1000uF 16V capacitors had a slight eruption. There are 3 in total and with the weather we´ve been having; i´m not suprised it gave up.

After I got home from work I ducked into DSE and grabbed 3 of these chunky bastards - 1000 uF 35 WV caps. I then whipped out the soldering iron (i knew doing year 11 electronics would pay off one day) and 10 minutes later I was back in sweet sweet HD heaven.

Saturday, March 15, 2008

SVN hooks on Windows with Ruby

I'd been meaning to write a pre-commit hook to catch empty log messages for a while but hadn't got around to it for one reason or another. I had a spare 5 minutes so I got stuck in.

The SVN book mentions that on Windows the hook files extension basically has to be .exe, .com or .bat. Even though .rb is executable on my SVN server it was not being called. So, instead I just called the ruby script from the bat file as such:

pre-commit.bat
1 SET DIR=%1/hooks
2 set REPOS="%1"
3 set TXN="%2"
4
5 c:\ruby\bin\ruby.exe d:\svn\hooks\pre-commit.rb %REPOS% %TXN% %DIR%

It also mentions that for security reasons, the repository executes hook scripts with an empty environment—that is, no environment variables are set at all, not even $PATH or %PATH%. Because of this, it is necessary to specify absolute paths.

Setting DIR above is a bit of a trick for debugging purposes so you can write a log file into the hooks directory to check things out. The ruby script is as follows:

pre-commit.rb
 1 REPOS, TXN, DIR = ARGV[0], ARGV[1], ARGV[2]
 2 SVN_LOOK = "C:/Program Files/Subversion/bin/svnlook.exe"
 3
 4 log_msg = %x["#{SVN_LOOK}" log -t #{TXN} #{REPOS}].chomp.strip
 5
 6 if (log_msg.nil? || log_msg.size < 5)
 7   err = <<-EOE
 8     This commit has failed due to the absence of a meaningful log message.
 9     Please provide a message describing why you changed what you did and
10     then try committing again. Ta -- Dan
11   EOE
12
13   STDERR.puts err
14   exit(1)
15 end

Yeah, I'm a bit of a bastard setting the minimum length of the log message to 5 chars. The only tricky bit of the entire process was realizing that I needed to chomp a new line off the log message. That's where using DIR and writing to a log file helped out.

Tally, ho!

Thursday, March 13, 2008

Sun / Microsoft developer marketing

I just got back from the Microsoft 'Visual Studio 2008' launch event at the Hilton. I can't put my finger on it but a few things just really pissed me off about the whole thing. Maybe it's the hot weather we've been experiencing but I'm fired up.

The ASP .NET session wasn't too bad. Kudos for the Javascript debugging / code completion, but then again firebug has been around for how long? To the people in the audience that debug their Javascript in IE using alerts; you deserve the agony :)

The next session was on Team Foundation Server , in particular the source control and continuous integration features. The presenter was carrying on like Microsoft invented these things. Personally, I found it rather condescending but on looking around everyone was lapping it up. I suppose if all you know is VSS then these things might impress you. These are not bells and whistles! These are essential development practices that you already should have been using. There are already so many existing tools available, I get along just fine with cruise control and svn. I didn't see anything innovative in TFFS at all.

I cast my mind back to the Sun Java developer day I attended last year; oh so many contrasts. Firstly, the Sun event was free, the Microsoft one wasn't (but thanks for sending me work) :). The Microsoft one was full of buzzwords, marketing and testimonials, where the sun one was more developer-centric, presenting some really cool shit, like launching project matisse.

It's a real shame the Sun event was cancelled in Adelaide this year. I dearly hope this isn't indicative of a shift

Unfortunately the biggest highlight of my day wasn't attending the event; it was my taxi almost running over Ahn Do on the corner of Wakefield and Pulteney street.