The Solution of Minimal Effort – Drive Extender and Windows Home Server Vail

Ever since Microsoft announced it was removing Drive Extender from the next version of Windows Home Server, there has been an echo chamber effect with everyone saying the same thing : we don’t like it, we want it back, WHS is dead without it.

The same goes for what Microsoft should do now: port DE v1 into Vail, re-ad DE v2 to Vail only.

So I wont go and repeat all that .

The fact of the matter that WHS does not make nearly enough money to merit the full attention its DE woes deserve (The disKeeper blog makes this point as well). I’m sure all manner of problems could have been solved  were the full might of the Developer Division to decent on  the WHS team like a deus ex machina … Ok, maybe I’m being a little dramatic here.  Nonetheless, my point stands – all problems can be solved with adequate resources  – read money-in fact its practically the American way (I’m looking at you Bernanke).

The reason why Xbox (a big leap but bear with me) has flourished so much is because the team understands consumers. They understand what we, the consumer, want from them, the team. Xbox went from being a niche to a multi billion dollar arm of Microsoft. Helped in no small part by the Halo franchise (again – understanding of the consumer wants and needs at work).

Windows Home Server is in a similar place at the moment. WHS v1 was perfect. perfect in a way that’s difficult to describe. It was perfect enough for me to go out on a limb and buy a Dell server to run beta 1 on. The kind of perfect where you feel it in your bones – “this is it”.  (PS Microsoft: try get a commission off Dell for that  if you can)

The fact is that WHS solved a number of difficulties at a stroke: back up  and redundant protection against hard drive failure. As a result I no longer have nightmares (well i do, but about fire burning down the house rather than hard drives and computers biting the dust, but thats another story). 

The peace of mind that comes along with this is simply priceless. The fact of the matter is that there is no other way of getting that peace of mind with as minimal effort as setting up a WHS server. I’m not Microsoft – I don’t have the hardware and legions of RAID experts to call on. So WHS is the only way (yes there are alternatives, but I’m talking about the solution of minimal effort here).

So, Microsoft. Please. Give us our Drive Extender back. Whether you decide to use v1 or v2. Whether Aurora and Beckenridge have it or not. Add it back to Vail. You will have the appreciation and loyalty of a grateful bunch of people. This is an opportunity to pour fire over burning bridges (and maybe rebuild them with stone).

In the meanwhile, WHS users have started a petition. Vote here (half tempted to call this Organising For Drive Extender – a pun on Obama’s organising for America).

Note to self– Use OutputCache in MVC 3

I’m just reading ScottGu’s post on the MVC 3 release candidate.

What got me really thinking was the output cache attribute:

image

Scott explains:

Notice how the DailySpecials method above has an [OutputCache] attribute on it.  This indicates that the partial content rendered by it should be cached (for 3600 seconds/1 hour).  We are also indicating that the cached content should automatically vary based on the category parameter.

If we have 10 categories of products, our DailySpecials method will end up caching 10 different lists of specials – and the appropriate specials list (computers or diapers) will be output depending upon what product category the user is browsing in.  Importantly: no database access or processing logic will happen if the partial content is served out of the output cache – which will reduce the load on our server and speed up the response time.

This new mechanism provides a pretty clean and easy way to add partial-page output caching to your applications.

So, with my Windows Azure Feedreader in mind,  my note to self is as follows:

In a couple of weeks, when we get to the shared items Rss feed, we can use this code. We vary by user id rather than by category in the example above.

I’m actually quite relived, as I was wondering how we’d do the shared items Rss feed. These actions would, arguably, be highly trafficked and reading directly from the blobs (which was my original plan) would be too bandwidth intensive. Problem solved.

I’m very excited about MVC 3 as a whole, but when i see the direct application of features, I get even more excited.

In fact, when Razor first came out, I really was going to use it for the Feedreader instead.

VLC, GPL and the Apple App Store

Update:I wrote this post using the WordPress iPhone app. So just got home and corrected some formatting

Today I read (see here) that the successful VLC iPhone app might be pulled from the App store.

The reasoning behind this, apparently is that the App Store Terms Of Service breach the GPL in that all apps are sold with DRM.

First of all, this is lunacy. After 3 years trying to get it in the store, pulling it would cause an uproar. After Apples’ successful weathering of the no flash controversy, that uproar is not going to get apple to remove DRM.

