2005-10-30

Slang

bullshit bingo

Bullshit Bingo - Check off each block when you hear these words during a meeting, seminar, or phone call. When you get five blocks horizontally, vertically, or diagonally, stand up and shout BULLSHIT!!

(via Hotlinks)

And Paul Graham's keynote at the OSCON 2005 (What Business Can Learn from Open Source) is available at IT Conversations.


[] - trackback

2005-10-29

Tagmacs

emacs tagging

If you like Emacs and if you are addicted to tags you will love Conrad Barski's tagging mode, which turns any text document into a full-fledged tag-aware application.


(via Hot Links)


[] [] - trackback

2005-10-27

3 tools to search within del.icio.us

David Weinberger recently posted a transcript of a talk given by Joshua Schachter at the Berkman Center, which revealed some interesting figures: currently del.icio.us has 10,000,000 posts with 5,000,000 unique links and 500,000 tags... There is a lot of collaboratively prefiltered and tagprocessed knowledge in there, but how can you access it?

Well, I don't know, but there are many tools available which provide some sort of filter on the overwhelming incoming linkstream, here are a few I like:


fac.etio.us

fac.etio.us provides faceted layers on about 200,000 links from del.icio.us. Available facetes are: organization (Amazon, Apple, BBC, ...), activity (art, business, design, ...), place (Australia, Canada, China, ...), technology (blog, css, internet, ...), attribute (color, cool, daily, ...), genre (article, community, diy, ...), tag (art, blog, css, ...), contributor, site (del.icio.us, en.wikipedia.com, msdn.microsoft.com, ...), and date.

You can combine them any way you want, I love the organization facete. You can search for funny links at Microsoft, or productivity links at the BBC, and so on. (The project seems to be sleeping, though.)


popul.icio.us

popul.icio.us provides a nice overview of the most popular links which have been added for the first time within the last 24 hours / 48 hours / 7 days / 30 days and it also shows the all time favorites. This is a very low effort way of keeping up to date with trends that might emerge.


CollaborativeRank

CollaborativeRank takes an interesting approach: it computes the relevance of search results based on the expertise of del.icio.us users for each tag. It also filters out duplicates, and seems to put more weight on recently added/tagged links.

The most useful users for each tag are displayed at the top of each page, their collection usually also is a good starting point for finding interesting stuff. (It also has a list of the 500 Top Del.icio.us Users.)


[] [] - trackback

2005-10-25

On the Road

Yahoo! Trip Planner

Yahoo! Travel has released a nice little planning helper called Trip Planner. It's somehow a mashup of their own services (Yahoo! Travel, Yahoo! Maps, also leveraging Flickr somehow) with a shot of 37signals minimalism.

I don't want to duplicate the infos given in Yahoo's tour here (which tells all), but you basically can create trips, add items (Yahoo helps you starting out by offering suggestions from its Travel Guide), and organize your items (by category, you can schedule them, tag them, and annotate them), and share your trip with the world or a list of friends.

I just planned my next trip (to Vienna) and it really was fun to use.


[] [] [] - trackback

2005-10-24

DIY Memes

DIY Meme-map

DIY Meme-map Generator

(via del.icio.us/ricmac)


[] [] []- trackback

2005-10-21

Beta 200.0

The MoMB just hit a mind-boggling 200 entries mark.

It's not part of the mission of the museum to be judgemental, but believe me, there are quite a few (well known and not so well known) pearls of beta wisdom inside.

MoMB 1
MoMB 2


[] [] []- trackback

2005-10-20

Where You Are

This is an interesting project in collaborative tagging: Where You Are:

Whereyouare is an experiment in the collective documentation of neighborhoods. I began this project with the idea of documenting my own neighborhood of Williamsburg, Brooklyn, whose quirky and ephemeral beauties are currently endangered by a wave of new development. As with most people, recent events have radically altered my idea of what an endangered or lost neighborhood is, and it seemed right to open the project up for wider use.


Everyone is invited to contribute photos, videos, links, and other content taken from or for his neighborhood, and tag them with a special geotag (e.g. ur60329de for Frankfurt's Railway Station) for indicating the location. Whereyouare aggregates the content from Flickr, Vimeo, del.icio.us, Technorati, and Foundcity, so each place gets his own access point for exploration.


Related: HOW TO geotagg del.icio.us bookmarks from the Make Blog, great stuff.


[] [] []- trackback

2005-10-19

Essential Web 2.0

Tape It Off The Internet

A milestone in the ongoing hegemonic struggle on defining the Web 2.0: Tape It Off The Internet.

They are not quite there yet, but once they are tioti will be pure Web 2.0:

* Tons of RSS
* AJAX
* Web 2.0
* Ruby on Rails
* Open API
* Permanent BETA
* P2P
* Rich Media
* Long Tail of TV
* IM, Chat and VOIP
* Gradients and Shadows

...did we miss anything?

* oh, Tagging
* and Mobile something


And yes, they are For Sale.


(seen at Web 2.0 Central)


[] - trackback

2005-10-18

Search Engine for Sale, Current Bid: US $2,025.00

Hmm, forget my previous posting, who needs a Morse Code Watch, if you can get your very own Search Engine on Ebay?

Jux2 is a meta search engine which scans Google, Yahoo, and AskJeeves, and will display results found in each of them first. There are also nice filters (what Google/Yahoo/AskJeeves is missing, what only Google/Yahoo/AskJeeves found,...), which are quite interesting.

jux2

(via John Battelle)


[] - trackback

Morse Code Watch

Each year two or three weeks before christmas my father asks me what Santa might consider bringing me as christmas present, and I never have any idea. He usually ends up with a pullover knitted in lovely Shetland Wool, which I never ever wear (I have a nice collection by now).

This year I know: the first ever Morse Code watch.

Morse Code Watch

(via Gizmodo)


[] [] - trackback

2005-10-16

Keeping it Peel

Last Thursday was John Peel Day, BBC's Radio 1 celebrated his memory with a massive 6 hour special, many other events, and tons of archive material.

(All shows are still online, so grab them while you can)


[] - trackback

This week’s best posts

My choices for the best posts of the week. Tickle some links and see if you like ‘em too:




[] [] - trackback

2005-10-12

Googlemarks

Google recently blurred its Search History with its Personalized Search and added bookmarking into the mix.

From Googles Help:

Bookmarks are a set of links to your favorite websites. When you are browsing your Search History, just click the star next to one of the search results listed to create a bookmark for that website. Once you've starred a site, you can click the "Edit" link to add a label or notes for the site. You can then view the bookmarks for specific labels using the links on the left side of the page. The labels and notes you create for bookmarks are also searchable.


Michael Arrington's take is that Google Targets Del.icio.us (but bookmarks are not public yet, and they require too many steps to be created, and del.icio.us' commanding network effects could be hard to top as seen with Yahoo's My Web 2.0, so they better acquire them), but there is no indicator that they are up to anything social here.

It's more about turning one's individual search-, click- and attention stream into a monadic Gmail inbox.

The way it works is actually pretty odd if you think in terms of bookmarking: you need to log in with your username and password, and then forget about it and search with Google for stuff. Whenever you click on a link, Google adds it to your Search History, but there is no way of explicitly bookmarking a resource you didn't find it via Google. (It also won't add a link to the list, if you opended it in a new window.)

Once you're done, you can browse within your Search History very much the same way you would browse/process your Gmails: search for text within them, remove items, or flag items as bookmarks and associate them with labels/tags. I found it to be useful to clean up my Search History every once in a while, but this is a pretty powerful tool.


[] [] [] - trackback

2005-10-10

You are not alone

