Archive for April 2007
The Yahoo! Messenger protocol has “conferences” / “group chats” / “synchronous realtime multiuser text transfer” / “multiplayer notepad” / whatever you call it. Google Talk doesn’t (yet?). This is one of the things that (some) people sorely miss in Google Talk. So people who primarily use their Google accounts for IM are forced to use alternative protocols, such as YMSG or Skype, if they want to group chat…
In a “sudden flash of inspiration”, I realised how easy it would be to create a bot that would make it work even on one-to-one-only services like Google Talk. It could work like this:
- Suppose Alice Bob Carol and Dave want to have a conference.
- They each have the bot (“Trent”, say) on their buddy list (“contacts”).
- The bot is given the list of the four users
- Each person sends his/her messages to the bot (buddy Trent).
- The bot sends all messages from user X to all other users, prefixing X: to the messages.
Would work well, AFAICS.
Note that the way the above is constructed, all that the above bot is good for is for exactly Alice Bob Carol Dave to chat… (of course, we could reset this and give the bot new instructions). Having one account for every conference doesn’t seem a feasible idea :-)
Actually, it could easily support multiple conferences as long as they have disjoint sets of members — it would forward the messages of user X only to other users in the conference X is in.
We can also get around the disjointness restriction by making users who are in multiple conferences somehow specify which one they want the current message sent to, in each message…
Another annoyance is what names are displayed… what name the bot shows you a message as coming from might well be different from the alias you have for that person :)
There could be insane security problems, so not considering “rolling it out”, but maybe I can code up something for three-four of my friends (and I) to use…
Update: A few seconds of searching (and the many minutes of debugging/installing!) can save a few hours (or days?) of coding. And to think I was actually trying to write a Jabber client in Python :)
Here it is: Google Talk: Conference Bot.
Sigh. All the good ideas have already been thought of.
Adam was the only man who, when he said a good thing, knew that nobody had said it before him.
said Mark Twain.
Am having some problems installing it, though.
Things that needed fixing:
Update: Nvm, ignore this list below. Just remember to give not firstname.lastname@example.org, but just username, the first time it asks.
* Manually change confbot.ini so that the server is talk.google.com, not gmail.com
* Get the newer jabber.py libraries (and put them in this directory, because for some reason they won’t install)
* Try changing the port from 5223 to 5222 or something. Actually, no: get rid of the extra options in the second line
* Change debug=False to debug=
* In the confbot.py file from SVN, change the “13” to “4”
This page also seems to be important.
Come to think of it, considering that a bot for Google has already been written, what I should write is a sort-of cross-protocol bot… use libpurple and write it in C? :-)
Because I have been obsessed with Poe’s The Raven in general, and especially over the last couple of days:
- The original poem, and as it appeared in the American Review
- Poe, E.: Near a Raven, a π (pi) mnemonic by Mike Keith. Constrained writing is impressive!
- Raven Two, another poem by Mike Keith that is an anagram of the original poem.
- An incredibly impressive achievement in constrained writing: Georges Perec wrote a 300-page novel in French (La Disparition) that did not use the letter ‘e’, and Gilbert Adair actually translated it into English (as “A Void”) while still satisfying the constraint! From the book, the poem Black Bird, by Arthur Gordon Pym.
‘Twas upon a midnight tristful I sat poring, wan and wistful
It is unbelievable how much of the original meter this one preserves.
- The End of Raven, by Poe’s cat.
- Poe on its composition. Spoils it, so I stopped reading.
- Wikipedia articles on The Raven and on The Raven in popular culture. One of the many things that Wikipedia is very good at…
- The “Abort, Retry, Ignore” poem. There seem to be multiple versions of this with slight variations, but it’s here, here, here.
- Quoth the server: 404. Also on bash.org
- Similar one here.
- On xkcd.
- On The Simpsons. From the very first Treehouse of Horror episode (in the second season), with a guest voice by James Earl Jones as narrator. He also has a reading.
- Amazon review by “Edgar”, a heroic addition to the Tuscan milk phenomenon. The most apt adaptation of the poem I’ve seen yet.
- James Earl Jones. Ah, Darth Vader! He nearly ignores the meaning and sticks to a recitation, which is good — and his unsurpassed voice brings out the assonance and alliteration wonderfully.
- Christopher Walken (with “video” being Poe or poem or illustrations): a great reading, with eerie sound effects and an annoying guitar occasionally
- Vincent Prince doing his thing, with enactment(!)
Here are a few tests:
The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.
This is a long pre line:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/sw/lib/pkgconfig jhbuild run ./configure --prefix=$HOME/.local --without-x --disable-gestures --enable-gtkstatusicon --disable-consoleui
and this is a short one:
The Unlikeliest Cult in History, Michael Shermer
Guardians of Ayn Rand, Eliezer Yudkowsky
Mozart Was a Red: A Morality Play In One Act, Murray N. Rothbard [Video, although reading the play is better.]
The complement of Atlas Shrugged, Scott Aaronson
The Routerhead: a fable, Scott Aaronson
How Ayn Rand Became an American Icon: The perverse allure of a damaged woman, by Johann Hari
Also, if you wish, Romancing the Stone-Cold Killer: Ayn Rand and William Hickman, Michael Prescott
11011110: Continued gender bias in science and lots of links from it…
From what I can see, the two main contenders are tkinter (ships with the default distribution) and wxPython. The former is easier to learn, has a more “consistent” look, (which basically means it looks terrible everywhere?) and is more suited for quick-and-dirty tasks, etc…
WxPython seems to be the future, has more features, is harder to learn, is more typical of GUItookits, is more actively developed, trickier to install (for users), …
There is a chooser here.
Update[2007-11-10]: What was was I thinking when I wrote this post? There’s pyGTK and pyQT; why not use one of them? I don’t even know now. Anyway, an old article about toolkits.
[2007-11-20]: Also noticed I had another (private) post that was a link to:
learning python » Blog Archive » Creating a GUI using Python, WxWidgets, and wxPython
Random intro-to-python link I’m putting here: Python in a few minutes