今日精选
HOT最新资讯
共 37922 篇Ring programming language version 1.27 is released!
submitted by /u/mrpro1a1 [link] [留言]
The golden age of handheld gaming is already over
For a few glorious years, a $399 portable gadget could run almost anything you'd want to play. In 2022, the Steam Deck finally made PC gaming portable and affordable. I played through the vast majority of Elden Ring on a Steam Deck, agape that such a rich world could comfortably fit between my two hands. […]
Understanding known_hosts and Host Key Verification: What It Protects Against and How TOFU Works
That "authenticity of host can't be established" message isn't just noise. Here's what's actually happening — and why blindly typing "yes" is a security mistake. Every developer has seen this: The authenticity of host 'example.com (203.0.113.1)' can't be established. ED25519 key fingerprint is SHA256:abc123xyz... Are you sure you want to continue connecting (yes/no/[fingerprint])? Almost everyone types yes without reading it. Then they move on. This message is SSH trying to protect you from one of the most dangerous attacks in network security: the man-in-the-middle attack. Understanding what's happening here — and what the ~/.ssh/known_hosts file actually does — will change how you think about every SSH connection you make. The Problem SSH Is Solving When you connect to ssh user@example.com , how do you know you're actually talking to example.com ? You can't rely on the IP address — IP addresses can be spoofed or rerouted. You can't rely on DNS — DNS can be poisoned. You can't rely on the network path — traffic can be intercepted at any point between you and the server. Without verification, an attacker positioned between you and the server could intercept the connection, pose as the server, decrypt everything you send, re-encrypt it, and forward it along. You'd type your password or authenticate with your key and never know the attacker saw every keystroke. This is a man-in-the-middle (MITM) attack . It's not theoretical. It happens on compromised networks, corporate proxies, malicious Wi-Fi hotspots, and misconfigured infrastructure. SSH's defense is host key verification . Every SSH server has a unique cryptographic identity — its host key. Before you exchange any sensitive data, the server proves it holds the private key corresponding to a public key you've previously verified. If the keys don't match, SSH warns you — loudly. What a Host Key Actually Is When OpenSSH is installed on a server, it automatically generates a set of host key pairs. These live in /etc
A-Z AI Glossary
AI Glossary: A to Z An A-to-Z glossary of AI terms, created with help from AI itself. Because in 2026, the best way to study AI is apparently to ask AI itself. 🤣 Written for beginners and practitioners alike. Each term includes a plain English definition and a real-world example. Quick Navigation A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z ↑ Back to top A Term Definition Example Agent (AI Agent) An AI system that perceives its environment, makes decisions, and takes autonomous actions to achieve a goal A coding agent that writes, runs, and debugs its own code without human intervention AGI (Artificial General Intelligence) A hypothetical AI that can match or exceed human-level intelligence across any task — does not yet exist Often cited as a long-term goal by companies like OpenAI and DeepMind AI (Artificial Intelligence) The field of computer science focused on building machines that can perform tasks normally requiring human intelligence ChatGPT writing an essay, an algorithm detecting cancer in X-rays AI Ethics The principles and practices for developing and deploying AI in ways that are fair, transparent, and safe Auditing a hiring algorithm to ensure it doesn't discriminate by gender or race AI Safety The field dedicated to ensuring AI systems remain reliable, controllable, and beneficial as they grow more capable Research into preventing AI from pursuing goals that harm people Alignment The challenge of ensuring an AI system's goals and behaviour match what its designers and users actually intend Preventing a powerful AI from optimising for a metric in a way that causes unintended harm Annotation The process of labelling raw data so it can be used to train supervised learning models Humans drawing bounding boxes around cars in images to train a self-driving model API (Application Programming Interface) A defined interface that lets software systems communicate with each other Calling the OpenAI API to
From a Forgotten Multiplayer Prototype to a Chaotic Hidden-Object Game — Reviving WhatUsee 🚀
GitHub Finish-Up-A-Thon Challenge Submission There’s something strangely emotional about reopening an old unfinished game project. Especially one that once felt like “the next big idea” at 2 AM during a hackathon 😭 You open the folder expecting nostalgia… …and instead find: broken UI random commits duplicated code missing assets unfinished features and functions named things like test2_final_REAL.js That’s exactly what happened when I reopened WhatUsee . A multiplayer browser game I originally started building as a fun experimental idea. At first, it wasn’t meant to become anything serious. It was just a simple concept: “What if players had to race against each other to identify hidden objects inside chaotic images?” That tiny idea slowly turned into a real-time multiplayer hidden-object game. And honestly? At the beginning, building it was insanely fun. 💡 The Original Idea Behind WhatUsee Most multiplayer browser games focus on: shooting drawing trivia racing But I wanted something different. Something that created those chaotic: “WAIT I SEE IT—NO WAY 😭” moments. The idea was simple: Players join a room together. An image appears. Somewhere inside that image is: a hidden object an animal a logo a random item or something cleverly camouflaged And everyone races to identify it before the timer ends. Fast reactions. Visual focus. Pure multiplayer chaos. That became WhatUsee . At first, the project was extremely small. Just: Socket.IO basic image display simple guessing and a rough scoreboard No polish. No proper lobby. No smooth UI. But even in that early state… …the game already felt fun. And that’s what made me continue building it. 😭 Then The Project Slowly Got Abandoned Old unfinished WhatUsee multiplayer game interface with basic UI and minimal styling Like most side projects… life happened. College work. Burnout. Other responsibilities. Random unfinished ideas. And slowly, WhatUsee became: “that project I’ll definitely finish later.” The game technically worked.
Cloudflare Adds Support for Claude Managed Agents
Cloudflare recently added support for Claude Managed Agents, allowing developers to run and manage Claude agents within Cloudflare. Developers can connect agents to private systems, choose their runtime environment, and monitor agent activity using Cloudflare services. By Renato Losio
Handling Localization in PCF Components: A Practical Walkthrough
When you build a PowerApps Component Framework (PCF) component that will be used across multiple geographies, need to serve labels, button captions, validation messages, and tooltips in the user's preferred language. PCF has a built-in answer based on .resx resource files, the same format used by .NET applications. The mechanism is elegant in production — but surprisingly tricky during local development. This walkthrough takes you through the full setup, step by step, and then explains a problem that arises while locally debugging your PCF. Step 1 — Create the strings folder and your first .resx file PCF expects your localized strings to live in a folder (the conventional name is strings ) inside your component directory. Each language gets its own file, named with the pattern: <ComponentName>.<LCID>.resx The <LCID> part is the numeric Locale ID , not the textual code ( en-US , it-IT ). The framework relies on this naming convention to identify which file to load for a given user. Common LCIDs: Language LCID English (en-US) 1033 Italian (it-IT) 1040 German (de-DE) 1031 French (fr-FR) 1036 Spanish (es-ES) 3082 Japanese (ja-JP) 1041 Chinese Simplified (zh-CN) 2052 Portuguese (pt-BR) 1046 For a component called EquipmentGrid , the structure looks like this: EquipmentGrid/ ├── ControlManifest.Input.xml ├── index.ts └── strings/ ├── EquipmentGrid.1033.resx ├── EquipmentGrid.1040.resx └── EquipmentGrid.1031.resx Tip: Always include 1033.resx (English). The PCF runtime falls back to the first <resx> declared in the manifest when the user's preferred language isn't available, and English is the safest default. Step 2 — Author the resource file content A .resx file is just XML. Here's a minimal Italian version ( EquipmentGrid.1040.resx ): <?xml version="1.0" encoding="utf-8"?> <root> <resheader name= "resmimetype" > <value> text/microsoft-resx </value> </resheader> <resheader name= "version" > <value> 2.0 </value> </resheader> <resheader name= "reader" > <value> System.Resou
AI Agents Are Great at 80% of Our Code. The Other 20% Is Why We Still Need Seniors.
We let AI agents loose on a payment platform. They crushed the boring stuff. Then they silently broke the stuff that matters. A survey came out last week. 54% of all code is now AI-generated. Up from 28% last year. I read that number and thought: yeah, that tracks. We're probably in that range too. But here's the thing nobody's asking — which 54%? Not all code carries equal weight. A CRUD endpoint for fetching merchant details? Low risk. The webhook handler that transitions a payment from pending to complete ? That's someone's rent. Someone's payroll. Get that wrong and money moves where it shouldn't, or worse, money doesn't move at all. I'm the CTO of a payment platform. FCA-authorised, processing real money, real merchants, real consequences. We run NestJS microservices, Docker, Traefik — the usual stack. And we've been using AI agents aggressively for over a year now. I'm not here to tell you AI is dangerous. It's not. I'm here to tell you it's dangerous when you forget what it's actually good at. The 80% Where AI Agents Are Genuinely Brilliant Let me give credit where it's due. AI agents have made our team faster in ways that would have seemed absurd two years ago. API scaffolding. Generating service boilerplate. Writing Zod validation schemas. Spinning up new endpoints. Creating test stubs. Refactoring imports. Migrating patterns across repos. We run multiple microservices. When we need a new service, an agent can scaffold the entire thing — module structure, base configuration, Docker setup, Traefik labels — in minutes. What used to be a half-day of copy-paste-and-tweak is now a conversation. When we overhauled our env management across all repos, AI agents did the grunt work. They mapped every .env file, found naming conflicts, identified common variables, and generated a unified Zod schema. What would have taken a team days of grep-and-spreadsheet work took hours. For this 80% of the codebase — the predictable, pattern-following, structurally repetitive code
I Thought Coding Was The Job
Two years ago, when I got my first freelance client, I was still in my final semester of college. A...
How to Monitor AI Agents in Production
TLDR Monitoring AI agents in production requires distributed tracing: a single user request fans out into 10 or more internal operations, and logs alone cannot show you which step is slow, failing, or burning your token budget. OpenTelemetry's gen_ai.* semantic conventions give you standardized span attributes for LLM calls, tool invocations, and agent steps. Some are stable today; others are still experimental. Auto-instrumentation libraries (OpenLLMetry, OpenInference, OpenLIT) cover most agent frameworks with two to three lines of initialization code. You do not change your agent code. Traces ship to OpenObserve over OTLP. From there you get SQL-queryable trace data, token usage dashboards, cost attribution by agent and model, and alerting on latency and cost anomalies. OpenObserve also exposes an MCP server. You can query your live agent traces from a Claude or GPT session without opening a dashboard. Why Agents Are Harder to Monitor Than a Single LLM Call A single LLM call is straightforward to observe. One HTTP request, one response, one latency number. You can log the input and output and call it done. An agent is different. When a user sends a message, the agent calls an LLM to decide what to do, invokes a tool, processes the result, calls the LLM again, possibly calls another tool, and eventually returns a response. That one user message becomes ten or more internal operations. Some of those operations call external APIs. Some retry. Some spawn sub-agents. Without distributed tracing, you see none of this structure. You know the response took 8 seconds. You do not know whether the LLM took 7 of those seconds or whether a tool made three retries before timing out. Four categories of problems appear in production agents that you cannot debug without traces: Latency. Which step is slow? The LLM call? The tool execution? A retry loop the agent entered because the tool returned ambiguous output? Cost. Which agent, which task, which model is consuming tokens? A s
I Analyzed 1,000 AI-Generated Blog Posts for Quality. Here's the Data.
Last year, I was doing something that felt increasingly absurd: manually reading AI-generated content to decide if it was "good enough." PostAll — the content automation tool I've been building — was producing hundreds of blog posts per week for clients. And I had no systematic way to evaluate quality at scale. I was spot-checking. Vibes-checking, really. That doesn't work at volume. So I built a programmatic quality analysis pipeline, ran it over 1,000 AI-generated posts, and let the numbers tell me what my gut was missing. The findings surprised me. A few of them genuinely changed how I think about AI content quality. What I Actually Measured First, a definition of terms, because "quality" is almost meaninglessly vague in this space. I broke quality into five measurable dimensions: Readability — Flesch-Kincaid grade level and reading ease score Keyword density — Target keyword frequency and distribution across the post Grammar error rate — Errors per 1,000 words, caught via LanguageTool's API Factual accuracy — Claims that could be verified programmatically (dates, statistics, named entities cross-referenced against a knowledge base) Structural consistency — Presence of expected elements: intro hook, subheadings, conclusion, CTA I used 1,000 posts across three categories: SaaS product descriptions, long-form "how-to" articles (1,200–2,000 words), and listicles (500–900 words). All were generated by PostAll using GPT-4o, with various prompting strategies. The Setup The analysis pipeline isn't complicated, but the piece that makes it useful is the batch processing layer: import anthropic import language_tool_python import textstat from dataclasses import dataclass from typing import Optional import json @dataclass class QualityReport : post_id : str flesch_reading_ease : float flesch_kincaid_grade : float grammar_errors_per_1000_words : float keyword_density : float structural_score : int # 0–5 based on element presence flagged_claims : list [ str ] overall_score :
From Forgotten Repo to Live App: How I Finished Photremium.com Using GitHub Copilot
This is a submission for the GitHub Finish-Up-A-Thon Challenge What I Built Photremium is an all-in-one, lightning-fast web utility platform engineered for high-performance image processing. Built to eliminate the friction of clunky, ad-heavy design tools, it provides users with instantaneous, client-side and serverless tools like high-fidelity background removal, image resizing, custom QR code generation and many more. As a software engineering student, this project represents my vision of creating a modern production platform that prioritizes raw speed, high usability, and robust SEO architectural patterns. Live Platform: photremium.com GitHub Repository: itsaminaziz/photremium.com Demo The Live Application Experience the full toolset live right now at photremium.com . Key Features in Action Feature Implementation Speed / Processing Compress IMAGE Client-side Canvas / Web Workers Instantaneous local compression Resize IMAGE Client-side React & HTML5 Canvas Real-time pixel/percent adjustment Crop IMAGE Client-side UI & Visual Crop Editor Instantaneous browser-based cropping Convert to JPG Client-side File Readers (Bulk Upload) Instant batch conversion via browser Convert from JPG Client-side Canvas (PNG/GIF compiler) Multi-format local generation QR Code Generator Vector-based SVG/Canvas rendering Instant download generation QR Code Scanner Client-side WebRTC Camera / File API Real-time local camera processing Blur Face Hybrid Client-side Face Detection Instant local privacy overlay mapping Remove Background (AI) Cloud-based Serverless / Cloudflare Edge < 2 seconds (Any device image processing) Watermark IMAGE Client-side Layer Composition Instantaneous text/graphic stamping The Comeback Story The Before (A Half-Baked Local App) Photremium started as an ambitious prototype on a local machine. While the fundamental image-processing utilities worked locally, the project hit a massive wall when it came to global deployment and production readiness. It was plagued with
Custodial vs trust-minimized: two settlement layers for the agent economy
"Settlement layer for the agent economy" is suddenly a crowded sentence. In the last few weeks, two very different things have started competing for it. OKX Agent Payments Protocol (APP) announced in May 2026 — backed by AWS, Alibaba Cloud, Uniswap, Paxos, QuickNode, with ecosystem support from Base, Ethereum Foundation, Solana, Sui, Aptos, Optimism — describes itself as the settlement layer where AI agents pay each other. AEON's $8M pre-seed (May 20, YZi Labs) described itself the same way. There is a list now, and it is getting longer. We build one of the things on this list, and we think the framing is wrong. These are not rivals jostling for the same slot. They are two different layers, and they answer two different versions of the same question: what does an agent need to settle a trade? This piece walks through the two layers, where each is the right answer, and why an honest comparison gets you further than picking sides. What APP and other custodial-venue protocols actually do A useful way to read OKX APP — and similar moves coming from the larger exchanges — is to treat them as a venue layer . An exchange already holds inventory across many chains. It already has the risk engines, the liquidity, the legal arrangements with banks and partners. Adding an agent-facing API on top of that machinery is a relatively short walk. What an agent gets, in exchange, is breadth. Many chains, many assets, batched and netted settlement against deep internal books, and fast execution because the exchange is just moving entries in its own ledger. For an agent whose job is "find a price somewhere and execute now," that is a powerful primitive. What the agent gives up, in exchange, is a counterparty. At any moment between deposit and withdrawal, the agent's balance is the venue's promise to pay. That promise is normally good. The agent has no way to verify, from inside its own logic, that it still is. This is not a criticism of OKX APP. It is the structural shape of any venue-
Treasure Hunting at Scale: Why Our Cache-Aside Cache Cost Us 40% in Tail Latency During Black Friday
The Problem We Were Actually Solving During load testing at 50k concurrent hunters hitting the hunt endpoints, p99 latencies stayed under 200ms. But at 270k concurrent users in production, the hunt page suddenly took 1.8 seconds to load, triggering cascading 502s from our CDN. The error surfaced in Datadog as hunt_page_render_time_bucket{le=2.0} = 42% while le=0.5 dropped to 18%. The fingerprints were identical across three regions: high latency correlated exactly with Redis cache miss rate spiking from 12% to 48% during the hunt start window. Our cache-aside pattern with a 30-second TTL was amplifying miss storms. We discovered that the treasure hunt start time was synchronised by marketing campaigns. When the clock struck 10:00:00 UTC, 270k users hit the endpoint within 30 seconds. Each request would check the cache (miss), fetch from PostgreSQL, render the page, and write the cache entry. But PostgreSQL couldnt keep up with 9k queries per second during that window, causing query queueing and connection exhaustion. The Redis layer, designed for 150k ops/sec, was not the bottleneck. The database was. What We Tried First (And Why It Failed) Our first attempt was to increase Redis TTL from 30 seconds to 5 minutes. This reduced cache misses from 48% to 24%, and p99 latency improved to 650ms. But at 320k concurrent users, the latency still spiked to 1.4s because the underlying database queries were still hitting the same table with the same indexes. The Redis layer was masking symptoms, not solving the root cause. Next, we tried database read replicas. We spun up three read replicas and routed hunt queries to them using a weighted service mesh. This worked for a few minutes, but then we hit replication lag. The replicas fell 800ms behind primary, causing hunt pages to display stale treasure locations. Our operators started getting customer complaints about seeing the wrong treasure coordinates. We rolled back within 15 minutes. We even tried increasing PostgreSQL share
[ Removed by Reddit ]
[ Removed by Reddit on account of violating the content policy . ] submitted by /u/Economy_Goose_8561 [link] [留言]