aral, to javascript
@aral@mastodon.ar.al avatar

Just published a minor update (version 5.1.1) to JavaScript Database (JSDB) that optimises the custom data type¹ serialisation code by removing a redundant return statement:

https://www.npmjs.com/package/@small-tech/jsdb

This change is backwards compatible and shouldn’t require and updates to your projects, including the ones you have in Kitten (which uses JSDB internally).

¹ https://codeberg.org/small-tech/jsdb#custom-data-types
² https://codeberg.org/kitten/app

#JavaScriptDatabase #JavaScript #database #JSDB #Kitten #SmallWeb #NodeJS #web #dev

figstick, to internet
@figstick@mas.to avatar

To follow through on my pledge to do more of my reading on the , I've been visiting random blogs using this site and adding any interesting ones to an feed.

My intention is to browse this feed much the same way I would the news -call it a self-care practice. I want to spend more time in reflection and less in panic. I also want to get ideas for, perhaps, my own blog someday.

https://indieblog.page/

juliancday, to SmallWeb
@juliancday@writing.exchange avatar

123guestbook is shutting down in a few months - wondering what to switch to. Any of you still maintain a presence on the #smallweb/#indieweb? What do you use for a #guestbook ?

beastie, to random Polish
@beastie@pol.social avatar

To trochę zabawne, ale ruch z wyszukiwarki google spadł mi z 1.5k+ dziennie w zeszłym roku do kilkudziesięciu osób w tym miesiącu. Cieszę się, że nic od tego nie zależy w moim przypadku. Hobby.

pgronkievitz,
@pgronkievitz@wspanialy.eu avatar

@beastie
Podziwiam, że chce się wam sprawdzać, ja w ramach mojego praktykowania #smallWeb jedyne co mam to logi nginxa

Bo bym się załamywał "nikt tego nie czyta" xD
@stfn

rscottjones, to SmallWeb
@rscottjones@mastodon.social avatar

Another post for - a post I can send to my friends to get them started on the

The easiest ways to start your own personal website
https://rscottjones.com/the-easiest-ways-to-start-your-own-personal-website/

reillypascal, to internet
@reillypascal@hachyderm.io avatar

"Ecologists have reoriented their field as a 'crisis discipline,' a field of study that’s not just about learning things but about saving them. We technologists need to do the same. Rewilding the internet connects and grows what people are doing across regulation, standards-setting and new ways of organizing and building infrastructure, to tell a shared story of where we want to go."

https://www.noemamag.com/we-need-to-rewild-the-internet

#Internet #Web #Enshittification #IndieWeb #SmallWeb #Infrastructure #Tech

adele, to ipfs
@adele@phpc.social avatar

dillo, the perfect web browser for the #smolweb has just released a new version (9 years after the previous one)

Interesting new features:

  • floating HTML elements
  • support for OpenSSL, LibreSSL and mbed TLS for HTTPS
  • and more css rules support

Detailed change log:
https://dillo-browser.github.io/latest.html

dillo has also plugins for #gemini #gopher #ipfs and #spartan protocols

https://dillo-browser.github.io/#plugins

and a bugmeter to check your website code

https://dillo-browser.github.io/old/help/bug_meter.html

#smallweb #indieweb

aral, to javascript
@aral@mastodon.ar.al avatar
aral, to SmallWeb
@aral@mastodon.ar.al avatar

Watching The Doors live at The Hollywood Bowl (1968)¹ and hacking on Kitten² and Domain³.

All in all, not a bad way to spend a Saturday afternoon in my book.

(I’ve almost got database backup/restore working in Kitten and I’ve just finished porting Domain to the latest Kitten with JSDB 5⁴.)

¹ https://yewtu.be/watch?v=Q76QBhKHQGc
² https://codeberg.org/kitten/app
³ https://codeberg.org/domain/app
https://codeberg.org/small-tech/jsdb

aral,
@aral@mastodon.ar.al avatar