I finally came around to reading The Structure of Collaborative Tagging Systems by Scott Golder and Bernardo A. Huberman (via You're It via Ed Vielmetti), and even if it contains some interesting observations, I was left with the feeling that they didn't really grasp the collaborative power of these systems very well.

Here are a few notes on some statements I disagree with:

From 2.1 Semantic and Cognitive Aspects of Classification:

Synonymy, or multiple words having the same or closely related meanings, presents a greater problem for tagging systems because inconsistency among the terms used in tagging can make it very difficult for one to be sure that all the relevant items have been found [1]. It is difficult for a tagger to be consistent in the terms chosen for tags [2]; for example, items about television may be tagged either television or tv. This problem is compounded in a collaborative system, where all taggers either need to widely agree on a convention, or else accept that they must issue multiple or more complex queries to cover many possibilities [3]. Synonymy is a significant problem because it is impossible to know how many items “out there” one would have liked one’s query to have retrieved, but didn’t.


[1] This point is raised over and over again, and in my opinion it's just plain wrong. If you tag some item tv, someone else will tag it television - or vice versa, so the item will be found using either term. One probably could argue that if an item is bookmarked by very few people, one might miss relevant results, but so what. As items become popular (which is an implicit indicator for being relevant) they will be found.

[2] Why is it difficult? del.icio.us provides you with a list of tags you previously used and with another list of tags other people used. And even if you do tag inconsistently, it is very easy to homogenize your tags later by renaming and/or merging them.

[3] Widely agreeing on a convention is not only impracticable, it's actually also bad advice, since this would eliminate any special meaning individuals might add to the cloud. Again, if one user doesn't apply a term, another user will, so there usually is no need for multiple or complex queries for finding stuff.

Relatedly, plurals and parts of speech and spelling can stymie a tagging system. For example, if tags cat and cats are distinct, then a query for one will not retrieve both, unless the system has the capability to perform such replacements built into it.


Same as above (someone will use cats, and anotherone will use cat, so there is no need for tag-stemming), but that's even worse advice, since such a system would blur the meanings one might associate with each tag for ones personal use.

For the purposes of tagging systems, however, conflicting basic levels can prove disastrous, as documents tagged perl and javascript may be too specific for some users, while a document tagged programming may be too general for others.


This is not disastrous, quite to the contrary: this is one of the qualities of social tagging systems. Basic leveled tags will be used by folks who don't draw a distinction, specific leveled tags by folks who do, and everybody is happy. Again they seem to forget that you are not alone.


From 3.2 User Activity and Tag Quantity

That is, some users use Delicious very frequently, and others less frequently...

Some users have comparatively large sets of tags, and other users have comparatively small sets...


duh

Because sensemaking is a retrospective process, information must be observed before one can establish its meaning (Weick et al. forthcoming). Therefore, a distinction may go unnoticed for a long time until it is finally created by the individual, who then continues to find that distinction important in making sense of future information. Since finding previously encountered information is extremely important (Dumais et al. 2003), this is deeply problematic for past information. For example, user #575 (Figure 4a) did not use “tag 3” until approximately the 2500th bookmark. If ‘tag 3” indeed constitutes a new distinction among the kinds of items this user bookmarks, though Delicious does allow users to alter previous bookmarks, it would be arduous to reconsider each of the earlier 2500 bookmarks to decide whether to add “tag 3” to them. Further, if in the future this user needs to filter his bookmarks by “tag 3”, then no bookmark before the 2500th will be retrieved, compromising the practical usefulness of the tag.


Here they raise a good point, but they underestimate the cognitive abilities of taggers of being able to reflect their own tagging behaviour of the past. Anyone who started adopting the tag ajax for instance at some point, still will be able to retrieve relevant items by searching for javascript and/or xmlhttprequest and/or whatever previously seemed to be the most appropriate. Does this compromise the practical usefulness of ajax? I don't think so.


Overall this is an interesting paper of course, so if you are into tagging and del.icio.us (which you are, since you are still reading this), head over and read it.


[] [] [] - trackback

2005-10-08

Prophylactic Bookmarking

As of today 44 people already have bookmarked Google's obviously soon to be launched Calendar: http://del.icio.us/url/268bbf8819910d50e45acbd68ff73375.

common tags are:

37 google
29 calendar
8 tools
6 web
5 cool
4 tool
3 useful
3 gtd
2 organization
2 ajax


[] [] [] - trackback

2005-10-07

Ning

ning
Ning

For the highly unlikely case you haven't heard of Ning yet: it's a platform for building and running social web applications (listings, reviews, ratings, recommendations, discussion boards, photo sharing, social bookmarking, wishlists, events, people matching, maps,...).

Ning provides the whole infrastructure and basic building blocks for free. Once you've signed up with Ning (and grabbed the Beta Developer status, which might take a while) you can start creating your very own applications by either cloning and modifying existing ones, or create them from the scratch. (I haven't tried it yet, but a quick peek at the Developer Documentation seems to suggest that it shouldn't be too hard, even for webdummies like me.)

Now my first thought was cool. Lego/Ikea for social software, and my first sentiment was but who needs another 100 del.icio.us, Craigslist, Flickr, LibraryThing, or KittenWar clones? - but of course it's in the hands of the users/developers what they come up with.

On a second thought, I really like a few aspects of Ning:

* the costs for rolling a social app are approaching zero. This is no ticket for usefulness or creativity, in fact it's an invitation for noise and application spam, but it also opens a space for interventions that have not been possible before.

* all content posted to any Ning-based application is covered under a Creative Commons license and thus is reuse-, mix-, and mashable from any other Ning-based application (and everyone else).

* Ning breaks down the barriers between individual applications. You can search for tags, and you will find items within any application in the Ning-space - of course you can restrict your search to individual apps. Hence you just need a single user account for participating in soon to be thousands of apps, but you still have a convenient entry point (http://www.ning.com:80/pivot/any/yourusername) for tracking all your activities.

However, exciting times for the social web.


[] [] [] - trackback

2005-10-05

The Simpy Life

If you take a close look, you'll see that I added a Simpy-based search here. (If you don't know Simpy, check it out.) It performs a fulltext search on all my simpy-fied links and entries of this blog, and displays the results inline (given that you use Firefox, Camino, or Opera; it won't work with Safari and is untested with IE).


Here is how I did it:

(1) I wrote a PHP-script, which calls Simpy's REST API:

simpy.php

<?php
    // Snoopy is an HTTP client in PHP
    require_once('./Snoopy.class.inc');

    // build the URL for Simpy's REST API
    $url = 'http://www.simpy.com/simpy/api/rest/GetLinks.do?q=' . urlencode($_GET["q"]);

    // call the URL via Snoopy
    $client = new Snoopy();
    $client->agent = "bbyt simpysearch (snoopy)";
    $client->user = "yoursimpyusername";
    $client->pass = "yoursimpypassword";
    $client->fetch($url);

    // echo Simpy's response
    echo ($client->results);
?>



Simple enough all this does is to extract the query, build the URL Simpy expects, and use Snoopy (which is a single file) for the call of Simpy. Simpy responds with a XML-document containing links matching the query.


(2) I added a form and a <ul>-element for the results to my Blogger template and included a JavaScript file:

html snippet


... include simpy.js somewhere in the head
<script type="text/javascript" src="http://path/to/simpy.js"></script>
...
<li>
<h2>Search
(powered by <a href="http://simpy.com/">Simpy</a>)
(firefox, opera, camino)</h2>
<form name="simpy" action="#" onSubmit="searchSimpy(); return false;">
<input name="q" size="19" value="" type="text">
<input name="submitsimpy" type="submit" value="go">
</form>
<ul id="results">
</ul>
</li>


The form just calls the function searchSimpy() of the JavaScript (simpy.js, see below) when being submitted. This method will display the results as <li>-elements.


(3) I wrote the JavaScript (by harvesting some AJAX tutorials out there), which glues the HTML-form and the PHP-script together:

simpy.js

var http_request = false;

function searchSimpy() {
    var searchterm = document.simpy.q.value;
    var url = "http://path/to/simpy.php?q=" + searchterm;
    makeRequest(url);
}

function makeRequest(url) {
    http_request = false;

    if (window.XMLHttpRequest) {
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
            http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }

    if (!http_request) {
        return false;
    }
    http_request.onreadystatechange = injectResults;
    http_request.open('GET', url, true);
    http_request.send(null);
}

function injectResults() {
    if (http_request.readyState == 4) {
    
        var select = document.getElementById("results");
        select.innerHTML="";
        
        if (http_request.status == 200) {
            var links = http_request.responseXML.getElementsByTagName("link");

            for (i = 0; i < links.length; i++) {
                var list = document.createElement('li');
                var link = document.createElement('a');
                link.appendChild(document.createTextNode(links[i].getElementsByTagName('title')[0].firstChild.data.replace("Blog before you Think!: ","")));
                link.setAttribute('href',links[i].getElementsByTagName('url')[0].firstChild.data);
                list.appendChild(link);
                select.appendChild(list);
            }
            
            if (links.length == 0) {
                var list = document.createElement('li');
                var link = document.createElement('a');
                link.appendChild(document.createTextNode("no result"));
                link.setAttribute('href','#');
                list.appendChild(link);   
                select.appendChild(list);    
            }

        } else {
            var list = document.createElement('li');
            var link = document.createElement('a');
            link.appendChild(document.createTextNode("no result"));
            link.setAttribute('href','#');
            list.appendChild(link);   
            select.appendChild(list);  
        }
    }
}


searchSimpy() builds the URL the PHP-script expects and triggers makeRequest(), which performs the request. If there is a valid response, makeRequest() calls injectResults(), which extracts the links of Simpy's response and displays the results in the blog.


Please note that I don't know PHP at all, and that this was my first use of AJAX. If you've spotted obvious mistakes, let me know (especially the incompatibility with Safari is driving me crazy).


[] [] [] - trackback

2005-10-04

The Museum of Modern Betas

May I introduce: MoMB - a Museum of Modern Betas. I actually just wanted to give the latest and greatest release of Textpattern a try this weekend, but then wasn't able to stop...


[] [] [] [] - trackback