Discussion
Loading...

#Tag

Log in
  • About
  • Code of conduct
  • Privacy
  • Users
  • Instances
  • About Bonfire
Eh Eye Ate Dub Yah ✡︎ :ally:
Eh Eye Ate Dub Yah ✡︎ :ally:
@admin@mastodon.ai8w.ddns.net  ·  activity timestamp 4 days ago

And we'll see here in a minute if I've just borked my instance...

Upgraded elasticsearch to 9.X and node.js to 22... and rebuilding...

If this instance goes splort, at least I'll have something to do this weekend.

#mastodon #nodejs #elasticsearch #upgrade #mastoadmin

  • Copy link
  • Flag this post
  • Block
Robin Tarsiger
Robin Tarsiger
@dasyatidprime@mastodon.online  ·  activity timestamp 5 days ago

The pain when trying to imagine something running as a CLI program that's a good POSIX-y citizen but also does complicated dynamic async stuff internally. #Nodejs has a stupid tcsetattr stomp. #Python's async story feels weak. Got curious about #Elixir/#Erlang relatively speaking, looked at erl_signal_server to see about cleaning up on SIGINT instead of triggering emulator break, but it's not in the handleable list! --erl +Bd allows classic immediate exit, but not cleanup. Argh.

  • Copy link
  • Flag this post
  • Block
Aral Balkan
Aral Balkan
@aral@mastodon.ar.al  ·  activity timestamp last week

🥳 New module release: Hetzner Cloud OpenAPI Client

https://codeberg.org/small-tech/hetzner-cloud-openapi-client

This is an OpenAPI client for Node.js generated from the official Hetzner Cloud OpenAPI specification using Massimo.

Recently, while reviewing the code for Catalyst¹, I realised that the Hetzner library I was using was deprecated. The only other client library listed on Awesome Hetzner Cloud for JavaScript was updated seven years ago². So I did a bit of research and discovered that Hetzner has an official OpenAPI specification (useful little things that you can generate documentation as well as working client code from). I also discovered Massimo³, a lightweight and easy to use OpenAPI client generator.

So, anyway, a few minutes later, I had a working Node.js client generated but I thought I’d take a little more time to make it into a module in case anyone else wanted to use it.

In the process, I also created a simple web app example with Kitten⁴ where you can enter your Hetzner API key in a web interface, have it persisted to the default Kitten database⁴ and then carry out a simple call to list your servers. It’s 99 lines of code, including comments, in a single file. (Because Kitten loves you.)

The example uses the new/advanced class and event-based way of working with Kitten so you might find it interesting for that reason too (I haven’t had the chance to document this workflow properly yet). It also showcases Kitten’s Streaming HTML⁵ workflow, as well as its built-in support for semantic default styles and its first-class Markdown support.

You can see the source code for the Kitten example here:
https://codeberg.org/small-tech/hetzner-cloud-openapi-client/src/branch/main/example/index.page.js

The cool thing is that because the client is generated from the official Hetzner OpenAPI specification, it’s one command to update it should the specification change and you can be sure it matches exactly what’s in the API documentation.

Enjoy!

💕

CC @hetzner @lenzgr

¹ https://catalyst.small-web.org
² https://github.com/hetznercloud/awesome-hcloud#javascript
³ https://massimohttp.dev/
⁴ https://kitten.small-web.org/tutorials/persistence/
⁵ https://kitten.small-web.org/tutorials/streaming-html/

#Hetzner #HetznerCloud #API #OpenAPI #Massimo #NodeJS #JavaScript #servers #hosting #VPS #Kitten #SmallWeb #SmallTech

Screenshot of the Hetzner Cloud OpenAPI Client Example running in a browser at https://localhost

Heading: Cloud OpenAPI Client Example.

This is a Kitten app that demonstrates basic usage of the Hetzner Cloud OpenAPI client generated using Massimo from Hetzner's official OpenAPI specification.

H2: Setup

Label: API Token
Password input box with 64 dots

H2: Test
List servers button

Result of having pressed the button is a list of seven servers (the scrollbar indicates there are more that are not visible):

