Abandoned children

Hardship

Cách đây một thời gian, có người hỏi tôi vì sao không viết bài giới thiệu các kiện tướng cờ của Việt Nam, mà lại giới thiệu “tụi Tàu“?

Ngần ngừ 1 lúc, tôi mới trả lời, đại khái là đã có kha khá tài liệu viết về đề tài đó rồi – nhưng tôi chưa có đủ thời gian tổng hợp và trình bày lại cho phù hợp.

Thực ra ngoài lý do đó, còn 1 lý do nữa mà tôi đã không dám nói ngay lúc đó. Đó là cuộc đời và sự nghiệp các kỳ thủ cờ tướng VN hầu hết rất vất vả, đa số vướng bận ít nhiều khó khăn về cuộc sống cá nhân, kể cả các kỳ thủ hàng đầu. (các bạn tự Google về Hà Quang Bố, Hứa Văn Hải, Trần Quới, Mai Thanh Minh, Trịnh A Sáng, Trương Á Minh, Nguyễn Thành Bảo, Nguyễn Vũ Quân, Bùi Dương Trân, Phạm Quốc Hương, … nhé – vài giai thoại vui còn đa số về “kế” lừa lọc, cơm áo gạo tiền, khắc khổ yểu mạng, etc).

Bên TQ truyền thống cờ tướng rất lâu đời, và thường kinh tế phát triển nhanh đủ mạnh để phát triển thể thao nói chung, và phong trào cờ nói riêng. Nên những danh thủ đã đạt thứ hạng cao thì có thể đảm bảo cuộc sống, viết tự truyện đọc lên ly kỳ, hấp dẫn chẳng kém gì tiểu thuyết võ hiệp.

Nói về cờ vua, có vẻ được Nhà nước và địa phương quan tâm nhiều hơn cờ tướng (dù phong trào thì cờ tướng phổ biến hơn), nên có nhiều đại KTQT hơn. Tuy vậy những kỳ thủ trẻ cũng ít có điều kiện để phát triển hết khả năng (trừ một số ít trường hợp, như được T.S Hoàng Minh Chương giúp đỡ). Có trường hợp như Nguyễn Ngọc Trường Sơn từng đoạt chức vô địch U-10 thế giới , nhưng sau đó tụt lại hẳn và hiện nay chỉ cố gắng lọt vào Top 100 :

http://nld.com.vn/2010032708502806p0c1026/than-dong-co-vua-nguyen-ngoc-truong-son-toi-can-mot-bo-vai-de-tua.htm

.

Trường hợp của Sơn, dù không được điều kiện gia đình như Quang Liêm, nhưng theo tôi cũng vẫn là khả quan bởi cậu ta đã ý thức được khó khăn và đã cố gắng được 1 cơ sở nào đó để ít nhất có thể tự lo cho bản thân và chuẩn bị cho tương lai.

.

Unlucky children

Đọc báo, thấy được ngày càng nhiều những trường hợp nhiều trẻ bất hạnh hơn nữa – không có tố chất như TS, chưa thể hiện được kỹ năng gì, không có tình thương của cha mẹ (thậm chí bị chính những bậc này ruồng bỏ , ngược đãi, lạm dụng… ngay từ lúc chưa biết tự vệ, thậm chí chưa có ý thức) .

Ai sẽ cứu vớt và nuôi dưỡng các em?

http://vietnamnet.vn/vn/tin-nhanh/36244/run-ray-nhat-xac-hai-nhi-o-cv-thong-nhat.html

http://vnexpress.net/gl/doi-song/cau-chuyen-cuoc-song/2012/08/ba-lao-74-tuoi-hon-10-nam-di-nhat-xac-hai-nhi/

http://www.tienphong.vn/xa-hoi/phong-su/599229/Nhung-dua-tre-bi-bo-roi-mang-ho-Huynh-tpp.html

http://antg.cand.com.vn/vi-vn/phongsu/2011/1/74381.cand

http://soha.vn/xa-hoi/xot-xa-so-phan-nhung-dua-tre-bi-bo-roi-20120922102710158.htm

http://vietq.vn/mobile/6/chat-luong/48-chuyen-doi-cua-nhung-dua-tre-bi-bo-me-bo-roi

Tương lai khi lớn lên liệu các em có vượt qua được những tổn thương trong quá khứ (mà bản thân các em không hề có lỗi) ?

http://www.thanhnien.com.vn/pages/20101007/su-that-dang-sau-nhung-dua-tre-so-sinh-bi-bo-roi-bai-3-nhung-nguoi-me-ban-con.aspx

http://afamily.vn/doi-song/tiep-can-duong-day-de-thue-khung-o-ha-noi-20130501124023268.chn

http://www.nguoiduatin.vn/dang-thuong-nhung-dua-tre-bi-bat-coc-sang-trung-quoc-a52215.html

http://www.tuthien.vn/v/tre-lang-thang/phan-doi-nghiet-nga-cua-nhung-dua-tre-bi-bo-roi-tong-co-ra-duong-an-xin_213.html

http://www.nguoiduatin.vn/bi-mat-cua-nhung-dua-tre-bi-ep-ban-hang-rong-a36995.html

http://xahoi.com.vn/xa-hoi/phong-su/vach-tran-nhom-bo-me-chan-dat-chinh-con-de-o-hai-phong-p1-125572.html

http://afamily.vn/doi-song/luat-ngam-trong-nhung-lo-dao-tao-tre-an-xin-20120610094435660.chn

. . .

Injuries

.

Có những trường hợp , không phải bỏ rơi từ nhỏ , nhưng trong quá trình nuôi dưỡng vẫn có những bậc phụ mẫu vô tình gây tổn thương cho con đẻ của mình . Điều đáng ngại là, sau này tương lai bản thân các người con này có thể bị mặc cảm “ruồng bỏ”, “ngược đãi”, dẫn đến tâm lý oán hận, hành vi sai trái (thậm chí lệch lạc nhân cách), gây ra nhiều phiền toái và tác hại cho gia đình cũng như cộng đồng…
Những tác động tiêu cực đó có thể lan truyền sâu và xa nhiều hơn chúng ta tưởng, nếu chỉ đọc qua trên báo thường ta sẽ không hình dung hết.

