Alan Hargreaves' Weblog

The ramblings of an Australian SaND TSC* Principal Field Technologist

* Solaris and Network Domain Technology Support Centre - The group I work for

Tags

(update 1) acoustic bind birthday blues bugs cec cec2007 cec2008 china cmt contention cringley debugging dogs dtrace earthquake encumbered-binaries extra flash funny google guitar halloween huron install kids linux liveupgrade locking mdb music mysql newyear niagra openjava opensolaris oracle patches patents percussion performance redhat secondlife security solaris sru sun support sxcr t2 t2000 timeslider ufs upgrade virtualbox windows youtube zfs
pageicon Tuesday Jan 27, 2009

Ben Folds and You Tube Covers (some good news)

I was watching Sky News Australia a few minutes ago and they ran an interesting story.

It seems that Ben Folds tried searching for his name on You Tube. Instead finding recordings of his, he found lots of fans doing acapella covers of his work.

Now many artists would consider asserting their songwriter copyright on that material. Not Ben. He decided to make an album with the best of these people. Here's a link to the story carried last month in the Daily Princetonian.

I did find one part amusing, ...

The Nassoons caught Folds’ attention with their version of his song “Time” from his 2005 album “Songs for Silverman.” The group’s version of the tune was arranged by Nassoons music director Jonathan Schwartz ’10.

Moonlighighting Jonathan? ;-)

On a more serious note, I think it's wonderful to see artists/songwriters encouraging this kind of thing.

There's more on the project at his web site.

pageicon Monday Jan 26, 2009

OpenSolaris 2008.11 on the kids computer

OK, colour me impressed.

We got a hold of a "broken" computer today. After replacing the power supply and putting on an old 9gb disk (the previous owner wanted to keep the disk) I started wondering what I was going to put on it. So it occurred to me that I really should try to put OpenSolaris on it, as I think it should do most of what the kids want.

Downloaded the image from opensolaris.com and burned the cd image. Note to self, don't try to burn a cd image while running itunes, downloading a podcast and playing second life under XP. It's a good way to have a write underrun and burn a coaster.

Put it into the machine and booted it. Lovely, came straight up into the live cd. Hmmm, but no network. Dived into the device assistant and it noted I had a Via ethernet and needed the vfe driver, for which it kindly pointed me at homepage2.nifty.com/mrym3/taiyodo/eng/. A little bit of finger trouble later, I found the compiled version of the amd64 driver for it and installed it. Reading the README.txt is a good idea, as I left a step out and was wondering why I had no network. The trick was, ...

$ rm Makefile
$ ln -s Makefile.amd64_gcc Makefile
$ pfexec make install
$ pfexec ./adddrv.sh

That last step is vital.

Just to be safe I rebooted (it's late on the Monday of a long weekend and my brain is not working real great) and it came back with a network and everything looks honky dory.

Given this is for the kids and they spend a lot of time on You Tube and Club Penguin, I needed flash installed. I did a quick bit of googling and found something that I should have known from my day job (like I said, late n the Monday of a long weekend), in that if I went to pkg.sun.com/register and using my Sun Online credentials that I could register for the Extras repository and there was a package for flash in there.

Well I did this but stil had some trouble as it kept telling me that my certificate date was in the future. OK This one I could figure out. This did used to run windows, so the time on teh machine was an hour slow because of how windows set the clock for summer time. Easily fixed:

$ pfexec ntpdate 0.pool.ntp.org

And getting back through the screen saver that obviously came up :).

OK, now it liked the certificates and I could install flash, and successfully look at youtube after a firefox restart.

The final step was to make a new account for my 10 year old son.

Now the smoke test. I had him login. He immediately brought firefox up with no prompting from me. A few web sites later he is happily playing on Club Penguin.

We'll see how this runs for them over the next few weeks.

I'm pretty happy with how this has gone down so far.

pageicon Wednesday Jan 21, 2009

Too much kids computing

