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

标签:#p

找到 12277 篇相关文章

AI 资讯

Article: Enabling Evolutionary Architecture Through the Preservation of Change Locality

Why do simple features suddenly require cross-team negotiations? In this article, explore how boundary drift quietly destroys change locality and increases cognitive load across teams. Learn practical sociotechnical strategies - redistributing mechanics, exposing essential policy, and rehearsing exception paths - to restore domain boundaries and enable a truly evolutionary software architecture. By Michael Fischer, Nicholas Lawrence, Monica Karekar

2026-08-03 原文 →
AI 资讯

HashiCorp Ships Public Beta of Vault Kubernetes Key Management

HashiCorp has released a public beta of Vault Kubernetes key management, a KMS v2-compatible plugin that lets the Kubernetes API server delegate envelope encryption to Vault Enterprise, moving the key encryption keys that protect etcd data out of the cluster and into a separately governed trust domain. By Mark Silvester

2026-08-03 原文 →
AI 资讯

AI Is Great at Reasoning. Stop Using It for Workflows.

More than a year ago, which is practically ancient history in the AI years, I wrote a blog about using AI to build new self-service capabilities. It felt like the future. We built a self-service action that could create new self-service actions, helping us move faster, reduce bottlenecks, and scale a small Platform Engineering team supporting hundreds of developers. One of the most interesting parts was using Amazon Bedrock to generate Terraform code dynamically at runtime, allowing the system to determine how a new cloud resource should be provisioned using our existing Terraform modules. It worked. It was impressive. And… we removed it. Looking back, abandoning that approach turned out to be one of the best engineering decisions we made. At the time, it felt like an isolated technical decision. It wasn’t. Recently, we faced a much smaller problem. We wanted to automate the creation of DNS records in Cloudflare through our self-service platform. The first proposal was exactly what you’d expect today: “Let’s build a Claude Skill.” Immediately, I had a strong sense of deja vu. But my hesitation wasn’t about whether AI could do it — it was about whether it should. We were simply asking the wrong question. The Industry Shift A lot of engineers today feel like everything they learned over the last decade suddenly became less relevant. We are DevOps engineers. We are Platform Engineers. We used to spend time designing systems, defining standards, reviewing architectures, and planning before writing a single line of code. Every automation started with the same question: “How should we automate this?” Today, that question has quietly changed. Now we ask: “How can AI do this?” At first glance, that sounds like progress. And sometimes it is. Large Language Models have fundamentally changed the way we build software. Tasks that used to take hours now take minutes, and entire prototypes appear from a single prompt. The temptation is obvious. If AI can do it… why not let AI do

2026-08-03 原文 →
AI 资讯

I Built a Language Where AI Calls Are Sandboxed by Default

I Built a Language Where AI Calls Are Sandboxed by Default The 30-line Python problem Last month I needed a script that reads server logs, classifies errors with an LLM, summarizes them, and writes a report. In Python, it looked like this: Import the SDK Initialize the client Handle the API response Parse JSON Add asyncio.gather() because sequential calls took 8 seconds Write a custom sandbox because I don't trust LLMs with exec and file writes Package it in Docker because requirements.txt always breaks on the server 80 lines later , it worked. But it felt wrong. I wasn't building logic — I was plumbing. So I asked myself: What if AI operations were language primitives, not library calls? Meet Pipe Pipe is a small runtime (~10 MB, single binary, zero dependencies) that treats summarize , translate , classify , and ask as first-class citizens — on the same level as + , sort , or len . Try it Browser Playground (WASM, no install): pipe-lang.com Source: github.com/MachuraHarry/pipe Docs: pipe-lang.com/docs

2026-08-03 原文 →
AI 资讯

We crossed 6,000 downloads. Here's what we shipped to get there.

