aquarium pc, phần 8

Để cho nó chạy chục ngày, lúc này dầu bắt đầu loang màu và mờ đục, không còn trong như trước, dù muốn dù không, các thành phần, vật liệu cấu thành nên cái “hồ cá” đều có sự “ô nhiễm” nhất định. Phát hiện quan trọng nhất là loại keo nến (silicone) dùng để gắn kết, cố định các chi tiết bắt đầu… tan ra trong dầu khoáng, điều phi lý hết sức, vì dầu khoáng là chất tương đối “trơ – inert” ở nhiệt độ thông thường! Nhưng đó là sự phi lý bạn phải chịu khi làm một cái gì đó ở VN, các loại vật liệu, hóa chất đều bị “độn”, bị “pha”, trở nên không đúng với thuộc tính ban đầu! Vì silicone tan ra nên làm cho dầu khá đục, phải tháo dầu ra! Suy nghĩ ban đầu là có thể lọc dầu cho nó trong trở lại, nhưng nghĩ kỹ thì thấy không đúng, các phần tử màu đa số đều có kích thước tới nanomet, các loại lưới lọc micromet không thể làm gì được! Thế là đành phải… thay dầu, hy vọng là chỉ phải thay một lần này mà thôi!

Cũng nhân lúc xả dầu ra này mà chỉnh trang lại hệ thống chút đỉnh, thay cái máy bơm mới công suất nhỏ hơn chỉ 25W (ban đầu mua bơm đến 50W, tính hơi dư), cái bơm mới là hiệu Channing! Chúng ta gọi đó là “hàng Trung Quốc”, nhưng chuyện nó không giống như trước đây đâu, hàng TQ cũng có vô số chủng loại, phân khúc, bơm hiệu Channing được xem như là cấp chất lượng cao nhất trong làng “thủy sinh, cá cảnh” rồi, cao hơn cả bơm chuyên dùng cho máy tính! Chỉnh tốc độ ở mức vừa phải, bơm chạy không hề gây ra bất kỳ một tiếng động nào! Trục máy bơm làm bằng gốm sứ, không bị ăn mòn như thép, cộng với việc đặt chìm trong dầu xem như chất bôi trơn, nên có chạy liên tục nhiều năm cũng không sao! Chỉnh trang lại ngoại thất / nội thất cái “bể cá” lại một tí, không dám xài keo nến nữa, phải xài epoxy! Đem cái khung gỗ chà nhám, ra đi thêm một lớp epoxy nữa cho nó đều màu!

Thay cái bảng điều khiển mới, bỏ các công tắc điện “đểu”, đi dây lại cho gọn gàng hơn! Nhìn nó chạy cỡ một chục ngày qua mà suy nghĩ mãi về vấn đề tản nhiệt! Tản nhiệt không dùng quạt rất khó, vẫn có thể làm được nhưng khi đó cái tháp tản nhiệt nó sẽ to bằng hay hơn cái máy tính, còn dùng quạt thì lại quá dễ dàng! Cái máy tính nguyên gốc rất ồn vì nó có đến 8 cái quạt, mỗi cái có công suất, tốc độ, và chất lượng khác nhau, 8 cái quạt chạy cùng lúc tạo thành bản “hợp xướng âm thanh” vô cùng khó chịu, nếu giảm xuống chỉ còn một cái quạt, nhưng chất lượng tốt thì tiếng ồn tuy vẫn còn nhưng sẽ giảm đáng kể! Thế là đặt mua cái quạt 36 x 36cm, và mạch điều chỉnh công suất thay đổi tốc độ quạt quay, lắp vào phía sau tản nhiệt như trong hình! Lắp ráp tất cả vào, và lại stress-test – thử đầy tải, kết quả mỹ mãn, có thể chạy các tác vụ heavy-duty liên tục nhiều ngày, sẽ nói rõ hơn ở phần sau!

aquarium pc, phần 7

Từ console Linux, gõ một lệnh là chương trình stress-test – thử đầy tải bắt đầu chạy, các con CPU đều sử dụng hết 100% công suất, chạy liên tục 6 tiếng. Kết quả là nhiệt độ CPU bị đẩy lên đến 70~75°C, và nhiệt độ dầu lên đến ~55°C! Trong các hình, nếu tinh mắt sẽ nhận ra một cái nhiệt kế điện tử dùng để đo nhiệt độ của môi trường dầu, và nhiệt độ dầu luôn thấp hơn nhiệt độ CPU khoảng 15~20°! Trở lại với stress-test, kết quả này là tệ hơn so với việc dùng tản nhiệt nước, khi dùng tản nhiệt nước, nhiệt độ CPU luôn dưới 65°C trong các bài kiểm tra đầy tải, nhưng thực ra, điều này đã nằm trong dự tính từ trước khi bắt đầu bắt tay vào làm con Aquarium-PC này! Có nhiều yếu tố ảnh hưởng đến nhiệt độ, đầu tiên là dầu khoáng tải nhiệt của toàn hệ thống: CPU, GPU, SSD, RAM, main, và cả cục nguồn (đây vốn là nguồn sinh nhiệt nhiều nhất), còn tản nhiệt nước chỉ dùng cho mỗi con CPU mà thôi!

Điều đáng nói là nhiệt độ của toàn hệ thống vẫn luôn được giữ ở mức thấp: RAM, SSD, GPU… luôn dưới 55°C! Còn nhiệt CPU tuy khá cao, nhưng vẫn chưa chạm mức nguy hiểm (85+°C). Yếu tố thứ hai là do tản nhiệt không dùng đến quạt gió, và tôi nhất quyết không dùng quạt để không gây ra tiếng ồn, để hệ thống chạy hầu như hoàn toàn im lặng! Và điều thứ ba nữa là thiết kế của tản nhiệt là tối ưu cho các quạt gió (forced air cooling) chứ không tối ưu cho tản nhiệt tự nhiên, và thứ tư nữa là có thể kích thước cục tản nhiệt chưa đủ lớn! Điểm đáng lưu ý là dầu khoáng có nhiệt dung riêng (specific heat capacity) khá lớn, lớn hơn nước rất nhiều (đó cũng là lý do tại sao bỏng dầu luôn nghiêm trọng hơn bỏng nước sôi, vì dầu có khả năng mang nhiệt lượng lớn hơn nhiều), cái nhiệt dung riêng này làm trễ các kết quả đo, cần phải thực sự stress-test nhiều giờ mới đọc được các con số có ý nghĩa!