Second, VLC is open source. So, open source the app, or release a DRM free version on the jailbreak app stores. Problems solved.

So my advice to the VLC team is to grin it and bear it. Nobody said the world was perfect.

Sticking to the letter of the GPL may be wonderful for the open source diehards, but the rest of us seriously couldn’t care less.

Windows Azure Feedreader Episode 7: User Subscriptions

Episode 7 is up. I somehow found time to do it over several days.

There are some audio issues, but they are minor. There is some humming noises for most of the show. I’ve yet to figure out where they came from. Apologies for that.

 

This week we

  • clear up our HTML Views
  • implement user subscriptions

We aren’t finished with user subscriptions by any means. We need to modify our OPML handling code to take account of the logged in user.

 

Enjoy:

Remember, you can head over to vimeo.com to see the show in all its HD glory.

Next week we’ll finished up that user subscriptions  code in the OPML handling code. 

And we’ll start our update code as well.

Of browsers and extensions

It might seem obvious, but its worth pointing out that browsers are next to useless for me without being able to support a couple of extensions.

Feedly being one and Delicious being the other. Not to mention a whole lot of debuggers and such.

If you’ve been keeping an eye on my Delicious feed, you’ll notice a pick up over the past few weeks. The reason being is that I installed the Delicious Chrome extension.

That highlights my point quite nicely.

I mentioned this because the IE9 Beta came out earlier today. Since its a beta, no plugins or extensions or any sort, as far as I know anyway. And so, I find myself feeling that IE9 looks, um, naked with out any extensions.

Don’t get me wrong here, IE9 is a fantastic browser. You can visibly tell the rendering speed has improved by leaps and bounds. The start up time has vastly improved as well.

Being a developer, its quite standards compliant as well. In fact, as I remarked on Twitter earlier, its the first Microsoft browser that hasn’t borked one of my sites. This may have something to do with the fact that my CSS is so basic its essentially Neanderthal cave paintings.

So, no IE-specific tweaking required. Bliss.

For a laugh, I pointed it to The Wilderness Downtown. The Chrome HTML5 experiment set to Arcade Fire’s We used To Wait. It won’t run. Disappointing.

In conclusion, I’m sure Microsoft has been working with extension developers to have some ready to go when IE9 is released to manufacturing. But before I do a IE9 vs Chrome and pick one for daily use, they both need near enough the same set of extensions.

Here’s hoping it won’t take long.

PS. I know I just skipped a boatload of IE9 features, mainly for the sake of brevity. Look for a longer post in the weeks to come, since I’m already liking this browser.

Creating Video Pre-Roll with Expression Design, Blend and Encoder

The only part of Expression Studio 3 I’ve really had a chance to work with is Expression Encoder 3 for the screencast work. So I thought I’d have some fun with the other parts of Expression Studio, namely Design and Blend.

Now, it took a bit to time to figure out, but its much easier designing your assets in Design than it is in Blend. Blend is for the animation. Its actually pretty easy to use, its well though out and all. So, once I figured that out, things were much easier.

Now, I really didn’t do anything too adventurous. Just making basic shapes on a canvas and animating them. No events, triggers or anything like that.

So I decided to do a pre-roll for the screen casts. Heres what I came up with:

If you want to do your own, its really easy.

  1. Using Expression Design, design the assets on the canvas. Make sure the canvas dimensions are the same as the resolution of the video (800 x 600, 1280 x 720, etc). This is important.
  2. Go to File->Export and chose “XAML WPF Canvas” as the format under Export Properties.
  3. In Blend, create a new WPF Application. Right click on the solution file and select “Link to Existing File”. Navigate to and select the file your exported earlier.
  4. Animate it by creating a new Storyboard. This will turn on recording.
  5. Save your file.

We now have our XAML canvas for our pre-roll. Now, using Expression Encoder, we can add this as a visual overlay to any video of our choice. However, we need video to overlay the XAML on to – as far as I know, you can’t add it any other way.

