Thu, 30 Dec 2004

I'm just finishing up integrating and testing the bulk transfer decode patch from Hin-Tak Leung, which will mean that the next version of usblogdump will include decoding for interrupt and bulk transfers, which will be nice. That means that it has all the decoding smarts it needs for the USB stepper motor I am playing with at the moment. I'll give more details on that later, as having a decoded dump is just a step along the way to understanding how the device works.

I've also pulled the regression test suite out of the main download, which will make that a lot smaller. I've also started compressing the regression output, which is something that I should have been doing all along.

If anyone has usblog files their having trouble decoding, now is the time to let me know while I'm on a roll...

When I restart Mozilla Firefox, it loads all the tabs I had loaded before (did you know you can set your homepage to a set of tabs, not just one page? How do I get Mozilla to auto-magically remember which tabs I had opened last time?). For the G'Day world pod-cast, I get:

Bandwidth Limit Exceeded

The server is temporarily unable to service your request due to the site owner reaching his/her bandwidth limit. Please try again later.

So I guess the way to use up all your bandwidth is to start a pod-cast. Heh.

This is the question for the day, for which he is having a urine test and a blood test. The symptoms seem to point in that direction -- he's happy in the mornings when he wakes up, but some afternoon naps (perhaps half to a third of them?) he wakes us screaming irrationally, and wont settle down until we given him some sugar of some form, for example a lolly, candy, or fruit juice. I guess we'll find out the answer soon enough...

Well, I've spent some of the evening mostly ignoring Happy Gilmore and hacking away on usblogdump. The motivation? Well, I needed bulk and interrupt transfers to work better to help me analyze a USB stepper motor I'm playing with at the moment. Anyways, I've got that working but it has introduced some fairly significant regressions in the rest of the parsing test suite. I'll look into those hopefully tomorrow, and then have something more worth talking about here.

Fri, 24 Dec 2004

-C (compress data stream) and -l (limit bandwidth used) conflict with each other? How? Well, I was copying a very compressible file, in fact, I was transferring 200 k-bytes per second on a link capable of 25 k-bytes per second when I noticed this. scp is using the actual delta on disc as the metric for bandwidth used, so when I ask for it to limit the bandwidth, it gets real confused by the 200 k-byte speed, and ends up tapering to a tenth of the request bandwidth.

So, with rather good timing, my RSI has started acting up again. I suspect it has something to do with spending two solid days typing XML comments into C# code -- those angle brackets are a killer. Anyways, luckily it's the holiday season, so I don't have to be back in the office until Thursday next week. That will give my anti-inflamatories (something called Mobic) time to kick in. They've previously been very good, so I have hopes for them this time too.

I spent the morning hacking on XML documentation comments for the web service I have been working on for the last six months. The goal is to have user documentation for the API auto-magically generated from XML comments in the code. Remembering that this is all being done with Visual Studio 2003, I must say that I am finding the XML documentation comment support a little half baked. There's no support for C++. You can't get to the XML comments content via reflection. There doesn't seem to be a way to add a seealso to a different method in a class (just members as best as I can tell from the documentation).

If people are concerned about the amount of bandwidth that is being used by RSS feeds being downloaded every hour or whatever to check for changes, then why doesn't the next version of the RSS specification just implement a "ask me again in x minutes" field? I've read the RSS spec a while ago, and I don't remember anything like that being there, although I might just be senile (I haven't checked that it really isn't there before writing this).

It just strikes me as silly that my aggregator pulls updates for every feed every 90 minutes (that's what I configured it to) when some feeds clearly change every 10 minutes, all day (think news sites), some feeds update a lot during business hours (think of those corporate bloggers out there -- even I don't tend to write much when I'm asleep), and other sites only update every couple of days. Surely the only person who knows how often they're likely to update their blog is the person writing it? Also, it would mean that people who are concerned about bandwidth usage, but do update often (like Robert Scoble) could just implement some form of tapering by telling people to not download a new copy of the XML file every 12 nanoseconds.

Then we could wait a couple of years. And then punish the aggregators who don't respect our wishes like Slashdot does now.

I've been finding recently that I've been getting a bit bored with life recently. Only some bits of it though, like my daily commute. This maps nicely with my new obsession, which is collecting GPS data for Canberra's roads. I've therefore been doing funny things like driving home in different ways, and driving down every street in my suburb.

I have data for about half of the streets in my neighborhood now, and lots of the linking roads which join the various areas of Canberra together. Now I just need to work out what to do with this data. So far I graph it, but that's not very exciting. Any suggestions? Ultimately I'll make it available online for free, although I want more data before I make that step.

Speaking of which -- do you have data you would like to donate? I'll anonymize the data for you, so that your wife doesn't know why you were driving around Turner at 4am, and at what speed you specifically were travelling (although that is easy to infer, and my graphing app uses it at the moment to help you draw congestion conclusions), but no one will know it was you, so that's ok. I currently have a parser for NMEA commands, but I can work out other formats if you do want to donate.

In the vein of the self-referential, and self-congratulatory tone that some bloggers seem to feel is the mark of status for us online diarizers, I apologize to Steven for misinterpreting the gist of his post. By the way, is anyone else rubbed the wrong way by the implication that having an online diary will somehow solve world hunger?

Sure, it's nice to know what people are doing. Sure, it's kinda cool. However, a lot of people seem to spend a lot of time just discussing the discussion with each other. Lots of people have had online diaries going back a long way after all, well before blogging was an interesting term. This diary has posts going back to 2000 after all.

The most useful thing I've found with blogging? It creates a huge database on Google available content (it's the technical stuff I care about there, but I imagine there are lots of other forms of content as well out there). Now, that's something which makes the world a better place. That's why I keep an online diary by the way -- so I can find things I learnt two years ago again when I need them.

Just heard that through my open front door. It seems that some people take a little while to work out what Christmas lights are all about. I didn't have enough time / inspiration to decide what to make this year, so I'm just running with last years. I'm thinking of perhaps something USB controlled next year, as I had difficulties working out how to solve some control problems until I happened upon a copy of the excellent USB Complete. If you care about how USB works (including high speed 2.0) I recommend it.

Perhaps something a little more vendor neutral is in order next year? Or perhaps not. It depends on if Microsoft has stomped on Mono by then...

Sun, 19 Dec 2004

Steve comments on Brick. He suggests that while the song is depressing, perhaps I'm over analyzing the words. Perhaps it's a personality flaw of mine or something, but I find it very hard tog get past the lyrics to songs. I don't spend hours googling to determine what each word means, but I am certainly listening to the words. To me I guess the lyrics are a specialized form of poetry.

There are certainly bands I don't like because the lyrics are boring. Even worse are the lyrics which I would describe as whiny.

Sat, 18 Dec 2004

Once again I had a need to compile SnoopyPro, and once again after about 45 minutes of effort I gave up. I came to the simple conclusion that because I have the log files already, and just want to step through the analysis of those, I have no real need to almost all of the code in the project... I just need the SnoopyPro bit to compile so I can run it in the debugger.

To get SnoopyPro itself to compile, all I needed to do was edit the resource file so that there were no references to the .sys files which the driver builds. You can put anything here really, so long as it is a real file on disc... I used readme.txt.

Magically, now I have a Visual Studio 2003 solution with just SnoopyPro, which compiles nicely for me. I've made it available for download here in case I need it again.

(You'll still need the device driver kit from MSDN installed, as you need usbioctl.h. For Windows Server 2003, this is in the c:\winddk\3790\inc\wnet directory, and needs to be added to the list of directories found at Tools / Options / Projects / VC++ Directories / Include files.)

Fri, 17 Dec 2004

The TOWER kid's Christmas party was this afternoon. Basically, Rohan took the profit from the drinks fridge that he and Anthony have kindly run for a while and spent it on an afternoon at the movies for all the corporate kids (and some ring ins), including ice cream, popcorn, coke, and lollies. It was a good time, and the boys survived a lot better than I expected a two year old and a one year old to manage. Andrew got bored about 15 minutes from the end, and needed to go to the toilet three times -- but he didn't wet his nappy!

The underlying premise of the movie was a little weird though... Do Americans really take Christmas so seriously? I didn't think cancelling Christmas cause your kid had moved away and going on a holiday instead was that weird at all -- I kinda like the idea.

Herm. Twinkle Tux just had one of it's transformers fail. I'm not sure if it was because of temperature (it was a warm day and I had left Twinkle Tux on all day as I got slack), or if it was just due to fail. Luckily I had a hot spare, so Twinkle Tux is back online once more.

Wed, 15 Dec 2004

Alex Hoffman comments that as best as he can determine partial classes are only useful for tool developers. That's not quite true.

Consider my current project. We have a COM SDK to our product which has something in the order of 80 first class objects, many (over a hundred?) enumerations, and a lot of methods. To get around the fairly massive amount of leg work which needed to be done to expose the relevant bits of that, I wrote a generator. The generator can take a enum (for example), and expose the values in the right way for a web service, with the right names, and arrange the casting back to the original COM data type when needed. Now, with Everett (Visual Studio 2003) I need to copy that code into the class which uses it using cut and paste. With partial classes it can sit in a file of generated bits, and the hand tooled parts of the class are elsewhere.

Now that I've done it for real, I've fallen in love with code generation. It meant that I could take a death march project and turn it into something much more relaxing in this instance, whilst knowing with greater certainty than before that everything really is exposed right and that I haven't missed an argument to a function or a enumeration entry. My boss wonders how come I am so efficient now I suspect.

I'll be using code generation techniques more in the future, and I'll therefore love partial classes when they come along.

Mon, 13 Dec 2004

I've been playing with SnoopyPro again, after having put it on the shelf for about six months. Anyways, I needed to compile it again to make usblogdump work with some URBs I hadn't implemented the first time around. I can't get it to compile with the latest version of the Windows Device Driver toolkit. Now I'm playing with Sniff 2000, which seems to be the next iteration of the code base. I'll let you know how things go...

Well, I finally started writing up my compression stuff the other day. It's a little bit exciting, as there are a bunch of tools to learn on the way. I've conquered gnu plot, resizing eps (try hacking the postscript with a sed script is my advice), and now I'm onto an extended battle with latex. My newfound ACM membership helps here though -- there are a bunch of latex tutorial articles from Linux Journal in the ACM archive.

Sun, 12 Dec 2004

I love natural keyboards (those ones with the funny split in the middle). I've been using a Microsoft natural keyboard for the last two years or so (after a bout of RSI or whatever it's called this week forced me to relearn how to type). They're ok, although there doesn't seem to be a wireless option, or one which does USB, which have been annoying factors recently. Especially when my new machine didn't have any PS2 shaped holes in the case.

Anyways, my reward for asking for a virus scanner update at work was a new Logitech wireless keyboard and mouse combo. It's wireless. It's natural. It's USB. It's great. I have a new favorite keyboard. the multimedia keys even work with iTunes (which isn't true of the MS keyboard).

I've spent some time over the last couple of weekends scanning documents, ripping data CDs, and entering in meta data for things to big to scan or rip, and then dumping the originals in a big box. The plan? Well, I thought it was time to get some serious dog fooding in, so I've been adding these things to TRIM. It's kinda cool -- TRIM manages what folder the bit of paper is in, in which box, in room. Hopefully I'll never wonder where on earth the documentation for the purchase of our current house is again.

It's not perfect. The next step is to write a scanning application for my scanner so that I don't have to use it's sucky TWAIN drivers any more...

Thu, 09 Dec 2004

I can't keep up with all the email I'm getting, as well as doing my job, playing with my kids, doing a PhD, and helping organize a conference. I hereby resolve to trial reading my email only twice daily, and unsubscribing from some mailing lists.

Wed, 08 Dec 2004

Update: This still doesn't work, and no one has contacted me with a suggestion. Does ACM still exist?

So, as a part time postgraduate student I decided it was time to join the ACM. I've been trying all of this week, and I still get this error message on the sign up form:

Error Diagnostic Information
QUERY
The QUERY attribute of the tag does not specify the name of an available query
The error occurred while processing an element with a general identifier of (CFSELECT), occupying
document position (871:10) to (871:90) in the template file
F:\INETPUB\WWWROOT\PUBLIC\QUICKJOIN\QJ_PERSONAL_INFO.CFM.
Date/Time: 12/01/04 17:46:13
Browser: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20041105 Firefox/1.0RC1 (Debian
package 0.99+1.0RC1-4)
Remote Address: 203.17.68.254
Query String: form_type=Student/

I tried emailing the address in the error message, with no luck. Does anyone out there know someone from the ACM who can get this fixed so I can join?

Wed, 01 Dec 2004

So, as a part time postgraduate student I decided it was time to join the ACM. I've been trying all of this week, and I still get this error message on the sign up form:

Error Diagnostic Information
QUERY
The QUERY attribute of the tag does not specify the name of an available query
The error occurred while processing an element with a general identifier of (CFSELECT), occupying
document position (871:10) to (871:90) in the template file
F:\INETPUB\WWWROOT\PUBLIC\QUICKJOIN\QJ_PERSONAL_INFO.CFM.
Date/Time: 12/01/04 17:46:13
Browser: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20041105 Firefox/1.0RC1 (Debian
package 0.99+1.0RC1-4)
Remote Address: 203.17.68.254
Query String: form_type=Student/

I tried emailing the address in the error message, with no luck. Does anyone out there know someone from the ACM who can get this fixed so I can join?

Tue, 30 Nov 2004

These guys really deserve some linkage love. Every time I need to find a quick and dirty primer for some random technology that I am going to only care about for the next hour (until next time I need it), a Google shows up w3schools for webish stuff. For example, this second I care about xpath, but only for about two lines of code. This page meets my needs nicely.

I know that this will break some threading in archives, and make Google searching a little harder, but given the index page for the current list archive is now 1.4 megabytes of text, and there are nearly 10,000 messages in that directory, I have split the archive off into another directory as well. I'll keep doing this (and posting something here about it) whenever this happens.

The new archives can be found here, and cover from the morning of 1 December 2004.

So, I finally got the heebies with sitting in front of two laptops at home with two keyboards and two mice. It made me very sad. Luckily, Synergy came to the rescue. Now I have a Linux and a Windows box next to each other, with one wireless keyboard and mouse, and I can control both machines as if they were two heads of a dual head machine. Check it out (insert noises of rapid mouse movement between two monitors). See? It's cool.

Anyways, I've used it for 10 minutes and am therefore and expert. Go forth and download!

Mon, 29 Nov 2004

I had a little spare time the other day (which is relatively rare for me at the moment -- we're set to have a major release of the product I work on in the next couple of weeks and that's been taking a lot of attention recently). So I thought that I should have a play with libusb and see what the story is. Where to start? Well, as someone who has never used the library before, it was a little unfriendly.

Well, I've had a busy time recently. I went to an AUUG board meeting in Sydney, and a Microsoft ISV day in Sydney -- making it two day trips to Sydney in one week. To round that off, I drove down to the coast with the family on the weekend, which was kinda nice. I took some pictures, but I havne't got around to emptyin my camera yet, so you'll just have to wait for those.

Wed, 17 Nov 2004

In reply to Martin's comments on the conference paper scoring process, especially in regard to inadequate abstracts. I have to agree that I can't give a high rating to someone who can only provide two sentences about their chosen topic. Especially when they're asking for travel assistance, as well as an hour of 500 people's time.

On the other hand, I like the funny ones. When it's three hours after bed time, the best thing in the world is to read an abstract which explains that object orientated people should attend a given talk as they have been historically show to be upset easily.

It doesn't change the rating I give a paper, but it sure makes the job easier.

(This post might turn into hours of distraction from the task in hand, so I will try to be brief).

Way back when I was a Macintosh user. It was about the time that Apple switched to the PowerPC CPU series (System 7 I believe, I assume all of us here remember fat binaries?). The gossip in the halls, and I recall verifying it myself, was that there was an ASCII string in the code for System 7 which said something along the lines of "help! help! we're being held prisoner in a systems software factory" and was signed the blue meanies. I always assumed that they were called that as a reference to those nice folk at IBM who provided the CPUs for the machines, but apparently that's not the reason for the name.

Anyways, I'm spending the evening attending a school play (which was really quite good, and involved some nice product placement for my employer without any input from me [1]), and reviewing the 1.4 billion paper proposals for LCA. Yes, there is a constant scaling factor applied to that number, but I am sure you can work out to an order of magnitude what I am talking about. Anyways, there's some really good stuff there. I'm impressed. I sure hope I get to actually see some of the conference, as well as panicking and being grumpy.

1: There was a hobo character in the play. Apparently these school kids decided the best way of conveying hobo hood was to ware a cap from my employer. How very flattering. :)

