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

标签:#go

找到 1101 篇相关文章

AI 资讯

Nine puzzle solvers, one browser tab, zero servers: a tour of classic search algorithms

I recently finished building a small suite of puzzle and game solvers that all run entirely in the browser — no backend, no API calls, no machine-learning models. You paste in a Sudoku, a chess position, or a crossword pattern, and the answer comes back instantly, computed on your own device. The fun part wasn't the UI. It was that each puzzle turned out to be a textbook excuse to reach for a different classic algorithm. Nine solvers, and I got to use constraint propagation, adversarial search, heuristic search, brute-force scanning, and plain old pattern matching — the stuff that shows up in an algorithms course and then, in most day jobs, never again. This is a tour of which algorithm fits which puzzle, and a few of the potholes I hit along the way. Everything here is vanilla JavaScript running in a Web Worker. The one design constraint: no server Before the algorithms, the rule that shaped all of them: it has to run client-side. That's a privacy choice (your puzzle never leaves the tab) and a cost choice (no compute bill), but it's also a fun forcing function. You can't lean on a beefy backend or a hosted model — you get one browser thread (well, a Worker thread) and whatever you can compute in a few hundred milliseconds. That budget is exactly why classic algorithms shine here. They're fast, deterministic, and small enough to ship as a script. Let's group the solvers by the technique each one leans on. Family 1: Constraint propagation Sudoku Sudoku is the poster child for constraint propagation. A cell that can only be one value forces that value; that in turn shrinks its neighbours' options, which forces more cells, and so on. Most "easy" and "medium" boards fall over from propagation alone (naked singles + hidden singles), and only the hard ones need a backtracking search on top. The nice property: the same engine that solves the board also powers the hint feature (find the next forced cell and explain why it's forced) and a uniqueness check — count solutions,

2026-08-29 原文 →
AI 资讯

What Is Precision Tracking Radar? A Developer’s Guide to Continuous Target Tracking

What Is Precision Tracking Radar? Precision tracking radar is an active radar sensing system designed to repeatedly measure a selected target and maintain an updated estimate of its state over time. For developers, the important distinction is that precision tracking is not simply repeated target detection. Detection answers: Is there evidence of a target in the current radar measurements? Tracking answers: Does this new measurement belong to an existing target, and how should that target state be updated? A practical precision tracking pipeline can be represented as: RF sensing → target measurement → detection → association → state update → continuous track → mission output That makes precision tracking radar a real-time data-processing system as much as an RF sensing system. A Practical Definition Precision tracking radar is a radar capability that combines repeated target measurements across time to maintain a continuous estimate of target position, motion or other relevant state information. The key word is continuous. A detector can operate independently on each radar update. A tracker has memory. It maintains information from previous measurements and decides how new observations relate to that history. From a software architecture perspective, tracking introduces persistent state into the sensing pipeline. Detection and Tracking Should Be Separate Services A useful radar architecture keeps target detection and target tracking logically separate. The detector processes current radar measurements. The tracker consumes target-related measurements over time. Conceptually: Radar measurement ↓ Detection ↓ Measurement object ↓ Association ↓ Track update ↓ Track state This separation helps developers understand where errors originate. If the detector produces unstable measurements, the tracker cannot fully repair them. If detections are stable but tracks switch between targets, the problem may exist in association. If sensor-relative detections are correct but missio

2026-08-29 原文 →
AI 资讯

Building CareLoop: an autonomous clinical-triage agent where rules decide and AI explains

