标签:#c
找到 18395 篇相关文章
The apps, gadgets, and tools every reader needs
Hi, friends! Welcome to Installer No. 136, your guide to the best and Verge-iest stuff in the world. (If you're new here, welcome, hope your neighborhood isn't as smoky as mine, and also you can read all the old editions at the Installer homepage.) This week, I've been recording the next season of Version History […]
America Broke Its Own Military
Will AI fix prior authorization—or make it worse?
The government is piloting a program that uses AI for insurance-coverage decisions.
What AI did to stackoverflow in a graph
Why do AI company logos look like buttholes? (2025)
4 Best Walking Pads for Small Spaces and Standing Desks (2026)
Our remote team clocked serious hours walking, working, and sometimes jogging to find the best under-desk treadmills for home offices and small spaces.
Fable 5 vs. GPT-5.6 Sol on an NP-Hard Problem: Does /goal help?
Steam Machine: Between 12k and 15k Units Sold per week
Your Period Tracker Is (Probably) Spying on You
Plus: Russian cyberspies turn to infrastructure hacking, DHS repeatedly fails to realize it’d been hacked, a breach exposes an AI music generator’s scraping ways, and more.
The Best Motion Sensors and Home Security Gadgets Without Cameras
If you prefer not to have cameras in and around your home, try one of these more private, WIRED-tested security devices.
LG monitors silently install software through Windows Update without consent
The Missing Row: Auto-Provisioning Derived Records Without the Race Condition
Why some records should be created by your system, not your users, and how to do it safely in .NET. A support ticket lands on your desk: "The Teams page is empty. I added a member, but no team shows up." You check the API. It's behaving exactly as written: { "items" : [], "totalCount" : 0 } Nothing is broken. And that's the problem. The system is faithfully returning nothing, because the row that the page reads from was never created. Somewhere in your design, you assumed a human would create it first. This article is about a small, recurring design decision that quietly causes empty dashboards, confused users, and "is this a bug?" tickets: who is responsible for creating derived records the user, or the system? and how to let the system do it without introducing duplicate rows or race conditions. The problem Let's use a fictional product: a collaboration tool called Loop . In Loop, the important entities are: An Organization (a paying customer). A Member (a person invited into an organization under a plan). A Team a grouping that members belong to, keyed by (OrganizationId, PlanCode) . The admin dashboard lists Teams . Each team card shows a member count. Here's the catch in the original design: creating a Member wrote a member row. Creating a Team was a separate, manual step an admin was expected to do first. If an admin invited members without first creating the matching team, the dashboard showed nothing even though the members clearly existed. From the user's point of view, they did everything right. From the system's point of view, a required row simply didn't exist. Why it matters The Team record isn't independent information. It is fully derivable from the first member invited under a plan. When one entity's existence is implied by another, forcing a human to create it manually is a design smell. It leads to: Empty states that look like outages. Users can't tell "no data" from "misconfigured." Support load. Every skipped step becomes a ticket. Silent data dr
Vite SPA vs Next.js SSR: Real Performance Differences After Migration (With Benchmarks)
The Architectural Shift: Client-Side vs Server-Side For years, the standard for building modern React applications was the Single Page Application (SPA). Vite revolutionized this space by providing an incredibly fast developer experience (DX) and an optimized build process. However, as applications grow, many teams find themselves hitting the performance ceiling of client-side rendering. When we talk about migrating from a Vite-based SPA to Next.js, we aren't just changing build tools; we are moving from a model where the browser does all the work to a model where the server shares the load. In this article, we'll look at the benchmarks of a mid-sized e-commerce dashboard before and after migration. Understanding the Core Metrics To measure the impact truly, we focus on three Core Web Vitals: LCP (Largest Contentful Paint): How quickly the main content is visible. FID (First Input Delay): How responsive the page is to the first interaction. CLS (Cumulative Layout Shift): How stable the visual elements are during loading. Vite SPA Performance (The Baseline) In a Vite SPA, the initial HTML request returns a nearly empty <body> tag with a <script> bundle. The browser must: Download the HTML. Download the JavaScript bundle. Parse and execute the React code. Fetch data from an API. Finally, render the UI. Benchmark Results: LCP: 2.4s (on 4G connection) FID: 45ms TBT (Total Blocking Time): 320ms While the DX is lightning fast, the user experience suffers from the "white screen of death" during the initial bundle download. Next.js SSR/ISR Performance (The Post-Migration Result) Next.js changes this via Server-Side Rendering (SSR) or Incremental Static Regeneration (ISR). The server fetches data and pre-renders the HTML. The browser receives a fully formed UI immediately. Benchmark Results: LCP: 0.8s (on 4G connection) FID: 55ms TBT: 180ms There is a slight increase in FID because the browser's main thread is busy "hydrating" the static HTML into an interactive React app, b
How Google’s New Gemini Rates Work and How to Track Your Usage
Now that Google has changed how its usage quotas are tallied, you might not get as many AI responses as you did before.
FIFA Doesn’t Have a Plan to Deal With Climate Change
This year’s World Cup has faced sweltering heat and humidity. Now it may need to deal with wildfire smoke.
Left of the Loop: The Gymnasion
Before a young Athenian took his full place in the city, he spent two years in the ephebeia. Training happened in the gymnasion, organized by tribe, the same tribes that would later send him to represent them in the Boule itself. Nobody handed him full standing first and hoped the judgment would follow. This should have been post seven. It’s showing up as sixteen because the gap only became visible once the room was real enough to test against. The Agora described what a Spec Session does. It never asked whether everyone walking into that room shares an accurate picture of what the agent can actually do. Most rooms don’t. Someone watched a demo and thinks the agent can do anything. Someone else got burned by a bad output three weeks ago and doesn’t trust it with anything real. Nobody’s intuition has been tested against the same tasks, and the spec that comes out of that room ends up too ambitious or too conservative depending on whose untested belief happened to speak first. That gap has a name in Athens. The gymnasion existed because nobody was handed a place in the city first and expected to develop judgment on the job. The ephebeia ran two years, training built around a specific fact. Physical readiness and civic judgment weren’t taught in separate places. They happened in the same space, under the same supervisors, organized by the same tribal groupings that would later structure how the city actually governed itself. The same word, gymnasion, ended up naming both the training ground for eighteen-year-olds and the buildings where Plato and Aristotle did their most serious thinking. Academy and Lyceum were gymnasia first. Nobody separated the trial from the reflection. The trial was how the reflection got earned. That’s the part worth taking seriously. Testing a tool and understanding a tool were never two different activities. The testing is how the understanding gets built. A team that reads documentation about what an agent can do has a description. A team tha
Your PDFs Are Eating Your LLM's Tokens for Breakfast
Hello, I'm Maneshwar. I'm building git-lrc, a Micro AI code reviewer that runs on every commit. It is...
Show HN: Workaround – Unstar GitHub Repos in Bulk
Github currently doesn’t let you unstar repositories in bulk. To resolve that let me introduce Workaround : a web app where users can not only unstar GitHub repos in bulk but also use AI filters and discover and star repos with AI. https://github.com/Ayush0054/workaround
I was tired of studying security tools from static cheatsheets, so I built ShellStack
I was tired of studying security tools from static cheatsheets, so I built ShellStack When I started prepping for CEH and doing more CTFs, I ran into the same wall over and over: every resource for learning offensive security tools was either a wall of text in a PDF, a GitHub gist with no context, or a cheatsheet that assumed you already knew what half the flags did. I didn't want notes. I wanted something that felt like sitting at an actual terminal — where I could browse tools, see real commands with context, and build the exact command I needed without digging through five tabs. So I built ShellStack . 🔗 Live: https://shell-stack.vercel.app/ 💻 Code: https://github.com/shlokkokk/ShellStack What it actually does ShellStack is a cybersecurity study platform built around one idea: learning security tools should feel operational, not passive. 280+ curated offensive security tools , organized into 19 categories, each with deep-dive docs — commands, common flags, when to use it, installation notes, and real examples Interactive command builders — instead of memorizing flag combos, you fill in a form and get a ready-to-copy command generated live 20 CEH-aligned learning modules , built for structured study instead of flipping through slides 1,000+ command cheat sheet with fast search and one-click copy A terminal-inspired UI that actually feels like a cyber-ops console instead of another docs site The build Stack: React 19, TypeScript, Vite, Tailwind CSS, GSAP, React Router, Radix UI primitives A few things I focused on: Search that actually ranks results. Early on, tool search was just naive string matching, which meant typing "nmap" could bury the actual Nmap entry under ten unrelated tools that happened to mention it in a description. I rebuilt it to weight exact and prefix matches higher, so the tool you're looking for shows up first, not buried on page 3. Command builders that don't feel like a form. The tricky part wasn't the UI, it was designing a data model that