Kết luận: hệ thống hoạt động như mong đợi, tải nhiệt tốt với các ngữ cảnh sử dụng thông thường, hoặc tải nặng trong vài giờ, nhưng chưa tản nhiệt tốt đến mức có thể dùng cho các tác vụ heavy – duty, chạy 100% công suất liên tục 24/24, ví dụ như dùng để đào “coin”, mặc dù dùng máy không phải cho mục đích đào tiền ảo, mà dùng để phân tích và xử lý số liệu, lên đến hàng trăm GB! Thường là như thế, khởi đầu một công việc gì đó thì chưa đâu, nhưng có khi, ngay khi vừa kết thúc nó xong, là tự ngộ ra được chỗ ngu rồi! Từ đây, có 3 khả năng phát triển tiếp: #1: không làm gì cả, hệ thống đã đủ tốt cho các công việc phổ biến thông thường! #2: Tìm một cái tản nhiệt có kích thước & thiết kế tốt hơn cho việc tản nhiệt tự nhiên, và #3: lắp các quạt gió phía sau tản nhiệt, và lập trình điều khiển quạt gió quay với tốc độ tỷ lệ với nhiệt độ cảm biến (chỉ xài đến quạt khi chạy tải nặng thời gian dài)!

torii gate

Cổng Torii thường thấy trong các công trình kiến trúc cổ Nhật Bản là một kiểu kiến trúc rất kỳ lạ! Để đánh dấu, phân biệt về địa giới, khu vực, như cổng Tam quan của VN, cổng Bài Phường của TQ, trong hầu hết các trường hợp, chính là đánh dấu một ranh giới rất rõ ràng! Nhưng cổng Torii đôi khi được xây ở những nơi rất “trời ơi đất hỡi”…

Nó đôi khi chẳng đánh dấu một ranh giới địa lý nào rõ ràng, xuất hiện “in the middle of nowhere”, như ở giữa khoảng không trống rỗng vậy! Nên, thay vì gợi ý sự dịch chuyển trong không gian vật lý, địa lý, cổng Torii tạo nên ẩn dụ rằng sự dịch chuyển, biến chuyển này không nằm trong thế giới vật chất, mà nằm ở trong… tâm!

aquarium pc, phần 6

Cuối cùng là khâu hoàn thiện và lắp đặt… quét hai lớp epoxy pha loãng với màu cánh gián, nửa chừng thì… hết màu, lười chạy đi mua, đành chấp nhận để cái màu hơi nâu nâu, không được thật nâu bóng như vậy! Ráp cái hồ cá vào vị trí bên trong khung gỗ, cố định lại bằng 4 con vít tại các mấu làm sẵn, rồi đi các dây nối lên bảng điều khiển, các mối nối đều được hàn chì và bọc nhựa và bọc keo nến lại chắc chắn, kiểm tra kỹ vài lần xem có sai sót gì không! Mấy cái công tắc điện mua trên Shoppee về lắp vào, cắm điện vào bật lên nghe nổ cái kịch… một cái công tắc cháy, may mà mình đã cẩn thận, phòng xa lắp sẵn một cái cầu chì bảo vệ! Khả năng đi dây lỗi hầu như không có, gì chứ đi dây, hàn chì là mình có nghề lắm! Xem xét một hồi kết luận là các công tắc này là dùng cho điện một chiều, miễn cưỡng dùng cho điện xoay chiều vẫn được, nhưng các bóng đèn LED đều không chịu nổi điện thế và… cháy!

Thế là đành chấp nhận sự không hoàn hảo thứ hai, các nút nguồn không có đèn LED chiếu sáng, mặc dù vẫn bật tắt được! Tiếp đó phát hiện ra trong 5 cái công tắc có 1 cái không chịu chạy, mịa, thế là tính năng bơm khí, sủi bọt tạm thời chưa làm việc, đành để đó sửa sau vậy! Rất bực với hàng mua trên các trang thương mại điện tử, đôi khi rất phiêu, không có cách nào kiểm tra quy cách và chất lượng, gây mất nhiều công sức và thời gian chỉ để đi sửa sai! Lắp tản nhiệt vào phía sau, rồi nối hai đầu ống máy bơm và xiết lại bằng cổ-dê (hose clamps). Đến đây là xem như việc chế tạo cơ bản hoàn tất! Tiếp theo là “giây phút của sự thật – the moment of truth”, mở nắp đậy ở phía sau và đổ vào 10 lít dầu khoáng, khởi động máy bơm cho dầu luân chuyển bớt sang phía bên cái tản nhiệt, rồi đổ tiếp vào thêm 8 lít nữa là vừa đầy! Rồi vừa chắp tay cầu nguyện, vừa bấm nút nguồn khởi động máy tính!

Máy khởi động vào màn hình đăng nhập của hệ điều hành Debian, mừng hết lớn, thế là đã chạy được! Chạy êm ru không một tiếng động, ngồi bên cạnh không nghe thấy gì, chỉ áp tai vào thùng máy mới nghe tiếng máy bơm rì rì, be bé! Kiểm tra sơ qua xem có rỏ rì dầu chỗ nào không dọc theo đường ống, có vẻ như tất cả đều hoạt động tốt! Như thế là coi như qua được phần wet–smoke-test – bài kiểm tra ướt! Máy rất nặng, cân đến 37kg, trong đó có khoảng 17 kg dầu, không hiểu phần còn lại sao khối lượng lớn thế! Theo dõi nhiệt độ của 2 con CPU thấy thường xuyên ở mức 45 ~ 50 độ C! Đương nhiên, chạy với tải nhẹ thì nhiệt độ như thế chưa nói lên điều gì, phải stress – test – thử đầy tải nhiều tiếng đồng hồ liên tục rồi mới có thể có kết luận được! Nhưng đó sẽ là nội dung của phần sau, còn giờ thì châm điếu thuốc, xoa tay hài lòng ngồi ngắm thành quả lao động lấp lánh, lung linh đã!

aquarium pc, phần 5

Dùng mũi phay (router) để tạo cái đường viền (phào chỉ) kiểu khung tranh, bao quanh cái khung hồ cá, vừa tạo ra một điểm nhấn, vừa giúp giấu đi một số “phốt” trên mặt kính acrylic gần ngay các mối nối. Tranh thủ làm luôn cái khung cho con iPad cũ, biến nó thành bức tranh treo tường và đồng hồ báo thức (chắc phải viết cái app nhỏ, kết hợp báo thức, ảnh nền, nhắc lịch, chơi nhạc, và vô số những việc linh tinh khác cho “bức tranh treo tường”, nhưng đó sẽ là một project DIY khác kế tiếp)! Phần khá phức tạp là tạo cái “bảng điều khiển”, bao gồm các nút: nguồn tổng, nguồn máy bơm, nguồn máy tính, các lỗ cắm USB và audio! 25 năm trước, loay hoay hoài mà không cắm được dây power/reset của máy tính, 25 năm sau vẫn phải lên mạng tra cách đấu dây. Nói chút về nút reset, đây là một tính năng đã rất lạc hậu, máy tính giờ hiếm khi xài đến nút reset, nếu cần reset thì chỉ cần tắt nguồn bật lại!

