Friday, November 25, 2005

Tablet Guy has left the building

Tablet PC Guy decided to leave yesterday. He now has his own blog where you can follow his adventures.
Good luck Tablet PC Guy.

Monday, November 21, 2005

The Desktop Goes Online with Goowy

If you want to waste some time and explore a possible future for the desktop check out Goowy.com
This is very cool. I love the streaming podcast feature, really neat.
I hope they produce some kind of API so 3rd party developers can start to produce content for Goowy.

Saturday, November 19, 2005

Tablet Guy Goes Exploring


He has only been in Sydney for a day but already Tablet Guy has been getting out and about. He is obviously an adventurous kind of fellow.
Today he managed to hitch a ride on boat and take a trip across Sydney harbor.

Friday, November 18, 2005

Tablet Guy joins the party

This morning a little foam chap knocked on my door asking if he could stay. All he had was the stylus he was holding in his hands. As I already have a few foam tenants next to my desk, I figured he could join them. He looked pretty happy to me.

I carried on with my work.

Imagine my surprise when I turned around and saw that he had started brawling with the other characters. Obviously the pen is mightier than I realised!

Tablet Guy is now grinning ear-to-ear as he has his own special place on the window sill.

Friday, November 11, 2005

Mobile PC development samples

Ever since MSDN released the Power Management and Network Location Awareness articles I wrote I have been recieving emails asking where the sample code can be found.
Well here are the links to the sample code applications
Network Location Awareness Sample
Power Management Sample

So now you have no excuse not to build applications that help extend battery life and also seemlessly work with multiple network connections.
Happy coding....

Tuesday, November 08, 2005

BEROCCA wakes you up in the morning - good for me - not so good for my PC

Waking up a little bleary eyed this morning I went to the kitchen and dropped a tablet of Berocca in a large glass of water and then went to sit down in front of my computer to check email.
Fizzing away I starting checking my email...
In a less than full awake state I reached out for a Tablet stylus and knocked my glass of Berroca over. Spilling all over the desk and down the back onto the power sockets, Fizzzzzzzzzzz,
Arrggghhhhh!!!!!
Everything went dark.
PANIC!
I was awake now! I moved fast to unplug everything, grabbed some cloths and started mopping up.
Lucky for me the power for the entire home was tripped off and nothing seems to have been damaged.
So the food and drink rule is now back in full force, no food or drink near the computer!

Sunday, November 06, 2005

KinetiSketch

In the endless quest of avoiding doing any real work I came accross this really cool project called K-Sketch. The aim is to simplify creation of animations using Tablet PC technology. Check out the video. I would love to have a play with this.

Saturday, October 15, 2005

TDD: Microsoft is close but no cylindrical smoking thing!

MSDN has a page entitled Guidelines for Test-Driven Development
It has steps for getting going with TDD that state:

1. Define the requirements of your application.
2. Familiarize yourself with the feature areas of your application, and decide on a single feature, or the requirements of a feature, to work on.
3. Make a list of tests that will verify the requirements. A complete list of tests for a particular feature area describes the requirements of that feature area unambiguously and completely.
4. File work items for feature requirements and for the tests that need to be written.
5. In Visual Studio, create a project of the type you want. Visual Studio supplies the initial production code in the form of files such as Class1.cs, Program.cs, and Form1.cs, depending on the project type.
6. Define the interfaces and classes for your feature or requirement. You can add a minimum of code, just enough to compile. Consider using the Class Designer to follow this step. For more information, see Designing Classes and Types.

Note
The traditional TDD process does not contain this step. Instead, it advises that you create tests first. This step is included here so that, while creating tests, you can take advantage of two features in Visual Studio 2005 Team System: the GUI design capabilities of the Class Designer, and the automatic test-generation capabilities of Team Edition for Testers.

7. Generate tests from your interfaces and classes. For more information, see How to: Generate a Unit Test.
8. Compare the tests that have been generated with the list of tests you prepared in step 3. Create any tests that are missing from the list you wrote in step 3. For more information, see How to: Author a Unit Test.
it goes on...

While they do bother to make the note about traditional TDD, they are missing out on several major benefits of TDD:
• TDD is design as you go.
• When you use TDD the interfaces and classes you create emerge as an outcome of writing the tests. This helps to keep the code as simple as possible.
• TDD is about writing one test at a time to DRIVE the DEVELOPMENT of the code. This way the developer does not attempt to predict how the code (interfaces+classes) will look when finished, rather code that passes the tests will be written and refactored as needed.

