Christian Heilmann

Author Archive

HTML5 101 – a introductory talk at Sabre in Krakow, Poland

Wednesday, October 26th, 2011

In my ongoing crusade to talk about awesome new web technologies outside my comfort zone I just spent a few hours at Sabre in Krakow, Poland talking to a room jam-packed with about 100 internal and mostly Java developers.

They asked me to give an overview of HTML5 as there are a lot of requests for it and there is a lot of confusion as to what it is and can do. So I put together some information and talked for an hour about what HTML5 is, what it isn’t, what technologies are “friends of HTML5” and where the web might go in the future.

The slides are available online or embedded below (cursor keys to navigate, press N to show and hide notes and cursor down to proceed on slides with bullet points):

The audio recording of the talk is available on archive.org.

All in all this was a lot of fun, and I will repeat the talk in German in an online conference with SAP tomorrow.

Xcommerce 2011 – The web and browsers as the platform – exciting opportunities in new web technology

Thursday, October 13th, 2011

I just got back from the x.commerce conference in San Francisco where I gave a talk this afternoon on how new technology can make ecommerce more engaging:

The slides are available online or embedded below (cursor keys to navigate, press N to show and hide notes and space to proceed on slides with bullet points):

The audio recording of the talk is available on archive.org.

The prestige of being a web developer – Fronteers 11

Friday, October 7th, 2011

The audio recording of the talk is available on archive.org.

Transcript

Today I will talk about about perceptions and ways how we as web developers can make our lives better. I got inspired to do so by a great movie called the prestige. The prestige is full of amazing actors and is a twist-and-turn drama story about two stage magicians who learn the trade together and then become mortal enemies. They sabotage each others’ shows, they spy on each other and steal from each other. All to get a bigger audience and to make money. The movie also shows nicely that the audience of the magic shows do not care much for the safety of the magicians – all they want is to be entertained.

One of the things explained in the movie is how magic tricks work. Every great magic trick consists of three parts or acts:

  • The first part is called “The Pledge”. You show something ordinary and build up anticipation.
  • The second act is called “The Turn”. The magician takes the ordinary something and makes it do something extraordinary.
  • The third act, the hardest part, is “The Prestige”. This is when you bring the extraordinary back to the real world.

What we do as developers of the web can seem magic to people. A lot really do not care what we do but I constantly see people on planes looking on my screen while I am fiddling with some JS or CSS and reload the browser and I see them go “oh!” and start asking me what I am doing there.

We do the same to each other. We start with the pledge of using web technologies to build an interface or a solution or a demo.

Then we fiddle around with it until it is is perfect and we show it to people and they go “ouuuhhhhh” and clap and get excited and go to Twitter, Facebook and Google+ and tell people about it.

Us, in the audience, do the same. What we miss doing is going the full way and bring “The Prestige” to others.

Making demos and playing with technology is incredibly important. More important though is slowly but steadily, or – even better – quickly bring the awesome that is in those demos to our delivery jobs.

But before I go to the prestige, let’s take a look at how you can be a good magician (as told in the movie) and how it can relate to our work.

Reuse and improve

A lot of the tricks shown on stage and in the movie are not new, but based on an older trick, spiced up with new ideas and more danger.

This we can easily do as well. Instead of reinventing the wheel we should base whatever we do on things that work. Sensible markup is not there to fill a screen, it is there to bring stability to our products.

We should not discard what we found to be a sure way of building a nice experience in the past. We should build on those principles and allow them to change to address the needs of a new audience that wants other things.

Learn from others

You can see the magicians visiting other magic shows (in disguises) and seeing how others do it, discussing how tricks could be done and trying them out for themselves.

As geeks we are prone to want to build everything ourselves. We take a glance at what other people do but at the first “meh” we see in their code we just start from scratch. You hardly see any demos and talks based on other people’s work and improving them. Why not?

Not invented here to me is the biggest problem we have. We should swallow our pride more often and just use what already works and partner with those who created these things rather than doing the same again but not quite the same but you know, better and stuff…

Be inventive

When the competition gets harder the magicians in the movie start to use special effects, fireworks and mechanical parts on their bodies to create new illusions.

If we stop inventing and tinkering we might as well give up in our job as web developers. The thing to learn from the movie though is that these things are hidden and aid the cause and are not shown as the main attraction. Right now a lot of tricks who are a necessary evil to make something work are sold as “best practices”. They can not always be applied across the board though.

Go out of your comfort zone

When one magician does a trick the other just can not fathom he goes out of the world of stage shows and tries to employ the work of Nikola Tesla who allegedly really can transport people and things to other parts of a room using electricity.

