Christian Heilmann

You are currently browsing the Christian Heilmann blog archives for September, 2013.

Archive for September, 2013

7 things about working in I.T. you don’t learn in school

Thursday, September 26th, 2013

Disclaimer: this is the script, well, the notes, for a presentation I am giving at Spotify in Sweden this weekend as part of the Studenttechfest. I was asked to give an inspirational keynote telling students what working in IT is like. The slides and recording will be available afterwards.

Update: there is now a (bad quality) audio recording of the talk on Soundcloud:

1) The “how” lands you a job, the “why” lands you a career

In I.T. there is what I call a “fetish of the how”. We are obsessed with finding and showing quick and intelligent solutions for problems that abstract away the original issues in order to make us more effective and use less time to achieve our goals. I remember a Dilbert cartoon in around 1996 that hit the nail on the head. Dilbert explained when asked why he uses computers all the time that they make him much more effective and save time. When asked what he does with the time he said he does more computer stuff and his friend went “wow, so you can save even more time”.

stop listening to ducks

This culture of giving you a “how to do things” instead of “why they work” starts perpetuating a false belief that what we do is easy and can be learned quickly by doing an online course or looking things up in Google. Many of the threads on sites like Stackoverflow are just repeated answers stating that “you just do this and everything works”. Sites like W3Schools are very successful as they show how to do something and give you the promise that you can achieve anything by just copying and pasting an answer. Why bother with understanding what you do when you could already deliver?

Organic Unicorn Farts

The issue is that a lot of quick solutions start breaking really soon and then you are stuck as you don’t know what you did. You used magic, and not even yours and you aren’t even a wizard. There is nothing wrong with using free resources and abstractions and be more effective. In order to be professional, however, you also need to understand how they work and be able to create working solutions without them. This is when you start becoming someone who can be hired and offered a career. Otherwise you can get a job as a deliverer or maintainer but no company in their right mind would invest in you as your attitude is that of those who try to dazzle and really don’t not know what they are doing.

2) It is a ride, hop on and take in the scenery

I.T. is probably, with the exception of acting and journalism, the most versatile job market out there. Things are constantly in flux and there is not much boredom if you are excited about building things from zeros and ones.

Never look back

You will encounter a lot of products, frameworks, software packages and practices along the way. Take them in and deliver with them. Stay agnostic though as things are continuously changing. In every job there is something new to be learned and whilst your task is to deliver it you can also learn from the mistakes made and the results of shortcuts taken. Try everything and you will find patterns over time that help you make better decisions later on in your career.

3) Be a collector and an archivist

Working in a constantly changing environment also means a lot of drama, a lot of problems and egos clashing. Be aware of that and prepare for it. Even when you disagree with people strongly – if they are your manager and tell you something needs to be done the best way is to ask why and you might learn about outside pressures you weren’t aware of before.

Don't burn bridges

The I.T. world seems large, but it is actually pretty small. When leaving a job, don’t leave in anger. Don’t burn bridges as you will come across people later on you are very much sick of right now. You might even realise that in another environment these people will be brilliant to work with. You make a career by forging personal relationships. Collect great people to work with and keep up to date with what they are doing. Most great jobs come from word of mouth. Not via LinkedIn.

4) Your degree opens doors, your passion opportunities

Once you are done with university, you have your degree and many jobs require a degree as a right of passage. This means you can and will easily get a job. However, lots of other people also have degrees and as someone who hires I am looking for other, additional features. You are about to embark on a great journey, one of privilege, really. No other market is booming like I.T. and the things companies do for us make other people gape in astonishment.

Pawing puppy

Therefore, as a prospective employee, I am looking for passion in you. One of the main complaints by hiring managers is that people come into the job interview not knowing anything about the company they apply for. This is a bad first impression, as if you don’t care about the company why should the company care about you? Talk about your passions, give me an indicator that you want to get better and you are ready to learn more. Then I am ready to take you on and do a lot more for you than just pay you.

5) Nothing stops you from building a reputation now