Oh dear. Jake (10) was sitting next to me playing a game on my notebook. He stood up and said to me...

B.R.B.

... and headed off to briefly return. For those not in the know - brb is Be Righ Back.

pageicon Friday Jan 09, 2009

Catching up

OK, I've been on holidays so I kind of have an excuse for not blogging this time.

Before I go on I have to acknowledge a man who quickly became a good friend in Second Life, who sadly passed on December 30. Chester Capalini was the monarch in the Tiny Empires kingdom (See Dana's blog for more on Tiny Empires) that I was playing in. On the 29th (I think) he was admitted to hospital, very ill. I performed a song and dedicated it to him while performing in Second Life (Running on Faith) and 8 hours later he was gone. Chester had a great heart and lots of people miss him dearly.

I spent New Years Eve in Rockdale with some other Second Life friends who also happen to be musicians. Shan plays bass and Byron is a drummer. We had a great jam for New Years Eve. Had a message from Shan the other day that she managed to seriously jam her fingers in a door, requiring surgery. Fortunately the nerves are still there and the doctors expect her to be able to play again in about three months.

There has to be some lighter news here somewhere :) Oh yes, while this is the last work day that constitutes my holidays, it also happens to be my 44th birthday. Jake and Lucy prepared me some breakfast (A crumpet with promite, a nectarine and a chocolate milkshake) and brought it up to me along with their present. Mum and dad will be down later in the day to take us out to lunch, so there is something else to look forward to. If I can get my act together today, I might try to head out to Brackets and Jam South tonight, and if Dexter is playing at Iguana's tomorrow that might also get a look in.

pageicon Monday Dec 22, 2008

Christmas All Year Through

Merry Christmas!

During the last month I've participated in an amazing collaboration. The result of which is the release of a song involving 22 Second Life Artists from all over the world.

Below is a URL where you can download a free MP3. The MP3 is a collaborative recording featuring 22 SL musicians all performing an original song entitled "Christmas All Year Through", having recorded their contributions remotely from all over the world. The song was written by Djai Skjellerup and the final mix was painstaking put together by Toby Lancaster. The rest of the collaborators to whom we are hugely grateful for their excellent contributions are listed beneath the song name. I'll try to get a copy uploaded to my tracks shortly.

URL for downloading Christmas All Year Through: http://www.mediafire.com/file/wttmmwunktz/SLChristmasAllYearThrough.mp3

Information Website: http://slgetittogether.weebly.com/

Project Log: http://slmc.myfastforum.org/about2137.html

Collaborators: BabbleGrabble Swindlehurst, Carah Nitely, Franziskus Paine, Jean Munro, Kaklick Martin, Kiarranne Flanagan, Krell Karu, Lonnie Nightfire, Lyn Carlberg, Mambo Welles, Mimi Carpenter, OhMy Kidd, The Professor, Rich Desoto, Saraine Sands, Slim Warrior, Tommy Cult, Tpenta Vanalten, Vicki Nilsson, Zak Claxton, Toby Lancaster and Djai Skjellerup

And as an extra bonus for you here is the last collaborative recording we did also free for you to download entitled Get It Together....

URL for downloading Get It Together: http://www.mediafire.com/file/wyoygtyizgd/GetItTogether.mp3

Information Website: http://slgetittogether.weebly.com/

Project Log: http://slmc.myfastforum.org/about810.html

Collaborators: Norris Shepherd, Zak Claxton, BabbleGrabble Swindlehurst, Rich Desoto, Jambalaya Fonck, Lyn Carlberg, Kim Seifert, Jean Munro, The Professor, Freestar Tammas, Mimi Carpenter, Toby Lancaster and Djai Skjellerup

Please keep coming back to: http://slgetittogether.weebly.com/index.html as well. It is only in it's embryonic stage at the moment but will soon be updated with biographies of all the collaborators and other information.