With the web moving towards tablets and mobile and rich experiences with native APIs and code we have to start to open up to learn from others. A lot of what we need to fix right now for WebGL and gaming has been fixed in Flash in the past already. If you are honest about it – the demos we show and applaud in open technologies would be laughed at when shown in Flash. So let’s reach out and talk to the experts in these fields to see what can be re-used.

Be gorgeous

Once a trick has been created, the magicians dress it up with beautiful stage machinery and gorgeous assistants and nice clothing.

When we show off things they should be gorgeous. The whole concept of “this is only a demo of course it can break” is not helpful to the cause. When we are ready to show the world about our new cool things they should look incredible, be beautifully interactive and work across the board. I’ve said it before, your code is poetry and others should learn how to play with language from it.

Be open

The most impressive tricks magicians show are the ones done in the middle of a big crowds, with everybody watching and they still manage to amaze people with seemingly impossible things.

It is very simple to create an amazing product when you control everything. This is why the web can never compete on a “completeness” level with native code on iPhones and other devices. The thing is though that it doesn’t have to and giving a web product only one interface and experience is not using it to its strengths.

Bringing the prestige

So what about the prestige? How do we bring the magic back to its origin to make it even more fascinating? One word: adaptation.

“It is not the strongest of the species that survive, nor the most intelligent, but the ones most responsive to change.”—Charles Darwin

The biggest power of open web technologies is their ability to adapt. Web applications can be re-used in closed environments by means of conversion and you can maintain your product in one space. If you want to go native you multiply your work by every platform you need to support. We should be like the web.

“I was a young man with uninformed ideas. I threw out queries, suggestions, wondering all the time over everything; and to my astonishment the ideas took like wildfire” —Charles Darwin

Never stop questioning and give your input. We are web developers, not stage magicians. Your job is not to sit their open mouthed and be awestruck. Your job is to take what the bleeding edge of our market does and bring it into the day to day delivery. You can only do that when you ask the right questions.

Don’t be out for blood.

In the movie the competition between the magicians turns tragic as in fierce competition they try to kick each other out of the market. In the past this happened with browser makers, too.

Nowadays the competition of browsers is different. We all want the new web to work. We all are aware of browsers having to adapt to new environments. This is what we should be concentrating on – not building more and more magic shows to tell the world that one or the other browser is the better one.

Therefore I’d love to see a shift in the community, something that Chris Williams talked about at JSConf, too: stop trolling, stop inciting fights and stop the greed for controversy.

We all like a good fight and we all like to see great artists and athletes compete with another. When our main focus though is to be better than others and react to attacks and things others have done we lose the opportunity to work together on a predictable web for developers and great experiences for end users across the board.

A speaker needs people he can trust

When you are on stage you are in the limelight. What you say has a lot more gravitas then when you say it in the pub. Therefore you need to have people you can trust to ensure you don’t tell lies. If you talk about a product and get people excited and the product becomes unavailable or the product team is totally unresponsive it is you who gets the blame.

Vanishing act

Three days ago, Mark Pilgrim vanished off the internet. No Twitter account, no Google+, no Facebook and all his sites, including the awesome Dive into HTML5 became a 410 “Gone” empty page.

People started getting worried and tried to contact him to no avail, they even called the police to check on him and found that he is OK and was annoyed that people went so far as to call the police.

Regardless of Mark’s reasons, this made me think about longevity. In the last year we have seen a lot of web attrition. APIs got shut down, companies closed their “labs” sections and formerly free software gets bought and vanishes quickly. Just look at the HTML5 game engines out there.

The vanishing of Dive into HTML5 was a massive blow. I linked to this great resource in almost all my presentations, when people ask me where to learn about HTML5 I sent them there. Of course there are mirrors of the site, but that still means that all my old links are broken now.

Stop following the stars, join a band

It made me think that it is time to stop relying on a few people and on ourselves as a source of truth and information. I write a lot of things on my blog and people link to that. I also don’t find time to re-visit old posts and update the information which might not be applicable any longer.

So I started to think that it makes more sense to contribute to places where people already work together to document things. Forums, developer documentations, wikis, and – of course – the Mozilla Developer Network docs.

Anyone can do that – there is an edit button on those and you can add a fix, a note or an example.

Collaborative coding and discussions

Instead of writing a blog post and hoping for comments amongst the spam I started to use collaborative tools to begin with a discussion and then write an article or post once we found an interesting solution. There are many cool tools to do so:

  • Using JSFiddle you can show some code and ask people to fix and improve it with you. You can also provide a working demo to prove a point or give a demo to people.
  • Using Google Docs and Etherpad you can write docs and explanations together and get some quick review from people.
  • Using Dropbox you can work together with people on some files.
  • Using GitHub you can spread your code and you can get and improve other people’s work.

Be your own teacher

I’ve always found that I learn best by doing. Instead of getting things explained to me and following an hour of live coding or watch a video I get the best results by downloading the code, playing with it, breaking it and finding the solution doing some research.

