Archive for the_time('F Y')

Modern relationships
30 August 2007 in General | Comments (5)

Talking with a friend tonight and I asked her how she was getting on with the guy she was seeing.

“we have consolidated our relationship (i.e. it is now on facebook!)”

I remember the old days when you just told each of your friends as you ran into them that you were in a relationship. These days you announce it to your facebook network. Certainly more efficient but I think I prefer the old way :)

What’s next? Getting your marriage proposal to the homepage of Digg?

– JD

Lunch with Geeks
28 August 2007 in Events | Comments (0)

This week Ivan was unwell and asked for me to lead todays Lunch with Geeks. The topic we focused on what development tools – what’s the best and worst tools out there.

It didn’t take long for Source Safe to be rated the #1 most hated development tool and it’s easy to understand why (and why TFS is now the suggested source control platform from Microsoft).

To focus more on the positive, these tools were rated as most useful:

  • mbUnit
  • NCover + NCoverExplorer
  • Whiteboards
  • Resharper
  • Subversion
  • Any CI application such as CruiseControl.NET
  • A couple I cannot remember in the Java space or were techniques for requirements elicitation

Overall it was an enjoyable meeting, good size and nice discussion. If you’re in Wellington and want to come along to one of these Lunch with Geek meetings then just turn up at midday to Syn on Tuesdays. You’ll spot the crowd and have a good time.

– JD

WPF: Cannot set Name attribute
27 August 2007 in .Net | Comments (9)

I’ve been having an issue with creating a custom re-usable UI for a WPF application I’ve been working on. After creating a UserControl and then placing a ContentPresenter control on it I found that I couldn’t name the elements that I placed within the control when used on a Window. For example:

<Window>
<Controls:MyControl>
    <Button x:Name="MyButton"/>
</Controls:MyControl>
</Window>

Doing so would throw an error similar to:

Cannot set Name attribute value 'MyButton' on element 'Button'. 'Button' is under the scope of element 'MyControl', which already had a name registered when it was defined in another scope.

After spending some time on the issue and not spotting a resolution online I finally worked out what was going on. The issue arises because I created a normal UserControl in Visual Studio – the type that has a class file and a xaml file. That’s the deal breaker right there – at least in the current versions of WPF, this technique is not supported in that fashion. You must only have a class file when wanting to display named child content inside your UserControl (This applies to custom Windows as well).

This means we need to get rid of the .xaml file and add all the controls in the class file. I chose to override the OnInitialized event, create the chrome of my UserControl, assign the Content of the control to the Content property of the ContentPresenter and then assign the root UIElement I had created to the Content of the UserControl – simple as pie :)

And for a code example:

public class MyControl: UserControl
{
    protected override void OnInitialized(EventArgs e)
    {
      base.OnInitialized(e);
 
      Border border = new Border();
      border.VerticalAlignment = VerticalAlignment.Stretch;
      border.HorizontalAlignment = HorizontalAlignment.Stretch;
 
      Grid grid = new Grid();
 
      ContentPresenter content = new ContentPresenter();
      content.Content = Content;
 
      grid.Children.Add(content);
      border.Child = grid;
 
      Content = border;
    }
}

Now if we used the code at the start of this post on a Window we would get no errors and it would work perfectly.

Hope that helps,

John-Daniel Trask

TechEd 2007 done!
16 August 2007 in Events | Comments (1)

Another TechEd is now complete and I had a great time, as I’m sure most people did.

This year I managed to get a slot doing some speaking which meant I ended up staying in the Sky City Grand which is a very nice hotel that I’d only stayed at once before, I’d highly recommend it as a place to stay for anyone taking a trip to Auckland. This year my focus was more on mingling and keeping in touch with some of the geeks that live a little further afar than Wellington.

The Sunday night involved a speakers dinner which was great – really top notch dinner and wine with some great conversation. Enjoyed the opportunity to talk more with Craig Walker from Xero. After that it was off to the Casino for a short time with Andrew and JB.

I did manage to attend some sessions and certainly found Alex’s discussion on LINQ interesting. Not so much from the technicalities about LINQ but more the coverage of what elements of the framework were added to make LINQ possible. I did find myself agreeing with his view of using standard language constructs rather than LINQ directly at times – it just seems more readable to me.

The ask the experts evening was interesting – I certainly felt a bit uncomfortable wearing a hat that just states “EXPERT” on it. I’ll certainly be holding onto mine to put on whenever I get into an argument with somebody, “Oh no, you see, I’m an expert!”. I haven’t seen anybody look quite as happy as James Newton-King when Darryl gave him an Expert hat after he had been complaining that he wanted on. I think I even saw him wearing it in the street the next day :)

My session was a lunch time talk about BackgroundMotion and how to get up and running while also highlighting some of the goodies that are baked into the solution. If you attended the talk and want to grab the source code you can check it would at www.codeplex.com/backgroundmotion.

