Pages

Wednesday, August 13, 2008

The following open letter was written on the Pidgin homepage, in response to the recent forking of Pidgin (the new fork was named FunPidgin, which is now called Carrier). This open letter provides a clue why OpenSource will never win the desktop - disdain for the very people for whom these programmers are "working" and an ego-centric demand that customers act the same way programmers do - with logic (i.e. Thinking) devoid of Feeling. OpenSource must recognize that it's not the job of the customer to be logical; it's the job of the programmer to have empathy (or Feeling) and put themselves in the user's shoes to understand on behalf of the customer why they want the things that they do, and why.

That's usually the job of the marketing department. But most OpenSource projects eschew marketing (particularly market research). It is after all, a department of Feeling.

Another opinion common amongst OpenSource development that is revealed in this letter is that options must be limited or we know better than you want you need, never mind what you want. Options are the realm of Extraverted Perception (Pe). It's the most open way one can create a program, because it inherently covers more bases. A modular programming style is what's needed, where there is no master program, but various small programs that plug into each other in any configuration. But programmers bury options deep within menus, and rarely explain what the options actually mean, or what they will do. People are wary to experiment with computer programs because of a lack of understanding (again, the fault of programming without Feeling).

None of this means that all programmers lack Feeling, but because of the overwhelming Thinking preference amongst most programmers, the lowest common denominator is constantly emphasized. Ironically, most of their user base is composed of Feelers, so they're constantly talking past each other.

The Cost of Progress and Options March 10, 2008 01:59 PM by John Bailey

We recently released Pidgin 2.4.0 with a UI change that seemed inocuous to me. The change was actually in four parts.

We've had the idea for quite some time to put typing notifications in the conversation history area in Pidgin, just like Finch has always done and Adium has done for as long as I can remember. Code wizard that he is, Sadrul pounded this out in pretty short order. Sure it had some bugs, but given enough feedback, he was able to fix most of the issues with it. There are a few minor problems left, but I'm confident they can be worked out over time. This change proved controversial. At least one of our developers still doesn't like it. I do, but I'm a fan of a few different UI changes that have been made in the last year. I think it's safe to say we're going to stick with this change.

After the typing notification change, the old icon in the menutray was removed. The same developer who dislikes the history area notification also hates the removal of this icon. I personally don't care one way or the other--both notifications affect only the currently visible conversation, and other notification methods exist, such as the Guifications plugin. This change has also proven to be controversial, but I believe that's mostly because this change and the history area notification happened in the same release.

The next big change was the removal of the bar that allowed manual resizing of the conversation input area. This has caused far more uproar than I ever expected. The closely-related fourth change is that the auto-resizing of the input area is now a first-class citizen and cannot be disabled. Again, this caused much more of an uproar than I expected. The same developer I mentioned above also disliked these changes quite strongly.

These changes are each quite innocent on their own. The combination, however, has caused a flood of complaints over the changes in behavior. I'd like to detail some reasons for the changes and why there is a cost associated with restoring them.

The typing notifications in the history area have been requested numerous times over the years. To me it seemed reasonable, considering that libpurple's other two UI's have the same behavior. Granted, there is no real reason for the change to have happened, but it's not the end of the world. There is no loss of functionality and no "usability" issues as have been claimed. Anyone who wants the old typing icon back can fairly trivially write a plugin to restore it.

The input area is a whole new beast. We introduced an autoresizing input area sometime back in the 2.0.0 betas, before we renamed to Pidgin. Most people never saw this because we showed the buddy icon of the person we were conversing with to the left of the input area, and we forced the input area to be the larger of the minimum size (1 line, I think?) or the height of the buddy icon. This had some interesting bugs, too, as under some circumstances the size would be saved there because of the manual resizing option, so the input area would not autoresize. Another fun bug came with pasting text. Pasting sufficiently large quantities of text with a sufficiently small IM window would cause the autoresize to expand the IM window in very strange ways, sometimes resulting in conversation windows larger than the screen. There was also a bug in which dragging the manual resizing bar would not save the size of the input area correctly, so using it to work around the other bugs wasn't guaranteed to work either.

Sean decided to scrap the manual resizing because it significantly simplified fixing some of the autoresize bugs that he had fixed. Anyone thinking it's laziness may be justified in that opinion; I don't really know or care. I don't think it matters much, but apparently some users think it does. Yes, there are some bugs still, the most notable being the 1-pixel bug where a new conversation has an input area that's only about 1 pixel high. The changes also seem to have caused a crash in the xchat-chats plugin, which hijacks the history area of the conversation window and replaces it with the same widget xchat uses for irc channels. The plugin does this only for chats. There's also the fact that the lower and upper thresholds for resizing don't work well for rather large IM windows. On the mailing lists, we've already determined that what we have is not the optimal solution (thanks to a few helpful users--a very rare breed), and we are working towards making it better. We won't, however, bring back the manual resizing anytime soon.

The whole debate over manual resizing brings us to another debate--a ton of users are demanding that the automatic resizing vs manual resizing be a preference. We're not willing to do that, as it incurs a cost we're not willing to bear. Ethan Blanton said it best himself in a message to the support list:

Each individual option may be simple or trivial, but they add up. Options to do with UI behavior are _particularly_ expensive, due to their frequent interactions with the vagaries of UI toolkit behaviors, etc.

This expense takes the form, mostly, of subtle bugs and extra programmer effort. We have had numerous examples of options which appear to be simple on the surface causing numerous bugs and undesirable behaviors. A recent and memorable example of this was the option for persistent conversations -- I think we all agree that the ability to have conversations "open" without an open window is one which is appreciated by many users, but this seemingly simple feature has caused quite an avalanche of small and not-so-small bugs. In fact, there is speculation that the one pixel high input area which some people are seeing stems from this very option.

Anyone who tells you that options are not expensive is either not a programmer, or has never worked on a large program. It is true that orthogonal options in a clean code base can be implemented with little cost in *many* circumstances, but even the most forward-thinking and competent programmers will be blind-sided by subtle interactions on occasion, especially when throwing third-party libraries and code into the mix.

Making both behaviors available will certainly cause additional bugs and stupid behaviors that would not appear if we were to leave well enough alone or even to revert to the previous behavior. Reverting to the previous behavior, however, again introduces complex interactions that we're not exactly excited about having, not to mention brings back the bugs that were successfully eliminated with its removal.

Aside from all this is the fact that while we could keep the same interface forever, we don't feel it's necessarily a good idea. Experimenting with the user interface is a way to achieve progress--we can't learn without experimentation, and what we learn from said experiments helps us to make Pidgin a better application. Yes, it causes friction with users and some developers, but it is a necessary process. That's the important thing to keep in mind--we're not taking features away in an attempt to punish users or see how far we can push users. Our changes are legitimate attempts to improve Pidgin's interface, reduce the number of bugs present, and make Pidgin the best we can for our own needs.

In that vein, we are fully aware that we cannot make everyone happy with our UI. It's simply impossible. There are numerous other messengers out there, many of which will certainly meet some users' needs better than we can. We also now have libpurple as a real, usable entity which anyone can use to get our protocol support while getting a UI completely different from ours. This raises my final point--there are options in the IM application space, even though they may be expensive for users to bear the consequences of.

In a user interface that rewards the subjective, it is absolutely impossible for something like this to happen. A bot can't invade your personal space if you are totally in control of your personal space and everything in it. Why is that person's avatar even sent to my modem in the first place? Why can't I control the objects in my virtual space (including other people's avatars)?

Ahhhhh....Yahoo has succumbed to the most conservative of standards and wont even allow adult designations in profiles and for adults who act like adults to form a segregated community. This heightens the need for a peer-to-peer profile system where information is exchanged directly between people who converse and either actively ask for the form information or freely give it out to people who request to see it.

Yahoo is succumbing Extraverted Feeling devoid of Introverted Feeling. Community standards over individual standards. The internet is an Introverted technology, and there are plenty of ways to enable it that way, but like the rest of the Web 2.0 community, they're Extraverting where they should be Introverting.

these may or not be MBTI types, but theyre probably archetypes. (I haven't blogged about Jungian archetypes yet, but that's from lack of time, not interest. They'd be good AI interfaces to cluster programs around).

In the Omnicasting Hypercube, the dimensions used here would be "participation/interaction v. consumption"

The types of activity are actually on multiple dimensions when pulled apart, but have been collapsed into one dimension here. Nothing wrong with that, but they can be seperated to show greater nuance and granularity.

With the announcement of OpenSocial, Google has, with one fell swoop, violated their own commandment of “Do No Evil.” OpenSocial is actually the information superhighway to hell paved with good intentions. OpenSocial does nothing to empower the end user, it actually further empowers the companies that provide the remote server Big Brother “social graph” BULLSEYE to exploit the end user for their personal information that belongs only to the end user and does NOT need to be on any other computer than a person’s personal computing device.

This is the perfect illustration of how Web 2.0 technologies keep using Extraversion (Objective) where Introversion (Subjective) is called for. The Internet is a subjective technology, not an objective one.

The solution is NOT to create one profile on a remote server, with different views depending on the user. The real solution is to create MANY Personas on my computer (or storage system) that are perfectly discreet and do NOT overlap anywhere except on the subjective end. You DON’T need to do this on a remote server owned by a company whose ethics on exploiting the data can be compromised either internally or externally. It only takes one mistake by an ignorant intern to criminally expose things that should have never been combined in the first place.

OpenSocial now should be the singular target of every person in the world concerned about the inherent right of privacy, control and the inherent and original design intent of the internet - distribution of information across the network of networks. NOT consolidation. Where is *my* desktop social networking application? OpenSocial does NOT empower the end users. It empowers the companies waiting to exploit and rape users of their information.

Data portability is supposed to be the reason behind creating this standard. Has everyone forgotten that data isn't supposed to be portable? Database and hypertext theory clearly states - write once, then reference. This information is already written once - on my personal computer. I'll keep my data, thank you. Just give me your code to play with it.

So pardon me if I declare myself Don Quixote de la Mancha and announce the formation of the Windmill Coalition. I will be at my local inn and if you would like to join me on my chivalrous adventure, I drink Jim Beam on the rocks with a splash of water and I will be glad to call you my squire Sancha Panza.

At Cluztr, we've been supporting APML created from each users clickstream - which they control and manage. We've gotten great feedback so far the output is an increasingly accurate picture of one's interests.

Amazon, Google and all kinds of other services have been leveraging this kind of attention profiling for years. It's about the time the user can start using it for their own benefit.

Privacy issues are marginal compared to the benefits and potential uses of APML.

...Besides, with treatment options as advanced as they are, kids today don't care about having safe sex either, but that doesn't mean AIDS has gone away.

Privacy issues are never a marginal issue, and thank you for alerting me to your company's practices in regards to clickstreams and your attitude about your user's privacy. I will be sure *not* to use cluztr from this point on.

One does not need to reveal anything about one's self to utilize the concept of an APML construct. Sorting and ranking of interests is a basic psychological construct, and it's something that we do *internally*. I don't need to tell a web service *all* of my interests to tell them what I'm interested in getting from them. There's no need for portability with a concept that never moves from where it belongs - with me, on my computer, in my head.

We don't announce *all* of our interests to the outside world when engaging with a particular person about a particular topic. NOT collecting information about pron tells me just as much about you as actually doing it (and in some ways, more - either you are a sexually repressed neurotic robot or you're blatantly lying and using another browser to look at pron).

It is *not* as simple as turning your tag cloud from delicious into something portable, because not all tags are created equal. Sorting and ranking is a highly complex internal judgment process that compares N^N concepts to each other.

APML is yet another attempt to create the One-Ring-to-Rule-Them-All (like OpenID). You don't need One Ring, you need Many-Specific-and-Appropriate Rings. But most importantly, you need an application that *MANAGES* all of those rings, and nobody else needs to see what you do within that application, and that application doesn't need to reside anywhere except on your desktop computer of choice. Outside services just need to given the appropriate Ring (let's be cute and call it a Friendship Ring), not my entire collection of Rings.

The whole point of the hypertext and the internet is that information is distributed, so why do all of these companies keep trying to consolidate everything?

The death of Web 2.0 will be when people realize that they don't need to do everything publicly and blatantly to get what they want, and you don't need a company that drops the "e" in -er to do it.

Michael,You're obviously very pasionate about your privacy, as are others who use social apps, but not everyone.

The explosive popularity of online services like Last.fm, iLike and Pandora have shown that people are more willing than ever to give up aspects of their privacy in exchange for the benefits of social networking and discovery.

To explain my statement that "privacy issues are marginal ..." was with the assumption that whatever social service has the appropriate privacy features in place for their users, whether the user chooses to leverage the option or not.

re: "thank you alerting me to your company's practices in regards to clickstreams and your attitude about your user's privacy."I suggest you read our Privacy Policy and TOS. Cluztr follows the guidelines set out by AttentionTrust.org, giving users full control, ownership and transparency in all aspects of how their data is handled.

My personaly attitude about a user's privacy is that it is inherent to the user in question, therefore, we provide numerous privacy features to accomodate everyone.

I think the popularity of *all* present social networking sites is merely because *there has not been any kind of personal alternative of ANY kind*

You don't need to give up ANY of your privacy rights in ANY way to gain the benefits of social networking, and I'm personally (especially on the eve of Google's announcement of OpenSocial) completely flummuxed as to why nobody understands this.

I don't need to upload my address books to others' websites to network - my address book IS the network. All giving up any information to any site does is empower the company to make money from my information, when the real person who should be making money from my information is ME, the end user.

It's impossible for a social networking site to provide privacy practices because it is INHERENTLY IMPOSSIBLE for them to do it because the very premise of social networking sites as they are imagined in the current day is PUBLIC.

WHERE are the private desktop versions of all of this web 2.0 crap? Nowhere, because the plethora of beta-driven websites on steroids couldn't survive on a desktop, and most of all, they can't find a way to monetize it.