Recent submissions

Comment · 1 month ago
Having rules is good, but having rules that you can statically enforce is better (partly why Rust is so popular, right?). Think of golangci-lint. Datapages can prevent drifting agents (and humans) from making mistakes using static code analysis.

A very simple example is a stale link to a page that no longer exists. Datapages will not allow `<a href="/account">Account</a>` in your Templ templates, `datapages gen` or `datapages lint` will error. It will give you a hint, that you should be using a URL builder from the generated package instead: `<a href={ href.PageAccount() }>Account</a>`. And if that page is ever changed/removed - that will produce an actual compiler error.

But this is obviously just one of the smallest of mistakes.

A production ready application requires a lot of moving parts: - SSE stream subscription, teardown, per-tab state, panic recovery, and graceful shutdown. - Auth, sessions, CSRF, input validation, cross-origin, CSP, etc. - AI skills (I created and tested them for you so you don't have to). - Logging, metrics. - All the NATS boilerplate for doing proper CQRS. - Service workers, browser-local caches, static assets. - Live reload in dev mode (https://github.com/romshark/templier is built in) - etc.

Basically, I'm trying to move a lot of the "plumbing/infrastructure" code out of your and/or your agents ownership into the ownership of a well tested code generator to make it super cheap and easy to ship production grade Datastar apps in Go. You can literally wipe 2/3 of the code base and recreate it idempotently and deterministically, so you really only own and maintain 1/3 of the code (fewer bugs, fewer AI tokens).

Comment · 1 month ago
Comment · 1 month ago
After 7 long months of lots of work and rumination, it finally happened!

Datapages, the Datastar-powered Go frontend meta-framework and toolchain has reached beta

This is the first release of Datapages I consider production ready.

P.S. Please read the release notes, I've carefully hand-written them for you Otherwise - happy to answer any question!

Comment · 1 month ago
A Datastar metaframework for Go: https://github.com/romshark/datapages

it's a CLI toolchain with a code generator and linter.

I invested time into this because:

1. Go is a much less wasteful SSR solution than JavaScript.

2. Datastar + Templ + Go is a highly effective combination.

3. I wanted a set of tools that not only helps getting started with a project fast, but also allows me to make it easier to maintain, especially with coding agents.

v0.10.0 should soon move it out of alpha into the beta stage.

Comment · 8 months ago
GitHub is slowly turning into the Deutsche Bahn of git providers.
Comment · 9 months ago
> Is there something I'm missing? Why does this workstation need a ~$1000 motherboard and a ~$1000 Xeon CPU? Those two components alone cost more than either of my computers and seem like severe overkill.

Yes, as stated in the article, it probably could have been cheaper. But this setup is supposed to:

1. Run simulations and benchmarks of/on entire SCION topologies with multiple ASes.

2. Potentially grow beyond 25 Gbit/s into the 200 Gbit/s ranges (and more?).

3. Be available to me ASAP (can't wait months for it to arrive from China).

4. Potentially be used for CI/CD performance regression testing in the future.

The budget allowed a bit of headroom for the future.

Comment · 9 months ago
First of all, at this point, SCION is not here to replace BGP. It's here to provide a more secure way of interconnecting ASes for critical infrastructure applications (finance, defense, government, etc..) that allows path selection and verification over multiple-ISPs. It can for example, be seen as an alternative to MPLS but offering more capability.

SCION also offers more protection against DDoS attacks and other outages thanks to its multi-path routing capabilities and ability to failover quicker than BGP as it builds and stores its path knowledge in advance.

> How do I peer with the big corps in a SCION world?

You do so by joining an ISD (Isolation Domain) and inheriting TRC (Trust Root Configuration).

> so SCION doesn't really enable a more secure internet, it enables more (largely corporate) control

Much critical infrastructure is still reliant on leased lines or MPLS which is expensive and reliant on a single ISP which often reduces resilience. It often also requires assurances about where its traffic is being forwarded (e.g. through particular countries or regions) which is difficult or impossible with BGP. SCION can instead provide these assurances over the commodity Internet provided by multiple ISPs, by being able to verify paths and allowing packet senders to control how packets should be routed given the available path options.

ISDs are typically for specific use cases (e.g. Swiss Secure Finance Network) where strong assurances are needed for where traffic is sent, but ISDs can decide admission criteria for themselves and how they wish to communicate with other ISDs and the rest of the Internet.

Think of the power grid for example. Putting power plants on the internet is probably a bad idea. A better idea is to interconnect power plants through multiple ISPs over a SCION ISD. Less expensive than leased lines or MPLS, and more flexible.

Comment · 1 year ago
The developers of data-star.dev are working on something interesting they call "Rocket", but it's currently a WiP and hidden behind a paywall so I can't really compare it to Lit. Lit is great though, used it myself a few times (e.g. github.com/romshark/demo-islands). But I still think there's a learning curve to Lit. Better than raw vanilla JS custom elements API, but still not as simple as it could be.
Comment · 1 year ago
Repos: https://github.com/romshark/tik https://github.com/romshark/toki

I'm trying to make i18n easier, integrate it better with CI/CD and automate it more with LLMs (for now in Go, second priority is TypeScript and other languages later).

For this I had to develop a completely new approach and subsequently a specification for the "textual internationalization key" (TIK) which are programmatically translatable to ICU MF.

Toki is the first TIK processor implementation for Go.

Comment · 3 years ago
You might also want to check out this abomination of mine: https://github.com/graph-guard/gqlscan

I've held a talk about this, unfortunately wasn't recorded. I've tried to squeeze as much out of Go as I could and I've went crazy doing that :D

Comment · 3 years ago
I've recently held a talk (https://youtu.be/a7VBbbcmxyQ?si=0fGVxfc4qmKMVCXk) about github.com/romshark/jscan that I've been working on. It's a performance-oriented JSON iterator / tokenizer you might want to take a look at if interested in high performance zero allocation JSON parsing in Go.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton