I managed to nerd snipe myself yesterday by seemingly breaking the Bluesky profile attached to my self-hosted did:web when I deleted and rebuilt it. I am well out of my comfort zone right now - I don't really understand JWTs, dids, or the various application layers involved in the process of actually having a self-hosted PDS talk to an atproto app yet. Only way to learn is by doing, though, so here are the results of my initial investigations. I ended up spending a few hours on this iterating w
Yesterday almost immediately gave me pause about spending a month learning more about ATProto. Bluesky CEO Jay Graber is having a bit of an ongoing crashout about moderation and the general culture of Bluesky, in this case about the mods' ongoing work to appeal to right-wingers and alienate trans and other marginalized users. To some degree I'm sympathetic to the broader culture problems that Graber takes issue with. Bluesky is full of the type of people who are willing to leave Twitter for mora
For today, the first day of my 30 Days of Protocols, I'm just following the ATProto Quickstart Guide. It's a fun opportunity to work with JS after largely living in Python land for the last few months. This is probably pretty easy and straightforward if you're not a Windows idiot like me (the general consensus from ATProto devs seems to be that Macs are superior, which I don't disagree with. However, I am stuck in Windows land for the foreseeable future, so I have to live like this regardless).
This is documented piecemeal elsewhere, but I ran into enough small issues as a WSL user that it seemed worth writing up, and while django-vite is a cool tool I think it assumes a lot of domain knowledge that new users may not have. Though I've been a fan of the HTMX minimal dependencies philosophy for a while, I am accepting the necessity of having some degree of JavaScript build pipeline: even if you're keeping all your logic on the back-end, there are plenty of things it's preferable to be a
Reverse engineering Apple's 2D style edit slider for the web, with some React and a whole bunch of math.
Using JavaScript and Perlin and Simplex noise to procedurally generate a map with different biomes.
TiddlyWiki is a cool tool, but if you, like me, are insane interested in getting it set up on the cloud, it can be a bit of a hassle. Here's a quick set of instructions to get it to run automatically as a service on a Linux server - I used a Hetzner Ubuntu machine. Install TiddlyWiki and create a server: npm install -g tiddlywiki tiddlywiki {server name} --init server Create a systemctl file for Tiddlywiki, e.g. etc/systemd/system/tiddlywiki.service Add the following for a barebones systemd
You like sprites? I like sprites. So I wanted to make see how easy it would be to make an animation from a sprite sheet. Turns out it's super easy, barely an iconvenience.
I recently decided to fully rebuild my blog from the ground up using Next.js. By default, there's no built-in support to auto-generate an RSS for blog posts like there are in so many starters for Gatsby. As such I needed to roll my own.
The winter ❄️ has finally come. I have been wishing for snow for a long time. Coming from a warm country such as Portugal, snow is not the most common thing to see. In fact, I only saw snow in Portugal once when I was a kid when I went to Serra da Estrela, the highest mountain in continental Portugal.
Drop caps can present a unique challenge for accessibility. It may seem like a simple enough design feature to implement on a site, but given that the CSS for actual drop cap support is presently only implemented in Safari we have to get a bit hacky.
CSS Frameworks like Bootstrap, Foundation, and Bulma help us describe our HTML in terms of layout structure and components, but I'm not a fan of that approach.
To create a random number generator, I was immediately drawn to the randomness that exists on the computer itself as a source: much in the…
My solution to the so called "Impossible Layout".
Node.js is one of the trends in the programming world. Let's learn how to create node.js command-line applications.
Os operadores '==' e '===' por vezes podem confundir-nos um pouco em relação ao seu uso e para que servem. Fica aqui a explicação de cada um."
Efetuar pedidos POST e GET utilizando a função ajax do jQuery e responder utilizando a linguagem de servidor PHP.