Whisper

WhisperTransport v1.2 Released

by on Jan.26, 2010, under Uncategorized

Another release… I thought it would be neat to add the ability to whitelist/blacklist connections by avatar name, not just by IP address. You can grab it from here.

On a side note, I’ll probably release the Java client this weekend. While I’m not happy with the spaghetti-code of the GUI (and some parts of the UI are pretty ugly, such as the avatar profile display and group notices), there comes a point where you just have to realise that the program works as intended and it’s ready to be used.

Leave a Comment more...

WhisperTransport v1.1 Released

by on Jan.25, 2010, under Uncategorized

Again, it’s not a client release… and I apologise that this is taking so long, but since I’m now back at work, I have very little time to work on personal project. The good news is that I am still working on this (though I don’t know if anyone is actually bothered) and good progress is being made. This new transport release stops the transport from resolving profile picks when a profile is requested (which can be an expensive task if there are a lot of profile picks to resolve). As usual, it can be downloaded from here in preparation for the client release.

Leave a Comment more...

WhisperTransport v1.0 Released

by on Jan.16, 2010, under Uncategorized

Well, I promised a release soon… this might not be what everyone had in mind, but it’s worth getting this part out of the way now. This is the piece of software you’ll need in order to use the client (the transport).  As mentioned in the architecture post, it sits between Second Life and the client and translates messages so that the client can communicate with Second Life (and vice versa). I’m releasing this now as I’m happy with the functionality and stability of the software.

