Rob Farley

Rob Rob Farley has been consulting in IT since completing a Computer Science degree with first class honours in 1997. Before moving to Adelaide, he worked in consultancies in Melbourne and London. He runs the development department in one of Australia's leading IT firms, as well as doing database application consultancy and training. He heads up the Adelaide SQL Server User Group, and holds several Microsoft certifications.

Rob has been involved with Microsoft technologies for most of his career, but has also done significant work with Oracle and Unix systems. His preferred database is SQL Server and his preferred language is C#. Recently he has been involved with Microsoft Learning in the US, creating and reviewing new content for the next generation of Microsoft exams.

Over the years, Rob's clients have included BP Oil, OneLink Transit, Accenture, Avanade, Australian Electorial Commission, the Chartered Institute of Personnel and Development, the Royal Borough of Kingston, Help The Aged, Unisys, Department of Treasury and Finance (Vic), National Mutual, the Bible Society and others.

Did you mean to come here? My blog is now at

30 November 2005

One down, four to go

Well, I did 071-431 this morning. It's the beta for 070-431. I have no idea if I passed - I find out in eight weeks. Annoyingly, I didn't leave thinking "Oh, yeah, I would've passed this...". I left thinking "Oh, I hope I passed that, there was a lot that I didn't know."

Even more annoying was the fact that most of the questions that I didn't know were things that I don't think I'll ever really know off the top of my head. I know there are different ways of partitioning tables, and I know where to find out about them when I need them. I know there are things that need to be done before you can set up database mirroring, and I know where to find out about those things.

If I have passed, then great. If I haven't, then it's not the end of the world. Having sat one of these betas, I think I'll be much less stressed about the rest. I know I'm not going to know enough going into them, but hopefully I'll squeeze through some, and by the time I sit the proper versions (of the ones I fail), I will have had the time to read a study guide book. :)

And for those of you who are going to ask me - it's a very similar format to the others. 71 multiple choice questions. And pick 'D' if in doubt. ;)

29 November 2005

First exam tomorrow

Tomorrow I do 071-431. Just a little stressed. I really don't feel ready for it. Still, it's only beta - and what's the worst that can happen?

Ajax experiences

I promised I'd write something about my AJAX experiences, so here goes:

I'm using AjaxPro, by Michael Schwarz. I'm using it so that people can quickly fill out a form without having to post back the whole page all the time. As you pick the details, it updates later parts of the form so that you're only prompted for the correct parts, and you don't have to keep posting back and reloading menus and stuff like that.

I have a textbox which has an event on it that calls an Ajax method, to populate a drop-down list. It's not a combo box, it's a list. That way, the user gets to see the whole list, not just a single entry. I could've returned a dataset from Ajax, but it was a heap easier to create the list in C# and then return the rendered HTML, which I apply to the InnerHTML property of a div tag.

I use the same rendering concept to display whole chunks of forms. It does mean that I need to handle the elements from Request.Form, because I'm dynamically generating the form elements, but I'm fine with that. It's only a form submission - it's not like I'm trying to handle various events.

The biggest problem I came across was form validation. I had some C# code which created a JavaScript function for validation. But it wouldn't get called by the browser. I took the validation code out of the function and put it directly into the form element event, and it worked just fine. I figure that the browser does something funky to know what functions are available, such that it doesn't like to introduce new functions after the page has loaded. Or something like that. I'm happy to wrong on this point - but I got it working nicely.

I like Ajax as a technology. The page works great under both Firefox and IE, and it seems really responsive. You can annoy it by changing the selected items really quickly, but to get around that I used a timer, so that it only puts the request in 0.1s after the user clicks. That way, a second click that's too quick doesn't stress it out too much. The problem seems to be with the client making too many requests, not the server handling it.

Local admin

Maybe it's just that I appreciated what Jesper & Steve keep talking about...

A while back I ran through various things on my machine to try to encourage it to be slightly more secure. I know I didn't do everything I could've done, but I did some. Today I tried to run something (not something I wrote, something someone else wrote) and I got a nasty error. Tracked it down to the fact that Performance Counters were disabled. But as well as that, I wasn't running as a local administrator, which it seems I needed to be to allow access to said Performance Counters, all so that the system could detect if they were already running a copy of the app in question. I don't like having to be a local administrator. I don't let my kids run their computers as local administrators, and I would really rather not be one myself. Even more so, I don't want the people running my applications to have to be local administrator, and I try to make a point of not requiring it. Mind you, just about everyone I know runs under local admin, and I guess it's 'normal' to do so. I just don't like it. I guess I'm 'different'. Thanks, Jesper & Steve.

I'm looking forward to being able to escalate privilege as required.

23 November 2005

Encarta conversations

I came across this on Clarke Scott's blog. Seems it's a MSN Messenger bot. Ask it to solve an equation, or some piece of trivia, and it can be handy. But also, a friend of mine suggested I try:

Rob Farley says:
I'm sleepy
Encarta® Instant Answers says:
Would you like me to call you Sleepy?
Rob Farley says:
Encarta® Instant Answers says:
K, no prob.

And then I asked it a few questions of my own:

Rob Farley says:
How are you?
Encarta® Instant Answers says:
Welcome back, Rob Farley.
I'm doing great, how are you?
Rob Farley says:
Yeah, not so bad thanks.
Encarta® Instant Answers says:
Not so bad? Fantastic.


Rob Farley says:
Do you know who I am?
[U] Encarta® Instant Answers says:
You are Rob Farley.
Rob Farley says:
Who is Rob Farley?
[U] Encarta® Instant Answers says:
I don't think I know Rob Farley. Let's try an Encarta search. =>

So I guess it does worse than Robotman on the Turing Test.

22 November 2005

Stress starting to build

I'm getting seriously stressed about the SQL2005 exams that I'm facing starting a week tomorrow. I really don't feel like I know my stuff yet. Shankar was telling me that the new exams are REALLY in depth. So that did my confidence the world of good (sarcasm doesn't really come through in blogs, does it?). I really need to get learning. Problem is, normally when I do an exam, I don't need to learn the stuff, I already know it, and study is reminding myself of stuff. This time, I feel like I need to learn stuff for the first time, and that's starting to freak me out a little.

SQL2005 blogs and January session

I was talking to Shankar Pal today at the Ready Launch event in Adelaide. He's a Program Manager for SQL Server. I checked out his log when I got back to work, and there's lots of interesting stuff there. Most interesting (I think) is the links to other blogs on the side. Shankar doesn't blog very much, but when he does, it seems to be worth reading. On the other hand, some of the blogs he links to seem to have a bunch of pretty useful information.

These days I read a bunch of blogs, and most of the time, I read it, mark it read, and don't think about it much more. I get the feeling that the people that I come across through Shankar's linked blogs will have me reading the blogs and then doing a bunch of extra investigation before marking the thing as read. That's cool. :)

Also... Met a few people today who were interested in how to upgrade to SQL2005. I think we might have a session on that in the User Group in January. What do you guys think?

Launch party last night

Last night was the Adelaide Launch Party for SQL2005. I'm not sure the theme really worked - I think really it was just an opportunity for a bunch of geeks to get together and catch up. "Catch up" is the key expression, because there were lots of people who don't often make it over to Adelaide. Quite a few MS people, but also Joe Sango, who seems like a good guy.

