Tagging craze

It’s funny how a simple concept ends up just exploding in a short amount of time and becomes the new craze. One example of this is “tagging.” Tagging was something I’ve wanted for years but never really thought of it as being something that everyone would be getting all excited over. However, now that a number of services are offering tagging support, I’m starting to see why.

For the uninformed, the concept of tagging is that you apply a word or two to a webpage, a photo, product, or whatever for later searching and for grouping. Instead of using some existing organizational structure, you create your own on the fly. The item you’re tagging can have multiple tags in it. Think of it like a magic filing cabinet, where you have photos, documents, and CDs. Some of the photos may be tagged “vacation,” some may be tagged “bbq,” all may be tagged “photo” and the “bbq” tagged items may also be tagged “work.” The documents may also be tagged “work” and the CDs may be tagged “games” and “recreation.” Now imagine that you want everything from your magic filing cabinet that has to do with work. You pull open the “work” drawer and all work-related photos, CDs and documents appear. You then decide to open the “vacation” drawer and everything vacation-related appears. Open “bbq” and you just get the BBQ photos. Those items may exist in multiple magical drawers at once. Okay, that’s a silly example, but hopefully it makes sense to some.

So I’ve been looking into what services support tagging. The two big ones I’ve heard about for ages but never really gave a shot have been del.icio.us, a bookmark site, and Flickr, a photo management site. I’ve been converting all my bookmarks to del.icio.us, and it’s really quite cool. I’ve all but stopped using bookmarks in my browser simply due to the lack of organization (do I put this in “algorithms” or “game design?”). However, now I have two buttons on my toolbar, one that takes me to my bookmarks, and another that posts the current page to my bookmarks. It’s very clean and very useful, and I just love it.

I’ve opted not to use Flickr, just because I’d rather host my own gallery, but the tag features in it are arguably even more useful for photos than for bookmarks. Rather than having to duplicate an image of my sister in a Vacations category, Birthdays, and People, I would be able to just tag that photo with those three things. This is a feature that I really hope Gallery gets in time.

Amazon recently announced that they are going to support tagging for items listed in their store. I’m curious as to how I’ll be making use of this, as it does seem a bit less useful for a site like this, but I’m sure I’m wrong 🙂 Either way, it’s very cool to see a big site like this start to experiment with tagging.

The big one that I only found out about today was Google. You can actually tag search results that you have clicked on and store them in Google-hosted bookmarks. To enable this, you’ll need a Google/GMail account. Log in on Google.com and then click “My Account.” From there, click “Personalized Search” on the left. You may have to log in again after this. Anyhow, it will then be added. From now on, your search results will have an extra item next to “Cached” and “Similar pages” called “Remove result.” Using this, you can prevent the particular page from ever showing up again.

Useful, but let’s get on to the main feature. Click the new “Search History” link at the top of the page. You’ll be taken to a page that contains a list of everything you’ve searched for since enabling this feature and the sites you’ve actually clicked on. If you star a result, it’ll appear in your bookmarks on the left. Click “Edit bookmark” and you’ll be able to set the tags for the link. Very handy. I just wish it integrated better into the Google search results. It’s a pain to have to first search for something in order to add it. But it’s new, and I haven’t seen any real buzz about it yet, so I’m sure it’ll mature in time.

Those are all very neat, but now we’ve ran into this problem of too many sites with tags. What I’m hoping to see (and maybe I’ll write it) is a site where you can log in, set up links to your Google, Flickr, del.icio.us, Amazon, etc. accounts, and aggregate all the tags. Click “vacation” and everything you’ve tagged “vacation” in each site you’ve set up will appear. This will of course require an API of some kind from each site. I know del.icio.us provides this, and I wouldn’t be surprised to see Google provide one, but I don’t know about the other two.

Now I should convert everything I’ve ever done to AJAX, because it’s just the new cool thing to do. 😉 (I kid, I kid)

Goings Ons

Hard Day in GNOME

All day long, people have been talking on IRC about the Novell lay-offs. It’s been sad to see, and as hard as it was for the people who were let go, I’m sure it was just as hard for those that had to let people go. My condolences to everyone who’s been affected by this.

I’ve talked to a few people individually about this, but it’s been recommended to me by a couple of people that perhaps using Planet GNOME would be the best way to reach everyone interested…

I’d like to offer to anyone affected by this who is looking for a job to send me your resume if you’re interested in a job at VMware. I can make sure it goes to a human being who will actually read it, rather than in some queue somewhere. We’re looking for good people, and the company is nice to work at. Although the Palo Alto offices are where all the interesting things happen for the Linux desktop development, some jobs are available at our new Cambridge office. So if you’re looking for a fun job where you can do interesting work with good people, and this interests you, even a little, we can try to get the ball rolling. To everyone else, best of luck. I don’t doubt that you will all find good jobs soon, and everyone appreciates what has been done so far by everyone in the Ximian team.

Nokia 770

My Nokia 770 came today. I haven’t had much time to play with it, but it’s quite nice so far. Cute little device, and I’m eager to hack on it. I have a couple of games I’ve written or PDAs that I hope to port. Taco would be fun to port to it, if it had cairo (which I don’t believe it does? Correct me if I’m wrong!).