There is no better way to get hired than to be known as someone who cares about sharing, giving feedback and showing technical and social aptitude. The good news is that this is amazingly simple these days.

touch my hair for a dollar

The main issue is that becoming known and being visible can be easily seen as showing off and in many cases actually is. In the US, this is part of a career; you have to sell yourself. As a European this can be daunting and feel wrong, but sometimes we need to jump over our shadow.

A great way to be visible is to go out there and speak about things you do. This is scary, but it is also a great way to get into the business. The simplest way to do that is to attend meetups and unconferences.
However, you don’t have to put yourself out there immediately, participation and visibility can be achieved much easier.

GitHub managed to make the impossible possible: it is a social network for engineers, people not generally known for being too social. On GitHub you can not only get lots and lots of great, free software but you can also become part of it. You can contribute code, you can file issues and help with testing, you can comment and help work around people’s differences. All of this brings you brownie points when it comes to applying for a job and looks much better on a CV than hypothetical achievements.

It is important to remember that your bad behaviour online is also noted by prospective employers. It might be fun to start a flame war and to troll people, but it can also mean the end of your career before it started. Playing nice is a good idea.

6) Being mobile and flexible gets you places

One ironic thing about I.T. is that whilst we are all connected world-wide, a lot of times traveling to other places to work with people face to face is necessary. Therefore it is important to be flexible about this. Many of my career jumps happened because I was OK to work from a different location for a short while. This also gave me a lot of interesting experiences I took with me.

Taking on an opportunity to work with a remote team is a great move in your career. The problem of making distributed teams work efficiently is still a big one for a lot of companies. If you already manage to have a fruitful collaboration with people from other timezones and cultural backgrounds you become a very interesting asset to companies out there.

7) Find a place to grow, not just a place to get paid

Lastly, I want to point out that I don’t see any way that you could not end up with a good job right now. The question you have to ask yourself is what you want to do. My advice is to find a place you feel great, you can be part of a team you respect and you see opportunities to learn new things. That is much more important than being paid a lot. Burnout is a big problem, and you should consider planning for a longer career rather than being a rockstar for a season and then feel like you already need a break at 22.

The good, the bad and the ugly about going to India…

Monday, September 23rd, 2013

Disclaimer: this is not a technical post, it is a cultural and personal one. It is also very long, but I talked to a few people and they wanted me to write it to understand some of my actions and reactions.

If you have comments, there are threads happening on Facebook and also on Google+

I just spent a week in India training Evangelism Reps, giving a keynote and a three hour training at a conference, answering dozens of personal requests and posing with people on photos.

posing for a photo with Krishna Kumar and Jaison Justus

People who see me as a rock star, people who are timid around me and whose eyes light up when they see me and talk to me. People who came far and wide to a conference to meet me. People who both make me feel uncomfortable – as I don’t see myself as an unapproachable rockstar, but at the same time make me feel amazing when I see how much it means for them to meet a guy they learned things from. I am right now in the airport and I am dead tired. I slept about 3-4 hours each day in an incredible luxurious hotel I did not use enough. I didn’t eat regularly the way I normally would and a few times I literally passed out for a quick nap to recover. I did all this voluntarily, because I know I don’t come here often and I see how much it means to people when I do.

Here I will explain why coming to India is tough on me and why I put a lot of effort into training locals to go and speak about technical bits instead of me. Here is the good, the bad, the ugly and my takeaways.

The good

As someone who likes to share information and teach people, India is heaven. The thirst for knowledge is immense and people are very adamant to get to ask questions and understand what you tell them rather than just “being inspired by it”. The “how” is very appreciated but people also strive for the “why” when it comes to learning.

Indian children learning in a impromptu school under a bridge

