lưu manh hóa

Vì sao Trung Quốc làm được những điều… không tưởng? Bởi vì họ bắt đầu làm từ những việc nhỏ, thế thôi! Quay lại bối cảnh Việt Nam, người ta sẽ ngay lập tức tìm một con dê tế thần, lỗi là ở tại giáo dục, v.v… Nhưng thực ra lỗi không ở giáo dục, toàn xã hội đều như thế, giáo dục làm gì được!? Lỗi đơn giản chỉ là ở một nền văn hóa chưa đủ sâu dày! Nói câu tiếng Việt đơn giản không thông, hành văn trúc trắc, tối nghĩa, ý tưởng nhộn nhạo, càn quấy! Đến một cái suy nghĩ, lập ngôn trong tiếng mẹ đẻ còn chưa thành hình, thì làm sao ngoại ngữ cho thông thạo được?! Mấy người mà tiếng Việt viết/nói kiểu ngớ ngẩn thì y như rằng ngoại ngữ cũng tương, và chắc chắn là còn tệ hơn! Đầu tiên là chuyện lập ngôn, kế đến là chuyện lập hành, làm việc không thấy có công phu gì, lúc nào cũng loẹt quẹt cho xong! Cái gì cũng lên Google tra, đọc 5, 7 dòng là vỗ ngực: ah ta biết rồi, nó là như thế này, nó là như thế kia!

Một chút kiên nhẫn để tìm hiểu, học hành cho thấu đáo vấn đề cũng không có, lúc nào cũng cầm đèn chạy trước ô tô, luôn tỏ ra ranh vặt! Từ trong mỗi cá nhân đã như thế, thì đương nhiên, ra đến xã hội là thành một đống cxx mà thôi! Lúc nào cũng ta đây thế này, người khác thế kia, suốt ngày cạnh khóe, đấu tố nhau, muôn kiểu tâm lý bệnh hoạn! Muôn kiểu lừa bịp, lừa đảo, thậm chí chả lừa được ai, nhưng vẫn cứ bám riết vào những kiểu thủ đoạn thiểu năng như thế! Kết quả là cộng đồng rối loạn, không tạo dựng nổi lòng tin, không tạo dựng được giá trị! Giá trị nó éo phải là thứ từ ngoài đem vào được, nó là thứ từ bên trong xây dựng nên! Dần trở thành những kiểu đồng dạng – tự tương tự, tự nó lặp đi lặp lại, những “cái tôi” mãi không chịu lớn, 70 tuổi rồi vẫn cứ như con nít vậy, không tự hiểu ra được mình chưa lớn chỗ nào, chưa định hình tính cách, tư cách! Thế nhưng ai nói khác mình là không được!

Dùng biện pháp nghiêm nhặt để chấn chỉnh là phản ứng, rồi biện minh Tây thế này, Mỹ thế kia! Haiza, từ những cái não trạng còn đang ở thời kỳ bán khai, nói thẳng ra là mọi rợ, còn đang ở thời kỳ công xã nguyên thuỷ mà nói chuyện trời Tây nghe nó thậm buồn cười! Điều cần thiết là làm sao dẹp những “cái tôi” lao nhao, manh động đi, bớt những trò lưu manh vặt lại, mà tập trung học hành cho nghiêm chỉnh, chịu khó làm việc cho có công phu, đặng làm lấy được một nghề có thể cạnh tranh với thiên hạ! Khi tạo dựng được giá trị bản thân rồi thì cộng đồng tự khắc nó vững mạnh. Nhưng không, trống hoác thế kia thì ai ném cxx vào là nghe theo thôi, rồi cộng đồng trở thành những kiểu phản chiếu qua lại của những “cái tôi” trống hoác như nhau, sự vô minh cứ thế được khuếch đại lên, như âm thanh dội vào khoảng trống, tới mức trở thành những hiện tượng “lưu manh hóa” vô cùng sâu rộng!

Mọi người có thể không để ý, nhưng nếu nhìn kỹ, sẽ thấy sự lưu manh hóa của gần như toàn xã hội! Đầu tiên là các lũ đa cấp, đám này ngoài một số ngôn từ thiểu năng lặp đi lặp lại thì chả có gì khác! Kế đến là các kiểu lưu manh “giang hồ mạng”, các nhóm bay lắc và nghiện, những hội nhóm gắn kết tạm bợ trên mạng xã hội, chúng hợp tác với nhau để đi dàn cảnh, diễn kịch, tung hứng giống như đúng rồi luôn! Kế đến nữa là các nhóm lưu manh của các tôn giáo, một số dạng “tà đạo” mới sau này, nhưng có cả các Tôn giáo truyền thống như Thiên chúa, Tin lành, Phật giáo, lại thêm một mớ những ngôn từ, lý luận thiểu năng nữa. Kế đến nữa là các nhóm lưu manh báo chí, luôn ảo tưởng quyền lực, tìm cách dùng thông tin để gây ảnh hưởng, “tống tiền” cá nhân và doanh nghiệp! Kế đến nữa là các nhóm lưu manh IT, cho rằng mình có một số hiểu biết về kỹ thuật máy tính, chuyên la liếm, rình mò khắp nơi!

Kế đến nữa là các nhóm lưu manh showbiz, lúc nào cũng “thần thái”, “kịch”, “hài”, làm như đóng vài bộ phim nhảm, hát vài bài nhạc xàm là hiểu thấu lòng người vậy! Thậm chí có cả những nhóm lưu manh “nhà nước”, các nhóm dân vận, thời buổi nào rồi, nâng cấp kỹ thuật tuyên truyền đi, lảm nhảm những điều đơn giản quá người ta cười cho! Và cả những nhóm lưu manh nước ngoài, đám này nói chung không đáng ngại vì những hiểu biểt rất nông cạn với văn hóa sở tại! Đa dạng nhất, có nhiều khuôn mặt nhất tại VN là các nhóm “đĩ điếm, mại dâm”! Đây là nhóm có ảnh hưởng sâu rộng nhất, và có khả năng liên kết, len lỏi vào những nhóm khác, đồng thời có khả năng ẩn danh, biến hình tốt nhất, và cũng có số lượng đông đảo nhất! Còn vô số những dạng hội nhóm lưu manh khác chưa kể ra ở đây, nhưng tựu trung, chúng đều giống nhau: xài những kiểu ngôn từ ngu xuẩn, đặc trưng cho từng nhóm!

