Show HN: Player vs. ComputerHello! I'm Filip, also called as Rubinosław from REParadoxy, and I wanna present to you my first own web video game, which was written in Python using Pygame and Pygbag. Player vs Computer!A funny game where you challenge your computer (not ai) in many ways, testing your durability, and you have to overcome it.- Get 5 points more than your computer in Rock Paper Scissors... Water(!) to win!- Click The Gigachad without ending to tire your computer,- and get some random fun facts, which are interesting!- Get funny responds from your computer, after every single choice, and even sometimes: advices!Never gonna give up! You can win.With original retro graphics drawed by me (Rubinosław from REParadoxy).With original music created by my good homie - ToMek OsuMek.Official Launch Trailer (YouTube): https://www.youtube.com/watch?v=3OgRkYlxIo4Play now for free!: https://rubinoslaw.github.io/Player-vs-Computer/The Source Code (GitHub): https://github.com/Rubinoslaw/Player-vs-Computer/I love open s

Python 3.14 Performance Looking Good In Benchmarks - PhoronixPython 3.14 Performance Looking Good In Benchmarks Phoronix
Ask HN: Alternatives to Fail2ban?I'm administering a small number of Linux servers that run an ssh server exposed to the Internet. I usually connect using a cryptographic key, but I still allow password authentication in case of trouble (perhaps I'm being overly cautious). I've been using fail2ban with good results, but I'm annoyed at having to install a Python interpreter on every server.Is there an alternative to fail2ban that is just a single binary? It doesn't need to have all of the features of fail2ban, blocking dictionary attacks against ssh is all I need.
Virginia teacher and firefighters feud over whether a python started schoolhouse fireAuthorities blamed Nanner for knocking over a heat fixture, but Brittany Jacobs contends it was trying to escape blazeThe snake didn’t start the fire. So says a Virginia science teacher who owns a python that was found outside its enclosure in a middle school classroom that caught fire recently.Authorities, meanwhile, have publicly blamed the fire on the snake, named Nanner, alleging the python kn...
Show HN: I used an expiring Codex reset to port QtScript to Qt6Hey HN, here is a short story that might be worth sharing.I have an application that has been scriptable with QtScript for years. I can automate and extend it through js, with access to QObjects, signals, slots, properties, etc.Unfortunately, QtScript disappeared with Qt6, so (after a long research) my plan was to migrate to PythonQt. That meant rewriting existing scripts, deploying a Python runtime, and praying that all our scripts would still be feasible with PythonQt. I had no particular desire to do all that, so I had been postponing it. The thinkg about QtScript is that, contrary to Qt, online resources are very scarce, you barely find anything but old forum posts from the 2010sSince I'm on the $20 Codex plan and had 2 resets that was going to expire unused. I thought I might as well spend it on something slightly unreasonable: take the Qt5.15 QtScript sources and see how far I could get on Qt6-> After roughly one hour, I had a smoke test compiling, linking against Qt6 and evaluat
Show HN: Sufleur - npm-style prompt registry with typed code-generationHi HN, I've built Sufleur, a prompt registry and companion CLI tool. The motivation was essentially the frustration that prompts are becoming more and more crucial parts of applications, but in the codebases I've seen, they just sit around as random strings, in-house templates with odd rules, and essentially no version control beyond git. I've felt pain in the past when prompts suddenly changed their schemas (either input for rendering or output expected by the LLM), having to read through the whole thing to figure out what I need to supply for the rendering to work, and spent hours trying to debug why the carefully written and evaluated prompt which worked wonders in a python notebook suddenly stopped working in a typescript codebase in prod...These are the main ideas:- Mustache templates for the prompts, since Mustache is a mature, logic-less templating language which already has packages in a lot of languages I would ever want to target.- Input schemas to render a prompt properly ar
Show HN: Jobman – nohup with retries, timeouts, and dependenciesI've long used nohup for background processes that I want to run independently of the terminal. These types of jobs are usually long-running, sometimes launched over an SSH connection, and often have dependencies on other jobs.I built Jobman to combine the simplicity of nohup with features I previously wrote one-off shell scripts for, including: - retries - timeouts - dependencies between jobs - email or webhook notifications on completion or failure - separate stdout and stderr logging with a combined observed-order viewJobman does this with a small per-job supervisor process; there's no shared daemon to run. It uses SQLite for job and run metadata and plain files for log storage. It's intended to be a local, per-user tool, not a system-wide or distributed scheduler.Jobman is written in Go and has releases available for Linux, macOS, and Windows.Here's an example session using Jobman to launch a Python script, examine its logs, and check its status: $ jobman run --name import-data --r
Show HN: Aster, a polyglot monorepo build orchestratorWe built Aster to support our polyglot monorepo 'firstlanding'. At ArchAstro, we use Elixir, Python, TypeScript, Go, and Rust. I wanted something that just orchestrates those tools without Bazel-level complexity. It didn’t exist, so we built it.Aster discovers your existing project files (mix.exs, package.json, Cargo.toml, go.mod, …), builds one graph, and runs targets in order. You can extend it by writing aster.toml files to specify new targets and dependencies or override existing ones. Aster supports a local services runner - it lets you define a set of services to launch with one command and conventions to do this per worktree so each worktree can have it's own private environment. We also use Aster in CI to only build targets that were affected by a particular change.Aster is a core tool we use to increase our productivity with agentic engineering. We took a lot of care in making sure agents can figure out how to use it to run tests, and the services runner lets each agent effect
Julius Avery To Direct Python Thriller ‘Crush’ For 20thJulius Avery To Direct Python Thriller ‘Crush’ For 20th Deadline
Show HN: Postern, an email system for both humans and agentsHello everyone! I wanted to introduce you to a new project of mine, postern, which is an email system for both humans and agents. You can give your agents their own email addresses, the ability to respond to emails if you want, and all emails are presented in one nice unified mailbox. The email stack runs on Cloudflare Workers (email sending does require a subscription to the $5/mo Cloudflare Workers Plan), messages can be ingested into Vectorize (this is optional) to allow your agents to easily retrieve information and answer your questions about your email, attachments are stored in R2, and message state/contents are stored in D1. There’s also a RFC compliant SMTP relay server that runs on your server to translate anything that speaks the 1982 SMTP RFC spec into API calls so you can send emails from your server through the postern stack. There’s a python based IMAP proxy which allows you to use any client (tested extensively with iOS Mail, Apple Mail, Thunderbird, and Evolution) as w
Ask HN: How to avoid LLMs struggling with Lisp parens?LLMs seem to love certain languages (Python, Bash, etc.), but they all seem to struggle with Lisp (e.g. Racket or Emacs Lisp). I've tried various iterations of Claude, as well as cheaper models like DeepSeekV4, etc. and the pattern is the same: they'll make a few successful edits, but eventually they'll get some parentheses slightly wrong, then spiral into madness as they attempt to fix the syntax errors by counting and matching-up parentheses "manually" in a never-ending loop.This is frustrating for two reasons:Firstly, LLMs are famously bad at counting characters (e.g. the number of "r"s in "strawberry"), so it's no wonder this approach of generating and counting characters doesn't work very well.Secondly, balancing parentheses is trivial for traditional, non-LLM algorithms; so it feels like an entirely avoidable problem (without resorting to larger, more-expensive models).Is anyone using LLMs successfully on Lispy projects? If so, what workflows, tooling, etc. have you found to work
Show HN: Claude Token Analyzer: a token "screen-time" reportEveryone is talking about token spend, but not what we actually spend tokens on. I’ve always found it interesting to track my time across different tasks to challenge whether I was working on the right things.Nowadays, I spend around 95% of my day in the Claude desktop app, so “where did my time/tokens go?” basically means “what did I do in Claude?”*Turns out it’s all already on your disk. Every Claude Code / Cowork session is a JSONL transcript with per-message usage blocks: input, output, cache creation, cache read, and timestamps.Run it from the terminal: curl -fsSL 'https://gist.githubusercontent.com/danmeier2/064f7db8c0867dd6331007ba43f0e6fe/raw/claude-token-analyzer.py' | python3 - Run the snipped to get an overview of what you did and when based on your Cowork and Claude Code history. Example output:Claude Token Analyzer · 2026-06-15 · 5 threads Claude Token Analyzer · 2026-06-15 · 5 threads ╭────────────────┬────────────────┬────────────────┬────────────────╮ │ Spend │ Tokens │
Show HN: MicroECS – entity component system library in Python/NumPyHi, in the last ~month I've learned a lot about ECS [1,2].I'm currently developing a robotics simulator from scratch (python+raylib) and, due to lack of game dev experience I went "full OOP" on it. A SceneObject with a lot of inherited interfaces (e.g. Collidable, Movable etc.). These are inherited and fixed at run time.The main loop inevitably became: for scene_object in sim.scene_objects: scene_object.update(...) for scene_object in sim.scene_objects: scene_object.draw(...) Well, it turns out that this can become a bottleneck if you have many scene objects because computers love contiguous memory for caching, physics/math vectorization and so on.Having recently learned more about ECS[1,2], I started doing a bunch of experiments in a sandbox with turning the update() function into ECS. The idea is that the data is stored in columnar numpy arrays (components) + a lot of data structure optimizations for querying scene objects and fast access e.g. qr = scene.query(HasMotion, HasPosition)
Show HN: A terminal writing environment with Git, E2EE sync and temporal searchI am a 40 years old jobless sys-admin with no cs degree and no development experience and 25 yeras of system knowledge. I built a fully encrypted writing environment where I can write with focus forgetting about the application. Here ai was my code translator while I strictly was the architect and instructor. It all started when i asked myself that "why and how i remember any past memory instantly without searching inside my head". This became the design principle of my app. Thus I solved a fundamental git problem of tracking a single note throughout the history by embedding uuid in every commit.Its responsive data-as-UI based interface keeps the app (nearly) learning curve free. Navigating deep hierarchies is easy using numbered fisheye jump system without forward button. Every operation is in one or two keystroke like v(view), c(create), d(delete), r(rename), (j)ump s(sync), (s)earch, b(back) or v1, d1, j1, jb etc. It is built using python standard library (no other dependency), Git,
NVIDIA cuTile Python Tutorial: Building Tiled GPU Kernels for Vector Addition, Matrix Addition, and Matrix Multiplication in Colab - MarkTechPostNVIDIA cuTile Python Tutorial: Building Tiled GPU Kernels for Vector Addition, Matrix Addition, and Matrix Multiplication in Colab MarkTechPost
GitHub confirms 3,800 internal repos stolen through poisoned VS Code extension as supply chain worm hits Microsoft's Python SDKGitHub confirms 3,800 internal repos stolen through poisoned VS Code extension as supply chain worm hits Microsoft's Python SDK VentureBeat
Show HN: Capsule Bash – Sandboxed Bash for AgentsI've always felt that existing Bash wasn't adapted for agents. It gives way too much freedom and not enough feedback to enrich the context after each command.I ended up building this TypeScript-based sandboxed Bash. If we compare it to other alternatives, it is divided into two layers:- The core, with all the Bash commands and the operator logic.- The runtime, a pluggable part that manages code execution in the sandbox. There's a Wasm runtime available based on a Rust runtime I launched a few months ago. [1]In practice, the core calls the runtime to execute code and get back structured information from the sandbox, including exact filesystem changes (what was created, modified or deleted) and direct feedback in stdout.I added commonly used commands, including `python3 -c` and `node -e`, but if you find an edge case where the current commands aren't enough, let me know.GitHub: https://github.com/capsulerun/bash--[1]: https://news.ycombinator.com/item?id=46871387
Show HN: We replaced 5 ML models with 1 shared encoder on an $11/month VPSWe were running 5 fine-tuned MiniLM models for a resume-to-job matching pipeline — 455MB on an $11/month VPS, one per task. I consolidated them into a single shared encoder with 5 lightweight heads: 25MB total, same latency, zero API calls. The matching score went up, not down.The 5 tasks:1. Classify JD lines (requirement vs boilerplate) 2. Split requirements into required vs preferred 3. Disambiguate skill mentions (Python-the-language vs Python-the-ecosystem) 4. Textual entailment (does resume experience satisfy a requirement?) 5. Semantic embeddings for similarity searchAll five share MiniLM-L6 (22M params). Before: 5 x ~91MB fine-tuned copies — essentially the same encoder with different weights, burning RAM for no reason on a 4 vCPU / 8GB box. The obvious idea: share the encoder. One copy in memory, five lightweight heads (~580KB each) routing its output to task-specific predictions.Attempt 1: Frozen encoder, linear heads. Cache CLS embeddings, train heads on cached vectors. Fast.