Thursday, October 13, 2005

Dave Glover: How to Globalise/Internationalise Dates and Numbers using the Compact Framework

I was chatting to Dave Glover from the Australian Microsoft team on MSN IM last night. He built this cool conversion app for the Smartphone. Some of the people who were downloading it in France were having some issues. I thought the issue was a globalisation issue and Dave figured out the rest: How to Globalise/Internationalise Dates and Numbers using the Compact Framework

Saturday, October 08, 2005

Becoming Agile: How TDD improves development speed and is very cost effective

A common misconception is that test driven development will take longer and cost more.
Dan has a go at answering this on his blog .
A good read.
Becoming Agile: How TDD improves development speed and is very cost effective

Tuesday, October 04, 2005

Windows SideShow

Windows SideShow is a new technology that will be shipping as part of Windows Vista. It enables hardware to support auxiliary displays whose contant can be defined in Windows Vista software.
SideShow is a project I helped out on by reviewing the APIs and building some sample code. Some of that sample code has been morphed into the examples that will ship with the Windows Vista Platform SDK.
I am looking forward to getting my first machine that supports SideShow.

Monday, October 03, 2005

New Forums section on ViaVirtualEarth

We have just launched a new section on the ViaVirtualEarth site to help developers communicate about building with VirtualEarth - check it out.

Saturday, September 17, 2005

Microsoft Professional Developer of the Year?

Recently sited this developer is believed to be an imposter.
A fairly good disguise, but the hair gives him away!

Thursday, September 15, 2005

Channel 9 Video

Last month I dropped by Robert Scoble's office and we had a chat about what I've been doing around Microsoft's campus for a couple of weeks. You can see the video Robert took here http://channel9.msdn.com/Showpost.aspx?postid=113881

Monday, September 12, 2005

Where is PDC 2005?

I have built a little site using Virtual Earth to help PDC attendees find their way between hotels and the convention center.
http://viavirtualearth.com/PDC/PDC2005.htm
Want to build your own Virtual Earth page?
Check out all the cool things going on at ViaVirtualEarth.

Friday, August 19, 2005

How they built Virtual Earth

Check out this video on how they built Virtual Earth. Too funny.

Monday, August 15, 2005

PDC - will you be where?

I will be at PDC this year.
Where is PDC this year? It is here.
Thanks to Paul Neeve for building such an awesome Flash app that sucks data from Virtual Earth.

Tuesday, August 02, 2005

Visual Studio 2005 and Windows Vista

I know I should not be pushing the limits by trying to use a beta development tool on a beta operating system! Sometimes life requires a few little trials and this is one of them.
If you have a few issues with getting it installed you should have a look at this: http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=64277

Oh and one more thing if you try this at home...
Good Luck :)

Tuesday, July 26, 2005

Where in the World was Dr. Neil?

So you want to know where I have been this year, well here is the answer:
WhereWasDrNeil?

Monday, July 25, 2005

Via Virtual Earth goes live

If you have wondered what has kept me so quiet for the last few weeks, now I can tell you.
I have been working on a developer website to help you build applications that use Microsoft's Virtual Earth.
Check out ViaVirtualEarth

Friday, June 24, 2005

eXtreme .NET Quick Links

A number of people who have attended the talks I have been doing have asked for links to resources. Here you go:
Tools
Build batch file
Short presentation

Saturday, June 18, 2005

eXtreme .NET MSDN Technical Briefing

Yesterday I presented for a full day on eXtreme .NET in London. It was a lot of fun and I hope everyone who attended had a great day.
Many thanks to John allwright for kicking the day off and to Sean Puffett and Marcus Perryman for their superb demos that provided the audience with relief from my voice!
Topics discussed included:
-Automating the build process
-The Planning Game
-Test Driven Development
-Refactoring
-MSF Agile
& plenty of demos showing off new features in Visual Studio 2005

Thursday, June 16, 2005

Mobile Developer Center: Mobile PC Network Location Awareness

This great article has been recently released on the MSDN site.
The full sample can be downloaded
here.

Wednesday, June 15, 2005

Mobile.Dev.Challenge

I am really looking forward to MEDC Australia next week. I will be presenting a session on using MapPoint in Mobile Applications; Putting Maps in Your Mobile Apps.
There is also a great competition running where developers can showcase their mobile applications. Find out more here. I am looking forward to seeing the entries. It is always good to see what other developers are doing with the technology.