You can feel that people want to use the knowledge they acquired and that knowing more here means getting a better life and having better chances to move ahead in your career. There is no sense at all of fatigue or boredom; people are incredibly hungry. Every single Q&A session following the talks at the conference was full of great questions, people were sticking to one topic and it showed that they had listened to all you had to say. There was no grandstanding or time wasting with bait questions comparing your product to competitors or spouting truisms to show off that you are cleverer than the presenter. It was all about getting the most out of being at the conference. Talking to people I sensed that they really knew a lot already and had amazing insights but utterly failed and even were uninterested in flashing their knowledge in public. This humbleness is commendable but also dangerous, as it means that it is very easy to underestimate our Indian colleagues. It is not the person who shouts the loudest that has the best insights, but it is easy to think that way.

A culture of getting things done

One thing I find fascinating in India is that there is always a way. It might not be the most comfortable or obvious one but there is no stagnation. Whether it is a whole family, their pets and their shopping sharing a motorbike that was meant for two or logistics needing sorting out – there is no large period of complaining: things just move on and solutions are found. This is something the Western world can learn from. We tend to linger on complaining about things being wrong rather than doing something about them as we are used to delegating work.

Honest and unfiltered feedback

Feedback amongst Indian people appears to be brutally honest and immediate. This could come across as shocking for people coming from cultures where you have to wrap criticism in nice words (AKA the shit sandwich – start with appreciation, give the criticism and end with a compliment) and cultures where any critique is seen as a personal attack. Personally I prefer the honesty and to the point criticism. As someone in my course put it:

“I don’t mind that the other person hates me right now for pointing out what was obviously wrong in their work. I just know that they will think about it later and turn that hate towards their own mistakes and remedy them. I just want them to get better.”

I hope that really is the result and I wished more people had the same courage and honesty.

The best hosts you can hope for

Another good thing about India is that people are genuinely excited about little things and incredibly good hosts. You really feel welcomed as a visitor by the people who invited you. You see them bending backwards to sort problems out for you and make your visit as convenient as possible. In many cases this can be seen as not enough effort as the country is just so different to what we are used to. Yes, the car that picks you up might be smelling of cigarettes and the seats are threadbare and not the cleanest. But it was on time and it gets you were you need to go without delay and that is a very uncommon thing here.

This helpfulness is very much ingrained in the culture in India which brings me to the bad part.

The bad

The bad things about India for me are first of all the obvious ones: getting there (visa fun, time difference, distance), the heat, the rain, the crowds, the “air”, not being 100% sure about food and water, the bureaucracy, things hardly ever happening on time and following the original plan. A lot of those can’t be helped and you just have to grit your teeth and bear with it.

How I came to be who I am and how I see people

The big issues for me are those that culturally rub me the wrong way because of my upbringing. My mother was a housewife, my father a coal miner and then a factory worker. I have two siblings, one a former factory worker and now fireman and another who works in the unemployment office trying to give people work who want to. You can see that helping other people and having to work for good things happening to you is very much ingrained in us. We never were rich, but we never were poor. We just learned to make the best out with what we had. My dad being a big union man he was firm in his belief that everyone “up there in management” is a corrupt bastard.

I grew up not to admire anyone by their cultural standing or by how rich they are. On the contrary, the common view was that people who are rich are never that way because of what they put into it. Instead, they were either born that way or achieved it by immoral means. Of course I rectified that world-view of my dad a bit – as is the task of the next generation – but deep down it is still there. I feel like a fraud when people see me as a rich person who has a better standing and deserves being served because of that.

My personal view is that people are equal and deserve the same chances. The only way to lose my respect is being close-minded, genuinely mean or deliberately unwilling to learn or improve, and that is independent of how rich you are, where you come from or how impressive your background is.

Service on demand, please

That’s why I feel uncomfortable with being continuously served and seeing the obvious class differences you still feel in India. I guess the latter is to a degree necessary to make a country this big and overcrowded work (and to maintain its “delivery” role in the world market). The former, however, drives me crazy.

I am not used to people opening me doors, I feel very odd being in a gym and having two trainers hover about asking me if I need anything every two minutes (which actually makes me wonder if I do things wrong and feel bad for not letting them help me). I want to go into a place and look and discover things on my own account rather than being immediately given my personal helper who beelines towards me as soon as I cross the doorstep. I much more prefer being left alone and having to do things myself until I get stuck and get quick help when that happens.

