There is now an up-to-date pandoc-wasm package available on npm.
The credit for this goes to @gws and @johanneswilm thanks a lot!
There is now an up-to-date pandoc-wasm package available on npm.
The credit for this goes to @gws and @johanneswilm thanks a lot!
Fedify is an #ActivityPub server framework in #TypeScript & #JavaScript. It aims to eliminate the complexity and redundant boilerplate code when building a federated server app, so that you can focus on your business logic and user experience.
The key features it provides currently are:
If you're curious, take a look at the #Fedify website! There's comprehensive docs, a demo, a tutorial, example code, and more:
#ReleaseSaturday — This week I've been working on extracting, refactoring & generalizing the minimal column store database I've been using for my personal knowledge/media management toolset, and I'm happy to share it with the world now:
This is an in-memory column store database with:
- Customizable column storage types with configurable min/max cardinality, support for optional and/or tuple-values, default values
- Support for custom column type implementations
- Optional dictionary encoding of column values (memory & filesize saving)
- Powerful extensible multi-term query engine with built-in OR/AND/NOR/NAND operators and predicate-based matchers (column, row, partial row). Queries can be pre-built and then executed as standard JS iterables
- Optional bitfield indexing for dramatic query acceleration (esp. for complex multi-term queries)
- Dynamic adding/removing of columns
- JSON serialization with optional RLE compression (in my PKM dataset with ~20k items, the RLE compressed version is only 29% of the normal JSON serialization)
I hope the readme and code examples give a decent overview for now... I've been using the overall system for a couple of years now, but this new packaged version is still marked as _alpha_. Everything's still being worked on.
Also, for those wondering what's the point of this all and why not using SQLite etc. — I find there're many use cases for a which a pure JSON-based approach is more than sufficient (without requiring extra tools and interfacing layers). The structure/storage model and the bitfield optimizations enable very fast query performance (compared to other JSON db's I've tried in the past)...
(Including all dependencies [only some other thi.ng packages], the entire DB package is ~6KB brotli'd, 19KB uncompressed...)
#ThingUmbrella #TypeScript #JavaScript #JSON #Database #QueryEngine #RLE #SmallWeb
Last weekend, I was reading the State of JS 2025 survey and started wondering how those popular JavaScript syntax features translate to PHP.
I turned it into a small article comparing JS features with their PHP equivalents, with examples and explanations.
A curious weekend exercise ☕️
#JavaScript #PHP #WebDev #StateOfJS #DevCommunity #programming @thepracticaldev
My books on #JavaScript and #TypeScript are free to read online:
– Exploring JavaScript (ES2024 edition)
– Deep JavaScript
– Tackling TypeScript
– Shell scripting with Node.js
Boosts appreciated!
#ReleaseSaturday — This week I've been working on extracting, refactoring & generalizing the minimal column store database I've been using for my personal knowledge/media management toolset, and I'm happy to share it with the world now:
This is an in-memory column store database with:
- Customizable column storage types with configurable min/max cardinality, support for optional and/or tuple-values, default values
- Support for custom column type implementations
- Optional dictionary encoding of column values (memory & filesize saving)
- Powerful extensible multi-term query engine with built-in OR/AND/NOR/NAND operators and predicate-based matchers (column, row, partial row). Queries can be pre-built and then executed as standard JS iterables
- Optional bitfield indexing for dramatic query acceleration (esp. for complex multi-term queries)
- Dynamic adding/removing of columns
- JSON serialization with optional RLE compression (in my PKM dataset with ~20k items, the RLE compressed version is only 29% of the normal JSON serialization)
I hope the readme and code examples give a decent overview for now... I've been using the overall system for a couple of years now, but this new packaged version is still marked as _alpha_. Everything's still being worked on.
Also, for those wondering what's the point of this all and why not using SQLite etc. — I find there're many use cases for a which a pure JSON-based approach is more than sufficient (without requiring extra tools and interfacing layers). The structure/storage model and the bitfield optimizations enable very fast query performance (compared to other JSON db's I've tried in the past)...
(Including all dependencies [only some other thi.ng packages], the entire DB package is ~6KB brotli'd, 19KB uncompressed...)
#ThingUmbrella #TypeScript #JavaScript #JSON #Database #QueryEngine #RLE #SmallWeb
There is now an up-to-date pandoc-wasm package available on npm.
The credit for this goes to @gws and @johanneswilm thanks a lot!
On this somewhat special anniversary, I also want to state once again that Liberapay is an open project. *You* can contribute to it if you have some basic skills, and receive some money in return. There's still a lot of work to do, including quite a bit that doesn't involve programming, and plenty to learn.
Liberapay is written in #Python, #SQL (until I can finish building what's needed to get rid of it), and as little #JavaScript as possible.
→ https://github.com/liberapay/liberapay.com/blob/master/CONTRIBUTING.md
Liberapay has never had a rigid roadmap, and we don't usually announce things in advance, but today we can say:
- Two noteworthy new features will be available soon, one for donees and one for donors.
- Later this year, Liberapay will add support for at least one more payment method, thanks to a grant from NLnet.
On this somewhat special anniversary, I also want to state once again that Liberapay is an open project. *You* can contribute to it if you have some basic skills, and receive some money in return. There's still a lot of work to do, including quite a bit that doesn't involve programming, and plenty to learn.
Liberapay is written in #Python, #SQL (until I can finish building what's needed to get rid of it), and as little #JavaScript as possible.
→ https://github.com/liberapay/liberapay.com/blob/master/CONTRIBUTING.md
Awesome explanation of Reference Target and what problems it solves.
https://blogs.igalia.com/alice/reference-target-having-your-encapsulation-and-eating-it-too/
🥳 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!
💕
¹ 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
👋 I'm looking for a Senior #Frontend Engineer job!
🚀 I am...
- a detail oriented senior engineer with 15 years of experience
- proficient with #JavaScript and #TypeScript, #CSS, #Vue, TDD
- experienced with #React, Ember.js, GCP, Terraform
🔎 I'm looking for:
- a collaborative environment between engineering + product & design teams
- a Germany / EU-based remote-first company
- ability to learn and grow
🚫 no crypto, web3, big oil, gen-ai, gambling
🙇 boost appreciated!
👋 I'm looking for a Senior #Frontend Engineer job!
🚀 I am...
- a detail oriented senior engineer with 15 years of experience
- proficient with #JavaScript and #TypeScript, #CSS, #Vue, TDD
- experienced with #React, Ember.js, GCP, Terraform
🔎 I'm looking for:
- a collaborative environment between engineering + product & design teams
- a Germany / EU-based remote-first company
- ability to learn and grow
🚫 no crypto, web3, big oil, gen-ai, gambling
🙇 boost appreciated!
Wonderful:
“10 Years Of Wasm: A Retrospective”, The Bytecode Alliance (https://bytecodealliance.org/articles/ten-years-of-webassembly-a-retrospective).
On HN: https://news.ycombinator.com/item?id=46799014
#Internet #Web #WASM #WebAssembly #Bytecode #VirtualMachine #Mozilla #Google #JavaScript #Portability #Programming #Retrospective
Wonderful:
“10 Years Of Wasm: A Retrospective”, The Bytecode Alliance (https://bytecodealliance.org/articles/ten-years-of-webassembly-a-retrospective).
On HN: https://news.ycombinator.com/item?id=46799014
#Internet #Web #WASM #WebAssembly #Bytecode #VirtualMachine #Mozilla #Google #JavaScript #Portability #Programming #Retrospective
Is that Tauri, running a Roda app locally as a desktop app without exposing it to TCP?
Almost! It's my experimental Ruby port of Tauri... Tokra!
Write desktop software in Ruby, with an HTML and CSS interface. You can use JS frameworks, too. Plus: it's Rack-compatible!
Rubygem: https://rubygems.org/gems/tokra
Code: https://git.sr.ht/~kerrick/tokra/tree/stable/item/examples/verify_ping_pong/app.rb
#ruby #rust #tauri #tokra #desktop #software #programming #gui #webdev #html #css #javascript #FreeSoftware #OpenSource #PreRelease #PreAlpha #SeriouslyNotFinished