This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Thứ Hai, 17 tháng 4, 2017

BỨC THƯ NỔI TIẾNG CỦA CHA GỬI CHO CON TRAI.


Con trai yêu dấu!

Đời người phúc họa vô thường! Không một ai biết trước mình sẽ sống được bao lâu. Có một số việc tưởng nên sớm nói ra thì hay hơn. Cha là cha của con, nếu cha không nói với con, có lẽ không ai nói rõ với con những điều này!

Những lời khuyên để con ghi nhớ này, là kết quả bao kinh nghiệm xương máu, thất bại đắng cay trong cuộc đời, mà bản thân cha đã trải nghiệm. Nó sẽ giúp con tiết kiệm nhiều những nhầm lẫn hoang phí trên bước đường trưởng thành của con sau này.

Dưới đây là những điều con nên ghi nhớ trong cuộc đời:



- Nếu có người đối xử không tốt với con, đừng bận tâm cho mất thời giờ. Trong cuộc đời này, không ai có nghĩa vụ phải đối xử tốt với con, ngoại trừ cha và mẹ của con. Nếu có người đối xử tốt với con, ngoài việc con phải biết ơn và trân quý, con cũng nên thận trọng suy xét, vì người đời làm việc gì thường có mục đích và nguyên nhân. Con chớ vội vàng xem đối phương là chân bằng hữu.

- Con có thể yêu cầu mình phải giữ chữ "Tín", nhưng không thể bắt người khác phải giữ chữ tín với mình. Con có thể yêu cầu mình phải đối xử tốt với người khác, nhưng không thể kỳ vọng người khác phải đối xử tốt với con. Con đối xử người ta thế nào, không có nghĩa là người ta sẽ đối xử lại mình như thế ấy, nếu con không hiểu rõ được điểm này, sẽ tự chuốc lấy buồn phiền cho mình mai sau.

- Trên đời không phải không có người nào mà không thể thay thế được, không có vật gì mà nhất định mình phải sở hữu được. Con nên hiểu rõ ở điểm này. Nếu mai sau rủi người bạn đời không còn muốn cùng con chung sống, hoặc giả con vừa mất đi những gì trân quý nhất trong đời, thì con nên hiểu rằng: Đây cũng không phải là chuyện lớn lao gì cho lắm!

- Trên đời này chẳng hề có chuyện yêu thương bất diệt. Ái tình chỉ qua là một cảm xúc nhất thời. Cảm giác này tuyệt đối sẽ theo thời gian, hoàn cảnh mà thay đổi. Nếu người yêu rời xa con, hãy nhẫn nại chờ đợi, để thời gian từ từ gột rửa, để tâm tư mình dần dần lắng đọng thì nỗi đau thương cũng sẽ từ từ nhạt nhòa đi. Không nên cứ ôm ấp hoài niệm mãi cái ảo ảnh yêu thương, cũng không nên quá bi lụy vì tình.

- Đời người ngắn ngủi, nếu hôm nay con đã lãng phí thời gian, mai đây hiểu được thì thấy rằng quãng đời đó đã vĩnh viễn mất rồi. Cho nên càng biết trân quý sinh mạng của mình càng sớm, thì con sẽ được tận hưởng cuộc đời mình càng nhiều hơn. Trông mong được sống trường thọ, chi bằng con cứ tận hưởng cuộc đời mình ngay từ bây giờ.

- Cha không yêu cầu con phải phụng dưỡng cha trong nửa quãng đời còn lại. Ngược lại, cha cũng không thể bao bọc nửa quãng đời sau này của con, khi mà con đã trưởng thành và tự lập. Đây là lúc cha đã làm tròn trách nhiệm của mình. Sau này con có đi xe buýt hay đi xe hơi riêng; ăn súp vi cá hay ăn mì gói, tự con lo liệu lấy.

- Gia đình thân nhân chỉ là duyên phận một đời. Bất luận trong kiếp này chúng ta sống chung với nhau được bao lâu và như thế nào, nên trân quý khoảng thời gian sum họp, gia đình đoàn tụ. Kiếp sau, dù ta có thương hay không, cũng không chắc sẽ còn gặp lại nhau.

- Tuy có nhiều người thành công trên đường đời mà học hành chẳng đến đâu. Nhưng điều đó cũng không có nghĩa là không cần học hành mà vẫn thành công. Kiến thức đạt được do việc học hành, là vũ khí trong tay của mình. Ta có thể lập nên sự nghiệp từ hai bàn tay trắng, nhưng không thể thiếu sự hiểu biết. Nên nhớ kỹ điều này!