I am OK with asking for assistance, but I am bad at refusing it when I don’t need it but get it offered to me. It is a very strange feeling being pampered all the time and being asked the same questions over and over again, especially when they are of the “how are you sir?” kind. It feels like an inflation of helpfulness. Service, to me, should be on demand and not continuously in your face. I should be happy about this, but it really is disturbing to not be able to look at anything without someone dedicated only to me hovering about. I feel continuously bad for wasting that person’s time although I probably do not at all.

The Ugly

Which leads me to the really horrible bit: as someone like me, who very obviously is not local, many times in India to be able to get something done or to just have your peace you need to be a horrible person.

I love people. I love to talk with them, I love to recognise body language and see people being happy. Someone approaching me and greeting me is a thing I enjoy and love. Were I a puppy, I’d be wagging my tail all the time.

puppy so happy it becomes a peacock

I know you are interesting, I know you have a story I’d love to hear, I know you have an idea that could be the spark for my next impressive published insight. I am a sponge for human interaction.

I don’t want to be an armoured car

That is why it pains me that I can not go down the road without having to repeatedly shout “no” at people or avoid eye contact at all cost or just be rude and push people out of the way. Or having to stay safe in artificial, protected environments like hotels and malls. I want to explore, I want to see and I want to learn. In order to go where I want to go and not take the services of “my dedicated driver” or having to ask people who brought me here to accompany me (whilst they might have better things to do) I need to deliberately treat people as if they don’t exist. This hurts me deeply. Beggars coming to you asking for food and money. Very young kids in horrible physical states (in some cases inflicted on them to appear more pitiful and thus more effective as beggars) – it breaks my heart having to shout at them or move on as if they are not there. But the worst, to me, is when this is used against me in a manipulative way.

A new kind of cab scam

Getting around the city used to be simple when I went to India in the past: you got a Rickshaw and paid five times as much for the ride as local people would. That I totally don’t mind. It is still dirt cheap and once you came to terms that the imminent violent death you’ll suffer the way the guy drives never happens you just lean back and submit to the inevitable. Sooner or later you will be dropped where you needed to be. However, lately some drivers are resorting to emotional blackmail. It goes like this:

You walk down the street and someone will approach you and ask how you are. When you explain that you are feeling excellent, without a single care in the world and all that stops you from feeling ecstatic is to be able to walk to where you want to go on your own terms and power, creativity kicks in. The person approaching you introduces themselves a cab driver who can easily get you where you want to go with much less hassle. If that doesn’t work it gets more aggressive: the driver will tell you that there is no way you can reach your destiny on your own account as there is “a riot and the police blocked off some streets”. The driver then offers a ridiculously small price (actually the price locals would get) and you start considering it. When you cave in and get to their car or Rikshaw the driver is very chatty, very knowledgeable about everything and tells you about their wife and children. They also tell you that to kill the time until the roads are free again you can take a look at a great shop that has amazing prices – only today, no less.

And thus you end up in some store that obviously has a deal with the driver. These shops are full of confused westerners looking at things they don’t want and don’t need but feeling guilty as the very helpful driver was so nice. The products in these shops are – to keep it simple – shit. You get shown jewelry that is “amazing high quality stones in silver plated with white gold” with the glue sticking out in the back where the plastic stone was shoddily put in. You get stoles and other things that start at 6000 Rupees and can easily – if you care to put the effort in – be haggled down to 1000. You feel the scam, it oozes out of every moment, and yet you feel kind of obliged to the driver to do something. It is lies after lies on top of hyperboles and false appreciation and chumminess (“I can see that you have an honest face, my friend, so I can do you a special price” – it sickens me).

