Demi-god Stories 5

 

.

Zen

.

Ngồi ăn trưa với một người Nhật mình bày tỏ hâm mộ đến văn hóa Nhật Bản, đặc biệt là Zen.

Vị đó nói cám ơn.

Một người khác hỏi, “có khác biệt gì giữa Thiền Trung Hoa và Thiền Nhật Bản?”

Câu này làm [HP] tằng tằng chút ít nhưng trả lời được: “trả lời câu hỏi này phức tạp lắm nhưng có thể hiểu đơn giản. Thiền Nhật Bản thì tất cả mọi thứ đều là Thiền, còn Thiền Trung Hoa thì chỉ có vài thứ“. (Lại một câu của fan Thiền Nhật Bản)

Vị người Nhật cười rất vui  :)

.

 

 

 

 

 

 

.

.

Tiếng vỗ của một bàn tay

.

Mokurai là thiền sư của chùa Kennin, biệt danh là Tịnh Sấm. Ngài có một đệ tử được gởi gấm tên là Toyo, chỉ mới có mười hai tuổi. Mỗi buổi sáng và mỗi buổi tối Toyo thấy các đệ tử lớn tuổi hơn thường đến viếng sư phụ mong được chân truyền thiền học và chỉ dạy công án để định tâm.

Toyo cũng ước được tọa thiền.

Hãy ráng chờ thêm nữa,” Mokurai bảo. “Con hãy còn bé lắm.

Nhưng đứa trẻ cứ nài nỉ mãi nên sư phụ cũng chiều lòng.

Một buổi tối Toya đến bên ngoài cửa phòng của sư phụ đúng giờ. Cậu đánh chiêng báo hiệu, đánh ba lần ngoài cửa rồi đến ngồi trước mặt sư phụ trong sự yên lặng kính cẩn.

Con đã nghe tiếng vỗ của hai bàn tay,” Mokurai bảo. “Bây giờ chỉ cho ta tiếng vỗ của một bàn tay.

Toyo cúi lạy và lui về phòng mình mà quán chiếu đến công án này. Từ cửa phòng cậu ta có thể nghe văng vẳng tiếng nhạc của các cô đầu geisha. “Ồ! có rồi!” cậu reo lên.

Ðêm hôm sau, khi sư phụ bảo cậu diễn tả tiếng vỗ của một bàn tay, Toyo bắt đầu đàn bài nhạc của các cô đầu.

Không, không” – thiền sư Mokurai bảo. “Chẳng phải thế đâu. Ðó không phải là tiếng vỗ của một bàn tay. Con chẳng hiểu gì cả.

Cho rằng tiếng nhạc văng vẳng quấy rầy quá, Toyo bèn tìm một căn phòng vắng lặng hơn. Cậu ta nghĩ miên man. “Thế nào là tiếng vỗ của một bàn tay?” Cậu chợt nghe có tiếng nước rơi. “Ta được rồi,” cậu tưởng.

Khi cậu gặp lại sư phụ, Toyo bắt chước tiếng nước rơi.

Cái gì vậy?” – thiền sư Mokurai hỏi. “Ðó là tiếng giọt nước rơi, nhưng không phải là tiếng vỗ của một bàn tay. Ráng nữa đi“. Thất vọng, Toyo mặc tưởng đến tiếng vỗ của một bàn tay. Cậu nghe tiếng gió thỏang. Nhưng lại bị gạt đi.

Cậu nghe tiếng cú kêu. Lại cũng bị từ chối.

Tiếng vỗ của một bàn tay lại không phải là của bầy châu chấu.

Toyo đến và đi cũng phải mười bận viếng Thầy với nhiều tiếng động khác nhau. Tất cả đều sai bét. Cả một năm cậu cứ suy nghĩ về tiếng vỗ của một bàn tay là thế nào.

Cuối cùng, cậu bé Toyo đi vào thiền định và quán chiếu tất cả các tiếng động. “Con chẳng còn biết thêm tiếng động nào khác nữa,” cậu giải thích về sau này, “Do đó con đạt đến tiếng động vô thanh.

Toyo đã ngộ được tiếng vỗ của một bàn tay.

.

 

 

 

 

 

 

 

 

.

.

Đổ lỗi cho người khác

.

Một sinh viên đại học đến gặp một trong các tu sĩ của chúng tôi. Cô có kỳ thi quan trọng vào ngày hôm sau, và muốn tu sĩ tụng kinh cho cô để mang lại may mắn. Tu sĩ tử tế chấp nhận, nghĩ rằng nó sẽ cho cô sự tin tưởng. Mọi thứ đều miễn phí. Cô không quyên góp gì.

Chúng tôi không bao giờ thấy cô gái một lần nữa. Nhưng từ bạn bè của cô, tôi nghe nói cô đang rêu rao khắp nơi rằng tu sĩ ở chùa chúng tôi chẳng giỏi chút nào, chúng tôi không biết tụng kinh cho đúng. Cô đã không qua được kỳ thi.

Bạn cô bảo tôi rằng cô thi hỏng là vì hầu như không học bài. Cô là một cô gái của tiệc tùng. Cô đã hy vọng các tu sĩ sẽ thu xếp giúp phần “ít quan trọng hơn“, phần học hành.

Khi một chuyện diễn ra không như ý, việc đổ lỗi cho người khác có vẻ đem lại sự thoả mãn, nhưng sự đổ lỗi hiếm khi giải quyết vấn đề.

 

Một người bị ngứa chân.

Anh ta gãi đầu.

Cơn ngứa không bao giờ hết.

Ajahn Chah nói rằng đổ lỗi cho người khác giống như ngứa chân mà gãi đầu.

Trích dẫn từ cuốn Ai đổ đống rác ở đây? của Sư Ajahn Brahm.

 

 

.

 

 

.

 

 

./.

Advertisements
Posted in Reading, Skill, Wisdom | Leave a comment

Team chat IRC style

.

Top 5 team chat app

(Usually web-based, i.e. available on browsers, but also has native apps on mobile)

Slack

