AltME: REBOL3

Messages

GrahamC
This is a first pass of mine at a new rebol chat http://35.224.174.22/rooms/1 and if it looks familiar, it's because I've taken the CSS from stackoverflow!
Initially the idea is to get chat at the console, like the late rebdev chat which was never open sourced
So, currently I can register, post,  replyto and read messages.  Initial encryption uses gnuGPG as we still don't have server side https going.  The server is rebol httpd.
If it goes down frequently it will be because I'm adding new features and bugs
The web client will likely be a WASM based client which means I guess using GPG from JS.
Private messaging will require that you import the recipient's public certificate so that encrypted messages can be stored on the server until the recipient uplifts them.
And if it's excessively complicated .. then yes, it is lol

Bo
Code would be 1/4 the size and 1/10 as complicated if it weren't for edge cases and security!
But the chat looks good!
I've been considering doing a chat client for a while. Here are my wants:
- Able to be self hosted, which means it can also be hosted in the cloud.
- Messaging engine and data store is completely isolated from the interface so multiple interfaces can be developed for the same messaging engine and data store.
- Multiple message "worlds", each with their own groups, permissions, users, etc., but all can be active at the same time (sort of like Discord, but unlike AltME where only one world can be active at a time per instance of the AltME client).

GrahamC
So, 1. This is self hosted, on a google compute cloud instance, 2. we now have both console and web clients ( I can post from google chrome ) 3. that's easy enough as well.
the data is currently just stored in rebol objects on the file system at present because how it's stored is less important in the short term.
The browser interface downloads all messages locally and serves those so it acts as a proxy for the cloud server
So, there's a bit of a lag from posting to seeing your message but that just needs tweeking
Now, I'm going to look at adding rebol Wasm to the browser client so I can do more complex things in rebol rather than having to learn JS!
The multiple worlds scenario .. i'd imagine would just be separate tabs in the browser
Each connecting to a different cloud instance
I also have it so that if your message starts with a >> it gets sent to a rebol eval instance and the result is posted instead

Bo
Has anyone gotten mysql-protocol.r3 to work with mysql-server 8.0?
Alternatively, I can't figure out how to install mysql-server 5.5 or older on Linux Mint x86.

Bo
Just in case anyone is wondering, I was able to install mysql-server 5.5 on Linux Mint x86. I'm posting the steps here.
`cd /usr/local` is the location where MySQL should be installed
`wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz` If this returns an error, it is because this file has been moved or removed from MySQL's site - the newer versions aren't compatible with the latest version of mysql-protocol.r3 that I can find
`groupadd mysql` If this returns an error, this step wasn't needed
`useradd -g mysql mysql` If this returns an error, this step wasn't needed
`tar -xvf mysql*.tar.gz` extracts MySQL into the current directory
`rm mysql-*.gz` removes the compressed file that is no longer needed
`mv mysql-* mysql` renames the long MySQL directory name to the short version
`chown root:root mysql` changes the permissions on the mysql directory to the correct permissions
`cd mysql` goes into the mysql directory
`chown -R mysql:mysql *` changes permissions on all the files in the mysql directory to the mysql user and the mysql group
`apt install libaio1` may already be installed, but just to make sure
`scripts/mysql_install_db --user=mysql` installs MySQL
`chown -R root .` changes permissions on the files in the MySQL directory
`chown -R mysql data` changes permissions on the MySQL data directory
`cp support-files/my-medium.cnf /etc/my.cnf` copies the configuration file to the correct location
`bin/mysqld_safe --user=mysql & cp support-files/mysql.server /etc/init.d/mysql.server` starts MySQL server and copies the autostart file to the correct location
`bin/mysqladmin -u root password 'pswd'` change 'pswd' to the MySQL root password - This will be referred to as the MySQL root password from now on
`/etc/init.d/mysql.server start` starts MySQL server
`/etc/init.d/mysql.server stop` stops MySQL server
`update-rc.d -f mysql.server defaults` enables MySQL to start when computer is rebooted
`ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql` adds MySQL to the system path
`apt install libncursesw5` installs a library needed by MySQL

Last message posted 164 weeks ago.