Friday, June 30, 2006

BootDisk2USBStick

If you want to boot from USB stick, you can try BootDisk2USBStick. (require .NET Framework 2.0)

See it here (in German) :-D

Monday, June 26, 2006

Java News Brief

A collection of Java articles from Object Computing, Inc.

See them here: http://www.ociweb.com/articles/publications/jnb.html

Sunday, June 25, 2006

Vài người vớ vẩn

Mẹ kiếp, đéo hiểu sao có những người vớ vẩn như vậy. Mang tiếng dân học Tin học chuyên ngành, chưa đến cái độ tuổi là già nhưng đã có những tư tưởng lười biếng. Ơ cũng xính làm kinh doanh, ơ mơ có một công việc nhàn nhã nhưng lại kiếm được nhiều tiền... Nhưng kiến thức, kinh nghiệm thì không chịu bồi bổ, tu dưỡng, suốt ngày cắm đầu vào chơi 3 cái trò game.

Với mình những người biết rõ mình đang ở đâu, khả năng của mình ở mức độ nào, biết mình muốn gì, có chí tiến thủ, có đầu tư thời gian để nâng cao kiến thức phù hợp với khả năng và định hướng của mình, người đó mới có thể nên người được.

Okie, chơi game, giải trí cũng tốt nhưng nên có hạn định về thời gian thôi chứ. Chứ cứ chơi game suốt ngày thì khi nào có với tới được cái ước mơ kinh doanh, công việc nhàn nhã nhưng lại kiếm được nhiều tiền kia?

Vớ vẩn và hoàn toàn vớ vẩn.

Saturday, June 24, 2006

I'm running V400

I've just bought a Logitech V400 Laser Cordless mouse - a dual laser engine and based on 2.4 GHz technology mouse. It has a sport style, solid design and fit in my hand. I love it!

For more information about V400, you can see here.


Friday, June 23, 2006

IntelliJ IDEA Demetra build 5350 is released

At an abnormal time, about 8:40 PM (Seoul time), JetBrains released IntelliJ IDEA Demetra build 5350.

2 nice changes that I want to see are supporting to import into SVN and new Ant itegration plugin.

Changes in build 5350 from 5321

* Ant. New Ant integration plugin included in the distribution.
* GWT Studio plugin included in the distribution.
* New project roots configuration UI.
* Subversion. Import into SVN action.
* Possibility to exclude certain packages from class name completion
and auto-import prompts.
* Emacs like expand word completion (Alt-slash).
* Other improvements and bugfixes.

Complete list of changes: here.

Tonight I will sleep late. :-)

Update: After installing IDEA Demetra 5350, I've found a bug. See it here.
Update: Another bug.
Update: UI changes


Update: SVN - "Browse changes" seems change. I don't know which build it changed but I see it the first time in this build (5350)



Update: One more bug.

Thursday, June 22, 2006

Phượng hoàng tung cánh

Phoenix rising
Annihilator

Day by day, watching you disappear
Wishing that you were still here beside me
On my own, swimming against the tide
Theres nobody on my side but your memory
Then you'll rise right before my eyes
On wings that fill the sky
Like a phoenix rising
Like a phoenix rising

Wings on fire, tearing into the night
Screaming into the light of another day
Carry me out the hurricane
Into the smoke and flame and well fly away
And well rise right before their eyes
On wings that fill the sky
Like a phoenix rising
Like a phoenix rising

Higher, higher, hear the thunder roar from above
Fire, fire, fire makes me whole
Into the smoke and flame and well fly away
And well rise right before their eyes
On wings that fill the sky
Like a phoenix rising
Like a phoenix rising

Wings on fire, tearing in to the night
And well fly away

HOWTO: Pick an open source license

You're considering to open your source code and want to choose the right license? Ed Burnette's article can help you to decide it.

Part 1
Part 2

I used it to choose the license for StringEx library.

Tuesday, June 20, 2006

StringEx v0.2.2 - first public release

What StringEx?
   A free Java library supports to extract values from text based on a regex. StringEx also supports to get sub regex constructs from initialized regex.

Why StringEx?
   'Cause somtimes I need it for my works and I do it for fun.