This can repeat itself. I had a driver that dropped me at three places until I lost my temper and told him to go back to my hotel immediately or I will stop the next policeman and tell him I am being held against my will. “OK, sir, if that’s what you want, sorry sir, I just wanted to help use the time until the riot is over” is the answer. Also, you will hear that it is the driver’s wedding day and he works to get some extra money and will have an argument with the wife. Whatever you pay when you finally get to your hotel will be greeted with a disappointed face and a very quick depart by the driver without another word.

This scam makes you end up probably having something you didn’t want and feeling like a terrible person at the same time. And it is not uncommon. And it really is the worst to me. The fact that I feel ripped off is OK, that happens, but the dishonesty of it all is just shattering to me.

You can only get out of it by leaving the driver behind and taking another one once he stops at the shop. Or answering anyone obviously local with a key in their hands in the street in languages they don’t understand. I resorted to German and French and pretended not to understand any of their attempts and just moved on pretending to be scared.

The reward you get

These are the things that make traveling for work in India very daunting to me. Maybe I overreact but I am very happy being in control of my life without being in command. I enjoy my independence, and it is very, very hard to have it when you are in between people offering you services you feel menial for anyone to do for you and having to spend a lot of energy fighting off people who single you out to take advantage of you financially. Of course you can afford the latter but it also feels very wrong that these scams succeed seeing that vast amount of immensely poor, honest people around. You can not really hate the scammers as they just found a very effective way to get more money that probably to us is still a ridiculously low amount. All in all, you can not win either way unless you shutter yourself emotionally. And to me being emotional is being alive, being human.

That’s where I am lucky that I meet people who work with me, or invited me over, who shield me from the ugly and the bad and make me feel very hopeful for India. People whose warmth is written on their faces, their gestures and their actions. People who commit to what they do 100%. And those are the ones that make me come back and burn myself out during the short time I am here and make me try to share as much as I can to ensure they get what they deserve from me during the time we have. It is worth it, because of that, but it really takes a lot out of me.

I tried my best to thank anyone who helped me, I invited my friends for a nice fancy dinner and I answered all the emails and followed all the connections I got. I will be busy tomorrow with other stuff and will be unable to answer new questions and contact requests. I am sorry about this, but I am burning my candle on both ends as it is.

I am right now writing this in the first class cabin of my flight back to London. The lushness of this seems surreal and I got here by recycling and doing a nice thing. The hotel gave me a lovely bouquet of flowers as a thank you for staying with them. Something beautiful on the way. Now, taking flowers on a 13 hour trip home is kind of tough and I actually am allergic to flowers. Of course there was no way for me to tell them that without feeling like an ungrateful ass-hat. So I took the flowers with me to the airport (sniffling in the cab) and gave them to the lady who checked me into my flight as a surprise present. She was speechless and I am quite sure my current state of travel (and the 7 hours of deep sleep I just had because I could lie down) is the result of finding a way to spread the joy I was supposed to get exclusively.

I will be in my flat in London soon. I will be excited about taking public transport home, I will be amazed to remember just how lucky I am being able to pour myself a glass of water from my tap and go on my balcony and see a busy but clean street with no continuous sound of horns and people zig-zagging within hairline distance from another. I will enjoy having personal space. I will now have a few weeks of utter humbleness and a wonderful feeling of not giving a hoot about the internet and media drama we create for ourselves in the West. I will be thankful and grateful for what I have. I will take stuff I don’t need but have and share it with those who need it. I am reminded of how privileged I am having gotten to where I am by being fierce in wanting to learn and taking in all I can get and share it. And I am appreciating the little things we consider a given but so not are everywhere in this world. I went once again through the emotional washing machine with a high spin cycle that is India, but – as always – I feel coming out a bit cleaner.

If you have comments, there are threads happening on Facebook and also on Google+

Presentation creation tip: unpacking bullets

Wednesday, September 18th, 2013

I am currently in Bangalore, India where we are running a whole week of trainings and presentations as part of the Mozilla Evangelism Reps program and JSFoo.

One of the sessions in the training was about writing slide decks for your presentations, what to avoid and how to create them fast. One of the things I am very adamant about is that bullet point slides are a terrible idea.