🎉 Got database backup and restore working in Kitten (so every Kitten app gets it for free) and, with the new JSDB 5 support in Kitten, you can now make your model classes EventEmitters.

The session object is now an EventEmitter so you can now listen for events on the current session. In fact, I did just that in Kitten itself to implement the upload of the backup file during the restore process to make the Streaming HTML handler get notified once the POST route has the upload.

#SmallWeb #Kitten

Code listing (detail) of index.page.js in Helix Editor: const RestoreStatusUpdate = ({SLOT}) => kitten.html` <${ProgressIndicator} /> ${SLOT}

export function onConnect ({request, page}) { page.on('startRestore', () =&gt; { page.send(kitten.html<${RestoreStatusUpdate}>Uploading backup to restore from…>) }) const restoreDatabases = async (/** @type {Upload} */ upload) =&gt; { console.log('Restore: database backup uploaded', upload) // Show status indicator. page.send(kitten.html<${RestoreStatusUpdate}>Restoring from backup…>) // Delete current databases. const deleteResult = await fs.rm(kitten.databaseDirectory, {recursive: true, force: true}) // Re-create databases directory. const makeDirectoryResult = await fs.mkdir(kitten.databaseDirectory) // Decompress backed-up databases. await extract({ cwd: kitten.databaseDirectory, file: upload.filePath }) // Send refresh header and restart the server so the // restored databases are loaded into memory. page.send(kitten.html<${RestoreStatusUpdate}>Restore complete, waiting for server restart…`) // Restart the server. process.exit(99 /* code for restart request */) } request.session.removeListener('databasesUploadedForRestore', restoreDatabases) request.session.addListener('databasesUploadedForRestore', restoreDatabases)

dillo, to SmallWeb
@dillo@fosstodon.org avatar

Here is a directory of simple websites by @sjmulder:

https://sjmulder.nl/en/textonly.html

Do you know more directories?

Most of those pages work well in #Dillo, so I'm thinking in including some directories in the Dillo website.

#indieweb #smolweb #SmallWeb

cory, to SmallWeb
@cory@social.lol avatar

I'm super grateful to have been featured in Manuel Moreale's People and Blogs. Give it a read if you feel so inclined https://manuelmoreale.com/pb-cory-dransfeldt #IndieWeb #SmallWeb

tixie, to SmallWeb
@tixie@guerilla.studio avatar

https://Pages.Casa — Host your small handcrafted static website for free
#IndieWeb #SmallWeb #WebHosting

cory, to SmallWeb
@cory@social.lol avatar

🔗: What are you interested in? via Chris Burnell https://chrisburnell.com/note/slash-interests/

molly0xfff, to web
@molly0xfff@hachyderm.io avatar

Many yearn for the "good old days" of the web. We could have those good old days back — or something even better — and if anything, it would be easier now than it ever was.

https://www.citationneeded.news/we-can-have-a-different-web/

#web #newsletter #CitationNeeded

aral,
@aral@mastodon.ar.al avatar

@molly0xfff Excellent article, thank you for writing it, Molly.

Although I do wish I didn’t feel like we didn’t exist while reading it.

This is the Small Web—what Laura & I have been specifically working to realise for the past six years at least (if not closer to a decade if you count our work on the problem before settling on one possible solution):

https://ar.al/2020/08/07/what-is-the-small-web/