Các kiểu nói năng, lý luận càn quấy, xàm xí, những ngôn từ dạng thiểu năng chỉ cốt “cả vú lấp miệng em”, nói cho lấy có lấy được, những kỹ thuật tuyên truyền thấy rõ là “rập khuôn, máy móc”, được thiết kế để đánh vào số đông, đánh vào những kiểu thị hiếu thấp kém và đánh vào tính bầy đàn của mạng xã hội! Mỗi nhóm đều có những đặc điểm nhận dạng khác nhau mà một người quan sát tinh tế nhìn vào có khi chỉ vài phút là phát hiện được, còn người đã từng trãi qua là sẽ nhìn rõ được ngay. Cái sự lưu manh hóa đã và đang diễn ra trên quy mô toàn xã hội, bất kể vùng miền, bất kể quan điểm chính trị, tôn giáo, bất kể ngành nghề, lứa tuổi, thậm chí là bất kể trình độ, học vấn, học nhiều cũng chưa chắc đã có văn hóa tốt hơn! Đâu đâu cũng thấy sự lưu manh hóa đáng báo động như thế! Haiza, thực trạng dân trí lè tè ngọn cỏ, xã hội lưu manh hóa như thế, chưa nên nói tới chuyện Trung Quốc thì hơn…

test loa

Bản nhạc test loa… Mỗi khi có cái headphone / loa mới (chưa có cái nào công suất quá 15W) là tôi lại dùng một số bản nhạc để test, đầu tiên phải là bản này, âm thanh phần nhiều mid-range, tiếng bass phong phú. Nếu test kỹ thì phải dùng đến nhiều loại âm thanh khác nữa, chủ yếu vẫn là acoustic và cổ điển, từ cello cho đến flute.

Nhưng phải qua được bước đầu tiên đã, phải đúng là bản ghi âm do NSUT Đức Thuyết trình bày, đài Tiếng nói VN thu âm cách đây đã rất lâu. Âm nhạc không tách rời âm thanh, nhưng âm nhạc éo phải là âm thanh, ấy thế mà rất nhiều người vẫn hay lẫn! Tiếng trống Paranưng, luôn là một bản nhạc lôi cuốn và bí ẩn…

45

Mọi người chắc cũng sẽ có chút ít ngạc nhiên khi thấy lúc nào tôi cũng hô hào: vận động, thể dục! Vâng, hô hào thì nhiều, nhưng tự làm thì… vẫn chưa đủ nhiều, phần lớn là vì công việc của một coder nó cứ phải bám vào cái bàn phím và màn hình máy tính mãi thôi! Từ sau 35 tuổi, chắc hẳn ai cũng sẽ dần thấy rõ, sức khỏe chầm chậm tuột khỏi tầm tay, nhiều cái không còn “tự nhiên” như trước! Nhưng cũng tùy thể trạng mà mỗi người sẽ cảm nhận về cái quá trình lão suy này khác nhau! Với riêng cá nhân tôi thì nó là như thế này… “Ba tôi là nông dân, và tôi thì sinh ra ở nông thôn”, vâng, cái câu của Nguyễn Huy Thiệp đơn giản vậy, nhưng có ý sâu xa! Nó đã được quy định từ trong di truyền rồi, mỗi ngày mà không “cày bừa”, không làm việc cho đến kiệt sức, không cảm thấy tận lực, thì không có ngủ ngon được đâu! Từ nhiều ngàn năm nay, thể trạng của một người nông dân là đã được “đào tạo” theo kiểu: làm việc từ sáng sớm cho đến tối mịt không ngừng nghỉ! Nên không vận động thể chất tới mức cao độ thì giấc ngủ không đến dễ dàng đâu!

Hiểu theo một cách nào đó, con người sinh học và con người xã hội hiện đại tiến hóa theo những cách lệch pha nhau! Huống gì thời bây giờ, công việc chỉ đơn giản “tay cầm bút, chân đút gầm bàn”, thêm vào đó bao nhiêu thứ phân tâm, xao nhãng, xàm xí của mạng xã hội! Thực ra thì từ lâu chúng ta đã “vong bản”, đã đánh mất chính mình, đã trở thành “nô lệ” cho những vọng tưởng của bản thân, đã như thế từ lâu lắm rồi! Từ những khuôn mặt cứng như plastic vì phẫu thuật thẩm mỹ, đến những thân hình chuẩn chỉnh 6 múi, cho đến tất cả những cái được tán tụng là “thần thái”, những biểu cảm đơ cứng đầy chất tự mãn, tự tôn, “tôi mới đúng”, tất cả thực ra đều đã mắc kẹt trong “cái tôi”, đã chết cứng trong những chấp niệm của bản thân từ lâu lắm rồi, chỉ là họ không muốn nhận ra, chỉ là chưa đem đi chôn mà thôi! Muốn thoát ra á, muốn “chữa lành” á, muốn “kết nối với bản ngã” á, đâu có dễ như thế, ngôn từ cứ lảm nhảm trơn tuột, trừ phi phải có nghị lực, kiên trì thật lớn! Hình chụp cách ít ngày trên đường đạp xe chiều tối…

sinh nhật

