Tuesday, November 30, 2010

What is Thimbl?

>From: Stephen Fortune
>I would also like some clarity on how Thimbl works.

Yes - that can be a little confusing!

> I read in the manifesto that
>"It is up your own webhost, Internet service-provider or system administrator to
>provide accounts". This is where I require information: can someone use Thimbl
>without having a domain or webhosting service of their own, or is it restricted
>to those running a web presence of some form of preexisting server.

I'm not entirely sure of the plans of Thmibl.Net itself. I, for instance, put
together some tools that does not require a web server.


When people say "web server", they usually mean a piece of software that
presents pages like you would see if you typed into your web browser
www.google.com . I think that Thimbl.Net aims to provide that kind of interface.
My tools, OTOH, do not require it.


There are two sides to Thimbl: a client side, and a server side. "Client side"
refers to what you have to do to read some else's blogs. "Server side" refers to
what you have to do to let some else read your blogs. The client side is easier
than the server side.

The bare minimum you need for client-side work is a program called "finger".
This program is present on Windows, Linux, and a lot of other Operating Systems
that matter. You can access it from a DOS prompt on Windows,

I have set up a testing account for user ossa at my site nummo.strangled.net. If
I go to the DOS prompt, I can type
  finger ossa@nummo.strangled.net
If you do it, it currently returns the response:
[75.101.142.245]

You fingered the user 'ossa'
Plan:
{"name": "Ossa", "address": "ossa@nummo.strangled.net", "messages": [{"text":
"First post", "time": "20101117130604"}, {"text": "I am the King of Siam",
"time": "20101120105506"}, {"text": "Ossa 1", "time": "20101120110631"},
{"text": "Ossa 2", "time": "20101120130159"}, {"text": "Ossa 3", "time":
"20101120142248"}, {"text": "Thimbl-CLI gets an embryonic GUI:
http://alt-mcarter.blogspot.com/2010/11/embryonic-gui-for-thimbl-cli.html",
"time": "20101127151646"}], "replies": {}, "following": [{"nick": "dk",
"address": "dk@telekommunisten.net"}], "properties": {"website":
"http://mummo.strangled.ner", "mobile": "N/A", "email":
"ossa@nummo.strangled.net"}}

You can try it yourself, if you like. What you are seeing is an "encoded" form
of my blog. It is convenient for a computer to understand, but inconvenient for
a human to read. I think that Thimbl.Net's aim is to present the "decoded" blog
onto a web page. It's not necessary to show them on a web page, though. I have
put together some tools, called Thimbl-CLI, that just prints them out. If you
Thimbl-CLI installed, for example, you could type
  thimbl print
and you will get the output

2010-11-17 13:06:04  ossa@nummo.strangled.net
First post


2010-11-20 10:19:39  me@localhost
Test user says hi


2010-11-20 10:55:06  ossa@nummo.strangled.net
I am the King of Siam


2010-11-20 11:03:50  me@localhost
A stitch in time saves nine


2010-11-20 11:06:31  ossa@nummo.strangled.net
Ossa 1


2010-11-20 11:09:50  me@localhost
lappie 1


2010-11-20 13:01:59  ossa@nummo.strangled.net
Ossa 2


2010-11-20 14:22:48  ossa@nummo.strangled.net
Ossa 3


2010-11-27 15:13:45  me@localhost
Thimbl-CLI gets an embryonic GUI:
http://alt-mcarter.blogspot.com/2010/11/embryonic-gui-for-thimbl-cli.html


2010-11-27 15:16:46  ossa@nummo.strangled.net
Thimbl-CLI gets an embryonic GUI:
http://alt-mcarter.blogspot.com/2010/11/embryonic-gui-for-thimbl-cli.html


As you can see, it's in a much more readable form. For those that don't like
using the command line, I have started to create a GUI. You can see a pic of it
on a recent blog post at http://alt-mcarter.blogspot.com/search/label/thimbl .
This allows less knowledgeable users to get up-and-running quickly. Currently,
there is not convenient executable available for it, though. You have to be a
bit of a techie that knows about "git" and "python" in order to get it working.
An executable will be available eventually.

When things become a little more developed, it should therefore be possible for
anyone to be a "client" with little effort.


"Client-side " is less than half the fun, of course. You want to be able to make
your thoughts heard. This is what the server-side is about.The server side tends
to be tricker to set up. You need to set up a "finger daemon". A "finger daemon"
is to finger what a web server is to a program like Firefox. That generally
means you need "system privileges" in order to activate a daemon. It also
requires some fairly savvy system administration skills. If you have an account
within an existing institution (by which I typically mean corporation or
educational establishment), then it will be very difficult to convince the
system administrators to activate the finger daemon. If you run your own server,
then of course, all you have to do is convince yourself! Configuring these
things takes a little time, and is work generally undertaken by quite a computer
geek working on Linux.

All is not lost, though, because part of my Thimbl-CLI package includes a
tailor-made finger daemon which should work on any Operating System. It's not a
full executable yet, but that's my plan for it. Eventually, anyone could
therefore publish on the internet, provided that their ISP or firewall isn't
blocking incoming connections. If you turn off your machine, then, naturally,
people will not be able to access your current content.


Let me see if I can answer some of your questions in more detail.

> can someone use Thimbl without having a domain

Technically, yes. You would need to know your IP address at the very least. So,
instead of typing

    finger ossa@nummo.strangled.net
you could type
  finger ossa@75.101.142.245
and get the same result. An IP address is like a phone number. I believe that
most people have static IP addresses, meaning that their address remains
constant over time. This is contrasted with dynamic IP addresses, where
effectively your ISP allocates you a different one every time you switch your
machine on. A dynamic IP would be like your telephone company giving you a
different telephone number every day - it makes it nearly impossible for people
to know how to contact you, although you could still contact them.

