Showing posts with label talkers. Show all posts
Showing posts with label talkers. Show all posts

February 01, 2011

My Top 10 albums of 2010

As some of you might know, I have a tiny record label called Noori Records, besides being a musician in the musical projects Merankorii and kokori.

So, Noori Records is celebrating the change of year by asking its artists to do their "top 10 of 2010" lists, and I've done mine there too. Here's the quick list (read the article for some kind of review and more information about each record):

  • 20th March 2010 (2xCD, Cabinet Pin)
  • Sol Invictus – The Bad Luck Bird (7”, Auerbach Tonträger)
  • Antimatter – Alternative Matter (3xCD + DVD + Book, Prophecy Productions)
  • V/A – Whom The Moon A Nightsong Sings (2xLP or 2xCD, Auerbach Tonträger)
  • DVAR – El Mariil (CD, Shadowplay Release)
  • Kokori – init() (EP, A Beard Of Snails Records)
  • V/A – Now That’s What I Call Retro-Futurism Vol. 1 (2xFloppy, Diskette Etikette Rekords)
  • +ko+ko+ – Ovo (Single, Witte Dood Records)
  • +ko+ko+ – Parasite (Single, Witte Dood Records)
  • V/A – Maere Compilation
On a completely different matter, if you're in Portugal (and since I doubt I'll get back blogging soon) check out this events going on really soon now:
KDE 4.6 release party, next saturday afternoon;
Debian Squeeze release party, next saturday night (gives time to go to both parties);
Portuguese Talkers dinner 2011 (19 years!)

October 19, 2010

Mamnuts and PyTalker are dead, long live TZMud!

