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

New Video – Kitten features introduced this week:

• Interactive Shell (REPL)
• Multi-page Settings
• Backup and restore (data portability)

With examples that cover components and Kitten’s built-in JavaScript database (JSDB).

https://ar.al/2024/05/23/new-kitten-features-interactive-shell-repl-multi-page-settings-and-backup-and-restore-data-portability/

:kitten:💕

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

:kitten: Kitten’s interactive shell (REPL) now saves session history scoped to your app so it will still be there when you next serve the same app.

https://codeberg.org/kitten/app#kitten-s-interactive-shell

I think I’m done with the REPL feature now.

Going to take a little break, step away from the computer, and make a plan for the next week of work on Kitten and Domain¹.

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

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

:kitten: 🎉

Kitten now has a lovely new multi-page Settings screen and… drumroll… a new 🐢 interactive shell (REPL) for you to play with the running state of your Small Web site/app/place and debug your app, inspect/manipulate its database, etc.

I plan on recording demos of each of them tomorrow but you can play with them now.

And here’s a little tutorial to get you started with the shell:

https://codeberg.org/kitten/app#kitten-s-interactive-shell

💕

#Kitten #SmallWeb #SmallTech #NodeJS #REPL #JavaScript #HTML #CSS #web #dev

Screenshot of Kitten running in terminal: 🌍 Domain https://localhost 📂 Source /var/home/aral/Projects/kitten/app/examples/file-uploads 💾 Databases /var/home/aral/.local/share/small-tech.org/kitten/databases 🐢 To launch an interactive shell, press the [s] key. Server is running and listening for connections… s 🐢 Launching interactive shell ctrl-d to exit; .help for assistance A good place to start is to run the .ls command to see the keys of the global kitten object: » 💡.ls is an alias for Object.keys(kitten) [ 'version', 'domain', 'port', 'app', 'databaseDirectory', 'projectIdentifier', 'deploy', 'WebSocket', 'html', 'libraries', 'page', 'events', 'css', 'js', 'markdown', 'md', 'safelyAddHtml', 'sanitise', 'uploadsDirectory', '_db', 'uploads', 'package', 'db' ] 🐱 💬 kitten.db.images[0] Proxy [ { path: '/uploads/1a6c2612-057d-435b-83c7-7157b4add982/', altText: 'Screenshot of Draw Together sketch that reads Free Gaza!' }, { get: [Function: bound getHandler], set: [Function: bound setHandler], defineProperty: [Function: bound definePropertyHandler], deleteProperty: [Function: bound deletePropertyHandler] } ] 🐱 💬

aral,
@aral@mastodon.ar.al avatar

PS. Since it’s not a common thing in ‘Big Web’ development, note that the Settings app is part of Kitten’s own internal web app that is available to all Small Web apps created using Kitten. So all those Small Web apps will be able to take advantage of data portability with backup/restore, Domain integration for managing your hosting account with your domain host, evergreen web, public-key encryption for e2ee peer-to-peer web apps (Small Web), etc.

It’s all slowly coming together :)

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

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.

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

#SmallWeb #Kitten #Domain #SmallTech #web #dev

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

:kitten: Meow! New Kitten just dropped:

• Uploads are now listed in the Small Web Place Settings (/💕/settings) of all Kitten apps.

#Kitten #SmallWeb #SmallTech #uploads #settings #web #dev

weirdwriter, to ai

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.

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

#JSDB #customObjects #constructor #bug #JavaScript #NodeJS #SmallTech #SmallWeb

aral,
@aral@mastodon.ar.al avatar

Just a quick update on this: after some experimentation and further thought, I feel the way JSDB works currently is the right trade-off.

While it could run the constructor of persisted custom objects when loading them back in, that would impose a rigid authoring flow that would sacrifice ease of use for simple use cases. I find the latter more important in this case.

(I’m off to document this ‘feature’ now as it is currently undocumented and that’s not good.) :)

More: https://codeberg.org/small-tech/jsdb/issues/12

aral,
@aral@mastodon.ar.al avatar

I’ve thought a bit more on this and decided:

  1. Persisting custom classes is an advanced feature.

  2. Implementing these changes would mean that custom classes can extend base classes (e.g., EventEmitter, so we can, for example, listen for events on sessions in Kitten)

  3. The con of dictating the constructor signature for custom classes is outweighed by the pros.

