Thursday, February 17, 2005


Webservices and Hitchhikers

Today I'm battling with that good old permissions problem that is I'm getting System.IO.FileNotFoundException: File or assembly name ciwbljwc.dll, or one of its dependencies, was not found. when using the XmlSerialiser (Serializer) from a web service.

So to man's other best friend I went, searching for an answer to this thorn in my proverbial. As usual the several answers I tried did less than nada, despite from what I could tell, the same errors and situations - thus is the bliss of programming.

Anyhow, I eventually find a link suggesting to try the XmlSerializer debugger, from the Sells Brothers. I haven't found the debugger yet, because I was distracted by a particular link I found on their (his?) site.

The Hitchhiker's Guide to the Galaxy world premiere trailer.

According Greater Union, the movie is coming out April 28th, which is inline with the US release date.

I'm very excited and have just wasted about 30 minutes watching the preview continuously and am encouraging everybody I've ever met to do the same. The choice of Martin Freeman (The Office Series) as Arthur Dent is absolutely perfect.

Monday, February 07, 2005


log4net - The real conversionPattern

Anybody using log4net 1.2 beta's documentation about the element yet?

You'll notice the documentation providing examples of the conversion pattern element and stating examples of:

Only to find out that when you get your log output, you'll be greeted with a heap of nonsense vaguely representing the format you requested.

Dont despair, its only because the documentation is actually for version 1.1. If you're like me and enjoy using the bleeding edge betas out there, but can't be bothered with all that building from source rubbish, then here are the real format parameters, from the PatternLayout.cs file.

