Wed, 18 Oct 2006 23:15:22 GMT
I was reading about these people switching to mac, and switching back from Mac and everything... and you know, i just thought: what a bunch of losers. So last season.
I finally made the switch away from operating systems. It was like a light switching off in my head.
I uninstalled all my operating system stuff. All i use now is a browser and a usb key.
I use google docs, google spreadsheets, google calendar, google mail. And for searching I use msn. i mean google.
Now that all my info is online I don't need a hard-drive either. Virtual memory goes onto the usb key. I took out the hard drive and just gave it to a kid who was walking down my street. What a liberating moment.
Drives for my remaining hardware are bundled into a self contained file that's called by a bootstrap from the BIOS. I used a bunch of stuff from sysinternals to extract the driver code away from the full windows drivers, like a surgeon removing healthy tissue from a tumour, and bundled them into a self-booting chunk of code on the afore mentioned usb key. Updates are gonna be tricky. I'll work aroud that when I get to it.
The only thing i don't have is a decent ide. Maybe lisp can help there.
Read On...
Wed, 18 Oct 2006 22:03:19 GMT

Right click in the tool bar area --> choose customize, you get the 'Customize' dialog.
On the 'Options' tab there's a little check box that says "Show shortcut keys in ScreenTips".
Like so:

This is off by default. But you're like me. At least I think you are. And when you spend much of your life inside an application, you want to learn a few good short cut keys. So check that box!
Of course, to really take it to the next level, use KeyTraino ;-).
Read On...
Wed, 18 Oct 2006 05:44:14 GMT
Which would you use to test if a string is blank? And why?
1. x.Equals(string.Empty)
2. x = ""
3. x.Length = 0
4. x = string.Empty
5. string.Empty.Equals(x)
Read On...
Wed, 18 Oct 2006 04:39:29 GMT
So The Daily Grind is just about set to celebrate it's 1000th edition!
Mike Gunderloy is an industry legend. If you want to feel that you're keeping up with the vast amount of new stuff that the programming world keeps throwing at you, all you need to do is visit the Daily Grind, daily. Here's looking forward to another 1000! You don't need to subscribe to any blogs. Check the Daily Grind every day, and you're up to date. Anything you subscribe to beyond that is purely for entertainment.
Read On...
Tue, 17 Oct 2006 21:50:22 GMT
Need help getting started with Powershell? Or need help working out how to automate powershell from .Net?
I wrote a quick and dirty tool a few months ago, called 'ShinyPower'. I've now made it open source, and available from CodePlex -- source code and all.
Read On...
Fri, 13 Oct 2006 11:23:16 GMT
When one form in an application is modal: you can't *move* the underlying forms around.
This is a shame -- because often you need to see something in an underlying form, to help you decide what to enter into the current form.
It's okay that you can't interact with the client area of the underlying forms... but it would be good if you could move the underlying forms around.
It's a tricky problem though: it would be hard to let you move one of those non-modal forms around without giving them focus...
The top-most modal form would need to be 'always on top' for the application, so that while moving underlying forms around, you can't "lose" the form you are supposed to be working on. Anyway. That is my feature request for today.
And here's another idea that i had about modal forms...
Read On...
Thu, 12 Oct 2006 21:34:57 GMT
i've just done some quick maths.
In two years of using gmail, i've ended up with 212 mb.
If my email usage remains constant (just say) and I live another fifty years, i can expect to have about 5.512 gigs of data in my gmail account when i die, fat and happy, aged sixty-five ;-).
Gmail have been steadily growing the size of my gmail account. It started at 1 gig capacity, soon doubled to 2 gig, and now it's crept up to 2.773 gig.
I don't have to do the math to know that within 50 years it will have doubled again.
So at my current email consumption rate, i won't run out before death sets in.
Read On...
Fri, 06 Oct 2006 01:47:46 GMT
Too busy to blog, just wanted to share that phrase.
(This is in belated response to news that the only development environment fully supported on Vista will be VB 6.
Wow.
Read On...
Sat, 30 Sep 2006 09:31:00 GMT
The ever-entertaining Steve Yegge (see also) put out an instantly notorious blog post last week, Good Agile, Bad Agile in which he says that Agile is a new age religion. My attention span waned before I completed the article, but it got me thinking: is it really a religion? Or is it merely a cult?
Back in high school i was taught that there are six dimensions to a religion, to wit:
- doctrinal
- ritualistic
- experiential
- ethical
- mythical
- social
And if you lack any of those aspects, you're a cult, at best.
So how does Agile stack up? Cult or Religion?
(continues...)
Read On...
Wed, 27 Sep 2006 00:20:10 GMT

Another idea: what if you annotated your functions with notes that say exactly what the most interesting edge cases are for that function.
Basically at the top of each method you could specify a few test cases. And only where you really need them. It's kind of a minimalists approach to test driven development.
Here's an example function -- leap year. With a few deliberate bugs in it.
continues...
Read On...
Mon, 25 Sep 2006 09:38:11 GMT
Today i've seen a revival in popularity of the SquareFree Html Editor, which is a nifty instant way to craft some html.
Some time ago I built a CSS Editor using the code from it, but never told anyone about it. Well, why not share, i guess. It's located here:
It's inspired by Nick Bradbury's excellent Top Style (lite)
Personally I now use the 'developer toolbar' plug in for mozilla. But top style lite was a weapon of choice for a few years there.
Read On...
Thu, 21 Sep 2006 01:56:32 GMT

Have you seen the great transparency feature in vista? It's excellent -- it even works in notepad, check it out...
Read On...
Fri, 15 Sep 2006 02:12:36 GMT
intellisense
||
\/
code >>> compile >>>> run >>> success ;-)
/\ || ||
^^ \/ \/
^^ errors errors
^^ \\ //
^^ \\ //
^^ google
^^ ||
\\ \/
\<<<<<<< cut N paste
Read On...
Thu, 14 Sep 2006 23:13:33 GMT
Sorry I haven't posted in the last few hours. I've been rewriting all my code in Wasabi on Wails.
(You don't follow? Go here, then here, then here then here then here then... get back to work.)
Read On...
Thu, 14 Sep 2006 02:26:57 GMT
If you're developing code today, it's probably 'controlled' using a version control product of some sort. (We use Vault here, and in the past we used V S S)
That's great, your code is covered. But what about your stored procedures, and your database schema? Many developers (I suggest 'most') have no form of version control on their stored procedures or their table structures etc.
So here's some articles and some tools, to get you thinking about how you can implement change control over this other, crucial, piece of your work.
(continues....)
Read On...
Wed, 13 Sep 2006 01:16:35 GMT
Would you write your own XML Parser? Only if you're f***ing crazy.
Yet developers constantly write their own "little" csv parsers.
How does this madness occur?
Step 1 -- Ignorance
"Oh this will be easy, I'll just read the file one line at a time, calling String.Split(',') to break each line into an array.
"Then I'll be able to refer to each item by number."
(You're already headed for stormy water... anything you do from now on will only drive you into the rocks harder and faster...)
continues...
Read On...
Sat, 09 Sep 2006 05:51:16 GMT
I don't like to talk about sad things on an otherwise upbeat blog, but Australia has lost two of its favourite sons in the last week.
As you no doubt know, Steve Irwin, 'the Crocodile Hunter' was killed by a stingray barb. And yesterday, legendary racing car driver Peter Brock, died in a car accident.
Peter Brock is probably not as well known outside Australia as Steve, but within Australia he is a much loved hero, having won our biggest car race (the bathurst 1000) a record nine times.
I think there's some consolation that in each case the men died quickly, doing what they love. It would be akin to Scott Hanselman getting zapped by a lightning bolt while installing a new wireless hub on his roof.
I've tried hard to come up with a cheerful joke revolving around the death of these two heroes, on the proviso that it is neither degrading nor exploitive. Here's the best I could do (and of course this is based on an old old joke of my father's):
So Peter Brock gets up to heaven and after a day or two he goes to have a chat with Saint Peter back at the gates.
So how are you enjoying it? Asks the saint and Brockie replies, Oh it's heaven, you know, everything's wonderful. But something I keep noticing is that everywhere I look: there's Steve Irwin. I see him in one place, then I turn my head and wow! There he is again! I know he's hyperactive, but it's amazing, it's like he's everywhere at once. How does he do that?
Oh no, says Saint Peter, That's not just Steve Irwin. One of those people is Steve Irwin, but the rest of the time, that's not Steve Irwin, that's God you keep seeing. He just thinks he's Steve Irwin.
Read On...
Fri, 08 Sep 2006 07:49:49 GMT

(no, it's not what you think.)
When I was but a child, I imagined that the coolest thing in the world would be Flying.
I wanted to be a bird, or, if necessary, a pilot. As things worked out, I never did sprout wings, nor did I learn to fly a plane.
Cut forward to now, I've ended up as a computer programmer. I guess I'll never know just how much fun I'm missing out on.
Luckily, I have a friend who is both a commercial airline pilot and a programmer. (He writes airline safety systems)
He became interested in programming initially for practical reasons; he needed to track information efficiently. But over time, he's really gotten into it. He writes excellent applications.
Here's the thing: he told me recently that programming is more fun than flying a plane.
;-) So there you go. No regrets. Programming is the absolute most fun activity in the world.
Read On...
Thu, 07 Sep 2006 22:32:04 GMT
I've collected a small list of tools for powershell.
Powershell Development Environments
Helper Applications
Script Repositories
Other Tools
Community Extensions
Visual Studio Add-Ins for Powershell
I can't find anything else in this category!! (Quote from Alan Stevens's blog: "I went to talk to members of the Visual Studio team about the possiblity of a PowerShell add-in for VS. They've never heard of PowerShell! ") Anyone have ideas for a useful powershell related VS add-in/macro?
Read On...
Tue, 05 Sep 2006 21:34:38 GMT
We are different to other people. So very different.
And why is this? What is it that makes us different? And why is this dangerous?
Read On...
Thu, 31 Aug 2006 04:44:00 GMT
(how's that for a geeky title)
Okay, the simple excel function i wanted to teach someone to write:
"If A1 is between 1986 and 2000 (inclusively) then print '1', otherwise print '0' "
How would you write that as a cell function?
Read On...
Wed, 30 Aug 2006 04:56:42 GMT
Your system throws up an error message. It's tempting to read the first few words and jump to a conclusion. 'Oh I know what that is...' But you really have to read the entire error message. Often the best bit isn't until the very end.
Error messages are not like those predictable hollywood films that you can walk out of before the end, and still know exactly how it finished up. "Oh yeh, they defused the bomb, he got the girl and the dog learnt a new trick."
Here's two messages I had yesterday:
Read On...
Tue, 29 Aug 2006 20:49:24 GMT
If you are going to be in Australia in October (2006), between Saturday the 7th and Sunday the 8th, you ought to attend the Sql Down Under Code Camp.
The main organiser Greg Low is simply a legend. We (at advantech) ask Greg for help whenever we hit a problem that is well over our heads. One of the guest speakers, Itzik Ben Gan, is a right genius. We use tricks he showed us (in a previous talk) for a lot of our more advanced sql solutions. We use those tricks every day. Other speakers like Geoff Orr and Adam Cogan are well known experts.
The camp is in Wagga Wagga, which is centrally located (read: 'the middle of nowhere') and it is free!
Read On...
Sun, 27 Aug 2006 11:27:08 GMT
By popular demand, we're going to spend three minutes learning as much as we can about F#.
So what is F#?
F# is "a mixed functional/imperative/object-oriented programming language"
Sorry -- that description's meaningless to all but a handful of people. What I want to know is:
Is F# really "Fortran .Net?"
No! An earlier name for F# was: "Caml.Net" because this is essentially a ".Net" implementation of "Caml"
That doesn't help, unless you know what Caml is...
Caml is a popular French variation on the ML Programming language, where ML means 'meta-language'.
Then I take it F# has nothing to do with Sharepoint's Caml language?
Nothing whatsoever. It's unfortunate that the sharepoint team used that name. Enough said.
You know what? Let's just get our hands on the code...
(Continues)
Read On...
Thu, 24 Aug 2006 05:14:07 GMT
(A small update to yesterdays thoughts on syntactic sugar)
First here's a chunk of Linq, that i think might be fairly valid (though i haven't (a) compiled it or (b) ever actually compiled any linq code... so whadda i know??)
(continues....)
Read On...
Thu, 24 Aug 2006 02:44:22 GMT
One thing I'm not gonna write is a "Getting Started with Windows Presentation Framework" article.
If you want to get started with wpf/xaml/xbap etc, just go to LearnWPF.com and see what Joseph Cooney has to say. That site is a fantastic starting point.
Read On...
Wed, 23 Aug 2006 08:16:03 GMT
consider the following chunk of code:
List<Person> people = db.GetAllPeople();
foreach (Person p in people){
console.writeLine(p.Name);
}
Day dreaming during a tech.ed lecture this morning, I thought:
Ah, but what if the syntax waz reversed?
What if the following code compiled to the same thing under the hood....
List<Person> people = db.GetAllPeople();
in (people visit Person p) {
console.writeLine(p.Name);
}
Okay... it mightn't change our lives... but it's a wacky thought none the less. Don't reject it too quickly. Drink it in. Suck it up. Chew on it. Swill it around before you spit it out.
When you type the words "in (people visit..." the intellisense would have a chance to think:
people hey?? What type of objects are collected inside that? Person is...
You'd get a nice little intelliswiftness in there i thinks.
Nextly, whatif, instead of calling a Object.Method(), we allowed the syntax: Method Object, for example, instead of:
console.writeLine(p.Name);
Imagine you were allowed to say:
WriteLine Console (p.Name);
That's right!
Method First, Object Aft!
When you write the method name "Writeline" the intellisense then thinks to itself...
Writeline hey?? What objects do i have with that method? What static methods do i have with a method like that?
This is a different kind of intellismarts you're calling on -- it's about putting verbs before nouns, like that steveyegge article joel spolsky pointed to recently (you know the one). tink about it.
Read On...
Tue, 22 Aug 2006 02:14:33 GMT
Y'all know the famous maxim from Fred Brookes: "Adding manpower to a late software project makes it later." (see addages named after people at wikipedia)
Yet big, late projects constantly get more people added to them.
Just today we heard about a large local project, to which far too many more resources have just been added. Why? we asked, why?
There's a rarely mentioned side effect of adding more people to a project: momentum.
Yes: Adding more people will make a project cost more per day.
Yes: It will slow down the daily progress, making it take longer.
And Yes it will lower the quality of the output, as personal responsibility becomes diluted.
But:
Momentum Equals Mass Times Velocity
Adding more people may decrease the velocity, but it increases the mass enough to give a larger overall momentum.
And a larger overall momentum makes it harder to stop.
The people who make the decision to add more people are desperate to keep the project moving. In their mind, the only way to fail is to have the project canned by higher powers.
Budget overruns are not failure. Time overruns are not failure. The only true failure is if the entire project is stopped.
An object with huge momentum is harder to stop. Throw in consultants. Throw in hardware. Throw the bike on! We're gonna ram our way through! Unstoppable!
The problem with huge momentum is that when it does stop it makes a hell of a mess.
To stretch the metaphor: A fast moving train can still be derailed.
To mix a metaphor: assigning blame becomes a fruitless task. Blame is spread over a larger area.
Once failure is big enough, it becomes a success on other levels. Think titanic. Think war. Think 'time to polish your resume'
Read On...
Mon, 21 Aug 2006 00:07:46 GMT

I'll be at Tech.Ed Sydney this week. If you want to catch up, I can be contacted at leonbambrick at gmail etc.
To better facilitate your facial recognition algorithms, I've published a picture of myself. If you see me come up and say "hi".
I'll be giving a cabana session on "how to skip lectures by attending cabana sessions". Details will be announced privately after the event.
Read On...
Sun, 20 Aug 2006 09:25:59 GMT
I step away from the inkernet for five minutes and of course I miss six million little things.
L Sharp .NET is "a powerful Lisp-like scripting language for .NET."Chickenfoot is "a Firefox extension that puts a programming environment in the browser's sidebar ... a superset of Javascript that includes special functions specific to web tasks." (meanwhile i still haven't gotten dirty with grease monkey...)hAxe is an OO language that can compile to js, flash or server-side byte code on apache webservers. It's strictly typed, but uses type-inference (...not unlike Ruby, F#, Powershell... and C# 3.0 ;-) ) .Livewriter is a microsoft tool for bloggin. Looks buggy for now but bound to be popular later.Marcos Meli seems to have done a nice logo for the larkware 1000 competition.hanselman gets into dynamic languagesEric Sink thinks you might as well get into multi-core programming.
Read On...
Wed, 09 Aug 2006 03:30:28 GMT
Lately I've written a bunch of 'introductions' to newish technologies.
Watir, JSON, Powershell (Part 1, Part 2)-- all of them completely new to me.
If you've been interested in this series to date, can you make a suggestion for what technology to tackle next?
Some ideas currently:
- F# -- microsoft's functional programming language
- Ruby On Rails -- an absolute beginners guide, targeted at Microsoft developers
- WPF (formerly avalon)
- WCF (formerly indigo)
What is there that scares you? Come on, 'fess up.
(I bet it scares me too. So let me go off and research it for the both of us ;-)
Or, what technology has you intrigued?
Read On...
Fri, 04 Aug 2006 04:22:06 GMT
And he gave this example to illustrate his point:
function Cook( i1, i2, f )
{
alert("get the " + i1);
f(i1);
f(i2);
}
Cook( "lobster",
"water",
function(x) { alert("put " + x + " in pot"); } );
Cook( "chicken",
"coconut",
function(x) { alert("boom boom the " + x); } );
Which outputs something like:
get the lobster
put lobster in pot
put water in pot
get the chicken
boom boom chicken
boom boom coconut.
Simple, yeh?
Now how would you go about doing this in C#?
Read On...
Sun, 23 Jul 2006 05:39:08 GMT

If you are anything like me (and I fear that you are) then this is your experience with JSON so far:
- Two months ago you'd never heard of JSON
- One month ago you'd heard the term but paid no attention
- One week ago you'd heard it mentioned a few times and started to think, right... some more crap to learn
- Today you woke up with an alarm bell ringing in the back of your mind that said WHAT THE BLOODY HELL IS THIS JSON THING AND WHY IS IT EVERYWHERE ALL OF A BLOODY SUDDEN!
Well I had a slow bus ride home tonight (friday is always slow) and i took a pile of "JSON" tutorials with me. So now I can gently lead you through some BabySteps in JSON.
here we go...
Read On...
Fri, 21 Jul 2006 05:53:36 GMT
You need a robot for picking things up and putting them down.
When purchasing an item from a grocery store, for example, you pick it up and put it down seven times (code sample below).
This is ridiculous!
[continues with code examples]
Read On...
Fri, 21 Jul 2006 04:34:03 GMT
More html news from Gaks[1]...
Following on from the W3C announcement of a 'Tags' attribute, I'll show you how this tags information can be utilized using CSS 2.0, today, and CSS 3.1, in the future.
First, a simple example, using just plain old CSS 2.0 attribute selectors, available today in firefox.
Consider the following chunk of style information:
<STYLE type="text/css">
p[tags] { background : lightgreen }
</STYLE>
It basically says "All p elements that have a Tags attribute should be shown in green." (You can use this today in firefox.)
[continues with code examples]
Read On...
Thu, 20 Jul 2006 02:07:06 GMT
Strange news from my strange friend Gaks[1].
He's forwarded me a fragment of the w3c's proposed new attribute: 'tags' which is defined for almost every html element.
A 'tags' attribute acts as a flexible meta-data repository, and here's how you use it:
Say you want to link to a document, and you want to 'tag' that document as being 'funny', 'rude', 'useful' and pertaining to a few key topics such as 'html', 'xml' and 'css' (and why shouldn't it?) then your anchor element could include a 'tags' attribute like this:
<a href='http://secretgeek.net/gaxml.asp' tags='funny rude useful html xml css'>What does XML look like on other planets?</a>
Gaks tells me that this is particularly useful when used in conjunction with the whatg's Web Forms 3.0 specification of a tagCloud control. I have yet to find out how one of those works.
Gaks further says that the best new attribute in html is 'time', defined for anchor elements, which lets you specify not just where a link points, but when. Relative-time values can be used for fetching tomorrow's newspaper headlines today, and so on, which causes hell for rss aggregators etc.
Read On...
Wed, 19 Jul 2006 02:53:19 GMT

it seems that the marketing gods at google have spoken. Gmail is no longer 'Gmail'
The logo in the top left now says 'Google Mail' instead.
I'm sure there's a lesson in there somewhere, about marketing and brand-identification and other stuff. But I just don't think it looks as nice as the gmail logo.
Read On...
Mon, 17 Jul 2006 01:04:29 GMT
To some (small) extent, you can think of web 2.0 as the sudden realization that:
'hey! with Ajax we can build the entire Office suite online!'
There's lots of contenders to replace and extend many apps/features of the Office Suite:
- Word -- writely and a hundred others...
- Outlook -- gmail and a hundred others...
- Excel -- numsum and a hundred others...
- Calendars -- kiko and a million others...
- Powerpoint -- s5 and a few others...
- IM -- meebo and a few others...
- One-note -- webnote and millions more...
- even Visio! -- gliffy and probably some others...
But there's one glaring ommission. One of the most influential parts of Office seems to have evaded web 2.0 completely. (and no, I don't mean clippy)
(continues...)
Read On...
Thu, 13 Jul 2006 11:10:07 GMT
Alright, I've been tinkering with PowerShell for a few evenings now, and the latest thing I've started to unravel is how variables work.
Variables are prefixed with a dollar sign. [This is probably an idea they got from the world's simplest code generator ;-) ].
And they seems to use implicit typing [aka 'Duck Typing']
Now watch as we get the basics sorted out, and prepare to move on to trickier things...
(continues...)
Read On...
Wed, 12 Jul 2006 21:56:05 GMT
check this syntactical sugar from ruby:
@title, @mood, @fulltext = title, mood, fulltext
(Example from _why's amazing online Ruby tutorial: 'Try Ruby in your browser')
Love it!
any chance that 'multiple assignments' can be added to C#? How about VB.Net.Next, hey paul?
Here's an explanation of the above syntax, taken from the Ruby spec:
" Multiple assignment form performs multiple assignment from expressions or an array. Each left hand side expression must be assignable. If single right hand side expression given, the value of the expression converted into an array, then each element in array assigned one by one to the left hand side expressions. If number of elements in the array is greater than left hand sides, they are just ignored. If left hand sides are longer than the array, nil will be added to the locations."
Read On...
Tue, 11 Jul 2006 23:32:27 GMT
In which i demonstrate that any old DOS hacker can download PowerShell (aka Monad) and teach it to themself, without any prior training or special knowledge, using any old XP machine.
What you need
- Windows .Net framework version 2.0
- Powershell (2.2 MB download... that's nothing!! Do it! Do it now!)
- [Optional: Powershell 'getting started' documentation (i haven't looked at this... that would be cheating)]
Okay -- so kick off the powershell (via the icon in your start menu, or by running 'powershell.exe' [located in C:\Program Files\Windows PowerShell\v1.0 for me.])
You'll be presented with a console, and a prompt.
(continues...)
Read On...
Fri, 07 Jul 2006 00:46:54 GMT
A different kind of Microformat
Say you've just created an application, and it uses a new type of file. This new type of file will be identified by its very own file extension, associated with the new app.
For example, you might use a ".snapper" file extension, even though the file itself is just "xml".
The ".snapper" filename is not very helpful to a user, as it hides the fact that this is an xml file. The only way for a person to work out that this is an xml file, would be to look inside.
Conversely, a ".xml" file extension would be unhelpful to the operating system, as it hides the fact that this is a snapper file. Again, the only way to work out that this is a snapper file, would be to look inside, and find the schema that this document matches (if any) (knowing me, probably none... sorry).
And this is a common scenario, particularly with variations of xml files.
So i'm suggesting a new micro-format, and this micro-format has nothing to do with the current microformat buzz on the internet. This is to do with multiple file extensions, set theory, cascading inheritance, and all sorts of tricky stuff. Yet it's very simple.
You can pick it up in under a minute.
(continues...)
Read On...
Thu, 06 Jul 2006 04:36:27 GMT
There. I've said it. XML isn't a mark-up language. I've said it twice. I must mean it. I'd better explain myself, quick.
This thought has been brewing inside my brain for too long now.
XML has always been called a mark-up language, and it's derived from SGML, which is also referred to as a mark up language.
And maybe if enough people speak an untruth often enough, it becomes a sort of quasi-truth. A pseudo factoid, maybe.
My point is... [continues... long]
Read On...
Thu, 06 Jul 2006 01:01:14 GMT
Have you ever dragged a folder from one place to another, when you didn't mean to?
Have you ever accidentally dropped a file into the wrong folder?
If so, join the Society For People Who Have Stuffed Up While Dragging And Dropping.
At the SFPWHSUWDAD, we will give you all the support you need.
To join us, just write your name on the back of an envelope, and drop it in a post box near you.
(Do try to be very careful not to drop it in a rubbish bin adjacent to a post box though. This has been happening to a lot of our members recently, and we are not sure why).
(Also, if you drop in to see us, be careful not to knock on the door next to ours. That's the offices of "The Society For People Who Get Angry At Anyone Who Knocks On Their Door", and sometimes they can be downright grouchy.)
Read On...
Wed, 05 Jul 2006 02:14:05 GMT
Well it turns out you can actually use 'goto' statements in C# !!
private void button1_Click(object sender, System.EventArgs e)
{
goto done;
MessageBox.Show("Bet this doesn't get shown!");
done: return;
}
Conversation overheard in the next cubicle:
I didn't realise that VB.net still has 'goto' statements. Scary.
Want to know something even scarier?
(pause for a beat.)
C# has a goto statement too.
Really!?
Yeh, but no one ever uses it.
Why not?
Cause you'd be shot. That's why.
Read On...
Wed, 05 Jul 2006 01:24:34 GMT
DotCom:
Whoever builds the first Online Pet Food Store targeted not at people, but Dogs, will OWN the market Forever!
Let's assign this thought a picture:

Web 2.0:
Whoever builds the first Ajaxian Social Application targeted not at people, but Dogs, will be thought-leader in that knowledge domain Forever!
The picture for Web 2.0 would be:
Read On...
Sun, 02 Jul 2006 22:05:21 GMT
The article "Functional Programming For The Rest of Us" is a great article, but it scares people off because it is long and has a very very slow start.
But it can be read quickly, if you follow these instructions.
First: Learn this little definition:


"Lambda Calculus" is a type of mathematics for "functions that take other functions as parameters and return functions as results. The function is identified by a Greek letter lambda, hence the system's name."
Got it? Functions in, functions out. Rather than your typical values in, values out.
Now -- when you go to read Functional Programming For The Rest of Us, don't start at the beginning. Here's a link that takes you to the right place to start, a few pages in:
Start here!This way you'll be starting at the subheading that looks like this:

The style settles down from there, and you won't need to read about Plato taking a walk in the park. Unless you want to, of course ;-)
Read On...
Sat, 01 Jul 2006 07:25:41 GMT
Here are four tricks I use to try and encourage myself to write the correct code at the right time.
- Use the Compiler to catch work that isn't done yet.
- Before writing a method, write the code that calls that method.
- That way, when I try to compile, errors will be reported for any methods that aren't yet written.
- Write a 'TODO:' comment.
- That way I can still compile but can track down the items that aren't done yet.
- Write a Unit Test that catches each problem as it is foreseen.
- That way while my code might compile, nUnit will tell me that the full story is a little more complex.
- Use Debug.Assert statements to hard-code your assumptions. Helps you find when your assumptions are wrong.
You can bounce from any one of these methods to any other. The order can go something like this:
- First write 'pseudo code' with each line labelled as 'TODO:'
- Convert the pseudo code into calls to fictional methods/properties. (Methods/properties that aren't written yet).
- Next, write the outline of these methods, but populate them with TODO's.
- Maybe now (or sooner) write unit tests to test the empty methods.
- As the tests are run, add some todo's or even some code to the methods.
- ...Continue compiling, writing, testing, planning -- all together.
Read On...
Fri, 30 Jun 2006 04:32:07 GMT
My brother-in-law has recently opened a Thai restaurant in Brisbane, (in Paddington, a very funky suburb)
I've eaten there three times now, and love it more and more each time. If you're in Brisbane, please go along and take all your friends. Mention the website special offer and get a free serve of spring rolls. (Details here).
Of course I'm biased to like the place. But don't forget that I'm a naturally cynical and critical person. So i think my recommendation still has some validity. ;-). Anyway, go there, eat that, enjoy the place, check out the way they specially sculpt the carrots and the potatoes. it's worth the visit for that alone!
The house special is number 26, "Seafood Madness". Damn I'm salivating just thinking about it.
Read On...
Wed, 28 Jun 2006 03:56:58 GMT
KeyTraino is a tiny and super useful utility.
KeyTraino knows all the keystrokes for all the applications you use.
KeyTraino knows all about the office suite, many business applications, many development tools (even query analyser!)
When you're using an application and you hold down the control key, the alt key, or the WinKey... KeyTraino provides a friendly semi-transparent popup window (don't worry -- no animated paperclips) that gives you all the options available to you for the current application.
When you hold down a function key -- KeyTraino tells you what that key will give you, and what it *can* do if you combine it with other keys...
(continues...)
Read On...
Hey good looking!
I see you've scrolled all the way to the foot of the page. Check out the secretGeek archives!