Nhảy tới nội dung

2024-07-27

SQLite: Nhanh hơn 35% so với hệ thống tệp

  • SQLite đọc và ghi các blob nhỏ (ví dụ: hình ảnh thu nhỏ) nhanh hơn 35% so với việc sử dụng các tệp riêng lẻ trên đĩa, và sử dụng ít hơn khoảng 20% không gian đĩa.
  • Hiệu suất được cho là nhờ vào việc giảm số lượng các lệnh gọi hệ thống open() và close() và việc đóng gói dữ liệu chặt chẽ hơn, với hiệu suất dự kiến sẽ cải thiện trong các phiên bản tương lai.
  • Kiểm tra cho thấy SQLite thường vượt trội hơn so với việc truy xuất tệp trực tiếp, đặc biệt là trên Windows khi phần mềm chống virus được kích hoạt, mặc dù hiệu suất có thể thay đổi tùy thuộc vào phần cứng và hệ điều hành.

phản ứng

  • SQLite nhanh hơn 35% so với các hệ thống tệp truyền thống do ít cuộc gọi hệ thống mở/đóng hơn và không cần kiểm tra thuộc tính hoặc siêu dữ liệu của hệ thống tệp.
  • Hiệu suất tăng cường này đặc biệt đáng kể trên Windows, nơi các cuộc gọi hệ thống tệp vốn dĩ chậm hơn.
  • Mặc dù có một số hạn chế, chẳng hạn như giới hạn blob tối đa 2GB và những thách thức với dữ liệu phân cấp, tốc độ và sự đơn giản của SQLite khiến nó trở nên có lợi cho việc lưu trữ nhật ký và các dữ liệu khác.

Hướng dẫn Lập trình Module Nhân Linux

  • Cuốn Hướng dẫn Lập trình Module Kernel Linux cung cấp một giới thiệu toàn diện về việc tạo và quản lý các module kernel, là các đoạn mã có thể tải động nhằm tăng cường khả năng của kernel mà không cần khởi động lại.
  • Những công cụ và lệnh quan trọng để làm việc với các module kernel bao gồm modprobe, insmod, depmod, lsmod, và cat /proc/modules.
  • Cuốn hướng dẫn bao gồm các chủ đề thiết yếu như khởi tạo và dọn dẹp module, xử lý các đối số dòng lệnh, quản lý trình điều khiển thiết bị, tương tác với các hệ thống tệp /procsysfs, và tránh các cạm bẫy thường gặp trong lập trình kernel.

phản ứng

  • Chương trình Hướng dẫn Lập trình Module Kernel Linux nhấn mạnh việc sử dụng QEMU cho việc hack kernel và đề xuất cập nhật các sách về trình điều khiển thiết bị Linux.
  • Greg KH xác nhận sẽ không có ấn bản thứ 4 của cuốn sách Linux Device Drivers, gây ra các cuộc thảo luận về các tài nguyên thay thế như "The Linux Memory Manager" và "Linux Insides."
  • Người dùng đã chia sẻ kinh nghiệm với QEMU để gỡ lỗi và bộ kiểm tra WireGuard cho phát triển mô-đun kernel, nhấn mạnh tầm quan trọng của việc xem xét của con người trong việc viết lách.

Toà án đóng lỗ hổng cho phép liên bang lục soát điện thoại của bạn tại biên giới

  • Thẩm phán liên bang đã phán quyết rằng Cơ quan Hải quan và Bảo vệ Biên giới (CBP) không thể khám xét các thiết bị điện tử tại biên giới mà không có lệnh, giải quyết một lỗ hổng trong Tu chính án thứ Tư.
  • Thẩm phán Nina Morrison cho rằng việc khám xét điện thoại di động là "không thường lệ" và cần có lý do xác đáng cũng như lệnh khám xét, so sánh chúng với việc khám xét thân thể do tác động lớn đến quyền riêng tư.
  • Phán quyết này, được những người ủng hộ tự do dân sự ủng hộ, được coi là quan trọng đối với tự do báo chí và quyền riêng tư, theo sau các quyết định tương tự ở các khu vực và quận khác.

