Tuesday, March 31, 2009

Fingerprint Recognition with Neurotechnology

Since our company, Mozcom, bagged the distributorship of Neurotechnology products in the Philippines, I've been spending some time understanding their software development kits (SDK) and programming models. We were introduced to Neurotech because of the Department of Health (DOH) Integrated Drug Testing Operations Operations Management Information System (IDTOMIS) project. In a nutshell, its a drug testing system where biometrics are acquired in order to accurately identify the person being tested. The developers, Qsys, used Neurotech's Megamatcher SDK for the application.

Writing code for fingeprint identification or verification is nothing new to me. I've been writing code using the DigitalPersona Platinum SDK for 4 to 5 years now, starting with a simple biometric timekeeper, and graduating into a complex client/server system called NetSecure that can support multiple input devices like RFID readers, smart card readers, pinpads, barcode readers, and controlling physical access through electro-mechanical relays and electric locks.

DigitalPersona has recently revamped their SDK. Unlike before wherein you have to buy either the Gold SDK (for C/C++ developers) or the Platinum SDK (for Visual Basic/Studio developers), now they are giving away their One Touch SDK. So I guess they're moving into the model of giving-away-the-razors-to-sell-more-razor-blades. They probably figured that with more people writing code for their scanners, their hardware sales should compensate the loss for the SDK sale. That is a big relief for programmers as the SDK was quite pricey -- about USD1,500 for the Platinum SDK.

One great thing about the DigitalPersona SDK though is its royalty-free runtime license. You can develop an application with it and deploy as many as you want without having to buy any license for deployment -- you just buy the scanner. So even though Doc T has been bugging me to learn more about Neurotech's products, I was hesitant at first because it involves runtime licenses, over-and-above the cost of the SDK. But I eventually decided to take the plunge to know more about their products -- especially since fingerprinting is getting common and I wanted to venture into facial recognition, of which Neurotech also has a solution.

Below are some of the advantages that I found developing using the Neurotech VeriFinger SDK.


  1. The VeriFinger SDK is a stripped-down version of the Megamatcher. It supports only fingerprint identification and scans about 5,000 fingerprints per second. This is actually pretty fast in comparison to the DigitalPersona (DP) SDK. With the NetSecure deployments that we've had where users numbered in the hundreds, doing a template-to-template comparison with DP SDK is really, really slow. You can realistically only use DP SDK to do brute force matching of maybe 50 templates or less. In contrast, Neurotech's performance is more of what I needed. (The latest Megamatcher 3.0 already claims a speed of 40,000 fingerprint matches per second.)

  2. The VeriFinger supports lots of 3rd party scanners. Obviously, the DP SDK only supports the DigitalPersona U.are.U series of scanners that they also manufacture. Not that there's anything wrong with these scanners. In fact, we've been pretty happy supporting the sale of DP Scanner in the Philippines as a DigitalPersona reseller. But for customers who require other brands of scanners, VeriFinger is the way to go. It supports more than 45 fingerprint scanners including drivers for Windows, Linux and Mac OS X. DigitalPersona only started supporting Linux fairly recently. The US Embassy in Manila and the Comelec are using other brands of scanners.

  3. One feature that the VeriFinger SDK has that DP SDK does not, is the ability to load a fingerprint image for feature extraction from a file. The DP SDK require that the image be captured directly from the scanner. But what if the fingerprint database is from a traditional index card system that needs to be scanned and migrated? Neurotech recommends that hardcopy prints be scanned at around 500dpi for accurate feature extraction and conversion to their template format.

  4. Neurotechnology uses their own proprietary template format. However, they provide all the necessary tools and add-ons to let your application comply with industry standards and formats (ex. NIST, WSQ). DP SDK does not provide such features. There are also several template formats to choose from -- the smallest one being only around 300 bytes, while the largest one at around 6,000 bytes. DigitalPersona templates are at around 700 bytes. While those figures are not really relevant when you are storing templates in large SQL databases, they do become important when you consider things like the Philippine governments' attempt to have a unified ID system that plans to embed the template onto a smart card chip, which are usually only a few hundred or kilobytes.

  5. And of course, if you plan to eventually support a multi-biometric system wherein you have to mix fingerprints with facial recognition, or iris recognition, then DP SDK becomes a dead-end. Neurotechnology's Megamatcher gives you that upgrade path to develop more complex systems.