Ngày xa xưa, sinh nhật từng là một chuyện rất đơn giản, như trong nhà tôi, con nít được mua cho vài cái bánh ngọt nhỏ dạng cupcakes, vài loại trái cây, vài chai nước ngọt, cho nó ngồi chơi tám chuyện với 2, 3 đứa bạn thân, như thế xem như là sinh nhật rồi! Còn người lớn thì quên đi, có khi còn chẳng nhớ và không tổ chức sinh nhật của mình! Thế rồi, thời buổi thay đổi, giờ đây người ta chăng rạp, tràn ra trọn con đường, nhậu nhẹt, hét hò ầm ĩ, tưng bừng như mấy con “linh trưởng” – primate thiểu năng vậy, một năm có khi cả chục cái sinh nhật ấy! Người có ý thức đi ngang qua chỉ biết nói đúng một câu: “LŨ MỌI”!! Chúng ta sinh ra trên đời này, có khi chỉ để phí thêm một lượng oxy vô ích – just an oxygen – wasting creature! Nên trên Facebook cũng vậy, những cái thao tác chúc mừng này nọ thôi thì ta cứ giản lược đi, không nhất thiết cứ phải chúc tụng qua lại phiền phức!

Còn dưới đây là quà sinh nhật… mọi năm đều tự tặng quà sinh nhật cho mình, khi thì là chiếc xe đạp, khi thì là cái laptop, nhưng chỉ những vật dụng cần thiết thôi! Năm nay khác chút, Garmin Fenix 7X Pro Sapphire Solar, vâng, cái tên nó dài như thế, kích cỡ X – 51mm, phiên bản Pro, mặt kính Sapphire kiêm tính năng sạc pin mặt trời (tăng đáng kể thời gian sử dụng)! Dù dùng ở chế độ GPS rất hao pin thì vẫn có thể đến 120h một lần sạc, nếu xài ở mode “Expedition” thì có thể kéo đến hơn 2 tháng, hoặc nếu chỉ xài như cái đồng hồ bình thường thì đến một năm! Và tính năng vẽ bản đồ của nó thật tuyệt với một cái máy đeo tay nhỏ xíu như thế! Và vô số tính năng cần thiết khác cho một “nhà thám hiểm” thực thụ: la bàn, máy đo cao, đo áp suất không khí, dự báo bão, nhiệt kế, đèn chiếu sáng, đèn tín hiệu, lịch mặt trăng, lịch thủy triều, đo nhịp tim, đo oxy máu, etc…

poltava

Trong phát biểu nhậm chức, Belousov đem tính mạng ra bảo đảm hoàn thành trách nhiệm được giao! Như ngày xưa Vasily Chuikov được giao nhiệm vụ bảo vệ Stalingrad vậy… Hỏi: anh nhận thức như thế nào về nhiệm vụ này? Đáp: hoặc là hoàn thành nó, hoặc là chết khi làm điều đó!

Người Nga là dân tộc rất, rất nghiêm túc, nói thế nào thì làm đúng như thế! Xem ra lần này ku Nga đã quyết tâm chơi lớn! Mạnh dạn dự đoán là họ sẽ không dừng lại cho đến khi tới được Poltava, là nơi 300 năm trước, Peter-the-great đã làm nên chiến thắng!

telecentric

Mỗi ngày biết thêm một tí, trong video là một loại ống kính rất đặc biệt – telecentric lens, vật thể nằm trong trường nhìn của nó có kích thước giống nhau dù ở xa hay gần! Tức nó không tạo ra một phép chiếu phối cảnh (perspective projection) mà kỳ lạ thay, có thể tạo ra một phép chiếu đẳng cấu (isometric projection)! Điều này có vẻ khá là khó tin nhưng phép chiếu đẳng cấu thực ra không xa lạ như mọi người nghĩ! Thậm chí tôi còn cho rằng, bản năng đầu tiên của chúng ta khi diễn họa cấu trúc một vật thể là đẳng cấu chứ không phải phối cảnh. Xem thêm về một bức tranh vẽ trong không gian đẳng cấu ở đây!

Nhưng cụ thể, ống kính này được dùng để làm gì? Nó được dùng trong các ứng dụng đo lường, kiểm định, các ứng dụng computer vision, pattern recognition, etc.. sẽ tránh được nhiều lỗi sai về kích thước, vì dù có chụp gần hay chụp xa thì kích thước vẫn y như thế, xem như đã chuẩn hóa đầu vào! Một ví dụ khác là in vi mạch bằng phương pháp quang khắc đều dùng loại ống kính này để tránh sai số! Một chút suy luận là sẽ thấy ngay, ống kính không thể nhìn thấy được vật thể to hơn nó (lớn hơn đường kính ống), nên quên chuyện dùng để chụp phong cảnh đi, chỉ dùng để chụp những vật thể nhỏ và macro mà thôi!

bilge pump

Mới cách đây độ 5 ~ 7 năm, cần mua một cái bơm chìm (bilge pump) để bơm nước cho chiếc xuồng, đây là loại tương đối đơn giản, chạy điện AC 12V và không cần phải có chất lượng quá cao ngoại trừ việc có thể đặt chìm trong nước! Nhưng tìm khắp Sài Gòn không có, phải lên Amazon đặt hàng, mà Amazon lúc đó thì không ship thẳng về VN! Và thế là quy trình để có được cái bơm như sau, lòng vòng nhiều bước: trước hết là đặt hàng trên Amazon, hàng bắt đầu được gởi đi từ… TQ sang Mỹ, đến một cái địa chỉ ở Mỹ! Tất cả những bước này, Amazon nó thể hiện ra chi tiết quá trình vận chuyển hàng cho mình biết! Địa chỉ này thực chất là một công ty logistics nhỏ, do một số người bạn tôi làm trong ngành logistics hùn hạp với nhau mở ra, xem như việc kinh doanh phụ thêm cho công việc chính! Công ty này sẽ gom nhiều đơn hàng và chuyển về VN một lần cho giảm chi phí! Về VN rồi vẫn chưa hết chuyện, còn phải ra Hải quan nhận hàng! Là cái công ty logistics kia có đường dây làm việc với Hải quan luôn, hàng giao nếu không có gì đặc biệt thì sẽ tính phí theo trọng lượng!

