About

Hej. Hello. Hola. Bonjour. 喂. مرحبا
I’m Rasmus Andersson, a twenty-something guy living in Stockholm, Sweden.
Lead designer at Spotify,
owner of Notion and a passionate technologist
with a soft side for emotional values,
coffee and chocolates. Read more…

Hunch

8

Cleaning up your Spotify playlists

1 week ago by Rasmus Andersson, tagged ui and trick, filed under spotify

With the release of playlist groups in Spotify you are now able to clean up that messy sidebar. Here’s a little trick I like myself, using the magic “-” playlist separators to add “dynamic” group dividers.

  1. First thing, create a new playlist group (”+” button, “File” menu or shift-command-N) and add a few playlist to the group (by dragging and dropping).

  2. Select the last playlist in the group and create a new playlist (e.g. by pressing command-N)

  3. Name the new playlist “-” (pictured →) and hit the enter key.

Now, when the group is expanded you will get a divider at the bottom, and when the group is folded there will be no divider:

Screenshots illustrating expanded vs folded state

34

I'm moving on

June 11 by Rasmus Andersson, tagged spotify, life and facebook, filed under spotify

Moving on

After four years of giving birth to and developing Spotify I’m moving on to a new adventure: In October later this year I’m starting as a product designer at Facebook — a journey of innovation, design and the future of the internet.

Leaving Spotify is indeed very emotional — my little baby — but at some point you have to let the bird out of it’s cage. I believe Facebook is a very interesting entity which is changing the way we look at the internet in large — I’m thrilled and very happy to become a part of that.

For me, working with basic human needs (music, social interaction, etc) in an aspect where peoples lives are being improved, has always been the focus of my professional life, thus both Spotify and now Facebook.

The time with Spotify has been the best in my life so far; the people, the laughers, the time we cried out loud, the times of frustration and the times of pure happiness. Being part of and seeing a seed of a world-changing idea grow up to be a industry changing, world spread “thing” is something which can’t be explained. An awesome feeling.

During the end of this summer I’m moving to San Francisco, marking the beginning of an exciting journey with Facebook. As I’ll be a new swede in town, let’s hook up (and maybe I’ll learn a thing or two about the area).

69

Spotify next generation

April 27 by Rasmus Andersson, tagged spotify, monster and release, filed under spotify

Next generation

Internally at Spotify, we are calling this the Monster Release. Yeah, green and all, but the thing is that we’ve been working on this release for 6 months.

Getting social with friends & followers

We have introduced the oh so familiar concept of friends & followers, mainly based on Facebook Connect.

whats-new

At the right hand side you’re now able to toggle a sidebar containing a list of friends (and foes) you’re following on Spotify or are friends with on Facebook.

You can hide away friends (todo: fix the copy “remove” → “hide”) who are spammy or just have an ugly picture:

Also, we have made sharing a track really easy:

  1. Find a song you’d like to share with a friend
  2. Drag the track onto the friend in the right hand-sidebar and drop it.

Your friend has now received a track in her inbox.

Inbox

We’re starting out with the ability to share tracks in this release but will enable sharing of other resources — such as playlists, albums and artists — in a future release.

Play your local files

As of this release, you can now play regular audio files from your computer. We support a wide array of formats including MP3 and AAC.

When you start your new client and pass through the steps of “Start using library” (the big grey button on the even bigger turquoise ribbon in the library view for new users), we’ll automatically import all your music — including playlists — from iTunes. If you’re not an Apple fan{girl,boy} we’ll kindly ask if you might point us to the right direction by picking a bunch of files and/or folders containing audio files.

Later, you can synchronize any additions made to your iTunes library by clicking really firm on the “Import iTunes library” choice found in the “Local files” view header:

Or as you — a smart human being — have guessed already, drag and drop a bunch of files and/or folder onto Spotify and we’ll import them for you in a blink of an eye.

Metadata cleaning? I’m not going to talk about this feature much, since there still are some problems. If you have a lot of mixes (i.e. multiple tracks put together into one large file) I strongly suggest not enabling the “Clean metadata” (based on Gracenote) at the moment. We’re still working on this :)

More details over at our blog →

3

Music Hack day, Amsterdam

April 27 by Rasmus Andersson, tagged musichackday, amsterdam and spotify, filed under spotify

Had a wonderful weekend in Amsterdam attending Music Hack day. We released libspotify for Mac and Windows as well as announced the upcoming playlist web API.

Continue reading...

Ephemicropolis

April 27 by Rasmus Andersson, tagged architecture and art

2

New Dropular released

April 21 by Rasmus Andersson, tagged dropular and release, filed under software

This Monday, at 1700 hours UTC, Andreas & me released the new version of Dropular.

We have written the entire site in JavaScript — both the client and the server — which was a challenge indeed. There are still loads of smaller and larger features to come. If you’re interested, make sure to keep an eye on our blog and @dropular at Twitter.

TEDx Viggbyholm, Stockholm

April 19 by Rasmus Andersson, tagged tedx and slides

Spend the Sunday evening in a great way — speaking (and listening) at TEDx Viggbyholm in Stockholm. I held a relatively short session on natural beauty, taking the opportunity to speak about something else that “design”. Here are my slides:

You can also grab the PDF version if you like.

These slides where just my visual aid. The actual talk will eventually be available at the TEDx YouTube channel.

