Scuttle: Your Own Server-Side Bookmarks the del.icio.us’ Way

I have been using del.icio.us since I first heard about it (by reading an announcement of its acquirement by Yahoo!) and I have to confess I was taken by the approach. The only thing I didn’t like was the fact that I didn’t have my bookmarks and the service under control.

Thanks to a note by Erik I found out about Scuttle, an open source clone of del.icio.us which everyone can host on his/her own server. (Please note: scuttle.org only offers their public bookmarking service, the software can only be located at their SourceForge page.) Scuttle is written in PHP and requires MySQL as database backend.

Scuttle offers most of the features of del.icio.us and can even import your bookmarks from there. Some minor usability-issues still arise, but I can live with them. Their API is compatible to del.icio.us so most external del.icio.us applications will work with Scuttle, as long as the tools allow you to specify the URL of the service. Additionally, Scuttle provides three levels of visibility for your bookmarks: public bookmarks, shared with your watchlist (= your friends/colleagues), and private bookmarks.

I installed Scuttle at my company and everyone is busy using it and is happy to now having a central place to store their bookmarks. Del.icio.us was no option for us because all bookmarks are public there.

I can strongly recommend using this software to everyone who wants to have a centralized way for storing their bookmarks without giving away all controls over their bookmarks.

NewsForge has published a nice review of the software.

Gentoo: MySQL and PHP Charset Problems

At the moment, Gentoo is experiencing several inconsistency and problems with character sets between MySQL and PHP. This is primarely based on MySQL-4.1 now updating from 4.0 without warning and user interaction which most of the times breaks existing extended characters as MySQL now stores every dump from former databases as UTF-8, which is still badly supported by PHP.

For many PHP web applications which experience problems with extended characters (like umlauts, accents, …), the following hack might help.

  1. Locate the file where the mysql database connection is opened.
  2. Add the following commands after opening the database connection:
    mysql_query('SET character_set_client=latin1');
    mysql_query('SET character_set_results=latin1');
    mysql_query('SET character_set_connection=latin1');

This will resume using latin1 instead of UTF-8 for the connection and the result set. For performance reasons, the data in the database should then be stored as latin1 as well.

According to messages in the Gentoo Forum, the developers have now released an ebuild for PHP (both 5.x and 4.4.2) that will regard character-set settings in my.cnf in a section especially for php (still in unstable). You should use the section [php-cli], [php-cgi] and/or [php-apache2handler]. Unfortunately I have not yet had time to test this out.

Apache: Force SSL for a Directory Using .htaccess and mod_rewrite

To force SSL on a given directory using .htaccess, use the following code. It requires mod_rewrite enabled in Apache. Adjust the path in the RewriteRule to match the full qualified URL of the HTTPS-domain.


RewriteEngine On
RewriteCond %{SERVER_PORT} !443
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

Bugzilla: Active Directory Integration

As you might have guessed from previous posts, I’m currently in the process of implementing a single-sign-on scenario within our network. Or, at least, I’m trying to have at least one single username/password combo for all internal services. Authentication is therefore realized against an Active Directory, based on a Microsoft Windows 2003 Server.

For integration of Bugzilla into the Active Directory, see this link (Update: Link is broken, for an archived version, use this link, thanks to the commenter!).

TikiWiki and Active Directory Integration

If you want to authenticate TikiWiki agaist Microsoft Active Directory, have a look at this article.

The most interesting part in this posting is that if you are using a Windows 2003 Server, you need to patch the LDAP.php in the PEAR authentication module, as Win2k3 by default does not allow any anonymous queries against the directory.

In <tikiroot>/lib/pear/Auth/Container/LDAP.php search for the following line in function _connect():