Anyone can do that. That is the fun about open source and the way we do things as web development speakers.

Fill the blanks

The other day I went to attend Seb Lee-Delisle’s Creative JS course. A great course and a good reminder to play with technology. The course assumed a lot of previous knowledge of how to animate with computers and basic Math of triangles and basic physics. As Smashing Magazine were very eager to get another article from me to publish I reminded myself of a few of the Math tricks used in Commodore 64 demos and wrote an article about it. The article got good comments and did the rounds on Twitter.

As an extra, I put all the demo code on JSFiddle for people to play with. People now can read that article as a refresher before the course.

Guerrilla documentation

You can do that, too. If you find something cool on GitHub and you use it and you find an annoyance, why not fix it and send the original writer a pull request? Of course not everybody is happy about changes in the code but I dare you to find anyone who’d be unhappy to get some extra docs or examples using their systems.

You could also create a folder with fixes for other browsers for demos that only work in one. There are a lot of possibilities.

Use what you hear about!

It is very important that you use what people on stage talk about. And not only give it a go in your lunch break. Implement it in products and feed back the issues you find. There is no point in us showing a brave new world of technology on stage and then never seeing it used.

Using things means we can avoid the delivering people getting more and more disconnected from those who show what “best practices” are. Or as Molly Holzschlag put it: “now that we spent 4 years making rounded corners working in every browser designers don’t want to use them as they look dated”.

Repeat the messages

Most of you work somewhere, and others work with clients. Why don’t you now go home after this conference and set up an internal meeting showing off some of the things you learned?

There are a few benefits to this: you can share the goodies, you give back to the company who paid your ticket here, you get some experience speaking and you show that Fronteers is not just a big party.

Collect good stories

If you manage to use some of the stuff you heard about here and made a client happy or worked more effectively in your job, tell this story. Send it around, blog it or send it as an email to us. We need to hear how our work has impacted your life.

Best practices are discovered, not defined

We live in a changed world. The “best practices” of old are not applicable everywhere and there is a lot of criticism towards the web camp as being people who preach dogma and missed the boat.

Let’s collect real evidence how we used open standards, sharing practices and free tools to build an amazing web. Then clean up our approach and make it a best practice based on facts instead of great principles.

It is time to step up – all of you deserve to be in the limelight

So please, join us in documenting, fixing and using what we are all very excited about. This is not a magic show, we are here to tend to the web that was so far damn good to us.

FOWA London – Get excited and build things (and a browser panel)

Wednesday, October 5th, 2011

Yesterday I went to London to deliver the opening Keynote at the Future of Web Apps. In it, I reminded people of using the web to build apps on the web, why it makes sense to build with open technologies and showed off some of the new technologies.

The presentation slides are available here

The audio recording of the talk is available on archive.org.

In the afternoon we also had a browser panel with participants from Mozilla, Google, Microsoft and Opera. My colleague Dan Horner was busy taking notes (impressive, thanks!):

Panel:

Alex Russell – Google (JS standards commitee)
Giorgio Sardo – Microsoft
Patrick Lauke – Opera
Chris Heilmann – Mozilla

1. Question: How do you choose standards and prioritise them

A – Google – Extolling getting together rather than 1st mover disadvantage. Chrome’s goal is to understand what web developers need, and try to get vendors to join them; either by implementing and shipping first, or taking and pushing standards forward.
A – Microsoft – Iteration is key – pushing a standard out, and iterating to prioritise.

2. Question: If someone wants to lobby; who do they talk to?

A – Microsoft – We want feedback; incredibly important, whether enterprise or individual feedback. Discussed community groups; allows users / developers to participate. By getting a minimum of 5 people together, which allows a proposal to be considered by the W3C board. Join W3C community groups.
A – Opera – Looking at what other browsers are doing / WebKit as an example – they follow what’s going on in the WK community; and prioritise it. Large section of Opera team in developer relations, and attend (or speak at) many conferences. Get a feel for what the other browsers are doing, but try to prioritise what their end users and developers want.
A – Mozilla – Bugs is the fastest way to do it. Best way to do it – and better than using Twitter / Social media. Security is very key in testing: raised example of a full screen UI, that could potentially trick you into entering information under false pretences.

3. Question – Desktop versus mobile

A – Microsoft – Have been in desktop and mobile for a while ( quote: could debate how successful we’ve been). WIndows Phone 7 – Mango update – they’re now shipping IE9 mobile with every client. Have started sending out 1-2 weeks ago. 50% have updated to 7.5, and are planning to have everyone updated by the end of the month. IE9 is exactly the same engine on desktop as on mobile. They think that the expectation for developers is that it should be equal.
A – Opera – Have been in the mobile space for a while: mentioned Opera mini, how it precluded Amazon by a long way. Opera mobile also exists. Core rendering engine is identical between the two. Pretty much on par with desktop and mobile (Opera mini is updated automatically as it’s processed through a server).