- Hơn mười mấy, hai mươi mấy năm nay, cha tuần nào cũng mua vé số, nhưng đến nay, ngay đến giải 3 vẫn chưa từng trúng. Điều này chứng tỏ rằng: muốn phát đạt phải siêng năng làm ăn, nỗ lực phấn đấu chứ không phải chờ đợi điều may mắn đến với con. Trên thế gian này không có buổi ăn trưa nào miễn phí cả. Nếu may mắn có đến với con, đấy là điều tốt, còn nếu không thì cũng chẳng có vấn đề gì, bởi tất cả phải dựa vào chính bản thân con.

- Con hãy biết ước mơ, nhưng để trở thành hiện thực thì ước mơ đừng xa rời thực tế, đừng hão huyền và ảo tưởng. Con phải luôn có niềm tin. Không chỉ là niềm tin vào chính bản thân mình mà con cũng cần có niềm tin vào mọi người, niềm tin vào cuộc sống. Nếu không có niềm tin, con sẽ chẳng thể làm được việc gì.

Công việc, cuộc sống đôi lúc sẽ có những khó khăn, trở ngại đòi hỏi con phải luôn nỗ lực. Để có được những thành công thì không thể thiếu sự cố gắng và say mê, con ạ. Hãy nhớ rằng 'thàng công không phải là một đích đến, đó là một quá trình'. Vì thế, con hãy tiếp tục ước mơ, tiếp tục tin tưởng và không ngừng nỗ lực, con nhé!.

Tác giả: Tôn Vận Tuyền


Thủ Tướng Đài Loan

Chủ Nhật, 29 tháng 1, 2017

Lời dạy của cổ nhân

Hình hài của mẹ cha cho
Trí khôn đời dạy, đói no tự mình
Sang hèn trong kiếp nhân sinh
Buồn vui sướng khổ, thường tình thế thôi
Không hơn hãy cố bằng người
Cho thiên hạ khỏi ai cười ai khinh

Có trí thì ham học
Bất trí thì ham chơi
Trí khôn tạo nên người
Đức nhân tìm ra bạn
Thành đạt nhờ trí sáng
Rạng danh nhờ đức dày
Làm nên nhờ có thầy
Đủ đầy nhờ có bạn
Gái ngoan nhờ đức hạnh
Trai mạnh nhờ lực cường
Tươi đẹp lắm người thương
Lực cường nhiều kẻ trọng
Dễ thích nghi thì sống
Biết năng động thì bền
Đủ tài trí làm nên
Đủ sức bền thì thắng

Biết mình khi hoạn nạn
Hiểu bạn lúc gian nguy
Nghèo hèn bởi tự ti
Ngu si vì tự phụ
Tài đức cao hơn phú
Hạnh phúc đủ hơn giàu
Sống trung tín bền lâu
Tình nghĩa sâu hạnh phúc
Đủ tài thì đỡ cực
Đủ sức lực đỡ nghèo
Dốt nát hay làm theo
Hiểu biết nhiều tự lập
Hỏng việc vì hấp tấp
Va vấp bởi vội vàng

Cảnh giác với lời khen
Bình tâm nghe lời trách
Quá nghiêm thì ít bạn
Dễ dãi bạn khinh nhờn
Không hứa hão là khôn
Không tin xằng ít vạ
Làm ơn đừng mong trả
Được ơn nhớ đừng quên
Nhu nhược bị ép chèn
Quá cương thì bị gãy
Cái quý thì khó thấy
Dễ lấy thường của tồi
Của rẻ là của ôi
Dùng người tội sinh vạ
Đẹp lòng hơn tốt mã
Nền nã hơn kiêu kì
Thận trọng từng bước đi
Xét suy khi hành động
Hiểu biết nhiều dễ sống
Luôn chủ động dễ thành
Thận trọng trước lợi danh
Giữ mình đừng buông thả
Tránh xa phường trí trá
Tai vạ bởi nể nang

Tài giỏi chớ khoe khoang
Giàu sang đừng kênh kiệu
Học bao nhiêu vẫn thiếu
Hiểu bao nhiêu chẳng thừa
Nhân đức chớ bán mua
Được thua không nản trí
Đủ đức tài bớt lụy
Đủ dũng khí chẳng hàng

