Oil Spill Live Feeds App 1.3 & Screencast

This is my attempt to kill 2 birds with one stone.

So, item number one is a new version of the Oil Spills application. New features added are:

  • ability to add and remove panels
  • ability to refresh feeds that have gone down
  • all panels now have the same size – the application will adjust this based on the number of panels and the size of the form
  • added some application icons

You can get the new release here: http://oilslickfeeds.codeplex.com/releases/view/47469

This may seem like a little, but its really a total re-write.

Being able to remove panels that you do not want to watch makes the application more memory efficient. Though there is more work that can be done in this area, there is only so much you can do when streaming 8 live feeds.

Item number 2 is the fact that I did a short, 6 minute screen cast discussing the innards of the application. Now, it may seem silly to do a screencast for something so trivial, but I wanted some practice. It turns out that its not as easy as it sounds. So this video is my 4th attempt (which I’m still not 100% happy with, mainly because of the overlay).

I did this with Expression Encoder 3 Screen Capture. I usually use Community Clips for this sort of stuff. But, its not a half bad screen capture program. Expression Encoder Screen capture will let you add an overlay from an external camera, in this case, my laptops integrated webcam. I’m not too sure about this for future screencasts – so do let me know what you think.

So here it is:

My RSSCloud Server: Thinking of doing some screencasts.

This year was my last at Uni ( actually, i still have an exam to write, so the past tense isn’t accurate). As is typical with Honours year undergraduates, a final year project was set.

If you are regular reader of this blog, you’ll probably know that what i picked was a RSSCloud server running on Windows Azure. However, as they say on the home shopping networks, THERES MORE! My project needed a little more body to it. So I added an online Feedreader, in other words a poor (dirt-simple) imitation of Google Reader.

Now, this app uses a number of technologies for which it would be a pretty cool demo project. Windows Azure itself (obviously), Windows Azure Tables and Blobs, LINQ, WCF, MVC2 and so on. This includes it being a demonstrator of the RSSCLoud specification itself.

Although its an academic submission, my lecturers are fine with me opensourceing it.

Given the rise of .Net 4, and the experience points gained writing the first version, I feel that everyone would be better served with a rewrite. Not to mention the fact that It’ll give me a chance to use the new Windows Azure Tools for Visual Studio.

As I re-write it, I think a screencast series is in order. All the code will be checked in to codeplex. This’ll give everyone a chance to double check my logic (particularly interested in what Dave Winer thinks of my implementation of RSSCloud).

So, firstly, What do you think?

And secondly, anyone know a good hosting provider? I don’t know about Youtube. But Vimeo looks pretty good. If their limit is 500Gbs/per week upload space, it’ll give me chance to do one video each week, more or less.

I have all the software required to pull this off. So thats not a problem. I actually did a screencast of a live coding session in class for one of my lectures (writing an interpreter turns out to be pretty fun, actually).

i think this would be a pretty good contribution to the community as a whole.

(AdMob)Comment of the Day

Not from here, but rather from Kara Swishers post on Apple barring AdMob.

David K makes this excellent point:

Really? I never realized how I was held hostage. I could swear that I am completely free to buy any smart phone I want if I don’t like the iPhone. I wasn’t aware that I Apple would come send its iPolice after me if I walked into a Verizon store tommorow and picked up a Droid…

Since basically the argument in the preceding comments was along the lines that iAd was yet another instance of the closed ecosystem.

By the same token, devs aren’t held hostage as regards to their choice of Ad provider. This is made clear by the language in the new ToS. They just can’t use AdMob.

Quite frankly, Jobs has every right to bar Admob. To do anything else would be like Microsoft selling Lotus Notes in their stores. Not gonna happen.

Theres an App for that: BP Oil spill live feeds

SpillFeeds

SpillFeeds2 SpillFeeds3 SpillFeeds4

Like that. Took me 30 minutes.

Head over to http://oilslickfeeds.codeplex.com/ to get it.

Note: These are live streams from the ROV’s monitoring the damaged riser. Please be aware, as these are live streams they may freeze or be unavailable from time to time.

(thanks to the Channel 4 TV guys for putting the original web page together)

Update 08/06/2010  There was a problem with the install files. I’ve uploaded a new version. Please do let me know if there are further problems.

Update 24/06/2010  Version 1.3 has been released. please see the details here: https://rbonini.wordpress.com/2010/06/24/oil-spill-app-1-3-screencast/

Quotes of the the Day

The first comes from David Weiss’s blog:

"Engineering is the art of modelling materials we do not wholly understand, into shapes we cannot precisely analyze so as to withstand forces we cannot properly assess, in such a way that the public has no reason to suspect the extent of our ignorance."

– Dr. AR Dykes, British Institution of Structural Engineers, 1976.

To echo what David said: If this doesn’t accurately describe software engineering, I don’t know what does.

 

The second comes from Jeff Atwood’s post on Coding Horror: The Vast And Endless Sea:

If you want to build a ship, don’t drum up the men to gather wood, divide the work and give orders. Instead, teach them to yearn for the vast and endless sea.
– Antoine de Saint Exupéry

Seriously I’d go and read the whole post. If I were teaching Introduction to Programming, this is the sort of quote I’d use on slide number one. Since thats what I’d be doing.

Bill Buxton: Respect The Skills Acquired By Your Users

Take 30 minutes and watch his keynote appearance: http://live.visitmix.com/MIX10/Sessions/KEY02 (he’s introduced at the 2:13 mark). Its worthwhile.

If you notice the title, you’ll see that it’s slightly different to what Bill Buxton actually said. Bill is a UI designer. UI design is the natural application of his design paradigm.

But it goes deeper than simple UI design.

You see, Bill’s paradigm is that User Interfaces must respect the skill that has been acquired by the user. Since the acquiring of skill is on thing that we all have in common.

Bill gives this wonderful example of a violin. The violin itself may be worth millions of dollars (if I remember correctly, Joshua Bell paid $4.5 million for his Stradivarius). The bow of the violin for any first violinist in any symphony orchestra is never less than $10,000. Remember these are musicians. They make a pittance. So as a proportion of income, it’s a fortune. But it’s worth it. Why? Because it’s worthy of the skills that those musicians been acquired over decades.

Bill was taking purely in terms of User Interfaces. But the application of this paradigm is rather broad.

For instance, lets take developers.

Developers typically end up working with libraries and API’s. We rarely rewrite what Joel Spolsky affectionately calls duct tape code. Like date comparisons and string builders. It’s a brutally Darwinian process in which the libraries and API’s that are most easily used rise to prominence.

Personally, when I write any code, whether it’s an API used by some other code to do processing, or some plumbing for my UI, or even a class definition with functions and parameters, I always think of the way in which this code is going to be consumed. Since the consumer typically dictates what it needs to get out of that API/function/class. At this point, simple abstraction takes over: how can I abstract away processing code such that my consumer code is much easier and cleaner. In this case the User Interface is not pixels on a screen. No, it’s functions and parameters. The consumer code is and should be treated as a fully fledged user of that code.

The premise this blog post started off with was that user interfaces should respect the skill that has been acquired by the user. Of course, code has no appreciation of skill, whether the code is elegant or not has no meaning to the compiler. But you, as the programmer are consuming the service, the function or the API. You have skill. A skilled programmer writes elegant code. He or she draws on a vast reserve of skill and talent even in the most simplest of tasks.

My point is that when you write your API, when you write your function, when you define you class. You want to ask: "How can I help the programmer that programs against this service write elegant code, how can I write an interface that respects the skills acquired"?

let make some practical application of this:

Typically, I find Web services frustrating. I find it frustrating because I can’t just point Visual Studio at a URL and say "this API lives here and I want to use it". WSDL files, where available, make this so much easier because Visual studio will generate either a web or a service reference.

Why do I say this? For me as a programmer, it does not respect my skills to spend hours each day parsing SOAP or XML or JSON results when what I should actually be doing is writing program code. And yes, some of you will say that it takes all the fun out of life. But I want to be able to go off and write code. Program code. Not low level plumbing, specially plumbing that should be automatically generated for me here in 2010.

That’s one of the things that blew me away about Microsoft’s OData protocol. Here’s a URL and BOOM you have data and are ready to program. You don’t even need a WSDL (whether we need yet another data protocol to have this functionality is another question altogether). It respects the skills of the user, namely me, the programmer. It allows me to immediately get on with the business of practising my chosen craft.

It should be noted that I’m not arguing that we never get our hands dirty in the plumbing. Someone has got to do it. And it is essential training for anyone interested in programming, let alone web services.

In some ways writing an interface that respects the skills I have acquired is a meta-function. The better the interface/class/API is, the better my code is going to be: it’s writing code to write code.

Let’s take another aspect. PowerPoint presentations.