Sun, 14 Nov 2004

I've only verified this with .NET languages, but it works in 1.1 and 2.0 (beta 1). Anyways, this code b0rks the .NET runtime so that things stop working properly until the next reboot (as per the previous post):

This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: This is a string: %1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Fri, 12 Nov 2004

I have a a project that I've been working on for the last several months which has about 20,000 lines of code in it. The project all just worked the other day, but when I got to work yesterday morning I was suffering from what I can only describe as pointer corruption in the .NET runtime. I'd ask for a string to be written to the event log, and an entirely different string would be written. I'd pass a variable back to the client, and it would be null by the time it got there.

This is a big deal -- this has to be fixed in the next couple of days, or it's possible that we'll have to can the project, which is not an attractive solution.

Wed, 10 Nov 2004

"No one said I couldn't write about companies that use Linux, but it was implied in how they asked the question. I say hogwash. Go back to my corporate weblogger manifesto. If a competitor is doing something interesting, you might as well talk about it. My readers are smart. Smarter than I am, certainly. They all know how to use Google and Yahoo and MSN. Some even know how to use all three together." -- Robert Scoble

As a person with a foot firmly in both camps (I've been hacking on Unices of various forms since year 11 in 1994, but I write commercial Windows code for one of the most successful ISVs in Australia) I can see what he's trying to say. Having recently been in Seattle, it was interesting to note how insulated the Microsoft people are: they are all colocated on a couple of campuses; they have their own hotel near the campus I was on; their own restaurants for during lunch; their own bus system (including transit center); their own store; their own museum; the list goes on. I imagine it would be possible as a Microsoft employee to come close to never meeting someone who uses a competitors product. The only obvious exclusion to that is the various properties on the web that everyone uses -- like Google.

That attitude hurts Microsoft. A lot. I'm coming to suspect that it's why they're suffering from this us vs them image as well. Let's pick on a couple of examples to expand my point:

ADAM. ADAM is Active Directory, Application Mode. It's an instance of Active Directory that stands alone, and doesn't have a footprint on the network. Now, I can think of lots of places where an LDAP like database of user accounts and attributes is useful, but I don't have control of the network to install one. Surprisingly, people don't like having to re-engineer their entire enterprise just because they bought another enterprise product. It makes the infrastructure guys grumpy. As an ex-infrastructure guy, I can sympathize with that standpoint. Anyways, so ADAM would let me write code which does the LDAP thing, and still work on a network which doesn't do LDAP. Those people could just run ADAM on the local box which my application is using. When told about the new version of ADAM recently at an Ascend love-in, I started thinking about how we could use this thing all over the place.

And then we stopped thinking about it, and abandoned all of those plans. Why? Well, ADAM requires a SQL server instance to run. Those same customers who don't like re-engineering their world also don't like running another database. Lots of them are Oracle or DB2 shops, and don't have any SQL server skills. moreover, they don't want those skills as they're not relevant to the rest of their environment.

Another example...

Microsoft's history as a poor corporate citizen: it's nice that people think that business is war. I'm happy for them. However, business is really about value to the customer. Without customers, we're all hobos in the street. When Microsoft admitted that they had behaved in a manner which breaches anti-trust law earlier this week they should have been hi-lighting to themselves that acting in a manner which isn't aligned with what is best for the customer hurts in the long run. Sure, Microsoft made way more than half a billion from that behavior, but it's also a reputational thing. This linux thing wouldn't be so popular if people weren't so upset with Microsoft in general.

I think the turning point was about the time of the South Park movie. If a popular movie can make a joke about executing Bill Gates, and expect the world to understand, then you'd have to think that perhaps you have a PR problem. Lots of the people I know who use Linux and open source do so because of a lack of trust of Microsoft.

The corporate blogging policy of Microsoft is certainly helping with that trust restoration. At least things seem a little more open now (more on that in a second). They need to go further though. perhaps some sort of 12 step program -- the first step is to publically admit that you've made mistakes in the past. Not individually -- at a corporate level.

Another example...

File formats: I live in the ACT, which is the Australian equivalent of the District of Columbia (almost exactly). There the local government passed an open source preference law for government acquired software a year or so ago. I went to a couple of the public meetings about this law, and the logic behind the decision wasn't about hating Microsoft. It was much more about wanting to be able to read their own files in a few years, if not 200 years. Think about it. Governments are in the business of producing data. Just data. Another perhaps I should include roads and schools there as well. Anyways, you get the idea. They're really worried about the file format bit rot that happens at the moment. How is it acceptable to create millions of Word documents, and not even know if you'll be able to open them reliably in 20 years? Worse than that, the format isn't documented (unlike PDF for instance), so they can't even write their own data extraction tool in 20 years. 20 years is a short time. Imagine the legal history of the UK for instance -- they refer to documents which are hundreds of years old.

Stop changing the damn format just to stop open competition. How about competing on your merits for a bit? Competing on any other basis is merely an admission that you don't think that those other merits exist. They do -- trust them. People are actually capable of making a rational purchasing decision for themselves.

My final example...

(I'll never be a baptist minister -- I made four points, not three)

Coding for Windows is harder than for the competition: huh? Well, having done a lot of both, it's a lot more work coding for Windows. Even with tools like C# and .NET. Why? Well, Microsoft doesn't document the things they didn't expect you to do (probably because they didn't realize that you would want to do them). With open source I can always go and read the code to work out what is happening under the hood. Additionally, MSDN is horrible to search. I use Google in preference, and have for some time (about 4 years?!?). Having hundreds of random hackers blog about things is good, but it doesn't add value to MSDN, I still need Google to search all of that. What happens when I am coding off line, on a plane or something?

Mon, 08 Nov 2004

Herm. I just did a dist-upgrade, and now the clock on my machine is wrong. I've managed to repeat the process on another machine, and now that one is wrong too. The machines still both believe that they're in the right timezone (Australia/Canberra), but are running an hour late. It's kinda like the machine has forgotten that there was a daylight savings change a week or two ago.
Anyone got a hint as to how to fix that?

I hear a lot of poeple around me say that SmartPhones are crap, but now that I own one, I thought I would reserve that judgement for now.

I can tell you about one useful feature though. I was doing the food shopping last night, and saw the following image in the display at the local butcher. I needs to be publicized I think, and the SmartPhone allows me to take a picture and email it to myself so that I remember to deal with it later.

Puppy (our new dog) arrives on a Qantas flight from Sydney to Canberra about 1pm today. I am tasked with collecting him from the airport, and bringing him home. I'll then be working from home for the afternoon, supervising him.

What!?! A Puppy? Yes. We puppy sat for Grant and Lindsay a couple of times in the last six months, and the boys liked the experience so much that we decided to acquire our own Labradoodle (Labrador, Poodle cross) in a hostile takeover. We've bought from Kate, who is the person who has sold five Labradoodles in the office so far.

Why a Labradoodle? Well, it's what we puppy sat and liked, they're hypo allergenic, small, have a good temperament, and are cute. Also, Burke's Backyard (a garden show here in Australia) recommends them for people with kids.

Anyways, I'll keep y'all informed, and of course post pictures when I have actually met him.

Mon, 01 Nov 2004

Herm. Work issued me a mobile phone yesterday. It's an i-mate SmartPhone 2, which is a PocketPC among other things. Interestingly, ActiveSync 3.7 doesn't support syncing more than one device at a time... This makes me sad.

There's a reference to the problem in one of the Microsoft expertzone chats, but all they say is that if you unplug one of the devices, then you can sync the other. That's correct, but a pain in the rear. I can't find anyone else offering a solution to the problem either.

I would have thought it would be a fairly common scenario -- I have a PocketPC for stuff which I want to take mobile, and now I have a PocketPC based phone, but I can only be syncing one at once. I'm disappointed. Even the Open Source equivalent SynCEsuffers from the same problem.

Sun, 31 Oct 2004

Well, when I try to take the following code, the compare method throws an exception with the message "The URI scheme is not valid". Following the theory outlined here, perhaps the argument to the Compare() method should be a filename?

In fact, when I look at the help (which isn't on the web, and installed on the local machine), then I find the following: "A file name or URL containing the original source XML document or fragment to be used in the comparison.". Ah ha!

You need the weird GetBytes() call to convert from char[] to byte[] (what encoding are you going to use? ASCII makes sense here, but might not in other cases). Then you need to make not one, but two memory streams. If you only use one, then it will be positioned incorrectly from the first use, and the read of the root element will fail for the second caller.

Thu, 21 Oct 2004

So, the event in Building 20 was a four day long course on SharePoint (specifically Windows SharePoint Services, WSS), BizTalk and Live Communications Server. The course was ok, although none of technologies are of core interest to the stuff that I am doing at the moment, and it was more of a background briefing than anything else for us.

It was interesting to meet Robert Scoble in person, although I was expecting a lot more people at the geek dinner. Robert and I didn't talk much, which was a shame as Longhorn directly affects the company that I work for. Oh well, perhaps next time.

The best bit of the week in Seattle was the five incidental meetings we held on our spare day on the Microsoft campus. We went to buildings 18, 36, 40, 41 (I think, it's a blur now). I can't really say any more about it now, but you should see some pretty cool things out of TOWER soon.

Sun, 10 Oct 2004

I was waiting for my picture upload before I made this post about how Frank and I spent Saturday in Seattle. We wandered into the city, and decided to have a look around Pike market, before walking across town to the Space Needle (it's easy to navigate to it, it's kinda tall). After that we went up the needle, and I took heaps of photos of surrounding Seattle. I'm surprised that the city isn't more built up -- it's kinda like a bigger Canberra, instead of being crowded and dirty like Sydney or Melbourne. All the vegetation here is really green too, except for the trees which are starting to change colour for the fall.

We spent the afternoon going on a "duck" tour of the town, which included a quick sail around the harbor. The highlight of that had to be taking a bunch of photos of the house featured in Sleepless in Seattle.

Finally, dinner in the food court, which featured a live blue grass band.

Andrew seems to be having some troubles with recursion. The important thing to remember here is that recursive algorithms need you to implement two cases -- the end condition (terminal), and everything else. Let's take a simple case, and use C to avoid all the extra syntactic sugar which would otherwise get in the way:

Let's write a recursive function to find the factorial of a number. That's what you get if you take a number, and multiply it with every number smaller than itself, but greater than zero. So 3 factorial is 3 x 2 x 1 = 6. Remember -- no sane person would do it this way in real life...

First, the end case is when the number gets to 1:

if(num == 1) return 1;

The other case, is that we need to multiply by all the numbers smaller than us:

One of the languages I did in first year, many years ago, was called Gopher, which is a variant of Haskell. Haskell is a functional language, which means everything is expressed in the form of mathematical functions. That means that there are no looping constructs for instance, which means you have to do everything using recursion. You get used to recursion real quick that way. What Gopher actually did under the hood was expand out all the function calls into one big formula, which it then executed. Let's do that for the 3 factorial case using our function. We get something like:

factorial(3) = 3 * 2 * 1;

Which is right. Doing that kind of thing is a good sanity check if you're not too confident with recursion. So, how's that for an attempt to explain recursion?

Sat, 09 Oct 2004

The Scobleizer talks about podcasting. What's podcasting I ask myself? Well, having poked around at the engadget feed for a little while, it's an online MP3 file, and then an associated RSS feed which people can aggregate. I haven't downloaded any podcasting aggregators, but I imagine a good one might download all the MP3s, and download them to your MP3 player.

It occurs to me that this isn't really a new idea. That doesn't make podcasting bad per se, but it should be recognized that it's been around for a while. For example, The Linux Show has been putting MP3 shows online for years, conversations in IT is another good example, an interesting use which I think more people should pursue is that some of the Linux conferences (including linux.conf.au) have been putting online audio of their talks on the web. I'm not aware of any Microsoft conferences doing this, but it would be cool if they did.

Hey, and why aren't there any Australian user groups putting their content online with this kind of stuff? There must be heaps of content out there just waiting. Web casts are cool, but the applications tend to be a pain, a lot of them make it hard to download the content for off line viewing, and I can listen to an MP3 in my car, at the gym, or whilst working, all of which are hard with a web cast.

I guess I must be pretty much over the jet lag now, as I slept in this morning. A total of 11 hours sleep in all, which is a lot more than I usually get, and a lot more than when I normally sleep in. I actually feel really good this morning, which is nice.

I've had breakfast (toast, coffee, special K which is more like rice bubbles than what we get back home, and bacon). We were going to do bacon and eggs, but it's too scary to try and flip an egg using two forks while frying. We'll see if we can find an egg flip while we're in Seattle today.

Fri, 08 Oct 2004

When Catherine (my wife) saw my Ipaq for the first time she wasn't all that interested. She's been a long time Palm organizer user, and is happy with my Palm III from six years ago. All she uses is the calendar and the address book.
Then she saw me using the Bible reader application I downloaded at church. This was her killer application -- the thing which made her want to own an Ipaq.

She doesn't need anything as meaty as my HP 2210, all she needs is a modest PocketPC with enough storage (on an external stick?) to hold the Bibles she wants. I'm thinking that a model which was good a couple of years ago would do. The bit that prompts me to write this entry is the total lack of an Ipaq model under $200 US. Or at least that I can find. There are lots of Palm options under that price, so why aren't PocketPC vendors recycling old revisions of hardware in different casing for a lower price? They've already paid to setup the factory, so surely it can't be that big a deal.

I know that these older devices can't run the latest version of Windows for PocketPC, but then again having these less functional devices gives people some choice at that price point in the market. Also, people get hooked on the device type they had before. Catherine needed something amazing before she would consider having something other than a Palm. Because that's what she was used to.

People tend to get used to what they first bought, and people tend to make small exploratory purchases before jumping in the deep end. Is there some compelling reason I am missing for people not making a lower end PocketPC?

Well, we're in Seattle and it's no surprise that it's raining. Everything is so green over here compared with Canberra, which has been dought declared for something like two or three years now (we're about to enter summer again, and we're already living under water restrictions on things like watering plants and washing cars. There's just so much water here...

Frank and I went out shopping. I failed to find a blue tooth keyboard, but I did pick up a cool charger for my mobile (more on that in the toys page in a little bit), a USB game pad which I want to play with (it was only $20), a cheap USB finger print reader, a calling card for international calls which doesn't work (the radio shack guy forgot to activate it), and a heap of food shopping for breakfasts. Frank has also agreed to take the squeezy tube margarine challenge (to eat some and not die), if I will take the huge can of beer challenge. More on those once we've done some more scientific research.

Given that we're on the edge of the Microsoft campus, I was expecting more corporate logos to be floating about. I have only seen a couple of building labels, and one t-shirt. I've actually seen more Linux shirts in the US so far than Microsoft ones, which was unexpected. Then again, it was a very scientific survey of LA airport, Seattle airport, the inside of a cab and wandering around a local mall.

Hey, given that I might be excommunicated from my local Linux users group for coming here, I was expecting to see more horns and cranial implants. Heh, only kidding. I guess I'll find out who from Microsoft reads this from that comment.

The package is me, and the destination was Seattle. I'm no in the hotel, which has wireless coverage (all you can eat for $4 US for the entire stay), which is nice. The wired Internet access is quite expensive by comparison -- $7 a day, so Frank and I are about to head out and see if we can find him a cheap wireless card.

That's probably a good thing, as the external keyboard I brought turns out to not have a switch mode power supply, which is something I didn't think to check before I left, and I packed the wrong charger for my mobile phone. All up a little embarrassing, but not terminal.

Now Frank and I need to kill two days in Seattle before turning up to Building 20.

Thu, 07 Oct 2004

Goldweb moved their servers from one colo facility to another today, and it seems to have broken pretty much everything associated with this domain... I can't send email, I'm not getting mail, and if you hit www.stillhq.com with a browser, you get the Goldweb mirror server instead. I assume that if you're reading this that things are back online once more, but you might want to consider resending mail to me if it was something important.

I recently put some effort into improving the log reporting on stillhq.com, and the results are quite surprising... I didn't realize how much people are using the various images on my site. For example:

They're both from a directory with the filenames being the search hits in question.

Lots of people are blindly deep linking to them (I wonder if I should change the pictures to keep them on their toes?).

The moral of the story is that having meaningful filenames such as Washington_dc_smithsonian_air_space_dulles_hangar-dsc08131.jpg for my own benefit has had the side effect of leaving me with quite a useful site on the Internet as well. Cool.i

So I'm running around like a headless chook. I have a few things tee'd up for my trip, such as four days in Building 20, a dinner with the Scobleizer, and some time in the DC office. Now I just need to get around to packing my bags before going.

To add to the fun I am joint running a guest lecture at University of Canberra on project and product management this afternoon.

Mon, 04 Oct 2004

I leave for the US on Friday, and I really want to only take one laptop with me. That's a little painful, as I normally use my Linux laptop for all of my email reading. Searching for a replacement for my offlineimap / dovecot / leafnode / thunderbird mail combination with Linux has left me with Thunderbird on Windows using the off line extension which comes bundled with the mail reader now. There was momentary confusion as I tried to work out how to go off line -- there's a little icon in the bottom left of the window. I think I have it working now, but I really should give it a try for a while before declaring success.

Sun, 03 Oct 2004

Interesting. Today during some random public holiday web surfing, I came across some people working on an ICM532 driver for Linux (something I am interested in for my doctorate). Here's some linkage to keep you going:

They're both pretty beta, and neither seem to have the compression worked out, which is interesting to me because it was the compression on the ICM532 which sent my PhD off on a compression analysis tangent from which it might not return. Anyways, I'm downloading the drivers now and might have a play with them...

Tue, 28 Sep 2004

I've been getting some pretty funny spam recently, which I thought I should share:

Welcome to our web site www.xxxxxxxxxx.com/phpBB2/index.php
Please use http://xx.xxx.xx.x in case of our domain outage.
You\'re invited to shop for large selection of bombs and different
kinds of rockets such as surface-to-air,
surface-to-surface and weaponry available at reduced price. With the
following types of rockets you will be
able to commit terrorist attacks, destroy buildings, electric power
stations, bridges, factories and anything
else that comes your mind. Most items are in stock and available for
next day freight delivery in the USA.
Worldwide delivery is available at additional cost. Prices are
negotiable.
Please feel free to inquire by ICQ # xxxxxxxxx or contacting us
directly:
+x-xxx-xxx-xxxx
+x-xxx-xxx-xxxx
+x-xxx-xxx-xxxx
Today special:
******* AIR BOMBS *******
OFAB-500U HE fragmentation air bomb
Fuel-air explosive air bombs -Not in stock
BETAB-500U concrete-piercing air bomb
ZB-500RT incendiary tank
500-KG SIZE RBK-500U unified cluster bomb
RBK-500U OAB-2.5PT loaded with fragmentation submunitions
RBK-500U BETAB-M loaded with concrete-piercing submunitions-Not in
stock
RBK-500U OFAB-50UD loaded with HE fragmentation submunitions
******* UNGUIDED AIRCRAFT ROCKETS *******
Main-purpose unguided aircraft rockets
S-8 unguided aircraft rockets
S-8KOM
S-8BM-Not in stock
S-13 unguided aircraft rockets
S-13, S-13T, S-13-OF, S-13D, S-13DF
S-25-0
S-25-OFM
S-24B -Not in stock
RS-82
RS-132-Not in stock
******* ROCKET PODS *******
B-8M pod for S-8 rockets
B-8V20-A pod for S-8 rockets
B-13L pod for S-13 rockets
Recently received *NEW*
Hydra 70 2.75 inch Rockets
Air-Launched 2.75-Inch Rockets
FIM-92A Stinger Weapons System
Stinger 101: Anti-Air
Our clients are well known Al-Qaida, Hizballah, Al-Jihad, HAMAS, Abu
Sayyaf Group and many other terrorist groups. We are well known
supplier in the market and looking forward to expand our clientage
with assistance of Internet.
Do not hesitate to contact us via ICQ # xxxxxxxx
Impatiently awaiting for your orders,
xxxxxxxxxx

Ok, so that's a little weird. How's this for a email to get a couple of days later?

Welcome to www.xxxxxxxxxxx.ws
Here you can buy stolen passports, counterfeit dollars and all other things you are in
want of. If you need, we would provide you with the info about the bank account of a
person who you are interested in. Also there are credit cards dumps of US and Europe
residents. Your faithfully,panther aka xxxxx.

And then to round it all off:

Welcome to www.xxxxxxxx.com, www.xxxxxxxx.cc, www.xxxxxxxxxxxx.biz.
Best credit cards, cashing of dirty money, stolen paypal accounts, access to the bank
accounts of UK and USA residents - all this you will find only on xxxxx.su
Come now and you will receive 10 credit cards with cvv2 code for free.

I wouldn't normally share spam with you, but I do wonder what, if anything, I should do with these three. Are they some weird attempt at untargetted humor? Is someone on drugs? Should I forward them to the FBI? Herm.

Michael referred to a bad day earlier today. Here's why. What a bummer -- Motorola has fired 120 people from their Adelaide software center. If you're after a .NET programmer, then you should advertise in Adelaide sometime real soon, as the people I've met from here are very capable.

Robert Scoble mentions Microsoft's DRM'ed privacy protected emails for Outlook. I think there are a couple of points that he should be aware of here:

They don't work with other mail applications -- the Internet is all about open standards and the free interchange of information (like the web, blogging protocols, and email). People are unlikely to adopt a technology which isn't compatible with those ideals.

They break third party corporate applications like TRIM -- which is kinda a tweak on the point above. TRIM is a corporate repository of documents of importance. Like the confidential email Robert refers to. TRIM is also about being able to get that data back in many years, when Outlook has moved on from that DRM standard, and all of the people who know the passwords are long dead. EDM is also about searchability, which we can't implement with DRMed documents, as we can't build our indexes.

Has Microsoft instead considered using an open standard like PGP, with the email encrypted for the recipients who are entitled to it? TRIM could then just be another recipient, and decrypt the data before indexing it. That would work with lots of other mailers too.

Mon, 27 Sep 2004

"The release has been eagerly awaited by Matchbox Twenty's enormous fan base, composed of American record buyers who have a limited interest in music but enjoy the act of shopping. In order to satisfy the undemanding non-tastes of this lucrative market, Matchbox Twenty has made every effort to create what record-industry insiders say is the band's least distinctive album yet." -- The Onion"

Well, I found a bag which is close to what I have in mind for the conference, but it's way too expensive (about twice what I want to pay). Perhaps that's because our budgeting for the conference bag is totally wrong, but I suspect it's more likely to be because the bag is particularly expensive. It's a nice enough bag too, although not perfect. Ahhh well, bag to the drawing board.

Proudly Serving My Corporate Masters has a brief discussion of how to go about finding a topic for a technical book. The advice is sound, in that I imagine that it would be a lot harder to pitch a book on a topic that is well covered. Then again, not all topics are covered well even years after they became main stream. For example, there still seems to be a lot of confusion out there are image processing fundamentals, and I am not aware of a book that covers the standard open source tools -- libtiff, libpng, libjpeg, libgif, and ImageMagick. I have thought for a while that my various articles on this sort of thing would form the basis for a nice book.A

Which brings me to the reason I've never done anything about it. I'm a technical person, I'm not in marketing, and I'm quite uncomfortable with the idea of doing a pitch for a book proposal. Does anyone out there have advice on how to approach that sort of thing?

So, I went to Kate Lundy's website (she's the Australian Labour Party Senate candidate for my physical region of the country) to try to find out where to pre poll before flying off the the US. What I found was the text:

Simiens Crew 2004, enquanto hover fome guerra morte simiens existira

I gave Kate's office a call, and they're aware of the problem and don't sound very happy about it. So what the hell does that text mean? Google's translation page assures me that it translates from Portuguese to English as:

Ahhh, isn't that sweet?!? Robert has been kind enough to add me to his blog roll. I wonder if that will noticably affect traffic to here? I note that after about a week or giving it a go, using ping services and checking my referrer list hasn't had a noticeable affect on traffic here. The referrer logging is interesting though, as I didn't realize how much of my traffic comes from quite targeted Google searches. That's cool, because it means that I should keep going with the technical content when I have some worth mentioning. I don't think there's a lot of value in just astroturfing random technical thoughts which have been documented a million times before.

I wonder how I explain the discrepancy between the 50 or referrers in the log, and the 500,000 "hits" the server services a month? There aren't really that many graphical elements on each page, so it's not 30 hits being one page load or something like that. I suspect some of the traffic is goggle crawling the site, but I can't imagine their hitting over a quarter of a million pages.

Wed, 22 Sep 2004

The Scobleizer mentioned Building 20 a while ago, as has Channel 9. Now it looks like it's my turn to go, along with another fellow from the office. I'm not really sure what's happening at the moment, and in fact it might not happen, but the trip is in about two weeks, so I should probably find out more sooner.

Anyone in Redmond want to give me a tour? ;) Oh, and what is the weather like in Seattle in October?

Tue, 21 Sep 2004

One thing I hadn't thought through when the Scobleizerconvinced me to turn on referrer display was referrer spam. I was just looking at the referrer list, and there is at least one spam site there now (adminshop.com, you suck). I'm thinking that perhaps the answer is some scripting which hits each of those pages and makes sure that they contain the text "stillhq.com" before adding them to the list. That should be a fairly easy tweak on the Blosxom referrer plug in I am using now.

Mon, 20 Sep 2004

Perhaps this is obvious to everyone else, but I wasn't entirely sure of the syntax to have a class which inherits from a class which in turn inherits from another class, with virtual methods at the base level, and a non-virtual help in the intermediate class. So I spent a little time and came up with this example:

No one would implement addition in this way in the real world though...

So what we have here is a base class which knows that mathematical operations take two arguments. Then we have a mid level class which knows how to provide the inverse of some numbers, and then a final set of classes which does addition and subtractions. Note that if we had division, then that would just inherit from Operation, as it doesn't care about inverses.

I know I promised to get technical, but I can't stop myself from writing this. When I was in Washington DC recently, I went to see a group called the Capitol Steps after hearing one of their CDs in the car with my brother. I thought it was a little expensive to get in, but the live show was fantastic (if you're in DC sometime, you really should go and see it). I also bought five CDs on an impulse.

