Thursday, August 31, 2006

Mysaifu JVM 0.2.9

Mysaifu JVM was updated 5 days ago with new supports for Windows CE 5.0

You can find out more about Mysaifu JVM here.

IDEA Plugins contest

Write plug-ins now and earn prizes later:

Update: An article about writing IDEA plug-in. Don't wait anymore, earn prizes now ;-)

Wednesday, August 30, 2006

IntelliJ IDEA 6 build 5646 is released

JetBrains released IntelliJ IDEA 6 build 5646.

Changes in build 5646 from 5622:

* Possibility to suppress Unused Property inspection in .properties files.
* VCS. Update and commit are performed in background.
* VCS. Actions to move files between changelists and to select files
in Changes view.
* IDETalk. SSL support.
* Permute arguments quickfix on method calls which have reversed order
of arguments - for example, (int,String) instead of (String,int).
* VCS. New search scope "Changed files".
* OpenAPI. Possibility to plug custom FormattingModel.
* OpenAPI. Custom suppression actions for inspections.
* Bugfixes and minor improvements.

Complete list of changes here

Update: A bug

Tuesday, August 29, 2006

Manifest drives me crazy

I have a manifest file. Here is its content:

Manifest-Version: 1.0

I create a BAT file to run my application. Here is its content:

java -cp ./lib/converter.jar;./lib/comm.jar
-jar ./RFReader2SerialPort.jar

When I run it, command prompt shows me ConnectionException. It means my application cannot connect to reader (via socket connection). It's not correct, my reader still working. I tried some times and got another error, NoClassDefFoundError, seems it cannot find comm.jar

But if I change the BAT file to

java -cp ./RFReader2SerialPort.jar;./lib/converter.jar;./lib/comm.jar

It works well.

What happens with my manifest? Or do I miss something?

JavaTech: An Introduction to Scientific and Technical Computing with Java

An easy to read book, read here

Another resource for Java beginners:

What is a small ISV?

+ ISV stands for Independent Software Vendor
+ An ISV is not a consulting shop but sometimes it does consulting
+ An ISV is not a value-added reseller but sometimes it resell something from other stuff
+ An ISV makes, markets and sells software by itselt. This means it accepts the risky from its products and maybe its customers will go away and take it alone
+ A small ISV is not big. A small ISV has 5 developers, 25 developers, 50 developers but if over 100 developers, you should consider it still small or not

Monday, August 28, 2006

You're gone

You're gone
Diamond Rio

I said hello I think I'm broken
And though I was only jokin'
It took me by surprise when you agreed
I was tryin' to be clever
For the life of me I never
Would have guessed how far the simple truth would lead
You knew all my lines
You knew all my tricks
You knew how to heal that pain
No medicine can fix

And I bless the day I met you
And I thank God that He let you
Lay beside me for a moment that lives on
And the good news is I'm better
For the time we spent together
And the bad news is you're gone

Lookin' back it's still surprisin'
I was sinking you were rising
With a look you caught me in mid-air
Now I know God has His reasons
But sometimes it's hard to see them
When I lie awake and find that you're not there
You found hope in hopeless
You made crazy sane
You became the missing link
That helped me break my chains

And I bless the day I met you
And I thank God that He let you
Lay beside me for a moment that lives on
And the good news is I'm better
For the time we spent together
And the bad news is you're gone
The bad news is you're gone

Saturday, August 26, 2006


Today I went to play rafting with my company. After about 3 hours start from Seoul, we finished the journey. Nothing special at the place we'd gone but playing rafting, it's another story.

Most of time we stayed in the boat on quiet surface of water. It's OK 'cause we are not professionals also this is the first time I play rafting. But sometimes we met bumpy area and the team need to work together to win. I had a lot of joy and fun.

But the most interesting thing is I have an opportunity to analyze what I read in "Practices of an Agile Developer: Working in the Real World": Developing software like surfing (at this time, rafting), the way to get success is adapting to the waves which come non-stop to dominate them.

This journey is a good memory for me when I were working in Korea. In the future, I want to have more opportunities to play rafting and other danger games. And of course, I hope that my girlfriend will join with me.