Thanks for your time. We'd also like to send our best wishes to those who do not observe Christmas. We hope you enjoy our efforts all the same and have a happy time over the holiday period. My thanks to all the Get It Together collaborators for your efforts with a special mention to Toby Lancaster, Bree Birke and Cher Harrington for your invaluable contributions.

pageicon Thursday Nov 20, 2008

Why I love the Second Life Musician's Community

After getting back from CEC, I checked into Second Life to start playing some of my regular gigs again. One of the first things I saw was that one of our number (Dominick Manatiso and his real life family) lost their home in a house fire. Immediately the community pulled together to stage a benefit to raise money to help them towards the holiday season (they have very young kids).

After I finished playing my gig today I directed everyone who was listening to me to head over to the benefit and give what they could, I donated the pretty much all of the tips that I made at that gig.

As of me typing this blog, the community as raised Linden$648,338, which is roughly equivalent to about US$2300. Nothing can replace what these folks have lost, but it is good to see musicians donating their time to raise money for this family heading into the holiday season!

pageicon Tuesday Nov 18, 2008

Even More DTrace Lab Answers (9 & 10)

OK, let's get the rest out.

Exercise 9

List the processes that are connecting to a specific port.

OK, we'll take that to mean we want to know the name and the process ID of connections to a particular port. This requires just a little network programming knowledge. We can see that the second argument (arg1) to connect(3SOCKET) is a sockaddr. The extra knowledge that we need is that to get a port, we need to cast it to a sockaddr_in and look at the port structure element. This bit of code expects the command line argument 1 to be a port number.

#!/usr/sbin/dtrace -s

#pragma D option quiet

syscall::connect:entry {
	this->sock = (struct sockaddr_in *)copyin(arg1, arg2);
	self->port = this->sock->sin_port;
}
syscall::connect:entry /self->port == $1/ {
	 printf("%5d %s\n", pid, execname); }

syscall::connect:entry { self->port = 0; }

Exercise 10

Write a script to show where a specific system call, rename for example, is blocking and how long it is blocked for.

This one was a bit of fun to write, especially since the output format specifier for a stack is not documented and I had to find it in dt_printf.c.

We'll use the sched provider in this. While it would be nice to use the wakeup probe, it's not fired from the thread context so we won't have the thread local variable that we need to check and use. So, we just use on-cpu, which will tell us how long we were off cpu since we were told to block. Note that this also means that we are not tracking normal scheduling where it may have been pre-empted by another thread for whatever reason. This is what we want.

#!/usr/sbin/dtrace -s

#pragma D option quiet

BEGIN { printf("Collecting...  ^C to continue\n"); }

syscall::rename:entry {self->interest = 1; }
sched:::sleep /self->interest/ { self->blocktime = timestamp; }
sched:::on-cpu /self->blocktime/ {
	this->taken = timestamp - self->blocktime; 
	@[curthread,stack()] = quantize(this->taken);
	self->blocktime = 0;
}
syscall::rename:return { self->interest = 0; }

END { printa("Thread 0x%p %k %@d\n", @); }

This leaves us with only Exercise 11 to go. I'll try to get that up tomorrow.

pageicon Saturday Nov 15, 2008

More DTrace Lab Answers

OK, I promised more answers so here we go, ... (sorry, where files have copyright notices, I have to leave them there).

Exercise 2

Restrict the iosnoop.d to trace a specific process.

This solution will allow you to either specify a pid by appending '-p {pid}' or to run a command by appending '-c "command args ..." to the command line. eg dtrace -s iosnoop.d -p 1234

/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */
/*
 * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 *
 * This D script is used as an example in the Solaris Dynamic Tracing Guide
 * wiki in the "io Provider" Chapter.
 *
 * The full text of the this chapter may be found here:
 *
 *   http://wikis.sun.com/display/DTrace/io+Provider
 *
 * On machines that have DTrace installed, this script is available as
 * iosnoop.d in /usr/demo/dtrace, a directory that contains all D scripts
 * used in the Solaris Dynamic Tracing Guide.  A table of the scripts and their
 * corresponding chapters may be found here:
 *
 *   file:///usr/demo/dtrace/index.html
 */

