Posts in the "" Category

Want to get an exciting job?

Yesterday I ran into my friend Phil Sherry (yes, the Phil Sherry) in the street, and as a consequence of that, he humbly asked me if I could mention that his company is looking for people. Normally I don’t accommodate to such inquiries, but I’ll tell you why this is different.

Last week I was invited to their office, where I meet a lot of cool people and got to see the amazing things they’re actually up to. Imagine ambitious people who actually read blogs, who want to constantly learn new things and who like what they do. An environment where people know and respect web standards et al, as opposed to thinking it’s some underground guerilla movement.

Therefore, I truly recommend you apply since this is different from most jobs you can get. And if you’re not Stockholm-based, what better reason can you find to move here than this?

The job description reads:

Seeking Experienced Front End Web Developers, Stockholm


We are creating a major new entertainment and community portal built on Ruby On Rails. We now need to expand our team with experienced web developers with a passion for web standards, HTML, CSS and JavaScript.

We are located in a very attractive office at “München Bryggeriet”, (Södermälarstrand 57b) overlooking the water and the old town in central Stockholm.

The project is very ambitious and fast paced with many talented people involved.


You will be required to:

  • transform Photoshop mockups into accessibile and standards-compliant templates that display correctly in all modern browsers.
  • integrate your templates with the Ruby on Rails code by working with loops and conditionals in the template logic.
  • componentise the templates for reuse across the site by developing Rails (ActiveView) helper methods.

What we’re looking for:

  • Successful candidates will have several years experience and a proven track record of producing cleanly coded bulletproof CSS layout templates.
  • Experience of working on Ruby on Rails projects would be extremely beneficial as would experience with other templating systems or scripting languages such as PHP.
  • Priority will be given to the candidates who can demonstrate a keen understanding of accessibility and usability issues.
  • Knowledge of the latest web trends, particularly concerning communities would be beneficial.
  • Written and verbal communication skills in English are necessary.
  • Experience of working on Mac OS X in a team environment with subversion version control would be advantageous.


Dependent on experience and there is a stock option programme offered to employees.

How to apply:

Please send your CV including sample URLs to:
Tim Heighes tim[dot]heighes[at]adocca[dot]com, Project Manager

Comment behavior

Comments and commenting behavior on blogs is really interesting behavior. Some people love commenting, some hate it, some just want to flame and some just want to link to their own web site. Fascinating! 🙂

Naturally, when I write something I want as many comments as possible. It makes me happy, it shows to me that the post is actually being read (no, just checking stats isn’t sufficient :-)) and it opens up for interesting discussions and different points of view.

Then we have the interesting phenomenon of remote commenting, meaning that if someone links to something I’ve written, all or most comments end up in the linker’s post than in my original one that contains the topic everyone’s talking about. This seems to happen to everyone and I wonder why. Should linkers turn off commenting to make sure that the discussion go on in the appropriate forum? Or will those who comment only do it at the linker’s web site because they feel safe discussing things there as opposed to doing it at a weird web site they’ve never seen before?

Another thing I wonder is: What do you expect when you comment here?

Do you want/expect/demand a personal reply? Would you be offended if I replied to some of the other people’s comments but not yours?

Please let me know what you think and what your behavior is like. Also, comment, Comment COMMENT! 🙂

How much spam do you get?

Spam, spam, spam…

I guess most of you, if not all, get an annoying amount of spam every day. After being fed up with offers to buy Viagra, get a larger penis or larger breasts or to make an investment in a company based in Nigeria and run by some heir and relative to the king, you install spam filters. With that you also get the fear of what you might miss out on, wondering if that important e-mail got through or if it contained a word like “sex” and got thrown away before you got to even see it.

As a counter-measure though, you still have to browse through the e-mails in the spam filter folder to at least make sure none of the e-mails from your actual friends/colleagues got stuck, so handling spam is in one way or another something necessary evil that you need to waste precious time on.

And if you want to be nice and start blogging, writing things for free to share with the world, the price you’ve got to pay if the blog gets even vaguely successful is having to deal with loads and loads of spam comments. Oh, joy to the world.

I was trying do some research to see if I could find any estimation of how many e-mails are sent each month, but to no avail. All I got was a sponsored link (that means ad) in Google, reading:

