Monday, October 13, 2008

KL Lookout points



Been living in KL for pass 10+ years, never know there is this place call "KL Lookout Points" for people to chit chat, "minum kopi", and enjoy the beauty of KL at night. Don't ask me how to go there, I depends my "Human GPS" (i.e my friend) to direct me there.
I think is some where in between Ampang and Cheras, over a small hills call "Hulut Langat". Warning : The place is "too romantic" for young children, have encounter at least three hot hot kiss action while walking toward the tower, obviously u don't wants ur Son ask u "Mom, why they putting tounge into each other mouth?" Haha...
Hope u like it.






Tuesday, August 19, 2008

My big big Secret..

My friends, I am going to reveal one of my big big secret, please promise me not to tell anyone, u swear? It happen two weeks ago, when I meet this lovely girl name Wendy…

Ha ha ha ha, obviously this is not a post about my love affairs (and btw I don’t have any love affairs) but this is more about my dreams. I am writing this post to tell the universal law of attraction and my readers what I want to achieve in my career in 3-5 years time. According to the book "The Secret", to make one's dream comes true, we just need to ask for it, visualize our needs, write it down in detail somewhere and feel it. One day, what you have request/dream will come true ……

So, here is my “Secret”.

Date: 2011/2012
Venue: KL Hilton Hotel, Lobby

Wendy, from The Edge Magazine : "Hi James, thanks for your valuable time to do this interview."

Me: "It’s my pleasure."

Wendy: "First of all, could u share with our readers how u end up in ur current job, i.e Google Creative Director for Asian region."

