Aug 15 2007

Mingle: Supercharged Index Cards

Thoughtworks describes its recently released Mingle products as a “new Agile project management application”. That’s “Agile” with a capital “A”, which is immediately apparent when you tour the product and see index cards arranged on the web page.

I would describe Mingle as “index cards on steroids”. Or maybe “index cards with superpowers”. This will delight the Agile faithful and quite possibly scare anyone who has never managed a serious project by sticking index cards to the wall. The data can be displayed in tables and summarized in charts, and you can create wiki pages with some effort, but the card metaphor is central and inescapable.


Each project has its own set of attributes for cards. You can define transitions that are basically shortcuts for making frequently used changes to card properties. For example, the “Development Complete” transition might change the status value to “Ready for Testing”, and the transition might apply only to cards with a status of “Ready for Development”. This gives you the primitives to codify your team’s workflow.


The display is built with tabs, each of which holds a page with a different view of the cards. The cards can be viewed on a grid, sorted into different lanes by some attribute. Dragging a card into another lane changes the attribute, which is nice for activities like release planning. Or, the data can be displayed in a table with configurable columns. A tab can also hold a wiki page, which is probably most interesting when using the chart widgets to show summaries and charts of card data taken from database queries. This is nice for things like burndown charts.


If you have a project with card attributes, transitions, and views that are useful, you can create a template for creating new projects. Mingle has interesting potential for use outside of project management. For example, I’m pretty sure you could build some kind of strategy board game with the right grid view and transitions. Ok, that’s not the greatest example, but my point is that Mingle is really a generic system for collaboratively updating data.


It seems to me that the card metaphor would become unwieldy when applied to large data sets, though that could be mitigated with a clever set of views. Certainly more scalable than physical index cards.

Links to cards can be made on wiki pages or card descriptions, but not from card attributes. This makes it a hassle to trace from task cards back to their corresponding story cards, unless the number of cards is small.

Mingle has an Excel import feature, but you need to need to paste into a text field from the clipboard. This reinforces my suspicion that Mingle is not for large data sets. Also, any newlines are lost in the import.

The wiki has no WYSIWYG editor, which will put some people off. At least in the initial release, it looks like wiki pages are only there to hold some charts maybe the team roster.


Mingle is built with Ruby on Rails, and deployed into a Jetty servlet container with JRuby. That’s cool. Response time is somewhat slow, even when running locally. Hopefully this can be improved in future versions of JRuby, because I’d like to see more integration between Rails applications and Java.


If your team can run with the index card metaphor, but you’re not in a position to use physical index cards, take a look at Mingle. If you’re looking for a more comprehensive or traditional project management application that works in an agile context, you might be better off looking at Rally Software or some other tool.

In any case, I hope that Mingle’s simplicity and slick user interface inspire other vendors to keep innovating in this space.

May 17 2007

Configuring Pidgin for Google Apps

Google’s instructions for configuring Pidgin with Google Talk have a broken link to instructions for using Google Apps with a corporate domain.

So here’s how I configured Pidgin to work with a corporate Google Apps account:

1. Select “Add/Edit” from the Accounts menu, then press the “Add” button.

2. Fill in fields on the basic tab.

  • Protocol: XMPP
  • Screen name: johndoe
  • Server:
  • Resource: Home
  • Password: ********
  • Local alias: John

3. Fill in fields on the advanced tab.

  • [x] Force old (port 5223) SSL
  • [ ] Allow plaintext over unencrypted streams
  • Connect port: 5223
  • Connect server:
  • Proxy type: Use GNOME Proxy Settings

4. Press “Save”. Don’t “Register”, because your username should already be assigned.

May 17 2007

Pidgin on Ubuntu 6.10 (Edgy Eft)

Pidgin 2.0 (formerly known as Gaim) has been out for a couple weeks now, and I wanted to try it out. I haven’t upgraded to the latest Ubuntu yet, so the normal convenient installation procedures do not apply. There’s probably an apt repository or deb file somewhere, but I couldn’t find it. So it was time to compile from source. This was made a little more complicated because I wanted to use Pidgin with Google Talk (aka GTalk), which requires SSL support.

Here are the steps that I took to build and install Pidgin on Ubuntu 6.10 (aka Edgy Eft). Maybe it will save time for somebody else in a similar situation.

Disclaimers: Your mileage may vary, since I might have some prerequisites already installed that you do not. There might be an easier way to do this, and I stopped optimizing as soon as I got something that worked for me.

1. Get the source bundle from the Pidgin download site

2. Extract the contents

tar jxf pidgin-2.0.0.tar.bz2cd pidgin-2.0.0

3. Install some prerequisites

sudo apt-get install \
     libglib1.2-dev \
     libglib2.0-dev \

sudo apt-get install \
     libnspr-dev \
     libnspr4 \
     libnspr4-0d \
     libnss3 \
     libnss3-0d \
     libnss-db \
     libnss-dev \
     libssl0.9.8 \
     libssl-dev \
     openssl \

(Thanks to the Ubuntu forums for tips on the SSL library packages)

4. Configure the build

Override defaults pointing to older versions of GLib and GTK, then generate the makefiles and other build configuration.

export GLIB_LFLAGS=-lglib-2.0 \
export GLIB_CFLAGS="-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include" \
export GTK_LFLAGS="-lgtk-x11-2.0 -lcairo -latk-1.0" \
export GTK_CFLAGS="-I/usr/include/gtk-2.0 \
                   -I/usr/lib/gtk-2.0/include \
                   -I/usr/include/cairo \
                   -I/usr/include/atk-1.0" \
export pango_LIBS=-lpango-1.0 \
export pango_CFLAGS=-I/usr/include/pango-1.0 \

Add a “–prefix=DIR” option to the configure command if you prefer to specify a custom installation directory.

5. Build the software


If that doesn’t work, redirect the output of “make” to a file and search for the string “errors:” to see what went wrong:

make > OUTPUT 2>&1

6. Install the software

sudo make install

If you ran the configure script with a custom prefix option pointing to a directory that you can write to without root privileges, then you can run “make install” without the “sudo”.

7. Done

So that’s it. If you are upgrading from Gaim 1.5, all of your configuration will be copied from the .gaim directory to .purple in your home directory. Your log files will also be moved, but a symbolic link will point from the .gaim/logs directory to the .purple/logs directory.

More about the name change from Gaim to Pidgin:

Pidgin project leader Sean Egan describes the new name in an interview with Ars Technica:

“We like the name,” Egan told me. “It was the second choice we all really liked. We were thinking up linguistic terms, and someone mentioned Pidgin. Another developer commented that ‘corrupted language’ may not be the best thing to associate yourself with, to which another pointed out something along the lines of ‘have you ever SEEN people talk on IM?’”

“We all felt that was a pretty valid point, so the name stuck,” continued Egan. “It’s a corrupted language, much like that used by IM users, it’s caused by people talking different languages (or protocols) with each other, and it sounds like a bird known for carrying messages across long distances.”

Also, AOL agreed to stop threatening the project with legal action if they changed the name.