Còn nếu là dạng hàng hóa gì đặc biệt, lạ mắt, mà Hải quan nó để ý, thì sẽ còn phiền phức nữa! Và thế là lòng vòng mất hơn 2tr VND cho một cái bơm nhỏ xíu mà giờ đây lên Shoppee mua mất 200K kể cả tiền ship! Mà mới có mấy năm thôi, cái xứ gì mà thủ tục nhiêu khê, tác phong lề mề, làm gì cũng thấy bụi bay mù trời chứ chẳng thấy tiến triển! Thấy cái gì mới lạ thì phản ứng đầu tiên là sợ: ah, “nước ngoài” họ làm được chứ “ta” làm không được đâu, lúc nào cũng chỉ chực cơ hội “gian” và “ăn”, tự bản thân không muốn vận động, còn hễ mà thấy ai làm được cái gì là ghét và tìm cách phá! Thế nhưng ai phỉnh nịnh một vài câu chữ rẻ tiền đánh vào “cái tôi” là lấy làm sướng, có bao giờ tự nhìn cho rõ mình đâu!? Kỳ rồi đặt mua 2 miếng nhựa giá tổng cộng 20K, đặt xong mới để ý công ty nó ở Thượng Hải, ấy thế mà 7 ngày sau nó ship về tới nơi, không chê cả cái đơn 10 xu (cents), người ta làm ăn như thế thì mình chỉ có nước đi bán muối! Về thành ngữ “đi bán muối”… ở các thành phố ven biển miền Trung, muối là thứ gì đó rất rẻ, phổ biến, thừa thãi, nên làm cái công việc đi bán muối dạo, tính từ góc độ hiệu quả làm ăn là hết sức kém, vô cùng kém!

overclock

Thuê con server của Amazon EC2 cấu hình 32 vCPU, 64 GB RAM, so với con Aquarium-PC của mình: 36 vCPU, 64 GB RAM, con của Amazon chạy nhanh hơn một chút, vì dù sao 2 con CPU Xeon của mình là đời cũ lắm rồi. Nhưng khi ép xung – overclock từ 2.3 lên 3.8 GHz thì con Aquarium-PC cho máy của Amazon “ngửi khói” lập tức! Nhưng ép xung cũng có nghĩa là tăng nhiệt, từ 60°C nhảy lên 75°C thường trực, và cũng phải tăng tốc độ quạt, tăng tiếng ồn. Đây là điều đành phải chấp nhận thôi, hoặc là phải có giải pháp tản nhiệt tốt hơn!

Giải pháp thì có, nhưng… kỳ công, phải học thêm nhiều kỹ năng nữa, nhất là cơ khí và CNC, mà tôi hiện tại chỉ có mấy kỹ năng làm mộc quèn mà thôi! Nói chung, xác nhận là tản nhiệt dầu vẫn có thể chạy tốt với máy ép xung được, nhưng thiết kế khâu tản nhiệt phải thật sự thông minh, thật sự hiệu quả! Viết một cái script nhỏ để bật / tắt việc ép xung cho Linux, chạy script là overclock + overvolt, tăng điện thế cấp cho các thành phần máy, chạy lần nữa là tắt tính năng này đi! Mới có mấy hôm mà kỹ năng viết shell-script của mình tăng lên thấy rõ!

vtables

Trong post trước có nói về v-table, v-table là gì!? Với lập trình procedural truyền thống, gọi hàm thực chất là một lệnh hợp ngữ (Assembly), chỉ cần một lệnh JMP – Jump là nhảy ngay đến vùng nhớ chứa đoạn mã – hàm cần thực hiện! Nên gọi hàm trong ngôn ngữ C có tốc độ nhanh, nhanh đến mức không tưởng. Nhưng sự việc không đơn giản như vậy với các ngôn ngữ hướng đối tượng, như C++. Lấy ví dụ như: a->some_function(), trong trường hợp đơn giản nhất, ta cần nhảy 2 lần, lần đầu đến vùng nhớ chứa đối tượng (object) ‘a’, sau đó mới tìm trong vùng nhớ đó con trỏ đến hàm ‘some_function’ và nhảy thêm một lần nữa. Nhưng sự việc không đơn giản như vậy vì OOP có tính kế thừa, có nhiều phiên bản khác nhau của cùng một hàm ảo, những phiên bản này được chứa trong một cái bảng gọi là v-table, và việc gọi hàm lúc này bao gồm: 1. nhảy đến vùng nhớ bắt đầu đối tượng ‘a’, 2. tìm xem trong v-table của ‘a’ địa chỉ của hàm cần gọi, 3. nhảy đến vùng nhớ chính xác của hàm đó. Và cái bảng v-table này càng ngày càng lớn nếu kế thừa nhiều cấp, 20 ~ 30 cấp cũng là việc đã từng thấy! Sự việc bắt đầu trở nên phức tạp hơn nữa với những ngôn ngữ hỗ trợ đa kế thừa, đối tượng ‘a’ có thể kế thừa từ 1, 2 hay nhiều lớp khác nhau!

