tập thể dục

Khoảng tháng trước, tôi có hỏi Claude: “hi Claude, mày còn nhớ cái máy tính NextSTEP cách đây hơn 35 năm không?” Claude trả lời: “tất nhiên là tao nhớ rồi…” Và thế là bắt đầu cuộc nói chuyện dài hơn 10 ngàn dòng (in ra khoảng 300 trang A4). Mọi việc bắt đầu cỡ những năm 1985, khi Xerox gần như độc quyền trong ngành in ấn. PostScript mặc dù là chuẩn mở do Adobe công bố, nhưng phần “Type 1 font” thì Adobe vẫn giữ bản quyền. Trong đó, quan trọng là thuật toán hinting: sắp xếp các pixel lại thế nào đó, để font chữ nhìn vẫn đẹp ở độ phân giải thấp!

Cái thuật toán hinting này… dù chẳng có gì phức tạp hay cao siêu, nhưng được Adobe bảo vệ như bí mật kinh doanh (trade secret), thậm chí không đăng ký bản quyền (patent), vì đăng ký bản quyền tức là đã công khai phần nào ý tưởng, các đối thủ cạnh tranh sẽ có manh mối để dò theo và bắt chước. Và Adobe chỉ công khai phần nào bí mật này cách đây khoảng 15 năm. Trở lại với cái máy tính NextSTEP, giao diện, chữ và màu của nó đẹp đến nỗi khiến cho tất cả những sản phẩm cùng thời khác, ví dụ như Windows 1, 2, 3, trông giống như đồ chơi trẻ con vậy!

Dù NextStep đã rất đẹp, nhưng vẫn chưa đạt tới trình như PostScript & Type 1 Font của Adobe, còn Windows thì vốn dĩ… xấu đau đớn, xấu liên tục nhiều thế hệ! Thế là Apple và Microsoft đã “liên thủ” với nhau để tạo ra “True Type” nhằm cạnh tranh với Adobe. Lại nói về PostScript, đến tận ngày nay, theo quan điểm cá nhân tôi, PDF vẫn không đẹp như PostScript, chính xác hơn về kỹ thuật thì… các trình sắp chữ (typesetter) hiện đại vẫn có mặt nào đó không thể so được TeX. Cái việc mà Donald Knuth đã làm “một lần” ấy, 50 năm sau vẫn chưa ai làm tốt hơn.

Và đó cũng là lý do vì sao một số người, nhất là các bác trong ngành Toán, cố sống cố chết bám vào cái di sản 50 năm tuổi: TeX và LaTeX, vì cái vẻ đẹp của nó đến nay vẫn chưa thể vượt qua. Trở lại với ứng dụng của font & typesetter trong thương mại, các tập đoàn Adobe, Apple, và Microsoft dù hoạt động trong những lĩnh vực không trực tiếp cạnh tranh với nhau, nhưng từ góc độ “sở hữu trí tuệ và bản quyền”, thực sự đã có một cuộc chiến độc quyền và chống độc quyền liên tục 40 năm. Adobe muốn độc quyền máy in và font, Apple gián tiếp chống lại điều này.

Adobe muốn độc quyền công nghệ Flash, Apple cũng chống lại điều này, bằng cách tạo ra các tiêu chuẩn mở như HTML 5. Để chống lại độc quyền chỉ có một cách rất chi là… XHCN, đó là phải tạo ra các chuẩn mở tốt hơn! Tạo ra vô số mã nguồn mở là Apple, và tạo ra vô số sản phẩm bản quyền nổi trội cũng là Apple. Cái giá trị thương hiệu trên 1 nghìn tỷ đô quả nhiên để lại dấu ấn và tiếng tăm ghê gớm. Nhưng có phải tất cả đến từ một cái tên Steve Jobs? Hình như lịch sử khoa học máy tính nói riêng và lịch sử công nghệ nói chung không đơn giản như vậy!