Casino losses were much higher compared to Remix, hitting $100 on the first night, at which point I decided to call it quits for this event. I felt much better enjoying the Rum + Cokes in the Sky City Grand lobby than I did losing my money at the casino so I made sure that I spent more time doing that than gambling.

All up, I think it was a great event and I’d certainly love to speak again next year and would recommend to anybody that has not attended to do so – you won’t regret it.

– JD

Why steam is good
8 August 2007 in Tools | Comments (1)

First off, apologies if you were drawn to this post thinking I was going to be talking about the benefits of hot vaporised water ;)

Some of the gamer audience that tracks my blog will know Steam as an game delivery platform created by Valve software. Users can sign up, and the buy games and download them directly through the Steam application, the upside to this is that now when I purchase games I don’t need to worry about losing the installation media or about keeping them up to date with patches as Steam takes care of all of this for me.

I had my first brush with this service a few years back at Intergen with a game called Counter Strike (a game I’ve played for 5 minutes, didn’t like and never played again). The service was slow, painful to get up and running and I never looked back at it until a few days ago when Newt mentioned the id Super Pack. I was super impressed – just about every game and add-on that id software has ever released in one convenient purchase (from Keen, Wolfenstein, Doom, Quake, Hexen and Heretic). What makes this work even more beautifully is that it’s already configured with DOSbox so, as a Vista user, I can still happily run Commander Keen as if I was back on my 486 without having to muck around with EMS memory and configuring the IRQ of my sound card. Nice!

All of that cost about 65 US dollars – so it is a very efficient way of getting a heap of games (perhaps if you have children and don’t mind exposing them to some first person shooting action this would make a fantastic gift and keep them busy for months). It also helps that our dollar is as high as it is right now.

There are far more than just id software titles on Steam, if you’re interested check out: http://www.steampowered.com/.

Now all I need to do is find a service where I can purchase time to actually play some games again.

– JD

We shipped LightSpeed 1.0!
6 August 2007 in Mindscape & Tools | Comments (1)

Late Friday last week we pushed LightSpeed 1.0 out the door for everyone to poke and prod! I’m really pleased with what has been produced and have had some great feedback to date about the performance, elegance of the API and generally great feedback.

As much fun as we had celebrating the occasion of shipping our first product we’re not going to rest, now it’s time to step up to the plate of trying to educate developers and technology vendors of the benefits of using LightSpeed in their applications. I honestly believe that this product will enable your developers to develop data driven solutions faster than ever before with LightSpeed.

While the market is pretty full the feedback is that our method of achieving things works much better than most competitors. We’ve already had several purchases of LightSpeed and those commercial customers have been really pleased with LightSpeed, it’s always a good sign that you’re ready to ship when someone has taken the risk of playing beta software only to have it pay off for them and start praising the framework before you even reach 1.0 status. That probably sounds like bragging but I honestly am just really happy with what has been created.

I’d love for anybody who keeps track of my blog to download the Express edition and have a play with the samples. You will see the difference right away and hopefully appreciate that it’s worth using in your application development (and if you don’t decide that, let me know why so we can work on it ;) ).

Phew! It feels great to ship! :)

– JD

P.S. We also upgraded our site on Friday with new forums, content and slightly enhanced look at feel. If you were part of the EAP program, your credentials and posts have been migrated :)

Event: Gadgets, Geeks & Games
1 August 2007 in Events | Comments (1)

I’m a big believer in networking and trying to build connections, they’re more helpful than almost anything else when you’re in business. When I first moved to Wellington I didn’t know of any groups or any events to attend and I’ve since discovered that there is a wealth of events going on all the time around the city. I generally try to post about events that are going on to help drive more demand for them but also to help folks who, like me when I moved to Wellington, might not necessarily know about them.

Coming up shortly is an event hosted by Unlimited Potential entitled “Gadgets, Geeks & Games 07″ which, in their own words:

Unlimited Potential’s GGG night promises to stimulate the Geek, wow the Gadgeteer, and stagger the Gamer. Speakers and exhibitors will introduce you to new technology homegrown in our own Welly Valley. It’s an opportunity to network with the people who create, develop, and deliver the innovation which keeps Wellington in the entrepreneurial spotlight.

Unlimited Potential is primarily a group for aspiring technology entrepreneurs (and actual entrepreneurs!) however there is a good mix of general business discussion with this event likely to be the most geekiest of the year. I’d highly recommend attending UP events for the networking aspect as well as to continue learning about various business and technology topics. I’ve yet to go to one of these events and not come away having discovered something new or met some great new people, usually both.

If you’re interested in attending this great event, it is next Wednesday the 8th of August from 4:30 – 8:30 at the Wellington Convention Center. For more information and to RSVP please visit the website here: http://www.up.org.nz/gadgets-games-geeks-07/.

Oh, and the event is free to attend.

– JD