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

So given it’s Saturday night, I thought I’d have a little fun with Kitten and make a tiny collaborative drawing toy.

You have a 20×20 grid and only black and white to draw with and everyone shares the same canvas.

https://draw-together.small-web.org

Have fun + looking forward to seeing what we all, umm, draw together.

:kitten:💕

PS. It took about 60 lines of code.

View source: https://codeberg.org/aral/draw-together

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

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.

https://vimeo.com/932120624

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

:kitten: 💕

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

Yay, just received my Kitten stickers. If you’re in Paris for NewCrafts this week, make sure you ask me for one :)

:kitten:💕

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

Great, it looks like whatever they changed in Chrome no longer trusts Kitten’s¹ local certificate authority (installed and trusted by the system trust store, as you’d do in a spit enterprise).

Applies to previously trusted and working certificates too.

(The directly related module is Auto Encrypt Localhost²)

Going to look into it today and see if I can’t find a workaround.

FFS…

¹ https://codeberg.org/kitten/app
² https://codeberg.org/small-tech/auto-encrypt-localhost

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

Very excited about the latest feature/workflow I’m adding to Kitten. I call it… 🥁

✨ Streaming HTML ✨

Implement back-end functionality and stream HTML updates to the client without writing any front-end JavaScript.

Just give your forms names and listen for them in an onConnect() handler you export from your page. Kitten handles everything else – setting up a WebSocket route for you, mapping triggers to events, etc. – thanks to Kitten + magic 🪄

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

I’m really enjoying the new Streaming HTML workflow in Kitten…

In this 15 second video, I cycle through the options in a selection box using the keyboard and the rest of the interface updates in response.

✨ There’s no custom client-side JavaScript making it happen. ✨

It’s all server side.

The changes stream to the client as HTML and are morphed into place via idiomorph.

So simple and maintainable.

💕

https://vimeo.com/908339606

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

I’ve been looking for an ngrok alternative for a while now that’s (a) affordable (b) easy to use and (c) works with Kitten¹. Today, after testing a bunch of them again and getting fed up, I found LocalXpose that checks all the boxes.

I signed Small Technology Foundation up as an affiliate so if you use this link to check it out, we’ll get 40% of your $6/mo pro account fee should you subscribe:

https://localxpose.io/?via=kitten

¹ https://codeberg.org/kitten/app

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

In case you’re wondering how little old Kitten performs in the tests of the Big Boys…

(And that’s from a development build of a Domain page, not a deployment build so no compression, live reload script in page, etc.)

Turns out it’s pretty easy to ace such tests when you’re not spending cycles and code doing horrible things to people in your web pages (like tracking their every move and attempting to exploit their behaviour for profit). 🤔

:kitten:💕

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

Looking forward to finally getting back to work today after breaking my hand and recovering from a mild bout of the latest strain of COVID (I’m assuming – at least two other folks who were with us tested positive even though neither Laura nor I did over multiple tests) while away in Spain at the start of the month.

There’s a big update to Kitten deployments in the works in its own branch that will also bring about a bunch of other improvements when it lands.

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

🍞 Kitten toast, anyone?

A fifteen-second demo of how you can create a toast message in 42 lines of code¹ without writing any client-side JavaScript using Streaming HTML² in Kitten³.

Video:

https://vimeo.com/925828491

Source code:

https://codeberg.org/kitten/app/src/branch/main/examples/streaming-html/toast/index.page.js

Enjoy!

:kitten: 💕

¹ Almost half of which is CSS.
² https://ar.al/2024/03/08/streaming-html/
³ https://codeberg.org/kitten/app

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

:kitten: 🎉 Kitten is now using the new versioning/deployments system hosted on https://kittens.small-web.org

This is going to allow us to handle automatic updates of Small Web places rather elegantly.

Installation is also now much faster.

You can find out more about Kitten at https://codeberg.org/kitten/app#kitten

Known issue: commit links on the Kittens site are 404ing right now. I just opened an issue to see if @forgejo can add support for 6-digit git hashes*

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

Live in half an hour:

Join me for a look at what’s been happening with Kitten¹ and Domain² in the past month.

https://owncast.small-web.org

New stuff includes:

• slots in components
• layout components
• app modules
@small/kitten library
• type-safe databases in JSDB with JSDoc and custom classes

¹ Kitten: https://codeberg.org/kitten/app

² Domain: https://codeberg.org/domain/app

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

Heads up in case any of you are playing with Kitten¹, I’m going to implement a major API change today (it’s still pre-release/experimental so expect these things… though there should be fewer with time):

Instead of your routes receiving positional arguments like this:

export default (request, response) => { //… }

They will get a parameter object:

export default ({request, response}) => { //… }

¹ https://codeberg.org/kitten/app

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

So this just happened! :)

💕 🎉

devinprater, to random

The alternative pronounciation of "kitten" is preading! It's basically like kitten, but with a good strong glottle stop in place of the two t's. I heard someone else pronouncing it like that today, copying mine. So yes, lots of ki''ening (kittening) going on!

adamjcook, to animals

So... last year during June's heatwave, when my wife and I were getting ready to leave for , a tiny that was living under a nearby industrial trash compactor found us.

We cleaned him all up, took him to the vet and because we already have two babies of our own... my wife's co-worker who had recently lost her cat baby adopted him.

His new parents named him "Cheeto".

Here he is at his first vet checkup.

1.5 lbs.

5 weeks (est.)

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

Kitten¹ now keeps two JSDB² databases per project: an internal one ('kitten._db) that holds data Kitten manages (sessions, uploads, etc.) and the default one (kitten.db`) that holds your own tables.

You’ll mostly only care about the latter.

I also took the opportunity to create a Database App Module example and document it in the readme:

https://codeberg.org/kitten/app#database-app-module

¹ https://codeberg.org/kitten/app
² https://codeberg.org/small-tech/jsdb

milan, to Cat
@milan@social.tchncs.de avatar

here you have a cute playing with a twig

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

Got ’s¹ secret generation working in the browser as part of the last piece of the puzzle I’m working on right now for deploying places via .

Your secret is the key to your identity on the Small Web (or at least to some aspect of your identity you wish to portray or explore at a given Small Web place). It’s an ed25519 private key base256 encoded and presented using a well-known set of emoji.

¹ https://codeberg.org/kitten/app
² https://ar.al/2020/08/07/what-is-the-small-web/
³ https://codeberg.org/domain/app

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

Folks: So, Aral, you’re building Kitten all by yourself?

Me: Umm, yeah, something like that…

https://codeberg.org/kitten/app/src/branch/main/CONTRIBUTORS.md

GertrudeZane, to animals
@GertrudeZane@c.im avatar

Pax is a sleepyhead. Almost time to go to bed. Good night (or good day) to you all!

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

Sitting outside on a rare sunny day at a lovely pub in Bray, refactoring Kitten* to pull out the settings page sections into their own pages (and use Kitten’s new Streaming HTML workflow**) and enjoying a yummy pint of Tundra IPA.

No complaints :)

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

Soon you’ll be able to run any Kitten app directly from a git repository*

35 second demo:

https://vimeo.com/899533070

aral, (edited ) to SmallWeb
@aral@mastodon.ar.al avatar

Well, it might take a few more minutes in front of the mirror but I think I still scrub up well for three years shy of the big five-oh. All dolled up and ready to fly to Paris for my talk on Kitten* and the Small Web tomorrow at .

Can’t believe this year marks my 40th year of programming.

I owe a lot to my dad bringing home that IBM XT compatible and a BASIC manual when I was 7.

I’m fact, that’s where my talk tomorrow begins…

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

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