It's been pretty quiet on this list, so I thought I'd start a
conversation to see if the list is working. Anyone doing any
interesting Self work?
I sidelined my VNC client in Self for a bit due to getting busy in my
day job but plan to get back to it soon and finish it off. It's pretty
close. The missing part is mostly key handling.
I'd like to tidy up my Android patches too and get them submitted so
at least Intel android would work out of the box.
What do people feel would make Self more viable as a fun project to hack on?
--
http://www.bluishcoder.co.nz
This week I've been looking at the transporter trees code.
I have committed a slightly more robust version of transporter trees - the code is in the transporter-trees branch of the main github.com/russellallen/self repo. Not VM changes are required, so just "git checkout transporter-trees" and then build a snapshot to check it out.
Usage is as in the github.com/russellallen/self-webserver repo:
modules init
registerTree: 'org_selflanguage_webserver'
At: 'path/to/org_selflanguage_webserver'.
bootstrap read: 'webserver'
InTree: 'org_selflanguage_webserver'.
Important considerations: module names are globally unique (that is, two modules called 'webserver' in different trees are considered the same module and will overwrite each other). The tree name itself should also be globally unique - that is it is not possible to have two trees with the same name in a single Self world.
The advantages of this over a simple symbolic link to a separate filesystem tree is we can do overlays - if you want special string behaviour, then put it in your tree in my_tree/core/string.self and it will override as expected.
Modules that import subparts will try to import them from the same tree by default.
Also bumped up versions on relevant modules, and reworked worldBuilder.self so that it isn't a module.
That way code can check for the core version in a module preFileIn method as so:
modules allCore version >= (modules init moduleVersion copyOn: '1.0.0')
ifFalse: [log warning: 'Ancient version of Self!']
I'm not sure if I'm completely happy with this yet. I have two main issues.
1) should I reversion all the modules in the system to get rid of the residual $SUN-Revision$ stuff? At the moment I just work round it.
2) should module names continue to be a single global namespace? Won't this lead to us going down the icky Squeak path of having initials everywhere? eg RAClassName? Or is it less important because although modules must be globally unique, object paths from the lobby don't have to be?
:) Russell
This week in the world of Self:
* HTML Browser
A new version of the HTML browser is now running on browser.russell.larrikin.org, which fixes a couple of bugs including one which stopped slots being shown in method source
* larrikin.org
I'm busy tracking down a recurring bug on Centos 7 which causes the VM sometimes to refuse to start a snapshot. It wasn't helped by Digital Ocean by default configuring distros not to use swap, causing things to be randomly killed by the OOM Killer.
* Transporter Trees
I have an improved version of transporter trees in the works. I'll commit shortly. I'm trying to keep the changes minimal and avoid recreating chunks of the transporter.
:) Russell
All the cool kids have a cloud, so we should have one too!
Announcing LARRIKIN.ORG - the Self cloud (tada!)
NBAQ: (Never Before Asked Questions)
------------------------------------
* What is it?
A cluster of Linux images which you can run Self snapshots on. When I say cluster, I mean two, currently small instances on Digital Ocean. Each Linux instance can run multiple Self worlds. A coodinator at https://manager.larrikin.org keeps track of stuff. It is much simpler than the big clouds but also has obvious drawbacks.
* How does it work?
You go to https://manager.larrikin.org and sign up, then you can upload, download, wake, sleep, delete etc snapshots. You will need the secret Self mailing list invitation: "ourselves"
* How do I interact with my running Self world?
You can interact with the stdin/stdout of your Self world through the manager. Also, if you run a webserver in your Self world on port 8000 then it will be exposed the web on port 80 of http://worldname.username.larrikin.org <http://worldname.username.larrikin.org/> I’m working on allowing people to point other domain names to their worlds.
* Why didn't you just use OpenStack/Docker/Puppet/CoreOS/Mesos/Vagrant/Zookeeper
I don't even know what these things are but they sound fiendlishly complex. Seriously though, cluster of two machines, remember? Some of these might become relevant if I end up trying to run many many snapshots over many instances. I am a bear of very little brain and long words bother me, so I've tried to keep moving parts to a minimum. Current moving parts are: Self, Centos 7, DigitalOcean, Amazon Route 53, nginx, FireJail and a very little python.
* Larrikin.org?
Shug. I happened to have the domain name. I'll move it to something better in due course.
* For the love of all that is good and holy, why?
To meet the large un-met demand for cloud hosting of Self snapshots, of course!
Ground Rules:
-------------
I. Your running worlds are in a sandbox and shouldn't be able to do anything harmful. Please try and let me know if you succeed in breaking anything!
II. The system may restart your running worlds at any time without warning, so if you are running, for example, a webserver make sure it starts up when the snapshot starts.
III. If you save your snapshot the system should keep track of the change.
IV. If you look around you will see your snapshot is able to read and write files to disk. These files will disappear every snapshot restart so don't rely on them.
V. Even with very small TTL values, DNS sometimes takes time to propogate so if your webserver isn’t immediately available that is probably why.
VI. This is just for fun! Don't do anything which you care too much about without talking to me first because as far as I know the code has a bug which will send all your data to the NSA, eat all your snapshots, then burn down the data centre.
VIII. Please please USE A UNIQUE PASSWORD to access the system. That way when the hackers break in they won't be able to use that password on your Top Secret Important Account.
:) Russell
Update:
- www.selflanguage.org <http://www.selflanguage.org/>, handbook.selflanguage.org <http://handbook.selflanguage.org/> and bibliography.selflanguage.org <http://bibliography.selflanguage.org/> have been moved across into larrikin.org <http://larrikin.org/>
- A new shiny upload facility has been added so that users can upload snapshots more than a couple of meg in size. Unfortunately this means adding another moving part for the moment: nodejs as a backend to the upload until I get around to writing multipart/formdata support into the Self webserver
- The whole management interface has been given a shiny foundation.zurb.com <http://foundation.zurb.com/> overhaul so that it looks pretty and works on my phone
Why not try it out?
Register at https://manager.larrikin.org <https://manager.larrikin.org/> with special invitation ‘ourselves’
Russell
PS for Jeremiah: http://www.oxforddictionaries.com/definition/english/larrikin <http://www.oxforddictionaries.com/definition/english/larrikin> :)
> On 3 Nov 2014, at 12:09 pm, Russell Allen <mail(a)russell-allen.com> wrote:
>
> All the cool kids have a cloud, so we should have one too!
>
> Announcing LARRIKIN.ORG <http://larrikin.org/> - the Self cloud (tada!)
>
> NBAQ: (Never Before Asked Questions)
> ------------------------------------
>
> * What is it?
>
> A cluster of Linux images which you can run Self snapshots on. When I say cluster, I mean two, currently small instances on Digital Ocean. Each Linux instance can run multiple Self worlds. A coodinator at https://manager.larrikin.org <https://manager.larrikin.org/> keeps track of stuff. It is much simpler than the big clouds but also has obvious drawbacks.
>
> * How does it work?
>
> You go to https://manager.larrikin.org <https://manager.larrikin.org/> and sign up, then you can upload, download, wake, sleep, delete etc snapshots. You will need the secret Self mailing list invitation: "ourselves"
>
> * How do I interact with my running Self world?
>
> You can interact with the stdin/stdout of your Self world through the manager. Also, if you run a webserver in your Self world on port 8000 then it will be exposed the web on port 80 of http://worldname.username.larrikin.org <http://worldname.username.larrikin.org/> I’m working on allowing people to point other domain names to their worlds.
>
> * Why didn't you just use OpenStack/Docker/Puppet/CoreOS/Mesos/Vagrant/Zookeeper
>
> I don't even know what these things are but they sound fiendlishly complex. Seriously though, cluster of two machines, remember? Some of these might become relevant if I end up trying to run many many snapshots over many instances. I am a bear of very little brain and long words bother me, so I've tried to keep moving parts to a minimum. Current moving parts are: Self, Centos 7, DigitalOcean, Amazon Route 53, nginx, FireJail and a very little python.
>
> * Larrikin.org <http://larrikin.org/>?
>
> Shug. I happened to have the domain name. I'll move it to something better in due course.
>
> * For the love of all that is good and holy, why?
>
> To meet the large un-met demand for cloud hosting of Self snapshots, of course!
>
> Ground Rules:
> -------------
>
> I. Your running worlds are in a sandbox and shouldn't be able to do anything harmful. Please try and let me know if you succeed in breaking anything!
>
> II. The system may restart your running worlds at any time without warning, so if you are running, for example, a webserver make sure it starts up when the snapshot starts.
>
> III. If you save your snapshot the system should keep track of the change.
>
> IV. If you look around you will see your snapshot is able to read and write files to disk. These files will disappear every snapshot restart so don't rely on them.
>
> V. Even with very small TTL values, DNS sometimes takes time to propogate so if your webserver isn’t immediately available that is probably why.
>
> VI. This is just for fun! Don't do anything which you care too much about without talking to me first because as far as I know the code has a bug which will send all your data to the NSA, eat all your snapshots, then burn down the data centre.
>
> VIII. Please please USE A UNIQUE PASSWORD to access the system. That way when the hackers break in they won't be able to use that password on your Top Secret Important Account.
>
> :) Russell
>
>