Email Advertising
Send 81 Million Emails Monthly
Highly Effective Spam Law Compliant

I think that that just gives an indication of how bad things are… 🙁

I truly wonder how this will affect our beloved information society, what the situation will be like in, say, 2010. Will spammers be gone, or have they taken over? For the moment, I get between 20-30 spam e-mails every day.

How much spam do you get?

Swedish chain El-Giganten tricks their customers

The heading would read something like this in Swedish:

Svenska teknik-kedjan El-Giganten lurar sina kunder

Today my mother went to one of the large chains in Sweden that sell all kinds of home electronics to finally get herself a DVD player. She’s not interested in technology and doesn’t do any research before buying, but instead trust the sales staff in the store. Most likely, just as the majority of any people buying anything from these large chains.

Apparently that was a big mistake; let me explain why:

When mom got home she called and said that she had gotten a DVD player. I thought it was great, and asked her if it was region free, i.e. able to play DVD records in any of the different formats available for the different parts of the world.

She said no, that she didn’t know what region free was. I explained it to her and went online to see if her just-bought player was. I found that it wasn’t region free by default, but to my knowledge it’s a very easy task to enable that option on most DVD players.

Therefore I decided to call the store where she had bought it, El-Giganten (translated: The Electric Giant, and no, I won’t link to them since they don’t deserve it) in a suburb named Täby, to just ask them about how to make it region free.

I got to talk to a “sales man” of theirs’, and the conversation went like this:

– Hi! My mother just bought a LG DVD player from you today, but since she didn’t know anything about making it region free, I just wanted to ask you how to achieve that functionality.
– Yes, we can do it for you. It will cost you about 300 – 500 SEK (around 37 – 62 US$).
– Well, when it comes to most DVD players, it’s normally only about pressing a certain key combination on the remote control.
– Ah, if that’s the case, it will only cost around 100 SEK (≈ 12 US$).
– Oh, come on. We can definitely do it ourselves, I just want to know the key combination.
– Hmmm. Hang on, I need to talk to a technician here.

Yes, I can imagine this was way over your head…
I waited for quite some time listening to some horrible music, and finally he got back:

-Yes, it will cost you 295 SEK (≈ 36 US $).
– Are you kidding me? I’m sure all I need is a keyboard sequence. Every other store helps their customers right away with this with no cost whatsoever, what’s your problem?!
– The technician said it will cost 295 SEK (≈ 36 US $). A mantra he just kept on repeating no matter what I said.
– I will check this out, and if I can’t solve it, we will return the DVD player and buy it from someone who’s actually interested in helping their customers! Good-bye!

Angry as hell and just as determined to fix this, I went online to find out how to make the DVD player region free. After about 5 minutes, I had found what I would most likely need, and got into the car and drove to mom’s. After unpacking the DVD player I plugged it in and tested. Eureka! After one minute it was region free!

Let me tell you what it took:

  1. Open the disc tray
  2. Press the 0 key seven times

This is something they demanded me to drive to their store for, pay 295 SEK (≈ 36 US $) and then be eternally grateful. Horrendous!

My take is that, since more and more people buy technology products online, these gargantuan chains with their huge stores and endless number of employees have to do things like this just to get a bigger cut, since their margin for revenue on the products are probably so little to begin with.

What sincerely annoys me about this is that their customers go to them because they trust them! Most people don’t know that much, or anything, about technology, but just want it to work. They’re certainly not expecting the store’s sales staff to trick them into pay them a ridicilous amount for doing a fairly non-existant job.

But hey, my congratulations to El-Giganten! Don’t mind the fact that I’m writing this post which will show up in search engines showing off their true face, and that I will tell this story to anyone I know and recommend them to shy away from them as much as possible. I mean, they almost managed to pull of making an extra 295 SEK (≈ 36 US $)…

Have you had any similar experience?

SXSW podcast interview

I’ve been interviewed by Dag König about SXSW and we’re also talking about web trends in general (his 50th podcast, congrats!). And yes, this is in Swedish as well, so I know most of you won’t understand it. I’m sorry, but as soon as someone asks me to do one in English, I’ll share it right away!

Go to AV #50 – Samtal med Robert Nyman om konferensen SXSW to listen to it

AJAX, JavaScript and accessibility

