Miranda IM : braindead design

December 12th, 2006

I was on a quest to find a Windows jabber client That Doesn't Suck, which is a surprisingly tall order. Along the way, I came across Miranda, which looked promising at first. The project's goal, apparently, is to develop a small and easy client. The website makes a good impression, in fact it turns out to be a lot more fetching than the client itself, which isn't beautiful. But enough about looks. I was testing for a certain subset of features, and the first impression was good. Multi protocol client, low memory footprint, small windows, and it seemed to have all the essentials - file transfers, avatars.. hm no emoticons? Turns out Miranda is so small that emoticons are treated as a plugin. I download the add-on, a .dll (not the first thing that comes to mind when you say user friendly) and dump it in the right place. Yes, emoticon themes are supported. I'm interested in that, because I maintain one.

Now, it's bad enough that every client has a different way of dealing with emoticon themes. And these approaches do not vary in what functionality they provide, all of them do the exact same thing. Making an emoticon theme is no more complicated than this:

angel.png *angel* *A*
biggrin.png *biggrin* *g*
blind.png *blind*

The above is from gaim. It's simply a picture, and a list of replacement strings which activate it. There's nothing more to a theme declaration than this. For the purpose of my emoticon theme, I wrote a few simple scripts which generate these files (which are all similar). Thusly, I wanted to find out how to generate a theme file for Miranda.

I was in for quite a surprise. The declaration itself is very much the same, of course:

; defines-----------------------------------------------------------------

Smiley = ".\OGSmileys.dll", -127, "*biggrin* *g*"
Smiley = ".\OGSmileys.dll", -122, "*blind*"
Smiley = ".\OGSmileys.dll", -111, "(B) (b)"

But what of the smilies themselves? They're in a .dll file! That's right, in Miranda's Smaller, Faster, Easier spirit, they have stored the images in a .dll. This simply means that the same bits are aggregated in a library, there's nothing more happening there, they're not being compressed or processed in any way, just plain stored.

Need I mention that emoticon themes are supposed to be easy to create? It's not supposed to take a coder to do it, it's a feature for users to enjoy, to tinker with, without needing any help.

So for someone who wants to make themselves an emoticon theme for Miranda, they need a compiler! Yes, nothing easier than tossing a few images into a directory and setting up a definition (like the one for gaim), that any schmuck can figure out, no you have to compile the bloody thing. Screw that all the other clients are doing it this way, we don't give a shit, compile it or piss off. Needless to say, for me to find and set up a compiler just for this would be a humongous hassle and no sooner did I discover this interesting little quirk did I dump Miranda altogether.

The Miranda people are so in love with .dll's, that connecting to Google Talk (which is also an add-on), you need to download another .dll. Then you need to install an openssl library as a whole separate install. Yes, ssl also an add-on, who would possibly need that?

UPDATE: Apparently there are other ways to do this.

UPDATE2: Factual errors were discovered after this entry was written, as such I posted the link above, to the Miranda forum, where the clarification was established. However, not unreasonably so, the Miranda people have urged me to clarify the situation right here as well, so as not to misrepresent their client.

Emoticons in Miranda were historically stored in .dll's. That explains why the theme that comes with the plugin is as such. However, that is not the only way to store them, and the emoticon definition example included in the plugin (which I failed to notice), explains the different options, including just using pngs.

It was never my intention to misrepresent Miranda, and while my observation about .dll's was not incorrect, it was incomplete.

:: random entries in this category ::

8 Responses to "Miranda IM : braindead design"

  1. tante says:

    Maybe they have "does not suck" as a plugin, too?
    Or someone rewrote the emoticon plugin so it works in a normal way?

  2. erik says:

    Good lord is that legal?

  3. Miranda IM is multi-protocols. If all you need is Jabber and if you have no MSN Messenger contacts, you can forget Miranda IM. But if 90% of your friends are using MSN Messenger, Miranda IM is the best choice (compromise)... even with the .dll's !

  4. numerodix says:

    Oh, I know that. And I didn't say that it's completely useless, it's a decent client. But I was looking for something to recommend to people who aren't geeks and thus it's not good enough if you have to download .dlls and stuff like that. It has to be more user friendly.

  5. Monkey says:

    There is no requirement that emoticons are stored in a DLL.
    They can just as easily be saved as individual images,

    Would have been smart of you to have checked your facts before making such an ill informed post, that is simply wrong.

  6. Store the emoticons in a DLL or save 'em as individual images, that's not the problem ! The fact is that Miranda IM is a little bit complicated to configurate for a 'simple' user (I am talking about my mom for example). I love Miranda IM because I love computers, but for the general public it is not so easy.

  7. @numerodix: then download trillian.

  8. yumiko says:

    Miranda IM is an open-source client. I use it every day and have found it the easiest multi-client chat program that I have ever used (and i've tried it all, including trillian, gaim (now called pidgin). I've liked none of them) -- very small, very fast, and extremely customizable. It takes (depending on how many plugins that are loaded at the time), very little memory. It isn't the most user-friendly program, but i'm a geek, so. ;)

    Trillian I suppose would be more user friendly .. but for me, I like to customize everything about well, everything, so maybe that's why I like miranda.

    Once you get the hang of it, it's very easy to change the look and the way it functions.