Nên rút jumper reset ra khỏi mainboard, cắm vào bộ điều khiển đèn LED, lúc này nút reset mang công năng mới, trở thành nút điều khiển LED, bật, tắt, chuyển qua lại giữa các chế độ chiếu sáng khác nhau! Khi cần tập trung làm việc thì chỉ nhấn một cái là tắt hết các thể loại nhấp nháy xanh đỏ, tím vàng kia đi cho bớt xao nhãng. Làm mộc cực kỳ bụi và bẩn, nhất là những ngày chuẩn bị nắng nóng này, có rất nhiều việc vô danh, linh tinh, không kể hết ra ở đây được, nhưng làm cái Aquarium-PC này tốn một số ngày công đáng kể! Ví dụ như làm 2 cái tay nắm bên trên, nhìn đơn giản như vậy, nhưng bên trong phải gia cố bằng 1 thanh sắt tròn + 2 con vít lớn, vì Aquarium-PC này rất nặng (lên đến 25 ~ 30 kg), tay nắm bằng gỗ thông thường sẽ không chịu nổi sức nặng khi bưng bê cái máy đi, lại phải đem cái máy hàn que ra, việc mà tôi rất ghét vì kỹ năng hàn của tôi dở tệ, luôn nham nhở như chó liếm!

Cái tản nhiệt cũng phải chế độ lại chút xíu, cắt bớt đi những phần không cần thiết để lắp vào trong khung gỗ được gọn gàng hơn! Các đầu nối ống của dàn tản nhiệt cũng phải chế lại để việc lắp ống dẫn dầu thuận tiện hơn, bớt đi các “khúc co” không cần thiết để dòng chảy chất lỏng bên trong được suôn sẻ, bớt cản trở! Cái két tản nhiệt này có một cửa xả đáy, dùng trong trường hợp cần phải rút dầu ra ngoài, đây cũng là tính năng ít khi xài tới nhưng thực ra cũng khá cần thiết, vì cũng có khả năng là sau một thời gian chạy, các thiết bị, chi tiết máy móc điện tử sẽ… loang màu và các màu này sẽ làm dầu khoáng không trong, không đẹp nữa, phải thay dầu, hoặc cũng có thể cần xả dầu để tháo máy ra sửa chữa nâng cấp. Vẫn còn khá nhiều việc phải làm để hoàn tất cái Aquarium-PC này, nhưng chỉ cuối tuần mới làm nhiều được, trong tuần chỉ có thể làm 1, 2 tiếng / ngày nên tiến độ rất chậm!

aquarium pc, phần 4

Nói chút về các loại tản nhiệt máy tính: tản nhiệt nước vốn đã rất hiệu quả, nhưng chỉ áp dụng được với các thành phần chủ yếu như CPU, GPU, không dùng cho toàn hệ thống được. Tản nhiệt khí tuy cũng khá hiệu quả nhưng phải dùng đến các quạt thổi, mát nhưng ồn ào. Muốn loại bỏ quạt (forced air cooling) thì buộc phải làm cái tản nhiệt thật lớn và dựa vào trao đổi nhiệt tự nhiên với môi trường! Đó cũng là lý do cái Aquarium-PC này xài cái tản nhiệt đến 40×50 cm, mà tôi vẫn cảm thấy là… chưa đủ (nếu mà không đủ nữa thì ta… xách cái quạt để sau lưng máy tính!) Nhiều người đã làm cả cái cooling-tower to… hơn cái máy tính, không xài đến quạt, chỉ gồm các lá tản nhiệt! Lắp các thiết bị vào rồi nhìn tới nhìn lui vẫn không hài lòng, lại tháo ra, bố trí cho hợp lý hơn về sử dụng không gian, có quá nhiều dây nhợ, 2 sợi cáp mạng, 2 sợi cáp audio, 4 sợi cáp USB, 2 sợi cáp màn hình, và vô số cáp điện!

Tiếp theo là công đoạn smoke test – đương nhiên chỉ mới test khô chứ chưa phải là test ướt thật sự với dầu khoáng! Khởi động máy tính vài phút, kiểm tra mọi thứ có làm việc tốt hay không, rà soát lại kỹ càng bởi cho vào “bể cá” rồi là sẽ khó thay đổi, sửa chữa, mặc dù vẫn làm được. Rồi lại sắp các vật trang trí vào, lúc này mới để ý thấy loại sỏi trắng rải nền… hơi “ướt”. Trừ một số loại đá như magma rất đậm đặc, khô ráo, nhiều loại khác vẫn có chút tính “xốp” và chứa một lượng nước nhất định, nước này dù ít mà cho vào hệ thống máy tính là không được! Thế là đem đống đá bỏ vào lò vi sóng, quay tới quay lui một hồi cho đến khi nó khô hẳn thì thôi! Tiếp theo đi lại hệ thống dây điện cho gọn gàng, có đến 3 hệ thống điện riêng, điện cho máy tính, điện cho các loại đèn, và điện cho máy bơm + máy thổi khí. Đến đây phần “hồ cá” cơ bản là hoàn thành, quay lại với công việc yêu thích là… làm mộc!

Đóng một cái khung gỗ bao ngoài hồ cá, có khiêng cái hồ làm bằng nhựa acrylic trên tay, trong chứa 20 lít nước (test xem có rò rỉ chỗ nào không) mới thấy hồ cá dù sao cũng khá là mong manh dễ vỡ, cần phải có thêm một lớp bảo vệ bên ngoài, cái thùng gỗ này cũng chứa luôn cái két tản nhiệt ở phía sau! Từ khi bắt đầu làm mộc đóng thuyền đến nay đã chục năm có dư, nhưng luôn làm mọi thứ theo kiểu… để chạy được – functional mà thôi, chưa bao giờ quá quan tâm trau chuốt hình thức bên ngoài! Nhưng cái Aquarium-PC này là ngoại lệ, tuy cũng không công phu gì, nhưng lần đầu tiên có sự chú ý để cho nó mang dáng vẻ “đồ nội thất”, bo viền, bo góc, đánh véc-ni màu gỗ… Đến đây mới nghĩ lại, nếu 15 năm trước mà mình làm cái Aquarium-PC này thì thất bại là chắc chắn, vì… tay nghề vụng về, kỹ năng không có, những năm đóng xuồng ít ra cũng đào tạo mình trở thành một con người khác!

