Show HN: The Blots Programming Language
Show HN (score: 10)Description
Would really appreciate any feedback about the syntax, docs, features that are glaringly missing, etc. Before anybody mentions it: I know the performance is pretty lousy when dealing with a lot of data. If you can believe it, the runtime is about 100x faster than it used to be! Long term I'd like to switch to a proper bytecode interpreter, but so far performance has been Good Enough for my use cases.
Thanks for taking a look!
More from Show
Show HN: A context aware backend for AI coding agents
Show HN: A context aware backend for AI coding agents Hey HN, I’m Hang. Today I’m open-sourcing InsForge, a context aware backend for AI coding agents.<p>When using agents like Cursor or Claude to build applications, they often assume what the backend looks like instead of inspecting it. Without access to the actual backend state, they fall back on outdated information, which leads to concrete issues. For example:<p>1. Storage, edge functions, and database logic are closely connected. Without understanding how these parts interact, existing setups get overwritten and important flows break. 2. Database migrations conflict with foreign keys or miss functions because the agent never inspects the live schema. 3. Recreating tables or adding columns that already exist, which leads to conflicts and failed deploys.<p>These problems are not about the agent’s ability to code. They happen because there’s no structured way for the agent to inspect and understand the actual backend before acting.<p>To address this, I built InsForge, which exposes the backend in a structured way and gives the agent direct control:<p>1. Introspection endpoints for schema, relations, functions, triggers, policies, routes, storage, roles, documentation, logs and events 2. Control endpoints for operations usually done through CLI, dashboards or SQL editors<p>InsForge is a full backend platform that includes:<p>- Postgres - Authentication - Storage - Edge functions - Built in AI-model endpoints (via OpenRouter)<p>On top of this, it exposes structured backend metadata and control capabilities through an MCP server and tools, providing a structured, self-describing interface for agents to inspect schemas, policies, triggers, and docs, and interact with the backend.<p>It’s open source and can be self hosted (<a href="https://github.com/InsForge/InsForge" rel="nofollow">https://github.com/InsForge/InsForge</a>) or try our cloud service at (<a href="https://insforge.dev/" rel="nofollow">https://insforge.dev/</a>).<p>We love feedback!
Show HN: FingerprinterJS – A tiny JavaScript library for browser fingerprints
Show HN: FingerprinterJS – A tiny JavaScript library for browser fingerprints I made FingerprinterJS, a small library with no dependencies that creates browser fingerprints from signals like canvas, WebGL, audio, fonts, userAgent, and screen info.<p>It’s written in TypeScript, lets you enable/disable collectors, add custom data, and includes a simple suspicious-activity score.<p>Would love feedback.
Show HN: Macscope – I decide to built a better Cmd-Tab replacement for macOS
Show HN: Macscope – I decide to built a better Cmd-Tab replacement for macOS Hi HN,<p>Macscope is a new window manager and and app switcher for macOS built on the philosophy of enhancing, not replacing, your existing muscle memory.<p>It works by augmenting the familiar Cmd+Tab workflow. A quick tap of your shortcut instantly switches between recent apps, just like you're used to. A slightly longer hold, however, opens the full Macscope interface where you can manage all your open windows and tabs.<p>You can also use modifier shortcuts to enter Placement Modes, which let you instantly snap a selected window to the left/right/top/bottom/ half of your screen.<p>Here are some of the key features:<p>- Unified Search & Switch: A single interface to instantly find and switch to any window, browser tab (Safari, Chrome, Arc, etc.), or application just by typing.<p>- Live Previews: See a real-time preview of what's inside each window so you know exactly where you're going. You can also disable previews for a more minimal experience.<p>- Advanced Window Management: Go beyond just switching. Select multiple windows and arrange them into layouts like vertical/horizontal splits or grids.<p>- Scopes: Save collections of app windows as a "Scope" and instantly restore that entire workspace later. It's ideal for quickly switching between different projects or tasks.<p>It’s a native macOS app built with Swift and supports both Apple Silicon and Intel machines.<p>Launch Offer for HN:<p>There's a free trial with 250 actions. For the Hacker News community, I'm offering a 50% discount on the lifetime license.<p>Website: <a href="https://macscope.app" rel="nofollow">https://macscope.app</a><p>Discord Community: <a href="https://discord.gg/ehktEWr97K" rel="nofollow">https://discord.gg/ehktEWr97K</a><p>I'll be here all day to answer questions and would be grateful for any feedback. Thanks for checking it out!
Show HN: Structured Cooperation – A new way of building distributed apps & POC
Show HN: Structured Cooperation – A new way of building distributed apps & POC Hey HN,<p>I wanted to share something I've been working on for the past couple of months, which may be interesting to developers interacting with distributed architectures (e.g., microservices).<p>I'm a backend developer, and in my 9-5 job last year, we started building a distributed app - by that, I mean two or more services communicating via some sort of messaging system, like Kafka. This was my first foray into distributed systems. Having been exposed to structured concurrency by Nathan J. Smith's beautiful article on the subject (<a href="https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful" rel="nofollow">https://vorpus.org/blog/notes-on-structured-concurrency-or-g...</a>), I started noticing the similarities between the challenges of this message-based communication, and that of concurrent programming, and GOTO-based programming before that - actions at a distance, non-trivial tracing of failures, synchronization issues, etc. I started suspecting that if the symptoms were similar, maybe the root cause, and therefore the solution, could be as well.<p>This led me to design something I'm calling "structured cooperation", which is basically what you get when you apply the principles of structured concurrency to distributed systems. It's something like a "protocol", in the sense that it's basically a set of rules, and not tied to any particular language or framework. As it turns out, obeying those rules has some pretty powerful consequences, including:<p>- Pretty much eliminates race conditions caused by eventual consistency<p>- Allows you to recover something resembling distributed exceptions - stack traces and the equivalent of stack unwinding, but across service boundaries<p>- Makes it much easier to reason about the system as a whole<p>I put together three articles that explain:<p>1) what structured cooperation is (<a href="https://developer.porn/posts/introducing-structured-cooperation/" rel="nofollow">https://developer.porn/posts/introducing-structured-cooperat...</a>),<p>2) one way you could implement it (<a href="https://developer.porn/posts/implementing-structured-cooperation/" rel="nofollow">https://developer.porn/posts/implementing-structured-coopera...</a>), and<p>3) why it works (<a href="https://developer.porn/posts/framing-structured-cooperation/" rel="nofollow">https://developer.porn/posts/framing-structured-cooperation/</a>).<p>I also put together a heavily documented POC implementation in Kotlin, called Scoop (linked in the title). I guess you could call it an orchestration library, similar to e.g. Temporal (<a href="https://temporal.io/" rel="nofollow">https://temporal.io/</a>), although I want to stress that it's just a POC, and not meant for production use.<p>I was hoping to bounce this idea off the community and see what people think. If it turns out to be a useful way of doing things, I'd try and drive the implementation of something similar in existing libraries (e.g. the aforementioned Temporal, Axon (<a href="https://www.axoniq.io/products/axon-framework" rel="nofollow">https://www.axoniq.io/products/axon-framework</a>), etc. - let me know if you know of others where this would make sense). As I mention in the articles, due to the heterogeneous nature of the technological landscape, I'm not sure it's a good idea to actually try to build a library, in the same way as it wouldn't make sense to do a "structured concurrency library", since there are many ways that "concurrency" is implemented. Rather, I tried to build something like a "reference implementation" that other people can use as a stepping stone to build their own implementations.<p>Above and beyond that, I think that this has educational value as well, and I did my best to make everything as understandable as possible. Some things I think are interesting:<p>- Implementation of distributed coroutines on top of Postgres<p>- Has both reactive and blocking implementation, so can be used as a learning resource for people new to reactive<p>- I documented various interesting issues that arise when you use Postgres as an MQ (see, in particular, <a href="https://github.com/gabrielshanahan/scoop/blob/09db323bf6c8a72ca34b50392928db13f80dcc15/src/main/resources/db/migration/V2__create_message_event_table.sql#L20">https://github.com/gabrielshanahan/scoop/blob/09db323bf6c8a7...</a> and <a href="https://github.com/gabrielshanahan/scoop/blob/09db323bf6c8a72ca34b50392928db13f80dcc15/src/main/kotlin/io/github/gabrielshanahan/scoop/blocking/coroutine/structuredcooperation/MessageEventRepository.kt#L676">https://github.com/gabrielshanahan/scoop/blob/09db323bf6c8a7...</a>)<p>Let me know what you think.
Show HN: I built a dream interpreter in JavaScript, no AI, no server, just logic
Show HN: I built a dream interpreter in JavaScript, no AI, no server, just logic I built a browser-only dream interpreter that maps symbols to meaning using a custom keyword engine. No AI, no tracking, no backend it’s all deterministic logic, built with vanilla JavaScript. The idea was to see if emotional and symbolic interpretations could still feel personal without using machine learning. Dreams are parsed against a map of 300+ symbolic meanings. Everything runs locally in your browser and saves via localStorage. You can revisit old dreams, reflect on interpretations, or just explore what the system sees in your subconscious. Happy to answer questions, would love feedback!
Show HN: Integrated System for Enhancing VIC Output
Show HN: Integrated System for Enhancing VIC Output ISEVIC stands for Integrated System for Enhancing VIC output and is a cartridge for the C64 that uses the Tang Nano 20K FPGA to monitor the bus and recreate the C64 video for HDMI output. While a tremendous effort has gone into handling all the clever C64 tricks, this should be considered a 1.0 release as there are still some demos and games that exhibit bugs. Everything needed to build one is on the github page.
No other tools from this source yet.