Tuesday, 31 July 2007

National Ride to Work Day

I got an email from Jeff Kasparian yesterday about National Ride to Work Day.

I've signed up to be the coordinator for our building. We already have about 2-3 regular bike riders - maybe we might get a few extras on 17th October.

I try and ride to work around once a week, but I do tend to be a bit fussy about picking good weather. It's a 40km round trip too, so it isn't something I'd consider doing every day.

Dave Glover on ASP.NET Dynamic Data Controls

I see Dave Glover is coming to town on Thursday to talk about ASP.NET Dynamic Data Controls (Oryx).

Lunch is at 12 noon, the session starts at 12.30.

I'll be there!

Monday, 30 July 2007

YSlow for Firebug

YSlow for Firebug is a Firefox addin analyses web pages and suggests ways to make them load faster. It requires the Firebug addin.

(Via Ayende's blog)

Friday, 27 July 2007

NHibernate plugin for Visual Studio 2005

I was only thinking the other day, "Wouldn't it be great if someone wrote an add-in to Visual Studio that let you drag tables from a database and it generated NHibernate-compatible class definitions and mapping for me".

Well it appears I wasn't the first to have this idea.

The project seems to be run by Adam Langley. There is some source code available, though not in the SourceForge SVN/CVS repository.

One problem at the moment is that it only generates C# code.

Opening Visual Studio 2005 projects in Orcas (2008)

I'd assumed that Visual Studio 2008 would be able to open 2005 projects and manage them alongside any new 2008 projects.

This isn't quite correct - 2008 will upgrade 2005 projects, but those projects can still target the .NET 2.0 runtime. There is a difference!

So if you've got a team project where not everyone is moving to 2008, best keep using 2005 on it.

Visual Studio 2008 Beta 2

Thursday, 26 July 2007

Busted my PC

This morning I thought I'd clean out some of the accumulated dust from my PC at home. I've done this before, as I've noticed that the CPU's heat sink and fan particularly gets quite a covering of dust and lint, and I presume this isn't helpful in keeping things nice and cool.

Things were fine until I tried to lever off the fan that sits on the CPU heat sink. In prying it off, I also managed to unseat the CPU from its socket.

The problem is that the CPU has the heat sink firmly attached to it, and the heat sink is wide enough that you can't access the zero-insertion force lever on the socket.

Initial attempts to separate the CPU from the heat sink were not successful.

I'm confident that the hard disks are fine, though it is a bit tricker than usual as I had utilised the on-board RAID feature of the D865PERL motherboard to stripe two hard disks into one large disk. Because of this I'd prefer to get the CPU back and working rather than have to consider pulling out the hard disks and trying to get them to work in a different PC - even if it was the same model.

Anyway, now that I've got into work, I have found this useful article on removing and re-attaching the heat sink. I'll have another go tonight and see if I can have more success.

Wednesday, 25 July 2007

MbUnit documentation

It was nice to see that some of the expanded documentation I contributed to the MbUnit site has been noticed by Andrew (the main developer of MbUnit).

That's one great thing about using a Wiki is that anyone (like me) can jump in and add or expand the information.

It also turned out to be a great way to learn about some of the features of MbUnit that I hadn't bee aware of before too.

Friday, 20 July 2007

Welcome Jagruti

Our team continues to grow - Jagruti has joined us on contract, bring our team's developer count to 6.

This is great, though it does make using the 5-user license of Team Foundation Server a bit of a juggling match :-)

