Recently in moodgeist Category

A new pinger for Windows

| | Comments (0)

After a long silence, we finally have a new Pinger for Windows. Still not fully optimal, but looks like it works mostly fine. Download and see more info. A major improvement is that this one works also for non-Administrator accounts in Windows. (Admin must still install it, but everyone can then run it.)

We still don’t have a Pinger for Mac or Linux :( contributions would be welcome. (I got a Mac and it would be fun to write one, but time, time, other matters keep pressing…)

Download and run the Pinger

| | Comments (0)

Moodgeist Pinger, the software that pings us the moods from your Skype contacts to moodgeist.com, is now available for download. Before downloading and running the Pinger, make sure you read and understand the following paragraph.

Moodgeist Pinger captures mood messages from yourself as well as the Skype Contacts who have authorized you (who you have exchanged contact cards with). It sends the mood messages to moodgeist.com. The server captures the mood messages of only those Skype Names who have SkypeWeb enabled. If a Skype Name has SkypeWeb enabled and its mood message is sent to moodgeist.com, the site re-publishes the mood anonymously to the world. Before running the Pinger, please review the moods of your contacts briefly to make sure they do not contain any private details. If you feel there may be any privacy concerns from yourself or your contacts, please do not run the Pinger.

What does the Pinger do? How does it work?

The Pinger goes through your Skype contacts. For each contact, it sends the contact’s mood message to moodgeist.com. moodgeist.com checks if that Skype Name has SkypeWeb enabled. If yes, the mood message is anonymously published on moodgeist.com. “Anonymously” means that we do not publish the Skype Names with mood messages. If the Skype Name did not have SkypeWeb enabled, the mood message is discarded and not published.

Ok this is all cool, give it to me.

Download Moodgeist Pinger for Win32, version 20060412. Requires .NET framework.

Thanks to Kevin and KhaosLabs for contributing the pinger to Moodgeist.

Update July 4, 2006: there is now a newer Pinger available.

What do the Pinger options do?

“Enable Pinging” turns the Pinger on or off.

“Ping Frequency” — this is the interval of how often the Pinger goes through the whole of your contact list and pings over everyone’s mood. If it hasn’t changed, the server detects a duplicate and discards it.

“Run Moodgeist Pinger when Windows starts” — as it says.

Known issues

There are some bugs in this Pinger. Such as:

  • does not run under nonprivileged Windows user accounts
  • sometimes says “Object reference not set to an instance of an object” — such as when there is no Internet connection
  • sometimes returns “Attempted to write to protected memory”
  • … probably some more.

Can I read more about what’s with the privacy model?

Yes. Please see these posts: Moodgeist privacy vs data publication/reuse concerns and Privacy update — we now use SkypeWeb for opt-in.

Hey I found a bug?

Please drop a comment here.

Your Pinger sucks. I could easily do a better one.

Please do then. We do not have a Mac pinger at this time, for example — contributions would be welcome :-)

To write the pinger, you have to write a small Skype API client (for any platform) that implements the Moodgeist ping protocol.

As published previously, Moodgeist publishes the mood messages of all your contacts to the world. We haven’t got too many bad reactions to that, but we realize that this may be undesirable in some situations, no matter how nicely we word it.

It’s always safer to go for opt in. So I walked down the street today going hmm… how can we have an opt-in for Moodgeist? If we only allow people to ping their own mood, this will never fly. And Skype at this time doesn’t provide many controls for developers to enable easily developing such tools… more on this below.

When suddently it dawned to me. We already have an opt-in which we can “leverage” (ahhhh I love inserting random corpspeak!) here. It’s off by default. And people who are interested in broadcasting themselves to the world turn it on.

It’s called SkypeWeb.

So we made an update. As of this moment, we capture moods of only those Skype Names who have SkypeWeb enabled.

Noise keyword filter

| | Comments (0)

Drop in just five new lines of code and you got a noise keyword filter. Some keywords are “noise”, not adding any significant value being there. So now we have a filter that removes common English words such as “that”, “this”, “with” from the list, giving more focus to the actual “content” that people put there. And we can add and remove keywords with a few mouseclicks with no need to hardcode anything anywhere. I like automatic admin backend generation :)

UPDATE Feb 2007: Someone asked what’s the noise keyword list. There’s no online list, but at this time, the noise keywords are: “than”, “that”, “from”, “this”, “with”.