Check out Anna posing in front of our ride home — Olof Hansson’s car (also a speaker at the event and an amazing guy):

Thank you everyone for coming and thank you Johan Ronnestam for arranging the event.

TEDx in Stockholm on visual impact

April 7 by Rasmus Andersson, tagged tedx and event

If you live in the Stockholm area of Sweden and are interested in visual design, make sure to attend TEDx Viggbyholm. — An event focusing on how visual things changes the way we do things.

Beautiful packaging from ChocoLate Orgániko

February 3 by Rasmus Andersson, tagged packaging, design and food

Came by a set of beautifully designed chocolate bars today at Betsy Sandberg while strolling through Östermalmshallen in Stockholm. These delicious creations are made by ChocoLate Orgániko in Madrid, Spain.

choco-late-600

7

Large-scale distributed processing on the web

December 16 by Rasmus Andersson, tagged javascript, html5, web, dropular and essay, filed under software

Silly drawing illustrating the awesomeness of people and the internets The title probably gives you goose bumps. No? It doesn’t? Maybe it should.

Imagine you have a lot of work to do, a lot of image processing work, like rescaling and cropping large amounts of pictures. Now think about the web as we know it, with web sites where people hang around for a few seconds now and then. Imagine each visitor would be given a task to complete while reading your web site. Like for instance download, rescale and crop a picture from somewhere on the web. It’s possible my friend.

Applied

For the upcoming new version of Dropular we are going to make good use of this technology.

The basic concept of Dropular can be explained with this use-case:

  1. A user called kate drops a picture she just found somewhere on the web (sending its URL to the Dropular service).

  2. kates dropped image appears on the Dropular front page, or in the global stream of pictures as well as appears in other places throughout dropular.net.

  3. Another user — let’s call him john — visits Dropular and sees the picture dropped by kate.

At step 3 we display a smaller version of the original image along with some metadata like a title, link to the original source, and so on. The smaller version of the image will be created by our imaginary user johns web browser. It only takes a split second and john will probably not notice anything.

Methods of processing

When it comes to image processing on the web at large, there are basically two (or three) types of methods one can employ:

  • Host-based processing
  • Client-based processing
  • A combination of A and B

The host-based processing method has the upside of being performed in a controlled environment, thus we can assure a certain level of quality and there are few — if any — trust issues. On the other hand, processing imagery can be a very resource-intensive task requiring loads of hardware and/or time + in most cases bandwidth (sending and receiving the source and output images).

Client-based processing methods are employed by most desktop applications, but until today no web applications, basically because the technology is not yet mature enough or even available.

Moreover desktop applications in general does only perform processing on trusted data, data available in your local computer, and only uses the output of the processing itself. My Photoshop program does not email you my cropped version of crazy-cat.png — if you want to crop that picture you do it yourself.

What we are trying to do is to marry the two methods, effectively performing processing only when needed and sharing the results among visitors.

Flow diagram

The problem with trust

So you’ve figured: the real problem with this shared distributed method is trust. What happens if a rogue user submits a bad picture? How can we trust the submitted outcome?

Ways to “work around” the trust problem:

  1. Only logged in users can submit.
  2. Race for Nth submission.
  3. Compare many with similarity threshold.

Method 1

Method 1 requires the submitting client to be verified (e.g. by means of username and password). The downside being a less powerful “grid” of clients performing passive processing.

A product with the majority of users being logged in, or where the logged in users are probable to activate task requests of most images, would probably benefit most from this solution.

Method 1 is probably the solution we will employ for Dropular.

Method 2

Many clients are given the same task and the Nth submission is picked. “Nth” might refer to a fixed, pre-defined number like “first response received” or “4th response received”, or it might be a random arbitrary number which changes between task contexts.

Using this method it would require a great effort from a rogue users perspective, drastically lowering the probability of success (of messing up things). However, it comes with the cost of increased latency (N number of submissions must be sent in before we can start utilising the results, i.e. a pre-processed image). It also requires more complex and foremost stateful backend (host) software.

Method 3

This method works similar to Method 2 in that we need to keep some kind of state in the host software. We request multiple submissions and compare the “outcomes” using some sort of similarity algorithm1 and identify the biggest cluster of commonality, pick one of the “outcomes” in that cluster and forget all other “outcomes”.

Here, we require a even more complex software running at the host. The upside being that rogue submissions will have a hard time making it (assuming only one submission per internet origin is allowed to participate in each session, and that the comparison algorithm is sufficient).

In practice

As of last week, my Hunch stuff — aka “box of interesting stuff” — uses this technique of distributed image processing. It currently works by using a canvas element to perform the actual processing with, then sending the resulting image data using a temporary hidden form. This currently works in Safari, Chrome and Firefox (possibly also Opera, but untested) — for sad people with Internet Explorer (or other browsers), no processing or submission will be attempted.

In the future

What more than image processing will we be able to distribute in the future? Already today we could hand out simple number-crunching tasks to clients in the same way, but what’s more alluring is the potential of distributing otherwise very expensive — or sometimes impossible — working sets. Data mining vast quantities of resources on the internet, anyone?


  1. In the case of image processing, each outcome might have totally different data (bits) since most image compression algorithms (e.g. JPEG and PNG) introduce some level of randomness, thus we can not use basic data comparison like checksums.