Simon Willison’s Weblog
Quoting Neurotica
- Slop là thứ tiêu tốn nhiều công sức của con người hơn mức cần thiết để sản xuất nó.
- Gửi đầu ra thô của Gemini không phải là sự thể hiện tự do sáng tạo.
- Hành động này không tôn trọng giá trị thời gian của người khác.
datasette-files 0.1a2
- Plugin mới cho phép tải lên file trực tiếp vào một instance của Datasette.
- Cấu hình cột mới sử dụng hệ thống column_types từ Datasette phiên bản 1.0a26.
- Thêm hook file_actions cho plugin, cho phép nhập file CSV/TSV đã tải lên vào một bảng.
- Giao diện người dùng cho phép tải lên nhiều file cùng lúc qua API JSON đã được tài liệu hóa.
- Thumbnail được tạo cho các file hình ảnh và lưu trữ trong bảng datasette_files_thumbnails nội bộ.
Quoting David Abram
- LLMs không thể giải quyết vấn đề hiểu hệ thống trong phát triển phần mềm.
- Việc kiểm tra lỗi và thiết kế kiến trúc chịu tải nặng vẫn là thách thức lớn.
- LLMs chỉ có thể gợi ý mã và hỗ trợ công việc tách biệt, nhưng thiếu ngữ cảnh.
- Các quyết định quan trọng trong phát triển phần mềm vẫn phụ thuộc vào con người.
- Giá trị của nhà phát triển nằm ở khả năng hiểu và quyết định cái gì nên tồn tại và tại sao.
Beats now have notes
- Vào tháng trước, tôi đã thêm tính năng “beats” vào blog, kéo nội dung từ các nguồn bên ngoài.
- Các beats này thường có số lượng lớn hơn các bài viết thường ngày.
- Tôi đã bổ sung khả năng chú thích cho beats với một “ghi chú” hiển thị cùng nội dung.
- Tính năng mới này có mặt trên trang chủ, tìm kiếm và các trang lưu trữ khác.
- Tôi đã cập nhật Atom feed tại /atom/everything/ để bao gồm các beats có ghi chú.
Starlette 1.0 skill
- Starlette 1.0 là một framework ASGI nhẹ, chuyên xây dựng ứng dụng web.
- Hướng dẫn cung cấp cách tạo ứng dụng có tính năng quản lý công việc với các dự án, nhiệm vụ, bình luận và nhãn.
- Demo minh họa khả năng xử lý routing, templating (Jinja2), thao tác cơ sở dữ liệu bất đồng bộ (aiosqlite), và cập nhật thời gian thực.
- Starlette 1.0 cho phép phát triển ứng dụng linh hoạt và hiệu quả.
PCGamer Article Performance Audit
- Báo cáo kiểm toán hiệu suất của bài viết PCGamer vào tháng 3 năm 2026 chỉ ra sự bloat trang nghiêm, với 82% lưu lượng mạng và byte được chuyển giao từ ad-tech, tracking và các script quảng cáo tự động.
- Nội dung chính chỉ khoảng 10-15 KB văn bản và một vài hình ảnh (~150 KB tổng cộng).
- Trang web kích hoạt hơn 431 yêu cầu mạng và 5.5 MB dữ liệu chuyển giao (18.8 MB giải mã) trong vòng 60 giây.
- Lưu lượng dữ liệu tăng lên đến hơn 200 MB trong Firefox do video tự động phát.
- Stuart Breckenridge chỉ trích bài viết PC Gamer Recommends RSS Readers với dung lượng 37MB, vì sự tải xuống không ngừng và sự lãng phí dung lượng lên tới hàng trăm MB do quảng cáo video tự động phát.
JavaScript Sandboxing Research
- Nghiên cứu phân tích các tuỳ chọn sandboxing JavaScript để chạy mã không đáng tin cậy.
- Các phương pháp chính được so sánh bao gồm worker_threads, node:vm và Permission Model trong Node.js.
- Nghiên cứu cũng xem xét các gói npm nổi bật như isolated-vm và vm2.
- Các động cơ thay thế như quickjs-emscripten cũng được phân tích trong nghiên cứu.
- Claude Code đã mở rộng chủ đề so sánh các công nghệ như QuickJS-NG, ShadowRealm và Deno Workers.
- Mục tiêu là khám phá khả năng của worker_threads trong việc chạy JavaScript trong sandbox.
- Nghiên cứu hỗ trợ việc hiểu sâu hơn về các tùy chọn sandboxing hiện có và tính khả thi của chúng.
DNS Lookup
- Cloudflare cung cấp dịch vụ DNS 1.1.1.1 cùng với 1.1.1.2 và 1.1.1.3 để chặn malware và nội dung người lớn (2026).
- Dịch vụ DNS này có API JSON hỗ trợ CORS.
- Claude Code đã xây dựng một giao diện người dùng cho việc thực hiện các truy vấn DNS với ba trình phân giải này.
Merge State Visualizer
- Bram Cohen trình bày tầm nhìn tương lai về version control bằng cách sử dụng CRDTs.
- Bài viết có 470 dòng mã Python.
- Tác giả sử dụng Claude để giải thích mã Python này.
- Claude sử dụng Pyodide để xây dựng một giao diện người dùng tương tác giúp xem cách các thuật toán hoạt động.
SQLite Tags Benchmark: Comparing 5 Tagging Strategies
- Nghiên cứu so sánh năm chiến lược gán thẻ (tagging) trong SQLite với 100.000 hàng và 100 thẻ, trung bình mỗi hàng có 6,5 thẻ.
- Các phương pháp được lập chỉ mục như bảng tra cứu vật chất (materialized lookup tables) trên JSON và các bảng nhiều-nhiều (many-to-many) truyền thống vượt trội hơn, xử lý truy vấn đơn-tag dưới 1,5 mili giây.
- Các giải pháp sử dụng JSON thô và LIKE chậm hơn nhiều so với các phương pháp đã nêu.
- Các bảng nhiều-nhiều truyền thống đứng đầu về hiệu suất, trong khi FTS5 về nhì trong sự so sánh.
- Quét toàn bảng với truy vấn LIKE hoạt động tốt hơn dự kiến, nhưng quét toàn bảng với mảng JSON và json_each() lại chậm hơn nhiều.
datasette 1.0a26
- Datasette 1.0a26 ra mắt vào ngày 18 tháng 3 năm 2026.
- Hệ thống mới cho phép gán loại cột ngữ nghĩa.
- Các loại cột tích hợp bao gồm url, email và json.
- Plugins có thể đăng ký thêm các loại cột qua hook register_column_types().
The Developing Dev
The Creator of Kubernetes On Building Kubernetes
- Brendan Burns là đồng sáng lập Kubernetes và hiện là CVP tại Microsoft, làm việc trên Azure.
- Khó khăn lớn nhất ban đầu là thuyết phục lãnh đạo Google về tầm quan trọng của Kubernetes (00:01:09).
- Lập luận chính bao gồm việc tạo ảnh hưởng trong ngành công nghệ, không chỉ phát hành white paper (00:01:45).
- Duy trì sự phát triển phần mềm đáng tin cậy cần có hệ thống tự động hóa cho ứng dụng (00:03:14).
- Open Source sẽ thu hút nhiều người dùng hơn nếu không bị giới hạn trên một nền tảng duy nhất (00:04:25).
- Cạnh tranh với các nền tảng khác là lý do cốt yếu để phát triển Kubernetes như một dự án mở (00:04:51).
Krebs on Security
‘CanisterWorm’ Springs Wiper Attack Targeting Iran
- Nhóm tội phạm mạng TeamPCP thực hiện một chiến dịch tấn công và tống tiền tại Iran, sử dụng worm để xóa dữ liệu trên các hệ thống nhiễm bệnh (Aikido.dev).
- Worm CanisterWorm lan truyền qua các dịch vụ đám mây không được bảo vệ tốt, nhắm đến các hệ thống có múi giờ Iran hoặc ngôn ngữ mặc định là Farsi.
- TeamPCP bắt đầu hoạt động vào tháng 12 năm 2025, khai thác các môi trường đám mây doanh nghiệp, đặc biệt là các API Docker, cụm Kubernetes, và máy chủ Redis.
- Nhóm này sử dụng kỹ thuật tấn công tự động hóa quy mô lớn và tập trung vào cơ sở hạ tầng đám mây, với 97% số máy chủ bị xâm phạm nằm trên Azure (61%) và AWS (36%).
- Ngày 19 tháng 3, TeamPCP thực hiện tấn công chuỗi cung ứng vào Trivy của Aqua Security, chèn mã độc vào các bản phát hành chính thức trên GitHub (Aqua Security).
- TeamPCP đã sử dụng hạ tầng tương tự trong cuộc tấn công Trivy để triển khai payload độc hại mới có khả năng thực hiện cuộc tấn công wiping tại Iran.
- Nếu mục tiêu có quyền truy cập vào cụm Kubernetes, worm sẽ xóa dữ liệu trên mọi nút của cụm đó; nếu không, nó chỉ xóa dữ liệu trên máy cục bộ.
- Nhóm được cho là đã khoe khoang về các vụ tấn công và thành tích trong một nhóm trên Telegram, tuyên bố đã đánh cắp một lượng lớn dữ liệu nhạy cảm từ các công ty lớn.
- Sự lan truyền của mã độc có thể giữ cho các gói mã độc hiện diện nổi bật trong tìm kiếm trên GitHub thông qua các bài viết rác (Risky Business).
- Cuộc tấn công này là sự kiện lớn thứ hai liên quan đến Trivy trong vòng hai tháng qua; sự kiện đầu tiên diễn ra vào cuối tháng 2 với cuộc tấn công HackerBot-Claw.
Daring Fireball
[Sponsor] npx workos: From Auth Integration to Environment Management, Zero ClickOps
- Chỉ cần chạy một lệnh, CLI của WorkOS xử lý mọi thứ liên quan đến việc tích hợp AuthKit.
- CLI tự động phát hiện framework, cài đặt SDK phù hợp và tạo mã tích hợp.
- Thời gian tích hợp AuthKit mất khoảng 2 phút với lệnh:
npx workos@latest install.
- CLI hỗ trợ nhiều framework như Next.js, React, SvelteKit, Node.js, và Ruby on Rails (xem chi tiết về các framework hỗ trợ).
- CLI mở trình duyệt để xác thực tài khoản WorkOS và cấu hình dashboard tự động.
- CLI tạo các route, middleware và thiết lập biến môi trường cần thiết tự động.
- CLI có thể vượt qua các sự cố thông qua chế độ gỡ lỗi với lệnh:
npx workos@latest install --debug.
- Nếu CLI không phát hiện framework, người dùng có thể sử dụng cờ
--integration để chỉ định thủ công.
Gasoline Prices Around the World
- Giá xăng trung bình toàn cầu là 1.37 USD mỗi lít (16-Mar-2026).
- Giá xăng chênh lệch giữa các quốc gia, thường cao ở các quốc gia giàu và thấp ở các quốc gia nghèo, cũng như các nước xuất khẩu dầu.
- Mỹ là trường hợp ngoại lệ với giá xăng thấp mặc dù là quốc gia phát triển.
- Sự khác biệt giá cả do các loại thuế và trợ cấp đối với xăng dầu của từng quốc gia.
- Tất cả các quốc gia đều tiếp cận giá dầu trên thị trường quốc tế nhưng áp dụng các thuế khác nhau.
- Giá xăng bán lẻ vì vậy khác nhau giữa các quốc gia.
- Một số nước cập nhật giá xăng hàng tuần, trong khi những nước khác cập nhật hàng tháng do thị trường nhiên liệu được quản lý.
WWDC 2026: June 8–12
- Apple tổ chức Hội nghị Các Nhà Phát Triển Toàn Cầu (WWDC) trực tuyến từ 8-12 tháng 6 năm 2026.
- Hội nghị dành cho nhà phát triển toàn cầu, sẽ có sự kiện trực tiếp tại Apple Park vào ngày 8 tháng 6.
- WWDC26 sẽ giới thiệu các cập nhật về AI và phần mềm, công cụ phát triển mới.
- Keynote và Platforms State of the Union diễn ra vào ngày 8 tháng 6.
- Hội nghị bao gồm hơn 100 buổi video và các phòng lab tương tác.
- Nhà phát triển có thể kết nối với kỹ sư và nhà thiết kế của Apple.
- Apple hỗ trợ sinh viên phát triển thông qua Thách Thức Sinh Viên Swift, thông báo kết quả vào ngày 26 tháng 3.
- 50 sinh viên xuất sắc sẽ được mời tham gia trải nghiệm ba ngày tại Cupertino.
- Thông tin thêm về hội nghị sẽ được đăng tải trên app, website và kênh YouTube của Apple.
- Hội nghị có thể theo dõi trên LinkedIn và WeChat, cũng như bilibili tại Trung Quốc.
From the DF Archive, a Decade Ago: ‘The Industry Is Fucked Up’
- Không có khả năng kiểm soát quảng cáo từ các ad exchange trước, chỉ nhận quảng cáo được cung cấp.
- Đã đặt chính sách ngăn chặn quảng cáo tự động, nhưng vẫn xảy ra vi phạm, kể cả từ Google.
- Báo cáo và yêu cầu tắt quảng cáo không tốt là một quá trình khó khăn và kéo dài.
- Nhóm kỹ thuật đang phát triển tiện ích mở rộng để xác định quảng cáo “xấu” nhằm cải thiện thông tin và hỗ trợ ad network.
- Quảng cáo di động trả ít tiền hơn quảng cáo desktop, mặc dù chúng dễ gây chú ý hơn.
- Khi người dùng chuyển sang di động, doanh thu giảm, dẫn đến việc gia tăng số lượng quảng cáo.
- Diện tích màn hình ít hơn trên di động nhưng sự tập trung của người dùng cao hơn, giá quảng cáo nên cao hơn hoặc ít nhất không thấp hơn quảng cáo desktop.
The HTML Review: Issue 05
- HTML Review là một tạp chí văn học hàng năm được xuất bản trên web.
- Carecore dành cho tất cả nhân viên chăm sóc, bất kể lý do.
- Nhân vật chính mr mister trong “les aventures de mr mister” là một nhân vật thân thiện trong CSS.
- “Cursor Park” thể hiện ý tưởng về nơi trú ẩn trên mạng.
- Intersymmetric: Connect chuyển đổi khảo sát xã hội thành giám sát, ghi lại và kiểm soát các chi tiết cuộc sống.
- “Singing Light” đề cập đến sự mỏng manh của ranh giới giữa các thế giới trong đêm cực.
- “Kp’ọjọ kp’ọjọ” truyền tải tình cảm và sự thay đổi trong ngôn ngữ Itsẹkiri từ bí mật sang tình thương.
- “Photographic Memory” miêu tả cảm giác nhìn qua một cửa sổ.
- “Afterimages” phản ánh di sản của ký ức.
- “Consumables” chỉ sự thất vọng trong cuộc sống hiện đại qua những trải nghiệm hàng ngày.
- “milkfish” là một bức thư tình, ca ngợi sự kiên trì và những thú vui khó khăn.
- “Meanders” bắt đầu hành trình vẽ một bản đồ.
Pluralistic: Daily links from Cory Doctorow
Pluralistic: Understaffing as a form of enshittification (23 Mar 2026)
- Enshittification là quá trình chuyển giá trị từ người lao động, bệnh nhân và người tiêu dùng sang nhà đầu tư.
- Digital tools cho phép doanh nghiệp điều chỉnh giá dựa trên dữ liệu giám sát thương mại.
- “Twiddling” là kỹ thuật sử dụng để dịch chuyển giá trị từ người sử dụng sang khách hàng doanh nghiệp và cuối cùng về tay cổ đông.
- Sự độc quyền cho phép các doanh nghiệp tính phí cao và trả lương thấp, như trong các cửa hàng dollar.
- Cửa hàng dollar khai thác sức mua của consumer trong những khu vực thiếu thốn cửa hàng thực phẩm và cạnh tranh lao động.
- CVS, một chuỗi hiệu thuốc lớn, sử dụng chính sách thiếu nhân lực để cắt giảm chi phí và chuyển gánh nặng lên người tiêu dùng.
- Cửa hàng CVS thường chỉ có một hoặc hai nhân viên khiến việc mua sắm trở nên khó khăn và mất thời gian.
- Việc yêu cầu khách hàng tự thanh toán bằng máy checkout không hoạt động tốt là cách giảm bớt gánh nặng lao động từ công ty.
- Các vấn đề an ninh tại CVS do thiếu nhân lực bị chuyển sang cho cảnh sát công cộng chịu trách nhiệm.
The Old New Thing
How can I make sure the anti-malware software doesn’t terminate my custom service?
- Khách hàng phát triển một dịch vụ Windows và muốn bảo vệ dịch vụ khỏi việc bị người dùng hoặc phần mềm anti-malware ngừng hoạt động.
- Khách hàng đã thiết lập quyền truy cập để chỉ các quản trị viên mới có thể dừng dịch vụ.
- Không có cách nào bảo vệ dịch vụ khỏi bị anti-malware ngừng hoạt động, vì chúng có quyền truy cập rất cao vào hệ thống.
- Anti-malware có thể làm hỏng chức năng của dịch vụ mà không cần phải ngừng nó, như việc ngăn cản các luồng thực thi.
- Khách hàng cần làm việc với phần mềm anti-malware đang chạy trên máy chủ để cài đặt không cho nó ngừng dịch vụ quan trọng của họ.
- Rủi ro tồn tại khi phần mềm độc hại có thể giả mạo dịch vụ quan trọng và trốn tránh phát hiện.
- Nếu dịch vụ chạy trên máy chủ do khách hàng cấu hình, họ cần phối hợp với toàn bộ phần mềm anti-malware mà khách hàng sử dụng.
- Microsoft không thể bảo vệ dịch vụ của bạn trước phần mềm anti-malware vì chúng mạnh hơn bạn.
John D. Cook
Set intersection and difference at the command line
- Chương trình comm cho phép thực hiện lý thuyết tập hợp từ dòng lệnh, nhưng ngữ pháp khó nhớ và các tệp đầu vào phải được sắp xếp.
- Khi A và B là hai danh sách đã được sắp xếp, lệnh
comm A B in ra A − B, B − A, và A ∩ B.
- Người dùng thường không muốn tất cả ba kết quả, vì vậy comm cho phép lọc kết quả bằng cách chỉ định những gì không muốn.
- Các số 1, 2, và 3 tương ứng với A − B, B − A, và A ∩ B.
- Hai script intersect và setminus có thể ẩn các điểm bất tiện của comm.
- Script intersect sử dụng lệnh
comm -12 <(sort "$1") <(sort "$2") để tính A ∩ B.
- Script setminus sử dụng lệnh
comm -23 <(sort "$1") <(sort "$2") để tính A − B; sử dụng thứ tự đối ngược cho kết quả B − A.
🍵 Giles’ blog
Writing an LLM from scratch, part 32f – Interventions: weight decay
- Tác giả đang cải thiện test loss cho mô hình GPT-2 nhỏ được huấn luyện từ đầu, dựa trên cuốn sách của Sebastian Raschka.
- Trong mã huấn luyện, tác giả sử dụng optimizer AdamW với learning rate 0.0004 và weight decay 0.1.
- Tác giả đã khám phá learning rate trước đó và tìm thấy giá trị tốt hơn cho nó, kèm theo mã lập lịch.
- Bài viết này tập trung vào weight decay, khám phá vai trò và liệu 0.1 có phải là giá trị tốt nhất.
- Weight decay là một khía cạnh quan trọng của các optimizer, với “W” trong AdamW biểu thị cách xử lý weight decay khác với Adam cũ.
- Overfitting xảy ra khi mô hình quá phức tạp, dẫn đến kết quả tốt trên tập huấn luyện nhưng kém trên tập kiểm tra.
- Để khắc phục overfitting, thường sử dụng mô hình ít phức tạp hơn hoặc kỹ thuật regularisation.
- Regularisation tự động hóa việc ngăn chặn overfitting mà không cần can thiệp thủ công.
- Các kỹ thuật regularisation bao gồm Dropout và early stopping để giảm thiểu overfitting.
- Tác giả không sử dụng tập kiểm tra riêng, nhưng thay vào đó theo dõi train loss để ngăn chặn việc tiếp tục huấn luyện nếu nó tăng.
Tedium: The Dull Side of the Internet.
The Pancake Discussion
- Pancakes không phải là món ăn yêu thích của tác giả vì chúng tạo ra sự lộn xộn và kết quả không hoàn hảo.
- Pancakes có thể được làm nhanh chóng và số lượng lớn, phổ biến tại các quán ăn.
- Đĩa pancakes thường có kết cấu nặng nề và gây cảm giác chán nản sau khi ăn.
- Tác giả so sánh việc thảo luận trên mạng xã hội giống như ăn pancakes, với các quan điểm thường bị thiên lệch hoặc đơn giản.
- Blogs cho phép phát triển ý tưởng một cách chi tiết hơn so với các bài viết ngắn trên mạng xã hội.
- Tác giả quan tâm đến AT Protocol, dự kiến sẽ tạo không gian cho sự đa dạng hơn trong thảo luận.
- Kagi’s Small Web giúp phát hiện các bài viết thú vị không thể nổi tiếng trên mạng xã hội.
- Tác giả nhận thấy sự thiếu đa dạng trong các bài viết trên Kagi, khi phần lớn tác giả là đàn ông trung niên da trắng.
- Kagi đã phục hồi việc khám phá blog bằng cách kết hợp ý tưởng cũ với cách làm mới.
the singularity is nearer
Changing the World
- Tác giả cảm thấy quan điểm của mình về việc “thay đổi thế giới” khác với người khác.
- Trong bài hát năm 2017, tác giả cho rằng “thay đổi thế giới” chỉ là một phép ẩn dụ để xin thêm vật chất.
- Tác giả không thấy giá trị trong việc dành đời mình để theo đuổi ước mơ không thực tế.
- Những điều tác giả muốn như bất tử hay robot thông minh chưa tồn tại.
- Kinh nghiệm chơi game đã dạy tác giả rằng quá trình trải nghiệm quan trọng hơn mục tiêu cuối cùng.
- Tác giả cho rằng việc kiếm tiền chỉ là việc thay đổi một con số trong cơ sở dữ liệu.
- Tiền không có giá trị tự thân; thay đổi thế giới mới có giá trị.
- Việc tiêu tiền theo cách bình thường không tạo ra sự khác biệt hay giá trị.
- Một số người có thể nghĩ tác giả không tin vào những quan điểm này và tìm cách thao túng người khác.
Jim Nielsen’s Blog
More Details Than You Probably Wanted to Know About Recent Updates to My Notes Site
- Trang web ghi chú giờ đây có URL riêng cho từng bài viết (ví dụ: https://notes.jim-nielsen.com/n/YYYY-MM-DD-HHmm/).
- Định danh của bài viết đã được thay đổi từ định dạng cũ 2026-03-09T2305.md sang 2026-03-09-2305.md.
- Redirect cho các URL cũ được xử lý bên phía client bằng cách sử dụng script trong thẻ <head>.
- Hỗ trợ cả định danh cũ và mới để tránh việc bài viết xuất hiện hai lần trong feed.
- Có chức năng “shuffle” để người dùng có thể ngẫu nhiên nhảy qua các ghi chú đã xuất bản.
- Thay đổi không tác động tới server và thực hiện việc này bằng phương pháp client-side để đảm bảo tính bền vững trong tương lai.
The Silicon Underground
What came after 486?
- Các CPU không có tên thương hiệu cho đến thập niên 1990, chỉ có mã số và tốc độ xung đồng.
- CPU 486 (mã đầy đủ là 80486) là CPU cuối cùng không có tên thương hiệu.
- Intel giới thiệu CPU Pentium thay thế cho 486 vào ngày 22 tháng 3 năm 1993.
- Pentium nhanh hơn khoảng 40% so với 486 tại cùng tốc độ xung đồng.
- CPU Pentium đầu tiên hoạt động ở 60 và 66 MHz, trong khi 486 nhanh nhất cũng chạy ở 66 MHz.
- Trong khoảng ba năm, Intel không có đối thủ trên thị trường CPU sau 486.
- Tên thương hiệu giúp Intel giữ thị trường cao cấp lâu dài hơn so với thời kỳ 486.
- Ít nhất bảy công ty sản xuất CPU 486, do yêu cầu của IBM về nhiều nguồn cung.
- Intel không cấp phép sản xuất CPU 386 cho nhiều công ty khác như đã làm với các mô hình trước đó.
- AMD đã thành công trong việc tạo ra bản sao gần giống với CPU 386 và 486 của Intel thông qua reverse-engineering.
- Sau nhiều năm kiện tụng, tòa án cho phép AMD sản xuất CPU 386 và 486 nhưng với một số hạn chế.
- Intel phải chia sẻ thị trường 486 với AMD, dù vẫn giữ được chỗ đứng vững chắc trong thị trường nâng cấp.
matduggan.com
Markdown Ate The World
- Người viết yêu thích việc gõ từ và thấy chúng xuất hiện trên màn hình.
- WordPerfect là trình soạn thảo yêu thích nhất, nhưng đã sử dụng hầu hết các chương trình khác.
- Trình xử lý văn bản đã phát triển từ công cụ như máy đánh chữ sang hệ thống phức tạp gần giống như bộ xuất bản.
- Định dạng tệp .doc là Compound File Binary Format, tương tự như một hệ thống tệp FAT.
- Tệp .doc quản lý tài liệu hiệu quả hơn bằng cách lưu trữ tất cả trong một tệp duy nhất.
- Tuy nhiên, tệp .doc thường bị hỏng do nhiều yếu tố như lưu trữ không ổn định và sao chép không an toàn (thiết bị lưu trữ cũ).
- Lỗi trong quy trình lưu tệp khiến người dùng thường gặp phải tệp không đọc được.
- Tệp .doc có thể bị phình to và phân mảnh theo thời gian, làm tăng khả năng hỏng hóc.
- Người dùng cần được hướng dẫn lưu tệp thường xuyên và sử dụng “Save As” để tạo phiên bản sạch.
- Microsoft Word đã có tiếng xấu trong giới kỹ thuật không phải vì chất lượng mà do các vấn đề về quản lý tệp.
Every Command Shows Its Savings: contextzip: 200 40
Analyzing Akamai BMP 4.1.3 - Part 2
How to Write Architecture Decision Records That Actually Get Used
How I Built a Dijkstra-Based Money Routing Engine with 29K Edges
How to Get the Correct Y Position of an Element in CHATGPT UI
Fast Guided Filter
CVE-2026-33195: CVE-2026-33195: Path Traversal Vulnerability in Ruby on Rails Active Storage DiskService
The FCC Just Validated What Homelabbers Have Known for Years
From Pixels to Diagnosis: Building a Real-Time Skin Lesion Classifier with Flutter & ViT
The Private Key Pandemic: Why 60% of 2026’s DeFi Losses Come From Off-Chain Failures — And a Defense Blueprint
This Week in Changelogs: curl
How to Add Screenshot Tests to Your GitHub Actions CI Pipeline
Hacker News: Best
💬 Autoresearch on an old research idea
🔥 US and TotalEnergies reach ‘nearly $1B’ deal to end offshore wind projects
🔥 iPhone 17 Pro Demonstrated Running a 400B LLM
🔥 Student beauty and grades under in-person and remote teaching
🔥 GitHub appears to be struggling with measly three nines availability
🔥 Migrating to the EU
💬 POSSE – Publish on your Own Site, Syndicate Elsewhere
🔥 Two pilots dead after plane and ground vehicle collide at LaGuardia