I created this content for the purposes of entering the All Things Agentic Hackathon. The problem that started it A doctor gets about eight minutes with a patient and, for anyone with a real history, forty pages of scattered records — lab reports, discharge notes, and pharmacy bills from three different clinics. So the history is effectively invisible at the exact moment it matters most. And when the visit ends, nothing follows up: the six-month course lapses at week five, the recheck never gets booked. I wanted to build an agent that closes that loop — one that reads the mess, decides urgency in a way a clinician can actually trust, and handles the follow-up on its own. That became CareLoop , my entry for the All Things Agentic Hackathon (Taskmaster track), built on Gemini, the Google Agent Development Kit (ADK), Cloud Run, and Firestore. The one principle I wouldn't compromise on Rules decide, AI explains. The temptation with an LLM is to let it do everything — including deciding whether a chest-pain patient is urgent. I refused to do that. In CareLoop, a deterministic engine owns every clinical decision: a weighted symptom score plus a red-flag override sets the triage level and routing. It is fully auditable, and it returns byte-identical output on the same input every single time. The LLM's job is strictly language: Reading unstructured documents into a fixed schema — I call it "Gemini extracts, rules merge." Writing the structured result into a plain-language brief a clinician can skim in ten seconds. No language model is ever in the decision path. When a judge asks "why was this Critical?", the answer is a score breakdown they can inspect — not a model's say-so. That single decision shaped the whole architecture. What it actually does CareLoop runs the full loop end to end: Ingest & compact — it reads a patient's documents and merges them into one structured ledger: allergies, chronic conditions, active medications, and lab trends over time. Instead of pushin

2026-08-29 原文 →
AI 资讯

Gemma 4 in Pure JAX: What Ports from TPU to GPU, and What Doesn't

This article is about running a hand-written Gemma 4 port in pure JAX on three different accelerators, and about the two places the abstraction leaks. The code is here: github.com/xbill9/gemma4-dev What is this project trying to Do? This project aims to serve one Gemma 4 checkpoint from one JAX port across every accelerator I can rent, and to find out — by measurement, not by reading docs — which parts of "it's just JAX" are true. The port lives in ports/gemma4/ and is driven by a generation loop behind an OpenAI-compatible server. No PyTorch, no vLLM, no torch_xla . The same code runs on Cloud TPU v5e and v6e, and on an NVIDIA T4G attached to an AWS Graviton2 host. "Pure JAX" is the whole experiment. If the port is really portable, the only thing that should change between those rigs is a config file. It mostly is. Two things are not, and they are the interesting part. Gemma 4 E2B is not a stock transformer Any port has to carry four irregularities, and none of them are optional: Two attention geometries. Sliding layers use head_dim=256 , global layers use 512 . Most inference stacks assume one head dimension per model. 8:1 MQA , so the KV budget is nothing like the parameter count would suggest. A KV-share map that collapses 35 layers onto 15 caches . A 512-slot sliding ring , plus per-layer embeddings (PLE) held in a 4.70 GB table that gets quantized to 4 bits on load. That first one is worth dwelling on, because it is what breaks other stacks. On the vLLM path, the heterogeneous head dims force the Triton attention backend: Gemma4 model has heterogeneous head dimensions {'sliding_attention': 256, 'full_attention': 512}. FA4 not available, forcing TRITON_ATTN backend. And on a Turing GPU that backend then asks for shared memory the hardware does not have: triton.runtime.errors.OutOfResources: out of resource: shared memory, Required: 98304, Hardware limit: 65536 JAX never enters that conversation. Attention is ordinary XLA rather than a hand-tiled kernel, so ther

2026-08-29 原文 →
AI 资讯

Google further buries search results under AI mode

Google is now automatically expanding its AI search summaries at the top of the results page for some searches, as reported by Search Engine Roundtable. The change, when it kicks in, pushes the typical list of links from a search much farther down Google's results page; instead of seeing part of an AI Overview with […]

2026-08-29 原文 →
AI 资讯

Friday Squid Blogging: Truckload of Squid Spills in Rhode Island

Ugh : A tractor-trailer rollover sent a truckload of squid spilling into a Rhode Island roadway, leaving a stench as they sat in the road for hours in the summer heat. Local authorities have dubbed it the “Squidpocalypse of ’26.” That would be twenty tons of squid. As usual, you can also use this squid post to talk about the security stories in the news that I haven’t covered. Blog moderation policy.

2026-08-29 原文 →
AI 资讯

How BitTorrent Turned Every Downloader Into a Server