So go to Windows Live Movie Maker. Add credits to your new project. Delete the text. Choose a clip length – I chose 5 seconds. But This should be the same length as your Animation. Save your video. Make sure its the same resolution as your XAML Canvas.

  1. Go to Expression Encoder, Import the video from Windows Live Movie Maker.
  2. Got to Timeline->Add Visual Overlay. Navigate to the XAML file.
  3. Resize the overlay till it covers the entire screen.
  4. If you want to, add sound by going to Timeline->Add Audio Overlay.
  5. Hit encode.

It should be noted that you can only Import a XAML canvas as a visual overlay on Expression Encoder. And thats why we chose “XAML WPF Canvas” when we exported from Design.

If I have any upload quota left after this weeks Windows Azure Feedreader Screencast, I’ll add a short screencast demonstrating this.

Have fun.

Core Competencies and Cloud Computing

Wikipedia defines Core Competency as:

Core competencies are particular strengths relative to other organizations in the industry which provide the fundamental basis for the provision of added value. Core competencies are the collective learning in organizations, and involve how to coordinate diverse production skills and integrate multiple streams of technologies. It is communication, an involvement and a deep commitment to working across organizational boundaries.

 

So, what does this have to do with Cloud Computing?

I got thinking about different providers of cloud computing environments. If you abstract away the specific feature set of each provider what were the differences remaining that set these providers apart from each other.

Now, I actually starting thinking about this backwards. I asked myself why Microsoft Windows Azure couldn’t do a Google App Engine and offer free applications. I had to stop myself there and go off to wikipedia and remind myself of the quotas that go along with an App Engine free application:

 

Hard limits

Apps per developer
10

Time per request
30 sec

Blobstore size (total file size per app)
2 GB

HTTP response size
10 MB

Datastore item size
1 MB

Application code size
150 MB

Free quotas

Emails per day
2,000

Bandwidth in per day
1,000 MB

Bandwidth out per day
1,000 MB

CPU time per day
6.5 hours per day

HTTP Requests per Day
1,300,000*

Datastore API calls per day
10,000,000*

Data stored
1 GB

URLFetch API calls per day..
657,084*

Now the reason why i even asked this question, was the fact that I got whacked with quite a bit of a bill for the original Windows Azure Feed Reader I wrote earlier this year. That was for my honours year university project, so I couldn’t really complain. But looking at those quotas from Google, I could have done that project many times over for free.

This got me thinking. Why does Google offer that and not Microsoft? Both of these companies are industry giants, and both have boatloads of CPU cycles.

Now, Google, besides doing its best not to be evil, benefits when you use the web more.  And how do they do that? They go off and create Google App Engine. Then they allow the average dev to write an app they want to write and run it. For free. Seriously, how many websites run on App Engine’s free offering?

Second, Google is a Python shop. Every time someone writes a new Library or comes up with a novel approach to something, Google benefits. As Python use increases, some of that code is going to be contributed right back into the Python open source project. Google benefits again. Python development is a Google Core competency.

Finally, Google is much maligned for its approach to software development: thrown stuff against the wall and see what sticks. By giving the widest possible number of devs space to go crazy, the more apps are going to take off.

So, those are all Googles core competencies:

  1. Encouraging web use
  2. Python
  3. See what sticks

And those are perfectly reflected in App Engine.

Lets contrast this to Microsoft.

Microsoft cater to writing line of business applications. They don’t mess around. Their core competency, in other words, is other companies IT departments. Even when one looks outside the developer side of things, one sees that Microsoft office and windows are all offered primarily to the enterprise customer. The consumer versions of said products aren’t worth the bits and bytes they take up on disk. Hence, windows Azure is aimed squarely at companies who can pay for it, rather than enthusiasts.

Secondly, Windows Azure uses the .Net Framework, another uniquely Microsoft core competency.  With it, it leverages the C# language. Now, it  is true that .net is not limited to Windows, nor is Windows Azure  a C# only affair. However, anything that runs on Windows Azure leverages the CLR and the DLR. Two pieces of technology that make .Net tick.

Finally, and somewhat  related, Microsoft has a huge install base of dedicated Visual Studio users. Microsoft has leveraged this by creating a comprehensive suite of Windows Azure Tools.

Hopefully you can see where I’m going with this. Giving stuff away for free for enthusiasts to use is not a Microsoft core competency. Even with Visual Studio Express, there are limits. Limits clearly defined by what enterprises would need. You need to pay through the nose for those.

