home.social

Search

1000 results for “kitten_tech”

  1. Will @StorieswithaWill ·

    @kitten_tech what you're describing sounds so much like the difficult amorphic internal obstacles I'm wrestling with every day. I really appreciate how you're doing internal investigation- to discern challges and work around them. All we can do is keep trying different strategies, right?

    I don't know your details- for me, I'm pretty sure my chronic illnesses are part of it. But I'm pretty sure it's mostly my PDA Autism (and burnout). Maybe it's relevant 4u too?

  2. Magic Pipes:

    Suite of tools to operate on structure (S-exp) data via Unix pipes, with conversion to and from text formats.

    kitten-technologies.co.uk/proj

    #ChickenScheme #Lisp

  3. @ultrazool yeah. My eldest is at University now! Crazy times. What I'm doing - which is maybe what you need to - is to push my comfort zone; not too much, but enough. Just setting out on my way back from (odcamp.uk) - first tech event I've attended in YEARS. Strange to be at an event with people who work on similar things to me and have similar interests, rather than taking my wife or kids to their events and making forced smalltalk with other bored carers :-)

  4. My eldest is doing market research for a uni project, anybody with feelings about ARGs (Alternate Reality Games) please feel free to spew them: forms.office.com/pages/respons

  5. I was required to draw a picture of my hopes

  6. Made it to Birmingham alive and found the Register Dynamics (my employer) table at !

    Come and talk to us if you want your data problems solved (we're good at that) :-)

  7. I'm on my way to Birmingham for ! Sadly this means having gotten out of bed at 6:30 for the 7:45 train (euch)

  8. Your web server having an interactive shell (REPL) where you can live update entries in your site/app’s database is pretty neat (if I do say so myself) :)

    kitten.small-web.org/reference

    (I’m porting the Small Technology Foundation site¹ from Site.js² – and hence from being a static site generated via Site.js’s integrated Hugo³ – to Kitten⁴. In the process, I’m creating an admin panel⁵ for the news, events, and videos sections, which will make them easier to update, and storing the data in Kitten’s internal JavaScript Database⁶.)

    ¹ small-tech.org
    ² sitejs.org
    ³ gohugo.io/
    kitten.small-web.org
    ⁵ It’s trivial to create authenticated routes in Kitten. You just add a lock emoji (🔒) to the end of your route’s name. e.g., admin🔒.page.js or /admin🔒/index.page.js (see kitten.small-web.org/reference).
    codeberg.org/small-tech/jsdb

    #Kitten #REPL #shell #JavaScript #database #JavaScriptDatabase #JSDB #SmallTechnologyFoundation #SiteJS #Hugo #web #dev #NodeJS

  9. Just published Kitten’s¹ new database² commands:

    - kitten db [table name] to see info the database/a specific table
    - kitten db delete [table name] to delete the database/a specific table
    - kitten db tail <table name> to follow a specific table

    Full docs: codeberg.org/kitten/app#databa

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

    #Kitten #SmallWeb #SmallTech #JavaScriptDatabase #javascript #database #JSDB #web #dev #js #NodeJS #commandLineInterface #CLI

  10. I haven’t added an example of how you implement migrations with Kitten’s¹ built-in JSDB database² yet but here’s one that I just used when renaming a field (property) in a table (JavaScript object) from “account” to “data” that illustrates the general granular approach you should take within persisted instances of JavaScript classes.

    This is, of course, an advanced use case of the built-in JavaScript database that all Kitten apps have.

    Kitten is simple for simple use cases. So check out the Persistence tutorial, for example, to see how easy it is to get started with JSDB in Kitten:

    kitten.small-web.org/tutorials

    And see the Database App Modules tutorial for a more advanced usage where you persist instances of JavaScript classes and have full type safety:

    kitten.small-web.org/tutorials

    ¹ kitten.small-web.org
    ² codeberg.org/small-tech/jsdb

    #Kitten #SmallWeb #SmallTech #web #dev #persistence #JavaScript #database #JavaScriptDatabase #authoring #migrations

  11. 🎉 New Kitten¹ Release: A little housekeeping 🧹

    Today’s release only concerns production servers:

    • Kitten no longer counts all *hits* in its stats. You can still see which of your *pages* are most popular, etc., and see stats for missing URLs, etc., as before from either the web interface or the interactive shell, but not every hit is logged. Instead, you can see the latest 25 served routes in Kitten’s Settings (at /🐱/settings/state/requests/ via the web on your server).

    - Kitten production servers now carry out an automatic daily maintenance restart at some time between 3AM and 5AM local server time. (“Have you tried turning it off and on again?” as a Service™) This is to allow JSDB² tables a chance to compact themselves (especially important for high traffic/high mutation tables like sessions, so they don’t balloon up to take up all available memory on small VPS instances).

    I don’t think anyone but us (Small Technology Foundation³) is running Kitten in production at the moment but, still. If you are playing with Kitten and experimenting with it in production, your servers will update to this latest version in a few hours.

    Full details: codeberg.org/kitten/app/src/br

    :kitten: 💕

    ¹ kitten.small-web.org
    ² codeberg.org/small-tech/jsdb
    ³ small-tech.org

    #Kitten #KittenRelease #SmallWeb #SmallTech

  12. 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:

    codeberg.org/kitten/app#databa

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

    #Kitten #SmallWeb #web #dev #database #JavaScriptDatabase #jsdb

  13. While working on porting the Small Technology Foundation web site¹ to Kitten², I took the opportunity to pull out base Model and Collection classes that I’ll likely end up including in Kitten proper:

    • Model: codeberg.org/small-tech/site/s
    • Collection: codeberg.org/small-tech/site/s

    To see them in use, here’s the base Posts class (with RSS generation) that extends Collection:
    codeberg.org/small-tech/site/s

    And here’s the concrete EventPosts collection class that extends Posts:
    codeberg.org/small-tech/site/s

    And the EventPost (showing an implementation of a calculated property):
    codeberg.org/small-tech/site/s

    So all this is possible (persisting and reading back typed model collections, etc.) thanks to JSDB¹ (JavaScript database), a zero-dependency, transparent, in-memory, streaming write-on-update JavaScript database I wrote for the Small Web that persists to a JavaScript transaction log and is included as as first-class citizen in Kitten.

    codeberg.org/small-tech/jsdb

    And if you want to know how the magic mapping of classes happens, see the Database App Module:

    codeberg.org/small-tech/site/s

    PS. For a much gentler introduction to persistence in Kitten, see the Kitten Persistence tutorial:
    kitten.small-web.org/tutorials

    Enjoy! :kitten:💕

    ¹ small-tech.org
    ² kitten.small-web.org

    #Kitten #SmallWeb #SmallTech #JavaScript #database #JSDB #typeSafety #JSDoc #closureCompiler #TypeScript #workInProgress

  14. While working on porting the Small Technology Foundation web site¹ to Kitten², I took the opportunity to pull out base Model and Collection classes that I’ll likely end up including in Kitten proper:

    • Model: codeberg.org/small-tech/site/s
    • Collection: codeberg.org/small-tech/site/s

    To see them in use, here’s the base Posts class (with RSS generation) that extends Collection:
    codeberg.org/small-tech/site/s

    And here’s the concrete EventPosts collection class that extends Posts:
    codeberg.org/small-tech/site/s

    And the EventPost (showing an implementation of a calculated property):
    codeberg.org/small-tech/site/s

    So all this is possible (persisting and reading back typed model collections, etc.) thanks to JSDB¹ (JavaScript database), a zero-dependency, transparent, in-memory, streaming write-on-update JavaScript database I wrote for the Small Web that persists to a JavaScript transaction log and is included as as first-class citizen in Kitten.

    codeberg.org/small-tech/jsdb

    And if you want to know how the magic mapping of classes happens, see the Database App Module:

    codeberg.org/small-tech/site/s

    PS. For a much gentler introduction to persistence in Kitten, see the Kitten Persistence tutorial:
    kitten.small-web.org/tutorials

    Enjoy! :kitten:💕

    ¹ small-tech.org
    ² kitten.small-web.org

    #Kitten #SmallWeb #SmallTech #JavaScript #database #JSDB #typeSafety #JSDoc #closureCompiler #TypeScript #workInProgress

  15. While working on porting the Small Technology Foundation web site¹ to Kitten², I took the opportunity to pull out base Model and Collection classes that I’ll likely end up including in Kitten proper:

    • Model: codeberg.org/small-tech/site/s
    • Collection: codeberg.org/small-tech/site/s

    To see them in use, here’s the base Posts class (with RSS generation) that extends Collection:
    codeberg.org/small-tech/site/s

    And here’s the concrete EventPosts collection class that extends Posts:
    codeberg.org/small-tech/site/s

    And the EventPost (showing an implementation of a calculated property):
    codeberg.org/small-tech/site/s

    So all this is possible (persisting and reading back typed model collections, etc.) thanks to JSDB¹ (JavaScript database), a zero-dependency, transparent, in-memory, streaming write-on-update JavaScript database I wrote for the Small Web that persists to a JavaScript transaction log and is included as as first-class citizen in Kitten.

    codeberg.org/small-tech/jsdb

    And if you want to know how the magic mapping of classes happens, see the Database App Module:

    codeberg.org/small-tech/site/s

    PS. For a much gentler introduction to persistence in Kitten, see the Kitten Persistence tutorial:
    kitten.small-web.org/tutorials

    Enjoy! :kitten:💕

    ¹ small-tech.org
    ² kitten.small-web.org

    #Kitten #SmallWeb #SmallTech #JavaScript #database #JSDB #typeSafety #JSDoc #closureCompiler #TypeScript #workInProgress

  16. While working on porting the Small Technology Foundation web site¹ to Kitten², I took the opportunity to pull out base Model and Collection classes that I’ll likely end up including in Kitten proper:

    • Model: codeberg.org/small-tech/site/s
    • Collection: codeberg.org/small-tech/site/s

    To see them in use, here’s the base Posts class (with RSS generation) that extends Collection:
    codeberg.org/small-tech/site/s

    And here’s the concrete EventPosts collection class that extends Posts:
    codeberg.org/small-tech/site/s

    And the EventPost (showing an implementation of a calculated property):
    codeberg.org/small-tech/site/s

    So all this is possible (persisting and reading back typed model collections, etc.) thanks to JSDB¹ (JavaScript database), a zero-dependency, transparent, in-memory, streaming write-on-update JavaScript database I wrote for the Small Web that persists to a JavaScript transaction log and is included as as first-class citizen in Kitten.

    codeberg.org/small-tech/jsdb

    And if you want to know how the magic mapping of classes happens, see the Database App Module:

    codeberg.org/small-tech/site/s

    PS. For a much gentler introduction to persistence in Kitten, see the Kitten Persistence tutorial:
    kitten.small-web.org/tutorials

    Enjoy! :kitten:💕

    ¹ small-tech.org
    ² kitten.small-web.org

    #Kitten #SmallWeb #SmallTech #JavaScript #database #JSDB #typeSafety #JSDoc #closureCompiler #TypeScript #workInProgress

  17. New releases

    • Kitten (rolling release)
    • @small-tech/https version 5.3.2
    • Auto Encrypt version 4.1.3

    OCSP support has been reinstated in the server so existing sites with Let’s Encrypt certificates provisioned prior to the removal of the OCSP stapling requirement will not fail to load in Firefox.

    Kitten servers in production will automatically update to this version in a few hours. You can also sign in to the Kitten settings page on your server and do a manual update to update Kitten immediately.

    Thanks to @stefan and @s1r83r for bringing this to my attention. (mastodon.ar.al/@aral/113969540)

    #Kitten #SmallWeb #SmallTech #AutoEncrypt #TLS #SSL #HTTPS #OCSP #LetsEncrypt #web #dev #NodeJS #JavaScript

  18. New Kitten release

    • Upgrades to version 5.3.1 of @small-tech/https¹ which has version 4.1.2 of Auto Encrypt² that l removes OCSP stapling (because Let’s Encrypt has removed OCSP support).

    Please upgrade your Kitten as soon as possible or any new Kitten servers you try to set up will fail and any certificate renewals for existing servers will start to fail in May.

    kitten.small-web.org

    (To upgrade, run `kitten update`. Your production servers will update automatically.)

    Enjoy!

    :kitten:💕

    ¹ npmjs.com/package/@small-tech/
    ² npmjs.com/package/@small-tech/

    #Kitten #SmallWeb #SmallTech #web #dev #TLS #HTTPS #AutoEncrypt #NodeJS #JavaScript #OCSP #LetsEncrypt

  19. You can really get a feel for what authoring a simple web app is like in Kitten (with the latest techniques/features), by checking out the source code for Look Over There!, the multi-site forwarding app with TLS forwarding support that I built recently:

    codeberg.org/small-web/look-ov

    There’s an instance of it I’m hosting for us at look-over-there.small-web.org to forward our archived sites – e.g., web0.small-web.org – to archive.org so we don’t break links on the web.

    If you want to run it locally, install Kitten (kitten.small-web.org) and then type: kitten run codeberg.org/small-web/look-ov (you can also clone the git repo manually and just run kitten from the working directory).

    Interesting places to look:

    • The index page (shows use of a Markdown page that imports and uses Kitten components) codeberg.org/small-web/look-ov

    • The admin page (notice the lock emoji at the end of the name? That’s all you need to add to a route to make use of Kitten’s automatic authentication. Since every Kitten site/app is protected by public-key encryption and we don’t have the concept of users (each site/app on the Small Web is owned by one person), the whole process can be automated for you. codeberg.org/small-web/look-ov

    • The Redirection component. This is what does all the hard work on the admin page. Along with the admin page, they showcase Kitten’s new/alternative (and as-of-yet mostly undocumented) class-based component model with event bubbling on the component hierarchy on the server. (Since this is resource intensive, it’s recommended you use it only when implementing authenticated routes where you’re sure only the site’s owner will be accessing the route.) codeberg.org/small-web/look-ov

    In any case, as Kitten and the rest of the Small Web ecosystem matures further, I’ll be documenting all this better and there will be even more examples and tutorials but, in case you’re one of those inquisitive types and you want to see what web development can be like if you’re *not* building centralised people farming machinery for Big Tech, have a play with Kitten.

    :kitten:💕

    #Kitten #SmallWeb #SmallTech #SmallTechnologyFoundation #LookOverThere #code #web #dev

  20. New Kitten Release 🥳

    • Implements cascading archives support

    kitten.small-web.org/reference

    Cascading archives¹ is useful if you have a static archive of the old version of your site and you don’t want to host it somewhere else and use the 404→307 (evergreen web) technique (kitten.small-web.org/reference) (the latter is useful if the old version of your site is a dynamic site and you cannot take a static archive of it).

    If a URL cannot be found on your app, Kitten will trying it in the archive folders:

    __archive__1
    __archive__2
    __archive__3

    (In that order.)

    So you can three older static versions of your site served without breaking older URLs unless they are shadowed by newer URLs in your site/app.

    Enjoy!

    :kitten:💕

    ¹ This is a feature that I originally implemented in Site.js (that’s going to be shut down tomorrow when Let’s Encrypt stops issuing certificates with OCSP-stapling – I don’t have the bandwidth to maintain two servers/frameworks; Kitten is Site.js’s successor). I’m planning on implementing this differently in Kitten going forward (so you can use the Settings interface to upload a zipped archive and it will serve it) but I need this for my own site for tomorrow’s shutdown so we have this simpler implementation in the meanwhile. Leaving things to the last minute? Who? Me? Never! ;)

    #Kitten #SmallWeb #SmallTech #archiving #evergreenWeb #dontBreakTheWeb #links #URLs

  21. @small-tech/https version 5.3.0 released

    • Uses Auto Encrypt 4.1.1 (removes OCSP stapling support because Let]s Encrypt has removed OCSP support).

    npmjs.com/package/@small-tech/

    This module is a drop in replacement for Node HTTPS module that automatically handles TLS certificate provisioning and renewal both at localhost (via Auto Encrypt Localhost¹) and at hostname (via Auto Encrypt with Let’s Encrypt certificates²).

    So, this is how you create a HTTPS server in Node.js that uses this module and automatically handles TLS certificate provisioning and renewal for you both at localhost (during development) and at hostname (during production):

    ```js
    import https from '@small-tech/https'

    const server = https.createServer((request, response) => {
    response.end('Hello, world!')
    })

    server.listen(443, () => {
    console.log(' 🎉 Server running at https://localhost.')
    })
    ```

    (Yes, that’s it! I wrote a metric shit-tonne of meticulously-tested code so you don’t have to.) :)

    💡 Note that the localhost certificate support via Auto Encrypt Localhost is 100% JavaScript and does NOT rely on an external binary like mkcert or certutil.

    Needless to say, Kitten³ uses this module under the hood and it’s a big part of why Domain⁴ can deploy servers so easily that don’t require any day-to-day maintenance.

    In case you’re wondering why I’m spending so much time releasing all these modules, it’s because I believe in sharing every brick of the house I’m building so others can easily build different houses if they want to. I’m not saying that what I’m building with Kitten, Domain, and Place⁵ will be the end all be all of the Small Web⁶ (the peer-to-peer web). And I want others to be able to experiment by building their own tools without having to go through the grueling development process I’ve had to in the past six years to build basic infrastructure.

    Enjoy!

    💕

    ¹ codeberg.org/small-tech/auto-e
    ² codeberg.org/small-tech/auto-e
    ³ kitten.small-web.org
    codeberg.org/domain/app
    codeberg.org/place/app
    ar.al/2024/06/24/small-web-com

    #SmallWeb #SmallTech #AutoEncrypt #LetsEncrypt #localhost #TLS #SSL #HTTPS #Kitten #NodeJS #JavaScript #servers #web #dev #FOSS

  22. The Evergreen Web section in Kitten’s¹ settings now has its own page too (and uses Kitten’s new Streaming HTML² workflow).

    If you have the previous version of your site up somewhere, you can use the 404-to-307 technique³ to forward missing pages to your old site so as not to break the Web.

    I’ll add local static archive support later.

    ¹ codeberg.org/kitten/app
    ² ar.al/2024/03/08/streaming-htm
    ³ 4042307.org

    #Kitten #SmallWeb #EvergreenWeb #StreamingHTML #web #dev #NodeJS #JavaScript

  23. 🔒 New Kitten & JSDB Releases

    Security fix, JSDB 6.0.1.

    This is a critical update.

    • JSDB¹ versions 6.0.0 and below suffer from potential data corruption/arbitrary code execution as string keys were not being sanitised in the same way string values were² (so this is relevant to you if you’re storing untrusted data as keys in your data structures in JSDB and/or Kitten databases without carrying out any of your own sanitisation at the application level).

    • The latest Kitten release uses JSDB version 6.0.1. Your deployment servers will automatically update in the next few hours. On your development machines, please run `kitten update` in your terminal or use the Update feature in Kitten Settings from your browser.

    • If you are using Kitten’s Database App Modules³ feature in your apps, you will have installed JSDB manually and you should update your installation to version 6.0.1.

    ¹ codeberg.org/small-tech/jsdb/
    ² codeberg.org/small-tech/jsdb/i
    ³ kitten.small-web.org/reference

    #Kitten #SmallWeb #JSDB #JavaScriptDatabase #KittenRelease #JSDBRelease #securityUpdate #criticalUpdate

  24. 🔒 New Kitten & JSDB Releases

    Security fix, JSDB 6.0.1.

    This is a critical update.

    • JSDB¹ versions 6.0.0 and below suffer from potential data corruption/arbitrary code execution as string keys were not being sanitised in the same way string values were² (so this is relevant to you if you’re storing untrusted data as keys in your data structures in JSDB and/or Kitten databases without carrying out any of your own sanitisation at the application level).

    • The latest Kitten release uses JSDB version 6.0.1. Your deployment servers will automatically update in the next few hours. On your development machines, please run `kitten update` in your terminal or use the Update feature in Kitten Settings from your browser.

    • If you are using Kitten’s Database App Modules³ feature in your apps, you will have installed JSDB manually and you should update your installation to version 6.0.1.

    ¹ codeberg.org/small-tech/jsdb/
    ² codeberg.org/small-tech/jsdb/i
    ³ kitten.small-web.org/reference

    #Kitten #SmallWeb #JSDB #JavaScriptDatabase #KittenRelease #JSDBRelease #securityUpdate #criticalUpdate

  25. 🔒 New Kitten & JSDB Releases

    Security fix, JSDB 6.0.1.

    This is a critical update.

    • JSDB¹ versions 6.0.0 and below suffer from potential data corruption/arbitrary code execution as string keys were not being sanitised in the same way string values were² (so this is relevant to you if you’re storing untrusted data as keys in your data structures in JSDB and/or Kitten databases without carrying out any of your own sanitisation at the application level).

    • The latest Kitten release uses JSDB version 6.0.1. Your deployment servers will automatically update in the next few hours. On your development machines, please run `kitten update` in your terminal or use the Update feature in Kitten Settings from your browser.

    • If you are using Kitten’s Database App Modules³ feature in your apps, you will have installed JSDB manually and you should update your installation to version 6.0.1.

    ¹ codeberg.org/small-tech/jsdb/
    ² codeberg.org/small-tech/jsdb/i
    ³ kitten.small-web.org/reference

    #Kitten #SmallWeb #JSDB #JavaScriptDatabase #KittenRelease #JSDBRelease #securityUpdate #criticalUpdate