Why I Wrote a Metro Camera App

Tags: Open Source

The tl;dr version is that this is a rant about how software bundled with hardware is shit mainly because companies don't just open up the product and provide a half decent API.

I recently purchased an IP camera. It’s a standard IP camera which can be accessed through a web interface or using a custom app from the vendor.

The app requires you to sign up for a service with the vendor, which I find completely unnecessary. Why do I need an account on their system to watch video from my camera on my network? So I opted for the web interface instead. I was shocked to see that the web interface relied on either ActiveX (!!?, yes in this day and age) or Java. What’s wrong with standard HTML?

I had a look at the Windows Store (I use Windows 8.1) and there are a few apps for viewing IP camera feeds. But they all come with unnecessary ads and nagging popups to upgrade to a paid version.

Unhappy with this level of quality with the applications, I started up WireShark and had a look at which commands were sent to the camera. After performing a couple of actions in the provided stone-age interface I was able to hack the commands and put together a metro (sorry Windows Store) application which did exactly the same things - view feed, move camera and record positions.

The whole thing literally took less than two hour, including getting a code sample on how to read mjpeg streams. So when Microsoft emphasize devrloper productivity it's not empty words.

This leads me to the point of this post. I know that not everybody uses Windows 8, and there are good reason to have an app for Android and iPhone. But I see no reason to not support Windows 8 devices. Even without knowing how to control the camera, I was able to create an app in a negligible amount of time. For the hardware producer it should be no problem at all. As a developer I would obviously prefer a full API, but as a consumer I feel cheated when a company tries to give me shit. If they don't want to spend some money on their product then open it up to the community and save the money managing a worthless service.

It’s not a question of locking people in to some no-value-added service, but about letting customers use the product they bought. Nobody buys hardware because of the bundled software, so make it open and let the consumer choose the preferred interface. Or even better - publish an open source application to Windows Store and let dev customers contribute improvements.

Add a Comment

Latest Tweets