Content here is by:
Michael Still
mikal@stillhq.com

All my Open Source projects
Extracted view of CVS
Home
Site map

See recent comments. RSS feed of all comments.

ImageMagick book

MythTV book








Tue, 30 Dec 2003



31 December 2003

    Apt (debian) cheat sheet

    So here's the same thing I did for RPM, but for the Debian apt stuff:

      apt-get
         -s        simulate
         install   install the named package
         (apt.conf defines commonly used options)
         
      apt-setup    sets up /etc/apt/sources.list
    
      dselect      select packages to install
      apt-get dselect-upgrade
                   actually install those packages
    
      dpkg-reconfigure
         --all     make sure all packages have been configured
    
      dpkg
         -s        get status of a package
         -L        list files from a package
         -S        who owns this file?
         -i        install this .deb file
    


posted at: 04:00 | path: /diary | permanent link to this entry


Mon, 29 Dec 2003



30 December 2003

    Hmmmmmmmmmmm

    One of those days when it's hard to motivate myself. Three coffees for breakfast haven't helped. I guess I'll just plod along. It didn't stop me from getting things done though -- I finished my review of Just for fun for instance. You'll have to wait for the next AUUGN to see what I think though.

    RPM cheat sheet:

    Cause I am bored...

      -i          install
      -U          upgrade (or install it not currently installed)
      -e          erase
      -v          verbose
      -h          display progress hash marks
      -V          verify an installed package
      -q          query for installed packages matching the specified search term
         -i          display lots of information about an installed package
         -p          display lots of information about a raw RPM file
         -l          list files owned by the packed
            -c          configuration files
            -d          documentation files
         -a          list all installed packages
         -f          who owns this file 
    
      --force     force an installation
      --nodeps    don't care about dependancies when installing
      --checksig  check package integrity (uses GPG, you might need to import a public key)
    


posted at: 04:00 | path: /diary | permanent link to this entry


Sat, 27 Dec 2003



28 December 2003

    Nice vs renice

    So, I'm paging through a bunch of LPI study material, and it strikes me that the nice and renice man pages disagree on what the meaning of process priorities is. This could mean that the commands do different things with the number, or that the documentation needs love. Anyone out there got a suggestion?

    I've put it on my todo list to look at the code, but that will take a while to get around to. I don't want to get to distracted.

posted at: 04:00 | path: /diary | permanent link to this entry


Fri, 26 Dec 2003



27 December 2003

    So, that was Christmas

    Pretty good really, the kids certainly had a good time.

    ImageMagick vs GraphicsMagick

    Hmmmm, I hadn't noticed the fork take place. It seems to have been mostly amicable, although not all of it.

posted at: 04:00 | path: /diary | permanent link to this entry


Mon, 22 Dec 2003



23 December 2003

    Bad compiler error messages suck

    This one is from visual studio:
    C:\home\mikal\webservice-statepersistance-xmlmagic\wwwroot\Service1.asmx.cs(329): ) expected
    
    The problem?
    [WebMethod]
    public string RecordSave(string	instate)
    {
    	// TODO
    }
    
    Should have read:
    [WebMethod]
    public string RecordSave(string	instate)
    {
    	// TODO
    	return "";
    }
    
    A more helpful error message would have saved me some significant time looking for orphan brackets.

posted at: 04:00 | path: /diary | permanent link to this entry


Sun, 21 Dec 2003



18 December 2003

    New work machine

    An interesting little box. For a start, it has two serial discs, which is the first time I had had to deal with SATA before. Also, the ethernet on the motherboard was gigabit.

    Booting with an unsupported network card on the Debian install: The secret here is to build a module, hit the virtual console of Alt-F2 during the install, mount the floppy disc, and then insmod the module yourself. You are of course going to be building a custom kernel once the box is built anyways.

    Interrupt problems with SATA: I got lots of the following with Debian stable (2.4.18):
    Dec 17 10:01:06 homebrew kernel: ide2: unexpected interrupt, status=0xd0, count=634
    Dec 17 10:01:08 homebrew kernel: ide2: unexpected interrupt, status=0xd0, count=675
    Dec 17 10:01:12 homebrew kernel: ide2: unexpected interrupt, status=0xd0, count=707
    Dec 17 10:01:18 homebrew kernel: ide3: unexpected interrupt, status=0xd0, count=759
    Dec 17 10:01:23 homebrew kernel: ide2: unexpected interrupt, status=0xd0, count=778
    Dec 16 23:01:28 homebrew kernel: ide3: unexpected interrupt, status=0xd0, count=800
    Dec 16 23:01:32 homebrew kernel: ide2: unexpected interrupt, status=0xd0, count=827
    Dec 16 23:01:38 homebrew kernel: ide3: unexpected interrupt, status=0xd0, count=909
    
    It turns out that was fixed by building the latest 2.4 kernel (2.4.23).