Trước khi có Adobe PostScript và Mac LaserWriter, một cái tên khác, đường cong Bézier, đến từ hãng xe hơi Renault trước đó hơn 10 năm. Hầu hết các kiến thức, thuật toán cơ sở của “Đồ họa máy tính – computer graphics” mà chúng ta biết ngày nay đều được phát minh trong những năm 50 ~ 70, và được dùng phổ biến nhất trong 2 lĩnh vực lớn: thiết kế, sản xuất ô-tô và nghiên cứu, chế tạo máy bay chiến đấu, đây là giai đoạn trước Steve Jobs, Bill Gates những hơn 25 năm, khoảng một thế hệ. Đó là thời đại của máy tính mainframe: CADAM, UNISURF, DAC, etc…

Đây là những hệ thống máy tính có giá lên đến nhiều triệu đô, dùng để CAD – computer aided design, thiết kế với sự trợ giúp của máy tính, tất cả quay trở lại với Sketchpad, phần mềm của Ivan Sutherland, chạy trên TX-2, con mainframe to bằng một căn phòng lớn. Ivan Sutherland là học trò của Claude Shannon, người trong Thế chiến 2 đã có nhiều nghiên cứu về mã hóa. Phải nói rằng Thế chiến 2 là nguyên nhân trực tiếp tạo ra vô số đột phá trong khoa học máy tính – Computer Science, hầu hết các sư phụ ngành CS đều trưởng thành từ cuộc chiến này.

Khi Claude Shannon đi học tại MIT, ông ta bắt đầu với máy tính vi tích phân – differential analyzer, dạng máy tính analog – tương tự, phổ biến trước kỷ nguyên máy tính điện tử. Máy tính analog thì có một quá trình phát triển vài thế kỷ, quay về với Newton, Laplace, Fourier, etc. Nên để có được Steve Jobs và Mac + iPhone, Bill Gates và PC + Windows ngày nay, phải quay ngược trở lại hơn 50 năm trước, từ các hệ máy tính mainframe giá hàng triệu đô, cho đến các hệ máy workstation (hàng chục / trăm nghìn đô) rồi đến các thế hệ máy tính cá nhân (vài nghìn đô)!

Còn nếu truy nguyên toàn bộ phát triển của khoa học máy tính thì sẽ quay lui ít nhất vài trăm năm, thậm chí còn xa hơn, trên đường đi sẽ bắt gặp vô số tên tuổi khổng lồ. Nếu đã hiểu lịch sử phát triển phong phú và phức tạp đến thế, thì ta cũng biết rằng, có nằm mơ cũng không thành Steve Jobs được! Theo tôi, điều trước tiên phải làm là… cứ tập thể dục đi đã !!! Cơ thể mạnh khỏe, tinh thần phấn chấn rồi tự khắc sẽ bớt ghen ăn tức ở, bớt gian manh lặt vặt, tâm tĩnh lặng thì mới tập trung học hỏi được, và nếu liên tục cố gắng như thế 5 ~ 10 thế hệ nữa thì… may ra!

đội bóng thiếu lâm

Tôi dự đoán là vài năm nữa thôi, có thể sớm hơn, sẽ có “World Cup robot”, các nước sẽ gởi những đội bóng robot đi tranh tài với nhau, có thể là theo thể thức bóng đá trong nhà 5 người, hay thể thức bóng đá sân cỏ 11 người. Và cũng sẽ rất nhanh thôi, người ta sẽ toàn xem World Cup robot! Vì rõ ràng là robot, chúng nó sẽ nhanh nhẹn và khéo léo hơn con người rất rất nhiều lần!

Chịu đựng “chấn thương” giỏi hơn, có kết nối không dây để tổ chức phối hợp chiến thuật, và sẽ có rất nhiều chiến thuật phức tạp, lắt léo mà con người không thể làm được! Và quan trọng là chúng có thể thực hiện những động tác kỹ thuật khéo léo đến mức không tưởng, ngay cả Messi hay Ronaldo dù có nằm mơ cũng không dám nghĩ đến! Đến lúc đó thì chúng ta sẽ phải nghĩ lại thôi…