This mornings lecture borrowed a slide deck from TechEd 2009. It was about the BizTalk 2009 ESB Toolkit. Now the slides had no relevance to us as programmers. At all. No respect to the skills we have acquired over years or training and practise. Just a lot of SmartArt. (Id argue that BizTalk as a whole shows little or no respect for our skills as programmers). As a result I discovered what talented doodlers there are in my class, and that nobody snores.

But when was the last time you watched a Scott Hanselman presentation? He uses little or no slides. The majority of his talks involve coding in visual studio. Seriously, how much more respect can you have for the skills your audience has acquired? As a result people sit up and pay attention (and that has absolutely nothing to do with Scott’s various attempts at humour).

Want to see what I mean? See this video: Creating NerdDinner.com with Microsoft ASP.NET Model View Controller (MVC) or this one from Mix10:

BEYOND FILE | NEW COMPANY: FROM CHEESY SAMPLE TO SOCIAL PLATFORM

Talking of Scott Hanselman, have you seen his BabySmash WPF app? It’s written for babies. Babies smash your keyboard very much at random. The app takes this input and turns it into colourful animated shapes that move about the screen. Once again, the User Interface shows respect to the skills the user has (or in this case hasn’t) acquired.

Do not misconstrue this as me banging my drum about ease of use. The easiest point and click UI is the one Smith and Wesson developed many years ago. Yet that UI shows absolutely no respect to the skills developed by its users. And BabySmash may be easy to use, but it shows no respect for my skills as a developer.

As it has been said many times, software is hard. It will always be hard. There will always be challenges. But if we respect the skills of the code ninjas that come forth to complete those challenges, we all benefit.

Help Needed: Silicon Image Sil 3512 SATALink Controller BIOS Flash

So, I installed a 2 port eSata adaptor from LaCie last week and connected my brand spanking new 1.5Tb drive to it.

This is a Windows Home Server system, if you must know. So disk activity is always high, both reading and writing.

Now the hard drive itself is perfectly fine (I’ve tested it on other computers using USB 2.0). The enclosure is perfectly fine (since I’ve tested that too).

This leads me to the issue I have with the controller.

This error message always preceded a crash:

“The device, \Device\Scsi\SI3112r1, did not respond within the timeout period.”

That error let me to this Microsoft KB article: http://support.microsoft.com/kb/154690/EN-US/

A quote:

The reason that drives tend to have these types of problems under heavy stress is often slow microprocessors. In a multitasking environment, the processor may not be fast enough to process all the I/O commands that come in nearly simultaneously.

Hmmmmm…… This certainly fits he bill, since, after much careful examination, it seems heavy reads cause this problem.

I’ve tried all the other stuff in the KB article except flashing the PCI cards’ BIOS.

Now this is where it gets interesting. The LaCie card uses the Silicon Image Sil 3512 SATALink Controller. This is what shows up in Windows Device Manager.

I’ve updated the driver to its latest version from Windows Update. But not the BIOS.

Now the download is simply a flashtool and a readme file thats gives the following command line instructions:

Procedures to run SiFlashTool .exe

· Open Windows command prompt

· Change to a directory where the SiFlashTool .exe and BIOS binary file are located.

· Run SiFlashTool to update the flash memory with BIOS binary code

The SiFlashTool.exe command line syntax is as follows:

SiFlashTool [/BusNum:xx /DevNum:xx] [/File:filespec] [/v]

Where:

BusNum / DevNum: These parameters specify the PCI bus and device number respectively of a Silicon Image storage controller. These parameters only need to be used if there is more than one Silicon Image storage controller in the system.

File: This parameter specifies the path and name of the BIOS image file to be programmed.

/V: This switch causes the program to only display the version number of a controller’s BIOS. No BIOS image is programmed when this switch is used. The /File parameter is ignored if specified along with this switch. If /BusNum and/or /Devnum are specified, then only the BIOS versions of controller’s at the specified PCI locations are displayed.

If I Run it with /V it tells me that BusNum is 05 and DevNum is 04.

Question One, what BIOS binary file are they talking about?

Question two, how am I supposed to include the BusNum and DevNum arguments?

 

Many thanks for any help all the hardware and command prompt gurus out there can give.

Why I Just Bought A Dell (instead of an iPad)

295 best_experience_20100127

Even with all the iPad hysteria in yonder interwebs, there is one fact that differentiates the iPad from a true, bad-to-the-bone laptop: the need to sync.