No, her name does not end in an 's' - someone somewhere did a typo (but we don't want a culture of blame), and it's taking a few days for the correction to filter through to all the various systems.

Monday, 16 July 2007

IdBag in NHibernate

I've just wasted a few hours trying to get an idbag working, but it turns out that it it doesn't work for identity columns.

I'd noticed the comment in the documentation that 'native' columns are not supported.  What I hadn't realised what that 'identity' is a native column.

I wish they'd fix this.

Tuesday, 10 July 2007

CodeCampSA 2007 - More reflections

A few more things that have come to mind.

  • Lunches seemed a bit rushed. I was surprised to see that Wagga's schedule only allowed 30 minutes for lunch too.
    Even though I liked the BBQ, they did appear to have problems keeping up with demand - eg. the second tray of cooked food came out just as we were heading back in.
  • Not enough time for questions. Most sessions probably ran over-time (I suspect I was guilty of this too). Having a consistent 5 minute warning would probably help everything keep on track better.
  • A better web site. I'm not convinced that the "news" page on ADNUG's site was the best place to promote the event and session times. Carl and Richard from DotNetRocks seem to agree - I was pleased that the event was promoted on their podcast, but they commented a number of times about the lack of information on the web page. 
    I'm thinking it either needs its own independent web site, or see if we can have a space on CodeCampOz.

Don't get me wrong, while I've listed things that I think could be improved, I did enjoy the weekend and got a lot out of it!

Monday, 9 July 2007

I've been twittered

I just discovered that I was twittered (tweeted?) at CodeCampSA.

CodeCampSA 2007 - Reflections

  • I'm glad I organised wireless network access!
  • The directions weren't great, which Peter has acknowledged. A few temporary signs around City West campus would have probably helped too.
  • I liked the food (catering was done by 3rd Goodwood Scouts) - a nice change from pizzas, but I think Mitch is probably right in that a barbecue doesn't scale to a Wagga-sized event. You'd start to run into concurrency issues - nothing worse than a deadlocked sausage :-)
  • Wagga does have a tradition of all going out to eat somewhere on the first night - maybe something could have been arranged for Adelaide too.
  • Nametags - not everyone likes them, but I think they help with mingling/mixing and getting to know other people.
  • Public transport in Adelaide isn't great early on a Sunday morning. Not a problem for everyone, but for those of use with one car it's something to consider.
  • It would be great to make use of all the talent in the room and finish Sunday with an "expert panel". When you have the likes of Mitch, Dave, Greg, Greg and Darren in the same room, that's a great opportunity you want to take advantage of.
  • I missed not having Rob around. That would have been the icing on the cake!
  • For a CodeCamp, I'm not sure that there was heaps of code to be seen. Having said that, I found some of the non-code talks really interesting - Design by Contract and Web Sales come to mind.
  • The turnout was good, but it could have been better. I know that weekends aren't always free for people, but to pass up an opportunity to learn from some of Australia's top speakers is a big call.
  • It was great that UniSA's School of Computer and Information Science sponsored the event, but apart from Allan Baird welcoming everyone on Saturday morning, it wasn't clear to me if there were any CIS students or staff actually attending the weekend. I would have thought this was a great opportunity for students to network with people in the industry as well as learn heaps too. Funny it doesn't even get a mention in their News and Events.
  • Interesting discussion on Saturday as to whether naming the event 'CodeCamp' is a turnoff for people attending.

You can only have 65535 temporary files in a single directory

This limit caused us problems yesterday. For some reason, the temporary files weren't getting deleted.

The first clue was that the temp directory contained exactly 65535 .tmp files. The corroborating clue was that the last .tmp file was named "uplFFFF.tmp" - FFFF would be 65535 in hex.

The .NET Framework mentions this limit for the GetTempFileName method, but curiously the corresponding unmanaged GetTempFileName API doesn't (so I've submitted some Community Content to note this).

CodeCampSA 2007 - Day 2

I discovered this morning that there are no buses or trains that go to the city early on Sunday mornings. Thankfully my wife was able to drive me in instead!

Ben Mackie

ORM overview. A pity this wasn't before my LINQ talk yesterday, but hopefully it helped people understand the theory behind mapping objects to relational data.

Dave Glover

Overview of features in Windows Mobile 6. Dave made use of Pocket Controller in his demo. He also mentioned using CompressSoapExtension to compress data with SharpZipLib going through web service calls.

Peter Cornish

A good presentation on the sales process, and how important it is that your web site is found by Google. I now have a better idea about "organic" (aka 'Free') search and "Paid" (aka AdWords) search.

Peter pointed out that for quick changes and campaigns, paid search is the way to go, as Google will display your new ads immediately, rather than waiting weeks or months for your site to get re-indexed.

Don't forget that keywords are what the client/customer types in to Google - they might not be the same names as you use in your business yourself.

Jey Srikantha

Talked about K2 and MOSS, but I missed this session as I had to do some birthday present shopping.

Greg Low

DMV's - dynamic management views in SQL 2005. These views were originally developed for the SQL Team at Microsoft to aid in their internal debugging and diagnostics. They live in the SYS schema.

Greg showed how you can use CROSS APPLY to run a TSQL function for each row of a result set.

