3 điểm bởi GN⁺ 2024-12-07 | 2 bình luận | Chia sẻ qua WhatsApp
  • everyuuid.com là một trang dạng danh sách đơn giản hiển thị song song chỉ mục số và chuỗi UUID
  • Mỗi mục gồm một số dài được đệm bằng 0, chỉ mục, và ở dòng tiếp theo là UUID có dấu gạch nối
  • Chuỗi UUID tuân theo định dạng UUID V4, trong đó nhóm thứ ba bắt đầu bằng 4, và hiển thị các giá trị như 497dcba3-ecbf-4587-a2dd-5eb0665e6880
  • Phần nội dung không có giải thích về cách tạo, cách sử dụng, API hay mã nguồn, nên gần giống với việc xem chính danh sách
  • Phạm vi đã xác nhận là từ 0 đến 49, và thông tin thực chất của trang tập trung vào tiêu đề cùng danh sách UUID

Cấu trúc hiển thị số và UUID song song

  • Tiêu đề là Every UUID V4
  • Nội dung gồm danh sách lặp lại các mục số và chuỗi UUID
  • Phạm vi được tóm tắt là từ 0 đến 49

Cách các mục được hiển thị

  • Mỗi mục có cấu trúc hai dòng
    • Dòng đầu: một chuỗi dài các ký tự 0 kèm theo số chỉ mục ở phía sau
    • Dòng thứ hai: chuỗi UUID được phân tách bằng dấu gạch nối
  • Ví dụ phần đầu như sau
    • 000000000000000000000000000000000000 0
    • 497dcba3-ecbf-4587-a2dd-5eb0665e6880
  • Mục cuối cùng được cung cấp như sau
    • 00000000000000000000000000000000000 49
    • 08716598-71f7-4e8b-9fff-e36d2c5d21fe

Một trang gần với danh sách dữ liệu hơn là phần giải thích

  • Các chuỗi UUID sử dụng định dạng ký hiệu UUID được phân tách bằng dấu gạch nối
  • Không có giải thích về nguyên lý tạo UUID, tiêu chí sắp xếp, phạm vi đầy đủ, chức năng tìm kiếm, giấy phép hay cách triển khai
  • Chỉ cung cấp danh sách dữ liệu mà không có phần giải thích kỹ thuật hay hướng dẫn sử dụng

2 bình luận

 
nemorize 2024-12-13

Câu xúc phạm nhất mà tôi có thể nghĩ ra bằng leetspeak/hexspeak là câu này:
fe11a710-babe-4150-ace5-b19b1accd1cc
(Vâng, đó là một UUID hợp lệ)
(Tôi thật sự xin lỗi)