.

Một vài trường hợp người thật việc thật mà tác giả bài này đã từng được tận mắt chứng kiến, mặc dù có thể chỉ là “muỗi” đối với một số người, nhưng theo tác giả nhận thấy đã có ảnh hưởng nhất định tới cuộc sống của những ‘đứa trẻ’ đó – ít nhất là cả chục năm sau vẫn còn dấu vết…

.

1. Hải

(to be updated)

.

2. Hòa

(to be updated)

.

3. Phượng

(to be updated)

.

4. Hảo

(to be updated)

.

. . .

Be strong, keep it up.

.

There is no such stupid thing as ruining your own life…

Know who helped you, who is helping you. And help them.

.

./.

Posted in Feeling, Skill | Leave a comment

Hater is just Loser

Phần tiếng Việt

Cuộc sống vốn dĩ đã phức tạp. Đừng làm cuộc sống chúng ta phức tạp hơn…” . Tại sao chúng ta lại để phiền muộn xảy ra nhiều hơn như nó nên có ?

Câu trả lời sẽ có rất nhiều dạng, và hầu như mỗi tôn giáo đều có những câu trả lời rất hay cho vấn đề trên. Ở đây tôi chỉ nêu ra 1 khía cạnh, Ganh Tị, với hy vọng sẽ có thể giúp vài người – ít nhất là những người thân thuộc của tôi – phần nào đơn giản hóa được những vấn đề phức tạp… (thay vì phức tạp hóa những điều đơn giản).

.

Ghen tỵ, bào mòn yêu thương

Trong cuộc sống, không ít người trong chúng ta không tránh được việc ghen tỵ với những người xung quanh. Họ sống một cuộc đời oán hờn và đầy trách móc, luôn tìm mọi cách để đánh bại một ai đó, nhưng cuối cùng, lại làm tổn thương bản thân mình.

.

Ghen tỵ là một trạng thái cảm xúc bình thường của con người, với anh chị em ruột còn có sự ghen tỵ huống gì với người xung quanh. Ghen tỵ, đôi lúc làm chúng ta trở nên mạnh mẽ để tìm kiếm những gì mình muốn. Thế nhưng ghen tỵ một cách thái quá chỉ làm cho cuộc sống của chúng ta càng ngày càng trở nên mệt mỏi và rã rời hơn.

Tự gây thương tổn cho tâm hồn

Nhiều người, suốt đời vì ghen tỵ mà không ngừng tìm cách hãm hại người khác, không những không có được điều mình muốn mà còn làm cho bản thân càng trở nên xấu xa trong mắt người khác. Tình cảm là thứ dễ tạo nên sự ghen tỵ nhất, khi ai đó cảm thấy tình cảm mà ai đó giành cho mình quá ít, họ sẽ tìm mọi cách để có được tình cảm của người họ yêu thương. Nhưng nếu không từ thủ đoạn, ghen tỵ một cách mù quáng họ sẽ gây nên những sai lầm đáng tiếc. Vậy nên, hãy kiềm chế sự ghen tỵ của bản thân, hãy để cho bản thân được trân trọng và yêu thương một cách đúng nghĩa.

Đừng vì ghen tỵ mà làm những việc khiến người khác căm ghét và coi thường, cuối cùng người tổn thương chính là bạn.

.

Đẩy người khác rời xa chúng ta

Khi ghen tỵ một ai đó, chúng ta không những tạo nên khoảng cách giữa ta với họ mà còn đẩy họ rời xa chúng ta. Không dễ gì để chấp nhận một ai đó được ưu ái hơn mình, thay vì dùng thủ đoạn bạn hãy yêu thương và vun vén cho người đó, đến một lúc nào đó bạn cũng sẽ có được sự ưu ái đó từ một người yêu thương bạn thật lòng. Không việc gì chúng ta phải tranh một người không còn dành nhiều tình cảm cho chúng ta. Bởi, dù bạn  có làm gì đi chăng nữa, tình cảm ấy cũng đã thay đổi. Vậy thì giành giật nó còn có ý nghĩa gì nữa đây?

Đừng đẩy ai đó rời xa chúng ta chỉ vì sự ghen tỵ vì tình cảm là thứ dễ dàng thay đổi nhất. Hãy trân trọng thời khắc bạn được yêu thương và nếu ai đó không còn dành nhiều tình cảm cho bạn, hãy để họ ra đi. Những ai yêu thương bạn sẽ ở lại bên bạn.

.

Bi ai lớn nhất đời người là ghen tỵ

Trong kinh Phật đã nói rằng “bi ai lớn nhất của đời người là ghen tỵ!” Vậy nên, đừng nuôi dưỡng sự ghen tỵ trong bạn. Hãy sống bao dung và yêu thương những người xung quanh bạn. Chấp nhận sự thay đổi để đến một lúc nào đó, trong tình cảm bạn có sự thay đổi cũng sẽ không bị sự ghen tỵ che mờ lý trí.

Ghen tỵ là điều không thể thiếu trong cuộc sống, bởi là con người ít nhiều ai cũng có tính ghen tỵ với người xung quanh. Ghen tỵ vì họ học giỏi hơn, họ tài giỏi hơn, họ được yêu quý hơn. Nhưng hãy nhớ rằng, càng ghen tỵ, người đáng thương nhất chính là bạn.

Đừng bào mòn tâm hồn mình bằng sự ghen tỵ bạn nhé, cuộc sống có thể thay đổi và bất kỳ ai cũng có những lúc ghen tỵ nhưng hãy dùng lý trí để xử lý mọi việc. Đừng nuông chiều cảm xúc để bản thân ngày càng ích kỷ và nhỏ nhen. Hờn ghen, có thể hủy hoại cuộc đời một con người, vậy nên hãy bao dung, rộng lượng và yêu thương nhau nhiều hơn, bạn nhé!