The show was funny to even us Australians, even though there are bits of American current affairs that I had simply never heard of -- like for instance whoever Tom Ridge is. A lot can be inferred from the context. Tom Ridge for instance sings songs about imminent terrorist attack, so you don't have to be a rocket scientist to work out that he's somehow associated with the Department of Homeland Security.

Anyways, those five CDs sat in my suitcase and then on a shelf until the other day. I happened to be in a music mood, and pulled one of them down and started listening again. I love these guys. I've now listened to all five of those CDs in the car to and from work this week, and laughed most of the way. It's surprising because some of their music is actually quite beautiful too.

Now I just need an excuse to get back to DC to go to another live show. I might have to subsist on mail ordered CDs until then.

Can I just say by the way that the word "Homeland" just gives me the willies? It sounds like it has Fascist overtones or something. I would much rather words like "Internal" or just "Department of Security". Hey, why not "Department of Defense"? Surprisingly, they didn't consult me before selecting the name. Perhaps next time?

On, and while we're on the topic, the ignorance of local politics goes both ways. The guy sitting next to me at the Capitol Steps concert asked where I was from (I apparently have quite a broad Australian accent, but have never assaulted a Crocodile). We go onto talking about politics in general, and he didn't realize that Australia has troops in Iraq. And Afghanistan. And that we fought in Vietnam. Oh well.