phản ứng

  • Bộ Tòa án Quận ở New York đã phán quyết rằng việc khám xét điện thoại di động không có lệnh tại biên giới là "không thường lệ" và xâm phạm hơn so với các loại khám xét khác, so sánh chúng với việc khám xét lột đồ.
  • Quyết định này không phải là tiền lệ ràng buộc và trái ngược với các phán quyết từ các Tòa án Vòng khác, cho thấy khả năng Tòa án Tối cao sẽ giải quyết vấn đề do sự "chia rẽ giữa các vòng".
  • Phán quyết này phản ánh các cuộc tranh luận đang diễn ra về quyền riêng tư và quyền lực của chính phủ, đặc biệt là trong bối cảnh an ninh biên giới và Tu chính án thứ Tư.

Ban đầu là Dòng lệnh (1999)

  • Tiểu luận "In the Beginning was the Command Line" của Neal Stephenson khám phá sự phát triển của các hệ điều hành (OS) và động lực thị trường của chúng, tập trung vào Apple và Microsoft.
  • Microsoft đạt được sự thống trị thị trường bằng cách bán hệ điều hành như hàng tiêu dùng, nhấn mạnh sự tiện lợi và dễ sử dụng, điều này phù hợp với xu hướng văn hóa rộng lớn hơn coi trọng sự đơn giản hơn là phức tạp.
  • Mặc dù có sự xuất hiện của các lựa chọn thay thế vượt trội và miễn phí như Linux và BeOS, hầu hết người tiêu dùng vẫn ưa chuộng các sản phẩm quen thuộc của Microsoft, điều này nhấn mạnh sự ưa thích của xã hội đối với các trải nghiệm được trung gian hóa thông qua giao diện người dùng đồ họa (GUI).

phản ứng

  • Tiểu luận "In the Beginning Was the Command Line" (1999) của Neal Stephenson nêu bật những ưu điểm của Giao diện Dòng lệnh (CLI) so với Giao diện Đồ họa Người dùng (GUIs), nhấn mạnh sự ngắn gọn và dễ dàng trong giao tiếp của chúng.
  • Tiểu luận so sánh sự phát triển của các hệ điều hành với ô tô, nhấn mạnh sự ổn định và kiểm soát người dùng được cung cấp bởi các giao diện dòng lệnh (CLI) mặc dù giao diện đồ họa người dùng (GUI) phổ biến.
  • Điều này cũng đi sâu vào các tác động văn hóa và triết học của giao diện công nghệ, mang lại một góc nhìn rộng hơn về cách chúng ta tương tác với công nghệ.

Token TOTP trên cổ tay tôi với chiếc đồng hồ thông minh nhất

  • Sensor Watch đã phát hành một bo mạch logic thay thế mới cho chiếc Casio F-91W cổ điển, nâng cấp nó với bộ vi xử lý ARM Cortex M0+ trong khi vẫn giữ nguyên màn hình LCD, các nút bấm và loa piezo gốc.
  • Bo mạch nâng cấp có thể lập trình được, cho phép tùy chỉnh mặt đồng hồ và các ứng dụng tiện ích, bao gồm các tính năng như mã thông báo 2FA, đồng hồ đo tốc độ, đồng hồ thế giới và nhiều hơn nữa.
  • Chiếc đồng hồ này dễ dàng để hack, với một trình giả lập dựa trên wasm để thử nghiệm, và có sẵn tài liệu chi tiết cho những ai quan tâm đến việc chỉnh sửa hoặc tự tạo mặt đồng hồ của riêng mình.

