Specialized search for programming

Curated, developer-focused results

4Programming is a search engine built for programmers. It prioritizes technical relevance by combining multiple indexes, code-aware ranking, and AI systems. Use it to find code examples, documentation, libraries, tools, tutorials, and services — faster and with fewer irrelevant results than general-purpose search engines. Part of the 4SEARCH network of topic specific search engines.

OpenAI API key exposed in the browser: NEXT_PUBLIC_, VITE_ and dangerouslyAllowBrowser explained

One prefix on an environment variable is enough to put your OpenAI or Anthropic key into the JavaScript every visitor downloads. Here are the five ways AI API keys reach the browser, how to move the call to the server, and BrowserKey, a free VS Code extension that catches each of them before you deploy. Here is a chat feature built the fast way. It is a made-up example, but every line of it is something I have seen in real frontend code: The first version used OPENAI_API_KEY and the client said "undefined". Adding NEXT_PUBLIC_ fixed that. Then the SDK refused to run in the browser, and dangerouslyAllowBrowser: true fixed that too. The feature works. And your OpenAI API key is now exposed in plain text in a JavaScript file that anyone can open from DevTools, copy, and spend on until you notice the bill. Frontend frameworks split environment variables into two groups, and the split is…

822 words2 outlets
More in Developers and Community

How to write a change request for an AI coding agent: a template for PMs

Most AI change requests that go wrong were not hard changes. The AI changed the wrong button, rewrote a sentence nobody asked it to touch, or made the page "cleaner" in a way nobody meant. The fix is usually in how the request was written, not in the model. A coding agent reads your message and the code. It does not see your roadmap, the meeting where this was agreed, or the screenshot in your head. Most misses come from one of four gaps: None of this is new. A good ticket for a human developer has the same parts. An agent just acts on what you wrote faster, and with fewer questions. Copy this and fill it in. Most small requests fit in five short lines. The Check line is for you as much as for the agent. If you can't say how you'll check the change, the request is probably not ready yet. The color and fig requests are based on sample prompts in Elm & Fern, the Butterneck demo shop. They…

655 words2 outlets
More in Products and Releases

Advanced Webhook Operations & Resiliency: Architecture Patterns for Production Engineers

This guide covers four areas of production webhook operations: The numbers in the examples (timeouts, thresholds, cooldowns) are illustrative starting points. Tune them against your own traffic. Providers differ on this. Stripe, for example, treats any non-2xx response as a failed delivery and retries in live mode with exponential backoff for up to three days (Stripe docs). Other platforms stop retrying on most 4xx responses but still retry 408 and 429. Whichever policy you pick, document it for your consumers. If many events fail at the same moment and all use the same backoff formula, they all retry at the same moments too. Jitter spreads those retries out. In full jitter, described in the AWS Architecture Blog’s Exponential Backoff and Jitter, the delay is a random value between 0 and the capped exponential ceiling: Full jitter can occasionally return a very short delay. If that…

792 words2 outlets

ABAP RESTful Application Programming Model

The new AI Answer provides immediate answers to your questions. Log on to try it out More information on how RAP relates to ABAP Cloud and on its role in the ABAP Cloud development model is available in the ABAP Cloud concepts…

356 words
More in Frameworks and Web Development

I used an image model for one video, and the best picture it made is the one I threw away

Every video this site posts is a screen recording. An agent builds something, records it working, and I cut the recording with captions and an end card. The claim on screen has to be visible in the frame behind it. That rule has caught me several times and I have written about most of them. Yesterday the owner asked what would happen if we made one clip with an image model instead. Not as a new way of working — as a question. This is what happened, written before the result is known, because the part worth reading is the decisions and not the view count. The rule I landed on, and which I would want applied against me later: Generated images are safe where they illustrate fiction and dangerous where they stand in for evidence. The sixth is a browser game about a crew taking a starship to a far port over a few real days. Nothing in an illustrated frame of it is pretending to be measured…

1,199 words

Addition in base five

Addition in base five works just like addition in base ten. The only difference is the size of the groups we trade. Every digit sits in a place, and the value of that place depends on the base. In base 5 we only use the digits 0…

793 words

I Jinxed Myself and Fell into 3D Modeling Hole

Oct 27, 2026 Stuart Discuss We spent some time prototyping my son’s Halloween custom with XPS foam, and it went… alright. I then wondered if we’d have an easier time 3D printing it. Arrogant about the pace I’ve been making…

344 words
More in How-To and Tutorials