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/ )

 

Advertisements
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

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

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

http://hocthenao.vn

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

http://newbielearnlinux.googlepages.com/smartquestions

http://tonybuoisangonline.com/noi-long-bo-de-su-to.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/ )

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

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

.

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ả ko nhận PR/Ads cho bất kỳ cái nào trong đâ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

 

.

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

Thuật xử thế

6 thuật xử thế của người xưa – Chìa khóa của sự khôn ngoan

Thuật xử thế – cánh cửa dẫn tới sự khôn ngoan và thành công trong quan hệ con người. Dưới đây là 6 nguyên tắc xử thế của cổ nhân được đúc kết qua một thời gian rất dài.

 

Những chủ đề bàn luận về thuật xử thế có lẽ không còn xa lạ và mới mẻ. Khi quan hệ giữa người và người càng mở rộng thì nghệ thuật xử thế càng cần kíp hơn bao giờ hết. 

 

Dưới đây là 6 nguyên tắc xử thế của cổ nhân được đúc kết qua một thời gian rất dài.

Khi kiên trì ứng dụng những nguyên tắc này, bạn có thể trở nên một người khéo léo, thành công, đáng quí trọng hoặc ít nhất cũng tránh cho mình khỏi những oái oăm không ngờ đến trong giao tế hằng ngày.

 

1. Kiềm chế lòng tự ái cá nhân

Giữa chốn ba quân có thể đoạt được soái ấn nhưng không thể đạt được chí kẻ thất phu.

Con người dù tầm thường đến đâu thì bao giờ cũng có suy nghĩ bản thân mình quan trọng. Đó chính là cái tôi trong mỗi người. Lòng tự ái là nguồn gốc cho rất nhiều chuyện đắng cay đáng tiếc. Trong các cái khổ, cái khổ do lòng tự ái gây ra là khó chịu uất ức hơn hết.

Khuất Nguyên người nước Sở luôn nghĩ rằng: “Đời đục cả, một mình ta trong; người say cả, một mình ta tỉnh… Bởi vậy, ta phải bị bỏ đi…”

Đó không riêng là tâm sự của Khuất Nguyên mà là tâm sự chung của con người. Khi mà mình luôn muốn cho người ta phải nghe theo ý mình mới chịu. Tại sao ta không để cho người ta theo ý họ? Cho họ cái họ muốn một cách thật tế nhị, và bạn sẽ thu phục được lòng họ.

Đừng công kích, đừng nói mỉa, đừng mạt sát ai,… đừng chạm vào tự ái của người khác nếu bạn muốn họ nghe theo ý bạn. Hơn nữa, thiện cảm đầu tiên bạn tạo được với người khác cũng chính là chìa khóa thành công sau này.

Đúng sai là một lẽ tương quan. Họ nghĩ họ đúng, mình cũng vậy, nếu cứ tiếp tục cãi thì khó được ổn thỏa. Chi bằng ta im lặng và để hành động cùng thời gian chứng minh tất cả.

 

2. Chữ Lễ

Ẩn ác dương thiện. Cái gì không muốn làm cho mình thì đừng làm cho người khác.

“Tuy làm cho người ta đuối lý ngậm miệng, đỏ mặt tía tai, mình hả dạ thật, nhưng đó là người nông nổi, khắt khe…” – Lữ Khôn

Lễ là nhún nhường, đặt cái tôi của mình sau người khác. Như thế không phải là giả dối làm lợi cá nhân. Lễ là tránh đau khổ cho người khác bằng cách nhã nhặn bản thân mình. Không chạm tự ái của ai. Che đi cái xấu, cái dở và tuyên dương cái hay cái đẹp của người khác. Một người rộng lượng không ích kỉ sẽ làm được như thế, một cách vô tư.

Đối với người thấp kém hơn mình người khác dễ sinh lòng tự phụ, kiêu căng. Nhưng họ không ngờ chính sự kiêu căng, tự phụ ấy đã làm hại tới chính mình. Gieo rắc vào lòng người sự căm ghét và thù hận. Một số người còn lãnh nhận hậu quả tàn khốc bởi bị trả thù.

Vậy mới biết mình đừng bao giờ để ngạo khí trấn át. Những thói kiêu căng, biếm lẽ thường chỉ xuất hiện ở loại người không đạt chí. Người ta càng thấp kém càng có tâm cảm tự ti, đó là nguồn gốc sinh ra thù hận với người hơn mình. Đừng để điều đó hủy hoại bạn. 

Đối với người trên mình phải kính trọng, đối với người dưới càng phải khiêm nhường là vậy.

 

3. Đừng cậy tài

Khôn mà làm như ngu ngốc, đó mới thật là khôn.

Dương Tu bị Tào Tháo giết bỏ chính vì thói làm khôn, tỏ ra của mình. Dương Tu là người thông minh tài trí, luôn đoán biết được ý định của Tào Tháo. Lần nào Tào ra ẩn ý ông cũng đều giải quyết được. Điều này làm Tào Tháo vô cùng căm ghét, cho là thói ngạo mạn, làm khôn. Cuối cùng không kìm được mà xử tử.