phản ứng

  • Cuộc thảo luận trên Hacker News nêu bật việc sử dụng mã TOTP (Mật khẩu dùng một lần dựa trên thời gian) trên đồng hồ Casio, cụ thể là các mẫu F-91W và A158W, cho xác thực hai yếu tố (2FA).
  • Đề án bao gồm việc chỉnh sửa firmware của đồng hồ để hiển thị mã TOTP, với sự đóng góp từ cộng đồng nhằm nâng cao các tính năng như hiệu chỉnh người dùng và thậm chí tạo ra các trò chơi cho đồng hồ.
  • Những lo ngại được nêu ra về việc hiển thị mã TOTP trên đồng hồ, với một số người đề xuất các giải pháp thay thế như khóa phần cứng FIDO2 để bảo vệ tốt hơn chống lại các cuộc tấn công lừa đảo.

Linux Network Performance Ultimate Guide

  • Cuốn hướng dẫn cung cấp cái nhìn sâu sắc về tối ưu hóa hiệu suất mạng Linux, bao gồm các chủ đề từ ngăn xếp mạng đến các kỹ thuật xử lý gói tin nâng cao.
  • Những bước điều chỉnh chính bao gồm điều chỉnh kích thước bộ đệm vòng NIC, hợp nhất ngắt, liên kết IRQ, và sử dụng các công cụ như AF_PACKET, DPDK, và XDP để xử lý gói tin hiệu suất cao.
  • Giám sát và điều chỉnh các cài đặt mạng bằng các công cụ như ethtool, sysctlnetstat là cần thiết để duy trì hiệu suất tối ưu.

phản ứng

  • Cuốn "Hướng Dẫn Tối Ưu Hiệu Suất Mạng Linux Tối Thượng" là một tài liệu toàn diện về tối ưu hóa hiệu suất mạng sử dụng Linux, đặc biệt hữu ích cho những người làm việc với các mạng tốc độ cao.
  • Người dùng đã chia sẻ một câu chuyện thành công về việc xây dựng một mạng 10Gbps được mã hóa với chi phí hiệu quả bằng cách sử dụng phần cứng thương mại có sẵn (COTS) và Wireguard, giảm đáng kể chi phí so với các giải pháp phần cứng thương mại.
  • Thảo luận trong phần bình luận bao gồm các mẹo thực tế, chẳng hạn như điều chỉnh kích thước bộ đệm TCP, và các công cụ tự động điều chỉnh hiệu suất, như bpftune của Oracle.

Windows môi trường phục hồi và công cụ tạo USB khởi động trong 200kb

  • Windows Deployment Image Customization Kit là một công cụ dòng lệnh được thiết kế để tùy chỉnh và triển khai các hình ảnh Windows.
  • Giải pháp này cung cấp cho các chuyên gia CNTT và quản trị hệ thống một phương pháp bản địa để đơn giản hóa quy trình triển khai.
  • Hướng dẫn và thông tin bổ sung có sẵn trên các nền tảng như YouTube và tài liệu chính thức của Microsoft.

phản ứng

  • Một công cụ mới dựa trên shell để tạo môi trường khôi phục Windows và USB khởi động đã được phát hành, chỉ chiếm 200 kilobyte.
  • Được viết dưới dạng một tệp batch lớn với 3.085 dòng mã, công cụ này thể hiện sự cống hiến và hiệu quả ấn tượng, đặc biệt khi xét đến sự sẵn có của các ngôn ngữ kịch bản hiện đại hơn như PowerShell.
  • Đề án này được lấy cảm hứng từ clockworkmod recovery cho Android và nhằm sử dụng các lệnh "live-of-the-land", nghĩa là nó không có bất kỳ phụ thuộc nào và hoạt động hoàn toàn dưới môi trường Windows.