This above all else cripples the iPad (at least when one considers it against the backdrop of the average laptop hardware spec). Think of it. How are you going to get all those wonderful iPhone apps you’ve bought over the past three years onto your brand spanking new iPad?? You need to sync it. How are you going to get your music, tv shows and movies on top your iPad? You need to sync it. In fact, how are you going to get some swanky software update that Apple will surely release on to your iPad without syncing it??

I have that problem with my iPhones at the moment. My iTunes library  that i sync the iPhones to got borked a few weeks back. Now I have to erase and re-sync BOTH iPhones with my partially rebuild library (its a bit of a hit or miss process). Until I do that, I can get stuff off the devices, but not sync stuff to them. Bit of a pain, no?? Its going to be even worse with the iPad if I’m ever in this sticky situation with it.

Secondly, the iPad runs iPhone OS3.2, the laptop runs Windows 7 Professional. Which gives me the great freedom of applications?? It depends. I have no qualms about the app store. Its the type of application that is allowed on the iPad/iPhone thats the problem. Apple clearly prohibits running Virtual machines, or any kind of Just In Time compiliation on the device in question. So how do I write code on the thing?? (writing code is useless if you can’t compile in real time and debug). A Jailbreak is out of the question , and even then, Visual Studio is certainly not coming to a jailbroken iPad near you.

Second, the hardware itself limits what kind of applications you can run. If Adobe produces a stripped down version of Photoshop (likely – they already have a Photoshop iPhone app), Lightroom (possible, it depends on if the SDK allows access to the SD and USB port adaptors) or Illustrator (after Apple demonstrated the drawing capabilities of the iPad, why not?), you can bet your bottom dollar that they are not going to be anywhere as full featured and powerful as their desktop (and laptop) counterparts. The hardware is Apple’s very own custom silicon. The A4 system-on-a-chip made by PA Semi for its parent company runs at 1Ghz. Not exactly world class performance. And until we have industry standard bench marks, nobody can say for sure. Nevertheless, this nice Dell system runs a Intel® Core™2 T6670(2.2GHz,800MHz,2MB). A nice speed improvement, if I do say so myself. The current consensus is that the iPad has about a 1Gb of RAM. Compared to the 4Gbs in the Dell build.

Now I do a lot of typing on my laptop – whether thats for code or for taking notes or the occasional blog post. So the Keyboard is must for me. The iPad keyboard dock is an ingenious design, and would look good on just about any desktop (not to mention those nice display tables at the Apple Store). It goes along way to answering those critics who, after three years of using their iPhone virtual keyboards, still like their tactile feedback (not to mention the much improved ergonomics of writing volumes on the keyboard dock rather than just on your lap – there must be some ergonomically minded lobby that would blame apple for all the RSI around, right?). What i can’t imagine is lugging the dock all the way to uni, setting it up and then putting this tiny little iPad on it and then taking notes for three hours (mind you, after actually trying this I may change my mind, but thats months away). Equally, I can’t imagine turning up to a busness meeting armed with the keyboard dock and iPad – i’d be the laughing stock of any (Dell-dominated) conference table.

In saying that the iPhone virtual keyboard has been very good to me. If one had to graph the spelling mistakes I (inadvertently) tweet, there is a continual improvement ( a reverse hockey stick graph if you will). So I’m certainly not against the virtual keyboard on the iPad. How it will actually work, however, is another question altogether. I’m typeing this on the last Dell laptop i bought, and the keys give me firm, reassuring feedback. Not to mention the almost soothing sound the keys make as I type, the sound of success (if I an’t typing, I aint working).

Then there is battery. Now, if Apple is to be believed, the iPad has 10 hours of battery life and a month of standby. No idea if that’s 10 ours of general use, of video playback, of web browsing or music playback etc. Going by the iPhone’s track record I’m not so sure I’m always going to get 10 hours out of the thing. However, the 10 hours still far outlives the seven i had for two years with the current laptop’s 9 cell li-ion battery. And the 2 hours I’ve lived with for the past for months. And the zero hours that I’ve had for a week and a half now.

Now lets think of the gravy.

One, the laptop has no app store. On the minus side, this means that I have to source the applications I wish to run myself.  I have replacements for all the iPads built in applications. This, ironically enough, includes iBooks. Its called Kindle for PC. From Amazon. (Amazon’s actions over the weekend is a subject for another post, but read this brilliant article by the author John Scalazi). I have the Full Creative suite 3 from Adobe. I have Microsoft’s Expression Studio 3. I have Visual studio 2008 and 2010. I have SQL Server 2008. I have Office 2008 (soon to be 2010). I have a virtual swiss knife of utilities near and dear to my heart for everything from screen capture to April fools jokes.