Người thông minh tỏ ra thông minh đó là thường. Người thông minh có tài mà luôn tỏ ra bình thường, ẩn lặng là một người vô cùng khôn khéo. Đó chính là bí quyết tránh cho mình khỏi tai vạ. Họ không bao giờ làm cao, nhưng luôn nhún nhường. Âm thầm đem tài năng ra cống hiến, âm thầm sống không màn uy danh. Đó là cốt cách của kẻ hơn người.

 

4. Chuyện ơn nghĩa

Ân càng thâm oán càng sâu

Hàn Tín khi xưa bị Hán Vương bêu đầu cũng vì thói vòi vĩnh, nhắc ơn. Hàn Tín là một tướng giỏi, lập được nhiều công trạng cho triều Hán. Nhưng thói xử thế của ông rất ngây thơ, nghĩ rằng mình lập được nhiều chiến tích nên hết lần này đến lần khác đòi hỏi phong vương, bổng lộc, làm cao chạm tới tự ái đế vương của vua Hán. Hán Vương nhiều lần nhịn nhục, Hàn Tín không hay vẫn làm cao, nghĩ rằng Hán không phụ mình vì mình tài giỏi, lập nhiều chiến công.

Chính sự ngây thơ đó đã đoạt mạng Hàn Tín.

Trong giao thiệp, người ta quí trọng nhất bao giờ cũng là người thật thà, dễ thương, gần họ bạn thấy mình cao trọng hơn hẳn.

Người ta lấy oán báo ân chính là muốn rũ bỏ cái ơn sâu của người làm ơn. Không muốn mắc nợ nên cuối cùng bội phản. Nghịch lý nhưng đúng như vậy.

Nếu được hãy làm ơn, rồi quên hẳn nó đi. Đừng nhắc lại.

 

5. Đạo cương nhu

Nhu thắng cương, nhược thắng cường

Tô Đông Pha có câu: “Những bậc đại dũng trong trời đất thình lình gặp những việc phi thường không kinh, vô cố bị những điềungang trái cũng không giận. Đó là nhờ chỗ hoài bão họ rất lớn và chỗ lập chí họ rất xa.”

Nhịn được điều người khác không thể nhịn, tha thứ được điều người khác không thể tha, phải là một người bao dung hơn người, hiểu biết hơn người, điềm tĩnh hơn người mới làm được.

Người ở trong thế yếu nuôi í chí lật ngược thế cờ mà không có đủ dũng lực chịu những điều mạt sát, khinh thị thì không thể làm nên chuyện lớn.

Điềm tĩnh, nhịn nhục không phải là nhu nhược. Mà thực sự đó chính là sự oai dũng đệ nhất. Dùng “Nhu” thắng “Cương” chỉ có người điềm tĩnh lắm mới làm được. Và thành quả mà nó mang lại cũng ngoài sức tưởng tượng như thế.

Trong thuật xử thế, cái hàng đầu là phải Biết mình.

 

6. Biết là sống

Khôn, chết. Dại, chết. Biết…sống

Người thông minh, hiểu biết sâu sắc nhất luôn biết tỏ ra giản dị, thường thường. Không phải nói rằng mình trở thành người ngu ngốc, thờ ơ thế sự, mà nói rằng mình biết tiết chế điều hiểu biết của mình vì chỉ có người thật thông minh mới biết lúc nào nên làm như người ngây thơ mà thôi.

Biết lúc khôn, biết lúc dại, biết thời biết thế. Nói chung là biết rõ thời.

Biết ở đây là biết tùy lúc mà ứng biến cho hợp tình huống. Nếu chỉ khư khư một mực thì rất dễ hỏng việc.

Con cọp muốn làm khác loài, bỏ rừng ra đồng bằng thì chết. Người ta đều khờ dại mà mình muốn tỏ ra khôn lanh để khác biệt thì biết đâu lại mang họa tới.

Enstein từng nói: “Dấu hiệu nhận biết thiên tài là tất cả những đứa ngu đều đứng lên chống báng.” Câu nói hài hước, nhưng đúng.

 

 

Tóm lại: Đây là 6 nguyên tắc đơn giản mà không hề giản đơn người xưa đã đúc rút ra được để biến mình trở thành người toàn năng trong giao thiệp. Tuy khó làm, nhưng nếu thành công, thì kết quả đem lại không hề nhỏ. Nếu bạn bắt gặp mình phạm phải những nguyên tắc trên, thì giờ là lúc bạn thay đổi.

 

.

(Source: OHayTV @NguyenPhuocMinhTan https://www.ohay.tv/view/6-thuat-xu-the-cua-nguoi-xua-chia-khoa-cua-su-khon-ngoan/8pOx2  )

 

./.

 

Posted in Reading, Skill | Leave a comment