I tried a few really bad jokes (the best one saved until last - saying that in the SQL group, being from Adelaide, we're all S.A.), and even sang karaoke with a few people when the place had quietened down enough.

Today is the Business Launch. I might drop over there later on today, when I've got a few more things sorted out.

18 November 2005

Ring volume

Around the office there are several ringtones that are just too loud. Drives people crazy. The most ordinary of ringtones can be awful if it's too loud.

When I'm at work, my phone sits in its cradle just a few inches from my keyboard. If it rings, I'm going to know. I don't need to have the volume very high at all.

But then when I get up from my desk, and go and talk to someone, or pop out to get some lunch, or go to a User Group meeting, I typically forget to turn the volume up. So I miss calls. Or Greg Linwood misses calls when we're waiting for Chuck to phone back for the webcast (which by the way, seems to have lost the audio completely now - hopefully we'll have more luck next time). Point is - when there's other noise around the place, I want the phone to be louder.

It already handles volume adjustment if I'm talking into it and it detects that it needs a gain change, so I think it should detect the ambient noise and make the ringtone louder! If I'm in my car, it should belt out its ringtone as if I'm hearing impaired. If I'm somewhere quiet, it should do a modest little ring. I don't want it to start quiet and get louder - it will have probably gone to voice-mail by then anyway. And I figure that since my phone is a PocketPC, I should just be able to patch it to have this. Or even find an API that would let me program the phone to do it myself (you know, in all that spare time I have!)

15 November 2005

New info at

If you don't know what's at, then you should!!! It's the home of the Australian SQL Server User Group, of which the Adelaide group is a part. You should register there, and go back regularly to find out what's going on.

Today I added the December meeting, at which David Lean is presenting, plus details of the Launch events (21st and 22nd), and also created a new forum in which you can give me feedback on the Adelaide events. Feedback is great. My ego can cope with criticism, and is always happy to receive compliments. But without feedback, it's hard to know where to make things better. So get writing!

Also write about how to improve the website there, because if you think it could be improved, you might not be the only one.

More going on this Monday

It's going to be a busy day. Michael Kleef is in town (presumably for the Launch events), and is taking the opportunity to speak at a TechNet Update event. I doubt I'll get there, but it's sure to be a good time.

10 November 2005

Glutton for punishment

Sometimes I think I must be crazy. Today I signed up for two more SQL beta exams (thanks Andrew for putting me up for it). If I do well, then by Christmas I'll end up almost having a bunch of new Microsoft certifications. I'm now doing 4 exams. Nov 30, Dec 2, Dec 14 and Dec 16 (the exams are 431,441,443 and 444 if anyone's interested - I forget which order).

There must be something wrong with me. I don't even feel like I know very much about SQL2005 (yet!). And I'm not even a current MCDBA, only a MCSD. And it's been 4 years since I did my SQL2000 exam. Hopefully they'll get the other two exams out there at some point, so that I can hope to get MCITP right under my belt.

I do plan to do the MCPD stuff at some point too, but I do want to get the SQL stuff sorted as well. I probably should've taken the MCDBA exams ages ago, but I just didn't get around to it. Registering for beta exams just kinda forces the point.

Looking at this page there doesn't feel like much that is out of reach. I've never really been interested in the sysadmin ones (MCSE, MCSA, MCDTS). MCT interests me, as does MCLC. And that only really leaves the Architect one. But that's a whole different ball game, and one I doubt I'm ready for yet.

Why do I do this? It's not like I call myself "Rob Farley BA, BSc, BComp(Hons), MCP, MCSD, MCAD, MCSD.Net" (have I forgotten anything? probably...) Does anyone actually put those letters after their name? One day I might join the ACS, so then I'd be able to put MACS on there too. Feels late, and I'm going offline now... to dream of sitting exams I'm not prepared for.

The webcast is done

Well, we had the SQL group webcast today. You can view it for the next 90 days here. It was a lot of fun. The content was great, we had a big turn out (42 apparently!), hadn't catered for enough (my fault I think, I should've made sure Penny & Rose knew the expected numbers a few days earlier), had all kinds of headaches trying to get the audio working reliably (it dropped out every 10 minutes, still working that one out), but it was a great time.

