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

标签:#ev

找到 5623 篇相关文章

AI 资讯

Idempotency Keys: The One API Pattern That Prevents Duplicate Payments (and Worse)

You hit "Submit Order" and nothing happens. The spinner just spins. Is it processing? Did the request get lost? You click again. If the API on the other end does not implement idempotency, you just placed two orders. Maybe two charges to your card. This is a solved problem — and the solution is simpler than you think. What Is Idempotency? An operation is idempotent if doing it multiple times produces the same result as doing it once. GET requests are naturally idempotent — fetching a resource does not change it. DELETE is also idempotent in practice. The trouble is POST and PATCH : create an order twice, and you get two orders. An idempotency key is a client-generated unique identifier (usually a UUID) that you send with a mutating request. The server stores this key with the result. If the same key arrives again — whether due to a retry, a network blip, or an impatient user — the server returns the cached result instead of executing the operation again. Implementing Idempotency on the Server Here is a minimal Express implementation backed by Redis: const express = require ( " express " ); const redis = require ( " ioredis " ); const { v4 : uuidv4 } = require ( " uuid " ); const app = express (); const cache = new redis (); app . use ( express . json ()); // TTL for idempotency records: 24 hours const IDEMPOTENCY_TTL = 86400 ; async function idempotencyMiddleware ( req , res , next ) { const key = req . headers [ " idempotency-key " ]; if ( ! key ) return next (); // optional on GET/DELETE const cached = await cache . get ( `idem: ${ key } ` ); if ( cached ) { const { status , body } = JSON . parse ( cached ); return res . status ( status ). json ( body ); } // Intercept the response to cache it const originalJson = res . json . bind ( res ); res . json = async ( body ) => { if ( res . statusCode < 500 ) { await cache . setex ( `idem: ${ key } ` , IDEMPOTENCY_TTL , JSON . stringify ({ status : res . statusCode , body }) ); } return originalJson ( body ); }; next ();

2026-05-31 原文 →
AI 资讯

How To: Re-engineer element to create pagination type layouts - walkthru pages/guides, etc...

This requires both CSS and JS, but is otherwise fairly lightweight and minimal. You can see the effect in action here: https://stephenmthomas.github.io/ico2go/ (Just drag and drop the "ICO2GO" logo in the upper left down into the drop zone to begin the conversion. Its also a single filed - embedded CSS and JS so right click view source, save, whatever...) I recently built an SVG to ICO converter (couldn't find one online that did exactly what I wanted, though doubtless one exists) - and I decided for really no reason at all to tweak the details summary elements to serve the main areas of the document in a "step 1 2 3" fashion. I had styled the elements with CSS already - initially to serve as an "about this app" sections - styling it so it fades in and slides to size. Then decided to just use them as a sort of walkthrough wizard... I'm going to present the steps backwards because the CSS at the bottom is technically optional, although it adds a nice touch and I highly recommend both using that CSS and saving it for later use - its a good way to style those elements outside of this somewhat ridiculous use-case. So, essentially, we are going to be using scaffolding like this - completely hidden sections of the page, as large or small as you want, able to be turned on, off or toggle as you see fit. Each page or section or chapter of the DOM will live inside of a detail summary block like so: <details id="areaHelloWorld"> <summary style="display: none;">HIDDEN AREA - HELLO WORLD/summary> <!-- YOUR CONTENT HERE --> </details> Debatable practice abound here, but because the summary is hidden and inlined, you can still use normal detail-summary sections elsewhere. Anyway, depending on your content... there are now sections of the DOM that are unrendered. There is no conventional way - as far as I know - to open/reveal the content in the details section when the summary is not displayed. To hide or show these areas, you simply add the open attribute to the appropriate detai

2026-05-31 原文 →
AI 资讯

I'm looking for an Android Studio template that build Apk from Html ?

HI people. I'm looking for a template like that. I made a simple Html note app by Claude and want to make it a propher Android app. I don't know coding. I don't think i want to spend year learning this too. I make it just for personal use and won't publish it on google story or anywhere else. I liked Web2apk Builder but it's not free (i don't have money, honestly). But with Android studio i have to deal with hundreds unknow unknow so i wonder if there is a template outhere (maybe on github) that could help me out ? Thank you for your attention to this matter !!! submitted by /u/Moonnnz [link] [留言]