Hello, I'm Maneshwar. I'm building git-lrc, a Micro AI code reviewer that runs on every commit. It is free and source-available on Github. Star git-lrc to help devs discover the project. Do give it a try and share your feedback. A couple of posts back we spent a while inside XOR distance , then used it to build Kademlia , the DHT algorithm that lets a network find anything without a directory. Kademlia: Algo That Turned XOR Distance Into a Network Athreya aka Maneshwar Athreya aka Maneshwar Athreya aka Maneshwar Follow Aug 26 Kademlia: Algo That Turned XOR Distance Into a Network # webdev # programming # beginners # algorithms 20 reactions Add Comment 6 min read I promised that algorithm shows up "under BitTorrent, IPFS, Ethereum." Today we cash that check. We're taking BitTorrent apart, piece by piece, and Kademlia is going to walk right back in through the side door. Also, fun fact before we start: a suspicious number of people on Reddit think Bram Cohen, the guy who wrote BitTorrent alone in Python in 2001, is secretly Satoshi Nakamoto. I'm not saying it's true. I'm saying that by the end of this post you'll understand why people keep saying it. The number that should not have been possible In 2004, a measurement firm called CacheLogic reported that BitTorrent alone was responsible for roughly 35% of all internet traffic. More than every other peer to peer network combined. More than the entire web. One protocol. Written by one guy. No company. No datacenter. No servers anywhere with "BitTorrent Inc" on the rack. That last part is the whole story. Every "normal" system you've ever worked on scales by throwing money at it: bigger box, more replicas, a CDN in front. BitTorrent had nobody to throw money at anything, so every hard problem, capacity, trust, scheduling, incentives, discovery, had to get solved inside the protocol itself . Problem 1: the client-server ceiling has a name Distributing a file in 2001 meant one server, one uplink, and every download eating

2026-08-28 原文 →
AI 资讯

AI Doesn’t Mean the End of Mathematics—at Least Not Yet

This essay was written with Kasra Rafi, and originally appeared in The Guardian. Earlier this month, about 40 top mathematicians gathered at OpenAI’s offices to discuss the future of their profession. The meeting was off-the-record, but if recent articles by mathematicians are any guide, it was mostly pretty glum. People fear for their jobs, their careers and the work they love. We think the contrary view is more likely, at least in the short-term. AI models are nowhere near as capable as experienced academic mathematicians. This isn’t to say that AIs aren’t producing stunning mathematical results at the level of PhD researchers. In mid-May, OpenAI ...

2026-08-28 原文 →
AI 资讯

Go Doesn't Force Clean Architecture. That's Your Job.

The criticism of this is everywhere. Open any Go thread long enough and someone will show up to perform the same ritual: "Go projects become messy. There's no framework to guide you. Nest, Django, Spring, they all tell you exactly where to put things. Go? It just says 'organize it somehow.'" It's a fair criticism. Go is unusually permissive about structure. I just think blaming Go for a messy codebase is like blaming the empty document for the bad essay. I don't think Go encourages bad architecture but rather it exposes it. The Hell Is A Perfect Folder Structure?? Ask a hundred Go developers where to put business logic and you'll get a hundred answers (and 200 opinions). "Should I use internal/ ?" "Is everything supposed to live under pkg/ ?" "Should I follow Clean Architecture?" "What about the cmd/ directory?" We spend so much time debating folder structures as if the arrangement of directories somehow determines code quality. As if renaming utils/ to pkg/shared/ is going to save us. God. folders don't create architecture. Dependencies do. You can meticulously organize your project like this: my-app/ cmd/main.go internal/ handler/ service/ repository/ pkg/domain/ pkg/utils/ And still write tightly coupled garbage. Handlers calling repositories directly. Services importing database drivers. Business logic mixed with HTTP concerns. Everything circular. Beautiful folders, though. Very organized looking on GitHub. There are better projects I've seen with just 5 packages, they just don't screenshot as well. Architecture Is About Dependency Direction The architecture is about making intentional decisions about how code depends on other code. Have a look at this: HTTP Handler ↓ Business Service ↓ Data Repository This isn't sacred because of folder names. It's valuable because of what it represents: The handler only knows how to translate HTTP The service only knows business rules The repository only knows how to fetch data Each layer depends on the layer below, never upw

