Category Archives: Online Life

Towards Better Bookmark Syncing: and diigo

I use Firefox (well, Iceweasel) from several machines. On a daily basis, at least three: my workstation at home, my workstation at work, and my laptop. I have wanted to have my bookmarks synced between all three of them for some time. I’ve been using unison to sync them, which mostly works. But firefox likes to store a last-visited timestamp in bookmarks.html, so if I have a browser open at more than one place, I get frequent unison conflicts.

I started searching for better alternatives again, and noticed that the new alternative plugin for Firefox supports a version of the traditional Firefox Bookmarks Toolbar. I use that toolbar a lot, and anything I use in place of standard Firefox bookmarks absolutely must support something like it.

I imported my Firefox bookmarks (about 900 or so) into They arrived OK, but flattened, as doesn’t have a hierarchical structure like Firefox does. After a good deal of experimentation, I have mostly gotten it working how I want. I’m using the bundles mode of the extension toolbar in Firefox, and simulating subfolders by using certain tags. It works fine; not quite what I’d want out of it ideally, but everything else is so much better that I’m happy with it.

The social bookmarking aspects of sound interesting, too, but I haven’t started trying to look at that stuff very much yet. Delicious also has a new “Firefox 3” extension that also is documented to work fine in Firefox 2. It has a few new features but nothing I care all that much about.

My main gripe at this point is that the Firefox extension doesn’t allow me to set things as private by default. It also doesn’t propogate my changes to the site immediately, which led to a considerable amount of confusion initially. On the plus side, it does do a synchronization and store a local cache, so I can still use it offline to load up file:/// links.

Some things about bug me. There are very limited features for editing things in bulk (though Greasemonkey scripts help here). It has a published API, but seems quite limited (I couldn’t find out how, in their documentation, to add a tag to an existing bookmark, for instance.) lets you export all your bookmarks, so you have freedom to leave. Also, if you poke around on, you can find Free Software alternatives that actually emulate APIs and sites.

I also looked at alternatives, and it seems that the most plausible one is Diigo. But I’m going to refuse to use it right now for two reasons: 1) its Firefox plugin has nothing like the Firefox bookmarks toolbar, and 2) its hideous Terms of Service. If you go to their ToS and scroll down to “Content/Activity Prohibited”, you’ll see these gems:

6. provides any telephone numbers, street addresses, last names, URLs or email addresses;

7. promotes information that you know is false or misleading or promotes illegal activities or conduct that is abusive, threatening, obscene, defamatory or libelous;

11. furthers or promotes any criminal activity or enterprise or provides instructional information about illegal activities including, but not limited to making or buying illegal weapons, violating someone’s privacy, or providing or creating computer viruses;

So, in other words, they can delete me account if I bookmark the contact page, or if I bookmark the opinions of someone I disagree with. Good thing the Vietnam War protesters in the 70s didn’t use Diigo, because they’d be kicked off if they wrote about their sit-ins at Berkeley. Also, I didn’t even quote the other section that says they get to remove anything you post that they think is offensive, in their sole judgment. Goodbye, links to EFF’s articles about RIAA.

Since we can’t use last names, I guess it’s just “Hillary” and “John” instead of “Clinton” and “McCain”. Oh, and don’t get me started about the folly of operating a social bookmarking site where you aren’t allowed to post URLs. That’s right up there with Apple releasing a Windows version of Safari that you aren’t allowed to install on PCs.

Compare that to the terms and privacy policy and the contrast is stark indeed.

Oklahoma Man asks The Register to turn off the Internet

A couple of days ago, I mentioned the Register article about the Tuttle, OK city manager that threatened to call the FBI on a Linux developer because his webhost misconfigured their server.

Now The Register has a great followup. Apprently people all over are justifiably upset at the city manager.

There are also some great reader comments over at The Register.

Also, that city manager has removed his e-mail address from But fortunately, we all remember that it’s

Tuttle, OK city manager offered choice about being an idiot

I just read a story on The Register entitled Oklahoma city threatens to call FBI over “renegade” Linux maker. Quite hilarious.

Apparently Jerry Taylor, city manager for Tuttle, Oklahoma, noticed that the city’s webpage wasn’t working right. He got the default “test page” for the Apache webserver on CentOS.

Instead of calling the hosting company, he sent a series of vicious emails to CentOS, even threatening to call the FBI. The CentOS folks really went out of their way to help this guy — he was not even their customer. And he repaid them by saying they should have helped him sooner.