2026-05-31 原文 →
AI 资讯

Need some advice from my peers who have gained some years of experience

​ Hey folks i am reaching out in a bit of distress. i am software engineer i been in the industry for 3 years 2 years as a freelancer and over a year as a corporate employee. I have shipped hundreds of features, fixed legacy code base others wouldn't dare to touch. My latest feat was to ship a fully fledged Crypto Trading platform to production. My clients are secretive but their projects are really interesting. Multi encryption dashboards with AES. And what not. Automations through kestea. Long story i have massive exposure to industry practices and modern trends in tech. i am writing APIs in Elysia and Go. Changing legacy redux to modern zustand. I am experienced with docker and Kubereeties and i manage multiple servers for my clients. I kinda lean towards bare metal more What im struggling at is im getting paid dirt cheap cause i live a 3rd world country. 300 dollars/ month. I been struggling to get clients online and so much so i have spent hundreds of dollars on upwork and been trying different platforms. But nothing. I know its a luck's game too but i still feel like im doing smth wrong. My rates are all over the place i have charged clients 30$/ hour and im getting paid like 300/ month at the same time If i do find a client its someone local who also pays dirt cheap but way more then my job does very rarely i am satisfied with the work I've given. The argument my job place gives is i lac experience and we don't have clients. What should i do form here on out im getting anxious about my future and doubting myself now. Like i know how the code works how systems work what the trend is but getting client's is where i am struggling Ps i am working 2 jobs like 15-16 hrs a day one is my secure permanent job that pays dirt cheap and other ones are my freelance cleints that pay me decently ig. But i find them once every 3 months Ps ill appreciate some reconditions Oh and another PS : i made a promotional post earlier and was lazy to edit that so now i made a full post

2026-05-31 原文 →
AI 资讯

Octorato: an open-source AI agent OS with built-in per-client FinOps

Most agent frameworks assume one agent, one app, one bill. The moment you run agents for many clients, two problems appear that no runtime solves for you: you can't prove which client burned which tokens , and nothing stops one client's workspace from leaking into another's . I built Octorato to fix exactly that. What Octorato is Octorato is an open-source AI agent operating system: one file-native "brain" — rules, 190+ skills, 180+ specialist agents, all plain markdown under git — that a single operator runs across many sealed client "arms," with per-client token attribution and opt-in budget caps. It's not a runtime you import. It's the agent's self as files you can read, diff, fork, and own — runtime-agnostic (it runs on Claude Code today). The octopus model One brain , many arms . The brain holds the shared self: rules (the constitution), skills (HOW to do things), agents (WHO does them). Each arm is a sealed deployment serving exactly one client. Knowledge flows down (generic skills cascade to every arm) and lessons flow up (anonymized patterns get distilled back into the brain). Like a real octopus, most of the neurons live in the arms, not the head. Why "file-native" matters Your agent's identity, skills, and memory normally live trapped inside vendor code and a cloud console — you can't read the whole self, diff a change, or move it. Octorato keeps all of it as plain markdown under version control. Identity becomes diffable, reviewable, portable, and ownable . Text outlives runtimes. The part nobody else does: FinOps and isolation are the same wall Because each arm is a sealed cell that no other arm can see, every token an arm spends is attributable to exactly one client by construction. Cellular isolation is per-client FinOps — the wall that seals a client is the wall that meters it. Concretely: per-arm USD rollup (estimated from local session logs at list price), cost-spike alerts, and an opt-in PreToolUse budget gate — wire the hook and set a client's cap

2026-05-31 原文 →
AI 资讯

I built a tool to visualize architectures and visualized popular web frameworks

Hi all, my friends and I build an open-source tool which uses static analysis and a slim layer of LLMs to visualize the architecture of a project. The tool is open-source: https://github.com/CodeBoarding/CodeBoarding We have also generated quite a few projects over time you can find them all on github as well: https://github.com/CodeBoarding/awesome-architecture-mds What are some projects that are interesting to you, I will visualize them to see how are they build! submitted by /u/ivan_m21 [link] [留言]

