🌍 TheVerge

Discord accidentally banned over 8,000 people for posting grids and other ‘benign’ images

Discord says a bug affecting its safety system caused it to mistakenly ban more than 8,000 accounts since May. The platform's statement follows a wave of reports from users over the past week, who say they've been banned for posting images containing grids, such as chessboards, game textures, and even Minecraft inventories. Stanislav Vishnevskiy, Discord […]
🌍 Dev.to

Isolation Level — Read Committed

Read Committed: snapshot mỗi statement, và vì sao hai SELECT trong cùng transaction có thể trả khác nhau READ COMMITTED là isolation level mặc định của PostgreSQL, và là level mà phần lớn workload OLTP đang chạy mà không biết. Khác với mô hình "transaction lấy một snapshot rồi giữ nguyên" mà nhiều dev tưởng tượng từ MVCC, ở Read Committed mỗi statement lấy một snapshot mới tại thời điểm statement bắt đầu , không phải tại thời điểm BEGIN . Hậu quả thực tế: hai SELECT liên tiếp trong c...
🌍 Dev.to

BEGIN/COMMIT — Transaction Lifecycle

Transaction lifecycle trong Postgres: BEGIN mở state machine, COMMIT đóng — quên đóng là dò mìn Một transaction trong Postgres không phải chỉ là cặp BEGIN ... COMMIT cú pháp; nó là một state machine sống cùng connection. BEGIN đẩy connection từ idle sang active , mỗi statement kết thúc đẩy nó về idle in transaction đợi statement kế tiếp, một statement lỗi đẩy sang idle in transaction (aborted) , và chỉ COMMIT / ROLLBACK mới trả connection về idle . Dev gặp lifecycle này ...
🌍 Dev.to

Transaction State — Idle in Transaction

Idle in transaction: connection ngồi không nhưng vẫn giữ snapshot, VACUUM đứng hình và bảng phình idle in transaction là trạng thái mà pg_stat_activity.state đặt cho một connection đã BEGIN , đã chạy xong statement gần nhất, và đang ngồi đợi statement kế tiếp hoặc COMMIT / ROLLBACK . Trên giấy nó "rảnh"; trong thực tế nó vẫn cầm một snapshot, vẫn giữ backend_xmin , vẫn ôm mọi lock đã claim từ đầu transaction. Một connection trong state này chỉ vài chục giây không nguy hiểm; cùng c...
🌍 Dev.to

Lock Manager — Lock Overview

Lock trong Postgres: hai tầng heavyweight/lightweight, vì sao một ALTER đứng yên kéo theo cả service Postgres chia khoá thành hai tầng chạy song song. Heavyweight lock (Postgres docs gọi là "regular locks" hay table-level/row-level lock) giữ vai trò bảo vệ object logic — relation, tuple, transactionid — sống suốt một transaction, hiện ra trong view pg_locks và là loại mà application code "thấy" được. Lightweight lock (LWLock) bảo vệ các vùng nhớ chia sẻ bên trong server — buffer desc...
🌍 Dev.to

One-Command Deployment: Self-Host Your AI Wallet with GHCR

One-Command Deployment: Self-Host Your AI Wallet with Docker and GHCR Would you trust a third party with your AI agent's private keys? If that question makes you uncomfortable, you're already thinking about self-hosting your wallet infrastructure — and WAIaaS makes it genuinely practical with a single Docker command. This post walks through how to get a fully self-hosted Wallet-as-a-Service running on your own server, with your own keys, under your own rules. Why Self-Hosting You...
🌍 Dev.to

Row Lock — FOR UPDATE

FOR UPDATE: pessimistic row lock để chặn lost update, và cái giá deadlock khi không lock theo thứ tự SELECT ... FOR UPDATE là cách rõ ràng nhất để nói với Postgres "tao sẽ sửa row này, đừng cho ai khác đụng vào cho tới khi tao commit". Nó là một row-level lock thật sự — khác SELECT thường (chỉ chụp snapshot MVCC, không ngăn ai update song song). Lý do dev gặp nó trong việc thật là class bug lost update : hai transaction cùng đọc một row, cùng tính giá trị mới dựa trên giá trị đọc được, ...
🌍 Dev.to

Table Lock — DDL Lock

DDL lock: vì sao một ALTER TABLE 50ms vẫn đủ làm sập cả API trong giờ cao điểm DDL trong Postgres không phải "vài lệnh schema chạy nhanh". Hầu hết các form của ALTER TABLE , toàn bộ DROP TABLE , TRUNCATE , REINDEX , CLUSTER , VACUUM FULL , và cả REFRESH MATERIALIZED VIEW (không có CONCURRENTLY ) đều yêu cầu ACCESS EXCLUSIVE — lock mode mạnh nhất, xung đột với mọi mode khác kể cả ACCESS SHARE mà một SELECT thuần đọc cũng cần. Một DDL chạy 50ms vẫn có thể chôn cả service v...
🌍 Dev.to

Deadlock — Deadlock Detection