.

(source: http://hanhtrinhdelta.edu.vn/ky-nang-mem/ghen-ty-bao-mon-yeu-thuong/ )

.

English part

A HATER is a loser who simply cannot be happy for another person’s success . So rather than be happy they make a point of exposing a flaw in that person.

If you have never achieved something big/worthy in your life, you may never see a hater ;-) . But that is seldom true, fortunately!

Maya Angelou’s Definitions Of A Hater

The word ‘HATER’ is one that I have always disliked.

Every time I feel as though someone is ‘hating’ on me, I end up feeling guilty because I ask myself what makes me think that I am so special that another person would be envious and jealous of who I am?

I always felt as though the problem was with me for even believing I could be ‘hated’. I thought it was a very sententious and pompous way of thinking and I disliked myself for feeling or thinking that way as it seemed as though I was indirectly elevating myself, putting myself on a pedestal and perceiving myself to be better than the other.

On the other hand, I also felt the said ‘hater’ will only exist if I acknowledge their existence. Hence I wanted to delete the concept of a ‘hater’ or ‘hating’ from my sub-conscious completely.

But then I recently came across the following from Maya Angelou and it rang so true. I found it so inspiring that I had to share it! It moved me and I hope it moves you too:

>>

A hater is someone who is jealous and envious and spends all their time trying to make you look small so they can look tall.

They are very negative people to say the least. Nothing is ever good enough!


When you make your mark, you will always attract some haters…

That’s why you have to be careful with whom you share your blessings and your dreams, because some folk can’t handle seeing you blessed…

It’s dangerous to be like somebody else…

If God wanted you to be like somebody else, He would have given you what He gave them! Right?

You never know what people have gone through to get what they have.

 

The problem I have with haters is that they see my glory, but they don’t know my story…

If the grass looks greener on the other side of the fence, you can be rest assured that the water bill is higher there too!

We’ve all got some haters among us!

Some people envy you because you can:
- Have a relationship with God
- Light up a room when you walk in
- Start your own business
- Tell a man / woman to hit the curb (if he / she isn’t about the right thing)
- Raise your children without both parents being in the home etc

Haters can’t stand to see you happy,

Haters will never want to see you succeed,

Haters never want you to get the victory, most of our haters are people who are supposed to be on our side.

How do you handle your undercover haters?

You can handle these haters by:
1. Knowing who you are & who your true friends are *(VERY IMPORTANT!!)


2.
Having a purpose to your life: Purpose does not mean having a job. You can have a job and still be unfulfilled. A purpose is having a clear sense of what God has called you to be. Your purpose is not defined by what others think about you.


3.
By remembering what you have is by divine prerogative and not human manipulation.

Fulfill your dreams!

You only have one life to live…when it’s your time to leave this earth, you ‘want’ to be able to say, “I’ve lived my life and fulfilled ‘my’ dreams. Now I’m ready to go HOME!”

When God gives you favour, you can tell your haters, “Don’t look at me, look at WHO is in charge of me…”.

Pass this to all of your family & friends who you know are not hating on you including the person who sent it to you. If you don’t get it back, maybe you called somebody out!

Don’t worry about it, it’s not your problem, it’s theirs.. Just pray for them, that their life can be as fulfilled as yours!
.
Watch out for Haters…BUT most of all don’t become a HATER!
.

(by Maya Angelou)

.

>>

I guess for me the moral of this particular story from Maya Angelou is that only I can define my purpose; not a ‘HATER’ not even a ‘LOVER’.

My purpose is NOT defined by how others think or feel about me.

And one of the biggest blessings in life is the confidence to know and accept that not everyone is going to accept or fall in love with who you are; so you should never let that deter you from being yourself or push you into trying to be someone whom you are not.

.