Me: “I have always wanted to work with Google, so 4-5 years ago, I decided to apply for a technical job position at Google. However, given that I am already 35 years old that time, and working as a boring software development manager but not as talented (in terms of technical) as most of Google staff, and does not hold any working permit for US/India/China (where Google R&D centre is based), my chance of Google granting me an interview 4-5 years ago is very,very, very slim, :-(

So, instead of going via the normal route of applying a job at Google (i.e upload my resume to Google jobs portal and throwing my CV into giant black hole), I have to try another route.

I am very creative person, I also have ideas to make life easy, and some of my crazy ideas are very “Google” when I discuss some of my Google idea with my friends, and most of them agree that idea will work. So I decided to post my ideas to Google at my blog, and hope that Google HR will one day notice my creativity and call me for an interview. After posting about 10-15 ideas, I finally got call from Google HR for an interview, and after couple of more interviews and tests, I ended up with my current job position.”

Wendy: “Wow, that’s a unique way getting a company’s attention. So tell me, what is the job scope for Creative Director, i.e what do you need to do and deliver.”

Me: “Well, as Creative director for Google, I have to invent and deliver three-four ideas (i.e new Google services) to Google per year, The 2 -3 ideas must be profitable, and rest of ideas are platforms to improve community lifestyle, like free education for poor people, making our earth greener, reduce the gap of digital divine and etc.

My daily work involves discussing ideas to product and user groups, do a quick POC of my idea with my team, perform market survey about the idea, and finally work closely with product development group to implement the idea”

Wendy: “Oh, that’s a very fun and exciting job, so Khoo, tell me, where u get ur creative juice for all these great ideas.”

Me: “Hmmm, good question, and I don’t think I have answer for that, new idea will strike me out of no where, while driving, while watching movie, at the beach and even day dreaming. Hm..ok,, seriously, if I really have to put a answer on this question, I believed most of my creativities are from my observation. I like to do a lot of research, try out new things, observe people, and always aware of happenings around me.

Let me give u an example, the idea of “SMS Protect Me” came about after I read a news report that the rate of Malaysia women Malaysia being hit, raped, even murdered is increasing each year, and the sad part is most of victims are just doing day to day activities like taking a cab back home, jogging, shopping, waiting for someone to pick them up, and etc. So while driving to work, I am thinking is there any way to prevent this or reduce the crime rate, and out of sudden, my friend SMS me to go for breakfast. This is how the idea strike me.”

Wendy: “Cool, so James, or shall I address u as Mr Coolboy, out of so many ideas u invented, do u have one idea u very proud off?”

Me: “Hm, another good question. Well, if I have to pick one, I will pick "Google earth points", as I am very concern about our environment, and I wants our children have better place to live tomorrow. I am glad that the launch of Google earth points are very well receive by many parties, a recent study shows that, since launch of Google earth points, Google and other partners have help reduce global carbon emission by a total of 3-4%. Thanks to all the loving and caring Google users.

Oh, oh speaking of Google earth points, let’s me reveal this great marketing plan to u, thanks to Toyota. Starting next month, for anyone who purchase new Toyota 5 star green energy efficient car, Toyota will automatically granted purchaser for total 10 million Google earth points, 10 million Google earth points will entitled user to redeem latest Android Phone with 1 year unlimited voice, video calls, and unlimited usage of premium Google service for a year, Isn’t that exciting?”

Wendy: “This is a very good news, do tell us more”

Me: “Sure, wait till next month, at our press conference. Ha ha”

Wendy: “…

Stay tune for part two.

Thursday, August 14, 2008

[Google Idea] gLove.google.com

Wow, it's been a long time since I post "Google Please hire me" series, well, for fans that follow this series (ahem..as if I got many fans that read my blog, Haha), so sorry for the delay

Anyway, my 6th idea to Google is a Mobile match maker application for lonely hearts. The application utilizing Mobile Phone with 3G and GPS service, such as Google Android phone. Although there are many variance of mobile match making application out there, there are many cool features of my application. Here how the application should work:

  • First of all, user needs to register themselves via Google love matching website (i.e glove.google.com), entering their personal's detail such as name, age, birthday, astrology sign, preferences, language, hobbies, and etc.

  • User can also choose to upload their picture, and enter criteria of their preferred partner (race, age range, hobbies, and etc)

  • Once register, user proceed to download the mobile match making application from the web site.

  • Once the application is activated, and sign on, user is presented a real time love chart, shown below:


  • Heart shapes represent love match found from user existing location. The three circles here help user to visualize on how far/near between each love match and the user. For example, inner circle means the love match is about 250 meter between user and potential love match, middle circle is about 500 meter and distance on outer circle is about 1 KM.
  • Color of love shapes shows match compatibility, red color > 90%, green color > 80%, and yellow >70%
  • User could click on any love shape to view more information about the love match, as shown in picture below.

  • If user like the love match found, user could opted to:
    • Get more info about the user.
    • Send a short message to the user
    • Invite user to play online love quiz, where system will ask both the user and the potential partner a series of love/compatibilities questions (like top ten prefer movies, top ten place to spend romantic holiday) and at the end, present both parties each other answer.
    • Play "find me if u can", where system present both parties hints (about 30 steps NW from XYZ Shopping center) to find each other.
The application/portal will be designed as open platform which enable third party developer to develop interesting "plugins" (can be free of charge for user, or needs to purchase with credit) to enhance the mobile application.

To further increase the chance for each other to fall in love, following are some examples of such third party app.
- An app that study how compatible they are base on their birthday and astrology sign.
- A app that study user's circle of friend, and provide a social graph (with interesting graphic) how they are related to each other. For example, if Mr A match with Ms D, the app could show A knows B from Primary School, B is friend of C, and C working together with D at company XYZ.


Please note that, to find a closer match, user do needs to informs the server where is he/she, so that the server is able to find one's soul mate that is located near to his/her current location. If the application detected that there is no GPS Signal, it will use following channels to find user's location, example:

a) Mobile Cell tower - Use of mobile cell tower to find user's location.
b) Wifi access points.
c) Base on the trail of the movement (GPS) of the person until he goes indoor.
d) if all above fail, the app will ask user's to enter his/her location (e.g Sungai Wang, Mid Valley) and find closer match..