2026-08-28 原文 →
AI 资讯

XAIDA Uses AI to Explain Extreme Weather, Not Deliver a Business Forecast API

The EU-funded XAIDA project is using artificial intelligence to help researchers detect, analyze and attribute extreme weather events, including heatwaves, in a changing climate. Its work matters because better understanding of the link between climate change and individual extremes can support more informed decisions over time. But XAIDA is not launching a consumer weather app, a commercial forecasting service, or a ready-to-integrate API for businesses. XAIDA, short for eXtreme events: Artificial Intelligence for Detection and Attribution , began in 2021 under the EU's Horizon 2020 programme. The project brings together European research groups working on data-driven methods for extreme-weather science. Its official tools overview describes a collection of AI-enabled capabilities designed to support science, policy and decision-making. That distinction is important. A weather forecast estimates likely conditions at a particular place and time. XAIDA's work is focused more broadly on detecting extreme phenomena, examining their characteristics and quantifying the influence of climate change. These are related to prediction, but they are not the same as publishing a daily operational forecast for a business location. What XAIDA is building XAIDA's public materials describe the Artificial Intelligence for Disentangling Extremes , or AIDE, toolbox alongside related AI-based methods. The project also refers to stochastic weather generation and other analytical approaches. Together, these tools are intended to help researchers investigate complex extreme events and their climate context. The project has used AI techniques, including variational autoencoders, in case studies and research outputs concerning heatwaves and other extremes. A variational autoencoder is a machine-learning approach that can learn patterns in complex data and generate statistically plausible variations. In this context, such methods can help researchers examine how extreme events relate to under

2026-08-28 原文 →
AI 资讯

Il rischio reale dell'AI enterprise non sono gli agenti autonomi. È la complessità tra di loro

Il rischio reale dell'AI enterprise non sono gli agenti autonomi. È la complessità tra di loro. Executive Briefing — Settembre 2026 Quando le aziende deployano fleet di agenti AI invece di sistemi singoli, il pericolo vero non è un agente che si mette a fare il matto da solo. È la complessità emergente delle loro interazioni: una ragnatela di chiamate a cascata, permessi dimenticati e gap di accountability che nessuna checklist può chiudere. 1. Il problema che nessuno vede arrivare Le aziende non deployano un agente e lo guardano girare. Deployano fleet: bot di supporto, agenti di retrieval, layer di orchestrazione, ognuno che chiama API, delega ad altri agenti, si infila in sistemi che non erano stati progettati per decisioni automatiche. Lo scenario che dovrebbe farvi perdere il sonno non è un singolo agente che combina un guaio. È cento agenti che fanno esattamente quello per cui sono stati costruiti, tutti insieme, in combinazioni che nessuno ha disegnato. La complessità non cresce linearmente col numero di agenti. Aggiungi un secondo agente e aggiungi una connessione. Aggiungi il decimo e potenzialmente aggiungi decine di connessioni, perché ora qualsiasi agente può chiamarne un altro, e ogni chiamata può scatenarne una terza altrove. Un ticket di supporto che prima toccava un solo sistema oggi può passare attraverso quattro agenti prima che un essere umano lo veda. E ogni passaggio è un punto decisionale non approvato. La maggior parte dei programmi AI enterprise si blocca quando gli umani responsabili perdono il filo. Chiedete a un team security quali agenti possono raggiungere quali sistemi, e otterrete silenzio. Chiedete quale agente ha triggered quale downstream action tre salti fa. Ancora silenzio. 2. Perché le checklist non funzionano L'istinto è trattarlo come compliance: approva l'agente, registralo, passa oltre. Ma una checklist valuta un singolo punto nel tempo. La complessità corre lungo una catena, e non puoi governare una catena con una pila di ap

2026-08-28 原文 →
AI 资讯

Enterprise AI's real risk isn't autonomous agents. It's the complexity between them