(source: http://royaume.co.uk/blog/article/maya-angelous-definition-of-a-hater )

.

Bonus

Thêm một vài đoạn mà tôi rất tâm đắc của Mr. Alan Phan

‘…

Những đầu óc nhỏ mọn thường thích hằn học loay hoay với các chuyện “ngồi lê đôi mách”, bà Eleanor Roosevelt khuyến cáo như vậy. Chúng ta là người lớn, hãy quay về với mục tiêu chính của cuộc sống… vì tư duy tạo nên định mệnh.

Vả lại, nếu đến tuổi 60 mà bạn không có kẻ thù, thì chắc bạn đã thất bại hoàn toàn trên mọi phương diện. Bản tính con người là ganh tị… và không ai đi đánh một con chó chết.

thời gian rồi cũng qua đi, cái vui cái buồn rồi cũng lần lần phai nhạt. Biết đâu, vài năm nữa, khi kẻ thù mình biến mất (bệnh hay chết), mình sẽ nhớ họ và tiếc là không ai khuâý động lên cái buồn tẻ của ngày tháng?
Vả lại, tất cả những gì họ đang cáo buộc chỉ là những chuyện nhỏ nhặt của quá khứ, không liên hệ gì đến những tư duy, ý tưởng chúng mình đang tạo dựng ở đây. Thôi thì hãy cho phép tôi xin lỗi các bạn về những hành xử phiến diện, vô bổ của các kẻ thù này.

…’

( http://www.gocnhinalan.com/bai-tieng-viet/nhung-ke-thu-khong-bo-cuoc.html )

.

tuy vậy, bản thân mình chưa đủ những thành công như ngài Alan để có thể chỉ tay vào thẳng các bạn hater mà bảo:

Tôi là ếch ngồi đáy giếng, còn các bạn này thì ngồi thấp hơn nữa trong mọi khía cạnh.

hoặc

bà vợ đã chỉ mặt tôi bảo: người duy nhất ông phải ‘thỏa mãn’ là tôi. Còn các ông bà kia, họ phải để họ tự lo ‘thỏa mãn’.

Thôi thì đành gởi đôi lời ở đây vậy – đã có phần cho người tử tế – hy vọng sẽ không bị quy kết là quơ đũa cả nắm, hoặc ai đó “nhột” vì cảm thấy bị “động chạm” .

.

Take it easy,

.

./.

Posted in Feeling, Skill | 3 Comments

DNS in VietNam

Note lại để truy cập nhanh khi cần thiết.

.

Viettel DNS

203.113.188.2   203.113.188.1   203.113.131.1   203.113.131.2

.

FPT DNS

210.245.31.130   210.245.31.10   210.245.0.10   210.245.0.11   210.245.0.131   210.245.0.14     210.245.14.4

.

VNPT DNS

203.162.4.1   203.162.4.190   203.162.4.191   203.162.4.180   203.162.0.180   203.162.0.182   203.162.0.183   203.162.0.11   203.210.142.132

.

NetNam DNS

203.162.7.89   203.162.6.71   203.162.6.70

.

SCTV DNS

210.245.24.20   210.245.24.22

.

MediaNet DNS

203.190.163.10   203.190.163.13

.

VNNIC DNS

203.162.57.105   203.162.57.107   203.162.57.108

.

Google DNS

8.8.4.4   8.8.8.8

.

Open DNS

208.67.222.222   208.67.220.220

.

Norton DNS

198.153.192.1   198.153.194.1

.

Mysterious DNS

4.2.2.2   4.2.2.3   156.154.70.1   156.154.71.1   67.138.54.100   207.225.209.66   74.125.31.121   85.17.255.198   46.19.33.120

.

Bonus: Một số cách vào facebook khi bị chặn

1/ dùng các domain khác của FB:

http://www.0.facebook.com (số 0 , không phải chữ o )

m.facebook.com

. . .

2/ Sửa IP trong file hosts:

VD:

173.252.100.26   facebook.com   www.facebook.com 
173.252.100.26   login.facebook.com   www.login.facebook.com
173.252.100.26   apps.facebook.com   www.apps.facebook.com

www.haivl.com/cach-vao-facebook-bi-chan-mang-vnpt-viettel-fpt

Các IP thường dùng: 173.252.100.26, 198.98.98.141, . . .

3/ Đổi DNS server:

Thử vài DNS server ở trên ;-)

4/ Dùng web proxy:

VD: HideMyAss.com , Proxify.com/p/ , . . .

5/ Dùng các phần mềm tunnel

VD: UltraSurf, HotSpot Shield, ProxyTunnel, . . .

. . .

(mỗi cách chỉ đưa ra vài dạng tiêu biểu thôi, không đưa hết để tránh các lão IT Admin lại chặn ;-) )

./.

Posted in Uncategorized | Leave a comment

BTVN-Biện Thuyết & Vô Ngôn

BTVN

 

.

 

 

. . .

 

.

 

./.

 

Posted in Uncategorized | Leave a comment

Faster Eclipse IDE

Some tips and tricks to speedup Eclipse IDE, or at least slim it.

These may be useful when you have hundreds of Eclipse projects (literally).

 

(reserved place, update later)

 

./.

Posted in Uncategorized | Leave a comment

JBoss hot deploy

JBoss application server has the ability to hot-deploy Java web apps (.ear, .war, .sar, …) . It is well known for JBoss users already, and the most popular method is “exploded EAR/WAR deployment” :

https://community.jboss.org/wiki/DeployTipsAndBuildSampleScripts

In this post, I just want to share some fun with batch scripting for such deployment! Shell scripts are more flexible than Ant/Maven scripts (build files), as it does not require JRE and easier to use OS commands as well as easier to integrate with CI build bots such as Jenkins/Hudson.

On Linux/Unix, shell scripting is very strong and can do almost everything ! On Windoze the batch scripting is kind of dull, and the new PowerShell is not too bad, but there will be fun when you ‘conquered’ the task with such dull ‘weapon’ .

First, a batch script to explode the EAR file (given it’s already copied to the deployed folder).

explode_EAR_deployment.bat

@echo off
title Explode EAR file for AppServer like JBoss - DucQuoc 2012

set DEPLOY_DIR=D:\USR\SOA\jb43\server\default\deploy
set TARGET_EAR=standard-edition-4.1.0-SNAPSHOT.ear
set BACKUP_DIR=%DEPLOY_DIR%\..

:explode_big_ear
MOVE /y %DEPLOY_DIR%\%TARGET_EAR% %BACKUP_DIR%\%TARGET_EAR%.zip
PUSHD %BACKUP_DIR%\%TARGET_EAR%.zip && POPD && echo Test_Directory
if NOT %errorlevel% EQU 0 (
  unzip %BACKUP_DIR%\%TARGET_EAR%.zip -d %DEPLOY_DIR%\%TARGET_EAR%
  rem DEL /f /s /q %BACKUP_DIR%\%TARGET_EAR%.zip
) ELSE (
  XCOPY /y /e %BACKUP_DIR%\%TARGET_EAR%.zip %DEPLOY_DIR%\%TARGET_EAR%\
  rem RMDIR /s /q %BACKUP_DIR%\%TARGET_EAR%.zip
)

:explode_wars_of_ear
for %%i in (%DEPLOY_DIR%\%TARGET_EAR%\*.war) do (
  MOVE /y %%i %BACKUP_DIR%\%%~nxi.zip 
  unzip %BACKUP_DIR%\%%~nxi.zip -d %%i
)
rem DEL /f /s /q %BACKUP_DIR%\*.war.zip

:explode_some_jars
set JAR_FILES_REGEX="^ui-sc ^pl-repository-old ^pm-validation"
for %%i in (%DEPLOY_DIR%\%TARGET_EAR%\lib\*.jar) do (
  echo %%~nxi | findstr /r %JAR_FILES_REGEX% > NUL
  if NOT errorlevel 1 (
    REN %%i %%~nxi.zip 
    unzip %%i.zip -d %%i
  )
)