It’s released under GPLv3, which means all the source code is available to you in case you fancy developing your own clients for it! I’ve even included documentation on the request/response formats, I’ve provided a quick little HOWTO regarding encryption and the provided an overview of the architecture. If this still isn’t enough, I’ve even provided a very simple client (written in C#) that lets you connect to the transport and send raw XML requests to it!

I decided to go with SourceForge to host the project as they’ve served me very well in the past when working on Gentoox. You can take a look at the project here and grab the compiled release from here. For eager developers, you can obtain the source code from here.

Please do read the enclosed documentation (named README.txt) as it may answer any questions that you may have. If after reading this you still find yourself puzzled, then feel free to get in touch with me at whisper@shallax.com!

P.S.
I don’t have any firm release date for the client as of yet! It is coming along nicely, though… I’m starting to use it as my main SL client now and I’m working out the bits that annoy me about it and adding some of the “I wish it did this” functionalities.

Leave a Comment more...

So where are you going with this…?

by on Jan.15, 2010, under Uncategorized

Well, I like to share my creations and I’d like to share this with you, if you’re interested! As noted in my previous post, I’d first like to make sure that it’s at least stable and usable and the way I’ll achieve that is by putting it to the test in day-to-day use.

I mentioned that the architecture allowed for creating clients on many platforms, right? Well, I’d like to release this project as open-source. I wouldn’t feel right keeping it closed-source anyway as most of the hard work has been done by the LibOpenMetaVerse guys. So in the near future I’ll be looking at hosting the project at somewhere like SourceForge. I’m undecided as to whether I’ll make the Java client open-source (mostly because I’m a bit ashamed of the GUI code, but I just don’t have time to clean it up!)

So, watch this space for updates… I’ll be releasing it soon! For now, here’s a screenshot to whet your appetites:

Whisper

The client

Oh, and if you are interested in this project, please let me know in the comments… also, spread the word!

Leave a Comment more...

The Current State of Affairs

by on Jan.15, 2010, under Uncategorized

As of now, the transport component is finished (or as feature-complete as I want it to be). It supports the following key features (among others) in no particular order:

Public chat, instant messaging, group chat, image retrieval, profile retrieval, teleportation (all types), autopilot, group join/leave, friendship management, avatar searching, group searching, nearby avatar tracking, event searching, event info retrieval… and much more.

The transport can also be configured to throttle traffic for each client, ban clients (by IP), whitelist clients (by IP). You can even configure it to disallow image transfers and nearby avatar tracking to save on bandwidth  (as these can result in quite a large amount of traffic).

The transport was written and completed in about 6 days

By the time the transport was completed, I was fast running out of holiday! My initial thought was to make the first client an iPhone piece of software. However, knowing how little time I’d have to invest in the project after returning to work, I decided to stick with something a little easier and more useful. My first client implementation would be in Java! Since I use both PCs and Macs, this suits me quite well.

I’ll be the first to admit that I am definitely not a graphical user interface designer. I find it much more interesting to solve a problem via software than to spend time making sure buttons look pretty! However, I’d have to bite the bullet for this project as this is something I would find useful.

The client, so far, has taken 9 days to complete. It’s as feature complete as I care for it to be at the moment. It supports everything that the transport supports except for event searching and event information retrieval and only displays a limited subset of the information returned from a profile request. However, some notable features that it supports are as follows (again, not in any particular order and not at all exhaustive):

Chat, IM, group chat (obviously),
Displaying a map of the Sim that you are in with nearby avatars plotted,
Second Life and First Life image retrieval when looking up profiles,
Nearby avatar gender display,
Nearby avatar proximity display,
Decent URL highlighting (this really bugs me in software!),
Type in the text window and it’ll automatically focus the text input (another pet peeve of mine),
The ability to toggle images and nearby avatar tracking (sometimes you might not be in an area where displaying images is appropriate),
Save login details (with/without passwords)…

I’m happy with the functionality of the client. However, as you can imagine, to achieve this in 9 days, I really had to cut corners with the neatness of the underlying code. While it’s not entirely horrible, it’s not very clean! At the moment, I’m going to test the client out for a while to make sure it’s stable before progressing.

Leave a Comment more...

Architecture

by on Jan.15, 2010, under Uncategorized

So how do I go about writing my own Second Life client. It seems like quite a daunting task! After all, the Second Life protocol is huge…

A bit of searching had me stumble upon LibOpenMetaVerse. These clever guys have reverse engineered the protocol and wrapped it up in a nice little library. Great! Wait… it’s C#! Well, that just won’t do for me as I’m a Mac user. However, C# code can run under UNIX via the use of Mono.

This lead me to form a plan of writing the client in two components: A transport and a front-end. The great thing about this architecture is that anyone can then use the transport to write their own client for any platform and not have to worry about implementing the nitty-gritty bits of the Second Life protocol! I’m not going to fool myself into thinking that I can write the best Second Life client in the world, but if I can provide a way to make it more accessible for others to write clients, then maybe someone else can write a better one than me.

To make things as easy as possible, I decided that communication between the transport and the client should be done via the use of very simple XML transactions. Anything coming from Second Life is termed a “Response” message. Anything coming from the client is termed a “Request” message.

The transport can communicate using unencrypted or encrypted network streams and it doesn’t require you to send an un-hashed password from the client in order to log-in to Second Life (it supports MD5 hashed passwords). This means you can be sure that if you’re connecting to an WhisperTransport, you won’t need to compromise the security of your password! Best of all, using encryption means that no one will be able to decrypt your Second Life session.

With this architecture in mind, it would be easy to implement the transport.

Leave a Comment more...

What’s all this then?

by on Jan.15, 2010, under Uncategorized

So… On 01/01/2010, two weeks into my Christmas vacation from work (I’m a software engineer, by the way), I got bored. As a software engineer, whenever I feel bored I get an itch to write a piece of software – selfishness usually leads me to pick something that I’d find useful.

I’ve recently been dabbling with Second Life and using it as a glorified chat-room. However, sometimes, when I simply want to chat with someone, it’s very annoying having to launch a heavy-weight client and waste CPU cycles with useless 3D rendering. I searched the internet for third-party clients and there aren’t many. The two that are easiest to find are probably SLiteChat and GnomiVerse. Let’s take a look at these two…

SLiteChat is exactly what I want! However, after using it for a while, I’ve found it to be buggy and unreliable. The UI has some issues (where the window size keeps expanding each time a new conversation is started and can’t be shrunk after the conversation is over)… it has some issues communicating with Second Life (sometimes reports friends being online when they’re not) and has crashed more than a few times on me. It’s also cross platform, which is a bonus.

GnomiVerse – I didn’t even enter my username and password into this. Who knows what they’ll do with it? It appears to be one of those “all-in-one” clients, but requires you to have an account to use it. Does that mean they store your details? How securely? Do they route all of your traffic through their servers? I don’t care to find out.

My search for the perfect client had come to an end. As I was looking for a little project, I decided that I’d write my own… so that’s what this page is. It will hold details about how to obtain the client and run it (when it’s ready!)

*Update*
There’s a good list of thirdparty clients here and “Radegast” certainly looks to be better than any client I’ve tried. However, it’s written in .NET so requires a heavyweight Mono process to be run. It’s also far too heavy-weight in terms of features that I’d want to support.

I just want to be clear that I’m not bad-mouthing any of the solutions out there, there’s just not a solution that suits me!

Leave a Comment more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...

    Archives

    All entries, chronologically...