Oh yeah, that would work

I came across Social History (code) today. In a nutshell, its a javascript plugin that allows you to see what social bookmarking sites each of your users visit. It removes the need of having to display a link to every social site on each of your pages. If a user doesn’t visit digg, don’t waste his screen space with a digg icon. Its a simple idea, it makes sense, and its genius.

More interesting, is how it works. It builds a list of links and puts them on the page somewhere, hidden, so the user cannot see them. Links that you have not visited are in blue, and links you have visited are in purple. The javascript then loops through all the links, and if a social bookmark site has a purple link, it knows you have visited it in the past.

Its nice to see this code being used in a productive way, but there is a pretty large privacy flaw that this code can easily start to abuse. Instead of tracking social bookmarking sites, it could be used to track sites you wouldn’t want anyone tracking, for example online banking sites, facebook pages, porn sites, and whatever else you want to keep private.

The good news is that it can only find the pages you have visited by asking your browser if you have visited a specific page. So in order for it to grab your entire history, it would have to ask your browser about each web page on the Internet, one by one. The bad news is that someone could pretty easily compile an extensive list of private web pages.

Personally, I say we patch this flaw. Lets stop displaying visited links in purple, unvisited links in blue. In other words, kill off a:visited. This is a pretty bold statement to make, but the security benefit outweighs the usability benefit in this scenario for me personally. It probably does for you too, when was the last time you went to a website and 1) saw the blue/purple links, and 2) thought ‘Oh good, I know which links of this site I’ve clicked and which ones I haven’t'? For me, that would be somewhere around 1999.

So yes, remove the a:visited property.

Open Source

I bought a G1 today and while going through the whole sales process with the t-mobile rep, she wouldn’t stop bringing up the fact that the software was all open source.  I am sure she did not have a  complete understanding of what it means for android to be open source, but it sure was great hearing non tech people rave about open source projects.

I believe that open source software is great in a situation where it is only a part of the package.  Make the android platform open source and let developers from all around the world contribute to it, which will result in better code, less bugs/exploits, faster development time, great documentation, and a community with a solid understanding of the system.  This won’t make money, in fact it may bleed money, but it will make an amazing platform with a ton of great applications, themes, and 3rd party addons.  Those extra features are going to keep customers happy, entertained, enthusiastic about the product.  Now customers will be willing to pay for the rest of the package, such a cell phone device, plan/minutes/data, and whatever other services and features can be cooked up by google… and all of those will make money.

As a programmer, I love using open source software for the reasons mentioned above.  I wish there was more open source projects in the mainstream market place that everyday users knew about.  Right now I think when people think of open source they think of dirty hippies wanting to give software away for free, which is so far from the truth (well, partly).  Hopefully android will turn open source into a house hold name and really push the open source business model further along.