ồ... 👀

 
GN⁺ 2024-12-07
Ý kiến trên Hacker News
  • Điều ấn tượng nhất là tính năng tìm kiếm thực sự hoạt động. Như mọi màn ảo thuật hay, sau khi nghe giải thích thì nó cũng trông cực kỳ đơn giản
    Bài viết giải thích cách dự án hoạt động cho những ai tò mò: https://eieio.games/blog/writing-down-every-uuid/
    Ban đầu tôi chỉ thử tìm UUID chính xác, nhưng còn ngạc nhiên hơn khi biết nó hỗ trợ cả tìm kiếm toàn văn

    • Rất vui vì thủ thuật đó tạo cảm giác như ảo thuật. Khi nhận ra điều này là khả thi, tôi cũng vừa ngạc nhiên vừa thích thú, nhưng không chắc người khác có cảm thấy như vậy không
      Tất nhiên tôi cũng tự hào vì nó mang lại nhiều tính thực dụng đến thế. Cuối cùng cũng có thể tìm và dùng đúng UUID vừa khít với nhu cầu
    • Đây là một ví dụ hay cho nhận xét của Teller rằng “ảo thuật đôi khi chỉ là việc ai đó dành cho một việc nào đó nhiều thời gian hơn rất nhiều so với mức mà người ta có thể kỳ vọng một cách hợp lý”
    • Phần giải thích về tìm kiếm toàn văn thông minh hơn một chút so với tôi dự đoán ban đầu. Lúc đầu tôi nghĩ nó tạo UUID cho đến khi có một UUID khớp với hướng tìm kiếm của nút next/prev, nhưng thực ra là tạo ra nhiều kết quả khả dĩ rồi chọn kết quả tốt nhất trong số đó
      Tôi đoán vậy vì mỗi lần di chuyển tới lui trong kết quả tìm kiếm lại thấy kết quả khác nhau, nhưng cũng tò mò không biết thực tế nó tạo ra bao nhiêu cái
    • Tìm kiếm toàn văn ban đầu trông như tìm theo thứ tự, nhưng thực tế không phải vậy nên hơi dễ gây nhầm lẫn. Sau khi bấm “next” vài lần rồi bấm “prev” đúng bằng số lần đó, không nhất thiết sẽ quay lại UUID ban đầu
      Dù vậy đây vẫn có vẻ là một thủ thuật khá hay
    • Cách tìm kiếm này rất giống một phương pháp phổ biến để tạo bộ kiểm tra chính tả ngây thơ. Khi có đầu vào, nó tạo ra mọi kết quả khớp khả dĩ có thể chứa đầu vào đó
      Nói cách khác, không phải tìm trong kho ngữ liệu, mà là dùng đầu vào để tạo chỉ mục của kho ngữ liệu. Ở đây là danh sách UUID, còn trong bộ kiểm tra chính tả là danh sách từ trong từ điển
  • Có vẻ hacker nào đó đã làm rò rỉ toàn bộ UUID
    Phải kiểm tra xem UUID của tôi có nằm trong danh sách bị lộ không

    • Đây là vụ hack lớn nhất kể từ khi mọi mã PIN ATM bị rò rỉ: https://pastebin.com/SmJRB8eQ
    • Nếu báo chuyện này cho bộ phận bảo mật thì chắc chắn họ sẽ lao vào ngay
    • Mong chờ dịch vụ “havemyuuidsbeenpwned.com”
    • 10b82756-f8b4-4fee-a508-adeadbeef5eb
      Hết cách rồi, đến lúc format thôi
    • Công việc ở công ty hiện đang trong tình trạng thế này nên tôi hoàn toàn không có thời gian giảm thiểu vụ rò rỉ này trong bảo mật dữ liệu cá nhân. Chính thức bỏ cuộc
  • Rất hữu ích. Nếu quên UUID thì tôi sẽ tham khảo. Tôi cũng luôn dùng trang này khi nhớ private key Bitcoin: https://privatekeys.pw/keys/bitcoin/1

    • Khóa ngẫu nhiên: số dư 0
      Khóa thật: số dư giờ cũng là 0
    • Tôi không biết là người ta tạo khóa BTC yếu để cho vui. Một số chắc cũng được dùng làm bẫy nhử bot
    • Chắc chắn cũng sẽ có người tìm private key thật và có khả năng làm lộ nó
    • Tham khảo thêm cái này: https://keys.lol/
  • Thỉnh thoảng tạo UUID xong mà không dùng vào đâu thì tôi lại thấy hơi có lỗi. Cảm giác như đã lãng phí

    • Bạn không phải người duy nhất cảm thấy vậy: https://wasteaguid.info/
    • UUID có rất nhiều, nên bằng cách không ghi nó ở đâu cả, thực ra bạn đang tiết kiệm một tài nguyên còn khan hiếm hơn
    • Thế bạn thấy có lỗi đến mức nào với những UUID chưa từng được tạo ra nên thậm chí còn chưa được sinh ra?
    • Dữ liệu clickstream của công ty tôi có cột event_uuid, là dạng kết hợp của UUID, số nguyên lớn, số tài khoản và khoảng 10 định danh khác
      Khi không biết phải join bằng cột nào thì việc join trở nên cực kỳ tiện
    • Trước đây tôi từng dùng SELECT TOP 1 ... ORDER BY NEWID() để chọn một bản ghi trong bảng có hàng triệu dòng
      Hàng triệu UUID đã được tạo ra, và một trong số đó tình cờ là giá trị thấp nhất nên bản ghi liên kết với nó được trả về. Quá lãng phí
  • Phần “trình duyệt không muốn render một cửa sổ cao hơn một nghìn tỷ nghìn tỷ pixel, nên tôi phải tự xử lý cuộn và render” thật thú vị. Khi thực sự thử những thứ như vậy thì khá thất vọng, còn chẳng đến gần mức một nghìn tỷ pixel
    5 năm trước khi làm ở Fastmail, có khách hàng dùng IE chứa khoảng 200.000 email trong hộp thư khiến thanh cuộn bị hỏng, nên tôi đã kiểm tra các giới hạn như sau; vài cái tôi vừa kiểm tra lại
    Firefox trước đây bỏ qua các khai báo được diễn giải thành giá trị lớn hơn 17.895.697 pixel. Giờ nó clamp tại điểm đó nhưng có chênh khoảng 3 pixel, nên chưa rõ ngay chính xác chuyện gì đang xảy ra
    IE bỏ qua các khai báo được diễn giải thành 10.737.418,23 pixel trở lên. WebKit clamp giá trị ở khoảng 2²⁵, tức gần 33.554.432 pixel
    Chromium trong lần thử trước đây giống WebKit, nhưng hiện clamp ở khoảng 22.360.882 pixel. Hiện tôi đang dùng màn hình tỉ lệ 1,5x nên 2²⁵ có thể liên quan đến pixel thiết bị, nhưng lúc thử lần đầu hình như tôi dùng màn hình 2x
    Tôi cũng có bài viết chi tiết hơn kèm liên kết mã nguồn liên quan: https://news.ycombinator.com/item?id=34299569

    • Hay đấy. Khi viết bài tôi đã cố tìm một danh sách tương đối mới về chiều cao tối đa của trình duyệt. Không biết tôi có thể liên kết bình luận này trong phần cập nhật không
      Tôi cũng rất tò mò các con số đó được quyết định như thế nào, và nếu không có giới hạn thì những gì sẽ bắt đầu hỏng. Các hành vi kỳ lạ quanh clientHeight có thể là gợi ý cho chuyện đó
    • Chiều rộng phần tử cũng có giới hạn tương tự. Gần đây tôi phát hiện ra khi cố đặt chiều rộng là 45678910px: https://thewisenerd.com/works/45678910px.html
  • Muốn công bố gói npm mới tên get-uuid. Bên trong nó gọi everyuuid.com, chọn ngẫu nhiên một số dòng rồi trả về UUID đó

    • Ý tưởng tuyệt vời. Tôi cũng sẽ tạo một gói npm dùng gói đó để trả về GUID đã loại bỏ dấu - giữa các con số. Tái sử dụng mã muôn năm
    • Mong rằng khả năng tương thích API của thư viện chỉ bị phá vỡ tối đa 5 lần mỗi tháng. Nhiều hơn thế thì quá nhiều
      Và hãy chờ ngày tôi nhận ra gói của bạn không làm đúng chính xác thứ tôi muốn rồi fork nó nhé
    • Sẽ còn tốt hơn nếu AI chọn giúp các UUID trông đẹp về mặt thẩm mỹ. Nếu muốn tôi có thể gửi PR
    • Có thể thêm cả hàm kiểm tra UUID có tồn tại không không?
  • Làm tôi nhớ đến https://libraryofbabel.info/. Giờ có vẻ đã sập, nên có thể thử Archive: https://web.archive.org/web/20241112121646/https://libraryof...
    Đây là một triển khai thú vị lấy cảm hứng từ truyện ngắn https://en.wikipedia.org/wiki/The_Library_of_Babel, và nói rằng nó “chứa mọi trang 3200 ký tự hiện có thể có”. Tuy nhiên do bộ ký tự bị giới hạn và không có dấu gạch nối, nên không thể tìm thấy các UUID này

    • Cũng có một biến thể là A Short Stay in Hell (2009) của Steven L. Peck
      Nếu hiểu được những con số cực lớn thì đây là một tác phẩm đọc vừa thú vị vừa đáng sợ
  • Tôi tưởng đây sẽ là danh sách tất cả tên miền .com là UUID hợp lệ. Tự nhiên tò mò không biết thực tế có bao nhiêu tên miền như vậy
    Cập nhật: đã có người chia sẻ trong bình luận khác: https://news.ycombinator.com/item?id=42342653

  • Công nghệ nén đã tiến bộ đến mức giờ ta có thể duyệt một trang web hơn 340 undecillion byte
    Chúng ta thật sự đang sống trong một thời đại kỳ diệu

    • Gần như chắc chắn đây là kỷ lục mới về điểm Weissman
    • Chẳng có gì to tát. Vài năm trước, các tiệm bánh của tôi trong Cookie Clicker đã sản xuất ở mức undecillion ngon lành
  • Thật ngạc nhiên khi một website chứa sẵn hơn một màn hình nội dung cùng lúc mà khi cuộn lại không hiện hoạt ảnh tải vài giây
    Không biết các nhà phát triển ứng dụng web hiện đại có thể tận dụng công nghệ này bằng cách nào đó không

    • Hoàn toàn đồng ý. Tôi cũng lập tức nghĩ “wow, nhanh, mượt và phản hồi tốt!”
      Thật vô lý khi phần cứng máy tính đã nhanh hơn 1000 lần so với năm 1995, 30 năm trước, nhưng phần mềm thì phình to đến mức vẫn chậm hơn
      Video liên quan: “Will Software Stop Getting Slower?” Jonathan Blow
      https://www.youtube.com/watch?v=4ka549NNdDk