[racket] Finndesign Liitin: Computing rethought

From: Jukka Tuominen (jukka.tuominen at finndesign.fi)
Date: Mon Jan 10 08:11:16 EST 2011

Hi Noel,

I think different people would benefit from Liitin differently, or in a
different phase of life.

I could try to guess some features that you might find interesting. Let's
suppose your username (=namespace) would be nwe100.
- If you come up with a nice function that you would like to use after some
years, you could save/publish it into Liitin, so you could access it any
time thereafter simply by loggin into Liitin even at the time of Windows 9,
Mac OS 13, Ubuntu 14... (final thesis for example, but even very small
helper app). Say, you save an object "nwe100:cool-lambda" which you could
then use like (nwe100:cool-lambda () ...). BTW, I don't mean to say that
Liitin needs to be a separate system. I for example, use several Virtual
Machines from my Liitin desktop, or I can create new ones without leaving my
familiar desktop. For now, these aren't done by Liitin objects, but I guess
- If you would like to share some useful 'snippet', others could use it
simply by calling it by the name you assigned to it. No explaining how to
get it running (OS, apps, libraries, tweakings etc.).
- The whole arsenal is always available, even if you call some object just
once in your lifetime, e.g. (mirko:eliza "hi there"). And if you don't, it
doesn't bother you or eat local resources.
- If you would like to have someone looking at your code not working
properly, you could ask to look for object x. Others could try to run it,
look at the source code just like that. They could make a modified version
and return the name of that object.
- If you would like to retrospect some function, you could access all saved
versions of each object, either for viewing or even execute them. E.g.
(nwe100:cool-lambda:[timestamp] () ...). There's also a handy GUI available
to browse through each version by mouse clicks. An object name without
timestamp means the latest. The given timestamp is intepreted as "the latest
at that point of time", so you could propably create some kind of custodian
function to steer all objects to behave as if in some point in history.
- If you would like to deny all dynamicy, you could either copy all critical
objects to your own namespace down to primitives, or call each object with a
time stamp.
- You cannot mess up other peoples namespaces, but you could still
collaborate among several people dynamically by calling other's objects e.g.
(map jtu100:do-magic (list abc123:item-1 nwe100:item-2 fgh234:item-3)). So,
when these authours update their objects, so may change the outcome, as
well. If you don't trust someone's future behaviour, you could add a
timestamp to the object, and it will ignore dynamicy. You cannot mess up
even your own past objects, that is.
- There is still need for new standards (RnRS, SRFI...), but maybe the way
to do it with Liitin, is to pick up the best ones to be used for teaching
etc. You can make your suggestions immediately. You also need the process
from unstable to stable 'releases' of Liitin objects.
- Say, somebody (or institute/company) places a full ontology publicly
available, another person is handy enough to make some extra prolog-type
functions to utilize the ontology, another person had made a functions for
voice recognition and generation, yet another one knew some robotics, you
could end up with interesting results. You could give it a new name, and
anybody could use it and add yet another layer to it. All these components
are already scattered out there, but what if a child could give his new
robot all this instantly, say (robotics:act-smart leo123:my-robot). With
Liitin you could add a few new abstraction levels that is otherwise possible
but maybe not practical.

As I have mentioned earlier, I'm not either engineer nor do I know much
programming (other than my AI hobby), so once you'd learn the basic Liitin
concept, you would come up with much cooler things, I'm sure.

br, jukka

> -----Original Message-----
> From: Noel Welsh [mailto:noelwelsh at gmail.com]
> Sent: 10 January 2011 12:53
> To: Jukka Tuominen
> Cc: users at racket-lang.org
> Subject: Re: [racket] Finndesign Liitin: Computing rethought
> On Wed, Jan 5, 2011 at 3:04 PM, Jukka Tuominen
> <jukka.tuominen at finndesign.fi> wrote:
> >
> > Hi all,
> >
> > after about a decade's development work, we (Finndesign) are about to
> > release something that we feel very exited about. It's a
> network OS called
> > Liitin and it uses Scheme (Racket) as built-in language. BTW,
> Liitin means
> > 'connector' in Finnish and is pronounced like "Lee tin".
> ...
> > So, how does this sound to you?
> > Possibilities, limitations, threats, questions, ideas? Cool/ not cool?
> This sounds interesting but I'm not sure what exactly I'd do with
> Liitin. Where do you see the first uses? I'm an engineer at heart so
> I'm mainly interested in applications. What does Liitin make easy that
> is currently hard?
> Cheers,
> Noel

Posted on the users mailing list.