Những kẻ lừa đảo đã vượt qua xác minh email của Google để tạo tài khoản Workspace, truy cập

  • Google đã khắc phục một điểm yếu xác thực cho phép tội phạm bỏ qua xác minh email để tạo tài khoản Google Workspace và mạo danh chủ sở hữu tên miền.
  • Vấn đề đã được giải quyết trong vòng 72 giờ, và các biện pháp phát hiện bổ sung đã được triển khai để ngăn chặn lạm dụng trong tương lai.
  • Những kẻ tấn công nhằm mục đích giả mạo chủ sở hữu tên miền để sử dụng các dịch vụ của bên thứ ba, chứ không phải lạm dụng các dịch vụ của Google, và hoạt động độc hại liên quan đến vài nghìn tài khoản Workspace được tạo mà không cần xác minh tên miền.

phản ứng

  • Những kẻ tấn công đã vượt qua xác minh email của Google để tạo các tài khoản Workspace không được phép, dẫn đến các vi phạm bảo mật tiềm ẩn và các email chào mừng không mong muốn cho các tên miền chưa đăng ký.
  • Những tài khoản không được phép này đã được sử dụng để khai thác "Đăng nhập bằng Google" trên các trang web của bên thứ ba, gây khó khăn cho nạn nhân trong việc lấy lại tên miền của họ.
  • Vụ việc này nhấn mạnh những lỗ hổng trong hệ thống của Google và các rủi ro liên quan đến việc đăng nhập xã hội, kêu gọi cải tiến như xác minh DNS bắt buộc.

DDNS miễn phí với Cloudflare và một Cronjob

  • Đề án này cung cấp một giải pháp thay thế miễn phí cho các dịch vụ DNS động trả phí bằng cách tự động cập nhật các bản ghi DNS trên Cloudflare sử dụng tài khoản miễn phí và một cronjob.
  • Người dùng cần sao chép kho lưu trữ, tạo các tệp cấu hình (keys.jsonrecords.json), và thiết lập một cronjob hoặc bộ lập lịch tác vụ tương đương để chạy script theo các khoảng thời gian đều đặn.
  • Script cập nhật các bản ghi DNS trên Cloudflare với địa chỉ IP hiện tại của máy, làm cho nó trở thành một giải pháp tiết kiệm chi phí cho nhu cầu DNS động.

phản ứng

  • Một dự án trên GitHub cung cấp giải pháp DNS động (DDNS) miễn phí sử dụng Cloudflare và một công việc cron, thu hút sự quan tâm đáng kể từ cộng đồng công nghệ.
  • Người dùng thảo luận về ưu và nhược điểm của việc sử dụng Cloudflare cho DDNS, bao gồm các chiến thuật dụ dỗ và thay đổi tiềm năng cũng như các hạn chế như bắt buộc kết thúc TLS và giới hạn tải lên.
  • Những lựa chọn thay thế và các dự án tương tự được đề cập, chẳng hạn như sử dụng các đường hầm Cloudflare, Tailscale và các khách hàng DDNS khác, nhấn mạnh sự đa dạng của các giải pháp có sẵn để quản lý địa chỉ IP động.

Giới thiệu về Sách Phỏng vấn Học máy

  • Cuốn sách 'Giới thiệu về Phỏng vấn Học máy' cung cấp một hướng dẫn toàn diện về quy trình phỏng vấn ML, bao gồm các vai trò, loại hình công ty, định dạng phỏng vấn và các loại câu hỏi.
  • Bao gồm hơn 200 câu hỏi kiến thức và 30 câu hỏi mở, nhằm giúp cả ứng viên và nhà tuyển dụng hiểu và chuẩn bị cho các buổi phỏng vấn về học máy.
  • Được viết bởi Chip Huyen, người có nhiều kinh nghiệm với các cuộc phỏng vấn tại các công ty công nghệ lớn và các startup, cuốn sách tổng hợp những hiểu biết thực tiễn và chiến lược chuẩn bị.

