Tuesday, December 30, 2008

OpenDialogEx Modified - Now allows you to choose directory in .NETCF

Hi Guys,

 I'm modifying my SmartProtect code to allow my application to choose folders that can be protected. However, currently, .NETCF does not have any FolderBrowserDialog method so there's no way for you to browse folders.

Instead of re-inventing the wheel, I was looking for codes that I can freely integrate and modify to so that it is able to choose folders instead of just files and I saw a post from (Anyway I've seen Mr. Peter Foot's one but I feel this implementation is cleaner and much more easier to scale)

However, this implementation does not allow you to choose folder so since the author allows us to freely modify the code, I did some modification to allow it to choose Folders instead of just Files. The modified code is here : 

To use this code so that you can filter out the folders, just add :


the code will then filter only the directory and it will allow you to select the folders.

Anyway, I've also added a bonus. You can change the title of the form by adding filter.title="Choose a Folder"

Thanks to José Gallardo Salazar for a very good code. 

Friday, December 26, 2008

New Pocket PC Application - Smart Protect

Hi Guys,

I'm releasing a software to the public called SmartProtect. Basically, this software provides the following features :

  1. An Thief or Lost Prevention Software with SMS Auto-Responder and GPS Capability created for Windows Mobile Devices.
  2. When you forget your phone and can't remember where you put it, you can SMS your phone to get the exact location via GPS information if your phone has GPS Capability or approximate location based on Cell Location.
  3. You can SMS your phone for other information such as IMSI, IMEI or even remotely reboot your phone etc.
  4. This software is also equipped with Thief Prevention system which will automatically SMS your partner phone number if the SIM has been changed against the registered SIM. You can register multiple phone numbers as partners.
  5. This software supports registration of Multiple SIM Cards and also registration of Multiple Phone Conctacts as Partners.
  6. When your phone has been stolen, it will automatically SMS relevant information such as IMEI, SIM Card Number or IMSI, GPS Location if supported and Cell Location to your Registered Partner Phone.
  7. It is able to also auto-delete Phone Memory Contacts if the phone has been stolen.
  8. It is password protected and the password is encrypted with AES-Encryption.
  9. Its un-install proof. It requires special procedure to uninstall the protection, so even if you uninstall it, it is still working.

It's still in beta version. You need atleast .NETCF 2.0  for this app to work (which most Windows Mobile has so not to worry).

Note that Cell Location depends on your device. It should be working but the problem is not all devices interfaces with RIL functionality so it may or may not work. What I can confirm is that Asus P525 does not work on cell location (it always return 0). Samsung I780 works perfectly.

Anyway, here are the SMS Commands that you can send to your phone. Note though that the SMS is only accepted when :

  1. The SMS came from a partner phone. (You need to register the phone as a partner phone first).

  2. The password is correct. Password is based on the password saved when you configure your phone for using the SmartProtect application.
  3. When the SMS Command is correct.

The SMS commands syntax is :


example :


The valid commands are :

  • getIMEI - Retrieves the IMEI Number

  • lockMyPhone - makes your phone unusable

  • enableLockPhone - Enable the Lock Mechanism of your Phone. When your phone is stolen, your phone will become unusable.

  • resetPhone - Reboots your phone.

  • deleteContacts -Deletes your mobile phone contacts. It does not delete the SIM Card Contacts.

  • unregisterPhone - Unregisters the sender as a partner phone.

  • disableSecurity - Disables the security mechanism of your phone. This requires restart to take effect.

  • enableSecurity - Enables the security mechanism of your phone.This requires restart to take effect.

  • getIMSI - Retrieves the IMSI Number.

  • alertContacts - Alerts your contacts that your phone has been stolen.

  • getCellLocation - Gets the approximate location based on Cell Tower that your phone has registered to.

  • getGPSLocation - Retrieves the GPS Coordinates.

  • exitApp - When you use getGPSLocation command, this application stays in the memory. This command exits the application. However, this applications will still be activated if any of the command is received.

  • registerPhone - Registers your sender as partner phone number.
  • listCommands - List the commands available for the Software.

