🌍 Dev.to

Single-flight кэш: как один горячий ключ не роняет базу

На podbor-minuta.ru есть тяжёлые запросы к базе, результат которых мы держим в кэше: списки квартир, сводные цифры по подборкам. Пока значение в кэше есть, всё быстро. Проблема начинается в момент, когда оно протухает. Однажды под нагрузкой мы увидели пачку ответов с ошибкой 500 по таймауту. База при этом была жива, но запросы к ней вдруг встали в очередь и упёрлись в лимит соединений. Разгадка оказалась в том, как мы обновляли кэш. Логика была наивная: если значения в кэше нет, идём в баз...
🌍 Dev.to

Single-flight caching: how one hot key stops taking the database down

On podbor-minuta.ru some database queries are heavy, so we keep their results in a cache: apartment lists, aggregate numbers for listing pages. While the value is in the cache, everything is fast. The trouble starts the moment it expires. One day under load we saw a batch of 500 responses timing out. The database was alive, but queries to it suddenly queued up and hit the connection limit. The answer was in how we refreshed the cache. The logic was naive: if the value is not in the cache, ...
🌍 Dev.to

The Whole Loop, One Window

I've spent years working with Git. Not just using it, but living in it. Feature branches, code reviews, releases, hotfixes, open source, side projects, client work—the rhythm becomes second nature. And yet, over time, I noticed something strange. The moment I needed to do anything beyond committing code, I was expected to leave. Leave the Git client to create a pull request. Leave it to review changes. Leave it to check project traffic. Leave it to manage branches. Leave ...
🌍 Dev.to

Upgrade your Test Suite with fn-monitor

Modern JavaScript testing focuses heavily on testing public outputs and user behavior rather than chasing line-by-line or branch-by-branch coverage. This is because tests that check final outputs survive when you rewrite internal logic or change how a loop works, and they already catch the majority of regressions. Despite this, if you write complex financial calculations, security rules, or state machines where an unhandled condition cannot be tolerated, then a green test on the final value i...
🌍 Dev.to

Gitcard Weekly Challenge #1: Build Something That Solves an Everyday Problem

Developers, builders, and makers — welcome to the first Gitcard Weekly Challenge . GitCard: https://gitcard.io This week's challenge is simple: 🎯 The Challenge Build a small application, tool, website, API, automation, or AI project that solves an annoying everyday problem. It can be something that saves time, automates a repetitive task, helps people make better decisions, improves productivity, or simply makes life easier. Your project does not need to be hu...
🌍 Dev.to

Breaking Up Big SwiftUI Views the Right Way

Why computed properties help readability, what @ViewBuilder actually does, and when a separate View type matters Every SwiftUI codebase eventually grows a view nobody wants to open. Four hundred lines. A body that scrolls forever. Several layers of modifiers. State, navigation, sheets, animations, and business logic all living in the same place. The usual first attempt at cleaning it up is to split body into computed properties: var body : some View { VS...
🌍 Dev.to

The Grid Awakens: CSS Grid vs Flexbox — A Star Wars Tale

The Quest Begins (The "Why") I was building a dashboard for a side‑project last month. The design called for a header, a sidebar, a main content area, and a footer that needed to stay glued to the bottom no matter how short the page was. I reached for Flexbox because, honestly, it’s the go‑to for most layout tasks. I whipped up a column flex container, stuck the sidebar and main area inside, and set flex: 1 on the main block so it would take up the remaining space. Everything looked f...
🌍 Dev.to

The dashboard watched its own repair

a5167a2ab2fdb8e83 . That was a cell in legbar's SUBAGENTS pane — the panel that answers "what work did a session farm out." It is a real identifier, it is unique, it is even stable. The master looked at a screen full of them and said the only thing worth saying: the numbers don't help much. He was pointing at the finding of the whole release. An identifier you cannot join against the tool you would act in is decoration, not information. No session list in Claude Code or Cursor shows ...
🌍 Dev.to

Why Doesn't ChatGPT Know Your Startup? 48 Tested, 4 Known

Quick answer: ChatGPT doesn't know your startup because name recall comes from training data, and a young product has few of the third-party mentions (G2, Crunchbase, Reddit, press) that models learn names from. But a search-grounded model can still find you by category. In a test of 48 AI-built startups, a model named only 4, yet recommended 28 of them when asked for the best tools in their category. I ran 48 AI-native products through a recognition test in one afternoon. A language model...
HackerNews

An update on leaving Gmail for Fastmail

Article URL: https://moddedbear.com/an-update-on-leaving-gmail-for-fastmail/ Comments URL: https://news.ycombinator.com/item?id=49334409 Points: 96 # Comments: 77
HackerNews

GPT-5.6 Sol Pricing Cut by 50%

Article URL: https://openrouter.ai/openai/gpt-5.6-sol Comments URL: https://news.ycombinator.com/item?id=49337602 Points: 19 # Comments: 2
HackerNews

Fairphone 6 and PostmarketOS working main camera

Article URL: https://catcrafts.net/posts/fairphone-6-postmarketos-working-main-camera Comments URL: https://news.ycombinator.com/item?id=49338285 Points: 47 # Comments: 11
HackerNews

scScript for Linux

Article URL: https://scapplications.com/ Comments URL: https://news.ycombinator.com/item?id=49338428 Points: 6 # Comments: 1
HackerNews

How Bluesky draws its logo on screenshots

Article URL: https://timmarinin.net/2026/bluesky-screenshots/ Comments URL: https://news.ycombinator.com/item?id=49338459 Points: 116 # Comments: 91