:touch_ear_descriptor
set DESCRIPTOR_FILE=%DEPLOY_DIR%\%TARGET_EAR%\META-INF\application.xml
copy /b %DESCRIPTOR_FILE%+nul %DESCRIPTOR_FILE%
rem CD %DEPLOY_DIR%\%TARGET_EAR%\META-INF && copy /b application.xml +,,

:extra_tasks
rem CALL "%~dp0./make_appserver_debuggable.bat"

:end

.

To enable remote debug ability for Jboss AS, we can change JAVA_OPTS so that when run Java it has JDWP running at specified port.

set X64_OPTS=-Xmx2048m
set DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n 
echo %JAVA_OPTS% | findstr /c:jdwp || set JAVA_OPTS=%DEBUG_OPTS% %X64_OPTS% %JAVA_OPTS%
rem if %JAVA_OPTS%==%JAVA_OPTS:jdwp=% set JAVA_OPTS=%DEBUG_OPTS% %X64_OPTS% %JAVA_OPTS%

(these can be put in run.bat of JBoss, but can also in another env script, or run.conf respectively)

Note that the options -Xnoagent and -Djava.compiler=NONE can support remote debugging too, but can also affect the startup time of the application servers.

Besides, if you have some URL to download the latest archive file (maven public repo, or CI build server such as Jenkins), you can use below batch script to download it:

download_file.bat

@echo off
title Download installer archive - DucQuoc 2012

set TARGET_DIR=D:\
set TARGET_FILE=installer-4.10-uncrippled.jar
set BUILD_URL=http://build-jenkins.myserver.com:8080/view/All/job/installer-4.10-build
REM set BUILD_URL=http://build-jenkins.myserver.com:8080/view/All/job/installer-ea-build/
set ARTIFACT_PATH=/lastSuccessfulBuild/artifact/distributions/installer/target/
set DOWNLOAD_PATH=%BUILD_URL%/%ARTIFACT_PATH%/%TARGET_FILE%

set BACKUP_DIR=%TARGET_DIR%
set CURR_DATE=%date:~10,4%_%date:~4,2%_%date:~7,2%
set CURR_TIME=%time:~0,2%_%time:~3,2%_%time:~6,2%

IF NOT [%1]==[] (
  set DOWNLOAD_PATH=%1
)

:back_up_old_file
MKDIR %BACKUP_DIR%
MOVE /y %TARGET_DIR%\%TARGET_FILE% %BACKUP_DIR%\%CURR_DATE%-%CURR_TIME%-%TARGET_FILE%

:download
wget --version
IF %ERRORLEVEL% EQU 0 (
  wget %DOWNLOAD_PATH% -O %TARGET_DIR%\%TARGET_FILE%
) ELSE (
  bitsadmin /transfer myJob /download /priority foreground %DOWNLOAD_PATH% %TARGET_DIR%\%TARGET_FILE%
)

:extra_tasks
CALL "%~dp0.\deploy_auto.bat"

:end

(Note: in my case, at the end of download script it will call deploy_auto script to install and deploy the EAR to Jboss, which later calls the explode_EAR_deployment.batch )

deploy_auto.bat

@echo off
title Deploy EAR from installer automatically (non-interactive) - dq 2012

set INSTALLER_FILE=D:\installer-4.10-uncrippled.jar
set CONFIG_FILE=D:\TEST_DATA\scripts_auto_jb43\configuration-properties.xml

set TARGET_ROOT=D:\SOA
set TARGET_HOME=%TARGET_ROOT%\4.10b_jb43

set BACKUP_DIR=%TARGET_HOME%\..
set CURR_DATE=%date:~10,4%_%date:~4,2%_%date:~7,2%
set CURR_TIME=%time:~0,2%_%time:~3,2%_%time:~6,2%

:check_java
IF NOT "%JRE_HOME%"=="" set JAVA_COMMAND="%JRE_HOME%\bin\java"
IF NOT "%JAVA_HOME%"=="" set JAVA_COMMAND="%JAVA_HOME%\bin\java"
IF "%JAVA_COMMAND%"=="" set JAVA_COMMAND="java"
%JAVA_COMMAND% -version
IF NOT %errorlevel% EQU 0 (
  echo ERROR: JAVA_HOME not found. Please set the JAVA_HOME variable, or include java.exe in your PATH
  goto end
)

:backup
MKDIR %BACKUP_DIR%
MOVE /y %TARGET_HOME% %BACKUP_DIR%\%CURR_DATE%-%CURR_TIME%-BACKUP
MKDIR %TARGET_HOME%

REM set APPSERVER_HOME=%TARGET_ROOT%\jb43
REM set ARCHIVE_APPSERVER=D:\BACKUP\Java_ALL\jboss-4.3.0.GA.zip
REM IF NOT EXIST %APPSERVER_HOME%\* unzip %ARCHIVE_APPSERVER% -d %APPSERVER_HOME%

:install
echo Checking config %CONFIG_FILE% && findstr /r "db.user db.password db.url shared.as" %CONFIG_FILE%
%JAVA_COMMAND% -jar %INSTALLER_FILE% --install-to %TARGET_HOME% --use-config %CONFIG_FILE% --debug %*

:extra_tasks
rem CALL "%~dp0.\explode_EAR_deployment.bat"

:end

make_appserver_debuggable.bat

@echo off
title Enable remote debug to app server and slim a bit - dq 2012

set APPSERVER_BIN_DIR=D:\SOA\jb43\bin
set TARGET_RUN_SCRIPT=run.bat
set DEBUG_RUN_SCRIPT=Z:\temp\qmduc\run_debug_jb43.bat

set DEPLOY_DIR=D:\SOA\jb43\server\default\deploy
set BACKUP_DIR=%DEPLOY_DIR%\..

:copy_debuggable_run
ECHO F | XCOPY /d /h %APPSERVER_BIN_DIR%\%TARGET_RUN_SCRIPT% %APPSERVER_BIN_DIR%\%TARGET_RUN_SCRIPT%.BACKUP
COPY /y %DEBUG_RUN_SCRIPT% %APPSERVER_BIN_DIR%\%TARGET_RUN_SCRIPT%