On top of that, We partner with other big shopping centers to further promote this mobile application, i.e special discount is given for "Love is in the air" user, each shopping mall could have a giant display on their info desk, or main entrance showing real time info how many "Love is in the air" user is in their shopping center, each with interesting statistics, for example-

- There are total of 10 5-stars most wanted bachelor in this building, and 15 5-stars single lady in the building.
- There are total 10 pair of people are 90% match with each other, are u one of them? quickly find your match now, and claim (together with your potential partner) your free movie tickets in next 30 minutes here..

I believe with the right marketing and development, this will be killer application.
So, that's it, what do u think? do share me your thoughts on the comments page, stay tune for my next idea.

PS: As always, if anyone find these ideas interesting and wants to further build up those ideas, do drop me an email.

Cheers

One World One Dream

Wednesday, August 06, 2008

Please edit email subject line before u send email

Please change your email subject before replying a email

I feel annoy when receiving a reply email, where the email content are not related with the email subject. People are just “lazy” to compose new email, and fill in address field with new email subject, they simply wanted hit reply button, where the address is pre-filled, even if the content is not related to the subject. Here's what happen to me today.

My recruitment agents call: "Hi, James, have u review the Java Developer CV I send to u yesterday?"

Me: "I didn't receive any email on regards Java Developer CV oh"

Agent: "Did lah, I send it yesterday about 3:30pm, could u check ur email again"

Me: "Hm, let me check, I did receive one email with the subject of 'Free for lunch?' from u.."

Agent: "That's the email..that's a CV attached".

Me: "Then why don't u change the email subject to 'new Java Developer CV to review' to me before u sending email back to me?"

Agent: "Err......"

Tuesday, April 15, 2008

A quick update on JPA Boolean Magic Converter

Some update on changes:
  • Fixed the bug of Null pointer exception, when JPA return null on the annotated field.
  • Introduce a new properties call ifNull, which allows user to configure what to return if JPA returns null, it expect enum of org.jbpcc.util.jpa.ReturnType, which have values of ReturnType.True, ReturnType.FALSE, and ReturnType.Null,. The default value of ifNull is ReturnType.Null
Thus as an example, assuming we have model class define as below:

package org.jbpcc.domain.model;

import javax.persistence.Entity;
import javax.persistence.Id;
import org.jbpcc.util.jpa.BooleanMagic;
import org.jbpcc.util.jpa.BooleanMagic.ReturnType;

@Entity
public class SomeVO {
@Id
private Integer id;
@BooleanMagic(trueValue = "Yes", falseValue = "No",
columnName = "OVERDUED", ifNull = ReturnType.FALSE)
private transient Boolean overdued;

public Boolean isOverdued() {
return overdued;
}

public void setOverdued(Boolean overdued) {
this.overdued = overdued;
}
}

Java APT with JPABooleanMagicConverter factory, code above will be converted to:

@Entity
public class SomeVO {
@Id
private Integer id;
private transient Boolean overdued;
//--- Lines below are generated by JBPCC BooleanMagicConvertor PROCESSOR
//--- START :

@Column(name="OVERDUED")
private String magicBooleanOverdued;


public Boolean isOverdued() {
if (this.magicBooleanOverdued == null)
return false;
return this.magicBooleanOverdued.equals("Yes") ? Boolean.TRUE : Boolean.FALSE;
}

public Boolean getOverdued() {
if (this.magicBooleanOverdued == null)
return false;
return this.magicBooleanOverdued.equals("Yes") ? Boolean.TRUE : Boolean.FALSE;
}

public void setOverdued(Boolean trueFlag) {
this.magicBooleanOverdued = trueFlag ? "Yes" : "No";
}
//--- END
//--- GENERATED BY JBPCC BooleanMagicConvertor PROCESSOR

}


That's all, as usual, you could find the JPABooleanMagicConverter binary at http://code.google.com/p/jbpcc/downloads/list.

