xe máy

Lảm nhảm cuối tuần, nói chuyện xe máy… Tuổi teen, cái tuổi “nổi loạn”, có nhiều trò “vui” không cưỡng được, đơn giản là do cái tuổi đó như thế, khí huyết phương cương! Hồi năm 17, 18 tuổi gì đó, bọn bạn bè chúng tôi có cái trò đang chạy xe máy thì… đổi tài, thằng ngồi trước đứng lên nhích qua một bên, thằng ngồi sau chồm lên giữ tay lái, trong nháy mắt là người sau thành người trước, và xe vẫn chạy không dừng! Và trong nháy mắt, tông phải một bà già, thế là phải chở bả đi bệnh viện, khám từ trên xuống dưới phát hiện… gãy 1 ngón chân út! Làm phải 1, 2 lần đi viện “thăm nuôi” cho nó đủ “lễ”!

Sau 20 thì tuyệt đối không còn những trò bốc đồng nữa, sau 25 thì không bao giờ chạy quá 60 kmph, đến sau 30 thì không bao giờ quá 50 kmph và con số vẫn còn tiếp tục giảm theo năm tháng! Tôi đi xuyên Việt bằng xe máy 3 chuyến, 25 ngàn km hành trình, không dính một vé phạt nào, đơn giản là tuân thủ luật giao thông tuyệt đối! Khi có được sự tự chủ trong người rồi thì người ta không làm những chuyện dại dột nữa! Đương nhiên xã hội mà, vẫn luôn có người này người kia, vẫn có những thành phần già đầu rồi vẫn không lớn, suốt ngày loanh quanh cũng chỉ có mấy chuyện: nhậu, bolero và đua xe!

just my 2 cents

Theo em, đây là cách làm đúng đắn, nếu không MXH sẽ tự nó trở thành cái hố đen sâu thẳm không đáy, càng lúc càng tệ! Theo em là cứ mạnh tay thu tiền theo số view, người ta phải trả tiền cho số view – số tác động xã hội mà người ta mong muốn có! Ví dụ như em là người nói nhiều, một năm viết khoảng 100 posts, danh sách “Friends” của em có chưa tới 50 người, như vậy là khoảng 5000 views, cứ 1 view trả 1 cent, em đồng ý cả 2 tay! Hoặc cũng có thể làm theo hướng ngược lại, muốn xem một mục nội dung gì thì người xem phải trả 1 cent.

Như thế, người xem phải cân nhắc cái nào đáng giá! Chứ không những nội dung rác rưởi, xàm xí, độc hại vẫn cứ mãi tràn ngập! Còn không nữa thì thu tiền cả hai đầu, thu cả của người sản xuất thông tin (producer) lẫn người tiêu thụ thông tin (consumer)! Chỉ là cái chợ thôi mà, người bán và người mua đều phải đóng phí, như thế nó mới công bằng, thế mới tạo ra giá trị thặng dư chứ! Đến khi chán rồi không muốn dùng tiền để “chế tài” nữa thì dùng cách của Trung Quốc, cứ xác minh nhân thân, có report là sẽ bị xử lý! Chính là thời đại 3 xu!

async/await is a big scam

L
âu lắm mới có hứng nói về vấn đề kỹ thuật, lần này mạnh dạn đưa ra một nhận định: async/await là một trò bịp lớn trong các ngôn ngữ lập trình – async/await is just a big scam in programming languages! Mọi người chờ 5, 10 năm nữa xem nhận định này đúng không nhé! Lâu về trước có làm một chút với async/await trên C# và JavaScript, là đã thấy nó không được đúng lắm! Gần đây làm với async/await trên Swift lại thấy càng không đúng! Những cái về threading – process – synchronization – tiến trình, tiểu trình và đồng bộ hóa là phải đọc giữa các dòng chữ – read between the lines! Còn cái mindset của những người làm ra async/await nó giống kiểu bắt chết vào ngôn từ hình thức, họ chấp vào ngôn từ bề mặt!

