今日已更新 117 条资讯 | 累计 30572 条内容
关于我们

标签:#m

找到 9055 篇相关文章

AI 资讯

Anthropic cuts API costs with Opus 5 as rivals unite to defend open weights

Anthropic dominated the day’s product cycle with the surprise launch of Claude Opus 5, a model that effectively obsoletes the company's own flagship architecture at half the cost and immediately topped third-party leaderboards [1] [3] [95] . Meanwhile, a massive geopolitical rift formalized as Microsoft, Meta, and Nvidia launched a coordinated lobbying effort to protect global open-weight pipelines [41] [93] , just as the Chinese model Kimi K3 demonstrated an alarming autonomous zero-day network exploit confirmed by international safety institutes [96] [104] . Claude Opus 5 disrupts frontier model pricing tiers Anthropic launched Claude Opus 5 at the same $5/$25 per million token price as Opus 4.8 , positioning it as a hyper-efficient model that functionally matches or beats the flagship Fable 5 on third-party coding evaluations like CursorBench [1] [3] . Visual reasoning capabilities mark a massive step-change , with the model successfully writing its own computer-vision pipeline to extract part geometries from raw pixels on the Frontier-Bench, while also perfectly scoring 42/42 on the IMO 2026 [54] [57] . Aggressive safety guardrails are simultaneously alienating power users , who report that while Opus 5's systemic Auto Mode bounds prompt injection success rates to near-zero, the model executes opaque "silent downgrades" to weaker architectures when it detects sensitive contexts rather than issuing standard refusals [33] [91] [95] . // Detect dark theme var iframe = document.getElementById('tweet-2080700479940759919-684'); if (document.body.className.includes('dark-theme')) { iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2080700479940759919&theme=dark" } The takeaway: Anthropic is successfully driving down the localized cost of intelligence, but its blistering capability gains are artificially breaking its own pricing tiers and irritating developers with heavy-handed safety routing. Hardware and cloud alliance pushes back on open-weight bans Micr

2026-07-25 原文 →
AI 资讯

Policy Cascades for Governed Multi-Tenant Agent Platforms

Most agent platforms give you one configuration file and hope. When you are running agents for more than one team — or more than one customer — a single config breaks down fast. Each workspace needs its own model, its own service access, its own secrets, but someone has to guarantee that no workspace can spend more than its budget or reach a service it was never authorized to use. The answer is a policy cascade. Every setting — model, temperature, allowed services, API keys, skill availability, TTL defaults — resolves through three ordered tiers: company, repo, and workspace. A lower tier can narrow an upstream ceiling but never widen it. That single rule is what makes it safe to hand a workspace to a team without handing them the keys. How the cascade resolves Three tiers, bottom-up. The company tier sets the floor. The repo tier overrides it. The workspace tier overrides both. The resolution order is fixed for every kind of setting: Kind Company tier Repo tier Workspace tier Policy fields defaults override override Variables floor override override Skills floor override override Secrets last-resort fallback override first-resolved Notice that secrets run in reverse. A workspace-tier credential wins over the repo and company defaults, and an empty value at the workspace tier falls through to the repo. This means you set a per-customer token where it is used and fall back up the chain only when it is absent. You are never forced to duplicate credentials across every workspace. Narrow-only: the safety property The cascade is not a free-for-all override. For service access, budgets, quotas, and TTL defaults, a lower tier can only narrow what the tier above it allows. If the company grants a repo [github, slack, search] , a workspace under that repo can select a subset — [github, search] — but it cannot add linkedin . The resolve-time intersection is enforced, not advisory. This extends to per-service API surface control. Granting access to GitHub does not mean grantin

2026-07-25 原文 →
AI 资讯