Tuesday morning. Your SOC 2 auditor emails you. "Can you provide evidence of human review for all AI-assisted code changes in the last 90 days — which files were modified, what prompts were used, and whether any credentials were visible in context?" You open your IDE. Git log? Commits are there. PR history? Reviews too. But the AI session itself — the conversation, the code it proposed, whether it saw your .env file, which compliance controls it touched — gone. That gap is why I built Chron. What Chron is Chron is an MCP server that runs alongside your AI coding tool. Every message, every code change, every detected secret — locally timestamped, hash-chained, and stored in a SQLite database you own. No cloud. No data sharing. Works offline. # Install once npm install -g chron-mcp # Check setup chron doctor Works with Claude Code, Cursor, Windsurf, Continue.dev — any MCP-compatible tool. The last four releases: answers to questions auditors actually ask v0.1.39 — "Which sessions are worth reviewing first?" $ chron risk --since = 30d SESSION SCORE BAND SIGNALS a1b2c3d4 87 critical secrets·auth·infra e5f6g7h8 52 high auth·findings ( 2 ) i9j0k1l2 28 review code_changes The attention score: deterministic 0–100 per session. No ML, no API calls. Pure signal from what actually happened: secrets detected (+25), auth code changed (+15), infra modified (+12), open compliance findings (+8 each). A security lead can triage 90 days of AI sessions in under a minute. v0.1.40 — "Can I get a one-pager for this audit?" $ chron dashboard --since = 30d --output = q3-audit.html ✓ Written: q3-audit.html 8 sessions · 4 open findings · 1 critical · 2 high Coverage: 6 controls covered · 3 needs evidence Five sections in a single static HTML file — no server, no login, no port: executive summary, sessions ranked by risk score, findings grouped by framework (SOC 2 / ISO 27001 / EU AI Act / NIST AI RMF), a control coverage map, and contextual next actions. Open in a browser. Print to PDF. Attac

2026-08-03 原文 →
AI 资讯

Compressing Video to a Target File Size: The Bitrate Math in TypeScript

A practical calculator for turning an upload limit into a video bitrate, with enough margin for audio and container overhead. “Make this video smaller” is an open-ended request. “Make this three-minute video fit under 10 MB” is an engineering constraint. The second version sounds more precise, but a quality slider alone cannot solve it. A quality setting tells an encoder how aggressively to preserve detail. It does not directly tell us how many bytes the final file may contain. If the destination has a hard upload limit, the useful starting point is a bit budget. This article builds that calculation in TypeScript, then looks at the assumptions that make the answer less exact than the formula first appears. File Size Is Bitrate Multiplied by Time A video file contains several streams plus a container. For a simple MP4, the largest pieces are usually: the video stream; the audio stream; container metadata and indexing overhead. If we ignore overhead for a moment, the relationship is straightforward: file size in bits = total bitrate in bits per second × duration in seconds Rearranging it gives us the total bitrate available for a target size: total bitrate = target size in bits / duration in seconds That total must cover both video and audio. The approximate video budget is therefore: video bitrate = total bitrate - audio bitrate - overhead allowance The result is not a promise. It is a budget that an encoder can aim at. Be Explicit About MB and MiB Before writing code, decide what “10 MB” means. Storage vendors and many web services use decimal megabytes: 1 MB = 1,000,000 bytes Operating systems and developer tools often display binary mebibytes: 1 MiB = 1,048,576 bytes The difference is about 4.9%. That is large enough to turn a file that looks safe locally into a rejected upload. For a hard external limit, I prefer to calculate with decimal MB and keep an additional safety margin. For an internal tool where the unit is clearly MiB, I make that choice explicit in th

2026-08-03 原文 →
AI 资讯

A PDF a Human Reads and a Machine Parses at the Same Time: How PDF4me Builds ZUGFeRD E-Invoices