aquarium pc, phần 3

Ban đầu định đi hệ ống ống dẫn cứng, trông có vẻ nghiêm chỉnh hơn, nhưng sau thấy các mối nối khá phức tạp, khó tìm phụ tùng, và cũng khó sửa chữa, nên chuyển sang đi ống mềm: linh hoạt, dễ sửa chữa, và quan trọng nhất là có thể đi ống liền không nối, thẳng một đường từ máy bơm ra tản nhiệt, không thêm mối nối nào, tức là giảm bớt cơ hội rò rỉ! Tình trạng vô số các loại ống khác nhau trên thị trường, cộng với thói quen đo lường tùy tiện, không chính xác ở VN, nên kết cục mua về mà ráp vào vẫn lệch nhau đến 1 ly là thường xảy ra! Phải quấn băng keo non và dùng keo PVC, nhưng như thế vẫn chưa bảo đảm trám hết kẻ hở! Có một cách rất hay là lấy một ít acetone, cắt những mẩu nhựa PVC nhỏ bỏ vào đó, qua một đêm acetone sẽ hòa tan nhựa thành một hỗn hợp sền sệt! Dùng loại keo tự chế này trám vào các kẻ hở, đắp thêm vào các chỗ thiếu, acetone bay hơi sẽ tạo nên lớp nhựa mới cứng!

Ban đầu định đi ống nhựa trong acrylic loại chuyên cho hồ cá cho nó đẹp, nhưng sau chuyển qua ống nước PVC thông thường, đơn giản vì dễ mua hàng hơn, cứ chạy thẳng ra đầu ngõ. Bốn ngõ ống: 1 đầu vào và 1 đầu ra của máy bơm, 1 cột bơm khí, và 1 cửa để tra dầu. Hồ được gia cố rất cẩn thận, các chỗ nối được tráng epoxy phía bên trong, và bồi thêm một nẹp nhựa acrylic bên ngoài. Bên trong hồ cá gắn 2 đoạn dây LED RGB trang trí và 2 cái đèn LED trắng chiếu sáng từ trên cao rọi xuống! Đã là hồ cá thì đương nhiên phải có ánh sáng lung linh một tí rồi! Lắp cả một cái máy bơm khí nhỏ xíu công suất 1W cấp nguồn qua cổng USB, nó tạo ra nhiều bọt khí nổi lên từ dưới đáy hồ, như vậy nhìn nó mới giống bể cá thủy sinh thật! Máy bơm khí này được đặt trong một ống nhựa PVC kín, dìm chìm xuống dưới lớp dầu, xài chất lỏng như một hiệu ứng đệm giảm chấn (damping) để triệt tiêu tiếng ồn!

Các sợi cáp máy tính chui ra khỏi hồ cá qua hai lỗ tròn ớ phía trên, những lỗ này sau đó bịt lại bằng silicone tạo ra một bình chứa kín khí! Như vậy là tạm xong phần “bể”, ta làm làm tiếp phần “cá”! Các phụ kiện thủy sinh, cá, cây cảnh (đương nhiên đều là hàng giả làm bằng nhựa) được đặt vào và cố định lại bằng epoxy! Ban đầu định rải một lớp cát trắng dưới đáy hồ, nhưng ngay sau đó tự nhận ra cái sự “ngu”: cát này nếu không đổ keo cố định lại thì chỉ một thời gian là nó làm tắc máy bơm ngay, nên bỏ ngay ý định dùng cát, chuyển qua dùng sỏi trắng, loại hơi lớn một chút! Một vài bụi cây, vài con cá, mấy con sò, ốc, sao biển, thêm cả một cái mô hình cổng Torri Nhật Bản mà mình rất thích nữa. Hôm nay, những phụ kiện cuối cùng đã giao tới, 20 lít dầu khoáng, và cái tản nhiệt, đây là loại tản nhiệt xài cho xe hơi Suzuki Wagon, lý do vì sao phải xài hàng khủng như vậy sẽ nói rõ ở phần sau!

aquarium pc, phần 2

Muốn cho máy tính chạy vừa mát, vừa im lặng thì ta phải… ngâm nó vào trong cái “bể cá”! Đầu tiên là chuẩn bị, tiền xử lý các bộ phận máy, con Dual-Xeon đem về chưa xài được bao lâu thì tháo bung ra, tháo 2 cái tản nhiệt nước ra, thay vào đó 2 cái tản nhiệt đồng đơn giản hơn! Card màn hình cũng vậy, các quạt làm mát đều gỡ ra hết, mua một sợi cáp dựng (riser cable) để đặt cái card nằm ngang song song với mainboard! Vì card có kích thước khá lớn, nên cắm vào khe PCI nằm dọc sẽ làm tăng thể tích bể chứa một cách đáng kể, quay ngang cái card sẽ giúp bề dày bể cá giảm xuống còn khoảng 10cm. Tiếp là đến cái PSU – nguồn cấp điện cũng tháo ra từng phần, gỡ bỏ quạt, nguồn điện thực ra chính là phần sinh nhiệt nhiều nhất trong toàn bộ hệ thống máy tính, và việc nhúng nó vào dầu khoáng cũng tiềm ẩn nhiều rủi ro, dù trên lý thuyết là nó vẫn phải làm việc đúng, để xem thực tế thế nào!

Bể chứa làm bằng tấm nhựa acrylic 5mm, dán bằng methylene chloride – CH2Cl2 (đặt mua trên Shopee)! Công đoạn làm bể này rất quan trọng, phải cẩn thận từng tí, cắt nhựa, dùng giấy nhám mài cho phẳng các mối nối, dán lại với nhau. Nếu làm không tốt về sau rò rỉ chất lỏng bên trong ra là sẽ rất phiền, dù rằng dầu khoáng thì an toàn, không có gì đáng lo ngại: không dẫn điện, không bay hơi, không bắt cháy ở nhiệt độ dưới 135 C thông thường! Bể được chia thành 2 phần lồng vào nhau như cái ngăn kéo, như thế có thể kéo ra sửa chữa, nâng cấp hệ thống dễ dàng! Cái máy bơm chìm hồ cá sẽ đóng vai trò luân chuyển chất tải nhiệt (dầu khoáng) từ trong bể ra tản nhiệt (radiator) và ngược lại! Máy bơm là thành phần có chuyển động duy nhất trong toàn hệ thống, tuy có thể gây ra tiếng ồn nhưng do đặt ngập hoàn toàn trong chất lỏng nên tiếng ồn sẽ giảm đến mức bên ngoài không nghe thấy!