2026-05-31 原文 →
AI 资讯

My website has two audiences now. I only built for one of them.

The conversation about who reads your website has been shifting. Agents are part of it now. ChatGPT fetches URLs. Perplexity reads content. Shopping agents try to complete purchases. Coding agents hit your API. Most of those products were built for humans, tested against humans. The agents showed up later and quietly. When they can't figure something out, they don't complain. They just bounce. I heard the phrase "second audience" at a hackathon where you.com was one of the hosts. It stuck. That's what agents are: a second audience the web wasn't designed for and isn't being measured against. And now, I want to build something about it. A scanner that tells you what an AI agent experiences when it tries to use your website or your API. The internal name is Perseus Clew and the public product is Agentis Lux. The split is intentional: Perseus Clew is the engine name, part of a suite of AI builder tools , and Agentis Lux is the product-facing name (Latin for "light of the agent") that describes what agent users see. This isn't a launch post. I just finished a docs phase, and I'm about to write code. Before I do, I want to put this in front of dev.to builders and find out what I'm missing. What it will do Three layers: Deterministic scanning. Twelve check categories — six for frontends, six for APIs — looking at HTML, ARIA, structured data, OpenAPI specs, error responses, idempotency patterns. Same input, same score, every time. The methodology will be published, the weights will be public, and anyone can audit it. AI-readiness scoring tools have a reputation for inflating numbers and hiding their methodology, so the trust floor is making everything inspectable. That's the foundation the rest sits on. An AI-written verdict. After the score, a Bedrock call reads the top findings and writes one sentence about what an agent experiences. Something like: "An agent visiting this page can read your product descriptions, but can't tell which button starts checkout, so it can't f

2026-05-31 原文 →
开发者

We Cut $120,000 from Our Cloud Bill Without Sacrificing Reliability

We were running a cloud-hosted platform on AWS EKS , with EC2 worker nodes managed by us, MongoDB Atlas for NoSQL workloads, AWS RDS for relational databases, and Amazon ElastiCache for Redis for caching and temporary data. Over time, the infrastructure had grown the way most real systems grow: more services, more data, more backups, more images, more snapshots, and more “temporary” resources that were no longer temporary. The platform worked, but the cloud bill was higher than it needed to be. So we started cutting waste, improving the application, and resizing the infrastructure around how the system actually behaved. The result: around $120,000 in annual savings , without sacrificing reliability. The Problem Was Not One Big Thing When we started reviewing the infrastructure, it was clear that there was no single expensive resource causing the entire problem. The cost came from many places at once. Some services were using more CPU and memory than they needed. Some microservices did not really need to be separate anymore. Some databases were oversized for their actual usage. Some storage had accumulated over time. Some backups and snapshots were kept longer than necessary. Some resources were simply unused. That is usually how cloud costs grow. Not because of one bad decision, but because of hundreds of small decisions that were reasonable at the time and never revisited later. So instead of looking for one magic fix, we approached the problem from multiple angles: application code, architecture, databases, Kubernetes resources, storage, backups, caching, and non-production environments. The Optimizations 1. Making the Application Use Fewer Resources One of the most important parts of the optimization was improving the application itself. It is easy to look at cloud cost as an infrastructure problem only, but inefficient code directly affects infrastructure cost. If the application uses too much CPU or memory, the platform needs more pods, larger nodes, bigger ins

2026-05-31 原文 →
AI 资讯

Streaming an LLM response, in 4 GIFs