Async/await chỉ là vấn đề, và cũng chỉ là giải pháp của… riêng JavaScript! Khởi thuỷ xa xưa, JavaScript chỉ được phép có đúng một thread, nên để không block thread này thì họ đã tìm cách offload các hàm sang thread background của hệ thống, và vì làm việc này theo kiểu tuỳ tiện nên phải sinh ra cái async/await để “đánh dấu”, thuận tiện hơn cho việc đồng bộ hoá! Vấn đề này là của riêng JavaScript, các ngôn ngữ khác… không thấy có! Async/await khi đem một cách khiên cưỡng sang những ngôn ngữ khác không tạo ra lợi ích nào đáng kể, ngược lại làm phức tạp hoá vấn đề và hiệu suất – performance… rất tệ! Những newbie chưa hiểu sự phức tạp của hệ thống mới thần thánh hoá và cho rằng async/await là cái gì đó siêu việt!

Async/await nó mang cái mindset 2 threads: foreground & background, xuất phát từ hạn chế chỉ được phép có một thread của JavaScript! Với những ngôn ngữ như C, C++, Obj-C, etc… thì bản thân cái không gian tính toán nó đã là n-thread, từ ngàn xưa là đã dã man, phức tạp và đa năng rồi! Chuyện với async/await không biết phải nói làm sao… nó giống như câu: “màn hình cong (curved monitor) có rất nhiều vấn đề, mà vấn đề đầu tiên là nó… cong”! Tương tự vậy, async/await không đúng đầu tiên là ở chính 2 từ khoá đó, một kiểu chấp niệm vào hình thức, cho rằng nếu tôi là sync, thì những code viết ra trước đây là async! Đây là chấp niệm, thực ra code block bản thân nó không sync, cũng chẳng async, là do cách xài mà thôi!

Tại sao nói async/await là vấn đề của riêng JavaScript!? Với các ngôn ngữ khác, tuyệt đại đa số các lời gọi hàm hệ thống là sync về mặt bản chất, điều này nhằm giúp cho coder hiểu rõ cái cost – chi phí gọi hàm! Chỉ một số ít hàm hệ thống là async, và coder phải hiểu rõ điều đó khi sử dụng! Trong trường hợp có nhu cầu không block main thread thì họ sẽ chạy code block trong một thread khác, chuyện này y hệt như vai trò của Task vậy! Nên async/await không đưa ra được một điều gì mới, càng không phải là cách giải quyết vấn đề mới! Nó đơn giản là cách vá lỗi lầm cũ của quá khứ, bằng cách đặt ra một cú pháp, và cú pháp này… rất thừa thải trong nhiều ngôn ngữ khác ngoài JavaScript, thêm phức tạp mà không giải quyết được chuyện gì!

Nên async/await là vấn đề của riêng JavaScript, thứ mà một lập trình viên nghiêm chỉnh còn… chưa xem là ngôn ngữ lập trình! Khi đem sang các ngôn ngữ khác, bản thân người thiết kế tính năng này chắc chắn là không hiểu được cơ bản về điều phối tiến trình, tiểu trình, đặt ra một thứ hoàn toàn không cần thiết! Async/wait hoàn toàn không phải là công cụ dùng để điều phối tiểu trình, tuyệt đối không có tính năng thay thế mutex, semaphore, critical sections, locks, etc… và do đó không thể dùng để giải các bài toán đồng bộ phức tạp như Producer/Consumer, Dining Philosophers, Sleeping Barber, etc… Đừng nhầm lẫn giữa một cú pháp “lảm nhảm” với các bài toán đồng bộ vốn rất phức tạp, và nên đầu tư thời gian học về căn bản!

80kg

Ku Tom nhảy lên được 5kg tròn, nhưng rồi ham chơi, chấn thương, viêm nhiễm lại giảm xuống còn 4.7kg… Giống hệt chủ nhân của nó, tăng lên chạm mốc 80kg, rồi ốm một trận giảm xuống còn 78kg! Thực ra lên hay xuống thì cũng là chuyện thường, có lên thì có xuống, có xuống mới có lên, 80kg mà toàn “mỡ” thì không khó, “nạc” nhiều mới khó! Cố lên, đường vẫn còn dài phía trước…

pyrotechnic