Mình chỉ được cái “hay làm” thôi, chứ thực tình mà nói không hề “khéo tay”, làm cái bể cá giản đơn mà vẫn có khá nhiều lỗi, keo methylene chloride văng tung tóe làm hoen ố mặt kính! Nhưng sau đó phát hiện được cách sửa lỗi cũng khá hay: dùng epoxy quét nhẹ lên vết ố là nó sẽ mờ đi, đến khi đổ chất lỏng vào trong bể là sẽ không thấy vết nữa! Chính vì không tự tin với kỹ thuật dán keo lắm nên quyết định dặm thêm một lớp epoxy tại các mối nối, vừa bịt các kẽ hở nếu có, vừa làm cái bể cá cứng cáp hơn, vì nhựa acrylic không thực sự cứng! Tuần tự từng bộ phận của máy tính được xếp vào ngay ngắn: nguồn, mainboard, card màn hình, tất cả đều được bắt vít hay dán keo xuống tấm acrylic nền bên dưới. Sắp xếp các hệ thống ống và dây rất mất thời gian, làm sao cho gọn gàng, đủ thứ loại dây cáp: cáp màn hình, cáp nguồn, cáp USB, cáp audio, 2 sợi cáp mạng, cáp khởi động máy, etc…

aquarium pc, phần 1

Có ý tưởng làm máy tính – bể cá từ hơn 15 năm trước, như thường nói, cái gì muốn mà chưa làm được thường dẫn đến “bất mãn – không đầy”. Giờ đây trở lại với ý tưởng làm Aquarium-PC bằng tản nhiệt 2-pha (dùng dung dịch Novec-xxxx) nhưng sau một hồi nghiên cứu, thấy có nhiều rủi ro, chủ yếu là không thể tìm nguồn hóa chất bảo đảm chất lượng tại VN. Thế nên đành quay lại ý tưởng ban đầu, làm tản nhiệt 1-pha đơn giản hơn. Tuy vậy, vẫn muốn nói thêm chút về tản nhiệt 2-pha, nó là giải pháp ưu việt hơn hẳn, nếu bạn hiểu kỹ càng các nguyên tắc vật lý! Rất nhiều video trên YouTube là… làm sai, sử dụng các dung dịch Novec 649, 7000… theo kiểu 1-pha chứ chưa phải là 2-pha, và chạy được là do… may mắn! Đương nhiên có rất nhiều người đã làm thành công, chuyện không phải là khó, nhưng tôi đoán là cũng rất nhiều người đã làm nhưng thất bại, nguyên nhân thất bại sẽ phân tích sau đây!

Ví dụ với Novec-649, nhiệt hóa hơi (heat of evaporation) của nó là 88 Joule/gram, một PC trung bình công suất lấy khoảng 300 Watt, đủ làm bốc hơi 300/88=3.409 gram Novec-649 mỗi giây, hay khoảng hơn 200 gram mỗi phút! Con số 200 gram nghe có vẻ không nhiều, nhưng chuyển sang thể khí sẽ là một thể tích rất lớn. Nếu vì lý do gì đó mà hệ thống tản nhiệt không đủ hiệu quả, thì lượng khí này sẽ tích tụ lại trong bình cho đến khi đạt đến áp suất tới hạn (critical pressure) là 18.55 atm (tại áp suất này, hơi sẽ ngưng tụ ngược lại thành thể lỏng). Áp suất 18.55 atm, tương đương với lặn xuống độ sâu 175.5 mét nước, là không lớn đối với các bình chứa bằng thép (như bình cứu hóa) nhưng là rất lớn với các bể chứa, hồ cá tự làm tại nhà! Nên các DIYer – chuyên gia tự làm tại nhà – thất bại phần lớn là do bình chứa không chịu nổi áp suất, nhất là bình làm bằng kính/nhựa trong suốt kiểu hồ cá!

Cần phải làm bằng loại vật liệu có sức bền lớn, và có các phương pháp thi công, gia cố thích hợp! Nói như thế để hiểu rằng về nguyên tắc vật lý, tản nhiệt 2-pha khác hẳn 1-pha, và có hiệu suất cao hơn hẳn. Hiểu theo nghĩa nào đó, tản nhiệt 2-pha chỉ cần thêm cái bơm cao áp nữa là trở thành cái tủ lạnh thật sự. Và việc tự làm hệ thống tản nhiệt 2-pha, tuy dễ dàng về mặt lý thuyết, nhưng vẫn có một số khó khăn nhất định về thi công, chế tạo. Cộng thêm với lý do không tìm được nguồn cung hóa chất bảo đảm chất lượng như đã nêu trên, tôi đành phải hoãn triển khai ý tưởng tản nhiệt 2-pha, quay trở lại làm cái Aquarium-PC tản nhiệt 1-pha với dầu khoáng (mineral oil) đơn giản hơn, dễ thi công hơn, an toàn hơn, và cũng có thể tạm đáp ứng nhu cầu! Mà nhu cầu là con PC hiện tại có tổng cộng 8 cái quạt làm mát, nó hú như động cơ phản lực vậy, phải làm sao để cho máy chạy vừa mát, vừa im lặng!?

Novec-649

Nản với văn hóa làm việc ở VN thực sự! Chuyện là tìm mua Novec-1230 và Novec-649. Nói sơ chút về hai loại hóa chất này, cả hai thực chất là một, tên hóa học là FK-5-1-12, 1230 có độ tinh khiết 99%, dùng làm hóa chất chữa cháy, còn 649 có độ tinh khiết 99.9% dùng làm chất dẫn nhiệt, nhất là trong công nghiệp điện tử! Chỉ có 0.9% khác biệt, nhưng giá chênh nhau… 3 lần! Nói chuyện qua Zalo với đám sale của 7, 8 công ty hóa chất, cũng gặp được người thẳng thắn: cái này em không biết, hay không làm, okies, nói như vậy nhanh gọn, được việc! Có đứa hỏi dông dài, chán chê rồi đưa ra cái giá gấp 5 lần giá phổ thông trên thị trường thế giới, đúng chán! Một người khác, không phân biệt được thể lỏng với thể khí, loanh quanh nửa ngày thì anh ta chỉ biết loại “khí” chữa cháy chứ không biết loại “chất lỏng” đựng trong chai, haiza, đúng là “sale kỹ thuật”! Có những loại mới cứ hững ha hững hờ như không quan tâm, làm như nó đi mua chứ không phải mình đi mua vậy!

