Current Project

Fri, December 23, 2005, 04:06 PM under Career
So I described my commuting to my current client, how about the project?

You would have thought that if you hired a .NET Compact Framework MVP, you would take advantage of their skills in a mobility project; something that targets Windows Mobile 2003 or v5 or even a custom WinCE (v4 or v5) device. Nope.

I have also done a lot of work on the desktop with .NET (including COM Interop, remoting etc) so maybe something in that area? Nope. Anything to do with thick or smart clients where my interest and experience lies? Nope.

Maybe take advantage of the fact that I've been using VS2005/.NET v2 constantly since March 2004 (any project utilising Whidbey is my game)? Nope.

Instead, what I am working on is a web application (web, moi?) using SharePoint (server product, moi?). From a developer's perspective, SharePoint 2003 sucks like nothing I've ever used from Microsoft before (I am considering not putting it on my CV to avoid having to go near it ever again!). That is the life of the consultant apparently. You get to work on whatever is in demand.

To be perfectly honest, I don't really *mind* working on this project. I've been in my comfort zone (embedded space) for too long and it gives me chance to prove again that I can quickly pick up a technology and deliver. It just took me by surprise and combined with the whole commuting thing it created a bad taste in my mouth. By the way, I am leading the small team and while I won't mention the client's name rest assured every single one of you (aged 14 to 114) know them. The work environment is second to none and the people there are great so that balances out things...

My mate Steve assures me the next one will be the biggest mobility deployment project in the world. Let's see...

I should finish by saying that this is my day project. By night/weekend, I keep doing netcf work and stay tuned for some exciting stuff coming in SDF v2.0 from OpenNETCF.

Commuting

Wed, December 21, 2005, 01:56 PM under Personal
Daily commuting is a part of most people's lives these days. If you are one of the few that doesn't have to do it, you are one lucky [insert expletive here].

In the past 6 years, my commuting consisted of driving to the office (from garage to parking space). I would only have to do that 3 times per week (2 days worked from home), and I arranged it so I arrived at work around 10 (this meant I would avoid all traffic and hence the journey took 35-40 minutes - not to mention getting up at 08:00 which is my natural waking up time :-).

Fast forward to a couple of months ago when I changed jobs, and now my commuting is defined by the location of the client. The project I am working on now is very close to our office (devcentre) in London. Whether I have to go to our own office or the client's office, my commuting (ordeal) is the same:

+ 06:30 my alarm clock scares the shit out of me. If you haven't gathered, I am not a morning person. Waking up at this time requires me sleeping the previous night at 22:00. This contrasts with my lifelong habit/conditioning of working in the small hours where by brain has been trained to be at its most active.