:slim_appserver
set SLIM_FILES_REGEX="^cache-invalidation ^client-deployer ^product-doc "
for %%i in (%DEPLOY_DIR%\*) do (
  echo %%~nxi | findstr /r %SLIM_FILES_REGEX%
  if NOT errorlevel 1 (
    MOVE /y %%i %BACKUP_DIR%\%%~nxi
  )
)

set SLIM_DIRS_REGEX="^jmx-console ^http-invoker ^admin-console ^jbossws"
for /d %%i in (%DEPLOY_DIR%\*) do (
  echo %%~nxi | findstr /r %SLIM_DIRS_REGEX% && MOVE /y %%i %BACKUP_DIR%\%%~nxi
)

:extra_tasks
rem CALL "%~dp0./serverstart.bat"

:end

glue them all: unlease_auto_install.bat

@echo off
title Unlease the power of scripting: automatic install - dq 2012

set START_TIME=%time%
set SCRIPTS_DIR=%~dp0
if NOT "%OS%"=="Windows_NT" (
  set SCRIPTS_DIR=.\
)
set SERVER_BIN_DIR=D:\SOA\4.10b_jb5\bin

:call_all
rem CALL "%SCRIPTS_DIR%\download_file.bat"

CALL "%SCRIPTS_DIR%\deploy_auto.bat"

CALL "%SCRIPTS_DIR%\explode_EAR_deployment.bat"

CALL "%SCRIPTS_DIR%\make_appserver_debuggable.bat"

CALL "%SCRIPTS_DIR%\touch_EAR_descriptor.bat"

echo Finished installation at %date% %time% (started from %START_TIME%). Now starting server...
CALL "%SERVER_BIN_DIR%\serverstart.bat"

:end

Some more tips for JBoss hot-deploy:

.

./.

Posted in Coding, Skill | Leave a comment

Firefox over Chrome?

Well, the browser wars are “so 2010″ (IE sucks, that’s true) . I don’t intend to make yet-another-benchmark to measure the speed of the browsers, or something like that. There are already lots of them (although the results seem predictable: Chrome triumphs in Google’s suite of test, Firefox leads with a big margin on Mozilla’s suite of test, so forth). In this post I just note some Pros and Cons of Firefox/Chrome, performance aside.

.

DucQuoc Firefox vs Chrome

.

TL; DR : Firefox regains my love at the moment, as Firefox 18 has some nice improvements, and Chrome 24 still has some drawbacks which is more and more annoying over time.

Ok, here are the points.

Performance

I don’t want to compare the performance here, it does not mean speed is not important. Rather, I meant the difference of that between Chrome & Firefox now is very small (trivial).

I don’t have some numbers to back it up, just wanted to says from my experience as an end-user: The speed of loading a page (tab) of Firefox 18 and Chrome 24 is both fast, and the users hardly feel any difference.

(And they both exceeds IE, if Chrome 24 is “10″ , then Firefox 18 is “9.5″, IE 9 is “6.5″ and IE 8 is only “6″)

.

Memory usage

This used to be the second strongest point of Chrome (make it “slim” browser, whilst fastest loading). Firefox was bloated then, in contrast.

Surprisingly, per each new version Chrome becomes more and more memory-hogging, whereas Firefox does a good job at keeping memory low . Perhaps Firefox made a good decision to have a separate process to handle plugins (plugin-container) , meanwhile Chrome thinks separate processes for tabs are too much of an advantage and they can abuse them for JavaScript/HTML loading.

Not just the feeling of user, this time I calculated memory of processes by several ways: from the OS task manager, or using the Chrome Task Manager, or the about:memory of Chrome. They all result in the same thing: with the same tabs (10 tabs, same URLs), Firefox 18 just takes about 60-70% RAM comparing to Chrome 24 . Even when we count out the plugins/addons.

Big thump up for Firefox this time!

(as a coder, I’m sure it’s hard to prevent the darn memory leaks, especially together with optimize speed)

DucQuoc Chrome memory

.

Plugins (and new built-in features)

One of drawback of Firefox was the plugins compatibility, when upgrading version. It got worse when Firefox adjusted the major version strategy (for marketing/competition reasons).

However in recent versions, Firefox has made it easier to check plugin updates after upgrading. It also improved the build-in search of plugins, and introduce a seperate service for updating, and even allow plugins developer to “jump” wildcard versions. Hence, the original problem is solved.

FF18 also improves built-in features: new JavaScript compiler, show line number when viewing source of pages, …

Chrome now is more open to plugins, but it still makes “install” button disappear from Chrome Store, if the version is not compatible WITHOUT telling the user so. I think I’m a “tech guy” , or at least a power-user, but still was confused with that for some minutes (why I can not see anything to download/install at plugin page on Chrome?) .

And the plugin at my time was “JSONView”, which highlights an important missing feature of Chrome: XML viewer (and JSON viewer). This has been reported to Google Chrome long ago, in 2009 (more than … 10 major versions), and they still ignore it, hmm ?

(If you count it from the original RSS/ATOM issue, it was even 2008)

.

Space saving (and installation location)

Chrome was designed to install in a “strange place” at that time: %UserProfile%\AppData\Local\Google , and there was no way to change it!

I guess it was so that the data can be “per user” , but on Windows it is a problem because the data will soon make user folder become big. And to make it worse, Chrome update service can not cleanup old versions! So, with new versions (I would say, monthly), the user folder on Windows gets more than 200MB for each new release (not only major versions) : about 100MB zipped installer (data of new update), and the data in old folder of old version app.

Firefox upgrade/installation is much “thinner” , the installer is 18-20MB and when exploding it takes about 40-45 MB of app data. It can upgrade (or should I say, cleanup its mess) well . Preserve user data is understandable, but what’s the point of saving old versions of the Chrome ? (at least 99.99% users of Chrome will not “downgrade” their versions, especially with such autoupdate service of Chrome.)