Do share me your thoughts and comments, happy coding

Sunday, April 13, 2008

A portable JPA Boolean Magic Converter

While doing some small POC with JPA, I am surprise to find out that the current Java Persistence API (JPA) standard does not mandate JPA provider to support data type conversion via annotation, not even a with simple boolean field. For reader who unfamiliar with JPa, what I means is, to persist and "JPA" manage a boolean field, JPA expect the database data type to be integer, where value of "1" means true, and value of "0" means false.

You got to be joking, right? Every "real life" programmer knows that, there are many existing database use different combination of char or string on a table boolean field, such as "True/False", "T/F", "Yes/No", "Y/N", "-1/0", and etc. Thus, as a "real life" programmer, I kind expect the JPA should allows me specific a boolean field via Annotation, such as example below:

@booleanField(trueValue="Yes", falseValue="No")
private Boolean enabled;

And to my surprise, the answer is nope!!!..So far only Hibernate JPA provider provide data type conversation. Daniel Pfeifer, have explain the problem in details, he also discuss some solutions to work around this stupid limitation at his blog, title "Type Conversation with JPA", do check it out.

Daniel's "manual mapping" idea, do solve the limitation. However, maybe it's just me, I just don't like the idea to temporary change a Boolean field to map with database data type (either char, string) in order to resolve the limitation, even we make the field private, this is just me. And I am stubborn, and old . :-)

Anywhere, after some research (Also, a good excuse to my manager to research how difficult to come out our own custom Java 5 annotation with custom Java APT process factory), I come out our own compile time annotation, called @BooleanMagic with our own BooleanMagicProcessorFactory, which I hope, shall temporary resolve the problem.

@BooleanMagic comprise of three attributes:
  • trueValue, specified the table boolean field true value here, such as "True", "T", "Yes"
  • falseValue, specified the table boolean field false value here, such as "False", "F","N"
  • columnName, tableColumn name;
Also please note that BooleanMagicProcessorFactory mandate any field annotated with @BooleanMagic annotation, must either annotated with @Transient annotation or with modifier transient.

Thus, as an example, assuming we have a boolean field called "enabled", which map to table "ENABLED" field, with boolean value of "True"/"false", we will specified our VO as below:

@Entity
public class SomeVO {
@Id
Integer id;
@BooleanMagic(trueValue="True", falseValue="false", columnName="ENABLED")
private transient Boolean enabled;

public Boolean isEnabled() {
return enabled;
}

public void setEnabled(Boolean enabled) {
this.enabled = enabled;
}
}

Using Java "APT" tool with JPABooleanMagicConverter factory, code above will be converted to:


@Entity
public class SomeVO {
@Id
Integer id;

private transient Boolean enabled;
//---
//--- Lines below are generated by JBPCC BooleanMagicConvertor PROCESSOR
//--- START :

@Column(name="ENABLED")
private String magicBooleanEnabled;

public Boolean isEnabled() {
return this.magicBooleanEnabled.equals("True") ? Boolean.TRUE : Boolean.FALSE;
}

public Boolean getEnabled() {
return this.magicBooleanEnabled.equals("True") ? Boolean.TRUE : Boolean.FALSE;
}

public void setEnabled(Boolean trueFlag) {
this.magicBooleanEnabled = trueFlag ? "True" : "false";
}

//--- END
//--- GENERATED BY JBPCC BooleanMagicConvertor PROCESSOR
}


Now, isn't that cool (haha, sorry, I am bit biased here). Btw, BooleanMagicConvertor is portable across JPA protable, and IMHO, this is a better interim solution till JPA make data conversation standard.

I decided to contribute my BooleanMagicConverter back to open source community, it's currently park under my open source project Java Batch Process Control Center, at http://code.google.com/p/jbpcc, you could either build from the source, or get the "BooleanMagicProcessorFactory.jar" from here.