Monday, March 30, 2009

Monetizing My Blog

My blog hits seem to be slightly increasing. I guess my entries are being indexed well by Google. I noticed that my niche technical articles get better hits than my regular ones -- eg. my entries on programming the Canon digital camera or writing C# code for Bluetooth. My entry on Jungle Joe and Boutique Bed and Breakfast also get good hits. I guess the more specific the topic is, the better the search engine ranking.

Well, I figure I might as well try to make a buck or two with this blog. So I clicked on the "Monetize" tab in Blogger and created an Adsense personal account. I've had one created before and its that one we use for the Philippine Basketball Association (PBA) website, which actually makes some decent money from Google ads. But since this is a personal venture, I went ahead and created a personal account. I don't have unrealistic expectations for my personal site. A tiny fraction of the PBA ads is better than nothing.

The layout "wizard" of Blogger automatically created spaces where Google ads will appear on my blog. I went for the jugular -- a long, skyscraper layout on the right panel, and a rectangular area in the body.

After adding these new ad panels, I noticed that the blog archive index section on my upper right corner became a bit more sluggish. Whereas before, clicking on the expansion arrow of any of the months would just cause some Javascript to display the entries under it without a postback; now clicking the same arrow causes the whole page to be refreshed. I don't know if its trying to get more context for ads based on the expanded article titles.

Sunday, March 29, 2009

Free Online Backup Storage

Looking for free services on the Internet that will let you backup your data remotely?  I tried out ADrive today.  It gives you 50Gb of "free" space.  The web interface is very crude.  It looks like a file manager inside a webpage.  I'm not sure if its implemented as a Java applet, but it sure feels like one.   Very un-Web-2.0-ish.  I guess you can't complain much given that its free.

ADrive probably makes money through ads, although as far as I can tell, the only banner ads there are those annoying ads for animated cursors (I wonder who actually buy those).  The thing about the interface that I hated most is if you upload file(s) or folder(s), a dialog box appears showing its progress.  The bad part about the dialog box is its modal!  That means it stays on top of your browser and you cannot do anything else without closing it first.  You can't even click on another browser tab to go to another site.  The only way to continue surfing is to open a new instance of your browser altogether!

A couple of other sites that look more polished are IDrive and Mozy.  They both offer 2Gb free space.  Anything beyond that and you would have to subscribe already.  So I guess since they have actual revenue streams, they can afford to polish their web interface.  They also have PC-based client software that will let you do remote synch in the background automatically.  No need to manually drag-and-drop files/folders to your remote backup folder unlike ADrive.  But with only 2Gb of free space, it doesn't seem worthwhile to bother registering.

Tuesday, March 24, 2009

Gmail Tasks

I tried using Gmail's built-in task/to-do list today. I have to admit that to-do list is one of the most commonly used and indispensable applet that I can't live without.

My love affair with to-do lists started with my really old Palm V. I used it mainly for its to-do list capability. Then Cols gifted me with a Palm Tungsten (which she bought from her brother). That one I mainly used for to-do list also. Somewhere in between, I also tried Microsoft's OneNote. Its a general purpose note-taker with a built-in to-do list But that one did not last long as I switched to Google Notebook for general notes entry eventually.

Then I realized that it was getting troublesome to carry both a Palm and a mobile phone. So I switched to my Nokia 6680's to-do list application. What I liked best with this setup is since my phone is practically with me most of the time, it was very handy to add things to my task list. Also, it doesn't require a stylus to type in because it can use the same txt-ing/T9 dictionary interface for input.