I've known Willian Luu for a while from the aus-dotnet mailing list, but he now comments on the thread I participated in with Robert Scoble. I think it's interesting that people were asking how I could get more traffic, when I am actually happy with my current traffic level (about 500,000 hits a month, but who is counting?). I intended the discussion to be more theoretical than that, which some poeple have followed through on.

I've now linked to William, it will be interesting to see if my traffic levels go up, and if his do.

Looking back at that last bit, it's a bit pathetic. It's kinda like the Google version of comparing various macho measurements. Oh well. It's interesting to me that I have posted here more in the last two days than I think I ever have before. Unfortunately not much of it has been technical. I will now go and meditate on something more technical in order to be able to rant in public again soon.

Sun, 19 Sep 2004

So, I have on my TODO list to go off and talk to some merchandise vendors about conference bags. That makes me wonder -- I go to a fair few conferences, and I almost never use the bags which come back from the conference, except to take stuff home from the conference itself. The big exception to that rule is the bag which came back from linux.conf.au 2001 in Sydney which is a backpack with a Everything Linux logo on it. Andrew uses that one as a bag to take stuff to daycar in because it's big enough for a change of clothes, lunch, nappies, and his asthma stuff. Am I a representative sample of the people out there who go to conferences?

If you are thinking about coming to linux.conf.au 2005, what do you want in a conference bag, if anything? I have a few ideas that I'll keep close to my chest for now so that people can be surprised, but I'll factor in any feedback I get from folks out there. Let me know at michael.still@lca2005.linux.org.au (that's my conference address, if you're reading this in 100 years, then you should try me at mikal@stillhq.com).

So, I spent some time on the weekend adding disk to Homebrew, which is a NAS / DB server at work. This was interesting because it was coupled with an upgrade to a 2.6 Debian stock kernel. Initally I wondered what the hell those Debian people were smoking when they built an initrd that made me change from treating my IDE disks as IDE to making me treat them as SCSI. What a pain in the arse I thought to myself.

I went off half cocked to be honest. There is a reason for the change. It turns out that only older SATA controllers are supported by IDE style drivers, and that they are considered flakey (I had noticed some flake with SATA and my 2.4.23 kernel, which is why the kernel upgrade was happening in the first place). The new drivers all treat the SATA controller and disk as SCSI, which means that Debian really has to do the same.

