Sun, 23 Oct 2005 23:13:57 GMT

I made this half-pony half-monkey monster to please you
But I get the feeling that you don’t like it
What’s with all the screaming?
You like monkeys, you like ponies
Maybe you don’t like monsters so much
Maybe I used too many monkeys
Isn’t it enough to know that I ruined a pony making a gift for you?

Lyrics from 'Skullcrusher Mountain'
So, if you don't like Jonathan Coulton, that's okay. I just don't like you, okay?
Read On...
Sat, 22 Oct 2005 11:05:28 GMT
Inspired by that wacky usability guru jakob nielsen, I've put up a list of the most popular pages at secretGeek. I'm going to make this list available from the menu on the right. So come with me now as we self-indulgently dip into the archives...
Read On...
Tue, 11 Oct 2005 02:16:51 GMT

My Sister In Law, Allison Bambrick, will be appearing on television tonight, as a contestant on 'Temptation: The New Sale of the Century'. Due to contractual reasons she hasn't told us the result of the show. Here's hoping she picks up some nice prizes and doesn't look like a big silly dork or anything.
Read On...
Wed, 05 Oct 2005 23:56:09 GMT
If Web 2.0 has arrived... when will Web Collapse 2.0 get here?
Read On...
Wed, 05 Oct 2005 22:07:03 GMT
I noticed this message just above the email i was typing:
Draft autosaved at 10:02 pm"
Gmail cool.
Read On...
Thu, 29 Sep 2005 01:24:17 GMT
I read an interesting piece by Jon Galloway titled "LINQ looks good, but DLINQ scares me", which was intriguing from the outset.
Why is DLINQ scary I wondered?
All manner of visions came to mind, I admit.
On a surface level, his concerns were mostly centered around code maintainability.
But looking deeper into code sample, I discovered something truly frightening.
Take a close look here and see if you can find it:
Read On...
Thu, 22 Sep 2005 22:39:54 GMT
[This just came through from my strange friend Gaksloope, who -- as you know -- lives in an alternative-reality cubicle, fourteen minutes into the future]
AJAX website allows surgeons to work from home
A stunning new website, based on something called 'AJAX' -- that darling technology that's taken the world by storm -- allows surgeons to give real time instructions to a robotic scalpel, via the internet.
A breakdown of surgical mistakes by browser type has shown that firefox users make the best surgeons, while surgeons using Opera tend to get distracted and surf away to other websites, even during critical parts of the operation. Statistics concerning internet explorer are not available for publication, as they are the subject of a medical neglicence law suit, involved an alleged 'rendering bug' which led to amputation of the wrong leg.
CEO of Ajax The Slasher, David Hassaminor Hickup, said "We knew from the outset that AJAX would cure cancer. This is just the first step. Tomorrow's children will be concieved via AJAX technology. We are working on an AJAX-enabled satellite with which we hope to probe the deepest corners of the galaxy, in search of the meaning of life. AJAX is bound to have a part to play in that quest. Our main task for now is getting the 'back button' to work during surgery. It seems intuitively obvious that pressing the back button will cause the last stroke of the scalpel to be undone. In practice, it's a little harder than that."
thanks Gaks! I'll be watching for that one here too.
(Note I hadto de-activate the links in Gaks' message, to avoid any trans-dimensional corruption of the universal fibril, as it scares my cat.)
Read On...
Thu, 22 Sep 2005 21:57:26 GMT
Here's an interesting discussion about "Paging" (as in "please sir, may i have the next page of my result set?") in SQL Server.
I, for one, am very jealous to discover that MySql has a built-in clause called 'LIMIT' which says, basically, 'Get me fifty records, starting at record number 351. Please.'
How bout you yukon? You gettin THAT?? If not, then, well, you're just a stupid head.
Meanwhile, how cool is drew mclellan's blog design? And to think that people once scoffed at the suggestion of wearing an armadillo on the head.
(Here's a really good Code Project article discussing the performance of different paging techniques in sql server. Wow. I'm glad I don't have time to do that kind of research.)
(Some other comments about paging in sql server can be found on jospeh lindsay's blog)
Read On...
Thu, 22 Sep 2005 05:55:23 GMT
Placing an anti-procrastination tool on the internet is like hosting an alcoholics anonymous meeting inside a brewery.
Macintosh is to Wintel as Girlfriend is to Mother
smart client: newspeak for fat client.
Read On...
Sun, 18 Sep 2005 21:48:53 GMT
Some of the criteria that didn't make it onto our job ad:
- Minimum 12 years experience developing asp.net 2.0 solutions.
- Must have single-handedly invented the internet.
- Must be able to defuse a rocket with one hand, while flying a jet plane with the other.
- Sense of humour a must. Interview will include an impromptu standup comedy performance at the local women's prison.
Let me stress again, these are not requirements of the job. You do not need to meet these criteria in order to apply. The actual criteria are listed on our website.
Read On...
Thu, 15 Sep 2005 00:28:10 GMT
Summary: Eric unveils Teamprise to bring VSTS (Visual Studio Team System) to the world of Mac/Unix/Eclipse. Sourcegear (the parent company) now has high-return bets both for and against Visual Studio Team System.
This is hedging at its best!
Read On...
Thu, 15 Sep 2005 00:22:40 GMT
The 'aint' operator acts for both comparison and assignment!
example:
if (this aint jazz) {
this.Music aint true;
}
if (this aint fun) {
this.dispose();
}
Read On...
Mon, 12 Sep 2005 23:25:25 GMT

We need a .Net developer for a permanent position in Brisbane!
Requirements for this position
You have lots of experience developing in .Net (C# or Visual Basic)You have experience using a source control toolYou have the permanent legal right to work in AustraliaYou have excellent presentation and inter-personal skillsYou have excellent written and spoken EnglishYou are willing to live in Brisbane, AustraliaYou are willing to code exclusively in C# Preferred but not absolutely required
You have experience developing numerous applicationsYou have a tertiary qualification in IT/EngineeringYou have an MCAD, MCSD or can demonstrate deep knowledge of .Net Intangible criteria
You are a developer, not a programmerYou are passionate about codingYou are a self-directed learner Do NOT apply if
Your idea of multi-tiered development is to drag and drop database connections onto a form (lb:That's my favourite bit!)You need to be spoon-fed ideas Advantech was founded in 2002. We try to make Advantech Software the best place a developer can work. (lb: This is true! They do a great job of this!)
The company is profitable and growing. Advantech supports workplace diversity and does not discriminate on the basis of race, religion, gender, or any of the other things people should not use for discrimination.
To apply, please email your resume to us using the following address jobs@advantechsoftware.com.au or call (07) 3852 5811 for more information.
(Recognise the advert? It's based on one from eric sink's blog, and some ideas from the aus dot net mailing list.)
Read On...
Mon, 12 Sep 2005 01:46:32 GMT
No I'm not a religious man.
But God bless the 65535 row limit in Excel.
God bless intellisense. God bless spell checkers, to.
God bless really nerdy board games.

And God bless Jason Looney's snack cakes for links program.
So often we rush through life, never pausing to notice the little things. The taste of a flower. The feel of wet mud against the roof of your mouth. The sound of one foot clapping.
But it is these trivial things that make life worth living. Plus money, sex and liquor.
So, gentle reader, go softly into that warm inkernet. Tread lightly on the toes of your inner child. Be thinking, always thinking, as you are linking and wondering. Stay off the brown acid. Don't drink your bath water. And never lose your sense of wonder.
Read On...
Thu, 08 Sep 2005 23:00:21 GMT
My wife tells me I need to develop 'self-confidence.' I need to build my 'self-esteem.'
I tell her that I reject these phoney notions, these cargo-cult deities.
What I'm after is the real thing: the adoration of millions.
Read On...
Fri, 02 Sep 2005 01:09:45 GMT
After a talk by Bill McCarthy and Nick Randolph, I'm jazzed about the Snippet features of VB.net 2005. Check out the Snippet Editor Bill and others have been working on through CodeProject.
This is all specific for VB people... now that I've joined the dark side, I'll have to see what we've got in the C# world. Any thoughts?
Also, I'm wondering what features from the World's Second Simplest Code Generator can be pushed into the Snippet Editor, or something similar. (And conversely, what features from the snippet editor can be pushed into the World's "n" Simplest Code Generator?)
Read On...
Wed, 31 Aug 2005 23:38:49 GMT
Have you seen Start.com? It's a webpage designed to act as your personal homepage, acting as a very personalised aggregator. As well as RSS feeds, it has 'startlets' which seem to be custom little AJAX plugins.
The team at Start.com are hiring. They ask "Are you jazzed about AJAX and DHTML?" I checked for a definition of 'jazzed' ('No definitions were found for jazzed.')
Thesaurus.com suggested many other more commonly used synonyms for 'excited':
agog, anxious, avid, alive, aroused, attentive, awakened, aware, cognizant, activated, active, alert, animate, ardent, brisk, buoyant, dynamic, ebullient, elated, energetic, eager, flabbergasted, energized, enthusiastic, excited, fervent, gay, happy, passionate, peppy, quick, snappy, spirited, sprightly, open-mouthed, thunderstruck vibrant, vigorous, vital, vitalized, vivacious, vivid, zealous, zestful, zingy, zippy
Read On...
Wed, 31 Aug 2005 23:35:53 GMT
Just met frank arrigo... he really does look like this:

He's one hell of a loud shirt guy.
Sort of like a bigger version of Danny DeVito. Heh heh heh.
Read On...
Wed, 31 Aug 2005 06:08:27 GMT
My first impressions on this stuff, in a lecture from Michael Leworthy, was 'hmmm sounds like they're making it easier for managers to be control freaks and harder for developers to actually get things done.
But something won me over.
When you attempt to check an item in to the version control system, you are told if your check-in violates the checkin policy. (e.g. you haven't associated it with a workitem, or you haven't run code analysis... this is all configurable and you know some people will go policy nuts). But, there is always no matter what, the option to over-ride and JUST CHECK-IT-IN ANYWAY.
Sure you have to provide a reason why you ignored the policy rules (e.g. 'The policy that i must make my manager a coffee before checking a file in, is rude and inapt'), and the policy-breaking check-in may cause an email to be generated for your manager, telling him or her what just happened -- but at least this humane hole in the process reflect reflects a kind of real-world philosophy that sounds much nicer than the old draconian software-enforced check-in policies I've seen elsewhere (I'm looking at you IBM).
secretGeek's ticket, accomodation and breakfast cereal at Teched is brought to you by the very intelligent folks at advantech software.
Read On...
Wed, 31 Aug 2005 05:30:52 GMT
Every time they mention a hole in the functionality, they say:
"Oh, that part represents an interesting opportunity for a community project."
For example there's no 'WorkItem Editor' -- but they hope that the people at TeamSystemRocks.com will come up with one.
Man, I wish we could say the same thing to clients.
"Sorry I left the General Ledger out of your Accounting Package. I think this presents you, the client, with an interesting opporunity for an outsourcing project."
Or I could say the same thing to my boss:
"Sorry I annoyed your clients and told them to take their business elsewhere, then got drunk in the office and puked in the staff kitchen. I think this presents you, my boss, with an interesting opportunity for a staff-turnover project."
Or to the good wifey:
"It's excellent that I forgot your birthday, our anniversary, the kid's birthdays; and I burnt down your mother's house! Think of it as an opportunity to visit single's bars and finally meet the forty-eight year-old divorcee, with an eye patch and scrufola, of your dreams. Lucky, lucky you"
secretGeek at Teched is brought to you by advantech software.
Read On...
Tue, 30 Aug 2005 04:17:28 GMT
See you at the Gold Coast, if you're there.
I'll be the weird little guy who looks like me.
p.s. I got Larked!
p.p.s The Gradient Maker has been re-vamped again -- better Firefox love, guaranteed.
Read On...
Sat, 27 Aug 2005 15:50:13 GMT
Excellent! I just found out that the problem is fixed in the next version.
Screw the work around. I'm just gonna wait. Cool!
Not.
p.s. this relates to (a) Every product and (b) No products. I suggest you get comfy with the work around.
Read On...
Sat, 27 Aug 2005 15:34:04 GMT
You're a programmer. I don't care how smart you are:
you continually cast a custom object into a boolean.Life calls for rapid decisions on all kinds of objects.
Is this pizza is the one i want?
if ((bool)pizza1 == true) { ...
We make such evaluations so often, and on so many different objects, that instead of implementing a 'ToBoolean' function on every single custom type that our mind encounters, we create a static function (ToBoolean) which uses some very dodgy reflection to cast absolutely any object in the world into a boolean result.
It's a bad design. It speeds up processing, but at the loss of precision (and thus correctness) in the return variable.
And it's too convenient. The static ToBoolean function is so damn fast, and readily available, that we use it all the time. A slight bug in your work is distorted into 'absolute failure'. Infact, almost everything becomes a false. And when you should be throwing 'invalid cast exceptions' all over the place, you are instead buisly comparing apples with oranges.
This is a 'cognitive distortion'. This is the kind of stuff David Burns tells you how to get around. I wrote bout it a while back.
Watch out for it. I use this saying as an antidote: nothing is black and white, everything is shades of grey. Say it with me, geeky people: nothing is black and white, everything is shades of grey. everything is shades of grey.
Read On...
Sat, 27 Aug 2005 15:06:07 GMT
Back when I were a wee lad, typin on an amstrad PC 6128 with feet not reachin the floor, my geeky brother convinced my father to buy the magazine 'amstrad user' once or twice.
Our favourite regular feature was called something like '10 Line Marvels' -- these were programs, written in basic, just 10 lines long, that did extraordinary things.
It would take more than ten lines to describe the marvel that those programs represented. Can you imagine, for example, a ball bouncing around the screen? now imagine it in ten lines. impossible. (hint, it relies on a trick)
This was in the days somewhat prior to including a DVD on the cover of your magazine. Two gig of code was slightly unthinkable. Ten lines of type-it yourself was just do-able. (Type-your-own roulette wheel programs were pretty darn impossible to compile... jeb got there in the end ;+) )
Anyway, ten lines of my code, these days, is mostly whitespace and comment. So i'm not gonna try and marvel you.
This ain't gonna be marvelous
Read On...
Thu, 25 Aug 2005 23:25:33 GMT
Mickey Gunderloy has announced the Larkware 2005 Developer Tool Programming Contest... now I've said before that Very Very few people enter these things, so the potential return on investment is HUGE!.
I urge you -- YOU -- to enter Mike Gunderloy's Programming contest.
If you need an idea, here's one of mine:
Implement the 'Automatic Screenshot journal.'
Here's some possible names for it: Snapsalot, Pixalot, Snapaday, timeSnapper, Pixatime.. and so on
I think it would take between 1 hour and three days to implement that thing fully.
Build a NICE installer for it.
Focus on simplicity. Less features. Fun to use. Stick to the core. Don't let it mess with the clipboard.
Split me your prizes, remember me in your speech, but first: get coding. Our prizes await.
Read On...
Thu, 25 Aug 2005 12:09:22 GMT
My strange friend Gaksloope, who lives in an alternative-reality cubicle, fourteen minutes into the future, sent me an IM message today that i thought i'd share.
(first, recall that alternative universes only ever seem to inter-communicate via instant messaging services. And Google talk is weapon-of-choice for most trans-temporal-cross-reality chatters. But we digress.)
Here is what Gaksloope has to say:
Read On...
Thu, 25 Aug 2005 12:05:54 GMT
Before i forget -- you need to see the improved Gradient Maker application i fixed last week.

It's got a color picker now, thanks to Eric Meyer (the css guru)
Hence, it's more fun. Fun-of-use, is important, apparently.
I kind of hoped it would get a coupla-hundred del.icio.us recommendations, but it hasn't yet.
An approximation of the GDI+ .net code it uses is stored in a previous entry.
On the topic of GDI+ .net restful webservices for rendering images, check out Shital Shah's technique for rendering equations online. (Be warned about his page transitions... they are frightening ;-) )
Read On...
Thu, 25 Aug 2005 11:09:51 GMT
Here's a usability goof in windows xp. And I'm not making this up.
I walk up to the computer and here's what's on the screen:
Read On...
Fri, 29 Jul 2005 12:24:02 GMT
Help Mort solve this common computing conundrum...
Read On...
Fri, 29 Jul 2005 11:12:43 GMT
Okay, I've been meaning to run an "MSPaint.exe" master class for a while now.
Here's the first lesson.... This could save you a lot of paper, and a lot of sticky tape.
Read On...
Fri, 29 Jul 2005 05:37:42 GMT

Did you realise that Mozilla firefox is just a 4.6 meg download? That's like... less than the runtime for Notepad! (nearly)
Thanks to a shove from Mike Leung, I finally installed Firefox... not as default browser... (for that we have Crazy Browser! [which runs on top of ie]) -- but it's there on the quicklaunch... just waiting for me to see how broken all my markup is...
Read On...
Wed, 27 Jul 2005 22:38:39 GMT
I've started at Advantech Software -- (Brisbane software development specialists)
This has involved a transition from VB.net to C#, and boy oh mighty, i've been shocked and alarmed at how easy it is to move.
They really are just the same food with different food colouring. The most helpful things to have when transitioning from VB.net to C# are:
- This document (VB.NET and C# Comparison, side by side)
- Great Mentors
The extra-fussiness of the type system is excellent, and helps you keep your code tight (much as option strict does in VB.net). The warnings you get, the more descriptive messages, and the XML commenting make for a nice improvement. I miss the code reformatting (pretty-listing) feature of VB, which did turn me into a lazier coder than i once was.
The most overwhelming change has been learning to use the existing (and very impressive) code base that Advantech have developed, learning to play well with some way cool 3rd party controls, and of course, the necessary existentialist angst that comes with any career change.
Read On...
Fri, 22 Jul 2005 11:07:55 GMT
How many fake workplaces are there on the internet?
Look at this image:

Does anyone actually give their beautiful colleague a backrub while pair-programming the day away?
Or is this just made up nonsense?
Frame 2: he gets hauled in to court on charges of sexual harassment, I betcha.
And how many damn bogus handshakes exist on the internet?

Read On...
Fri, 22 Jul 2005 04:13:01 GMT
Fred Has Just Signed In!
Ginger Has Just Signed Out!
Mary Has Just Gone To Lunch!
Barry Has Just Picked His Nose!
If you are sick of MSN Messenger bugging you...

Read On...
Fri, 08 Jul 2005 01:05:33 GMT

A lot of people are having fun using 'The World's Simplest Code Generator' -- so i've updated it and improved it.
Meet "The World's 2nd Simplest Code Generator".
Like the original, it's online, takes one minute to learn, and has a million uses.
This tool is my constant companion on all my coding adventures.
Like those miraculous kitchen devices you see advertised on TV, this baby can cut, slice, dice, julianne, froth, beat, whip...
It's extremely violent, really. Use it for all your "Micro-Code Generation" needs.
The W2SCG has built-in patterns to use for some simple things (like C# properties and VB.net properties). If you invent any useful new patterns, leave a comment and I'll embed them in the tool. I'm particularly keen to see some Java, Php, C++ and SQL patterns.
The difficult thing when developing this was keeping it **simple**. The temptation to pile in a lot of features was huge! (I cut over thirty features out!) The best of these deferred features will be released in subsequent versions.
Expect to see "The World's 3rd Simplest Code Generator" soon.
Read On...
Tue, 05 Jul 2005 21:24:37 GMT
Rather than use 'google' as my "homepage" I always create my own html file to use as a webpage, and store it on my hard drive.
Advantage are:
- It loads damn quick, even loads when you're not online.
- You can customise it easily.
Here's an example:

This is my gift to you.
My "real" homepage also has links to the banks I use, and so on. I only ommited that stuff because you are a pack of prying thieves.
Read On...
Wed, 22 Jun 2005 10:37:12 GMT
I assumed spolsky was playing some cruel carrie-style prank when he told me he would include me in a book he was compiling.
If it is just a hoax designed to make me look like an idiot, then they appear to have taken the hoax very far indeed. They've had this so-called book printed and listed at Amazon. He's even roped Rory Blyth into the deception.
Meanwhile go out and buy 'the best software writing', edited by joel spolsky, then get back to me and tell me if I'm really in there.
Read On...
Fri, 17 Jun 2005 12:35:43 GMT
VB or C#?
"Me and My" or "This and That?"
Take your pick.
Something I keep seeing is that VB.net and C# are just different flavours of the same chewin' gum. And neither of them have much to do with C++ or with VB 6,5,4 etc.
Short sighted little people make me chuckle quietly to myself. To wit:
Kiddie wheels like "My" are exactly what gave VB its "for dummies" image.
I don't need to tell you (my clever and consistent reader) that this type of thinking relies on the following logical fallacy:
Lowering the floor will lower the ceiling.
You and I don't buy into that brand of thought. Do we? And if other people buy into it, we laugh and help them understand why that kind of thinking is flawed.
Don't we?
Read On...
Fri, 03 Jun 2005 12:25:43 GMT
In Visual Studio .Net, these two buttons are very useful:

'View Code' and 'View Designer'.
Unfortunately, (and wrongly, i think) they are only visible when the 'Solution Explorer' window is visible.
So here's what I just did to make sure they are "ALWAYS' available -- whether the solution explorer is shown or not:
I spent about three seconds customising the toolbar so that these two buttons are the very first thing that appears on the top left toolbar, like so:

I am very happy about this. I think it's neat.
Read On...
Tue, 31 May 2005 09:34:50 GMT
If, like me, you often finding yourself giggling along to a good Cascading Style Sheet, then you'll enjoy Roger Johansson's series of tips on CSS.
While he is clearly an anal-retentive git, for insisting on saving every byte possible in his CSS, he's still a master stylist. Damn fine work.
Read On...
Tue, 31 May 2005 09:23:04 GMT
Beat your face against a brick wall if you didn't know about this short-cut in the command prompt.

That's right honey. You can use wildcards, such as the '*', with the 'cd' command.
This is particularly useful with loooooong directory names and weird directory names.
Here's a CSS version of the graphic...
C:\>cd progr*
C:\Program Files>_
Every time another programmer spots me doing this they gasp in amazement, fall on the floor and begin to twitch. It's an embarrassment. Thanks to Edgar Smith for showing me this one, a few years back now...
Read On...
Wed, 25 May 2005 05:02:00 GMT
How much would you pay for a bad heart-transplant?
How much would you pay for a ticket onboard on a faulty airplane? Is 80% of the regular price okay? Is 60% okay?
What would you pay for a television that is only slightly likely to blow up and kill you?
I say this, because some people seem to get confused about the Traditional 'Quality Triangle'.
The three corners of the quality triangle are:
- Cost
- Time
- Complexity (or 'features')
You can only control two of these at once. If you specify the time it will take and the features needed, then you cannot control the cost.
Some people seem to think that the third corner is 'Quality' (instead of complexity/features). This implies that if you are happy with lower quality you can save on time or cost.
Not true. When quality is lower, the triangle snaps. Costs suddenly blow out, deadlines whoosh past, complex workarounds are needed. Your customers leave and you are out of work.
Don't f*ck with quality. It will f*ck you.
Read On...
Wed, 11 May 2005 23:04:25 GMT
The World's Simplest Code Generator can be used for millions of little tasks in any programmer's daily life. Here is one simple example.
Just say you Urgently need to know the number of rows in EVERY user table in your database...
Read On...