I tend to forget checking on my phone task list every now and then though. So at work, if I need to do several things within a day, I would jot it down on a physical notepad. With GMail Tasks, maybe I can eliminate that notepad. Since my GMail is on most of the time anyway, its quite convenient. Google Labs also claim that the tasks can be accessed via mobile (gmail.com/tasks). Haven't tried that feature yet though.

Wednesday, March 18, 2009

Airline Online Fraud

I had a presentation to a big local airline today. I tried to convince them to use our PayEasy online payment system for their online booking. To prepare for my presentation, I did some studies of the airline online booking industry and was surprised with some statistics.

According to data compiled for the Airline Online Fraud Survey between Dec. 1 and Jan. 16 in an online survey conducted by Mindwave Research in the U.S., and phone interviews by Vanson Bourne Ltd. in the U.K., the airline industry lost US$1.4 billion to online fraud. The study was based on responses from 99 airlines. Low-cost or budget airlines suffered the most with 1.6% of their online sales came from fraud. Business-oriented carriers had a lower 1.1% fraud rate due to higher screening.

While online booking is risky, its the way to go. According to the same study, as much as 33% of airline booking on the average are now done online. This was confirmed with my meeting with the e-commerce head of the local airline. In their case, as much as 40% of their business is already coming from online booking!

They said they tried some time ago to require the passenger to show the credit card used for booking upon check-in, but eventually relented because it was too much hassle. A lot of legitimate passengers apparently do not buy their own tickets with their own credit cards. There were several cases of foreigners buying tickets for their "girlfriends" to meet up some place. So obviously, asking these "girlfriends" to show the card used for purchase would be impossible.

I was hoping to integrate the payment system of this local airline to PayPal, of which PayEasy is a Channel Partner. But it seems that PayPal is also cautious of airlines and require that there be a corporate presence in Singapore (for Asia-based airlines). This is not necessarily a problem for our prospect since they do have a Singapore office. But the rates are still quite high as compared to what banks offer locally for credit card payments.

Here's a longer story regarding the survey:

http://www.internetretailer.com/dailyNews.asp?id=29784

Tuesday, March 17, 2009

Cars Can Run Without a Battery?

Our contractor (Arkikon) has been re-doing our parquet flooring at the rooms and the den the past week. Yesterday, they started on the master bedroom so we slept at the guest room last night. The kids have been sleeping here last week because their room were sanded/polyurethaned first. The airconditioning at the guest room is quite cold. Maybe its because the room is smaller than the master bedroom.

Anyway, I had a presentation scheduled this afternoon with a local telco. I was offering our PayEasy, Untangle and NetSecure Lite product lines for possible bundling with their data services. As I was wrapping up my slides for saving to my flash drive for the trip, I got a call from Cols telling me that our CRV is stuck at Puregold and wouldn't start. I normally drive the CRV to work, but for some reason, used the Altis today.

So from Peak, our sales manager, Michelle went with me and we stopped over Puregold at Shaw Blvd. where driver Ado and Marlene were waiting for assistance. We tried the jumper cables to no avail. I walked over to the Shell station across the street and asked for assistance from their in-house mechanic. The guy said the cable we have is too small for an SUV that's why it couldn't power up the dead battery from the other car.

What he did next was surprising to me. He took the battery of the Altis and inserted it into the CRV. Then he started the car. As expected, the CRV roared to life because the Altis battery is good. Then while the CRV engine was running, he removed the battery! I didn't know that was possible. It turns out that you only really need the battery to start the car. But once its running, the fuel-based engine already takes over. He returned the battery to the Altis and off we went to my meeting while the CRV went to ICA to fetch Caitlin.

I was a little late for my presentation (about 15 mins late). Thankfully, there was no traffic in Ortigas >> EDSA >> White Plains >> Katipunan. It was a good 2-hour long presentation with me talking all the way. Hopefully, some good business will come out of it.

Thursday, March 12, 2009

The Andromeda Strain

