A notch above a monkey

EuroPython submission deadline is around the corner

April is about to end and with it also the deadline to submit your EuroPython talk . I thought about submitting a proposal, but realized it would be nuts to do so with my current workload.

It would also be nuts not to go and if you are a European (or not) Python developer you owe it to yourself to come.

I go to a few conferences every year and each has its own personality. It is sometimes hard to point at what makes them (feel) different, but they just are. I like many, but only EuroPython, which I regretfully had to miss last year, feels like home.

That’s why I decided to volunteer this year. It’s a way to give a little bit back, like cleaning dishes when you visit mom.

So do submit your talk and come. It won’t be the same without you.

Using canvas and Javascript to blur images

I admire the look and feel of Mike Matas’ new website . It is really well thought through. I was also intrigued by how he did it, especially after getting a pop-up on my first visit advising me to use a more modern browser than a recent version of Firefox.

There is no point in speculating why some of its features don’t work in more browsers. But I was surprised to see that blurred images are served that way and don’t get blurred in browser. I am playing with an idea of implementing a gallery inspired by Mike’s work, but I would like to reduce manual labor needed for maintaining it.

So I wrote a function that blurs an image on canvas. You can see it in action or copy its code, if you find it useful.

The algorithm used is described in 2001 paper by Wojciech Jarosz. Page contains two implementations, second trading algorithm purity for in my opinion nicer code. Increase number of passes or run it few times over an image, if you need a blurrier result.? Please ask, if you need help with its use.

I also measured its speed to see if it fits my needs. That brought a new surprise. Firefox 3.5.8? on my Linux powered VAIO with 1.2GHz processor blurs image twice as fast as same browser on a Mac with a 2.8Ghz processor. Numbers between runs may vary slightly, but never much. No idea why this is happening, since all functions do is some basic math over items in array that should be well optimized everywhere.

I am sure somebody can optimize it further, but I find it good enough for my use. Image isn’t very blurred after one pass, but one pass over a small image is also a good way to measure how fast a particular computer-browser combination is. On fast combinations I might go for multiple passes over images in view, but fall back to a single pass or no pass on slower systems.

My prototypes on YouTube

I am not much of a YouTube user , but I have recently started to upload some of my work there . You might find them interesting if you are into interactions prototypes for products that may never be (especially if you are a Zemanta user).

I want to stress that while we use prototypes to learn what to implement and how, there is no guarantee that any particular feature shown will be actually included in our products. We do make an effort of listening to our users so please tell us what you think.

This is also a good time to mention that I don’t lead front-end team at Zemanta anymore. My new title is Chief Product Officer which is a fancy way of saying that it is my task to care about our products and our users more deeply than anybody else.