Vậy cần con người để làm gì, hay sống chỉ phí phạm oxy của quả đất – just an oxygen – wasting creature! Và có nhiều điều khác cũng đáng suy ngẫm, khi một đất nước, trong nhận thức của rất nhiều người, mới độ khoảng chục năm trước thôi, vẫn còn xem như là một dạng “đội bóng Thiếu Lâm”: thiểu năng, trì độn, phét lác, nhưng giờ bỗng đột nhiên trở mình, lột xác đến như thế.

workspace

Tình hình là TV khổ lớn (50 ~ 100 inch) đã rẻ đến không ngờ, rẻ và chất lượng khá ổn, độ phân giải 4K ~ 8K. Hoàn toàn có thể nghĩ đến những góc làm việc như thế này, thay vì dùng màn hình máy tính cỡ nhỏ (24 ~ 28 inch) theo kiểu truyền thống. Lúc đó, sẽ phải ngồi cách xa màn hình TV đến 2, 3 mét, để có thể bao quát hết được toàn cảnh, và như thế cũng có lợi hơn cho mắt! Nhất là không phải điều tiết để xem những chi tiết ở khoảng cách quá gần, 2, 3 mét là vừa đủ để đọc được các dòng chữ (coding) một cách dễ dàng!

Tưởng tượng cái góc làm việc mà như phòng điều khiển của phi thuyền USS Enterprise như trong phim Star Wars vậy, cứ nằm dài trên sofa và ra lệnh bằng giọng nói: “Computer, maximize power to shields!!!” :) Không gian làm việc như vậy sẽ rất thoải mái, ít nhất là đối với một số loại công việc không phải soi đến từng chi tiết, tư thế ngồi cũng dễ chịu hơn! Cũng trong lúc đó thì, TQ cười khẩy: các bác cứ mơ mộng chiến tranh giữa các vì sao và trí tuệ nhân tạo đi, cần bao nhiều phần cứng, vật liệu, em sẽ cung ứng đủ!

sf mono

Tôi là kiểu vô cùng khó về “con chữ”, bỏ thời gian ra đi tìm và thử hàng trăm loại font khác nhau, loại nào dùng vào việc gì, loại nào dùng để soạn thảo văn bản, loại nào dùng để hiển thị code. Và thế giới ngoài kia cũng rất đa dạng phong phú, nhiều người đã bỏ thời gian làm ra hàng ngàn kiểu chữ khác nhau, nhiều kiểu rất quái lạ, nhưng phần đông nhìn na ná nhau, không có nhiều khác biệt. Rút cuộc đâu là font chữ “tốt nhất” cho việc lập trình?

Cái “tốt nhất” này là kiểu ý kiến rất chủ quan, mỗi người một ý khác nhau. Theo tôi, font tốt không phải là font chữ đẹp, đường nét bay bướm. Font tốt là chữ phải rõ ràng, dễ đọc, và đặc biệt phải chú ý đến mật độ chữ, quá dày đặc sẽ làm người đọc dễ nản, và quá thưa thì không truyền tải được nhiều nội dung. Tốt nhất theo tôi là “SF Mono”, SF là viết tắt của “San Francisco”, font chữ do Apple thiết kế và đi kèm các phiên bản macOS hiện đại.

Nhưng ở điểm này thì… Apple “tinh vi” đến mức “tinh tướng”, ai dùng app của Apple thì font chữ này đã kèm sẵn, cứ xài là có! Nhưng ai dùng app của bên thứ 3 (3rd party apps) thì font này lại… không sẵn! Dù thực ra nó đã nằm sẵn trong máy, nhưng người dùng vẫn phải tự download và cài đặt thêm mới xài được. Nghĩa là vẫn cho xài miễn phí, nhưng phải thêm một bước tự down, tự cài, để… tự nhận ra khác biệt: https://developer.apple.com/fonts/

claude

