harriyott.com

31 May 2005

Crowborough geek dinner - 22nd June 2005

I've just booked the Raj Poot for 7.30pm. Please let me know if you'd like to come along. The last one was great fun.

I might try to get Mark to bring his Sony Vaio along; I saw it briefly on Sunday, and it looks fantastic.

24 May 2005

Table football

Table football

We're having a lunchtime tournament.

20 May 2005

What the build machine actually does

I've written about the build machine quite a lot, without mentioning exactly what it does. So here's the list:
  1. Creates an "is running" file to use as a marker - this is checked at the end.
  2. Overwrites the CSS file used by the HTML results page to show blue (to indicate running).
  3. Removes all files generated by the last build.
  4. Creates source and target directories.
  5. Gets the latest version of all source code, XML schemas, database scripts and test data into the source directory.
  6. Compiles all the .csproj projects found anywhere under the source directory.
  7. Copies the compiled assemblies to the target directory.
  8. Copies the resource assemblies for the menu generator to the target directory.
  9. Restarts the databases on the build machine and demo server.
  10. Deletes the existing databases.
  11. Runs the database script runner utility to create the databases.
  12. Runs the TSQLUnit tests using osql.
  13. Runs the unit tests on all the assemblies in the target directory.
  14. Generates an error if any tests have failed.
  15. Deploys the website to the demo server.
  16. Zips up debug and release files created by the build.
  17. Copies the zip files into the archive directory.
  18. Generates code documentation from the XML comments.
  19. Changes the colour to green or red, depending on success of the build.
Now we're using Visual Studio Team System, I'm planning to add FxCop and code coverage to the build to.


After a successful build


After an unsuccessful build

Wireless AudaEnterprise

Despite being a press release full of marketing puff ("extended the flexibility and accessibility of this innovative solution"), this article about wireless AudaEnterprise looks quite interesting for several reasons.

Firstly, the innovative solution isn't so innovative, in that a wireless network is still a network, and people have been carrying wirelessly networked devices around for ages. A minor quibble with the triumphant tone of the article.

Secondly, tablet PCs are involved in a really useful way, which should interest Robert Scoble.

Thirdly, it uses technology to change the way the engineers work, rather than simply supporting the way they currently work.

Fourthly, if estimates are being "produced in half the time normally allowed", this should make a big difference to estimators.

17 May 2005

Jobs at EurotaxGlass

[Update]: Nothing to report at the moment.

Geek dinner

Having left it too long, I'm planning another geek dinner. This time it will be in Crowborough, in the second half of June. Eight people turned up to the last one, and a couple more have said they'd like to come too. If you're interested in coming along too, then leave a comment below, or get in touch.

If you don't know what one is, it's where a bunch of geeks have dinner and talk about geeky things like programming, PDAs, Google, blogging or any other techie stuff that their "normal" friends and family just don't care about.

Unit testing stored procedures

Part of our development standards is to use TSQLUnit for unit testing our stored procedures. Over the last couple of days I've been adding this to my daily build process. We have a database maintenance utility which I have modified to run unattended, so the build machine can create its own database as part of the build.

I've added a stored procedure to the TSQLUnit framework which essentially runs all the tests by calling tsu_runTests. The results are written by default into a table, with success being marked as 1 in the [success] column, and failure being 0. Selecting 1 - [success] in the stored procedure will give a 0 for success and a 1 for failure. MSBuild will recognise these values, causing the build to pass or fail if the tests pass or fail.

To run the unit tests in the build, I'm using osql in an exec task. From memory, the osql command is something like:
osql -E -Q "EXIT(EXEC tsu_runTestsReturningResult)"
The build machine now runs the unit tests, and the build fails if a single test fails, and will only move on to the next step if they all pass.

15 May 2005

Data down under

Two of the speakers at DeveloperDeveloperDeveloper are Australian, and they both pronounce "data" to rhyme with "garter" as opposed to "later". Before jumping to conclusions, I asked the only other Australian techie I know how she pronounced it, and she also rhymes with garter, confirming my theory.

Whilst on pronunciation, I noted a new TLA to extend my list:

WMI is pronounced "Wimmi".

I think I might start my own. From now on, TLA (three letter acronym) shall be pronounced "Te-Lah".

14 May 2005

Developer^3 day