Có vợ đảm thì sang
Có bạn vàng thì quý
Đói nghèo vì bệnh sĩ
Quẫn trí dễ làm liều
Tỉnh táo với tình yêu
Biết điều khi xử thế
Lo việc nhà chớ kể
Ân nghĩa chớ đếm đong
Giữ trọn chữ hiếu trung
Với tổ tiên gia tộc
Cây tốt tươi nhờ gốc
Người phúc lộc nhờ nguồn
Sống bất nghĩa tai ương
Sống bất lương tù ngục
Phải cầu xin là nhục
Phải khuất phục là hèn
Hay đố kị nhỏ nhen
Thích ép chèn độc ác

Lắm gian truân càng sáng
Nhiều hoạn nạn càng tinh
Với mình phải nghiêm minh
Với chúng sinh nhân ái
Đang thắng phòng khi bại
Gặt hái phòng mất mùa
Thói quen thường khó chừa
Say sưa thường khó tỉnh

Sống ỷ lại ăn sẵn
Dễ bạc phân bán mình
Sống dựa dẫm ngu đần
Sống bất cần phá sản
Hay đua đòi hoạn nạn
Quá nể bạn tai ương
Gia đình trọng yêu thương
Sống nhịn nhường hỉ hả
Thiếu tình thương man trá
Gắn vàng đá cũng tan
Biết dạy dỗ con ngoan
Chịu bảo ban con giỏi
Tinh khôn nhờ học hỏi
Cứng cỏi nhờ luyện rèn
Sống vì nhau sẽ bền
Sống vì tiền đổ vỡ
Rèn con từ mới nở
Khuyên vợ lúc mới về

Muốn hiểu cần lắng nghe
Thích khoe thì trí cạn
Kẻ tồi chơi xấu bạn
Khốn nạn quên mẹ cha
Tốt đẹp hãy bày ra
Xấu xa nên đậy lại
Có ích thì tồn tại
Có hại thì diệt vong
Nhiều tham vọng long đong
Lắm ước mong lận đận
Hay vội vàng hối hận
Quá cẩn thận lỗi thời

Hiểu được người là sáng
Hiểu được bạn là khôn
Khiêm tốn là tự tôn
Kiêu căng là tự sát
Hứa trước thì khó đạt
Hèn nhát thì khó thành
Thù hận bởi lợi danh
Tranh giành vì chức vị
Giàu sang hay đố kị
Tài trí sinh ghét ghen
Tham giàu thì cuồng điên
Tham quyền thì độc ác
Vì tiền thì dễ bạc
Vì tình nghĩa bền lâu
Người hiểu nói trọn câu
Kẻ dốt tâu phách lối
Có quyền thì hám lợi
Có tội thường xum xoe
Khờ dại hay bị lừa
Nói bừa hay vạ miệng
Đa ngôn thì tai tiếng
Ngậm miệng dễ được tin
Hám lợi hay cầu xin
Tham quan thường bất chính
Hám quyền hay xu nịnh
Thật thà hay oan trái
Thẳng thắn hay bị hại
Thông thái hay bị ngờ

Chiều con quá con hư
Tiền của dư con hỏng
Giàu mạnh thường thao túng
Nghèo vụng dễ theo đuôi
Người tài giỏi khó chơi
Kẻ chây lười khó bảo
Thành tâm thì đắc đạo
Mạnh bạo việc dễ thành
Quân tử thì trọng danh
Tiểu nhân thì trọng lợi
Bất tài hay đòi hỏi
Lọc lõi khó khiêm nhường
Tình nghĩa thường khó quên
Nợ nhân duyên khó trả
Khó thuần phục kẻ sĩ
Khó phòng bị tướng tài
Biết chấp nhận thảnh thơi
Hay hận đời đau khổ

Của quý thì khó giữ
Con cầu tự khó nuôi
Nhà dư của hiếm hoi
Nhà lắm người bạc cạn
Khó gần người quá sạch
Vắng khách tại quá nghèo
Dễ nổi danh kỵ hiền
Dễ kiếm tiền khó giữ
Kiếp người là duyên nợ
Lành vỡ lẽ thường tình
Sướng khổ tự lòng mình
Bại thành từ lực trí
Thời gian đừng uổng phí
Biết suy nghĩ sâu xa
Vững vàng khi thành bại
Cần học và hành mãi
Sẽ gặt hái thành công./.

Thứ Ba, 20 tháng 12, 2016

13 Study Tips