Nhưng chán nhất là cái thể loại “nhây”, suốt buổi sáng chỉ nói những câu thừa, lặp đi lặp lại những thứ không cần thiết, ví dụ như “anh mua 1230 à”, lát lâu sau lại hỏi: “có phải là 1230 không anh”! Ghét nhất là cái thể loại này, mà cái tác phong này rất dễ nhận biết! Tôi có cái tật là một câu nói, một thông tin đưa ra, không bao giờ lặp lại hai, ba lần, nghe hay không thì tùy, nói thừa mất thời gian! Nhưng ở VN có một số rất lớn là làm việc theo kiểu nhây, cứ lảm nhảm những cái không cần thiết, câu giờ, mà kết quả là tôi đã đoán biết trước, đến cuối ngày nó mới nói: công ty em không có loại sản phẩm này anh ạ! Mình văng ra đúng một chữ: CÚT! Đương nhiên còn có một loại nữa, vì 1230 và 649 cơ bản là cùng một loại hóa chất, nhưng cách nhau 3 lần giá, nên chuyện đánh tráo chắc chắn là sẽ xảy ra! Tôi biết thừa vì sinh ra và lớn lên ở VN mà! Chán nản toàn tập, đã dốt, lười, còn tráo trở, mới có việc đơn giản mà đã thế, không hiểu làm sao để mà làm ăn với người khác!

debian

Lâu lắm rồi mới quay trở lại với HĐH ưa thích, Debian Linux, đương nhiên không thể mượt mà, bóng bẩy như MacOS được, nhưng cũng có những điều thú vị riêng mà những HĐH khác không thể nào có được! Về lập trình, tôi vẫn rất thích Linux ở cái “performance – hiệu suất” của nó, xử lý files, gởi nhận dữ liệu qua mạng, giữa các máy với nhau nhanh như chớp, xử lý tiến trình, tiểu trình cho các hệ thống client / server rất hiệu quả! Ngoài ra thì thích phá gì thì phá, tha hồ thay đổi tùy thích. Đầu tiên là build gói CoreCtrl từ source (do Debian vẫn chưa hỗ trợ gói này trong repo chính thức). Open-source vẫn có những cái rắc rối, phiền phức riêng của nó, mà phổ biến là code thường lỗi, không build được, phải sửa một hồi rồi make, make install, etc…

Chạy CoreCtrl kiểm tra nhiệt độ CPU, GPU, đếm số vòng quay của các quạt tản nhiệt! Rồi dùng phần mềm để disable luôn cái quạt, tháo ra dẹp qua bên, cái card màn hình giờ chỉ còn tản nhiệt, không còn phần nào chuyển động (no moving part)! Phần vì không có nhu cầu xài đồ họa mạnh nên nhiệt độ GPU hiếm khi vượt quá 50C, phần là muốn xác minh cái “tin đồn”: nếu tháo quạt, hệ thống sẽ tự động tắt card màn hình nếu bị quá nhiệt! Hình như “tin đồn” không được đúng cho lắm, ít ra là trên Linux! Tiếp đến, build gói OpenRGB cũng từ source để điều khiển mấy cái đèn LED trang trí, LED bàn phím, có hàng chục “kịch bản chiếu sáng” khác nhau: đổi màu, đổi độ sáng, nhấp nháy, tất cả đã được lập trình sẵn, chỉ cần load lên và chạy!

dual xeon

Đã hơn 15 năm không xài PC, chỉ xài Mac, nay thử quay lại xem sao, đem về một con con Dual Xeon. Lần cuối cùng tự ráp để xài một con PC là cách đây cỡ 25 năm, lúc đó hãy còn là bộ VXL Pentium II, riêng con CPU là đã to gấp đôi cái điện thoại iPhone 7 á! Tôi còn nhớ rõ thời đó, máy chủ của khoa KNTN, đại học KHTN chạy song song 2 con VXL Pentium III, phải 4 người khiêng 4 góc mới đem đi được! Đem Dual Xeon so với con MacMini M2Pro, đáng ngạc nhiên là phần mềm PassMark cho điểm 2 hệ thống xêm xêm nhau, đều khoảng 23000. Về hiệu năng tính toán số nguyên, số thực thuần túy thì DualXeon vượt trội, nhưng M2 hơn ở khá nhiều khoản tính toán khác!

Đương nhiên so sánh vậy chả công bằng chút nào, một bên chỉ là hệ thống “mini”, bé có chút xíu và chỉ xài một con CPU. Còn bên kia là hệ thống “lớn”, dùng đến 2 CPU loại mạnh chạy song song với nhau, chưa kể lượng RAM nhiều hơn gấp 4 lần! Hai cái tản nhiệt nước, 7 cái quạt gió cỡ lớn, toàn bộ cái máy nó hú như máy bay đang chạy “taxi-ing” vậy! Ai xài Mac thì sẽ thấy kích thước nó vừa nhỏ xinh, vừa mát mẻ, chạy hầu như không phát ra tiếng động! Haizza, còn cái kia to như khủng long, hú cũng gần như động cơ phản lực! Đem so PC với Mac cũng như so phim VN với phim TQ vậy: ăn nói oang oang, thô lỗ, bỗ bã, hàm hồ, thiếu hẳn sự ý tứ, tinh tế!

3M Novec

Làm mát bằng nước hay bằng dầu khoáng (mineral oil) là xưa rồi… giờ họ làm mát bằng dung dịch “3M Novec xxxx” (có bán đầy ở ngoài thị trường). Thực ra, kỹ thuật này đã được dùng với siêu máy tính Cray-2 từ năm… 1985, nhưng chỉ phổ biến trong thị trường máy tính dân dụng vài năm gần đây! Toàn bộ board mạch máy tính được nhúng ngập trong “3M Novec”, loại chất lỏng không dẫn điện, sôi ở 56 độ C, có thể hạ tiếp nhiệt độ sôi bằng cách rút bớt không khí ra khỏi case, tạo môi trường áp thấp, như ta biết, nhiệt độ sôi phụ thuộc vào áp suất! Sau khi hấp thu nhiệt, bốc hơi thành thể khí, khí này chạy qua bộ phận làm mát, ngưng tụ (condenser) với các lá kim loại tản nhiệt và quạt gió ở phía trên, lại hóa thành thể lỏng và rơi xuống dưới trở lại!