So I just implemented this, plus pseudo-private property support, etc., and will be releasing a new major version of JSDB soon.

aral, to SmallWeb
@aral@mastodon.ar.al avatar
njoseph, to random
@njoseph@social.masto.host avatar

#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:

njoseph,
@njoseph@social.masto.host avatar

I maintain a wiki page on Small Tech. Added Shaarli as an example there.
https://njoseph.me/mediawiki/SmallTech#Examples

mackenzian, to history
@mackenzian@mastodon.online avatar

🎙️ How are designers responding to Big Tech design principles, funding models and incentives?

For this last episode of we talked to @aral about , , and how to design tech at a more human scale.

Listen wherever you get your podcasts: https://podcasts.apple.com/us/podcast/an-answer-to-big-tech-tech-at-a-human-scale/id1708625744?i=1000641153684

mackenzian,
@mackenzian@mastodon.online avatar

🎙️ As always, episode #transcripts are available on the PRX show page: https://prx.org/bigquestions/moralrepair

aral,
@aral@mastodon.ar.al avatar

@mackenzian Was lovely chatting with you both. Thank you for hosting such timely and critical conversations.

rae, to photography
@rae@kolektiva.social avatar

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.

#capitalism sucks.

rae,
@rae@kolektiva.social avatar

@stevenray Totally. I think the smartphone is overall an important piece of technology. And also I don't believe for a second that technology like the iPhone wouldn't have existed without capitalism. It's technology plus capitalism that causes so many problems.

Capitalism's hidden externalities are tied to so many seemingly innocuous things, including social and psychological motivations. Everything from the reasons people might choose to post selfies on Instagram to the reasons people might choose to drive to work instead of biking or taking public transportation. "Choices" ultimately driven by the pressures of capitalism. Or something like that.

I'd love to explore this topic more eventually (along with 9958485898234994 other topics). Right now my AuDHD brain is trying to piece together scattered thoughts which are producing incomplete ideas so I apologize if any of this doesn't make sense or is [probably definitely] missing important details. Without taking hours or days or weeks or months or sometimes years to [more] fully develop my thoughts into [more] articulate pieces of writing, I'm kind of building this plane as I'm flying it so the saying goes. Hell it took me an hour just to compose this reply. [sorry this is getting so off topic and meta]

stevenray,
@stevenray@sfba.social avatar

@rae not at all, I can identify with your struggles to some extent. Your reply was cogent, articulate and I agreed with it 100%. Promise. 😊

pylapp, to privacy
@pylapp@framapiaf.org avatar

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:

#privacy #ethics #web #technology #smalltech

https://small-tech.org/about/#small-technology

aral,
@aral@mastodon.ar.al avatar

@schuga @pylapp @laura Sounds like a nice, small, independent business so more power to him.

Small Web conforms to the Small Technology principles which includes being open source, peer-to-peer, etc., but not everything has to be Small Web – what your brother has is leagues ahead of the Silicon Valley model in terms of its ethics :)

aral,
@aral@mastodon.ar.al avatar

@CatDad @pylapp @laura Thanks 💕

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

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.

https://small-tech.org/fund-us

aral,
@aral@mastodon.ar.al avatar

Folks: where’s the alternative to the trillion-dollar surveillance capitalists you’re working on? Why isn’t it ready yet?

Also folks: Here’s your €457/mo war chest… don’t spend it all in one place now!

(I can’t express how grateful I am to our patrons over the years but how the fuck do we compete when we live in a world where some random techbro raises $2.6M to build a people farming social network where you can only say “Yo!“ while we struggle to pay the rent?)

https://small-tech.org/fund-us

aral,
@aral@mastodon.ar.al avatar

So, yeah, regardless of whether we receive any funding or not I’m going to keep doing the only thing I can, which is to keep working on making the Small Web exist (https://ar.al/2020/08/07/what-is-the-small-web/).

And the goal is that once we get to the point where we (and anyone else who wants to) can host Small Web places, that will hopefully make us sustainable (because clearly we can’t depend on public funding).

But it sure as hell would be nicer if we didn’t have to keep living a precarious existence until then.

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

Spoke with @timothep for @devjourney on #SmallWeb and more and the podcast is now out.

Listen at:

https://devjourney.info/Guests/280-AralBalkan

(Or wherever you get your podcasts.)

💕

#podcast #devJourney #SmallTech #BigTech #web #dev #design #decentralisation #technology #kitten

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