We had our vote for the December 15th topic - it's going to be on Tuning Query Plans for the Optimizer with David Lean. Lunchtime again. And we'll webcast that one too. Heck, we'll webcast them all if we can (unless the speaker doesn't want us to).

09 November 2005


I've been doing some Ajax stuff today. It's lotsa fun! More later - gotta run now.

Number padding in T-SQL

I saw a SQL Tip on padding numbers, which seemed really lousy.

The way I pad numbers is to use 'right', rather than 'left' and 'len'. And certainly not 'case'.

They wrote:

SELECT value,LEFT('000000',(6 -LEN(value ))) + CONVERT(VARCHAR,value) AS Formattedvalue
FROM #ValueTable

And I'm suggesting:

SELECT value,RIGHT('000000' + CONVERT(VARCHAR,value), 6) AS Formattedvalue
FROM #ValueTable

The way I see it - if you have something you want to appear on the RIGHT, with some unknown amount of stuff to the left, then it makes sense to use RIGHT. If I don't want it to break when the length of the value is too long, then a case statement will do the job.

08 November 2005

Getting the webcast working

Chuck and I just made sure we knew how to get the webcast working.

Following the link to present (not listed here), I got prompted about LiveMeeting. So I downloaded it.

Turns out that for audio, you need to set up the 'conference number' (using the link on the 'Internet Audio Broadcast Settings' form) like this:

Country: +61....
City: blank.
Local number: 431...
Actual keys: blank

(my number starts 0431...)

You can upload a powerpoint presentation (Share | Share Document to View), which can help with syncing and stuff, but it simplifies the document, so if you have animations or anything, that should just be shared with the desktop.

You share the desktop by going to Share | Share Application. But it doesn't do a secondary monitor. It has to be Monitor 1. So if you're planning to extend your screen onto a projector, and just share that - forget it. To do that, you'd need to set up your local screen as monitor 2 and the projector as monitor 1, and move the stuff that you don't want seen over to monitor 2. Hope that's clear. :)

And as I mentioned before, there's a special link you use for presenting to join the LiveMeeting in the first place, but I'm not going to post that there. I have it in my bookmarks, so we can use it on Thursday.

Thursday's webcast

The link for the webcast is here:

EventID 120465372. Wow... and the pressure's on, because I hear #120465371 was really great!

Remember that it's in Adelaide, so the 12:30 start is 1pm in Sydney, 12pm in Brisbane, 11am in Perth, and 2am in London.

Incidentally, a friend of mine who bought The Times couldn't find the article. Maybe it'll be in there on the 8th, which makes the comment that I'm 31 slightly less accurate.

07 November 2005

The Times

For some reason, the journalist decided to put an 'ert' on my name. But either way, it's nice to appear at,,27-1860709,00.html . Now I just need to find somewhere to buy a copy!

Chelsea lose!

I've never been so excited about ManUtd winning a game. But when they break Chelski's unbeaten run nine games short of Arsenal's record, that's a fantastic result!

Webcast on Thursday

This Thursday Greg Linwood is presenting at AdSSUG. He's going to be talking about indexes, which should be pretty interesting. So far there are 25 people registered, so it should be a good day.

Even more interesting is that it's looking like we're going to WebCast it. I was talking to Chuck Sterling on Friday, and it seems like it's all quite doable. So even if you can't come along, you can still watch it! It's the session he was going to do at TechEd 2005 (before he got sick) so if you were there, and still want to hear what he has to say on it, then tune in! I'll try to post some information about it before Thursday, when I find out where the link will be, etc...

01 November 2005

Three in a row

Makybe Diva has won the Melbourne Cup for the 3rd year running. The nation stops for a horse race. I don't really understand why, but I guess it's one of the few sporting events that occurs during the working day. It didn't feel like such a major event when I was living in Melbourne, probably because we didn't work. Now that I live in Adelaide, work actually stops for a few minutes.

I can understand it for particular events at the Olympics, or for the World Cup (in almost any sport), but for a horse race?