posted at: 04:00 | path: /diary | permanent link to this entry


19 December 2003

    CLUG Christmas BBQ

    Has been moved, due to an outbreak of childhood chicken pox at my house.

posted at: 04:00 | path: /diary | permanent link to this entry


22 December 2003

    Distracted

    I've been distracted by Andrew's chicken pox (which is well and truely on the mend now), so I haven't been doing much else in the last week or so now. It was a little exciting for a bit there -- he even had a chicken pock on his eye. Apparently that could have been a blindness thing, but he got lucky and it missed by a couple of millimeters. Perhaps $DEITY is looking out for him...

    Now we just have to wait and see if Matthew gets the chicken pox. It would be lovely (sarcasm), we've already cancelled most of Christmas anyways.

    Another article about ImageMagick

    So, I'm thinking about another article about ImageMagick, to answer some of the questions raised by people who read the first article. Here's your big chance -- what would you like to know about ImageMagick?

posted at: 04:00 | path: /diary | permanent link to this entry


Mon, 15 Dec 2003



16 December 2003

posted at: 04:00 | path: /diary | permanent link to this entry


Wed, 10 Dec 2003



11 December 2003

    Playing with lirc

    Hmmmm. Very distracting. Nearly working though.

posted at: 04:00 | path: /diary | permanent link to this entry


Mon, 08 Dec 2003



09 December 2003

    CVS for Windows developers

    So, I've been looking into CVS options for Windows developers, and I am thinking that CVS over SSH with public keys is pretty sweet. I think that Tortoise CVS is probably the nicest CVS implementation for Windows I have seen so far, but it doesn't provide the IDE integration which the Windows people are used to.

    On the IDE side of things, source control in Visual Studio goes through this particularly broken API called SCC, which isn't publically documented. This is why the Igloo source code isn't available. SCC also only supports one source control system at a time -- there is no way to say that today you're using Visual Source Safe, and tomorrow CVS.

    Problems problems problems.

posted at: 04:00 | path: /diary | permanent link to this entry


Sun, 07 Dec 2003



Read about my Christmas lights

posted at: 04:00 | path: /site | permanent link to this entry


Mon, 01 Dec 2003



02 December 2003

posted at: 04:00 | path: /diary | permanent link to this entry


Mon, 24 Nov 2003



25 November 2003

    Final year project talks
    Didn't get a good nights sleep last night because of the boys, so ended up at the University of Canberra final year project presentations. The most interesting was the one which extended on the final year project I was involved in last year, but there was also some work on mobile phone transmission simulation, a playstation 2 game (using the amateur Linux developer's kit), and a remote robot control system.

    LCA2004
    Thinking about the conference paper I have to give.

    PDF conferences
    Trying to decide if I should apply to present something at a local PDF conference next year.

posted at: 04:00 | path: /diary | permanent link to this entry


Sun, 23 Nov 2003



24 November 2003

    Another weekend
    Installed the oven and cooktop. Now I just need to install and duct the rangehood...

posted at: 04:00 | path: /diary | permanent link to this entry


Tue, 18 Nov 2003



