Cooking with Linux

Warp-Speed Blogging

Marcel Gagné

Issue #175, November 2008

Telling everyone you know about the many fascinating things in your life may sound like a daunting task for even the most dedicated blogger, requiring many hours at the computer and thousands of words. One way to speed things up is limiting your messages to 140 characters or less. Impossible? Not at all. Welcome to microblogging.

What are you doing, François? You have been sitting there working on that message for almost an hour. Surely your cousin doesn't need to know every detail regarding our wine cellar—after all, you told me you wanted to let him know about yesterday's wine, not all of them. Quoi? This is a different cousin? And, you had to let your parents know, and your aunts, uncles and friends? François, I know you have a large family and an extensive list of friends, but this is insane. If you need to keep everyone in the loop, there are better ways. You need a system that lets you contact everyone you know at once, keeping them up to date with short, pointed posts.

Mais oui, of course, you can do that with e-mail, but your messages do tend to go on, just as your blog posts do, mon ami—not that you aren't exceptionally witty and entertaining, François. To help you be succinct, I have just the thing, and you'll learn all about it shortly. I can see our friends approaching the restaurant even now. You'll have to finish that e-mail later.

Ah, welcome, mes amis, to Chez Marcel, where fine wine meets the best in free and open-source software. While François shows you to your tables, allow me to tempt your taste buds with the very thought of tonight's special wine selection. My faithful waiter and I were submitting this exceptional 2007 Terres Blanches Muscat Sec to quality control earlier today, and we both can confirm that it is truly wonderful. Now, François, please head to the cellar and bring back enough for everyone, so that we may all give in to temptation. Vite, mon ami!

While we wait for François to return, let me introduce you to the items on today's menu. I have three packages to show you, all of them examples of microblogging servers (and services). Microblogging (MB) is an interesting mix of blogging and instant messaging. Posts are generally updates sent either publicly or to a list of people who “follow” your published updates. The updates are limited to 140 characters, the traditional length of SMS phone text messages. The 140-character limit forces you to be brief, but it also makes it possible to follow the updates of a great many people. It doesn't take long to write 140 characters, and it doesn't take long to read either.

The best known MB service on the Internet is probably Twitter, followed distantly by Jaiku. Although those two may be the best known, they aren't necessarily the best in terms of functionality or features. Today, I show you three MB services built entirely on free software. In all cases, I assume you have a working Apache server and MySQL installation. Depending on where you want to locate each service, you may need to update your Apache configuration as well.

Excellent, François! Good to have you back. Please, pour the wine for our guests. This Muscat is fantastic, mes amis, crisp and medium-bodied with a sweet/spicy nose and some lovely citrus flavors hitting the palate. Enjoy.

The first MB service I have to show you is arguably the one that has received the most attention of late. Launched in July 2008 by Evan Prodromou, Identi.ca is an MB service built on the free and open-source Laconica software. Laconica supports a Twitter-like API, can be updated via SMS or Jabber/XMPP, and it allows you to register and log in using OpenID.

Figure 1. Laconica is an exciting entry into the world of microblogging software, and it looks to correct Twitter's limitations with an open design.

To keep things moving along, and because I want to show you more than one MB alternative, I'm going to redirect you to my own cookingwithlinux.com Web site for details of the server-side installation of these packages, including Laconica. Here's the full path to the installation instructions: www.cookingwithlinux.com/free_microblogging.html.

After installing Laconica, point your browser to your new Laconica server and register your first account by clicking the Register link. You'll be transported to a page where you can fill in your nickname, password and other information (Figure 2).

Figure 2. Registration is the same for all users. There is no Web-based administration.

Once you have registered your new account, a message will be sent to your e-mail address. Once you receive this message, you'll find a link that will return you to your Laconica site and provide confirmation (Figure 3). This is done to make sure the person who signed up for the account is a real user and not a spambot.

Figure 3. Once you respond to the confirmation link you received in the e-mail message, you are ready to start microblogging.

You don't actually need to enter any additional information, but you'll probably want to make some customizations before you start. This is all done under Settings, which you can find in a link on the top right of the page. Enter your full name, a Web site address if you have one, and a personal bio telling the world about yourself and your interests. Remember to keep it to 140 characters. Click Save, then click the Home link at the top of the page. This is your main page for entering updates. There are three tabs here. Under Personal, you will see updates from all the people to whom you are subscribed, including your own. Replies are posts directed to you specifically—the convention is to add an @ sign in front of a person's nickname, followed by your message. At the end of each post, there is a little arrow you can click for the same results.

Finally, there's the Profile tab. This serves a couple functions. One is to show the world the information you have included in your settings. The second provides a list of the people whose posts you subscribe to, an archive of your previous updates, some statistics regarding how long you have been active, what your last post was and how many updates you have committed (Figure 4).

Figure 4. You are ready to start sending updates. As you enter your message in the What's up? field, the form keeps track of how many characters you have left.

To change your avatar, make sure you have a small image to upload (a representative avatar or a picture of yourself). Then, click on Settings at the top of the page. A number of tabs will be displayed labeled Profile, Email, OpenID and so on. The one you want is labeled Avatar. Once there (Figure 5), you can click the browser button to locate an image on your personal system. Keep it relatively small, then click the Upload button.

Figure 5. To upload a picture or avatar, enter its path or navigate to its location using the file manager button.

From here on, and including any earlier posts you may have made, your avatar will be displayed along with your posts (Figure 6). Speaking of posts, remember that unless you specify otherwise in the Settings, your posts are public and can be read by anyone, regardless of whether they “follow” you or not.