The link to download the software is here :

Kindly leave your comments on this page on how else you would want to improve the application, or any bugs you encounter. I've thought of new features already but I won't reveal it. Thanks!!

Wednesday, December 24, 2008

Windows Mobile Development. How to send SMS and call via emulator

Well, this is a tip that will be useful for developers on Windows Mobile World, especially those that are developing SMS Interception software or those who are interested in developing RIL.

Would it be good if, when developing the SMS Interception software or call interception software, to test it out without buying a new phone ? Like maybe sending an SMS on your Emulator to test if your software is able to interecept the sms ?

Well, now its possible. It took me a while to find out but I would like to share with you guys. Windows Mobile 6 SDK (and perhaps Windows Mobile 5) has the facility to allow you to test your software which requires interaction and manipulation of phone calls, SMS or even test your GPRS functionality without incurring cost. This is called a Cellular Emulator. How do we use that ?

Well its simple. Just follow the steps here :

1. Open your Cellular Emulator by going to Start -> Programs -> Windows Mobile 6 SDK -> Tools -> Cellular Emulator

2. At the toolbar, see the DE: ? This is the COM Port number that your emulator will be interacting. Launch your emulator

3. Once launched, you will notice that the radio is off. So go to File -> Configure -> Peripherals

4. At the Peripherals tab, type in COM4 on the Serial Port 0

5. Soft reset your emulator by going to File -> Reset -> Soft

Voila!!!. Once restarted, you can now send SMS to your phone.

Now you maybe wondering, what is the phone number of you Phone. To know the phone number assigned to your phone, go to the Cellular Emulator and Go to SMS Tab. The phone number assigned to your phone is there.

Notice at the Call Manager tab and at the Preset Number option ? These are the numbers assigned to a Call Behaviour, Say if you call 727024, the emulator will emulate Busy phone.

Hope this was useful.

Friday, November 14, 2008

IBM Sametime Servers for Demo

Hi Guys,

I haven't blogging for a while. Kinda busy on my work. Anyway, I'm doing a presentation on sametime and I was looking for a sametime server that I could use (instead of using my VMWare which is very very slow). I found out of this two Sametime servers that can be used for demonstration purposes.

These are absolutely free. They even have Lotus Sametime Gateway installed, which allows you to connect to Yahoo or GTalk.

Or you can even use Lotus Greenhouse for demo. There are a lot of IBMer's there that you can talk to as well.

Friday, August 22, 2008

New Certifications : IBM Certified SOA Associate and IBM Certified System Administrator for Websphere Application Server ND 6.1

Hi Guys,

Congratulate me!!! hehehe I just got my new IBM Certifications this week...

I'm now :
IBM Certified SOA Associate
IBM Certified System Administrator for Websphere Application Server ND

:) :) :)

Websphere Technical Conference 2008 : Singapore

Hi Guys. I attended the Websphere Technical Conference 2008. This is my second conference in a row (from 2007). Anyway its a very good, except that the number of people who attended the conference are not a lot. It seems few this year.

There are a lot of speakers this year, most of them are good except for handful. Actually, if you ever attended this type of conference, you will know who is good and who is bad speakers ? How ? by looking at the attendance. If you see that there are not a lot of people attending his speech, he's not good. Well, I did prove it before and I've proven this again.

Some of those who I really enjoy speaking for this event are :

  1. Ernese Norelus - Very funny and Engaging but very witty and smart as well. Hope all speakers can have his wittines

  2. Kevin Tobin - He's a security expert when it comes to securing your WAS. He knows his stuff very well. Well, he asked the rest of the class if anyone wants to take on him and he claims that he can get all the password and secret stuff on your computer using a USB drive. I did almost did that, but I was thinking of putting a Virus on my machine and make my Windows Vulnerable so it can infect USB Drives, which would in-turn infect his USB drive if he attached on my machine ... hehehe just kidding..

  3. Raymon Josef Edward A. Lara - He's very good. A former professor, he knows how to engage and speak his stuff very well. He can communicate very well and he can make you listen to his topic and teach you and make sure you understand him.

  4. Rachel Reinitz - She knows ESB very well.

  5. Colin Tai - His topic is very engaging and you will learn more than meets the eye on Project Management