Picture the scenario: your invoicing pipeline generates a clean, branded PDF for a German B2B customer. It looks right. It would print fine, email fine, and satisfy anyone who opens it by hand. Then it bounces, because since January 1, 2025, that customer is legally required to receive invoices in a format their software can parse without a human retyping the totals. A pretty PDF isn't enough anymore, and honestly, for a machine, it never really was the point. The part that surprises people who haven't dealt with this yet: the mandate doesn't force you to give up the human-readable PDF. It just requires that PDF to carry a second, structured version of itself, riding along inside it. That format is called ZUGFeRD, with an internationally aligned sibling called Factur-X. If you've never had to build one, it's worth understanding the mechanics before the code, because it's a genuinely clever piece of engineering, not just a compliance checkbox. So how does a single file manage to be both a human-readable invoice and a machine-parseable one at once? What a ZUGFeRD invoice actually is Open a ZUGFeRD invoice in Adobe Acrobat or any PDF viewer and you see a normal invoice: logo, line items, totals, payment terms, nothing unusual. But embedded inside that same file, in its attachments, sits an XML document carrying the exact same invoice data in structured, typed form: invoice number, line items, tax rates, totals, every field an accounting system needs, tagged rather than buried in a paragraph a parser has to guess at. The container format making this possible is PDF/A-3 , the only PDF/A variant that permits arbitrary file attachments while still meeting the archival standard's long-term readability requirements. PDF/A-1 and PDF/A-2 explicitly forbid embedded attachments; PDF/A-3 was built for exactly this use case, which is why every ZUGFeRD file you'll open is, underneath, a PDF/A-3b document with an XML file riding inside it. The embedded XML follows EN 16931, the EU's

2026-08-03 原文 →
AI 资讯

Fail the build when your prompt gets dumber: evalgate for prompt regression CI

Prompts rot silently. I swap a model, tweak a system prompt, add a tool, and everything still runs. No exception is thrown, no test goes red, the JSON still parses. The output is just quietly worse, and I usually find out from a user rather than from CI. Unit tests are the wrong instrument here because there is nothing to catch: the failure mode is not a crash, it is a drop in quality. So I built evalgate , a small TypeScript tool that treats prompt and agent quality like a build artifact. You write a declarative eval suite, evalgate runs it, scores it, stores a baseline, and on every pull request it re-runs the suite, computes the quality delta against the base branch, and fails the build when the score regresses. Then it posts the delta table as a PR comment. The core idea The important design decision is what question CI is allowed to ask. "Is this prompt good?" is subjective and unwinnable in an automated gate. "Is this worse than it was on main?" is objective and answerable. evalgate is built around that second question. You capture a baseline once, and from then on every change is judged as a delta against it, not against some absolute notion of goodness. The second decision was that the whole thing has to run with zero API keys. evalgate ships a deterministic mock provider, so you can run a suite, save a baseline, compare runs, and execute the full test suite completely offline. The project itself has 67 tests and none of them touch the network. Every feature has to work in mock mode before it counts as done. How it works A suite is a YAML (or JSON) file that lives in version control next to the code it checks. Each case has an input, an expected reference value, and one or more scorers. Here is a minimal one: name : my-agent provider : mock # works with no API key threshold : 0.9 # mean score required to pass cases : - id : greeting input : prompt : | Reply with the standard greeting. exactly: Hi there! How can I help you today? expected : " Hi there! How ca

2026-08-03 原文 →
AI 资讯

I Let an AI Orb Judge My Facial Expressions While I Code, and Here's What Happened

A deep dive into AURA, the desktop AR companion that watches your face, reads your hand gestures, and — in a previous life — took 35 seconds just to say "hello." So There's a Glowing Orb on My Desktop Now Let me introduce you to AURA , a desktop companion whose entire personality can be summarized as: "I will float on top of your windows, stare at your webcam, and silently form opinions about your code and your life choices." Per its own README, AURA is built to look at your screen, evaluate your facial expressions, and judge your open browser tabs in real time. No notes. No euphemisms. That's just the mission statement, printed in broad daylight, by the people who made it. Bold. Deranged. Kind of iconic. It's a semi-transparent holographic orb pretending very hard to be a sentient biological interface, the way a Roomba pretends to have feelings when it gets stuck under the couch. It changes color depending on whether you look focused, happy, or the specific flavor of "deeply stressed by my own code" that only a 2am debugging session can produce. It does not, notably, offer to help you fix the bug. It just watches. Like a nature documentary, except you're the nature. Chapter 1: The Dark Ages (a.k.a. "Please, Just Let Me Open One App") Before the great rewrite, launching AURA was less "spin up an AI assistant" and more "sit down, we need to talk about your life choices while the computer thinks." It behaved less like software and more like a extremely judgmental houseplant that needed 35 seconds of silent contemplation before it would even acknowledge your existence. Here's the greatest hits album of suffering, straight from the project's own changelog, presented with the reverence it deserves: The 35-Second Cold Start Penalty — On launch, the app synchronously imported PyTorch, EasyOCR, MediaPipe, PyAutoGUI, Pygame, and the Windows speech drivers, all before doing anything useful, like a chef who insists on individually greeting every vegetable before starting dinne