We do this as a self-funded (read; struggling) tiny not-for-profit (https://small-tech.org).

#SmallWeb

mms, to FreeBSD
@mms@emacs.ch avatar

New #bsd article:

"There’s a multitude of Operating Systems to choose from. You may have been using something like Windows or MacOS and be perfectly happy with it. You can step up and use Linux, Haiku or even Amiga OS. So, why do I think a BSD system may be a great choice?"

https://michal.sapka.me/bsd/why-bsd/

#freebsd #openbsd #netbsd #smallweb #indieweb #100daystooffload

adele, to SmallWeb
@adele@phpc.social avatar

And now, pages.casa complies with #smolweb guidelines

https://pages.casa/register-on-pagescasa.html

Even @dillo can display it.

And #netsurf give the same render as firefox.

#smallweb #indieweb

aral, to SmallWeb
@aral@mastodon.ar.al avatar

Heads up anyone playing with Kitten at the moment (yes, both of you):

I’m in the process of upgrading Kitten’s version of JSDB from 4 to 5.

This is a breaking change.

This will affect you if you’re persisting custom objects (instances of your custom model classes) in your databases.

Please see the details in this JSDB announcement post and the linked-to details page to prepare:

https://mastodon.ar.al/@aral/112361559531645603

(I should have the update out this afternoon.)

#Kitten #JSDB #BreakingChange #SmallWeb

aral, to programming
@aral@mastodon.ar.al avatar

JSDB 5.0.0 published 🎉

• Custom classes must have a constructor that accepts a parameter object as its only argument. Constructors are run during deserialisation.

• Custom classes can now safely extend other classes (e.g., EventEmitter).

• Properties that begin with an underscore (_) are treated as private and ignored.

• Objects with null prototypes are supported. i.e., objects created with Object.create(null, …).

Full details: https://codeberg.org/small-tech/jsdb#migrating-from-earlier-versions-of-jsdf

aral,
@aral@mastodon.ar.al avatar

JSDB 5.0.1 published 🎉

• Fixes : Crash if DataProxy getHandler() called on object with null prototype. (https://codeberg.org/small-tech/jsdb/issues/14)

To install update:

npm install @small/jsdb@5.0.1

Learn more about JSDB:

https://codeberg.org/small-tech/jsdb#javascript-database-jsdb

JSDB

aral,
@aral@mastodon.ar.al avatar

JSDB 5.1.0 published¹ 🎉

• 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)²

To install update:

npm install @small/jsdb@5.1.0

¹ https://codeberg.org/small-tech/jsdb/releases

² https://codeberg.org/small-tech/jsdb#version-2-to-3

#JavaScriptDatabase #JavaScript #database JSDB #JSDB5 #NodeJS #SmallTech #SmallWeb #web #dev

aral, to javascript
@aral@mastodon.ar.al avatar

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).

https://codeberg.org/small-tech/jsdb

#JavaScript #database #JSDB

aral,
@aral@mastodon.ar.al avatar

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.)

¹ https://codeberg.org/small-tech/jsdb

#JavaScriptDatabase #JavaScript #database #JSDB #JSDB5 #NodeJS #SmallWeb #SmallTech

FlockOfCats, to SmallWeb
@FlockOfCats@famichiki.jp avatar

I fully support the idea of the #SmallWeb. That’s why I post videos that get 6 views

jlsksr, to SmallWeb
@jlsksr@mastodon.online avatar

I really like personal homepages and have quite a list of them bookmarked. I'll post one every week until I don't or unless I fall behind this schedule. 😉 So here's Cool Personal Homepages Vol. 14: starbreaker.org https://starbreaker.org/

lobau, to SmallWeb
@lobau@noodle.social avatar

I rewrote my website again lol

https://lobau.io/

@Em0nM4stodon pushed me to rethinking using JS for anything on my personal page, so I gave myself some design constraints:

  • a single HTML page
  • no JavaScript
  • push what can be done visually and interactively, without too much hackery

I think it's pretty awesome what CSS allows you to do now.

#smallweb #css #webdev

aral, to javascript
@aral@mastodon.ar.al avatar

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.

For more info, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • thenastyranch
  • magazineikmin
  • ethstaker
  • InstantRegret
  • tacticalgear
  • rosin
  • love
  • Youngstown
  • slotface
  • ngwrru68w68
  • kavyap
  • cubers
  • DreamBathrooms
  • provamag3
  • mdbf
  • cisconetworking
  • GTA5RPClips
  • modclub
  • khanakhh
  • everett
  • Leos
  • osvaldo12
  • normalnudes
  • tester
  • Durango
  • anitta
  • JUstTest
  • All magazines