Posts Tagged ‘software’

To type IAST (English letters with diacritics, for Sanskrit transliteration) on Mac OS X, perhaps the easiest way, rather than to use transliteration tools, is to get a keyboard layout that does it. Just to be clear, this is the alphabet we want:

This keyboard layout is just like the usual (US English) layout ordinarily, but when you hold down the Alt (Option) key and press a, you get ā, similarly Option+s gives ś, Option+n gives ñ and Option+g gives ṅ, etc. The full mapping is available along with other documentation in the download above.

This is very convenient. One issue with the layout is that also overrides a lot of keys for no apparent reason (Ctrl-A / Ctrl-E etc. stopped working for me), so I got Ukelele from SIL, and wrote my own keyboard layout. I’ve called it EasyIAST, and it is available here for now. I plan to add a README etc. and distribute it in some proper way later; for now you can use the instructions from EasyUnicode above. If you find it useful and/or make any improvements, please let me know as well.

If some time is available, it would be good to make a Devanagari keyboard layout along the same lines.

I plan to revisit this post and clean it up (as always?), but here are some interesting quotes:

After a year of distrusting the company somewhat, I began to gain an appreciation of how Microsoft worked, and to see it for what it was – a machine that was focused on building products that people wanted, as quickly and as well as they could. Note the “quickly” – this was what distinguished MS from Apple in the end – a focus on moving quickly, and beating the competition. Details like great design were simply not critical to most (business) customers, so that sort of thing didn’t really make it into most products, except where it mattered to the target customer. It’s hard to fault this logic really – it is pure efficiency from a business perspective…

This is illustrative of the Microsoft outlook on doing business: great design is a “detail”; the main goal is to beat the competition and gain market share.

Both Microsoft and Apple have very smart people as employees. The goal at Microsoft is to grab as much share as possible, even at the cost of shoddily designed software if necessary. The goal at Apple is to design software that is simple yet powerful, and a pleasure to use. And both have been phenomenally successful at what they want to do.

The Microsoft approach is to get a release out of the door, see what the main reasons people have for not using it (not necessarily what people most complain about), throw patches (or wizards!) to get those issues across the level of acceptability, add new things, move on, keep moving — the appropriate scenario is not software design, it is war: it is all Fire And Motion.

So, that in a nutshell is the Microsoft method. Understand the market, and the customers, and then go pedal to the metal, with release after release focused on what the customers need, incorporating their feedback. That puts the competition into reaction mode. And of course it helps if they also make a strategic error because they are under so much pressure.

And how successful they have been. Even creating markets where there none.

“I think there is a world market for maybe five computers”— Misattributed to Thomas J Watson, IBM president, 1943.

No one can disagree that Microsoft has had a bigger role in bringing computers to the masses than anyone else. Perhaps it would have been better if they hadn’t.

Searching for pages related to a particular something. This is the most common, and intended, use of Google.

Searching for all occurrences of a particular phrase, or more generally a pattern. This might be to compare numbers and compile statistics, or to find what context the phrase is most often used in, or find what are the most common phrases using that pattern.

For example, I just thought of the “My dad can beat up your dad” phrase, and searched Google for “my * can beat up your *”. (Click on link, and see results for yourselves.)

Someone should already have developed a tool/library for using Google (or any other search tool) for doing this, right? Why haven’t I found it yet? Maybe I should contact the “X is the new Y” people… Tell me if you’ve found such a tool.

Good software does what you want. Preferably without your having to tell it to. And it matches your mental model of what you expect things to work like.

We have come a long way since the days personal computers were severely constrained in their resources, but some traditions have not changed. The humanized weblog looks at the save icon, but I want to point out that the “saving” “feature” is itself an anachronism. There is no analogue of the concept of “saving” a file in the real world; when you write on a sheet of paper the change is permanent. Why, then, does most software require you to explicitly “save” something if you want to leave it permanent? The answer, I guess, is that a long time ago, a “save” was an expensive action (I remember seeing “Saving…” progress bars), so you wanted users to be in control of when it happened, so as to not annoy them.

Today, personal computers have enough resources that in many applications (such as text editing), there is really no reason for software to insist that you remember to “save”, so as to not lose your work. Still, programs continue behaving this way, partly out of tradition, and partly because no one gives a thought to usability.

Fortunately, the rise of applications on the web brought with it an “everything old is new again” phenomenon and programmers began to take a fresh (and naive) look at everything, which, while often causing them to stupidly repeat the mistakes of desktop programs from decades ago and generally be inconsistent, has also allowed them to throw away meaningless traditions in situations where they don’t matter.

I believe it was Gmail which started this, and now Gmail, Blogger, WordPress, Google Docs, and any number of online text editing applications now “automatically save” your work for you every few seconds, and this idea is finally (slowly) taking hold in desktop applications as well.

First: Why not use Adium? Adium is a Free multi-protocol IM client for Mac OS X that uses libpurple, the IM library that was developed as part of Pidgin. It has several popular features such as message styles, and uses the Cocoa API native to Mac OS X, and all round looks pretty. Being a native Cocoa application, it is more well-integrated with the Mac desktop than a GTK-using application like Pidgin can ever be.

On the other hand, if you, like me, have tried Adium and have reasons for finding it unusable, then it is possible to install Pidgin on OS X too. There are two ways of doing this:[Edit: Note that this post is from 2007. Probably a lot has changed since then.]

