Lexi
The operating system for legal work Discussion | Link
找到 1464 篇相关文章
The operating system for legal work Discussion | Link
A tiny .env doctor for Node.js projects Discussion | Link
Your coding agent’s testing buddy Discussion | Link
¿Tu equipo comparte tokens, contraseñas de staging o discute arquitectura sensible por Slack? Cada mensaje viaja a servidores de terceros. NETO es una alternativa radical: un chat peer-to-peer que funciona exclusivamente en tu red local, sin cuentas, sin nube, con cifrado de extremo a extremo. ¿Qué es NETO? NETO es una herramienta de mensajería diseñada para equipos de desarrollo que comparten la misma red. No hay servidor central, no hay registro, no hay datos que salgan de tu oficina o VPN. Abres la app y empiezas a hablar. ¿Cómo funciona por debajo? Descubrimiento con mDNS : NETO utiliza multicast DNS para encontrar automáticamente a otros peers en la red local. Sin configurar IPs ni puertos manualmente: si estás en la misma red, apareces. Cifrado con X25519 : Cada par de usuarios negocia claves efímeras mediante el
Duolingo for college applications Discussion | Link
Turn natural language into browser tests from your terminal. Discussion | Link
World's First AI Copilot for Android. You talk. It acts. Discussion | Link
I have three files in this repo that shell out to something over the network or a subprocess and can fail in interesting ways: publish_devto.py , server.py , and git_commit.py . Two of them have --selftest blocks that stub the risky call and exercise the actual failure branches. One doesn't, and I only noticed because I went looking for a reason to be suspicious of my own test coverage after seeing a trending post about counting assertions in a test suite and not liking what you find. git_commit.py reads a staged diff and calls claude -p to turn it into a commit message. It has five distinct exit paths, all guarding real failure modes I've hit before in this project: try : diff = subprocess . check_output ([ " git " , " diff " , " --staged " ], text = True , timeout = 20 ) except subprocess . TimeoutExpired : print ( " git diff --staged timed out after 20s " , file = sys . stderr ) raise SystemExit ( 1 ) if not diff . strip (): print ( " Nothing staged. Run `git add` first. " ) raise SystemExit ( 1 ) try : raw = subprocess . check_output ( [ " claude " , " -p " , " --safe-mode " , SYSTEM + " \n\n " + diff ], text = True , timeout = 20 , stderr = subprocess . PIPE , ). strip () except subprocess . TimeoutExpired : print ( " claude -p timed out after 20s " , file = sys . stderr ) raise SystemExit ( 1 ) except subprocess . CalledProcessError as e : print ( f " claude -p exited { e . returncode } : { ( e . stderr or '' ). strip ()[ : 200 ] } " , file = sys . stderr ) raise SystemExit ( 1 ) except FileNotFoundError : print ( " claude CLI not found on PATH " , file = sys . stderr ) raise SystemExit ( 1 ) That's a held index lock hanging git diff , an empty staging area, a claude -p call that times out, one that exits non-zero, and one where the claude binary isn't even on PATH . Real scenarios — the timeout on this exact git diff --staged call was itself a bug I'd already found and fixed once ( docs/project_notes/bugs.md , 2026-08-06: a prior fix claimed to add a timeout
I don't know about you, but I re-lookup cron syntax every single time. Is it 0 12 * * 1-5 ? Or */5 ? Honestly — nobody keeps this in their head. Instead of another cheat-sheet I'll forget, I built a builder: Pick day, hour, minute from dropdowns See the expression translated to plain English live Preview the next 5 runs in your timezone (this catches the classic "off by one" DST surprises) Get copy-paste snippets for Python, Node.js, Bash, Docker, GitHub Actions and n8n Free, no signup, runs fully client-side: https://cron-generator-kappa.vercel.app If you like it, the cheat-sheet guide is here: https://cron-generator-kappa.vercel.app/guides/cron-cheat-sheet
The investment platform for trading cards Discussion | Link
Bringing intelligence to your cursor Discussion | Link
OpenAI has set out a multi-year strategy that places broad access to AI alongside safety and governance, rather than treating access as a downstream result of technical progress. In its June 8, 2026 plan, the company says it wants AI to be abundant, affordable, safe, useful, and easy to use across individuals, businesses, and governments. The significance is not a newly announced model or price change. It is a clearer first-party statement of how OpenAI connects advanced AI development with distribution, privacy, public oversight, and the sharing of economic gains. OpenAI’s formal plan, Built to benefit everyone: our plan , authored by Sam Altman and Jakub Pachocki, defines three goals: building an automated AI researcher, accelerating the economy while widely sharing the gains, and giving every person on Earth a personal AGI. Together, those objectives make accessibility a strategic requirement for the company’s stated vision, not simply a question of consumer adoption. What OpenAI’s plan says about access and accountability The plan presents advanced AI as infrastructure that should reach a very large population. That framing has practical consequences. For developers and enterprises , the relevant question is not only whether frontier systems become more capable, but whether access remains economically viable, privacy-conscious, and governed predictably enough to support real deployment. OpenAI identifies several principles that it considers central to that outcome: Affordability and abundance , so AI’s benefits can be distributed broadly rather than reserved for a small set of users or organizations. Safety and steerability , particularly for an automated AI researcher intended to accelerate scientific progress while remaining accountable. Privacy and usefulness for people, businesses, and governments using AI systems in consequential settings. Open ecosystems and public oversight , alongside stronger national and international coordination as frontier capabilit
Close your MacBook. Keep the work running. Discussion | Link
I have a small script, reply_comments.py , that pulls unanswered comments off my DEV.to articles and drafts replies to a markdown file so I can paste them in by hand. The API doesn't let a normal account post comments (that's its own bug I've written about before), so this draft-then-paste loop is the whole workflow. Every reply I've ever sent has come from reading the body field this script prints. Today I went looking for a bug distinct from everything already logged for this repo, and I ended up re-reading strip_html() , the function that turns a comment's raw body_html into the plain text I actually read: def strip_html ( h ): return re . sub ( r " \s+ " , " " , re . sub ( r " <[^>]+> " , " " , h )). strip () It does exactly one thing: strip HTML tags with a regex, then collapse whitespace. It's been in the file since the script was written and nobody had audited it on its own — every prior pass through this pipeline was about pagination, thread-depth walking, or dedup keys, never the text-extraction step itself. Here's the problem. DEV.to's API returns body_html as rendered HTML. A correct renderer has to HTML-entity-escape a commenter's own literal < , > , & , and quote characters, or they'd get mistaken for markup. So a comment that reads, in plain English: isn't it faster with a Q&A cache? Try List instead. comes back from the API as something like: <p> isn ' t it faster with a Q & A cache? Try List < String > instead. </p> strip_html() 's regex only ever targets <[^>]+> — actual tags. It has no idea what to do with ' , & , < , > . Those aren't tags, so the regex leaves them untouched. The whitespace collapse doesn't touch them either. What comes out the other end, into the exact field I read to draft a reply, is: isn't it faster with a Q&A cache? Try List<String> instead. That's not a cosmetic nit. On a dev-focused comment section, & , < , and > show up constantly — generics, comparisons, "foo & bar," code snippets
Switch your Magic Keyboard, Trackpad, and Mouse between Macs Discussion | Link
Open source, local voice-to-text Discussion | Link
Track your AI visibility for free (using your own API keys!) Discussion | Link
The AI that acts as you, right in your browser Discussion | Link
Mac workspace automation that never sees your screen Discussion | Link
The only mechanic is waiting. The only currency is time. Discussion | Link