If I recall correctly, recently (after 2-3 years since the first proposal) Chrome has allowed to install the app “system-wide” , but not easy way: by some steps which may confuse a “non-tech” user (why don’t they include the step “custom folder” in the traditional installer?). So, lot ofs users may keep wasting spaces for Chrome, and that’s make the “quick & silent upgrade” of Chrome looks like a burden!

.

Saved passwords

Both browser provides the “remember passwords” feature, that’s a good one. But it’s also a security threat. Firefox can prevent it with “master password”. Chrome, none.

Therefore, anyone who has access to your computer for 5 minutes can steal your passwords very easily from your browser (Chrome) !

Also, not sure if with “open” saved passwords like in Chrome, sometimes a “snoop” service will submit your passwords to a certain site without your permission. For example, some virus backdoor (hint: winmail, conhost), or to serve M$ competition strategy, or to serve the US Department of Defense .

This “feature” has been existing for years, and Chrome seems not care to fix it ;-) .

.

So, “Dear Chrome, I have just made up with my old friend Firefox. I guess I will spend time with her a bit more than before. And I hope you don’t mind ;-) ” .

.

UPDATED: In incognito mode (Private Browsing), Firefox seems to take much more memory than Chrome. And if you enable the menu toolbar, Firefox just looks as ‘normal mode’ except the small text “private browsing” at the end of window title. So for this incognito aspect Chrome is obviously the upper-hand. I look forward to FF improvement for this in the future.

.

./.

Posted in Linux, Marketing | 1 Comment

Remove Y!M ads

Hướng dẫn loại bỏ quảng cáo trên Yahoo!Messenger :

Remove_YM_Ads

 

Đơn giản chỉ cần tải và giải nén rồi chạy tập tin no_YM_ads_3.bat sau:

https://sites.google.com/site/ducquocvn/home/no_YM_ads_3.zip

Sau đó mở lại Y!M để xem nó có affected chưa !

More info:

Tập tin batch script trên sẽ làm các thao tác đại khái như sau:

- sửa registry để thay đổi pager URL cho Y!M (fix cho Y!M 8, 9)

- sửa nội dung cache trong urls.xml trong thư mục cài đặt Y!M (cho Y!M 10)

- kiểm tra file hosts của máy local và thêm vào địa chỉ may chủ quảng cáo của Yahoo (fix cho Y!M 11 trở lên).

Chi tiết hơn thì … các bạn có thể hỏi Mrs. Google !

.

That’s it !

./.

Posted in Coding, Linux | 1 Comment

Service Oriented Architecture

SOA, in the simplest form, is the design/platform to develop software in the form of interoperable services.

It has a lot of things in common with SaaS, and some people even say that CloudComputing/PaaS is an offspring of SOA.

Here is a good slide about fundamental of SOA (from Jaguaraci Silva):

.

Nice explanation – of Enno Shioji - about ‘loose-coupling’ of SOA services:

“Let’s assume you have 4 cooks. In SOA, you assume they hate each other, so you strive to let them have to talk to each other as little as possible.

How do you do that? Well, you will first define the roles and interface — cook 1 will make salad, cook 2 will make soup, cook 3 will make the steak, etc.. Then you will place the dishes well organised on the table (so these are the interfaces) and say, “Everybody please place your creation into your assigned dishes. Don’t care about anybody else.”.

This way, the four cooks have to talk to each other as little as possible, which is very good in software development — not necessarily because they hate each other, but for other reasons like physical location, efficiency in making decisions, etc. . .”

.

Another good explanation – of AlexKR – about ‘availability’ and ’specialized services’ in SOA:

“For non technical people I would use the following concept. The whole professional world is service oriented.

- Instead of baking a cookie by youself, you go to the baker.

- Instead of trying to cure yourself, you go to the doctor.

- Instead of writing a program, you ask a programmer to do this for you.

This implies two major advantages: Each one does his job better than if we all were trying to solve all our tasks separately. There is a way, which allows non professionals to communicate with those, who will solve our task (in real world such way is money and business contracts).

In the world of software such architecture is implemented by defining specialized services (applications) which are dedicated to perform specific tasks and by defining protocols, which are solving problem of communications between such applications. When such architecture is deployed, you get some benefits, which can be also mapped to the real world:

- If doctor is unavailable, you cannot be cured but at least you can get a cookie from the bakery! In software this means one failed service does not break the whole system.

- Usually doctors and bakers do not share the same room and this allows them to operate better. Just like in software you can place each service on its own hardware.

For software world this means, better availability, maintainability, reuse, and reduced costs. Good luck!”

.

It’s fun , isn’t it ?

.

./.

Posted in Coding, Marketing | Leave a comment

Coder rant: money

Hôm nay tự dưng đọc được bài “Bạc… ” này thấy cũng gần đúng, nhân tiện post 1 bài khác của 1 bạn trẻ mới chuyển nghề coder -> marketing :D .

 

Mấy bạn đã từng trải qua giai đoạn này chắc cũng hiểu và thông cảm.

(hà, dịp cuối năm chắc cũng có ít nhiều cảm xúc đấy chứ ;-)  )

 

(tác giả: L.T. )

Ba Lập, Tư Trình – Cafe buổi sáng

Ba Lập, một vợ hai con, cỡi wave tàu, hút “miu miu”, uống heineiken, quanh năm mê nghề gõ code. Tánh anh Ba rất đỗi thật thà nghĩ sao nói vậy thành thử có người chê anh nóng tính, nhưng một khi đã quen biết đủ lâu ai cũng thừa nhận cái bổ lổ bả lả ấy lại là “đặc sản miền tây của Ba Lập” mà bạn bè anh ai cũng quý. Thời trai trẻ anh Ba xông pha cũng lắm, hết qua Anh on site lại vòng về US. Ngoảnh đi ngoảnh lại đã ba mấy xuân sanh mà vẫn “thuộc binh chủng phòng không”, ba mẹ nói mãi anh tìm được một giai nhân, dừng bước giang hồ, cưới vợ sinh con, cuộc sống vô cùng hạnh phúc.

