Chaos của James Gleick: Phần mềm
(github.com/rudyrucker)- James Gleick's CHAOS: The Software là bản phát hành công bố miễn phí mã nguồn, hướng dẫn sử dụng và tệp thực thi của chương trình Autodesk DOS năm 1991
- Chương trình do Josh Gordon, Rudy Rucker và John Walker tạo ra; Rudy Rucker viết phần lớn thuật toán, còn thuật toán Fractal Landscapes do John Walker viết
- Được phát triển với sự tham vấn James Gleick về cuốn sách Chaos: Making a New Science của James Gleick; lần công bố này được phân phối theo giấy phép GNU
- Có thể chạy trên hầu hết mọi nền tảng bên trong DOSBox; Release 1.1 bao gồm tệp thực thi và tệp tham số, hướng dẫn sử dụng và mã nguồn
- Các hạng mục cải tiến chính còn lại gồm tăng độ phân giải hiển thị hoặc kích thước pixel, và loại bỏ phụ thuộc vào chương trình DOS TSR cũ metashel.exe dùng cho đồ họa
Công bố miễn phí chương trình DOS năm 1991
- James Gleick's CHAOS: The Software là bản phát hành công bố miễn phí mã nguồn, hướng dẫn sử dụng và tệp thực thi của chương trình Autodesk DOS năm 1991
- Những người tạo ra phần mềm là Josh Gordon, Rudy Rucker, John Walker
- Rudy Rucker viết phần lớn thuật toán
- Thuật toán Fractal Landscapes do John Walker viết
- Josh Gordon đảm nhận phần lớn giao diện và triển khai mã thuật toán
- Chương trình được tạo ra với sự tham vấn James Gleick về cuốn sách Chaos: Making a New Science của James Gleick
- Lần công bố này được phân phối theo giấy phép GNU
Tải xuống và chạy
- Release 1.1 có ba mục tải xuống
- The CHAOS executables and parameter files: tệp thực thi và tệp tham số
- The CHAOS User manual: hướng dẫn sử dụng
- The CHAOS source code: mã nguồn
- Chương trình Chaos có thể chạy trên hầu hết mọi nền tảng bên trong một shell DOS gọi là DOSBox
- Chi tiết liên quan đến cách chạy có trên Releases page
Thay đổi mã và các hạng mục cải tiến còn lại
- Người dùng có thể chỉnh sửa mã Chaos và tải lên phiên bản mới
- Cũng có thể dùng các thuật toán để tạo ra những chương trình nhỏ hơn dẫn xuất từ đó
- Có thể xem mã trực tuyến tại Chaos GitHub repository
- Có hai ứng viên nâng cấp lớn nhất còn chưa được giải quyết
- Tăng độ phân giải hiển thị hoặc kích thước pixel
- Loại bỏ việc dùng DOS TSR cũ của MetaGraphics Software Corporation, tức chương trình “terminate and stay resident” metashel.exe
- Chaos dùng lệnh gọi metashel để xử lý đồ họa
6 mô-đun có trong Chaos
- MANDEL: Chương trình Mandelbrot Set
- Bao gồm quadratic và cubic Julia set
- Bao gồm quadratic và cubic Mandelbrot set
- Bao gồm Rudy set, một cubic connectedness map
- MAGNETS: Chương trình Pendulum and Magnets
- Trình diễn chuyển động vật lý hỗn độn
- Trình diễn fractal attraction basin
- ATTRACT: Chương trình Strange Attractors
- Trình diễn Lorenz Attractor
- Trình diễn Logistic Map
- Trình diễn Yorke Attractors và Henon Attractors
- GAME: Chương trình Barnsley Fractals
- Trình diễn các fractal Iterated Function System như fractal fern nổi tiếng
- FORGE: Chương trình Fractal Forgeries
- Trình diễn mây, bản đồ, dãy núi và hành tinh dựa trên fractal ngẫu nhiên
- TOY: Chương trình Toy Universes
- Trình diễn cellular automata
1 bình luận
Ý kiến trên Hacker News
Tôi đọc cuốn này hồi học cấp ba và cũng khoảng thời gian đó xem một bài thuyết trình về tập Mandelbrot
Người thuyết trình đưa ra
z = z**2 + cvà giải thích số phức hoạt động thế nào; về nhà, tôi đã suy nghĩ rất chăm chú những chuyện như cách ánh xạ một khoảng số thực dấu phẩy động nhỏ lên màn hình độ phân giải cao của Apple //eCuối cùng tôi cũng viết được một chương trình chạy được, nhưng khi chạy thử thì đến trước giờ đi ngủ nó gần như chưa tiến triển gì, và tôi cũng không biết có nên để máy tính bật qua đêm hay không. Hôm sau nhìn lại, chương trình BASIC thậm chí còn chưa tới phần thân chính của tập hợp mà chỉ mới vẽ các dải xung quanh
Vì thế tôi thấy mình cần một máy tính nhanh hơn và nâng cấp lên máy DOS 80286; hình như nhờ đó tôi chạy được FRACTINT. FRACTINT là một tối ưu hóa thông minh dùng phép toán số nguyên và nhiều mánh khác để tăng tốc dựng hình tập hợp, và nó giúp tôi học rất nhiều về tối ưu hóa là gì
Cuốn sách này, cùng những cuốn như K&R C và Hackers, đã mở rộng tư duy của tôi thời cấp ba và dẫn tôi tới điện toán hiệu năng cao, hệ phức hợp và mô phỏng. Hiệu ứng cánh bướm cũng đóng vai trò lớn trong việc hiểu quan hệ nhân quả cổ điển
Hồi đó tôi học C bằng cách xem các tệp mã nguồn, còn trước đó tôi đang dùng lẫn Turbo Pascal và hợp ngữ. Sau này tôi chuyển tiếp sang C++, và nó trở thành ngôn ngữ nền tảng trong một phần đáng kể sự nghiệp freelance của tôi. Thật vui khi được gợi nhớ lại
Vì Chaos của Gleick mà tôi từng bị gọi lên phòng hiệu trưởng hồi cấp ba
Tôi hoàn toàn mê fractal, nhưng ở nhà chỉ có IBM PC XT nên dựng hình tập Mandelbrot chậm đến phát khổ, còn bảng màu CGA thì quá hạn chế
Khoảng thời gian đó, cùng với một đồng phạm, tôi phát hiện ra các máy 386 trong thư viện hầu như không được dùng để tra cứu catalog, nên đã biến chúng thành một farm dựng hình fractal. Chúng tôi thoát chương trình catalog, nhét đĩa mềm có renderer mới nhất vào rồi cho chạy dựng hình phóng đại sâu; để khỏi bị nghi ngờ thì tắt màn hình và quay lại kiểm tra ở tiết sau
Kết quả thật phấn khích, và tôi cảm nhận được khả năng tiếp cận tài nguyên tính toán tạo ra khác biệt lớn đến mức nào. Cuối cùng thì kết cục quen thuộc xảy ra: bị thủ thư bắt gặp và báo cáo là “hacking”
Cuốn sách này đã thay đổi đời tôi
Hồi cấp ba tôi cực kỳ kém toán, nhưng vì có chút hứng thú lưng chừng với hướng nghệ thuật và nghĩ có thể làm gì đó như kiến trúc, tôi chọn học toán nâng cao. Tôi nhận điểm U, tương đương “Unmarked” trong hệ điểm của Anh, nghĩa là bài làm tệ đến mức không đáng chấm
Cũng khoảng thời gian đó, trong lúc lang thang, tôi thấy bìa một cuốn sách có hình đồ họa kỳ lạ và đẹp nhất mình từng thấy, rồi cầm lên với ý nghĩ “rốt cuộc đây là cái gì?”. Phần hình màu ở giữa còn có những ảnh rõ nét và gây sốc hơn, và tôi bắt đầu mượn sách về đọc để tìm hiểu những hình đó được vẽ ra như thế nào
Kết quả là tôi trở nên khá giỏi toán, và fractal, đặc biệt là fractal thống kê, đã trở thành chủ đề quan trọng trong nghiên cứu tiến sĩ của tôi. Thỉnh thoảng tôi nghĩ nếu không nhìn thấy những hình ảnh kỳ lạ đó thì đời mình sẽ ra sao; rất có thể cùng lắm tôi chỉ trở thành một kiến trúc sư rất bình thường
Tôi từng nghĩ khoa học là chuyện về trạng thái cuối cùng: trộn hai hóa chất thì có sản phẩm, giải bài toán thì có đáp án
Nhưng ý tưởng rằng phần thú vị không nằm ở kết quả mà nằm ở quá trình là một cách nhìn thế giới hoàn toàn mới. Đó là lần đầu tôi gặp khái niệm lặp—đưa giá trị đầu ra trở lại làm đầu vào của hàm—không chỉ là nhiễu phản hồi đơn thuần
Trong đời người ta được trải qua một cú chuyển đổi hệ hình thật sự mấy lần chứ. Đúng là tôi đã gặp đúng cuốn sách ở đúng độ tuổi, và tôi đoán đa số những người để lại các bình luận kiểu này giờ khoảng quanh 50 tuổi
Dù vậy, rốt cuộc tôi vẫn không trở nên giỏi toán
Việc tài liệu này nằm trên GitHub của Rudy Rucker đã hay lại càng hay
Đọc cuốn “Infinity and the Mind” của ông đã khiến tôi quay lại trường để học chuyên ngành toán, và cuốn sách đó đã thay đổi đời tôi theo hướng tốt đẹp
https://en.wikipedia.org/wiki/Rudy_Rucker
https://en.wikipedia.org/wiki/Postsingular
Năm 1987, khi còn là học sinh cấp ba, tôi đọc Chaos và lập tức rơi vào hố thỏ, rồi code bộ hút Lorenz trên Apple IIe của trường
Tôi bị choáng ngợp bởi việc phóng to ở đâu cũng hiện ra thêm nhiều chi tiết. Tôi tự hỏi liệu con người phát minh ra toán học để tạo nên những hình dạng như vậy, hay chúng tồn tại độc lập ở đâu đó trong vũ trụ và chỉ chờ được khám phá. Trải nghiệm đó đã dẫn đến rất nhiều cuộc trò chuyện triết học trong tuổi thiếu niên của tôi
Chương trình Applesoft BASIC rất chậm, và tôi tiếc là điều đó đã không thúc đẩy tôi học hợp ngữ 6502
Tôi đã thu được số đo và gần như thấy được thứ gì đó giống bộ hút, nhưng BASIC quá chậm. Để có được các phép đo cần thiết, tôi đã phải học hợp ngữ
Cuối cùng có vẻ tôi mất hứng thú với vật lý và toán, chỉ tiếp tục đào sâu vào máy tính. Giờ đã 40 năm rồi mà tôi vẫn vậy
Hồi cấp ba tôi rất thích cuốn này, và lên đại học cũng đọc lại. Nó ảnh hưởng lớn tới tôi; tác giả là một nhà văn rất giỏi trong việc khắc họa nhiều nhà nghiên cứu và giải thích lý thuyết cùng ý tưởng
Nếu bạn thích lĩnh vực này thì Complexity Explorer cũng là một tài nguyên tuyệt vời
https://www.complexityexplorer.org/
Đây là cuốn sách tôi đọc khi còn nhỏ và chịu ảnh hưởng lớn
Một trong những cuốn sách và tác giả tôi yêu thích nhất
Cuốn sách đã mở mang tâm trí tôi; sau khi giải thích rằng nó liên hệ trực tiếp với khái niệm “tạo trật tự từ hỗn loạn” trong ảnh báo chí, tôi đã tặng bản của mình cho gia sư ảnh báo chí. Về sau khái niệm này áp dụng được trong suốt đời nghề nghiệp của tôi
Giờ tôi phải tìm lại các sách khác của ông, mua một bản mới của cuốn này, và clone cả kho lưu trữ này nữa
Hồi nhỏ tôi mày mò rất nhiều với trình tạo fractal và thấy cực kỳ vui. Nếu bạn quan tâm đến phần mềm hiện đại tương tự thì những cái sau đáng xem
XaoS, trình tạo/trình xem fractal thời gian thực: https://github.com/xaos-project/XaoS
Apophysis 7X: https://github.com/xyrus02/apophysis-7x
Chaotica: https://www.chaoticafractals.com