Here an example of how to use the BooleanMagicConvertor using Ant 1.7 apt tasks, assuming all your entity class is declare at ${src.dir}/org/abc/domain/model directory, and you wants to output all generated call to ${basedir}/target directory
 <target name="preProcessJPABoolean" depends="buildJPABoolenProcessorFactory">
<apt srcdir="${src.dir}/org/abc/domain/model"
destdir="${build.classes.dir}"
classpath="./dist/BooleanMagicProcessorFactory.jar:./lib/Model_Dependent_thirdparty.jar"
debug="on"
compile="false"
factory="org.jbpcc.util.jpa.BooleanMagicProcessorFactory"
preprocessdir="${basedir}/target">
</apt>
</target>

That's all, do share me your thoughts and comments, cheers!

Thursday, March 27, 2008

I started yet another open source project



I decided to start another open source project name Java Batch Process Control Center (JBPCC). "What, another open source project again!, what happen to your suduko project?", some of u may ask. Well, the project still hosted at sourceforge, we just not going to maintain the project any more. Reason being, I am tired of suduko already, and there are far too many variance of suduko open source project exists. Sorry!

Anywhere, the idea of Java Batch Process Control Center is somehow continue from my original idea on "Automatic Remote Logging Management via JMX". by using Java 5 instrument API, developer able to "wrap" any Java base process, and automatically offer JMX monitoring and remote logging management functionalities, and the idea of JBPCC, is to deliver end user an AJAX web application to manage, monitor and schedule any those "wrap" processes.

Proposed Features:
  • An in-memory module for remote servers to register, execute, and manage batch processes.
  • Time-based and duration-based scheduling of any configured or registered batch process for execution.
  • Monitoring currently running processes, including resources used and logs.
  • Server management for configuration of servers that hold remote batch processes.
  • A simple rights-based user management module.

Our project is hosted at http://code.google.com/p/jbpcc , Please note that, as this is still a fairly new project, there isn't much user could download from our project repository. But, rest assure that, we will post project news, progress report, tutorial, even web cast here. So, stay tune..

Wish me luck!

Monday, December 31, 2007

A Relaxing Weekend at Eco Friendly resort



As 2007 comes to the end, we decided to go for a short weekend break at a highly recommended Eco Friendly Resort - Rumah Rehat Adeline in Gopeng, Perak. This 'Resort' which we discovered over the Internet looked just like what we are looking for ... a cheap and idyllic place to spend the holiday. This place is in a natural setting, offers only basic amenities and is a 2 hours drive from Kuala Lumpur. At first, I was quite skeptical about staying in a small hut constructed by Orang Asli (local aborigine people) in the deep jungle. Questions such as will there be mosquitoes? Is it safe to sleep in a hut without door and lock? Will I feel too hot since there is no attached air-con? and I was worried that I actually have to share a toilet with others !!!!. (Usual typical City Boy who's been spoiled by 3 - 5 stars hotel).

Anyway, all worries was gone once we reached the front entrance of Adeline's Rest House. The owner Adeline greeted us and quickly made us feel at home. Maybe we were lucky because there were not many groups (only 1) so we had a choice of a nice hut above a stream.


Our hut was on top of small stream with sounds of flowing water 24/7.


After resting for a while, Adeline invited us for a lunch -buffet style. She cooked all the dishes herself with helpers, of course.

My Yummy Lunch

Thoughts of lazing and doing nothing for the afternoon quickly disappeared when Adeline organised activities for us - caving, trekking, waterfalls, body rafting or water rafting ? She asked us excitedly during lunch and because we did not want to look like boring city folks we joined a group going for caving and the waterfalls. Unexpectedly for us, it was a "near death experience" cos we did not know that the trek was going to be an introduction giude to Survivor ! Though the 2 hours of trekking and climbing was difficult but the experience - priceless.




Me trying body rafting

After the afternoon activities, we headed back to the resort with tired body, a twisted ankle and a very hungry stomach. Auntie Adeline once again performed her magic and prepared us a very yummy dinner and BBQ in buffet style.


DSC_0160
yum yum..

After dinner, we all adjourned back to our small hut. Surprisingly the surrounding air is cool and with continuous water flowing sound, wind blowing, we quickly fell a sleep at around 10.00pm.

Next morning, we were greeted with this "poster picture of morning sunshine" below, right outside our hut windows:


DSC_0185


After our breakfast, we relax a bit around the resort, before we back to our sweet home. Overall I rate this trip 4/5 stars, and we will be back again to this lovely resort.

CIMG0538



PS: Throughout our stay on the resort, we are eying this durian (show at picture below), and hope that it will fall, well, our wish was granted, just minutes before we depart, the durain drop, Auntie Adeline quickly takes the durian, and prepare us yummy durain pancake as our farewell gift. Thanks Auntie Adeline.

DSC_0252

Friday, December 14, 2007

Glass Fish Installation from Hell, really?

I like Sun's open source application server, GlassFish, thus when I feels a bit offended when Jevgeni Kabanov wrote an article about how difficult to install GlassFish, and comments that the documentation is suck, and not friendly..

Hm, ok, to give Jevgeni Kabanov benefits of doubts, I decided to do a fresh installation of GlassFish version 2, and observe the manual installation process myself..maybe he is right, as my GlassFish always pre-bundle with Netbeans, and so far, I haven't try to install GlassFish maually myself.


So.here it go..
a) I visit GlassFish's web site at https://glassfish.dev.java.net/