log4net Conversion Patterns
%aUsed to output the frienly name of the AppDomain where the logging event was generated.
%cUsed to output the logger of the logging event. The logger conversion specifier can be optionally followed by precision specifier, that is a decimal constant in brackets. For example, %c{2} will print "b.c" for the logger name "a.b.c".
%CUsed to output the fully qualified class name of the caller issuing the logging request. This conversion specifier can be optionally followed by precision specifier, that is a decimal constant in brackets, which operates like %c. Note: Generating the caller class information is slow. Thus, it's use should be avoided unless execution speed is not an issue.
%dUsed to output the date of the logging event. The date conversion specifier may be followed by a date format specifier enclosed between braces. For example, %d{HH:mm:ss,fff} or %d{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is given then ISO8601 format is assumed. For better results it is recommended to use the log4net date formatters. These can be specified using one of the strings "ABSOLUTE", "DATE" and "ISO8601", which are optimised formatters and perform better than DateTime.ToString(string).
%FUsed to output the file name where the logging request was issued. Note: Generating caller location information is extremely slow. It's use should be avoided unless execution speed is not an issue.
%lUsed to output location information of the caller which generated the logging event. Note: Slow.
%LUsed to output the line number from where the logging request was issued. Note: Slow.
%mUsed to output the application supplied message associated with the logging event.
%MUsed to output the method name where the logging request was issued. Note: Slow.
%nOutputs the platform dependent line separator character or characters.
%pUsed to output the level of the logging event.
%PUsed to output the an event specific property. The key to lookup must be specified within braces and directly following the pattern specifier, e.g. %X{user} would include the value from the property that is keyed by the string 'user'. Each property value that is to be included in the log must be specified separately. Properties are added to events by loggers or appenders. By default no properties are defined.
%rUsed to output the number of milliseconds elapsed since the start of the application until the creation of the logging event.
%tUsed to output the name of the thread that generated the logging event. Uses the thread number if no name is available.
%uUsed to output the user name for the currently active user (Principal.Identity.Name). Note: Guess what? Slow.
%WUsed to output the WindowsIdentity for the currently active user. Note: Slow.
%xUsed to output the NDC (nested diagnostic context) associated with the thread that generated the logging event.
%XUsed to output the MDC (mapped diagnostic context) associated with the thread that generated the logging event. The key to lookup must be specified within braces and directly following the pattern specifier, e.g. %X{user} would include the value from the MDC that is keyed by the string 'user'. Each MDC value that is to be included in the log must be specified separately.
%%Outputs the % sign.


The Last Name Standard

So I've just signed up for the Microsoft Security Summit. Who else has spaces, full stops or anything un-one-wordly in their last name?

Come on people!! I thought we were in the 21st century! Lucky Madonna doesn't try to go to these things, let alone the King of Spain, Juan Carlos Alfonso Víctor María de Borbón y Borbón.

Anyhow, I'm attending the following:

It'll be good to see what the VS Team System folks have done. My system is polluted enough so I haven't actually installed any betas of it yet. Our Source Control is pretty much perfectomondo, thanks to Subersion, but I'll check out what MS are saying about VSS. I'm actually looking forward to the last session, which is actually a TechEd session... sometimes it's good to see whats involved on the other side of the IT bubble.

At the end, I'm thinking about going to William Luu's Geek Dinner, but theres just something decidedly geeky about it.

French rally behind Net downloaders

Well, at least one country has it correct.

Dozens of French musicians, intellectuals and politicians are criticising a "repressive" crackdown against people who download copyright music over the internet.

The campaign is believed to be one of the first of its kind in Europe to unite musicians and consumers in a backlash against the music industry's tactic of filing lawsuits against illegal downloaders.

Now, I know there are people around who think downloading music is stealing from the musicians, but you've got to look at a few things here.

  1. The bulk of the money goes to the Record Label (apparently).

  2. CD's are $10 in the US, and $30 in Australia. Even after the exchange rate, this doesn't work out kosher.

  3. CD sales have gone down 5% or something - but analysis say it was happening before Napster et al anyway.

  4. Many bands now have a musial presense outside of their own towns, after being rejected by the Recording Companies, or not being promoted enough.

My main problem is the price difference of CD's here. There isn't really any excuse. There's no shipping costs. The manufacturing costs aren't the problem when you can buy blank cd's for around $0.40 each. So what is it? Marketing? I dont watch any ads... and I dont think I should have to pay for any.

If CDs were around $10 each, I'd buy them, but with prices going up rather than down, It looks like be downloading for a while.

Tuesday, February 01, 2005


MP3 and Podcast Chapters

I listen to a fair few podcasts. Some of them are quite long, and it becomes a pain in the arse trying to flick between segments of the show while driving and talking on my mobile phone at the same time.

So last night, I was replacing the lightbulb above my toilet, when I slipped, hit my head on the creamy porcellin surface, and suddenly had this idea in my head.

An MP3 ID3v2 tag which describes chapters! It's so simple!

The contents could be Xml, coz thats easy to read, and it could go something like this (taking G'Day World #6 as an example):

<chapter timecode="0:00">G’Day World intro with tune “D24″ courtesy of Melbourne band Spruiker</chapter>
<chapter timecode="0:20">The Australian National Anthem</chapter>
<chapter timecode="2:00">What we did for Australia Day</chapter>
<chapter timecode="4:45">Mick’s judging the Business Blogging Awards</chapter>
<chapter timecode="9:00">Cameron’s infamous IM conversation</chapter>
<chapter timecode="17:30">One of us is going to DEMO@15</chapter>
<chapter timecode="20:15">The sponsorship auction</chapter>
<chapter timecode="25:15">Rant about The Blog Business Summit in Seattle</chapter>

Support for this in an iPod and other audio devices would be awesome. Failing that, we could have some post-processing, whereby the MP3 is split up into chapters (or not, depending on the user's preferences), and then sent to iTunes for iPodification.

Voilla, we have chapters within podcasts. Think of the convienience people! I'm going to start writing a dotnet library to support this soon.

Friday, January 28, 2005



Looking for new fonts? these guys have them in spades!

Thursday, January 27, 2005


Firefox tweaks

My personal hero of the day is at once Cameron Reilly who pointed this out, and Michael Pusateri for writing this.

Side mentions go to FeedReader for providing me with the prompt update notification, and Windows for... um... not crashing.


Combine all the crap subversion viewers out there, and the desire to wrtie a webservice and you'll come up with either a crap subersion viewer and a completely unrelated webservice, or you'll have svn2xml.

I wrote this tool after evaluating a few other (mostly php) solutions for subversion, but they all required two things which I didn't like: Installing Apache and PHP on a windows machine, or subversion to be hosted on a linux machine.

This tool effectively eclipses all others by supporting any subversion setup you may have - svnserve, webdav, local, or whatever. Simply give it a subversion url, and you'll see the results. It's pretty cool, and fairly bare-bones, but a nice blend of process spawning, xml creation, and web services. You can find the documentation here.

Wednesday, January 26, 2005


Happy Australia Day

Happy Australia Day everybody.

On January 26, 1788 Captain Arthur Phillip took formal possession of the colony of New South Wales and became its first Governor.

The fledging colony soon began to celebrate the anniversary of this date. Manning Clarke notes that in 1808 the "anniversary of the foundation of the colony" was observed in the traditional manner with "drinking and merriment".

It's good to see that "drinking and merriment" are still the top priorities!

Monday, January 24, 2005


Triple Pod

Australia's best radio station - JJJ (happy 30th birthday) has just started podcasting their daily current affairs show : Hack.

Now I can remove the arial from my car completely!

This page is powered by Blogger. Isn't yours? Get Firefox!