3b. Question – Are there any Opera features which aren’t supported on mobile that are there on desktop

A – Opera – They think they’re pretty close between the two (although could be a delay of a couple of weeks to have parity with each update.
A – Google – Chrome is not the Android browser. The Android browser has a lot of the same technology that WebKit / ChromeKit have. Chrome is the same for every platform it’s supported on (Windows, Mac, Linux, Chrome OS).

4. Question – Any frustrations (initially asked about Chrome)?

A – Google – Bandwidth caps; no server rendering available.
A – Mozilla – Firefox comes out every 6 weeks; cool new features all the time. Mobile Firefox is being taken very seriously – kicking and screaming and on par with desktop now. However different devices have different challenges. On mobile we’re concentrating on performance, as well as sync – user experience between desktop and mobile.

5. Question – How fast is Microsoft updating IE?

A – Microsoft – In two years since IE 8 - have updated release cycle. They want to ship a new developer version every 8-10 weeks. Want to show prototyping as it’s happening with risky experiments. Have new environment HTML5 labs – where they prototype and iterate; they prototype, test, and then push successful features into the main release.

5b Google Q to Msoft – Thinks there’s problems with lag in updates. Creates a limiting factor with new features – what’s with the half life of IE when Windows Phone is auto-updated.

A – Microsoft – Microsoft has a support in place that lasts 10 years; that’s why they still support IE6.

6. Question – Testing: How do you recommend folks in the room test your browser

A – Mozilla – suggests having the latest stable build, have the next beta – to make sure the next 3 months will work. Make sure you know the OS / browser split of your audience and test that. Chris holds testers in high regard. In mobile devices; thinks it’s very important to test on the device itself. Has a separate laptop for testing. Ftp.mozilla.org – is where you can test for old versions.
A – Google – hopes that there aren’t old versions of Chrome. Would like admins to let them know if there are older versions out there (there shouldn’t be). Suggests checking current version and beta.
A – Opera – there are older users out there. Recommends you should test the current and beta version (Opera Next). They also have Opera Labs, that allow users to test APIs like the camera in your device. Can also test through TVs as well (although some TV OEMs block this). Reinforced Christians view that developers should get 1-2 devices and test directly on them (although there is an emulator that helps).
A – Microsoft – they have builds for all old versions of IE - dev.windows.com. Mentioned Expression Web Super Preview – tool that allows you to test every single version of every browser (including non IE): submits to the cloud and sends back not only the image but also the DOM. Allows you to test graphical issues for all operating systems and browsers.

Last 10 minutes – talking about the future

7. Question – What do you think will be happening in the next 10 years to browsers (in particular TVs)

A – Opera: Excited by ubiquity through platformisation. Excited about giving even more power to the browser; e.g tilt sensor, camera. Have browsers that can interact with the hardware. Being able to run almost native app experiences in the browser itself. Using canvas, user media, geolocation to build Alternative Reality Apps. Opera believe that sticking points of giving access to Camera (e.g security) need to be fixed.
A – Mozilla: Identity is the big thing. Not having to log in using separate accounts. Wants passwords to die – brought up lifehacker password steal. Wants browsers to own the identity, and have different personas for different web uses, and not tracked (or tracked differently) when looking at Cats, or looking at serious work. Then brought up example of Wii, PS3, Kinnect – how these sort of UX changes could be the future.
A – Microsoft: Applications, Games and Marketplaces – will be the new freshness for Consumers. For developers; responsive design will be very important – building from a smartphone to a large television; sees CSS3 introducing a lot more here.

8. Question – About Chrome: Thinks confusion of building Chrome App v. Native App is not good

A – Chrome – You can use Chrome packaging format, but a lot of developers are using metadata – really no more than a redirect to the website and App-Caching – high res icon and description, and that’s all that takes to build a Chrome App. They have more than 140 million users; nearly all of them have used a web App

9. Question – Are you building an App-store?

A – Microsoft: No comment on App stores
A – Mozilla – working on a store, but most important thing is distribution. Mentioned that Chrome should be doing this [Google – A – working on this]

JSConf EU – Community JS reloaded – how to rock as a movement

Wednesday, October 5th, 2011

A few days ago I was in Berlin to speak at the JSConf EU for the first time. As a topic I covered how we as a JavaScript community should be doing more to bring our knowledge out to the world and I showed off some upcoming great developer tools Mozilla is working on.

The presentation slides are available here.

The audio recording of the talk is available on archive.org.

JSConf was amazing, I had a great time and I hope I managed to inspire some people.