Posts Tagged‘image’

Just One More Curiosity Descent Video.

I usually reserve these kinds of things for a quick tweet or Facebook post but I figured it was time I actually explained the creation of these particular videos. Shown below for your viewing pleasure is yet another Curiosity descent video that makes for some incredible watching:

For starters the first thing I’ll let you in on is that all the sound you hear in this video is 100% fake as Curiosity does not have a microphone on board. That may seem strange, I mean what camera that can take video doesn’t have one, but they’ve launched craft to Mars with microphones before (the Mars Polar Lander was one, although it was tragically lost, with the Phoenix Lander being one that actually made it) and the recordings made back then weren’t particularly interesting. Most of the noise that they recorded was akin to static and really didn’t have much use scientifically so future Mars craft like Curiosity don’t carry them so they can use the payload space for more experiments. Additionally the actual sound would probably be a lot more harsh (ever heard a microphone in high wind?) as at this stage Curiosity was rocketing towards Mars at a pretty decent rate.

The original video, shown here, is based off the images from the MARDI camera that’s on the bottom of the rover specifically for this purpose. Now I’ve heard differing reports as to what the actual frame rate was as the original video says it’s somewhere on the order of 2 FPS (297 images over 150 seconds) but most are quote as saying its 4FPS. The imager itself is capable of doing up to 10FPS but I don’t believe it was for this particular video. How then, you might be wondering, do they manage to get something like 20 FPS like the video does above? Well the original video is probably the best candidate for something called Video Interpolation (or inbetweening as its usually referred to).

In essence the additional frames are generated from the frames either side of it and the algorithms are essentially guessing what’s going to come next. For the MARDI images this works quite well as the amount of change between frames is quite low and thus the interpolation between frames looks quite good.  Most of the better ones of these also have a lot of hand work with them as well to smooth out some things (like the heat shield falling motion). If there’s a lot of action between frames you tend to get smudging  which you can actually see hints of in the video (look at the landscape shifting about as it gets closer). It works on any kind of video too and a lot of enterprising YouTubers use it in order to get that slow motion effect without having to spend the untold thousands on high speed video cameras.

I find the videos interesting both because of what they are (technical achievements in both their creation and interpolation) and what they represent to us as species. The response to the Curiosity videos has been nothing short of amazing and it makes me so happy to see so many being inspired by it. It’s things like this that spur on the next generation to become the kinds of people capable of making things like this and it never fails to impress me time and time again.

Necessity is the Mother of Invention.

I’ve been developing computer programs on and off for a good 7 years and in that time I’ve come across my share of challenges. The last year or so has been probably the most challenging of my entire development career as I’ve struggled to come to grips with the Internet’s way of doing things and how to enable disparate systems to talk to each other. Along the way I’ve often hit various problems that on the surface appear to be next to impossible to do or I come to a point where a new requirement makes an old solution no longer viable. Time has shown however that whilst I might not be able to find an applicable solution through hours of intense Googling or RTFM there are always clues that lead to an eventual solution. I’ve found though that such solutions have to be necessary parts of the larger solution otherwise I’ll just simply ignore them.

Take for instance my past weekend’s work gone by with Lobaco. Things had been going well, the last week’s work had seen me enable user sign ups in the iPhone application and had the beginnings of an enhanced post screen that allowed users to post pictures along with their posts. Initial testing of the features seemed to work well and I started testing the build on my iPhone. Quickly however I discovered that both the new features I had put in struggled to upload images to my web server, crashing whenever a picture was over 800 by 600 in size. Since my web client seemed to be able to handle this without an issue I wondered what the problem would be, so I started digging deeper.

You see way back when I had resigned myself to doing everything in JavaScript Object Notation, or JSON for short. The reason behind this was that thanks to it being an open standard nearly every platform out there has a native or third party library for serialising and deserialising objects, making my life a whole lot easier when it comes to cross platform communication (I.E. my server talking to an iPhone). Trouble with this format is that whilst it’s quite portable everything done in it must be text. This causes a problem for large files like images as they have to be changed into text before they can be sent over the Internet. The process I used for this is called Base64 and it has the unfortunate side effect of increasing the size of the file to be transferred by roughly 37%. It also generates an absolutely massive string that brings any debugger to its knees if you try to display it, making troubleshooting issues hard.

