What is Twitter For?

Jun 1st, 2009

As you may have deduced from the contents of this blog’s sidebar, I am an active Twitter user, and so are many of my friends. Among people I’ve met who don’t use Twitter, the most common question is: “What is it for?” A valid question indeed, as one must be wary of investing time in activities whose ultimate purpose is not known. I will explain, if only to give myself an easy out the next time someone asks me what is up with this Twitter thing.

Many people see Twitter’s tagline “What are you doing?” and equate it to publishing every boring, mundane detail of what goes on in one’s everyday life, ala the infamous “Twitter shitter“ example. While I suppose one could use Twitter in this way, they surely wouldn’t retain many followers. The point of the whole thing, at least in my mind, is to tell all your friends about things you might mention in a normal face-to-face conversation; the old “What have you been up to?” line. If something is so mundane that you wouldn’t bother mentioning it or showing it to anyone in person, you’re probably not going to tweet about it either.

Beyond that, Twitter also serves as a unique mode of communication, a way of carrying on a conversation with someone. It’s close to the immediacy of instant messaging, but is much less intrusive, and every message is a broadcast to everyone who’s interested in what you’re doing. This makes Twitter particularly well-suited to casual queries not directed at any one person, though it can of course be used for more direct communications with the handy “@username” idiom. Some might find it strange that status updates and conversations are mingled together in the same timeline, but I find Twitter’s ultra-simplistic approach appealing (and there’s always Direct Messaging for private exchanges).

One might point out that all of Twitter’s features appear to be a strict subset of the communication tools that Facebook provides, and if you said that today, you’d be right. A year or two ago, it was a different story, but Facebook is always reworking or revamping something. Since Twitter appeared on the scene, Facebook added some new features that brought them up to parity, such as displaying wall posts in your timeline as “targeted” status updates (mimicking the @username thing). Right now, I only perceive two major differences between the ways that Facebook and Twitter approach social networking:

  • Facebook is much more private and self-contained than Twitter. Unless you choose to lock down your timeline, everything you post to Twitter is out there on the internet, where absolutely anybody can read it (and maybe respond to it). On Facebook, typically only your friends or the people in your social group can see your status updates, and privacy is a much more fine-grained affair than Twitter’s boolean switch. This follows directly from the fact that…
  • Facebook is a vastly more complex application than Twitter. Facebook isn’t even an application; it’s a platform. Where Twitter goes the ultra-simplistic route, Facebook’s design is multi-faceted, all-encompassing, and extensible. It’s not just status updates, it’s wall posts, photos, videos, groups, organizations, comments, discussion boards, polls, and just about every form of social interaction you could possibly think of (and probably a few more that you couldn’t think of).

It’s that last one that rather turned me off Facebook, and made me willing to check out Twitter. Facebook is so huge and complex that you can spend hours each day just wading through all the different channels for socialization, and while some people may enjoy doing exactly that, I always get the sense that I’m wasting a lot of time for very little gain. Twitter is social networking on easy mode; it has exactly the functionality you need to see what your friends are up to, and no more. I can appreciate that kind of focus and simplicity.

As a side note, I’m definitely not a fan of Twitter’s 140-character message limit, mostly because I frequently want to say things that are a good bit longer than that. I’m not sure exactly what Facebook’s limit on status updates is, but it seems much more reasonable by comparison. Might Twitter allow longer messages in the future, in a way that doesn’t require click-throughs and API tomfoolery? I hope so.

Forgot to Make It Not Suck

May 26th, 2009

Valve’s Team Fortress 2, a game which myself and a host of other CSHers are quite fond of playing, recently received a large update that not only included new unlockable equipment for all classes, but changed the method by which said equipment is awarded to players. This has resulted in a predictable amount of wailing and gnashing of teeth from the game’s notoriously unpleasable fanbase, but in this case some of their complaints may actually be warranted.

The main reason for changing the unlockable system is that the old one, to be honest, really sucked. Valve, being Valve, struck out into uncharted gameplay territory and required players to grab a certain number of achievements in order to unlock each new piece of equipment. This turned out to suck for two reasons: On the one hand, impatient players who just wanted their new weapons NOW could easily knock off all the achievements in an afternoon using servers and maps designed expressly for the purpose. And on the other hand, those who wanted to earn their unlocks legitimately had to “grind” through numerous arbitrary tasks, many of which could only be completed by expressly focusing on the task itself rather than just playing the game and having fun.

For this new update released just last week, Valve promised to change everything. Unlockables would no longer be tied to achievements; and what’s more, the new system could not possibly be “cheated”, no matter how many custom maps or server hacks anyone created. And in those respects, they succeeded. Whether or not the new system actually has fewer problems than the old one is another matter entirely.

