Live a good life

 

 

 

 

 

 

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.
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 !

 

 

 

 

 

./.

 

 

Advertisements
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

kipalog.com

laptrinhx.com

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://newbielearnlinux.googlepages.com/smartquestions

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/

.

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 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.

.

 

 

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

.

 

Hope this helps,

 

 

./.

Posted in Coding, Skill, Top5 | 2 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 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

.

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

Oracle JavaSE alternatives

Oracle used to have very good sales strategies, for instance it has early investment for Linux database markets, which proves to be a brilliant idea and helps Oracle gain a lot of reputation (later on Oracle DB is well known and got biggest marketshare for enterprise relational DBMS).

However, since its acquisition of Sun Microsystems, Oracle thinks it is a bigshot and now can turn its back on the community, can dictate the ecosystem of its acquired products. Hence, it seems Oracle is on the wrong track.

https://www.theregister.co.uk/2016/12/16/oracle_targets_java_users_non_compliance/

 

 

Starting with Hudson, a well-known opensource CI tools. The commercial attempts did not go well, though. And the community managed to come out with Jenkins CI, a fork from open source codebase, but it soons become more popular than Oracle’s Hudson.

Other attempts like MySQL “commercial support” prices doubled, or legal suing attempts against Google, resulted in mixed results. However I would say that Oracle got more hatred than it should. Google made the retaliation on the Chrome browser’s support of JRE, namely Java Applet will be no longer supported as of Chrome 42 due to “API not compatible/supported” – legacy “NPAPI” is too ugly to be supported. As of Firefox 52, Mozilla stopped supporting applet also, and it’s enough for the poor applet.

The MySQL community also made a fork “MariaDB” from MySQL, gradually gain popularity from MySQL users, though not as successful as Jenkins-vs-Hudson.

 

Recently, Oracle prepared a campaign on Java SE “licenses of end users”, looks like it prepare to sue big enterprises for using Java SE “illegally”. This is costly for such enterprises already, they have to hire legal people/services to review and prepare against such risks from Oracle (Google, you are not alone!).

 

https://jaxenter.com/time-pay-oracle-supposedly-going-java-clients-130901.html

https://developers.slashdot.org/story/16/12/18/0147216/oracle-begins-aggressively-pursuing-java-licensing-fees

https://www.1e.com/blogs/2016/12/20/bad-santa-oracles-hunt-for-java-licensing-cash/

 

As a result, people began to look at alternatives to Java SE. I will list a few:

+ IBM’s v9: https://www.ibm.com/support/knowledgecenter/SSYKE2/welcome_javasdk_family.html

+ Redhat’s IcedTea: http://icedtea.classpath.org/wiki/Main_Page

+ Azul’s Zulu: http://www.azul.com/downloads/zulu/

+ Azul’s Zing: https://www.azul.com/products/zing/

Besides, Apache Harmony and GNU Classpath/Kaffe are still around (though they seems slow as of OpenJDK). They have decent implementations, and can import/integrate OpenJDK code fork at any times.

Yes, the Java SE users are fully prepared for another lawsuit, and they have good alternatives already.

.

Oracle, being big does not make monopoly. Think twice before being greedy and abusing your acquired products like you are the biggest boss on earth. If Oracle continues to take the community lightly they will get loss instead of benefits, I suppose.

 

 

./.

 

Posted in Feeling, Marketing | Leave a comment

Change You Need

 

Cảm hứng từ bạn Dưa Leo. Dưa Leo này hình như lớn hơn tôi 1 tuổi, tạm gọi là “bạn” vậy.

Nhiều bài talk của Dưa Leo tôi thấy khá giống với suy nghĩ của mình, nhưng Dưa Leo nói hay hơn, diễn đạt tốt hơn. Tôi cũng học được nhiều cách diễn đạt từ Leo, mặc dù không chắc lắm những gì anh ấy nói có thật sự là điều anh ấy tâm đắc hay không :) .

 

Chẳng hạn, bài tiêu biểu (rất sớm) trong channel của Leo là:

Cuộc đời hên xui, do mình hết đó!

.

.

Bạn Leo có vẻ cũng được ảnh hưởng từ Obama qua VN (“Change We Need” – ko phải THDT) nên có vài clip khá thú vị gần đây. Tôi đã quyết định tạo 1 playlist Youtube sưu tầm vài clip hay của Leo, và viết bài này ủng hộ cậu ta.

[Link playlist – place holder]

 

.

Về mặt “tiêu cực” của Leo, có vẻ là cậu cũng có sử dụng lại 1 số ý tưởng trước đây (chẳng hạn clip cách “Chọn Chồng” của Leo gần đây, cũng có nhiều ý tưởng từ 1 (series) bài viết cách đây chừng 2, 3 năm trên Web Trẻ Thơ.

 

Tuy vậy, với bản thân tôi thì đó chỉ là 1 khuyết điểm nhỏ kiểu “vạch lá tìm sâu” , điều tích cực là Leo đã chuyển thể được bài viết cũ sang dạng VLog, và đưa được tới rất nhiều khán giả. Thậm chí dạng có âm thanh, hình ảnh này còn thú vị hơn bài viết kiểu cổ điển vì nó dễ chuyển tải nội dung hơn, có thể broadcast cho số đông, hoặc làm multi-tasking với Mp3Player, HeadPhone, CellPhone, etc… .

Thậm chí đây có thể gọi là “sáng tạo lại” , một khái niệm mà khá nhiều người viết cũng công nhận.

Có một số tác phẩm thậm chí còn có vị trí nhất định vì có giá trị riêng, như Truyện Kiều của Nguyễn Du xuất phát từ Kim Vân Kiều Truyện của TTTN. Hoặc tác phẩm Lưu Tinh Hồ Điệp Kiếm của Cổ Long cũng được ông sáng tạo lại trên mạch truyện của “The Godfather” (Bố Già). Hoặc bộ phim nổi tiếng Avatar, cũng có người nói là nó được phỏng lại từ câu chuyện về người da đỏ châu Mỹ xưa, nhưng cũng ko quan trọng lắm Avatar vẫn đc xem là bộ phim nổi tiếng vì công nghệ 3D đầu tiên công chiếu và nội dung thì tương đối hấp dẫn.

 

Vì thế, nói chung thì tôi vẫn ủng hộ bạn Dưa Leo. Các vlog của Leo cũng có những điểm hay riêng. Nói cách khác, khi nói đến phim thì tôi thấy các phim  “Forrest Gump” (1994), “Fight Club” (1999), “Inception” (2010), “The wolf of WallStreet” (2013), “The Accountant” (2016), …v.v… đều là những phim hay, dù mỗi phim có bối cảnh và nội dung hoàn toàn khác nhau.

 

./.

 

 

Posted in Marketing, Reading, Skill | Leave a comment