Lúc đó, compiler sẽ phải tạo ra nhiều v-table, và việc gọi hàm là một công cuộc tìm kiếm, tra bảng dài lê thê, thay vì chỉ một lệnh hợp ngữ JMP đơn giản! Thời gian tiêu tốn cho việc gọi hàm có thể giao động đâu đó trong khoảng 5 ~ 50% toàn bộ thời gian chạy chương trình. Đến tận ngày hôm nay, mấy chục năm sau khi các ngôn ngữ hướng đối tượng ra đời, bản chất của việc gọi hàm vẫn không đổi, và vẫn chưa có cải tiến nào mang tính cách mạng xảy ra! OOP đúng là một mô hình rõ ràng, dễ hiểu đối với lập trình viên, nhưng cực kỳ đau khổ cho những người làm compiler! OOP sinh ra, đầu tiên và trên hết là cho lập trình UI, mỗi cửa sổ, mỗi nút bấm trên UI là một đối tượng – object, nguyên thủy là vậy, về sau người ta mới mở rộng OOP từ UI sang những lĩnh vực khác! Nên những người làm ứng dụng lớn, cần lớp lang, cấu trúc rõ ràng, những người đó sẽ cảm thấy khó hiểu khi những coder ở mức thấp bên dưới chỉ thích procedural! OOP đúng là rõ ràng và tiện lợi, nhưng không phải là cách tiếp cận duy nhất đối với các vấn đề lập trình, mọi việc có thể sẽ thay đổi! Và nhiều coder không hiểu vì sao một số người cố sống cố chết bám vào một số phong cách xưa cũ, vì… bản năng mách bảo rằng làm như thế mới là đúng!

thôi thủ

Facebook nhắc lại ngày này năm trước… Không phải là lười xuống nước, nhưng đúng là gần một năm qua cảm thấy thiếu ý tưởng và thiếu cả động lực, cảm thấy không tìm ra được ý tưởng gì mới. Mùa mưa coi như là đã về đi, chuẩn bị khởi động lại chương trình ra sông tập luyện! Một trong những điều cốt yếu của brace và roll là sự tự nhiên, mềm dẻo…

Cơ thể mà căng cứng, lo sợ là sẽ không làm được! Nói theo một nghĩa nào đó thì như bạn đang “thôi thủ – 推手 – pushing hands” với nước vậy, mà nước thì vô cùng mềm dẻo! Không biết “thôi thủ” là gì thì tìm xem một vài phim tài liệu về Thái cực quyền, các cao thủ chỉ cần chạm nhẹ cánh tay vào nhau là đã biết đối phương cao thấp thế nào!

rust

Những cái thuộc về ngôn ngữ, 10 năm là ít, 30 năm chưa phải là nhiều, thời gian để cho một ngôn ngữ trưởng thành, trở nên chính chắn, cẩn trọng từng câu, từng lời, bảo đảm mọi điều nói ra phải có nghĩa chính xác. Nhiều người bảo, chỉ là một tập cú pháp – syntax thôi mà, nói sao không được!? Không phải vậy, đã từng có vô số cú pháp “nhảm” bị đào thải sau vài năm, đơn cử như là C#, C# đã từng có vô số cú pháp nhảm, nhảm đến mức thiểu năng, ngu xuẩn! Và cũng đã có một số cú pháp kiểu “chữa lành – chảnh lừa” như async – await vẫn tiếp tục lừa người thêm độ chục năm, cho đến khi người ta nhận ra chẳng có lợi ích gì ngoài những câu chữ oang oang, trơn tuột! Và cũng đã có những ngôn ngữ đã dùng trên hai mươi năm nhưng rồi cuối cùng thì người ta quyết định: thôi, tốt hơn là… bỏ, không đi tiếp nữa, ví dụ như Obj-C, Flash, thậm chí có thể cả Java! Nhưng chừng đó năm cũng đủ cho người ta mường tượng ra được một ngôn ngữ “tốt” tương lai nó sẽ trông như thế nào!

Đầu tiên là nó phải giống ngôn ngữ C, điều này… đơn giản như chân lý vậy, cứ phải giống C thì mới tốt! Thứ hai, ngôn ngữ phải strong-type, có kiểu rõ ràng và kiểm tra kiểu khi biên dịch, không đợi đến khi chạy. Thứ ba, dù gọi tên gì: reference, optional, thì cũng phải làm cho người ta hiểu rằng đây là con trỏ – pointer, ở điểm này thì C thẳng thắn đến mức trần trụi! Thứ tư là quản lý bộ nhớ bằng reference counting và lần nữa, phải làm từ lúc biên dịch (compile time), đừng đợi đến đến lúc run-time, quên garbage collector và những thứ khác đi! Thứ năm là làm sao để lập trình concurrent, thread, process dễ hiểu hơn! Và cuối cùng, rất quan trọng, là dù thời đại đã đi tới mức zettabyte, nhưng một ngôn ngữ vẫn phải thật sự hiệu quả, hiểu theo nghĩa phải đếm từng bits khi cần. Xét những tiêu chí đó thì có lẽ Rust sẽ là ngôn ngữ phổ thông kế tiếp, dần thay thế C++! Đã nói rồi, phải cải tiến trước rồi hãy dùng, đừng dùng xong mới cải tiến, gọi là ++C có phải đã tốt rồi không!?

Đương nhiên, đây là ngôn ngữ phổ thông (general purpose) ở mức thấp (low level), những lĩnh vực đặc thù vẫn sẽ có những ngôn ngữ riêng! Nhưng với một ngôn ngữ phổ thông cấp thấp, ưu tiên hàng đầu là performance, những thứ khác vẫn chỉ là phụ. Rust thậm chí còn chưa phải là một ngôn ngữ OOP – hướng đối tượng đúng nghĩa, theo nghĩa thường hiểu trong C++ hay Java. Nói cho đúng hơn là mô hình OOP của Rust được thiết kế ưu tiên cho performance, chứ không phải cho sự tiện lợi của người viết code! Thậm chí ta còn có thể đặt câu hỏi rằng, có thực sự cần OOP hay không, ví dụ như glibc chỉ dùng “struct” của C để biểu diễn “class” đó thôi! Nhưng qua đó cho thấy rằng, đã rất nhiều thế hệ khác nhau của C++ rồi, mà vẫn không giải quyết được bài toán vtable – gọi hàm hướng đối tượng làm sao cho hiệu quả. Nên Rust đành phải đổi một cách tiếp cận khác, mang tính chất lai lai, một nửa là OOP và nửa còn lại vẫn là functional theo kiểu C truyền thống!