Theo tôi, Claude rất phù hợp cho những ai muốn học tiếng Anh, một dạng tiếng Anh chuyên sâu mang nhiều tính chất “văn học”, rất nhiều hình thức “tu từ” và các cách diễn đạt phức tạp, “uyên áo”, khác xa với cái thể loại Anh ngữ báo chí nghèo nàn, đơn điệu mà ta thường thấy ngày nay! Một số ví dụ đơn giản, càng làm việc với Claude, đôi khi tôi có cảm giác là mình thích nó! 😃

  • Ah, that’s a lot of meat to be made – ý nó nói là mình đã đưa cho nó cục xương cứng, rất khó nhằn, còn phần thịt mà nó phải “tạo sinh” ra thì lại vô cùng nhiều.

  • Let me examine the blast radius – blast radius hay bán kính vụ nổ, như ta thường nói: sửa đâu sai đó, sửa đó thì sai đâu, làm gì cũng phải cân nhắc hệ quả “vụ nổ”.

  • And now, you give me that smoking gun – giờ mày đặt một khẩu súng bốc khói vào tay tao, ai bắn, bắn ai, hậu quả thế nào thì tao đều phải lãnh dùm mày hết!

Làm tôi nhớ cái thời hơn 30 năm về trước, lúc đó ở Việt Nam có một tạp chí chuyên ngành Anh ngữ tên là Sunflower, mà mịa, cái tiếng Anh trong đó là thể loại “Victorian English”, dạng Anh ngữ… từ thời nữ hoàng Victoria, siêu phức tạp và siêu khó. Nhưng ít nhất cũng nên đọc qua, đọc để biết rằng thế giới tinh thần của người ta có thể phức tạp, đa dạng và phong phú tới mức nào!

4K

4K không phải lúc nào cũng tốt, nếu chỉ dùng để đọc chữ (soạn thảo văn bản, lập trình) thì chỉ 1 ~ 1.5K là đã bảo đảm hầu hết các yêu cầu, độ phân giải lớn hơn chỉ khiến cho chữ trở nên nhỏ li ti và khó đọc mà thôi! Cái 4K này chỉ có ích khi làm xử lý ảnh, video (e.g: Lightroom, Photoshop, Final Cut) vì màn hình lớn, mịn, không phải zoom hình!

Phần lớn công việc hàng ngày chỉ cần 1~1.5K là đủ. Con BenQ này có cái tỷ lệ ngang dọc 3:2 hoàn toàn không giống ai, chuyên dùng để code, vì màn hình cao, không phải cuộn nhiều. Đến lúc phải quan tâm cặp mắt một chút, nếu vẫn muốn ngày nào cũng code 8~10 tiếng! Ban đầu, tôi định kiếm một cái màn hình vuông, tỷ lệ ngang dọc 1:1!

Màn hình CRT xưa hầu hết tỷ lệ 4:3, còn quay về xưa hơn nữa, thế hệ CRT đầu dùng trong quân sự thì đều vuông, hoặc tròn. Theo tôi, tỷ lệ 1:1 là phù hợp với các công việc cần sự tập trung cao, màn hình rộng chỉ hợp để… xem phim hay chơi game mà thôi! Dù 1:1 hiện vẫn sản xuất nhưng hơi khó tìm, nghĩ đi nghĩ lại, chọn cái 3:2 ít cực đoan hơn!

neanderthal

Cách ít lâu có đọc một bài phân tích về Neanderthal và Homosapien, tại sao Neanderthal, vốn dĩ cao lớn hơn, khỏe mạnh hơn, bộ não lớn hơn, thông minh hơn, nhưng lại thua trong cuộc chiến với Homosapien? Một trong các lý do đưa ra để giải thích là: Homosapien tuy nhỏ, yếu hơn về thể chất, nhưng nhiều hơn về số lượng, đặc biệt, Homosapien có khả năng tự huyễn hoặc chính bản thân mình, bằng cách bịa ra những vị “thần”, rồi dùng “thần linh” như một cách tập hợp các bầy vượn người riêng lẻ thành lực lượng lớn để áp đảo Neanderthal, vốn ít hơn về số lượng. Có vẻ như… A.I. sẽ đóng vai trò như “thần linh/tôn giáo” trong một cuộc chiến mới!