bullet points are for wimps
Photo by Sean MacEntee

Melissa Marshall explained this quite nicely in Talk nerdy to me “bullets are made to kill and bullet lists kill audiences”.

This is especially true when you show all the bullets at once with each having a long sentence following it. This will make the audience read ahead, and stop focusing on you as the presenter.

Bullet points in texts are great, as they chunk content into digestible bits and give a structure that flowing text might not give. A quick side note: if you display bullet lists centered, you deserve a place in a special kind of hell, as you haven’t grasped at all what they are meant to achieve.

Bullet lists are a great way to pack a lot of information into a short amount of text and space. They are also a great way to structure your thoughts, information and narrative and be able to easily re-arrange them.

That is why I found that starting your presentation materials with a bullet point list can be incredibly useful. I tested this theory by making it a training course task and seeing the attendees create good presentations in a very short time. I call the method “unpacking bullets” and here is how it works:

  • Write the complete outline of what you want to cover in your talk as a bullet list
  • Re-arrange as needed
  • Take each bullet point and think how to best bring it across. Does it need just an image? An illustration? Some demo code? A screencast? A mixture of all of them?
  • Take each bullet point and make it a slide, or group of slides with the materials you thought necessary
  • Add a cover slide and a thank you slide with resource links and you have a presentation

In essence, you create a to-do list for your slides, you define the narrative structure of your presentation upfront instead of collecting a lot of material and arrange it in a second step.

transformers story structure

This way you also ensure that you show just the right amount of information rather than getting over-excited and showing lots in the hope that at least some of it sticks with the audience. Give it a try, it really works for me.

A tale of bricks and lost manuals – a talk about open technologies and a new challenge

Sunday, September 8th, 2013

a tale of bricks and lost manuals

I just got back from Berlin where I gave a closing keynote at the “Lange Nacht der Startups” – an entrepreneur meetup with lots of hacking, celebrities and startups showing what they can do. I was asked to give a talk about Firefox OS (as Deutsche Telekom were a main organiser and they are a Mozilla partner bringing phones to the masses) and I thought I wrap it in a personal story. So here is the transcript of my slides which I almost stuck to (as I wrote it after my talk). Sadly there is no recording.

a big box of lego bricks

When I was a kid, I inherited something amazing from my older siblings: a massive box of random Lego bricks. This box was collected over the years and what got lost along the way were the original manuals telling you how to assemble them to achieve a certain result: a car, a ship, a boat, a house and many other things. Now they were just bricks and I had to use my own ingenuity and creativity to reach similar results.

the patent paintings of the lego brick

I was empowered to do so because of interoperability of the bricks. That was the genius of Lego: the bricks of old were utterly compatible with the new ones and adding a roof tile for example to a car made for an amazing spoiler.

What it is, is beautiful. Lego advertisment in the 70s

I built incredible things. Some of them needed my personal eye to really be what I told people they were but, for me, they rocked. When I went to the playground and other, richer, kids had fancy cars and planes and boats I naturally felt bit jealous. When I saw, however, that when they dropped one of the cars things were different. Their cars were broken, they had to go and pester their parents for a new one and throw away the one they were – just earlier – totally happy with. When I dropped my cars, bricks might fall off but I could re-assemble them. Or smugly turn them into a plane or a boat.

The beautiful concept of assembling things from reusable bricks came back to me much later when I became a web developer. I had HTML, CSS and JavaScript and the world was my oyster. I could make a poem look pretty or I could make things fly on the screen. The bricks empower me and they are plain to see. Others could learn from what I did. The manuals wrote themselves as the product allows those who know about the bricks to look for them and see how I put them together. This made me who I am today. Not an expensive course, not a degree, not a piece of paper or login that told me that now I am a maker.

German head of state doing the same closed hand gesture over and over again

I think this somehow got lost. We think software and especially the mobile world is about fixed states, closed environments and those who can afford accessing and using them. It is an unhealthy market driven by commercialism where things need to break quickly so you can sell more. And, personally, I don’t see it as creative.

