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

标签:#RAM

找到 2776 篇相关文章

AI 资讯

A memory server remembers your conversation. That is not the same as knowing your code.

Before publishing: set published: true , and check canonical_url — the article must exist at that URL on the site first. Without it this competes with the original in search instead of pointing at it. Tags are from the verified top-1,000 list; mcp was not in that cache and is not used here. A session ends. Your agent had worked out, over forty minutes, that the retry logic lives in one service and the thing that gives up on it lives in another, that the queue name is spelled two different ways, and that the person to ask about any of it left last year. Tomorrow you open a new session and it knows none of that. Neither does your colleague's session. Neither does the agent reviewing the pull request that comes out of it. It is the same forty minutes a new engineer spends in week one, and the same forty minutes the README would have saved if it were still true. It is why a manager asking "where is this up to" has to interrupt someone who knows. The knowledge exists; it has nowhere to live but in people and chat logs. The reflex is to reach for memory. That reflex is worth interrogating, because there are two different problems hiding under one word, and only one of them is what memory servers are for. What MCP actually specifies It helps to be exact, because "MCP memory" gets said as though it were a feature of the protocol. It is not — and the current revision makes that harder to miss rather than easier. Read the base protocol's own three-line summary in revision 2026-07-28 : JSON-RPC message format, stateless, self-contained requests , per-request capability negotiation. Servers offer three features — Resources, Prompts and Tools. Clients offer one: Elicitation. Sampling and Roots, which used to make that three, were deprecated in this same revision under SEP-2577, along with Logging and Dynamic Client Registration; the migration note against Sampling reads "integrate directly with LLM provider APIs". There is no memory primitive and no persistence primitive. There

2026-09-01 原文 →
开发者

What I find interesting about this video is that the game was developed by a small but highly professional team.

Yes, the game development industry wasn’t nearly as complex as it is today. You could probably say that making and releasing a good game was easier back then. But these people created a legend precisely because they were professionals. Of course, DOOM wasn’t their first game. There was a time when the team was making a game every month. What I like most about this video is the sense of creativity — and the feeling that these people simply loved making games. submitted by /u/_telesis [link] [留言]

2026-09-01 原文 →
AI 资讯

File System Management in Dart

It's a good time to also investigate a bit the dart I/O interfaces, especially the one related to files. The dart:io package must be imported to deal with files and directories in Dart. import 'dart:io' ; A file in Dart is an object instantiated by the File class . This object can be created by simply invoking the default constructor , where its argument will be a String . // default constructor can be used // to create a new object pointing to // a local file. File myFile = File ( "./file1.test" ); fromRawPath() is another constructor, it opens a file based on an List<Uint8> ( Uint8List ), this kind of data is usually generated by utf8.encode or ascii.encode . // fromRawPath constructor can be used // to open a file based on a raw path, // an Uint8list. File myFile2 = File . fromRawPath ( ascii . encode ( "./file2.test" ); ); Finally, the fromUri() constructor will open a file based on an Uri object. // fromUri is another construct that // can be used to open a file based on // an Uri. File myFile3 = File . fromUri ( Uri . file ( "./file3.test" ) ); Now the file object has been created, many attributes and methods are available to control it. Let check first the attributes. In the previous examples, all objects are using a relative path, when the object is returned, the absolute path attribute is set. It is the absolute path representation of the data previously passed. print ( myFile1 . absolute ); print ( myFile2 . absolute ); print ( myFile3 . absolute ); $ dart run File: '/home/user/tmp/cboring/./file1.test' File: '/home/user/tmp/cboring/./file2.test' File: '/home/user/tmp/cboring/file3.test' The original path passed as first argument can be retrieved with the path attribute . print ( myFile1 . path ); print ( myFile2 . path ); print ( myFile3 . path ); $ dart run ./file1.test ./file2.test file3.test The file object can also returns an Uri object with the help of the uri attribute . // this is a closure helper to show // the properties from an Uri object and //

2026-09-01 原文 →
AI 资讯

Every Scan is A Write