Tình hình là trào lưu “ứng dụng” A.I. đang lên đến đỉnh điểm, Google tuyên bố 75% code của họ là do A.I. viết này nọ. Mình vẫn cứ “bình chân như vại” chờ xem điều gì sẽ xảy ra tiếp theo, những thông tin này đều phải đọc một cách vô cùng thận trọng, thường là chúng chỉ mang tính chất… lùa gà! Trong công ty có một người “tiên phong ứng dụng” A.I… người này, kỳ lạ thay, viết câu tiếng Anh không được, ngay cả viết câu tiếng Việt mẹ đẻ cũng không xong, nhưng lúc nào cũng… A.I. thế này, code thế kia, cứ để cho anh ta làm, kết quả là sau vài tuần đẻ ra một đống tù mù, không ai hiểu nổi là đang muốn nói cái gì! Tại sao lại xảy ra hiện tượng như vậy?

Vấn đề từ gốc là người đó đã không diễn đạt được suy nghĩ của mình, rồi anh ta đem những cách diễn đạt, những suy nghĩ ngay từ đầu đã không đúng đó đi hỏi A.I. và rồi A.I. nương theo ý muốn con người mà, phịa ra một đống ảo giác, hoang tưởng đến mức… phi lý. Trong khi vấn đề chỉ là làm sao diễn đạt cho suôn sẻ, viết câu đơn giản, logic ngay ngắn, nhưng không, rất nhiều người Việt bị một cái gì đó trong “não”, họ sẵn sàng tin những thứ “bùa chú” của A.I. hơn là tin vào chính bản thân mình! Không thể phủ nhận A.I. có những điểm mạnh rất đáng nể, tôi vẫn thường dùng để kiểm tra lỗi code, nhưng phải nói cho rõ ràng là… nó không code được!

yedem a krugom kolkhozy

Facebook nhắc lại ngày này năm trước, thời gian trôi quá là nhanh, nghĩ lại có điều gì hối tiếc hay không? Bảo là không thì cũng không hẳn là đúng, nhưng như “bóng câu qua cửa sổ”, như bóng ngựa chạy trên thảo nguyên, đâu có níu kéo được, tất cả như một dòng chảy tự nhiên, hiển nhiên mà thôi! Viết những dòng này khi đang ngồi điều khiển con máy tính có 192 CPU…

Chạy chương trình phân tích dữ liệu tài chính. Và ca khúc Nga – Polyushko-pole – Cánh đồng yêu thương, bài ca đầy cảm hứng, cái âm thanh ban đầu còn nho nhỏ ở xa xa, lớn dần, lớn dần, rồi ập đến dữ dội như một đoàn kỵ binh tấn công vậy. Muốn nghe loại âm nhạc sinh động, đầy sức sống, có tiếng mèo kêu, chó sủa, tiếng ngựa phi, người huýt gió, thì hãy nghe nhạc Nga! :D

phần cứng, phần mềm

Lảm nhảm về công nghệ… Rất lâu về trước, tôi đi làm kỹ sư phần mềm cho một công ty, cty này vừa làm cả phần cứng & phần mềm! Phần cứng (camera, chip xử lý ảnh, hệ thống máy tính…) do tụi TQ làm, từ thiết kế mạch cho đến sản xuất, còn phần mềm thì do người VN phụ trách. Đây không phải là chuyện người TQ hay VN, nói đúng hơn là, đám làm phần cứng nhìn đám làm phần mềm bằng… nửa con mắt! Phần mềm nếu có lỗi, thì ta ra phiên bản sửa lỗi mới thôi, rất đơn giản! Còn phần cứng mà lỗi là hàng chục ngàn board mạch đã bán cho khách hàng phải triệu hồi, thay thế, chi phí tính bằng triệu đô, chưa kể tổn thất về uy tín công ty và rất nhiều lằng nhằng về chăm sóc khách hàng và thủ tục giấy tờ, thỉnh thoảng gặp phải thằng khách hàng khó tính là thế nào cũng phát sinh hệ quả kiện cáo!