Filtering "too similar" moods

| | Comments (0)

We now filter “too similar” moods. If you ping over a mood that is slightly different from the previous few ones to this user, but still “too similar”, you will get a “200 Too Similar” response (also updated the pinger protocol post to reflect that) and it won’t be captured. This is to make the database more interesting and representative and less biased towards overloading it with only slight changes.

What is Moodgeist?

Moodgeist is an experiment to show what’s currently happening in the “Skype Land” and what’s the Skype community’s collective state of mind.

How can I use Moodgeist?

You can use Moodgeist in two ways.

  • if you just want to browse the data, then you can do so right on moodgeist.com front page, or use the API if you need some other feeds.
  • it would be great if you also pinged Moodgeist with data for your own contacts. This helps us all to get a more complete “big picture”. For this, please install the Pinger program and just leave it running — there’s nothing more you need to do. You will then see data from your own contacts showing up in the “collective state of mind”.

How does Moodgeist work?

Moodgeist consists of two parts.

  • “pinger” is the program that sits in the computers of the users who have chosen to install it, and “pings” over the data from their Skype contact lists to the Moodgeist server. Read more about the pinger and Ping protocol.
  • “server” is moodgeist.com — it collects and stores the pinged data and publishes it for everyone to see and use.

Are there any privacy or security concerns around Moodgeist?

The “mood messages” concept is quite new and part of Moodgeist’s objective is to test out how people feel about this kind of thing. See this discussion for more.

What does “moodgeist” mean?

Moodgeist is a derivative of the “zeitgeist” theme. (Thanks to Teller for the name suggestion.) We call it “moodgeist” because it’s based on Skype’s “mood messages” feature.

Who built Moodgeist?

Moodgeist is an off-hours community initiative by some people working at Skype and some other people interested in Skype. See this for more.

I have some comments or questions. How can I contact you guys?

It’s great you have feedback. Please post them on your blog and trackback to us, or post your comments in this blog. If you want to write us e-mail, you can do so by writing webmaster ‘at’ moodgeist.com.

The Moodgeist URL-s and feeds

| | Comments (0)

Here are the feeds and URL-s you can use with Moodgeist to retrieve the data. Some people would also call it the “Moodgeist API”, but API is a bit of a fancy word for a few simple URL-s, so we just call them URL-s and feeds.

Quick start

First off, if you’re a nerd and want to get going quickly then here are the feeds in regexp format, straight from the config. Split on multiple lines for layout — each expression actually spans two lines.

'^/do/view/latest/((?P<count>(10|50|100))/)?
((?P<language>[a-zA-Z][a-zA-Z0-9-]+)/)?$'
'^/do/view/latestcompact/((?P<count>(10|50|100))/)?
((?P<language>[a-zA-Z][a-zA-Z0-9-]+)/)?$'
'^/do/view/latestfeed/((?P<count>(10|50|100))/)?
((?P<language>[a-zA-Z][a-zA-Z0-9-]+)/)?$'
'^/do/view/keywords/((?P<count>(10|50|100))/)?
((?P<language>[a-zA-Z][a-zA-Z0-9-]+)/)?$'
'^/do/view/keywordscompact/((?P<count>(10|50|100))/)?
((?P<language>[a-zA-Z][a-zA-Z0-9-]+)/)?$', 
'^/do/view/keyword/((?P<count>(10|50|100))/)?
((?P<language>[a-zA-Z][a-zA-Z0-9-]+)/)?(?P<keyword>.+)/$'
'^/do/view/keywordfeed/((?P<count>(10|50|100))/)?
((?P<language>[a-zA-Z][a-zA-Z0-9-]+)/)?(?P<keyword>.+)/$'

Ehrm… WHAT? Ok, here’s the English version.

There’s a bit of controversy in how Moogeist treats users’ mood messages. In short, it can be summarized as follows.

In Skype’s contact and authorization model, mood messages are displayed only to the contacts who you have “authorized” (or, in recent version, “exchanged contact details with”). Moodgeist circumvents this by displaying mood messages to the wide world, including people who you haven’t authorized.

Now… at first sight, this may seem like a pretty unsmart thing to do and actively violate the mandated privacy model. But we decided to go ahead with Moodgeist in its current format for the following main reasons. (UPDATE March 29: in addition to what’s said below, we now use SkypeWeb for opt in.)

