Thursday, 30 August 2012

Project on Hold but not Forgotten!

Unfortunately and fortunately, my summer has come to an end and the greater hours of my day must be dedicated to my graduate research. While I do not want to put the project on hold, I have little choice. Even dedicating only one hour a day will spill out into three or four and I cannot afford to do that–just when it was getting good! I ultimately decided, for now, to use a local webserver in order to generate dynamic webpages containing PNGs of the local conversation and so far my tests have been very successful.

For now, I plan to spend as little time in front of a computer as possible for the next several months.

I salute you, then, in peace, Internet.

Saturday, 18 August 2012


So what do my "fruitless efforts" look like as of late? If you are new to my project, snoop around the blog or have a look at my most recent entry which will give you more than enough information. Also, I refer to fruitlessness here as a sort of self-inflicted reverse psychology for ironic motivational purposes. As if I were capable of such a thing. Wooh.

Uh, anyway. If you're using Windows, head on over to Mermaid Elizabeth's download page and start using Microsoft Chat. Note the help page as well if you're using a newer version of Windows.

If you're on Linux and remember using Microsoft Chat back in the day, consider following my project or even lending me a creative hand! Good luck.

Progress Report: "Comic Chat" Shell for Linux

Some amount of progress has been made since my previous post, although there is still quite a way to go.

Remember the internet in the 1990s? If not, you probably don't remember Comic Chat.

My original efforts, as you may recall, were to run Microsoft Chat, that is Comic Chat, on a GNU/Linux operating system. During the initial, conventional WINE troubleshooting, it dawned upon me that Comic Chat is nearly 20 years old. A century in the world of technology. My effort then, one of technological nostalgia, transformed into a more creative endeavor: to duplicate Microsoft Comic Chat on my own system and improve it when necessary.

As I am not a developer, and in judging my word please acknowledge this disclaimer, my options are limited. I cannot aim to provide an IRC client for Linux users that replicates Comic Chat. I can, however, work on top of other clients and build local bash scripts that work on top of those clients in order to suit my own needs. When I began this project two months ago, I had the important decision to make of choosing a client. I am increasingly confident that Weechat was the right choice. FlashTux's support of the really handy FIFO pipe has made my own limitations a potential strength, allowing practically unlimited possibilities of shell-to-IRC-client interaction. Weechat is fast, powerful, flexible, and featureful; the only limitations I have encountered have been met with either solutions or workarounds thanks to a little hacker creativity and the continuous support of FlashTux, the developer, on his website forums.

If I do manage to bring this project to a completely workable state before half the applications used in the scripts change or break, I will begin to look at moving slowly out of bash and into probably python-based Weechat plugins. For now, I am running off the built in features of weechat, a few hacked Weechat plugins from the web, and a few hundred lines of bash scripts that communicate with Weechat.

The drawing of image bubbles needs a good deal of work. The patchy one-line bubble pictured above is about as good as it gets; longer messages run off the screen. Only outgoing messages are being drawn, incoming messages are still text only at the moment.

The memorable randomly generated ("Networked Nerds," "You Shoulda Been There," etc.) title that filled the first pane in Microsoft Chat has been duplicated at the top of the user list; this list is generated by a bash script which reads the Weechat room log upon joining a room. The icons represent the actual icons corresponding to the characters that are associated with the given nicknames. User names are numbered, as scene below each icon, as are all the possible outgoing poses for the local user's own character file.

The outgoing message prompt, in the gray terminal on the left side of the screen toward the bottom, is automatically prefixed with the format "0t0." The number preceding the "t" represents the pose code, corresponding with the pose that will be sent to Comic Chat users. If it is left at "0," then one of the neutral poses will be selected, or the proper emotion/gesture will be interpreted based on the message the user sends out (for example "hello" will trigger a wave or a grin, etc.) The number following the "t" indicates who will be the recipient of the outgoing message, that is, who will be featured in the comic pane. Sending to multiple users or the whole room will be supported in the future, as will sending out "thoughts," "actions," or "whispers," instead of normal speech bubble messages.

All graphics are, for the moment, generated on the fly by Image Magick and local, saved "comic art." They are then displayed with feh which is basically fine for displaying the nicks list, for example, but very unpleasant and inappropriate for pages of comic panes generated in a busy IRC channel. I simply have not encountered the resources necessary to do this "appropriately" (as though any of this is appropriate, I should not be doing this project as I am not a developer and bash is not a programming language) and am open to suggestions. Ultimately, I would like to find a *nix image viewer, or some other sort of already existing program, that can dynamically update the image displayed whenever it is modified, perhaps displaying four comic panes at a time.

In the mean time, there is a lot of work to do behind the scenes. Microsoft Chat does not handle away messages according to IRC standards, but generates a "coffee cup" icon to indicate away statuses based on CTCP messages under the format "PRIVMSG #Channel :\01AWAY Gone fishing.\01". Scripts have to be provided that send the away message not only when going away, but every time a new member joins. It should also be remembered in between "sessions" in case there is a crash, etc. Woodsman figured out how to automate this in a mIRC script he released back in 2000, but as far as I know it has not been done in a native *nix client until now. Ultimately, my work here should and hopefully eventually will be remade into a native plugin for Weechat, rather than an outside bash script piped in.