Show more

How many of you are designing technology where success means that __you__ do NOT scale exponentially? (But that a healthy ecosystem evolves where no one entity has monopolistic control?)


Case in point:

I don’t know who needs to hear this but, having been looking at performance characteristics of JSON in Node.js today:

- JSON.stringify (synchronous) is blisteringly fast on regular JavaScript objects/arrays, etc.
- JSON.stringify is an order of magnitude slower when used with Proxy
- The fastest yielding module I could find (yieldableJSON) is an order of magnitude slower than JSON.stringify.

Also, { performance } = require('perf_hooks'); is your friend ;)

[Work in progress/pre-alpha/dragons, etc.] Just got transparent persistence working on WhatDB? – the tiny, in-memory, write-on-update database I’m building for simple server-side data in Site.js.

If you want to poke around, here it is:

Next: get full test coverage before implementing the querying mechanism :) Quite enjoying this. (But have to keep reminding myself to do the minimum I need for Small Web as there are other things to build too.)

Site.js version 15.1.1 released

This is a patch release that fixes a circular dependency bug that was causing sync/push to fail on Hugo sites.

Great news for Portland where #FacialRecognition has just been banned! 🙌

The Clearview scandal - - has shown why facial recognition is a blatant violation of our privacy rights. It needs to be outlawed everywhere! 💪

So I’m throwing around ideas for the interface of the simple local persistence layer for Site.js.

Please feel free to chime in :)

Show thread

Every time I need to persist some simple data on a web app, I go through a dreaded “which database should I use?” process which – given I’m not building a global panopticon – is *always* overkill so I’ve decided to bite the bullet and write a very basic transparent (using Proxy) in-memory database for Site.js that flushes to JSON files on each write and is available on all your routes so you can use it without knowing you’re using a database. Working title: What Database? :)

It looks like the latest hyperdrive-related work on the Hyper protocol is taking place on the hyperspace namespace… (finding it hard to keep up) :)

Also, interesting new projects:

Hyperbee (and hyperbeedown):

Your daily reminder that there is no such thing as:

- data rights
- digital rights

There are only human rights.

(Which we must protect in the context of a digital and networked age.)

Folks pushing the former usually want your “new” rights to be lesser than your “old” ones.

“Transparency has little value without choice.” – Laura Kalbag

Read @laura’s thoughts in this openDemocracy article titled “Designing data transparency – ideas from the community”

Site.js version 15.1.0 released

Minor update: Enable wildcard routes to be defined using the filename of the HTML file (for syntactic consistency with how dynamic routes are defined).

Relevant documentation:

Get started:

Site.js version 15.0.1 released

This is a small bug fix that gets the new DotJS route parameters feature working properly on Windows 10 also.

Relevant docs:

Get started:

Site.js version 15.0.0 released

You can now specify named parameters in your DotJS routes via the file name.


1. Create a file at .dynamic/hello_name.js with the following route:

module.exports = (request, response) => {
response.html(`<h1>Hello, ${}!</h1>`)

2. Start a local server (site).

3. Hit https://localhost/hello/Laura to see “Hello, Laura!” in the browser.


Get started:

Yay, my new computer just arrived: the postmarketOS edition of @PINE64 PinePhone with USB-C dock. Can’t wait to connect this baby to my monitor and keyboard and play with Site.js on it ;)

Just updated my web-routes-from-files Node module to add Express-style parameter support via file name convention.

This will make its way into the next version of Site.js soon and you’ll be able to specify named parameters for DotJS routes without having to manually map out your routes.

What’s Site.js?

What’s DotJS?

Site.js version 14.6.3 released

- Fixes: Redundant server close call causing subsequent restart attempts to fail. (The bug only affected regular process servers, not daemons.)

Not only that but I just realised I outdid myself by saying “errorneous redundant”. So not only was “errorneous” erroneous (let’s forgive my not using an adverb for the moment), but since redundant already implies that it was needless/superfluous, I was also, ironically, redundant in my wording.


Show thread

Just wrote “errorneous” in a bug report.

So, how’s your day going? :)

Show more
Aral’s Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!