The confusion during upgrade stemmed from not really knowing how the IDE names would map to the SCSI ones. The SCSI disks are named in detection order (I think, I haven't verified this), and the IDE ones are named for controller / chain location. As it turns out the mapping was pretty easy (hde to sda, hdg to sdb), so that wasn't too bad.

Now to work out why the upgraded box wants to boot into an interactive version of GRUB, instead of the menu...

Ahhh Steven (who lives quite close to Marinetti) tells me that Damian, the waiter I encountered the other night, has been like that for years. I must admit that I kinda liked the change of attitude -- there is only so much sucking up you can put up with.

Steven of course didn't respond on his blog though -- he emailled me. How last century is that?!?

Further to my previous comment on blog discoverability, the Scoblizer wrote a post in his blog about the topic. He makes interesting points about the pinging services. I must admit that I wasn't previously aware of those. I have also installed the referer logging plugin for Blosxom as a bit of an experiment. I'm never bothered before to work out who reads this site, and where they come from (I don't have access to the server logs on this hosted machine, and the ISP provide aggregate statistics only).

Robert is right -- without pinging and tracking refers, what I have had for the last five or so years is a website that just happens to be published using a blogging tool (first my own, and now recently Blosxom). That would explain why in those five years I've got lots of traffic, but never once ended up in the sort of inter-blog conversation which I'm having now.

I haven't had a chance to read Biz's post on the whole blog discoverability thing yet, but it certainly looks like it's worth the time. I have plugged him into my aggregator though, anf will catch up on reading when I have more coffee in my system. I do wonder if that is a factor -- I live in Australia, which is really the wrong timezone to be talking to Americans much. It's a bit of a pain, as I work for a company with quite a vibrant US office and my borther lives in Washington DC as a third of the US presence for annother Australian ISV. If I want to call them, then I have to ring at 11pm to get them at 9am, and I've never really been a big night person. Luckily my brother is a night owl at least.

I just installed Cliprex lite in my quest for a Windows video player which doesn't suck... I should have read the reviews. DNS resolution doesn't work with Windows 2003 any more. I would highly recommend staying well clear of this piece of s**t.

I ran adaware et al, but in the end this fantastic page had the fix. I had to be kinda trusting to just randomly run it, but I was getting a little desperate...

By the way, Cliprex never did work... It just GPFed immediately. I don't even know if there is any video code in there...

I've been using Xine under Linux for a while as my video player of choice, and it's nice. Really nice. My linux laptop is in for repair at the moment however, so I'm using my Windows (Server 2003) laptop instead. Yes, I do actively use two laptops. Anyways, I'm having troubles finding a Windows video player which doesn't suck. Windows Media Player can't play a MPEG file of all things, VLC has trouble with the interlacing used on the TiVo recordings, and the other couple I have downloaded have sucked equally. Does anyone have any hints?

Sat, 18 Sep 2004

Robert Scoble's comments on blog fame are interesting, but I still think he's left out a factor -- discoverability. I could have the best blog on the planet (I don't but you can judge for yourself at http://www.stillhq.com/cgi-bin/blosxom), but if no one has linked to it, then it might take Google forever to find it.
Or am I missing some obvious form of blog discovery that people are using?

Fri, 17 Sep 2004

Thursday night was Marinetti Resturant in O'Connor. It's Italian, and excellent. I had the fresh sardines, and then pork fillets. The "boing boing" (chocolote profiteroles) was good too. I think the best bit has to be the waiter / owner, who is possibly the rudest service industry worker I have ever met. I would have been horrific if it wasn't so funny -- if you go there, then just expect him to try to rev you up a little...

For example, we had a couple of people arrive late, and he then picked on them dfor the rest of the night.

There were some sad looking people in research and development Friday morning however. That might have had something to do with the 12 bottles of red wine, and 8 people who were drinking. I've learnt not to try to keep up with a Irishman, who switched to double gins at 1am to sober up.

Best effort has to go to Simon, who didn't make it into work until 3pm the next day...

Tue, 14 Sep 2004

In Braddon. It's about a 15 minute relaxed walk from ANU, about a 10 minute walk from my work, and has Leffe. I recommend the beer battered chips as a side dish to your beer main course. We went there for lunch today to say goodbye to a visitor from the UK, and a good time was had by all (I hope). Anyways, back to work for little old me.

So, I'm in at the ANU working on my PhD at the moment, and I'm feeling a little tired. That's mainly because I only got 6 hours sleep (I normally need 8) because I was on the phone for about an hour with our developer relations guy in the US office. It was worth feeling tired now though because I think we got some useful stuff done. One of the harder aspects of the Web Service project I am working on at the moment is the logisitics of working out how best to get the various support staff around the world trained, and on the same page as the research and development team. I think the call was a good start, but I suspect that some travel for the foreigners to head quarters might be a good idea too. We shall see...

I've been running the Microsoft web service extensions 2.0 technology preview for a while, and decided it was finally time to jump right into the full 2.0 service pack 1 release. What did I need to change in my code to get this to work again? Well, nothing.

Ahhh, but then I get keen and change the reference to point at the 2.0.0.1 version of the DLL. Now I get:

download.cs(8,21): error CS0234: The type or namespace name 'Services' does not exist in the class or namespace
'Microsoft.Web' (are you missing an assembly reference?)
download.cs(9,21): error CS0234: The type or namespace name 'Services' does not exist in the class or namespace
'Microsoft.Web' (are you missing an assembly reference?)
trim.asmx.cs(11,21): error CS0234: The type or namespace name 'Services' does not exist in the class or namespace
'Microsoft.Web' (are you missing an assembly reference?)
Upload.cs(6,21): error CS0234: The type or namespace name 'Services' does not exist in the class or namespace
'Microsoft.Web' (are you missing an assembly reference?)
Upload.cs(7,21): error CS0234: The type or namespace name 'Services' does not exist in the class or namespace
'Microsoft.Web' (are you missing an assembly reference?)

Heh, it makes me look more efficient if I put effectively the same error message here 5 times. That's because Microsoft changed the namespace from Microsoft.Web.Services to Microst.Web.Services2. Subsequently I discovered that they've renamed DimeAttachment to just plain old Attachment. Incidentally, the constructor for a DimeAttachment (now Attachment) changed as well, so I had to rewrite that line of code too.

I'm officially wierded out by the fact that the dll name changes each time. The only thing I can think of is that the .NET framework is generating this file when the web service call is recieved. Perhaps it's part of the JITing?

An initial search at Google made it clear that the XML serialization engine seems to be involved here, but the suggestion of giving everyone permissions to c:\windows\temp as per this page doesn't achieve anything of interest. Finally I find it: apparently jagged types can cause this problem too. Removing the location searching stuff I wrote yesterday fixes the problem for now...

I wonder what a jagged type is?

So, I got my code working in the end. In my case it was that I was inheriting from a class which clearly was the wrong one to inherit from. This didn't fail at compile time becuase the type cast wasn't verified until the actual call over the Web Service boundary.

I've read of it happening to other people because they forgot to make their type public or something like that. I guess in summary a "jagged type" is just one which makes the XML Serializer sad...

Now, that's not the most helpful error output in the world, but it does at least confirm that it's not a permissions or disc problem with the server (which seems to be the problem in some cases). The precompiler gets better though -- it twiddles the thingie (that's a technical term) which makes the generated code not be deleted. In the example above, the code was stored at: C:\Documents and Settings\mikal\Local Settings\Temp\9zileshz.0.cs. Now, the code generated looks like it was written by someone on crack (well it was generated):

There are issues with the dates in RSS feeds generated with Blosxom, unless you configure the story.rss file to contain the right markup. That was easy to fix, but it took a couple of days to realise there was a problem (thanks Steven).

Catherine and I went to her 10 year reunion on Saturday night. Catherine seemed to have a good time, which is what it is really about. I must admit that I was a little bored being in a room where I didn't know anyone (although I did actually know a couple of people who I had met through Catherine earlier). The food also left a little to be desired, but that's life.

It's a good thing that I went, becuase now Catherine owes me a reunion boredom session next year, when it will be 10 years since I finished secondary schooling.

Fri, 10 Sep 2004

Working on it now, although I don't know much PHP, so it's fun... I've got something which works with a basic skin, which I am now uploading to the lca2005 machine. Then I'll need to work out how to have the template generate the PHP for that page for me, which I don't think will be too hard. I suspect it's just a case of cutting and pasting to my hearts content. Then I need to learn arch so I can commit the changes. Then I need to commit the changes. Then I need more coffee... You get the idea.

My friend Steven Hanley comments on the "Great Hackers" essay, and how the really smart people often don't much care about the software that their employer ships. I can find parallels between TOWER and this train of thought. Not that the smartest people in research and development at TOWER don't care about the product or the users, they care a lot. It's more that they tend to focus on what I would call bang for the buck programming, for instance the generators that Steven mentions.

We often use code generators to help us develop TRIM. Often this will start out as a generation of a lot of the "leg work" code, and then that code will be then tweaked to actually meet the needs of the project in hand. An example is my current Web Service project. There are about 70 ways you can search for a record in TRIM, and there was simply no way that I was going to hand code those 70 search methods for the Web Service version of the SDK. Instead, we used .NET reflection to iterate through the methods and generate a bunch of the code. That code can then be tweaked (if needed) to produce what we actually want.

So, it's started spitting. This is a big deal, as the last couple of weeks are the first time that we've had a good couple of wet weeks in literally years. I don't think it's going to be enough to stop the official water restrictions that we've been living under for the last couple of years, but it's certainly a nice change from wondering if it's ever going to rain again.

So, welcome to the new site look and feel. I've transitioned to generating the entire site via Blosxom as a bit of an experiment. We'll see how we go. There are quite possibly broken links still -- I'm running a link validator as we speak which will help me fix those...

I'm officially wierded out by the fact that the dll name changes each time. The only thing I can think of is that the .NET framework is generating this file when the web service call is recieved. Perhaps it's part of the JITing?

An initial search at Google made it clear that the XML serialization engine seems to be involved here, but the suggestion of giving everyone permissions to c:\windows\temp as per this page doesn't achieve anything of interest. Finally I find it: apparently jagged types can cause this problem too. Removing the location searching stuff I wrote yesterday fixes the problem for now...

This morning Steven, Tony, Kristy and I went off the see a possible venue for the professional delegate's networking session. I wont mention where it is, as these things are traditionally kept secret until just before the event, but it was a nice venue, and I think it will keep people interested. There is more to do there than just eat and talk to people, which means that people wont be forced into an awkward social situation. Having intesting things around you also gives some sort of common ground to start off a conversation with.

The only problem is that if too many people are professionals, the venue might not hold us all...

Then after that off to a Canberra mechandise company to talk about some nice Chambre shirts for people who need to go out places representing the conference. The people involved will have to pay for their own shirts, much like the promotional ones, but it still makes us seem a lot more professional.

Tomorrow is TUF, the user conference for people who use my employer's product -- TRIM. I'm speaking about the web service project which I am working on at the moment, which is pretty cool stuff. I'll mention more here when I've given the talk, as I don't want to steal my own thunder.

Mon, 23 Aug 2004

Someone asked on a mailling list I am on if this works. The only problem I have had is that I can no longer debug web projects with Visual Studio 2003. This sounds like it might be a common complaint. Then the mailling list came to the rescue:

William Luu wrote:
> As mentioned in another post, to get debug working in VS.NET 2003 all you
> need to do is set ASP.NET from 2.0 to 1.1 using the IIS Management Console.
>
> There's a properties tab called "ASP.NET", it will say "ASP.NET Version: "
> and there is a drop down list of diffrent versions installed on your
> computer.
>
> This is because VS.NET 2003 will only debug ASP.NET 1.1 [and probably lower]
> Applications.
Ah yes. Although I also needed to creat an application pool for the
1.1 code which was separate from the application pool for the 2.0
code. That's because you can only have one version of ASP per
application pool.
Thanks for the tip,
Mikal

In the only inane post in a while, I would just like to say that I am sitting here on my couch at home posting this with my new Ipaq h2210. I like being back in the land of the handheld and will write more about getting it to work when I have some spare time.

Sun, 15 Aug 2004

During the last wek of my trip, Catherine was driven into whilst giving way at an intersection. She sustained whiplash, and the Lancer is in for $3,500 worth of panel beating. Luckily we're insured.

Now, a garbage truck just drove into me. It was low speed, and we're all ok, but the driver of the truck has to pay $163 for a new passenger side mirror for the Falcon. I think I might have a little lie down now...

Thu, 12 Aug 2004

If you want your NTLM code to work with the .NET Compact Framework, then you're going to need to upgrade to at least version 2.0 of the compact framework for it to be implemented. This includes when you call a Web Service from your C# code with a server which requires NTLM authentication.

I got back into Australia on the morning of Friday 6 August. Singapore seemed to be all about shopping, which was nice for about a day, and after which I became bored -- I don't much like shopping.

Catherine had someone drive into the back of her car the Monday of the week I came back, so she needs lots of help with the boys again. The car went into the panel beaters, and will apparently take until the end of the month to fix. Lovely.

Wed, 11 Aug 2004

Paul and Sheila are friends of Catherine and myself, who live in Gex which is just outside of Geneva. Sheila works for the WHO, which is why they're in Geneva. I liked the alps -- it was nice. It's hard being in a country in which you don't speak the language however.

Sun, 01 Aug 2004

Well, the plane to London was delayed for three hours, so I got into the airport about 10:30 in the morning. Customs and immigration were a breeze, and I was soon on my way via the tube to the hotel.

The tube with luggage isn't too bad, but having only one suitcase instead of two would have made it nicer. In the end I got lost on the way to the hotel and called a cab. Cabs in London are expensive, in fact, everything in London is expensive.

I was a little underwealmed with the hotel (the Hyde Park one), as the rooms were very small, and I got charged $300 Australian for one night. The TV didn't work, and a phone call cost one pound fifty in connection fee. They adverstied a wireless hotspot, but I certainly couldn't find it. The staff didn't even know what a computer was. They thought I was looking for a phone. I would recommend avoiding the Ramamda Jarvis Hyde Park.

Breakfast was funny. I shouwd up 10 minutes after the advertised opening time, and the staff were still getting dressed. It was quite exciting, you had to guess what big of clothing they would have on next each time they walked out. The food also took ages to appear.

Coffee in England is crap. At least coffee in the US is only weak.

The train to Wokingham was nice, the people in the UK office lovely, and the Thai resturant in Wokingham whose name escapes me delightful. The porsche ride to the Radisson Edwardian at Heathrow was fun too. The Radisson Edwardian was much nicer than the previous night, for the same price and in a very expensive location...

I was surprised by how brown Kensington Gardens were, but the Diana memorial children's playground looked like a lot of fun. It was chockers.

Sat, 31 Jul 2004

Fri, 30 Jul 2004

When I was visiting my brother in DC I commented that on the walk home one night I had passed in front of the heavily guarded, but otherwise identical building to his in the office complex, as I did every morning and evening. As I passed by it became obvious why there were so many rent-a-cops hanging around all the time -- they hadn't turned the inside lights off, and it was dark inside. The bottom floor was littered with TVs showing news coverage, re-elect Bush posters, and a a few stressed looking staffers.

Fri, 23 Jul 2004

So, OLS 2004 happened. It was good, and my tutorial went ok. It finished 15 minutes early, but it's really hard to judge how many questions you're going to get in a two hour talk. Now I should just write up the slides into some sort of tutorial document while I still remember what questions people asked...

Martin is right -- Damien Conway is a fantastic speaker. The new perl 6 actually cleans up a lot of the ugliness I see in perl 5, although I do have to agree that the obsession with making every operator a single character (and therefore using unicode) is evil.

Today I went on a bus tour of Ottawa. Some things to note -- the downtown area near the Rideau center is no where near as neat and clean as it was in DC, which isn't unexpected. There's rust everywhere, probably because of the salt they use to melt the snow on roads in the winter. The architecture also strikes me as kinda French too.

A nice town though, worth a visit, although there isn't masses to see -- kinda like Canberra.

Went out to the Business Alliance Partners Conference at Landsdown Resort. This is what the US office calls their Value Added Resellers (VARs).

It was a useful experience. It looks like Web Services are really big here, and I fielded quite a few questions about our offering in that area. That made me think about the open source Web Services offerings out there. I'm not really aware of anything which makes writing a Web Service on Linux trivial, but then again I haven't looked. I should change that sometime soon.

First day in DC. I spent the day catching the Orange line metro to Vienna station, where one of the folks from the office kindly picked my up. It was nearly lunch time by the time we'd made the drive into the office (it's about 30 or 40 minutes drive from the station), so we had a quick chat, and then went off for lunch. After lunch we had a chat with a couple of partners, both of who are involved with different parts of the NMCI project.

So, I caught the metro across to National Mall this morning and had a bit a look around. I must say that I am very impressed with the DC metro -- it's clean, fast, cheap, and I haven't had to wait yet. Admittedly I haven't caught a metro train in peak hour yet -- that's on the cards tommorrow when I have to go from the Courthouse station to Vienna on the orange line at about 8 am.

Anyways, I went to the Smithsonian Air and Space museum, which was fantastic. I also dropped in to the Capitol building, the Whitehouse, the George Washington monument, and the Smithsonian Natural History museum. I am definitely going to have to bring Catherine and the kids back to here. I think Andrew and Matthew would love it.

Americans seem to be very friendly, and a lot of the things I was expecting haven't happened -- I've only met two beggers, and I have felt physically safe the entire time. I have also only been asked once where my accent is from (a security guard at one of the Smithsonians). I do feel a little self conscious having such an obvious accent here, or at least I assume it is obvious.

The security is a little bit over top, but it does result in me feeling very safe.

So, given this was the first weekend day of my stay in DC, it was my big chance to do some touring with Peter and Jasmine, who had been at work all week. We made it out to the Smithsonian Air and Space hangar at Dulles. The people in the US office were right, whilst it was wonderful, I think the one on National Mall was better, and because all the exhibits are so big it doesn't take long to see them all. They were also still building stuff, so it's the sort of thing that I am going to need to visit again.

I don't regret going though. As a kid I really wanted to be an astronaut, until I worked out that I wasn't American. Seeing a shuttle was very cool.

After that we went out to a waterfall whose name I have forgotten. It was on the Pontomac river though, and some of the houses near the national park were amazing.

Went out to see the Capitol Steps after that in the evening, which was a little expensive by Australian standards, but well worth it. What we need to develop in Australia is some tradition of political satire as an art form.

Wed, 14 Jul 2004

So, I'm now in Washington DC and missing the boys and Catherine. No pictures yet, because I've either been flying, or at the office in DC. Yesterday (my personal timezone) looked something like:

Get up a 4:30 am

Flight to Sydney at 6:50

Flight to LA at 12:50 (it was a 12 hour 50 minute flight too)

Four hour layover

Five hour flight to DC

Trip in a wierd moving room

Back to my brothers house

Sleep (I'd been up and going for about 35 hours)

Today I went into the office and had a chat to our developer relations guy over here, as well as a couple of partners working on NMCI. I took the orange line of the DC metro -- I must say I was impressed. It was clean, fast, and not at all scary. The weather is nice here, but very humid. I'm not too badly jet lagged, probably because I didn't get much sleep on the plane, so I slept pretty well this morning. I got only 6 hours sleep, but I am used to that because of the boys.

Sun, 11 Jul 2004

Michael Still released his first Open Source project in July 2000, and has been actively developing ever since. He has had a variety of articles published by IBM DeveloperWorks, and once made a Tux out of fairy lights. Michael has focused recent efforts on janitorial patches to the kernel, as well as the mandocs build target. His gym program states his exercise goal as "develop laser death vision". Michael lives in Australia with his wife, two kids, and a cat.

Michael has been working in the image processing field for several years, including a couple of years managing and developing large image databases based on Open Source for an Australian government department. He currently works for TOWER Software, who manufacture a world leading EDMS and Records Management package named TRIM. Michael is also the developer of Panda, an open source PDF generation API, as well as a bunch of other Open Source code.

Michael has worked on large scale image processing and storage for several years, including a couple of years managing and developing large image databases for an Australian government department. He works within the Research and Development division of TOWER Software, mainly focusing on server side software. He is currently responsible for the Web Service project, as well as a variety of other .NET tasks. He has been with TOWER for three years.

Michael has extensive experience developing on Windows platforms, as well as various forms of Unix, including AIX, FreeBSD, and Linux. Michael holds a Bachelor of Computer Engineering from University of Canberra, and is currently studying towards his PhD on operating systems implementation from ANU. Michael holds committee positions with two national professional IT associations.

Michael’s gym program states his exercise goal as “develop laser death vision”. You should show caution if you find him staring at you, because he’s probably trying to set you on fire. He once made a penguin out of fairy lights.

Michael is an ordinary committee member on the AUUG board, as well as serving in a similar position with Linux Australia. He has been administering networks, systems, or writing code professionally since 1996, and currently works for a major Australian ISV. He is also extremely active in his local LUG.

Today is my last full day in Canberra for a while. We went out to the New Parliament House open day the other day, which was nice as that's where Catherine works now. I think it is good for the boys to see where mummy works. The oddest thing about the whole day was that the security guards wouldn't let us take pictures of the cabinet room or the Prime Minister's office -- despite media pictures from those locations being quite common. Apparently it's something to do with security, but the logic certainly escapes me.

I noticed on Sunday that despite the incompetent attentions of Mega Sealed to my leaky shower (they've had three attempts now), I ended up pulling off the shower screen investigating why the leaks continued. I told the man from the company that I thought the silicone around the shower screen needed love, and the pictures I took seem to agree with me. I'll let you draw your own conclusion:

That green stuff is algae. It was very alive still, and the whole area was quite damp.

The damage to the cupboard in the master bedroom which backs onto the leak is quite extensive. The hole in the back of the cupboard was me chasing the water... I don't mind fixing the joinery, but am worried by the damage to the frame of the house:

The only thing which makes me a little happier about the whole thing is that I want to tear down that wall in about 5 years anyways, and it's not structural.

So why did I pull down the shower screen two days before going away for three weeks? Well, I wanted to let things dry out, and now the screen is back on and siliconed properly. Hopefully things will be able to dry out while I am away and then I can fix the cupboard. Catherine and the boys will still be using the bathroom while I am away of course.

Thu, 08 Jul 2004

Wed, 07 Jul 2004

Well, I'm putting the finishing touches on getting ready to leave on my trip... Little things like packing my bag, and making sure I have foreign currency. The currency issue is interesting in that there are some really crap currencies out there. If you're not paying attention, then US and Canadian dollars certainly look a lot alike to me, for example.

There's a CLUG programmers SIG tonight which is about the recent GCC summit in Ottawa -- that should hopefully be an interesting talk.

Catherine seems to be having a ball at New Parliament House. It sounds like a really good place to work, if a little detached from reality. Little things like there is a bank on the inside of the security, so the bank doesn't bother having flyup screens.

Paul Boutin has an interesting story about a local government who has been sending internal private email to Sweden accidentally for years.

Tue, 06 Jul 2004

So, we have this promotional video at work which we own the copyright to, and we needed a copy as an XVID encoded AVI file for some of our sales people to wander around the countryside with. It turns out that most of the documentation I read was just plain wrong, so I thought I would document what I have to do to get it to work here...

So, going through a userspace filesystem which does nothing apart from rewrite the request added two minutes to my kernel compile. That's not too shabby in my opinion. I'll have more conclusive results by the time I present my FUSE tutorial at OLS.

It's just occured to me why today is going so slowly -- it's a holiday in the US (July 4th), and therefore no one is slashdotting, or mailling me. Very wierd -- it feels like Christmas, expect that I have to be in the office cutting code...

Catherine started training for her new job today -- she's going to be a guide at New Parliament House, which is our equivalent of the White House (expect the Prime Minister doesn't live there). It's only a two week contract for her training, and then possibly another contract. They'll be hiring people permanently soon, so having already been trained will position her well. It's a little painful in that she doesn't know what is going to happen, but I am sure things will work out for the best in the end.

I am pleasantly surprised with how fast user space filesystems using FUSE are. Here are some preliminary results:

So, going through a userspace filesystem which does nothing apart from rewrite the request added two minutes to my kernel compile. That's not too shabby in my opinion. I'll have more conclusive results by the time I present my FUSE tutorial at OLS.

Wed, 30 Jun 2004

“SUV takes plunge: Pat Campanella, left, and Affordable Towing and Recovery owner Devin Statts discuss how to get Campanella's SUV out of Katherine Peacock's pool in Hawai'i Kai. Campanella was giving his wife a driving lesson when she overcompensated and drove into the pool.” http://www.livejournal.com/users/jwz/361079.html

Tue, 29 Jun 2004

Todays task was to export the type safe collection over a web service boundary. This means that the XmlSerializer needs to be able to run on the collection. Initially I got this error message:

You must implement a default accessor on
xxxWebService.Service1+ThingieCollection because it inherits from
ICollection.
Description: An unhandled exception occurred during the execution of
the current web request. Please review the stack trace for more
information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: You must
implement a default accessor on
xxxWebService.Service1+ThingieCollection because it inherits from
ICollection.

The solution was to add an "indexer" to the collection implementation, as so:

Mon, 28 Jun 2004

This is just a simple example from me exploring how to build a type safe collection which can store more than one type. It's really very simple -- all you have to do is overload the Add() method, and ensure that only the types that you want to get added to the collection have an Add() method. Everything else will then get a compilation error.

This is just a simple example from me exploring how to build a type safe collection which can store more than one type. It's really very simple -- all you have to do is overload the Add() method, and ensure that only the types that you want to get added to the collection have an Add() method. Everything else will then get a compilation error.

So, I've been very busy recently becuase of the various things one needs to do for the end of the financial year. This has included stuff for work, marking of university assignments, a report and plan for my PhD, and preparing for several talks that I am giving overseas in the next month or so. It's nice that things are starting to settle down again, but I think it's not going to get much quieter until I actually leave to go overseas...

Get I use the backing data to get a class handle using .NET reflection. Because the backing data is an object, and everything is an object, the backing data could be anything (including a TRIM Record object for instance).

Get I use the backing data to get a class handle using .NET reflection. Because the backing data is an object, and everything is an object, the backing data could be anything (including a TRIM Record object for instance).

Tue, 22 Jun 2004

So, it's night time here, and I'm in my office at university working on a talk this Thursday. It's going to be a dry run of my talk for OLS, but I'm starting to think that I wont be able to have all the content ready by then, so it might also be a best effort kind of affair. I think I'll give this another hour here, and then head home.

Mon, 21 Jun 2004

It's hard to believe, but I'm still marking Comp 3310 assignments. I'm not allowed into the office today because I have a medical certificate covering me until the end of today for my weekend illness, so I've spent a bunch of today getting as much marking as possible out of the way. I think I should have them all done by the end of the weekend. Hopefully.

Sun, 20 Jun 2004

I mentioned a while ago that I was working on implementing Diffie Hellman key exchange using the Microsoft CryptoAPI. It turns out that despite the mightly strong drugs that the Microsoft hackers who wrote the API were snorting, I managed to prevail...

If you want to know how to do this yourself, I recommend that you start off by trawling the Microsoft MSDN Newsgroups. Unfortunately, I don't think I can show you my code, what with it being proprietary and all.

The hard bit is, how do you test something like this? Sure, the encrypt routine produces something interesting looking when you've exchanged keys, but there's no gaurantee that it's not just using the default encryption key or something. I'll need to think about that bit some more.

(I've developed a new way of working at home which is very nice. I leave the work laptop and external hard disk on my desk, and then I can wander around the house with my personal laptop. The personal laptop has wireless and runs at a much higher resolution, which means I get more screen space for hacking. I use remote desktop protocol to get to the work machine so that I am still using the right version of the compiler and everything. It's quite liberating.)

One of the delights of pay TV is that occassionally they dig up an old show I used to love. As a kid, I was totally enarmoured by the A-Team. Mr T was just so cool. Anyways, Foxtel is reairing the series on TV1, so I couldn't resist having the TiVo record one for me.

Now, it turns out that like every other show I've watched recently which I liked as a kid, it's crap. Very crap. It did provide an interesting demonstration of how the video player software I am using works though... Initially I just did a screen dump to get the frame above. Here's what I got:

Note the blank spot where Mr T should be. That's because the video player is getting the video card to overlay the video, instead of doing it all at the X Window level.

Went to the second Microsoft Security Symposium and developer thingie on Friday last week. To be fair, I must say that they're still the only major vendor who has booked out the national convention center for a day (twice) to tell people that their products are insecure, and how they're working on it.

It's a pleasant breeze of corporate honesty. I think Robert Scoble needs to realize that when a company has acted in a manner so hostile to other companies (for example crushing Netscape), it might take some time for people to trust them again.

It would be nice if there was more of a focus on non-web developers at the Microsoft developer events though. Apparently there will be slides online sometime, but I can't find them on the event page.

That Dr Jesper dude in the photo above was cool. Mainly because he clearly knew his stuff, and still had a sense of humour about securing your network -- anyone who calls HTTP the "universal firewall traversal protocol" has to be good.

Well, Foxtel Digital finally got installed after a six month wait on Thursday last week. The installer was really nice (apparently the delay in install is because they only have 13 people doing installs in Canberra), and the install took about an hour and a half.

The problem is now I have to relearn what my favourite channels are. The Nick Jr channel looks to be a winner though.

The article is a good read, even if it is quite long. Joel discusses how he thinks Microsoft has lost the API battle by forcing people into a large upgrade that they're not going to agree to, and that web applications are where it's at. He's omitted and interesting point though -- Microsoft's API is further devalued by the open source implementations of .NET (Mono and dotGNU). Now I can implement a "Windows Forms" application which runs as well on Linux as it does with Windows. This is going to make it a lot harder for Microsoft to sell it's cash cow Windows in the future as well.

Ahhh, that would be why I feel so uncomfortable with the win32 API. Doing that with POSIX takes about three or four lines of code as well. Another example is memory mapping a file, which with POSIX takes about three lines, and with Windows takes about three pages and a day of research.

Tue, 15 Jun 2004

I need to paint some gradients for some code I'm playing with at the moment, so I've been trying to decide how to tweak libmplot to do gradients. I think Bezier curves might be working for me. Whatcha think?

COMP3310 marking continues -- I'm most of the way through looking at people's part one implementations. I'll then move onto looking at everyone's part two implementation. Thankfully most people didn't do part three, which will make that a lot easier to mark. I still haven't come up with a list of criteria that I will be marking for with parts two or three. I'll let you know when I have one.

OLS 2004 are currently working out the schedule for the conference and it's looking pretty sweet. It looks like my tutorial on userspace filesystems using FUSE will take about two hours of talking, which is less time that I asked for. That's probably a good thing, because I was starting to get worried that people might get bored with the tutorial if I waffled on for three hours. It also means that there is less content for me to write :).

They are insane though. The programme starts at ten in the morning, and runs through until nine at night. That's 11 hours with only two hours of breaks in the day. Wow. It is consistent with last year though...

(I wrote my first Java code in 1996. I initially liked the language, but I am forced to believe that all the promise of the language has been squandered by corporate greed. Write once run everywhere for example is pretty much a joke.
Anyways, following on from my brief comment about not being a Java fan the other day, I thought I should share some of my favourite Java quotes which I have bumped into in the last couple of days.)

Looking at all these quotes makes me realise what rubs me the wrong way about Java so much. Java people (or at least the ones I have had the pleasure of meeting) seem to assume that Java is the one true way, and aren't willing to consider alternatives. It's this dogmatic adherance to one language in the face of massive reality that annoys me so much. I regularly program in about five languages (C, C++, C#, shell and perl), and will pickup new languages are they
present a scenario in which they provide utility. Languages are merely a way of expressing yourself, not a tool in themselves.

The Java people I know can't accept that. It has to be Java. It has to be the gang of four's design patterns (which are occassionally useful, but not always). It has to be full of objects, even if they make no sense except slowing th
e world down and making the code incomprehensible.

I'm not saying all Java programmers are insane. Just the ones I have met.

Oh, and did I mention that Java is slow?

Oh, and that Sun's open source policy (or lack of a coherant one at least) frustrates me on a personal level?

Sun, 13 Jun 2004

Michael Still <mikal-XfxbtgnDfV9BDgjK7y7TUQ@public.gmane.org> writes:
>> The June CLUG programmers SIG meeting is next Thursday night (10
>> June 2004) at 7pm in room N101, on the ground floor of the Computer
>> Science and Information Technology building at the ANU.
How many people typically turn up?

This annoys be because I feel that gmane has no right to rewrite my email address like this. As the administrator of stillhq.com, I get a lot of dictionary attack email, which all gets marked as spam. Basically, any email delivered to me from an email address I don't know about, is marked as spam.

I can't think of any technically valid reason that gmane would want to be mangling my email address like this. If you're wanting to email me. Use my real email address please.

Sat, 12 Jun 2004

I note a blog post from Will about having gone wireless. I wonder how he's going to deal with the security aspects. My personal solution is something along the lines of sticking my head in the sand. I don't pay for Internet traffic, so I route web and ssh traffic out from my wired network to the Internet without any attempt to control it. Effectively the wireless traffic is as trusted as traffic which came from the Internet.

You have to be running a VPN client to get onto my wired network however.

The logic behind this is that WEP and MAC address locking are both so hideously broken that they just bring a false sense of security. It's better to know that you're at risk, than to feel safe when you're not.

If this slowed down my own surfing I might reconsider, but I don't think anyone has ever noticed the free wireless in my little part of Canberra.

So, I've spent a lovely couple of days marking the COMP 3310 assignment two submissions in my bundle. The assignment was to write a proxy for PostgresSQL (a relational database) in java. This proxy is to be used for firewalling of users from the database server, and access control list style control of what SQL commands a user is allowed to execute on the server. It was to be implemented in Java (I've never been a big fan of Java, I just don't see the point in the language -- I'm happy for you to try to convince me of it's worth though).

So far I've only looked at part one, but here's some things I expected people to have done:

The proxy to run without a configuration file using those defaults

A small simple select to work

The proxy to not crash if the user gives a bad password

A large select (5.5 million rows returned) to work

Three simultaneous large selects to work

The coding style used not to horrify me

Some form of commenting

That's not everything, but it's a set of hints however. I'll let you know my thoughts about marking part 2 when I have some.

Fri, 11 Jun 2004

So, if you're bored, checkout the referrer spam on Rasmus Lerdorf's toys page. It's pretty blatant when the top half of the referrer list are porn sites of one form or another. I've never looked at the referrer logs for this site. I wonder if I'm experiencing some sort of attempt at this too?

Lessig has just declared himself email bankrupt. I have to sympathise with him... It feels really wrong to have someone go to the effort of emailling you, and then not taking the time to reply. The problem being of course that I have no hope of replying to all the mail I get each day, and still getting anything productive done.

Wed, 09 Jun 2004

So, I've been getting a bunch of mail from shareyourexperiences.com, claiming that someone is offering to bad mouth me. It turns out that this is a scam. My spam filters have been tweaked accordingly -- perhaps you should consider doing the same.

Well, mail still appears to be constipated. The ISP is looking into it, but they don't seem to be having a lot of joy. On another note I really have to start thinking about marking COMP 3310 assignments. I've been distracted with Matthew being in hospital with asthma. The kids seem to be taking it in turns at the moment to have asthma attacks...

Tue, 08 Jun 2004

It would appear that my ISP is having some troubles delivering mail, as their virus scanner keeps locking up. I just looked, and they have something like 23,000 emails in their queue waiting to be delivered. Apparently there is yet another Windows virus going around which is hitting them pretty hard.

If you're expecting mail from me and it hasn't got through, patience is probably advised for the moment. Sorry for any inconvenience.

Reproducing the text and graphics here would be pointless.
Questions arise such as Are Japanese more visually/graphically oriented
than Westerners? Why such a (cultural) difference between the two bulletins?
Is there something about the Japanese language in its written form
that requires illustration?"

Mon, 07 Jun 2004

I picked up my Siemens SL42 in September 2002 (ish). At the time it was attractive because of the MMC slot which meant that the built in MP3 player could have some space to store music. The screen was never very special, but apart from that it was a nice phone. I have a policy of not buying Nokia or Ericcson any more, as I have always found them unreliable, and the manufacturers appear to have no pride in their products. Take the Nokia 8210 for instance -- mine went through three screens, and everyone I know with one had similar experiences, but there was never a product recall.

The SL42 finally gave up the ghost earlier this year, so I just bought a new phone, which I'll discuss in a later entry once I've charged the battery and had an initial play.

I also need to learn how to extract the phone book data of my MMC card without being able to power up the phone any more.

Sat, 05 Jun 2004

For once I got a fair bit done yesterday. It ranged from hanging a new curtain in the boy's bed room to working on the tutorial for OLS (which I am starting to feel a little tension over), to looking at some code I wrote ages ago and which needs more love.

Now, if only I can keep on some sort of productive roll all weekend. It might not be helped by the funky gastro bug which Matthew pickup up last night.

Tue, 01 Jun 2004

So, my task for the day is to implement Diffie Hellman Key Exchange. Despite not being inadequate, I am having a lot of trouble finding examples of how to use the PROV_DSS_DH provider to implemented CALG_DH_EPHEM... I figure that only mugs implement their own implementation of such things if they can humanly avoid it (that seems to be asking for a security bug later), so I really want to use the OS services which implement this.

Sun, 30 May 2004

Catherine and I went to the SouthCare fundraising dinner on Saturday night on the TOWER Software table. It was fun, although the Las Vegas theme with an Elvis impersonator was a little over the top...

They ended up raising heaps of money for the SouthCare helicopter, and as Matthew was a candidate for it's services that seemed like a good thing to happen. There was one particular painting which I would have liked to win at the auction, but someone from work's wife won it instead... Perhaps I can ask for visitation rights.

I found the following whilst surfing trying to find out what on earth the lyrics to "Who Let the Dogs Out" by the Baha Men is talking about...

"...For years human beings have owned other human beings. This was called slavery. During times of slavery, slave owners talked about the difference between treating their slaves in a "good" way and in a "bad" way. The issue was never, should we or should we not own slaves. For a more detailed discussion of this notion, see Valerie Martin's book Property. You'll find it to be an eye-opener.

The same issues apply to us, in this 21st century. We have conditioned our lovely canine friends to live under our rules. They are used to it, yes. They have learned to love us anyway, yes. But it is not right, no. Dogs should live free, should live lives unfettered by humiliation due to forced public defecation and having to walk on a leash."

After a six month trip in the land of the 56k modem, I have DSL again. This is after Telstra kindly agreed to increase the range of the ADSL kit their using so that I could get coverage. How nice of them to let me buy a product!

Sat, 15 May 2004

Bob Edwards picked up a Dick Smith web cam a little while ago. It was interesting because we've both been looking for OV511 based web cams for a while after I picked up a nice on on holidays in Perth -- I haven't been able to find a supplier since. This new camera is an interesting one for a couple of reasons:

It's OV519 based

It speaks JPEG natively (and therefore doesn't work with video4linux)

It's cheap (about $60 Australian)

The driver only works with Linu 2.4 kernels at the moment

So here I am on a Sunday evening, in my office at ANU fiddling away. I've had this camera on my TODO list for a little while, so I have some code already. The basic approach I am taking is to take the 2.4 driver which outputs JPEG files, and write a little user space daemon which decompresses these, and then reinserts the images into the video4linux system so that other applications can still use the camera.

I'm standing on the shoulders of giants here, because there is already a driver, there is sample code for the reinjection (from the dude who wrote Motion), and JPEG decompression still pretty well understood. So far I have a user space application which reads a frame from the camera and sticks it in a file on disc. I just have to solve the reinjection problem now...

The images aren't too amazing. Here's a sample:

It's pretty hard to focus at the moment because it's getting dark outside. This might not be the best image quality the camera is capable of...

So, with my ISP offline, a bunch of my distractions for the day just went away. This is a good thing, because it means that I have to get more work done. I've been feeling a little how Joel describes recently. I suspect that the problem for me is that the Open Source world doesn't seem to be moving as fast as it was a couple of years ago, and the honeymoon is over to a certain extent.

I'm kinda slipping into the daily grind at work as well. It's easier to predict now what a given day will bring, which reduces the excitement one can throw at a new problem.

I think part of the problem for me is that I entered the industry in 1996 -- during the recent unpleasantness called the "dotcom". This is my first industry downturn, which make it a little harder than it actually was. Now that things seem to be picking up a little, hopefully the world will get a little more fun again.

For my PhD I'm playing with methods of determining what compression algorithm is applied to raster image data algorithmically. For that I needed to generate a bunch of test images. I've put some performance enhancements into the CVS version of libmplot to assist with that.

Fri, 07 May 2004

I'm writing this on my new IBM ThinkPad R51, which arrived about half a week before they said it would, and only about 10 days after I ordered it. I thought that was pretty impressive service for a model so new that they didn't have any of them in the country yet when I ordered it. Anyways, some dirt on the machine... It's an 1829-EBM, which is distracting to anyone who has two young children -- EBM is short for "Expressed Breast Milk" to parents of young children. It's got a 1.7Ghz Pentium M (Centrino), a gig of RAM, and a 60 GB hard disk. There's 802.11a, 802.11b, and 802.11g, all done with an "IBM miniPCI card, which reports itself as a "Atheros Communications, Inc. AR5212 802.11abg NIC" in the lspci output below:

Let's work through the features of the laptop, and I'll tell you if they work yet...

Video

The machine has an amazing 1400 x 1050 LCD display. I've been used to the micro-laptops that I've been using for the last few years, and this is the first laptop I've ever owned which can do more than 1024 x 768. It's taking a little time to get used to my eye having to move horizontally to see an entire line of text. The display is amazingly crisp, and X worked almost instantly (Debian Unstable) without any fiddling. I'm using version 4.3.0.dfsg.1-1 of XFree86, where I suspect that the dfsg is a Debianism. I've put the XF86Config-4 file online for other people's reference. I used the ATI driver.

I use 2.6, so I've got ALSA configured on the machine. This machine uses the same sound driver as the Dell D400 I was using before this machine. Select "Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111" from the ALSA PCI drivers menu in the kernel config.

Sound just works. Remember that ALSA defaults to all the volume levels being turned down at first, so you'll need to turn the sound up for noise to come out of the machine. The best feature of the Intel AC97 sound chipset is that finally I can control the headphone volume separately from the speaker volume. That's very handy, as I hardly ever use the speaker.

Unfortunately, the ThinkPad displays the same behaviour as my old X21 -- plugging in the headphones disabled the speakers, and the headphone volume control seems to be ignored.

There is no line out jack, but I never use that anyway.

Networking

The wired network card is a an Intel Pro 1000 gigabit card. Use the e1000 driver, and all is good. I haven't got the wireless network card working yet, as I've only owned the machine for a day... I'll let you know when I have more to say on that point.

Update: There is a driver for the wireless card called "madwifi"... It just works.

I've only used this to install the system, so I don't know if it works well yet. I'll get back to you on that one.

Other stuff

Well, I can't think of anything else about the machine to mention, apart from the fact that the machine ships with a nipple (which I've always prefered, and is the normal ThinkPad thing to do), but it's bigger and rubbery. It's actually a lot nicer to use. It also comes with a touchpad like the Apple and Dell machines. I hate these, but I know other people like them, so it's worth mentioning. I must also say that the keyboard is very nice, much better than the Toshiba, Acer, and Dell keyboards I've used recently. It's also very close to full size because there is a lot of space for a keyboard for once. Very nice to type on.

The battery is huge (it protrudes out the back of the machine), and the machine is a little heavy at 3.147 kilos. It doesn't fit in my old laptop bag, but IBM gave me a new one in their wisdom. I don't know about my backpack yet.

Update: ACPI S3 hybernation (suspend to RAM) now works for me, even in X Windows! (23 July 2004)

So, after a very satisfying session with Len Brown from Intel at OLS, S3 suspension of the machine now works. What did I need to do to make it happen? Well, I used the latest 2.6 kernel bitkeeper snapshot (which will become 2.6.9, which isn't out yet), and applied this patch, which will make it into the mainline kernel sometime soon, and then just compiled.

Everything just worked then if I do a:

echo 3 > /proc/acpi/sleep

...and wakeup works by default. All you need then is a script in /etc/acpi/ to do the echoing when you shut the lid. I used these dodgy scripts:

Wed, 05 May 2004

My employer had a stand at CeBIT Sydney, so a car full of us developer types went up to have a sticky beak. It wasn't really what I was expecting -- the only other similar thing I had been to was MacWorld about 10 years ago -- but was quite worthwhile. It's amazing the amount of wireless hardware out there that people are pushing. It felt like about a quarter of the vendors there were selling wireless hardware of some form. I didn't count the stands, but the telecomms area of the show was huge.

There were a lot of Windows machines there too. The only obvious Linux vendor I could find was a little booth in one of the corners. It was good though, it's the first time I've seen Lindows / Linspire in the flesh. It's a pretty blatant clone of Windows if you ask me.

Tue, 04 May 2004

Brushenator the tooth Cleanser and Mr Scrubby just helped Andrew clean his teeth. He enjoyed it.

On the parenting front, Kristy, a friend of mine is starting a parenting information website. I put in a suggestion that more Bananarama quotations were needed on the site (I'm that kind of helpful guy). Here's the response I got:

Dear Mikal
Thank you for contacting the Baby Steps customer service team through our
feedback option. We have spent considerable time deliberating how to include
your suggestion into a web site created for meeting the needs of babies who
will never really comprehend the life impact that Bananarama had on the lives
of their parents.
It has also been suggested that bringing child to a level where they relate to
their parent's experience could be dangerous and will affect natural
communication development. This is particularly so in the case of adolescent
behavioural tendencies. Who know's what may happen when a teenager no longer
feels that they can yell, "You don't understand me!" at their parents?
However, should there be further feedback from others on this need for more
Bananarama content we will be sure to revisit the matter and seek futher input
from our resident psychologist.
Thank you for your feedback.
With kind regards from
The Baby Steps Customer Service Team

Finally! Someone willing to listen to my suggestions! When the site is finished, it will be www.babysteps.com.au.

--- BEGIN IRC LOG ---
<rh_pr> We are announcing Red Hat Project! A community-based
distribution!
<oss_crowd> rh_pr: Neat.
<rh_dev> rh_pr: Uh... I'm not ready.
* rh_pr is away: promoting rhel
<oss_crowd> rh_dev: what do we do?
<rh_dev> oss_crowd: I'm not sure.
<rh_legal> rh_dev: don't do anything until I say it's ok.
<oss_crowd> rh_dev: what can we do to help with Red Hat Project?
<rh_dev> oss_crowd: uh... file bugs and help test things.
<oss_crowd> rh_dev: didn't we always do that?
<rh_sales> hey, all, if you really want a stable system, don't use
fedora project. It will eat your brane. Buy RHEL instead.
<rh_dev> rh_sales: stfu
--- rh_pr removes voice from rh_sales
<fedora_us> hey, all, check out our neat community-driven system for
red hat development
<oss_crowd> fedora_us: ooooh!
<rh_pr> fedora_us: I like your name
--- fedora_rh joined the channel
<rh_legal> much better
<rh_pr> We are announcing Fedora Project! A community-driven
distribution!
<oss_crowd> rh_pr: Neat!
* fedora_rh waves
<fedora_us> I'm not dead yet.
<fedora_rh> fedora_us: don't confuse things.
<fedora_us> fedora_rh: does this mean we're merging?
<fedora_rh> fedora_us: maybe
<rh_legal> fedora_rh: don't do anything until I say it's ok.
--- fedora_us joined #limbo
<oss_crowd> fedora_rh: so, what can we do to help?
<fedora_rh> oss_crowd: uh... file bugs and help test things.
<oss_crowd> sigh... didn't we always do that?
<fedora_rh> oss_crowd: I know, let's all go in the circle and say our
names.
* oss_crowd goes in the circle and says their names. This
lasts several months.
<fedora_rh> So, there will be the following features in the next
release of Fedora Core.
<oss_crowd> Uh... Hold on. Who gets to decide?
<rh_sales> We do. That stuff will be neato for RHEL-4.
<oss_crowd> MMkay, then. When do _we_ get to suggest things?
<fedora_rh> oss_crowd: feel free to talk among yourselves.
* oss_crowd talks among themselves about new features.
<fedora_rh> btw, feature X will be disabled in the release.
* oss_crowd glares at fedora_rh
<oss_crowd> fedora_rh: nice of you to tell us while we were sitting
here talking.
<rh_dev> oss_crowd: sorry, it's just not happening.
<oss_crowd> rh_dev: when do we get to decide what's happening?
<rh_dev> oss_crowd: Dunno, I'll ask rh_legal
<rh_legal> rh_dev: ugh, /msg me
<rh_sales> rh_dev: let's not do anything rash here.
* fedora_us gets tired of sitting in #limbo
<oss_crowd> fedora_rh: I want to see more of the "community" part of
the whole "community-based" thing
<oss_crowd> rh_dev: how about at least a publicly accessible CVS/SVN
tree?
<rh_dev> oss_crowd: Yeah, that would be cool.
<oss_crowd> rh_dev: finally, some movement. When is that going to be
up?
* rh_dev is away: talking to rh_legal
* oss_crowd tries to occupy themselves and do things like
fedoranews and fedorapeople.
<oss_crowd> Uh... ping?
<fedora_uh> oss_crowd: what's up?
<oss_crowd> fedora_rh: We're feeling kinda useless. What exactly is our
role, again?
<fedora_rh> oss_crowd: well, it would be really helpful if you could
test some things and file the bugs.
<oss_crowd> fedora_rh: ugh. We ALWAYS did that.
* oss_crowd begins to wonder what exactly is the purpose of
fedora_rh
<fedora_rh> oss_crowd: it's the open-development, proving-grounds for
new technology component of Red Hat, as opposed to RHEL.
<rh_sales> Told ya it'll eat your brane.
--- rh_pr kicks rh_sales from the channel (you're a dolt)
<oss_crowd> fedora_rh: so, let me get this straight. Effectively, you
want us to download the packages you release, test things,
file bugs, and submit patches.
<fedora_rh> oss_crowd: Sure, why not?
<oss_crowd> ...but when it comes to things like features, direction of
the project, and which software to include in the
distribution, it's the decision of Red Hat?
* fedora_rh is away: I AM RH
<fedora_us> I'm still not dead.
<oss_crowd> fedora_rh: How is that different from how things were
before the whole "publicly-supported distribution" thing?
<oss_crowd> rh_dev: where is that long-promised public CVS/SVN repo?
<rh_dev> dunno, talk to fedora_rh
<fedora_rh> oss_crowd: look, such things don't happen in a week, ok?
<oss_crowd> IT'S BEEN A YEAR!
--- rh_sales joined the channel
<rh_sales> EAT YOUR BRAAAAAANE.
<oss_crowd> /mode +b rh_sales
--- You're not ops in here.
<oss_crowd> figures
--- END IRC LOG ---

Sun, 02 May 2004

So, my TiVo arrived today. Sweet. I've also been thinking about my disc problems, and how to get a lot more disc onto my NAS machine at home without spending rediculous amounts of money. I ended up decided that external firewire was the way to go. I'm thinking an external mini tower case, with a bunch of something like this, or something from here might be the go.

Tue, 27 Apr 2004

It's been a long time since I have written any serious imaging code -- basically since I started my current job I simply haven't had the time, and have found other coding persuits to be more interesting. Hence the handover of Panda to Evan.

This last weekend though I had a good reason to start caring about images again. The experimental ov519 driver for Linux which is out there is a bit odd because the driver delivers JPEG compressed data through the /dev/video[0-9]+ device file. This is because that's what the underlying hardware does. This doesn't match the requirements of the published video4linux interface however.

I've therefore whipped up a minimal video4linux application which twiddles the ioctls, reads the JPEG compressed data, and then decompresses it. Well, that's the theory at least -- the in-memory decompression is this afternoon's task, and I haven't finished it yet.

The next step after that is a simple kernel module which takes the decompressed data from user space, and offers it back up via a video4linux device file. That means that all the video4linux applications which you have grown to love will continue to work, new applications can be written that know about JPEG, and the decompression doesn't have to be done in kernel. It appears that the dude who wrote motion has a simple kernel module which I can leverage as well.

Very cool, and it's nice to make some visible progress for once.

On the work front, we've stopped design on my latest project, and started coding. It feels really good to actually get to write some code for once, and my moral is improving. The first milestone was met today, basically on time...

On the organizations front, LCA 2005 seems to be progressing well (given that we're just less than a year out from the conference now), there's lots happening with Linux Australia regarding the Free Trade Agreement with the US and other things, and AUUG is progressing with getting their annual conference under way. I need to chase some AUUG issues up regarding contacting Australian computer science departments to let them know about the conference, but I'll be looking into that this evening.

It's been a long time since I have written any serious imaging code -- basically since I started my current job I simply haven't had the time, and have found other coding persuits to be more interesting. Hence the handover of Panda to Evan.

This last weekend though I had a good reason to start caring about images again. The experimental ov519 driver for Linux which is out there is a bit odd because the driver delivers JPEG compressed data through the /dev/video[0-9]+ device file. This is because that's what the underlying hardware does. This doesn't match the requirements of the published video4linux interface however.

I've therefore whipped up a minimal video4linux application which twiddles the ioctls, reads the JPEG compressed data, and then decompresses it. Well, that's the theory at least -- the in-memory decompression is this afternoon's task, and I haven't finished it yet.

The next step after that is a simple kernel module which takes the decompressed data from user space, and offers it back up via a video4linux device file. That means that all the video4linux applications which you have grown to love will continue to work, new applications can be written that know about JPEG, and the decompression doesn't have to be done in kernel. It appears that the dude who wrote motion has a simple kernel module which I can leverage as well.

Very cool, and it's nice to make some visible progress for once.

On the work front, we've stopped design on my latest project, and started coding. It feels really good to actually get to write some code for once, and my moral is improving. The first milestone was met today, basically on time...

On the organizations front, LCA 2005 seems to be progressing well (given that we're just less than a year out from the conference now), there's lots happening with Linux Australia regarding the Free Trade Agreement with the US and other things, and AUUG is progressing with getting their annual conference under way. I need to chase some AUUG issues up regarding contacting Australian computer science departments to let them know about the conference, but I'll be looking into that this evening.

Tue, 20 Apr 2004

Had a very productive meeting with a gentleman from the Department of Communications, Information Technology and Arts about the intellectual property provisions of chapter 17 for the free trade agreement. It seemed to be quite a worthwhile meeting, which was nice.

Sun, 18 Apr 2004

Well, I've had a busy few days. I had breakfast with the Australian olympic men's hockey team, had a paper accepted for OLS, and finished building the pantry in my kitchen. More details as they come to hand.

Wed, 14 Apr 2004

(Evan has taken over maintaining Panda, although I will be dropping in from time to time to add code still)

Subject: [panda-development] Panda-0.5.4 Released
Date: Monday 12 April 2004 11:28 pm
From: Evan Nemerson
To: panda-development@lists.sourceforge.net, panda-users@lists.sourceforge.net
Hi everyone,
I've just released Panda-0.5.4 via Savannah and SourceForge. I will make an
announcement via Freshmeat as soon as the files are available via stillhq.com
The release can currently be downloaded from:
https://savannah.nongnu.org/projects/panda
http://www.sourceforge.net/projects/panda
As you may already be aware, the most important change in 0.5.4 is that the
library is now available under the terms of either the GPL or LGPL (your
choice). In order to accomplish this, the TDB code was removed, and either
Enlightenment DB or Berkeley DB (version 4) must be linked to in its place.
Other changes include the addition of link annotations (internal and
external), pkg-config support, and an RPM. The main point of this release,
however, was the licensing issue.
The time has begun to begin thinking about the next release of Panda, and
though I do not have a time frame, I do have a few features I'd like to
implement:
* Improved font handling, using FreeType. I would like to be able to embed
and use arbitrary fonts, supporting line and page wrapping of text boxes.
* Support XMP metadata, noteably Creative Commons licensing data.
* Bindings for different languages, such as PHP, Python, etc.
* Comprehensive documentation, using DocBook XML
* Stronger Windows support
If you have any other ideas you would like to see integrated within the
library, please send a message to panda-development@lists.sourceforge.net

(Evan has taken over maintaining Panda, although I will be dropping in from time to time to add code still)

Subject: [panda-development] Panda-0.5.4 Released
Date: Monday 12 April 2004 11:28 pm
From: Evan Nemerson
To: panda-development@lists.sourceforge.net, panda-users@lists.sourceforge.net
Hi everyone,
I've just released Panda-0.5.4 via Savannah and SourceForge. I will make an
announcement via Freshmeat as soon as the files are available via stillhq.com
The release can currently be downloaded from:
https://savannah.nongnu.org/projects/panda
http://www.sourceforge.net/projects/panda
As you may already be aware, the most important change in 0.5.4 is that the
library is now available under the terms of either the GPL or LGPL (your
choice). In order to accomplish this, the TDB code was removed, and either
Enlightenment DB or Berkeley DB (version 4) must be linked to in its place.
Other changes include the addition of link annotations (internal and
external), pkg-config support, and an RPM. The main point of this release,
however, was the licensing issue.
The time has begun to begin thinking about the next release of Panda, and
though I do not have a time frame, I do have a few features I'd like to
implement:
* Improved font handling, using FreeType. I would like to be able to embed
and use arbitrary fonts, supporting line and page wrapping of text boxes.
* Support XMP metadata, noteably Creative Commons licensing data.
* Bindings for different languages, such as PHP, Python, etc.
* Comprehensive documentation, using DocBook XML
* Stronger Windows support
If you have any other ideas you would like to see integrated within the
library, please send a message to panda-development@lists.sourceforge.net

Fri, 09 Apr 2004

I found that the OzTivo 3.0 1.3 release didn't work out of the box, and that I had to upgrade the versions of the mfsstream and mfscat modules that I had installed with TiVoWeb. Then it all just worked. You can find more instructions here.

Thu, 08 Apr 2004

Last time I asked Kristy over for dinner, the email started with the subject line "Wanna come over for a hot date?", fear not for my marriage, Catherine was there too. Apparently this nearly set off Kristy's spam filter. Therefore, the only logical conclusion is to try to draft an invitation to dinner which would set off the spam filter. I therefore present:

ATTN.: President / CEO
SIR,
CONFIDENTIAL PROPOSAL FOR TRANSFER OF TANDORI CHICKEN FROM FEDERAL
GOVERNMENT OF NIGERIA THROUGH NCTC ACCOUNT
I presume this letter will not be of a surprise to you.
Your company was introduced to me by International Chambers of
Commerce and Industries, but this business was not disclosed to
Chambers of Commerce and Industires.
I am LARRY TOFUALOTOYOU an employee of Federal Government of Nigeria
owned Coporation, Nigeria Chicken Tandori Corporation (NCTC).
Few years ago, the Federal Government of Nigeria instructed the
corporation (NCTC) to award contracts on behalf of Government for
building of a Refinery in the Northern part of Nigeria. In respect of
the above, I and three of my co-employee of Nigerian Chicken tandori
Corporation was appointed as the contract awarding committee of the
corporation (NCTC) to deliberate on the best foreign companies to
handle the building of the Refinery, after much deliberations within
the members of the committee, the contracts was awarded to some
foreign firms to carry out execution of the projects, but before
awarding this contracts, the four members of the contracts awarding
committee have secretly agreed to over-inflate the actual contract
value with the tune of ONE DINNER AT MY HOUSE which we shall use a
reliable foreign company to claim.
Now, the contract are complete and the actual value has been paid off
to the original contractors that executed the building of the
Refinery, we have decided to choose your company to act as the actual
beneficiary of the over-inflated sume of ONE DINNER AT MY HOUSE.
Secondly, your compnay will be front to get all nessesary approvals
and formalities that justifies you as the actual beneficiary for the
concerned Government Ministrires before the fund will be transferred
into your account.
1. You will retain 20% of the total sum transferred into your account
for your contribution towards the business.
2. 70% will be for the four Government officials that originated the
business.
3. 10% will be set aside for deduction of all the expenses which will
be encountered by you and us during the cause of proceszing the
nessesary approvals from the Government Ministries for the transfer of
the fund into your account.
In you are interested in this transaction, kindly handle the matter
with SECRECY and ask for more details by contacting us through the
email address is message was sent from.
Best regards,
LARRY TOFUALOTOYOU

Hmmmmmmm? The other intesting thing is that I couldn't find a 419 email in my archive of recent spam, I had to web surf to find a sample of the offer and grammar... What happened to them all?

Wed, 07 Apr 2004

It's pretty hard to get much done when chasing the kids around the house. My big achivement, apart from playing with klife a little is to rediscover frozen yoghurt... It's yummy.

I'm writing this whilst listening to MP3's in an effort to avoid having to be in the same room as Seventh Heaven. It's just way too cutsey for me. I'm listening to Du Hast. I don't speak German, so I had to surf to find out what on earth I was listening to.

There are Microsoft employee blogs popping up all over the place. It makes me wonder if there was an official edict to start blogging, or if a blanket ban was just lifted or something. An example is the Channel 9 blog, which seems to be trying to make Microsoft seem a little more caring and personal. To whit:

"Channel 9 started as a personal story from one of us about fear of flying. Lenn realized after years of dealing with it, that it was actually a fear of the unknown. The fear was conquered through learning. The more transparency into what it took to fly a plane, the more the fear went away. Lenn got to know pilots who flew planes everyday, and every time he flew he turned on Channel 9 on the in-flight audio system to listen in to the cockpit.

We think developers need their own Channel 9, a way to listen in to the cockpit at Microsoft, an opportunity to learn how we fly, a chance to get to know our pilots. Five of us in Redmond are crazy enough to think we just might learn something from getting to know each other. Were we wrong? Time will tell.

Join in, and have a look inside our cockpit and help us fly the plane.

Welcome to Channel 9.
"

It's a pity about all that video on the site. The site seems to have happened because of the how to hate Microsoft from Robert Scoble.

Some analysis of what Google appears to be up to. A couple of things occur to me here. I'm told that Google keeps their web search database basically in RAM (cause that was it's nice and fast), and that they have 100,000 machines. The smallest disc you can get these days is around a 20gb, and a Linux install takes around a gig (probably less for a secure machine with everything turned off, but this is back of an envelope maths). That means Google must have around 1,900,000
gig of spare storage to throw at the email storage problem. Wow.

Mon, 05 Apr 2004

"The US-Australia "Free" Trade Agreement (FTA): Linux Australia just released its
position paper on the FTA and the
negative effect it will have on Open-Source in Australia. This is a
very important issue, so if you are in Australia, consider writing a
letter to your local member of parliament, submitting something to
the senate committee considering this treaty, or raising awareness
of the issues in your local IT community. Our mailing list will soon
provide details on how you can get involved - but don't wait - the
senate committee submission period closes soon."

Rusty and our
independant legal advice think you should care about this issue too.

Sun, 04 Apr 2004

Sat, 03 Apr 2004

Well, a pretty productive day all around. I picked up another workbench for the garage, which brings me to three benches (printer, electronics, and wood working). I also have four full height shelves sets in there now. Once I've got around to putting everything away, I might post some pictures here. I need more storage yet though.

Had enough free time at last to build a TiVo serial cable, and it's downloading the guided setup schedual information via the wireless card as we speak. I need to remember to buy a solder sucker sometime. I haven't soldered in a while, so I'm pretty happy with how it turned out.

Thu, 01 Apr 2004

Yesterday was spent in a day long meeting with a dude from Microsoft Melbourne named Mark. He was nice, a lot nicer than most of the other people from Microsoft that I've me, who have always struck me as being overly compeditive. We had a good chat about web services and how to implement the one I am working on now.

Unfortunately, he recommended that using reflection on a COM object to emit code to run based on the users request was not a goer. Basically, it's impossible to test well.

I've known in my heart of hearts for a while that it was going to have trouble flying, but it's just such an elegant solution to the problem in hand. I would have meant a complete implementation would take about a thousand lines, and adapt automagically to new releases of the product with no effort on my part.

Instead it looks like we'll go with the thousands of lines of generated code route, which is a shame, but a much lower risk strategy.

Lunch was at the First Floor, which was fantastic. The best bit is the architecture, which was like being in an artist's impression of a warehouse. I can't find any pictures of it online, and I didn't have a camera with me, but if you're in Canberra, it's worth a look.

Is it just me, or is reading Slashdot on April the first essentially a complete waste of time?

Yesterday was spent in a day long meeting with a dude from Microsoft Melbourne named Mark. He was nice, a lot nicer than most of the other people from Microsoft that I've me, who have always struck me as being compeditive to the exclusion of all else. We had a good chat about web services and how to implement the one I am working on now.

Unfortunately, he recommended that using reflection on a COM object to emit code to run based on the users request was not a goer. Basically, it's impossible to test well.

I've known in my heart of hearts for a while that it was going to have trouble flying, but it's just such an elegant solution to the problem in hand. I would have meant a complete implementation would take about a thousand lines, and adapt automagically to new releases of the product with no effort on my part.

Instead it looks like we'll go with the thousands of lines of generated code route, which is a shame, but a much lower risk strategy.

Lunch was at the First Floor, which was fantastic. The best bit is the architecture, which was like being in an artist's impression of a warehouse. I can't find any pictures of it online, and I didn't have a camera with me, but if you're in Canberra, it's worth a look.

Is it just me, or is reading Slashdot on April the first essentially a complete waste of time?

Tue, 30 Mar 2004

We were pathetic last night and went to bed at about 8:30 pm... It was nice, because I feel human again today. We think we have an explaination of why Matthew was so upset the other night... We found blood in his right ear this morning, which implies that he might have been lucky enough to burst an ear drum (for some value of lucky). That would certainly make me scream. Matthew is off to the doctor this morning to see if that's what happened.

Listening to Mr Jones and Rain King on the drive into work. I really like that album...

I was reading Don Box's blog when I found this this morning. Not only is the article an interesting read from the graphics perspective (remembering that I wrote a lot of graphics code before moving to my current job), it's also a rare glimpse of Microsoft humour. Well, I say it's rare. I'm sure that they've overcome being business people enough to actually have a sense of humour, just not in public.

Oh, and I'm still the high bidder for the BSD beard. I think I'll have it framed.

Mon, 29 Mar 2004

So, it turns out that my original mandocs patch for the 2.6 series of kernels was flawed. This isn't really all that surprising, as it was my first patch which introduced new functionality to the kernel (even if it was a little userspacy, and not a required part of the build processes).

It's flawed because it turns out that there are a large number of kernel-doc comments at the start of functions which are never used in any of the SGML documentation. I'm therefore hacking up some tweaks to the build process to go trawling through the code for all of the documentation comments before building the man pages. This will make the build process much slower, but a lot more complete. Given that people will rarely use the build target (comments don't change that often), the slowness is acceptable in return for the better documentation coverage.

So, it turns out that my original mandocs patch for the 2.6 series of kernels was flawed. This isn't really all that surprising, as it was my first patch which introduced new functionality to the kernel (even if it was a little userspacy, and not a required part of the build processes).

It's flawed because it turns out that there are a large number of kernel-doc comments at the start of functions which are never used in any of the SGML documentation. I'm therefore hacking up some tweaks to the build process to go trawling through the code for all of the documentation comments before building the man pages. This will make the build process much slower, but a lot more complete. Given that people will rarely use the build target (comments don't change that often), the slowness is acceptable in return for the better documentation coverage.

Matthew didn't sleep much last night. He just kept screaming, and we're not really sure why. In the end Catherine and I each got about four hours sleep, which is about half of what we normally get. It was lovely I tell you.