The making of Twinkle Tux

    This page documents how I built a penguin out of fairy lights...

    Tux is the official mascot of the Linux operating system, to which I have made various contributions over the years. Tux was originally drawn by Larry Ewing, and looks something like:



    The goal was to turn this into something which worked well with fairy lights poked through holes in a piece of MDF. I guess I was thinking of pointillism when I originally came up with the idea.

    It seemed like a good idea, but the bit which worried me the most was to ensure that the image was clearly a penguin at the end of drilling several hundred holes in a big bit of dead tree. Being a software engineer, the obvious solution was to whip up something which could simulate Twinkle Tux.

    Taking the image that I had in mind, I first needed to force it into the colors which were available to me from fairy lights (red, green, blue, and yellow in the set I wanted to use). I therefore wrote a program which generated a false color Tux, in my restricted palette. This is the code I came up with, if you care about such things. You should note that it's a quick and dirty, not an example of good coding style.

    My false color Tux looked like:



    You can see that he's clearly still a penguin. Next, this image is too big, so I used a command line tool called convert, from the ImageMagick suite, to shrink it. If you're interested in ImageMagick, you should checkout my IBM DeveloperWorks article on the issue.

    Here's the tiny penguin I ended up with:



    Now, this is not so clearly a penguin, so I used the GIMP to touch up the image. Here's the small version, and a bigger one so you can see what I was doing...

     


    You can see that this is where the border got added as well. Now, this doesn't look all that impressive, but it looks better with fairy lights because they're not square. The final coding step was to decide if this was going to be clearly a penguin when do with fairy lights. I therefore whipped up a fairy light simulator, complete with alpha blending. You can get the code here, with the same proviso as above, and noting that this code also needs my libmplot graphics library.

    Here's the simulation:



    We should note that it's mildly deceptive because it assumes that all colors of fairy lights are equally bright. This simulation also looks better if you step back from your monitor, which is a lot like standing at the far end of my driveway.

    So, how many lights am I going to need? The simulation assures me:

    Number of lights used: 707 (146 red, 178 green, 184 blue, 199 yellow)
    


    That's a lot of lights. 240 colored lights (60 of each color) costs $14.95 at Woolworths, but I need the right number of each color. In total, I need to buy 4 sets of colored outdoor fairy lights.

    Finally, I needed a computer generated image to serve as the cutting pattern. A simple hack to the lights code gave me:



    Now I could move onto the dead tree part of the process. To get the cutting pattern onto the wood, I used a mate's video projector to project the picture above onto a big bit of paper taped to an old door in my garage.





    I then laid this over a pre painted bit of MDF, and could start cutting. It became pretty clear that I needed to drill small pilot holes with the bit of paper -- the larger holes destroyed the paper too quickly. After a couple of hours of drilling, and several worn out drill bits, I ended up with the finished wooden sheet.









    You can see in the next pictures that I had some problems with the MDF flaking away on the back side of the wood. This caused some concern for a while, but it doesn't seem to have been a major issue. Next time I wont use MDF.







    Next I inserted the fairy lights, minus their globes. The lights are siliconed into place, which should hold them in nicely.

    Next I inserted the globes, using the simulation above as a reference to what color to use where.

    A last, I could actually see what the finished product would look like:





    That picture was taken with Twinkle Tux on my workbench in the garage, with one of my sister in laws holding it up. Now to hang Twinkle Tux.

    I ended up bolting Twinkle Tux to the front of the garage, which gives us the following pictures of it at it's final resting place.











posted at: 05:00 | path: /christmas/twinkletux | permanent link to this entry


The making of Twinkle Tux

    As a hobbyist Linux kernel hacker, it struck me as obvious that the first thing I should make is a Tux made out of fairy lights. Tux is the official Linux mascot.

    There's a page documenting how I made Twinkle Tux if you're interested.

posted at: 05:00 | path: /christmas | permanent link to this entry


19 November 2003

    stillhq.com down
    My ISP, Goldweb has suffered some form of catastrophic failure, and is offline (they have been for nearly 24 hours at this point). I'll wait to see what the damage is.

    Update: they're back, and they even managed to not lose any data. Well done guys. It turned out to be a disc failure.

    Twinkle Tux
    So, I've been playing with something I call twinkle tux. I don't want to say any more just yet.

posted at: 04:00 | path: /diary | permanent link to this entry


Mon, 17 Nov 2003



Asia BSDCon 2004 (March 12-15 2004, Taipei, Taiwan)

    Language: English
    Focus: BSD Unices
    Willing to pay speakers costs: Unknown
    Submissions due: November 30, 2003
    Speakers informed: January 31, 2004
    
    URL: http://www.asiabsdcon.org/cfp.shtml
    


posted at: 04:00 | path: /cfp | permanent link to this entry


The Fifth LCI International Conference on Linux Clusters: The HPC Revolution 2004 (May 18-20 2004, Austin, Texas, USA)

posted at: 04:00 | path: /cfp | permanent link to this entry


18th Large Installation System Administration Conference (November 14–19 2004, Atlanta, Georgia, USA)

posted at: 04:00 | path: /cfp | permanent link to this entry


13th USENIX Security Symposium (August 9–13 2004, San Diego, California, USA)