Firefox OS Logo

Luckily I work for a company that sees things quite similar, and created Firefox OS. This is a mobile operating system, that gives the bricks of the web the credit they deserve. The OS itself and the applications are all written in HTML5, CSS and JavaScript – and all parts of the OS are open source. Nothing is hidden, everything is shared. The idea is to take the success of the open standards on the Desktop web and bring it to the mobile world.

Hobbes cuddling the world

Talking of the world – a big difference that we are making right now is that with partners like Deutsche Telekom and Telefonicá we’re bringing mobile connectivity to the world. The OS has been already released in Spain, Poland, Venezuela and Colombia. The next markets are coming this quarter. In Spain, for example, a phone running Firefox OS is available in the shops for 79 Euro, unlocked and without a contract. And this price already includes 30 Euro for buying apps for the phone. In Poland, phones are available for one Szloty with a contract or 404 without one. Apps can be bought without the need for a credit card – instead you can charge them to your telephone bill or pay with a pre-paid SIM card account. This goes right back to me being jealous of the rich kids with the fancy toys: software is flexible and can be accustomed to various needs and environments. A great mobile experience that is dependent on you buying very expensive hardware and be locked in to a 24 month contract only available in a certain geographical region to me is a big step backwards. It is called the World Wide Web, not Welcome Western World. Mobile web connectivity with the option to have apps that work offline and give a great experience is not something that only the rich need. On the contrary – there is a whole new market, full of information-hungry people who should be allowed to take part in the biggest collection of human knowledge.

Lego minifig blueprint

And this is where you come in: entrepreneurs, developers, designers, writers, testers, makers. We give you the inter-operable bricks and the platform to distribute your products on. We don’t treat web technologies as a second class citizen and ask you to pay to develop with us or learn a new technology – instead we empower you to use what already works, give it a better and richer experience and bring it to the people who need and want it but so far have been locked out.

Explorers needed

The mobile web is upon us, it is needed and it works. We will not be able to have Desktop computers and fast wired connectivity world-wide. But we have a mobile infrastructure that can be used and improved upon. The now and next generation of users are mobile first and we want you to reach them without having to limit yourself to one platform. Developing in HTML5 means you can convert your products to Android and iOS. Starting with iOS means you have to start from scratch when the next platform takes over. And there will be another one. There always is. The lure of building something closed and calling it the best never to be replaced is big and over and over again companies fall for it. Flash was amazing and the only way to deliver rich experiences, remember?

Scared minifig

Of course it is scary. Working in a flexible environment is not for everyone. I work from home or on the go and my time schedule is all over the place, seeing that the people I work with are scattered all over the globe. Sometimes my work day starts at 4 and ends a 2 in the morning. I cherish that. I like the flexibility and I found that I am surrounded by amazingly creative people who are in control of their own career, output and destiny. Much like being an entrepreneur is like. Take the plunge, trust the bricks, and I promise you can build for now and tomorrow. Cycling is scary the first time you try it but later it makes you independent of time-tables, much faster than a car in inner city traffic and you keep in shape while you are on the move. The same goes for freeing yourself of the idea of a closed environment being the only thing you could ever release something in.

Scared minifig

Yes, LEGO changed. Now we have Star Wars, Harry Potter and many other themed bricks. The base bricks, however, remain and still have the same magical empowering features they had in the past – turning consumers who break toys into makers who create them. And this is you on the open web using free and open technologies in ways I can not even begin to predict now. You are invited, you are free to choose, and there is much to discover. Join me and see the bricks and build things of awesome.

Scared minifig

Thank you.

Homeopathic HTML solutions

Tuesday, September 3rd, 2013

Our lives as web developers are amazing. Information flows plentiful and is ever increasing and our quiver of tools to play with ever replenishing. Every week there is some new, groundbreaking thing happening and web technologies are promising amazing access to hardware and making our lives much simpler.