The Moodgeist pinger protocol

| | Comments (0)

The moodgeist pinger protocol is how Moodgeist collects its mood messages. We provide a reference Python client (see below), but you are more than welcome to contribute a pinger of your own, or embed MoodGeist into any of your Skype add-ons. There’s also an alpha Win32 GUI client — if you want it, ask Jaanus or Kevin.

Essentially, the ping is a simple HTTP POST request to the following URL: http://www.moodgeist.com/do/ping/. The POST must have these parameters. All parameters must be present.

parameter nameexample valuemaximum lengthcan be empty?comment
protocol11noThe Moodgeist protocol version. Currently, only “1” is defined.
skypenameecho12332noSkype Name whose mood message you are pinging over. Note that 32 is also the maximum allowed length of a Skype Name in Skype.
mood_textI am very happy256noThe pinged mood message
posterecho12332noSkype Name who is running the pinger and pinging over the mood message.
skypename_languagefr7yesLanguage set in skypename’s profile. May be blank.

All parameters except mood_text should be plain ASCII. mood_text supports international characters — it the POST, it must be a simple URL-encoded UTF-8 bytestream. UTF-8 also happens to be the encoding that the Skype API returns messages in, so you can just “pass them through” from the API to the POST (after proper URL-encoding, of course).

The ping URL returns a simple string with the numeric code and text explanation. The numeric code is also the HTTP response code.

  • 200 OK. The server successfully received the ping and stored the mood message.
  • 200 Duplicate. The server successfully received the ping, but this mood message was already recently captured for this Skype Name. It is possible to ping the same mood message twice if there were different moods set and pinged inbetween them, but recent duplicates are filtered out.
  • 200 Too Similar. Ping received OK and the mood is slightly different from previously known, but still too similar to be considered.
  • 200 SkypeWeb not enabled. That Skype Name has not opted in to SkypeWeb. Mood not saved. Read more on this update.
  • 400 Invalid Protocol. Protocol number was invalid or unknown.
  • 400 Parameters Missing. Some of the required parameters were missing.
  • 400 Parameters Invalid. Some parameters had invalid contents (like Skype Name being too long).
  • 400 Parameters Empty. Some of the required parameters had empty contents.
  • 403 Forbidden. For various reasons, access to the ping node may have been denied to this pinger.
  • 500 Server Error. There was a server-side error (like the database being down or crowded for a second).

Reference client

There’s a reference (example) Python client available: moodgeist-reference-pinger.py.txt. To run it, you also need the Skype Python API wrapper, although I patched a bit for my purposes: around line 170, disable all the self._send commands so that it wouldn’t send any “startup” commands on its own. Here’s my patched version — just drop it to Python’s “site-packages” folder.

The reference client illustrates how it should work — first you ping over everyone’s current mood from your contact list, and then you sit around processing ongoing mood change events.

You can leave the reference client running also for daily use if you’re of the hacker type, but for daily use, it’s not very practical, so we welcome friendlier versions of the Pinger, and also non-Win32 ones. The API connection sometimes dies for no apparent reason and it won’t inform you, so it’s not very resilient — if you notice the API connection was lost, just re-run it.

Moodgeist Pinger is the program that sits in your computer, collects your Skype contacts’ mood messages and sends them over to the Moodgeist server. For each “ping”, the following data are sent:

  • contact Skype Name
  • contact mood message
  • contact profile language (so that we could provide feeds of messages in different languages)
  • your own Skype Name (so that we can count how many people post to us)

At this time, we do not have a Pinger available that you could easily install and use. We have an alpha one for Windows that can act up a bit but mostly works. If you want it, the right thing to do at this time is just ask Jaanus or Kevin for it. We are thinking of getting one any time soon now — contributions would be welcome. Especially for non-Windows platforms like Mac OS X. If you make one, then please tell us so we could link to it and perhaps also host it here.

To write your own Pinger, see the Moodgeist Pinger protocol.

About this Archive

This page is a archive of recent entries in the moodgeist category.

l10n is the previous category.

moodmessage is the next category.

Find recent content on the main index or look in the archives to find all content.

moodgeist: Monthly Archives

Powered by Movable Type 4.01