Giống như là mây – mưa vậy, cứ thế tuần hoàn! Kỹ thuật này giúp tăng mật độ thiết bị điện tử lên cả chục lần mà vẫn bảo đảm vấn đề tản nhiệt! Và quan trọng là có thể thực hiện tương đối dễ dàng, cho cả quy mô cá nhân (như PC) lẫn quy mô công nghiệp (như data-center). Cũng gần gần giống như cách làm các trạm biến áp xưa, toàn bộ thiết bị được bỏ trong container kim loại chứa ngập dầu khoáng, dùng dầu làm chất dẫn nhiệt! Nhiều người đã làm dàn máy tính cá nhân sử dụng tản nhiệt bằng “3M Novec” kiểu aquarium, trông giống như cái bể cá thủy sinh thật sự, nhìn rất đẹp mắt! Rất thích tự build một cái workstation thế này, nhưng trước tiên là… phải đi kiếm những bài toán cần đến năng lực tính khủng như thế đã!

25 năm sau

Hai mươi lăm năm sau, trên một cái máy tính có 16 GB RAM chứ không phải chỉ vẻn vẹn… 4 MB như hồi đó! Cái thời còn chạy Win 3.1.1, rồi sau nữa là Win 95, Win 97, Win ME, Win NT, etc… Mới trước đó chỉ độ vài năm thì thậm chí, máy tính… không nhất thiết cần phải có ổ cứng mới chạy được, chỉ cần đúng một cái đĩa mềm để khởi động hệ điều hành MS-DOS 5.0 rồi chạy Turbo-Pascal hay Borland-C để học lập trình!

Làm phép tính nhẩm để kiểm chứng định luật Moore, định luật nói rằng: mật độ transistor tăng gấp đôi sau mỗi 2 năm, tổng thời gian là cỡ 24 năm, tức là RAM phải tăng ước chừng khoảng 2 ^ (24 / 2) = 4096 lần, tính ra thì thấy đúng chính xác là như vậy, 4 MB x 4096 = 16 GB (!!!) Có quá nhiều thứ đã đổi thay, nhưng vẫn có một số thứ hoài không thay đổi, cái này ai trãi qua rồi mới cảm thấy có chút… hoài niệm!

vừng ơi, mở ra!

Tình hình là vẫn code cho đến tận ngày cuối năm Dương, và ngồi setup cái máy tính mới! Dù sao thì xài con laptop $3000 để thay thế cho vai trò của desktop một cách tạm bợ, từ ngày này sang ngày khác như vậy cũng thấy hơi xót, đến lúc cũng nên trang bị một máy desktop cho đúng nghĩa, công nhận chip M2 chạy cực lẹ…

Nãy cấu hình máy, đến phần username / password, định đặt pass là “open sesame” – tiếng Việt tức là: “Vừng ơi, mở ra!” (truyện Alibaba và 40 tên cướp), nhưng thấy pass dễ đoán quá nên thôi! Năm mới đang đến, hy vọng mọi thứ cũng sẽ… “Vừng ơi, mở ra”! Chúc mọi người năm mới… thân tâm an lạc, vạn sự như ý!

avl tree

Lâu rồi mới trở về những “bài tập lập trình” cơ bản, như thời ĐH, những vấn đề thú vị, nhưng cần sự tập trung cao và kéo dài khi coding. Bài toán như sau: hầu hết các hệ điều hành đều cung cấp cho người dùng hệ thống tập tin (file), các thư mục lồng nhau (nested) và chứa trong đó những thư mục con, tạo thành một hình cây (tree)! Nhưng đó là với người dùng, thực chất, hệ thống tổ chức bên dưới dạng flat – list, một danh sách phẳng, hiểu đơn giản là một cái mảng lớn không phân cấp chứa tất cả các tập tin! Mỗi tập tin ở mức quản lý thấp của HĐH chỉ có số (inode) chứ không có tên, đọc từ đầu đến cuối đĩa chỉ là cái mảng một chiều có rất nhiều phần tử. Tiếp theo đó, ở lớp (layer) kế trên, người ta mới đề cập đến tên của tập tin (file name, path).

Ví dụ như: ~/Downloads/aaa.pdf hay /System/Library/CoreServices… Từ những đường dẫn đầy đủ này truy vấn từng cấp, ra được số inode và tìm đến các khối lưu trữ thực bên dưới! Nhưng lưu và tìm thế nào cho nhanh, không phải duyệt cái mảng quá lớn? Tên tập tin, đường dẫn thư mục thực chất được tổ chức thành dạng cây AVL – AVL tree! Độ phức tạp của thuật toán tìm kiếm sẽ giảm từ O(n) xuống thành O(log(n)). Ngồi đọc lại bài xuất bản năm 1962 của hai nhà bác học Liên Xô: Georgy Adelson-Velsky và Evgenii Landis, lâu lắm rồi mới được trở lại code C đúng nghĩa! Đơn giản là tự ra bài tập để làm cho vui, tìm lại cái cảm giác lập trình chân chính, thực sự, sau nhiều năm tháng toàn code lảm nhảm Swift, Python, etc…


weekend humor

Weekend humor, picture created by me using GIMP! About programming languages, just for fun, don’t take it too literally and seriously! There’re a lot, a lot more stuffs like JavaScript. It reminds me just that: what users really want is a smoothly-run “program”, not some mis-reading, mis-interpreted “scripts”!

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 đơn giản 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 khi cho rằng nếu tôi là sync, thì những code viết ra trước đây là async! Đây là kiểu 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!

Hãy cứ phát minh lại cái bánh xe

Có một dạo thời còn đại học, bị ám ảnh với những thứ 3D, nên tự đi viết một cái 3D-engine: phối cảnh vật thể trong không gian 3 chiều! Mà tôi biết thừa là chỉ làm cho vui, chứ những engine 3D đã có như OpenGL, DirectX nó làm tốt hơn tôi một triệu lần! Nhưng xem như bài tập, cứ làm thử xem sao! Nhờ đó mà đọc qua các lý thuyết về một tá các phép chiếu (projection) khác nhau, ôn lại một mớ Toán vector, ma trận. Cái engine tôi viết ra hiển thị tốt các đối tượng 3D phức tạp, nhưng chưa có đổ bóng hay các thao tác advanced khác!

Bạn bè cùng lứa là toàn dùng ngôn ngữ và công nghệ cấp cao, kéo thả, cắt dán các kiểu rồi, còn tôi vẫn lập trình DOS với Turbo C++ sơ đẳng như thế! Và cực kỳ ghét những câu chữ bóng bẫy, trơn tuột (catching, slippery phrases) kiểu: Don’t reinvent the wheel – Đừng phát minh lại cái bánh xe! Không làm được cái đơn giản, sao làm được cái phức tạp!? Mà điều đó thấy rất rõ ở những coder trẻ: cái gì cũng biết, mà không làm được những điều đơn giản! Mà những điều đơn giản nó không có đao to búa lớn, không huênh hoang chữ nghĩa!

Và thế rồi đi chê Trung Quốc toàn chỉ biết copy (mà mình thì đến copy vẫn chưa làm được)! Copy hay không không quan trọng, quan trọng là bắt đầu với việc đơn giản đã! Và họ cứ “trường kỳ copy” như thế hàng chục năm, trước khi có được khả năng sáng tạo cái mới! Cũng như hoạ sĩ học vẽ thôi, trước khi tạo thành phong cách, thành danh thì hàng chục năm trước, họ đã dày công học hỏi, copy hết phong cách này đến xì-tai khác! Tự dưng mới sinh ra đã thành phong cách, đã thành sáng tạo, đã có kết quả thì chỉ có “cuội VN” thôi!

Nhưng nói điều đơn giản, làm điều cơ bản, ở cái thời gian và không gian này, có khi bị coi là ngu và ngố á! Đồ dở người, đồ hâm hấp, cứ mấy cái đơn giản, cơ bản đem ra nói hoài, chả có cái gì “cao siêu” cả, toàn cộng trừ nhân chia, toán hình toán số cơ bản thôi, xem có làm được không đã! Bữa xài cái app trả tiền điện nước, mới thấy mấy cái dòng tô đỏ bên dưới, nào là “Simulate”, nào là “Giả lập”, đem cả code test vào production – môi trường chạy thật như thế, có mỗi một dòng “#if DEBUG” cũng không thêm vào được, chả hiểu làm gì để ăn!? :(

tư duy hình thức

Nhân một tranh luận gần đây trên báo chí: “trẻ em như tờ giấy trắng là một suy nghĩ sai hoàn toàn”… nhân chuyện này bàn về kiểu tư duy máy móc, hình thức của người Việt! “Trẻ em như tờ giấy trắng”, câu cũng có phần đúng, chúng nó chưa biết gì và chỉ tiếp thu, tiêm nhiễm những gì được dạy, được thấy! Nhưng câu đó cũng không đúng hoàn toàn, trẻ em như một hạt giống mang thông tin di truyền, và biết đâu đó, có thể được thừa hưởng cả những “duyên nghiệp” từ kiếp trước (từ ngữ hơi duy tâm một tí)! Nên hành trình phát triển của một đứa bé, rất thường khi là nằm ngoài tiên liệu của phụ huynh và giáo viên! Trẻ em vừa là tờ giấy trắng, vừa không phải là tờ giấy trắng, đó đơn giản chỉ là những cách diễn đạt khác nhau, hình thức lý luận nhị nguyên, một điểm yếu cố hữu của tư duy con người!

Nhưng 99% người Việt (có khi là nhiều hơn) chấp vào cái hình thức nhị nguyên thô thiển, sơ khai đó! Họ chấp vào đó như “gà mắc tóc”, điều đó dẫn đến sự “đối kháng” giữa những “suy nghĩ” khác nhau! Theo tôi, ai còn mắc vào những lỗi “tư duy hình thức” như vậy là chỉ cho thấy tầm tư duy nông cạn, hời hợt trên bề mặt, không nghĩ ra được những nội dung sâu xa hơn, không thể đi hết độ phức tạp của vấn đề, nên đành đứng trên bề mặt trắng đen như thế. Bao nhiêu “học hỏi, tư duy”, lên mạng đọc này kia, biết được một vài “ngôn từ lảm nhảm” là đã tự cho mình giỏi, nghĩ rằng bao nhiêu đó là đủ rồi! Sự việc trở nên tồi tệ hơn khi họ ngày càng “chấp ngã”, bám vào những cái lý lẽ đó theo kiểu “take position” – giữ vị trí y như trong quân sự vậy, bên này là “ta”, bên kia là “địch”!

Các tranh luận ở VN đều mang tính “đối kháng”, “chiếm lĩnh vị trí” như thế, kiểu tư duy bên kia là “địch”, bên này là “ta”, trắng đen rõ ràng! Nhưng tiếc thay, kiến thức không phải 3D hay 4D như quân sự, nó là không gian n-D vô cùng phức tạp, bao gồm rất nhiều chiều kích, thay vì đối kháng, cần phải gợi mở, để cùng phát triển, đó mới là tranh luận thực sự. Trong giáo dục, “giữ vị trí”, cố sống chết bám vào một điểm thì cũng chẳng khác nào tự giới hạn mình! Chuyện này cũng như khác biệt giữa cờ vây và cờ vua vậy! Cờ vua có tính đối kháng rõ ràng, mục tiêu là ăn “hậu” của đối phương! Nhưng cờ vây không có tính “đối kháng, ăn quân” rõ ràng, mục tiêu là chiếm lĩnh càng nhiều “dư địa”, tạo ra càng nhiều “không gian phát triển” càng tốt, nói theo ngôn ngữ cờ vây là có thêm nhiều “khí” để “thở”.

Tôi rất sợ những kiểu người bám víu vào lý luận hình thức… Họ “take position, hold the line, take the side”, ngôn ngữ của họ cứ “điểm, tuyến & diện” như thế! Mọi cách diễn đạt đều tương đối, đều không chính xác hoàn toàn, dùng nó như thế nào là cả một sự cân nhắc! Phải bước qua được rào cản của ngôn ngữ thì mới hiểu được những nội dung khác truyền tải bên dưới! Nhưng không, họ bám víu vào mớ ngôn từ chết ấy, tìm cách “tranh tiên”, chiếm lấy một lợi thế nho nhỏ bằng ngôn từ, rồi mắc cứng luôn ở đó, sau đó bằng những kiểu: do đó, cho nên, vì vậy, suy ra… tìm cách chứng minh chỉ có tôi đúng và đối phương là sai! Tranh đấu với đối phương thực chất chỉ thể hiện những mâu thuẫn, lúng túng, hạn chế nội tại mà thôi, vẫn là kiểu “tôi đúng anh sai” chứ chưa phải là khai mở kiến thức!