I watched the 2008 remake of the movie adaptation of Michael Crichton's 1969 bestseller of the same title, The Andromeda Strain, a couple of weeks ago. Unlike the original 1970 screenplay, the 2008 version is a 2-part made-for-TV adaptation. Part 1 was pretty interesting and kept me glued on to my seat and couldn't wait how things unfold in Part 2. Part 2 was ok although there were lots of things that did not make sense (why did the Chinese doctor die after cutting Hall's finger and throwing it to Stone?).

Since I couldn't figure out some parts of the movie, I googled the web for some comments or explanations. I came up with some pretty bad reviews of the 2008 version from people who have watched the "classic" 1970 version. I'm not much of a classic movie person (no, I don't watch Turner Classic Movie channel). But the reviewers were ranting how the 2008 version failed to live up to the suspense and drama of the original. So this got me curious enough to try and download a copy of the 1970 version from BitTorrent.

Well, I finally watched the 1970 version tonight and ... well, it was pretty darn boring! 1970's acting is pretty lame. Understandably, the effects and props are very corny by today's standards. But I did not find the story-telling portion any more compelling than the 2008. In fact, I almost fell asleep watching it.

Given that the novel was originally written in 1969, the 2008 version had to do with a lot of improvisation to make it in tune more with current events -- like having a Department of Homeland Security, references to the 21st century war on terrorism by the US, etc. Whereas the original 1970 movie (and probably the 1969 book) never really explained where the virus came from other than it was just snagged off by a satellite in outer space, the 2008 version tried to explain it as -- get this: a virus sent from the future through a wormhole, as some sort of warning to the past from destroying a deep sea species called Bacillus Infernus (very Star Trek-ish). The habitat of this bacteria is apparently at risk with the US President's backing of a private company that is doing some sort of deep sea mining.

The 2008 version also made references to the structure of the object brought home by the satellite as being that of a buckyball. Buckyballs were not discovered until 1985, so its definitely a new addition to the story line.

This is not to say that I'm arguing the 2008 version is great. It has too many subplots which ended nowhere -- like the psychologically troubled wife of Dr. Stone (in the 1971 movie, Dr. Stone was married to a senator's daughter); the rebellious son; the takeover of the drilling platform by the "Greenpeace"-like group. The cast of characters led by Benjamin Bratt as Dr. Jeremy Stone mirrors that of the original. But aside from Stone and Hall, the rest of the characters seem totally different. The 2008 version is definitely more "politically correct" -- having a black, more women, an Asian, and a gay man (playing Hall).

Former child actor Ricky Schroder played the character of Hall, which the novel kept mentioning as fulfililng the Odd Man Theory. The theory basically states that single men are most likely to make the best decision in a dire (nuclear) situation, as opposed to, women or married men. The 2008 version mentions it and gives a quick definition to get it out of the way. The 1970 version kept mentioning it so many times, until it was finally explained by one of the characters after like half a dozen times later. Very dragging. The 2008 twist of the "odd man" being gay was also new.

The way the virus got "defeated" was also different in both movies. I don't want to provide a spoiler here so for those of you interested in how either or both ended, you can watch both versions. :)

Saturday, March 7, 2009

Ateneo Career Talk

I was invited by the Computer Science Department (now called DISCS) to give a 10-minute talk to the incoming CS prospects for SY2009-2010. The event was held at the new science complex (same as last year) and it was good to see old, familiar faces again. Dr. John Paul Vergara is the chair this year. Mark, our tech support guy back when I was still a student, is still there. A former student of mine is now a teacher.

As I talked to the students, I began reflecting on how old I actually am! When I graduated back in 1991, some of these incoming freshmen were probably not even born yet. There was no separate MIS program back then. No fancy robotics lab or Nintendo/PS3 boxes for game and animation developers to play with. The faculty has greatly increased with more PhD holders now. Some names still sound familiar but most are strangers to me already.

This year's gathering did not include dinner unlike last year's Open House where I was also invited. :P