Friday, July 31, 2009

Bancnet, Megalink and the Point-of-Sale System

I met with Bancnet people this morning and got the answers to my question on exactly how many cardholders they have with the transfer of PNB. Prior to the transfer, both Bancnet and Megalink have roughly the same number of cardholders -- 8 million each. But with PNB transferring its 2 million customers, that will tip the scale into Bancnet's favor with it now having 10 million and Megalink being left with 6 million. Ouch!

During the same meeting, I met with the representative of GHL, which provides the point-of-sale (POS) terminals for Megalink. I learned that these guys (Bancnet, Megalink, credit card companies) do not really own the POS-es out in retails establishments. They are owned and operated by third party companies who just share in the bank commission for such electronic payments.

So if Bancnet, for example, were to charge 2% from the retail establishment, that amount will be shared among the 3rd party operator, Bancnet, and the depository bank of the retail establishment. Interesting business model. I always thought the devices and the network was owned by the banks themselves. Looks like they outsource it as well.

In a stroke of coincidence, I had a meeting with another company called Merchant Express in the afternoon. While the topic of the meeting was PayEasy, I found out that these guys also operate a POS network similar to GHL. In fact, they claim to be the bigger player (with about 14,000 POS terminals) in this market which is cornered by these two companies. And they also operate their own switch which is interconnected already to Bancnet, BPI and RCBC Bankard (but not Megalink). They also acquire merchant accounts in behalf of the card companies and provide the terminal and switching. Each POS terminal costs about P20k.

My First Niece!

My sister, Nikki, gave birth to her first daughter (and ergo, my first niece) at 7:04pm July 30 Winnipeg time. She went through a very long labor period. The baby was very big and had a hard time coming out. Hello world, Allison Claire Chiang Ko!

Sunday, July 26, 2009

HDMI Output Does Look Better Than Component Video Output

Since my new Philips DVP5996k player supports HDMI output, I had to test and determine for myself if indeed HDMI upscaling to 1080p results to clearer video. From what the Link Worth projector sales man told me, my Mitsubishi home theater projector can display up to 1080i using component video. So I've always assumed that HDMI output would not be that much different if your player is not really running in Blu Ray format. After all, the scanlines produced by standard DVD discs are way below even the "regular" HD of 720p. So software interpolation to increase the number of lines to 1080p is not that big a deal.

Well, after staring at the screen for several minutes watching my downloaded Heroes Season 3 divx files, I can say that there is indeed a difference! Its not exactly as evident as moving from the world of VHS to DVD, but it is noticeable. The HDMI output is slightly much better than the component video output.

What I did was connect the Philips DVP5996k to our Samsung Series 5 LCD TV via both HDMI and component video. Then while the movie was playing, I would freeze a scene; toggle between HDMI and component video source; and try to detect the difference. I asked Cols to also make a comment without telling her what I'm experimenting on, and she also noted that the HDMI version had a bit more detail than the component video one.

I also read some time ago that HDMI only carry video signals. I guess that must have been an old spec of HDMI, as the one that came with my player already carried audio as well. At first, I didn't know what it meant when it asked me on the setup screen of Philips whether I want to enable audio on the HDMI. So I chose 'yes'. Then for some time, I couldn't figure out why the audio of the shows I was watching seem to have an echo. Later, I realized it was because the audio was being sent to the Samsung LCD TV and playing on its built-in speakers, while at the same time, the Yamaha A/V Receiver was also playing back the same audio. So the speakers at close proximity to each other caused the really weird sound effect. I disabled audio on the HDMI so that it will just pass video signals to the LCD TV and play its audio via digital coaxial cable to the Yamaha receiver and everything was good.

Rearranging Cells in Excel from Horizontal to Vertical

I'm doing some spreadsheet work in preparation for our BIR Letter of Authority 2008. I have to transfer a range of cells from one spreadsheet to another. There is just one slight problem. The cells in my source worksheet are arranged horizontally, but I need to transfer it into the destination worksheet in vertical layout. Manually rearranging it from horizontal to vertical is not an option as there are numerous cells that I need to transfer.

Have no fear -- Google is here (with the answers). The key is in the "Transpose" option. I've never noticed it, or perhaps I did but did not care what it was for, but it holds the solution to the problem. From the source worksheet, just mark the range to copy and hit Ctrl-C (Edit >> Copy). Then go to the destination spreadsheet and choose Edit >> Paste Special >> tick the 'Transpose' checkbox. That's all there is to it!