We have watched tokens stream in from an LLM before where they appeared one at a time, like the model was typing. If you used the Anthropic SDK's .stream() method, it just worked and you probably never saw what was on the wire. This post will majorly focus on how a stream response works and how bugs are handled by SDK behind the hood. 1. Why Streaming exists To enable the streaming option we would need to make one change in the post request that is a single field "stream": true and it will change the response experience. Here are the pointers we take from the gif. The left side shows no streaming as the cursor blinks for 4 seconds then the whole response lands at once. The right side shows the streaming where the first word shows up in about 300 milliseconds. Words flow in as the model generates them. Both the sides have same model, same prompt, same total time it is just the right side started giving response almost 4 seconds earlier. The 4 seconds wait time for a full reply feels broken. A streamed reply that finishes in four seconds feels fast. Streaming doesn't make the model faster it makes the wait disappear. 2. What's on the wire When you set stream: true , the API stops sending a single JSON blob. It opens a persistent HTTP connection and pushes events down the line as the model generates them. The format is Server-Sent Events (SSE) a web standard. Any SSE debugger will read this stream. Here's what comes through: A few things to notice: The text lives in delta.text , nested inside content_block_delta events. Those are the events we should look after. stop_reason moved. In post 1 , we saw it right there in the response JSON. Here, it arrives at the very end inside a message_delta event, just before message_stop . If the loop bails out as soon as the text stops arriving we will never see it. Chunks don't line up with tokens or words. You might get "Hello" in one chunk and " world" in the next, or both in one. The network decides where the cuts happens and it

2026-05-31 原文 →
AI 资讯

how to handle patch requests

so here is a problem i am trying to solve: context: restful or restlike api design partial update of entity through patch request. for this example let’s say client model. the problem is that different fields can be updated but result in different business logics to be triggered. for example change to client.name is a simple update but client.status can result in an email to go to users about the client being offboarded. or changes to client.ownerId require extra validation and verification of the assigned user. or changes to client.logo_url and client.website must happen together. what is the most ideal way to code it where one path can trigger different logics depending on body schema? I want an approach that is simple to work on many routes to develop business logic. AND, simple enough for others to read and debug as needed. please assume I am using a flexible framework that top engineers will implement whatever I ask them, so I am not limited to a given framework or a solution that exists. It can be an approach that does not exist but you hope it did. submitted by /u/farzad_meow [link] [留言]

2026-05-31 原文 →
AI 资讯

Best practice for prospective new customer?

Hey folks, I create Wordpress websites almost entirely in code and CSS for speed. Up to now, I’ve only ever built websites from scratch for customers. However I’ve recently had an enquiry from a local company asking me to rebuild their extremely slow(like snail mail slow) and outdated website - I don’t really delve into the Google side of things as the websites I build tend to rank pretty well organically, however the customer is concerned about building a new website as they already show up pretty high up on Google search pages - I’ve been reading some mixed opinions and got some less than helpful advice from the website I prefer to use for hosting. Some think, as the domain name is staying the same, it shouldn’t make a difference, however, others are saying otherwise. As I’ve never actually done a migration to a new site I’ve built before, what’s the best way to go about this? submitted by /u/PhantomNate [link] [留言]

2026-05-31 原文 →
开发者

Are guest books on personal websites making a comeback?

I've noticed more and more people, usually developers and tech nerds, adding a guestbook to their personal websites. First, if building a personal website is becoming more common, that would be amazing. I love that "small web" vibe. Second, the guestbook idea is awesome. I really hope it's a thing. submitted by /u/kixxauth [link] [留言]

2026-05-31 原文 →
AI 资讯

My portfolio, themed around imposter syndrome

Had a lot of fun building this one. The kitty is Sphinx; he's a feral that likes to hang out on our porch 😃 Stack is boring next.js, typescript and tailwinds. Been running the core stack for a good while now. I just build locally and upload though, because fuck Vercel 🤣 submitted by /u/classicwfl [link] [留言]

2026-05-31 原文 →
AI 资讯

I built an API that extracts brand/company data from any URL.

Built a small API that turns any URL into structured brand data (logos, colors, fonts, screenshots, company info, etc). Originally made it for onboarding + AI workflows, but wondering if it’s actually useful beyond my own use cases or just “cool but unnecessary”. Curious what you think: Would you use this in anything real? If yes, where? submitted by /u/Quiet-Ad2219 [link] [留言]

2026-05-31 原文 →
开发者

If any of you order cheap glasses from Zenni, it's really fun to look at the network tab of your myOrders page to see how not to do website design / architecture.

If you've ordered glasses from them, you can go to: https://www.zennioptical.com/myAccount/myOrders My page just spins. I was curious where my glasses order was after a couple weeks of not receiving them. The network tab shows 30+ css files being downloaded for a very simple website, 10+ trackers and advertising js scripts, and the page still won't load. How about this: SELECT * FROM orders WHERE customer_id = :id ORDER BY order_date Then you can render my most recent orders on the server and at least render some HTML with relevant data. Ok, at scale that might now work. I understand that. Zenni isn't Amazon or Google, but they probably get many requests. In that case we could set up 1+ load balancers that simply forward the request to a sharded server based on userid to balance the load. It's absolutely crazy that we could handle thousands of requests per second in the early 2000s with a few servers in a colo facility and these days everyone has to pretend their facebook or myspace that needs to analyze complex graph connections between people. I just want to see what the status of my order is. It's not that hard. submitted by /u/DrAwesomeClaws [link] [留言]

2026-05-31 原文 →
AI 资讯

I Built a 25-Agent Polish Parliament That Drafts Bills With Real Legal Citations

This is a submission for the Hermes Agent Challenge TL;DR — Type a one-line bill topic. Twenty-five Hermes agents (1 Speaker, 19 ministries, 5 parties) run a full Polish legislative session in 2 minutes. Vote tally, social impact, party tweets — and a side-by-side "current law vs proposed amendment" with every clause cited to a real statute. Built on delegate_task for parallel ministry consultation. 🌐 Live: https://web-production-53027.up.railway.app/ 🎥 Walkthrough: https://www.loom.com/share/92cdac7da31c471088a4e569b0cfe1ed 📦 Repo: https://github.com/monsad/ai-politics (MIT) What I Built Watch a politician debate a new tax law on TV. They argue whether it's fair, whether it'll work, whether the other side is lying. Nobody ever shows you the diff — which paragraph of which statute actually changes, and from what to what. The conversation is theatre on top of an invisible legal document. So I built the theatre AND the legal document. Virtual Parliament is a multi-agent simulation of the Polish Sejm. You type something like "four-day work week" or "flat income tax" , and 25 Hermes agents run a full legislative session: 🎯 Marszałek (Speaker) — the orchestrator. Classifies the topic. Picks 2–3 ministries via delegate_task in parallel . Reads their findings. Routes the bill to a party debate. 🏛️ 19 ministry experts — Finance, Climate, Labour & Social Policy, Justice, … Each returns a structured analysis: legal finding · budget impact · top 3 risks · recommendation . Every claim cites a real statute via PageIndex RAG. 🗳️ 5 party agents — KO, PiS, TD, Konfederacja, Lewica. Each one carries the real party's seat count (157, 194, 65, 18, 26 — totalling 460), policy positions and rhetorical style. First reading. Second reading with rebuttals. 📊 Vote — weighted by seats. >230 passes. 📜 Draft bill — produced with explicit "Article 129 §1 of the Labour Code **is amended to read …" diffs against current law. The frontend surfaces the diff as a Current law vs proposed change panel

2026-05-31 原文 →
AI 资讯

Claude Code's workflow docs are a menu.

Here is what a real solo founder orders. $ git worktree list ~/app a1b2c3d [ main] ~/app-review e4f5g6h [ review-branch] ~/app-content i7j8k9l [ draft-post] Three checkouts. One machine. Each one runs its own Claude Code session that cannot touch the others. That is a normal workday for me. I run a one person shop. Content and code, same desk, same hour. Anthropic's common workflows page lists about a dozen recipes for everyday work, and the docs are strong. What they do not tell you is which recipes survive contact with a real workday and which ones stay theory. After running Claude Code as my whole operation, five workflows carry the load. Here is the honest split. https://code.claude.com/docs/en/common-workflows 1. Worktrees changed how I work The problem worktrees solve is collision. You ask Claude to fix a bug. While it edits, you want to keep building a feature. Same repo, two streams of edits, and now your working tree is a fight nobody wins. A git worktree is a second checkout of the same repo on its own branch. Claude runs inside it and never sees the other windows. claude --worktree feature-auth Real scenario from this week. The post you are reading was drafted in one worktree while a separate Claude session reviewed an open pull request in another. Neither touched the other's files. When the review finished I merged, came back to the draft, and never lost my place. If you take one workflow from the docs, take this one. The setup cost is close to nothing and parallel agents stop stepping on each other. 2. Subagents protect the one resource you cannot buy more of The model's working memory is your budget. Every file Claude reads to answer a question spends it. Ask "how does our auth refresh work" in a large repo and Claude reads a pile of files to answer. Those files now sit in the window for the rest of the session, crowding out the work you care about. Delegate that to a subagent. use a subagent to investigate how our auth system handles token refresh The