Một kỹ thuật rất quan trọng của ngành hàng không vũ trụ, cũng như kỹ thuật vũ khí nói chung, gọi là Pyrotechnic – tiếng Việt thường dịch (chưa được đúng lắm) là Hoả thuật: sử dụng thuốc nổ với liều lượng nhỏ, có kiểm soát! Ví dụ như 2 tầng của tên lửa được ghép lại với nhau bằng những con ốc đặc biệt có nhồi thuốc nổ bên trong! Tại thời điểm xác định, máy tính trung tâm sẽ kích nổ những con ốc này, phá vỡ các mối liên kết và làm cho tên lửa tách tầng! Những quả đạn phòng không nằm trong ống phóng hàng chục năm, nhưng khi cần là vẫn có thể khai hoả được ngay lập tức một cách rất đáng tin cậy!

Một van đặc biệt khoá chặt bình nhiên liệu, một liều nổ nhỏ để bật từ khoá sang mở, liều nổ thứ hai được lập trình ngay sau đó sẽ tạo áp suất bơm nhiên liệu vào buồng đốt và khai hoả! Xe tăng, máy bay giữa thời tiết âm 20, 30 độ vẫn có thể khởi động nhờ pyrotechnic: nhét viên đạn đã chuẩn bị trước, chỉ có thuốc nổ không có đầu đạn vào một cái lỗ được làm sẵn, gõ cái kịch là viên đạn nổ, luồng hơi sinh ra đẩy piston xoay trục khởi động động cơ! Pyrotechnic cũng được dùng nhiều trong kỹ thuật dân sự, như túi khí an toàn của xe hơi: khi xe va chạm, cảm ứng sẽ kích liều thuốc nổ nhỏ bơm phồng túi khí!

bột nở

Thời điểm là từ 75 đến khoảng 85, tình hình là… đói. Liên Xô viện trợ cho rất nhiều bột mì, nhưng lính thì ăn bột mì luộc, luộc nguyên cục bột đặc cứng, độ cứng nằm đâu đó giữa bánh bột nếp và kẹo mạch nha. Kiến thức thời hiện đại bà nội trợ nào cũng biết là phải thêm bột nở – baking soda – natri bicarbonat thì bánh nó mới tơi xốp, dễ ăn! Thêm ít thì thành giống bánh bao, thêm nhiều thì thành giống… bánh mì! Khi không có bột nở thì người ta phải ủ bột cho nó hơi lên men, thì khi nướng, hấp nó mới phồng, xốp!

Kỹ thuật ủ bột, tưởng chừng siêu đơn giản như vậy là nằm trong tay một số tiệm bánh mì gốc Hoa, hay đâu đó ở các thành phố người ta mới biết cách làm! Còn lính ở các tỉnh vùng biên thì vẫn ăn bột luộc, đặc quánh hơn cả bánh nếp, và ăn trường kỳ trong suốt nhiều năm như thế, mà không biết cách chế biến thành các loại bánh cho nó đúng! Bột mì mà ăn như thế nó nặng, sình bụng, tức anh ách, khó tiêu giống như là ăn bánh bột lọc vậy! Học Hoá, học Lý, học khoa học thường thức cho lắm vào, không biết để làm cái gì!?

knots

Nút (knots) không khó, nhưng quan trọng là biết tình huống nào nên xài cái gì, có nhiều kiểu áp dụng rất sáng tạo và hiệu quả, quan trọng là thao tác nhanh lẹ, chính xác! Kinh nghiệm mỗi người mỗi khác nên lúc nào dùng cái gì là do mỗi cá nhân đúc kết kinh nghiệm mà thành! Cột dây neo, buộc lưỡi câu, căng góc lều, chằng buộc hàng hoá, nối dây, etc… Đơn giản như căng sợi dây phơi quần áo sao cho không bị chùng khi đồ phơi nặng cũng không phải là quá dể đâu!

Cũng chỉ cần biết khoảng chục loại nút phổ biến là cũng đủ xài rồi, nhưng ứng dụng, biến hoá thì vô số. Cũng phải biết tính chất khác nhau của các loại dây (chất liệu khác nhau), có dây trơn, dây nhám, dây giãn, có loại dây vô nước thì giãn ra, cũng có loại dây vô nước thì co lại… để điều chỉnh nút cho phù hợp! Rảnh rỗi ngồi thực tập lại cho nó quen tay, “ngâm cứu” các thể loại nút, kẻo không lại quên, thậm chí có lúc đến thắt một nút số 8 đơn giản nhất thế nào cũng lơ ngơ…