#pragma D option quiet

BEGIN
{
	printf("%10s %58s %2s\n", "DEVICE", "FILE", "RW");
}

io:::start
/pid == $target/
{
	printf("%10s %58s %2s\n", args[1]->dev_statname,
	    args[2]->fi_pathname, args[0]->b_flags & B_READ ? "R" : "W");
}

Exercise 3

Display the arguments for the rename(2) system call along with its return code.

This is longer than it needs to be as I like the idea of a single line of output for each time the we have a rename() system call. I save the two arguments in thread local variables (self->source and self->destination). Note that the two arguments are strings and they are in user space when this probe fires, so we use copyinstr() to both get them into kernel context and make them printable strings. Note also that we clean up after ourselves in the return probe.

#!/usr/sbin/dtrace -s

#pragma D option quiet

syscall::rename:entry {
	self->source = copyinstr(arg0);
	self->destination = copyinstr(arg1);
}
syscall::rename:return {
	printf("%s: %s -> %s returned %d\n", probefunc, self->source,
	    self->destination, arg1);
	self->source = self->destination = 0;
}

Exercise 4

Display the real and sys times (see timex(1)) for the syscall

I'm not completely happy with this as I saw some anomalous real time values running this on my notebook, but it should be about right. Note that we record a walltimestamp (seconds since epoch) and the vtimestamp (time on cpu in nanoseconds) and simply compare them in the return probe.

#!/usr/sbin/dtrace -s

#pragma D option quiet

syscall:::entry {
	self->seconds = walltimestamp;
	self->sys = vtimestamp;
}
syscall:::return /self->sys/ {
	printf("%s: %d real seconds, %dns system\n",
            probefunc,
            walltimestamp - self->seconds,
            vtimestamp - self->sys);
	self->seconds = self->sys = 0;
}

Exercise 5

Show the kernel function name that triggers the io:::start probe.

Many folks did this using stack(). There is a better way. This makes use of the fact that in the io provider, the probe* values are defined.

$ pfexec dtrace -qn 'io:::start {printf("iostart:::probefunc called from %s\n",probefunc);}'
iostart:::probefunc called from bdev_strategy
...

You could also simply use the default action without -q as that will print the probe specification each time it fires, which will include the probefunc.

Exercise 6

Show the flow of kernel functions for a write system call.

Most folks put a -F in the arguments on line 1. The clearer (and more correct) way to do this in a script is to use the pragma (highlighted).

#!/usr/sbin/dtrace -s

#pragma D option flowindent

syscall::write:entry { self->interest = 1; }
fbt::: /self->interest/ {}
syscall::write:return { self->interest = 0; }

Exercise 7

Show all lock events for mutexes that occur during two second.

The question hints that we may want to use an aggregation and summary rather than printing them as they happen.

#!/usr/sbin/dtrace -s3

#pragma D option quiet

lockstat:::adaptive* {@[probename] = count();}
tick-2s {exit(0);}

Exercise 8

Find file to which most IO is being done.

I'm going to assume that the question means real IO, not IOs that hit the cache. In which case, we can use the answer to exercise 2 as a hint. Unfortunately, pretty much all of the IO that this tracks is being done by sched to flush buffers and we don't have any idea of the filename. I'll try to come up with a better solution.

#!/usr/sbin/dtrace -s

#pragma D option quiet

BEGIN { printf("Collecting data ... ^C to finish.\n"); }
io:::start { @[args[2]->fi_pathname] = count(); }
END { trunc(@,1); printa(@); }

That's it for the moment, I'll finish them off later.

pageicon Friday Nov 14, 2008

DTrace Lab in the performance track at CEC

We have just been helping out in the DTrace lab for the performance track at CEC. On having a look at exercise 1, we suggested to the attendees that they attempt the other exercises and come back to this one. The exercise was:

Enhance /usr/demo/dtrace/iosnoop to be able to detect reads that are satisfied by the filesystem cache (UFS: pagecache).

We then went off to write our own versions of an answer to the problem.I started from scratch, and (referring back to a previous blog where I did some digging into this code), came up with the following:

#!/usr/sbin/dtrace -s

#pragma D option quiet

BEGIN { printf("Collecting ...\n"); }

syscall::read*:entry {
        self->interest = 1;
        self->file = fds[arg0].fi_name;
        self->phys = 0;
}

/* we only increment this kstat if we have to go to disk, from a filesystem */

sysinfo:::bread /self->interest/ { self->phys = 1;}

syscall::read*:return /self->interest/ {
        this->str = self->phys
            ? "Physical reads"
            : "Cache Reads";
        @[this->str, self->file] = count();
        self->interest = 0;
}

END { printa("%@6d %s %s\n", @); }

On running this you get output like:

   ...
   209 Cache Reads jaxrpc-impl.jar
   211 Cache Reads appserv-admin.jar
   311 Cache Reads xalan.jar
   354 Cache Reads ttysrch
   372 Cache Reads jaxr-impl.jar
   373 Cache Reads auxv
   500 Cache Reads appserv-assemblytool.jar
  1216 Cache Reads 
  1324 Cache Reads appserv-rt.jar
  1392 Cache Reads clone@0:ptm
 83181 Cache Reads psinfo

Of course by the time I finished writing this, pretty much everything in the only ufs filesystem on the box had been cached :)

CEC '08 Saturday/Sunday

OK, I've been slack. Not only have I not blogged since September, I've been at CEC2008 since Saturday and also haven't written anything.

The trip out

Caught a shuttle to the airport, grabbed some lunch after clearing customs and caught a United flight to Los Angeles. Unfortunately I was stuck in a window seat at the back of the aircraft for the 13 hours in the air which was less than comfortable, sigh.

As I was near the back of the aircraft I was one of the last off and at the rear of the line to clear US Immigration in Los Angeles. It was great to see the officers actually smiling and laughing with the passengers. Picked up my luggage, cleared customs and rechecked it. Walked out to terminal 7 to get the flight to Las Vegas. Cleared security ok, but unfortunately one of my colleagues was behind someone who they decided to thoroughly check the bags of, and as a result he missed the flight and had to catch another.

I arrived in Las Vegas and went looking for my checked luggage, ...

This is the first time that this has happened to me. Apparently my luggage was still in LA, and might arrive on the next flight. As it turns out it wasn't the next flight, they got it to the Casino after I was asleep about 11:30pm, so I got it the next morning.

Met up with Chris Gerhard on the bus and headed out to the Paris Casino. Quite a few of us joined up for a quiet drink in Napoleon's Piano Bar.

Sunday

Didn't wake up until around 10:30am and then spent the morning putting finishing touches on my presentation.

I noticed that the certification room was open, so I decided to give the Solaris 10 Security Administrator exam a go. This exam has a pass mark of 52% and the course notes and trial exams did not give me a lot of hope for getting through first go.

Imagine my surprise on scoring 71%! Wonderful I now posses the Admin, Nework and Security Certifications!

Attended the Welcome reception and hit the sack again. More later.

pageicon Monday Sep 01, 2008

Installing OpenSolaris 2008.05 under Virtual Box and Upgrading it

I'm in the process of preparing a Transfer of information (TOI) for Support Services in Asia Pacific on some of the basic differences and things to watch out for in providing Support for OpenSolaris (as against Support for Solaris 10 which they are already doing). One of the things that I am asking folks to do is to have already installed and upgraded from the 2008.05 distribution. I went hunting for documentation on this and the closest that I could find was an email trail, and there were corrections to that process further down the trail.

As a result I rewrote the instructions after doing a lot of running through them to make sure I got it right.

I noticed someone in #opensolaris today having trouble and they had missed out one of the listed steps which he didn't see in the release notes. As a result I was asked to blog this stuff, so here we go.