2026-05-31 原文 →
AI 资讯

Great Stack to Doesn't Work #3 — Redis: "99% Cache Hit Ratio, System Down"

A survival guide for when everything goes wrong in production. Your Redis dashboard looks perfect. Hit ratio: 99.2%. Latency: sub-millisecond. Memory usage: 60% of available. Every metric says healthy. Then at 2:47 PM, your API starts returning 500s. Response times spike to 30 seconds. Users can't log in. The dashboard still shows 99% hit ratio because the cache is working — it's serving cached errors to everyone equally fast. Redis is doing exactly what you told it to do. The problem is what you told it to do. Why Single-Threaded Is Fast (Until It Isn't) Redis processes commands on a single thread. No locks. No context switching. No synchronization overhead. One CPU core, fully utilized, can handle 100K+ operations per second because it never waits for another thread to release a lock. The event loop model (similar to Node.js) multiplexes thousands of client connections on a single thread using non-blocking I/O. Read a request, process it, write the response, move to the next. When your commands are simple — GET, SET, INCR — each one takes microseconds. The trap: slow commands block everything. KEYS * on a million-key database? That's a full keyspace scan on the main thread. While it runs, every other client waits. SORT on a large set? Same. LRANGE on a list with 10 million elements? Same. Redis 6.0 introduced I/O threading ( io-threads config) for reading and writing network data on multiple threads, but command execution is still single-threaded. Redis 7.0 improved this further, but the fundamental model hasn't changed. Long-running commands on the main thread stall everything. Rules: Never use KEYS in production. Use SCAN instead — it's cursor-based and returns results incrementally. Watch out for O(N) commands on large data structures: LRANGE , SMEMBERS , HGETALL on million-element structures. Use SLOWLOG to find commands that are blocking the event loop. Pipelining: The Easiest 10x You'll Ever Get Every Redis command involves a network round trip: send request

2026-05-31 原文 →
开发者

Great Stack to Doesn't Work #2 — Kafka: "Where Did My Messages Go?"

A survival guide for when everything goes wrong in production. There's a moment every engineer who works with Kafka experiences. You check the producer. Messages are sending. You check the consumer. Nothing. The consumer group shows zero lag because there's nothing to lag behind — as far as the consumer knows, the topic is empty. But it's not empty. The messages are there. Somewhere. In some partition, at some offset, behind some configuration you set six months ago and forgot about. Kafka doesn't lose messages. But it's very good at hiding them from you. Consumer Lag: The Number Everyone Watches Wrong Consumer lag is the difference between the latest offset in a partition and the offset your consumer group has committed. Simple concept. Dangerous in practice. The mistake: treating lag as a single number. Lag is per-partition. If you have 30 partitions and one consumer is stuck on partition 17 while the others are healthy, the total lag looks manageable. But partition 17's data is hours behind, and whatever downstream system depends on that data is serving stale results. Monitor lag per partition. Tools like Burrow, Kafka Exporter for Prometheus, or even kafka-consumer-groups.sh --describe break it down. If one partition's lag is growing while others are stable, you have a stuck consumer, a hot partition, or a poison message. A poison message is a record your consumer can't process — malformed data, unexpected schema, null where it shouldn't be null. The consumer throws an exception, the offset doesn't commit, and it retries the same message forever. Lag grows. The consumer looks "alive" because it's processing — just not making progress. The fix: dead letter queues. After N retries, move the message to a separate topic, commit the offset, and move on. Alert on the dead letter topic. Investigate later. Don't let one bad record block millions of good ones. Rebalance Storms: The Silent Killer Consumer rebalancing is Kafka's mechanism for redistributing partitions acro

2026-05-31 原文 →