Two, webcam. This laptop build has an integrated webcam. And the iPad does not. And yes, I’ve heard of those rumors of the camera cavity in the iPad’s frame. And yes there is every possibility that el Steveo will pull a One More Thing on launch day and announce the addition of a camera. But here we deal with certainties and absolutes, not obscure fantasies and wet dreams of fanboys. So we assume that there is no camera on the iPad version 1. But, again assuming that the SDK allows the access, the appearance of the third party webcam is almost assured. But still, I have a integrated webcam here and now.

Third, 64 bit. This is a 64 bit processor with a 64 bit OS. Need I say more?

Forth, DVD drive. For those movies I’d like to watch without going though the palava of syncing them. The benefits of having the DVD drive handy are still very much apparent, even in this age of the cloud and the on demand nature of the downloading programs off the web (legitimately, of course). The iPad is complete dependant on the internet for its software, music, and there is iTunes syncing for anything else.

The one question mark here, which I will require an actual iPad to answer, is the screen. The Dell screen is anti glare, and promises to be a significant improvement on the screen on my current laptop. The iPad screen is IPS and supposedly has a great viewing angle. According to Steve Jobs, that is. No-one has had it in direct sunlight yet, so we’ve no idea how well it handles the glare. The winner in this category will undoubtedly be Amazons Kindle (that pesky Company again).

So with out further ado, here are the specs:

Base
Vostro 1520 : Standard Base

Memory
4096MB 800 MHz Dual Channel DDR2 SDRAM (2x2GB)

Keyboard
Internal Keyboard – English (QWERTY)

Video Card
Integrated GMA X4500 HD Graphics

Hard Drive
320GB (7,200rpm) Serial ATA Hard Drive with Free Fall Sensor

Microsoft Operating System
English Genuine Windows® 7 Professional (64 BIT)

Optical Devices
8X DVD+/-RW Drive including software for WIN7

Wireless Networking
Dell Wireless 1397 Mini Card (802.11 b/g) European

Primary Battery
Primary 6-cell 56 WHr Lithium Ion battery

Processor
Intel® Core™2 T6670(2.2GHz,800MHz,2MB)

Camera
Integrated 1.3MP Camera

Colour Choice
Obsidian Black

LCD
15.4 inch WXGA+ CCFL Anti-Glare Display Anti-Glare

The obligatory iPad post.

Now, I am really excited about the iPad. now before you dismiss this post as just another fanboy rant, hear me out.

The App Store

The app store is a smart idea if only to leverage the power, dominance and success of the iPhone App Store.

There is an uproar over the fact that Apple has closed its device up.

One, Apple has very simple rules for admission into the Apps store. if you meet them, then you go in and make your money. Apple is happy since your app will not crash its perfect tablet (and looks good) and you’re happy to be in and making money.

Two, Apple has one golden rule for apps: no duplication of functionality. That’s why the Google Voice App was rejected and caused the entire blogosphere to have palpitations. This still leave considerable leeway for developers.  Note also that the iWorks applications actually have to be bought separately and installed. They are not native functionality. Hence, and if I’m reading this right, Microsoft could in theory have Office Applications on the iPad. Isn’t that fair??

Three, native iPad apps are going to be just great. It will take a while for developers to fully leverage the capability of the iPad, but we have no idea what they will come up with. So, who wants to go tot he end of cyberspace and back to find these little gems?? Not me. The App store is by far the most convenient way of discovering and installing new apps.

(Note – There are a number of apps that I love that would look wonderful on the iPad- more on this in a future post)

The iBook Store

I was seriously considering buying a Kindle 2. Its cheaper than an iPad, it has a great store, it has a great screen and it has free 3G. And, this is the important bit, has international availability. As far as i know, the iBook store is restricted to US customers only. Presumably until Apple negotiates the international rights. And apple has 2 months to do that.

Another thing worth noting:the iBook books are significantly more expensive than the Kindle books. This is a problem. A big problem. I can probably buy the dead tree version of that book for less than either of them.

Now I may only buy a few books year but that cost difference adds up.

there has been much talk of the multimedia capabilities of the device, and how publishers could leverage this in their books, but i want to see what forms this make take to see if its worth it. From that cost difference alone, my Kindle may well pay for itself.

The Wireless

Much has been made about how you have to fork out some money every month for 3G access. So what?? its a contract-less arrangement thats cheaper than AT&T’s normal data contact. being able to use it on a month to month basis makes it extremely flexible.