Quá trình hình thành một ngôn ngữ thực chất phản ánh muôn mặt của cái cộng đồng làm ra và sử dụng nó. Đầu tiên là từ góc độ tương đối hàn lâm, ngôn ngữ phải thể hiện được tính đúng đắn và hiệu quả tính toán! Cái yếu tố “hiệu quả – performance” này là yếu tố quyết định, đôi khi nó phủ quyết (veto) tất cả những yếu tố khác. Tiếp nữa mới đến chuyện cú pháp rõ ràng, tiện lợi, thân thiện với lập trình viên. Kế đến nữa mới là chuyện tổ chức, lớp lang, các hệ thống thư viện phụ trợ để dễ dàng phát triển phần mềm! Phần lớn lập trình viên chỉ tranh luận phía trên bề mặt, cú pháp như thế này, lớp lang như thế kia, họ không hiểu rằng yếu tố tiên quyết của một ngôn ngữ là vấn đề hiệu suất (performance). Những ngôn ngữ bỏ lơ vấn đề này… đều có kết cục thê thảm!!! Như Objective-C, người ta bỏ vì nó đã trở thành một con quái vật, phức tạp đến mức vô lý, hay như một số code React – TypeScript, mới viết có cái app Hello-World là đã chiếm mất hơn 3GB đĩa cứng.

parade

Thông lệ hàng năm, 9 tháng Năm là ngày Gấu Nga trình diễn, khoe cơ bắp! Xem mãi các cuộc diễu binh cũng chán, mời các bạn xem trích đoạn bộ phim Người thợ hớt tóc ở Siberia, đoạn Sa-hoàng Alexander-3 dự lễ tốt nghiệp của các sĩ quan. Phim dựng lại theo đúng lịch sử, Alexander-3 là người to lớn, vạm vỡ với sức mạnh phi thường, cầm nguyên bộ bài Tây 54 quân, ông ta xé nó thành 2 mảnh. Hay đang ăn với chiếc đĩa bạc, ông ta dùng tay cuộn tròn cái đĩa lại như người ta cuộn bánh tráng vậy! Cái trò dùng tay cuộn đĩa kim loại này, đã có nhiều đời Sa-hoàng biểu diễn trên các bàn tiệc ngoại giao như một cách… hù đối phương!

Phim có đoạn Sa-hoàng Alexander-3 trò chuyện với hoàng hậu Maria Feodorovna bằng tiếng Anh: – Em còn phải lặp đi lặp lại bao nhiêu lần nữa, tại sao anh không bao giờ nghe em, Michael còn quá nhỏ, nó rất dễ bị kích động bởi các cuộc diễu binh cũng như các trò chơi quân sự. Alexander 3 trả lời rất hóm hỉnh, cũng bằng tiếng Anh: – Nếu tôi mà nghe theo em á, thì đến tận giờ chúng ta còn chưa có con được đâu! Haiza, xem phim để thấy rằng, đây đúng là một dân tộc kiêu hãnh và mạnh bạo, một nền văn hóa đầy màu sắc, một loại âm nhạc sinh động, tuôn chảy, phức tạp! Luôn tràn đầy sức sống, luôn tiến về phía trước!

space-time

U50 rồi, “hơn nửa đời hư” (chữ “hư – ” này không phải là “hư hỏng” như thường hiểu trong tiếng Việt nhé, gì chứ lão Vương kia là khá rành chữ Hán đấy). U50 rồi, không thể tránh khỏi có những giai đoạn giấc ngủ xáo trộn. Dù vẫn ngủ rất đủ, và rất sâu, y như thanh niên 20, nhưng thỉnh thoảng vẫn bị kiểu jet-lag rất khó chịu! Nhiều đêm trằn trọc, đưa tay chạm nhẹ cái đồng hồ đặt trên tủ đầu giường, nó có cái “máy chiếu” tí hon, phóng ảnh lên trần nhà để thông báo giờ hiện tại. Thời gian cứ thế trôi đi, một lúc lại chạm nhẹ xem giờ lần nữa, trằn trọc không ngủ nên suy nghĩ linh tinh…

Đêm nghe tiếng mưa rơi, đếm mấy triệu hạt rồi… Có một không gian nào đo chiều dài nỗi nhớ…, đương nhiên đây sẽ là không-thời-gian Minkowski (Minkowski spacetime) rồi, không thể là không gian Euclide hình học cổ điển được, bởi vì chỉ có trong không gian Minkowski thì khoảng cách giữa 2 sự kiện (events) là độc lập (không phụ thuộc) vào hệ quy chiếu quán tính (inertial frame of reference) dùng để quan sát, đo lường hai sự kiện đó. Nhưng, những điều này cần phải được đặt vào trong một phép biến đổi Lorentz (Lorentz transformation) thì mới có thể hình dung được!

nhiệt

Đến lúc này có thể khẳng định chắc chắn máy có thể chạy heavy – duty rất tốt, đã chạy 24 tiếng liên tục, lúc nào cũng 100% công suất, chương trình xử lý dữ liệu tạo ra 72 processes, dùng đến hơn 40GB RAM, mà nhiệt độ 2 con CPU ổn định ở mức 60~62°C, nhiệt độ dầu ổn định ở mức 41~42°C, còn nhiệt độ GPU và SSD còn thấp hơn nữa, chỉ loanh quanh 37~38°C! Tuy vậy nhìn lại, vẫn có chút tiếc nuối, vẫn có chút không hoàn hảo, vì vẫn có thể làm tốt hơn, vẫn có những giải pháp tản nhiệt tốt hơn nữa! Haiza, nhiệt, nhiệt độ, chính là vấn nạn của cả loài người!