phản ứng

  • Cuốn sách "Introduction to Machine Learning Interviews" của Huyen Chip đang được thảo luận, với những ý kiến trái chiều về hiệu quả của nó trong việc chuẩn bị cho các buổi phỏng vấn ML.
  • Một số người dùng cho rằng các câu hỏi trong sách dễ hơn so với các buổi phỏng vấn ML thực tế, và những người khác khuyến nghị cuốn sách "Deep Learning Interviews" vì nó hấp dẫn và đại diện hơn.
  • Có một cuộc tranh luận về sự liên quan của việc sử dụng các câu hỏi mẫu từ sách, với một số người ủng hộ việc tạo ra các dự án cá nhân hóa thay thế.

Sqlitefs: SQLite như một Hệ thống Tập tin

  • sqlite-fs cho phép người dùng Linux và MacOS gắn kết một tệp cơ sở dữ liệu SQLite như một hệ thống tệp thông thường, giúp thực hiện các thao tác tệp thông qua cơ sở dữ liệu.
  • Yêu cầu ngôn ngữ lập trình Rust mới nhất (≥ 1.38) và libfuse (Linux) hoặc osxfuse (MacOS) để hoạt động.
  • Hỗ trợ các thao tác tệp khác nhau như tạo, đọc, ghi, xóa tệp và thư mục, thay đổi thuộc tính, và xử lý khóa tệp, với việc xử lý lỗi nghiêm ngặt.

phản ứng

  • SQLiteFS là một dự án sử dụng SQLite như một hệ thống tệp, thu hút sự quan tâm nhờ cách tiếp cận độc đáo của nó đối với việc lưu trữ tệp.
  • Khái niệm này gợi nhớ đến dự án WinFS bị hủy bỏ của Microsoft, dự án mà nhằm sử dụng SQL Server như một hệ thống tệp.
  • Mặc dù có sự hài hước và các cuộc thảo luận lý thuyết, các ứng dụng thực tiễn như sử dụng SQLiteFS cho các hoạt động trong bộ nhớ hoặc bộ nhớ đệm đang được xem xét.

Oscar Zariski là một trong những người sáng lập hình học đại số hiện đại

  • Oscar Zariski (1899-1986) là một nhân vật then chốt trong hình học đại số hiện đại, được biết đến với cuốn sách có ảnh hưởng "Algebraic Surfaces" và những đóng góp quan trọng của ông cho lĩnh vực này.
  • Mặc dù bắt đầu sự nghiệp học thuật muộn hơn bình thường, Zariski vẫn hoạt động tích cực đến tận những năm tám mươi tuổi, với công trình đáng chú ý về các hàm holomorphic và một hành trình học thuật phong phú qua các tổ chức danh tiếng.
  • Một giai thoại thú vị từ cuộc đời ông bao gồm việc suýt bỏ lỡ đám cưới của chính mình vì quá mải mê với một bài toán, điều này cho thấy sự cống hiến mãnh liệt của ông đối với toán học.

phản ứng

  • Oscar Zariski được công nhận là một trong những người sáng lập hình học đại số hiện đại.
  • Người dùng đã chia sẻ những giai thoại và thảo luận về các chủ đề đa dạng, bao gồm sự cố hài hước của nhà toán học Kalle Väisälä và "yếu tố tưởng tượng," một thước đo thời gian dành cho thế giới thực so với thế giới tưởng tượng.
  • Cuộc trò chuyện cũng đi sâu vào các thảo luận lịch sử và chính trị, chẳng hạn như Cách mạng Nga và các cuộc tranh luận về chủ nghĩa cộng sản so với chủ nghĩa tư bản.

Bril: Một Ngôn Ngữ Trung Gian để Dạy về Trình Biên Dịch

  • Bril, Ngôn ngữ Trung gian Đỏ Lớn, được tạo ra để đơn giản hóa việc giảng dạy trình biên dịch bằng cách ưu tiên sự dễ sử dụng và đơn giản hơn là hiệu suất và kích thước mã.
  • Chương trình Bril là các tài liệu JSON, giúp chúng có thể truy cập bằng bất kỳ ngôn ngữ lập trình nào và dễ dàng chia sẻ.
  • Vũ trụ Bril đã mở rộng với sự đóng góp của sinh viên, bao gồm các công cụ và mở rộng ngôn ngữ, mặc dù dạng SSA (Static Single Assignment) của nó cần được cải thiện.