I believe the rest are good as well and perhaps I just didn't go to their sessions. But anyway, don't worry. There's always next year.. hopefully my company gets to send me again..:)

One of the things I like with this conferences is the free certification program that they have. You can take the exam without paying, though limited to 3 per person.

here are some pictures of the event :

And because I was one of the Top 3 Scorers for SOA Certification exam, I got this free gift :)

Wednesday, August 20, 2008

How to assign a new portal administration group aside from wpsadmins

I've started using the Portal Wiki to support IBM's vision of a global knowledgebase with related for portal. This is a good idea as by using Portal Wiki, I can now post things that I've recently discovered that I believe will help others with related to Portal. Anyway, I'm reproducing here what I've just posted in IBM Portal Wiki. Visit it at :

My Post is at :

How to assign a new portal administration group aside from wpsadmins

have a client who is using a single LDAP repository for both Staging and Production. However, they wanted a separate portal admin group for Staging and Production. For production environment, wpsadmins is sufficient but for staging, aside from wpsadmins, they wanted to add a new group meant for the staging administrators. Staging administrators can only access staging server and shouldn't access Production Environment. In this scenario, we cannot add the staging users under wpsadmins group. To resolve this scenario, the procedure below helps you to add a new admin group on portal different from the frequently used wpsadmins.

  1. Login to your WebSphere Portal as an administrator
  2. Go to the Administration Page
  3. Click on the Access -> Resource Permissions and choose Virtual Resources
  4. Click on Permission Icon beside Portal
  5. Click on the Permission Icon for Administrator
  6. Add the new administrator group you would like. In our example its wpsdevadmins
  7. Click back on Portal
  8. logout

Test any user under this group. Similarly, you can also delete wpsadmins from this group if there's a need.

Saturday, August 16, 2008

Staying late for work but watching online

Ok. I'll be staying late to work but I'll be watching the old movie"Some kind of Wonderful". This is one movie that I'm looking out for. This is a brat pack movie towards the end of the brat pack generation. If anybody does not know what brat pack generation means, Brat Pack is a name given to the actors during the 1980's that appeared together in those coming of age movies. That being said, please refrain from saying that I'm that old... duh.. I'm just 30 and during those days, I'm just 6 or 7 years old.

Anyway, watch the Jimmy Kimmel, Live. It's outrageous and damn funny. Catch it at Star World (for those on Asia) every 9:00 to 10:20. In US, they have it at ABC. ( Believe me.. you won't stop laughing... This is my first time watching and what the.. I love the show!!..

Friday, August 15, 2008

Wesley So : World's Youngest Grandmaster

This is the game that Filipinos excel. A game, unlike basketball, put is into equal footing with the best in Russia and China and the rest of the developed world just due to sheer talent and intelligence. This is the game that shows, that not all is lost on the Filipino race, that the race that produced Jose Rizal, keep producing prodigies. If only the government has programs to develop these prodigies.

One of them is Wesley So, a 14 year old who attained Grandmaster and is currently the youngest Grandmaster in the world and the 7th youngest ever in the entire history of chess. What is amazing is for the fact that this boy, was never taught nor trained by any GM (unlike in some other countries) and just did it by his sheer talent and love for the game. (Maybe they should make a movie about him)

Read more about this boy at :