Cứ mỗi năm mỗi nóng hơn thế này, năm nào cũng thiết lập kỷ lục mới! Cái quá trình không đảo ngược được, con người và xã hội đã bị đẩy vô guồng, bị gài vô một cái thế cứ phải hơn, hơn nữa! Ai cũng muốn có những cái máy chạy nhanh hơn nữa, kết quả là cái quả cầu màu xanh xanh kia nó sẽ cứ nóng đỏ dần lên thôi. Đây là chuyện mà không bất kỳ một loại khoa học, kỹ thuật nào, không bất kỳ một hệ tư tưởng nào có thể giải quyết được, càng không nói đến cái đám cứ xoen xoét green & clean kia! Có lẽ phải nghĩ đến chuyện đào hầm tránh nóng là vừa!

chiều tây bắc

Nhớ năm đó chạy xe máy qua đèo Pha Đin – Sơn La – Điện Biên… con đường đèo mới vừa làm xong, tráng nhựa rộng rãi, phẳng phiu, chạy song song với con đường cũ! Xe thì mạnh và đường thì tốt, chạy cái vèo, mới có chút xíu đã qua hết con đèo. Giật mình vì kiểu “Trư Bát Giới ăn nhân sâm”, còn chưa kịp thưởng thức cái gì, chưa thấy được cảnh nào đẹp thì đã hết mịa nó con đèo. Bèn quay ngược xe lại, rẽ vào con đường cũ, đi chậm, thong thả, dừng xe, leo lên các ngọn đồi chụp ảnh, cứ như thế chạy qua đèo cả thảy 3 lần! Các đèo lớn ở miền Bắc thì mình đi hết cả rồi, nên Pha Đin cũng không phải là ấn tượng lắm, nhưng không phải vì thế mà nó không lớn!

Khi nhỏ ở Sơn Trà, Đà Nẵng, chỉ là mấy cục đá cao mấy chục mét, nhưng leo cũng trầy vi tróc vẩy chứ không đùa. Mà không leo mấy chục mét, thì làm sao hiểu được độ cao vài trăm mét, không leo vài trăm mét, thì làm sao hiểu được con số ngàn!? Giờ công nghệ hiện đại rồi, cơ giới hóa lớn, xe ủi, xe xúc, nên đường làm ra cứ gọi là rộng rãi, thông thoáng! Đám trẻ chạy xe hơi qua dừng lại dè bỉu: tưởng thế nào, chỉ có thế thôi à!? Nhưng sẽ là chuyện khác nếu như không có đường làm sẵn, cứ bắt gùi 30kg, vạch cây, bám đá mà đi, thì sẽ tự hiểu, tự ngộ ra được núi cao bao nhiêu ngay thôi! Tranh: Nhớ một chiều Tây Bắc – sơn mài – Phan Kế An – 1955.

nông trại

Tốt nghiệp xong, về làm việc tại trung tâm máy tính, ĐH KHTN, rồi trung tâm máy tính ĐH Quốc gia TPHCM. Cái trung tâm mới xây, đúng là thiên đường cho những ai đam mê, chuỗi (cluster) 64 máy con hàng xịn, cộng với những con server hàng khủng, và nhiều loại thiết bị mà tôi còn chưa nhìn thấy bao giờ, chưa biết là cái gì, tất cả được đặt trong phòng riêng, cùng với nhiều cục lưu điện – UPS to hơn cái tủ lạnh 200 lít. Nếu cúp điện thì những cục UPS này vẫn đủ khả năng giữ cho toàn hệ thống chạy suốt hơn nửa ngày, và khi lượng điện trong UPS xuống dưới một mức nào đó, thì do đã được lập trình sẵn, hệ thống sẽ tự khởi động cái máy phát đặt ở phòng kế bên, cấp điện cho toàn hệ thống, tất cả chạy hoàn toàn tự động!

Và đồng thời hệ thống cũng gởi tin nhắn qua điện thoại về tình hình hiện tại của các loại máy móc đến cho quản trị viên – admin, thường là đang đi uống cafe ở đâu đó biết để còn chạy về xử lý nếu cần! Vâng, giai đoạn khá là ngu ngơ, nhiệt huyết và lý tưởng, từ chối những “lời mời gọi tình yêu” của một số em gái, về đó nghiên cứu grid – computing, mà bây giờ người ta hay gọi là computing – farm – nông trại tính toán! Và vâng, đi vòng quanh, vòng quanh cái nông trang tập thể, năng lực tính toán thì có thừa, chỉ thiếu… bài toán cho nó giải quyết mà thôi! Hơn 25 năm sau, chuyện làm “nông trại” bây giờ thật quá dễ dàng, và cũng không thiếu bài toán cho nó giải quyết… Ekh, yedem my, yedem, Yedem, a krugom kolkhozy…

nhạc lộc thư viện

Từ thời Hán cho đến qua thời Tống, Nguyên, Minh, suốt khoảng 1500 năm, nơi có nhiều đầu sách nhất thế giới chính là… Trung Quốc! Từ các thư viện hoàng gia cho đến các thư viện tư nhân như Nhạc Lộc, họ có khoảng 6 ngàn đầu sách (tựa sách), nhiều hơn bất kỳ nơi đâu, dù là Baghdad, Varanasi hay Rome, thì cũng không có nhiều sách bằng! Viết bằng thứ chữ giun dế siêu phức tạp như thế, bao quát đủ mọi lĩnh vực, từ Sơn hải kinh, Thủy kinh chú, Cửu chương toán thuật, Hải đảo toán kinh, Võ bị chí, etc.. bao quát đủ mọi mặt kiến thức, trên thiên văn, dưới địa lý, từ tư duy trừu tượng cho đến các vấn đề xã hội… công phu, trình độ quả thực đáng nể! Các đoàn sứ thần VN sang TQ, sau khi nộp cống phẩm xong đều được “lại quả”, loại “quả” thường được yêu cầu (và đáp ứng) nhiều nhất chính là… sách! Mà chẳng riêng gì VN, các nước đương thời như Nhật Bản, Hàn Quốc cũng thế: chẳng phải mọi phát minh tốt đẹp đều đến từ Trung Quốc đó sao, người Nhật Bản đương thời nói như vậy!