phản ứng

  • Bril là một ngôn ngữ trung gian (IL) được thiết kế để giảng dạy về trình biên dịch, phát triển bởi Đại học Cornell.
  • Thảo luận nhấn mạnh sự cần thiết phải làm lại dạng Static Single Assignment (SSA) của Bril và so sánh với các IL khác như ANF (A-Normal Form) và CPS (Continuation-Passing Style).
  • Vài người cho rằng các ngôn ngữ trung gian hiện có như LLVM là đủ cho mục đích giáo dục, trong khi những người khác nhấn mạnh cách tiếp cận độc đáo của Bril trong việc giảng dạy các khái niệm về trình biên dịch.

Trình biên dịch điều khiển

  • Loạt bài này nhằm lấp đầy khoảng trống trong tài liệu về việc sử dụng công cụ để biến các chương trình thành các tệp thực thi, tập trung vào các khái niệm cốt lõi thay vì dạy một ngôn ngữ hay cách viết một trình biên dịch.
  • Đoạn văn cung cấp các bước tái tạo sử dụng bintools và chế độ chi tiết của trình điều khiển (-v) để giúp người đọc khám phá vượt ra ngoài các ví dụ cơ bản, giả định một nền tảng Linux với các trình biên dịch gcc hoặc clang.
  • Loạt bài này được chia thành năm phần: Driver, cpp (trình tiền xử lý), cc (trình biên dịch), ld (trình liên kết), và Loader, cung cấp một cách tiếp cận có cấu trúc để hiểu quá trình biên dịch.

phản ứng

  • Đoạn bài viết cung cấp một phần giới thiệu xuất sắc về chuỗi công cụ C và C++, tập trung vào các nền tảng dựa trên Linux và ELF.
  • Những điểm làm rõ quan trọng bao gồm việc thư viện chuẩn C++ rộng hơn STL, và ::operator new() là một phần của runtime, không chỉ là một template.
  • Đoạn bài nên phân biệt rõ hơn giữa bộ nạp nhân hệ điều hành và bộ nạp động không gian người dùng.

Học về PCI-e: Trình điều khiển và DMA

  • Đoạn bài viết chi tiết về việc triển khai một trình điều khiển thiết bị PCI-e (Peripheral Component Interconnect Express) cơ bản, tập trung vào việc ánh xạ bộ nhớ và các hoạt động DMA (Direct Memory Access).
  • Giải thích việc tạo ra một struct pci_driver, thiết lập một thiết bị ký tự để tương tác với không gian người dùng, và việc sử dụng MSI (Message Signalled Interrupts) để xử lý các chuyển giao DMA không đồng bộ.
  • Đoạn viết này quan trọng vì cung cấp hướng dẫn thực tiễn về phát triển trình điều khiển thiết bị PCI-e, bao gồm các đoạn mã và tham chiếu đến tài liệu nhân, làm cho nó trở nên có giá trị đối với các kỹ sư phần mềm mới.

phản ứng

  • Cuộc thảo luận xoay quanh việc sử dụng FPGA (Mảng cổng lập trình được tại hiện trường) để xây dựng bộ điều hợp hiển thị, với trọng tâm là IP cứng PCI-e (Kết nối thành phần ngoại vi tốc độ cao).
  • Người ta khuyến nghị sử dụng các bảng FPGA giá cả phải chăng khác nhau, bao gồm Spartan 6, Artix, Screamer PCIe Squirrel và Litefury, hỗ trợ PCIe và đầu ra video kỹ thuật số.
  • Đoạn bài viết cũng nêu bật các tài nguyên và thiết kế để tạo ra các thẻ video và đề cập đến việc sử dụng tiềm năng của chế độ Displayport Alt và webcam loại UVC USB3 cho đầu ra video.