posted at: 04:00 | path: /cfp | permanent link to this entry


Samba Experience (April 5th - 7th 2004, Göttingen, Germany)

    Language: English (but other languages possible)
    Focus: Samba
    Willing to pay speakers costs: Unknown
    Submissions due: February 14, 2004
    Speakers informed: March 1, 2004
    
    URL: http://sambaxp.org/call_for_papers/
    


posted at: 04:00 | path: /cfp | permanent link to this entry


2004 USENIX Annual Technical Conference: Free and Open Source Software (June 30–July 2 2004, Boston, Massachusetts, USA)

posted at: 04:00 | path: /cfp | permanent link to this entry


PyCon 2004 (March 24-26 2004, Washington DC, USA)

posted at: 04:00 | path: /cfp | permanent link to this entry


18 November 2003

    kfree()ing a vmalloc()ed buffer
    Crashes. Don't do it. Use vfree().

posted at: 04:00 | path: /diary | permanent link to this entry


2004 USENIX Annual Technical Conference (June 27–July 2 2004, Boston, Massachusetts, USA)

posted at: 04:00 | path: /cfp | permanent link to this entry


Sun, 16 Nov 2003



17 November 2003

    Back at work
    After my three weeks leave. Doh! To make it worse, the hard disc in my Toshiba blew up just before I left (it was an IBM disk, say no more), so now I need to spend most of today rebuilding my world.

posted at: 04:00 | path: /diary | permanent link to this entry


Thu, 13 Nov 2003



14 November 2003

    Cooking salmon
    Last night I cooked with fresh salmon for the first time. I did it on the barbeque. The basic method was:
    • Preheat the barbie on low
    • Lightly butter the side of the salmon you're going to cook first
    • Chuck the salmon steaks onto the grill part of the barbie
    • Wait three minutes
    • Rotate 90 degrees
    • Wait two minutes
    • Lightly butter the side that is facing you
    • Flip
    • Wait two minutes
    • Eat


    Here's a sample of how mine turned out:



    Syncing FAT filesystems of MMC cards via USB
    Why does it take so long? A 64 MB change took in the order of minutes to respond to a sync command.

    Siemens SL42 MP3 playlist format
    Creating the playlists for the inbuilt MP3 player for my Siemens SL42 is painful at best when you try to use the phone keypad. Basically, there's no way to say "randomly play everything" unless you use a playlist, and to create a playlist with the phone you need to select each song individually. Anyways, so I mounted the MMC on my trusty laptop, and it turns out the playlist format is trivial. Here's what I did:

    mount /mnt/mmc
    cd /mnt/mmc/mp3
    rm aaa.mpl
    for item in `ls *.mp3`
    do
      echo $item >> aaa.mpl
    done
    unix2dos aaa.mpl
    


    In other words, all you need is a DOS line ending file which lists the MP3 files to play.

    AUUG National Committee meeting
    In Sydney...

posted at: 04:00 | path: /diary | permanent link to this entry


Tue, 11 Nov 2003



12 November 2003

posted at: 04:00 | path: /diary | permanent link to this entry


Thu, 06 Nov 2003



07 November 2003

    On holidays... Installed powerpoints, a shade sail, roof fans, and the like. No code written. Please leave a message after the tone.

posted at: 04:00 | path: /diary | permanent link to this entry


Wed, 29 Oct 2003



29 October 2003

    PhD
    Well, I got the application in, after having taken into account some comments from Eric. I guess I now wait. Getting the actual bit of paper in took all afternoon...

posted at: 04:00 | path: /diary | permanent link to this entry


30 October 2003

    Matthew
    Had a shocker last night. He was running a quite impressive fever (or so I thought) of 38.9 degrees celcius, under the arm, after Panadol which normally takes the temperature down by about a degree. It wasn't dangerous, just warm.

    Understandibly, he wasn't very happy, and screamed most of the night. By morning he seems to have broken the fever though. This is a good thing, because Catherine and I must have got about four hours of sleep each.

    Reading
    ...Because it's better than marking...

posted at: 04:00 | path: /diary | permanent link to this entry


Tue, 28 Oct 2003



28 October 2003

    Powerpoints
    I added six to the house today. That took all afternoon to cable, and a couple of hours in the evening with my sparky mate to connect up... It rained all morning, and the kids needed to go to the doctor, so I didn't get much else done.

    PhD
    Eric, my prospective PhD supervisor, came back with some comments on my PhD application, which I need to spend some time digesting.