Tư Trình, bạn đồng nghiệp với anh Ba Lập, vui tính độc thân, cỡi a còng, chưa bao giờ biết bật nắp chai bia hay mồi hơi thuốc lá. Tuổi trẻ tài cao, anh Tư lận trong mình rất nhiều chứng chỉ lập trình tuy rằng so về kinh nghiệm giang hồ thì còn phải gọi anh Ba bằng sư phụ. Thoạt đầu làm chung project, Tư Trình ghét cay ghét đắng cái tính ngang ngạnh của anh Ba nhưng qua mấy đợt vất vả OT (overtime) Tư Trình càng lúc nể phục tài lập trình của anh Ba riết rồi thành bạn vong niên lúc nào không biết.

Sáng nào cũng vậy Ba Lập sau khi đưa vợ đi làm thường ngồi nhâm nhi tách café sáng ở quán cóc đầu ngỏ vào công ty. Tư Trình tất bật chuẩn bị áo quần xong cũng vội phóng xe đến quán để cùng anh Ba đàm đạo về “hòa bình thế giới”. Không nói trước bao giờ nhưng sáng nào Ba Lập với Tư Trình cũng “đến hẹn lại lên”. Sáng nay Tư Trình uống gần hết tách café mà vẫn chưa thấy anh Ba xuất hiện. Dở mấy tờ báo dúm dó trên mặt bàn, anh Tư cố giết thời gian bằng mấy tin giật gân (chắc chủ yếu câu view) kiểu như “chặng xe tang, cướp quang tài, hiếp dâm người quá cố” vốn nhan nhản trong cái thời buổi kinh tế khó khăn này. Vừa lúc Ba Lập xách ba lô hấp tấp bước vào miệng kêu chân đá đá vô không khí ra hiệu cho bà chủ quán bưng cho mình ly café. Tư Lập hỏi:

- Sao vô trễ vậy anh Ba?

- Hồi hôm tao thức ghi comments cho anh em trong đợt PA này nên sáng nay ngủ quên.

Ba Lập vừa nói tay vừa bật hộp quẹt châm điếu thuốc nhìn bâng quơ ra đường. Khói trắng lửng lơ bay bay giữa tiết trời se lạnh của những ngày giáp tết. Tư Trình ngó ngó người đồng nghiệp thấy có vẻ suy tư, hỏi:

- Có cãi nhau với vợ sao mặt rầu vậy cha?

- Bậy mày.

Ba Lập đỏ mặt độp lại rùi tay nâng ly café nhấp một ngụm rỏ lớn. Tư Trình ngó bộ ông anh đang quê nên đánh trống lảng:

- Tết tới rồi mau quá anh ơi, mà năm nay chưa mua đồ sắm đạt gì hết. Cận tết quá cái gì cũng mắc không biết sao mua nổi.

- Mày một thân một mình chừng nào sắm mà chẳng được. Tao đây một vợ hai con …

Tư Trình nghe câu nói lấp lửng của Ba Lập lờ mờ hiểu ra tâm sự của người đồng nghiệp nên khơi màu.

- Có vợ có con thì vui chứ sao anh.

- Mày có phải lo gì đâu nên mới nói vậy. Tết nhất trăm thứ để lo … tao xoay xở muốn chết đây nè. Năm nay tao tính sửa lại nhà cho ông bà dưới quê chứ nó cũ quá rồi, dột tùm lum tà la.

- Anh làm mười mấy năm sửa nhà chuyện nhỏ si nhê gì.

- Mày làm như tau làm giàu lắm.

- Tỉ phú Bill Gates cũng xuất thân từ việc cặm cụi gõ từng dòng code mà anh Ba.

- Nếu thằng Trình muốn thăng tiến, muốn làm ông chủ thì một là nên lập công ty riêng, hai là đi học kinh tế (và tốt nhất là học kinh tế rồi mở công ty riêng). Còn những công việc mang tính sáng tạo thì thông thường không có nhiều cơ hội để leo cao. Chẳng hạn nếu mày làm web designer, hay họa sĩ, hay nhà văn, niềm vui là ở chỗ tạo ra cái gì đó hoàn toàn mới, chưa ai có, chưa ai biết (đồng thời vẫn “có ăn”). Còn nếu như niềm vui đó không còn nữa, thì có lẽ đã tới lúc mày nên chuyển nghề.

- Bộ anh tính bỏ nghề sao khuyên em vậy?

- Không phải. Anh nói vậy thôi. Nói chung, lập trình cũng có thể thăng tiến theo nghĩa thông thường (làm team leader, project manager…). Nhưng quan trọng là anh muốn có được sự thỏa mãn trong công việc, được làm thứ mình thích, sáng tạo ra chương trình làm được cái mình muốn… Anh biết có những người làm lập trình từ lúc mới vào nghề, tới 50-60 tuổi cũng vẫn lập trình. Dĩ nhiên họ có nhiều kiến thức hơn, có thể viết báo, giảng bài, thiết kế hệ thống, v.v… Nhưng không phải ai cũng muốn làm manager. Hai vợ chồng anh cũng đều là dân ngày ngày đi coding kiếm cơm. Thật sự thì vợ chồng anh vẫn ham muốn ngày ngày được coding, giờ giờ được coding… Nhưng bây có trăm chuyện để lo về nhà cửa, con cái…, đâu thể lúc nào cũng lao tâm khổ tứ vì mấy cái dòng code nữa. Chưa có con cái gì như em chưa vô context đó chưa hiểu nổi đâu. Có điều cho em biết mà lỡ có vợ cùng nghề hãy thông cảm!”

Tư Trình nghe xong im lặng nhìn theo chiếc lá vàng đang xoay xoay trong gió không nói thêm câu nào. Mặt trời rọi những tia nắng vàng óng ảnh xuyên qua khe lá quyện vào làng khói trắng bay lên.

 

.

./.

 

Posted in Feeling, Reading | 1 Comment