2026-08-03 原文 →
AI 资讯

You can't prompt what you can't name. Jargon Buster fixes that.

You know exactly what you want. You can see it. You just don't know what it's called. So you open your AI tool and type "pixelated fade effect". Then "retro dot gradient". Then "that grainy old-computer image style". Six rounds later you have something almost right, and almost right is the most expensive kind of wrong. The word was dithering . With it, one prompt gets you the real thing. This gap has a shape. AI collapsed the cost of building, so the bottleneck moved: it's no longer "can the AI do it", it's "can you name it". Every field you touch as a builder has a precise vocabulary, and the words you're missing are costing you rounds of generation, wrong libraries, and vague briefs. Vocabulary is the highest-leverage thing you can pick up right now, and nobody teaches it. Jargon Buster is the cure. It's a free reverse-lookup glossary built for exactly this moment: you describe the thing in your head, it gives you the word. Reverse lookup: describe it, get the word Press Cmd+K on any page and type what you'd say to a colleague, not the term: What you type What you get "the glowy circles behind them" Bokeh "the grid of differently sized cards" Bento grid "the scroll that takes over the page" Scrolljacking "grainy speckles when I turn the number up" ISO "why is my payout smaller than my sales" Settlement "the inside of the letters fills in when I bold it" Counter Misspellings work too. "Ditter" lands on Dithering. That's deliberate: the fuzzy phrasings and typos people actually reach for are stored on every entry as first-class search data, not errors to correct. A normal glossary is indexed by the words you don't know. This one is indexed by the words you do. Every entry ends prompt-ready Knowing the term is half the loop. Each of the 2,142 entries closes the other half: A plain-language one-liner for the "that's the word!" moment A short explainer : what it is, when to reach for it, the gotcha A prompt-ready snippet : the concept translated into an instruction an

2026-08-03 原文 →
AI 资讯

Why the Boring Businesses Win

I went through 1,400 Reddit complaints and 100 businesses with verified revenue. The pattern was the same every time, and it was never the exciting idea. Everyone wants to build the thing their friends would download. The app with taste. The product that sounds impressive at dinner. I used to want that too. Then I spent a year scoring Reddit complaints and cross-referencing them against 100 real businesses pulling verified revenue through Stripe. Not founder-claimed numbers. Not rounded up for a tweet. Actual payment data. The ones making real money were almost never the ones I would have picked. Here is what they looked like instead. 1. They solved one painfully specific workflow The winners were never "project management tools" or "email marketing platforms." They were a Slack bot that reminds you to follow up on unanswered threads. A browser extension that monitors price changes on niche supplier sites. A simple API that converts between file formats nobody else bothers with. The scope was almost comically narrow. And that was the point. Narrow meant the MVP shipped in 2 to 6 weeks, the pitch fit in one sentence, and one person could run the whole thing. Every time I saw a solo founder trying to build something broad, the project either stalled at 80% or launched to silence. The narrow ones launched to a small, loud group of people who were already complaining about exactly that problem. If you cannot describe what your product does in ten words, it is probably too broad. 2. They did not invent the problem. They found it. This one changed how I think about ideas entirely. In nearly every profitable business I looked at, the founder did not come up with the problem in the shower. Someone on Reddit, in a Slack group, or in an App Store review was already describing the pain in detail. The founder just showed up with the fix. Plausible Analytics came from repeated frustration with Google Analytics being bloated and privacy-hostile. Testimonial.to was built after the

2026-08-03 原文 →