<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Christian Heilmann</title>
	
	<link>http://christianheilmann.com</link>
	<description>For a better web with more professional jobs - can talk, will travel</description>
	<lastBuildDate>Fri, 11 May 2012 15:23:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/chrisheilmann" /><feedburner:info uri="chrisheilmann" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>To hell with browser wars panels</title>
		<link>http://christianheilmann.com/2012/05/11/to-hell-with-browser-wars-panels/</link>
		<comments>http://christianheilmann.com/2012/05/11/to-hell-with-browser-wars-panels/#comments</comments>
		<pubDate>Fri, 11 May 2012 15:23:47 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://christianheilmann.com/?p=2737</guid>
		<description><![CDATA[Summary: Browser War panels have become predictable and non-informative. Instead they are there to entertain the audience but cause much more drama than good. I go to a lot of conferences. I organised events, a conference and a few unconferences and I spoke at a lot of them. Lately I also stepped back a bit [...]]]></description>
			<content:encoded><![CDATA[	<p><strong>Summary: Browser War panels have become predictable and non-informative. Instead they are there to entertain the audience but cause much more drama than good.</strong></p>

	<p><img src="http://christianheilmann.com/wp-content/uploads/2012/05/sotb-1.jpg" alt="State of the Browser 2 panel"></p>

	<p>I go to a lot of conferences. I organised events, a conference and a few unconferences and I spoke at a lot of them. Lately I also stepped back a bit to coach people to speak instead of me going everywhere.</p>

	<p>I think conferences should do a few things: educate, entertain, allow people to network and make speakers and experts available to attendees.</p>

	<p><strong>You don&#8217;t need to go to conferences to learn things</strong> &#8211; all the information is on the internet and signing up to a few good feeds, groups and lists will get you all the info you want.</p>

	<p><strong>What conferences do is bring the human factor</strong> into it. A good speaker can make a topic come to life and show you an angle you had not thought about and inspire you to play with it. A good workshop gives you guidance how to use a technology and gives you a way in without being overwhelmed by a big scary topic. A conference gives you time out from the day to day delivery and allows you to do things that are not yet on the radar of your company but might be soon.</p>

	<p>And then there are &#8220;browser war panels&#8221;. The original premise of the browser war panels was that an audience could hear the latest and coolest about different browsers and ask questions. The first ones were held at Yahoo and had lead engineers from the different browsers to show how the different products work as that was dark magic back then.</p>

	<p><span class="caps">HTML5</span> defines how a browser should deal with the content it gets &#8211; we have a lot more predictability already in the standard. A lot of great information on this topic is out on the web and the accelerated speed of delivery of browsers makes the appearance of platform engineers not happening much. There is no need to repeat the standards, instead the discussions are much more about what makes which browser stand out and in a lot of cases this means what the company wants to promote &#8211; not what developers want to use now and get stuck as it doesn&#8217;t work.</p>

	<p>Browser panels these days get people from companies who are either product evangelists of the browsers or general tech evangelists, advocates, or &#8211; in the worst case &#8211; sales people. This could be good, they can point out features that are in the browsers people don&#8217;t know about and they can show some of the plans for the future of the browser. It can also be awful. As browsers are interesting to the media out of a sudden you see a lot of patterns being followed. Instead of giving information about the browsers, dealing with concerns of developers and implementers or showing changes panelists begin to fall into predefined roles and repeat the messages of the companies they represent.</p>

	<p>It becomes predictable to see which company representative will value speed over everything else, which one will praise a great experience in the browser as part of a bigger OS experience, which one will talk about following standards and complain about sites blocking out browsers and which one will point out that the browser is the choice of the user and should keep them in control by being open about everything whilst following standards.</p>

	<p>The bigger focus on browsers we have these days makes a panel much less of an educational part of the conference (many a time you will get &#8220;I have to go back to the engineering team for this&#8221;) but pushes it into the entertainment part of a conference. It is a veiled sales pitch.</p>

	<p>Everybody loves a good drama. You could go as far as saying that we have a whole tech journalism market that lives on drama. It is fun to see people disagree on topics and make good arguments about one side or another.</p>

	<p>A quite open, unscripted and unplanned format like a panel makes for great drama. It is easy to take potshots at each other and score browny points with the audience with pointing out flaws of the other browsers in a glib fashion. It also gives browny points with the audience to make sweeping statements or deliver soundbites.</p>

	<p>Soundbites, being witty and fast are becoming the most important part. If you look at the Twitter stream of a browser panel you will hardly ever find a &#8220;oh feature $x will ship in browser $y &#8211; so cool&#8221; but you will get more &#8220;$x of browser $y just called $z out on the $a issue&#8221;.</p>

	<p>Soundbites are also loved by the press. And as drama brings headlines many a time you will find a sarcastic remark or glib retort show up as &#8220;Company representative $x said $y about the competition&#8221;. A quick shot to get a giggle out of the audience can cause the communications team of a company to get a lot of unnecessary work. Is that worth it?</p>

	<p>I&#8217;ve even been on panels where the organisers deliberately asked panelists to find topics to disagree on or seen panel moderators throw out one loaded question after another to entice people to disagree and get the drama going. We call this trolling or baiting, and not a way for conference participants to learn about what is going on in the browser world.</p>

	<p>It is not hard to find what is going on in the browser world when you look at the open source engines. You hear much less about the closed ones and to me a panel that has no participant of Apple on it is not a &#8220;browser wars&#8221; panel as it lacks a massive player who should answer quite a few questions web developers have.</p>

	<p>There are exceptions. I thoroughly enjoyed being on the panel at State of the Browser 2 in London and I think as there were no egos and no artificial drama we managed to answer quite a few questions from the audience. But on the whole, these are few and far between and many a &#8220;Browser Wars&#8221; panel is entertainment and cheap laughs or &#8220;wow, did he just say that&#8221; moments.</p>

	<p>This, in the long run, is not fair to the audience who paid good money (and should get real comedians or entertainers if entertainment is the goal), it is not fair to the platform engineers (as they are misrepresented instead of allowing people to peek under the hood with them) and it does not get us anywhere in the real &#8220;browser wars&#8221;.</p>

	<p>As developers you should not be tempted to build for one browser only and you should not have to build different versions for different browsers. Keeping it all about drama and who shouts the loudest and comes across as most witty doesn&#8217;t make that happen. It is a waste of time.</p>

 
<p><a href="http://feedads.g.doubleclick.net/~a/u7Wd90bXG8Ji0aop8_OIA_zBogc/0/da"><img src="http://feedads.g.doubleclick.net/~a/u7Wd90bXG8Ji0aop8_OIA_zBogc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/u7Wd90bXG8Ji0aop8_OIA_zBogc/1/da"><img src="http://feedads.g.doubleclick.net/~a/u7Wd90bXG8Ji0aop8_OIA_zBogc/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/chrisheilmann/~4/YKAev8swb-M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://christianheilmann.com/2012/05/11/to-hell-with-browser-wars-panels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Demoing and displaying JavaScript at the same time using CSS</title>
		<link>http://christianheilmann.com/2012/05/08/demoing-and-displaying-javascript-at-the-same-time-using-css/</link>
		<comments>http://christianheilmann.com/2012/05/08/demoing-and-displaying-javascript-at-the-same-time-using-css/#comments</comments>
		<pubDate>Tue, 08 May 2012 11:53:16 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[display]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://christianheilmann.com/?p=2729</guid>
		<description><![CDATA[When writing documentation or doing examples you constantly run into the same issue: how do you display and demo the code at the same time? You don&#8217;t want to have a code display and live code as they will get out of sync (on the other hand I always found that when copying code into [...]]]></description>
			<content:encoded><![CDATA[	<p>When writing documentation or doing examples you constantly run into the same issue: how do you display and demo the code at the same time? You don&#8217;t want to have a code display and live code as they will get out of sync (on the other hand I always found that when copying code into a document I also cleaned it up and optimised it).</p>

	<p>The easiest way for this are all the &#8220;new&#8221; services like <a href="http://jsfiddle.net">JSFiddle</a>, <a href="http://jsbin.com">JSBin</a>, <a href="http://dabblet.com/">Dabblet</a>, <a href="http://tinker.io">Tinker.io</a> and others (there seems to be a new one every month now) and you can even embed them into other documents, but it means you need an iframe and load content from another service (which might go down or get forgotten in the future).</p>

	<p>The other way of course is to use Ajax/JavaScript to load the code into the page. Back in 2008, I wrote the <a href="http://icant.co.uk/sandbox/ajax-code-display/">Ajax Code Display</a> script for that (and subsequently I never used it much).</p>

	<p>I was wondering how you can simply demo and show inline JavaScript in a document without needing any extra libraries. The simplest way seemed to read out the innerHTML of the <span class="caps">SCRIPT</span> element and write it out into a <span class="caps">PRE</span> using textContent (innerHTML would render <span class="caps">HTML</span> or greater signs in the script, which isn&#8217;t the idea).</p>

	<p>However, you can do a simple demo and display of the same script much easier these days using <span class="caps">CSS</span>. Check out <a href="http://thewebrocks.com/demos/smashing-events/preventdefault.html">this demo page</a> for an upcoming Smashingmag article:</p>

	<p><a href="http://thewebrocks.com/demos/smashing-events/preventdefault.html"><img src="http://christianheilmann.com/wp-content/uploads/2012/05/codedisplay.png" alt="code displayed with CSS"></a></p>

	<p>If you do a view-source you find no other script in use, yet it displays in the page. What is this sourcery<sup>*</sup>? Simple, and it was <a href="http://twitter.com/mathias">Mathias Bynens</a> who got me onto it: just display script elements as block and add some generated content to show the &#8220;Source&#8221; text:</p>

	<p>
<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">script <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">white-space</span><span style="color: #00AA00;">:</span> pre<span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">text-shadow</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#333</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> monaco<span style="color: #00AA00;">,</span> courier<span style="color: #00AA00;">,</span> <span style="color: #993333;">monospace</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
script<span style="color: #00AA00;">:</span><span style="color: #3333ff;">:before</span><span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">'Source:'</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#0f0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>
</p>



	<p>Mathias has <a href="http://mathiasbynens.be/notes/css-hidden-elements">much more detailed explanations on why that works</a> but I for one am once again amazed just how much easier things are these days with the awesome browsers that we have.</p>

	<p><sup>*</sup> Sourcery = magical code that does (seemingly) unexpected things.</p>
 
<p><a href="http://feedads.g.doubleclick.net/~a/3BArZ2Glh7-UHx4TDPkMDpB4CzQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/3BArZ2Glh7-UHx4TDPkMDpB4CzQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/3BArZ2Glh7-UHx4TDPkMDpB4CzQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/3BArZ2Glh7-UHx4TDPkMDpB4CzQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/chrisheilmann/~4/hgl_5AQWPqg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://christianheilmann.com/2012/05/08/demoing-and-displaying-javascript-at-the-same-time-using-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So you want me to talk?</title>
		<link>http://christianheilmann.com/2012/04/25/so-you-want-me-to-talk/</link>
		<comments>http://christianheilmann.com/2012/04/25/so-you-want-me-to-talk/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 14:02:26 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[booking]]></category>
		<category><![CDATA[speaking]]></category>

		<guid isPermaLink="false">http://christianheilmann.com/?p=2491</guid>
		<description><![CDATA[I love public speaking &#8211; so much that I spent most of the last year on the road (39 conferences in 27 countries to be exact). This year, I thought I cut back a bit on that (so far I very much failed in that, but hey). Instead, together with my awesome colleague Shezmeen Prasad [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://www.flickr.com/photos/kaptainkobold/192752222/" title="&quot;Do You Expect Me To Talk?&quot; by Kaptain Kobold, on Flickr"><img src="http://farm1.staticflickr.com/68/192752222_9ed9827086.jpg" width="500" height="428" alt="&quot;Do You Expect Me To Talk?&quot;"></a></p>

	<p>I love public speaking &#8211; so much that I spent most of the last year on the road (39 conferences in 27 countries to be exact). This year, I thought I cut back a bit on that (so far I very much failed in that, but hey). Instead, together with my awesome colleague Shezmeen Prasad I am concentrating more on <a href="http://hacks.mozilla.org/2012/04/launching-evangelism-reps-getting-the-army-of-awesome-ready-to-take-the-stage/">making other people in the Mozilla community speak</a>. This means I want local people to step up and speak at conferences rather than flying around the globe for talks. This doesn&#8217;t mean that I won&#8217;t be speaking, it just means I want to be a bit more selective and I want to hand over opportunities to amazing people from the Mozilla community who would be easier for you to get to your conferences and get a chance to shine at the same time.</p>

	<p>I am also a very busy man (yes, my Twitter stream might make you think otherwise, but I am not kidding) and I am getting roughly 200-300 emails a day and about an offer to speak each day. This is not boasting, I am happy that people want me to speak, and I don&#8217;t want to disappoint anyone.</p>

	<p>This is why we set up a council of people in Mozilla who deal with all the speaking request the people from Developer Engagement get. <strong>All conference communication should go through that council</strong> so that we can avoid double bookings and frustrations on your and our side.</p>

	<p>You can see where we will be speaking at the <a href="https://developer.mozilla.org/en-US/events">Where&#8217;s Mozilla</a> site and in order to tell me about a great opportunity, here is what you do:</p>

	<p><strong>Send an email to <a href="mailto:dev-events@mozilla.com">dev-events@mozilla.com</a></strong> which will go to the council. Please include (if possible):</p>

	<p><ul><li>The dates and location of your conference</li><li>The nature of your conference (who do you target, how many people you expect, how many talks will be there)</li><li>The nature of the talk (keynote, workshop, panel&#8230;)</li><li>If there are any travel arrangements or not</li></ul></p>

	<p>I have a few simple rules about my talks:</p>

	<p><ul><li>The slides will be public and I can&#8217;t provide them upfront (as I write a new talk every time)</li><li>I want a recording and coverage of the talk to be released after the conference</li><li>I want to have a prime-time slot or keynote (bored of half-empty rooms)</li><li>I talk about web development in a holistic sense, I am not the &#8220;Firefox guy&#8221; to go on a panel to fight with other browser makers &#8211; this is boring and destructive to the cause</li></ul></p>

	<p>Sorry about that, but I put a lot of work into my talks and I want to make it worth while for everybody.</p>
 
<p><a href="http://feedads.g.doubleclick.net/~a/52jcbDNkmwHToTBNSIyq5eve-DU/0/da"><img src="http://feedads.g.doubleclick.net/~a/52jcbDNkmwHToTBNSIyq5eve-DU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/52jcbDNkmwHToTBNSIyq5eve-DU/1/da"><img src="http://feedads.g.doubleclick.net/~a/52jcbDNkmwHToTBNSIyq5eve-DU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/chrisheilmann/~4/fvPOVHGTKI8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://christianheilmann.com/2012/04/25/so-you-want-me-to-talk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is browser and tech innovation assuming an audience rather than talking to one?</title>
		<link>http://christianheilmann.com/2012/04/24/is-browser-and-tech-innovation-assuming-an-audience-rather-than-talking-to-one/</link>
		<comments>http://christianheilmann.com/2012/04/24/is-browser-and-tech-innovation-assuming-an-audience-rather-than-talking-to-one/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 20:49:53 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://christianheilmann.com/?p=2714</guid>
		<description><![CDATA[Web development is not what it used to be. It has undergone so many transformations and changes that it is pretty confusing to keep up with what is going on. My main problem right now is that as someone working for a player that provides the world with a browser and is involved in defining [...]]]></description>
			<content:encoded><![CDATA[	<p>Web development is not what it used to be. It has undergone so many transformations and changes that it is pretty confusing to keep up with what is going on. My main problem right now is that as someone working for a player that provides the world with a browser and is involved in defining the future technologies of the open stack I wonder who our audience is.</p>

	<p><h2>There is no one &#8220;web developer&#8221;</h2></p>

	<p>I am a web developer. I build web products and I love how simple it is to create meaning with semantic <span class="caps">HTML</span>, interactivity with JS and make things beautiful and more intuitive with <span class="caps">CSS</span>. I come to this from a developer angle, as I am a terrible designer. This makes me an endangered species.</p>

	<p>In the last few years web development has gotten a lot more players. Moving JS to the server side and the advent of <a href="https://developer.mozilla.org/en/WebSockets">Websockets</a>, <a href="http://nodejs.org/">Node.js</a> and technologies like <a href="http://www.phonegap.com/">Phonegap</a> and <a href="https://github.com/kripken/emscripten/wiki">Emscripten</a>, and yes, even <a href="https://developers.google.com/web-toolkit/"><span class="caps">GWT</span></a> allow a lot more people who never bothered with the web to build web apps. And this is damn good as different knowledge can lead to better and more scalable solutions. It also means we can deliver faster to a market that is hungry for more and more products. And it also forces us to re-think some of our ways.</p>

	<p>I&#8217;ve talked to people who are amazing in <span class="caps">HTML</span>/CSS/JS and feel the need to learn at least one server-side language or at least get into patterns to understand what their colleagues in the web development team are talking about. It seems the shift from web sites to apps means that we need to shift much more to traditional app development than we are ready to admit yet.</p>

	<p><h2>Staying in our comfort zones</h2></p>

	<p>However, I don&#8217;t see much mingling going on. The design-y conferences of this world talk about &#8220;mobile first&#8221; and how responsiveness will always beat strict native apps and the tech-y conferences get very excited about replacing old-school web development with <span class="caps">MVC</span> frameworks in JavaScript and how to use JS to replace other server-side architectures. We&#8217;re stuck in a world of demo sites and showcases and &#8220;hello world&#8221; examples that can &#8220;scale to thousands of users per second&#8221; but never get the chance to.</p>

	<p>I know, there are a few outstanding examples that are not like that and I generalise, but look around and you will see that I have a point. We get excited about the possibilities and revel in academic exercises rather than getting real issues fixed and showing how to deliver real solutions. This goes as far as discussing for days whether to <a href="http://jsdrama.com/">use semicolons in JS or not</a>.</p>

	<p><h2>Who is the audience?</h2></p>

	<p>But let&#8217;s go back to browsers and standards. I really am at a loss as to who we are talking to when it comes to those. Personally I see a lot of that in the feedback I get. Say I just gave a talk about <span class="caps">HTML5</span> and what it does for us. <a href="https://developer.mozilla.org/En/HTML/Element/Audio">Audio</a>, <a href="https://developer.mozilla.org/en/Using_HTML5_audio_and_video">Video</a>, <a href="https://developer.mozilla.org/en/Sections_and_Outlines_of_an_HTML5_document">richer semantics</a>, <a href="https://developer.mozilla.org/en/HTML/Canvas">JavaScript APIs that allow us to draw</a> and <a href="https://developer.mozilla.org/en/DOM/Storage">store data locally</a>, all that. I normally end with something like <a href="https://wiki.mozilla.org/GamepadAPI">GamePad <span class="caps">API</span></a>, <a href="https://developer.mozilla.org/en/API/Pointer_Lock_API">Pointer lock</a> or <a href="http://webrtc.org/">WebRTC</a> to show what else is brewing. The feedback I get is incredibly polarised:</p>

	<p><ul><li>Yeah, yeah, cool but why don&#8217;t you support the new experimental feature $x that browser $y has in the latest Nightly?</li><li>That&#8217;s cool but I don&#8217;t like using your browser (my favourite, as it has nothing to do with the talk :) )</li><li>This is all fine but none of my clients will ever need that</li><li>Great, but I can not use this as all my clients use browser $shouldhavedied and will never upgrade</li></ul></p>

	<p>Now the luddite fraction of this has a point &#8211; a lot of what we show when we talk about &#8220;the bleeding edge&#8221; can only be used (for now) in Nightly releases of browsers or need certain flags to be turned on. In some cases you even needed a special build of a certain browser (like the <a href="http://people.mozilla.com/~tmielczarek/mouselock+gamepad/">GamePad <span class="caps">API</span> in Firefox</a> or Adobe&#8217;s first <a href="http://blogs.adobe.com/webplatform/2012/03/16/css-regions-one-year-in/"><span class="caps">CSS</span> regions proposal</a>). This means we do expect a lot of investment from our audience for something that might change or be discarded in the near future.</p>

	<p>The &#8220;ZOMG <span class="caps">YOU ARE SOOO BEHIND</span>&#8221; fraction has a point, too &#8211; if they put their money where their mouth is and really use these new technologies in products rather than just getting excited about getting something new and shiny every week. Otherwise this is just borderline trolling and doesn&#8217;t help anybody.</p>

	<p><h2>Getting the bleeding edge into the mainstream</h2></p>

	<p>The question then is how could we ever get the new technologies we talk about used and implemented? There is no doubt that we need them to make the web the high fidelity app platform we got promised when some company arrogantly proclaimed Flash to be dead. But who will be the people to use them? In a lot of cases this only happens inside the companies that drive these technologies or by partners these companies pay to build showcases to prove that things could be amazing if we just started using new tech.</p>

	<p>To me, this is not scalable and sad. We should be innovating for the people who build things now and not for a future that needs to come. This is less sexy and means a lot more work but it means we build with our audience rather than trying to lure them to change.</p>

	<p>If you keep your eyes open then you see that actually a lot of what we consider amazing work is a very small percentage of the market. Tech press loves to hype them up and companies love to (pretend to) use bleeding edge technology to attract tech talent to work for them, but the larger part of the market wants one thing: <strong>getting the job done</strong>.</p>

	<p><h2>The majority of developers use libraries and frameworks</h2></p>

	<p>In the case of the web development this means one thing: <strong>libraries and polyfills</strong>. Yes, the things we considered a necessary evil to be able to build things fast and still support outdated browsers are now the thing people use to build web products. These are also the things they tell others to use &#8211; try to find a question on Stack Overflow that has no &#8220;use jQuery&#8221; as at least one of the answers. Try to find a <span class="caps">CSS</span> example that supports various prefixes rather than pulling a &#8220;this works only in webkit&#8221; or &#8220;use <a href="http://lesscss.org">Less</a>, no, use <a href="http://sass-lang.com"><span class="caps">SASS</span></a>, no use <a href="http://smacss.com/"><span class="caps">SMACSS</span></a>...&#8221;.</p>

	<p><h2>Abstracting away the need for basic knowledge</h2></p>

	<p>Talking to colleagues and peers in other companies I hear a lot of moaning and complaining that it is impossible to hire real JavaScript developers as 90% of applicants come in and only know jQuery. They have no clue what an event handler is, how to navigate the <span class="caps">DOM</span> or create a simple <span class="caps">XHR</span> call without the library. Ridiculous? Not really &#8211; we are actually to blame.</p>

	<p>The &#8220;in-crowd&#8221; scene has a fetish for abstraction. Instead of building applications and solutions we build more libraries, micro-libraries and polyfills to abstract the evil away from implementers and then we are surprised if implementers don&#8217;t know the basics any longer. Well, they used the precious time they had to learn what we build and started getting things done. And this learning time multiplies with the amount of things we release. The hour learning <a href="http://documentcloud.github.com/backbone/">backbone</a>, <span class="caps">SASS</span>, LESS, <a href="http://eightmedia.github.com/hammer.js/">hammer.js</a> or whatever is gone and should be used to build things with it now. All the more despicable when as the &#8220;cool kids&#8221; we just drop those libraries a few months later and build the next big thing.</p>

	<p><h2>Shouldn&#8217;t we innovate with existing libraries?</h2></p>

	<p>The question I am asking myself right now is this: when most of the market uses libraries to get their job done, why do we bother assuming that people would go back to writing &#8220;native&#8221; code for browsers &#8211; especially when we fail to produce standards that do not differ across browsers?</p>

	<p>Wouldn&#8217;t the better way to get something done to build jQuery plugins that use the new APIs we want people to play with in an unobtrusive way and see real applications built with them? A great example are performance enhancements like <a href="http://hacks.mozilla.org/2011/08/animating-with-javascript-from-setinterval-to-requestanimationframe/">requestAnimationFrame</a> and <a href="https://developer.mozilla.org/en/DOM/Using_the_Page_Visibility_API">pageVisibility</a>. We can whine and complain that libraries are horrible and especially on phones drain the battery mercilessly or we could just start playing where our audience hangs out and improve where the errors happen rather than pointing them out.</p>

	<p>Of course some things need us to find people to play with tech outside the libraries but a lot could be sneaked in without people knowing and then allow us to show real examples where a plugin that uses a new feature made an older implementation perform much better.</p>

	<p>I&#8217;ve tried to do this with <a href="https://vimeo.com/40873227">my talk at jQuery UK earlier</a> this year. I showed the JavaScript equivalents of jQuery solutions and that browsers now have those and how following their ideas and principles could lead people to write better jQuery. I got good feedback so far. Maybe I am on to something.</p>

	<p>Drop me an answer <a href="https://plus.google.com/111552931212713155841/posts/KWxY3Yevs3x">on Google+</a> or <a href="http://www.facebook.com/groups/128563000582883/225302874242228/">Facebook&#8217;s <span class="caps">HTML5</span> group</a>.</p>
 
<p><a href="http://feedads.g.doubleclick.net/~a/QhKszLYcyqy0tjCmdzlx1JX3de4/0/da"><img src="http://feedads.g.doubleclick.net/~a/QhKszLYcyqy0tjCmdzlx1JX3de4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/QhKszLYcyqy0tjCmdzlx1JX3de4/1/da"><img src="http://feedads.g.doubleclick.net/~a/QhKszLYcyqy0tjCmdzlx1JX3de4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/chrisheilmann/~4/87PeBtIUx6E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://christianheilmann.com/2012/04/24/is-browser-and-tech-innovation-assuming-an-audience-rather-than-talking-to-one/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android tablet connected but Market not loading? Set your time and date</title>
		<link>http://christianheilmann.com/2012/04/24/android-tablet-connected-but-market-not-loading-set-your-time-and-date/</link>
		<comments>http://christianheilmann.com/2012/04/24/android-tablet-connected-but-market-not-loading-set-your-time-and-date/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 11:13:47 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[badui]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://christianheilmann.com/?p=2710</guid>
		<description><![CDATA[This cost me far too much of my time yesterday night: I had reconnected my Android Tablet (Galaxy 10.1) after running out of battery for quite a while and connected to my wireless and surfed the web &#8211; all fine &#8211; except for &#8220;certificate errors&#8221; on a few pages. This is nothing new, SSL is [...]]]></description>
			<content:encoded><![CDATA[	<p>This cost me far too much of my time yesterday night: I had reconnected my Android Tablet (Galaxy 10.1) after running out of battery for quite a while and connected to my wireless and surfed the web &#8211; all fine &#8211; except for &#8220;certificate errors&#8221; on a few pages. This is nothing new, <span class="caps">SSL</span> is broken far too often sadly enough.</p>

	<p>When connecting to the Market to download new apps or get my Google Mail or Reader items it always told me though that I was offline. Looking at Android forums I got a lot of <strong>wrong</strong> advice like &#8220;Going back to Best Buy&#8221;, &#8220;Deleting cache and force-stopping Market and rebooting the device&#8221; or &#8220;doing a factory reset&#8221;.</p>

	<p>The fix is simple:</p>

	<p><strong>If your Android tablet throws certificate errors when surfing and can&#8217;t connect to the market, your time and date are wrong and set in the past. This breaks the <span class="caps">SSL</span> negotiation. Simply fix time and date and it works without you losing data.</strong></p>

	<p>This should be part of the error message when you get certificate errors.</p>
 
<p><a href="http://feedads.g.doubleclick.net/~a/RKN5vvFQ69C0fX9MeRBFxMtCRgM/0/da"><img src="http://feedads.g.doubleclick.net/~a/RKN5vvFQ69C0fX9MeRBFxMtCRgM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/RKN5vvFQ69C0fX9MeRBFxMtCRgM/1/da"><img src="http://feedads.g.doubleclick.net/~a/RKN5vvFQ69C0fX9MeRBFxMtCRgM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/chrisheilmann/~4/GuHDGto8eIA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://christianheilmann.com/2012/04/24/android-tablet-connected-but-market-not-loading-set-your-time-and-date/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

