Category Archives: My life

Why do youngsters get so much gratification from virtual games? Why do so many of us consider the world of these games to be just as big, if not bigger, than our real lives?
Why did I feel so much more of a rush playing an online game when I was younger, as compared to now?

Case in point – 15 yr old me obsessing over Tribal Wars vs. 22 yr old me picking up the game after a 6 year hiatus.

The younger me was literally obsessed with playing this online game at every chance I got. I’d get up early in the mooning, rush home after school, and even stay up till late in the night to play this strategy – based game. The me now got reminded of it by a classmate from school, and decided to give it a shot. Somehow, the excitement levels just aren’t the same. There is nostalgia, but not that passion which was bordering on addiction.

I’d like to think it’s because now I know/realise there are bigger sources of accolades, more meaningful sources of that rush than such games and the achievements that come along with them.

I guess as we grow older and wiser, our view of the world expands. We understand more things, realise more truths, accept more facts than before.

While the gratification that a game offers is constant (level up a character, successful attacks, more resources, etc.. ), to the 13 year old who’s engrossed in the world of his/her favourite computer game, these sources of gratification means so much more than to someone who has more avenues of his/her real life that can provide a similar sense of good-feels.

Thank God I’m Alive #1

Starting today, I’ve decided to maintain a periodic series of blog posts whose primary purpose is to identify and appreciate the many things in my life that I should not take for granted.
So here goes..



 I’m a fresh college graduate with a degree and a job. 

They say it’s hard to appreciate things that are too close to you to notice, and this may be one such thing for me. While I am inclined to feel bad about myself for not being to land other high-paying jobs that some friends have (you know, because at this age.. “Dem dolla$ = Da life! ” ), it’s an achievement in itself to HAVE a job right after college.

It is a sobering thought to think about the thousands of young bright minds around the world who have walked out of their universities with pieces of paper justifying their massive capabilities.. Yet not convince even one employer to give them the opportunity to prove it.

Henceforth, I will try even harder to appreciate and not envy the statuses and situations that my peers are in. We’re all fortunate in our own way and that’s it, really.

Down the rabbit hole, into the world of OpenCV..

Sprint 13

Up till now, my main points of focus in the FYP have shifted from one to the other in the following progression – design and development of Scope’s User Experience, development on a Visual Studio version of the app that runs a specific task, and testing of ScopeMate (a simplified version of Scope that ran Tesseract with basic pre-processing on-board).

A discussion among the team made us realise that the app requires a further restructuring of its workflow.

Scope Workflow v2.0
Scope Workflow v2.0

With this new workflow in mind, I decided to focus my energy more towards developing the Template Matching algorithm. To do this, I had to get familiar with OpenCV..


OpenCV is a cross-platform library of programming functions mainly aimed at real-time computer vision, developed byIntel, and now supported by Willow Garage and Itseez. It is free for use under the open source BSD license. It focuses mainly on real-time image processing. We are using some of the  OpenCV functions in the pre-processing stage of Scope.

Some examples of the functions of the OpenCV libraries we’re using include – Brightness, Contrast, Gray-scale, Template Matching, and Thresholding.

Template Matching

Template Matching is a technique in digital image processing for finding small parts of an image which match a template image. In Scope, template matching serves the purpose of identifying whether the given card is actually an NUS card by verifying the picture with a template of the NUS logo and comparing it to the picture. As such, this function serves as a check for the app to find out whether the card is an NUS business card or not.

This information will help accelerate the rate of processing and improve the accuracy of the results obtained from the OCR engine.


Being entirely new to OpenCV, it is taking me time to understand the purpose and  working of the various functions in the libraries. Furthermore, I had to apply these functions in the development of an Android application. This has proved to be a challenging yet rewarding learning process at the same time. While there are compilation errors that show up every now and then, working on this part has been fun because not only is it building my understanding of OpenCV, it’s also reinforcing my knowledge of Android development.

Looking forward to developing the template matching function to its entirety by the next week!

Getting hands dirty with code blocks and wireframes..

Sprint 2

In this Sprint, I dealt with Visual Studio coding environment in efforts of developing an eventual WPF application that would become the base for the desktop version of the app. The complete ecosystem of our app consists of the mobile app, a cloud interface to sync all the info to, and a desktop app with enhanced functions. I took up the task of developing the desktop app, and in this sprint I experimented with the Tesseract engine and its application in a WPF app.

Many tests and iterations of the code have yielded some promise, but the main issue I’m still facing is the error being thrown by the system about the Tesseract’s illicit access of some restricted memory. After breaking my head over this problem and trawling all over the internet about this issue, the problem turned out to be a persistent one. The most immediate solution is to repack the entire Tesseract engine library in a .NET wrapper, which acts as a bridge between the native code of the engine and enables the WPF app to call certain APIs.

So far, I’ve researched on how to carry this out and will start the process of packaging in the coming days.

Sprint 1

Sprint 1 saw me brainstorming, conceptualising and wireframing different UI designs for the app. This process required a  brainstorm and denotation of features and functionality that were available to the user. Eventually, it boiled down to 3 different designs. These were then examined and discussed upon by the team and we decided on one of them.

I had to revisit the wireframes after the discussion so as to comply with the Android User Experience Guidelines. The folks at Android have released some design principles and guidelines on designing the user interface and experience of a mobile app, and it is our imperative to conceive and materialise our app as per the guidelines given.

First steps into the waters..

So I’ve been given the opportunity to work with an amazing team of guys – Aravindh, Salman and Varun – on a pretty interesting project.

The task – Develop an Optical Character Recognition engine and make a useful application with it.

The tools givenTesseract, an open-sourced OCR engine invented by HP and developed by Google.

Our aim – A mobile app that incorporates this engine to read contact cards and save the information on the device, and in the cloud.

A tough task, a high target, an incredible team – all the right ingredients are in place.

Time to make the magic happen.



We’ve decided to break down our tasks and achievements for every week into Sprints. Each Sprint covers a the coming week’s objectives  to be covered.

Sprint O

In this Sprint, I was tasked with learning the C# and ASP.NET programming languages from scratch. Although I have prior experience working with C and C++, C# and ASP.NET are whole new languages with different type of functionality and I had to conquer this in order to be able to work towards tinkering with the Tesseract engine and designing the Cloud web interface. We had decided to work towards developing an app for the Windows Phone OS and my job as desginer of the app required that I brush up on using Expression Blend too. Also, I was tasked with composing and compiling the Literature Review about existing OCR technologies and Tesseract in itself.

In short, the first week was mainly a week of research and learning. Looking forwarrd to the next Sprint.

Final Year Pensiveness

I’ve arrived at the last leg in my engineering degree. A point where all the prior years of teachings suddenly seem to make some sense in the bigger picture. A point in time where I’m looking towards things like getting a job, leaving my mark at the university (figuratively, that is) etc..

But first,  the Final Year Project. Detailed below is my progress in working with a great team in what seems to be a exciting project. Let’s hope the outcome turns out to be as awesome as I hope it is..