Release: uuid-qjs 0.1.1
This is a modular redesign of how the Digital Post Office generates uuids for request tickets.
http://citiwise.eu:9000/CommunalTech/index.html#!/Announcements/2
#smallEngineering #linux #quickjs #uuid
Many in #smallTech, #smallWeb and #smallEngineering believe that the greatest challenge of our time is the browser. It shouldn't be conflicted with commercial interests. We need development of a publicly funded open source browser.
http://citiwise.eu:9000/CommunalTech/index.html#!/Challenges/1
#smalltech #SmallWeb #smallEngineering
Release: Qweb 1.0
Qweb is a combination of the Mongoose HTTP server and Quickjs.
This package includes a simple chatroom implementation, which you can run out of the box on debian/ubuntu/raspbian linux. On a Raspberry Pi you could chat with 10-20 people, on a PC or laptop with 100-200 people.
http://citiwise.eu:9000/CommunalTech/index.html#!/Announcements/1
#communaltech #smallEngineering #linux #Qjs
It turned out that I could use a 20 microsecond wait interval for the response to be written back to the shared memory on my old PC. But on a Raspberry Pi This had to be relaxed to 10x that to reduce idle CPU load, or 200 microseconds. Makes me wonder what this factor would be for a shiny blade server.
#smallEngineering #hpc #qweb #shm #mmap
It's been a busy week in my little workshop (living room). The post office has come out of the prototyping stage and is now in beta with all required modules present. As a byproduct there is now also a generic shared module for making tcp- and unix socket requests in qjs, written in C. Node.js has been retired two weeks ago.
If you were wondering how to call your own C functions from javascript in quickjs, this does the trick:
https://www.calbertts.com/posts/How-to-create-asynchronous-APIs-for-QuickJS/
#smallEngineering #javascript #c
Version 0.2.8 of the post office has added the `get pageText` service, which calls the linux `html2text` tool, which outputs the text of the web page to unicode. This is particularly helpful for building one's own lean and searchable archive.
#digitalpostoffice #smallEngineering
The post office is about to adopt the Mongoose web server. It serves the purpose well, beating Lua Turbo hands down, both in memory size (960kB) and for its purpose of serving non-cached.
But I thought i would ask if there are better alternatives for this particular purpose on Linux? Thx.
#smallEngineering #digitalpostoffice
The Digital Post Office has lost almost 50% in code size and memory occupation (now ~8MB) today. This is good, because it is now fully asynchronous (thanks to quickjs) and refactored to let the OS do most of the work. Probably a good release 1.0 candidate, but first the documentation.
The post office is about to adopt yq as a service, notably for converting RSS feeds to JSON. It serves the purpose well, but I thought i would ask if there are better alternatives for this particular purpose on Linux? Thx.
It does a avg job in ~40ms (on my 12 yr old machine).
#smallEngineering #digitalpostoffice
I'm testing a prototype of the Digital Post Office for the second week and there is now also a distributed microservices client library for qjs. All seems to work as expected.
I've also implemented microservices for scanning and converting RSS feeds, which lends itself to cooperation, e.g. knowing when feeds change.
The missing link of calling back on TCP was solved by this awesome qjs module:
https://github.com/rsenn/qjs-http
In the view of #smallEngineering, Node.js is like emulating the OS itself. Yet one of the paradigms of unix is do one thing and do it well. One's output can be another's input. But since then we now say: by all means, call me back when you're done.
Luajit has its shortcomings, so does QuickJS, but using them together, any computational problem can be solved on the Linux OS (in a fraction of your resident memory).
Node.js or Deno is only good if all else fails.
The daily temperature is already down to 18C in the #smallEngineering workshop. I can still boost toots, but don't expect any software releases this winter when my fingers lose dexterity and breath condenses on the monitor.
New binaries for the mdata servers (web and unix socket)
http://nlchat.citiwise.eu/chat/sei/index.html#!/SEI-Releases/23
#freesoftware #lua #nosql #smallEngineering
release: md-relay
version: 0.2.3
description:
Binary for x64, copiled on Ubuntu 16.04.5 LTS. This daemon provides access to mdata for qjs clients.
sha256sum:
637b1b937b3a8b42ede921643f59d2f550a426dffe59ed9915d629488f748450 md-relay
dependencies-apt: lua-socket, lua-posix
location: wget http://se.citiwise.eu:/downloads/lua-md-relay-x64-0.2.3.tgz
licence: MIT
The very nice thing about qjs is that any script you can run with it, also compiles to a executable with qjsc. And unlike luastatic, all the external modules that you import, get compiled along with it.
In case you need to run system commands asynchronously from javascript, QuickJS has this brilliant module: https://github.com/ctn-malone/qjs-ext-lib
#javascript #quickjs #smallEngineering
It would be very helpful if an equivalent of Lua's cqueues module would be available in QuickJS. Or even a basic unix socket library?
#quickjs #challenges #smallEngineering
release:
Node.js client for lua-mdata socket servers and webdb.
http://nlchat.citiwise.eu/chat/sei/index.html#!/SEI-Releases/20
#node #smallEngineering #raspberrypi #nosql #lua #linux