If you design a system such that you cannot differentiate people from corporations and bots and that’s your defense for calling all of them “users”, you’ve designed a system that conflates people – who are mortal, have feelings, can feel pain and be hurt and who have human rights that must be protected – with the very entities that oftentimes exist to exploit them.
Design for people. Call them people. All else is secondary.
Lots to do yet but the new Kitten¹ settings section (that’s common to all Kitten apps / Small Web places) is coming along nicely. (With the general style/layout borrowed from Domain².)
(It’s currently a single page and I’m breaking it up into multiple ones because it’s time.)
Once I’m done with this I should really record a screencast of Kitten’s new backup and restore feature/data portability.
Trust me, you will save thousands of dollars if you never got excited about #AI hardware and #Tech nor go out and buy an AI hardware thing that would have been better as an app. Same for phones. Seriously, save the money. It will go far past the honeymoon phase faster than you will know. If your phone still works, you honestly don't need a new one. If you use #SmallTech you don't have to upgrade your laptop every year. Best thing I ever did was save my money and give it to writers and audiobook narrators instead of AI hardware.
• Forgetting to pass a custom class that’s persisted in your database in your JSDB.open() call now throws instead of corrupting your database by falling back to using an untyped object.
• Added JSDF ver. 2 to 3 database migration script (i.e., JSDB version 2-4 to 5)²
100% test coverage doesn’t mean your code’s bug free but it did just lead me to find and fix an issue in JavaScript Database (JSDB)¹ with a code path that wasn’t being hit that I would have otherwise missed because it was causing the relevant test to pass.
¹ JSDB is a zero-dependency, transparent, in-memory, streaming write-on-update JavaScript database for the Small Web that persists to a JavaScript transaction log (an append-only log).
To really drive home the above 👆 point that 100% test coverage does not mean ‘bug free’, just found a bug in JSDB¹ 5.0.0 where running JSON.stringify() on a complex custom object (actually: the automatic Proxy of the custom object created by JSDB) results in an error.
Already have a failing test and about to implement fix.
(It’s at this point where the test harness is invaluable.)
Realised last night that JavaScript Database (JSDB) doesn’t run the constructor on persisted custom objects (https://codeberg.org/small-tech/jsdb#custom-data-types) when deserialising them because I didn’t know that you apparently have to define your constructor manually when using Object.create().
Will fix it today but it’s something to watch out for if you’re using Object.create() directly.
EU leaving Fediverse (Mastodon & PeerTube) because no one wants to operate the servers
“In recent years, a total of 40 institutions have opened an account with EU Voice, including the EU Data Protection Supervisor, the European Court of Justice and the EU Commission. The video platform, on the other hand, was used by six institutions … the EU institutions were thus the largest group of public institutions in the Fediverse worldwide.”
So what do we need, ideally? The equivalent of VC but for tech for the common good.
Pick ten organisations working the common good and give them €5M each. Let them experiment. Let them pivot. Let them cooperate. The only thing you don’t let them do is exit. You can’t sell. Build something for the commons that will live on for the next ten, twenty, fifty years… if not more.
I said as much 5 years ago at the European Parliament:
I think we're focused on the wrong thing when we look at what tech works for a company like Amazon or Facebook or Netflix.
We should be looking at what tech works when you don't have a small army of staff engineers optimizing it. I want to know what I can scale without paying someone a half million dollar salary to do it.
There should be more case studies on things that don't have a billion-dollar company propping them up, humming along quietly on a cheap-ass VPS somewhere.
Coming soon: it’s going to be trivial to deploy a different app on your Small Web server. Useful if you’re a dev and you’re playing around with different apps.
(Also, notice the speed at which deployment happens. I’m one step away from implementing this in Domain using pre-warmed Kitten instances – called toasty kittens – thereby bringing the time it takes to deploy your own Small Web place down to a handful of seconds.)
When I speak about spending the last few years “building infrastructure”, you might be wondering what sorts of things I’m talking about.
Here are some examples:
JSDB: an in-memory, in-process database that writes to a JavaScript append-only transaction log and which you can use as if you were interacting with regular JavaScript objects.
Similarly, Auto Encrypt Localhost does the same thing – in pure JavaScript, without using mkcert, etc. – for keeping your dev and production environments identical:
And while Kitten is new, it uses those elements and more as well as all the lessons learned building Site.js (https://sitejs.org) – going back five years.
All-in-all I’ve been working towards creating the Small Web—and Kitten, Domain, and Place—for half a decade and, on the greater problem of trying to formulate alternatives to Big Tech for the last decade. All without any funding from the commons/EU.
Introducing the Small Web, where you own and control your space online. Join Aral Balkan in a live coding demo using Kitten, a Small Web server empowering everyday folks to craft their own corner of the internet. Let's reclaim the web for people, not profits!
Watch: https://buff.ly/497SHNg and join us at the Conference!
#Shaarli is a bookmarking service in #FreedomBox that stores each bookmark as a comment in a single PHP file.
This is actually appropriate design (in the sense of appropriate technology). A good example of #smallTech design. A big tech bookmarking service would have used some NoSQL database technology such as Cassandra, not a simple flat file.
Shaarli works great for thousands of bookmarks. Who cares if it scales to millions or not? :blobcatgooglyshrug:
In our new place and I’m looking forward to finally getting back to working on the Small Web¹ with Kitten², Domain³, and Place⁴.
Only a few bits left to implement in all three before there is a minimum working implementation that others can also easily deploy and play with.
And, hopefully, with the launch of our own Domain instance at small-web.org in 2024, Small Technology Foundation⁵ can start down the road of becoming sustainable (or at least covering our mortage payments) eventually.
Remember when #photography was about the #art of it, not clout-chasing or product-pushing? For example, in the late 2000s so many cool (not just meaning 'popular') photographers were on #Flickr. Then #Instagram came around in 2010 and #Facebook bought them out in 2012.
IMHO the mid-2000s was when #tech & online platforms started going downhill quick and tech #enshittification began to spread. I think the introduction of the #iPhone had a lot to do with it, not to mention the many tech acquisitions that have been happening ever since. Correct me if I'm wrong.
Anyway, the 'art' of photography feels lost now; pay-walled, plundered, copied, capitalized, and even censored. All of it beholden to whatever satisfies the venture capitalists, advertisers, and/or shareholders. Fuck all that. Let's take back the web. Let's take back tech. This is why the #Fediverse (including #pixelfed) and more broadly, concepts like #smalltech, #indieweb, #smallweb and #selfhosting etc gives me glimmers of hope.
Just discovered the concept of "small tech" / "small web" boosted by @laura and @aral :black_bloc_blob:
More interesting than "low tech" or "low web" fashion, powered by and for privacy, interoperability, inclusion with non-colonial nor non-commercial ideas.
Some fights and ideas picked from libre and ethical software movements, cool and mandatory nowadays :blobnomcookie:
So did I mention that no company or government pays me for the work I do?
But you can support my work if you want to live in a world where we have the Small Web as an alternative to the Big Web of Google, Facebook, and other people farmers.