Saturday, June 11, 2005

I got PodAttacked!

I have to say it was not a huge surprise to be assaulted by the PodSquad in the middle of my TechEd session. Thanks guys for adding that extra special something to my presentation!.

download the PodAttack

Thursday, June 09, 2005

Calling all Virtual Earthlings

Virtual Earth is being talked about so much that there is going to be another demo of Virtual Earth on Thursday between 12 and 1pm at the Mobile Cabana.
If you are at TechEd then I recommend you get there.

Wednesday, June 08, 2005

eXtreme.NET

Lot's of interest in eXtreme .NET here at TechEd. I was at the TDD discussion last night and it is great to see so much interest in developing better code.
The best news is the book is selling fast in the event store.

Saturday, June 04, 2005

Virtual Earth at TechEd

My friend Chandu is going to be talking about Virtual Earth next week at TechEd! This will be a great session.
I have been doing some work in Redmond on the Microsoft campus for the last few weeks and had the chance to see some of the Virtual Earth technology. It is very cool, especially if you are a map geek ;)
The talk is on Monday morning at 10:45.
I am looking forward to doing some work with Virtual Earth, watch this space...

Tuesday, May 31, 2005

Saturday, May 28, 2005

Make your desktop apps mobile!

More figures suggesting that all developers building applications for desktop computers should be paying more attention to the issues faced by mobile users.
PC sales lifted by laptops: survey.

All application developers should consider power managment, network connectivity and data synchronisation. Using these effectively can greatly improve the user experience for the end user on a laptop, notebook or Tablet PC.

Wednesday, May 25, 2005

Virtual Earth

Now I am a BIG FAN of mapping technologies and the new online products coming from Microsoft and Google are looking super cool.

Sunday, May 22, 2005

Books to help get started with NUnit

A number of people have asked for a list of books that would help them get started with NUnit.
Here is a list:

Sunday, May 01, 2005

Browser Compatibility

I've made some changes to my main website this weekend. While the number of non-IE users coming to my site is still less than 10% of all visitors, their voices have been getting louder.
In an attempt to keep all visitors to my site happy I have changed the menu control and updated the main page template to accommodate other browsers.

Thursday, April 28, 2005

eXtreme .NET Events

I am halfway through a road trip around Australia talking about eXtreme .NET.
I am then off to the USA for MEDC and TechEd before heading back to the UK for another eXtreme .NET Event.

Thursday, March 03, 2005

Roll up your display

Now this is so cool - I want one.
Philips unrolls 'paper' display

Chandu Thota's WebLog - MapPoint Team is hiring

Chandu has asked me to let you know that the MapPoint team is expanding and looking for some talented people. You can find all about the postions by clicking through on Chandu Thota's WebLog
Good luck!

Thursday, February 17, 2005

eXtreme .NET Day

In partnership with the MSDN Connection program and dotNET Solutions I am doing a series of one day events around Australia next month.
The eXtreme .NET Day event should be a lot of fun and I am sure everyone who comes will learn something.
There will PCs so we can do hands-on exercises throughtout the day and build some cool code using the lessons we learn.
If you've not yet booked your place you better hurry up. Places are going fast with Canberra already sold out.

Thursday, February 03, 2005

See me at the Security Summit?

Lots of people have been emailing and asking if I will be at the Microsoft Security Summit events that are occurring around Australia this month. I am afraid not. I will be presenting at the Microsoft Windows Anywhere event in San Francisco.
I would recommend you go to the security summit even though I won’t be there in person. :) It looks like they have some very interesting material to cover and it’s a great chance to brush up on skills while networking with peers.

Tuesday, February 01, 2005

Carl Franklin praises eXtreme .NET

Listen to what Carl Franklin of Franklins.NET and the .NET Rocks Show has to say on eXtreme .NET.
Download the full show here or the clip of Carl talking about eXtreme .NET here.

Thursday, January 27, 2005

Software process costs and savings

I want you to think about a development project and consider two scenarios. Imagine each of these scenarios represent a different set of practices you use to develop the solution.

In the first scenario you develop a solution for your customer and it takes time t to produce the solution. The solution you deliver has x bugs and y security issues. This solution costs you $m.

In the second scenario you develop the same solution for your customer and it takes time t+s. This solution has x-a bugs and y-b security features. This solution costs you $m+n.

The values of s, a, b and n are critical for you to decide which scenario you use.
The question in your mind should be; is the extra cost and time of fixing x-a bugs and y-b security issues worth more or less than $n in s time.