Our brain can potentially memorize 2.5 petabytes of information, which is roughly the equivalent of 3 million hours of YouTube videos. In order to use some of that staggering capacity a little more effectively when you study, here are some tips that are based on widely accepted research by neuroscientists and learning experts.



Thứ Ba, 15 tháng 11, 2016

Nạp chồng phương thức - Overloading method

Nạp chồng phương thức - Overloading method

Khái niệm

Tương tự như khái niệm nạp chồng phương thức trong C++, trong java, nạp chồng phương thức (overloading method) là hiện tượng nhiều phương thức có cùng tên, tuy nhiên số lượng tham số hoặc kiểu của tham số trong các phương thức này là khác nhau.
Chú ý: Các phương thức có cùng tên, cùng danh sách tham số, tuy nhiên, kiểu trả về khác nhau không được xem là hiện tượng overload.

Tác dụng và cơ chế của overload

Sử dụng overload trong một chương trình nhằm tăng khả năng đọc của chương trình.
Trình biên dịch sẽ dựa vào tham số được truyền vào phương thức mà quyết định xem sẽ gọi phương thức nào trong danh sách phương thức overload.

Overload với tham số kiểu cơ bản

Theo định nghĩa thì chúng ta có 2 cách để tạo ra hiện tượng overload:
  • Thay đổi số lượng tham số
  • Thay đổi kiểu dữ liệu của tham số

Thay đổi số lượng tham số

Đây là trường hợp khá đơn giản và dễ nhận biết nhất của hiện tượng overload. Các bạn có thể tham khảo đoạn mã nguồn dưới đây:
  1. public class stdio {
  2. private String author;
  3. private static final String address = "stdio.vn";
  4. stdio(){
  5. author = "Kevin La";
  6. }
  7. stdio(String author_name){
  8. author = author_name;
  9. }
  10. public static void main(String [] args){
  11. //Call no arguments constructor
  12. stdio obj = new stdio();
  13. System.out.println(obj.author);
  14. //Call constructor has a argument
  15. stdio obj1 = new stdio("Alice");
  16. System.out.println(obj1.author);
  17. }
  18. }
Trong đoạn mã nguồn trên, tôi đã thực hiện overload constructor của lớp stdio với 1 constructor không có tham số và 1 constructor có chứa 1 tham số.

Thay đổi kiểu dữ liệu của tham số

Khi có cùng số lượng tham số, trình biên dịch sẽ dựa vào kiểu của đối số được truyền vào phương thức, sau đó đối chiếu với kiểu dữ liệu của tham số của phương thức để chọn ra phương thức thích hợp nhất.
Ví dụ:
  1. public class Calculation {
  2. void add(int param1, int param2){
  3. System.out.println(param1 + param2);
  4. }
  5. void add(float param1, float param2){
  6. System.out.println(param1 + param2);
  7. }
  8. public static void main(String [] args){
  9. Calculation obj = new Calculation();
  10. obj.add(10, 10);
  11. obj.add(10.5f, 10.24f);
  12. }
  13. }
Tại dòng số 10, trình biên dịch sẽ gọi phương thức add ở dòng thứ 2 để thực thi do cả 2 tham số truyền vào đều là kiểu int. Giải thích tương tự với dòng số 11.
Tuy nhiên, ở một khía cạnh khác, tôi muốn đề cập tới hiện tượng ép kiểu và lớp bao trong java được sử dụng như thế nào trong nạp chồng phương thức.
Quan sát ví dụ dưới đây:
  1. public class TestOverload {
  2. void method(Integer param){
  3. System.out.println("_Integer invoked");
  4. }
  5. void method(long param){
  6. System.out.println("_long invoked");
  7. }
  8. public static void main(String [] args){
  9. Calculation obj = new Calculation();
  10. obj.add(10);
  11. }
  12. }
Kết quả là:
  1. _long invoked
Tại dòng số 10, khi truyền 10 là một đối số kiểu int, trình biên dịch sẽ kiểm tra xem có phương thức add nào có tham số là kiểu int hay không, tuy nhiên, trình biên dịch không tìm thấy. Thay vào đó, nó tìm thấy 2 phương thức add có tham số là lớp bao của kiểu int là Integer (dòng số 2) và một kiểu rộng hơn kiểu int là long (dòng số 5). Khi ấy, trình biên dịch sẽ ưu tiên gọi phương thức có tham số có kiểu rộng hơn đối số truyền vào thay vì phương thức có tham số là lớp bao của đối số truyền vào.

Overload và quan hệ kế thừa