Stride (HipChat)

HangoutsChat

Flock

Flowdock

 

.

 

Runner-Up

Winio

 

.

Honorable mentions

Chanty

Fleep

RocketChat

Fuze

Hive

Mattermost

Bitrix24

Ryver

Glip

 

 

 

 

./.

Posted in Coding, Top5 | Leave a comment

Live a good life

While money is nice, caring about what you do with your life is better, because true wealth is about experience

 

How to live a comfortable life?

That’s a BIG question. Each people will have their own answer.

Nevertheless,  just found a book which has interesting ideas for that.

A counter-intuitive approach to living a good life

(review: https://huongtdao.wordpress.com/non-fiction/the-subtle-art-of-not-giving-a-fck/ )

Basically, I agree wholeheartedly with one of the two main ideas of the book: pragmatically thinking, accept harsh reality gracefully if needed, and one should care/focus on the important things of own self first.
In other words, we get to know our limitations and accept them. There are only so many things we can give a f**k about so we need to figure out which ones really matter.

 

 

 

Time to learn English via songs ?

 

 

 

 

 

 

Hạnh phúc năm mới – ABBA !

Hết xừ nó sâm banh rồi
Pháo hoa cũng tịt mít
Còn mỗi mình với nó
Chán vật!

Tiệc cũng tàn xừ nó rồi
Mới sáng ra giời xám ngoét
Thôi thì cứ mặc kệ hôm qua
Giờ mình với nó cứ gào cái đã

Hạnh phúc năm mới
Hạnh phúc năm mới
Cầu cho chúng mình thỉnh thoảng có thị lực
Ờ, vào nhà hàng xóm tự nhiên như vào nhà mình.. hè hè…
Hạnh phúc năm mới
Hạnh phúc năm mới
Cầu cho chúng mình đều có tí hy vọng và tí di chúc
Nếu không thì nằm xuống và chết đi
Cả mình và nó

Thỉnh thoảng mình lại nhìn thấy
Thế giới mới đi lại dũng cảm ra phết
Mình lại còn thấy nó ngoi lên trong đống tro của cuộc đời mình.. hè hè..
Ối giời, đàn ông toàn là lũ ngốc
Cứ tưởng là mình OK lắm đấy.. húc
Trông kìa, kéo lê cái quả chân đất sét
Lăng qua lăng quăng, vít

Hạnh phúc năm mới
Hạnh phúc năm mới
Cầu cho chúng mình thỉnh thoảng có thị lực
Ờ, vào nhà hàng xóm tự nhiên như vào nhà mình..hè hè…
Hạnh phúc năm mới
Hạnh phúc năm mới
Cầu cho chúng mình đều có tí hy vọng và tí di chúc
Nếu không thì nằm xuống và chết đi
Cả mình và nó

Ơ hơ, bây giờ tự nhiên mình thấy
Những quả mơ của mình lúc trước đều chết ngoẻo, chả còn đếch gì nữa.
Lại hết xừ nó một thập kỷ nữa
Mà mười năm nữa thì bố ai mà biết là cái gì chờ mình ở phía trước…hu hu

Thôi thì cứ nói: Hạnh phúc năm mới.
Hạnh phúc năm mới
Cầu cho chúng mình thỉnh thoảng có thị lực
Ờ, vào nhà hàng xóm tự nhiên như vào nhà mình..hè hè…
Hạnh phúc năm mới
Hạnh phúc năm mới
Cầu cho chúng mình đều có tí hy vọng và tí di chúc
Nếu không thì nằm xuống và chết đi
Cả mình và nó

 

.

 

.

 

.

Dẫn đường đi – Michael Learns To Rock !

Náu mình trong mưa tuyết 
Cố quên đi niềm đau

 

.

 

.

 

.

Mẹ đi vắng – Steel’s Heart !

 

.

 

.

 

.

Mưa tháng mười – Guns N’ Roses !

 

.

 

.

 

.

Ngược đường – Adele !

 

.

 

.

 

.

Nhỏ hay lớn – ABBA !

 

.

 

.

 

.

Ếu quan tâm – Backstreet Boys !

 

.

 

.

 

.

Phi công vũ trụ – Savage Garden !

 

.

 

.

 

.

Lại lên sàn – Maroon 5 !

 

.

 

.

 

.

Quá chặt – Linkin Park !

 

.

 

.

 

.

Giai điệu cũ – The Carpenters !

 

.

 

.

 

.

Trèo cây chanh – Fool’s Garden !

 

.

 

.

 

.

Một lần chịu trách nhiệm – Helloween!

 

.

 

.

 

.

Ngày ấy – M2M !

 

.

 

.

 

.

Nhiều hơn lời nói – Leo Sayer !

 

.

 

.

 

.

Kiên định mục tiêu – George Benson !

 

.

 

.

 

.

Giữ bí mật – Ronan Keating !

 

.

 

.

 

.

Soi gương – M2M !

 

.

 

.

 

.

Nghĩ tới cuối – Steps !

 

.

 

.

 

.

Ngoan đạo – Boyzone !

 

.

 

.

 

.

Thả lỏng – Gorillaz !

 

.

 

.

 

.

Giống như ai – Adele !

 

.

 

.

 

.

Đã cố hết sức – Linkin Park !

 

.

 

.

 

.

Cơ hội tương lai – Tokyo Square !

 

.

 

.

 

.

Tìm lý do – Boyzone !

 

.

 

.

 

.

Có lý do – Pink !

 

.

 

.

 

.

Đóng gói – Jason Donovan !

 

.

 

.

 

.

Mặt trơ – Lady Gaga !

 

.

 

.

 

.

Ai tha 3 – Metallica !

 

.

 

.

 

.

Ham to – Emilia!

 

.

 

.

 

.

Điệu thấp – Backstreet Boys

 

.

 

.

 

.

Nhớ kỹ – Scorpions !

 

.

 

.

 

.

 

 

./.

 

 

Posted in Feeling, Reading | Leave a comment

Student career orientation

Hiệu phó Đại học Hoa sen: Nhà tuyển dụng rất ngại mướn người học siêu giỏi, vì người siêu giỏi hay sợ thất bại lắm!

Hiệu phó Đại học Hoa Sen, GS-TS Trương Nguyện Thành thẳng thắn chia sẻ sau câu chuyện nữ thủ khoa phải về chăn lợn: Nhiều em nghĩ rằng tôi học giỏi, bằng thủ khoa hoặc bằng giỏi, tôi ra đời người ta sẽ mướn tôi. Đó là một nhận định sai lầm!

Thủ khoa về quê chăn lợn vì chưa tìm được việc – là chủ đề nóng trong cộng đồng trẻ suốt thời gian qua. Tiêu đề bài viết ngắn gọn nhưng đủ thông tin gây tranh cãi đã thu hút sự quan tâm của hàng triệu độc giả.

Khi có đủ thời gian nhìn nhận sự việc ở nhiều góc độ, tìm hiểu cặn kẽ gốc rễ của vấn đề, chúng ta mới “À” lên một tiếng! À thì, chăn lợn cũng là một nghề chân chính mà, có gì đáng lên án đâu. Cách mà bạn trẻ thủ khoa kia xoay sở trước hoài bão và thực tế khiến chúng ta phải suy nghĩ. Trăn trở “làm nghề gì cũng được, miễn là tương xứng với trình độ học vấn hay về quê chăn lợn chờ thời” có thể là đại diện cho suy nghĩ của nhiều bạn trẻ khi lựa chọn công việc.

GS-TS Trương Nguyện Thành, Hiệu phó của trường Đại học Hoa Sen, nổi tiếng với câu chuyện vượt khó. Ông từ cậu bé làm ruộng trở thành giáo sư nổi tiếng ở Mỹ. Gần đây, ông được biết đến khi diện quần đùi áo may ô đứng lớp để giúp học trò cởi bỏ những định kiến đang trói buộc tư duy… Giáo sư đã có những chia sẻ sâu sắc về vấn đề “Thủ khoa về quê chăn lợn“.

 

 

GS-TS Trương Nguyện Thành, Hiệu phó của trường Đại học Hoa Sen, trong buổi nói chuyện.

GS-TS Trương Nguyện Thành, Hiệu phó của trường Đại học Hoa Sen, trong buổi nói chuyện.

 

Trên đời không ai thành công hoài

Chào giáo sư,

Khi đọc câu chuyện thủ khoa phải về quê chăn lợn, đợi đến kỳ thi công chức để thi tuyển nhưng chưa được, giáo sư có suy nghĩ gì?

Tiếc! Tiếc rẻ vì giới trẻ bây giờ thông minh, chịu khó học nhưng lại thiếu đi sức phấn đấu, thiếu cái nhìn sự việc đúng đắn, thiếu đánh giá tương lai chuẩn xác. Bài viết về cô bé Hà lại khiến tôi nhớ đến câu chuyện sinh viên ra trường muốn có thu nhập 2.000 USD/tháng cách đây chưa lâu. Tôi thấy các em sinh viên đang ảo tưởng về một tương lai không có thực.

Một phần lỗi nằm ở truyền thông khi cứ thổi phồng lên thành quả của người thành công, mà biết bao cái thất bại ở sau lưng thì lại không nói đến. Ngàn người mới có một người thành công, thành công đôi khi cũng nhờ may mắn, các bạn trẻ đừng nghĩ ai cũng sẽ được như vậy mà hão huyền chính mình.

Chúng ta hay thổi phồng lên thành quả của người thành công, mà biết bao cái thất bại ở sau lưng thì lại không nói đến.

Chúng ta hay thổi phồng lên thành quả của người thành công, mà biết bao cái thất bại ở sau lưng thì lại không nói đến.

 

Giáo sư nghĩ một phần lỗi nằm ở cách thổi phồng thành tích, vậy thì liệu việc vinh danh thủ khoa có cần thiết?

Ở Mỹ, thủ khoa được nhà trường trao cho vinh dự lên nói chuyện trước toàn trường vỏn vẹn 5 phút, ngoài ra không còn ai biết người đó từng là thủ khoa ngoài bản thân họ.

Vinh danh long trọng đem đến áp lực rất lớn cho người trẻ. Rất nhiều người giỏi tôi đã gặp, khi họ thất bại, họ chịu không nổi. Áp lực đặt lên vai họ rằng mình đã là như vậy, cho nên mọi người nghĩ mình phải được như vậy trong tương lai. Đôi khi, áp lực quá lớn khiến họ tìm đến cái chết.

Vậy nên, tôi không muốn chuyện vinh danh bị làm quá lên như hiện nay. Ở những xã hội khác, cộng đồng khuyến khích bạn trẻ làm tốt hơn hằng ngày. Khi em làm điều gì tốt, cha mẹ vỗ vai nói: “Good job” thế là xong! Còn nếu em thất bại, họ sẽ nói: “Hey! Next time to be better” (Lần sau phải tốt hơn nhé!). Họ tập trung vào khuyến khích lúc người trẻ ngã, chứ không để ý quá nhiều đến chuyện thành công.

Trên đời không ai thành công hoài! Nếu không thất bại chỗ này, họ cũng sẽ bại chỗ khác.

Trên đời không ai thành công hoài! Nếu không thất bại chỗ này, họ cũng sẽ bại chỗ khác.

Còn ở ta, cộng đồng – xã hội – gia đình tâng bốc khi người trẻ thành công, tạo nên suy nghĩ rằng tôi phải được như vậy thì cha mẹ thương, mọi người chú ý, mới nhận được sự tôn trọng của xã hội. Nếu người lớn biết cách động viên con cái sau những thất bại, điều đó sẽ khiến người trẻ có thêm một khả năng mới, tạm gọi là “kháng bại”.

Trên đời không ai thành công hoài! Nếu không thất bại chỗ này, họ cũng sẽ thất bại ở chỗ khác. Những người rất giỏi thường gặp thất bại ở đường gia đình, vì bản thân họ không có khả năng phát triển quan hệ giữa con người với con người. Người siêu giỏi cũng không có nhiều cơ hội để phát triển mình hơn nữa do ảnh hưởng tâm lý, áp lực.

Người siêu giỏi khó xin việc vì ngại xông pha, sợ thất bại

Nếu giáo sư trong vai nhà tuyển dụng, ông có muốn thuê thủ khoa này về trường mình giảng dạy không?

Nếu như Hà không chịu đi làm thêm vài tháng nữa thì những kiến thức không sử dụng đến sẽ đi vào quên lãng. Ở đâu cũng vậy, nhà tuyển dụng sẽ để ý đến quãng thời gian mà bạn không đi làm. Bạn nên biết rằng, những gì mà bạn làm và bạn không làm đều thể hiện được con người của bạn.

Đừng nghĩ rằng chỉ khi nào tôi làm, tôi mới thể hiện hết con người của mình! Ngay cả khi bạn không làm gì, nhà tuyển dụng cũng đánh giá trên khía cạnh đó. Tôi ví dụ thế này, nếu như một bạn trẻ đi xin việc nhưng kinh nghiệm làm việc trong hồ sơ bị trống một năm, chắc chắn nhà tuyển dụng sẽ hỏi: Anh làm gì với cái năm đó?

Anh ta trả lời: Tôi mệt, tôi ở nhà, ăn rồi không làm gì.

Nhà tuyển dụng sẽ kết luận: thứ nhất, anh không có tính tự lập, thứ hai, không có tinh thần trách nhiệm (cha mẹ nuôi anh lớn cỡ này, anh học xong về nhà còn bòn cha mẹ nữa).

Đây chính là suy nghĩ của nhà tuyển dụng.

Đây chính là suy nghĩ của nhà tuyển dụng.

 

Trong thời buổi báo chí đang rần rần nói về Cách mạng Công nghệ 4.0 với những thay đổi chóng mặt trong thị trường lao động, bạn ra trường mà cứ tàng tàng không kiếm việc thì sớm muộn cũng bị rơi ra khỏi guồng quay của xã hội.

Nhiều em nghĩ rằng tôi học giỏi, bằng thủ khoa hoặc bằng giỏi, tôi ra đời người ta sẽ mướn tôi. Đó là một nhận định sai lầm!

Đa số người tuyển dụng tuyển nhân viên không chỉ vì điểm số mà thậm chí là gạt bỏ tiêu chí đó. Họ sẽ ngồi nói chuyện và tiếp xúc với ứng viên để xem trình độ về ứng xử, độ già dặn, kỹ năng mềm của người đó ra sao. Tại vì sao? Nếu tôi mướn anh hoăc tôi mướn cô, anh và cô phải học thêm hằng ngày vì kiến thức mà các sinh viên mới ra trường có chỉ là A B C D thôi.

Người tuyển dụng luôn nghĩ chuyện đường dài, không nghĩ đến vấn đề của hiện tại.
Người tuyển dụng luôn nghĩ chuyện đường dài, không nghĩ đến vấn đề của hiện tại.

Nếu bạn trẻ không suy nghĩ công việc đòi hỏi mình phải học nữa và học hoài thì tôi thà mướn một em dở hơn thủ khoa nhiều lần nhưng em ấy ham học thay vì mướn một người trẻ mà nghĩ là mình biết hết. Với một nhân viên mới ham học, ham tìm hiểu thì chỉ trong vòng 3 năm, bạn ấy có thể vượt xa trình độ thủ khoa không chịu học. Người tuyển dụng luôn nghĩ chuyện đường dài, không nghĩ đến vấn đề của hiện tại.

Vậy có nghĩa là người giỏi và siêu giỏi mà không chịu học hỏi, không chấp nhận quên đi danh hiệu mình có được ở trường thì sẽ có nguy cơ thất nghiệp cao hơn những bạn bình thường?

Chính xác là như vậy! Thường thì nhà tuyển dụng rất ngại mướn những bạn siêu giỏi. Cái đứa học siêu giỏi như thủ khoa nó chỉ có biết bài vở à. Trong khi, những bài toán thực tế ở đời lại không có đáp số. Bạn sẽ không biết rằng cách giải quyết của bạn là đúng hoặc là sai!

Nhà tuyển dụng sẽ luôn xem xét cách bạn giải quyết vấn đề. Những đứa giỏi sẽ hay có suy nghĩ nếu thử cái này nhỡ nó hư thì sao, nhỡ thất bại thì sao? Những đứa giỏi là những đứa rất sợ thất bại vì với chúng nó, thất bại là một thứ gì đó lớn lao lắm. Nó chịu không được cảm giác đó.

Cuộc đời là một ẩn số, có giỏi đến đâu bạn cũng chưa chắc đã giải được.

Cuộc đời là một ẩn số, có giỏi đến đâu bạn cũng chưa chắc đã giải được.

 

Đừng bao giờ chọn một công việc vì vật chất hay lương bổng

Thưa giáo sư, ông có từng chứng kiến một câu chuyện nào trong thực tế mà người giỏi lại không “được việc” bằng người bình thường?

Cách đây hơn 10 năm, tôi có nhận 5 đứa học trò Thái Lan du học theo diện có học bổng của chính phủ. Tôi xếp 5 đứa này theo thứ hạng từ giỏi đến dở. Trong đầu tôi lúc ấy cứ nghĩ đứa giỏi nhất sau này sẽ thành công nhất, vì nó biết hết mọi thứ. Đứa dở nhất nó chỉ được mỗi một điểm cộng là thân thiện, hòa đồng và rất dễ kết bạn, quan hệ con người giỏi.

Tôi nghĩ thầm, nếu con bé này có bằng tiến sĩ thì chắc cũng về đi dạy bình thường thôi. 15 năm sau, hiện tại, nó ngược lại. Đứa mà tôi đánh giá dở nhất bây giờ trở thành Phó giáo sư nổi tiếng nhất Thái Lan. Còn đứa giỏi nhất, 2 năm sau khi thi tiến sĩ, nó mệt mỏi và không muốn làm gì nữa. Hiện tại, nó chỉ đi dạy ở một trường đại học làng nhàng bên Thái.

Câu chuyện này cho thấy điều gì? Thông minh, học giỏi không phải là yếu tố thành công trên đường dài. Giáo dục nên khuyến khích chuyện học và phát triển một người trẻ theo hướng toàn diện.

Một con người góc độ nào cũng bầu tròn đủ đầy thì tốt hơn nhiều.

Một con người góc độ nào cũng bầu tròn đủ đầy thì tốt hơn nhiều.

Toàn diện ở đây là gì? Em có kiến thức chuyên môn (mặc dù không siêu nhưng đủ), em có khả năng ứng xử, giao tiếp, giải quyết vấn đề, tâm lý ổn định, cái nhìn xã hội đúng đắn, cách phân tích vấn đề chững chạc. Tức là em trở thành một con người toàn diện chứ không góc cạnh, chỗ vượt lên thiệt cao, chỗ kia teo nhách. Một con người góc độ nào cũng bầu tròn đủ đầy thì tốt hơn nhiều.

Một số bạn trẻ cho rằng ra trường khó xin việc, thôi thì đi chạy xe ôm công nghệ kiếm sống qua ngày, đỡ hơn thủ khoa về quê nuôi lợn, giáo sư nghĩ sao về quan điểm sống ấy?

 

Công việc phải tương xứng với trình độ học vấn. Tôi không ủng hộ chuyện sinh viên tốt nghiệp rồi ra đường chạy xe ôm. Nó không đúng trình độ.

Đừng bao giờ chọn một công việc vì vật chất, vì lương bổng hay vì danh dự của công việc. Mà hãy chọn công việc vì cơ hội mà nó có thể đem lại. Vì cơ hội nó không đến một lúc nhiều lần. Cơ hội nó mở ra từng cửa một.

Bây giờ tôi ra trường, tôi không có công việc làm, phải trả tiền nhà, ăn ở lại không thể ngửa tay xin bố mẹ. Tài sản duy nhất tôi có chỉ có chiếc xe honda. OK, tôi chịu chạy Grab, nhưng chạy Grab chỉ để trang trải tiền nhà, chỉ để mua ổ bánh mì thịt ăn mà sống. Thời gian còn lại, tôi sẽ dùng để đi tìm cơ hội cho tương lai mình. Tôi chạy Grab để sống và tìm tương lai chứ không phải trông cậy đồng tiền của Grab để mà sống và cam chịu số phận. Hai cái nó hoàn toàn khác nhau.

Ngồi nhà mà chờ sung rụng, sung chẳng bao giờ rụng ngay miệng mình cả!

Ngồi nhà mà chờ sung rụng, sung chẳng bao giờ rụng ngay miệng mình cả!

 

Trong trường hợp của Hà, ra trường nhưng không có việc làm. Tôi cũng không thể suốt ngày vác đơn đi xin chỗ này chỗ kia mãi được. Vậy thì bây giờ tôi làm gì? Tại sao không dành thời gian đó đi làm thiện nguyện hoặc làm ở nơi nào mà mình biết họ cần kiến thức của mình?

Thiện nguyện sẽ mang lại cho bạn rất nhiều mối quan hệ mới, từ quan hệ đó sẽ mở ra nhiều cơ hội khác, cơ hội lại dẫn đến cơ hội. Ngồi nhà mà chờ sung rụng, sung chẳng bao giờ rụng ngay miệng mình cả!

Kiến thức mà sinh viên được học ngày hôm nay, 5 năm nữa chưa chắc xã hội cần. Tại sao? Con robot nó làm được thì mình phải làm cái khác chứ, mình phải làm cái gì mà con robot nó làm không được. Bạn trẻ buộc phải có khả năng thay đổi nhanh chóng để đi trước, đón đầu nếu không muốn bị loại bỏ.

Theo giáo sư, ngoài nhận định sai lầm về chuyện chạy xe ôm công nghệ kiếm sống thì ông thấy hiện nay bạn trẻ Việt còn mắc những sai lầm nào khác trong suy nghĩ?

Các bạn trẻ muốn sau khi ra trường muốn làm được lương 2.000 USD – 3.000 USD tháng nên ngồi xuống và suy nghĩ lại. Chỉ khi nào bạn chứng minh được tôi có thể đem lại nguồn thu cho công ty 5.000 USD/tháng, thì lúc ấy bạn hãy đòi “ông chủ” trả lương 2.000 USD/tháng cho mình.

“Ông chủ” của bạn phải trả tiền thuê mướn, bảo hiểm, đủ thứ tiền cho cái vị trí của bạn ngồi, và ông ta còn phải có lời nữa chứ.

 

Một vấn đề nữa, tôi thấy các bạn trẻ có nhận định là đi làm cho nhà nước thì an toàn, lương thấp nhưng không mất việc, nhàn. Tằng tằng đến cơ quan coi báo hết ngày về cũng không ai nói gì. Cái nhận định ấy lại càng sai lầm nữa.

Nơi nào khó khăn nhất, nơi đó có nhiều cơ hội nhất. Càng khó khăn, càng có ít người có khả năng giải quyết xông pha. Mà mình dám làm thì mình có nhiều cơ hội để thể hiện. Trong khi đó giới trẻ lại sợ khó khăn, sợ những công việc khó.

Công việc dễ, lương cao, nhàn, an toàn… những cái đó là dành có những ông già như tôi làm. Mà già như tôi đây còn chọn từ Mỹ về Việt Nam với đầy rẫy thử thách. Thử hỏi, các bạn trẻ hơn tôi đang làm gì?

Nhân buổi trao đổi này, điều gì từ đáy lòng giáo sư muốn nhắn nhủ đến các sinh viên đang đứng trước ngưỡng cửa vào đời?

Các sinh viên hãy đặt mình vào vị trí ngược lại, khi muốn một điều gì đó. Thí dụ, hãy đặt mình vào vị trí ông chủ và hỏi: Tại sao ổng muốn mướn mình? Mình có cái gì để ổng chọn?

Lời nhắn nhủ của GS-TS Trương Nguyện Thành dành cho bạn trẻ.

Lời nhắn nhủ của GS-TS Trương Nguyện Thành dành cho bạn trẻ.

 

Thực tế không như những hoài bão, ảo tưởng mà các em sinh viên hiện nay đang nghĩ về lương bổng, công việc, cơ hội, tuyển dụng… Các em phải nhìn từ thực tế đó và đánh giá lại con người mình, mình đã chuẩn bị chưa? Nếu không, xã hội sẽ loại bỏ mình.

 

 

./.

(Nguồn: http://cafef.vn/hieu-pho-dai-hoc-hoa-sen-nha-tuyen-dung-rat-ngai-muon-nguoi-hoc-sieu-gioi-vi-nguoi-sieu-gioi-hay-so-that-bai-lam-20171012070435268.chn

backup link: https://linkbook.vn/sinh-vien-sap-tot-nghiep-loi-di-nao-cho-cac-ban/ )

 

Posted in Quote, Wisdom | Leave a comment

Courage Osho Vietnamese

 

osho-sach-can-dam-bao-sggp_ppeb

 

(to be updated)

 

./.

 

Posted in Feeling, Reading, Skill | Leave a comment

Learning code online

 

Tập hợp một số tài nguyên trực tuyến (websites/hyperlinks) có thể hỗ trợ các bạn trẻ học được coding từ xa, online.

(last updated: 10/2017)

Ở đây ưu tiên các website tiếng Việt (hoặc của người Việt) trước, phần các website có nguồn gốc nước ngoài sẽ đề cập sau.

Online training (videos/podcasts)

myclass.vn

tedu.com.vn

kyna.vn

courses.vn

kampus.vn

techmaster.vn

laptrinh.io

.

Online training (hands-on/interactive)

vietpro.net.vn

zendvn.com

.

Online articles

laptrinhx.com

techtalk.vn

techblog.vn

viblo.asia

kipalog.com

codehub.vn

toidicode.com

.

Q & A (sample code)

http://daynhauhoc.com

toughdev.vn/qa/

.

Motivation

https://techtalk.vn/ngunglambieng-canh-tinh-thuc-trang-luoi-bieng-tu-trong-tu-tuong-dang-lo-ngai-cua-sinh-vien-cntt.html

(Serious: https://www.facebook.com/notes/hoang-to/yếu-tố-giới-hạn-limiting-factors/10152318107858293/

Satirical: http://how.vndemy.com/background/1388-lap-trinh-su-ban-tai-can/ )

http://sites.google.com/site/newbielearnlinux2/smartquestions#6

http://tonybuoisangonline.com/noi-long-bo-de-su-to.html

http://tuoitre.vn/le-duc-thong-noi-gi-494729.htm

https://ducquoc.wordpress.com/2013/01/19/coder-rant-money/ 

https://ducquoc.wordpress.com/2011/11/12/cognitive-bias-traps/

https://hocthenao.vn/2015/01/27/dieu-toi-hoc-duoc-tu-coursera-khieu-anh/

http://newbielearnlinux.googlepages.com/smartquestions

.

Misc (conferences/events/UG/offline)

(vài trung tâm hoặc trainer tác giả nhận thấy là ổn – lưu ý: tác giả KHÔNG nhận PR/Ads cho bất kỳ cái nào trong bài viết này)

meetup.vn

ticketbox.vn

khoapham.vn

hocthietkeweb.net.vn

 

.

 

 

.

 

Bây giờ bắt đầu phần tiếng Anh (English).

 

18043011

Online training (videos/podcasts)

coursera.org

udemy.com

freecodecamp.org

.

22221927_10213219363232116_3080624989916509826_n

.

Online training (hands-on/interactive)

codecademy.com

codeschool.com

.

22308941_10213219364032136_7842871211724726358_n

.

Online articles

dzone.com

infoq.com

developer.com

 

.

Q & A (sample code)

stackoverflow.com

softwareengineering.stackexchange.com

 

 

Về các trang thử thách dạng HackerRank, Codility, … thì đã được nêu sơ qua trong 1 bài viết trước đây. Tôi nghĩ không nên thử thách beginners quá sức nên không đưa vào đây, những trang đó phù hợp hơn với các bạn trẻ đã có experience.

(Sẽ nêu cụ thể trong bài viết về các trang online Judge / Challenge có tính competitive programming như IOI/ACM-ICPC)

.

 

 

Bonus: Một số trang tutorial về Java: baeldungmkyongpetriKainulainen, logicbig, howtodoinjavavogella, jenkovjournaldev, o7planningstudytrailsehchua, javatpointw3schools, …

.

 

Hope this helps,

 

 

 

./.

Posted in Coding, Skill, Top5 | 3 Comments

IDEA Tomcat HotSwap

Besides the posts about hot deploy on Tomcat Eclipse (WTP), and on JBoss exploded EAR/WAR, this is a similar post about Java hotswap based on the Java Platform Debugger Architecture (JPDA), or more specific layer, the Java Debug Wire Protocol (JDWP).

Yes, “hotswap” does not necessary mean to deploy, the Java app can see different results in runtime just via debugging. Okay later on you can still deploy to the web server so that it can run as production, but the point of hotswap is to speedup development process.

In this field, the leading software is JRebel, but its price is a bit high compared to living standards in developing countries in South East Asia, like Vietnam. Therefore I tried the “free” alternatives:
+ Dynamic Code Evolution (DCE) VM
+ HotswapAgent – a derivative work from DCEVM agent
+ SpringReloaded – also a similar approach to HotswapAgent (different bytecode lib)
+ Spring Boot DevTools – not really “hotswap” classes but “quick reload/restart”, and can “refresh” the static resources (CSS, HTML, …).

Anyway, they all are based on classloader replacement and bytecode instrumentation/manipulation.

In the end, I found that it’s still okay to use a “mix” of those, they are very close to JRebel if used properly.

For instance, I use DCEVM with SpringLoaded agent for general debug hotswapping, it’s good when using with servlet containers which takes time to restart/re-deploy, like Tomcat and JBoss web (the new “Undertow”). Jetty is still good and under-rated, as usual, but I will leave it as “low-profile” rather than being acquired and become bloated.

For general Java projects, I think HotSwapAgent provides good plug-ins for IDEs, though it’s still not popular on IntelliJ IDEA (yet).

I would recommend HotSwapAgent on IDEA users, but for local Tomcat debug I would use DCEVM with SpringLoaded:

VM Options: (either JAVA_OPTS / JPDA_OPTS / CATALINA_OPTS are all ok)

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -javaagent:/home/ducquoc/.m2/repository/org/springframework/springloaded/1.2.7.RELEASE/springloaded-1.2.7.RELEASE.jar -noverify -XXaltjvm=dcevm

Spring Boot DevTools is on its way to become “hotswap”, for now it’s a quick reload/restart and can still be used with standard JVM debug hotswap (JDWP), thus it’s still better than “nothing”, and it has potential since Spring Boot is getting popular and can actually save the time/day rather than being “intrusive” like the old SpringFramework approach.

.

That’s it. The slow deployment time was a counter-productive factor of Java development, but things are much better now thanks to such debugging tools.

./.

Posted in Coding, Linux | 1 Comment

Git pull all

 

(targeted audiences: developers/coders/programmers)

Git projects are typically small and we may have multiple projects on a workspace.

Hence sometimes we have 8+ projects on the workspace it may be tedious to update git pull manually. And we don’t have “parent project” like in SVN anymore, not update all option huh? Okay we can do it with shell script.

I’ll make it one-liner, given the current working directory is the workspace:

for i in */.git; do ( echo $i; cd $i/..; git pull; ); done

And when we need to Git pull with rebase (or the global config always rebase when pulling), just use stash along with it. Replace the normal git pull with following:

git stash && git pull --rebase || git pull --rebase && git stash pop

Combined with the command above we can still have “one-liner” , but I also made a simple bash script git-pull-all.sh for arbitrary workspace dir (not just basedir).

For non-Linux user (Redmond), either use Git Bash with above script, or the following batch script counterpart:

for /d %a in (*.*) do cd "%CD%\%a" && git pull

The git rebase stash above still works with Windows.

for /d %a in (*.*) do (cd "%CD%\%a" && git stash && git pull --rebase || git pull --rebase && git stash pop)

I also made a git-pull-all.bat for that as well (using %% variables with for loop, not % as in direct command line).

 

That’s it.

 

.

 

Bonus: For IDE you may want to enable auto import Maven/Gradle changes (so that after updating Git repos the dependencies will be update automatically). For example IntelliJ IDEA can enable Auto Maven Imports at:

File -> Settings -> Build, Execution, Deployment > Build Tools > Maven > Importing

(old versions of IntelliJ IDEA:

File -> Settings -> Maven > Importing

)

Also, enable Annotation Processing will be good when you are using libraries such as Lombok or Mapstruct.

File -> Settings -> Build, Execution, Deployment > Compiler > Annotation Processors

(IntelliJ wrap line at 120 spaces:
+ format: Settings / … / Code Style / JAVA / Wrapping and Braces / Ensure right margin is not exceeded = Yes

+ typing: Settings / … / Code Style / JAVA / Wrapping and Braces / Wrap on typing = Yes

)

 

 

 

 

./.

Posted in Coding, Skill | 2 Comments

Grep Sed Awk

 

 

(Edited: bài viết từ cuối 2011 – ID:110 – draft state bấm nhầm publish lỡ rồi thôi)

 

Grep

Tìm các dòng chứa chuỗi chuoi trong 1 files:

$ grep "chuoi" ten_file

.

Tìm các dòng chứa chuỗi chuoi trong nhiều files đuôi .txt:

$ grep "chuoi" *.txt

(Nếu dùng find để tìm CHUOI trong file .txt:

 $ find . -name *.txt -exec grep CHUOI {} ;

hoặc

 $ find . -name *.txt -print | xargs grep CHUOI

)

Tìm không phân biệt chữ hoa chữ thường: tùy chọn -i

$ grep -i "chuoi" ten_file

Tìm chính xác từ chuoi ko tinh chuỗi dài hơn như chuoichien : tùy chọn -w

$ grep -w "chuoi" ten_file

Tìm những dòng Không chứa chuoi (phủ định của tìm dòng chứa): tùy chọn -v

$ grep -v "chuoi" ten_file

Kết hợp lệnh ps để tìm process có tên java :

$ ps -ef | grep java

 

Ngoài ra còn có option -E để tìm theo RegEx, -F để tìm theo file.

Tìm tất cả dòng có chứa github hoặc bitbucket trong config các repository Git:

$ grep -E "github|bitbucket" */.git/config

 

Một số Linux distro sẽ có egrep tương đương “grep -E” , và fgrep tương đương “grep -F” .

Ngoài ra còn option -A-B cũng tương đối hữu ích.

 

.

Sed

Sed chủ yếu dùng để thay thế (substitute) các từ trong 1 văn bản, và có thể xuất kết quả ra output hoặc file khác (chứ ko nhất thiết đè lên file gốc).

Thay từ old (đầu tiên) bằng từ new trong file filename.txt :

$ sed -i 's/old/name/' filename.txt

Thay từ old (tất cả) bằng từ new trong file filename.txt :

$ sed -i 's/old/name/g' filename.txt

 

Nếu không thay thế trực tiếp (in place) thì ko cần option -i , có thể append/output ra file mới:

$ sed 's/old/name/g' filename.txt > newfile.txt

 

VD: thay URL HTTPS sang GIT trong .git/config file của 1 Git Repository:

Repo https://github.com/ducquoc/euler-fun

sẽ có dòng sau trong file config trong thư mục .git ở root dir repo:

[remote "origin"] 
  url = https://github.com/ducquoc/euler-fun.git

thì sau khi chạy dòng sed sau sẽ thay giao thức HTTPS bằng Git over SSH:

$ sed -i 's/https:\/\/github.com\/ducquoc/git@github.com:ducquoc/g' euler-fun/.git/config

(dấu backslash \ để escape ký tự slash /  trong regular expression ). Kết quả:

[remote "origin"] 
  url = git@github.com:ducquoc/euler-fun.git

Áp dụng tương tự cho các Git repository ở bitbucket:

$ grep -E "bitbucket|github" */.git/config
$ sed -i 's/https:\/\/ducquoc@bitbucket.org\/ducquoc/git@bitbucket.org:ducquoc/g' */.git/config

 

 

.

Awk

Ứng dụng để dò git remote URL (chỉ in ra URL – cột 2 – sau khi grep) trong Git repository:

$ git remote -v | grep origin | awk '{print $2}'

(có thể assign vào biến shell script để xử lý tiếp)

Ứng dụng tìm process, lọc PID và xử lý :

$ ps -ef | grep PROCESS | grep -v grep | awk '{print $2}' | xargs kill -9

(kill -9 tương đương kill -s SIGTERM để tắt tất cả process input)

Tương tự:

$ ps -ef | awk '/PROCESS/ && !/awk/ {print $2}' | xargs -r kill -9

.

Ngoài ra awk có vài anh em họ: gawk, nawk, mawk – bổ sung một số tính năng nâng cao. Ở đây chỉ giới thiệu cơ bản awk , các command ở trên cũng ra cùng kết quả nếu dùng các chú kia.

Thế nên ai muốn tìm hiểu thêm xin cứ tự nhiên hỏi … Mrs. Google :D .

 

.

 

Bonus:

* nohup để giữ process vẫn chạy sau khi user ko còn login:

$ nohup  /usr/bin/php long_running_process.php > /var/log/nohup_long_running_process.log &

* Liệt kê các file backups và xóa bớt những file quá hạn với xargsrm -rf :

$ ls -td1 /data/backup/*/ | tail -n +4 | xargs -r rm -rfv 2> /var/log/backup_cleaner.log

 

.

 

./.

Posted in Coding, Linux | Leave a comment

Not A Number

 

POV-Six-Nine

 

Khi lập trình với JavaScript,  có nhiều bạn khá thú vị với toán tử so trùng (===) , và thường ưu tiên hơn toán tử so sánh tương đương (==) .

Đây cũng là 1 điều được đề cập sớm trong quyển “JavaScript: The Good Parts” , cũng là 1 mục dễ gây hiểu lầm khi coding. Nó cũng gần như so sánh  ==    và    equals()   trong ngôn ngữ Java.

Tuy vậy, có những trường hợp mà kết quả của  ===  có thể khác với expectation theo logic kể trên.  Hãy xem thử đoạn JavaScript sau:

var n = "Anh";
console.log("Co phai la anh? n==n " + (n=="Anh"));
console.log("Anh that dung la anh? n===n " + (n==="Anh"));
console.log("Anh moi? == " + (n==new String("Anh")) + " GiaTri? " + (n==String.valueOf("Anh")));
console.log("Anh moi dung? === " + (n===new String("Anh")) + " GiaTriDung? " + (n===String.valueOf("Anh")));

var m = NaN;
console.log("Co phai la em? m==m " + (m==m));
console.log("Em co dung la em? m===m " + (m===m));
console.log("Khong phai anh a? " + (NaN==NaN));
console.log("Khong phai la anh, co phai la em? " + (NaN===NaN));

.

.

Nếu bạn biết coding, hãy dự đoán 1 chút trước khi cuộn xuống…

.

.

.

.

.

.

.

OK, nhẹ nhàng scroll down cái nào :)

.

.

.

.

Kết quả so sánh NaN==NaNfalse,

và so sánh NaN===NaN lại là false!

Ít nhất là trong JavaScript là như thế … (nói chung là ECMAScript – ES).

.

Anh không phải anh ? Em không phải là em?

.

Liệu có gì đó sai sai về mặt logic không?

Sau một hồi suy nghĩ , tôi cảm thấy cái này cũng hợp lý, không phải vấn đề ở biến “em” hay biến “Anh” .

Mà về mặt ký hiệu lập trình, NaN là pre-defined tượng trưng cho “Not A Number” , 1 giá trị không phải là số .

Nên “không phải số” có thể là 1 chuỗi (“m”), và khi so với 1 “không phải số” khác, thì có thể là chuỗi khác (“n” or “someArbitraryFunction”), hoặc thậm chí là hàm (function), vì thế kết quả so sánh giữa 2 cái sẽ không trùng nhau, hoặc không tương đương.

Nếu như vậy thì kết quả trên là hợp lý, có thể có rất nhiều giá trị ứng với NaN , cũng như khi đi từ A tới B có thể có rất nhiều con đường.

Một cách nói khác, khi ta nói về ngôn ngữ lập trình nói chung, nó có thể là Java, nó có thể là JavaScript, còn khi nói “không phải Java” thì ko có nghĩa là “phải là JavaScript” hoặc “phải là Ruby”, và tương ứng ngược lại.

Những cuộc thảo luận về ngôn ngữ lập trình thường khá hứng thú với nhiều coder/programmer , nhưng không nhất thiết dẫn tới sự đồng ý về “the next big language” or “the next big thing” .

Có lúc tôi nghĩ JavaScript là ngôn ngữ lập trình dẫn đầu, nhưng bây giờ thì có thể không là như vậy nữa. Thì điều này không có nghĩa là sự phê phán JavaScript, hay sự trách móc Java, C# , … có thể đó chỉ là những ngôn ngữ triển vọng nào đó (Python, Erlang?) hoặc tốt về mặt performance như Scala, Clojure,… hoặc thậm chí là Go, Elixir, …

.

Who knows?

The logic of a language design is just a thing in life. We may remember some particular cases, and bear in mind the general approach if that helps our work/life, that’s sufficient I guess.

.

./.

Posted in Coding, Feeling | 1 Comment