- Compiler Explorer đã thay đổi cách lưu trữ từ năm 2012 để các liên kết chia sẻ có thể tồn tại lâu dài, nhưng việc goo.gl ngừng hoạt động khiến nhu cầu bảo toàn các liên kết
godbolt.org/g/abc123cũ trở nên cấp bách - Ban đầu, toàn bộ trạng thái trình biên dịch được chứa trong URL; đến năm 2014 thì tích hợp dịch vụ rút gọn URL của Google; và sau khi Stack Overflow cấm URL rút gọn vào năm 2016, dịch vụ này đã tạo liên kết vòng
godbolt.org/g/abc123 - Từ năm 2018, khi giới hạn độ dài URL trở thành vấn đề lớn hơn, hệ thống chuyển sang cách riêng: lưu trạng thái dưới dạng tài liệu JSON trên S3 và dùng DynamoDB để quản lý ánh xạ giữa mã băm ngắn và đường dẫn đầy đủ
- Khi Google chấm dứt các liên kết goo.gl vào tháng 8 năm 2025, việc phân giải các liên kết cũ dựa trên goo.gl sẽ trở nên khó khăn, nên dự án đang thu thập khoảng 12.000 liên kết
gcùng đích chuyển hướng của chúng từ web công khai và nhật ký - Nếu người dùng hiện truy cập các liên kết Compiler Explorer cũ mà họ đang giữ, các liên kết đó có thể được đưa vào danh sách bảo tồn; và với tri thức chia sẻ cần tồn tại lâu dài, việc tự sở hữu hạ tầng cốt lõi sẽ an toàn hơn
Sự thay đổi trong cách lưu liên kết của Compiler Explorer
- Năm 2012, Compiler Explorer lưu toàn bộ trạng thái ngay trong URL
- Cách mã hóa toàn bộ trạng thái trình biên dịch vào URL khiến liên kết quá dài và khó xử lý, nên vào tháng 3 năm 2014 đã bổ sung hỗ trợ URL rút gọn goo.gl của Google
- Khi đó, liên kết ngắn có dạng
goo.gl/abc123; khi được nhấp vào, nó sẽ chuyển hướng đến URL đầy đủ của trang Compiler Explorer rồi giải mã trạng thái nằm trong URL
Liên kết vòng sau lệnh cấm của Stack Overflow
- Năm 2016, Stack Overflow cấm dịch vụ rút gọn liên kết vì chúng có thể che giấu đích đến thực sự
- Quy định này cũng ảnh hưởng đến các liên kết Compiler Explorer, và vào thời điểm đó dự án chưa có ý định tự lưu trữ dữ liệu người dùng
- Giải pháp vòng là tiếp tục dùng goo.gl nhưng cung cấp cho người dùng liên kết dạng
godbolt.org/g/abc123abc123là ID riêng của goo.gl- Truy cập
/g/abc123sẽ chuyển hướng tớigoo.gl/abc123 - Sau đó goo.gl lại chuyển hướng tới URL đầy đủ của godbolt.org chứa trạng thái
- Về sau, dự án dùng Google API để tránh chuỗi chuyển hướng nhiều tầng này
Chuyển sang kho lưu trữ riêng vào năm 2018
- Đến năm 2018, giới hạn độ dài URL trở thành vấn đề lớn hơn nữa, và dữ liệu trong URL khi đó đã được nén sẵn
- Compiler Explorer chuyển sang cấu trúc tự lưu trạng thái
- Hệ thống cũng kiểm tra xem mã băm của liên kết ngắn có chứa từ ngữ khó chịu hay không
- Nếu xuất hiện từ ngữ khó chịu, hệ thống sẽ cố ý thêm thông tin vào tài liệu để tạo ra mã băm khác
- Cơ chế này đã dẫn tới bug #1297
Vấn đề bảo tồn do goo.gl ngừng hoạt động
- Compiler Explorer hiện vẫn hỗ trợ các liên kết
godbolt.org/g/abc123 - Google cho biết các liên kết hiện có sẽ tiếp tục chuyển hướng đến đích dự kiến, nhưng goo.gl đã bị chuyển sang chế độ chỉ đọc từ vài năm trước và sẽ ngừng hoạt động hoàn toàn vào tháng 8 năm 2025
- Sau thời điểm đó, các liên kết dựa trên goo.gl sẽ không còn có thể được phân giải nữa
- Bản thân các liên kết
goo.glthì Compiler Explorer không thể tự xử lý, nhưng các liên kếtgodbolt.org/g/abc123có thể được bảo tồn trong cơ sở dữ liệu riêng
Thu thập liên kết cũ và cơ sở dữ liệu riêng
- Trong vài ngày qua, dự án đã thu thập các liên kết cũ cùng URL đích chuyển hướng của chúng từ nhiều nguồn công khai
- Tính đến hiện tại đã tìm được khoảng 12.000 liên kết
- API tìm kiếm web của Google
- API của GitHub
- Nhật ký web nội bộ
- Bản dump dữ liệu Stack Overflow trên archive.org
- Danh sách các trang web được Archive.org lưu trữ
- Về mặt nội bộ, hệ thống đã thay đổi để ưu tiên cơ sở dữ liệu riêng thay vì goo.gl
- Dự án cũng đang theo dõi các liên kết
gmới chưa có trong cơ sở dữ liệu - Ở máy cục bộ dùng cơ sở dữ liệu sqlite, còn môi trường production dùng Dynamo
Người dùng có thể giúp gì
- Nếu bạn đang lưu riêng các liên kết
godbolt.org/g/abc123cũ, việc truy cập từng liên kết ngay bây giờ sẽ rất hữu ích - Khi truy cập liên kết, nó sẽ được ghi vào nhật ký web và sau đó có thể được thêm vào cơ sở dữ liệu
- Nếu không, sau tháng 8 năm 2025 các liên kết đó có thể sẽ không còn hoạt động
- Trường hợp này cho thấy rủi ro khi phụ thuộc vào dịch vụ bên thứ ba cho hạ tầng quan trọng
- Để giữ lời hứa về một “URL tồn tại mãi mãi”, cần phải tự sở hữu toàn bộ stack
1 bình luận
Ý kiến trên Hacker News
Trước năm 2010, tôi mặc nhiên tin rằng liên kết là thứ sẽ tồn tại mãi mãi, và dùng rất nhiều bookmark của trình duyệt
Về sau, tôi phát hiện phần lớn bookmark gần như không còn dùng được vì link rot; từ đó tôi in trang web thành PDF để lưu lại
Sau khi tính năng chế độ đọc được phổ biến khá ổn định, tôi chuyển sang sao chép nội dung ở chế độ đọc và lưu thành tệp RTF
Tôi dùng tiện ích mở rộng SingleFile để lưu trữ mọi trang mình truy cập
Thiết lập thì dễ, nhưng cần lưu ý là nó tốn rất nhiều dung lượng đĩa
$ du -h ~/archive/webpages1.1T /home/andrew/archive/webpageshttps://github.com/gildas-lormeau/SingleFile
Nếu cài tiện ích mở rộng trình duyệt Web Archive chính thức, bạn có thể cấu hình để tự động lưu trữ mọi trang mình truy cập
Cách giải quyết của tôi là ghi nhớ chính nội dung quan trọng, hoặc ít nhất nhớ nơi có thể tìm thấy nó
Tôi vẫn chưa chết, nên coi như cách đó vẫn hiệu quả
Tôi tự hỏi có tiện ích mở rộng trình duyệt nào tự động chuyển sang web.archive.org khi liên kết hết hạn không
Thật vô lý khi các trình duyệt đến giờ vẫn chưa sửa tính năng bookmark để phản ánh nhận thức này
Mọi bookmark phải lưu không chỉ liên kết mà cả một bản sao đầy đủ của trang đã được render. Không nên chỉ lưu mã nguồn gốc có thể phụ thuộc vào nội dung động vốn sẽ không còn tồn tại nữa
Các tab đang mở cũng nên hoạt động theo cách tương tự. Khi quay lại một tab lúc không có kết nối Internet, tôi không muốn thấy lỗi mạng chỉ vì trình duyệt đã “tử tế” đẩy tab đó khỏi bộ nhớ
Trong trường hợp này, trạng thái nên được tải lại từ đĩa chứ không phải từ mạng, cho đến khi tôi tự làm mới thủ công
Với Goo.gl, đáng để thử hợp tác với dự án ArchiveTeam[1]
“Rút gọn URL thật sự là một ý tưởng tệ hại”[2]
[1] https://wiki.archiveteam.org/index.php/Goo.gl
[2] https://wiki.archiveteam.org/index.php/URLTeam
Vì vậy nhiều khả năng họ có khá nhiều, hoặc toàn bộ, URL của Compiler Explorer; có lẽ nên liên hệ với họ
Việc URL tồn tại mãi mãi từng là một giấc mơ đẹp, nhưng trong thực tế có vẻ 99% URL không tồn tại vĩnh viễn
Thay vì tiếp tục một cuộc chiến chắc chắn thua, có lẽ ta nên xây dựng công nghệ trên giả định rằng hạ tầng không phải là vĩnh cửu
Đúng vậy. Và cũng cần không dùng dịch vụ rút gọn URL như hạ tầng
URN từng là nỗ lực giải quyết vấn đề này bằng cách tách danh tính của sự vật khỏi vị trí của nó
Nhưng nó không được dùng rộng rãi, rồi sau đó các dịch vụ rút gọn liên kết đã tái triển khai ý tưởng đó một cách tệ hại
https://en.m.wikipedia.org/wiki/Uniform_Resource_Name
Tên miền thường xuyên đổi chủ, và những URL lẽ ra phải tồn tại mãi cũng có thể theo thời gian biến thành liên kết phishing độc hại
URL xác định vị trí của tài nguyên trên mạng, chứ không xác định bản thân tài nguyên, nên nó không cần phải vĩnh viễn hay duy nhất
Vì vậy nó mới được gọi là “uniform resource locator”
Vấn đề này đã được nhận ra từ năm 1997, và vì thế Digital Object Identifier đã ra đời
Việc lạm dụng dịch vụ rút gọn liên kết như một cơ sở dữ liệu, rồi về sau đánh mất tham chiếu gốc và phải thu hồi các liên kết quý giá rải rác khắp Internet, nghe có gì đó rất nên thơ
Bên thật sự lạm dụng là những người dùng dịch vụ rút gọn để che giấu lừa đảo, spam, website bất hợp pháp sau một tên miền chung rồi phát tán khắp nơi
Thứ được dùng như cơ sở dữ liệu có vẻ không phải URL rút gọn, mà là URL của chính họ, tức phần chứa trạng thái trình biên dịch
https://killedbygoogle.com/
“Google Go Links (2010–2021)”
“Đã ngừng hoạt động khoảng 4 năm trước. Cũng được biết đến với tên Google Short Links, đây là một dịch vụ rút gọn URL. Dịch vụ cũng hỗ trợ tên miền tùy chỉnh cho khách hàng Google Workspace. Dịch vụ tồn tại khoảng 11 năm”
Nhưng cắt đứt cả các liên kết hiện có là hành động tệ hơn nhiều. Đặc biệt nếu Google vẫn duy trì nó dưới một hình thức nào đó cho mục đích nội bộ trong các ứng dụng của họ
Hơi ngạc nhiên là Google thấy việc chấm dứt cả phiên bản chỉ đọc cũng đáng công bỏ ra
Trừ khi họ lo rủi ro pháp lý vì các chuyển hướng liên kết không công khai vẫn còn trên mạng
Thành thật mà nói, dù chi phí nhỏ thì nó vẫn là chi phí ròng, nên cũng có khả năng tương đương là họ bỏ qua thiện cảm hay các cam kết trước đây và đơn giản là cắt bỏ nó
“Bài viết này do con người viết, nhưng việc đề xuất liên kết và kiểm tra ngữ pháp do LLM thực hiện”
Hôm nay đây là lần thứ hai tôi thấy một thông báo sử dụng LLM như vậy. Có cảm giác như đang chứng kiến một xu hướng mới bắt đầu
Nội dung tự đứng vững được là đủ. Nếu nội dung là rác, thì việc đó là rác do AI tạo ra hay rác do con người tạo ra có gì quan trọng?
Lý do duy nhất khiến ai đó muốn hoặc muốn biết về việc gắn nhãn là vì họ không tự đánh giá được chất lượng nội dung, nên dùng việc có do AI tạo ra hay không như một chỉ báo thay thế cho chất lượng thấp
Không muốn nói điều này, nhưng trừ khi có một quỹ rất vững về tài chính tham gia, Compiler Explorer và godbolt.org cũng sẽ không tồn tại mãi mãi
Đến lúc đó, có khi mọi thông tin đã được chưng cất vào một mô hình vạn vật với 487 tỷ tỷ tham số
Cho đến giờ thì chúng tôi đã làm khá tốt. Tuần này là tròn 13 năm
Ngay cả khi giả định tốc độ tăng trưởng tiếp tục và tất cả nhà tài trợ hiện tại đều rút lui, chúng tôi vẫn có đủ tiền để trụ thêm hơn một năm một chút
Dù vậy, tôi đang nghĩ đến những thứ như quỹ. Điểm lỗi đơn lẻ không phải là tiền, mà là “tôi”
Đúng vậy, nhưng ít nhất giờ đây các liên kết Compiler Explorer sẽ chỉ hỏng khi Compiler Explorer biến mất, chứ không hỏng trước đó
Tôi cho rằng những liên kết Compiler Explorer đáng được tồn tại lâu dài nhất là các liên kết trong báo cáo lỗi
Vì tiện nên có thể liên kết đến Compiler Explorer trong báo cáo lỗi, nhưng tôi cũng đưa mã vào chính báo cáo và ghi rõ trình biên dịch cùng phiên bản đã dùng để tái hiện lỗi
Tôi không kỳ vọng Compiler Explorer sẽ sớm biến mất, nhưng làm báo cáo lỗi theo kiểu tự đủ nội dung như vậy thì ngay cả trong trường hợp đó cũng được bảo vệ
Nhờ định lý không ẩn giấu, thông tin sẽ còn mãi mãi ;)
Có lẽ không có cách nào nhờ ai đó trong nội bộ Google truy vấn cơ sở dữ liệu để tìm tất cả liên kết rút gọn trỏ đến godbolt.org
Duy trì tên miền thì tốn tiền, nên tôi không hiểu URL có thể tồn tại mãi mãi bằng cách nào
Tôi tự hỏi liệu cái chết của URL có khi lại là điều tốt hay không. Nhân loại sẽ nỗ lực đặc biệt để giữ lại những thứ tốt đẹp, còn phần còn lại đi vào bộ thu gom rác của lịch sử
Các nhà sử học có lẽ còn mong có nhiều rác rưởi hơn trong lịch sử
Vì nhờ đó họ có thể có thêm nhiều hiểu biết về đời sống “thật”, chứ không chỉ những phần từng được cho là đáng bảo tồn
Nếu có thể du hành thời gian, hẳn sẽ thú vị khi xem các nhà sử học một nghìn năm sau nhìn lại thời đại của chúng ta ra sao, khi phương tiện số mục ruỗng dần và rất nhiều thông tin biến mất không dấu vết
Đồng ý. Trước đây tôi từng viết vài suy nghĩ liên quan ở đây: https://boehs.org/node/internet-evanescence