Install Pidgin to run inside X11. Any default distribution of Pidgin should build fine on this, as long as you have all the dependencies installed. However, using an X11 app on OS X is really like entering another universe entirely… it’s like having two entirely disjoint OSes that just happen to run simultaneously. It is cumbersome, and I would not recommend it unless you are already doing much of your work inside X11 for some reason.

IMAP folders are Gmail labels. Gmail labels show up as folders in your client, and moving a message to a folder in your client simply adds that label in Gmail.

In particular, be careful creating folders, and avoid making a mess. Try reusing the default Gmail labels: Set your client’s drafts folder to “[Gmail]/Drafts”.

Messages with multiple labels appear in each of those folders. So there is some duplication at the client end, of course, but this is unavoidable; the price you pay for forcing a tagging philosophy on software that has different beliefs.

Conversely, if you want to apply multiple labels to a message through your client, you can use the “poor man’s tagging” that has always been possible — copy the message to each of those folders.

If you delete a message from a “folder” (other than “[Gmail]/Trash” and “[Gmail]/Spam”), Gmail only removes that label. It is still present in “All Mail”. To actually delete, move to “[Gmail]/Trash”. What happens if you delete email from “All mail”?

Recommended IMAP client settings: Don’t save sent messages on the server; any mail sent through gmail’s smtp is automatically copied to “[Gmail]/Sent Mail” folder.

IMAP and POP work with messages, so if you move only one message from a thread to a folder, only that one will get that label, but the Gmail web interface will show the entire conversation with that label. Note that this is only a display thing — it’s not that opening Gmail will give all the messages the label, and when you reopen your client suddenly things are different. (I need to actually check this.)

Plugins for Pidgin (the IM client formerly known as Gaim) that update the status message to show the currently playing track, somehow getting it from your music player. Found so far, in what I think is the descending order of something no particular order:[Note: Before you install any of these, you should be aware that most of them have been known to crash Pidgin rather frequently, and ask yourself whether it is worth it. Your friends really don’t care what you’re listening to. Really.]

D-Bus script by Pidgin developer: works with Rhythmbox and Quod Libet. Will almost certainly not cause a crash. If you are on a Unix system and using one of these two music players, just run “python [name of script]” while Pidgin is running. If you’re on Windows… it’s not so easy. (And you’re probably using different music players anyway.)

MusicTracker is a plugin for Pidgin (previously known as Gaim) which displays the music track currently playing in the status message of various accounts such as AIM, Yahoo, MSN, Gtalk (Jabber), etc., i.e. any protocol Pidgin supports custom statuses on. Support for a wide range of audio players on both Windows and Linux platforms is planned. Currently supported players: Amarok, Rhythmbox, Audacious, XMMS, MPC/MPD, Exaile, Banshee, Quod Libet on Linux. Winamp, Windows Media Player (9+), iTunes, Foobar2000 (incomplete support) on Windows.

Is apparently the best option, but also a very frequent cause of crashes.

Has been known to crash Pidgin. I’ve heard it has a feature where you can type “/currentrack” in a conversation window to send your current track, which is pretty cool. Not very useful if it crashes Pidgin though, is it?

This plugin will replace %now-playing in your status message with metadata from the currently playing song in a MPRIS compatible media player (currently including BMPx 0.4, VLC SVN trunk, Audacious 1.4.0 devel), if any.

It appears that MPRIS is an informal standard for music players to support a common interface. In an ideal world, all music players would support this standard, and in the real world, this may or may not happen. Amarok is also probably supported already.

AutoProfile is an extension to Gaim that allows users to create customized away messages and profiles using dynamic “components” that automatically update on a regular basis. Generated text can include song names from XMMS/Winamp/iTunes, fortune quotes, computer uptime, the contents of a Web page or a text file, the output of a program, and timestamps.

Is for Gaim 2.0.0beta3, not updated for Pidgin as of 2007-11-11 (last updated 2006-04-05, so don’t hold your breath).

The Pidgin-Rhythmbox plugin will automatically update your Pidgin user info and status message with the currently playing music in Rhythmbox. If the artist and title are known, it will also attempt to create a link to the song’s lyrics by using Google’s “I’m Feeling Lucky” feature. Pidgin-Rhythmbox will replace %rb in your user info and status message with the song information.

Is for Rhythmbox only.

Write your own script. You can set status from the command line with purple-remote "setstatus?status=whatever&message=whatever". For example, purple-remote "setstatus?status=available&message=" will clear the status message. You can also use D-Bus. There is a very good introduction to D-Bus here, and Ars Technica has some examples of using Pidgin’s D-Bus interface. This is essentially what many of the above plugins do (those that don’t crash your Pidgin). Assuming that you have a way of getting the song (or whatever string you want in your status message) somehow (through D-Bus, maybe) in a script, this is certainly the most flexible option, as you can do exactly what you want with the status message (append to it v/s replace it, add the current time, artist but not title, whatever). You can also look at D-Bus Howto for Pidgin (who wrote that? :), but the harder part is getting the current song from your music player.

Note: While MusicTracker seems to be the plugin that the maximum number of people have been successful in using, it appears that it sometimes crashes Pidgin as well (especially on non-ASCII characters in the title/artist). Evidently, no plugin is perfect (except one that you write yourself :P) and you should take a moment to consider whether you really need a plugin of this sort. I know it seems cool and several IM clients provide a feature like this, but is it really necessary? Do your friends really care what music you’re listening to?