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.

YouTube Symphony Orchestra 2011

Again in the spirit of truly random things, the YouTube Symphony Orchestra is doing it again in 2011. This time at the Sydney Opera House.

I so enjoyed last years concert from Carnegie Hall that I still listen to it (their performance of Brahms No.4 3rd movement is brilliant).

Here’s a taste of next years concert with an example piece from the London Symphony Orchestra with Micheal Tilson Thomas conducting.

Its called “Mothership” by composer Mason Bates.

Enjoy:

Hitting a home run in a Chilean Mine.

The capsule carrying a rescued miner arrives to the surface from the collapsed San Jose mine where he was trapped with 32 other miners for over two months near Copiapo, Chile on Oct. 13, 2010. (AP Photo/Roberto Candia)

(picture from the Big Picture Blog’s constantly updating post)

By now, everyone has seen the awesome pictures of the (currently on going rescue) of the Chilean miners.

The Phoenix capsule, built by the Chilean Navy and partly designed by Nasa is a remarkable feat of engineering. The fact that it works, not just the first time, but the 23nd time and counting is astounding.

As a programmer – where engineering software is my day job – it puts things into perspective.

Very little of what I write works the first time (or the 23nd time, for that matter). I can’t imagine what it would be like to have to engineer something that 33 lives (more if you count the rescuers who went down in the capsule) would depend on, never mind that little intsy bitsy requirement of having to work the first time. The pressure must be immense.

I take off my hat to those engineers.

Earlier this week I listened to Episode 5 of This Developers Life. The episode is entitled simply “Home Run.”

That and these awesome, moving, emotional, heart-wrenching scenes got me thinking.

The home run those engineers just hit out of the park (I’m mixing sports metaphors up here, aren’t I?) with the Phoenix Capsule will be told and retold as if they were Babe Ruth legends.

In truth, it is a feat far, far more awesome.

Windows Azure Feedreader Episode 6: Eat Your Vegetables

A strange title, no doubt, but I’ll explain in a moment.

Firstly, apologies for the delay. I’ve been busy with some other projects that couldn’t be delayed. And yes, I have been using Windows Azure Storage for that.

I’m doing some interesting work with Tropo, the cloud communications platform. It’s similar to Twillo. So, at some point I’ll do a screencast – my contribution to the lack of documentation for Tropo’s C# library.

This weeks episode had the stated intention of testing the Opml upload and storage routine we wrote back in Week 4.

We manage this, reading in the contents of the OPML file, storing the blog metadata in Windows Azure tables and the posts in Blob Storage.

However, in getting there, we have to tackle a number of bugs. Truthfully speaking, a few could have been avoid earlier – such as the fact that calling UrlPathEncode does not remove the ‘+’, and so IIS7 freaks out as a result (e.g. when blob names are used in URLs).  Others, I had no idea about – like the requirement for only lowercase blob container and queue names.

Which brings me to why I’ve named this episode as such. Dave Winer wrote a brilliant post earlier this week about working with Open Formats. To quote him:

1. If it hurts when you do it, stop doing it.

2. Shut up and eat your vegetables.

3. Assume people have common sense.

Number 2 says you have to choose between being a person who hangs out on mail lists talking foul about people and their work, or plowing ahead and making software anyway even though you’re dealing with imperfection. If you’re serious about software, at some point you just do what you have to do. You accept that the format won’t do everything anyone could ever want it to do. Realize that’s how they were able to ship it, by deciding they had done enough and not pushing it any further.

So, this episode is about doing exactly that – shutting up about the bugs and getting the software to work.

The fact is that every episode so far has been about writing the foundations upon which we can build. The bugs solved in this episode, mean we have few problems down the road. We have been immersed in the nitty gritty details, rather than build with out having to worry if our feed details are really being read and stored, or if our tables are being created correctly, or if blobs are being stored in the right containers.

Enjoy (or not) my bug fixing:

Remember to head over to Vimeo.com to see the episode in all its HD glory.

A word about user Authentication. While I don’t cover it in the video, I’ll be moving to use Google Federated Authentication over Windows Live ID. So for next week, I’ll have the Windows Live Stuff removed, and we’ll be using Google and the Forms Authentication integration the dontnetopenauth library provides.

Next week, the order of business is as follows:

  1. Clean up our view HTML
  2. ViewData doesn’t work in a couple of places – so we need to fix that
  3. Store user subscriptions.
  4. Make a start on our update code

PS. I added new pre-roll this week as an experiment. Hope you like it.

Coming to a realization

I was doing some work last week with tropo, the cloud communications platform.

To start myself off, I did a quick IVR app – “Welcome to X, please press 1 for y….” etc.

That took a couple of days to get working properly. Literally, this is 5 lines of code with the Tropo C# API. And it took days.

But I got there in the end.

Then, the current screencast series is progressing well. I was reviewing things and it does seem that its getting a little slow and tedious. Episode 6, hopefully out tomorrow, may well be the most tedious.

But it struck me that there was something in common with both projects. Both are going slowly, tackling problems one step at a time.

In contrast, there are other projects of mine that promised loads, but never went anywhere. like my WHS2Smumug add-in. there reason was simple – I tried to do too much too quickly.

Thats somewhat the trouble with being a software developer. They say that genius is like lightening across the brain. And when I get an idea, I tend to see the whole thing, the entire feature set. I see all the plumbing required to get these things working, and before I know it, I’m immersed in a thousand and one technical details about standard and formats and API’s – to paraphrase the Big Bang Theory, its chaos in my head.

But because  I tend to do that too often, I bite off more than I can chew.

This screencast series has really slowed down the pace of development, forcing me to consider issues and problems one episode at a time. In a sense, I’m taking small bites and chewing them thoroughly.

Like writers and musicians, software developers need to find their own style, their own rhythm. I guess I’m still finding mine.

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.