Unlocking Region Code with Philips DVD Player

Cols has been telling me the past couple of days that our brand new Philips DVP5996k player does not play our original DVD's. I didn't get to test it until today. I popped in my X-Men Trilogy original DVD and, indeed, it complained of incompatible region. Seems that this unit is region-locked. Very strange since practically no DVD player sold today still follow the antiquated copyright-protection of DVD players based on "regions".

I called Western Appliance Greenhills and talked to their Philips guy. He walked me through the process of removing the region lock by hitting some secret buttons. I don't know if this will work for all Philips DVD players, but this was the sequence for my DVP5996k:
  1. Open the tray
  2. Click the setup button on the remote control
  3. Go to preferences
  4. Type 138931 on the keypad (The screen displays the current region where the player is locked)
  5. Use the up/down arrow key to select Region 0 to open it for all regions
That's it! After that, it happily played all my original Region 1 discs.

Friday, July 24, 2009

Online Payment at Twitter -- what will they think of next?

Ok, so you get a wildly popular online payment system like PayPal and you link it with equally popular social networking tool-cum-blog Twitter and you get -- (drum rolls) TwitPay. Granted that it has some novelty, but I don't quite see what's the big draw though. Why would people want to sell things over Twitter? There's not much you can say in a 160-character-or-so Twit. You would probably just end up redirecting them to your actual e-commerce site where the real transaction will eventually happen.

Thursday, July 23, 2009

Really Cheap HDMI Cables from CD-R King

We recently deployed a digital signage at our store using a Sharp 32" LCD and my old Philips DVP-5166k DVD player. I used the DVP-5166k because it supports USB video playback and has a feature to infinitely loop a file or folder. Since the signage needs to keep repeating a video clip throughout the day, I did not want to use a regular DVD disc and risk wearing out the spinning mechanism. At least with USB, there are no moving parts to wear-and-tear.

So our master bedroom has been without a DVD player for more than a week. I had to contend plugging our Sony portable DVD player via regular composite video to the Samsung LCD, and well, its not really a fantastic solution. I decided to go to Western Appliance Greenhills today to get a new player -- the DVP-5996K. Its an "upgrade" from the old 5166k and has the ff. new features:
  • HDMI output with 1080p upscaling
  • Support for Microsoft Windows Media WMA/WMV formats
  • Ripping of audio CD to MP3

I don't really care much about the latter 2 features. Its more of the HDMI output that I've been intrigued with. Since our Samsung is Full HD 1080p capable, I felt that I wasn't maximizing it with a low-end player connected via standard component video. Granted that even though this is not a Blu-ray player, I thought the HDMI upscaling would at least result to better output than regular component connections.

Since the player did not come with HDMI cables, I went to nearby Virra Mall's CD-R king to get one. Original Sony HDMI cables at appliance stores run for around Php3k. Amazingly, the 3 meter HDMI cable at CD-R only costs Php300. I did some Google research prior to buying it and nobody seem to have any complaints about it. (I was actually looking for just 2 meters, but there were no stocks available.)

When I plugged the player at home and connected it to the Samsung using the el-cheapo CD-R King HDMI cable, it worked perfectly fine. I played the Pixar Shorts for the kids and it looked pretty sharp. Although to be honest, I really cannot tell much the difference between upscaled 1080p vs. progressive scan on regular component video connectors.

Tuesday, July 21, 2009

Trouble Brewing at Megalink?

Megalink seem to be very low key for the past several years. While Bancnet has been adding more and more services -- from online banking, to point-of-sale, etc., Megalink seem to have stagnated with providing regular ATM service to its member banks. And lately, those member banks seem to be dwindling.

Even Megalink's Internet payment system is operated by Unionbank's The Port, and not by itself. So while PayEasy claims to support Megalink for its payments, in reality, we are limited to those banks who signed up with Unionbank/The Port. And because of political reasons, not all banks joined the initiative.

In what could be the biggest defection to date, I read a news announcement today that the Philippine National Bank (PNB) has switched to Bancnet. PNB is the 4th largest bank in the Philippines based on assets. By moving to Bancnet, they have become its 50th member. PNB brings a lot to the table with its 400 ATM's nationwide. This effectively expands Bancnet ATM nodes to 3,778 according to reports. So that means PNB represents more than 10% of the total ATM's in the Bancnet network!