With the advent of mass-hype for building AJAX solutions, I find it necessary to shed some light of AJAX and JavaScript implementations and how they relate to and affect accessibility, and to explain how they can both co-exist; that one doesn’t exclude the other.

What is a progressive enhancement/unobtrusive JavaScript approach?

First, a good JavaScript approach is about implementing JavaScript in an unobtrusive way. Basically, what this means is avoiding some basic bad implementations:

  • No more inline event handlers in HTML elements, meaning that code like this should never be used:

    <div onclick="doSomethingAnnoying()">A div</div>)

  • Definitely never ever use javascript: links, like this:

    <a href="javascript:pleaseTeachMeProperJavaScript()">A destroyed link</a>

  • No inline JavaScript blocks in your web pages at all.

How should I do it then?

Common things to think about are:

  • Have all your JavaScript in external files, for better accessibility and performance (since JavaScript files are cached by the web browser and only needs to be retrieved once), and then also apply events to elements from there.
  • Only apply JavaScript event handlers to elements that already have built-in functionality for communicating, like links and submit buttons.
  • Make sure the web site functions without JavaScript. JavaScript is supposed to be used to spice things up based on already existing functionality, not to be the corner stone that the web site is totally depending on.

Give me a good example

Sure! For instance, say you want to apply a certain JavaScript event to some links in your web page that shows an information layer (e.g. a div that is initially hidden). How do you do it?

  1. Create your link elements:

    <a href="my-details.php" class="show-info-layer">My details</a>

  2. Include your external JavaScript file:

    <script type="text/javascript" src="linkEvents.js"></script>

  3. Use the window.onload event, which is triggered when the web page is fully loaded, to then apply your events to desired elements. There are many different ways of doing this and how to handle events, so here’s a simple example:
    window.onload = applyEvents;
    function applyEvents(){
    	if(document.getElementById && document.getElementsByTagName){
    		var arrAllLinks = document.getElementsByTagName("a");
    		var oLink;
    		for(var i=0; i<arrAllLinks.length; i++){
    	    	oLink = arrAllLinks[i];
    			if( != -1){
    				oLink.onclick = function (oEvent){
    					var oEvent = (typeof oEvent != "undefined")? oEvent : event;
    					oEvent.returnValue = false;
    					document.getElementById("my-details").className = "display-block";

The result is that web browsers that have JavaScript activated and that support the document.getElementById and document.getElementsByTagName methods will cancel the links navigation to the my-details.php page and instead show an information layer directly in the page. For those who don’t match that criteria, it will simply redirect them to the my-details page. Offering something extra for those with JavaScript enabled but still degrading nicely and being fully functional to others.

Let’s break the script down, what happened?

window.onload = applyEvents;

First I tell the window to call a function when it’s onload event is triggered, i.e. the page is fully loaded. Notice: no parentheses after the function name, in that case it would’ve been called instantaneously.

In the applyEvents function, the first line is this:

if(document.getElementById && document.getElementsByTagName){

What it does is using an approach called object detection to see if the document object supports the two methods we want to use: document.getElementById and document.getElementsByTagName (these two are widely supported by most web browsers, don’t worry).

var arrAllLinks = document.getElementsByTagName("a");

Gets a collection of all link elements in the page (could be done in a more effective manner with the getElementsByClassName script).

for(var i=0; i<arrAllLinks.length; i++){
	oLink = arrAllLinks[i];
	if( != -1){

Loops through the collection of links to find the ones with a certain class name. Note the usage of the variable oLink to avoid doing several checks in the array, and that it is also declared outside the loop. All for performance reasons.

oLink.onclick = function (oEvent){
	var oEvent = (typeof oEvent != "undefined")? oEvent : event;
	oEvent.returnValue = false;
	document.getElementById("my-details").className = "display-block";

Applies the onclick event to the matching link/-s and cancels their default behavior. The check for oEvent in the event handling is the standard way of event handling, while event is for Internet Explorer’s flawed and proprietary event handling. Now a click will instead show the information layer element.

What about AJAX, it said so in the title?

With the good practices and examples I’ve given above, it’s pretty much all about using the same knowledge when doing something AJAX-based. With my AJAX library, ASK, it was my attention to implement it in that manner, and also cater to well-known usability problems like back buttons that work, impossible to bookmark a specific state of an AJAX-based page etc, at the same time. I definitely urge you to take a look at it and play around with it.

Something to think of is that when it comes to screen readers is that they might support the JavaScript you use but won’t notify the user that something has been updated in the page. For more on this discussion, please read Derek’s Javascript and Accessibility (yes, I saw the name of his post after I initially posted this one… 🙂 ).


Related reading

Back from SXSW – A first recap

Ok, this post is kind of overdue, but I ought to write it since I want to tell you that I’m back from the SXSW Interactive Conference. I have had a great time, but at the same time I’m glad to be back home.

The web is already riddled with people dissecting every panel so I won’t put to much effort into that. Instead, in the next five posts or so, I will describe day by day what went on, to which panels I went to and what I thought of them, people I met etc. My hope is that it will be interesting to you even if you weren’t there and not just all about the panels.

My first gut feeling when I got home was that I didn’t want to touch a computer. I was sick of them, although I was one of the few that didn’t use one while in Austin, as opposed to all the other people live-blogging, taking notes and so on. I think the conference was just like an overdose to me, too much computer geeks in one place. There were also things like meeting people with too little self-distance or people not being as humble as they should be that kind of got me down. I really have to say, though, that most people were a delight to meet!

Also, I think I realized that while it would be great to work with any of the persons attending SXSW, where everyone knows about web standards, accessibility, are also already sick of the term Web 2.0, I would have to go home and meet a lot of customers and web developers that are nothing of the sort. People not interested in doing a proper job, just in getting paid and then scurry on home. For some reason, certain people in life seem to think that being good at something automatically means working 80 hours a week. That’s not the case, just learn to do things right and feel the rush of actually being proud over what you do.

All in all, the people and events I will tell you about stood out and made it a wonderful experience, so I’m genuinely happy I went. My only hope is that people reading my blog and then meet me in person at SXSW don’t feel like they found out that I’m nothing like they expected and that I disappointed them; that while they like my writing I bored them in person.

I would also direct thanks to Daniel Hansson, my friend and travel colleague, who always seems to end up in the most peculiar and entertaining situations.

There are some people I really want to mention for being such outstanding individuals, for making my visit the great time it was and for being as good persons as I want to be. If you ever get the chance, make sure to meet then and talk to them, or alternatively, read what they write (the ones that blog, that is). Trust me; they will most likely enrich your lives. This is not meant as name-dropping, but rather just a guide to great people. They are:

Carl Camera
It’s hard to find a more friendly, nice and caring human being. Always happy, constantly eager to please, and doesn’t seem to hold a grudge for anyone in the world. Texas inhabitant together with his lovely family.
Stuart Colville
Stuart is a very funny and happy English bloke that certainly has got a tough skin and a good distance to things. We had many long nightly talks about things and seem to agree almost a little too much.
Chris Mills
A totally crazy guy from England. About twice my height, long hair and a long beard, he looks like some crazed-out ent, and he’s got a sense of humor to go with that.
Dave Schroeder
Very laid-back, but always on top of things and a wicked sense of what’s fun. With an appearance like a Neil Young look-alike, this Minnesota-guy is always up to something.
Shane Shepherd
One of the caring persons, always feeling empathy for others and just being there when needed. And another Texas inhabitant, no less!

Honorary mentions should also go to some other truly nice people I meet and spent some time with, and they are also most recommended to meet in real life:

I’m off to SXSW

Tomorrow morning I will embark on a journey that contains of 12 hours on a plane (actually, two planes) that will eventually take me to Austin and the SXSW Interactive Conference. I’m not traveling alone, but with my colleague Daniel H, so at least I will have some company.

There will be days of meeting old and new friends, a chance to finally meet people I’ve known for a while in person; of learning, networking, partying and chilling. There will also be bowling. Also, one thing I definitely have to do is to meet up with Carl Camera and have a burrito with him, still blushing from the nice words he once said about me. But Carl, please, let me pay! 🙂

Whatever happens, telling by the weather forecast at least it seems like I won’t be freezing. 🙂

Naturally, I will miss Fredrika and Emilia so much it will hurt, but I think this is an opportunity that I can’t miss out on, and I hope they can manage for a week (question is: can I?).

Please don’t expect live blogging or any of that crap. I’m there to have a good time and relax so don’t expect any post here within 1½ – 2 weeks.

Till then: enjoy!

To all mistreated children

Some days the world seems to be genuinely evil. It’s not that it necessarily happen more bad things those specific days, but just that they, some way or another, get your attention then.

To read and hear about children starving, being mistreated, raped and tortured to death, my heart bleeds. These small innocent creatures whose only point of comfort should be grown-ups, and in particular their parents. How a person deliberately can hurt kids that don’t even understand what’s going on, people bringing pain to babies who have just been born, is beyond me.

What drives a person to commit such things? Fathers raping their daughters in their own beds, the true safe place they should have. And it’s not just about the physical act; it’s about the shame, the guilt and the thoughts of what they could possibly have done wrong to make their father treat them, to punish them, like that.

Pedophiles using children just to reach a sick climax. There’s truly something wrong with the world if there’s even a need for a word to describe such a terrible occurrence. Being a guy, I definitely know that there are weird things that can turn us on, but there has to be some mental barrier, something that separates a sick fantasy from an actual action. And if you can’t, get help! Now! How can you sodomize a small child just to get off?

What the hell is wrong with you?! What. The Hell. Is. Wrong. With. You?!

So many things that I hear about, I sometimes truly think man is evil.

Let me just finish by saying that if you see something weird, suspect some foul play: intervene. Naturally, a majority of families are normal and handle their children just fine, but in my book it’s better to ask than to just look the other way.

Take care of each other now. Please.

The Oscars – Predicting Best Movie

I love movies, so this year I’ve carried on a tradition that I started last year: to watch all the five movies nominated for an Oscar in the category Best Motion Picture of the Year, so I know if the best one wins. However, I have to say that after seeing this year’s five movies, I feel very reluctant to waste my time on something like this next year.

I’m writing this about 8 hours before the The 78th Annual Academy Awardsâ„¢ are starting, so please let me give you a rundown of the movies nominated and what I thought of them:

Brokeback Mountain
I take it most of you know what this movie is about, or maybe you’ve even seen it as well. The most common thing I heard or read about it before I saw it was:

It’s that damn gay western

Just because of narrow-minded people like that, I sincerely wanted it to be good. Problem is, it isn’t. It’s just a mediocre movie that has gotten so much attention for the reason that it deals with such a topic in an open and non-judgmental way, which I encourage. The thing is, in my book, this isn’t a reason to give it a lot of awards and attention. Like a friend said to me:

If it hadn’t had its gay theme, no one would’ve watched it

Probably needless to say, but Philip Seymour Hoffman is, as he is in every movie he stars in, very good. I’ve never seen any tapes with Truman Capote to make the call if he’s a dead ringer or not, but people tell me so. Unfortunately, otherwise this movie isn’t that intriguing. It’s ok, no more, no less. My tip, though, is that we will see an award go to Mr. Hoffman in the category Best Performance by an Actor in a Leading Role.
Without a doubt the best movie in this company, and one of last bear’s best movies. Dealing with a lot of parallel intrigues, racism and violence in Los Angels, this one is a must-see. Really. See it now! I hope Matt Dillon wins in the Best Performance by an Actor in a Supporting Role category.
Good Night, and Good Luck

This one is in black and white, nothing I have a problem with; on the contrary, it suits the plot and the feel of it. Dealing with the McCarthy hearings in the early 1950’sand how CBS reporter Edward R. Murrow and team made a stand and fought him. Could’ve been very good but is just ok.

My first thought when I saw that this movie got nominated was that Spielberg got a nomination as usual when making a movie about a tough topic. This movie ain’t that bad, although it’s a very sensitive subject and I can imagine that people knowing more about the actual events might oppose some things in Spielberg’s interpretation. It is ok, though, and sometimes actually exciting.


Conclusively, I have to say that I can’t really fathom why four out of five of the above mentioned movies have been nominated. With the exception of Crash, all the other movies are on the level “movie-I-might-watch-on-TV-late-at-night-if-I’m-too-tired-to-go-to-bed”, motion pictures that should be straight to video. I’m fairly sure that Brokeback Mountain will win, which saddens me. Kudos to Ang Lee for being brave enough to make such a film, but definitely not the best movie last year.

If there’s any justice and people actually dare voting for the best movie and not for what’s the most politically correct thing for the moment in Hollywood, Crash will win.


Have you seen any of these movies? What’s your take?


Updated Monday March 6th

Yes! Crash won Best Movie! I’m so happy to see that there’s some justice! All winners can be found in IMDB’s awards page.

Articles in Computer Sweden

Today is a happy day for me! I have a full page in the Swedish magazine Computer Sweden , it’s an interview that got split into two articles. One is about Web 2.0 and the different online services that are released, and the other one is about using web standards, semantic code and separation of content (HTML/XHTML), presentation (CSS) and interactivity (JavaScript) to target as many users as possible.

Why this is a big thing to me is because it’s the computer magazine with the widest spread in Sweden; an estimate of 127 000 readers! That’s about five times the population in the town I live in, Vallentuna, or about 1/70th of all the Swedes. 🙂

Another thing that makes me happy is that the journalist that interviewed me is the same one whose article I expressed my opinions about two weeks ago. Kudos to him for understanding the constructiveness of my post and also seeing how I could contribute to his magazine.

If you have a web code for Computer Sweden, you can read the two articles here:

My video iPod

In December, after some serious thinking, I decided to get me a video iPod, the fifth generation of iPods. I already have a third generation iPod, but took some time to find arguments to convince me (and my dear Fredrika) that it was a good idea to get another iPod just one year and nine months after the first one.

How could I motivate this to myself? Well, there were some factors that pushed me over the brink:

Being able to watch video
I think the MPEG 4 format is awesome, and I love watching videos on it. To me, the screen size is just fine.
The color screen
Color is always nice, right?
The design and size
It looks oh-so-good, weighs practically nothing nowadays (4.8 ounces/136 grams) and is almost thin like a leaf.
The price
I got a 30 GB one, definitely sufficient for me, and it’s actually cheaper than most of its matching alternatives (not to mention that the alternatives usually weigh three times more and are five times as thick).
I commute at least two hours a day (and if you meet me in real life, give me a hug and please tell me you share my pain) and watching videos is about the best way to kill time (perhaps for sex, but that isn’t really suitable on the suburb trains…).

I’ve also seen that there a number of porn movies available in iPod format. I sincerely don’t want to know what people are doing with an iPod in one hand and… shivers
Besides, if one would want to get off holding an iPod, the design of the iPod would be such a turn-on by itself. 😛

A disturbance is that the software isn’t perfect, it has a tendency of sometimes freezing when the battery goes low and you’ve just watched a video. Just remember to hold down the Menu key and the Play key to soft reset it and you will be fine. Aside from that, I wish they would’ve thrown in an AC adapter. One doesn’t want to fire up the computer only to charge something through an USB port (and why does the computer have to be on for that?).

Conclusively, if you’re looking for a MP3 player with a nice hard drive, I most definitely recommend getting an iPod. I hesitated for a while, took the plunge, and haven’t regretted it for a single second!

If you don’t have movies in the MPEG 4 format, you can use free tools such as the Videora iPod Converter for Windows and iSquint for Mac to convert it.

What is accessibility?

As soon as the word accessibility is mentioned very strong feelings and opinions come into motion and the discussions go on all night. Therefore, I felt the need to take a shot at explaining my view on accessibility.

To me, it is all about making web sites accessible to people with disabilities and at the same time to people using different operating systems, web browsers and devices. I’m sure that the general notion when the term accessibility initially was coined that it was to focus on, and cater to, people with special needs that don’t have all the prerequisites as everyone else. A very noble initiative and a corner stone if we ever want the web to be taken seriously.

But when making a web site accessible to people with disabilities, why wouldn’t we at the same time make it accessible to people who aren’t using Windows and Internet Explorer? It’s a mindset and an attitude that go hand-in-hand for me. Surely, everyone wants to reach an audience as wide as possible, right?

A thing that bothers me, though, is when accessibility advocates proclaim that we have to stay away from using JavaScript, Flash et al, all in the name of making it accessibility. Accessibility and using JavaScript, for example, aren’t mutually exclusive. It’s all about progressive enhancement. Build a common ground and then implement enriching features in an unobtrusive way that doesn’t rule out accessibility.

So, let’s stop bickering about what we read into the word accessibility, and instead start focusing on reaching as many people as possible with this wonderful medium called the Internet!