2 Month Notice

Well, technically it’s been more than 2 months since I joined my new workplace, but I guess it is high time I gave an update as to what I am up to.

As expected from working at one of the top tech companies in the world, there is a lot of work (and fun), but there is a great potential for learning as well. And man have I learned a lot!! In my first month here, I worked on a Windows 8 Modern UI app and understood the architecture of building a Modern app hands-on. Not only that, but I also had to integrate the app with a web service using Javascript (which, by the way, is my weakest programming language), and after a lot of fumbling in the dark, I can now bend JS to my absolute will (Evil laughter)!!

In my free time, I got together with a senior of mine, Prakhar Gupta, who works at the same company albeit in the Bangalore office, and quickly coded up a Windows Phone 8 app. The app basically acts as a birthday reminder for all those like me who are poor at remembering dates. Expect to see the app in the Windows Marketplace soon! Along the way, I have also been drawn to Cloud Computing, thanks to the amazing Windows Azure (they have tutorials on creating Android apps with an Azure back-end), and hope to soon gain certifications in Cloud Computing. This along with some other projects that I really can’t talk about (Non Disclosure Agreement, you see) have made my life coding bliss!!

Oh, and did I mention that I have also started development on the Leap Motion? Expect to see more on that and Kinect development in my next few posts. This is from a practical standpoint. From a knowledge standpoint, I am learning everyday. I have learned about good design and best practices while coding in C# and am also re-exploring functional programming with F#. SQL and database querying now seem to come more naturally than ever, and I have also started looking into query execution plans to further optimize my SQL code. I have also been trying to read up on the Common Language Runtime (CLR) which so far looks great with the way the CLR handles managed modules and the variety of support provided for different languages, but with all the work and coding going on, I am having a hard time actually removing time for myself to read more. Will have to stretch more on the reading front!

In the pipeline are some more apps (maybe on Android?) and reading papers and texts on NLP (for WishWasher) and Computer Vision (which is still my favoured field). I do seem to be loaded with work, but hopefully, I will keep inventing things and inspiring you to try new things. Keep an eye out for more on this domain.


Android: A Beginning

Well, it seems I have finally done it! Amidst a busy senior year schedule, I have finally managed to dabble a bit in mobile computing and Android specifically. It wasn’t clean, it wasn’t straightforward. Reason: Maybe it was the book I was reading, but the paradigms of mobile computing are significantly different from your normal desktop power machines. I actually spent more time reading up on how the new limitations of mobile devices impose unique restrictions on us that prompt us to look at solutions differently. Kinda like parallel programming (more on that soon!).

You could say that my foray into this field started very dryly, like studying theoretical computer science even before you can write a single line of code. While the inverse is abundant (many programmers aren’t even aware of the subject), this approach is good and bad. Good, because I understand the philosophy I need to follow to write good apps for these devices without resorting to premature optimization – the root of all evil. Bad, because it was boring and delayed my explorations significantly. Yes, I said boring as in drab, dull, bugging! I had way more fun making the app rather than reading on why Android is a great software platform. The only reason I continued reading that book is because it was highly recommended and covered almost all aspect of Android, including location-based services. Well, enough of the cynicism now, eh?
My first app was a real goody! I had an idea for an app way back in 2010, but never got around to coding it up – till now that is! A simple friend arrival notification system that uses your and your friend’s location to help you co-ordinate better, it is by no means trivial and I am still far away from a release version (blame my final year college schedule 😛 ). The basic structure is up and running both on the emulator as well as my Android phone, so it seems that the app is heading the right way. Will definitely keep you posted on any new insights.

Better was the next day, when I had a free afternoon and decided to do a quick hack! I had promised a girl an app for playing the famous Name-Place-Animal-Thing game, and that is exactly what I ended up making. A simple app, it displays a new character each time you press a button. Not spectacular, I know (what can you expect from a noob in just 1.5 hours?), but I have a tower of improvements for that app as well and it will hopefully see the light of day soon.

Finally, what I really want to put across is that Android is cool and it is fun. Being free (as in free beer), it was a cinch to setup and the integration with Eclipse is the icing! The best part now is, I can not only skip some pages in the book I was reading, but I now have a new platform to experiment on and the possibilities are currently limitless. My Senior project on Facial Expression Analysis could become a mobile app for all you know! 😀

Till next time then, eat-sleep-code! Eviva!!