Friday, August 25, 2006

Be careful before install IE 7 RC 1

I've just install IE7 RC1. After restart, I want to be crazy when Windows shows me "Explorer.exe cannot run because Normaliz.dll could not be found".

After searching around on Internet, I found the solution (God blesses me, I have a Linux notebook :-D).

If you want to install IE 7 (seem this problem relates with all IE7 versions, included Beta 2, Beta 3 and RC1, which maybe happen when you install or uninstall IE7), please backup Normaliz.dll first. After install IE 7, don't be crazy if you meet this problem. Here is the solution:

+ Press Ctrl + Alt + Del then click Task Manager
+ In tab Applications, click New Task...
+ In Create New Task dialog, click Browse...
+ In Browse dialog, copy Normaliz.dll you already backed up to Windows\System32
+ Now run explorer.exe (in Windows folder) and smile with a large mouth

Buildix - The Agile Development Platform

Buildix's homepage:

Some blogs

+ Buildix
+ Introducting Buildix - The Agile Development Platform on a disk
+ Buildix: Project in a Box


+ Agile software development
+ Manifesto for Agile Software Development
+ Continuous Integration

Thursday, August 24, 2006

A bug in IntelliJ IDEA 6 build 5622 relate with Thread class

See it here.

Seems JetBrains needs to do many things to release IntelliJ IDEA 6 final :-(


Riêng hôm nay đã gửi post này là post thứ 5 rồi, spam lắm thế.

Công việc đã vượt được qua phần khó khăn nhất rồi. Giờ mình đã có thể làm việc với cổng serial được cả bằng .NET lẫn Java. Còn ngày mai với tuần sau nữa để hoàn thành công việc. Vẫn còn nhiều thứ để làm...

Firefox 2 Beta 2 and FlashGot

With the new beta version of Firefox 2, you will not have the option to download a file by using FlashGot when you click the link (and option to open the file by program you want). You must right click and then FlashGot Link or Ctrl + F1.

How can I open it when you only provide Save and Cancel option?

My short answer for Java closures

Thanks, but no thanks. Don't make my life more complex. In Vietnam, we're typing worker so it's not difficult to type a little more :-D

Some acronyms

Sometimes you see AFAIK, FYI, KISS, DRY,... and you don't understand what the hell are here. But they're only acronyms. Some of them are very popular in general world, some of them are popular in IT world only. And here are some of them:

+ KISS: Keep It Simple Stupid
+ WYSIWYG: What You See Is What You Get
+ DRY: Don't Repeat Yourself
+ LOL: Laughing Out Loud
+ AFAIK: As Far As I Know
+ IMO: In My Opinion

and there are many more.

You can found more here, here and here.

Mysaifu JVM

These days I play around with Pocket PC & Windows CE but I stuck with communication with serial port. I played with .NET and now Java but I did not resolve my problem yet. But I found an up-and-coming JVM for Pocket PC, it's Mysaifu, from Japan.

As you can see the Mysaifu's objective, the author of Mysaifu wants to make a JVM which conforms to J2SE. It means that you can write an application for PC and then run on Pocket PC without limitation. I think it's a nice project.

If you have some experience with other JVMs for handle devices (except the one from Sun) you seems don't like them very much. An example is Ewe VM. When you write an application to run on Ewe VM, your source code will look like Visual J++, not pure Java.

If you have time, and of course, a Pocket PC, please try to play with Mysaifu you will have something fun.

FYI: A ported library of Java Communications API for Windows CE/Pocket PC -->

Wednesday, August 23, 2006

New method in Java SE 6 makes IDEs more difficult

In Java SE 6, Sun adds to System a static method console() which returns an instance of But at this time, most of IDEs do not accept to use output pane as a console so in IDE when you run your application tries to access methods of System.console(), you will have a NullPointerException.

Tuesday, August 22, 2006

How to mount a flash drive manually

Today my Ubuntu 6.06's X Windows is broken, I ask my problem on and a member ask me to post xorg.conf to forum to help him see what happens with my Ubuntu.

With my very little experience, I don't know how to get the content of xorg.conf. Suddenly, I remember my flash drive. EUREKA!!!

I tried to find a solution to mount my flash drive and found here and here. The first post is very good one but when I try

sudo mount -t vfat -o uid=t800t8,gid=users /dev/sda /media/flash

it doesn't work.

OK, try with

sudo mount -t vfat -o uid=t800t8,gid=users /dev/sda1 /media/flash

Now everything is fine. I can copy xorg.conf and Xorg.0.log to my flash drive.

With the second post, I know how to unmount a device.

sudo umount /media/flash

Friday, August 18, 2006

TestNG 5.1 is released

A few minutes ago, Cedric announced TestNG 5.1 but he uploaded it some days ago for testing.

Now waiting for Mark (and Hani?) update their TestNG-J...

IntelliJ IDEA's trend

I tried to find IntelliJ IDEA in Google Trends and here is the result:

If it's correct, IDEA should support for Czech's language and Chinese, not Japanese.

Just for fun :-D

Gyach-E - Yahoo! Messenger for Linux

What make the differences between Gyach-E and other IM clients (that support Yahoo! Messenger)?

+ Gyach-E can log on with invisible mode (Gaim can't do)
+ Gyach-E can voice chat others (Kopete and Gaim can't do)
+ Gyach-E supports web cam (Gaim can't do)
+ Gyach-E can show popup when someone logs on and logs off (Kopete and Gaim, again Gaim, can't do)
+ Gyach-E can show popup when receives a new mail (with a voice message) (Gaim can't do)
+ Gyach-E supports to open your Yahoo! Mail directly from Gyach-E (Kopete and Gaim can't do)
+ Gyach-E can detect an user is invisible if he's online then change status to invisible (nice feature, huh?)
+ Gyach-E can keep connection really well (Try to log on to your account by another computer, it will be out immediately)

If you only need to chat with other YM users, Gyach-E is for you.

(I will provide more when I found any nice features Gyach-E can do)

How to install Gyach-E? (Thanks endersshadow)

1. Download, and save it to your home directory (important!).

2. Run these commands in the terminal, in sequential order:

tar -xjf gyach-install.tar.bz2
cd gyach
sudo ./install

Now try to run Gyach-E by "gyach" at terminal console.

Note: Maybe you need to install libtldl package to run Gyach-E.

Thursday, August 17, 2006

Black belt

Do you want to have Judo black belt? Oops, sorry, Java black belt. Come here.

It's a good site which has many volunteers they participate to guide you the basic of J2SE, Servlet, JSP, Spring, Hibernate and many more. It's really good for you if you want to get Java certificates.

Learn and contribute!

No Dolphin anymore, get the first build of JDK 7 now

No Dolphin anymore, get the first build of JDK 7 now.

Wednesday, August 16, 2006

IntelliJ IDEA 6 build 5622 is released

About 7 minutes ago, JetBrains release IntelliJ IDEA 6 build 5622. Here are changes in this build from build 5594:

* HTML Preview plugin for previewing Web pages in an embedded Mozilla
* Bugfixes and minor improvements.

For more details, see here.

Tuesday, August 15, 2006

Sun and open source Java

According to some news and blogs, Sun will open source Java ME (Java Micro Edition) and some components of Java SE (Java Standard Edition). Sun plans to open source javac compiler and HotSpot virtual machine, two crucial components of the Java SE platform, by the end of the year. The rest of the SE platform should be open sourced during the next year.

Monday, August 14, 2006

My desk

I want to replace my Samsung Sens X10 by a PC with Athlon 64 X2 4600+, 2 GB RAM, 300 GB HDD and 20' wide screen.

Can you help me? ;-)

One thing I don't like in Ubuntu Dapper Drake

I don't understand why in Ubuntu Dapper Drake when I change wireless network profile, it's too slow. Also when I apply a chosen profile, it's more slow.

Another problem in SuSE 10.1 relates with wireless network: I saved my wireless network's properties but every time I reconnect, I need to re-enter my network key.

I don't have these problems with a very little experience with Fedora Core 5.

Thursday, August 10, 2006

Decided to move

I decided to move my laptop from Windows to Ubuntu (Dapper Drake) after 3 weeks using dual-boot (Windows - Ubuntu). I only have a little experience as a Linux user but Ubuntu gave me an attractive impression. It supports me basic features I need also it's easier to use than SuSE and Fedora. Another thing, it's really fast and only need 1 CD to install.

After my Samsung Sens X10 is fixed, I will install Ubuntu in my Dell Inspiron 8600.

And beyond this, I decided to move a big bigger thing... ;-)

Tuesday, August 08, 2006

A song for Vietnamese men who are lovelorn

Just give this song for your (ex-)girl friend and live for yourself.

Lệ Đêm (by Linh Kent)

(Thanks my young cousin, a jolly guy)

Friday, August 04, 2006

IntelliJ IDEA Demetra build 5594 is released

About 10 minutes ago, JetBrains released IntelliJ IDEA Demetra build 5594. This is bug fix build. More detail, you can see here.

This weekend I have many things to do, they are included trying this build. And I cannot use Internet :-(

Update: And the first bug.

HOWTO setup xvnkb to type Vietnamese in Ubuntu

Note: If you don't have "gcc", "cvs" and "make" on your Ubuntu, please install them first

$sudo apt-get install gcc xlibs-dev libxft-dev make cvs

1. Get xvnkb source code from CVS (When it prompts password, please press Enter)

$ cvs -d '' login
$ cvs -z3 -d ''
checkout xvnkb

2. Make the source code

$ cd xvnkb
$ ./
$ ./configure
$ make

3. Install xvnkb

$sudo make install

Now you can start to type Vietnamese by using "xvnkb" at terminal console.

Update: After install xnvnkb, you can type Vietnamese in Word or gedit but cannot in Firefox. To type Vietnamese in Firefox, you need to install CHIM extension for Firefox from this address:

Get free domain name now

You want to have a free domain name like mine ( Try it.

New bug in IntelliJ IDEA build 5581

See it here.

Ngày nhiều việc

Gần 6h tối rồi, xem hôm nay làm được những trò gì nào.

+ Reconstruct cái cấu trúc của dự án
+ Đánh vật với cái Ant build dài 488 dòng
+ Download được 3 album nhạc: Queen - Greatest Hits 2, Lifetime Of Romance - Be My Love và Lifetime Of Romance - Heartbreakers
+ Download được 2 cuốn sách
+ Cài cái IETab extension cho Firefox + viết hướng dẫn cho cái H nhà mình
+ Cơm ăn no
+ Rửa mặt 2 lần
+ Ngáp nhiều cái
+ Giờ thì đang mỏi mắt, buồn ngủ và chuẩn bị report một lỗi của IDEA

Ha ha, mình làm được khối việc đấy chứ.

Giờ này cô ấy đang làm gì nhỉ? Mấy hôm nay ở nhà đang bão nên giờ này chắc cô ấy đang ngủ khì. Hôm trước nói chuyện với cô ấy thấy cô ấy thật vui vẻ với nụ cười có lẽ lâu lắm mình mới thấy ở cô ấy.

"Em cứ yên tâm nghỉ ngơi ở nhà, không phải lo lắng gì cho anh đâu. Mọi việc của anh tốt cả. Báo cáo em, đêm qua anh tiêu diệt được 4 con muỗi."

Thursday, August 03, 2006

How do you construct your projects?

In IDEA 6, default project's structure has some changes. And everybody has his own way to construct his projects. But I want to know what is best way to organize it (at least, the best way with IDEA).

In my opinion, I construct my projects like this

|------- \Module1
| |
| |------- \src
| |------- \test
| |------- \javadoc
| |------- \lib
| |-------
| |------- build.xml
|------- \Module2
| |
| |------- \src
| |------- \test
| |------- \javadoc
| |------- \lib
| |-------
| |------- build.xml
|------- \build
| |
| |------- \production
| | |
| | |-------- \Module1
| | |-------- \Module2
| |
| |------- \test
| |
| |-------- \Module1
| |-------- \Module2
|------- \dist
| |
| |------- \Module1
| |------- \Module2

How about your opinion?

A bug in IntelliJ IDEA build 5581

See it here.

Sometimes the icon of files in tab bar will disapear. If I close IDEA then reopen, they will appear.

Wednesday, August 02, 2006

Subversion + Apache2 + SSL on Ubuntu in 10 steps

1. Install required packages

sudo apt-get install subversion libapache2-svn
libapache-mod-dav apache2

2. Enable SSL support in Apache

sudo a2enmod ssl

3. Stop Apache

sudo /etc/init.d/apache2 stop

4. Let Apache2 listen on port 443

sudo gedit /etc/apache2/ports.conf

Add to the end of file

Listen 443

5. Create SSL certificate

sudo apache2-ssl-certificate

Provide some information following the prompt

Country Name: <country_code> (example: VN)
State or Province Name: <state_name>
Locality Name: <city_name>
Organization Name: <organization_name>
Organization Unit Name: <organization_unit_name>
Server Name: <server_name>
Email Address: <email_address>

6. Configure site

sudo cp /etc/apache2/sites-available/default

then edit

sudo gedit /etc/apache2/sites-available/<sitename>

  1. Change NameVirtualHost to NameVirtualHost *:443
  2. Change <VirtualHost> to <VirtualHost *:443>
  3. Append before </VirtualHost> the following

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLProtocol all

Then create a symbol link to your site configuration in sites-enabled

sudo ln -s /etc/apache2/sites-available/<sitename>

Note: <sitename> should be same as your hostname

7. Create a Subversion Repository

sudo svnadmin create /var/lib/svn
sudo chown -R www-data:www-data /var/lib/svn
sudo chmod -R g+ws /var/lib/svn

8. Use Apache for Authentication

sudo htpasswd -c -m /var/lib/svn/conf/htpasswds <username>

9. Configure mod_dav

edit dav_svn.conf

sudo gedit /etc/apache2/mods-available/dav_svn.conf

DAV svn
SVNPath /var/lib/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /var/lib/svn/conf/htpasswds
Require valid-user

Disable anonymous browsing by commenting out the following:

# Require valid-user

10. Start Apache

sudo /etc/init.d/apache2 start

Now try to browse https://<sitename>/svn and import something

Tuesday, August 01, 2006

Nice tool for Bloggers

Blogger for Word is a nice tool for bloggers. See it here (in Vietnamese) and here (in English) :-D

New blog's address

Now you can visit my blog via 3 address:, and


Trưa nay ngồi ăn cơm một mình tự nhiên lại nhớ đến có lần nói chuyện với anh C (anh ấy đã nói với mình: "Nếu phải lựa chọn giữa 2 công việc, anh sẽ lựa chọn công việc ít tiền hơn một chút nhưng được làm cái mình thích") mình lại ngẫm đến mình.

"Em cũng muốn thế lắm nhưng khốn một nỗi em chưa tìm được cái công việc em thích làm mà tiền lại ít hơn một chút. Giữa lựa chọn hiện giờ, tháng hơn 1000$ ở đây và tháng cùng lắm 300 - 400$ ở VN, thì cái khoảng chênh lệch kia là cả một vấn đề lớn rồi." (Tất nhiên là mình nhìn nhận trên thực tế khả năng của mình và cả môi trường xung quanh nữa.)

Cũng vì cuộc sống, vì tiền mà phải làm ở một công ty thế này. Có những thằng tốt như Park, Nam, Lee nhưng cũng có những thằng củ chuối như Kang. Chúng nó nhìn nhận mình làm việc thế nào dựa vào việc trên màn hình của mình hiển thị gì. Nếu mình vào Internet, đọc sách, mẹ khỉ, "thằng này có vẻ lười". Thiếu điều mình mở cửa sổ code quay bốn phía và mộng mơ.

Cuộc sống chó thế đấy. Mà mục đích của mình sang đây là để làm gì? Phải rồi, KIẾM TIỀN. Mẹ kiếp, mình đang KIẾM TIỀN đấy chứ...