There's also a new feature in SQL 2005 SP2 that let's you view reports of your databases (you don't need Reporting Services for this to work).

James Chapman-Smith

An overview of NHibernate (seems like there's a bit of an ORM theme this year). Greg asked a good question about dealing with concurrency. As an NHIbernate user myself, I'll have to research this a bit more.

Yes, it was ironic that James - self-confessed Database non-fan was sandwiched between the two Greg SQL gurus :-)

Greg Linwood

SQL Server execution plans explained. Greg really knows his stuff and it was very worthwhile to see this talk, which was similar to his presentation to the Adelaide SQL group last year.

Remember, execution is serialised, read execution plans from top-right to bottom-left, and clustered indexes aren't always the best choice.

Darren Neimke

A talk about how Readify manage all their staff who are out there developing remotely.

They use Scrum, but the stand-up daily meetings don't really work if you're not all in the same place, or if you're all working on separate things.

They really like WSS v3, and use SharedView to share documents and screen views (eg. do pair programming remotely)

Saturday, 7 July 2007

CodeCampSA 2007 - Day 1

A really good day - great to see lots of people turning up.

Che Metcalf

  • Talked about PodMo, a free mobile-based (eg. primarily bluetooth) network he is developing.
  • Mega|SA - mobile applications incubator. Will have links to UniSA graduate certificate course next year.

David Gardiner

  • I did my LINQ for SQL talk. I think it went ok.

Michael Baker

  • Talked about Design By Contract
  • Very interesting talk - I think I have a better understanding of this now, and can see how we might make use of this in our development processes.

Dave Glover

  • Silverlight
  • First time I've seen demos of PopFly - really nitfy.

Jey Srikantha

  • Demonstrated K2 BlackPearl. A tool for Visio and Visual Studio that manages business process. Looks very comprehensive.

Mitch Denny

  • Team Foundation Server, specifically using it for continuous integration
  • Make use of virtualisation when deploying TFS.
  • Use TFS Integrator to automate builds
  • Use TFS Deploy to automate deployment

Paul Turner

  • Microsoft CRM

Dave Glover (filling in for Jeff Headley)

  • Expression Web - the next version of FrontPage.
  • Better standards support and some nice enhancements.

Thursday, 5 July 2007

Welcome RJ

RJ has joined the Online Services team this week. As you can see, he's spent time on the Academic side of the fence - now he'll be seeing how the other half live as a 'Professional' staff member!

Expert profile: Mr David Gardiner

The University of South Australia participates in publishing it's staff expertise on ExpertGuide.com.au. It's a site that aggregates expertise from academic and professionals, and is obviously a great resource for journalists.

Because I'd presented some talks on Internet Safety for Children, I'd added this as an area of expertise, not really thinking about how this might be interpreted by other users of the site (eg. journalists).

I've realised now that this explains the phone call earlier this week, and again today from from a Sunday Mail journalist.

Consequently, I've updated my profile to more accurately reflect what I am an expert in.

Internet Safety for Children is an interest and a concern of mine, but I'm not an expert in that field.

LINQ for SQL at CodeCampSA

Just in case you didn't realise, I'm doing a talk on "LINQ for SQL" at this weekend's CodeCampSA. Yes, I'm the first "real" speaker after morning tea on Saturday!

I'll be doing an updated version of the presentation I did for the SQL User Group in February.

At that time, the latest LINQ for SQL was the May 2006 CTP which installed on top of Visual Studio 2005. Since then Microsoft have released Beta 1 of Visual Studio 2008 which has also incorporated some language syntax changes to Visual Basic related to the LINQ bits. Fabio has listed some of the framework changes since last year.

Bits that affected my presentation include:

  • The Visual Studio LINQ to SQL Designer now works pretty well (no need to use the SQLMETAL.EXE command-line tool)
  • Overriding insert/update/delete operations now doesn't use attributes (this is a bit strange) on the methods.
  • Projections in VB don't need to use New, and you use '=' instead of ':='.

I also did some testing of SQL generated for SQL Server 2000 versus 2005. It turns out LINQ for SQL is smart enough that it uses 2005 features (eg. ROW_NUMBER) when they will perform better.

Tuesday, 3 July 2007

Microsoft .NET Framework 3.5 June CTP

Here's the June CTP release of  

I'm not clear whether these can be installed on top of Visual Studio Orcas Beta 1.

SQL Server 2005 Best Practices Analyzer

Monday, 2 July 2007

Almost famous

This morning I had a phone call from an ABC TV journalist.

I gather he was doing a follow-up story on the Adelaide woman who has been arrested in the US allegedly trying to meet up with a 16 year old.

I'm not exactly sure how he contacted me, but I'm guessing it is related to the fact that I've done some presentations on Internet Safety for Children and that I work here at the University of South Australia.

Anyway, he rang back later and I got the impression he really wanted someone who was an 'expert in the field' - eg. had the IT experience but also direct Internet Safety experience with children too. I'm happy to be an IT expert, but internet safety isn't part of my day-to-day job, so I'm not willing to call myself an 'expert' for that.

Anyway, I'll try and watch the news tonight to see how the story ended up.