Of course, there was the obligatory comment about being computer literate: “I am computer literate! I have 22 years in computer systems engineering and operation. Now, can you tell me how to remove ‘your software’ that you acknowledge you provided free of charge? I consider this ‘hacking.'”

The Register story is hilarious, and the original discussion even more so because it includes a full transcript of the event. Favorite quote (to the city manager):

If you will not let me help you, or at least talk to someone who knows what Linux is, then you will look like an idiot.

Your choice.

Should anyone wish to write to the city manager of Tuttle, OK, to complain about his outrageous behavior, his e-mail address is Assuming they have figured out how to properly configure e-mail.

He’s probably not worth his $63k salary and with a personality like this almost certainly isn’t giving his employees the “feeling that we’re ‘working together'” (see that link).

Sigh. Why do people hire a guy like this in the first place?

Some Airport Statistics

Airport Number of Gates Annual Passengers (2000) Wireless Internet Options Plainly Visible to Travelers
Charlotte, NC 79 10,377,837 None (checked all of Concourse A plus the atrium)
Atlanta, GA (Hartsfield) 176 38,255,778 None (and I walked almost the entire length of Concourse C to check)
Wichita, KS 12 535,715 Four free work centers throughout the airport, clearly marked, each offering four work areas complete with desk, chair, AC power, Ethernet connection, and wireless Internet access. Wireless connectivity extends into most gate areas as well. ESSID: “FREE”.

What Do You Take On Your Laptop?

I’m writing this as I’m preparing my laptop for our trip.

My first two questions for a trip are: do I take the laptop and do I take the camera?

Both are rather bulky compared to the other items I would take with me, and both are by far the most valuable item I’d have.

For many trips, I leave them behind so I don’t have to worry about them. It can be easier to just enjoy things that way, and sometimes it’s nice to not have e-mail and Haskell available as distractions. I find myself doing things I wouldn’t otherwise be doing sometimes.

On the other hand, sometimes it’s nice to be able to have a secure way to check my e-mail on the road. (I never trust public machines/terminals, way too easy for them to become infected with spyware.) Sometimes it’s nice to have things to do, too. So here’s what I’m loading my laptop up with for this trip:

  • A full sid mirror, binary-only, for its architecture. I already have a copy elsewhere on the LAN, and I have enough spare disk space, so it makes sense. I always hate being stuck somewhere without a ‘net connection and really needing some package.
  • Several books, mostly from Project Gutenberg.
  • Updated recent checkouts of stuff from my darcs repository.
  • Maps, lists of free hotspots, and information about the cities I’ll be in
  • Current copies of my e-mail (via OfflineIMAP) and Usenet news (via newsx) to read/work with
  • Docs and references for GHC and any other programming tools that I might wish to use
  • Some MP3s
  • One CD-RW, in the drive, in case I need to exchange data with anyone

What does everyone else load up on their laptops?

Be Gone, Comment Spam! (Again)

I’ve had a lot of trouble with comment spam. This blog has blocked many thousands of comment spams. And unfortunately, it’s blocked a few of Cliff’s legitimate posts, too.

So I have switched to the new captcha module for Drupal. In case you don’t know, a captcha is an automated test designed to tell humans and computers apart. It often takes the form of a graphic with letters or numbers in it — letters or numbers than humans can read, but computers can’t.

I used this idea before with WordPress and it was 100% successful.

So now, you can prove that you are a human right when you make a post — and you will be told instantly if the post is accepted or not. And if it is, it appears instantly.

A lot of comment spam is arriving via trackbacks, and captchas can’t be used with them, so I’ve disabled trackbacks for now.

I think this should make blogging a lot less annoying.

This change also applies to the other Drupal sites hosted here: The Haskell Sequence, Forest of the Plains, and Rail Passenger.

Oops, we passed the Turing Test

I was bored last month. I decided that it would be fun to hack up an AI bot to sit on the #haskell IRC channel.

I wanted this bot to be a conversation bot, so I would need some sort of AI engine. I wanted it to be a learning bot, so it could learn from what people have said before. I searched around, and it seems there aren’t many good learning AI engines out there for Linux. I eventually settled on MegaHAL.

I then obtained the logs for the conversation in #haskell over the past year, and used it to train the bot.

The result was sometimes hilarous, and often riddled with typos and nonsensical (considering the source, many would say that would be expected).

I started a page of MegaMonad quotes with some of the funnier exchanges.

But here’s the best part: there was a person on the channel that didn’t realize that MegaMonad was a bot! Perhaps we just passed the Turing Test accidentally…