As ever, I allowed too much time for traffic, over-estimated the distance to Reading, and so got there really early. Fortunately, so did a couple of other guys who I met on the way in: Jonathan Hodgson was one of the speakers, and having introduced myself, he said that he thought he had heard of me. His presentation on refactoring was really good, and I was surprised to learn that it was his first one. Jonathan was with Simon, whose surname I didn't get, but he lives about half an hour from Crowborough. I'm due to organise another geek dinner in Crowborough, and they said they'd like to come along, which is fantastic.

[Note to self: organise a geek dinner in Crowborough]



I met a guy called Chris from Liverpool, who writes software for the tourism industry. Interestingly, when tourism has a problem such as foot and mouth disease, the tourist boards spend more money at his company to increase tourism. When tourism is going well, as it is in Liverpool at the moment, the industry still spends lots of money, because it has lots of money. Sounds like a good business model to me.

I introduced myself to Benjamin Mitchell, who was one of the speaker's at the last MSDN day I went to. The photo on his site doesn't really show it, but in person he looks (to me) rather like Will Young. Either he doesn't, in which case I'm sorry, or he does, and is fed up of people mentioning it, in which case I'm also sorry.

While I'm on the subject, I thought Guy Smith-Ferrier (another speaker) looked like Kevin Spacey. Either he doesn't, in which case I'm sorry etc. I saw two of his sessions, the first on ClickOnce deployment (which comes with .NET 2.0) and the second on writing FxCop rules. These were both excellent.

I chatted briefly to Barry Dorrans, whom I met at a geek dinner earlier this year. I missed his website hacking presentation, as I particularly wanted to go to the one about custom attributes. On reflection (oh look - a .NET pun!), I should have gone to Barry's, particularly now I've looked at his slides. Sorry.

Alex Homer's presentation on the new features of ADO.NET in version 2.0 was really good. He showed how useful the new asynchronous database calls could be, even for a web page. Alex looks like my uncle, but I'm sure nobody has told him that before. Not sorry.



The last session I went to was way more basic than I was expecting. The title was "Selling yourself as a developer - Tips and Tricks for getting that role". It was presented by a recruitment agent (who was booed as soon as he admitted it). There were no surprises in the content: obvious things like reading the potential employer's website, driving to the offices a day or two before the interview. The big surprise was in the questions that were being asked. Someone asked if they really had to wear a suit for a developer position. Someone asked if CVs really had to be 3 pages or less, and how to fit their vast years of experience and skills in to such a meager space (I paraphrase). Several people joined in with "yeah, answer that one buster" type comments. I struggle to believe that a bunch of bright developers wouldn't have found this out right at the start of their careers, found out from a really quick scan of any job site, or worked out how they will be measured with something as important as finding a new job.

[Note to colleagues: please do not draw any conclusions from reading that I went to a seminar about how to get a job.]

What struck me during the day was how fortunate jammy I am to be working exclusively with .NET 2.0. For example, I was asked if I used NAnt for the build machine, to which I said no, MSBuild. "Oh yes, of course, you're using .NET 2.0". Some really good features are included in .NET 2.0 that I hadn't thought about until today. Another reason why I like my job.

Anyway, it was a great day, and it was useful being on a Saturday. Hopefully there'll be another one.

Moblogging isn't all that

Tried a couple of times to email my blog post to blogger.com, and blogger.com politely emailed me back regretting that unfortunately it wouldn't be adding my laboriously texted email. One post got as far as the list of posts, but it didn't get posted to the site.

Winner

Each session has prizes for delegates. I've just one a copy of VB.NET for asking how to spell .NET. I don't actually want it, so the first person to leave a comment can have it,

DeveloperDeveloperDeveloper day

I'm just about to leave for DDD day (sorry Helen). Hopefully I'll post some pictures while I'm there. In the three days I've owned a camera phone with email, blogger.com have changed their email to blog function such that pictures are no longer supported, and introduced a children's version of posting pictures using a different method. I prefered the first method, but hey-ho.

12 May 2005

Audatex and Glassmatix

Just seen this outside a recruiter's: Eldertech should be Audatex, and Glassquote should be Glassmatix. I guess this one was sold by phone.

11 May 2005

Gaping void t-shirt

Got my t-shirt. I like it very much. Just to be double geeky, I'll give it its first outing at DDD day on Saturday. I'm sure it'll start a couple of conversations (in the non-cluetrain sense), which is half the reason I'm going.

Moblogging

Got a new phone today. This post was written on it.