1. small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage)
2. owncast.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage)
3. kittens.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage)
4. kitten.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage)
5. draw-together.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage)
6. accessibilityforeveryone.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage)
7. kitten-kawaii.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage)
Screenshot of the Hetzner Cloud OpenAPI Client Example running in a browser at https://localhost Heading: Cloud OpenAPI Client Example. This is a Kitten app that demonstrates basic usage of the Hetzner Cloud OpenAPI client generated using Massimo from Hetzner's official OpenAPI specification. H2: Setup Label: API Token Password input box with 64 dots H2: Test List servers button Result of having pressed the button is a list of seven servers (the scrollbar indicates there are more that are not visible): 1. small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage) 2. owncast.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage) 3. kittens.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage) 4. kitten.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage) 5. draw-together.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage) 6. accessibilityforeveryone.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage) 7. kitten-kawaii.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage)
Screenshot of the Hetzner Cloud OpenAPI Client Example running in a browser at https://localhost Heading: Cloud OpenAPI Client Example. This is a Kitten app that demonstrates basic usage of the Hetzner Cloud OpenAPI client generated using Massimo from Hetzner's official OpenAPI specification. H2: Setup Label: API Token Password input box with 64 dots H2: Test List servers button Result of having pressed the button is a list of seven servers (the scrollbar indicates there are more that are not visible): 1. small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage) 2. owncast.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage) 3. kittens.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage) 4. kitten.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage) 5. draw-together.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage) 6. accessibilityforeveryone.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage) 7. kitten-kawaii.small-web.org (running) – CPX 11 (x86, 2 cores, 2GB RAM, 40GB storage)
  • Copy link
  • Flag this post
  • Block
Natouille 🍷 🥃 🍾 boosted
Codimp
Codimp
@codimp@social.lithio.fr  ·  activity timestamp last week
#JeChercheUnJob pas moi mais un pote dev qui n'est pas ici :

Si vous cherchez un développeur soucieux des performances, qui aime optimiser ses logiciels, et sait aussi faire du front léger et efficace n'hésitez pas à jeter un œil au profil et CV de Thibault.

Il fait principalement du compilé côté backend avec du Rust, Go, C#, C++ mais aussi du NodeJS.

Côté open-source ses derniers plus grands projets sont clairement ses plugins autour de The Witcher 3.

Toutes les infos, son portfolio et son CV sont ici :
https://t.hottou.fr/lfj-fr.pdf

Hésitez pas à retoot ;)

#Rust #Go #NodeJS #CSharp #CPP

Lithio

Lithio

Lithio

Lithio

Lithio

View (PDF)

Lithio

  • Copy link
  • Flag this post
  • Block
Codimp
Codimp
@codimp@social.lithio.fr  ·  activity timestamp last week
#JeChercheUnJob pas moi mais un pote dev qui n'est pas ici :

Si vous cherchez un développeur soucieux des performances, qui aime optimiser ses logiciels, et sait aussi faire du front léger et efficace n'hésitez pas à jeter un œil au profil et CV de Thibault.

Il fait principalement du compilé côté backend avec du Rust, Go, C#, C++ mais aussi du NodeJS.

Côté open-source ses derniers plus grands projets sont clairement ses plugins autour de The Witcher 3.

Toutes les infos, son portfolio et son CV sont ici :
https://t.hottou.fr/lfj-fr.pdf

Hésitez pas à retoot ;)

#Rust #Go #NodeJS #CSharp #CPP

Lithio

Lithio

Lithio

Lithio

Lithio

View (PDF)

Lithio

  • Copy link
  • Flag this post
  • Block
Ash_Crow
Ash_Crow
@Ash_Crow@mastodon.social  ·  activity timestamp last week

From the PyInfra talk by @wowi42

https://fosdem.org/2026/schedule/event/VEQTLH-infrastructure-as-python/

The "Norway problem" in yaml: If you write "Country: NO", it is interpreted as "Country: false"

"Is there a Norwegian in the room? How do you feel about it? Exactly!"

#Fosdem

FOSDEM 2026 - PyInfra: Because Your Infrastructure Deserves Real Code in Python, Not YAML Soup

Ash_Crow
Ash_Crow
@Ash_Crow@mastodon.social replied  ·  activity timestamp last week

"Some say #Ansible is better because it has a bigger community. Bigger community does not always mean better results.

Just look at #NodeJS!"

#Fosdem

  • Copy link
  • Flag this comment
  • Block
pvergain (framapiaf) boosted
kalvn
kalvn
@kalvn@framapiaf.org  ·  activity timestamp 2 weeks ago

Une nouvelle lib TypeScript pour travailler avec les PDF en Node.js ou Bun. Elle permet notamment de gérer les formulaires, les signatures, etc.

Elle ambitionne également de générer des PDF à partir de HTML dans le futur.

🔗 https://libpdf.documenso.com/

#PDF #NodeJS #JavaScript #TypeScript #lib

  • Copy link
  • Flag this post
  • Block
kalvn
kalvn
@kalvn@framapiaf.org  ·  activity timestamp 2 weeks ago

