AI 资讯
Delay Is a Design Material
I read a short argument this week that tooltips need a delay before they appear, and then, once you are obviously working your way along a toolbar, they need to drop that delay entirely. It is a tiny piece of interface behavior. It stayed with me longer than most architecture posts I read this month. Partly because it is correct, and partly because it is not really about tooltips. It is about the fact that timing is something you design, the same way you design spacing or color. Most teams treat it as a leftover. We pick 200ms because it felt fine on a fast laptop. Or we pick zero because zero seems honest. Or we inherit whatever number shipped inside the component library we installed on day one and never revisit it. Then the product feels twitchy or sluggish, and the bug report says "it feels weird," which is the hardest class of bug there is. Two different users living in the same hands What makes the tooltip case interesting is that a single person switches modes mid-interaction. When my cursor is crossing the screen on its way somewhere else, a tooltip that fires instantly is noise. It flashes, it covers content, it makes the interface feel jumpy for no reason. The delay exists to filter accidental passes. But the moment I stop and read one tooltip, I have declared intent. I am now surveying. If the next four icons each make me wait 500ms, the interface is punishing me for exactly the behavior it was trying to encourage. The delay was a filter for accidents, and I stopped having accidents. So the right behavior is stateful: wait at first, then trust me until I leave the neighborhood. That is the whole insight, and it generalizes further than hover states. The same pattern, wearing other clothes Once you see it, this shape is everywhere: Autocomplete that should debounce while you are typing a word, then feel instant once you have paused and are clearly evaluating results. Confirmation dialogs that make sense the first time you delete something and become a wall
开发者
Your Hiring Process Needs HTTP Status Codes
Because "we'll be in touch" is not an observable state. I submitted a job application recently. It...
AI 资讯
A year of coding by talking: what I gained and what I lost
2024 was the year AI was everywhere. The ads, the praise, the feeling that something had already been decided without me. I am in my fifties. I had to decide whether to watch or take part. I decided to take part. I started with VS Code, on a paid plan. I did not have to think about what to build. Something had been sitting in my head for years: an automated trading system. I have lived fifty years, and while raising children the money got tighter, not looser. Financial freedom was moving away from me, not toward me. So I wanted to make money with automated trading. I think the idea first arrived in my mid-forties. That is why the decision to take part came so quickly. Whatever I said out loud would simply get built. That was the hope I walked in on. I do not really know how to code. But the AI would handle that part, so I trusted it. Where the illusion first cracked A year inside VS Code taught me that two names mattered: GPT and Claude. I used them in turn. I used them one at a time. Two problems. First, even on a paid plan the usage ran out fast. Faster than I expected. The road ahead was long and I was sitting still, waiting for a quota to reset. The second one was worse. The explanations were excellent. The results were not. That is where the illusion cracked for the first time. I still could not let go, so I paid for more. Adding Cursor bought me some headroom. And a different problem showed up immediately. Switch the model and it wants to start over Change the model, and it wants to rewrite everything from the beginning. Handed code written by a different AI, it would rather replace the whole thing than edit it. That is when I understood that switching AI mid-project is a bad idea. Everyone talks about pricing. Almost nobody talks about this one. And this is the one that actually held me back. I spent a lot of time fighting the tool. In the end I paid for Claude's hundred-dollar plan, and from then on I worked with Claude. What I gained: the job nobody wanted
AI 资讯
Why Strong Engineers Fail Coding Interviews: A Scorecard Autopsy
The strongest candidate I ever voted no on solved the problem in eleven minutes. Clean. Optimal. Caught the edge case I normally have to hint at twice. Then I opened my notes to write the scorecard and found one line: "Solved it. I have no idea how." That is the short version of why strong engineers fail coding interviews. Not because they can't code. Because nothing they did survived the trip from the room to the scorecard. The interview is not the thing being graded. The document I write forty minutes later is the thing being graded, and you are not in the room when it gets read. TL;DR Strong engineers fail coding interviews mostly on signal density , not correctness. A silent correct answer scores lower than a narrated near-miss. Interviewers score 3-4 rubric axes (problem solving, coding, communication, and for senior roles, judgment) and each axis needs quotable evidence , not vibes. The decision happens in the debrief , where ambiguity defaults to no. "Lean hire" across the board is a rejection at most companies. The most common senior failure is solving a senior problem like a junior : no scoping, no tradeoffs, no failure modes, no tests. Fix it by talking in sentences your interviewer can transcribe verbatim: assumption, tradeoff, complexity, test. What do interviewers actually score in a coding interview? Not "did you get the answer." Almost every structured loop I've been part of scores a fixed rubric, and correctness is one box inside one axis. Here is roughly what the form looks like: Axis What it's really asking What lands on the scorecard Problem solving Did you scope before you built? "Asked whether input fits in memory before choosing an approach." Coding Would this survive code review? "Named things well, extracted a helper, no off-by-one." Communication Could I follow you in real time? "Told me the plan first, then coded the plan." Judgment (senior+) Do you know what breaks in prod? "Unprompted, called out the retry storm risk." Notice what every r
开源项目
Feedback for the LVM post on my blog
I just started a blog and published my first blog post about Logical Volume Management. I'm new to documenting my work, so I'd really appreciate any feedback on the content, clarity, or writing style in general. This site is a mix of a blog and a portfolio. Since I'm new to all of this, it would be great to get some feedback on whether this post works well just as a blog post, or if it actually holds up as a portfolio project too, before I keep writing more. www.mvtechblog.com Thanks in advance.
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
开发者
Top 7 Featured DEV Posts of the Week
Welcome to this week's Top 7, where the DEV editorial team handpicks their favorite posts from the...
AI 资讯
What Do You Do While AI Codes?
AI coding agents leave you with 5-to-20-minute gaps all day. Five real ways I fill them — and the one "quick" habit that makes you the bottleneck.
AI 资讯
Your Job Ends at 5. Your Developer Brain Doesn't.
5:00 PM. Laptop closed. Slack closed. Workday over. Except my brain didn't get the memo. I'm making...
AI 资讯
AI promoted every developer to reviewer. Nobody tested the reviewer.
I wanted to disagree with 'AI made me a worse reviewer' from Michael Amachree (@dev_michael) ....
AI 资讯
Building agents is increasingly becoming less about “how smart is the model?” and more about “what does the agent remember, retrieve, and use at the right moment?” This experiment explores that rabbit hole. Loved the concept deep dive.
Your Agent Doesn't Have a Reasoning Problem, It Has a Memory Problem Anannya Roy Chowdhury Anannya Roy Chowdhury Anannya Roy Chowdhury Follow Aug 24 Your Agent Doesn't Have a Reasoning Problem, It Has a Memory Problem # ai # agents # architecture # programming 11 reactions 1 comment 9 min read
科技前沿
Meme Monday
Meme Monday! Today's cover image comes from the last thread . DEV is an inclusive space! Humor in poor taste will be downvoted by mods.
AI 资讯
🚀 From FlipaClip to SitePoint: The Full Story of Kehinde Owolabi
🚀 From FlipaClip to SitePoint: The Full Story of Kehinde Owolabi How a Nigerian teenager built a professional game engine with borrowed laptops, offline W3Schools, and pure determination. 🎮 Play the Game Try Limn Engine Live — Space Shooter Demo See what 4 years of determination built. This space shooter runs at 60 FPS on a Tecno Pop 4 with 1GB RAM. 📖 Introduction Every developer has an origin story. Some start with a fancy computer and a computer science degree. Others start with a flipbook app and a sister who trusted them with her phone. My name is Kehinde Owolabi . I'm 18 years old (born December 4, 2007), and I live in Lagos, Nigeria. I'm currently in PC103 at BYU Pathway, and I'm a member of The Church of Jesus Christ of Latter-day Saints. I built a 94/100 professional game engine called Limn Engine. It runs at 60 FPS on a Toshiba with 4GB RAM. It was published on SitePoint and ranked #3 among 2D JavaScript game engines. Nobody knew it was developed on a Chromebook, a borrowed Thinkpad (behind my sister's back), and a Toshiba that "hung like hell." That was the secret I kept for months. But that's only one part of this story. This is the full story of how I went from a button phone to a 94/100 game engine, from FlipaClip to SitePoint, from a boy who failed physics to a developer who built something that runs on a Tecno Pop 4. The one-line summary: "I'm Kehinde Owolabi, an 18-year-old developer from Lagos, Nigeria who went from FlipaClip to building a 94/100 game engine on borrowed laptops — and got published on SitePoint." 🎮🚀 🎨 The Beginning: FlipaClip and the Spark of Creativity Before I was a developer, I was an animator. I used FlipaClip — a simple animation app on mobile — to create flipbook-style animations. I loved bringing characters to life, frame by frame. I would spend hours drawing, tweaking, and watching my creations move. That creative spark stayed with me. I wanted to create interactive experiences. I wanted to build games. But I didn't know how.
AI 资讯
Beyond Words: Building an AI Mental Health Monitor with HuBERT and Psycho-Acoustics
We often focus on what someone says, but in the realm of clinical psychology, how they say it is often more revealing. Subtle changes in speech—a slight tremor (jitter), a slowing tempo, or a flattened pitch—can be early indicators of depression or anxiety long before a user explicitly voices their distress. In this tutorial, we are building Psycho-Acoustic , a high-performance monitoring tool that leverages the HuBERT model , HuggingFace Transformers , and Librosa to quantify emotional states from non-verbal acoustic features. Whether you're interested in speech sentiment analysis , mental health AI , or advanced audio processing , this guide covers the end-to-face-mic implementation. The Architecture of Sound 🏗️ To accurately detect mental health indicators, we can't just look at text. We need a multimodal approach that combines raw signal processing with deep learning representations. graph TD A[Raw Audio Input .wav] --> B[Librosa Preprocessing] B --> C{Feature Extraction} C --> D[Traditional Features: Jitter, Shimmer, Pitch] C --> E[Deep Learning: HuBERT Embeddings] D --> F[Feature Fusion Layer] E --> F F --> G[Classification Head: Anxiety/Depression/Neutral] G --> H[Quantified Mental Health Score] H --> I[Deployment via ONNX Runtime] Prerequisites To follow this advanced guide, you’ll need: Python 3.9+ Tech Stack : transformers , librosa , torch , onnxruntime A basic understanding of digital signal processing (DSP). Step 1: Extracting Non-Verbal Acoustic Features 🌊 Before hitting the neural network, we need to extract "Psycho-Acoustic" features. Depression is often characterized by "speech prosody" changes—specifically reduced pitch range and slower speaking rates. import librosa import numpy as np def extract_prosodic_features ( audio_path ): y , sr = librosa . load ( audio_path , sr = 16000 ) # 1. Fundamental Frequency (F0) - Pitch f0 , voiced_flag , voiced_probs = librosa . pyin ( y , fmin = librosa . note_to_hz ( ' C2 ' ), fmax = librosa . note_to_hz ( ' C7
AI 资讯
I Ran 300K Company API Lookups. 40K Hit Military Bases.
security, #api, #cybersecurity, #discuss On July 30, 2026, my batch job finished 300,000 domain-to-company lookups. 39,847 of them (13.3%) resolved to defense contractors, military-adjacent parent companies, or headquarters within a few miles of named bases. I wasn't hunting for that. I was just trying to clean a CRM. The same day, lina published a post about hijacking e164.arpa zones and accidentally logging hundreds of thousands of phone calls to military bases. Different protocol, same smell: an infrastructure lookup that was supposed to be boring turned into a classified-adjacent data spill. That parallel is what made me sit down and write this. Here is the exact call I used, with the live response for github.com so you can see the shape of the data before I explain what went wrong. import requests , json , time # Full source notes: https://github.com/On13uka/company-info-api RAPIDAPI_KEY = " YOUR_RAPIDAPI_KEY " BASE = " https://company-info1.p.rapidapi.com " def lookup ( domain ): r = requests . get ( f " { BASE } /lookup?domain= { domain } " , headers = { " X-RapidAPI-Key " : RAPIDAPI_KEY , " X-RapidAPI-Host " : " company-info1.p.rapidapi.com " }, timeout = 20 ) return r . json () print ( json . dumps ( lookup ( " github.com " ), indent = 2 )) The response I got back looked like this. It is a cached sample from a real call — the endpoint was asleep when I drafted this, but the fields are exactly what the pipeline consumed. { "domain" : "github.com" , "company_name" : "GitHub Inc" , "wikipedia" : "GitHub is a developer platform..." , "ceo" : "Thomas Dohmke" , "founded" : "2008" , "headquarters" : "San Francisco, California" , "employees" : "3000+" , "parent_company" : "Microsoft" , "twitter" : "@github" , "github_org" : { "repos" : 200 , "stars" : 50000 , "followers" : 12000 }, "health_score" : 78 } The Finding I started the job because a sales team had 300,000 stale domain records and wanted company names, headcounts, and a rough health score for each. The pla
开发者
Nuance Is a Double-Edged Sword ⚔️
The dictionary defines nuance as a subtle distinction or variation. In practice, it's the difference...
AI 资讯
Dev Opportunity Radar #13: a16z Alpha, a $740K Hackathon, and an AI Agent Competition
TL;DR Welcome back to Dev Opportunity Radar. This is a weekly series where I share opportunities,...
AI 资讯
On-Device Piano Autocomplete: A 125M Model That Actually Works
On-Device Piano Autocomplete: A 125M Model That Actually Works Meta Description: Discover how a 125M parameter model autocompletes piano music entirely on-device. We break down the tech, real-world performance, and what it means for musicians. TL;DR A developer shared on Hacker News that they trained a 125M parameter language model to autocomplete piano melodies — entirely on-device, with no internet connection required. The project demonstrates that compact, efficient AI models can deliver genuinely useful musical assistance without cloud dependency. This article breaks down how it works, who it's for, and whether it's worth your attention as a musician, developer, or AI enthusiast. Key Takeaways A 125M parameter model can run real-time piano autocomplete on consumer hardware without a cloud backend The model was trained on MIDI data and treats music generation similarly to how LLMs treat text prediction On-device inference means zero latency from network calls, full privacy, and offline usability This project sits at an exciting intersection of music technology, edge AI, and creative tools The approach has real limitations — it's not replacing a composer, but it's a genuinely useful creative assistant Similar techniques are being adopted in DAW plugins and music education software as of mid-2026 What Is "Show HN: I Trained a 125M Model to Autocomplete Piano On-Device"? If you spend time on Hacker News, you've probably seen "Show HN" posts — a dedicated space where builders share projects they've made. This particular submission caught significant attention: a developer trained a 125-million-parameter neural network to autocomplete piano music, and crucially, it runs entirely on your local device . No API calls. No subscription. No sending your musical ideas to a remote server. Just a model sitting on your machine, listening to what you play, and suggesting what might come next. The concept sounds deceptively simple, but the execution involves some genuinely clever
开发者
What was your win this week?!
👋👋👋👋 Looking back on your week -- what was something you're proud of? All wins count -- big or small...
开发者
𝑨 𝑪𝒐𝒎𝒎𝒖𝒏𝒊𝒕𝒚 𝑻𝒉𝒂𝒕 𝑰𝒔𝒏’𝒕 𝒂 𝑪𝒐𝒎𝒎𝒖𝒏𝒊𝒕𝒚, 𝑰𝒕’𝒔 𝒂 𝑭𝒂𝒎𝒊𝒍𝒚!
It’s been almost 2 months on Dev.to, and I’ve learned a lot from this community. Not just knowledge,...