WISP Lite in WM6

Wed, July 18, 2007, 04:33 AM under MobileAndEmbedded
A little known brand new feature in Windows Mobile 6 is the ability to do inking using the same technology as for the Tablet PC (Windows Ink Service Platform). Luis talks about it on the WM blog with a code example. One of the commenters of that blog post asked for a managed version (I don't blame him; in this day and age what was the WM dev team thinking?!). To get a managed version (and a bit more info on the API) go to Alex's blog and look for the hidden links.

Sidebar shortcuts

Tue, July 17, 2007, 06:36 AM under Windows | Vista
You know of course that WindowsKey+D shows the desktop and this includes hiding the Sidebar. If you want to show the desktop but still have the Sidebar (and any floating gadgets) visible then hit Win+M. If at any point you need to bring on top the Sidebar and gadgets regardless of what other windows are showing, hit Win+Spacebar.

Now the new ones I only learnt this week (shame on me I know): Win+G will cycle through the gadgets and while a gadget is selected, Shift+F10 will bring up the context menu. Am I missing any other relevant shortcuts?

Windows Mobile Security for devs

Mon, July 16, 2007, 04:41 PM under MobileAndEmbedded
Via David I found this WM security blog post and via that I found this old but great WM security article.

After you consume the info above (and most of my trusted mobile dev readers will already know that stuff) then you are left craving for a pretty and concise diagram that illustrates the flow of an app's execution on Windows Mobile. I hope your craving is satisfied with the following (thanks Mark!):

At some future point you should expect to see the diagram linked somewhere from this excellent page of security resources for Device Projects.

Contacts.Net

Mon, July 16, 2007, 04:26 AM under Windows | Vista
It looks like the number of managed wrappers to the 7000 new native APIs that Windows Vista introduced is growing. I recently discovered a library that wraps the COM API for working with Vista's Contacts. To download it (inc. the source code) and for other relevant links, please visit the codeplex project.

Found via uberdemo.

Web development for Mobile

Fri, July 13, 2007, 09:06 AM under MobileAndEmbedded
Occasionally I get people asking me about developing web apps that are accessible from Windows Mobile. Every time I explain how with something as powerful as the .NET Compact Framework, they should be writing smart clients on the device that can also work in offline mode, cache data and offer a richer user experience. These apps can then access their server as needed either via web services or via some kind of SQL synchronization mechanism if that is what they are using on their backend. Some people insist though on offering a suboptimal solution to their customers so what answer do we have for those? Head over to Thom's blog to explore Mobile Web Development with ASP.NET.

A related question I hear is "what capabilities does Pocket Internet Explorer (PIE) offer?". Well, it is not called that anymore, it is IE Mobile and there is a homonymous blog. Visit their blog for tons of useful info, including the standards support in IE Mobile.

Finally, one of the co-authors of my book wrote in the distant past a book on mobile web dev that you may be interested in.

PS: Might as well link to my answer for the often asked question about Silverlight for Mobile.

What do I plan to do over the next 6 months to become a better developer

Fri, July 13, 2007, 04:29 AM under Career
After not doing memes for over 2 years, I broke my rule last December and yesterday; today I notice another one where I got tagged (thanks Raymond). So, this is the last meme I am doing for the rest of the year. Now I must tell you what I plan to do over the next 6 months to become a better developer (the format seems to be random so I'll take a wordy lengthy approach).

Well, I've never been involved in a large team project (>20 people), but I have delivered multiple projects (through multiple versions) where the team ranged from 1 to 12 people so I have drawn some conclusions for small projects (at most 100K loc) including the following 3 facts:

1. You do not need formal education or certifications to be a good developer; you just need a logical mind and a genuine interest in the field (and to be lucky enough to work on a handful of projects with talented people that are interested in mentoring you).

2. No matter what process/methodology/best practises/etc you use, the bottom line is that good talented people with a clear vision will deliver good results; the rest simply will struggle.
Another variation of striving for those things is when a talented good developer thinks he can improve others by sharing his knowledge via a methodology, when actually if his team has talent they'll get it right and if they don't then the rules won't help them either. Funny how the people touting a methodology are the ones that can make things work even without it..

3. If you don't understand the technical platform you are working with then you are probably going to be doing things in a suboptimal way and trying to fit old patterns to new paradigms.

Your mileage will vary of course, depending on how long you've been in the industry and the kind of projects you have worked on. I am certainly not projecting the above assertions on you, simply stating that for me personally, they hold true as facts. Moving on (hopefully without pissing too many people off ;)...


Considering points 1 and 2 above, I made the decision a little while back that I am as good/bad a developer as I was at that point and that I was not going to drastically improve/deteriorate from an algorithmic/design/management/performance point of view as years go by. Combining this decision with point 3 above, I decided that the only thing I need to do to stay at the level that I am today, is to keep abreast of all the new technologies that get thrown out from the various vendors. A long time ago (when funnily enough I was a Java developer) I decided to choose and commit to one vendor only: Microsoft.

To bring this blog post back to the meme and in conclusion, my personal choice as a developer is: Stay current with everything new on the Microsoft platform. That is what I've been doing for the last 6 months and this is what I am going to do for the next 6 months.

As to which bits of the Microsoft offerings I specifically focus on, well that varies and this blog is my documentation/sharing vehicle for some of the bits I play with... There is a pattern as to the things that interest me and you can infer that from the Categories on the left of this page. Hope this helps and stay tuned via one of the subscribe options also on the left :-)

In the spirit of the meme, I wonder what these guys' professional plans look like over their next 6 months:
[ Ian, Kenny, Mitch, Phil ] you are IT!

Off Topic: 8 random things about me

Thu, July 12, 2007, 05:51 AM under Random
This meme is very similar to the one from last year, but what the heck... Eileen tagged me so here goes:
1. Born in Germany (Rinteln), grew up in Greece (Thessaloniki), live in UK (Hove).
2. Football team I support: Manchester United. Team I supported in Greece: PAOK.
3. Lost my father when I was a baby.
4. As a child I was (very briefly) a boy scout.
5. As a kid I was a massive Bruce Lee fan. When I visited Seattle for the first time, my must see place was Bruce Lee's grave (with Brandon beside him).
6. I trained in Tae Kwon Do (combined with Okinawa) up to red belt. My teacher was the teacher and father of the recent Greek Olympic medallist (Nikolaidis).
7. As a teenager I was a huge The Doors fan. When I went to Paris for the first time, my must see place was Jim Morrison's grave.
8. Last Sunday I saw old head-bangers Metallica at Wembley (ears still buzzing, neck still hurts)... This was in Microsoft's executive box ;-)

I was very tempted to kill this meme here, but instead I'll tag 8 people as mandated (not the same ones as last time) so they can list their own 8 random things about them:
Craig, Eric, Loke Uei, Martin, Mike, Neil, Nick, Steve.

Parallel LINQ

Mon, July 9, 2007, 09:43 AM under ParallelComputing | LINQ | Links
Having done a lot of real world work with threading in the .NET Framework including working with the numerous limitations of NETCF v1.0 (inc. implementing the BackgroundWorker for it), I read with interest Sam's parallel computing blog post to see what links there would be in there and I wasn't disappointed. Check it out if you are new to threading in the managed world. That reminded me about a related topic that I keep mentioning at the end of my LINQ presentations and that I've been meaning to blog about in response to Tim's question: Parallel LINQ (PLINQ).

One of the numerous benefits of LINQ is the move to declarative programming, which has side benefits over and beyond the obvious ones. By writing code that tells the engine what it is that we want it to do rather than how to go about it, we open new possibilities where the engine can take our intent and split/execute it on multiple threads/cores (since ultimately it is responsible on the how). While most devs "get" that, it may sound a bit woolly to others, so here are some links/info about PLINQ.

I believe the first mention of PLINQ is in this eWeek article (August 2006). Joe Duffy announced his involvement (September 2006) and then followed it up with more info and a slide deck (January 2007). Bart watched a presentation on the topic and spills the beans on the AsParallel extension method which he follows with a NON-Plinq code example (April 2007). Finally, watch a real 5' demo by Luca from Tech Ed [between 51:26-56:40] (May 2007).

Of course, it is early days and PLINQ will not ship with VS2008 (or even as part of the wider Orcas-wave) but you get the idea... The earlier you start taking advantage of LINQ, the earlier you'll be able to take advantage of PLINQ when it eventually ships ;)

MSDN Flash newsletter

Wed, July 4, 2007, 03:11 PM under Links
If you are a developer on the Microsoft platform you should subscribe to the bi-weekly MSDN Flash newsletter to keep up to date with the latest news. The newsletter is available in the US and most other countries translate it to their own language so you can subscribe to a localised version if you wish. Check your local MSDN website. In the UK we have had our own version for a very long time and a couple of months ago I took over as the editor. After soliciting feedback from numerous people in the community we have streamlined the UK MSDN Flash newsletter to make it much more digestible and very easy to scan for info relevant to you. I also personally ensure that the content is aimed squarely at developers with no other noise.

If you are a developer in the UK, I urge you to subscribe to the MSDN Flash (you can unsubscribe from the same place at any time and your email isn't used anywhere else). Even if you are outside the UK, 3 out of the 5 sections are still useful ;)

For a taste of what you've been missing go check out the latest issue. Let me know what you think and I am also interested in what you like in other developer newsletters that you may subscribe to!

33

Mon, July 2, 2007, 06:14 AM under Personal
Rather than a deceitful title like last year, this time it tells the truth. I am 33 today (and noticed a few grey hairs on the sides above my ears... wisdom at last :)).