So Microsoft core competencies are:

  1. Line of Business devs
  2. .Net, C# and the CLR/DLR
  3. Visual Studio

Now, back to what started this thought exercise – Google App Engines free offering. As you can see its a uniquely Google core competency, not a Microsoft one.

Now, what core competencies does Amazon display in Amazon Web Services?

Quite simply, Amazon doesn’t care who you are or what you want to do, they will provide you with a solid service at a very affordable price and sell you all the extra services you can handle. Amazon does the same things with everything else, so why not cloud computing. Actually, AWS is brilliantly cheap. Really. This is Amazon’s one great core competency and they excel at it.

So, back to what started this thought exercise – a free option. Because of its core Competencies, Google is uniquely positioned to do it. And by thinking about it, Microsoft and Amazon’s lack of a similar offering becomes obvious.

Also, I mentioned the cost of Windows Azure.

Google App Engine and its free option mean that university lecturers are choosing to teach their classes using Python and App Engine rather than C# and Windows Azure.

Remember what a core competency is. Wikipedia defines Core Competency as:

Core competencies are particular strengths relative to other organizations in the industry which provide the fundamental basis for the provision of added value. Core competencies are the collective learning in organizations, and involve how to coordinate diverse production skills and integrate multiple streams of technologies. It is communication, an involvement and a deep commitment to working across organizational boundaries.

I guess the question is, which offering make the most of their parent companies core competencies? And is this a good thing?

Apple TV Announcement: More Questions than Answers

So, heres what I said a few weeks ago:

The rumours are:

Supposedly will be priced at $99 which isn’t too bad of a price

It will basically be a little, iPhone 4 without the phone or screen…

The insides supposedly will be iPhone 4 like:  A4 CPU, 16GB of flash storage

Supposedly can only handle up to 720p video

Apple will be officially changing the name of the device to iTV…

I just left this reply to this post on the GeekTonic blog discussing the AppleTv rumors that will not die.

Well… 1080i or p is only really viable if you have cable internet… and its a really small market. So 720p is pretty much a good bet as the default res.

I don’t care what anybody says – I ain’t streaming movies. Not with a 15gb fair use download cap. I’m getting a local copy of everything. Download once re-use all over the house. However, a 16Gb capacity is barely enough for the photos I have on the Apple Tv. Currently I play all my TV shows off the server rather than sync them. So while not being able to cache much content locally on the device, as long as i can download a copy to the server, I’m happy.

An App Store would be great – though I would assume it wouldn’t be backwards compatible with older AppleTvs – since it would require apps to be recompiled ( or even re-written) for the older hardware/CPUs.

The $99 price point is also awesome. It does open up the market. Its under the psychological $100 barrier – so people will be more likely to buy it.

The form factor is a persistent rumour – however I don’t see the logic of it. Given the clutter in the TV closet, there’s a real chance of me loosing it. However it will be a boon to those who already have too many set-top boxes in their Tv closets – look out for Steve to mention this prominently in any event. I still think its possible that Apple may keep the current form factor in some way.

However, unless the new Apple Tv ( or as you say, iTV) launches with some really awesome apps that will be worth the outlay of $99, I can’t see myself rushing out to buy one. Since we got satellite Tv installed with the accompanying HD-PVR a few weeks back, the use of the AppleTv has declined a lot – like 2 or 3 times a week as opposed to every day. Purchases sinc3e can be counted on one hand.
So a bit of a mixed reaction to this.

I was watching the announcement purely for the Apple Tv announcement.

apple-fall-2010_0272[1]

First of all, what Steve never mentioned:

  • Steve never mentioned details as to innards of the Apple TV
  • Steve never mentioned whether it’ll handle 1080p or just 720p as it does currently
  • Steve never mentioned whether content purchases will still be available in iTunes on the desktop
  • Steve never mentioned whether this software will be backwards compatible with the current hardware.
  • Steve never mentioned why there is a USB port on the back of the Apple TV.
  • Steve never mentioned Ping for the AppleTv

The Apple Store page answers none of these (burning) questions. Until I have the answers to these, the new Apple Tv is going to linger in geek limbo – neither here nor there.

What he did mention was (and we are not surprised at):

apple-fall-2010_0307[1]

 

While this is a bit of a let down. There is one thing that I’m happy about: no storage management. Currently, its a bit of a pain.