What actually belongs in an architecture decision record (and what doesn't)

Most architecture decision records fail for the opposite reason people think. The issue usually isn't that teams forget to write them. It's that the ones they write are filled with the wrong content. The key information a reader needs—why this option instead of the others—often gets buried on page three under a list of API changes. An ADR has one job: capture a decision that is costly to reverse, along with the reasoning that led to it, while that reasoning is still fresh. That's all. It isn't a design document, a specification, or a collection of research. If you keep that focus, everything else about what to include or leave out will follow naturally. The format that still works Michael Nygard's original ADR template from 2011 (title, status, context, decision, consequences) has lasted for a reason. It directly addresses the key questions a future reader has: What was the situation? What did we decide? What did we give up? Teams that add ten extra sections, like owners, review dates, risk matrices, or approval lists, usually end up with a document no one finishes reading, which defeats the purpose. If your ADR template is longer than the time it takes to fill it out for a simple decision, cut sections until it’s more concise. A useful rule of thumb is that an ADR longer than a page and a half is often a design document masquerading as an ADR. This isn’t a strict rule, but I haven’t seen a truly good ADR exceed 600 words. The decisions worth documenting this way can be stated, justified, and owned in about a page. If that's not possible, the record isn’t the issue. The decision is probably still tied up with other unresolved matters. What belongs The decision, stated clearly. "We will use event-driven integration between the order and inventory services instead of synchronous REST calls" is a decision. "The order service integrates with inventory" simply describes the current state and belongs in a wiki, not an ADR. The challenges faced. Describe the two or three a

2026-07-25 原文 →
AI 资讯

Defeating the Multi-Tenant SaaS Concurrency Trap in PostgreSQL

Most backend engineers implement multi-tenant quota checks using a standard "read-then-write" pattern. In production, this pattern is highly unsafe: SELECT grading_scans_remaining FROM profiles; If greater than 0, execute the application logic. UPDATE profiles SET grading_scans_remaining = grading_scans_remaining - 1; Under high volume or rapid concurrent requests, two independent processes will read the exact same balance before either one deducts usage. This race condition allows multi-tenant users to bypass your billing gates entirely. To solve this, you have to bypass the frontend and application-level checks, enforcing an atomic database operation that serializes the row update first. I have open-sourced a reference framework that outlines explicit subscription enums, core multi-tenant schemas, and a native VS Code / Cursor snippets configuration to speed up your local database modeling. 📂 Check out the repository on GitHub: { https://github.com/dollykm49/PostgreSQL-SaaS-Multi-Tenant-Subscription-Architecture-reference-framework- } What's inside the repository: Strictly Typed Enums: Centralized business rules handled natively by the database engine. Granular Balance Tracking: Optimized data-layer mapping for profiles and reset states. postgres-saas.code-snippets Engine: A local IDE configuration file that lets you deploy this core schema straight from your code editor by typing pg- shortcuts. For teams building commercial applications looking to skip weeks of writing custom migrations, testing concurrency edge-cases, and debugging row-locking security rules, the repository also includes a link to the extended 28-page production system bundle. Feedback on the multi-tier validation parameters is highly welcome!

2026-07-25 原文 →
AI 资讯

Agent Memory Is Not Merely a Storage & Retrieval Problem, It Is an Architecture Problem.

Most teams building AI agents are treating memory and inference cost as something the next model release will eventually fix. They believe that a bigger context window, a smarter retriever, a cheaper token rate, etc. would absolve the need for a system for solving agent memory. This posture is convenient but it is wrong. What an agent remembers, when it forgets, and how much it costs to reason are architectural decisions. They get made long before any model is involved, and no amount of model improvement fixes a bad architecture underneath it. Memory is a lifecycle, not a buffer Most agent systems today treat context as one shared blob: everything goes in, nothing meaningfully comes out, and the "solution" to running out of room is a bigger window. That is not a memory system, it is a pile. A lifecycle approach breaks this into stages that each need their own design: Ingestion: what gets written to memory in the first place, and at what granularity Scoping: what is relevant to this agent, this user, this task, versus what is just noise that happened to be nearby Decay: what loses relevance over time and should be forgotten deliberately, not accidentally truncated when the buffer fills up Retrieval: what gets pulled back into context for a given turn, and why Treat these as one undifferentiated blob and you get exactly the failure modes everyone complains about: agents that "forget" things that mattered and "remember" things that did not. Where the cost actually goes Most of the token spend in agent systems is not the reasoning itself, it is carrying forward context that no longer earns its place. Every stale fact, every resolved sub-task, every turn of small talk that gets re-sent on every subsequent call adds up, and it adds up silently, because nothing in a shared-buffer architecture prompts you to ask whether that context is still worth its cost. Getting this right requires treating cost as a lifecycle property too, not a line item you optimize after the fact. We

2026-07-25 原文 →
AI 资讯

Your LLM Fallback Probably Isn't a Fallback

At 04:00 UTC, every model call through our LLM gateway started returning HTTP 400. Not some calls. All of them. Our tier-1 CI gate flagged it, and the fix was committed at 04:26 UTC the same morning — about 26 minutes end to end. This is the post-mortem. What happened DeepSeek retired two API model names — deepseek-chat and deepseek-reasoner — at their V4 cutover around 2026-07-24 15:59 UTC. The replacements are deepseek-v4-pro and deepseek-v4-flash . Our gateway config still declared both retired names. Starting roughly twelve hours after the retirement, every model request routed through the gateway hit a 400 with the body: The supported API model names are deepseek-v4-pro or deepseek-v4-flash, but you passed . A live API check confirmed the shape of the cutover with four requests, same valid key: Model name Response deepseek-v4-pro HTTP 200 deepseek-v4-flash HTTP 200 deepseek-chat HTTP 400 deepseek-v4-pro-quantized HTTP 400 The two working names are the replacements. The two retired names — the ones our config referenced — returned 400. The fourth row is a name that does not exist at all, included because an earlier reading of a truncated error message had suggested it; shipping it would have left the platform broken. We'll come back to that. Why the fallback didn't help We had a fallback configured. Three separate model references in our policy config — the default CLI/workflow model, the chat model, and the shared fallback model — all pointed at the two retired names. All three lived under the same vendor and the same API key. When the primary call returned 400, the gateway tried the fallback. The log told the story in two adjacent lines: the 400 from the provider, and then Error doing the fallback: carrying the identical error. The fallback died in the same instant as the primary because it was the same thing wearing a different label. This is the structural problem. A fallback that shares a provider and an API key with its primary is not resilience. It protec

2026-07-25 原文 →
开发者

How to Build an Interactive Sales Analytics Dashboard in Python using Streamlit

Streamlit makes it remarkably fast to transform raw Python scripts into interactive, web-based data applications without needing any frontend knowledge in HTML, CSS, or JavaScript. In this tutorial, we will build a full-featured **Sales Analytics Dashboard** complete with real-time sidebar filtering, custom KPI metric cards, dynamic line/bar charts, and expandable data preview tables. --- ## Prerequisites To follow along, make sure you have Python 3.9+ installed along with the required libraries: bash pip install streamlit pandas numpy --- ## Step 1: Setting Up the Page & Mock Data with Caching First, we import the necessary libraries, set up the layout, and create a function to generate mock sales records. We use Streamlit’s `@st.cache_data` decorator so the data is only generated once per session, keeping the app snappy during user interactions. python import streamlit as st import pandas as pd import numpy as np Set layout configuration st.set_page_config(page_title="Sales Dashboard", layout="wide") Cache data loading for performance optimization @st .cache_data def load_data(): dates = pd.date_range("2025-01-01", periods=180) regions = ["North", "South", "East", "West"] df = pd.DataFrame({ "date": np.random.choice(dates, 500), "region": np.random.choice(regions, 500), "product": np.random.choice(["A", "B", "C"], 500), "sales": np.random.randint(100, 5000, 500), "units": np.random.randint(1, 50, 500), }) return df.sort_values("date") df = load_data() --- ## Step 2: Adding Interactive Sidebar Filters Next, we add controls inside the sidebar to let users filter the dataset by region, product type, and date range. A boolean mask applies those selections dynamically. python --- Sidebar filters --- st.sidebar.header("Filters") region_filter = st.sidebar.multiselect("Region", df["region"].unique(), default=df["region"].unique()) product_filter = st.sidebar.multiselect("Product", df["product"].unique(), default=df["product"].unique()) date_range = st.sidebar.date_input(

2026-07-25 原文 →
AI 资讯

The LLM Waterfall Pattern: Never Let a Rate Limit Kill Your Workflow

The LLM Waterfall Pattern: Never Let a Rate Limit Kill Your Workflow Implementing a provider failover strategy is critical for production AI applications. Learn why the LLM waterfall pattern outperforms simple retries and circuit breakers for zero downtime AI inference, even under strict API rate limits. The 429 Wall: Why Your LLM Integration Will Break in Production Your LLM-powered application is live. Traffic is growing, and users are loving the AI features. Then, it happens. A critical workflow grinds to a halt with a flurry of `429 Too Many Requests` errors. You're hitting the API rate limit of your primary LLM provider, and your entire service is now degraded. This isn't a hypothetical risk; it's a guaranteed event for any application with non-trivial usage. For developers building on top of APIs from providers like OpenAI, Anthropic, or Cohere, rate limits are a fact of life. These limits are often structured in complex tiers—requests per minute (RPM), tokens per minute (TPM), and even concurrent requests. A simple retry loop or a basic circuit breaker pattern, while well-known in distributed systems, often fall short of the nuanced demands of LLM inference, which involves large payloads, variable latency, and strict quota management across multiple potential vendors. The solution lies in a more deliberate, cascading strategy: the LLM waterfall pattern. Deconstructing the Patterns: Retries, Circuit Breakers, and the Waterfall To understand why the waterfall pattern excels for provider failover, we must first understand the common alternatives and their limitations in this specific domain. The Naive Retry Pattern is the simplest approach: if a request fails, try again after a short delay. For transient network blips, this is useful. For an `API rate limit` error, it's disastrous. Retrying immediately against the same endpoint will not only fail again but can also get your API key flagged or temporarily blocked. Even with exponential backoff, you are stuck in a

2026-07-25 原文 →
AI 资讯

# I Shipped the First Real Stage of My Fanfiction Taste Engine, and It Isn't What I Originally Planned

A few weeks ago I wrote about Siagnos , a personal taste engine for fanfiction that learns from reading behavior instead of matching tags. I was three stages in: scraper done, schema designed, embeddings working as a proof of concept. Then I got a two-week internship window to build something deployable, and I made a call. Instead of pushing Siagnos forward stage by stage, I built Opsis : a scoped-down, content-based recommender that answers one specific question. Given a fic, what else in a real, collected corpus is closest to it in content? Opsis doesn't do taste modeling. It doesn't touch my reading behavior at all. It's the layer underneath that, and it's live right now. Why not just keep building Siagnos directly Two weeks isn't enough time to get a reading tracker, a feature pipeline, and a trained preference model all working end to end. It is enough time to take the scraper and schema I already had and turn them into something real: a working recommender, deployed, with a UI, that someone else can actually use today. So I scoped down on purpose. No personal taste model yet. No behavior tracking yet. Just: can I take one fic and find genuinely similar ones, from AO3 metadata alone, using content instead of tags? What Opsis actually does Scrapes AO3 metadata under conditions the OTW Communications Committee confirmed were acceptable before I collected anything: one persistent session, randomized delays, capped retries Cleans and validates the raw data, log-and-skip instead of all-or-nothing, so one malformed row doesn't take down a 7,000-fic load Normalizes everything into PostgreSQL: fics, six lookup tables, six join tables, idempotent upserts so re-running the loader is always safe Embeds every fic's summary with sentence-transformers/all-MiniLM-L6-v2 Ranks candidates with a blended score: 0.70 embedding cosine similarity, 0.15 fandom overlap, 0.10 relationship overlap, 0.05 popularity If you submit a fic that isn't in the database yet, Opsis scrapes it, cle

2026-07-25 原文 →
AI 资讯

I Built an API That Writes Code Documentation in 13 Languages — Here's How

I’ve always disliked writing documentation. Not because it’s hard, but because it’s repetitive. You write a function, you describe what it does, you give an example, and then you realize you need the same thing in another language because half your users don’t speak English. So I decided to automate it. The result is an API that takes source code as input and returns a clean Markdown README, API reference, or inline comments — in any of 13 languages. No templates, no manual translation. curl -X POST "https://ai-code-documentation-generator.p.rapidapi.com/demo" \ -H "x-rapidapi-host: ai-code-documentation-generator.p.rapidapi.com" \ -H "x-rapidapi-key: YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"code":"def add(a,b): return a+b","code_language":"python","doc_language":"en"}' { "success" : true , "documentation" : "# Add Utility \n\n ## Overview \n A simple function to add two numbers..." , "quality_score" : 9 , "target_language" : "en" } It auto-detects the programming language (Python, JavaScript, Go, Rust…) and spits out a polished doc. The English output is solid, but seeing it generate accurate Japanese or German READMEs from the same code still feels like magic. The Tech Behind It Backend: Python + FastAPI, hosted on Northflank. AI Model: DeepSeek (via API). The model actually understands code structure, so generated docs aren’t just generic wrappers. Language Detection: Pygments for syntax highlighting + language guessing. Caching: 24-hour cache to avoid redundant calls and save cost. Security: Sensitive strings (API keys, passwords) are automatically redacted from the output. The whole thing is open source: https://github.com/zhaochangbo888/docgen-api Why I Didn’t Just Use ChatGPT You could absolutely paste your code into ChatGPT and ask for docs. But integrating an LLM directly into a CI/CD pipeline, or a VS Code extension, or a platform that needs programmatic access gets messy with rate limits, authentication, and output consistency. This API giv

2026-07-25 原文 →
开发者

Neurips Position Track Rebuttal and Reviews [R]

Hello! This is my first time submitting an actual conference paper (only done workshops so far). Got a 3/3/5/7 for the Position Paper Track. Reviews all seem quite addressable. Meta review also seemed kinda positive? Included wording such as "a revision should include..." followed by actionable stuff we can take. Feels like there may be a shot. My question is... what does that mean? We submit rebuttals for each reviewer. And I agree with a lot of the feedback. So thats not an issue. But what's going to happen? Do reviewers change their scores? Does the AC read each rebuttal to see if we'll make an adequate revision? How does all of this get judged? Who am I trying to convince here? And of what? And what should the wording be like in the rebuttal? More informal? Sorry if some of these questions seem redundant! submitted by /u/Empty-Avocado5927 [link] [留言]

2026-07-25 原文 →
AI 资讯

One App, Many Models: Globe’s AI Fiesta Is Prepaid Logic Applied to Generative AI

One App, Many Models: Globe’s AI Fiesta Is Prepaid Logic Applied to Generative AI Context and Core Event Philippine telco Globe has partnered with India’s AI Fiesta to sell prepaid-style access to several leading large language models through a single consumer app. The offer, announced around mid-July 2026, packages ChatGPT, Claude, Gemini, Grok, DeepSeek and additional models behind token packs that start at ₱49. The commercial claim is straightforward: instead of juggling multiple foreign subscriptions priced near US$20 a month each, users buy a load pack, open one interface, and spend tokens across models as tasks demand. That framing matters more than the headline price. In the Philippines, prepaid mobile top-ups already define how most people buy connectivity. AI Fiesta imports the same habit into generative AI. Users are not asked to commit to a full OpenAI, Anthropic, Google, or xAI plan before they know whether a model fits their workload. They buy a small pack, try side-by-side answers, and only escalate spend if the workflow sticks. Globe’s pitch also leans on “subscription fatigue.” For students, freelancers, and micro-businesses, stacking ChatGPT Plus, Claude Pro, and Gemini Advanced is not a feature matrix problem; it is a cash-flow problem. A multi-model shell with local billing and low entry cost lowers the first-use barrier. Features reported at launch include multi-model prompting with comparative answers, Image Studio for generation and visualization, Super Fiesta Mode for automatic model routing, Deep Research for multi-step tasks, and real-time web retrieval so replies are not limited to training cutoffs. What remains thin in public materials is operational detail. Exact token counts per pack, whether unused tokens expire, which model variants are served, and whether the offer covers prepaid only or also postpaid have not been fully specified. Until those numbers land, ₱49 is an entry ticket, not a unit-economics proof. Domain Knowledge and Techn

2026-07-25 原文 →
AI 资讯

Why most "PDF dark mode" Chrome extensions do nothing on a web PDF

Chrome still ships no dark mode for its built-in PDF viewer. Open a white paper at 1am and you get a flashbang. So you go to the Web Store, install the extension with the most installs, click it, and… nothing happens. The page stays white. I went and read the manifests of the top results to find out why. Two reasons, and both are boring. Reason 1: the popular ones only handle file:// The extension named "PDF Dark Mode" (about 10,000 users, rated 2.5) declares exactly this: "permissions" : [ "scripting" , "declarativeContent" ] , "host_permissions" : [ "file:///*.pdf" ] The runner-up, "PDF Dark Theme" (about 9,000 users, rated 2.9), does the same thing with a content script: "content_scripts" : [{ "matches" : [ "file://*.pdf" ], "js" : [ "content-script.js" ] }] file:///*.pdf matches a PDF you dragged in from your own disk. It does not match https://arxiv.org/pdf/1706.03762 , or the invoice your bank linked, or the syllabus on a course site. That is where almost everyone actually meets a PDF. So the extension is installed, enabled, and structurally incapable of touching the document in front of you. This is also why the reviews are full of people being told to flip "Allow access to file URLs" and reporting back that it changed nothing. It was never the missing piece. You can check any extension for this in ten seconds: chrome://extensions → Details → look at "Site access". If it says nothing beyond file URLs, that is your answer. Reason 2: the CSS target moved The other approach is a CSS filter on the viewer element: embed [ type = "application/x-google-chrome-pdf" ] { filter : invert ( 90% ) hue-rotate ( 180deg ); } That used to be right. When you navigate straight to a PDF today, the document you are styling has no <embed> in it. The viewer lives in an out-of-process child frame that your CSS cannot reach. Your selector matches zero elements and fails silently, which is the worst way for CSS to fail. What does reach it is a filter on the root element of the PDF doc

2026-07-25 原文 →
AI 资讯

The Model Context Protocol (MCP) 🔥

Estimated reading time: ~11 minutes. No prior experience required. Fifty adapters in a drawer Remember the era when every phone, camera, and gadget had its own special charger? A drawer full of incompatible cables, and the one you needed was never there. Then USB (and later USB-C) arrived, and suddenly one port charged everything. The magic wasn't a better cable, it was an agreed-upon standard that every device and every charger followed. AI tools were living in that pre-USB drawer. Every time you wanted an AI assistant to talk to a new system, your files, a database, a ticketing tool, someone had to hand-build a custom connector for that specific pairing. Ten AI apps times ten tools meant a hundred bespoke integrations. The Model Context Protocol (MCP) is the USB-C moment for AI: one standard so any AI app can talk to any tool. By the end of this post you'll understand what MCP is, its core parts, how a connection works, the traps to watch, and why it matters for the future of AI. What is MCP, really? One sentence: The Model Context Protocol is an open standard that defines a common way for AI applications to connect to external tools, data sources, and services, so any compliant AI app can use any compliant tool without custom glue. It was introduced to solve the "N times M" integration explosion: instead of building a custom bridge for every AI-app-to-tool pair, everyone speaks one shared language. The USB-C analogy (in full) The AI app (a chat assistant, a coding agent, an IDE) is your laptop . A tool or data source (your files, a database, a calendar, a search engine) is a peripheral , a monitor, a drive, a keyboard. MCP is the USB-C port and cable standard between them. Before USB-C, connecting a new monitor to your laptop might need a special adapter made just for that model. After USB-C, you plug in any compliant monitor and it just works. MCP does that for AI: build your tool as an "MCP server" once, and every MCP-compatible AI app can use it, no per-app wo

2026-07-25 原文 →
AI 资讯

I Built a 3D Game in Flutter — With No Game Engine

Everyone says the same thing: Flutter is for apps, not games. So I decided to find out where that's actually true — by building a 3D endless runner in Flutter. From scratch. No Unity, no Unreal, no game engine at all. Just Dart and Flutter's own rendering stack. It runs in your browser right now: ▶️ Play it live (desktop, keyboard controls — A / D to switch lanes, Space to jump). Here's how it works, and what building it taught me about how far Flutter can actually go. The stack: Flutter GPU + flutter_scene The whole thing sits on two pieces most Flutter developers have never touched: Flutter GPU — a low-level rendering API that talks almost directly to the GPU through Impeller (the engine that replaced Skia). This is what makes real-time 3D possible at all. flutter_scene — a higher-level 3D scene API on top of Flutter GPU. It gives you the building blocks a game needs: a scene graph of nodes , a perspective camera , meshes, and glTF model loading. You build a tree of nodes, point a camera at it, and render it every frame inside a normal Flutter widget. That last part still surprises me — the 3D world is just a CustomPaint -style surface living inside an otherwise ordinary Flutter app. Faking an infinite world with a handful of objects An "endless" runner obviously can't build an endless world — you'd run out of memory in seconds. The trick is object pooling : you keep a small pool of track segments and obstacles, and as they scroll past the camera behind the player, you recycle them back to the front with new positions. The player never actually moves forward. The world moves toward the player , and a fixed number of segments cycle forever. Same idea for obstacles and coins. It means the game runs at a constant, tiny memory footprint — which is exactly what keeps it smooth on weaker devices. The parts that were genuinely hard Collision that feels fair. Detecting a collision is easy. Making it feel right is not. Too strict and the player rages at hits that "clearly

2026-07-25 原文 →
AI 资讯

Pentagon Special Ops Accelerator: Buying Speed Without Buying Tech Debt

Pentagon Special Ops Accelerator: Buying Speed Without Buying Tech Debt The War Department’s special operations policy office is not staging another industry day for its own sake. On July 24, 2026, the Office of the Assistant Secretary of War for Special Operations and Low-Intensity Conflict is running a one-day “accelerator” in the national capital region, inviting fifteen vendors—winnowed from nearly seven hundred white-paper submissions—to pitch solutions across nine special-operations problem sets. The event sits under the 2026 National Defense Strategy’s push to “supercharge” the defense industrial base and deliberately grow nontraditional suppliers, not merely re-rank the usual primes. What makes the format operationally interesting is the acquisition posture. Bonnie Evangelista, acquisition director for the Secretariat for Special Operations, described a deliberate inversion of the classic requirements pipeline: instead of the government spending years specifying what it thinks it needs and then waiting for industry to build it, the office wants mission need first, then commercial or near-commercial solutions that already exist. Carmella Teeter, deputy assistant secretary of war for special operations analysis, resources, and capabilities, framed the delivery model as a “critical triangle”—operators, private innovators, and acquisition professionals who can turn a demo into a fundable contract path. Traditional fielding often stretches three years or more from award to inventory. The office’s target for selected capabilities is six months or less, with contracts potentially awarded the same day. The funnel is staged, not theatrical. Day-one pitches combine oral presentation, technical brief, and government Q&A. Passing the first gate can unlock an initial $10,000 award and a second-gate invitation; clearing that gate can add another $50,000 if the technology meets mission requirements. Later gates move into prototype delivery and production. That ladder is ex

2026-07-25 原文 →
AI 资讯

Stop asking LLMs to do math: Providing Claude/Cursor with deterministic construction logic via MCP

I've seen it happen dozens of times in my testing workflows. You give an LLM a complex set of dimensions—a wall, the area of two windows, the surface roughness, and the number of coats needed—and you ask for the paint volume. The model starts strong. It identifies the variables correctly. Then, somewhere between calculating the subtraction of the window areas and applying the texture multiplier, it hallucinates a decimal point or loses track of one of the subtractions. LLMs are incredible at reasoning through linguistics and high-level architectural patterns. They are fundamentally unreliable for deterministic arithmetic involving spatial geometry. If you're building an agent to handle real-world logistics—like construction estimation—you cannot rely on the model's internal weights to perform subtraction. You need a tool. This is why I built the Model Context Protocol (MCP) servers in Vinkius with a focus on precision tools rather than just API wrappers. The paint-coverage-calculator isn't an experiment in text generation; it's an implementation of deterministic logic exposed as an MCP server so that Claude or Cursor can execute code instead of guessing numbers. Moving from Reasoning to Execution The problem with standard prompting for estimation is the 'hidden variables.' In a real renovation project, you don't just paint a rectangle. You deal with architectural deductions (doors and windows) and surface absorption rates (smooth vs. textured). If an agent doesn't explicitly call a tool that handles these subtractions, it’s likely to over-order material. When using the paint-coverage-calculator via MCP, the workflow shifts from 'Calculate this for me' to 'Execute these specific calculation steps.' The server exposes three distinct tools designed to handle different parts of the geometric problem: calculate_wall_paint : This is specifically for vertical surfaces. It handles the logic of subtracting openings (like a 2m x 0.8m door) from the total surface area before a

2026-07-25 原文 →