A lot of work has been done in Galago SVN the past couple of weeks. A lot of the code has been cleaned up and the API is in the process of being fine-tuned. Python bindings are being written. libgalago is moving to glib. All neat stuff. I’ll post more when I get closer to being finished, but this is very cool:

for service in galago.core_get_services():
    print service.get_name()
    for account in service.get_accounts():
        print account.get_username()

Just so easy. That’s not the final API, though. The core_get_services() part will change. Anyhow, fun stuff.


Ah, the sound of a dead drive. That’s what my 200GB Western Digital drive said to me this morning as I rebooted. This was after I realized that I couldn’t access any of my source code. dmesg was yelling at me about having trouble accessing /dev/hde. This drive contained my source code (almost all of which are on remote SVN or CVS repositories, of course) and all my media (audio, video, images).

I just chuckled.

A very short while ago, a matter of weeks really, I had this bad bad feeling that I was going to lose all my data. No real reason, but I started getting very paranoid about it. I looked around and after factoring in cost and laziness, I picked up a 1.0TB Buffalo Terastation, which is a cute little machine. It’s a PPC-based Linux RAID-enabled NAS, basically, with SMB, FTP, and AppleTalk support. After RAID5, I was left with about 700GB. I immediately copied everything I truly cared about to it (media files, basically). While most places sell this for $1000, I found it just over $900 at Comp-U-Plus.

It arrived and I set it up. I have to say, I like it. It just works. It has gigabit ethernet, for when I finally get around to upgrading my network. You just set it up over the web. Users, groups, permissions, mounts, RAID configuration, formatting, diagnostics, optional periodic status e-mails, etc.

One nice thing about the Terastation is that it has 4 USB ports. You can connect a printer to it and have network printer sharing. You can also connect up to 4 USB hard drives and set up a second RAID array, expand the current array, or back up your array. Nice and expandable. It also has support for hooking up to a UPS system, so it can shut down gracefully.

So with the Western Digital drive dead, I shut down, pulled the drive, and rebooted. I then proceeded to play some music and think to myself how glad I was I bought this thing earlier this month.

Now, the Terastation isn’t perfect. My main complaint was that I couldn’t use symlinks, due to SMB not supporting them (or at least this particular version?). That wasn’t a huge deal, considering it’s mostly media files, but I wanted the option, damnit!

I looked around and found a coupel sites on hacking the Terastation. The main one with all the info is a nice wiki at terastation.org. I went to the section on gaining root access and saw that he soldered dip switches onto his Terastation’s motherboard to make the serial port actually usable. I wasn’t ready to do that just yet. Or ever. Maybe if this thing was a few years old and I had another solution.. Maybe.

I checked back today and looked over the firmware pages. It turns out that Buffalo, the makers of the Terastation, provide a zip file with a image.dat, which is just a password-protected zip file containing a tarball and some other stuff. The passwords are available at the aforementioned wiki. The wiki also has some nice instructions on taking an existing firmware image, adding a sudoers file and an ssh server, and repackaging it.

Feeling stupid, I decided to give it a try. I figured that even if I bricked the Terastation, which I very much doubted I would do (given that I was just installing another server and a sudoers file), I would at least still have my drives, so no data loss. I packaged up the new image, compared the old and new tarballs a few times, and then put it back into the firmware zip file. I went over to my Windows machine and ran the updater. It found my terastation and, after a few moments, I clicked the button.

And waited…

And waited…

They really need a little thing underneath the rarely updating progress bar saying, “Don’t panic, everything’s okay, we’re just really slow. Get some coffee, it’s alright.”

I ran back and forth between my work room and the living room and watched as the Terastation rebooted itself a few times (as was documented in the README). Finally it stopped doing that. I stared at it, daring it to blink. It didn’t blink, but it didn’t have the Red LED of Doom, either. I went back to the Windows machine and it happily indicated that the firmware update was successful!

I ran back into the work room and pinged the Terastation. It ponged! I mounted the shares… I could access my files! The worry was over, but the shaking continued for a few minutes still. One last test… I tried to ssh in.


Huzzah! Life is good.

And now that I have a little hackable Terastation to play with, I think I’ll play with the NFS packages available for this. More to follow, maybe.

Oh, and if anybody has a Terastation and wants a known working hacked 1.08 firmware file, let me know. If it doesn’t work, though, I claim no responsibility whatsoever.

Silent Noise

So we don’t have flying cars. That’s okay, I didn’t think they were a great idea anyway. There are no personal android helpers. They’d just take up my closet space anyway. What I can’t figure out though is why we’re still using wired headphones. I know there are wireless ones available, and that wireless phone headsets are becoming more popular, but it sure is taking a while.

The wires a nuisance, I believe, but it seems most people have become accustomed to them. I still haven’t. I sometimes get my arms or backpack tangled in them. If I’m listening to my Rio and stand up without thinking, the Rio will fall to the ground. And they just look ugly!