Une nouvelle lib TypeScript pour travailler avec les PDF en Node.js ou Bun. Elle permet notamment de gérer les formulaires, les signatures, etc.

Elle ambitionne également de générer des PDF à partir de HTML dans le futur.

🔗 https://libpdf.documenso.com/

#PDF #NodeJS #JavaScript #TypeScript #lib

  • Copy link
  • Flag this post
  • Block
Aral Balkan
Aral Balkan
@aral@mastodon.ar.al  ·  activity timestamp 2 weeks ago

So guess who wrote a convoluted date comparison conditional instead of using `Temporal.ZonedDateTime.compare()` like an intelligent human being and ended up hitting an edge case where future scheduled calls started getting cleaned off the database instead of past ones?

I’ll give you a hint: has two thumbs and his name is Aral 🤦‍♂️

Anyway, just restored things from yesterday’s backup and sent a direct message to everyone scheduled for a Gaza Verified video verification call apologising for the confusion and explaining what happened.

Moral of the story: stick to the Temporal API and use its methods if you’re implementing anything even remotely non-trivial involving dates, especially if there are timezones involved. (You can use a Temporal API polyfill in Node.js – I’ve been using temporal-polyfill.)

Now I’m going to expire for the evening.

💕

#GazaVerified #TemporalAPI #calendars #dates #timezones #JavaScript #NodeJS

  • Copy link
  • Flag this post
  • Block
Stefan Bohacek
Stefan Bohacek
@stefan@stefanbohacek.online  ·  activity timestamp 3 weeks ago

Does anyone have experience using the i18n node.js package? I could really use some help fixing this issue with incorrect language being detected:

https://github.com/jointhefediverse-net/jointhefediverse.net/issues/99

#node #NodeJS #i18n #internationalization #WebDev #WebDevHelp

  • Copy link
  • Flag this post
  • Block
Aral Balkan
Aral Balkan
@aral@mastodon.ar.al  ·  activity timestamp 3 weeks ago

🥳 Multiple major releases today

• @small-tech/auto-encrypt v5.0.0 (https://codeberg.org/small-tech/auto-encrypt#readme)
• @small-tech/auto-encrypt-localhost v10.0.0 (https://codeberg.org/small-tech/auto-encrypt-localhost/#readme)
• @small-tech/https v6.0.0 (https://codeberg.org/small-tech/https/#readme)

These releases bring short-lived certificates, IP Address (IPv4 and IPv6) support, and ACME Renewal Information (ARI) support to Auto Encrypt and @small-tech/https, implement a consistent asynchronous API across all three packages, and include loads of little fixes and code quality improvements.

This brings us very close to getting Web Numbers¹ support implemented natively in Kitten².

OCSP support is removed from Auto Encrypt and Windows support is dropped from all three packages as Microsoft is complicit in Israel’s genocide of the Palestinian people³ and Small Technology Foundation⁴ stands in solidarity with the Boycott, Divestment, and Sanctions (BDS) movement. Furthermore, Windows is an ad-infested and surveillance-ridden dumpster fire of an operating system and, alongside supporting genocide, you are putting both yourself and others at risk by using it.

Enjoy!

💕

🇵🇸 To support families facing genocide in Gaza, consider donating to them via Gaza Verified: https://gaza-verified.org/donate/

¹ https://ar.al/2025/06/25/web-numbers/
² https://kitten.small-web.org/
³ https://www.bdsmovement.net/microsoft
⁴ https://small-tech.org/

#SmallWeb #SmallTech #AutoEncrypt #AutoEncryptLocalhost #https #TLS #NodeJS #web #dev #ACME #LetsEncrypt #WebNumbers #Kitten #BDS #Palestine #Gaza #FreePalestine

Codeberg.org

https

Drop in replacement for Node HTTPS module that automatically handles TLS certificate provisioning and renewal both at localhost (via Auto Encrypt Localhost) and at hostname (via Auto Encrypt).
Codeberg.org

auto-encrypt-localhost

Automatically provisions and installs locally-trusted TLS certificates for Node.js https servers in 100% JavaScript (without any native dependencies like mkcert and certutil).
Codeberg.org

auto-encrypt

Automatically-provisioned TLS certificates for Node.js servers using Let’s Encrypt.

Gaza Verified

We’ve personally had video conversations on Signal with the people from Gaza whose Mastodon accounts on the fediverse are listed here and we verify that their accounts are genuine. – Joy & Aral Balkan
BDS Movement

Microsoft

Microsoft is perhaps the most complicit tech company in Israel’s illegal apartheid regime and ongoing genocide against 2.3 million Palestinians in Gaza.
  • Copy link
  • Flag this post
  • Block
Sabrina Web :privacypride: 📎 boosted
Aaron Toponce ⚛️:debian:
Aaron Toponce ⚛️:debian:
@atoponce@fosstodon.org  ·  activity timestamp 3 weeks ago

The creator of #NodeJS claims "the era of humans writing code is over".

Finally! We can stop writing #JavaScript! 😜

& Ryan Dahl & Following
@rough__sea
This has been said a thousand times before,
but allow me to add my own voice: the era
of humans writing code is over. Disturbing
for those of us who identify as SWEs, but no
less true. That's not to say SWEs don't have
work to do, but writing syntax directly is not
it.
21:32:19 Jan 26 - 1.5M Views
& Ryan Dahl & Following @rough__sea This has been said a thousand times before, but allow me to add my own voice: the era of humans writing code is over. Disturbing for those of us who identify as SWEs, but no less true. That's not to say SWEs don't have work to do, but writing syntax directly is not it. 21:32:19 Jan 26 - 1.5M Views
& Ryan Dahl & Following @rough__sea This has been said a thousand times before, but allow me to add my own voice: the era of humans writing code is over. Disturbing for those of us who identify as SWEs, but no less true. That's not to say SWEs don't have work to do, but writing syntax directly is not it. 21:32:19 Jan 26 - 1.5M Views
  • Copy link
  • Flag this post
  • Block
Aaron Toponce ⚛️:debian:
Aaron Toponce ⚛️:debian:
@atoponce@fosstodon.org  ·  activity timestamp 3 weeks ago

The creator of #NodeJS claims "the era of humans writing code is over".

Finally! We can stop writing #JavaScript! 😜

& Ryan Dahl & Following
@rough__sea
This has been said a thousand times before,
but allow me to add my own voice: the era
of humans writing code is over. Disturbing
for those of us who identify as SWEs, but no
less true. That's not to say SWEs don't have
work to do, but writing syntax directly is not
it.
21:32:19 Jan 26 - 1.5M Views
& Ryan Dahl & Following @rough__sea This has been said a thousand times before, but allow me to add my own voice: the era of humans writing code is over. Disturbing for those of us who identify as SWEs, but no less true. That's not to say SWEs don't have work to do, but writing syntax directly is not it. 21:32:19 Jan 26 - 1.5M Views
& Ryan Dahl & Following @rough__sea This has been said a thousand times before, but allow me to add my own voice: the era of humans writing code is over. Disturbing for those of us who identify as SWEs, but no less true. That's not to say SWEs don't have work to do, but writing syntax directly is not it. 21:32:19 Jan 26 - 1.5M Views
  • Copy link
  • Flag this post
  • Block
Aral Balkan
Aral Balkan
@aral@mastodon.ar.al  ·  activity timestamp 4 weeks ago

🇵🇸 @small-tech/cross-platform-hostname module deprecated

https://www.npmjs.com/package/@small-tech/cross-platform-hostname

The release of version 1.1.0 deprecates and removes support for this small module that normalised hostname reporting between Linux/macOS and Windows.

We no longer support Windows as Microsoft is complicit in Israel’s genocide of the Palestinian people¹ and Small Technology Foundation² stands in solidarity with the Boycott, Divestment, and Sanctions (BDS) movement³.

Windows is an ad-infested and surveillance-ridden dumpster fire of an operating system and, alongside supporting genocide, you are putting both yourself and others at risk by using it.

When supporting Linux/macOS, just use the built-in os.hostname() which works the same way on both platforms.

¹ https://www.bdsmovement.net/microsoft
² https://small-tech.org/
³ https://www.bdsmovement.net/

#SmallTechnologyFoundation #crossPlatformHostname #npm #module #deprecation #BDS #Microsoft #Windows #NodeJS #web #dev #FOSS #SmallTech #SmallWeb #israel #genocide #Gaza #Palestine #FreePalestine #techIsPolitical #codeIsPolitical

  • Copy link
  • Flag this post
  • Block
Aral Balkan
Aral Balkan
@aral@mastodon.ar.al  ·  activity timestamp 4 weeks ago

🥳 @small-tech/auto-encrypt-localhost version 9.0.1 released

Automatically provisions and installs locally-trusted TLS certificates for Node.js https servers (including Polka, Express.js, etc.) As used in Kitten¹

This is a housekeeping release:

• Add TypeScript type definitions.
• Improve code quality; fix all type warnings.
• Update dependencies and remove all npm vulnerability warnings.

Enjoy! 💕

¹ https://kitten.small-web.org

#SmallTech #SmallWeb #AutoEncryptLocalhost #TLS #web #dev #NodeJS #JavaScript #SmallTechnologyFoundation

  • Copy link
  • Flag this post
  • Block
Aral Balkan
Aral Balkan
@aral@mastodon.ar.al  ·  activity timestamp 4 weeks ago

🥳 @small-tech/syswide-cas v7.0.2 released

Enables Node.js to use custom Certificate Authorities (CAs) alongside the bundled root CAs.

https://codeberg.org/small-tech/syswide-cas#readme

• Drops legacy Node support
• Is now ESM
• Improved code quality
• Added TypeScript type information

Full change log: https://codeberg.org/small-tech/syswide-cas/src/branch/main/CHANGELOG.md

Enjoy!

💕

#SmallTech #releases #syswideCAs #TLS #NodeJS #CertificateAuthorities

Cookie monster!

Codeberg.org

syswide-cas

Enables Node.js to use custom Certificate Authorities (CAs) alongside the bundled root CAs. (Fork of syswide-cas by a now-defunct startup called Capriza.)
  • Copy link
  • Flag this post
  • Block
Jan :rust: :ferris: boosted
Pax
Pax
@pasimako@mastodon.social  ·  activity timestamp last month

https://ubuverse.com/creating-a-rust-project-from-scratch-for-nodejs-developers/

#rustlang #rust #nodejs #programming #vscode

Ubuverse

Creating a Rust Project from Scratch for Node.js Developers

How to create a new Rust project from scratch in VS Code, geared toward developers experienced with Node.js but want to start exploring Rust for web development.
  • Copy link
  • Flag this post
  • Block
Pax
Pax
@pasimako@mastodon.social  ·  activity timestamp last month

https://ubuverse.com/creating-a-rust-project-from-scratch-for-nodejs-developers/

#rustlang #rust #nodejs #programming #vscode

Ubuverse

Creating a Rust Project from Scratch for Node.js Developers

How to create a new Rust project from scratch in VS Code, geared toward developers experienced with Node.js but want to start exploring Rust for web development.
  • Copy link
  • Flag this post
  • Block
Aral Balkan
Aral Balkan
@aral@mastodon.ar.al  ·  activity timestamp last month

Caught a bug over the holidays so I’m mostly resting, feeling sorry for myself, and taking the time to at least carry out some mindless housekeeping tasks (updating dependencies, etc.) on some of my Node modules.

Released updates to the following packages yesterday:

Tape-based Node.js testing:

• Tap monkey (https://codeberg.org/small-tech/tap-monkey)
• tap-out (https://codeberg.org/small-tech/tap-out)
• esm-tape-runner (no changes; just migrated to Codeberg: https://codeberg.org/small-tech/esm-tape-runner)

Let’s Encrypt:

• Node Pebble (https://codeberg.org/small-tech/node-pebble)

Enjoy! 💕

#NodeJS #SmallTech #tape #testing #tapMonkey #tapOut #esmTapeRunner #LetsEncrypt #NodePebble #npm #modules

  • Copy link
  • Flag this post
  • Block
Gert V 🇵🇸 boosted
Aral Balkan
Aral Balkan
@aral@mastodon.ar.al  ·  activity timestamp 2 months ago

So I’m teaching a friend who doesn’t have any development knowledge how to get started with Small Web development and I thought it would be a good opportunity to start creating and sharing the course on the Kitten web site, one lesson at a time.

Here’s the link:

https://kitten.small-web.org/course

It’s a work in progress that I’ll be adding to along with our lessons but the draft of the first one, on setting up your development environment (which I whipped up in the pub last night, so expect typos) is here:

https://kitten.small-web.org/course/setting-up/

Please feel free to follow along and file issues if you have thoughts for improvements, etc.

The Setting Up lesson will actually likely end up being the second one with the first being a theoretical one on Small (peer-to-peer) Web development and how it is similar to and differs from Big (centralised) Web development.

Enjoy!

💕

#SmallWeb #Kitten #SmallTech #web #dev #course #education #HTML #CSS #JavaScript #NodeJS

  • Copy link
  • Flag this post
  • Block

bonfire.cafe

A space for Bonfire maintainers and contributors to communicate

bonfire.cafe: About · Code of conduct · Privacy · Users · Instances
Bonfire social · 1.0.2-alpha.7 no JS en
Automatic federation enabled
Log in
  • Explore
  • About
  • Members
  • Code of Conduct