The new system is time-based: At certain time intervals while playing the game, any given player has a random chance of being handed a random piece of equipment. No other factors enter into it; number of items gotten increases linearly with amount of time played. Not everyone is entirely sure this is a good thing, especially those impatient players who are now unable to quickly grind out their unlocks on achievement servers.

But what’s really getting on everyone’s nerves is the fact that the new system feels cheaper than the old one, primarily because you can randomly be awarded a duplicate of an item you already have. Really hoping you get the Spy’s fancy new invisibility watch? Too bad; even though you’ve spent the past week playing TF2 and little else, all you’ve got to show for it are six pairs of boxing gloves, five flare guns, three Ubersaws, and a partridge in a pear tree. The new system may reward you for large time commitments, but there’s no way to actually work toward something you want.

The details of the new system, and  the rationale behind it, are explained by Valve in this blog post. Ironically, they say one of the features they plan on adding in a future update is the ability to trade items to other players. This completely ignores the fact that players are being awarded duplicate items right now, and don’t have any way to trade them; you’re at the mercy of a random number generator, and this makes the system feel incredibly cheap. Why Valve of all companies would stoop to this level of half-assery, I can only guess. They could have easily put off the whole thing until the next update (which would be a very Valve thing to do), and then they would have time to do all the features the system should have had right off the bat.

One can only hope that updates to the new item system will come earlier than the usual three-month waiting period between class packs. Otherwise, I can easily see new players being turned off by the arbitrary mechanics of item awarding. I’m personally not too perturbed over it, but only because I don’t take TF2 as seriously as most players do (the Steam forums will probably still be boiling with RAGE over this issue months from now).

Update: A few days after I posted this entry, Valve issued an update that added milestone achievements for the Sniper and Spy. This seems like an extremely slapdash solution, because it brings back all the disadvantages of the old system, and resolves few of the issues with the new system. Unfortunately, since this is probably considered a “good enough” fix, it’s likely that we won’t see any major changes to the system until the next class update, three months from now.

Can’t Hide From Me

May 26th, 2009

If you work with cross-platform applications in Windows, you’ve no doubt experienced the irritating “dot-file” effect: You install a new program, and suddenly there’s a bunch of files and folders whose names start with a period (like “.settings”) cluttering up your home directory. This happens because the program’s developers are used to Unix-based environments, where files and folders whose names start with a period are typically hidden from file listings unless they are specifically requested to be shown. Not so in Windows.

Since Windows has an analogous feature — setting a file’s ”hidden” attribute — I’ve often wondered why so many developers of cross-platform tools overlook it. It wouldn’t be that hard to add a tiny bit of code that goes “if we are on Windows, set the hidden attribute on any files we’re installing that start with a period”. Then I wouldn’t have to run around hiding them all manually after the fact.

However, this bears additional thought, because Windows and Linux have different definitions of “hidden”, and their methods of hiding files are designed accordingly. In Linux, hiding a file denotes something like “I don’t want this file cluttering up my directory listings, but I might need to access it or change it in the future, if only infrequently.” In keeping with this idea, it’s quite easy to hide or unhide a file simply by renaming it, and given that most Linux users are comfortable with terminal usage, a quick “ls -a” will suffice for temporarily revealing hidden files. (Whether it’s even a good idea to “overload” file naming to also provide file-hiding functionality is up for debate.)

In contrast, hidden files on Windows are almost always intended to remain permanently hidden, at least to non-sysadmins. Hidden files may vary in their contents, but they almost universally indicate “end-users should not be fiddling with this.” Most Windows users will be doing file manipulation in Explorer rather than a terminal, a setting in which viewing hidden files takes a five-click process to accomplish, un-viewing them takes five more, and setting a file’s “hidden” attribute requires calling up its property sheet (though we do have ”dir /a” and “attrib” for the command prompt).

Since Linux dot-files and Windows hidden files are not equivalent concepts, this creates a small dilemma for cross-platform software developers. If you want something that matches the dot-file concept, you have to either deal with your files being unreasonably hard to get at in Windows, or clutter up the user’s home directory with files they don’t always want to see. The reverse situation (developing software on Windows that’s going to run on Linux) doesn’t happen as often, but may involve similar annoyances.

Personally, I’d just be happy if Explorer had a hotkey to toggle the visibility of hidden files, so I could quickly view all my manually-hidden dot-files. Win-H, perhaps?

Twittjr on the Tubes

May 14th, 2009

A little over a day ago, my roommate introduced Twittjr to the internet at large by submitting it to Hack a Day (whose commenters are apparently a very tough crowd). From there it spread to BoingBoing and started making its way through the blogosphere, resulting in the Twittjr page gaining about 2,500 views in the past 24 hours! Probably not very impressive by current internet standards, but I really got a kick out of seeing the massive spike it caused in my page view graph. Hack a Day aside, people have been making some nice comments about it too. Thanks, internet! Feel free to chime in on the Twittjr write-up itself, and I’ll respond if I have time.

Also, since someone on Twitter suggested it, I slapped together a video of Twittjr in action, and reactivated my three-years-old YouTube account to upload it. Sorry for all the noise, it’s due to this room being heavily air-conditioned (it is adjacent to the CSH server room).

WordPress from Drupal

May 13th, 2009

I’ve been working with Drupal for several years now, and in fact the latest iteration of the CSH public web site (of which I am the webmaster) is built with it. However, when it came time to decide what kind of framework would power Grantovich.net, I chose WordPress. This was partially because I wanted to get some exposure to other popular content management systems, but mostly because I wanted something that I could just drop into my server and start blogging with, and WordPress’s vaunted ease-of-use seemed to fit the bill.

Now, to be fair, Drupal and WordPress are in two completely different categories, at least to start out with. WordPress is advertised and works best as a blogging system, and you have to do some hacking to expand its functionality beyond that. Drupal is a sort of uber-extensible CMS framework that does almost nothing useful out of the box, and you have to do some hacking to transform it into a blogging system or an online store or whatever else you want.

Nevertheless, in the few weeks I’ve been using WordPress, I’ve noticed a few things that really impressed me, and made me wish I had the same features in Drupal. This is not to detract from Drupal’s sheer power as a do-anything CMS, but I have often found it lacking in usability (and apparently I’m not alone). At any rate, here are some of those nifty features:

  • Fully-integrated WYSIWYG editing out of the box. This is really something that’s important to get right if your content is being edited by “regular people”, and it’s also an area where Drupal falls flat on its face. By default, Drupal just gives you a plaintext input box and expects you to start typing HTML into it. You can download modules that plug in various generic WYSIWYG editors, but installation is awkward and integration is lacking.
  • Integrated one-click plugin installation and updating. To install a WordPress plugin, all you have to do is find it with the integrated plugin browser, and click the Install button. The plugin is automagically transferred to your server and unpacked, and it’s just one more click to activate it. Upgrading a plugin to a new version is similarly a one-click process. With Drupal, it’s all manual: Download the module tarball from the Drupal web site, unpack it, FTP into your server, transfer the files over, and activate the module. And you have to do this every time a new version of the module comes out. Gets kind of irritating when you have more than a dozen modules installed, which is probably the minimum number you need to do anything useful in the first place. Sadly, this rigamarole is necessary for WordPress themes as well, but that’s apparently being worked on, and you only really install themes once.
  • Built-in editors for everything. Want to tweak your theme’s stylesheet? Don’t waste time SSHing into your server, just hit the Editor link and you’re already there. Anything you could want to change on the server is available through the web interface. Admittedly, fewer things in Drupal actually require you to edit files on the server, but I’m surprised they haven’t done something like this already, since the coding effort required is small.
  • Decent image handling out of the box. I say “decent” because the way WordPress does it is far from perfect, but at least you can upload media files to a designated directory on the server, and insert them inline into your content with only minor fiddling, all without installing any plugins. Drupal doesn’t provide anything like this unless you install half a dozen modules, none of which are quite able to cooperate perfectly, and all of which are guaranteed to require several hours of tedious and/or non-intuitive configuration. Which brings me to my final point about WordPress…
  • Most things are obvious, intuitive, and painless. It’s hard to explain this one since it’s more of a feeling than anything else, but it pervades the entire WordPress core. When I want to do something with this web site, I log in and “just do it”. The entire interface is so slick and easy-to-use that I never stop for a moment and wonder why I’m doing something the way I’m doing it. It all just makes sense. And it’s all buttery-smooth thanks to the pervasive AJAX effects and excellent use of color and typography on the backend (in fact, I find myself wishing I had a front-end theme that captured the feel of the admin interface!). Of course, part of this comes from the fact that WordPress is laser-focused on providing a great blogging platform, thereby achieving a level of coherence and integrated features that Drupal, which tries to be all things to all people, could never match. Still, it makes Drupal look positively clunky by comparison. To this day, whenever I log into the CSH web site with a task to do, I experience a brief moment of confusion as I wonder whether the module I’m looking for decided to vomit its settings page into ”Content management”, “Site building”, or “Site configuration” (or maybe it’s a secondary tab in a sub-page of one of those categories…).

Well, that’s enough of me ragging on Drupal. As I said before, it’s really an amazingly powerful framework, and for things much more complex than a personal blog, it’s still my CMS of choice. I just think that, in terms of usability, it could do worse than to take a few cues from WordPress. (Incidentally, I’ve discovered a number of WordPress annoyances as well in the past few weeks, but those will have to wait for another day.)