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

标签:#us

找到 1969 篇相关文章

开发者

MicroLighter: Syntax Highlighter

Syntax highlighting for code blocks without the complicated markup, spans, classes, and bloated JavaScript, courtesy of Uncle Dave. MicroLighter: Syntax Highlighter originally handwritten and published with love on CSS-Tricks . You should really get the newsletter as well.

2026-08-25 原文 →
AI 资讯

Auto-provisioning hundreds of softphones: what actually has to happen under the hood

"Auto-provisioning" is one of those features that sounds boring on a spec sheet and turns out to be doing a surprising amount of work once you look underneath it. The pitch is simple: drop in a list of users and the system spins up hundreds of configured softphones across devices in minutes, no manual setup per user. The pitch is easy. The plumbing behind it is where the interesting problems live. I've been picking this apart lately and wanted to write down what actually has to happen for "provision 500 users in minutes" to be true. What manual provisioning looks like (so you can see what's being automated away) Setting up one softphone by hand is a checklist. You create the user on the platform, assign an extension and credentials, point the client at the right SIP server, configure the transport (TLS, ports), set codecs, wire up voicemail, maybe push notification tokens, contacts, feature flags. Then you do it on their device. For one user, fine, twenty minutes. For five hundred, that's a full-time job for a week, and every manual step is a chance to fat-finger a config and generate a support ticket later. Auto-provisioning exists to make that whole checklist happen without a human running it each time. The core problem: getting config to a device that isn't configured yet The central puzzle of provisioning is a chicken-and-egg one. You want to hand a device its configuration, but the device doesn't yet know who it is or where to get that config. So the whole flow is about bootstrapping identity and config onto a blank client safely. A few common approaches: Provisioning URL + credentials: The user (or an admin) enters a provisioning username/password, or the client is pointed at a provisioning server URL. The client authenticates, the server looks up who this is, and returns the full config bundle. Simple, works, but needs the initial credential to get entered somehow. QR / activation code: Instead of typing SIP settings, the user scans a code or enters a short a

2026-08-25 原文 →
AI 资讯

My Validation Layer Was Correctly Deleting 16% of My Good Data

Originally published at ai.bedvibe.studio . I built a real-time tracker in Rust — about two thousand lines — that reads a live ADS-B feed, keeps a Kalman-filtered track per aircraft, and screens every pair for closest approach against separation minima. Roughly 150 aircraft, a full cycle in under a millisecond. It ran clean. Tests passed, the picture looked right, the numbers were plausible. It was refusing about one measurement in nine , and the only reason I ever found out is that the rejections went to a counter instead of a log line. The gate has a sub-second tolerance for clock error The tracker runs an innovation gate: when a position arrives, the filter predicts where the aircraft should be, and if the measurement is too far from that prediction it is rejected as physically impossible rather than believed. Once a track converges the innovation standard deviation settles around 36 m, so a five-sigma gate sits at roughly 180 m. An airliner at 250 m/s covers 180 m in 0.7 seconds . So the gate's entire tolerance for a wrong timestamp is under one second. Any pipeline that mis-times its measurements by more than that will have them rejected — correctly, and invisibly. The feed reports its own staleness. The pipeline dropped it. Every ADS-B record carries a field saying how old that position already was when the response was generated. In the original build it was parsed into the contact struct and never read again — the only other place that field appeared in the entire codebase was as 0.0 in test fixtures. Every measurement was therefore stamped with the tracker's own cycle clock, as though it had been observed at the instant it landed. This is the common case, not an exotic one. A field that is decoded and then unused looks identical to a field that is decoded and used , right up until you go looking for its second reference. Here is what that field actually contains, sampled across two consecutive polls of the live feed: reported age of position median 0.31 s p

2026-08-25 原文 →