Wednesday, August 8, 2012

Why Microsoft's default Do Not Track setting is bad

This is a cross-post from the Simplare website.

There has recently been much debate over the tracking of users browsing the Internet. Many advertisement platforms such as Google's AdSense track users across multiple websites in order to customize the ads shown to the user. By learning more about the behavior of users it is possible to show ads that the user will more likely be interested in and thus more likely click on.

There are however a large group of users who does not like to be tracked and would prefer more generic ads. Their only way of preventing advertisers to track them has so far been to install software such as AdBlock, NoScript and FlashBlock. These solutions will remove ads entirely which is why advertisers are looking for a better solution which can cater to the privacy minded minority while still serving up ads for most of them (some will of course still remove ads altogether).

Enter, Do Not Track (DNT). This is a new header that the browsers can send to the websites, telling them to not track the user. The websites (and advertisement platforms) then need to look for this header and honor it. Since the system has so far been opt-in (you need to activate it yourself) most advertisers has decided to actually honor the setting.

But now Microsoft has decided to make the Internet Explorer 10 browser send out the DNT value of 1 (meaning users should not be tracked) by default. This is bad. Mostly because it will make it tougher for advertisers. But also for me.

On the Stoffi website I have put in place a few lines of code which looks for the DNT header and if the value exist and is set to 1 it will not include the Google Analytics code. I use Google Analytics to know how many people visit the website, where they go, which browsers they use, how they found us, etc. This information is very valuable to me as it helps me know how to best improve the website. I can easily find pages where users get stuck. I can see when someone wrote about us and starts to send us users, thus allowing me to visit that website and perhaps engage in a conversation by leaving a comment. I could see which languages we should focus on, and so on.

But if the majority of users will have the DNT header turned on I might be forced to ignore it as I will no longer be getting information about what is going on on my own website. I still can't track individual users, I can't follow a single person around on the website. However I felt that honoring the DNT header by removing the Analytics code was a great feature. I would love for Microsoft to reconsider and have the setting be opt-in, but it's starting to look doubtful.

Also, most advertisers will probably also start to ignore the header, thus defeating the whole purpose and rendering the effort moot.

Wednesday, August 1, 2012

Beta update: SoundCloud, radio, more cloud


Yesterday I handed in my thesis report to my supervisor. So now I have finally found the time to wrap up all the changes and new stuff in the alpha channel and moved it into the beta channel for testing.


This is quite a big change coming. First and foremost I've added support for SoundCloud streaming. It works just as you'd expect: there's a new SoundCloud item in the navigation tree and when you select it you get a list of the currently hottest videos. Type in a search in the search bar and you'll get the 50 most relevant results directly from SoundCloud. You can mix and match local files, YouTube videos and SoundCloud tracks in playlists and the queue.

Internet Radio

There's more streaming! I have also added Internet Radio to Stoffi. You can add radio stations by typing in the URL in the "Add URL" dialog. All radio stations will show up in the new Radio item in the navigation tree. Naturally, you can mix in radio stations in your playlists or queue. Note though that Internet Radio is eternal, so it will never reach the end. But that doesn't mean it's never a good idea to mix it in your queue or playlist. You can queue some local files, some YouTube videos and a pair of SoundCloud track, just to finish off with your favorite radio station at the end.

Playlist synchronization

The new cloud service that got started in a few months back is continuing. I have added playlist synchronization. So now you can setup Stoffi to synchronize all your playlists across computers. Stoffi will automatically add local files if they exist on two computers. For example if you have Bob Marley's One Love on your hard drive and add it to your Reggae playlist, it will show up on all other computers that also have the One Love file. Stoffi looks at the filename and length of the song. So even if the file is located in a different folder Stoffi will find it and add it to the playlist.

File and protocol associations

File associations have finally been properly taken care of in Stoffi. We previously used the built in stuff in Visual Studio's Setup project type. But the problem here was that if the file type was already "taken", Stoffi didn't get a hold of it. So if you had any other application registered for handling .mp3 files, then Stoffi could not associate itself with .mp3 files. Now, Stoffi will present a Windows 7 Task Dialog when you first start it and ask if you want to associate it with all supported file types. You can either accept, skip, or select which associations should be applied.

One of the coolest things with this new association code is that it will also associate Stoffi with some new URL protocols. This means Stoffi can now open some special links on the Internet. So on the website you can now see links to play songs or playlists in Stoffi. I will fully document how Stoffi expects these URLs to look so that other applications or websites can use them.


Thanks to Carl Carenvall we have a new and awesome plugin system in Stoffi. This was part of the 2011 Hackathon during last fall but wasn't finished and stable enough until now. But it was worth the wait. We have two plugins already: a basic visualizer which will show a spectrum line, and a Kinect plugin (this was actually my thesis project) which will connect the volume to the amount of dance in the room, so the more you dance, the higher the volume.

The plugin system will be expanded even further in the future. More filter operations will be added, a distribution and upgrade system for plugins will be created, and more documentation will be added like tutorials and example code, so that anyone can get started building plugins.

So get ready for even more plugin goodness in coming updates.

...and even more

I have also fixed a few bugs, added some minor enhancements, and tweaked some stuff. You can now have Stoffi pause at the end of each song, open files in Windows Explorer, and the details pane will now show information when you select navigation items.

The website has also gotten a minor face lift. It has a gray background with white behind the content which should make it easier to focus on the text. The blue and gold has been refined. The gradients are gone and typography is used more around the design. I really like the new design and hope you will too.

I have also added more third party services. You can now login with Windows Live,, Weibo, vKontakte, Yahoo, and MySpace.

Test it out

You can download the beta on the website. I have already started to deploy this upgrade to all people running the Stoffi beta so you may have gotten it already. Be sure to test it out, focus on the new stuff, and report all bugs you find as usual.