What building a warehouse management system taught me about the data operational software leaves behind — and the engineering it takes to make that data trustworthy. The second that outlives itself A picker holds a handheld scanner, points it at a carton, and pulls the trigger. There's a beep. They type 10, confirm, and move to the next location. The whole thing takes about a second. For a long time I thought of my job as making that second work. I built the screen, the endpoint behind it, the repository behind that. My definition of done was that the user completed the workflow, the API returned success, and the right rows landed in the database. What changed my thinking was noticing what was still there afterwards. The screen closes, the session ends, the app ships a new version, the picker changes jobs, the device is replaced. The row stays — and the row isn't a record of a UI interaction. It's a durable claim about the physical world: at this time, this person, on this device, ten units of this product moved. The application is the instrument. The data is the measurement. A measurement is only ever worth what the instrument's precision allows. This article is about the gap between those two definitions of done, and the specific decisions — retry semantics, timestamps, identity, status codes, conflict resolution — that determine which side of it you land on. Almost all of them get made by application developers, inside feature work, long before anyone tries to analyze anything. What warehouse owners actually do with this data now Worth being concrete about the stakes first, because "data quality matters" is the kind of statement everyone agrees with and nobody acts on. What's changed isn't that owners suddenly became analytical. It's that operational systems started producing enough granular, attributed, time-stamped movement data that previously unanswerable questions became answerable. Inventory accuracy is a working-capital decision. Stock you can't trust is s

2026-09-01 原文 →
AI 资讯

Subsize 【 subscalar 】 encoding

Indexing strings by character (Unicode scalar) instead of UTF offsets can be more comfortable for parsers or short manipulations. The minimum cost for reading a >= U+FE character is: Lookup rope table by byte key (holding a high bit position), in goal of the scalar value in a sequence of higher fixed scalars Check for collision subtable (is not null => repeat the step 1), specializing the target high bit further For optimal use, contiguous sequences of characters after Latin-* that turn into reserves into the mask sequence still allow for a few trailing Latin-* (e.g. Katakana can still be mixed with Latin-* whitespace), so those trails turn into reseves as well. submitted by /u/matryun [link] [留言]

2026-09-01 原文 →
AI 资讯

Program Organization (with Examples in C)

Introduction In my book Why Learn C , Chapter 13, Program Organization , I wrote in part: For all but the most trivial programs, a typical C program is composed of several source ( .c ) files and header ( .h ) files. Often, .c and .h files come in pairs where the .c implements some functionality and the .h provides the “public” API for using it. All the functions comprising a program are spread among pairs of files with each pair specializing in some particular aspect of the program. One or more pairs roughly approximates a “module” in other languages. I also gave an example using the source files of ad : ad.c color.h match.c options.h unicode.c util.h ad.h dump.c match.h pjl_config.h unicode.h color.c dump_c.c options.c reverse.c util.c For example, color.c contains the definitions of functions for printing text in color to a terminal and its corresponding color.h contains their declarations so that other files may #include it to use those functions. The ad example was chosen for the book because it’s a fairly small program where, consequently, the source files and their names make sense once you know what the purpose of ad is. (If you didn’t click the link, ad dumps the contents of any file as ASCII.) One of the things some newcomers to C (or programming in general using any language) struggle with is how to organize source files. In this article, I’m going to flesh out the details of program organization using a mid-sized program, include-tidy (Tidy), as an example. As a preview, here are its source files: array.c file_ext.c path_util.c symbol.h array.h file_ext.h path_util.h toml_lite.c bit_util.c fnv1a.c path_util_test.c toml_lite.h bit_util.h fnv1a.h pjl_config.h toml_test.c clang_util.c hash_table.c print.c trans_unit.c clang_util.h hash_table.h print.h trans_unit.h cli_options.c hash_table_test.c proxies.c type_traits.h cli_options.h include-tidy.c proxies.h typedef.c color.c include-tidy.h red_black.c typedef.h color.h include.c red_black.h unit_test.c conf

2026-09-01 原文 →
AI 资讯

Archify: A Verifiable Architecture Diagramming Skill for AI Coding Agents