As we don't really have an easy way to do the equivalent of a jumpstart from this image in our labs, I'm recommending folks try it with Virtual Box.

There is excellent documentation on installing both Virtual Box and Open Solaris available at http://dlc.sun.com/osol/docs/content/IPS/virtualbox.html. This includes information on downloading the packages and the ISO image for OpenSolaris 2008.05. Unfortunately it does not discuss installing Virtual Box on Solaris. Fortunately, this is not too hard. Simply download the appropriate package and install it with pkgadd(1M).

Once you have the distribution installed, you will need to upgrade it to the currently available system. Doing this will step you through exactly what is required to do this using the live-upgrade replacement and taking advantage of the system using ZFS root.

General instructions on updating to the latest OpenSolaris development build from the 2008.05 ISO Image

  1. Before using the "image-update" subcommand, it is recommended that the latest available version of the IPS software be installed for your current boot environment

    $ BUILD=`uname -v | sed s/snv_//`
    $ pfexec pkg refresh
    $ pfexec pkg install SUNWipkg@0.5.11-0.$BUILD
    $ pfexec pkg install entire@0.5.11-0.$BUILD
    
    One thing that I noticed when walking through these instructions was that NWAM had not modified /etc/nsswitch to include dns on the line for hosts. If you have this problem, you can edit the file with "pfexec vi /etc/nsswitch.conf" to fix this if you are unable to resolve pkg.opensolaris.com.
  2. Before proceeding to the next step, verify your OpenSolaris build number

    $ echo $BUILD
    
  3. If you are running build 93 or greater, you can use "pfexec pkg image-update" and skip the remainder of this page. In this case we are installing from the 2008.05 image which is based on build 86.

  4. As you are using a build prior to 93, it is recommended one apply the update directly to an alternate boot environment. First, display the list of the existing BEs on the system

    $ beadm list
    BE         Active Active on Mountpoint Space
    Name       reboot      Used
    ----       ------ --------- ---------- -----
    opensolaris    no        no          - 33.92M
    opensolaris-1 yes       yes          - 17.06M
    

    Next, choose the name of a new BE - if the most recent created BE is of the form "opensolaris-N" where N is an integer, then a suitable choice for the new BE is "opensolaris-{N+1}". In the above example, the new BE would be "opensolaris-2".

    Then, execute the following sequence to create, mount, and update the new BE

    $ pfexec beadm create opensolaris-1
    $ pfexec beadm mount opensolaris-1 /mnt
    $ pfexec pkg -R /mnt image-update
    
  5. If you are running build 86 (which you will be if you used the 2008.05 image), one additional work-around is required.

    ********** IMPORTANT **********

    Due to changes in the GRUB boot system, one must manually update the Master Boot Record (MBR) to include these latest changes. Failure to follow these instructions when updating from 2008.05 (build 86) to a later build will result in a system that does not boot by default and instead the original boot environment must be manually selected.

    Update the GRUB configuration on your ZFS boot device(s) using

    $ pfexec /mnt/boot/solaris/bin/update_grub -R /mnt
    
  6. Unmount the boot environment you just updated and activate it.

    $ pfexec beadm unmount opensolaris-1
    $ pfexec beadm activate opensolaris-1
    

    When you're ready to boot into the updated boot environment, you can reboot(1M) or init(1M) as usual.

Technorati Tags:

pageicon Saturday Aug 16, 2008

Second Life Blues Artist signed to recording contract

I have to say that this is incredibly cool. I've been listening to Von Johin for some time in Second Life and have the utmost respect for this awesome bluesman. I just heard yesterday that as a result of his following in Second Life and his performances therein that he has just been signed to a global recording contract. He just was written up in Rolling Stone for this deal.

Go Von, it couldn't happen to a more deserving guy.

pageicon Sunday Aug 03, 2008

Jamm for Genes in Second life - how we went - WOW