How to use?
   Assume that you create a StringEx instance with regex "((\\w+)(\\(\\d{2}\\)))(\\w+)", at that time

     + matchesWithRegex("Super(99)Java") will return true, while
        matchesWithRegex("Super(99Java") will return false.

     + extractAll("Super(99)Java") will return an array {"Super(99)", "Super", "(99)", "Java"}

     + extractAt("Super(99)Java", 0) will return "Super(99)"
        extractAt("Super(99)Java", 1) will return "Super"
        extractAt("Super(99)Java", 2) will return "(99)"
        extractAt("Super(99)Java", 3) will return "Java"
        extractAt("Super(99)Java", 4) will throw IndexOutOfBoundsException

     + getAllRegexConstructs() will return an array {"(\w+)(\(\d{2}\))", "\w+",
        "\(\d{2}\)", "\w+"}

     + getRegexConstructAt(0) will return "(\w+)(\(\d{2}\))"
        getRegexConstructAt(1) will return "\w+"
        getRegexConstructAt(2) will return "\(\d{2}\)"
        getRegexConstructAt(3) will return "\w+"
        getRegexConstructAt(4) will throw IndexOutOfBoundsException

License: LGPL

You can see the source code here. I will upload the binary, also the source code as soon as possible.



If you want to discuss about StringEx or report error, just leave a comment here.

Update: Change license policy.
Update: Change How to use

StringEx v0.2.1

Now StringEx can treat '(' and ')' as plain text when has backslash before. But still does not work with regex which contains sub regex constructs.

Example:
   + If regex = "\\(aaa", getAllRegexConstructs() will return an empty array.
   + If regex = "\\(aaa\\) bbb (\\d)", getAllRegexConstructs() will return an array which contains only "\\d".

StringEx v0.2

Now support to return an array of regex constructs and return a regex construct at specified index but in simplest way (a regex construct doet not contain any sub regex constructs, also regex construct does not contain '(' which does not use to specified a group)

Monday, June 19, 2006

StringEx v0.1

Why Sun puts groupCount() into java.util.regex.Matcher? Why not java.util.regex.Pattern?

As in J2SDK API, groupCount() will return the number of capturing groups in pattern. And the number of group only relates with regex, not the data which will be matched. So it should be implement in java.util.regex.Pattern.

A Sun's bug?

Update: As you can see in my StringEx, I need to create a Matcher from a Pattern with blah blah data to get the number of group in pattern.

Saturday, June 17, 2006

Nhạc quốc tế - một thời để nhớ

Mấy hôm nay trên Thăng Long, mọi người bàn tán với nhau rất sôi nổi về chủ đề âm nhạc với những bài hát của thập kỉ 80. Mọi người nhắc đến nào Bad Boys Blue, Joy, Sandra, New Kids On The Block (NKOTB), Kim Wilde,... Những kí ức của mình từ cái thủa bé tí lại tràn về.

Còn nhớ hồi bố mang cái cátsét Toshiba cùng với cái băng nhạc không lời, mình đã nghe biết bao nhiều lần không biết nữa năm mình 5 tuổi thì phải. Ban nhạc (có lẽ) mình nghe đầu tiên và cũng rất thịnh hành vào thời đó là Mô đần tắc kinh (Modern Talking), sau đó đến Joy, NKOTB, Bad Boys Blue vào những năm cuối thập kỉ 80.

Mình còn nhớ cái băng cátsét đầu tiên mình mua là của Joy. Hồi đấy làm quái gì có Maxell, TDK, Sony. Toàn băng cátsét do Việt Nam sản xuất xấu mù, xấu điên, chất lượng chán đời. Cái băng Joy đấy chắt chiu mãi mới mua được. Vỏ băng làm trông như bìa cuốn sách, có dán nilong ở ngoài lồng ảnh vào, trông gồ gề, xấu xí. Thế nhưng cái băng cátsét đầu tiên của nhà mình (do bố mình mang từ Tiệp về) lại là TDK cơ đấy, oai không? Hồi đầu chỉ có băng loại 45 phút, 60 phút thôi, đến mãi sau này mới có băng 90 phút.

Không chỉ băng cátsét đâu. Hồi đấy mình cũng mua được khá nhiều băng viđêô đấy chứ. Nào NKOTB này, nào Pet Shop Boys này, nào Modern Talking này, cả cái băng tuyển chọn có cái bài khỉ gió gì của bọn Saigon Kick nữa chứ...