The image uploading I had designed and successfully used up until this point was now untenable as the iPhone client simply refused to play nice with ~300KB strings. I set about trying to find a solution to my problem hoping to find a quick solution to my problem. Whilst I didn’t find a good drag and drop solution I did come across this post which detailed a way in which to program a Windows web service that could receive arbitrary data. Implementing their solution as it is detailed there still didn’t actually work as advertised but after wrangling the code and over coming the inbuilt message size limits in WCF I was successfully able to upload images without having to muck around with enormous strings. This of course did mean changing a great deal of how the API and clients worked but in the end it was worth it for something that solved so many problems.

The thing is before I went on this whole adventure had you asked me if such a thing was possible I would’ve probably told you no, at least not within the whole WCF world. In fact much of my early research into this problem was centred around possibly implementing a small PHP script to accomplish the same thing (as there are numerous examples of that already), however the lack of integration with my all Microsoft solution means I’d be left with a standalone piece of code that I wouldn’t have much interest in improving or maintaining. By the simple virtue that I had to come up with a solution to this problem meant I tried my darnedest to find it, and lo I ended up creating something I couldn’t find anywhere else.

It’s like that old saying that necessity is the mother of all invention and that’s true for both this problem and Lobaco as an idea in itself. Indeed many of the current great Internet giants and start ups were founded on the idea of solving a problem that the founders themselves were experiencing and felt that things could be better. I guess I just find it fascinating how granular a saying like that can be, with necessity driving me to invent solutions at all levels. It goes to show that embarking into the unknown is a great learning experience and there’s really no substitute for diving in head first and trying your hardest to solve an as of yet unsolvable problem.

Who you are Online.

The first five minutes you spend meeting someone make an impression that is hard to change once they’ve made up their mind about who you are. Show up to a professional interview these days in anything less than a suit and tie you’ll probably find yourself walking out of there with not a whole lot to show for it, no matter how well you fit the job. If you start with a solid first impression it is much easier to convince people of your way of thinking, whether that be giving you a job or inviting you up to their boudoir.

The same can be said for your online profile. In essence this is the parts of yourself that you have either purposefully put up there, social networking or otherwise, or have been put up there for you. Whilst it is still a new practice many employers now screen employees through a quick Google search, a hunt around Facebook or other social networking sites and then do the traditional call up to your referees. It’s that first look up of you online that could sway an employer one way or the other, and whether you think that’s fair or not is really beside the point.

I’ll be honest and say when I first thought of this blog I thought it would be a great platform to launch myself from professionally. There’s nothing better then handing a new potential employer or client a business card with your website address on it because, guaranteed, they’ll look it up to see what kinds of things you get up to online. Unfortunately for me, employers who overlook the card and go for a straight Google will probably find my Facebook page long before they find this, since it seems to come up at the top of the results all the time (Yes, yes Googling yourself is sad. But you knew I was a geek before you got here, right?).

Just like the real world though it’s not like this isn’t a manageable part of your professional and personal life. Really it’s all about putting on that suit for your online personality. The general sentiment I get from other people is that they feel Facebook is some kind of secret safe haven away from all the dangers of the Internet where they can bare all and not face repercussions because of this. When in reality, you should really treat it as you would in real life, if you wouldn’t want to share something would you really give them access to it?

I guess I’m fairly lucky when it comes to my online personality. The first two links are for Facebook and LinkedIn, which is probably what I want most of my employers to see first. My friends and I have an unspoken agreement where we don’t put up potentially damaging or criminal content (not that I’d have any of that anyway! ;)) and LinkedIn doesn’t really give you any avenues to make a complete fool of yourself. Going through the rest of it there’s a couple things from back in my programming days on google groups, and some references to other Klemkes around the world.

So treat your online self as you would your real self. Buy it a suit, let it go and party but make sure those two things don’t cross unless you want them to 🙂