b) I click on "download GlassFish v2 now" icon, and directed to this page https://glassfish.dev.java.net/downloads/v2-b58g.html
, which I presented a step by step instruction on how to install GlassFish, follows by links to download GlassFish binary for various platform

c) I choose to download GlassFish build for Linux platform, as I am running on Ubuntu Gusty. Once download, I follows the documented instruction to install GlassFish, i.e
-> java -Xmx256m -jar "downloaded.jar"
-> cd glassfish
-> chmod -R +x lib/ant/bin
-> lib/ant/bin/ant -f setup.xml

d) Once setup, I follows the quick start guide to start the application server, i.e.
->Add the install-dir/bin directory as PATH env variable
-> Start the server "asadmin start-domain domain1"

e) To verify, I open my browser, and points the URL to http://localhost:8080, which I presented a welcome page, and messages stated my server is up and running running..BTW, port 8080 is default installation port, and u could change the default port by editing the setup.xml

f) To manage the server, I point my browser at http://localhost:4848 to access GlassFish admin console, I entered my given admin user id and password (ie admin, password, adminadmin) to login to the console. I presented a very nice GUI to manage my server, and deploy my application (WAR, EAR, and etc).

g) To deploy one of my application, I click "Deploy web application(.war)", select my war file, and click deploy, and just like that, my application is up and running..

That's it, the whole process takes less then 20 minutes (depends on how fast ur internet connection is to download the installation jar), and all the steps above are well documented at GlassFish's installation and quick start guide. I admit the installation process is "out of norm" and could be improve, but to go to the extends and claim it is installation from hell is bit too extreme, isn't?

Peace!

Monday, November 19, 2007

Beautiful Krabi

Do u ever read your cable TV guide?

Do u? If not, do yourself a favor and call ur Cable TV provider to cancel your TV guide subscribtion. By doing that, you'll be a part of making our earth greener.

Thanks!

Monday, November 05, 2007

Automatic Remote Logging Management via JMX.

Wow, the post title definitely sound “very technical”, and I do hope that it will attract more readers here. :-)

