Web API’s have an Identity Problem (In response to and in support of @davewiner)

If you’ll remember, a while back I announced I was implementing RSSCloud on Windows Azure. By and large this is going well and I expect to have a demo up and running soon.

PS. what follows below is based on an email I sent to my Honours Year supervisor at University and some of this will make it into my thesis too.

The RSSCloud API relies on HTTP POST for messages in and out. And I initially thought Windows Communication Foundation was the way to go.

(bear with me, I’m using this to illustrate my point)

Up until now, WCF has been working. However, in order to actually test the RSS Cloud code, I’ve had to have it the WCF Operation Contracts written as a REST service. Its clearly HTTP POST, but its not in the RSSCloud specification. Though arguably, it should be. Why do i say this? Developers should be able to write code they are comfortable with. Whether than is REST or POST or SOAP or its against an WSDL generated API client.

Back to my little problem. So instead of:

[WebInvoke(Method = "POST", UriTemplate = "/ping?url={value}")]

        [OperationContract]

        String Ping(string value);

I had to use:

[WebInvoke(Method = "POST", UriTemplate = "/ping/url/{value}"/)]

        [OperationContract]

        String Ping(string value);

There is a subtle difference. HTTP post uses the query string, where as REST uses the url itself to transmit information.

Sending a HTTP POST to the first method (where the query string is of the form" ?url={value}&port={value}&…..") hangs the test client. The request is accepted, but it never returns. I can’t even debug the method. Using a pure REST url (the second method), things work perfectly.

In order for project as a whole to conform to the project specification (by which I mean the interoperability of the program and its compliance with the HTTP POST methods defined in the RSSCloud specification), being able to accept HTTP POST is paramount.

I spoke to one of my WCF savvy lecturers. Basically he said that there were two ways to doing this: either stick to using a REST. Or encode the url as part of the POST data. Neither of which solve the problem of sticking to the specification and using HTTP Post.

So, I was digging around ASP.Net MVC 2  yesterday. I was building the page that will actually display the posts in a feed on the page. I noticed that the Controller actions that handle the request  (i.e the feed id to get) have a [HttpPost] attribute above them. I’d never really given that much thought until yesterday.

After my little chat, I had a hunch. Using MVC, I simply added a controller action like so:

[HttpPost]

        public RedirectToRouteResult ThePing()

        {

            string url = (string) Request.QueryString["url"];

            url = url.ToLower();

            ……..

And it worked flawlessly. After all my wrestling with WCF configurations and what not, i was actually quite shocked that it worked first time. One of the problems with working with new frameworks is that you keep discovering new things, but only long after you shoud’ve known.

So, to hit the ThePing method above, the url is http://rsscloudproject/Cloud/ThePing?url=….... (obviously this isn’t deployed yet)

Why does this work?

The reason is quite simple: As I understand it, MVC exposes the Request object for you to use directly, while WCF hides this somewhere in the bowels of its inner workings. So, without getting a handle on the Request object, I can’t force WCF to process the query string differently. Hence, WCF was the wrong choice of framework for this.

So my code is now 100% in compliance with the HTTP POST methods defined in the RSSCloud Specification

Now, what does this mean for the WCF REST project?

I’m keeping it as part of the project. It gives a REST interface, and it gives WSDL that developers can use to build against my service.

Not so much the case with REST, but I personally think that the concept of a WSDL is under-represented when it comes to web based APIs. Adding these two additional interfaces to the RSSCloud specification will be one of my recommendations in the final report. I feel strongly that a web based API needs to give developers as many alternative interfaces as possible. Its no fun when you know one way of doing things, but this API is only provided in another.

For example. I wish Smugmug provided a WSDL that I could point Visual studio to and generate a client for.

Both of these situations illustrate a problem among Web API’s.

I wrote a while  back that Bill Buxton’s Mix 10 keynote about designing natural user interfaces, interfaces that respect the abilities and the skills acquired by the user also applies to designers of API’s.

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.

Dave Winer today published a post about Facebook not providing XML API responses. And bemoaning that Twitter is going to do the same. Dave does not want JSON. He wants XML. Why? He feels comfortable with it, and he has to tools to work with it. Clearly the new API changes do not respect Dave Winer and the abilities he has acquired of decades.

I left the following comment:

I totally understand where you are coming from.

On the other hand, tools will always be insufficent. I don’t think .Net, for example, has JSON support built in, either.

Technology moves so fast, as you say, that next week there will be something new and shiny. Developers find themselves in the curious position for having to write for today, but to prepare for next weeks new thing – they have to find a way to straddle that fence between the two. Open Source is not the complete answer to this problem ( its part of it tho).

  • So, API developers have the responsibility to provide for developers.
  • Tool developers (closed or open source) have a responsibility to provide the tools in a timely fashion.
  • And developers have the responsibility to have reasonable expectations for what they want supported.

This is a large and deep problem in the world of web API’s. They don’t have to be Just JSON or Just XML or Just HTTP POST or Just XML-RPC or Just SOAP or Just WSDL. This collection of formats and standards can co-exist.

And co-exist they should. An API should be available to the widest possible cross section of developers, to respect the individual skills that these developers have acquired of years and decades.

Because when you don’t do that, when you don’t respect that, you make people like Dave Winer stop coding against your API.

The (proposed) HTPC Build

This afternoon I out out a few tweets with regard to a HTPC.

Heres the system build I came up with:

Motherboard

Gigabyte H55M-S2H, Intel H55, 1156, PCI-E 2.0 (x16), DDR3 1600/1800/2133, SATA 3Gb/s, ATX, VGA

Gigabyte H55M-S2H, Intel H55, 1156, PCI-E 2.0 (x16), DDR3 1600/1800/2133, SATA 3Gb/s, ATX, VGA

£66.98 Inc VAT from scan.co.uk

Processor

Intel Core i3 530 2.93GHz (Clarkdale) (Socket LGA1156) – OEM [CM80616003180AG]

Intel Core i3 530 2.93GHz (Clarkdale) (Socket LGA1156) - OEM [CM80616003180AG]

£91.98 inc VAT from overclockers.co.uk

 

Case

Antec 300 Three Hundred Ultimate Gaming Case – Black [0761345-08300-3]

Antec 300 Three Hundred Ultimate Gaming Case - Black [0761345-08300-3]

£44.99 inc VAT from overclockers.co.uk

Power Supply

EMD525AWT II – 525W Enermax Modu82+ II DXXI READY! Efficiency 88% 8xSATA 5xMOLEX 3xPCI-E 6+2 FREE TWISTER FAN

525W Enermax Modu82+ II DXXI READY! Efficiency 88% 8xSATA 5xMOLEX 3xPCI-E 6+2 FREE TWISTER FAN

£83.57 Inc VAT from scan.co.uk

 

RAM is just about ubiquitous. For this particular system I plan on getting 2x 2Gb DDR3 from overclockers.co.uk since they have some good deals. But please do state your preference for RAM in the comments.

This list does not include the plethora of fans cables, etc that turn components into a PC.

I know have to sell this idea. WMC is hard enough to explain to people in words. Actually showing them the thing and letting hem use it is a very different proposition. This is what I found withthe AppleTV. Having had it for a year, everyone loves it now. So i’m going to put the TV tuner card into the desktop, hook the desktop up to the tv and let people have a go with WMC. Thats next weekends project.

In saying all of this, it all depends on the iPad. There is only enough money in the budget for one or the other. Once I actually have the thing in my hands, then i will be able to decide.

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.

Re: 7 reasons why the Windows 7 Phone is THE iPhone Killer

I thought I’d repost my comment on this fascinating post: 7 reasons why the Windows 7 Phone is THE iPhone Killer – read the post first.

I must say that I am seriously tempted to get a Windows Phone 7 phone. For all the above reasons.

As a developer, the major enticement is the fact that I can write my own apps for the phone for free.

Having an iPhone and an AppleTv, I’m pretty heavily invested into iTunes store content. That is the big thing holding me back. If Microsoft could get their software to authenticate files with Apple’s DRM servers,t his would be the cherry on the top. The media hub is certainly indicative of Microsoft embracing content irrespective of its origin.

Finally, I assume that the phone syncs with Microsoft’s beautiful Zune software. iTunes as a software program is terrible and the Zune software out does it six ways to Sunday. Again, another big plus.

All the above having being said. I’m wondering what apple will do to respond to this. They clearly have a huge task ahead of them. Microsoft is cleverly tapping into the large install base of Windows and Xbox Live games, the large install base of Mesh, the huge install base of visual studio and Silverlight developers and finally, the huge install base of Exchange servers. These are four constituencies that Apple does not have any worthy alternative (unless one counts the pitiful Exchange support in the iPhone).

This is clearly Microsoft playing to its strengths and not its weaknesses. They are playing this on their own rules, on their terms and and on their own turf.

This is why competition works.

I’d thoroughly encourage everyone to go and watch the Mix 10 Keynote on-demand here: http://live.visitmix.com/MIX10/Sessions/KEY01

You’ll see why am so excited about this as a developer.

Finally, while I’m on the subject of Mix 10, go ahead and see UI designer Bill Buxton in the second half of the second keynote here for a truly inspiring speech: http://live.visitmix.com/MIX10/Sessions/KEY02 (he’s introduced at the 2:13 mark)

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.

In defense of @friendfeed from @techcrunch’s attack. (@parislemon I’m looking at you)

Allow me to repost the comment I made on this Techcrunch post, it being a blatant attack on Friendfeed.

One we are not “pissed”. At all. We’d only be up in arms if Facebook closed Friendfeed.

Two. If its not news why are you reporting it.

Three. It is news because Friendfeed pioneered some of those wonderful features now known as Google buzz.

Four. The last time Friendfeed had problems was October 29th with some network problems. Ergo, it is NOT twitter. At all.

Five. Even if it were twitter, you never did treat twitter as harshly as you treated Friendfeed in this post. Even during the Era of the Failwhale.

Six. You don’t like Friendfeed. We get it.

Seven. Here endeth the lesson.

Really. I’m not surprised.

The question I really want to be answering here is why people are leaving Friendfeed. I certainly can’t think of a reason why not to. Even Scoble freely admits that Friendfeed has the superior feature set.

Facebook as a 200 million strong userbase.

So, Mark Zuckerberg, turn them loose on Friendfeed please.

Scobles’ Molecules of Infomation

Devotion to Duty

Scobles’  molecules of information post reminded me of something. Blog posts are the original molecules of information. A blog post is a place to bring tweets, pics and youtube videos together. Since blogging took off, we have a host of new tools to add to the army knife. We have foursquare check-ins for example. they provide an awful lot of context to location sensitive tweets.

Thats why I’m sharing this here rather than going straight to Friendfeed and Twitter. 

I commented on Scobles’ post:

Er, Scoble. You can tag tweets. Its called hashtags. What we DON’T have is the ability to search and mine that information.
Friendfeed has hashtags as well. And FF has a far more power search engine for all these little atoms of information.
Friendfeed is way ahead of you. They show you related items.
The future is here, its just not evenly distributed yet.

To which Scoble replied (Disqus comments with replies are awsome, BTW)

Nice try. Hashtags are NOT tags. At least they aren’t anything like the tags that Flickr photos have. FriendFeed does NOT have tags. It has comments. Not the same again. Not even close. FriendFeed’s related items? They are to remove some duplication noise and that feature doesn’t work anywhere close to as well as a human curated system would. Try again.

To which I responded:

Robert, hashtags need a systematic engine for them to work as actual
tags. Twitter should add this.

But nonetheless they provide a way of categorising tweets. Tweetdecks
tweet filtering works primarily due to hashtags. For events, for
example, hashtags are brilliant.

Friendfeed related items link may primarily be for noise reduction,
but this functionaity could be greatly extended. Comments are content
as well, but quite often they provide context too. See Jesses’ FF3.0
FF posts this morning for an example. Where links between FF items are
posted in the comments.

If this were extended to solidify the relationtionship between items
beyond simply showing the items linking to the same page, we’d have
your information molecules.

The sum total of tweets, posts, videos, foursquare check ins, you name
it about something often ends up providing more context than any one
single service or method can provide.
Typically speaking blog posts have filled this need for creating
context, collateing all this related information together in a single
article. This tweet, that twitpic, this video. The first instance of
an information molecule.

As noted above we already have been manually adding in links between
related content. Geolocation services have always created information
molecules, combining tweets and google maps. In like manner, the
services concerned need to solidify these methods for other types of
information.

What do you think?

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.