Planet IM

January 07, 2009

FelipeC


Thanks to Nicolas Deschildre, the Pidgin brainstorm is now back to life. He provided the infraestructure and ideatorrent setup. There’s some work needed to have a fancier theme, but for now it should work.

The next step is to spread the word so as many Pidgin users as possible hear about this, since it’s not officially supported by Pidgin developers (won’t be on the Pidgin site), although they are OK with it in “unofficial” form.

I strongly believe an active brainstorm would be very useful for the Pidgin community. We can for example link trac tickets to brainstorm ideas, in order to make them more visible so they are not forgotten to oblivion. Or we could suggest a pack of ideas for a Google SoC student. This could open the doors to many things.

So let’s organize and spread the word! Digg it, slashdot it, or whatever ;)

http://pidgin.ideatorrent.org/

      

January 06, 2009

Tigase Tip: Checking the runtime environment

It has happened recently that we have tried very hard to fix a few annoying problems on one of the Tigase installations. Whatever we did, however the problems still existed after uploading a new version and the server restart. It worked fine in our development environment and it just didn't on the target system.

It turned out that due to a specific environment settings on the target system an old version of the Tigase server was always started regardless updates we were uploading. When I finally started looking at the installation the first indication that something is wrong was lack of any log files in place where I expected them.

The best way to check all the environment settings used to start the Tigase server is to use..... check command line parameter:

./scripts/tigase.sh check etc/tigase.conf
Checking arguments to Tigase
TIGASE_HOME = .
TIGASE_JAR = ./jars/tigase-server.jar
TIGASE_PARAMS = etc/tigase.conf
TIGASE_CONFIG =  etc/tigase.xml
TIGASE_RUN = tigase.server.XMPPServer -c etc/tigase.xml --property-file etc/init.properties
TIGASE_PID = ./logs/tigase.pid
TIGASE_OPTIONS = --property-file etc/init.properties
JAVA_OPTIONS = -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 \
    -Djdbc.drivers=com.mysql.jdbc.Driver:org.postgresql.Driver \
    -server -Xms100M -Xmx200M -XX:PermSize=32m -XX:MaxPermSize=256m
JAVA =  /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/bin/java
JAVA_CMD = 
CLASSPATH = ./jars/tigase-server.jar:./libs/jdbc-mysql.jar:./libs/jdbc-postgresql.jar:\
    ./libs/tigase-extras.jar:./libs/tigase-muc.jar:./libs/tigase-pubsub.jar:\
    ./libs/tigase-utils.jar:./libs/tigase-xmltools.jar
TIGASE_CMD = /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/bin/java \
    -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 \
    -Djdbc.drivers=com.mysql.jdbc.Driver:org.postgresql.Driver \
    -server -Xms100M -Xmx200M -XX:PermSize=32m -XX:MaxPermSize=256m \
    -cp ./jars/tigase-server.jar:./libs/jdbc-mysql.jar:./libs/jdbc-postgresql.jar:\
    ./libs/tigase-extras.jar:./libs/tigase-muc.jar:./libs/tigase-pubsub.jar:\
    ./libs/tigase-utils.jar:./libs/tigase-xmltools.jar tigase.server.XMPPServer \
    -c etc/tigase.xml --property-file etc/init.properties
TIGASE_CONSOLE_LOG = ./logs/tigase-console.log

In our case TIGASE_HOME was set to a fixed location pointing to an old version of the server files. The quick check command may be a real time saver.

read more

January 05, 2009

Extensibility extended - scripting support

The Tigase server is very extensible through the well defined API. You can easily attach your code to any part of the server and load it at the startup time. It is quite simple to connect the Tigase to any database, add own components, plugins, packets filters, resource monitors and so on.

There are, however at least two disadvantages of this kind of extensibility. You have to write Java code and the code can not be reloaded at run-time. So basically you have to restart the server to apply your changes.

Installing Groovy script
Installing Groovy script

What about a code in a scripting language which could be reloaded/added/removed at runtime without affecting normal work of the server? Which scripting language? Ideally any, ideally your preferred language. How? Of course using ad-hoc commands.

This is possible now. You can create your scripts in almost any language and load the script at runtime to the server to do some work for you. The Tigase server supports scripting through JSR-223 API in Java6. Maybe it doesn't make sense to use some of the supported languages like AWK for example in the Tigase server. Nevertheless I have learned already that users' use cases go far beyond my expectations. Therefore there are virtually no restrictions on the language you choose. Just put all required JAR files in the Tigase libs/ directory and the language is available to you.

read more

Large set of ejabberd resources

Planet Erlang is fastly becoming a large index for Erlang projects resources, including ejabberd.

Since its relaunch, Planet Erlang is now indexing content from tens of Erlang related blogs. Thank to its search engine, you can now find many blog posts and articles on lots of different Erlang topic. ejabberd is one of the most covered topic there.

You should have a look and try searching for ejabberd in the search engine (search field on the right).

The list of resources is growing every day as we are adding even more older resources.

Your comments and feature requests are welcome !

January 04, 2009

FelipeC


Recently Casey Ho emerged from the Pidgin community doing many interesting things trying to gather feedback from the users, but what really got me interested was the new brainstorm based on Ubuntu’s brainstorm.

In a very short time it received hundreds of votes and very good feedback on Casey Ho’s blog. Apparently it was too convenient, and Pidgin devs didn’t like that.

Just like in a totalitarian rule, the brainstorm was quickly shut-down regardless of what users thought. Luke Schierer explained the reasons, which can be narrowed down to: developers whined about yet another place to receive feedback.

So, when users organize that doesn’t help to build a community, but a “clamoring mob of users”. Instead, feedback should be received in the usual way, which is slow, difficult and very restrictive; exactly how Pidgin devs like to work.

It looks like a rational response, except when you think about it for two seconds and ask yourself: what is the difference between a user and a dev? The official blessing of the Pidgin’s junta? X number of blessed patches?

The truth is that in functional open source communities, the line between devs and users is blurry; community members are both devs and users at the same time.

Let’s take an example:

About 4 years ago, voice and video was the most requested feature, but there was no way users could convince developers of that and it was clearly stated by the developers that voice and video would never be implemented, because Pidgin (at that time Gaim) was an instant messaging client, and just that.

However, some users did not accept that and started a friendly fork called gaim-vv which gained some support from the the core developers, but eventually was killed by some decisions by the main developer. Ubuntu Brainstorm made obvious that vv was the most requested feature by far, and eventually a proposal came to Google SoC, that’s how Maiku became a core developer.

It’s quite easy; users vote for features, some features are so relevant that some users decide to implement them, and if they like the development process they keep submitting patches until they are trusted and get commit access. Google SoC facilitates the process for some users.

But Pidgin devs are somehow unable to see that; what users want is irrelevant, only what devs want is relevant; therefore the brainstorm was a bad idea. And they still claim that user feedback is welcome.

I added a track trac ticket to add back the brainstorm section. You can vote there to fight back ;)

BTW. If they are so open to user feedback why all their blogs have comments closed except Casey Ho’s?

Update

The ticket was changed from “Add a brainstorm section” to “Make trac provide various features like Brainstorm”, carrying out the 2 votes it already had, which is like to change “I want a cheetah” to “I want a falcon with features like a cheetah”, no, I want a “brainstorm section”; don’t put words on my mouth.

In a brainstorm, subjects can’t be changed precisely because of this reason, so the first thing to change in trac would be that, which doesn’t really make sense.

      

January 03, 2009

Feedback

In the last few days, with very little discussion among developers, an implementation of brainstorm was setup on the pidgin.im site. I would like to emphasize that taking this site down is not because we are indifferent to user feedback, nor actively ignoring it. Here, particularly, nothing could be further from the truth.

Our concern is two part. Firstly, the brainstorm site is built on top of drupal, which requires significant resources on the part of the server. We are concerned that under the load we have seen in the past, our servers will be unable to run drupal, and its existence, rather than furthering communication between our users and our developers, will in fact impede it, by bringing our website down entirely.

Secondly, our concern is that, like the forums we used to have on SourceForge, the brainstorm site will become a backwater of sorts, where users submit feedback yes, but also a site where that feedback goes largely unheard.

The brainstorm site, to be useful, will require a very active developer presence. Partly because proposing and voting on features does no good if developers do not see the votes, but for more mundane and fundamental reasons as well.

Already, in the couple days the site is been up, we see some problems. Duplicates here, as in the Trac tickets, are quite common, and quite frequently going unnoticed by the average user. Over time, duplicates like this will mean that the same idea will either have its votes split across so many different items that it will appear, falsely, relatively unpopular, or will be voted up so many times by the same user (once on each instance), that when it is noticed and merged, it will, equally falsely, appear disproportionately popular.

A separate concern of my own is that users seeing the brainstorm site, with its high emphasis on voting, will fail to take head of the note that it does not and will not significantly affect the direction development takes.

Open source developers work best, work at all in many cases, when they are given free reign to work on projects and subprojects that interest them,. If I, or anyone else, tried to tell our developers that they must drop everything and work on the 5 most popular ideas, most of them would quickly find that their free time could be more enjoyably spent on other projects. In an ideal world the ideas that most interest developers would closely mirror the desires of the larger community, but when users fail to step up, develop a trust relationship with others, and join in the development process, reality deviates from the ideal. In such cases, things of great importance to the larger community will languish.

The idea behind this voting system, as I see it, is to answer the question “What can I do to help?”. When an idea is highly popular, but not yet being worked on, we as a community, if there is to be a community, and not just a clamoring mob of users, need to realize that help is needed to achieve that goal. A highly voted for idea should thus be seen as an open invitation for a patch, or more realistically, a series of patches, from someone who has never before worked with us, or who, having worked with us some in the past, is looking around for what to tackle next.

For this reason, along with my concerns about resources, I feel it to be very important that a voting system be integrated in with the normal development process. While this might somewhat increase the burden of submitting a new idea, most if not all of the ideas submitted so far reflect tickets already submitted in Trac. However, once an idea is submitted, having the voting integrated in with the development process will ensure that it is, in fact, feedback; that it is seen by those working with the Pidgin, Finch and libpurple code base.

No more brainstorming

As some of you have already noticed, the Brainstorm site was taken down not long after the launch (for those of you subscribed to the Pidgin feed, apologies for the redundancy).

This is not a post for debating why this happened. If you want to learn more, read the development mailing list and maybe even send an email.

In lieu of Brainstorm, you can now vote on individual issues on the development site.

I'm interested in knowing what you think you think of the alternative (since comments are disabled in the other posts). If it's better, great! If not, why?

If you did not see Brainstorm, here's an identical example.

January 02, 2009

Brainstorm and vote on ideas for Pidgin!

Today Pidgin is launching a new community for users. Brainstorm, the centerpiece of this site, features a voting system for discovering the most popular Pidgin-related ideas.

With this, the developers will hopefully get a good sense of what is important. Brainstorm will also track when submitted ideas are finally implemented.

The benefits aren't limited only to the developers. Plugin developers and patch writers will be able to get some inspiration too.

Many thanks to the guys who made Ubuntu Brainstorm, which forms the backbone of Pidgin Brainstorm. Also needing recognition: Vadim Peretokin and maxious, who suggested an ideas board on my blog post about building a better community. This was all put together in less than 72 hours (notwithstanding some New Year's celebrations).

Please comment on what you think about the new site, and how it compares to the old system.

So get on out there and start submitting ideas for your favorite chat client!

An introduction

I'm a product management junkie.  I've launched several startups of my own and consulted with many times more.  Making a real impact on users motivates me first and foremost.  One of the first pitches I ever made (when I was still a teenager, no less) was to Bill Gates.

I have the pleasure of working on two products with staggeringly large userbases right now- Google Book Search and Pidgin.  I am attempting to improve the relationship of Pidgin with its users, and will often blog about this.  
My roots also start in engineering.  I both design and build many of the things I work on.

The question I want to answer: What does it take to an idea from nothing to success, and to get others to buy in along the way?

I want this blog to reflect that.  It will have a heavy dosage of musing about product issues, with a sprinkling of entrepeneurship and engineering.

I don't intend on maintaining any sort of regular posting schedule, but I will certainly write whenever I have some stroke of inspiration.

This is a personal blog, and my writings do not reflect the opinions of my employers.

December 31, 2008

Help build a better Pidgin user community

2008 has been a slightly unusual year for the Pidgin chat client. Improvements were made, but the biggest news was caused by unhappy users. That's one of the reasons why I created a user survey to figure out what the big issues are.

If you're a Pidgin user, please fill the survey out! It should only take a couple of minutes and will be invaluable in figuring out how to improve Pidgin.

For some background, a change to the size of the chat input box led to the largest dispute. Time will tell whether the right decision was made; for now a bigger question looms- was there anything we could have done to handle this better?

Most of the discussion occured in a back and forth email flamewar. Frankly it's hard to gauge how big a problem is from a venue like this. To put it into perspective, Pidgin has so many users that an issue affecting 0.1% of the userbase means thousands of people are unhappy.

This post has comments enabled- do you have any suggestions for things we can do to improve the way users interact with one another and with developers? Surveying users is just one step along this path. I'm sure we can do more though, and we need things that can support the huge size of the Pidgin community.

If you're a Pidgin user or someone who has experience managing user requests, write down your ideas!

John Bailey: I love Windows. I really, really do. (Yeah, right)

Well, it's been eight days since we released Pidgin 2.5.3. In that 8 days, we've had more duplicate tickets than we care to count over the all-too-common hang on exit on Windows systems. In the faint hope that people actually read my ramblings, I'm posting this here to give a brief synopsis of the problem and to discourage further duplicate tickets.

On Windows sytems, Pidgin uses threads for a few things, namely DNS lookups and Network Location Awareness (NLA) stuff. For the Linux-inclined, NLA is somewhat similar to NetworkManager. When we released Pidgin 2.5.3, we started getting a bunch of reports about hangs on exit (including a number of people who don't know the difference between a hang and a crash, but that's another post in itself). All the debug logs pointed to wpurple_cleanup(), a function we call on close to tie up some loose ends, or "clean up." One of the areas this function cleans up is NLA-related stuff.

This code hasn't changed meaningfully in quite some time, but magically it became a problem for users of 2.5.3. It doesn't really make any sense to me why this would suddenly stop working in the current release, but the previous release seems to be almost entirely problem-free in this regard. Confusion aside, however, we have a proposed fix that will be reviewed and possibly tweaked.

So in summary, we know what the problem is and we are working to fix it. Please, please, please don't open anymore duplicate tickets about it!

December 30, 2008

OneTeam for iPhone 1.2.0

OneTeam for iPhone 1.2.0 is scheduled for submission on Apple Appstore.

OneTeam for iPhone is a Jabber / XMPP for iPhone that supports a large subset of the XMPP protocol. It is clean, easy to use and to not rely on third party server (it connects directly to your XMPP server).

I think we have reached a point in development where we are really happy with this client. It supports a really large number of XMPP server and authentication method. One of our biggest surprise has been with iChat server that require very unusual authentication methods. OneTeam for iPhone is probably one of the few XMPP clients that now supports it.

We have been quite far today in supporting XMPP features. For example we support gateways discovery and configuration directly from the phone (and gateway contact addition as well). The next big feature is probably be going to be groupchat support.

We are listening to your comments to help us improve this mobile XMPP client. Currently we think it is one of the most usable mobile client, but we are expecting to make it even better. Your feedback is welcome :)

More details on the product page OneTeam for iPhone.

Planet Erlang updated

PlanetErlang, the Erlang news and blog post aggregation site has been rewritten.

The new site should be easier to read. It includes a search engine, that allows users to search inside the history of Erlang posts among all the known blogs. The sitebar also contains latest Twitter post on Erlang.

Planet Erlang is available on the following address: http://www.planeterlang.org.

Enjoy !

December 26, 2008

Armed robbery in progress

Our Christmas this year was very nice, with lots of good presents, time spent with family, delicious food, and an opportunity to foil an armed robbery. Yes, an armed robbery. How do I continually get myself into these situations?

While heading back home from my stepdad’s parents’ house, I spotted a guy standing in a small field at a street corner near my parents’ house, holding what looked to be a gun. The guy was probably late teens/early adult, Caucasian, and dressed in all black. His actions looked instantly suspicious. He was pointing the gun to the ground and made some motion as if he was checking the ammo or something. He seemed pretty lost in his own world, apparently not even realizing he seemed very suspicious.

My Mom was driving, and decided to slowly drive away from home instead of toward it, and then turn around, giving us time to watch and see what was happening. We knew there was a gas station across the street and wanted to see if he was going to head in there. If so, there was a good chance we’d be witnessing a robbery.

Sure enough, he started walking across the street to the TowerMart, a gas station/convenience store. We parked the car and my Mom grabbed my phone and called 911 while my brothers and I carefully watched from behind a building, making sure we weren’t noticed. We saw the guy walking back and forth at the side of the building, looking very nervous. He was wearing long sleeves with his left hand exposed and his right hand (which was holding the gun) completely covered. As my Mom talked to the police, we continued to watch, and the guy eventually psyched himself into going into the store. He put the gun in his pocket and went in.

The store was pretty crowded, and we weren’t sure what to expect. Would people be running out screaming? Would people be locked in? Would we hear gun fire? Or would he just leave?

We never saw him actually leave, but we could only see the one side of the building. A couple minutes later, six police cars drove up, two right beside us. Two cop cars pulled up alongside us. One of them hopped out, grabbed a big ol’ semi-automatic, and approached the building, pointing the gun, ready to fire. Three other cops did the same, surrounding the building. A couple other cops went in and got people out of there, with another couple cops asking those people if they had seen anyone matching the description we gave, or saw other suspicious activity.

They spent some time going through the TowerMart and eventually came back out once they were sure he wasn’t hiding in there. It seems at some point, he had left the building. We weren’t able to see when. However, he was definitely in there. Practically everyone they talked to noticed him, as he was nervously walking in circles around the building, completely covered. He had either grown nervous with the number of people in there, or heard the sirens come. Either way, he got out of there before doing anything.

As most of the cops started to exit the building, the one who had pulled up closest to us walked up and asked what we saw. Then he said, “Oh, I talked to you before.” We all thought that was strange, since he hadn’t actually talked to us, but then he pointed out that he remembered us from the assault back in May. Good memory.

We walked with him to the field and pointed out roughly where we saw him standing. He found the footprints and was calling out the detectives to take pictures or whatever. We chit-chatted briefly before returning home. He told us we very well may have saved the store and a lot of people from experiencing a robbery on Christmas Day. I just hope the guy didn’t make another attempt elsewhere.

We found out that an hour or two later, the police were still all over that place. About an hour ago, they apparently had arrested someone not too far from here. Whether related or not, I don’t know. Given that they had video footage of the guy, testimonies and descriptions from a bunch of people in the store, and his footprints, it’s probably only a matter of time.

The rest of Christmas proceeded without police intervention. Merry Christmas!

December 25, 2008

Ubuntu and Desktop Notifications

This past Monday, Mark Shuttleworth wrote about their plans for an overhaul of desktop notifications (the little popup bubbles telling you someone IM’d you or there’s updates available). Many people have asked me about this, some concerned, and wanted to know what I thought. Being the maintainer of libnotify, notification-daemon and the Desktop Notifications specification, some people were concerned that this work would supersede my own.

The reality is, this isn’t a replacement of my project. This is a new joint effort between Ubuntu, KDE, and myself. What’s been written in Mark’s post may not end up being the end result. We’re still deciding how this will progress, and Ubuntu wants to experiment a bit. Aaron Seigo’s post on the subject sums up a lot of my thoughts on this, and I recommend reading it, though I’ll go further and discuss where this all started and how it’ll affect the project.

First of all, libnotify/notification-daemon isn’t going anywhere. It’s not being replaced, nor is an alternate spec being drafted. Ubuntu’s User Experience team has some new things they want to try, and that’s fine. The plan is to see how this stuff goes in their codebase, with the intention of migrating code back upstream.

A couple of weeks ago, during the Ubuntu Summit, I was invited to speak with some of the developers and User Experience guys from Ubuntu about their plans. They showed me the mockup that’s on Mark’s blog and told me about their plans. They have things they want to do that could definitely improve the experience. Some things are pretty controversial, such as the removal of actions on notifications. We sat down, discussed and debated various aspects of the proposals for a while, and I believe reached a general course of action for the project. The highlights include:

  • Actions will be removed for applications packaged in Ubuntu. The developers will try to replace them with something that they feel makes more sense, with the hope of pushing these changes upstream.
  • The released notification-daemon will, I believe, support actions, since many non-packaged applications do use them. They will, however, appear as old-style notifications and not appear in the new window stack demoed in Mark’s blog post.
  • We’ll be drafting new additions to the notification spec in order to address the needs of KDE and Mozilla.
  • The work will be done by their developers in either a fork or a whole new notification-daemon implementation, allowing them a greater ability to experiment. These changes (or parts of them) will make their way upstream. It will be spec-compatible so users won’t have to worry too much about losing features (aside from actions, perhaps).
  • In the end, it’ll likely be that the Ubuntu theme specifically works this new way, and that other themes will work differently (they may support actions more directly, for example).

Now I should point out that I don’t believe actions are a bad thing. There’s many use cases where actions are very much warranted, and it seems Aaron agrees. While the Ubuntu team has discussed the possibility of deprecating this in the spec, I believe the end result will be that actions will live on. I’m also pretty adamant that upstream notification-daemon will still support actions and some other features. Ubuntu can choose what experience to give their packaged applications, but that may differ a bit from what we decide upstream.

Time will tell how this all turns out. I personally think it’s great that there’s some momentum on this project. I know I haven’t had much time to work on it as of late, between VMware and Review Board, which is why getting some new people on board with fresh thoughts will probably be a good thing.

On a related note, I’d like to welcome Andrew Walton to the project. He’s going to be working as a co-maintainer and helping out when I’m busy (which will be a lot of the time for a while).

Over the next month or two, the project should start to pick up. We’re beginning to look at ways to improve the spec and at what work needs to be done in the near future for the project. These discussions will take place on xdg-list.

And with that, I wish everyone a Merry Christmas (or just a very good December 25th for those who don’t celebrate Christmas)!

December 24, 2008

More Airline Ridiculousness

Last week I complained that the fee for bringing a pet on a plane with you was unreasonably high. I think Emily pointed out that children under the age of two can fly on planes all day long with no fee whatsoever. Something else I didn't realize is that most major airlines are now charging for checking a single bag.

Please enjoy this handy table, and remember to factor in the extra fees when buying your ticket. All prices are for coach class (sometimes fees are waived for business and first class). And let me know if you notice any inaccuracies.

AirlineIn-cabin petChild under 2 years oldFirst checked bagSecond checked bag
American Airlines$100Free if sitting on parent's lap$15$25
Continental$125Free if sitting on parent's lap$15$25
Delta$150Free if sitting on parent's lap$15$25
JetBlue$100Free if sitting on parent's lapFree$20
Northwest$150Free if sitting on parent's lap$15$25
SouthwestDoes not allow petsFree if sitting on parent's lapFreeFree
United$175Free if sitting on parent's lap$15$25
US Airways$100Free if sitting on parent's lap$15$25
Virgin America$50Free if sitting on parent's lapFree$25

December 23, 2008

Less Spam

Remember four months ago when I said I switched to Google Mail? The count of emails in my spam folder shows me a seven day rolling average of the amount of spam I've received for the past week.

On November 10th a large source of email spam was shut down. Reports stated that it caused a noticeable drop in the amount of spam on the Internet. I noticed that my seven day rolling average dropped from about 11,000 to about 5,000.

Check out this screen shot from a Washington Post article:

Fixing broken key codes in VMware on Ubuntu 8.10

I recently upgraded a system to both Ubuntu 8.10 and VMware Workstation 6.5, and while using it, I realized a number of keys were broken. The down arrow invoked the Windows Start Menu, for instance. Pressing Alt caused the key to be stuck. I knew this stuff worked in 8.04, but it certainly wasn’t in 8.10.

After some digging around, I found a forum post (lost the link, sorry) that fixed this. It’s worked pretty well for me, and so I thought I’d share for all those who have hit this issue.

Edit your $HOME/.vmware/preferences file and add:

xkeymap.keycode.108 = 0x138 # Alt_R
xkeymap.keycode.106 = 0x135 # KP_Divide
xkeymap.keycode.104 = 0x11c # KP_Enter
xkeymap.keycode.111 = 0x148 # Up
xkeymap.keycode.116 = 0x150 # Down
xkeymap.keycode.113 = 0x14b # Left
xkeymap.keycode.114 = 0x14d # Right
xkeymap.keycode.105 = 0x11d # Control_R
xkeymap.keycode.118 = 0x152 # Insert
xkeymap.keycode.119 = 0x153 # Delete
xkeymap.keycode.110 = 0x147 # Home
xkeymap.keycode.115 = 0x14f # End
xkeymap.keycode.112 = 0x149 # Prior
xkeymap.keycode.117 = 0x151 # Next
xkeymap.keycode.78  = 0x46  # Scroll_Lock
xkeymap.keycode.127 = 0x100 # Pause
xkeymap.keycode.133 = 0x15b # Meta_L
xkeymap.keycode.134 = 0x15c # Meta_R
xkeymap.keycode.135 = 0x15d # Menu

That should do it!

December 21, 2008

John Bailey: Pidgin 2.5.3 (Finally!)

Well, we finally kicked Pidgin 2.5.3 out of the nest, two days late. It's spreading its wings and flying.

Noteworthy in this release are that 58 bullet points are in the ChangeLog (not counting the headers for libpurple, Pidgin, Finch, and the protocols) and 85 tickets were closed, 40 of which were marked in trac as patches. Also of note is the insane amount of work Mark Doliner put into our MSN and MySpace plugins, which should resolve a number of crashes and the MySpace "doesn't sign off" issue.

A few big items to summarize:
  • Mark did massive code cleanup in MSN
  • Mark fixed a number of shortcomings in the MySpace IM protocol as well as doing code cleanup.
  • We accepted a ton of patches.
  • ICQ typing notifications should work for some third-party clients now.
  • XMPP resources now default to the empty string, causing modern servers to assign us a resource via a bind. In the event of an ancient server, such as the one DreamHost runs, we will detect the lack of this capability and enforce the default "Home" resource if a user hasn't set a resource.
  • XMPP resources can now include __HOSTNAME__ as a special token that will be replaced with the hostname of the machine being used. For example, if I run Pidgin on my MacBook and configure the resource on an XMPP account to be __HOSTNAME__, the resource sent to the server will be "macbook", since this is the hostname of my MacBook.
  • Some long-outstanding patches have been applied for Gadu-Gadu, implementing IM images.
  • Apply some patches for Zephyr, enabling autoreply when away to emulate zaway and some bugs with the 'use tzc' option.
  • We no longer get certificate errors for rsi.hotmail.com when logging into MSN and retrieving offline messages.
  • Many, many other things best read about in the ChangeLog.
Enjoy this release, which I'll call the "Thank-a-patch-writer" release!

Drained

The last portion of this year has been draining on many fronts. It’s not a complaint—just a statement. I was grading two classes, taking another and working full time. It was too much. I worked through everything, but at different times had to neglect things that I would have preferred to focus on.

I am slowly recovering. Now in this slow, happy time of Christmas and New Year’s I find myself without my normal drive. I feel empty and light; it’s disturbing after the harried pace of the past 4 months. There are so many side projects that I want to work on, but simply can’t find the energy or desire to focus on them.

Over the years I’ve come to realize that the creative expenditure of creating software comes at a price. I have a fixed capacity for creating software—if I expend that capacity it requires time to refuel. In the interim, I can still create but at a much diminished pace, and typically with a much lower quality than what I am accustomed to. The best thing to do, typically, is NOT create. Wait, pause and be patient. Permit focus to drift until it’s ready to snap back to laser precision for the next Push.

This post probably sounds like nonsense—perhaps it is.

December 20, 2008

Spare hardware for clustering tests needed

The main part of the Tigase server development is testing. Actually I spend much more time on testing the server in different scenarios than on writing the actual code.

Most of the tests can be run locally on the development machine. Performance tests and especially load tests require more hardware but usually the development machine as a client and one mor as the server is enough.

One category of tests however require more hardware to be involved and in the best case scenario that hardware should be always on to see how the software behaves over the longer period of time. Clustering tests. They require ideally 3 machines for the server deployment. I run automated tests on the Tigase server very often and also this clustered installation is available to the public at the address: xmpp-test.tigase.org. By running it for a long time and exposing it to the public I can catch many exceptional cases and fix problems which don't appear on short automatic test runs.

At the moment I use 3 machines which are always turned on. Unfortunately 2 of them are very old hardware which have started to refuse working more and more often. Therefore I am looking at replacing them with something different. Ideally it would be low power consumption machine with at least 512MB RAM. There is even no hard disk needed as the system could be started from USB stick or DVD disk. It could be also a laptop with at least single core Pentium M 1.5GHz and 512MB RAM.

If you have such a hardware and can offer it to the project I would very much appreciate your help. Please send me a message using the contact form, or via email/xmpp at the address: kobit AT tigase.org to discuss details. 

read more

December 19, 2008

Postr 0.12.3

A small point release to fix some small bugs before it's 2009...

  • The Upload button now works
  • Don't delete images if the upload fails

The tarball is here, and Debian packages are building now.

NP: Live at the Royal Albert Hall, The Cinematic Orchestra

XMPP: The Definitive Guide - Rough Cuts edition

It’s been an exciting time recently for the “XMPP: The Definitive Guide” book that Peter, Remko and I have been working on. Just over a week ago, Remko announced the availability of the book in the Rough Cuts scheme, where you can buy a PDF of the unfinished manuscript to read now, and receive the full version when it’s ready. Then, earlier this week, Peter posted about our submission of the full manuscript to O’Reilly, ready for technical review. Now it’s my turn with the good news: O’Reilly have updated the Rough Cut of the book with our submission, meaning that there is a complete, current book on the XMPP technologies available.

There will still be changes to the manuscript as a result of reviewers’ comments, but we think this is now a text we’re happy to have available. O’Reilly have feedback mechanisms for Rough Cuts, so if you read the book and anything is unclear (or, let us hope not, wrong) please help us make this book something that can guide current and future developers in their work with XMPP.

XMPP: The Definitive Guide

Last updated: January 07, 2009 10:41 AM