Articles in the Cool & Future Tech Category

This post will show you how to build an MPEG-DASH video player using Javascript.
tl;dr? Skip to the demo (chrome only) http://francisshanahan.com/demos/mpeg-dash.
Dynamic Adaptive Streaming over HTTP (DASH) enables streaming of media content delivered from conventional HTTP web servers. Fragments served are static pieces of media so no server-side component required. This is very similar to HLS but unlike HLS MPEG-DASH is the first adaptive bit-rate HTTP-based streaming solution that is an international standard. Reference [LINK]
The recent Build conference announced Netflix’s plan for Playready DRM+HTML5 in the browser without plugins, …

On July 4th 2012 CERN and the team from the Large Hadron Collider announced the discovery of the Higgs Boson. Since then there have been a lot of articles in the mainstream media with headlines referring to the “god particle” and a lot of hype but not much actual science. I’m not a physicist but I’ll try to summarize my understanding on what this is and how it may impact us in the short and long term.
Physics and indeed Science operates on a premise of “model” based reality. Essentially admitting …

Google is pushing for a faster web with an experimental new protocol named SPDY. Ã‚Â Although it’s not a standard yet, if you’re using Chrome or Firefox, you’ve probably already experienced SPDY. Ã‚Â After sitting for a while on my personal-backlog, I finally took Ã‚Â a closer look at what’s going on here.
SPDY needs a SPDY client (Chrome or Firefox for now) and a SPDY compliant server (Apache works fine with the addition of a simple module -Ã‚Â http://code.google.com/p/mod-spdy/). Client and Server work together to optimize performance by reducing network latency and SPDY does …

With all the recent Goruck-ness it’s time to throw out a tech post. I’ve been prepping for a NodeJS presentation recently and wanted a unique demo. I had also come across the experimental build of Opera which supports accessing the native webcam of a mobile device. So I threw these two technologies together and came up with a Javascript powered way to stream a video camera from a mobile device to a bunch of desktop (or mobile) clients.
HTML5 had originally laid out support for a new element (the “device” …

If you have not heard of Node.js (or “Node” as Ryan Dahl calls it) [LINK] it is more fun than a barrel full of monkeys and faster than stink. Node.js is built around the Google V8 javascript engine and aims to solve the issues of concurrency and blocking IO which are prevalent in todays web servers. It also improves over traditional OS threading by using an event model to handle requests. This leads to the ability to handle many more concurrent requests but also handle them faster since less memory …

Here’s a rundown of everything I ran into when hacking my way through android development.
Setup Eclipse, run the Android SDK installer, install the correct USB drivers and finally check your device setup with “adb devices”. Your device should be listed.
If you don’t have an android device, be prepared for the emulator to be extremely slow especially during startup/shutdown. Be sure to mark your emulator as “Snapshot” (accessible from the ADB/AVD SDK Manager-> Start button). Also, don’t connect your device whilst the emulator is running. Adb gets confused.
I had …

In my post on Software Agents I described some of the scenarios in which a Software Agent might be useful. Josef Betancourt [LINK] pointed me to his excellent article with some interesting ideas of his own and I particularly like his mind map [LINK]. Getting pragmatic I’ve been thinking about how to go about building these and will put down my thoughts in an attempt to move the conversation forward.
Let’s start with few design principles:

Agents should be flexible; We should be able to mix and match their functionality to …

To date, I have met only two people who actually “get” cloud computing and why it will be so transformational (Jeff Barr and Marc Mercuri). The term “cloud” is so overloaded as to become useless. What does Cloud Computing mean to you? Storing data in the “cloud”? Yawn, boring. Storing infrastructure in a data center? Sorry, we already do it. To me, one of the most compelling areas, which I have not seen in the media is…Software Agents. (warning, some blue-sky-what-if-out-of-the-box-dreaming ahead).
Software agents exist today but most are …

Irreducible Complexity – the world is too complex to have evolved! Let’s see…
HTML5 introduces the ability to perform multi-threading in the browser using Javascript through the notion of “Web Workers”. So far I have only seen examples of using workers to calculate very high prime numbers. I took a fresh look at these from the standpoint of genetic algorithms and applied it to the Traveling Salesman Problem (a classic). The results are a multi-threaded implementation of the TSP in Javascript capable of converging on a solution for up to 200 cities, …

I did some toying with Unity and ASP.NET MVC Extensions and found the documentation and number examples somewhat sparse,Ã‚Â particularly with MVCExtension. Here’s what I did to change my project over to use MVCExtensions with Unity.
Starting with a basic ASP.NET MVC2 application:

Download and build MVCExtensions from the latest Trunk (http://mvcextensions.codeplex.com/). This is important as the MVCExtension project is under active development. If you download the last stable release you won’t get support for ModelMetadata.
Add references to Microsoft.Practices.Unity, MvcExtensions and MvcExtensions.Unity.
Changed the global.asax to inherit from UnityMvcApplication
Cleaned out the global.asax and moved …