The fact that there is a 250Mb cap on the cheaper plan has got people frothing at the mouth. Come one people!!! I never have gone above 250Mb a month on my iPhone. Ever.

i already have 3G on my iPhone, so the 3G on the iPad is redundant. that is why I’d prefer the Wi-Fi iPad.

 

The Accessories

The Keyboard Dock is awesome. Period. Whether I actually need one is another matter altogether.

Now this is the point that has been driving me crazy with the iPad coverage. People have been complaining that the iPad has no SD or USB slots. It actually does. There are two adaptors that plug into the connector slot. The current use case for these are for camera’s. Which is great.

Think of it. I’m on a shoot. I take the SD card out and review all the JPEG’s on the iPad. I can email them as well, sort them, tag them, make notes.

Better yet I can stick my portfolio on the iPad and show clients on a beautiful, slick deice, consumerate with the standard of my work. Impressed customer?? You bet.

The Screen

This is where the Kindle really has the chance to shine. The e-ink screen needs no backlight (hence not much battery power), is easy on the eyes and can be read in direct sunlight. Whether the iPad screen will stand up to hours of use (i.e for our own eyes), and use in direct sunlight remains to be seen. I think this is a fairly compelling reason to get he kindle over the iPad.

Since teh Screen does not support Widescreen natively, the actual movie viewing area is very very small. I’m not at all bothered about that.

Conclusion

The iPad is NOT a device, or simply a platform for consuming content – having the ability to install iWorks on the iPad is one indication of that.

The exclusion of a camera does not bother me – i don’t want one.

If Steve lets me do what I wanna do, I’m happy. I wanna work with the iPad and transfer to the PC very, very easily. I wanna use it as a star Trek PADD. i wanna leverage the full eco system of applications and accessories that complement the iPhone. Who knows if Adobe will release Photoshop for the iPad??

But i am a Microsoft developer. I live and breathe in Visual Studio. There is no way I am going to ditch the laptop in favour of the iPad. I need it for work. not to mentiont hat I need it to sync the iPad in the first place (yes here are other machines, but the laptop is the most convenient one). Which is

I don’t feel that there is a compelling case for unilaterally ditching the Kindle (certainly not if Apple will let the Kindle App onto the iPad). I have a feeling that the Kindle 3 will give us more to think about. Amazon will come back at apple with Something. Even if its the mass of personalized recommendations that Amazon has on our book buying habits. I think that this is one arena that the battle is not over in.

But I will say this.

The week after its release, I’m going to the store and I’m having an hands on session with it.

And then I’m gonna by it.

In response to a N900 review

Theres a nice comparison of the iPhone versus the N900 here.

I’m not sold. So I thought I’d repost my comment here (read the post first):

Good review.
1. How does the N900 support very Flash heavy sites?? Can you play Flash games etc??

2.How do N900 apps compare to iPhone ones?? How is the fit and finish?? Do UI designers aspire to the Apple-esque UI paradigm that has made iPhone apps so successful (and so user-friendly)?? Is there the same range of apps that the iPhone app store has?? the ones that are completely off the wall brilliant??

3.I agree that Contacts need to be updated soon, but I don’t like the inclusion of all services contact lists. There are apps that will work with your contacts. And if you use Gmail Mobile Sync, youc an manage your contacts on line and have that synced to you phone.

4.I’d be very glad to be rid of iTunes. My itunes library got borked and its a pain to rebuild and re sync etc. Not the first time either. However, I’m not sure moving to something thats even worse at syncing is a good  idea. While there are no apps for Windows Media devices, there are certainly apps for Sonos and AppleTv/iTunes for the iPhone. If you are all Apple devices in the home, this is no problem.

5. I’m not sure I like the idea of all in one messaging. I typically like to keep the real and online worlds separate. Can you turn it off?? Customise what services appear?? Custimise whose updates from online appear??

6. Yes, the iPhone camera needs an upgrade. And yes the shareing options are limited. But you completely ignore the role of apps here. there is a breathtakign range of apps that work with your photos, adding effects, cropping, panoramas etc. Apps will share you photos on twitter, facebook, posterous, etc.

Finally, I think we need to see what will be in iPhone 4. There will be a new camera no doubt.

Push notifications are an acceptable alternative to multitasking, but i’d take performance and battery life over real multitasking any day of the week.

And i argue that once ap developers have figured out how to bring Push to thier social networkign apps, we will see some amazing integration. But even now, there are loads of social apps in the store.

I’m not sure you’ve sold me on the N900.