Like i said, as long as I can have a local copy somewhere, I’m happy with the move to streaming. Now, i can get some killer speeds out of mmy ADSL connection. If I use Steam or Microsoft File Transfer Manager i can get 600Kbps. But iTunes and ordinary downloads are still slow. So I’m hoping that the Apple Tv will be able to take advantage of these speeds to bring seamless streaming.

Update: Fraiser Spiers makes the point that this may well be iOS on the new Apple TV, but nobody’s telling. Again backwards compatibility with the current Apple Tv will be telling.

Not surprised at no Apps or iOS. However, if the Apple TV runs an A4 CPU , you can bet your bottom dollar iOS will come soon. So if this is the case, I don’t think that Apple will offer upgrades to current Apple TV’s.

apple-fall-2010_0348[1]

The new price is nice. Suddenly, upgrading dosen’t look like such a big deal.

 

apple-fall-2010_0312[1]

Need i say more?

apple-fall-2010_0326[1]

Since I’m in the UK, Netflix isn’t such a big deal. But there are UK providers of on demand streaming movies such as Sky TV. And it will be interesting to see if Apple does deals with these companies.

apple-fall-2010_0319[1]

apple-fall-2010_0322[1]

The UI is almost the same. As you can see, the button to add to wishlist is much more prominent now. Which is actually a good thing.

apple-fall-2010_0337[1]

AirPlay from any iOS 4.1 device to the Apple TV sounds awesome. Exactly what content can be streamed? iTunes store only?

Its still called the Apple TV, which is probably a good thing. It is possible, however, that the name change will come when the change to iOS occurs.

So, the jury is still very much out on the new Apple Tv

apple-fall-2010_0388[1]

Thanks to GDGT for the pictures.

Why Apple will not let Flash on iOS

I just left the following comment on Dave Winers blog. He was, once again, having a go at Apple over Flash. And this particular post was a response to Grubers’ response to his original post. I’ve lost you already, haven’t I?

Anyway, this is what I said:

I don’t have an iPad, so I don’t feel the lack of Flash as much.

In saying that, what Apple have to remember is that will millions of Apple Customers convince web designers to dump flash?

Adobe tried to get Flash running on iOS but Apple stopped them.

What we’re looking for here is for some sort of compromise. Would Apple allow Adobe to deploy a completely custom Flash build on iOS, one that removes some UI headaches (such as the mouseovers that Steve always talks about)? Would web devs actually use such a thing ( remembering that the whole premise of Flash is to write once, run everywhere)?

What if the whole reason that Apple is doing this is to give HTML5 a running start?

So, if we are going to ask if Apple is winning and losing, we need to define exactly what “winning” and “losing” actually is. Does Apple win when HTML5 becomes dominant? Does Apple win when Adobe shutters Flash? Does Apple win when iOS only Flash-less sites spring up everywhere?

OF course, for Adobe, they win when Apple lets Flash in any form on to the platform. Adobe even win when Apple lets Adobes translation tool run.
What we can say for certain is that thus far, lack  of Flash has not hurt Apple very much.

Later, it occurred to me, that there could be another reason for Apple to leave Flash out of iOS.

Consider. Most of the worlds advertising is Flash-based. And without Flash, there is no way for people to view those adverts.

So, what does Apple come out with, but their own advertising platform.

So, Apple just locked out most of their competition in the advertising space, giving their own platform a running start. So, this means that all those advertisers have to come to Apple (or Admob, but thats a footnote) to get their adverts some views.

Apple giveth and Apple taketh away (reverse that).

Also, when one thinks of Hulu and other sites that primarily use Flash as a delivery mechanism for content, not having that option means that delivery of said content to iOS users has to go through either the iTunes Store, or H.264 and HTML 5.

So, keeping Flash off the iOS platform is central to Apple’s business interests. And, as I said in my comment above, Apple has yet to see significant backlash. Unless you are  ageek or a web dev, nobody says “I ain’t buying Apple till they support Flash”.

In fact, until this back and forth erupted between Winer and Gruber, I completely for got there wasn’t Flash on iOS. Why was that? Because web designers and developers have been making thier sites iOS friendly for years.

Even if you take the view that Apple isin’t winning, it certainly isin’t losing either.