It all started a weeks ago, where I have accidentally discovered a “hidden JDK 5 treasure” (from Daniel Fuch, blogs http://blogs.sun.com/jmxetc/) , called java.lang.instrument, a Java package that provides services that allowing Java language agents to instrument programs running on the JVM. Most people use it for profiling, or pre-instrument purpose.


But I have a idea, why don't we create a logging management wrapper, which allows us to wrap any Java application, and provide us some logging management functionalities without any modification on our application source code. The logging agent will offer the following:

  • Abilities to change log level (debug, info, warning, error) on any configured logger dynamically without restart.
  • Abilities to locate any configured log output files.
  • Abilities to browse (either head, or tail) any configured log files.
Base on requirements above, I come out JMXMBean interface below:


public interface RemoteLoggingMBean {
  public void activateDebug(String loggerName);
public void activateInfo(String loggerName);
public void activateWarning(String loggerName);
public void activateError(String loggerName);
/**
* Retrieve current configured log output files base on given logger.
* The system will only return log files with the following appender
* org.apache.log4j.DailyRollingFileAppender, org.apache.log4j.FileAppender
* org.apache.log4j.RollingFileAppender;
* @param loggerName
* @return Array of file name with relataive file path points to current running directory.
*/
public String[] retrieveCurrentConfiguredLogFiles(String loggerName);
/**
* Similar to Unix head command, read a text file forward from the beggining
* of the file till it reaches line limit, or EOF
* @param fileName the logFileName.
* @param linesToRead, Number of line to be read.
* @return JMX CompositeData with the structure of StartFilePointer (SimpleType.Long),
* EndFilePointer(SimpleType.Long), LogMessages(SimpleType.String)
* @throws java.io.IOException
*/
public CompositeData headLog(String fileName, int linesToRead) throws OpenDataException, IOException;
public CompositeData headLog(String fileName, int linesToRead, long fromFilePointer) throws OpenDataException, IOException;
public CompositeData tailLog(String fileName, int linesToRead) throws OpenDataException, IOException;
public CompositeData tailLog(String fileName, int linesToRead, long fromFilePointer) throws OpenDataException, IOException;
}

The rest of code is delivered by using various JMX and Apache Log 4J API, which I am not going to discuss here, as this is obviously not JMX nor Java Logging tutorial.

If u interest, u could download the whole project source from here. Is not under any copy write protection. U are welcome to download it, modify it, change the author name, use it or distribute it to anyone. IMHO, The IT have to many unfair patents, or copy protection law, which in a way, have stop us on moving forward.

Anywhere, back to topic. To use the wrapper on any Java application that use Apache Log4J for logging, follows steps below:

  1. Either download the binary RemoteJMXLoggingAgent.jar, or build it from the source
  2. Put the binary to your application class path, make sure it sit together with log4j.jar
  3. Append the line at your Java Application startup script
"-javaagent:(deploy directory)/RemoteJMXLoggingAgent.jar
-Drmi.agent.port=AnyRMIPort (optional, default=3000)"


That's it, u application is now able to offer above Remote Logging management functionalities via JMX. To test this, open jconsole from any PC, and connect your remote application via the JMX URL below:
service:jmx:rmi:///jndi/rmi://hostname:rmi_port/remoteLoggerAgent

The Mbean on managing your application logger is called "org.coolboy.RemoteLoggingManager", have fun!


Tuesday, October 23, 2007

Before upgrade to Windows Vista..

Seriously, think twice before u upgrade, o consider open, secure and free alternative Linux OS. Out of so many Linux distribution, I strongly recommends Ubuntu Gusty.
Here why:
  • Needs goods reasons why Linux is better OS compare with Windows> looks here.
  • It just work - Upon installed, ubuntu detected my all my devices, and install drivers correctly, this include my media card, wireless network, video, usb, and etc.
  • Dell start selling PC/notebook with Ubuntu pre-installed, other vendor like Lenovo will follows soon.
  • If u impressed Windows Vista offer "Wowo wow"3D desktop effect, well, looks what Ubuntu Gusty + Compiz offer:


  • Linux could run Windows applications such as MS Outlook, PhotoShop, IE, even MSOffice (If u really really have to, but do consider use open office..) either via Wine (A windows emulator), or via Windows XP vmware image. User could create an empty OS image using VMware server (Free), and install Windows XP (Using legal Windows XP licenses, off course), and install applications on the vm image created.


Seriously, do u really have to upgrade to Windows Vista, post your doubts on my comments page, I am more happy to help here

Thursday, October 18, 2007

[Blog Action Day] - Watch Planet Earth

Ops, I suppose to post a blog on saving our planet earth at 15-Oct-2007 for Blog Action day, and I forgot about it.. , shit...I am getting old...:-(

Anywhere, since I am not very good about environment statistic, political issues on green effort, and how we could really help, I link up few environmentalist's blog for ur reading:

For me, my suggestion is simple. Go and get Planet Earth Series from BBC, (rent it, purchase it, or steal it from ur friend), spend a weekend, and watch it together with your family. I personal guarantee u will amaze and appreciate how beautiful our planet earth is.


Then, just think that, most of beautiful scenes or animals we seen from the series will probably disappear in 1-2 years time...shouldn't we all do somethings to preserve our beautiful lands...

Tuesday, October 09, 2007

[Google Idea] SMS Protect Me

Last month, a 8 years old girl was kidnapped, sexually assaulted and murdered. Till now, our police still trying their very best to looks for the monster. Almost every month, there always a news about a girl being kidnapped, rapped, or worst being killed. I am shocked when and where the accident happen, it happen while the victims taking late bus home, jogging early morning at public park, waiting to be pick up by friend, or taking car from shopping mall car park, and normal routine u and me are doing every day. I feels sick and upset when reading this kind of news.. What is going wrong with our world? what have happen to our soul? I am constantly thinking how technology could help to prevent his kind of situation, and this is how I come out the idea of SMS protect me service.


Here how it work.

  1. First, user needs to register themselves via a portal, given their contact detail, and group of 5 emergency contact numbers (User relative and friend).

  2. Upon registration, user are given a pair of PIN number, one number is use for protect me event registration (see below), one PIN number is use for emergency.

  3. When user feels unsafe at any place at any time, he/she could register a protect me event via SMS, with the format of [user pin] [event's detail] [event duration]. Here are few examples:

    • I waiting my friend to pick me up at office building A, and my pin code is “1234”, I will key in “1234, waiting friend at Office Bulding A, Gate 2, 20 minutes”

    • I am taking a cab back home at late night, “1234, taking cab number WEB1023 home, 30 minutes”

    • I am going to take my car from public car park, “1234, taking my car at Shopping Mall Apple, car park at floor B2, bay 92, 10 minutes”

  4. User send in the protect me event to a local service center number, system will registered the event

  5. When event expired, system will sends user confirmation SMS to end the protect me event

  6. To reply, user have to key in their pin number, follow by “yes” to end the protect me event, or “extend 10 minutes” to extend the event.

  7. If system didn't received user's confirmation after certain retry, system will send alert SMS message to his/her configured emergency contact numbers, if user's Telco provider provide Location base services, system will find user location, and alert his/her friend about user location.

  8. The emergency number is use when user are in danger, thus is in short and easy to send, user are just require to key in the emergency pin number, with any detail if needed, and send to the local service center number, system will straight away notify user friend and family.

  9. The emergency number is also useful when user force to terminate a protect me SMS event, thus, instead of using user given pin to end the event, user could always use their emergency pin to indicate they are in real danger.


Some possible options on extending the services

  • Integrate with local police patrolling system.

  • Partner with insurance company, user are charge per protect me SMS event, in case on any unwanted incident happen, user are insured.

  • Integrate with Phone GPS syetem.
So, what do u think? do share me your thoughts on the comments page, stay tune for my next idea.

PS: As always, if anyone (perhaps Yahoo Inc.) find these ideas interesting and wants to further build up those ideas, do drop me an email.