snorremd
Joined 10 years ago
Joined 10 years ago
Now stuff like Cloudflare D1, the distributed SQLite based database, have its limitations. Writes are directed to a specific datacenter/region behind the scenes, so some regions might get slower writes. But this is basically something that happens behind the scenes and just works. You need to think about where your primary base of customers live when you create the database, after that you don't think about regions. R2 (S3 compatible storage) just works globally as well.
A lot of what Cloudflare offers now feels like magic in a good way. I realize they don't have everything AWS, Google Cloud and Azure have. But they have enough that you can build serious systems on top of their infrastructure. They are no longer just a CDN/proxy provider. And their offering is seriously cheap.
Ended up asking some locals where I was, and amused they assured me I was way outside the map and had gone east instead of north. I did not want to backtrack so I asked if there was any nice places to get a beer nearby and they pointed me towards a beer garden. Those were some of the nicest Pilsner Urquells and Staropramens I had during my visit. No tourists to be seen, and good vibes all around.
Nowadays I mostly navigate with GPS and rarely just happen on random places like that. I guess we lose some of the discovery when you always know where you are going.
A shame really, because Keybase was kind of unique in the way the facilitated social proof of identity tied to cryptographic keys. A shame though that they never found a really sustainable business model. When they turned to crypto currency towards the end of their independent run I knew it probably wouldn't last.
Good old server side rendering is simple in Rich Hickey's "Simple Made Easy" way. You can build more complex logic on top of a standard server rendered model, but the base model is mostly dead simple to reason about. I like that. I've built web "apps" in AngularJS, React, Reagent (ClojureScript) and Next. So I'm not coming at this from a grumpy "backender" position. I'm coming at this from having done lots of frontend stuff and finding the frameworks becoming increasingly complex beneath the surface. It feels like they are targeting the "easy" in Rich Hickeys parlance in the sense that you don't have to write a lot of code to make something fancy. But reasoning about the behavior and what actually happens in the framework when something doesn't work is increasingly difficult.
Edit: And maybe this is a "skill issue". If you just learn the framework and library well enough you'll get by much better. But I tend to not want to bind myself to any single framework too much. So simple frameworks that don't churn too much is better for me.
But interactivity in largely content-driven sites doesn't necessarily preclude HTMX. You can do a bunch of fancy interactive stuff with HTMX and some minimal JS. Drag and drop sort is a tiny drop-in JS snippet. Skeleton loaders and spinners are supported out of the box in HTMX as is infinite scroll as others pointed out.
I'm not saying Next.js, Solid Start, Remix, Nuxt or some other hybrid server and client rendered model doesn't work for forum software. Or that even client only rendering can be a valid approach if you accept the trade-offs (no curl-ability). People should use whatever they feel productive building with.
But if your backend is already a non-JavaScript server rendered framework like Django then HTMX makes a ton of sense to add some interactivity.
With HTMX you can do partial rendering and live updates via server-sent events. This gets you most of the way to the "client side" feel where things load dynamically based on user actions.
The only properly dynamic SPA-like feature in a forum I can think of is a WYSIWYG editor, but that you can build as a web component. Maybe a flexible highlight and quote system would be a bit difficult in pure HTMX (think of the comment functionality in Medium posts). So you'd want to build a few things in client side JS. But the main experience could very well be built with HTMX.
It is unfortunate that Framework has sold priced pre-orders for batches they haven't secured supplier contracts for. Or maybe they did, but the supplier decided to void their contract releasing the same product for twice the amount. Hard to know what goes on inside these companies. In any case the AI bubble is doing a number on consumer market hardware.
I want to support Framework's mission, but this is a crappy situation all around. Definitely a mark on Framework's reputation, and also annoying for those who know need to dish out more money or not get the product they were promised at the price-point that was indicated at purchase.
Now there are of course limitations to what you can do in terms of not supporting Java reflection or the full Clojure compiler. But I've made some nifty small scripts and convenience helpers with it. And the dev experience of making these scripts is so much nicer than trying to write bash scripts. The Clojure edn syntax is super simple, and the REPL connected editor let me rapidly test parts of the code just like with full Clojure apps.
I don't have experience with other lisps, but I can vouch for Clojure being very nice. The community was welcoming and friendly to newcomers when I started learning, I hope it still is. One thing I love about the Clojure ecosystem and community is the effort taken to never break libraries. I've looked at libraries I used some ten years ago, and the API is still compatible with code I wrote back then. There is very little churn. Maybe this is because the language is largely untyped and editors only partially check "types". Having breakages in libraries you consume once every couple of months would get really tiring in Clojure land. I'd imagine the same problems would present themselves in Common Lisp and others.
Half the point of ATProto is that identities are used across a host of apps, and therein lies a big vulnerability. If identities are not truly independent of centralized infrastructure, then you are vulnerable to losing access to a number of apps at once similar to Google services black hole if your Google account is banned (not to mentioned anywhere you've logged in with SSO).
It would be much better if the PLC was somehow decentralized itself. Barring that it should at least be finally spun out as the independent Swiss organization they've talked about for some time now. The organization could form a board with interested parties to set the future of PLC development if needed.
As for PDS migration, there are good options if you are migrating away from Bluesky. There are lots of GUI tools that work well now like https://pdsmoover.com/moover, Eurosky has https://move.eurosky.tech/, etc. It would be cool though if Bluesky actually linked to the other big PDS-providers on the Bluesky sign-up page to actually promote decentralization. But I guess it is hard to vouch for other services.
I still think the future of ATProto is bright, but there are definitely some obstacles before I'm comfortable with the whole setup. The network needs more decentralization in the PDS-layer, and the PLC needs to spin out in the separate governance organization pronto.
Browser based rendering that allows people to easily make new watch faces with JS and SVG is a perfectly reasonable platform for a nifty project like this. I think your watch faces look neat.
I believe VoidZero has been acquired by Cloudflare [1], so money should not be an issue. Question is if Cloudflare will be willing to continue letting these people work on Vite and Vite+ features that benefit all cloud platforms, not just Cloudflare.