Friday, May 30, 2008

SideShow managed API is shipped!

It seems to have taken a while, the Managed API for SideShow has left the beta phase and shipped.
I was working on SideShow before Vista shipped with the team that built this awesome axillary display technology. All the code I wrote was native C++ against the native SideShow APIs. Now the large number of .NET programmers can access SideShow technology from the comfort of the abstraction layer.

Sunday, May 11, 2008

Windows Mobile Unit Tests setting the time

As if you didn't know, I am a fan of TDD (Test Driven Development). I try to work in a TDD manner as much as possible.
Unit testing for Windows Mobile applications has always been somewhat challenging. Visual Studio 2008 (professional and above) allows me to work in a TDD manner as I build software for the Windows Mobile platform.
I have been working on some software that needs the time to be changed as part of the tests. This might not be as simple as you think, but it's not hard as long as you know to set the local time not the system time on the device.

private SYSTEMTIME SetDateTime(DateTime dateTime)
{
SYSTEMTIME st = new SYSTEMTIME();
st.year = (short)dateTime.Year;
st.month = (short)dateTime.Month;
st.day = (short)dateTime.Day;
st.hour = (short)dateTime.Hour;
st.minute = (short)dateTime.Minute;
st.second = (short)dateTime.Second;
st.milliseconds = (short)dateTime.Millisecond;

return st;
}

public struct SYSTEMTIME
{
public short year;
public short month;
public short dayOfWeek;
public short day;
public short hour;
public short minute;
public short second;
public short milliseconds;
}

[DllImport("coredll.dll", SetLastError=true)]
static extern bool SetLocalTime(ref SYSTEMTIME time);

[TestMethod()]
public void HourIsOne()
{
DateTime savedDT = DateTime.Now;
SYSTEMTIME sysTime = SetDateTime(savedDT);
sysTime.hour = 1;

bool setSuccess = SetLocalTime(ref sysTime);
Assert.IsTrue(setSuccess, "Failed to SetLocalTime");
Assert.AreEqual(1, DateTime.Now.Hour,
"Hour should be 1 after setting it");

sysTime = SetDateTime(savedDT);
SetLocalTime(ref sysTime);
}

Friday, May 09, 2008

Local Feedback Loops

I had a wonderful beach side meeting and lunch with Andrew Coates yesterday and we talked through a number of ideas. Mostly about TechEd Australia as that is Andrew's focus right now.
We brainstormed ideas around how to get people talking more at the event rather than make it a series of push sessions.
I find I rarely attend a session at conferences any more as I can watch them all online afterwards. The real value of a conference is meeting people and talking to them. Creating feedback loops for thought processes. Sometimes just listening in to other people talking can be enlightening too.
We brainstormed some ideas around having the first session after the keynote being a panel for each track. The panel would introduce the speakers on that track and start the conversation around the track topics. Andrew has blogged about it.
I hear complaints about there not being enough content at TechEd and comparing TechEd Australia to TechEd USA, which does have a lot more content and a much higher attendance. I don't think this is a good argument. You are allowed to go to both! TechEd USA is an awesome event and worth going to. TechEd Australia is different, it is a local event, smaller in nature and allows the local community to engage with each other. I don't believe TechEd Australia should just be a mini version of TechEd USA. That is a waste of time, the world is a small place and Australians are mostly capable of getting on an airplane to fly to TechEd USA if they want to. TechEd Australia has an opportunity to do something different and better for the local community. I believe the same is true for all events that run locally in a region.
I am hoping for lots of good conversations at TechEd Australia that have local relevance.

Wednesday, May 07, 2008

New Windows Mobile Dev Blog

Amit Chopra from the Windows Mobile developer tools team at Microsoft has set up a new Windows Mobile developer blog.
He has kicked off with a post about the the great line up of sessions at TechEd in Orlando next month.
I'll be doing a session on Windows Vista sync center and some chalk talks.
I'm looking forward to catching up with the mobile developers there.

SWMUG Thrives

Another night, another Sydney user group.
Along with my old surf beach buddy, Hugo 'UberTablet', I headed down to the Microsoft offices in North Ryde to catch up with old friends at the Sydney Windows Mobile User Group or SWMUG. I was impressed by the turnout. Some excellent presentations and of course the obligatory dribbling over new and as yet unreleased technology.

Tuesday, May 06, 2008

SyXPAC lives!

Last night I headed down towards Darling Harbour to the regular SyXPAC meeting.
I started Sydney's eXtreme Programming Activity Club at the end of 2001 as a way to spread the knowledge about eXtreme Programming. Initially a monthly meeting, it has gone through many phases. The hardcore SyXPAC members meet weekly on Monday evenings, drink, eat and discuss software development.
At last nights meeting we discussed how SyXPAC can enter a new phase and become interesting to new people interested in finding out more about agile development and learning to build better software.
It sounds like there will be monthly SyXPAC events focused around presentations, discussions and debates. If you have topics you are interested in then you should get involved and put a request in the SyXPAC blog or on the Yahoo! group.

Saturday, May 03, 2008

Expression Web used to build the site?

I wonder if Expression Web was used to build the Microsoft Expression site?



Friday, May 02, 2008

Do you realise how much time we invested in. . ..?

Imagine you are at the bar of your local pub. You would like to order some food & drinks.
You catch the eye of the barman who nods to indicate he has seen you and then stands still, as if deep in thought.
The barman looks at the floor, then looks at you, then focuses his attention on the glasses, and bottles behind the bar.
After about 10 minutes of this he slowly walks over to you.
I expect you are pretty frustrated by now.
Slowly and carefully the barman pulls out a pad and pencil from under the bar. He asks you what you would like, you ask for 2 pies & 2 pints of your favorite, he slowly and carefully writes this down. The barman then turns the pad around and asks you to check your order. You review it, it appears correct and you tell him it's good. He then asks you to sign it, in order to confirm you agree.
Astonished, you sign it.
The barman asks you to take a seat, "your food & drinks will be with you within 2 hours" he informs you.
what?
"and that will be $6,500 please"
" WHAT?!?!" you scream out loud
"well look how much time I am putting into this, and I spent 3 years at university studying bar service"

It seems strange to me that people believe that because they invested more time into a project it is worth more. Surely it is more valuable to get great results sooner?
The most value should be given to results that are delivered fast and provide what is needed.