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

标签:#p

找到 15662 篇相关文章

开发者

Pointers and Tuning and Loops! Oh My!

Introduction While all code should be efficient, code for library-like components, especially involving loops, should be as efficient as possible since such code is often widely used. In my A Simple Dynamic Array for C , I included the source code for a function to clean-up a dynamic array: void array_cleanup ( array_t * array , array_free_fn_t free_fn ) { if ( array == NULL ) return ; if ( free_fn != NULL ) { char * element = array -> elements ; for ( size_t i = 0 ; i < array -> len ; ++ i ) { ( * free_fn )( element ); element += array -> esize ; } } free ( array -> elements ); array_init ( array , array -> esize ); } While this code is correct and good enough for pedagogical purposes, it’s not optimal. Before I tell you why, see if you can figure out why. Hint: it has to do with the use of both the array pointer and the function call in the loop. For those who might not get the reference in this article’s title, it’s a play on a line from The Wizard of Oz . The original line was “Lions and tigers and bears! Oh, my!” Loop Refresher In C (and languages inspired by C including C++, C#, Go, and Java), for loop conditions are reevaluated on every loop iteration. For example, in: for ( int i = 0 ; i < n ; ++ i ) the condition i < n is evaluated on every iteration. That means if n is changed within the loop, it could terminate either earlier or later than it was initially supposed to — and this is well-defined behavior. This is in contrast to some older languages like Fortran and Pascal as well as some newer languages like Rust where the loop’s termination value is evaluated once just prior to the start of the loop. For example, in Pascal: for i := 1 to n do is actually treated as if it were this: limit := n ; for i := 1 to limit do Note that if the loop condition is a more complicated expression, such as calling a function: for ( int i = 0 ; i < f ( x ); ++ i ) then the function will be called on every loop iteration. Except if the function is marked as unsequenced in C

2026-06-19 原文 →
AI 资讯

I gave my AI workers a cited knowledgebase so they'd stop guessing

My agents were confidently wrong about the world, and I couldn't tell when. That's the part that got to me — not the wrongness, the confidence. I run my one-person company as a fleet of about twenty AI agents — a content writer, a finance one, a researcher, a security officer, a handful more. They're good at the work I built them for. But every one of them shares a flaw I'd been papering over: when a task needs a fact about the world — how a tax threshold works, what a marketing framework actually says, how a platform bills — the model reaches into its training data and answers in the exact same self-assured tone whether it knows or is improvising. There is no tell. The guess and the fact wear the same face. So this month I built the thing that was missing: a cited, fact-checked knowledgebase the agents have to read before they work, with a gate that keeps me from poisoning my own source of truth. Here's how it's built, the one rule that turned out to matter most, and the honest state of it — which is that I finished it days ago and have no idea yet whether it changes the work. The job I was actually hiring this to do Strip away my setup and the problem is one any solo operator using AI already has. You ask the model for something that depends on a real fact. It answers fluently. You either know enough to catch the error or you don't — and the whole reason you're asking is usually that you don't. The job I needed done wasn't "make my agents smarter." It was narrower and more honest: stop my AI from making things up in the one register where I can't catch it, and let me know which claims I can actually trust. The competition for that job, in my shop, was "just let the model wing it and hope." That had already cost me. A marketing analysis once understated a channel's numbers because an agent trusted a stale figure instead of pulling the live one. Small, recoverable — but it's the recoverable ones you see. The ones you don't see are the ones that scare you. What I bui

2026-06-19 原文 →
AI 资讯

May You Get What You Asked For

Recently, while working on an in-progress open-source framework called Projector, I ran into a (not particularly novel) issue: one of it's internal packages ( core ) had grown during this period, and was not nearly as flyweight as it needed to be in the browser. The result was 10-20kbs of unnecessary machinery getting pulled in. I noticed this while running examples. I was consistently hitting a wall in bundle sizes that was surprisingly difficult to get past, even for someone as stubborn and relentless as I am. Naturally, I turned to Claude and ChatGPT to help me with this, and ended up using ChatGPT 5.5 with Codex as I find that, with the "precise" output mode, it tends to be a little more honest than Opus 4.8 these days. I shared exported HAR network logs with it, having it go through the chunks to confirm where the bulk was; consistently, it confirmed that the issue was around an entangling of authoring/resolution code with runtime code in core that was pulling in too much to the browser. The technical details here aren't really important, but I'm using them to illustrate a larger point. We then iterated through a lot of different solutions—I setup a "goal" in codex with benchmarks to hit, and gave it a bunch of constraints, context, and tooling. Finally, after about 2-3 hours of looping against that goal, it completed. Looking through the git diff, I noticed something odd—it had duplicated the result of the resolved module, so it could skip the resolution machinery and thus drop it from the browser bundle (again, technical details not really relevant). It hit the rough kb benchmarks, respected all constraints, utilized all context and skills available, and avoided importing the machinery that we both aligned on being the core problem. It provided an elegant, coherent, well-written api, implemented a surgical, well-tested, well-designed solution, and convincingly defended its work when I queried about the implementation. That sounds great, right? In fact, I thin

2026-06-19 原文 →
AI 资讯

AI Observability for Lovable Apps: Monitor, Test, and Improve Prompts with Currai

AI Observability for Lovable Apps: Monitor Prompts, Traces, and Evaluations with Currai Building AI applications has never been easier. Tools like Lovable allow developers and founders to create AI-powered products in minutes. Whether you're building a chatbot, AI assistant, recommendation engine, AI agent, or prediction app, generating the application is often the easy part. The real challenge starts after launch. How do you know what prompts are being sent to the model? How do you debug unexpected AI responses? How do you compare prompt variations and determine which performs better? How do you evaluate output quality over time? How do you track token usage and costs? This is exactly why we built Currai . What is Currai? Currai is an AI observability platform that helps teams understand, test, and improve AI applications in production. It provides: Prompt tracing AI request monitoring Session tracking Prompt versioning A/B testing LLM evaluations Cost and token analytics OpenTelemetry support Instead of guessing why your AI application produced a particular response, Currai lets you inspect the entire execution flow. The Problem With AI Applications Traditional monitoring tools were built for APIs, databases, and backend services. AI applications introduce a completely different set of challenges: Prompt changes can significantly impact output quality Model updates can affect behavior Hallucinations are difficult to track User conversations are hard to debug Prompt experiments are often unmanaged Quality evaluation is usually manual When something goes wrong, application logs alone don't provide enough visibility. You need observability designed specifically for AI systems. Trace Every AI Request Currai captures every prompt, model response, latency metric, token usage, and cost. You can inspect: System prompts User prompts Model outputs Execution traces Tool calls Metadata This makes debugging AI applications dramatically easier. Run Prompt A/B Tests Prompt engin

2026-06-19 原文 →
AI 资讯

What is HiveTalk?

HiveTalk.space is a privacy focused chat app. HiveTalk.space should not be confused with hivetalk.org. While both platforms focus on communication, they are separate projects with different goals and feature sets. HiveTalk is closed source and cloud hosted, making it easy to start chatting without setting up your own server. Despite not being self-hosted, privacy remains a core focus. Private conversations are designed with privacy in mind, allowing users to communicate without unnecessary tracking or intrusive data collection. Every account includes generous free limits. Users can upload files and videos up to 1 GB each, send unlimited messages , and sign in using supported social login providers or a traditional account. Creating communities is simple, with the ability to make your own chat rooms for friends, gaming groups, project teams, schools, or fanbases in just a few clicks. HiveTalk also aims to provide a modern messaging experience with features such as polls, rich text formatting, media sharing, and room management tools, while keeping the interface simple and easy to use. Whether you want a private conversation, a small group chat, or a larger community, HiveTalk is designed to scale without placing artificial limits on everyday usage. Unlike many messaging platforms that reserve key features for paid subscriptions, HiveTalk offers its core functionality for free. The goal is to make private, feature-rich communication accessible without requiring users to pay just to unlock basic messaging features. As the platform continues to develop, new features and improvements are regularly added, with a focus on privacy, usability, and giving communities more control over how they communicate.

2026-06-19 原文 →