Bancnet ATM cardholders now number more than 7M. This includes the 2 million ATM cardholders that PNB claims it has. The numbers look strange though. A year ago, Bancnet announced they had 6M users. So if 2M was added because of PNB, why is it only 7M? Surely, Bancnet is not capable of filtering duplicates (ie. cardholders with multiple Bancnet ATM cards from different banks).

This announcement also comes at the heel of another recent defection by Robinsons Bank. Granted that that is not a very large bank, still, it does not bode well for Megalink.

GMA's Drug War A Farcical Show

GMA's government is now again supposedly eyeing the revival of the death penalty after a drug enforcement agent's underaged daughter was kidnapped, drugged and raped. While my heart reaches out for the guy and his daughter, I can't help but feel disgusted again by GMA's farcical response. How many countries in the world do you see the government imposing the death penalty, only to take it back after a couple of years, then put it back and take it back again? Why can't they just make up their mind?

Assuming GMA actually revives it, with election coming up next year, any politician running for office will just kowtow again to the pressures from the Catholic Church. Who would dare lose the blessing of the influential Catholic Church and its millions of voters? And how many times has the Catholic Church meddle in matters of death penalty in the past? Its almost a given already that this will happen yet again.

Tulfo, a known government critic, has his usual colorful commentary regarding GMA's response over the event.

Monday, July 20, 2009

Celebrating the First Moon Walk

Today marks the 40th anniversary of the first lunar landing of Apollo 11. Of course, I wasn't born yet when the landing happened, but I'm sure it must have been a really exciting global event. Space exploration has not really progressed much beyond the moon (at least, as far as, manned flights are concerned). We're still a long way from Star Trek.

Buzz Aldrin was actually the first guy to do a moon walk -- not Neil Armstrong, or the recently deceased Michael Jackson. :) However, Neil Armstrong is more popularly known because of his quote "That's one small step for man, one giant leap for mankind". So people more often attribute the first steps to him.

An article at the Inquirer today interestingly talks about how Armstrong claims he was misquoted. It seems that because of the poor radio signal between the earth and the moon during the live transmission, a word was lost. Armstrong claims the actual words that he said were: "That's one small step for (a) man, one giant leap for mankind". The 'a' got dropped off during transmission.

A recent soundwave analysis of the radio transmission by an Australian programmer found a wave lasting for 35 millisecond that can very well be the missing "a". The proof is convincing enough for the Smithsonian Institute space curator, and as far as NASA is concerned, they stand by whatever Armstrong claims he said.

Friday, July 17, 2009

Visual C++ 'per-appdomain symbol error' and Compiler Warning C4394

I've been trying to debug my telephony test application the past week to no avail. I asked Aculab for technical support and their engineer asked me to enable the built-in trace capability of their library. When I enabled it, I got all sorts of Compiler Warning C4394:

per-appdomain symbol should not be marked with __declspec(dllimport)
Visual Studio also refuse to link the application citing those cryptic unresolvable externals on the trace variable and function. Doing a Google search on the strange error revealed that there are other people who have experienced the same problem. The error does not seem to appear if the application is a console app (such as the demo SimpleCall that came with Aculab's SDK). But the moment you switch to a graphical CLI/.NET environment, it appears.

According to MSDN, the C4394 is related to variables or functions written and compiled using native C/C++. When they are linked to a program compiled in Microsoft's Intermediate Language (MSIL) format running in a .NET managed environment (CLI), the incompatibility in permission access level appears.

Somone suggested in the forum from the other guy who reported the same problem to switch from a "pure" CLR environment to a normal one. This can be achieved by changing the compiler flag from /clr:pure to just /clr. From the Visual Studio IDE, one goes to Project >> Properties >> Configuration Properties and change the Common Language Runtime support dropdown value to regular /clr instead of the default "Pure".

And what do you know? It worked! The compiler and linker errors disappeared and I was able to generate by trace logs. So its now back to trying and figure out what is wrong with my demo program. :(

Friday, July 10, 2009

Smackdown at the Big Dome

I had a board meeting in Ortigas 3pm in the afternoon. The meeting dragged past 6pm with lots of discussions. By the time we ended, it was pouring cats-and-dogs outside and the traffic was building up. This got me a bit worried because I was to meet my brother-in-law Kenneth at Araneta Coliseum around 6:40pm to watch WWE Smackdown-ECW's Manila tour.

I had to drive a bit more aggressively than usual. Tried to pass through Robinson's Galleria Mall driveway to get to EDSA side but found out they already closed the previous exits. Had to waste time going around again to find another path to EDSA. From EDSA, it was slow moving going to Cubao, again because of the rain. Had to cut-off several other motorist to get to Cubao around 6:45pm. I parked at the new SM Cubao carpark then ran to Araneta Coliseum where I met Kenneth with his friend at the Green Gate.

The show was slated to start at 7pm, but when we entered the Coliseum and got to our Lower Box seats, the place was not even half full. Its a far cry from the first time RAW came to Manila. I don't know if its because its the first time WWE is doing a show on a Friday; or if its the snarling traffic brought about by the downpour that made people late; or because its the third time already that WWE is coming to town so the novelty has faded off; or if its just because the roster of superstars who came this time is just not that impressive.

The show eventually started at around 7:20pm, with the upper box and general admission area barely half full. The first match pitted John Morrison against Shelton Benjamin. Morrison was the clear crowd favorite. It was a slow-moving match considering Morrison and Benjamin are both very talented, high-flying athletes. No major signature moves were shown, but Morrison pinned Benjamin for the count.

The next match showed Mark Henry who was as wide as a refrigerator. He fought and defeated (fairly) newcomer Evan Bourne. It was not much of a contest as Evan is more of a cruiserweight against Henry's super heavyweight built.

It was then the Divas' turn to provide some entertainment. Maria was the guest referee, much to the glee of the Filipino male crowd. This was a Divas Tag Team match with Divas champion Michelle McCool and her manager, Alicia Fox, against ex-champs Melina and Gail Kim. Melina performed her signature leg-splitting ring entrance -- again to the delight of the male crowd. The crowd-favorites, Melina and Kim, defeated McCool and Fox.

Next was the turn of the WWE giant, Khali. Standing at a height of more than 7 feet tall, Khali was an imposing figure. Long gone are the days that he was the 'villain' in WWE. Khali is now a crowd favorite. He fought and defeated Dolph Ziggler, who played the 'bad guy' role well and even inciting the crowd before the match began.

A 15 to 20 minute intermission ensued. When the lights went off again to signal the resumption of the event, it was time for the title matches (not that title ever changes in out-of-town/non-televised exhibition matches like these).

It was a Triple Threat match for the ECW Championship held by Tommy Dreamer. As expected, he defeated Jack Swagger and Christian. Christian and Dreamer were clear crowd favorites. When the match ended, a lucky audience seated by ringside caught the eye of Dreamer with his signage ("Innovator of Violence") and got invited to go up the ring where Dreamer took off his shirt and gave it to the fan. That was a classic moment.

The next match was for the Intercontinental title of Rey Mysterio. But before Rey stepped into the court, Chris Jericho had a good time building up the crowd with his insults. Rey, of course, got to deliver his signature move, the 619 -- which I really don't think hurts the opponent that much. Nonetheless, Jericho was pinned for the victory.

The last match was between WWE Heavyweight champion CM Punk against Jeff Hardy. Punk previously won the belt from Hardy, shortly after Hardy himself won it in a ladder match against Edge in a WWE Pay-per-view (PPV). Punk cashed in his "money in the bank" against the tired Hardy in that PPV and won the title. The stars got to deliver their signature moves but Punk prevailed, again, as expected since titles never change hands on exhibition matches.

After the show, I treated Kenneth and his friend to our usual fare -- Chicken Inasal across the street. After the late dinner, I had to fall in line for another 15 mins or so to retrieve my umbrella which was left at the package counter. I don't know why they didn't just let people enter with umbrellas to avoid the inconvenience.

Wednesday, July 8, 2009

Using app.config with Visual C++/CLI

Still on my C++ project with Aculab, I tried putting my application parameters onto a .config XML file just like I normally would with my C# programs. The steps seemed obvious at first -- I added a config file using the templates, then I added a reference to the System.Configuration assembly.

But from inside my code, calling ConfigurationManager::AppSettings does not seem to resolve to anything. I checked the output folder and did not see any application.exe.config that one normally expects from C# projects.

I did a little bit of research and found this app.config article for C++/CLI in CodeProject. It seems that the key is in the project property's post-build event. Specifically, you have to run the external command:
copy app.config "$(TargetPath).config"

This properly copies the config file to the object code output location where it can be read by the application.

The next hurdle is converting the managed System::String^ class, that is returned by the System::Configuration methods, to the old c-style null-terminated string. This one is achieved by using the System::Runtime::Interopservices::Marshal methods. The shortest way of writing this expression that I've seen is this one from MSDN.

Tuesday, July 7, 2009

Trying Out Twitter

Everybody seems to be onto Tweeter nowadays. Its like a micro-blog or micro-diary of what you are doing at a point in time. Frankly, I still don't quite see what is so great about having a service that lets you type what you are currently doing in about 140 characters. But nonetheless, all the big name tech companies seem to have a Tweeter site. So here goes.

I created a Tweeter account for our online payment gateway, Mozcom PayEasy. The site can be accessed at My first Tweeter username choice was actually just plain 'PayEasy'. But it looks like somebody beat me to it. And whatever that person did seem to be not so nice because Tweeter shows a message that the account has been blocked. Probably somebody doing a financial-related scam.

Just as Google seems to like indexing blogs, it also actively indexes Tweeter contents. So for those who are interested in search engine optimization, extending one's website to Tweeter seem to help in getting found. I made a couple of initial entries onto my Tweeter account, and within the hour, I started getting Google Alerts on PayEasy's Tweeter entries.

I also created a Twitter account for Picatoo at

Online Payment Market Starts to Heat-up

Google has entered the online payment business with Google Checkout, but has not had much luck unseating erstwhile leader, PayPal. Now its Facebook entering the game. They look like they are more of a niche player who want to take advantage of their large registered user base to sell stuffs to each other.

And what's up with PayPal's new new API that is getting a lot of market buzz? Initial released documents show that its somewhat similar to Amazon's system. Initially called Adaptive Payments, it allows payment to be cascaded down a chain and allows a single payment from a customer to be "split up" to pay multiple suppliers. This can be useful if, for example, a shopping cart contains items from multiple suppliers.

Sunday, July 5, 2009

The Knowing

We watched Nicholas Cage's Knowing at the home theater tonight. My sister-in-law was telling us last night that she did not like the ending of the movie. So that kinda made us more curious as to how it ends.

The story is set in Lexington, Massachusetts. That brought back some memories of my 2-year stay in Wellesley, which is pretty close to Lexington. In fact, I used to attend church with my classmate Clement, at a Chinese church in Lexington. But aside from the sweeping view of the MIT campus, the rest of the movie was actually shot in Australia.

The movie is about the visions of a grade school girl of disasters that will happen -- complete with the exact date, location (in longitude + latitude coordinates) and the number of deaths. If I did not know any better, I would have assumed that it was an M. Night Shyamalan movie. The plot and topic is very typical of Shyamalan's stories.

In a lot of ways, the movie reminded me a lot of The Happening. And just like that movie, the ending is a bit too fantastic and anti-climactic. From a suspense/thriller/horror-type of movie, it suddenly shifted into full-blown science fiction with alients and spaceships. But, at least, I liked the way they imagined the spaceships. It was not your typical flying saucer with lights. And for once, Nicholas Cage's character died in a movie he starred in!

Saturday, July 4, 2009

Dr. Who and Bionic Woman

Just saw the Dr. Who Special - Planet of the Dead. The setting of the movie is in some remote desert planet, but it was actually shot on location in the sand dunes of Dubai. The Doctor (still played by David Tennant) did not start with a female companion. I'm not sure why. Is this after Season 4 with Catherine Tate?

But not to fret. He was able to hook up with a new character, Lady Christina de Souza (played by Michelle Ryan). Lady Christina is supposed to be some adventure/thrill-seeking aristocrat-turned-cat burglar. She is actually a very interesting character and it would be great if she were to really become a regular travelling partner of the Doctor.
I never really liked Rose Tyler (played by Billie Piper) of Seasons 1 and 2. Martha Jones (Freema Agyeman) of Season 3 was great and much better looking than Rose. Donna Noble (Catherine Tate) of Season 4 added a nice twist of humor, but I found her too old.

Michelle Ryan is better known in the title role of the 2007 remake of Bionic Woman. I watched the first few episodes of that series which was shown on C/S channel, but found it terribly boring. I don't know if the show is still running or it got canned.

Planet of the Dead is supposed to be the first of a series of Dr. Who specials starting 2009 with David Tennant bowing out as the 10th doctor. Sad to hear that. I hope the new guy is as good. I hated Christopher Eccleston (the one who came before Tennant) of Season 1. Its a good thing they killed him off and have him regenerate as Tennant.

Disparity in Gas Prices

I'm just amazed at how large the disparity of gas prices can be nowadays between different gas stations. Today, for example, Shell Katipunan and C5 charges Php37 per liter for their Unleaded/E-10. But go down the road further towards Commonwealth and you will see a Shell Station there charging Php39 for the same product.

Go further to Quezon City and all the gas stations there along Quezon Avenue are also in the Php39 range. QC seem to have the highest gas prices. Certain Caltex outlets seem to be much cheaper than Shell. Caltex Connecticut/EDSA is around Php35 and the Caltex on the south-bound lane going towards Guadalupe only charges Php34. That's a Php5/liter difference compared to those QC stations!

I recently opened a Shell Citi Visa to avail of Shell's 5% gas rebate. The tricky part that I found out afterwards is not all Shell stations participated to the promo. I guess most of the Shell franchisees did not opt in as it would lower their profits.

HSBC has a similar scheme going with Caltex. They claim also giving a 5% rebate. But the catch is -- as Cols found out much later, you can only avail of it if your total monthly purchases hit something like Php50k. What a rip-off!

New E-Commerce Player

Its a Saturday morning, but I woke up early to get dressed up and ready for the launching of our new Malaysian partner,'s SMilDS e-commerce platform at Makati Shangrila, 9am. They were referred to me by PayEasy's Malaysian payment gateway partner, iPay88/Mobile88. So PayEasy was announced as a major partner for this endeavor along with LBC and DHL.

The Platform2U guys rented the Rizal ballroom. There were about 30 tables and a grand stage. They certainly did not scrimp on the launching. Aside from the ballroom, they rented a separate function room at the 3rd floor for the press conference. There were several VIP's including a representative from the DTI, the Malaysian Ambassador to the Philippines, and Platform2u's chairman, who is apparently a former cabinet minister and member of parliament of Malaysia.

The name of their e-commerce platform is SMilDS. Personally, I find the name to be not too marketing-friendly. As a rule, I always tell clients to choose domain names that are easy to recall and does not require much explanation or instructions on how to spell. If you have to expain it, then it must be complicated. SMilDS (pronounced "smile-ds") is actually an acronym. I wish they could have chosen an easier-to-remember name.

A sister company of SMilDS is Easy Pha-max. Its a health supplement made from wheat grass. Their local celebrity endorser is TV host (Sports Unlimited) and former tennis professional athlete, Dyan Castillejo. During lunch at the Shang Palace chinese restaurant, I was seated beside Dyan and had a good time talking with her. She's really into the wheat grass product and even gave me a sample to drink. I have to admit that I did not like the taste though. Its probably an acquired taste as she said she drinks it at least 3 times a day.

Later in the evening, we had dinner at Speaker Perez because Cols' mom and grandma are in town.

Thursday, July 2, 2009

Philippine Online Payment Expands to Europe and North America

We're announcing the integration of UseMyBank to PayEasy today. UseMyBank is a Canadian based online payment company that focuses on direct bank debits. By integrating with their system, PayEasy can now accept real-time online payments from Australia, Austria, Belgium, Canada, China, Germany, Netherlands, Switzerland, and UK.

What makes their service very different from the other gateways I've met is their anti-fraud screening mechanism. When you register or use UseMyBank for the first time, their automated system will perform a call-out to your number. You then need to key-in the 4-digit PIN that you see on your screen. Its their way of validating your telephone number. With this system, they claim to have at least a 99.9999% fraud-free transaction rate. That's great news for merchants who are used to dealing with credit card fraud.

Because of the very low rate of fraud, UseMyBank is popular with high-risk merchants such as online gambling and remittances. In fact, most of the online casinos use UseMyBank's service for getting funds from their bettors. These are two niche markets that we hope to tap into.