Mọi chuyện bắt đầu thay đổi khi kỹ thuật in ấn bắt đầu được phổ biến sang châu Âu! Chính vì kỹ thuật in có thể tạo ra được số lượng ấn phẩm lớn, đưa kiến thức đến với nhiều người hơn, nên dần dà, nó tạo thành một kiểu hiệu ứng đô-mi-nô, bắt đầu từ đó, châu Âu càng ngày càng đẻ ra thêm nhiều tựa sách, và bắt đầu vượt qua Trung Quốc. Số lượng đầu sách (tính trên tựa, không phải tính trên bản in) không còn ở mức số ngàn nữa mà bắt đầu tăng, đương nhiên khởi đầu chậm nhưng sau đó cứ nhanh dần theo cấp số nhân, bắt đầu đạt con số chục ngàn, trăm ngàn, rồi đến mức triệu… Quá trình này mất đến vài thế kỷ, dần dần đưa nhân loại bước vào “kỷ nguyên Ánh sáng”… Sang đến thế kỷ 21, ở cái xứ mọi rợ phương Nam kia cũng bày đặt nói chuyện sách, toàn những thứ như Thám tử Sherlock Holmes, Trở lại Eden, Những năm ảo tưởng, Cánh buồm đỏ thắm, .v.v… haiza, sách vở gì chúng nó!?

turbo button

Đã nói về nút Reset, nay nói về nút Turbo, chắc không mấy người còn nhớ, một thời phổ biến trên các dòng x86 nhưng dần biến mất kể từ Pentium 1, 2 trở đi! Cái nút Turbo này thực chất nó làm gì? Chính là overclock – ép xung để cho CPU chạy nhanh hơn! Đang có ý định làm lại cái nút Turbo này cho con Aquarium-PC! Chỉ cần nhấn nút một cái là CPU chuyển từ xung nhịp cơ sở 2.3 GHz lên xung nhịp tối đa 3.6 GHz ngay!

Trên một số dòng mainboard, CPU, thực hiện “Turbo” rất dễ, ép xung / hạ xung và tăng thế, hạ thế (undervolt) đối với các chip hoàn toàn làm được từ phần mềm một cách dễ dàng, có hiệu quả ngay lập tức, mà không cần bất kỳ can thiệp gì đến phần cứng! Tuy nhiên, và cũng có khi, cách tốt nhất để tăng tốc, gia tốc, turbo một cái máy tính, đó chính là… loại gia tốc có giá trị 9.8 mét trên giây bình phương ấy!

đệ quy

Ví dụ về đệ quy, như thế nào là đệ quy – recursive!? Đầu tiên từ Terminal, gõ lệnh VIM để sửa file. Từ trong VIM, gõ lệnh term để mở một cái Terminal mới bên trong VIM, cái này thường cần cho lập trình viên để vừa sửa code một bên, vừa chạy kiểm tra bên kia xem code có đúng hay không, mà không cần phải thoát ra ngoài!

Nhưng vì ta cắc cớ, nên bên trong cái Terminal chạy trong VIM chạy bên trong Terminal này, gõ thêm một lệnh VIM nữa, kết quả là VIM nằm trong Terminal, nằm trong VIM, nằm trong Terminal, nằm trong VIM, nằm trong Terminal, nằm trong VIM, nằm trong Terminal… và trên nguyên tắc có thể kéo dài… vô hạn cấp!

performance

Để làm con Aquarium-PC, tôi mua cái mainboard Huananzhi X99, đây được xem là loại mainboard chạy 2 CPU… rẻ nhất trên thị trường, một sản phẩm đáng ngạc nhiên của các “pháp sư” Trung Hoa, còn CPU là 2 con Xeon Haswell E5-V3, cũng là loại cũ, và khá rẻ. Đơn giản vì đây là lần đầu mạo hiểm, mua rẻ rẻ thôi, lỡ có thất bại, cháy nổ hay hỏng hóc ở đâu đó thì cũng không quá xót tiền! Hệ thống ráp xong chấm được 23K điểm Passmark, một điểm số không hề tệ, ngang ngửa với con MacMini đời 2022! Thế nhưng đến khi chạy thực tế, các bài toán thực, thì Aquarium-PC luôn thua MacMini một chút trong mọi vấn đề, mặc dù thua không nhiều! Đúng là bách nhục, một bên là hệ thống lớn, 2 CPU to cồng kềnh, lại dùng tản nhiệt dầu, còn bên kia người ta bé có chút xíu! Nhưng nghĩ kỹ thì cũng thấy hợp lý, Xeon Haswell là công nghệ của gần mười năm trước, không thể nào so sánh công bằng được!

Nhưng cũng như tôi dự đoán, có một số lớp bài toán mà Aquarium-PC hơn MacMini, nhìn vào 2 cái ảnh dưới đây bạn sẽ hiểu vì sao! Chạy chương trình phân tích dữ liệu tự viết bằng Python, nó tạo ra đến hơn một chục process và dùng hơn 30GB bộ nhớ SWAP. RAM là điểm yếu của MacMini, chương trình chạy đến một lúc lượng SWAP quá lớn, máy nó lì ra không chịu chạy nữa, thậm chí… tự khởi động lại do quá nhiệt! Nhưng con Aquarium-PC thì chạy được, tuy năng lực xử lý thua chút xíu, nhưng có đến 64GB RAM, và chạy vô cùng mát! Không chỉ về RAM, Aquarium-PC còn hơn về thời gian xử lý với những lập trình nhiều processes! Ngày xưa để xử lý dữ liệu lớn/phức tạp, người ta chia thành nhiều bước, lưu kết quả trung gian ra file/database và quay lại xử lý nhiều lần! Ngày nay, với một số lớp bài toán, cứ tận dụng tài nguyên, bỏ hết lên RAM chạy một lần, code vừa nhanh, vừa đơn giản!