A new project for the #fediverse using #activitypub, this is the deal, in case someone wants to help me, or collab in this adventure. Coding skills required but you do not need to be an expert.
Boost for reach.
I volunteer with a non-profit, and there are a few events where they issue digital badges, for now they are just images. Now, they are looking to do it more formally so we looked for commercial alternatives, like Credly, but they are vey cost prohibitive.
Ah, there's nothing like a good "the whole world has changed" #nodejs#javascript dependency hell to waste a whole morning on, after being away for 2 months not updating a project.
If you run into a "EACCES: permission denied" issue with #npm, try clearing your cache. This article saved the day for me, as I'm not a terminal wizard and rather deal with something else:
This morning I'm trying to figure out a :nodejs: #NodeJS package conflict in :archlinux: #ArchLinux as well as setting up a #Docker :docker: container to use a Mullvad exit node. 🤓
Especially the part where you can just publish your TypeScript package without transpilation, and they handle #NodeJS /NPM compatibility is pretty big for IMO.
Hah, just came across this clever #NodeJS vulnerability from a few weeks ago:
CVE-2024-21896: Path traversal by monkey-patching Buffer internals
path.resolve() sanitizes user provided input, but uses Buffer.from() to process the input, so if you provide your own Buffer.prototype.utf8Write, you can change the path.resolve() return value.
Kitten update: session IDs now available in the request.session objects you get in your routes.
Kitten lets you persist arbitrary data in session objects to make it easy to work with sessions but you cannot store custom objects (instances of custom classes) as Kitten’s default database is not aware of custom classes in your application. Now, keyed to the session id, you can store custom objects in your app’s own database.
(The use case for this is pretty neat: keep your interface state in custom state class instances persisted in session objects and, using the Streaming HTML workflow*, send back pieces of the interface that take those state objects as their only prop. Quite a neat separation of concerns and state is maintained only on the server in those objects.)