Inferior Reimplementations of Web Services

I am getting really tired of every community-based website creator feeling the need to reimplement basic functions of the web. Why does every site have to have a ‘Message This User’ action? Has everyone forgotten about email? The problem of sending a body of text to another individual on the web was tackled long ago! Let it be!

Under the ‘I’m going to reimplement a perfectly good system’-system I now have to check yet another message box. Oh goodie, in addition to the six mailboxes I already check, I get to check another. And this one I can’t access though the mail client I use to access many of my others. No, I have to log onto some stupid website with a stupid unique interface. And how many sites with this "feature" do I have accounts on? Far too many. Every one a different website, every one a different interface. I’m not going to remember to check them all regularly, and even when I do, I wont remember how they all work. That’s bad for everyone (including your precious community).

So some genius gets an idea: "I’ll email the users when they get a message!" This is even more foolish! Now I get an email telling me that I got an "email" somewhere else. How bloody convenient!

I guarantee you that no matter how snazzy your messaging interface is, it’s not as effective as how I manage my email. My email is set up in a way that is useful to me. Me, the user. I chose the email program I wanted, I chose the spam filtering solution I wanted, I configured procmail(1) to drop emails into appropriate mailboxes in just the way I like. Email is a stable system that puts the control in the hands of the users. People like email.

To trendy-community-site-creators: the world does not revolve around your website. You do not have to provide every service a person could ever want from the internet. We all visit multiple sites (not just yours). Every site does not need to include a profile, a blog, a messaging system, a set of communities, a news system, a photo gallery and a search engine. Do something new. Do it well. And don’t force your inferior replacements of existing web services upon us. We don’t want them.

Uncategorized

Comments (0)

Permalink

metadate.py for PyBlosxom

Well, it just wouldn’t feel like Christmas without coding. =)

I recently started using pyblosxom for my blogging software needs. I’ll discuss the reasons for this choice in a later post.

One minor annoyance about pyblosxom is that since the entries are regular files, the developer chose to base entry post dates on file mtimes. While this is a really cool idea for the sake of simplicity of design, it gets rather old having post times change when correcting typos. I end up touch(1)ing posts constantly.

Many users simply wrap their post edits in a shell script which will replace the original mtime after editing, but I didn’t feel like settling for this solution.

In the end I decided to write a pyblosxom plugin to base the post time off a #postdate metadata line in the post file, if one is present.

The plugin can can be found here: metadate.py. Details are in the header of the script. I will be submitting it to the pyblosxom plugin registry soon.

Happy holidays, everyone.

Uncategorized

Comments (0)

Permalink

Firefox Tip: Creating Parent Directories on File Saves

I sometimes find that when I am saving files off the web in firefox, I have to go through multiple levels of folder creation. I click the “create new directory” button, type a name, hit return. Repeat.

I just learned (after my determination that it would be a very handy thing) that you can simply enter a directory hierarchy (e.g. images/wallpapers/hairless_cats/1024x768/) and firefox will create all of the parent directories and leave you in the deepest directory (“1024×768”). What a useful feature!

That’s good design. I do what intuitively seems right and I find exactly the feature I am looking for.

Uncategorized

Comments (0)

Permalink

Buddy Icons

Buddy icons are an interesting feature. I’ve never really bothered to question why they exist. But I guess there are two legitimate reasons: (1) personal expression (for the icon picker), and (2) rapid identification (for the icon viewer).

The first one is simple, the second just relates to the fact that humans can distinguish a variety of pictures more rapidly than they can discern text. So it makes sense, I suppose, to allow us to associate images with the people we choose to talk to.

But when picking buddy icons, most people don’t think about what the icon will actually be used for (hell, I’m not pointing fingers, I haven’t thought about it before now). This morning I was having a serious conversation over MSN messenger with an adult male whose icon was a baby. He has a decent reason to have a baby as his icon—it’s his newborn niece—but it’s disconcerting to have some damn baby staring at you as if (s)he were speaking the other person’s words!

Hackergotchis, small disembodied headshots commonly associated with aggregated blog entries, prove to be extremely useful in rapid identification of posts. But this is because Hackergotchis are images of something you (the reader) fundamentally associate with the author: their face.

I could give two shits about looking at some random icon that means nothing to me. And since this is my computer I care more about my usability experience than your extra bit of personal expression (hell, change your wallpaper if you want to express yourself). As of this morning I have disabled buddy icons in my IM client (gaim) because I am tired of looking at that damn baby.

But you know what would be really useful to me?—listen up software authors, there’s a UI lesson here—if I could set the icon that would display with an individual’s IMs. I’d slap some Hackergotchi-style faces up and then I’d actually have a reason to use buddy icons.

Uncategorized

Comments (0)

Permalink

The Tamagotchi Dream

You guys remember the Tamagotchi (たまごっち), right? The Tamagotchi was a virtual pet you could feed, clean-up after, play with, etc. It sounds kind of lame, but the cool part is that the Tamagotchi has a persistent idea of state. It’s never really off, it “lives”, even when you are not playing with it. And it has some simple evolutionary capabilities.

This has really been interesting me for a while. I’m convinced something (the primary thing?) which really makes games fun is their ability to show us something new. We don’t want to feel like we are playing something deterministic, where we press a button, the game displays the built-in response back to us and that-is-that. There’s nothing like that “Woah! I didn’t know it could do that!” feeling. That’s what I play games for.

Most simply, games have a story, or levels, or something else that we haven’t forseen that we get to enjoy because it is new. But to me, the holy grail is games which make themselves. When the content of the game goes beyond what the designer had forseen, then we really have something.

In talks in Game Development class last semester, we had a discussion about the possibility of developing true (strong) AI. Someone claimed that real AI was a pipe dream because we cannot create anything greater than ourselves. My contention is not just that we can, but that I (like many others) already have.

For instance, my Game Focus Generator. Sure, I have preloaded the program with words and formulas to develop phrases, but the truth of the matter is that the output of that program contains things I would never have thought up. I used my abilities to develop something that reached beyond what I could/would have done on my own. For the people who know my personal programming projects of the past few years, you will notice that many of them serve this same goal. My genetic creature population sim (aka “flamesex”) is designed around this principle—I want to come back to it later and be surprised by the output. My graphical hacks, like my “growth” app, are in hopes of making some kind of image that I would never have thought of.

Anyway, this is something that really fascinates me.

I would love to make a state-full game which I could run on my pc, which I could play at will, and be surprised by.

But it has to be fun. The Tamagotchi is cool because it can surprise you to some degree, but it really can’t do enough to be all that staggering. It really needs to evolve more. The flipside of that is that you need for the player to still feel that they have some control—not just have it evolving out of control—otherwise they wont play. But if the game requires too much control, then it will be a pain because you have to be there messing with it all the time, and anything that forces you out of your normal life to maintain it is just a pain, and not a game. In general, the program needs to be stable. But it’s hard to make a stable game because risk is one of the things that makes games fun.

“The Sims” captures some of the basic elements, but for one the game was not intended to be played—or rather, not played—as I propose. Also, there is a limited amount of content. Nethack actually captures a lot of the things I like about gaming, partially by (psuedo-)evolving (random generation/placement of dungeons, stats, objects and enemies), and partially by its sheer complexity. Nethack has so much fabulous content that is not documented that you can discover. The game just sets forth a world, teaches you the basic rules, and lets you loose in an alien world. But there are actually things about the world to discover (I’m talking capabilities of the world, not story or locations), unlike most games.

Magic: the Gathering is also one of my favorite games of all time. Why? Because the game gives you a world—the cards—and says “go play it in”. You can combine cards in ways that no one ever thought of—including the game designers (might this be the same reason I am in love with emacs?). There are always, always, new things that you can discover (new card combos and such), and the things you discover make a serious difference in game. It’s like the card game Fluxx, but you actually have some control over the power(/madness).

This is my dream (or my goal, if you prefer). Now all I have to do is create it. Hmmm…

Uncategorized

Comments (0)

Permalink