The event ended up running for about 27 hours instead of the original 24 and I am humbled to have been a part of this.

At the time of writing this blog entry we have raised a bit over 600,000 Linden dollars, when this is with drawn it will come to over US$2000, and a bit more than that in Australian Dollars.

A huge thank you not only to the artists who donated their time and brought their fan bases with them, but to everyone who helped out and especially those who showed up, listened and contributed.

I've put some photos up on Flickr if anyone wants to have a look.

What can you say, but "Wow, well done everyone".

This money will be going to Jamm for Genes in support of The Childrens Medical Research Institute, an independent organisation committed to unlocking the mysteries of disease whose scientists investigate conditions such as birth defects, cancer, and epilepsy.

pageicon Saturday Aug 02, 2008

Jammin for Genes

At 4pm US/Pacific (now), we are kicking off a Jammin for Genes event in support of Jeans for Genes, and I am honoured to be a part of it.

From the Jammin website, ...

Jamm for Genes is a live music event that takes place on the weekend of Jeans for Genes Day (the first weekend in August). In 2004 Jamm for Genes launched a very successful maiden voyage that saw bands Thirsty Merc, Machine Gun Fellatio, Taxiride, Gus & Frank and Dave McCormack donating their time and skills to perform at two separate locations. It was fun, it was loud and it was raising funds for the Jeans for Genes campaign. Cut to 2006 it was no wonder that over 70 live music venues and 160 bands put their hands up to get involved when the event was run for the second time nationwide. 2007 saw beyond the support of the previous years with ambassadors Adam Harvey, Beccy Cole, Jade McCrae, Jon Stevens, The McClymonts, Glenn Shorrock and Courtney Act all jumping on board and doing there best to help out.

How to hear it

Got Second Life? Go to Sailors Cove Theatre http://slurl.com/secondlife/Sailors%20Cove/243/140/24

To get Second Life go to http://www.secondlife.com

Just wanna listen and donate? Go to www.jammforgenes.org.au to donate and listen to the stream on one of the following URLs (depending on your preferred player)

So who is playing

Note that these times are US/Pacific, which is what Second Life time is based on. It's 10am Saturday morning here on the east coast of Australia.

Aug 1
4PM warmup  By Jonas Lunasea
5PM Tpenta Vanalten
6PM Wread Writer
7PM Dexter Ihnen
8PM Artel Brando
9PM Ande Foggerty
10PM Pato Milo
11PM Army of Ignorance
Aug 2
12AM Jaggpro Mcann
1AM OhmyKidd
2AM Lacey Lohner
3AM Jackdog Snook
4AM Paisley Beebe/Freddy Halderman
5AM Phoe Nix
6AM Midnight in Canberra
7AM Jonas Lunasea
8AM Winston Akland
9AM Robie Bloch
10AM Luigi DiPrima
11AM Mason Thorne
12PM Raspbury Rearwin
1PM Noma Falta
2PM Freetar Tammas
3PM Cylindrian Rutabaga
4PM Ohmy  Kidd / fireworks spectacular

Come along, enjoy the music and if you can, give for a worthy charity.

pageicon Wednesday Jul 23, 2008

What can you say?

I have been really slacking off with my blogging and really need to get back into it. What better way than with something amusing that happened today to a colleague.

He picked up an task today where the customer had the following issue and question. Unfortunately I don't recall the exact issue and patch number but they are perepheral to the humour.

We've noticed that this problem occurs on a system with patch XXXXXX-02, but not on those with XXXXXX-04. Can you tell us if there is a patch or workaround to the problem?

How do you answer a question like that? An overseas colleague came up with the suggestion of "Sir, you really need a holiday".

My suggestion was more prosaic, that he simply look in the patch README for the bugs that were fixed between the -02 and -04 revision and reply "Yes, that was bug YYYYYYY which was fixed in XXXXXX-04", and try to keep a straight face.

Of course the really worrying thing about this whole incident, is that the current revision of the patch in question was -57!