posted at: 04:00 | path: /diary | permanent link to this entry


Mon, 27 Oct 2003



27 October 2003

    Busy, busy, busy
    Well, I've started my three weeks leave, and I seem to be busier than I was before... I must admit that there's less work to be doing though.

    PhD application
    Well, the draft is finalized, and off with the prospective supervisor for review. This is a good thing because the actual finished applications are due in at ANU at the end of the week.

    This also leaves me some more time to focus on the exploratory coding I need to do.

    COMP 2110 (Software Design)
    We had a tutors meeting, and now I need to mark a huge mound of final assignments. There is a moderation meeting on Friday, so I need to put some effort into this sooner rather than later...

    Handyman stuff
    Did some basic handyman stuff as well, like fixing a gate, and getting some electrical stuff done with a Friend.

    Kids
    I even found some time to play with the kids.

posted at: 04:00 | path: /diary | permanent link to this entry


Thu, 23 Oct 2003



24 October 2003

    ODMA
    TRIM implements the ODMA 1.0 specification. This works with a bunch of authoring applications, and has for many years. Yesterday, we got a call from someone implementing ODMA in their authoring application and having troubles with TRIM. It turns out that they were lucky enough to have stumbled on a behaviour which is allowed by the ODMA specification, but not done by any one else, and specifically stopped by TRIM because it makes little sense.

    The behaviour? They create a blank document, and then ask for it to be opened. TRIM doesn't like doing this, because we don't know enough about the file at the time of the newdoc() call to be able to give it a meaningful filename (for instance the extension which the user expected for the document).

    Luckily the authoring app guys are reasonable, and we'll be able to sort it out...

    For the benefit of Google users who end up here (and me for when I forget), here are the ODMA specifications which are relevant:

    Specification version
    Original MS Word
    PostScript
    PDF
    1.0
    odma10.doc
    odma10.ps odma10.pdf
    1.5
    odma15.doc odma15.ps odma15.pdf
    2.0
    odma20.doc odma20.ps odma20.pdf


posted at: 07:00 | path: /diary | permanent link to this entry


23 October 2003

    CLUG
    Well, CLUG last night seemed to have a small turnout, which was a little sad. Then again, I can understand why Tridge was the only Ozlabs guy who turned up.

    Darren gave an interesting talk about the raidtools which implement software RAID. I donated a box with a couple of hard discs and a couple of floppy drives for the demo. Anyone feel the need to a mirror across two floppies?

    On the way home, I had to change my route because of a certain US President's motorcade.

posted at: 07:00 | path: /diary | permanent link to this entry


Tue, 21 Oct 2003



22 October 2003

    Rest in peace, Will Johnathon Russell


    Notice from The Canberra Times:
    WILL JOHNATHON RUSSELL Stillborn October 18, 2003 So dearly wanted - 
    so sadly missed We will remember you always May you always watch over 
    us and know how much you are loved Mum and Dad love you Alli and Paul 
    would like to invite family and friends to attend a service for their 
    son Will to be held in the Chapel of the Norwood Park Crematorium, 
    Sandford St, Mitchell tomorrow WEDNESDAY October 22, 2003 commencing 
    at 10am. Lots of bright colourful flowers most welcome WILLIAM COLE 
    FUNERALS Canberra 6253 3655
    


    My soul finds rest in God alone;
       My salvation comes from him.
    He alone is my rock and my salvation;
       he is my fortress, I will never be shaken
    ...
    My salvation and my honor depend on God
       he is my fortress, I will not be shaken
    Trust in him at all times, O people;
       pour out your hearts to him,
       for God is our refuge.


    Psalm 62:1-2, 7-8

    Will Johnathon Russell, son of Rusty and Alli -- died 18 October 2003. You're with God now.

    What can I say? Nothing will ever give me the right to say that I understand what Rusty and Alli are feeling. Whilst Catherine and I lost our first, it was very early on in the pregancy, when we hadn't fully come to terms with being parents yet, and when these things are much more common (and more expected).

    I understand fear of losing someone, having nearly lost Catherine and Matthew at the same time at the start of this year, but I've never lost someone so very close to me.

    It really makes me appreciate Andrew and Matthew. I just pray that I'll be able to see how to help Rusty and Alli if they need that help.

posted at: 07:00 | path: /diary | permanent link to this entry


Tue, 14 Oct 2003