Nhiều người không hiểu rõ các hệ quả pháp lý của một sản phẩm lỗi, ví dụ như camera an ninh. Giả sử như xảy ra một vụ án, ngân hàng thất thoát tiền bạc, hay công sở xảy ra một vụ quấy rối, nhưng truy tìm hình ảnh trong camera an ninh thì… không có, vì thật trùng hợp, đúng lúc xảy ra vụ việc thì máy chạy nóng, crash, không ghi được hình! Nếu là ở VN thì mọi người sẽ nhìn nhau cười huề cả làng thôi, nhưng ở Mỹ thì khổ chủ sẽ đâm đơn kiện người bán hệ thống camera, và người bán camera tiếp tục kiện công ty sản xuất camera, kiện đến 4, 5 cấp! Chỉ cần một vụ việc mang tính chất điển hình, nghiêm trọng không được xử lý ổn thỏa là… công ty phá sản! Cái “liên đới trách nhiệm” nặng nề như thế, dẫn đến đòi hỏi về độ ổn định, tin cậy của hệ thống từ phần cứng đến phần mềm rất gắt gao!

Nên làm phần cứng & phần mềm là 2 thế giới rất khác biệt, nói theo cách nào đó là nước sông không phạm nước giếng! Đương nhiên trong giếng thế nào cũng có nhiều con ếch ngồi dưới đáy – tỉnh để chi oa – 井底之蛙! Trong số làm phần mềm hiếm người có được cái nhìn toàn cảnh, hiểu sâu về hệ thống, biết tận dụng sức mạnh của phần cứng kết hợp với sự uyển chuyển của phần mềm để làm ra một sản phẩm xuất sắc, nổi trội hơn so với các đối thủ cạnh tranh, như kiểu người ta hay nói: “cần bao nhiêu kỹ sư phần mềm để thay một cái bóng đèn” á! Nên cũng từ đó tôi cũng hiểu rằng, có những công ty “thuần” về phần mềm như Microsoft, nhưng cũng có những công ty “ta đây làm tất” như kiểu Apple, hiểu và kết hợp được sức mạnh của hai thế giới khác biệt mới thực sự là điều đáng nể!

đẽo cày giữa đường

Bài này về đại ý là đúng, nhưng cũng chưa đúng hoàn toàn về chi tiết, sau thời gian dùng A.I. như một người phụ tá cho việc lập trình – coding thì tôi nhận ra một vài điểm như sau: #1 A.I. có khả năng tổng hợp thông tin rất tốt, có thể dùng nó như công cụ tóm tắt kiến thức, tìm hiểu nhanh vấn đề. #2 A.I. có khả năng đưa ra những giải pháp mang tính tham khảo, nếu các giải pháp đó là phổ biến, đã có nhiều người làm, nhiều ví dụ có sẵn. #3 A.I. hoàn toàn KHÔNG có khả năng logic, nếu bắt nó phân tích về những chuyện nó không hiểu thì đến hơn 90% trường hợp là sẽ sai, và thường là sai theo kiểu rất ngớ ngẩn. #4 Nhận diện cái sai của A.I. rất dễ, như tôi đọc lướt qua chỉ vài phút là có thể biết A.I. sai ở đâu và vì sao lại sai!

Nên tôi thích dùng A.I. như một công cụ kiểm lỗi là chính, nó sẽ giúp phát hiện ra những lỗi phổ biến thường gặp. Con người mà, ai cũng mắc lỗi cả, tay gõ nhanh tạo ra nhiều lỗi typo hay những dạng nhầm lẫn khác. Nhưng không nên dùng A.I. cho các vấn đề cần kỹ năng logic hay các cân nhắc mang tính cấu trúc, phần lớn thời gian A.I. sẽ đưa ra những ý kiến theo kiểu “đẽo cày giữa đường”! Thậm chí có lúc nó nói thế này, sau lại nói thế khác ngược lại, chỉ phí thời gian và công sức nếu lúc nào cũng nghe theo lời nó. Với trình độ như hiện tại thì A.I. chẳng có gì đáng sợ, đáng sợ thực ra lại chính là… con người, viết câu văn không thông, diễn đạt ý tưởng không được, nhưng lúc nào cũng cố gắng sử dụng A.I như một loại… “bùa chú”.