Figure 6. Now, all your updates are prefixed with your new avatar. Wait a minute. Isn't that François?

The growth of Laconica and Identi.ca has been nothing short of impressive. The code is being actively and enthusiastically developed by Evan and his legion of followers, which means you can expect great things from Laconica in the near future.

The next two packages aren't particularly well known, but each is as impressive as Laconica in its own way. Both are, however, much simpler to set up. Let's start with Jisko (Figure 7).

Jisko seems like just another MB service, but it does have some interesting differences. For starters, you can attach files to your updates. Jisko doesn't tie you to its Web page; you can send and receive updates via Jabber/XMPP. Jisko also gives a nod to the giant gorilla (or perhaps I should say whale) of microblogging services, namely Twitter. I'll show you how that works shortly. Last but not least, Jisko also has a cute little mascot named Jiski.

Figure 7. Part of the beauty behind Jisko is that you can follow and update Twitter automatically if you have an account there.

Assuming you've taken care of the Apache server configuration side of things, all that's left to do is point your browser at your Jisko installation. This could be a simple URL like this one: http://yoursite.dom/jisko.

Your first order of business is to register an account. There are no admin accounts per se, so enter whatever nickname you want to use, along with your e-mail address and a password (Figure 8). Click Register to finish the process.

Figure 8. Registering an account with Jisko takes only a few seconds.

As with Laconica, a confirmation e-mail message will be sent along with a link for you to acknowledge. I found the text of this message to be somewhat amusing, so I thought I'd share it with you: “Someone (probably you) has requested an account on Jisko.” Who else could it be? I guess it's pretty rare that somebody would create an account for you and not tell you the details. After acknowledging the e-mail, you can log in and start posting updates. Find and invite friends to join, and start updating each other on every little thing of interest that happens. It doesn't take long to fill 140 characters.

Odds are, you will want to make some changes. Click Settings at the top and upload a custom avatar or small image of yourself. Update your profile to include a few things about yourself. Change the visual theme and add a background image. You even can enter your Twitter user name and password. Once done, Jisko shows your Twitter updates and updates Twitter when you post to it. You'll update two different microblogging services and save time. Did you catch that last part, François?

Before we continue, I'd like to give you some incentive to explore the Jisko code and perhaps make your own little changes. Let me tempt you with something simple. Jisko has a cool little logo that rotates to show different colors with each page load. As you might have guessed, this, and the fact that this is completely free and open software, opens itself up for some personal customization. As I did with the restaurant, you can create your own logo, or just put it in rotation with the existing ones (Figure 9). The images are in a subdirectory called img. Logos are in a further subdirectory called logos.

Figure 9. Why not customize Jisko with your own company or organization's logo?

Once you have created your image, you need to tell Jisko about it, which simply means another entry in the config.php file. Look for the following:

$globals['logo'] = array('logo_green.png', 
 ↪'logo_blue.png', 'logo_orange.png');

The last package I want to look at is Sweetter (Figure 10). I hesitate to call it just another MB system, because it does differ in some interesting ways. Unlike the others, it does not require an Apache server, nor does it require MySQL (although you can use it if you like). Sweetter can run independently, from a personal account, on a port of your choosing, such as 8080 (the default). If you aren't expecting a huge load on your MB service and you are keeping it between friends or coworkers, you may find that the built-in SQLite database is all you need.

Figure 10. Sweetter supports plugins that allow it to update both Twitter and Jaiku.

Sweetter also supports plugins that allow you to post updates not only to Sweetter, but to Twitter and Jaiku as well. This feature isn't always on, however. If you want your posts to hit multiple services, click the Show plugins link directly below the update box on the main page. Authentication fields for Twitter and Jaiku will appear. Make sure you click the check box beside each service you use before clicking Send.

Here's another Sweetter-unique feature. Aside from your usual MB posts, Sweetter also is a kind of on-line to-do list. Be careful how you post though. Sweetter may complain that you are using it like an instant-messaging service, and it doesn't like that.

There's something about Sweetter that says it's more for fun than serious microblogging (if such a thing is possible). That would be the system of voting on other users' posts. Each time you post an update, others can vote that post up or down. You can see a plus and minus sign below each one. Once a vote has been cast, it goes toward your Karma, in both a positive and negative sense. Higher Karma is, of course, what you want. Aside from being popular with the voters, your output also is taken into account. More updates mean more Karma.

Figure 11. Each Sweetter update is subject to a vote by other readers. The number of posts you make and the votes you receive all go toward your Karma.

All three of these services are worthy of your attention, and all of them have something to offer that makes them unique. What you wind up using will depend on what you find most useful.

With closing time nearly upon us, we still have plenty of time to chat with, and otherwise update, our many friends and family on this superb wine. After all, you can send a great many people a number of updates in the time we have left. That's the beauty behind staying within that 140-character limit—short and sweet. When it comes to wine, however, I'm sure no one wants to make it short and sweet. Wine is meant to be savored, like friendship. And, when you savor a glass of wine with friends, it's twice as wonderful. François, please make sure our friends' glasses are all refilled before we say, Au revoir. Please, mes amis, raise your glasses and let us all drink to one another's health. A votre santé! Bon appétit!

Marcel Gagné is an award-winning writer living in Waterloo, Ontario. He is the author of the Moving to Linux series of books from Addison-Wesley. Marcel is also a pilot, a past Top-40 disc jockey, writes science fiction and fantasy, and folds a mean Origami T-Rex. He can be reached via e-mail at marcel@marcelgagne.com. You can discover lots of other things (including great Wine links) from his Web sites at www.marcelgagne.com and www.cookingwithlinux.com.