I had several choices, really. I could choose to undertake the huge task of fixing Mamnuts (actually throwing away most of the underlying NUTS-inherited code), but it was simply too much work. Or I could take PyTalker by the horns and just make its idea work - which had an estimated amount of man-hours quite inferior to the first option. But... what about maintaining and expanding it afterwords? One of the issues with PyTalker would be that, as soon as a working version was released, I would have to work on implementing each feature Mamnuts had, to be able to have a convincing argument against the usage of Mamnuts, leaving to the side the only unarguable preference: the common "but I prefer C to Python!" (and, really, there's lots of people saying that in the talkers world, imagine that!). I hoped to find a good team to do the job with me, but others would find even less time than me to dedicate to the job. It wouldn't work. Sigh. Well, I would have to do it by myself... with the use of nice Python frameworks. And, while looking at those and who contributed to what, I just saw that there was a third, quite more interesting option: get back to the origins - now without configurability limitations - and assume once and for all that a talker is a kind of MUD with certain particularities. And so, the best way to deal with my issue was, really, find out the best configurable, well-maintained, clean, active, secure, with a nice community MUD codebase, and try to just add the configurable options needed to turn a MUD codebase into a "MUD/Talker codebase", or, in fact, a MUD with a configuration option that would let you set it up to behave like your typical talker, with just something like

allow_utf8 = True
speechmode_default = True
talkmode = True
Now, guess what... that's exactly what you need to do to turn the MUD codebase "TZMud" into a talker. That's right: TZMud is a server to host a multi-user domain (MUD) in the tradition of LPMud, but implemented in the Python programming language, and, since it's 0.9 version, with a configurable option to turn it into a NUTS-like talker.

This is also, obviously, the time to say goodbye to PyTalker and Mamnuts. Don't be sad: you'll be probably able to find me lurking on the TZMud project. And, most importantly, if you're planning on running a talker (or running one already), switch to TZMud. It lacks lot's of features, that's for sure, but that is easily fixed: just open a ticket asking for what you're missing. Feel free to contribute with code, if you can, the project maintainers are quite open and happy to review/accept your code.

This is the last blog post on Mamnuts' website.

April 25, 2008

Connecting to SLTalker via SSL

I've missed the opportunity to see Wong Kar Wai's latest movie this evening, so instead, I kept the ride of "coding for talkers" from this morning, when I made a Twitter reader for Selva, and decided to finaly implement SSL for SLTalker. For those that do not know, SLTalker is a personal project of mine of implementing a talker-like interface for Second Life.

So, how to connect via telnet over SSL? Easy: the host is portugal-virtual.org and the port is 123. If you're in GNU/Linux or any *nix-like environment you can try

telnet -z ssl portugal-virtual.org 123

If you get an error saying that the -z option isn't available is because you don't have netkit's telnet-ssl package installed. Another option (bad choice in terms of usability, but this one works also on Windows) is to use OpenSSL and try:

openssl s_client -host portugal-virtual.org -port 123

Now, if you want a decent client, I recommend you to try out the popular TinyFugue (best known as tf), that already has SSL support in it's 5.0 version (still in beta). This is the only alternative I know to OpenSSL for Windows.

If you try this and have some feedback. please leave a comment. And yes, I know you're waiting for new features, bugs fixed and more usability: I'm working on that, but I'm yet far from ready to a new (and quite different) release. Bare with me...

September 03, 2007

SLTalker is out now!

One thing I've decided to this weekend was that I wouldn't have "dead times", so everytime when the presentations were not that interesting, or if I thought I could listen to it and do something at the same time I was with my laptop managing some stuff or coding on SLTalker, my project that aimed to create a talker interface for Second Life. When I realized that there were so many talks to be done that there would be no time to do the Hack Hour activity I was hoping to see there, and since, unfortunately, the rooms where presentations were given were really hot, I also skipped some presentations, giving me the time to finish SLTalker's "first release", meaning that nowadays you can actually connect into SLTalker.

So, that's it - enjoy, and remember you can allways chat with me there (.tell Noori Foss hi there!), and please report any bug that you find.

Next step, besides fixing SLTalker bugs, is trying to close these bugs on Debian, which will greatly help me to enhance SLTalker.

Oh, and please go easy on the server, SLTalker uses lots of resources and the server where I'm running this is quite slow for the job... Of course you can allways offer me a better place to host SLTalker, but I would need to have root access to it and it must be a Debian box, so I don't really think that there's someone willing to provide me a better host than this one :-)

May 08, 2007

What makes a VW really a VW?

Terra Nova has an excelent blog post, specially because of the comments, on "what should a Virtual World have to become better than WOW and Second Life in a way you would never go back".

Obviously he was not talking about the upcoming "World of Starcraft", and while I don't find them the VW, there are some alternatives coming there that are in all ways better (or so it seems for now) than those two (take Darkfall Battle as an example).

Yet, that post also gave me a new way of looking to VW's by looking into those items that I'm naming as "requisites to make a Virtual World into a really Virtual World". Let me get them for you:

  • A World - a defined space which existence is independent of the existence of the players, persistent, and with physics
  • Players - that operate within the physics, and that represent one virtual individual (avatar)
  • Interaction between players
  • Interaction with the world
  • Reaction to the world's changes
  • Concept of time, equal to all players and the world
And then I had all kind of thoughs on this issues, some of them possibly to be explored in future posts here. You might find these self-evident, but they are not: these, for instance, include talkers as "really VW's" (we should get a name for this), and exclude GuildWars as a VW.

April 19, 2007

Text-based virtual worlds podcast

Quick yet awsome news: Alan Schwartz decided to create a podcast about text-based virtual worlds. From what I've already listened it, it is great. And now, sorry, I'm going to stop typing and press "Play" again...

March 20, 2007

Stuff I've been doing lately


Well... Since I didn't post for a while, here's a quickie:

Friday I met two nice restaurants and two good wines. With the company, it was joyful. Arrived late at home, so Saturday I only took the train to Coimbra after dinner. On the train I almost prepared the presentation about the Music Industry and DRM for next saturday in Moita - Portugal. I have to cut it off a lot since I have only one hour (Q/A included) and almost 60 slides.

One thing that bothers me a lot is that stupid thing so many people started to innocently claim after Steve Jobs saying it, and one example (the latest I read) can be seen here: the claim that (physical) CD's aren't infected with DRM. Unfortunately, that's untrue.

Yesterday I finally tried to use my cellphone as a modem, via bluetooth. I wasn't really into it since everyone claimed it was a pain in the ass. Well... It wasn't. I just did

sudo /etc/init.d/bluetooth start
sudo modemlink

chose, "bluetooth", and activated bluetooth on my cellphone (Motorola E1, for the record). It found the cellphone, and asked if that's what I wanted as my modem. Clicked yes. After that

sudo gprsconnect

It asked what my cellphone operator was, but it is none of those listed. So, I chose "other", clicked "connect"... Et voilá! It couldn't be easier.

One bad thing in the talkers world is that all the talker bases there are aren't being developed anymore. Sometimes some vapourware appears, but the smoke soon dissolves. The exception for that is Mamnuts and PyTalker, unfortunately both maintained by me. Which also means that if I stop working on that... Well, not anymore. A new effort as arised, and I hope it won't be vapourware. Tints purposes a talker standard and a protocol. Around the protocol itself an implementation of it in C will appear, and python bindings for it. Then, a server, a talker (notice the separation, compare with a webserver and a website) and a client. The first client is not going to be a telnet interface, but you can virtually create any kind of client, from an interface to telnet, telnet-ssl, an webite, a XMPP plugin, an interface to Second Life... Well, you name it. The concept is really good, and if it doesn't die, I'm almost surely to be an early adopter.

Finaly... SellABand appears to be down. Anyone knows something about it? Update: Finaly, it replies. 500 Internal Server Error. Update 2: Hmm, seems that it just suffered an update.

September 21, 2006

gnunet-chat: the next-generation talker?



Abstract



Finaly, after four years talking about it, gnunet-chat is on GNUnet's roadmap (for GNUnet 0.7.4), and there has been some discussion on how to implement it.
This article aims to provide a description on how could gnunet-chat be implemented, and should be seen as a "Request For Comments".

Background



In this section I'll try to give you some background on what are talkers and what is GNUnet, so it turns easier to explain how and why should we mix both concepts together.

Talkers



Talkers are text-based online virtual worlds to which multiple users are connected at the same time to chat. People log into the talkers remotely (usually via telnet), and have a basic text interface with which to communicate with each other, in a somewhat similar way to how MUDs work.

When a user connects to a talker, he enters a room (a "virtual space") that has some links to some other rooms in order to make some kind of map. Talker users can talk privately to another talker users, wherever they are in the talker, chat publicly to someone (in a way that others near can watch them talking) in generally (to all of those who are in the same room as he is). Shouting is also possible, making all the talker users to hear what that user has to say. Of course, users are able to move themselves from one room to another, unless the room where they're walking towards is closed.

GNUnet



GNUnet is a framework for secure peer-to-peer networking that does not use any centralized or otherwise trusted services. Since such a framework provides the means to do any kind of network communications, virtually any network application you might want to do is feasible using this network. A first service implemented on top of the networking layer allows anonymous censorship-resistant file-sharing.

gnunet-chat



So, if we have a simple form of chat that is a simple form of a virtual world (as a matter of fact that are claims that a talker is "the simplest possible Virtual World"), and then a way to make any kind of communication in a censorship-resistant secure and anonymous fashion, why not combine both things and create a secure, censorship-resistant and anonymous virtual world and way to chat?

Let's think, first, on the concepts that needed to be implemented.

avatars



Each gnunet-chat is able to have any number of avatars (meaning a "virtual persona"), although I'll talk (for simplification purposes) in only one avatar per node. Each avatar (also to be called user or node) has properties such as a name (mandatory), a description (optional), a keyring (optional) and a location (optional). All of this are self-explanatory, but let me empathize some things: the description should be in ASCII. Also, the keyring is to be taken as in the original sense of the word: a set of keys to several places. If a room is locked, the avatar can only walk in if he has the key needed to do so. Finally, the location is mandatory if you are online, and needed to know where to spawn him when the user is connecting to the gnunet-chat world. If there's no "location" set, he must spawn in a never-private are, the "by default" room of gnunet-chat.

rooms



Each room also has a set of properties: a name (mandatory), a description (optional), a owner (optional), a gate (mandatory), and a list of links (optional). The name is to be how the room is referred to: something like "Jungle", "island", "castle"... The description is optional and is to be something like an ASCII banner. That way you can have a room called "island" with a description like
You open your eyes and find yourself on a deserted island. The sky is blue
and the water is clear. Suddenly, you hear voices and laughter far away.
Excited, you follow the sounds to a calm beach. Hiding behind the bushes,
you see... MERMAIDS! A couple of them spot you and signal you to come near
them. "Hi! Follow us to a magical world!" a little mermaid says. The
mermaids dive into the ocean. You don't hesitate and dive in after them...

or a room called "Jungle" with a description like
            WELCOME TO THE JUNGLE!
                    ("\''/").___..--''"`-._
                    `o_ o  )   `-.  (     ).`-.__.`)
                    (_Y_.)'  ._   )  `._ `. ``-..-'
                  _..`--'_..-_/  /--'_.' .'
                 (il).-''  ((i).'  ((!.-'
-----------------------------------------------------------

Of course that if a room has no description, then no description will be shown.
The original creator of a room will be automatically it's owner, The owner can offer that room to another avatar (and the room changes ownership), or to revoke ownership (and the room belongs to the virtual world and no avatar will have it). Being the owner of a room is important since only the room owner can lock the gate (which has two states: locked or unlocked). If one room is unlocked anyone can come in, but if it is locked only the key owners can enter.
Finally, each room can have a list of links (if a room hasn't one then it will have the same behavior as if it has an empty list). Each link represents a pointer to another room, showing a "virtual physics connection". Once again, only room owners can create or remove room links.

Rough scheme of implementation



While the user interface will let the user refer to a room by its name, the gnunet-chat node will talk to the network not by it's name but by it's public key.

If a node X wants to go to an open established room, it broadcasts a request to all chat-enabled GNUnet nodes. Other nodes ("Y") that are in that room will update their info, seeing that avatar as present in the room, and reply to him with an advertisement.

If a node X wants to go to a closed established room, it broadcasts a request to all chat-enabled GNUnet nodes. Other nodes ("Y") that have the key for this channel answer and request an AES sessionkey S for encryption of chat messages. The joining node X must not reveal the room key to the answering node Y, because this node might be someone pretending to be a member of Y trying to get the channel key. Instead, the joining node generates the random sessionkey S, encrypts it using the room key and sends the result to the answering node Y. Y decrypts the session key and uses the sessionkey to encrypt a channel advertisement. If either X or Y don't have a valid key for the room, the decrypted advertisement is invalid.

An advertisement consists of the room description, and a list of avatars (public keys of the members of the room).

Nodes achieve anonymity by acting as relays for other nodes. Since all relays decrypt new messages, they have to be signed by the author to guard against forgery. To detect censorship, members of a channel regularly post user statistics ("user A: 10 msgs, user B: 23 msgs") that every nodes compares with local statistics.

Further work



I hope this article will lead the interest parties into an healthy discussion of this model. Furthermore, and before the actual implementation of such a thing, this concept (specially the scheme of implementation) have to be enhanced to describe all possible commands (actions) an avatar has, and what are the reactions for it (and how they're achieved).

If you want to comment on this, please feel free to do it here on my blog or by e-mail. I intend to post a copy of this on GNUnet's community so you'll be able to see some reactions there too (or so I hope).