Just another flash platform blog 

Reinventing: reinveniting-the-wheel

July 4th, 2009 Posted in General | No Comments »

Reinventing-the-wheel gets a bad wrap.

If you’re a freelancer working for a client or a developer on the books, spending time solving a problem that has been solved many times before will no doubt be met with disapproval by those holding the purse strings. And indeed, if you are being paid a rate for a whole job finding open source / free code just means you can get paid and move onto the next job all the more quickly. “Time is money” after all.

So when can reinventing-the-wheel be a good thing? Or put another way: Why are so many problems solved so many times over?

Well I suppose the first thing is perhaps the problem was solved by different people at roughly the same time unaware that someone else was doing the same thing. Ok thats fair enough and if the code is proprietary and beyond budget, its easy to see how more similar free solutions become available.

Taking these situations out of the equation I still maintain re-hashing existing solutions is a good thing. I give three reasons below:

  1. Improving upon earlier attempts
    Ok this is another obvious one, but perhaps you’ve seen other attempts and think you can do better. If you’re the community minded guru then perhaps this is enough, but what about more selfish reasons?

  2. For fun
    Sometimes coding something your way (regardless of the quality of the implementation) can simply be a fun way to spend time. If the typical solution space of your day job is a bit dry (I’m lucky on that score at least) then coming home and writing games or making pretty effects for other devs to swoon over can be rewarding even when you know your work isnt original.

  3. For study
    For me, this is the main motivation. My day job invariably sees me in technical meetings or writing specs for other developers to follow, so I get less and less time actually at the coal face. So coming up with ideas targeted towards a particular coding methodoloy, framework, design pattern or key language feature is a great way of keeping touch with whats happening. Working in any area of IT inevitably means devoting some personal time to study, this is no less the case in software development. Coding up a useful util or making available a fancy widget keeps your hand in. Study is further helped if you can compare your solution with existing ones. Learning how something can be done better is more effective if you’re already intimate with the challenges it brings up.

If you get as far as making your “wheel” available to other people (and providing your wheel doesn’t turn out square!) then a little bit of peer kudos cant hurt either. Add to that the warm feeling you get when you tell your client you’ve already written just what they’re after and reinventing-the-wheel can even be good for your bank account too!

Share/Save/Bookmark

BBC Media Widgets

June 20th, 2009 Posted in AS3, Flash | 1 Comment »

Just a quick update on what we’ve been working on in the BBC Media Player - we’ve introduced a new product range called Media Widgets. The first of which (below) is a collection of clips from the recently concluded series of The Apprentice.

For the Media Player this means we’ve built an API into some of our core playback functionality as well as exposing a rich event model. Since our current Media Player is written in AS2 and new products are being written in AS3 we had to create a LocalConnection hook into the API. The Collection widget below written in AS3 (incidently using pureMVC) invokes playlist traversal via the API on the Media Player when clicking on the list selector - pretty cool stuff!

Not only can BBC products consume the API “FLash-in-Flash”, but the API is also exposed to JavaScript. You can see this in action in the latest release of BBC iPlayer. One of the new pieces of functionality is being able to send “clips” to your friend with a short url (similar tinyurl.com or snurl.com). You can opt to send the whole programme or you can chose to select a start point which your friend can watch from (Will we see lots of links through to continuity errors thanks to this feature? :) ) - part of this feature is consuming playback progress events from the Media Players event model.

Expect to see lots more uses coming and keep an eye out for some creative uses of the API on many new and existing BBC website pages.

(note: currently the API will only work when the Media Player is embeded on a BBC domain)

The Apprentice collection widget:

Share/Save/Bookmark

I’m going to be a dad again!

April 22nd, 2009 Posted in General | 3 Comments »

Now I have an excuse for missing my blog target on January (see http://blog.barncar.com/?p=201), I was busy playing my part in conceiving our second child. Having Billy has been the best thing ever so having a little brother or sister for him is going to be amazing - unbelievably knackering, but amazing.

We must be mad! w00t!

Share/Save/Bookmark

Big new release for BBC iPlayer

April 22nd, 2009 Posted in Adobe AIR, Flash, Flash Media Server, General | 2 Comments »

Before I go any further if you are interested in the whats and whys of this latest installment of iPlayer functionality then you can do no better than reading Anthony Rose’s blog on the subject.

Now since I’m not one to post a link without any further comment I’ll try and add something from my perspective hopfuly without giving too much away and getting myself in trouble!

Its a big release in many ways not least in the sheer amount of effort in getting this one live from the encodings, to back end systems, to the website, the Flash client and the test teams (and many more Im not aware of no doubt - sorry!).

Since I tend to blog about (and develop on etc) the Flash Platform I guess there are three things in the latest release that are most pertinent to comment about: HD, Adaptive bitrate switching and iPlayer desktop.

For the Media Playout team the implementation of HD has been less about new code since we already provide robust playback of all the supported codecs. For us its been more a case of testing and optimising what we’ve got. The Flash Players hardware scalng in fullscreen really helps here. Even if your ISP package gives you enough bandwidth to stream the 3.2mbps bitrate the CPU requirements are not insignificant. So taking that into account we have made the start button for HD launch you straight into fullscreen which will give you the best possible experience. Having said all that if HD is a little much for your computer the next best encoding at 1.5mbps is pretty close to what you’d expect from normal non-HD TV. You can play back the 1.5mbps content by clicking on the new size option and selecting the large size… which leads me on to adaptive bitrate switching.

There are two ways the BBC Media Player can switch the media you are playing back to give you the best experience. Firstly, when you change the size of the player it looks for a stream whose resolution best fits the size that you’ve gone to. By ensuring that the resolution of the media encode is at a 1:1 ratio with the size of the playback portal the player ensures that the minimum amount of processing is required to stream the available bitrates… namely for iPlayer this is 1500kbps and 800kbps. The other way the BBC Media Player can switch your stream for the better is by monitoring how well your connection copes, if it detects that theres been alot of buffering going on it switches you down to the next best encode available.

Anthony Rose alludes to “Adaptive Bitrate, Phase one”, so as you might expect we are planning a phase two, as Anothony says this will also switch you up as well as down the bitrates, matching your changing network conditions, taking full advantage of all the new Flash Player 10 and FMS 3.5 functionality.

The final big news is that the BBC iPlayer Desktop is now out of Beta, so if you have no time to watch all that HD content on line you can download it and get 30 days to watch it at your leasure. Being built on the Adobe AIR runtime its probably been as big a thing for Adobe as it has for the BBC in exposre for the runtime.

Thats about it, feel free to ping me on twitter with your praise, adulation or (if you like) stories of woe

Share/Save/Bookmark

Embed BBC news with BBC Media Player in your site

March 12th, 2009 Posted in General | No Comments »

BBC news now allow embedding of its video and audio stories on non-bbc websites, this is great for news and for the player.

We’d built this functionality into the player a while ago but getting the rights and T&C’s aggreed upon has taken a some time. Its a great step towards extending the profiliferation of the BBC Media Player which is already becoming the defacto media player across the BBC (including BBC news and BBC iPlayer and many more).

Read more here

Share/Save/Bookmark

Not quite once per month

February 22nd, 2009 Posted in General | 2 Comments »

Not one month after celebrating how I had managed to keep my (at least) “one blog-per-month” promise to myself, I managed to go the whole of January without blogging at all.

It’s just been really hectic what with Christmas & new year visiting freinds and family, my son being unwell and work being very busy; finding time for blogging has not been easy. Anyway, at least I can now find the time to blog about why I have no time to blog… excuses come easy, decent content for blog posts, less so :) .

So whats been happening? We’ve had a couple of releases of the BBC Media Player which among other things focus on reducing the likely hood that a request for media will result in an error screen. We now have the ability to find a new Content Delivery Network (CDN) if your connection to one becomes unreliable. Also added is the ability to reconnect and resume with short connectivity outages. This should help people watchin iver wireless get to the end of the show. Theres an update to the BBC iPlayer Desktop Beta too, so be sure to visit iPlayer labs if you havnt already signed up!

Also on the work front, I’ve recently been made Media Player & Media Widgets lead developer. Its proving to be a fun challenge and I’m enjoying it so far, though I have a lot less time for writing the actual code so we’ll see how it goes. Hopefully I’ll be more motivated to code at home and actually get some of those projects finished ;) .

I’ve still got a some good ideas of things to blog about, heres hoping I can find the time.

Share/Save/Bookmark