Instead of picking and choosing from these offerings and using the right one for the job, we seem to spend an extraordinary amount of time re-creating the same solutions in several technologies. Not because it is needed, but because we can.

This becomes almost painfully ironic when you see articles that are a massive pat on our own backs for using “plain HTML”, “vanilla JavaScript” or “pure CSS” that utterly and totally miss the mark of using these technologies. Or just omit or misunderstand enough to be broken and a worse performer than a “closed technology” solution.

back patting machine

Examples like these are beautifully styled forms that utterly fail to have labels that do what labels do – connect input elements with descriptive text (both in assistive technology and by making the text clickable in browsers) – as the author failed to understand that you need to nest elements inside labels or connect them with a for/id attribute coupling.

Other examples are creating complex graphical animations and paint with I, B or DIV elements. These are impressive, but no, they are not – at all – semantic HTML. True, SPAN and DIV are defined as elements with no meaning for us to use any which way we want to and I and B are defined as “visual” elements that could display anything. However, nowhere is a definition that adding a lot of nested empty elements is a good idea. That’s like raspberrying, watermelon or capybara your hedgehog in aparagus, right? What? The last sentence didn’t make sense? Don’t worry, there is probably some conversion tool that will make it useful – sadly enough you don’t have access to it right now, though. This is what you do when you use HTML to paint in the browser. You abstract away meaning and make it dependent on other technologies.

Semantic HTML means a few things, none of which are covered by exercises like that:

  • You deal in content. Semantic HTML describes content. It is not a tool to paint with. You could easily create an image using a table with a cell with a background colour as each pixel. It wouldn’t make sense though as a table is meant to give tabular data its structure and describe the relationship of the data parts to each other. Images do not have that need, what they need is an alternative text.
  • You give content meaning. A P tag around a block of text says that this is a paragraph. It says it to people, browsers and assistive technology. It even means it displays with whitespace around it when there is no CSS and it allows you to collapse it in editors. A DIV with a class of “paragraph” does the same for human readers, but only makes sense visually with CSS and none to assistive technology.
  • You increase maintainability. You keep everything that is to be changed when it comes to content in the HTML. You do not have text labels in JavaScript or generate textual information in CSS with pseudo content. That way people don’t have to wonder where a text on the screen came from when they need to change, translate or remove it. CMS have no issue separating content from presentation to make it easy for people to edit pages when you used semantic HTML. When all you use is DIVs with classes, CMS editors will choke.
  • Semantic HTML is a sign of quality and future thinking – it is true: browsers do not care a bit if an element is a DIV or a P. Maintainers do though. And browsers and rendering software or marked up content comes and goes. Semantic HTML is there for humans, computers, search engines, conversion tools and many other things. You can create incredibly terse and nonsensical code and browsers will still do something with it. What you sacrifice though is readability. Sometimes in order to make things easier to understand, you need to write more. That is not a waste, it means you care about what you do and don’t leave it to machines to translate for you for other machines to display.

In order to reap the rewards of clean and semantic markup, you need to think about meaning first and then about code or markup. Writing intelligent, beneficial HTML is an exercise in organising and describing; you could say labeling. It is not about using HTML as the tool to create things that look impressive.

So next time you feel like showing off that you can do things “in plain HTML”, consider the consequences. Think if what you did in HTML really gives the content meaning or if you just painted with tags. We won’t succeed in promoting open technologies as the obvious and better alternative if we abuse them to reach a goal they were not meant for. This is especially important in terms of performance. Every DOM access, every reflow is costly. Let’s use them sparingly.

What we need is more rewards for doing the right thing. That’s why articles like Heydon Pickering’s “Semantic CSS With Intelligent Selectors” are so important. They don’t wave a flag for semantic HTML – instead they make it beneficial to do the right thing. We need more of those, giving people rewards for learning and understanding HTML before they apply it. What we don’t need is more experiments proving things can be done in a technology that wasn’t meant for them. These can be inspiring and are fun to do, but they don’t help the cause in the long run.