FreeShip Plus on Mac

I’ve been using Free!Ship and Free!Ship Plus for 15+ years now, having designed and built myself 7 small kayaks and canoes, with just this “outdated piece of software” which ran on Windows (I’d preferred WinXP for it’s lightweight). But since most of the time I’m on Mac, and it’s very inconvenient to install a Windows dual boot, so I’ve tried using VirtualBox, then tried Wine emulator to run the app!

Both VirtualBox and Wine offer miserable performance. Then came Mac Silicon, and Wine stopped working, though it could still work on older Intel Mac. So I grabbed the FreeShip Plus source (Delphi, the code base bears quite a “mental state” of a late Soviet Union period…) fixed some bugs, managed to make a universal build (Silicon and Intel): a native Mac app! As a software developer, yes I know…

The app has a crappy UI with lots of bugs (but its rendering performance has been greatly improved now, Metal – backed OpenGL)! And as a boat builder, I can’t wait for those bugs to be fixed. Just a tool to get the job done, build that boat, get out on the water. FreeShip Plus could be hard to maintain, but with some cares, it could still be built cross-platform: Win, Mac, Linux. Download link on the left!

TRSL

Xưa, thiết kế ngôn ngữ lập trình là một cái gì đó cảm giác… rất cao siêu! Đó không chỉ là một tập từ vựng và cú pháp, mà còn là các ngữ nghĩa chặt chẽ muốn diễn đạt bên dưới. Lịch sử cho thấy có không ít cú pháp ngôn ngữ theo kiểu… lảm nhảm, những người nói ra những câu mà thực chất không tự hiểu được mình đang nói cái gì!

Những loại đó trong lịch sử Khoa học máy tính không phải ít! Những vấn đề “self integrity” chính là thể hiện rất rõ ràng, sự không thấu hiểu và thiếu nhất quán bên trong một con người. Thế rồi, đến một ngày, tự mình cũng đi thiết kế ngôn ngữ, một ngôn ngữ đơn giản, không Turing-complete như các hệ quả của định lý Rice đã mô tả!

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