Enterprise AI's real risk isn't autonomous agents. It's the complexity between them. Executive Briefing — September 2026 When enterprises deploy fleets of AI agents instead of single systems, the real danger is not a rogue agent. It is the emergent complexity of their interactions — a web of cascading calls, forgotten permissions, and accountability gaps that no checklist can fix. 1. The problem nobody sees coming Enterprises do not deploy one agent and watch it run. They deploy fleets: support bots, retrieval agents, orchestration layers, each calling APIs, delegating to other agents, reaching into systems that were never designed for machine decision-makers. The failure mode that should keep you up at night is not a single agent doing something bad. It is a hundred agents doing exactly what they were built to do, all at once, in combinations nobody designed for. Complexity does not grow linearly with agent count. Add a second agent and you add one connection. Add a tenth and you potentially add dozens, because any agent might call any other, and each call can trigger another somewhere else. A support ticket that used to touch one system might now pass through four agents before a human ever sees it. Every handoff is an undocumented decision point. Most enterprise AI programs stall when the humans responsible lose the thread. Ask a security team which agents can reach which systems, and you get silence. Ask which agent triggered which downstream action three hops ago. More silence. 2. Why checklists fail The instinct is to treat this like a compliance checklist. Approve the agent. Log the agent. Move on. But a checklist checks a single point in time. Complexity runs across a chain, and you cannot govern a chain with a stack of one-time approvals any more than you can call a diet successful because you had a vegetable once. Two failure modes dominate. Permissions creep. Somebody builds an agent to summarize support tickets and grants it broad API access because scop

2026-08-28 原文 →
AI 资讯

Google’s AI note-taking app now allows you to interact with books

Google's AI note-taking app, Gemini Notebook, can now pull information from the books you've purchased. The new "Expert Intelligence" feature allows you to bring titles from Google Play Books directly into Gemini Notebook, which means you can ask questions about the material, as well as generate plans, infographics, AI podcasts, and more based on their […]

2026-08-28 原文 →
开发者

Google tells Android app developers to cool it on memory use, or else

Google will start policing memory-hungry Android apps as a direct response to the RAM crisis. Spotted by TechCrunch, the company yesterday published a memo addressing the Play Store's role in enforcing new memory-usage restrictions. The post emphasizes the importance of meeting new memory usage limits for apps, in order "to help developers navigate industry-wide hardware […]

2026-08-28 原文 →
AI 资讯

Put a Policy Gateway Between Your Coding Agent and the LLM

Your coding agent talks to a model provider over HTTPS. That connection is a straight line: the agent asks, the provider answers, the answer lands in your editor. Nothing in the middle looks at what came back. For most of what an agent produces, that's fine. For the rest of it — the query built by string concatenation, the API key the model helpfully echoed back into a code sample, the eval() on user input — you find out later, in review, or in a scanner run, or never. This is a walkthrough of putting a policy layer in that line: a local proxy your agent points at instead of the provider, which inspects the response stream and decides allow , redact , or block before the text reaches you. I'll use Cencurity Engine because it's the one I build, it's Apache-2.0, and it runs entirely on your machine. The pattern generalises — if you're building your own gateway, the steps below are still the shape of the problem. What you need first Go installed (the engine is a Go binary you run from source) An API key for whatever provider your agent already uses An agent or IDE that lets you override the API base URL That last one is the real prerequisite. If your tool hardcodes the provider endpoint, none of this applies to it. Most don't: Roo Code, Continue, Claude Code and Gemini CLI all expose a base URL, and anything reading OPENAI_API_BASE will work too. Step 1: Start the gateway Clone the repo, open a terminal in it, and run: go run ./cmd/cast serve \ --listen :8080 \ --upstream https://api.openai.com \ --policy ./cast.rules.example.json Three flags, and each one is doing something you should understand before moving on: --listen is where the gateway accepts traffic. Local only. --upstream is your real provider base URL. Swap it for https://api.anthropic.com , https://api.deepseek.com , https://api.x.ai — whatever you actually use. --policy is the rule file. cast.rules.example.json ships in the repo and is a working starter set, not a placeholder. Note what is not in that com

2026-08-28 原文 →