Nhắc tới quan hệ kế thừa, chúng ta thường đề cập tới mối quan hệ IS-A. Nói cách khác, một đối tượng thuộc lớp con cũng là một đối tượng thuộc lớp cha. Vì thế, khi thực hiện overload phương thức ta hoàn toàn có thể truyền một đối tượng thuộc lớp con vào một phương thức trong danh sách phương thức overload có tham số mang kiểu dữ liệu của lớp cha.
Quan sát ví dụ sau đây:
  1. class Animal{
  2. }
  3. class Dog extends Animal{
  4. }
  5. public class Test_Animal {
  6. void eat(Animal animal){
  7. System.out.println("Animal eats everything");
  8. }
  9. void eat(Dog dog){
  10. System.out.println("Dogs eat meat");
  11. }
  12. public static void main(String [] args){
  13. Test_Animal obj = new Test_Animal();
  14. Animal animal = new Animal();
  15. Dog dog = new Dog();
  16. Animal animal_obj = new Dog();
  17. obj.eat(animal);
  18. obj.eat(dog);
  19. obj.eat(animal_obj);
  20. }
  21. }
Kết quả:
  1. Animal eats everything
  2. Dogs eat meat
  3. Animal eats everything
Kết quả của 2 dòng đầu tiên hoàn toàn dễ hiểu. Tuy nhiên, kết quả của dòng thứ 3 có thể gây lăn tăn cho bạn đọc. Tôi sẽ giải thích điều này như sau:
Hãy quan sát dòng code số 19 và 23.
  • Tại dòng số 19, ta khởi tạo một đối tượng lớp Dog và gán cho một tham chiếu kiểu Animal (hãy nhớ rằng lớp Dog kế thừa từ Animal). Nói cách khác, ta sử dụng một tham chiếu kiểu Animal tham chiếu tới một đối tượng kiểu Dog.
  • Như vậy, tại dòng 23, khi gọi phương thức eat() theo logic thông thường, thì phương thức eat có tham số kiểu Dog sẽ được gọi, nhưng ở đây, trình biên dịch lại gọi phương thức eat có tham số kiểu Animal. Đó là do, tham chiếu animal_obj chỉ xác định được đối tượng nó tham chiếu thực sự tới là đối tượng nào tại quá trình runtime, điều đó đồng nghĩa với, trong khi biên dịch (compile) animal_obj chưa hề biết đối tượng nó thực sự tham chiếu tới trên heap và trình biên dịch chỉ biết về animal_obj có kiểu dữ liệu là Animal. Trong khi đó, việc quyết định chọn phương thức trong danh sách phương thức overload lại được trình biên dịch quyết định trong quá trình compile. Vì thế, trình biên dịch sẽ quyết định phương thức overload được gọi dựa vào kiểu dữ liệu của tham chiếu (Animal), không phải dựa vào kiểu dữ liệu của đối tượng được tham chiếu trỏ tới (Dog).

Chủ Nhật, 30 tháng 10, 2016

change image upload file when have a exists image

html:

<input id="profile-image-upload" class="hidden" type="file">
<div id="profile-image">click here to change profile image</div>


css:

input.hidden {
    position: absolute;
    left: -9999px;
}

#profile-image {
    cursor: pointer;
    background: #8adffb;
  width: 80px;
    height: 80px;
}


js:


$(function() {
    $('#profile-image').on('click', function() {
        $('#profile-image-upload').click();
    });
});

         


https://jsfiddle.net/ksnvphu/vq2u91w6/1/

Thứ Bảy, 29 tháng 10, 2016

How to Convert String to StringBuffer in Java and reverse

How to Convert String to StringBuffer in Java.

String str = "Hello";
StringBuffer sb = new StringBuffer();
sb.append(str);



How to Convert StringBuffer to String in Java

String sb = new StringBuffer();

String str = sb.toString();

Thứ Bảy, 22 tháng 10, 2016

Auto Comment in Eclipse

Class:
- Path: windown/preference/java/code style/code templates/types
/​**
 * ${file_name}
 *
 * version 1.0
 *
 * Date: ${date}
 *
 * copyright
 *
 * Modification Logs:
 * DATE                 AUTHOR          DESCRIPTION
 * -----------------------------------------------------------------------
 * ${date}              PhuNV3              Create
 */​

Method:
- Path: windown/preference/java/code style/code templates/methods



/**
 * @parame ${return_type}
 * @return ${return_type}
 * @throw ${return_type}
 */