Simon Willison’s Weblog
Thoughts on OpenAI acquiring Astral and uv/ruff/ty
- Astral sẽ gia nhập OpenAI, trở thành một phần của đội Codex. (Astral blog, OpenAI announcement)
- OpenAI cam kết tiếp tục hỗ trợ các công cụ mã nguồn mở của Astral sau khi thỏa thuận hoàn tất.
- uv là dự án quan trọng nhất của Astral, giải quyết tốt các vấn đề quản lý môi trường trong Python.
- uv đã được tải xuống hơn 126 triệu lần trong tháng trước, trở thành công cụ phổ biến kể từ khi ra mắt vào tháng 2 năm 2024.
- Ruff và ty là hai dự án khác của Astral, cung cấp linting, định dạng mã và kiểm tra kiểu cho Python, nhưng không quan trọng bằng uv.
- Pyx, một đăng ký gói kiểu PyPI riêng, không thấy đề cập trong thông báo từ Astral và OpenAI.
- Tình hình cạnh tranh giữa OpenAI và Anthropic có thể bị ảnh hưởng bởi thương vụ này, đặc biệt trong lĩnh vực mã hóa.
- OpenAI có thể sử dụng sự sở hữu uv để gây sức ép trong cạnh tranh với Anthropic.
Engineering Leadership
The “Spotlight Effect” Is Holding You Back as an Engineer or Engineering Leader
- Hiệu ứng spotlight là khi chúng ta đánh giá quá cao mức độ chú ý của người khác đối với mình.
- Nghiên cứu của Thomas Gilovich cho thấy tham gia mặc áo phông gây xấu hổ, người tham gia ước lượng khoảng 50% người khác nhận ra trong khi thực tế chỉ có 20-25% nhận thấy (Gilovich, đầu những năm 2000).
- Tâm lý này khiến nhiều người do dự thực hiện ước mơ hoặc sự nghiệp của mình vì lo lắng về suy nghĩ của người khác.
- Trong sự nghiệp hơn 12 năm của mình, tác giả cũng cảm thấy bị hạn chế vì không có bằng cấp.
- Hầu hết mọi người quá bận rộn với các vấn đề của riêng họ để chú ý đến hành động của người khác.
The Pragmatic Engineer
The Pulse: Is the FDE role becoming less desirable?
- Pull requests generated by AI agents create difficulties for large open source projects.
- OpenAI acquires the creator of the uv library.
- Cursor raises prices unexpectedly, causing frustration among enterprise customers.
- Job postings for Forward Deployed Engineers (FDEs) increase significantly.
- Many professionals show reluctance towards the FDE role, perceiving it as resembling solutions engineering.
Martin Fowler
Fragments: March 19
- Mục tiêu chính của code review không chỉ là phát hiện lỗi mà còn là duy trì sức khỏe cho mã nguồn (David Poll).
- Code review giúp trả lời câu hỏi: “Điều này có nên là một phần của sản phẩm không?”.
- Người phản biện không chỉ tìm lỗi mà còn đánh giá liệu mã có phù hợp với mô hình tư duy đã có hay không.
- AI nâng cao mức độ đánh giá trong code review, tập trung vào những vấn đề quan trọng hơn.
- Code review và lập trình cặp còn thúc đẩy sự giao tiếp và chia sẻ quan điểm giữa các lập trình viên.
- Charity Majors lo ngại rằng sản xuất thường bị coi là chỉ liên quan đến lỗi và sự cố trong phần mềm.
- Tính quan sát (observability) giúp hiểu rõ hơn về hành vi thực tế của hệ thống khi người dùng tương tác.
- Observability có vai trò quan trọng trong việc làm sáng tỏ cách mà phần mềm ảnh hưởng đến hệ thống xã hội và tổ chức rộng lớn hơn.
- Sự không chắc chắn trong hành vi của phần mềm có thể dẫn đến việc tăng cường tầm quan trọng của tính quan sát trong phát triển phần mềm.
- Tương lai có thể chứng kiến nỗ lực của lập trình viên chủ yếu là tìm hiểu hệ thống hoạt động như thế nào và lý do đằng sau hành vi của nó.
Krebs on Security
Feds Disrupt IoT Botnets Behind Huge DDoS Attacks
- Bộ Tư pháp Mỹ phối hợp với các cơ quan ở Canada và Đức để triệt phá bốn botnets Aisuru, Kimwolf, JackSkid và Mossad, đã tấn công hơn ba triệu thiết bị IoT.
- Bốn botnets này gây ra hàng trăm nghìn cuộc tấn công DDoS, đòi tiền chuộc từ nạn nhân.
- Aisuru phát lệnh tấn công hơn 200,000 lần, JackSkid 90,000 lần, Kimwolf 25,000 lần và Mossad khoảng 1,000 lần.
- Cuộc chiến chống tội phạm mạng có sự tham gia của nhiều công ty công nghệ và FBI tại văn phòng Anchorage.
- Aisuru bắt đầu xuất hiện vào cuối năm 2024 và nhanh chóng lây nhiễm thiết bị IoT, trong khi Kimwolf xuất hiện năm 2025 với cơ chế lây lan mới.
- Vào tháng 1 năm 2026, Synthient công bố lỗ hổng mà Kimwolf đang tận dụng để lây lan.
- Botnet JackSkid cũng tìm kiếm hệ thống trên mạng nội bộ giống như Kimwolf.
- Hành động triệt phá này diễn ra đồng thời với các hành động pháp lý tại Canada và Đức, tuy nhiên không có thêm thông tin về các nghi phạm.
- Một người đàn ông 22 tuổi ở Canada được xác định là một trong những điều hành chính của botnet Kimwolf.
- Nguồn tin cho biết một nghi phạm khác là cậu bé 15 tuổi sống ở Đức.
Daring Fireball
StopTheMadness Pro and StopTheScript Extensions for Safari
Actual Headline in the Actual New York Times: ‘Trump Jokes About Pearl Harbor in Meeting With Japan’s Leader’
‘Everyone but Trump Understands What He’s Done’
- Donald Trump không có tư duy chiến lược hoặc lịch sử.
- Ông không liên kết hành động với kết quả dài hạn.
- Trump không nhận trách nhiệm khi các quyết định sai lầm.
- Hành động của ông thường dựa vào sự ngẫu hứng và thay đổi quan điểm mà không giải thích.
- Các nhà phân tích quốc tế đã ngạc nhiên khi một người không có chiến lược có thể là tổng thống Mỹ.
- Hậu quả từ quyết định của Trump dẫn đến tình trạng căng thẳng ở Eo biển Hormuz và giá dầu tăng.
- Ông yêu cầu các quốc gia khác giải quyết vấn đề mà ông đã tạo ra mà quên rằng Mỹ đã thành lập NATO.
- Trump thường xuyên xúc phạm và chế giễu các đồng minh, gây bất bình cho họ.
- Ông từng tuyên bố Mỹ sẽ không hỗ trợ Châu Âu nếu bị tấn công.
- Các lãnh đạo Đan Mạch đã chuẩn bị cho khả năng Mỹ xâm lược Greenland do lời nói của Trump.
- Một ứng dụng tại Đan Mạch giúp người tiêu dùng nhận diện sản phẩm Mỹ để không mua phải.
The Day Mark Simonson Discovered Type Design
- Tháng 3 năm 1976, tác giả bắt đầu quan tâm đến thiết kế chữ khi 20 tuổi.
- Tác giả theo học khóa nghệ thuật thương mại tại North Hennepin Community College, Minneapolis.
- Ban đầu, tác giả muốn trở thành họa sĩ minh họa nhưng cũng quan tâm đến thiết kế đồ họa.
- Dự án lớp học chữ nâng cao với giảng viên Lance Kiland đã khơi dậy niềm yêu thích thiết kế chữ của tác giả.
- Tác giả đã có kinh nghiệm về chữ và lettering từ khi còn học trung học, làm biên tập viên và thiết kế cho báo trường.
- Tác giả phát hiện tạp chí U&lc và thấy được thiết kế chữ đẹp mắt, từ đó có cơ hội gửi bản thiết kế chữ cho ITC.
- Tác giả đã hoàn thành dự án thiết kế chữ “Uncial Sans” bằng tay với các công cụ vẽ chuyên dụng.
- Kết thúc dự án, tác giả nhận được điểm A+ mặc dù công việc có một số vấn đề về thiết kế.
- Tác giả phát hiện ra việc có thể thiết kế chữ chuyên nghiệp và quyết định theo đuổi sự nghiệp này.
- Mãi đến gần 20 năm sau, tác giả mới công bố một kiểu chữ chính thức.
Google’s New Sideloading Restrictions for Android Include a 24-Hour Waiting Period
- Google giới thiệu quy trình mới cho việc sideloading trên Android với khóa 24 giờ bắt buộc và nhiều bước khi cài đặt ứng dụng từ nhà phát triển không được xác minh.
- Thay đổi này nhằm ngăn chặn lừa đảo và cưỡng chế, buộc người dùng suy nghĩ trước khi cài đặt ứng dụng có thể gây hại.
- Quy trình mới yêu cầu người dùng kích hoạt chế độ nhà phát triển thủ công mà không còn các tùy chọn nhanh.
- Android sẽ hỏi người dùng có ai đó đang hướng dẫn họ tắt các bảo vệ trên thiết bị hay không.
- Người dùng cần khởi động lại điện thoại để ngắt cuộc gọi hoặc quyền truy cập từ xa.
- Có một thời gian chờ 24 giờ trước khi cài đặt ứng dụng từ nhà phát triển không xác minh.
- Sau thời gian chờ, người dùng cần xác thực bằng sinh trắc học hoặc mã PIN để xác nhận danh tính.
- Sau khi hoàn tất các bước trên, người dùng mới có thể thực hiện sideloading ứng dụng, với tùy chọn cho phép cài đặt trong bảy ngày hoặc không giới hạn.
- Android sẽ vẫn cảnh báo rằng ứng dụng đến từ nhà phát triển không được xác minh, nhưng người dùng có thể chọn “Cài đặt dù sao”.
- Google thay đổi này nhằm tăng cường an toàn cho người dùng và giảm nguy cơ bị lừa đảo qua các cuộc gọi hối thúc.
Hacker News Discussion on Shubham Bose’s ‘The 49MB Web Page’
- Các nhà phát triển đã chạy khoảng 750MB cho mỗi website mở một lần.
- Vấn đề chậm trễ máy chủ được báo cáo và kiểm tra đã phát hiện video trên trang web tự động tải trước một phần.
- Sự kết nối trực tiếp của văn phòng với datacenter giúp cải thiện hiệu suất trang web.
- Đề xuất hạn chế tốc độ kết nối của nhà phát triển xuống dưới 128kbit.
- Trình duyệt Chromium/Firefox có tính năng giả lập tốc độ băng thông để kiểm tra hiệu suất trang web (Nguồn: Developer Tools).
- Việc kiểm tra hiệu suất trên các thiết bị cũ có thể hữu ích để đảm bảo khả năng sử dụng.
- Tốc độ biên dịch JavaScript đã được cải thiện gấp 10 lần giữa các trình duyệt nhờ vào sự cạnh tranh giữa Chrome và Firefox.
- Chạy thử nghiệm trên các kết nối chậm như GPRS để đảm bảo trang web hoạt động tốt trong mọi điều kiện.
- Điều cần thiết là có một công cụ CPU/network throttling để hiểu rõ hơn về hiệu suất ứng dụng trong môi trường sản xuất.
- Người dùng macOS có thể tải Network Link Conditioner để điều chỉnh tốc độ kết nối trên toàn hệ thống.
- Có những trường hợp tính năng trong JS được thiết lập để làm chậm phản hồi HTTP nhằm trình diễn UI, nhưng không hiệu quả khi kiểm tra.
★ AppleScript: ‘Save MarsEdit Document to Text File’
- Tôi viết một AppleScript để giải quyết vấn đề lưu các bản nháp trong MarsEdit thành tệp văn bản.
- MarsEdit không có tính năng lưu tài liệu dưới dạng tệp văn bản; chỉ có tính năng “Lưu dưới dạng Bản nháp địa phương”.
- AppleScript này cho phép người dùng lưu tệp văn bản với tên mặc định là nội dung trường Tiêu đề của tài liệu MarsEdit.
- Script mở hộp thoại Lưu hệ thống để người dùng chọn vị trí lưu tệp, và nhớ vị trí đã lưu lần trước.
- Định dạng tệp văn bản bao gồm các trường như Tiêu đề, Blog, Ngày chỉnh sửa, Thẻ và Ký hiệu (Slug).
- Tôi không sử dụng trường “Slug” trong MarsEdit mà dùng trường “Keyword” từ Movable Type cho URL slug của bài viết.
- Script này giúp tôi dọn sạch 29 bản nháp cũ trong MarsEdit và lưu chúng vào Dropbox.
- Sau khi sử dụng, thư viện “Local Drafts” trong MarsEdit của tôi đã trở nên trống rỗng.
Pluralistic: Daily links from Cory Doctorow
Pluralistic: Love of corporate bullshit is correlated with bad judgment (19 Mar 2026)
- Tình yêu với những từ ngữ phức tạp trong doanh nghiệp có liên quan tới phán đoán kém.
- “Enshittification” là một từ mới được sáng tạo, mang nghĩa tiêu cực và vẫn đang trong quá trình được định nghĩa.
- Từ ngữ có thể thay đổi nghĩa theo thời gian và cách sử dụng của người nói, đây là hiện tượng gọi là semantic drift.
- Việc sử dụng từ mới theo cách khác nhau không làm giảm giá trị ngôn ngữ mà ngược lại, làm phong phú thêm nó.
- Sự giám sát việc sử dụng từ ngữ có thể hạn chế sự sáng tạo ngôn ngữ, chống lại tính tự do và đa dạng của ngôn ngữ.
- Từ ngữ có thể được dùng một cách ẩn dụ mà không làm giảm bớt ý nghĩa thực tiễn của chúng.
- Thảo luận về ngôn ngữ nên được dựa trên sự hiểu biết về ngữ nghĩa chứ không phải chỉ là việc chỉnh sửa cách sử dụng.
The Old New Thing
Windows stack limit checking retrospective: amd64, also known as x86-64
- Khảo sát kiểm tra giới hạn ngăn xếp hiện đại sử dụng amd64 (x86-64).
- Có hai phiên bản hàm cho chế độ người dùng và chế độ hạt nhân; bài viết tập trung vào phiên bản chế độ người dùng.
- Phiên bản trong msvcrt là runtime kế thừa, phiên bản trong ucrtbase là runtime phổ quát.
- Hàm chkstk đảm bảo ngăn xếp đã mở rộng đủ, nhưng để việc điều chỉnh ngăn xếp cho caller.
- Probing trong phiên bản ucrtbase thực hiện bằng cách ghi thay vì đọc.
- Cả hai phiên bản hàm đều tuân thủ cách quản lý ngăn xếp đổ bóng (shadow stacks) theo Công nghệ thực thi kiểm soát luồng (CET) của Intel.
- Ví dụ sử dụng điển hình: gọi chkstk để xác thực kích thước ngăn xếp cần thiết trước khi điều chỉnh ngăn xếp (sub rsp, rax).
John D. Cook
A lesser-known characterization of the gamma function
- Hàm gamma Γ(z) mở rộng hàm giai thừa từ số nguyên sang số phức.
- Định lý Bohr-Mollerup khẳng định rằng nếu hàm f: (0, ∞) → (0, ∞) thỏa mãn ba điều kiện nhất định, thì f(x) = Γ(x).
- Các điều kiện của định lý Bohr-Mollerup: f(x + 1) = x f(x), f(1) = 1, và log f là hàm lồi.
- Định lý của Helmut Wielandt cung cấp một cách khác để xác định hàm gamma.
- Các điều kiện của định lý Wielandt: f(z + 1) = z f(z), f(1) = 1, và f(z) bị giới hạn trong nửa mặt phẳng bên phải.
- Wielandt thay thế tính log-lồi bằng yêu cầu hàm f phải bị giới hạn trong một dải của mặt phẳng phức.
-
| Từ định nghĩa tích phân của Γ(z), ta có |
Γ(z) |
≤ |
Γ(Re z) |
cho z trong nửa mặt phẳng bên phải. |
- Giới hạn trong dải {z: 1 ≤ Re z ≤ 2} bằng giới hạn trên khoảng thực [1, 2], giá trị này là 1.
matklad
Consensus Board Game
- Có một ủy ban năm thành viên cần chọn màu cho một cái xe đạp nhưng không phải ai cũng đáng tin cậy.
- Ý tưởng lựa chọn là dựa trên đồng thuận bằng cuộc bỏ phiếu đa số.
- Một cuộc bỏ phiếu thành công cho thấy màu đỏ đã nhận được 3 trên 5 phiếu.
- Vấn đề có thể xảy ra khi phiếu bị chia đều, dẫn đến kết quả không quyết định.
- Để giải quyết vấn đề này, một thành viên sẽ được chỉ định là lãnh đạo và quyết định màu sắc cho tất cả.
- Cuộc bỏ phiếu có thể cần ít nhất 50% thành viên tham gia để có hiệu lực.
- Nếu lãnh đạo không tham gia, điều này có thể gây khó khăn cho quá trình ra quyết định.
- Một giải pháp là thực hiện nhiều cuộc bỏ phiếu đồng thời với việc lãnh đạo thay phiên nhau.
- Mỗi cột trong bảng 2D sẽ hoạt động độc lập, giúp một số cột vẫn có thể hoàn thành quyết định khi có đủ thành viên.
- Mặc dù từng cột có quyết định rõ ràng, nhưng kết quả toàn bộ bảng vẫn không được xác định.
- Cuối cùng, bảng 2D ban đầu có thể bị loại bỏ nếu không cho kết quả rõ ràng.
- Tài liệu này có liên quan đến “Notes on Paxos” về thu thập đồng thuận.
Rakhim’s blog
Related UI elements should not appear unrelated
- Xu hướng thiết kế UI gần đây cho thấy các yếu tố liên quan ngày càng trở nên tách rời nhau.
- Ví dụ từ Google Chrome 2010 cho thấy tab liên kết rõ ràng với cửa sổ nội dung.
- Ngược lại, Firefox v.41 (2015) và v.148 nổi bật với thiết kế tab tách biệt, giống như các nút bấm.
- Firefox đã công bố một thiết kế mới (Firefox Nova) với sự tách biệt cực kỳ rõ ràng giữa các yếu tố liên quan.
- Thiết kế hiện tại khiến các yếu tố giao diện xuất hiện như những cửa sổ riêng biệt, chứ không phải là các phần liên quan.
- Các khoảng cách và bóng đổ tăng thêm cảm giác tách biệt trong kiểu dáng thiết kế này.
- Xu hướng thiết kế UI có thể thay đổi theo thời gian, nhưng cũng nhanh chóng trở lại.
Westenberg.
Members Only: How do we define our own flourishing?
- Nikolai Kardashev phân loại các nền văn minh theo năng lượng mà họ khai thác.
- Có ba loại nền văn minh: Type I (điều khiển năng lượng của hành tinh), Type II (điều khiển một ngôi sao), Type III (điều khiển một thiên hà).
- Con người hiện tại ở khoảng 0,73, gần trở thành Type I trong vòng 100 năm tới.
- Kardashev’s Scale giúp hình dung về tiềm năng con người, đặt chúng ta ở vị trí khởi đầu với khả năng tiến bộ vô hạn.
- Tuy nhiên, khái niệm này có thể bị thiên lệch do đánh giá chủ yếu dựa vào năng lượng mà không xem xét các yếu tố khác như phúc lợi hay tri thức.
- Lịch sử cho thấy, những nền văn minh có năng lượng cao như Đế chế La Mã và thế kỷ 20 cũng sản sinh ra bạo lực và tàn ác.
- Mặt khác, không có mối quan hệ đáng tin cậy giữa sự tiến bộ công nghệ và chất lượng cuộc sống của con người.
- Nền văn minh nào đạt được mức độ cao không nhất thiết sẽ hiểu rõ hơn về nhân văn hoặc tồn tại lâu dài hơn.
- Fermi Paradox đặt ra câu hỏi tại sao chưa phát hiện nền văn minh khác trong vũ trụ rộng lớn.
- Các giả thuyết liên quan đến Fermi Paradox bao gồm sự tự hủy hoại, “Great Filter,” và sự hiếm hoi của các hành tinh có khả năng hỗ trợ sự sống.
- Những người ủng hộ Kardashev thường nghĩ rằng chỉ có nền văn minh cực kỳ tiên tiến mới có thể được phát hiện.
- Tuy nhiên, có khả năng rằng những nền văn minh tiên tiến hơn không tồn tại vì nhiều lý do khác nhau.
Andrew Nesbitt
The Fragmented World of Dependency Policy
- Dự định bổ sung tính năng chính sách vào git-pkgs/actions cho kiểm tra giấy phép, quét lỗ hổng, và tạo SBOM trong CI.
- Tính năng giấy phép hiện tại nhận danh sách identifier SPDX và tính năng lỗ hổng nhận chuỗi độ nghiêm trọng, không đủ cho các trường hợp phức tạp.
- Đã khảo sát khoảng bốn mươi công cụ với định dạng khác nhau cho các quyết định chính sách tự động liên quan đến phụ thuộc.
- Chính sách giấy phép được thể hiện qua nhiều định dạng như deny.toml, dependency_decisions.yml, hoặc cấu hình YAML của từng công cụ.
- Một số công cụ yêu cầu identifier SPDX, trong khi một số khác chấp nhận chuỗi tự do hoặc ID nội bộ.
- Chính sách lỗ hổng yêu cầu viết tệp riêng cho từng scanner với định dạng khác nhau, tạo ra danh sách bỏ qua không tương thích khi sử dụng nhiều công cụ.
- Chính sách cấm gói được quản lý qua các tệp XML, TOML, hoặc JSON, tùy thuộc vào từng công cụ như Maven, cargo-deny, hoặc GitHub.
- Hầu hết các công cụ không có định dạng thống nhất, dẫn đến việc bảo trì khó khăn cho các quyết định tương tự.
Construction Physics
How Much Computing Power is in a Data Center?
- Đầu tư vào xây dựng các trung tâm dữ liệu AI đang tăng mạnh, có thể đạt tới 3 nghìn tỷ USD vào năm 2026 (Bloomberg).
- Chi tiêu cho AI sẽ vượt quá chi phí của hệ thống đường sắt quốc gia và chương trình Apollo trong cùng thời gian đó (Wall Street Journal).
- Các trung tâm dữ liệu dự kiến sẽ tiêu thụ 17% điện năng của Mỹ vào năm 2030 (Electric Power Research Institute).
- Hiệu suất máy tính của mô hình AI được đo bằng FLOPS (floating-point operations per second).
- Mô hình GPT-2 cần khoảng 2.3x10^21 FLOP để đào tạo, trong khi GPT-4 cần tới 2.1x10^25 FLOP, gấp gần 10,000 lần.
- Các trung tâm dữ liệu AI sử dụng rất nhiều GPU, như Nvidia H100, cho công việc tính toán.
- Một trung tâm dữ liệu AI điển hình có khoảng 100,000 H100 equivalents; các trung tâm lớn có thể có 1 triệu hoặc hơn.
- H100 có thể thực hiện từ 60-67 teraFLOPS với số liệu 32-bit và lên tới 3,958 teraFLOPS với số liệu 8-bit (FP8) nhờ sử dụng công nghệ sparsity.
The Silicon Underground
Magnavox Odyssey 2: 1978-1984
- Magnavox Odyssey 2 ra mắt ngày 1 tháng 12 năm 1978 và bị ngừng sản xuất vào ngày 20 tháng 3 năm 1984 với 2 triệu máy được bán ra.
- Đây là máy console đầu tiên có bàn phím và công nghệ tổng hợp giọng nói.
- Magnavox Odyssey 2 cạnh tranh với Atari bằng cách phát triển các loại trò chơi khác nhau, bao gồm trò chơi lai giữa video và board game.
- Sự xuất hiện của Colecovision đã làm giảm sức hấp dẫn của Odyssey 2 tại Hoa Kỳ.
- Magnavox có danh tiếng tốt nhưng cũng gây hiểu lầm rằng thiết bị chỉ hoạt động với TV của họ.
- Game K.C. Munchkin của Odyssey 2 là một phiên bản nhái của Pac-Man, bị Atari kiện vì vi phạm bản quyền.
- Odyssey 2 có ít trò chơi của bên thứ ba ban đầu, nhưng vào năm 1983, Imagic và Parker Brothers bắt đầu phát hành nhiều trò chơi arcade cho nó.
- Parker Brothers phát hành các trò chơi như Popeye và Frogger, nhưng chúng không phải là phiên bản tốt nhất.
- Odyssey 2 phổ biến hơn ở châu Âu và Brazil, nơi không bị ảnh hưởng bởi cuộc khủng hoảng trò chơi năm 1983 ở Mỹ.
- Odyssey 2 bị ngừng sản xuất vào năm 1984, dẫn đến sự sụp đổ của Imagic.
Herman’s blog
On becoming a day person
Miguel Grinberg’s Blog
SQLAlchemy 2 In Practice - Chapter 1 - Database Setup
- Chương đầu tiên của sách “SQLAlchemy 2 in Practice” hướng dẫn thiết lập cơ sở dữ liệu cho các ứng dụng Python.
- Tạo một thư mục dự án bằng lệnh:
$ mkdir retrofun và chuyển vào thư mục đó bằng lệnh: $ cd retrofun.
- Tạo môi trường ảo Python bằng lệnh:
$ python -m venv venv.
- Kích hoạt môi trường ảo trên UNIX:
$ source venv/bin/activate, trên Windows Command Prompt: $ venv\Scripts\activate, và PowerShell: $ venv\Scripts\activate.ps1.
- Cài đặt SQLAlchemy vào môi trường ảo bằng lệnh:
(venv) $ pip install sqlalchemy.
- Cần sử dụng phiên bản 2.0 hoặc mới hơn của SQLAlchemy với mã trong sách.
- Código tương thích với các hệ thống cơ sở dữ liệu: SQLite, MySQL và PostgreSQL.
- SQLite đi kèm với Python, không cần cài đặt thêm phần mềm.
- MySQL là một cơ sở dữ liệu nguồn mở.
Open Source Projects - Latest Discoveries
A monitoring tool that finds vulnerability fixes before official advisories
Reverse engineer any marketing funnel with this open-source Claude toolkit
This terminal RSS reader consolidates all your news sources instantly
This library creates new 3D views from one image in real-time
Transform raw Formula One timing data into interactive race replays
Stop manual security reviews. Use this automated audit workflow instead.
Unlock Kimi K2.5 and ten models with staked tokens
Manage your entire autonomous AI workflow with this minimalist Rust framework
Decentralize your Nix builds with this peer-to-peer Git caching layer
Engineer an AI consciousness that feels and evolves from every interaction
Replace expensive RPA platforms with this open-source Java automation engine
Stop micromanaging AI agents and let them run work autonomously
Yazi: The Blazing-Fast Terminal File Manager for Developers
Best Mac Mini for Running Local LLMs and OpenClaw: Complete Pricing & Buying Guide (2026)
Pixelmuse CLI Guide: AI Image Generation From Your Terminal
10 More CLI Tools for AI Coding: Part 2 Terminal Workflow Guide
Valid Anagram
Obsidian + Claude Code: The Complete Integration Guide
Fine-Tuning a 3B Model on My Own Output: What I Learned About Voice Transfer
Building the Architecture in KMP: Data Flow, MVI, and Hard Decisions
Why File Renaming Is Still a Hard Problem (And How AI Changes It)
How to Secure Your Multi-Agent AI System: A Practical Checklist
Stop Tracking, Start Protecting: Master Differential Privacy with PySyft for Group Health Analytics 🛡️🏃♂️
I made a finished lead magnet in minutes from a one line idea
Hacker News: Launches
💬 Launch HN: Voltair (YC W26) – Drone and charging network for power utilities
💬 Launch HN: Canary (YC W26) – AI QA that understands your code
Hacker News: Best
🔥 Anthropic takes legal action against OpenCode
🔥 An update on Steam / GOG changes for OpenTTD
🔥 Google details new 24-hour process to sideload unverified Android apps
🔥 Show HN: Three new Kitten TTS models – smallest less than 25MB
🔥 macOS 26 breaks custom DNS settings including .internal
🔥 Astral to Join OpenAI
💬 Afroman Wins Civil Trial over Use of Police Raid Footage in His Music Videos
🔥 Denmark was reportedly preparing for full-scale war with the US over Greenland
🔥 Iran war energy shock sparks global push to reduce fossil fuel dependence