I just wished, that that Government put more money instead of parading these brilliant talents in Malacanang. They should support more on this child prodigies and talents discovered in the country. I think this country of 90 million has produced more talents "naturally" (not engineered nor imported ones as in other countries) than anywhere else in the world. With the financial support they need, and with full training that they require (such as mentoring from top GM's), I believe we will be able to produce our first World Chess Champion.

Btw, did you know that Viswanathan Anand, the GM from India who became a world champion and is the current world champion honed his tallent on chess in the Philippines ?

New Toys : Kaspersky 2009 and Logitech Nano Cordless V450 Part 1 (Introduction Kaspersky 2009)

I just went to Funan IT Mall this afternoon and was strolling around to unwind and to de-stress myself. This is what I normally do to relax myself. I'm not sure but the sight of those shiny gadgets, shimmering with their beauty and appeal really soothes my soul. Anyway, I was browing here and there and I notice a new anti-virus version of Kaspersky 2009. I recently read that Kaspersky are among those top anti-virus out there. From what I read, these are the top anti-virus for paid versions :

  1. Avira Anti-virus Premiums - Which I'm currently using on my home laptop. It has a very good heuristics and quite fast and very "silent" that you won't even know its running.

  2. NOD32 -never used but heard its very good

  3. Kaspersky Anti-virus - heard has the top notch detection signatures but not that good heuristics.
I always check AV-Comparatives (See for more news on securities and AVs.
I was thinking of changing my work laptop's anti-virus. I'm currently using my own, which is Bit-Defender 2008 but it currently is very slow though quite powerful. But I have this problem where it always hangs my machine for 10 seconds when it's checking my incoming emails for viruses and its quite annoying. To make the matter worst, when I enable HTTP Scanning, my browsing is super duper slow. So I decided to buy this Kaspersky 2009 and give it a try. Well here's the package :

The back package (note the 28 dollars tag price, not so expensive, cheaper than Norton 360 or Norton AV)

Let's talk about my new anti-virus first. Well it's straightforward, but before anything, things that I found out about Bit Defender and Kaspersky during installation

  1. After uninstalling Bit-Defender, make sure you run this tool : BitDefender_Uninstall_tool.exe found at . This is to make sure that every items that BitDefender requires and installed such as registry or any hidden things are removed.
  2. When installing Kaspersky, it will ask you to remove Comodo Firewall. But not to worry, it may warn u that comodo is incompatible but it is actually compatible. You just need to unisnstall comodo and install it back AFTER installing kaspersky.

Manage to uninstall and install the kaspersky and it is much more faster now. In-fact, when I downloaded my emails, I dont feel the slowness. I did a scan and one thing that I liked with this product is it shows vulnerability of the software installed on my machine and the fixpack required. It is not a virus but a vulnerability or exploit if the software is left unpatch. See the following screenshots :

Right-click and click on Go To Description :

Redirects you to this page :

That's cool. it means that this software can detect vulnerabilities on my machine which most Anti-virus I've come with does not. What's the good thing on this ? It helps you close holes and exploits on your installed applications such as Office, Internet Explorer etc.

Speedwise, its speedier and faster than my old Bit Defender. I have not fully explored yet but what I can say is I'm quite happy with it so far. Here are the other screenshots of the Kaspersky AV

See you on next part for the review of my logitech mouse.

Enabling Security but invalid command name "checkUidPw" error appears

My team encountered this issue. (and my colleague Julius Soestrisno manage to find the solution). If you encounter this issue, make sure that you disable the symantec backupexec if it's running on the portal server

PortalExpress.install,$OutputWatcher, msg2, StdOut:[wsadmin] WASX7017E: Exception received while running file "D:\IBM\PortalExpress\PortalServer/config/was/wmm_SecurityConfigWmmUR.jacl";exception information: error while eval'ingJacl expression:

PortalExpress.install,$OutputWatcher, msg2, StdOut:[wsadmin] invalid command name "checkUidPw"

PortalExpress.install,$OutputWatcher, msg2, StdOut:[wsadmin] while executing

PortalExpress.install,$OutputWatcher, msg2, StdOut:[wsadmin] "checkUidPw"

This is due to port conflict with Port 10000 used by BackupExec and by Portal during Security Enablement. Portal 10000 is used by Portal Installer during Security Enablement. Not sure why, but when you encounter this, make sure that you check if BackupExec is enabled.

EJPSK0042E: Operation could not be performed successfully. Missing parameter: Segment ID.

I think its good to post this. My application does an SSO via Credential Vault. However, after migrating my application via XMLAccess, the applicaiton suddenly refused to work. Here's the answer and the solution. (Source :

You might run into a situation where a portlet that works correctly in a development environment that uses the credential vault for storing user data no longer works correctly in the higher (for example, QA or production) environments.The error is:AbstractCrede E execute EJPSK0042E: Operation could not be performed successfully. Missing parameter: Segment ID.

This problem usually happens when the defaultUserSegment is missing from the higher environments. This omission can happen if you use release builder to promote the release to an empty portal, as the slot data is seen as being private data so is not exported as part of the release.

To correct this problem, you can create and import a file to supply the missing data.
Create a file based on

Then, import this file to the higher environments using XMLAcces.If your environment is missing a different segment, you can alter the file contents above. To determine the missing segment, look at an export from the higher environment compared to the lower, or development, environment. Change the segment tags in the XML file sample given above to the correct lines from the lower environment's XML. Then import the file to resolve the issue.

Thursday, August 14, 2008

Importing PDM does not mapped back to WCM

Ok. We found a problem. After recovering a gone portal , we saw that the PDM Library ID's does not tie to what has been defined on the WCM ID. Now, we have hundreds of WCM content that references hundreds of documents so updating them is really impossible. However, there's a technique to do this.

The table ICMUT01424001 of the WebSphere Portal under JCR schema contains the references of all the PDM. What we did is to update the ID (the numeric number between []). Since when importing PDM, this number is auto-generated thus losing the references from WCM. So we updated the table data to fix this.

The link : contains the list of Tables WCM uses (WCM Tables). This is very helpful if you want to know more about WCM/JCR Tables of WebSphere Portal

Wednesday, August 13, 2008

21 Steps to recover a corrupted WebSphere Portal Server Part 2

Ok. The continuation of the saga.

Scenario : Data in the database are intact. But Portal is behaving weirdly. First of all, no pages are showing and no pages are accessible and WPSAdmin cannot even access the Administration Page. Secondly, contents are not shown and documents are not shown. Thirdly, it's nearing the launch date.

What we did :

First thing that came to our mind is how are we going to make portal work with all the data inside. We did some troubleshooting but we gave up as there is no point going to the database and find if there's any mapping incorrectly done. So, we decided that, we need to dump all the data.

Based on experience, we should be able to dump the portal by using the migration concept, which is to use the following tools :

XMLAccess to dump the pages and configuration of portal
WPSconfig to dump the Contents
WPMigrate to dump the documents.

Step 1 : I created a file called :ExportRelease.xml based on this link :

Step 2: Run xmlaccess to download the files. I ran :

xmlaccess.bat -in ExportRelease.xml -user wpsadmin -password password -url http://intranet:10038/wps/config -out D:\Backup\PortalConfig.xml

Note that when dumping, use the Portal Port rather than the HTTP Port. HTTP Port produces a timeout which will disconnect the command with the WAS, resulting to an error.

For more information, check this out :

Step 3: Backup the files located at [PortalServer]\deployed\archive. This folder contains all the portlets that was deployed. Note however that updates are not re-deployed on this folder, so you need to re-deploy or update the portlets that has recent changes.

Step 4: Backup the following :

  1. [PortalServer]\Installable
  2. Themes and Skins

Step 5: For our case, since I'm using my own developed desktop SSO Module, I need it for reference but its not require so I did a backup of the security.xml and other security related XML Files. If in doubt, just backup the wp_profile

Step 6 : Remember to backup your application database. This is not the Portal but your own application database. We missed out this part so we have to manually do a recover. We will have another post on how we did that.

Step 7 : We dump the WCM Content (thanks to my WCM Analysts, Mei mei Oen and Julius Soestrisno). Since we have more than 10 libraries, we have to connect to each of the libraries. This is quite a long process but please be referred to :

Basically the command to dump is : WPSconfig.bat export-wcm-data

If you have multiple libraries, you need to do this for all the libraries. If you can't remember your WCM Library name, you can refer to the dumped file PortalConfig.xml and search for all instances of :


Step 8 : Dump the Documents by running this command :

WPmigrate.bat staging-to-production-pdm60-export

Step 9 : For us, since we're very KIASU, we backup the whole IBM Folder and Database

Step 10 : Uninstall Portal and DB2

Step 11 : Re-install Portal and Db2 with the same fixpack level.

Step 12: Transfer Database to Db2

Step 13 : Re-configure Portal Security with AD.

Step 14 : Test and do a backup of all things so that there's a checkpoint in-case the next steps fail

This is it.. next steps is to restore the settings :

Step 15 : run WPSConfig action-empty-portal to empty the portal configuration

Step 16 : Copy back the /archive folder

Step 17 : Copy back the Installabe apps folder and the rest of files (including theme and skins)

Step 18 : Import the configuration by following this commands :

xmlaccess.bat -in PortalConfig.xml-user wpsadmin -password password -url http://intranet:10038/wps/config

Step 19 : Once done, do a login and test. Voila!! We can see now everything. However, web content is still not there so :

Step 20 : Re-import web content by running the command : WPSconfig.bat import-wcm-data. Ofcourse, follow the instructions on this link :

Step 21: Re-import Documents by running the command : WPmigrate.bat staging-to-production-pdm60-import

Voila!!! Done. We manage to revert back everything. Ofcourse we did some manual things like check the security, update the Portlets,etc. but that's it.

Stay tune next time on this scenario : You forgot to backup your DB2 database and your database was uninstalled, but the Datafiles are still there. How do you recover these data files ?.

21 Steps to recover a corrupted WebSphere Portal Server - Part 1

What would you do if you encounter any of this issues on your Portal Environment ?

  1. Previous day, your portal is working fine but the next day, suddenly nobody can login

  2. You manage to fix the login but another issue arises. Your WCM Content cannot be seen by both normal users, WPSADMINS group and the WPSADMIN himself

  3. PDM Content also cannot be seen

  4. All applications shows "Application Error, please contact your system administrator for more details"

  5. All the pages that you've created magically is gone

  6. To make the matters worst, the site will be launch on that same week

  7. However, the database still contains the information you need.

These happened to me and my team, and we happily recovered the system. Well after hard work and some combination of advance technique.

This is the summary of the events. I will tell you on the next post how we manage to recover the system.

Portal Version : Non-clustered Websphere Portal 6.0 Express with fixpack integrated with DB2 and Active Directory. SSO via Credential vault to external systems.

  1. August 7, 2008 - We did some tuning on Portal in preparation for the launch. We left the clients premises at 5:30 and the portal is still working fine.
  2. August 8, 2008 - Customer reported that she cannot login to Portal. My colleague tested and it indeed cannot login I was in a meeting that time and have to rush to my clients place
  3. Still on same day - We investigated and we found out that the error we are receiving is Account Locked error. We tested the account using Softerra and all the accounts work. However in Portal, all accounts are locked.
  4. Still on the same day - We decided to redo the security by running a WPSConfig disable-security and WPSConfig enable-security-ldap
  5. Still on the same day - After re-doing the security, all accounts worked but lo and behold, data and contents are missing. Furthermore, all applications are not accessible (error) and , the most painful thing, no pages are accessible, even the Portal Administrator Page
  6. Still on the same day - We tried to access via the URL mapping, but no pages are accessible.
  7. Still on the same day - We investigated the database and all database are available.
  8. Still on the same day - We decided to re-do the enabling of security but it didnt work. (silly yes, but when your in this state, you will do whatever to recover anything.)
  9. We checked with the client if there is a backup but, sadly, no backup is available. Jia lat. That's it.. or is it ?
  10. Hmmmm... up to the next post. We will show you how we manage to recover everything...