I’d like to see a future world, maybe 3000 or so at this rate, where every earphone set can communicate wirelessly to devices through, say, Bluetooth. I want priorities in the devices where, if I’m listening to music and my cell phone rings, the music will mute and I’ll hear the ringing. Tap the headset/earphones and it’ll answer the phone. When listening to music, a tap could pause/unpause. No more pressing buttons on the device or changing volume if I need to listen to somebody who’s talking to me.

How hard would this be? We’d definitely need a standard for communications and priorities, and every upcoming CD player, MP3 player, radio, etc. would have to support it. The technology for actually doing the communication would have to fit inside the earphones/headsets, though that’s probably doable or close to doable now.

If we all wanted to look like cyborgs, there are other options if we kept these on or with us all the time. A TV in a bar or pizza place or even at home could mute its speakers and yet still broadcast the audio wirelessly. If you need to listen to the news real quick, and it’s too noisy in the restaurant, put on the headset and listen in clearly.

Just some stuff I was thinking about earlier.

I Can’t Believe It’s Not Chicken, now in gelatin style

Something I threw together the other night in Inkscape


I finally gave up with the whole “playing everything politically safe” with Galago and am now moving the whole library to GLib. It’ll take some time, and there’s a few things I need to figure out first. For example, a very useful feature that Galago’s object model let you do was connect a signal handler on a class itself, which would call the handler any time the signal of any object of that class was emitted. This of course didn’t translate to other object models or bindings well, and certainly doesn’t translate to GLib at all.

One of my potential solutions was to create a Manager class for each class where developers would want to do this. The Managers would be singletons and objects would emit signals on them as well as themselves. Maybe Manager is a bad name of the type of object… I’m still not sure what to do about this. It’s a very useful feature though, and the only alternative for everything that currently uses this is to set up a bunch of signal handlers for parent containers to know when these objects are added/removed and then register/unregister signal handlers every time the objects of interest are created/destroyed. It’s a lot of messy code, and would take up more memory than a manager interface. Still got to play around with the idea more…


I’ve begun work on porting libnotify and notification-daemon to D-BUS 0.3x. I plan to use a simple abstraction layer consisting of macros to keep compatibility with D-BUS 0.23.x for now. I have a lot of work to do this week at VMware, so I don’t have a whole lot of time to devote to it right now.

Mike Hearn and I had a talk earlier about extending the notifications spec. Sorry, we’re still not going to provide a way to embed Mozilla. One thing people have been wanting, though, is to be able to associate a notification with something on the screen, say, a notification icon. So what we’re going to do is provide support for X, Y coordinate hints. Since they are hints, the renderer will be able to just ignore them if they want. However, this would allow the battery applet (for example) to say, “I have a notification, and here’s my location!” and the renderer could pop up a notification near there with, say, a little arrow pointing to that X, Y location. This could be useful in a few situations, though hopefully it won’t be abused.

I have some future plans for the notification daemon. I’m going to put together a (for now at least) experimental daemon that has two types of plugins: Render plugins and Transition plugins.

The Render plugins will be responsible for rendering the notification. They could do the nifty folding thing that appeared on Planet GNOME a while back. They could do a bar sitting at the bottom of the screen, semi-transparent. They could do toaster popups. Whatever.

Transition plugins handle how the notification will be displayed. They could just show a notification, fade it in, slide it in, make a poof of smoke.

Again, it’ll be a while before I can start on this, due to life just being busy right now.


And this is one other reason why life is busy. My girlfriend Jamie and I are going with my family to Disneyland after next week. Unfortunately, this week is spent on some deadlines at work. But that’s just going to make the next week even more fun 🙂 We’re staying at the Disneyland Hotel, which will be a first for both of us. I’ll have plenty of pics when I return.

Revenge of the *bleep*

Hurray! Leo and Patrick and some of the others from the old The Screen Savers show have gotten together and started a “podcast.” I’m sure anybody reading Slashdot knows this already, but I’m still pretty excited about it. I’ve been watching The Screen Savers since it was created on ZDTV, and have been pretty upset about how badly G4TechTV mangled it. Now I have a radio show I can look forward to hopefully every week or so.

I’ve been thinking a bit about getting back into doing an online radio show. I used to host “Voices In My Head” on WOPN/Freenode Radio, back when that still existed. Ever since that station fell to the ground, I’ve been wanting to set up a new one with 24-hour independent music and weekly radio shows of various types. It’s something I’m seriously considering now. Maybe I’ll look into expenses and talk to a few people…

Pretty Shiny Monitor

So, a few days ago, Dell had a deal on a 20.1″ Dell 2005FPW Widescreen LCD monitor. We have the 20.1″ non-widescreens at VMware, and I love them, so I thought I’d throw some money Dell’s way and pick up a widescreen. I found out that I could also purchase a $35-off coupon on ebay for only $5, so I managed to get another $30 off there. All in all, before tax, it came down to $450. It arrived a few days ago, and I must say, it absolutely rocks. I’ve been using it in the living room, playing World of Warcraft on it. It makes such a difference 🙂 Everyone should get one.

Now that I type this, I see that Chris Lee purchased one too. Very cool. Enjoy 🙂