Now here is an interesting thing to consider. How do you budget for your software development project? Is it:
i) from the beginning of the project until you ship the code (bugs and all), or
ii) from the beginning of the project till that code is decommissioned and never is run again?

Think about what you are doing when you budget for software using the first option. You are actively encouraging poor quality. If the cost of fixing issues is not taken into account in the development budget then why spend time and money worrying about it?
The only sensible answer is to use the second option to budget for software development. So why don’t companies do that? Maybe you should suggest your company does!

Now what would happen if I told you that I could show you some practices that help you obtain the following values in your variables for the second scenario.
s tends towards 0 (or even a negative number)
a tends towards x
b tends towards y
n tends towards 0

How much will you pay for those practices? Write a check to Dr. Neil and send it to me now!

Now which scenario do you chose?

What if I give you a list of practices to choose from and tell you that with each of these practices you implement you will get:
s closer to 0 (or even into the negative)
a closer to x
b closer to y
n closer towards 0

You want to see the list?
Ok here it is (in no particular order):
Test driven Development
Pair Programming
Refactoring
Automating the build-test-deploy process
Breaking the solution down to tasks that each take less than 4 hours to complete
Small iterations – ship early – ship often

Does this list look familiar?
Good – so you know where to get started.
Of course if you are developing in .NET the best resource to learn the practices in the list is eXtreme .NET.

Thursday, January 20, 2005

PayPal introduces AUD payments

Now that PayPal supports the Aussie dollar I have changed my site so that you can buy a copy of eXtreme .NET in Australia and pay for it using the local currency.
Last August (2004) I presented MapPoint WebServices at the conference for the Geospatial Information & Technology Association (GITA). They must of liked the presentation because I received this award today!

Thursday, January 13, 2005

I just bought myself this new monitor and as I have long suspected screens are the wrong way around. It is so much easier working in portrait than landscape. Does anyone know why screens are usually in landscape?

Tuesday, January 11, 2005

eXtreme .NET Tech Breakfast

At the end of this month I will be hosting an SSW Tech Breakfast. The topic will of course be eXtreme .NET: introducing eXtreme Programming practices to .NET Developers.
It is on 28th January 2005 - 8.00am - 11.00am in Neutral Bay. Sydney.
If you are based in Sydney come along, it will be fun and there will be plenty of coding examples. Plus I'm sure I can find a copy of the book (or two) to give away.

Monday, January 10, 2005

Recommended Reading List

I have just posted the list of recommended books from the appendix of my eXtreme .NET book on to my web site.
Are there any books you think should go here?

Thursday, January 06, 2005

CoolSmartPhone.com raves about SMSUtils

Gears at CoolSmartPhone.com has put together a great piece on my SMSUtils.
Thanks Gears.

Tuesday, January 04, 2005

Dr. Neil's Smartphone Toolkit

All these public holidays do have an upside. I get to work on my own fun projects :)
At the end of the day yesterday I released new versions of
Dr. Neil's SMS Utils and the SmartSMS Dev Kit.
These are projects that have slipped back due to 'real work' pressures. I am pleased to get them out there.

Monday, January 03, 2005

Developers Dilemma – Rewrite vs. rework part 3

If you were following this post then you might be wondering whatever happened. I started blogging about this issue and then went quiet. Well the main thing that happened was that blogging didn’t seem important. Funny how that happens when you get stuck into a project ;)
So on the second day I wrote a bunch of tests and fixed a load of issues with the device driver. That allowed me to move forward on the third day with starting to add new features to the device driver. In fact by the end of that day (it was a long day) I had driven (through tests) the development of all the new features required at the device driver level.
It became clear the following day that a couple of the other components presented different ways of communicating with the device driver. I am sure there is a Pattern for this. These components were easy to add tests to and most of the code called simply performs some data translation and then calls the device driver. The way these components worked drove the creation of some extra tests back in the device driver. It is always good to see how a component is being used :)
Finally the rest of the components presented the UI for controlling the device (the one that the driver talks to). These UI components communicate with the components that communicate with the device driver. On Friday I got to add the new features to the UI components and the project is pretty much finished. The UI has very little logic to it (which is great and as it should be!)
The answer in this case seems to be very much biased in favour of reworking and driving the work through the tests. I was surprised how quickly progress accelerated once a number of core tests were in place. Once again the process of driving development through tests proves its worth and makes me realize how powerful this technique is.