Lên cấp 3 rồi thế mà vẫn thỉnh thoảng đạp xe cùng thằng T đi mua báo Thanh Niên (hồi đó, báo Thanh Niên có 1 trang chuyên về nhạc quốc tế mà), mò xuống Digital Music Quang Trung xem băng, hay mua vé xem MTV Top 20 ở Lý Thường Kiệt. Rồi còn chép lời bài hát, mua sách có lời bài hát nữa chứ...

Những kỉ niệm đẹp làm sao!

Friday, June 16, 2006

Love to be loved by you

Love to be loved by you
Marc Terenzi

I can’t believe I’m standing here
Been waiting for so many years and
Today I found the Queen to reign my heart
You changed my live so patiently
And turned it into something good and real
I feel just like I felt in all my dreams
There are questions hard to answer
Can’t you see…

Chorus:
Baby, tell me how can I tell you
That I love you more than life
Show me how can I show you
That I’m blinded by your light
When you touch me I can touch you
To find out the dream is true
I love to be loved by you

You're looking kind of scared right now
You're waiting for the wedding vows
But I don’t know if my tongue’s able to talk
Your beauty is just blinding me
Like sunbeams on a summer stream and
I gotta close my eyes to protect me
Can you take my hand and lead me
From here please

Yeah...yeah...

Chorus:
Baby, tell me how can I tell you
That I love you more than life
Show me how can I show you
That I’m blinded by your light
When you touch me I can touch you
To find out the dream is true
I love to be loved, I need to be loved
I love to be loved by you

I know they gonna say our love's
Not strong enough to last forever
And I know they gonna say
That we’ll give up because of heavy weather
But how can they understand
That our love is just heaven sent
We keep on going on and on
'Cause this is where we both belong…

Chorus:
Baby, tell me how can I tell you
That I love you more than life
Show me how can I show you
That I’m blinded by your light
When you touch me I can touch you
To find out the dream is true
I love to be loved, I need yes I need to be loved
I love to be loved by you

Yes I love to be loved by you

Friday, June 09, 2006

TestNG tutorial

Here is TestNG tutorial: http://membres.lycos.fr/testng/. It's continuing...

Thanks Claude for hard works! :-)

Event handling in Java

There are 3 tips for you to implement event handling in Java. Some code is not correct but it's not hard to fix.

+ Using the EventObject Class
+ Implementing the EventListener Interface
+ Writing an Event Producer

Tomorrow I will start to work for StringEx. :-)

Wednesday, June 07, 2006

Java's binary search is broken and how to fix

Read it here.

Khối u

Lâu rồi những khối u của mình tưởng đã chịu nằm yên mà nay bỗng một cái lò mò ngóc dậy.

Đi khám mãi rồi, trước còn chích một cái rồi. Cũng xét nghiệm nội tiết tố, cũng uống thuốc, tiêm tiếc đủ kiểu mà chúng nó chẳng biến đi hẳn, cứ thỉnh thoảng lại lóc ngóc lên. Mà cũng lạ cơ, chúng nó cứ xuất hiện một thời gian ngắn rồi lại lặn đi. Hôm nọ mẹ hỏi chuyện tự nhiên mình mới để ý nên sờ thấy 1 cái. Chứ không có khi mình quên xừ chúng nó rồi ấy chứ.

Chuyện này cũng chẳng nên nói với M làm gì cho cô ấy lo lắng. Hôm nay cứ nhớ lại lúc hôm qua nói chuyện chưa tìm thấy bạn Báo, cô ấy phì cười, mình lại buồn cười. :-)

Tuesday, June 06, 2006

IDEA IntelliJ Demetra build 5321 was released

Yesterday night, JetBrains released IDEA IntelliJ Demetra build 5321.

Changes in build 5321 from build 5289:

* J2EE. Struts Assistant plugin included in the distribution.
* J2EE. Support for error highlighting and completion for EJB QL statements
embedded in string literals and XML.
* Inspections. Reworked profile configuration UI.
* UI Designer. JGoodies Forms layout manager support.
* UI Designer. Possibility to suppress form inspections.
* Other improvements, bugfixes and performance optimizations.

Complete list of changes: here