Verifiable Architecture Visualization: Meet Archify As autonomous AI coding assistants (such as Claude Code, Cursor, and Codex CLI) become central to system design, engineering teams increasingly use them to map complex architectures. However, typical AI-drawn diagrams suffer from inconsistent geometry, untyped syntax errors, and an inability to track structural changes across Git revisions. Archify is an open-source diagramming and validation engine developed by tt-a1i to bring rigor to AI-generated system maps. Rather than generating loose markdown charts, Archify requires AI agents to produce a typed JSON Intermediate Representation (IR) that compiles deterministically into interactive, self-contained HTML and SVG artifacts. What is Archify? Archify operates as a verification engine and rendering compiler. When you ask an AI agent to map a codebase or design a cloud architecture, the agent outputs a structured JSON schema. Archify validates node clearances, boundary crossings, and layout hierarchies before generating a complete, standalone visual artifact. Key Core Features 1. Five Specialized Diagram Types Archify supports five core technical visualization models: Architecture: Component services, databases, external dependencies, and trust boundaries. Workflow: Multi-lane CI/CD pipelines, approvals, runbooks, and exception handlers. Sequence: API call chains, authentication flows, cache fallbacks, and async event traces. Data Flow: Data pipelines, ETL transforms, storage tiers, and PII boundaries. Lifecycle: Finite state machines, retries, timeout loops, and terminal states. 2. Architecture Delta Review During pull request reviews or system refactors, Archify supports side-by-side snapshot diffing. Developers can compare Before , Delta , and After states to inspect exact added, removed, moved, or rerouted components with a deterministic verification receipt. 3. Interactive Standalone HTML Viewer Archify outputs self-contained HTML files with advanced interactiv

2026-09-01 原文 →
AI 资讯

Very Basic Docker Commands Cheat Sheet

If you ever needed a quick list of Docker commands, here you go.. 1. Check that Docker is installed docker --version Shows the installed Docker version. 2. Run your first container docker run hello-world Pulls the official test image (if needed) and runs it. You should see a “Hello from Docker!” message. 3. See running containers docker ps Lists containers that are currently running. Use docker ps -a to also show stopped ones. 4. See downloaded images docker images Shows every image on your machine (name, tag, size, ID). 5. Stop a running container docker stop CONTAINER_ID Gracefully stops a container. Get the ID from docker ps . 6. Remove a stopped container docker rm CONTAINER_ID Deletes a container that is already stopped. 7. Force stop and remove docker rm -f CONTAINER_ID Force-stops the container (if it’s still running) and removes it in one step.

2026-09-01 原文 →
AI 资讯

From Arduino to ESP-IDF: The architecture behind my digital "Swiss Army Knife"

1. Why build another multi-tool? How many of you have often found yourselves wanting to buy a Flipper Zero? I thought about it many times, but there were always problems holding me back: stock is often limited, the price tag is quite high, and above all, you miss out on the thrill of building such a powerful tool literally from scratch. From these observations, my project was born: designing and developing a low-level "Swiss Army Knife". It all started a few months ago. I was thinking about buying an M5Stick S3 after watching some videos online where people spoke very highly of it, especially for one major detail: unlike the Flipper, it has Wi-Fi and Bluetooth modules already built-in. Digging deeper, I quickly realized the advantages of the ESP32-S3 over the classic Arduino. The key features that convinced me were: Dual-core processor: It opens the door to serious features, like managing firmware tasks separately. More RAM: It allows integrating very complex external libraries (like heavy graphical interfaces) without killing performance. Native USB HID: It allows emulating peripherals like keyboards or mice natively and quickly. So, the hardware was decided. But why build a multi-tool? The main reason is to explore and understand the technical background of as many tools as possible. Lately, I feel there is a tendency to overlook the ingenuity of the mechanisms operating right in front of our eyes. We prefer having a ready-made tool, usable perhaps without even knowing the basics of computer science. I wanted to go in the opposite direction and understand exactly how these things work at the code level. 2. Fluid Graphics and Multitasking: How not to blow up an ESP32 A major problem when rendering a graphical interface on a microcontroller is that the CPU has to calculate and send every single pixel. Since this is a time-consuming operation, the entire device gets blocked until the whole interface is completely redrawn. In a multi-tool, if the ESP32 is stuck drawin

2026-09-01 原文 →