+ 07:20 leave my flat to walk to the Hove train station. I am not a walking person either (from the age of 14, back in Greece, I've owned a moped and used it for anything taking longer than 10 minutes). Walking to the station is especially fun when it is raining and, for those of you that don't know, all of this takes place in England (enough said on the weather front). The only time it is even more fun is in icy conditions (try running on ice while wearing smart shoes with shiny soles).

+ 07:40 depart on train for London Victoria (if I miss this one, the next one is in 31 mins). This is where you sweat since you were running in the cold, just seconds ago, and now you are suddenly in a warm packed wagon. Most of the times I get a seat and if I am lucky there isn't an overweight person next to me squeezing me against the arm rest (for those of you that know them, in the south we still have some slam-door trains in operation).

+ 08:50-08:55 arrive in Victoria (sometimes 10 minutes later than expected, I could fill a separate blog entry with reasons this train runs late). Now the fun bit of: queuing to get out of the train, queuing to go through the train barriers, walking in true people traffic to the tube station, queuing to go down the stairs of the tube (when they let us in and not just hold us back for 10' because the platforms are full of people), queuing to go through the tube barriers, down the escalators to the packed platform, watch 2 tube-trains go by before you can be pushed closer to the doors, get on board feeling like a sausage in a ban, arrive 7' later at destination tube station, queue to go up the escalators, queue to go out through the barrier, up the stairs to lovely Oxford Street. Walk for 5' to get to the client's office (or walk 8' to go to the Avanade office).

+ 09:00-09:30 seat at my desk and be pleasant to everyone.

+ 18:00ish leave the office to start the whole process in reverse (if I miss my train, the next one is 45' later).

+ 20:00 arrive home knackered, by the time I've had dinner as you can imagine I look forward to the next morning where I get to repeat it all.

So, some aspects of my life (including this blog) are not getting the full attention they used to but now you know why. I have 4 hours per day offline and literally *no* time during Monday-Friday for anything other than my day job (and Jenny).

On the plus side, this project will end (touch wood) by February-March and then it will be on to the next client who, I can only hope, will not be in London. Anywhere south of London and I'll drive it (in a much shorter time and have a more pleasant journey), anywhere North of London and the company puts me up in a hotel on the client site.

*sigh*

#NETCF_AGL_

Sat, December 10, 2005, 03:41 PM under MobileAndEmbedded
Visual Studio 2005 includes some of the remote tools that previously we had to install eVC to get. They are still not integrated in the IDE but you can find them from the Windows Start menu same place where the VS2005 item is. The Windows CE Remote Spy didn't work in pre-release versions but obviously with RTM it does so take it for a spin. One of its features is listing all windows on the target including the handle, caption and class. The typical way you use this info is with FindWindow e.g. as shown here for programmatically closing any open msgbox on your device.

Anyway... If you use Remote Spy with Compact Framework v1 SP3 applications, you'll find that the class name of the CF forms show up as #NETCF_AGL_BASE_. If you go a step further, reference the Microsoft.WindowsCE.Forms assembly and then simply create an instance of the MessageWindow, you will observe how its class is #NETCF_AGL_MSG_. I was told a long time ago not to rely on these facts as they are internal implementation details of the NETCF windowing system. Well, I checked for v2 apps and nothing has changed with those two.

However, there is another special window that every CF v1 application has (one per app instance) and that has a class of #NETCF_AGL_PARK_. Furthermore, its caption is the file system path to your application. This *has changed* with CF v2: now its caption is empty, and the class is #NETCF_AGL_PARK_ appended with the application's file system path.

The moral of the story is, if you do take advantage of undocumented features, your application may break when you move it to the next version regardless of the compatibility efforts of the product teams at MSFT.

FileAs

Thu, December 8, 2005, 03:03 PM under MobileAndEmbedded
About 3 months ago I switched to a PocketPC Phone Edition 2003 SE device as my main phone (shocking that it took me so long, but it did). One of the things that really pisses me off is adding new contacts on the device:
1. Create a new contact
2. Populate the contact including entering the Name field: "Name Surname"
3. OK it and go back to the Contacts list
ACTUAL RESULT:
4. You get a an item in the list that reads "Surname, Name"
$%^&££$&*ing thing!

DESIRED RESULT:
4. Get an item that displays as "Name Surname".

I thought Windows Mobile 5.0 would have fixed this (e.g. by offering the FileAs option available on Outlook on the desktop), but when I received my JasJar (thanks Mike!), I found the same pain is there. So I am trying to find how I can change this on the device (forget synching with Outlook). Someone please tell me how and put me out of my misery.

Anyway, if you can't find how to do it on the UI, next step is to do it programmatically I guess, so that is what I did (it is so easy):

1. Create a new Windows Mobile 5.0 project in VS2005. Choose the Smart Device Project/Console project type.
2. Add a project reference to Microsoft.WindowsMobile.PocketOutlook
3. Replace Main with your own:
static void Main(string[] args){
OutlookSession os = new OutlookSession();
ContactCollection cc = os.Contacts.Items;

for (int j = 0; j < cc.Count; j++){
Contact c = cc[j];

string s = c.FileAs;
int i = s.IndexOf(',');
if (i > 0){
string s1 = s.Substring(0, i);
string s2 = s.Substring(i + 2, s.Length - i - 2);
c.FileAs = s2 + " " + s1;
c.Update();
}
}

cc.Dispose();
os.Dispose();
}

If you are targeting a WM2003 device, create the appropriate project for that and instead of adding a reference to the Microsoft assembly, add a reference to InTheHand equivalents.

Naturally, you can create a fancy UI to select which ones to change etc but the above is all I wanted. I run it every time I add new contacts.

Event Reviews

Sat, December 3, 2005, 11:05 AM under Events
It occurred to me that, besides being busy with commuting and my current project, I have also participated in a number of events recently without reflecting on them, so here goes.
TIP: Read them bottom up, since that is the order I wrote them in.

- DNUG meeting
Date: 30/11/05 Location: Microsoft offices in Soho (London)
I’ve described the venue further below so will not do it here again. This was the first time I managed to attend the Dot Net User Group meeting and I will be back for more. The topic was patterns and architecture by Matt Deacon of Microsoft. Most interesting were the follow up conversations down the pub including debates on the differences between consultants, permies, contractors and “body shops”.

- VS Launch event in London.
Date: 15/11/05 Location: Novotel hotel in Hammersmith (London)
Very disappointing on every conceivable front:
1. Sure you served me lunch but at the breaks all you can offer is water and smoothies? What happened to chocolates, cakes, biscuits, beer etc?
2. Where are the freebies? Just flyers doesn't cut it, give me some toys.
3. On a more serious note, (I am sorry, but) the sessions were poor not only on delivery (OK, only half of the ones I went to were very poor) but the actual choice of content was inexplicable. I was reading the session titles and couldn't get motivated to go to any of them.
4. Where was Avanade's presence? We are platinum sponsors in the US, silver sponsors in the UK, and one of the reasons I decided to attend in the end was to help at our stand - nobody told me there wasn't one!

- MVP pint & pie
Date: 14/11/05 Location: The Chapel Public House in Edgeware Road (London)
Every so often, the UK MVPs are invited to a "pie & pint" evening at a pub (a number of these vents run across the country). Our lovely FGM pays for our food and for our drinks in exchange for us making complete fools of ourselves - fair deal if you ask me :-) I had never gone to one of these before as the nearest to my home is the London one and I never worked in London before; now that I do, I get to attend evening events like this and I certainly will again.

- Training "Excellence"
Date: 8-9/11/05 Location: etc The Hatton in Farrington (London)
This was the first time I went to the etc conference in the Hatton and it is not a bad venue that serves great food. It was also the first time I went on training that was *completely* non-technical, with a mixture of Avanade employees from *all* disciplines. It is a public course that promises to change the way you view your life (and then it is up to you to act on that). It was delivered by these guys. Sorry Nick, I haven't started my master list yet but it is on my... TODO list.

- Mobile developer nuggets
Date: 27/10/05 Location: Microsoft offices in Soho (London)
The location for this event dominated my thoughts. Our own Avanade offices are on Wardour Street in Soho and I get people cracking jokes about that, but have you seen where MSFT offices are? You have to avoid offers for s3x, regardless of the direction you approach it from! Into the building and it turns out when they said "it is in the swimming pool room" they weren't joking. The room is basically a swimming pool with no water in it and with some modifications to make it usable as a presentation room. David Goon had his delivery well practised and I am definitely stealing the idea of "nuggets" for a future talk; it sounds much better than "tips and tricks". There was a break between the 1-hour stints and we enjoyed pizza and beer - definitely going back to the next MSDN event there.

- DeveloperDeveloperDeveloper II
Date: 22/10/05 Location: Microsoft UK HQ in Reading
I had a blast. I only got a chance to attend 3 sessions and the top one in my book was Ian G's Avalon session. Ian if you want my feedback, replace some of the "why" time with demos - but other than that, it was top class. My two sessions were very well received, with both rooms "selling out". My apologies to the people that were turned away, but even standing room was taken! Full credit goes to the C# team for the debugging enhancements in VS2005 and especially to the Class Designer team: those topics sell themselves and all I had to do was deliver the facts.

- QuickStart
Date: 04-07/10/05 Location: Avanade HQ in Seattle (down town)
When you join Avanade, you get your induction in the Seattle office, along with a bunch of people from other Avanade offices around the world. The induction consists of fun, basic consultancy skills training, fun, team activities, fun, education on Avanade processes/tools, and, of course, a lot of fun. My only complaint is that I cannot do it all over again. It is worth you joining Avanade simply to go on this course!

- MVP Summit
Date: 28/09-02/10 2005 Location: Microsoft HQ in Redmond (Washington)
The most frustrating event I have ever gone to. Imagine you have just attended something (film, opera, theatre, sporting event, whatever) and you came out of it *super-excited* but could not tell anyone anything; now you know how I feel. In a nutshell, with VS2005 not out of the door yet, we had a chance to participate in the specs for the next version and get insight to plans that have only just made it to paper. As you'd expect, it is the discussions with product group members during the breaks that were the most interesting. Demos of bleeding edge technology were in abundance, but I better stop typing before I spill any beans...

- MSPress Publisher's Summit
Date: 26-27/09/05 Location: Microsoft HQ in Redmond
Shouldn't really include this since I did not attend, even though I had registered. Found out the content was not geared towards my interests, plus I had already submitted my book proposal (MSPress, how long do you need to reply - a simple yes or no will do).

- Indigo Roadshow
Date: 27/09/05 Location: Washington University in Seattle
This was a single session that lasted 3 hours, thus giving us an excellent introductory overview to Indigo. The two speakers were Richard Turner and Ari Bixhorn (saw Ari first time in Barcelona teched 2002, and every time he proves that he can host a good show). Plenty of demos and audience interaction meant that I stayed awake, even though I had performed a marathon trek earlier in the day to find Bruce Lee's grave in Lakeview cemetery.