if ((@ldap_bind($this->conn_id)) == false) {

and replace it with

if ((@ldap_bind($this->conn_id,"someuser","somepassword")) == false) {

Note, that someuser is in the form of user@domain.tld.

I also recommend to choose to authenticate your admin user against the internal database and not the LDAP (AD) container, otherwise you will lock yourself out easily.

Opera for Free

Opera is now available for free, ads and registration have been removed.

Just gave it a quick try, and I have to say, I like it 😉 I think, Firefox is going to have to co-exist with Opera on my HDD.

Update: According to Heise.de (German), Opera has been downloaded over 1 million times within only two days, more than any previous (ad-enabled) version.

Server-Side Bookmarks: SiteBar

I currently work on several computers quite simultaniously and I am also browsing the net using these different machines. In past times this often caused that I had some bookmarks on computer A and others on computer B. According to Murphy’s Law, I always needed a link of a computer which was currently not available.

The solution to this problem is obvious: using a server based bookmark management. On my search for free solutions I found SiteBar which seems to be quite popular. It can be set up in different modes for shared bookmarks of many users and for individuals. I used the latter mode for my installation as it is to be used by me exclusively. Still, the installation features a public and private area for links so not all links can be seen by every visitor.

SiteBar integrates well with all browsers. I had no problems importing my bookmarks files from Firefox and I’ve now set up special shortcut links in my links list on all browser instances I use across the different computers to add the currently viewed site to my SiteBar. The “integrator page” lists several useful plugins for various browsers which allow (for some browsers) to sync local bookmarks and server bookmarks. This particularely solves the problem of bookmarks being only available if the server is online. The corresponding plugin for Firefox is in beta statdium at the moment and only supports syncing server to local bookmarks up to now.

At the moment, we are also evaluating to use SiteBar for the development team at our company to share important links to various resources.

Gnus & IMAP: a superb combination

Gnus, a (X)Emacs based news- and mailclient has been my favorite newsreader for some years now. I used to use it for NNTP based usenet reading only and I really liked it for several reasons:

  • adaptive scoring, it just raised the score of articles I read and lowered the ones I didn’t read
  • flexible and configurable
  • works within X11 and also on a shell
  • available for both, Linux and Windows

Not so long time ago, when I started to play more actively with Gentoo on my home box, I realized for the first time in my Internet-life that mailinglists could be a good supplemental for my usenet feeds and for information retrieval, especially the gentoo-user list. I’ve had always gone around mailinglists because I didn’t find them as appealing and comfortable as newsgroups and I didn’t like the idea of my mailbox being filled with hundreds of postings, mixing with my ordinary mail. Since I got my own mailserver for hosting my domain, I finally figured out that I could easily get around this problem with server-side SIEVE scripts; i.e. server-side mail filtering that sorts all incoming messages of a given mailing list in a certain IMAP folder.

Now, I’ve read several times that Gnus works well with IMAP so I thought I’d give it a try. Let’s say I didn’t regret it. Gnus handles an IMAP backend quite as well as an NNTP backend, in fact, despite some minor differences in handling the expiration of posts there is no difference for me if I am reading my local NNTP mirror maintained with leafenode or if I am reading a mailinglist stored on an IMAP folder. All powerful scoring features I adore so much in Gnus just work on the IMAP feed as well, opening a new world of information retrieval as well.

I keep Gnus running most of the time within a screen backed shell on my server, allowing me access to NNTP and mailinglists from quite everywhere I can/want to log into my box. This is some sort of freedom I really like very much and makes Gnus really a good choice for me.

I already can here Pine-fans and mutt-fans arguing that pine/mutt/whatever handles the job as well as Gnus. Well, that sort of religious discussion never was interesting to me and I can just say: yes, I believe you. But after 4 years of continiously tweaking my Gnus configuration, it just got “perfect” for me. I mean, it does exactly what I want it to do, fitting my needs and tastes. Maybe hardly anyone else could work with my configuration, but that is one of the points I like about Gnus: it’s configurable to hell… 🙂

I think I am going to publish some parts of my .gnus config file as maybe some parts may be interesting. I confess, I have hardly any Lisp-knowlege, so most parts of the file are just taken from the documentation or from other websites. But maybe there are some parts someone else wants to see as well 🙂 And getting a working configuration as a starting point could be the way for some people to try out Gnus as well.

Update (2005-06-14)
As requested in the comments, my .gnus is now available for download. I obfuscated some server entries, please look out for any .invalid domain and replace it with your domain or namespace before using this file.

Short URLs: Future Loss of Knowlege

Short URLs, as provided for instance by TinyURL.com or MakeAShorterLink, are now commonly used when posting to newsgroups or mailinglists. These links are primarily used to get rid of the problem of wrapped URLs in many NNTP/Mail-Clients as well as to make the posts more readable.

Unfortunately, these links also provide a problem regarding future retrieval of information. Often, the short URLs are only valid for a certain amount of time, afterwards they cannot be resolved anymore. When searching newsgroups on the hunt of a problem, I sometimes come accross such invalid links. Nothing angers me more than when reading “just see http://xxx.xxx for the solution” and having no possibility to retrieve the information.

tinyurl promises on its front-page to create an URL that […] will not break in email postings and never expires. Quite some challanging promise, isn’t it? makeashorterlink.com is more conservative in their promise, they only tell that it is going to last a very long time.

I do not want to say that these services are not senseful, on the contrarary, there are many cases where they are senseful. Long links in mails, postings, and instant messages are quite a pain sometimes, but the problem, especially in support forums and newsgroups is, that in my opinion the chances are higher that the short URL service will discontinue than that all archived postings will expire.

Of course, one could argue that the chances are as well that the real URL hidden by the short URL is not valid any more. This will also result in loss of information, without any doubt. If such a commonly used service is discontinued, a lot of URLs become invalid at once where the hidden URL is lost forever while the service behind it might still be available.

There is another point about the short URLs as well: I usually want to know where I am going before clicking a link. That’s also impossible with short URLs.

So, what to do about it? In my opinion, whoever wants to should continue using the services; I sometimes use them as well. But one should also add the long URLs at least to the end of an e-mail or a posting. They might be unclickable due to line breaks, but in case the short URL expires, it is still possible to reconstruct the link by hand.