Slavsa

Đang trong cái mood nhạc Nga, Slavsa – Ivan Susanin – một trong những tác phẩm quan trọng nhất của nền âm nhạc cổ điển Nga, thường chỉ được trình bày trong những dịp long trọng nhất (ví dụ như lễ nhậm chức của tổng thống). Bắt nguồn từ một vở opera của Mikhail Glinka, người được xem là cha đẻ của âm nhạc cổ điển Nga! Vở nhạc kịch kể câu chuyện về Ivan Susanin, người được một nhóm thích khách Ba Lan thuê dẫn đường để mưu sát Sa-hoàng Michael I.

Susanin thuyết phục nhóm sát thủ này đi con đường tắt nhanh hơn băng qua rừng… Từ đó về sau, không ai còn thấy Susanin và nhóm sát thủ kia đâu nữa! Đến ngày nay, Ivan Susanin được xem là anh hùng dân tộc, người đã hy sinh chính mình để làm thất bại âm mưu của kẻ thù! Câu chuyện của Susanin được thấy lặp lại nhiều lần xuyên suốt lịch sử nước nước Nga, kể cả trong WW2, giống như chuyện của Matvey Kuzmin, người được phong Anh hùng Liên Xô ở tuổi 83…

Burevestnik

Thế là, loại cuối cùng trong số 6 siêu vũ khí sử dụng những “nguyên tắc vật lý mới” mà người Nga đã đề cập (Avanguard, Burevestnik, Zicron, Kinzhal, Poseidon, Sarmat), tên lửa động cơ hạt nhân & đầu đạn hạt nhân Burevestnik đã thử nghiệm thành công! Không cần phải nói điều này quan trọng như thế nào. Các hệ thống phòng thủ của Mỹ đa phần đều được bố trí ở phía Bắc và Tây Bắc, để đề phòng Nga tấn công từ hướng Alaska và vòng qua Bắc Cực. Nhưng loại tên lửa mới mang đến khả năng tấn công từ phía Nam, vòng qua Nam cực, đánh vào mặt yếu nhất và ít được phòng bị nhất!

Đó là chưa kể loại Burevestnik này có thể bay hoài bay mãi, trên lý thuyết là… có thể lảng vảng suốt nhiều năm trên không, thay đổi theo bất kỳ lộ trình bay nào trước khi đánh xuống mục tiêu! Có thể nói đây là lần đầu tiên trong lịch sử cạnh tranh dai dẳng và lâu dài giữa 2 siêu cường, người Nga đã có lợi thế dẫn trước rõ ràng! Cả 6 loại vũ khí chiến lược đó, người Mỹ vẫn chưa làm được cái nào, các thử nghiệm vũ khí bội siêu thanh thì đến giờ chỉ toàn thấy thất bại! Chương trình âm nhạc cuối tuần, bài ca: Tên lửa luôn luôn sẵn sàng – The rockets are always ready!

Trên núi đồi Mãn Châu

Điệu valse nhẹ nhàng cổ điển cho ngày làm việc, bài ca Nga: Trên núi đồi Mãn Châu. Bài này ra đời năm 1906, ngay sau chiến tranh Nga – Nhật (1904 – 1905), cuộc chiến với nước Nga là một thất bại to lớn, đây là một trong những “tiền đề” cho cách mạng Bolshevik những năm về sau! Nhưng cả với người chiến thắng là Nhật, chưa bao giờ trong lịch sử cận đại mà thương vong lại lớn đến như vậy!

Với sự xuất hiện của những loại súng, đạn mới, hình thức chiến tranh cổ điển đã có từ thời Trung Cổ: các đội hình ô vuông cứ thế dàn hàng ngang tiến lên làm mồi cho đạn từ đây biến mất hoàn toàn và nhường chỗ cho chiến tranh hầm hào! Quay trở lại với ca khúc, có cái không khí giáo đường cổ kính, dường như là ở một thế giới riêng biệt, thoát hoàn toàn khỏi hiện thực chiến tranh tàn khốc!