Deadlock detection: vì sao Postgres chỉ dò cycle sau deadlock_timeout , và vì sao retry mù làm vỡ thêm Deadlock xảy ra khi hai (hoặc nhiều) transaction đang giữ lock mà bên kia cần, tạo thành một vòng tròn đợi không thoát ra được nếu không có trọng tài. Postgres là trọng tài đó: nó dựng wait-for graph từ trạng thái lock hiện tại, phát hiện cycle, và chủ động abort một transaction để cắt vòng. Dev gặp class lỗi này không phải vì viết code "sai" mà vì hai code path đụng cùng tài nguyên th...
🌍 Dev.to

Lock Monitoring — Production Lock Analysis

Production lock analysis: vì sao pg_stat_activity một mình không đủ, và join với pg_locks mới ra root cause Lock contention trong Postgres hiếm khi báo bằng error — nó báo bằng wait_event_type = 'Lock' ở pg_stat_activity và bằng latency tăng từ phía application. Khi một incident xảy ra ("API treo, không ai biết tại sao"), thứ team cần trong 60 giây đầu là một bức tranh: PID nào đang đợi, đợi lock loại gì trên object nào, bị block bởi PID nào, PID block đó đang chạy query gì và đã gi...
🌍 Dev.to

Write-Ahead Logging — WAL Fundamentals

WAL: vì sao Postgres bắt buộc ghi log trước data file, và lý do pg_wal/ đầy đĩa làm cluster ngừng nhận write WAL (Write-Ahead Log) là cơ chế durability lõi của Postgres: mọi thay đổi đối với heap, index, free-space map, visibility map đều phải được ghi xuống WAL và fsync trước khi data file tương ứng được phép flush ra đĩa . Nguyên tắc này, mô tả trong Postgres docs chương "Reliability and the Write-Ahead Log", là cái cho phép một transaction đã COMMIT thoả ACID-D dù OS crash hoặc mất đ...
🌍 Dev.to

Replication Monitoring — HA Dashboard

HA dashboard cho Postgres replication: vì sao "có replica" không đồng nghĩa "đang HA", và cách để replica chết không âm thầm Streaming replication trong Postgres là một tunnel WAL từ primary sang standby: primary chạy một walsender cho mỗi standby, standby chạy một walreceiver nhận WAL và một startup process replay. Đau nhất trong vận hành không phải setup — mà là replica đã ngắt nhiều giờ mà không ai biết, tới lúc primary chết mới phát hiện HA thực ra là single-node từ tuần trước. H...
The Next DEV Weekend Challenge Launches on July 9 - 13. Mark Your Calendar!
🌍 Dev.to

The Next DEV Weekend Challenge Launches on July 9 - 13. Mark Your Calendar!

We're back with another installment of the DEV Weekend Challenge ! If you missed the earlier editions, these are short-form, high-energy challenges designed to fit right into your weekend. We're giving you the heads-up now so you can clear your schedule! How It Works Our challenge prompt will be revealed at launch. Follow #weekendchallenge for updates. You can also keep an eye on the DEV Weekend Challenge page or look out for the official announcement post from the DEV...
🌍 Lobsters

Put NetHack on my community app and this 38-year-old game keeps outsmarting me

I added NetHack to my community app a while back, unmodified upstream binary running on a shared box. I thought I was adding "an old roguelike". I was not prepared. :D It shipped multiplayer in the 80s and nobody calls it that. Bones files. Someone dies on lvl 12, their ghost and their cursed loot get written to disk, and another player on the same machine walks into that grave later. People are haunting each other with zero configuration. "The DevTeam thinks of everything" is not a meme. Ev...
I Have 880,000 Lines of Code, and I Trust Half of Them
🌍 HackerNoon

I Have 880,000 Lines of Code, and I Trust Half of Them

An 18-year-old software developer in Nairobi pitched his massive, 880,000-line school management system to a room of administrators, only to hit a crushing 404 error on the dashboard because he forgot to actually build it.
There Is No Git for AI Filmmaking - Here Is How I Build My Own
🌍 HackerNoon

There Is No Git for AI Filmmaking - Here Is How I Build My Own

The director’s job is not to generate shots. It is to make a film that holds together across weeks of work, across model updates, across a pipeline that has no memory of its own history. The recipe is how you hold it together.
What 12 Farm Zones Revealed About a 562-Hectare Field (Part 2 of 2)
🌍 HackerNoon

What 12 Farm Zones Revealed About a 562-Hectare Field (Part 2 of 2)

In Part 1, we built the framework: 375 H3 Res 10 cells across a 562-hectare Iowa corn field, Moran's I = 0.807, confirming strong spatial structure, and 12 K-Means management zones that cut within-zone soil-nitrogen CV by 66.8%. The zones are built. The cells are assigned. Each row in our DataFrame represents a ~1.5-hectare prescription unit with aggregated soil N, organic matter, pest counts, and mean yield. Now let's open the hood and look at what those zones actually contain, because the nu...
AI Writes 80% of Code Now - Here's Why That's a Different Problem for Fintech
🌍 HackerNoon

AI Writes 80% of Code Now - Here's Why That's a Different Problem for Fintech

AI now writes most of the code at leading engineering teams, but fintech runs on regulated infrastructure where "the code works" isn't enough. This piece breaks down compliance drift: how small, individually-approved AI-generated changes accumulate into systems that no longer match their compliance baseline, using the February 2026 Lovable Row-Level Security breach as a real case study. It closes with what governance-first AI development actually looks like when every line of code has a named en...