> webhosting service of their own

Well, technically speaking, a web service serves web pages, and need not serve
anything else. So you couldn't use cheap hosting providers, or free ones, to
achieve what you wanted to.


> or is it restricted to those running a web presence

It's more a question of being able to run a server, rather than have a web
presence. "Web presence" is rather an imprecise term,  in any case. It might
mean someone who uses a web host to serve web pages, or it might mean someone
who has a blog (which is effectively the same thing), or it might mean someone
who has a Facebook account. Maybe it could mean other things, too. So, is it
restricted to those running a web presence? Theoreticall"no", in practise you'd
probably need to be a geek to set it up. Over the longer term, that should shift
towards a less technical orientation.

> of some form of preexisting server.

In practical terms, at the moment, I would say "yes". Eventually it should be
possible to the layman to set something up. The concept of a server is also
hazier than you might perhaps realise. It's a bit like this: everyone likes to
listen to singing, but very few people sing. Everyone can sing if they so
choose. That makes them de facto singers. By the same token, if a computer is
set up to serve web pages or finger information, then it is a server. In
reality, it's basically the same computer it always was, but now it just happens
to perform some serving functions.

>I'd personally like to be more concrete on exactly how people can maintain their
>
>own data,

I'm not sure how the folks at Thimbl.Net intend to do it, but using the
Thimbl-CLI tools, you could aimply type:
  thimbl post "I am creating a post right now!"
What happens when you do that is that thimbl encodes that post in with the
existing data file. Thimbl.Net probably does the same thing, only it uses a web
interface to do it.

Technically, you don't need any of these things to manipulate the data, you
could do it by hand. You would need to know "json", and the location of the
files. Tools like thimbl-CLI and Thimbl.Net exist to save yourself that bother
... which is their whole point. I dare say that Thimbl.Net's solution will be
more user-friendly.

If you want actual technical information as to how the data is stored, then take
a look at
https://github.com/blippy/Thimbl-CLI/blob/master/doc/plan.rst
It would be easier for a user to use a tool provided. These are  currently being
developed.


> i.e. what is setting it aside from other microblogging sites

I'm only familiar with Twitter, so I'll compare thimbl with that:
* Twitter is "centralised", thimbl is "decentralised". IOW, Twitter hosts your
account information, and gives you ready access to other accounts. Thimbl
doesn't do that.
* Twitter is about "capitalism", Thimbl is about "freedom". Witness the current
criticisms about Facebook and privacy. FB is about "monetising eyeballs", and
selling data to advertisers. FB can set user policies, and dictate what
constitutes acceptable use. It wants to "own", "sell" and "control" your data,
because that's the only way it can make money. With Thimbl, data isn't owned by
anybody, and it's not possible to exercise control over content. People can
publish whatever they want to publish. Whether or not other people choose to
listen is another matter, of course.
* Twitter is a "walled garden", Thimbl is a field of wild oats. Twitter is to
Thimbl what Windows is to Linux. IOW, Twitter gives you a convenient "canned"
solution. Thmbl is rougher around the edges, but ultimately you might be able to
do a lot more.
* Twitter follows a client/server model, Thimbl follows a peer-to-peer model.


>diaspora,

I've never used Diaspora, so I couldn't anser authoritively. AFAIK, Diaspora
tries to be the free equivalent of Facebook. Thimbl tries to be the free
equivalent of Twitter. From what I can understand, Diaspora is quite an
ambitious heavy-weight project. It seems like it will need a lot of resources to
pull it off. I suspect it is complex architecturally. Thimbl, OTOH, adapts what
already exists, and has a very simple structure. Thimbl is a Buddha that is
small and serious. Diaspora is a Buddha that is hairy and laughs (I'm
paraphrasing the comparison between the Scheme and Lisp programming languages,
BTW).



> but I have to keep my pitch light on computer science terms for
>accessibility reasons.

Using Twitter is like eating at a restaurant. The menu is preset, hopefully
quite tasty, and they wash the dishes for you afterwards. Using Thimbl is like
home cooking. You have to assemble the ingredients yourself, and wash your own
dishes. You get a more choice in what you eat, and the standard of hygiene are
the ones you set yourself, for better or worse.

On thimbl.net, Dymitri said "The most significant challenge the open web will
need to overcome is not technical, it is political." Thimbl is about taking back
ownership of our data for ourselves. It's a question as to whether we think our
best interests are served by thinking for ourselves, as opposed to letting some
government think for us. It's "not technical", because Thimbl is really about
putting a thin wrapper around solutions that already exist. It's like clothes:
sure, you can go to the shops with nothing on, but then you'd have nowhere
hygenic to put your money, and you'll attract some odd stares.

>  If you can shed some light on my question that would aid
>immensely

I hope I've been able to answer some of your questions. If you still need some
guidance, then email me back, and I'll try to help further.

I find it hard to describe Thimbl. In a way, "it's anything and nothing". It
establishes a convention (or "protocol", or "customs and language") for
exchanging information about microblogs. That leaves a wide open gate for people
to exploit that in freeform ways. Thimbl.Net, for example, aims to put a web
interface on top of it. In my own project, I take the "old-school" approach that
real men type commands, so it doesn't use web interfaces. I suspect Dymitri
would like to see many experiments conducted as to how the idea of microblogging
could be exploited.

Ultimately, I think people will choose Twitter over Thimbl. It has the advantage
of the network effect (it's popular because it's popular), and it will always
likely be easier to set up (there are generally always issues with firewalls,
installing software, etc.). Thimbl is a lot more fun, though.

No comments: