Fetching and Cleaning HTML Text

NLP 2019 - HW1

We will compare two different methods to clean raw HTML text into text. HTML pages contain many "non textual" elements, in the form of HTML tags, jscript code, lots of advertisement and in general repetitive content which we will refer to as "boilerplate" content (menus, navigation etc).

We are intersted in extracting from a random HTML page the non-boilerplate textual content.

We will compare two libraries that achieve this.

First, let us get raw HTML from a URL:

In [1]:
import requests

url = "http://www.bbc.com/news/technology-26415021"
html = requests.get(url).text

Let us inspect the resulting raw HTML string we obtained:

In [2]:
print(html[:200])
<!DOCTYPE html>
<html lang="en" id="responsive-news">
<head  prefix="og: http://ogp.me/ns#">
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>An

Too many white spaces and empty lines, let us clean it up a bit:

In [3]:
import re

html = re.sub("[\r\n]+", "\n", html)
html = re.sub("[\n]+", "\n", html)
html = re.sub("[\t, ]+"," ", html)
In [4]:
html
Out[4]:
'<!DOCTYPE html>\n<html lang="en" id="responsive-news">\n<head prefix="og: http://ogp.me/ns#">\n <meta charset="utf-8">\n <meta http-equiv="X-UA-Compatible" content="IE=edge chrome=1">\n <title>An hour to catch the coding bug - BBC News</title>\n <meta name="description" content="Is it possible to get children interested in computer programming in just 60 minutes? The Hour of Code has been designed to do just that.">\n <link rel="preload" as="style" href="http://static.bbci.co.uk/news/1.219.02158/stylesheets/services/news/compact.css" media="(max-width: 599px)">\n <link rel="preload" as="style" href="http://static.bbci.co.uk/news/1.219.02158/stylesheets/services/news/tablet.css" media="(min-width: 600px)">\n <link rel="preload" as="style" href="http://static.bbci.co.uk/news/1.219.02158/stylesheets/services/news/wide.css" media="(min-width: 1008px)">\n <link rel="dns-prefetch" href="https://ssl.bbc.co.uk/">\n <link rel="dns-prefetch" href="http://sa.bbc.co.uk/">\n <link rel="dns-prefetch" href="http://ichef-1.bbci.co.uk/">\n <link rel="dns-prefetch" href="http://ichef.bbci.co.uk/">\n <link rel="dns-prefetch" href="//c.go-mpulse.net/">\n <meta name="x-country" content="il">\n <meta name="x-audience" content="International">\n <meta name="CPS_AUDIENCE" content="International">\n <meta name="CPS_CHANGEQUEUEID" content="">\n <link rel="canonical" href="http://www.bbc.com/news/technology-26415021">\n <link rel="alternate" hreflang="en-gb" href="http://www.bbc.co.uk/news/technology-26415021">\n <link rel="alternate" hreflang="en" href="http://www.bbc.com/news/technology-26415021">\n <meta property="og:title" content="How to get your children coding" />\n <meta property="og:type" content="article" />\n <meta property="og:description" content="Is it possible to get children interested in computer programming in just 60 minutes? The Hour of Code has been designed to do just that." />\n <meta property="og:site_name" content="BBC News" />\n <meta property="og:locale" content="en_GB" />\n <meta property="article:author" content="https://www.facebook.com/bbcnews" />\n <meta property="article:section" content="Technology" />\n <meta property="og:url" content="http://www.bbc.com/news/technology-26415021" />\n <meta property="og:image" content="https://ichef.bbci.co.uk/news/1024/media/images/73325000/jpg/_73325163_olly009.jpg" />\n <meta property="fb:pages" content="1143803202301544 317278538359186 1392506827668140 742734325867560 185246968166196 156060587793370 137920769558355 193435954068976 21263239760 156400551056385 929399697073756 154344434967 228735667216 80758950658 260212261199 294662213128 1086451581439054 283348121682053 295830058648 239931389545417 304314573046 310719525611571 647687225371774 1159932557403143 286567251709437 1731770190373618 125309456546 163571453661989 285361880228 512423982152360 238003846549831 176663550714 260967092113 118450564909230 100978706649892 15286229625 122103087870579 120655094632228 102814153147070 124715648647 153132638110668 150467675018739" />\n <meta name="twitter:card" content="summary_large_image">\n <meta name="twitter:site" content="@BBCWorld">\n <meta name="twitter:title" content="How to get your children coding">\n <meta name="twitter:description" content="Is it possible to get children interested in computer programming in just 60 minutes? The Hour of Code has been designed to do just that.">\n <meta name="twitter:creator" content="@BBCWorld">\n <meta name="twitter:image:src" content="https://ichef.bbci.co.uk/news/560/media/images/73325000/jpg/_73325163_olly009.jpg">\n <meta name="twitter:image:alt" content="Screenshot from the hour of code" />\n <meta name="twitter:domain" content="www.bbc.com">\n <script type="application/ld+json">\n {"@context":"http:\\/\\/schema.org" "@type":"ReportageNewsArticle" "url":"http:\\/\\/www.bbc.com\\/news\\/technology-26415021" "publisher":{"@type":"NewsMediaOrganization" "name":"BBC News" "logo":{"@type":"ImageObject" "url":"http:\\/\\/www.bbc.co.uk\\/news\\/special\\/2015\\/newsspec_10857\\/bbc_news_logo.png?cb=1"}} "datePublished":"2014-03-03T10:22:55+00:00" "dateModified":"2014-03-03T10:22:55+00:00" "headline":"How to get your children coding" "image":{"@type":"ImageObject" "width":720 "height":450 "url":"https:\\/\\/ichef-1.bbci.co.uk\\/news\\/720\\/media\\/images\\/73325000\\/jpg\\/_73325163_olly009.jpg"} "thumbnailUrl":"https:\\/\\/ichef.bbci.co.uk\\/news\\/208\\/media\\/images\\/73325000\\/jpg\\/_73325163_olly009.jpg" "author":{"@type":"Person" "name":"Mark Ward"} "mainEntityOfPage":"http:\\/\\/www.bbc.com\\/news\\/technology-26415021"}\n </script>\n \n <meta name="apple-mobile-web-app-title" content="BBC News">\n<link rel="apple-touch-icon-precomposed" sizes="57x57" href="http://static.bbci.co.uk/news/1.219.02158/apple-touch-icon-57x57-precomposed.png">\n<link rel="apple-touch-icon-precomposed" sizes="72x72" href="http://static.bbci.co.uk/news/1.219.02158/apple-touch-icon-72x72-precomposed.png">\n<link rel="apple-touch-icon-precomposed" sizes="114x114" href="http://static.bbci.co.uk/news/1.219.02158/apple-touch-icon-114x114-precomposed.png">\n<link rel="apple-touch-icon-precomposed" sizes="144x144" href="http://static.bbci.co.uk/news/1.219.02158/apple-touch-icon.png">\n<link rel="apple-touch-icon" href="http://static.bbci.co.uk/news/1.219.02158/apple-touch-icon.png">\n<link rel="apple-touch-startup-image" href="http://static.bbci.co.uk/news/1.219.02158/web-app-launch-icon.png">\n<meta name="application-name" content="BBC News">\n<meta name="msapplication-TileImage" content="BBC News">\n<meta name="msapplication-TileColor" content="#bb1919">\n<meta name="mobile-web-app-capable" content="yes">\n <meta http-equiv="cleartype" content="on">\n <meta name="robots" content="NOODP NOYDIR" />\n <meta name="theme-color" content="#bb1919">\n <script type="text/javascript">var _sf_startpt=(new Date()).getTime()</script>\n <script>\n (function() {\n if (navigator.userAgent.match(/IEMobile\\/10\\.0/)) {\n var msViewportStyle = document.createElement("style");\n msViewportStyle.appendChild(\n document.createTextNode("@-ms-viewport{width:auto!important}")\n );\n document.getElementsByTagName("head")[0].appendChild(msViewportStyle);\n }\n })();\n </script>\n \n <script>window.fig = window.fig || {}; window.fig.async = true;</script>\n <meta property="fb:app_id" content="1609039196070050" />\n <meta name="viewport" content="width=device-width initial-scale=1.0" /> <meta property="fb:admins" content="100004154058350" /> <script type="text/javascript">window.bbcredirection={geo:true}</script> \n<!--[if (gt IE 8) | (IEMobile)]><!-->\n<link rel="stylesheet" href="http://static.bbci.co.uk/frameworks/barlesque/3.21.31/orb/4/style/orb.min.css">\n<!--<![endif]-->\n<!--[if (lt IE 9) & (!IEMobile)]>\n<link rel="stylesheet" href="http://static.bbci.co.uk/frameworks/barlesque/3.21.31/orb/4/style/orb-ie.min.css">\n<![endif]-->\n <!--orb.ws.require.lib--> <script class="js-require-lib" src="http://static.bbci.co.uk/frameworks/requirejs/lib.js"></script> <script type="text/javascript"> bbcRequireMap = {"jquery-1":"http://static.bbci.co.uk/frameworks/jquery/0.4.1/sharedmodules/jquery-1.7.2" "jquery-1.4":"http://static.bbci.co.uk/frameworks/jquery/0.4.1/sharedmodules/jquery-1.4" "jquery-1.9":"http://static.bbci.co.uk/frameworks/jquery/0.4.1/sharedmodules/jquery-1.9.1" "jquery-1.12":"http://static.bbci.co.uk/frameworks/jquery/0.4.1/sharedmodules/jquery-1.12.0.min" "jquery-2.2":"http://static.bbci.co.uk/frameworks/jquery/0.4.1/sharedmodules/jquery-2.2.0.min" "istats-1":"//nav.files.bbci.co.uk/nav-analytics/0.1.0-43/js/istats-1" "swfobject-2":"http://static.bbci.co.uk/frameworks/swfobject/0.1.10/sharedmodules/swfobject-2" "demi-1":"http://static.bbci.co.uk/frameworks/demi/0.10.1/sharedmodules/demi-1" "gelui-1":"http://static.bbci.co.uk/frameworks/gelui/0.9.13/sharedmodules/gelui-1" "cssp!gelui-1/overlay":"http://static.bbci.co.uk/frameworks/gelui/0.9.13/sharedmodules/gelui-1/overlay.css" "relay-1":"http://static.bbci.co.uk/frameworks/relay/0.2.6/sharedmodules/relay-1" "clock-1":"http://static.bbci.co.uk/frameworks/clock/0.1.9/sharedmodules/clock-1" "canvas-clock-1":"http://static.bbci.co.uk/frameworks/clock/0.1.9/sharedmodules/canvas-clock-1" "cssp!clock-1":"http://static.bbci.co.uk/frameworks/clock/0.1.9/sharedmodules/clock-1.css" "jssignals-1":"http://static.bbci.co.uk/frameworks/jssignals/0.3.6/modules/jssignals-1" "jcarousel-1":"http://static.bbci.co.uk/frameworks/jcarousel/0.1.10/modules/jcarousel-1" "bump-3":"//emp.bbci.co.uk/emp/bump-3/bump-3"}; require({ baseUrl: \'http://static.bbci.co.uk/\' paths: bbcRequireMap waitSeconds: 30 }); </script> <script type="text/javascript">/*<![CDATA[*/ if (typeof bbccookies_flag === \'undefined\') { bbccookies_flag = \'ON\'; } showCTA_flag = true; cta_enabled = (showCTA_flag && (bbccookies_flag === \'ON\')); (function(){var m="ckns_policy" q="Thu 01 Jan 1970 00:00:00 GMT" i={ads:true personalisation:true performance:true necessary:true};function c(u){if(c.cache[u]){return c.cache[u]}var t=u.split("/") v=[""];do{v.unshift((t.join("/")||"/"));t.pop()}while(v[0]!=="/");c.cache[u]=v;return v}c.cache={};function a(u){if(a.cache[u]){return a.cache[u]}var v=u.split(".") t=[];while(v.length&&"|co.uk|com|".indexOf("|"+v.join(".")+"|")===-1){if(v.length){t.push(v.join("."))}v.shift()}c.cache[u]=t;return t}a.cache={};function s(t y u){var E=[""].concat(a(window.location.hostname)) B=c(window.location.pathname) D="" w C;for(var x=0 A=E.length;x<A;x++){w=E[x];for(var v=0 z=B.length;v<z;v++){C=B[v];D=t+"="+y+";"+(w?"domain="+w+";":"")+(C?"path="+C+";":"")+(u?"expires="+u+";":"");bbccookies.set(D true)}}}window.bbccookies={POLICY_REFRESH_DATE_MILLIS:new Date(2015 4 21 0 0 0 0).getTime() POLICY_EXPIRY_COOKIENAME:"ckns_policy_exp" _setEverywhere:s cookiesEnabled:function(){var t="ckns_testcookie"+Math.floor(Math.random()*100000);this.set(t+"=1");if(this.get().indexOf(t)>-1){e(t);return true}return false} get:function(){return document.cookie} getCrumb:function(t){if(!t){return null}return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\\\s*"+encodeURIComponent(t).replace(/[\\-\\.\\+\\*]/g "\\\\$&")+"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$") "$1"))||null} policyRequiresRefresh:function(){var u=new Date();u.setHours(0);u.setMinutes(0);u.setSeconds(0);u.setMilliseconds(0);if(bbccookies.POLICY_REFRESH_DATE_MILLIS<=u.getTime()){var t=bbccookies.getCrumb(bbccookies.POLICY_EXPIRY_COOKIENAME);if(t){t=new Date(parseInt(t));t.setYear(t.getFullYear()-1);return bbccookies.POLICY_REFRESH_DATE_MILLIS>=t.getTime()}else{return true}}else{return false}} _setPolicy:function(t){return f.apply(this arguments)} readPolicy:function(){return l.apply(this arguments)} _deletePolicy:function(){s(m "" q)} _isConfirmed:function(){return n()!==null} _acceptsAll:function(){var t=l();return t&&!(j(t).indexOf("0")>-1)} _getCookieName:function(){return b.apply(this arguments)} _showPrompt:function(){var t=((!this._isConfirmed()||this.policyRequiresRefresh())&&window.cta_enabled&&this.cookiesEnabled()&&!window.bbccookies_disable);return(window.orb&&window.orb.fig)?t&&(window.orb.fig("no")||window.orb.fig("ck")):t} _getPolicy:this.readPolicy};function b(u){var t=(""+u).match(/^([^=]+)(?==)/);return(t&&t.length?t[0]:"")}function j(t){return""+(t.ads?1:0)+(t.personalisation?1:0)+(t.performance?1:0)}function f(x){if(typeof x==="undefined"){x=i}if(typeof arguments[0]==="string"){var u=arguments[0] w=arguments[1];if(u==="necessary"){w=true}x=l();x[u]=w}else{if(typeof arguments[0]==="object"){x.necessary=true}}var v=new Date();v.setYear(v.getFullYear()+1);bbccookies.set(m+"="+j(x)+";domain=bbc.co.uk;path=/;expires="+v.toUTCString()+";");bbccookies.set(m+"="+j(x)+";domain=bbc.com;path=/;expires="+v.toUTCString()+";");bbccookies.set(m+"="+j(x)+";domain=bbci.co.uk;path=/;expires="+v.toUTCString()+";");var t=new Date(v.getTime());t.setMonth(t.getMonth()+1);bbccookies.set(bbccookies.POLICY_EXPIRY_COOKIENAME+"="+v.getTime()+";domain=bbc.co.uk;path=/;expires="+t.toUTCString()+";");bbccookies.set(bbccookies.POLICY_EXPIRY_COOKIENAME+"="+v.getTime()+";domain=bbc.com;path=/;expires="+t.toUTCString()+";");bbccookies.set(bbccookies.POLICY_EXPIRY_COOKIENAME+"="+v.getTime()+";domain=bbci.co.uk;path=/;expires="+t.toUTCString()+";");return x}function o(t){if(t===null){return null}var u=t.split("");return{ads:!!+u[0] personalisation:!!+u[1] performance:!!+u[2] necessary:true}}function n(){var t=new RegExp("(?:^|; ?)"+m+"=(\\\\d\\\\d\\\\d)($|;)") u=document.cookie.match(t);if(!u){return null}return u[1]}function l(t){var u=o(n());if(!u){u=i}if(t){return u[t]}else{return u}}function e(t){return document.cookie=t+"=;expires="+q+";"}var g=!(window.bbccookies_flag==="ON"&&!bbccookies._acceptsAll()&&!window.bbccookies_disable);var k={} d={"personalisation":"ckps_.+|X-AB-iplayer-.+|ACTVTYMKR|BBC_EXAMPLE_COOKIE|BBCIplayer|BBCiPlayerM|BBCIplayerSession|BBCMediaselector|BBCPostcoder|bbctravel|CGISESSID|ed|food-view|forceDesktop|h4|IMRID|locserv|MyLang|myloc|NTABS|ttduserPrefs|V5|WEATHER|BBCScienceDiscoveryPlaylist_.+|bitratePref|correctAnswerCount|genreCookie|highestQuestionScore|incorrectAnswerCount|longestStreak|MSCSProfile|programmes-oap-expanded|quickestAnswer|score|servicePanel|slowestAnswer|totalTimeForAllFormatted|v|BBCwords|score|correctAnswerCount|highestQuestionScore|hploc|BGUID|BBCWEACITY|mstouch|myway|BBCNewsCustomisation|cbbc_anim|cbeebies_snd|bbcsr_usersx|cbeebies_rd|BBC-Latest_Blogs|zh-enc|pref_loc|m|bbcEmp.+|recs-.+|_lvd2|_lvs2|tick|_fcap_CAM1|_rcc2" "performance":"ckpf_.+|optimizely.*|BBCLiveStatsClick|id|_em_.+|cookies_enabled|mbox|mbox-admin|mc_.+|omniture_unique|s_.+|sc_.+|adpolicyAdDisplayFrequency|s1|ns_session|ns_cookietest|ns_ux|NO-SA|tr_pr1|gvsurvey|bbcsurvey|si_v|sa_labels|obuid|mm_.+|mmid|mmcore.+|mmpa.+" "ads":"ckad_.+|rsi_segs|c" "necessary":"ckns_.+|BBC-UID|blq\\\\.dPref|SSO2-UID|BBC-H2-User|rmRpDetectReal|bbcComSurvey|IDENTITY_ENV|IDENTITY|IDENTITY-HTTPS|IDENTITY_SESSION|BBCCOMMENTSMODULESESSID|bbcBump.+|IVOTE_VOTE_HISTORY|pulse|BBCPG|BBCPGstat|ecos\\\\.dt"};function r(){var x=document.cookie.replace(/; +/g ";").split(";") u v=[];for(var w=0 t=x.length;w<t;w++){u=x[w];v.push(bbccookies._getCookieName(u))}return v}function h(w){var v=JSON.stringify(w);if(typeof(k[v])!=="undefined"){return k[v]}var u="";for(var t in w){if(w.hasOwnProperty(t)&&d[t]){if(w[t]===true){u+=(u?"|":"")+d[t]}}}k[v]=new RegExp("^("+(u?u:".*")+")$" "i");return k[v]}bbccookies.getPolicyExpiryDateTime=function(){return bbccookies.POLICY_EXPIRY_COOKIENAME};bbccookies.purge=function(){var u=bbccookies.readPolicy() w=r() x;for(var v=0 t=w.length;v<t;v++){if(!bbccookies.isAllowed(w[v] u)){x=new Date();x.setTime(0);x=x.toUTCString();s(w[v] "deleted" x)}}};function p(){if(g){return}bbccookies.purge();contentLoaded(window bbccookies.purge);if(window.addEventListener){window.addEventListener("beforeunload" bbccookies.purge false)}else{if(window.attachEvent){window.attachEvent("onbeforeunload" bbccookies.purge)}else{window.onbeforeunload=bbccookies.purge}}}bbccookies.set=function(u t){if(g){return document.cookie=u}var v=bbccookies._getCookieName(u);if(t||bbccookies.isAllowed(v)){return document.cookie=u}return null};bbccookies.isAllowed=function(v){var u=bbccookies.readPolicy();var t=h(u);return t.test(v)};p()})();\n/*!\n * contentloaded.js\n *\n * Author: Diego Perini (diego.perini at gmail.com)\n * Summary: cross-browser wrapper for DOMContentLoaded\n * Updated: 20101020\n * License: MIT\n * Version: 1.2\n *\n * URL:\n * http://javascript.nwbox.com/ContentLoaded/\n * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\n *\n */\nfunction contentLoaded(d i){var c=false h=true k=d.document j=k.documentElement a=k.addEventListener n=a?"addEventListener":"attachEvent" l=a?"removeEventListener":"detachEvent" b=a?"":"on" m=function(o){if(o.type==="readystatechange"&&k.readyState!="complete"){return}(o.type==="load"?d:k)[l](b+o.type m false);if(!c&&(c=true)){i.call(d o.type||o)}} g=function(){try{j.doScroll("left")}catch(o){setTimeout(g 50);return}m("poll")};if(k.readyState==="complete"){i.call(d "lazy")}else{if(!a&&j.doScroll){try{h=!d.frameElement}catch(f){}if(h){g()}}k[n](b+"DOMContentLoaded" m false);k[n](b+"readystatechange" m false);d[n](b+"load" m false)}}if(typeof(require)==="function"&&!require.defined("orb/cookies")){define("orb/cookies" function(){return window.bbccookies})}; /*]]>*/</script> <script type="text/javascript"> define(\'orb/cookies\' function() { return window.bbccookies; }); </script> <script type="text/javascript">/*<![CDATA[*/\n(function(){window.orb={};window.orb.figState={ad:0 ap:0 ck:1 eu:1 mb:0 tb:0 uk:1 df:1};window.orb.fig=function(a){return(arguments.length)?window.orb.figState[a]:window.orb.figState};window.orb.fig.device={};window.orb.fig.geo={};window.orb.fig.user={};window.orb.fig.isDefault=function(){return window.orb.fig("df")};window.orb.fig.device.isTablet=function(){return window.orb.fig("tb")};window.orb.fig.device.isMobile=function(){return window.orb.fig("mb")};window.orb.fig.geo.isUK=function(){return window.orb.fig("uk")};window.orb.fig.geo.isEU=function(){return window.orb.fig("eu")};window.fig=window.fig||{};window.fig.manager={include:function(e){e=e||window;var g=false;var j=e.document k=j.cookie i=k.match(/(?:^|; ?)ckns_orb_fig=([^;]+)/) h;if(i){i=this.deserialise(decodeURIComponent(RegExp.$1));this.setFig(e i)}if(window.fig.async&&typeof JSON!="undefined"){var b=(document.cookie.match("(^|; )ckns_orb_cachedfig=([^;]*)")||0)[2];h=b?JSON.parse(b):null;if(h){this.setFig(e h);g=true}}var a="https://fig.bbc.co.uk/frameworks/fig/1/fig.js";if(g){j.write(\'<script src="\'+a+\'" async><\'+"/script>")}else{j.write(\'<script src="\'+a+\'"><\'+"/script>")}} confirm:function(a){return true} setFig:function(a b){(function(){a.orb=a.orb||{};a.orb.figState=b})()} deserialise:function(b){var a={};b.replace(/([a-z]{2}):([0-9]+)/g function(){a[RegExp.$1]=+RegExp.$2});return a}}})();fig.manager.include();/*]]>*/</script>\n<!-- Nav Analytics : 89 -->\n<script type="text/javascript">window.bbcFlagpoles_istats="ON" require.config({paths:{"istats-1":"//nav.files.bbci.co.uk/nav-analytics/0.1.0-89/js/istats-1" "megavolt-client":"//nav.files.bbci.co.uk/nav-analytics/0.1.0-89/js/megavolt-client"} config:{"megavolt-client":{baseUrl:"https://mvt.api.bbc.com"}}}) require(["istats-1" "orb/cookies"] function(e t){if(t.isAllowed("s1")){e.addCollector({name:"default" url:"https://sa.bbc.co.uk/bbc/bbc/s" separator:"&"});var a="news.technology.story.26415021.page";e.setCountername(a) window.istats_countername&&e.setCountername(window.istats_countername) e.addLabels("ml_name=webmodule&ml_version=89")}});</script>\n<script type="text/javascript">/*<![CDATA[*/\n window.bbcFlagpoles_istats = \'ON\';\n window.orb = window.orb || {};\n if (typeof bbccookies !== \'undefined\' && bbccookies.isAllowed(\'s1\')) {\n var istatsTrackingUrl = \'//sa.bbc.co.uk/bbc/bbc/s?name=news.technology.story.26415021.page&cps_asset_id=26415021&page_type=Story&section=%2Fnews%2Ftechnology&first_pub=2014-03-03T07%3A36%3A59%2B00%3A00&last_editorial_update=2014-03-03T10%3A22%3A55%2B00%3A00&curie=52db3466-0acb-3a48-98c6-21a6e4f5f1cf&title=An+hour+to+catch+the+coding+bug&for_nation=il&app_version=1.219.0&bbc_site=news&pal_route=asset&app_type=responsive&language=en-GB&pal_webapp=tabloid&prod_name=news&app_name=news\';\n require([\'istats-1\'] function (istats) {\n var counterName = (window.istats_countername) ? window.istats_countername : istatsTrackingUrl.match(/[\\?&]name=([^&]*)/i)[1];\n istats.setCountername(counterName);\n istats.addLabels(\'cps_asset_id=26415021&page_type=Story&section=%2Fnews%2Ftechnology&first_pub=2014-03-03T07%3A36%3A59%2B00%3A00&last_editorial_update=2014-03-03T10%3A22%3A55%2B00%3A00&curie=52db3466-0acb-3a48-98c6-21a6e4f5f1cf&title=An+hour+to+catch+the+coding+bug&for_nation=il&app_version=1.219.0&bbc_site=news&pal_route=asset&app_type=responsive&language=en-GB&pal_webapp=tabloid&prod_name=news&app_name=news\');\n var c = (document.cookie.match(/\\bckns_policy=(\\d\\d\\d)/) || []).pop() || \'\';\n istats.addLabels({\n \'blq_s\': \'4d\' \n \'blq_r\': \'2.7\' \n \'blq_v\': \'default\' \n \'blq_e\': \'pal\' \n \'bbc_mc\': (c ? \'ad\' + c.charAt(0) + \'ps\' + c.charAt(1) + \'pf\' + c.charAt(2) : \'not_set\')\n }\n );\n });\n }\n /*]]>*/</script>\n <script type="text/javascript">/*<![CDATA[*/ (function(undefined){if(!window.bbc){window.bbc={}}var ROLLING_PERIOD_DAYS=30;window.bbc.Mandolin=function(id segments opts){var now=new Date().getTime() storedItem DEFAULT_START=now DEFAULT_RATE=1 COOKIE_NAME="ckpf_mandolin";opts=opts||{};this._id=id;this._segmentSet=segments;this._store=new window.window.bbc.Mandolin.Storage(COOKIE_NAME);this._opts=opts;this._rate=(opts.rate!==undefined)?+opts.rate:DEFAULT_RATE;this._startTs=(opts.start!==undefined)?new Date(opts.start).getTime():new Date(DEFAULT_START).getTime();this._endTs=(opts.end!==undefined)?new Date(opts.end).getTime():daysFromNow(ROLLING_PERIOD_DAYS);this._signupEndTs=(opts.signupEnd!==undefined)?new Date(opts.signupEnd).getTime():this._endTs;this._segment=null;if(typeof id!=="string"){throw new Error("Invalid Argument: id must be defined and be a string")}if(Object.prototype.toString.call(segments)!=="[object Array]"){throw new Error("Invalid Argument: Segments are required.")}if(opts.rate!==undefined&&(opts.rate<0||opts.rate>1)){throw new Error("Invalid Argument: Rate must be between 0 and 1.")}if(this._startTs>this._endTs){throw new Error("Invalid Argument: end date must occur after start date.")}if(!(this._startTs<this._signupEndTs&&this._signupEndTs<=this._endTs)){throw new Error("Invalid Argument: SignupEnd must be between start and end date")}removeExpired.call(this now);var overrides=window.bbccookies.get().match(/ckns_mandolin_setSegments=([^;]+)/);if(overrides!==null){eval("overrides = "+decodeURIComponent(RegExp.$1)+";");if(overrides[this._id]&&this._segmentSet.indexOf(overrides[this._id])==-1){throw new Error("Invalid Override: overridden segment should exist in segments array")}}if(overrides!==null&&overrides[this._id]){this._segment=overrides[this._id]}else{if((storedItem=this._store.getItem(this._id))){this._segment=storedItem.segment}else{if(this._startTs<=now&&now<this._signupEndTs&&now<=this._endTs&&this._store.isEnabled()===true){this._segment=pick(segments this._rate);if(opts.end===undefined){this._store.setItem(this._id {segment:this._segment})}else{this._store.setItem(this._id {segment:this._segment end:this._endTs})}log.call(this "mandolin_segment")}}}log.call(this "mandolin_view")};window.bbc.Mandolin.prototype.getSegment=function(){return this._segment};function log(actionType params){var that=this;require(["istats-1"] function(istats){istats.log(actionType that._id+":"+that._segment params?params:{})})}function removeExpired(expires){var items=this._store.getItems() expiresInt=+expires;for(var key in items){if(items[key].end!==undefined&&+items[key].end<expiresInt){this._store.removeItem(key)}}}function getLastExpirationDate(data){var winner=0 rollingExpire=daysFromNow(ROLLING_PERIOD_DAYS);for(var key in data){if(data[key].end===undefined&&rollingExpire>winner){winner=rollingExpire}else{if(+data[key].end>winner){winner=+data[key].end}}}return(winner)?new Date(winner):new Date(rollingExpire)}window.bbc.Mandolin.prototype.log=function(params){log.call(this "mandolin_log" params)};window.bbc.Mandolin.prototype.convert=function(params){log.call(this "mandolin_convert" params);this.convert=function(){}};function daysFromNow(n){var endDate;endDate=new Date().getTime()+(n*60*60*24)*1000;return endDate}function pick(segments rate){var picked min=0 max=segments.length-1;if(typeof rate==="number"&&Math.random()>rate){return null}do{picked=Math.floor(Math.random()*(max-min+1))+min}while(picked>max);return segments[picked]}window.bbc.Mandolin.Storage=function(name){validateCookieName(name);this._cookieName=name;this._isEnabled=(bbccookies.isAllowed(this._cookieName)===true&&bbccookies.cookiesEnabled()===true)};window.bbc.Mandolin.Storage.prototype.setItem=function(key value){var storeData=this.getItems();storeData[key]=value;this.save(storeData);return value};window.bbc.Mandolin.Storage.prototype.isEnabled=function(){return this._isEnabled};window.bbc.Mandolin.Storage.prototype.getItem=function(key){var storeData=this.getItems();return storeData[key]};window.bbc.Mandolin.Storage.prototype.removeItem=function(key){var storeData=this.getItems();delete storeData[key];this.save(storeData)};window.bbc.Mandolin.Storage.prototype.getItems=function(){return deserialise(this.readCookie(this._cookieName)||"")};window.bbc.Mandolin.Storage.prototype.save=function(data){window.bbccookies.set(this._cookieName+"="+encodeURIComponent(serialise(data))+"; expires="+getLastExpirationDate(data).toUTCString()+";")};window.bbc.Mandolin.Storage.prototype.readCookie=function(name){var nameEq=name+"=" ca=window.bbccookies.get().split("; ") i c;validateCookieName(name);for(i=0;i<ca.length;i++){c=ca[i];if(c.indexOf(nameEq)===0){return decodeURIComponent(c.substring(nameEq.length c.length))}}return null};function serialise(o){var str="";for(var p in o){if(o.hasOwnProperty(p)){str+=\'"\'+p+\'"\'+":"+(typeof o[p]==="object"?(o[p]===null?"null":"{"+serialise(o[p])+"}"):\'"\'+o[p].toString()+\'"\')+" "}}return str.replace(/ \\}/g "}").replace(/ $/g "")}function deserialise(str){var o;str="{"+str+"}";if(!validateSerialisation(str)){throw"Invalid input provided for deserialisation."}eval("o = "+str);return o}var validateSerialisation=(function(){var OBJECT_TOKEN="<Object>" ESCAPED_CHAR=\'"\\\\n\\\\r\\\\u2028\\\\u2029\\\\u000A\\\\u000D\\\\u005C\' ALLOWED_CHAR="([^"+ESCAPED_CHAR+"]|\\\\\\\\["+ESCAPED_CHAR+"])" KEY=\'"\'+ALLOWED_CHAR+\'+"\' VALUE=\'(null|"\'+ALLOWED_CHAR+\'*"|\'+OBJECT_TOKEN+")" KEY_VALUE=KEY+":"+VALUE KEY_VALUE_SEQUENCE="("+KEY_VALUE+" )*"+KEY_VALUE OBJECT_LITERAL="({}|{"+KEY_VALUE_SEQUENCE+"})" objectPattern=new RegExp(OBJECT_LITERAL "g");return function(str){if(str.indexOf(OBJECT_TOKEN)!==-1){return false}while(str.match(objectPattern)){str=str.replace(objectPattern OBJECT_TOKEN)}return str===OBJECT_TOKEN}})();function validateCookieName(name){if(name.match(/ ;/)){throw"Illegal name provided must be valid in browser cookie."}}})(); /*]]>*/</script> <script type="text/javascript"> document.documentElement.className += (document.documentElement.className? \' \' : \'\') + \'orb-js\'; fig.manager.confirm(); </script> <script src="http://static.bbci.co.uk/frameworks/barlesque/3.21.31/orb/4/script/orb/api.min.js"></script> <script src="http://static.bbci.co.uk/frameworks/barlesque/3.21.31/orb/4/script/orb/font.min.js"></script> <script type="text/javascript"> var blq = { environment: function() { return \'live\'; } } </script> <script type="text/javascript"> /*<![CDATA[*/ function oqsSurveyManager(w flag) { if (flag !== \'OFF\' && (w.orb.fig("no") || w.orb.fig("uk"))) { w.document.write(\'<script type="text/javascript" src="http://static.bbci.co.uk/frameworks/barlesque/3.21.31/orb/4/script/vendor/edr.min.js"><\'+\'/script>\'); } } oqsSurveyManager(window \'ON\'); /*]]>*/ </script> <!-- BBCDOTCOM template: responsive webservice -->\n <!-- BBCDOTCOM head --><script type="text/javascript"> /*<![CDATA[*/ var _sf_startpt = (new Date()).getTime(); /*]]>*/ </script><style type="text/css">.bbccom_display_none{display:none;}</style><script type="text/javascript"> /*<![CDATA[*/ var bbcdotcomConfig googletag = googletag || {}; googletag.cmd = googletag.cmd || []; var bbcdotcom = false; (function(){ if(typeof require !== \'undefined\') { require({ paths:{ "bbcdotcom":"http://static.bbci.co.uk/bbcdotcom/1.71.0/script" } }); } })(); /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ var bbcdotcom = { adverts: { keyValues: { set: function() {} } } advert: { write: function () {} show: function () {} isActive: function () { return false; } layout: function() { return { reset: function() {} } } } config: { init: function() {} isActive: function() {} setSections: function() {} isAdsEnabled: function() {} setAdsEnabled: function() {} isAnalyticsEnabled: function() {} setAnalyticsEnabled: function() {} setAssetPrefix: function() {} setVersion: function () {} setJsPrefix: function() {} setSwfPrefix: function() {} setCssPrefix: function() {} setConfig: function() {} getAssetPrefix: function() {} getJsPrefix: function () {} getSwfPrefix: function () {} getCssPrefix: function () {} } survey: { init: function(){ return false; } } data: {} init: function() {} objects: function(str) { return false; } locale: { set: function() {} get: function() {} } setAdKeyValue: function() {} utils: { addEvent: function() {} addHtmlTagClass: function() {} log: function () {} } addLoadEvent: function() {} }; /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ (function(){ if (typeof orb !== \'undefined\' && typeof orb.fig === \'function\') { if (orb.fig(\'ad\') && orb.fig(\'uk\') == 0) { bbcdotcom.data = { ads: (orb.fig(\'ad\') ? 1 : 0) stats: (orb.fig(\'uk\') == 0 ? 1 : 0) statsProvider: orb.fig(\'ap\') }; } } else { document.write(\'<script type="text/javascript" src="\'+(\'https:\' == document.location.protocol ? \'https://www.bbc.com\' : \'http://tps.bbc.com\')+\'/wwscripts/data">\\x3C/script>\'); } })(); /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ (function(){ if (typeof orb === \'undefined\' || typeof orb.fig !== \'function\') { bbcdotcom.data = { ads: bbcdotcom.data.a stats: bbcdotcom.data.b statsProvider: bbcdotcom.data.c }; } if (bbcdotcom.data.ads == 1) { document.write(\'<script type="text/javascript" src="\'+(\'https:\' == document.location.protocol ? \'https://www.bbc.com\' : \'http://www.bbc.com\')+\'/wwscripts/flag">\\x3C/script>\'); } })(); /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ (function(){ if (window.bbcdotcom && (typeof bbcdotcom.flag == \'undefined\' || (typeof bbcdotcom.data.ads !== \'undefined\' && bbcdotcom.flag.a != 1))) { bbcdotcom.data.ads = 0; } if (/[?|&]ads/.test(window.location.href) || /(^|; )ads=on; /.test(document.cookie) || /; ads=on(; |$)/.test(document.cookie)) { bbcdotcom.data.ads = 1; bbcdotcom.data.stats = 1; } if (window.bbcdotcom && (bbcdotcom.data.ads == 1 || bbcdotcom.data.stats == 1)) { bbcdotcom.assetPrefix = "http://static.bbci.co.uk/bbcdotcom/1.71.0/"; if (/(sandbox|int)(.dev)*.bbc.co*/.test(window.location.href) || /[?|&]ads-debug/.test(window.location.href) || document.cookie.indexOf(\'ads-debug=\') !== -1) { document.write(\'<script type="text/javascript" src="http://static.bbci.co.uk/bbcdotcom/1.71.0/script/dist/bbcdotcom.dev.js">\\x3C/script>\'); } else { document.write(\'<script type="text/javascript" src="http://static.bbci.co.uk/bbcdotcom/1.71.0/script/dist/bbcdotcom.js">\\x3C/script>\'); } } })(); /*]]>*/ </script><script type="text/javascript"> if (window.bbcdotcom && bbcdotcom.data.stats == 1) { document.write(\'<link rel="dns-prefetch" href="//secure-us.imrworldwide.com/">\'); document.write(\'<link rel="dns-prefetch" href="//me-cdn.effectivemeasure.net/">\'); document.write(\'<link rel="dns-prefetch" href="//ssc.api.bbc.com/">\'); } if (window.bbcdotcom && bbcdotcom.data.ads == 1) { document.write(\'<link rel="dns-prefetch" href="//www.googletagservices.com/">\'); } </script><script type="text/javascript"> /*<![CDATA[*/ (function(){ if (window.bbcdotcom && (bbcdotcom.data.ads == 1 || bbcdotcom.data.stats == 1)) { bbcdotcomConfig = {"adFormat":"standard" "adKeyword":"" "adMode":"smart" "adsEnabled":true "appAnalyticsSections":"news>technology" "asyncEnabled":true "disableInitialLoad":false "advertInfoPageUrl":"http:\\/\\/www.bbc.com\\/privacy\\/cookies\\/international\\/" "advertisementText":"Advertisement" "analyticsEnabled":true "appName":"tabloid" "assetPrefix":"http:\\/\\/static.bbci.co.uk\\/bbcdotcom\\/1.71.0\\/" "customAdParams":[] "customStatsParams":[] "headline":"An hour to catch the coding bug" "id":"26415021" "inAssociationWithText":"in association with" "keywords":"" "language":"" "orbTransitional":false "outbrainEnabled":true "adsenseEnabled":true "adsportappEnabled":true "lotameEnabled":true "sherlockEnabled":false "platinumEnabled":false "tlNewsIndexEnabled":false "tlNewsStoryEnabled":false "tlNewsFpEnabled":false "palEnv":"live" "productName":"" "sections":[] "comScoreEnabled":true "comscoreSite":"bbc" "comscoreID":"19293874" "comscorePageName":"news.technology-26415021" "slots":"" "sponsoredByText":"is sponsored by" "adsByGoogleText":"Ads by Google" "summary":"Is it possible to get children interested in computer programming in just 60 minutes? The Hour of Code has been designed to do just that." "type":"STORY" "features":{"testfeature":{"name":"testfeature" "envs":["sandbox" "int" "test"] "on":true "options":{} "override":null} "lxadverts":{"name":"lxadverts" "envs":[] "on":true "options":{} "override":null}} "staticBase":"\\/bbcdotcom" "staticHost":"http:\\/\\/static.bbci.co.uk" "staticVersion":"1.71.0" "staticPrefix":"http:\\/\\/static.bbci.co.uk\\/bbcdotcom\\/1.71.0" "dataHttp":"tps.bbc.com" "dataHttps":"www.bbc.com" "flagHttp":"www.bbc.co.uk" "flagHttps":"www.bbc.co.uk" "analyticsHttp":"sa.bbc.com" "analyticsHttps":"ssa.bbc.com"}; bbcdotcom.config.init(bbcdotcomConfig bbcdotcom.data window.location window.document); bbcdotcom.config.setAssetPrefix("http://static.bbci.co.uk/bbcdotcom/1.71.0/"); bbcdotcom.config.setVersion("1.71.0"); document.write(\'<!--[if IE 7]><script type="text/javascript">bbcdotcom.config.setIE7(true);\\x3C/script><![endif]-->\'); document.write(\'<!--[if IE 8]><script type="text/javascript">bbcdotcom.config.setIE8(true);\\x3C/script><![endif]-->\'); document.write(\'<!--[if IE 9]><script type="text/javascript">bbcdotcom.config.setIE9(true);\\x3C/script><![endif]-->\'); if (/[?|&]ex-dp/.test(window.location.href) || document.cookie.indexOf(\'ex-dp=\') !== -1) { bbcdotcom.utils.addHtmlTagClass(\'bbcdotcom-ex-dp\'); } } })(); /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ (function() { window.bbcdotcom.head = true; }()); /*]]>*/ </script> <!--Searchbox:133--> <script type="text/javascript">\n // Globally available search context\n window.SEARCHBOX={"variant":"default" "locale":"en" "navSearchboxStaticPrefix":"//nav.files.bbci.co.uk/searchbox/1.0.0-133" "searchboxAppStaticPrefix":"//search.files.bbci.co.uk/searchbox-app/1.0.19" "searchFormHtml":"<div tabindex=\\"-1\\" data-reactid=\\".jval9y49og\\" data-react-checksum=\\"1886463233\\"><div data-reactid=\\".jval9y49og.0\\"><section class=\\"se-searchbox-panel\\" data-reactid=\\".jval9y49og.0.0\\"><div class=\\"se-g-wrap\\" data-reactid=\\".jval9y49og.0.0.0\\"><div class=\\"se-g-layout\\" data-reactid=\\".jval9y49og.0.0.0.0\\"><div class=\\"se-g-layout__item se-searchbox-title\\" aria-hidden=\\"true\\" data-reactid=\\".jval9y49og.0.0.0.0.0\\">search</div><div class=\\"se-g-layout__item se-searchbox\\" data-reactid=\\".jval9y49og.0.0.0.0.1\\"><form accept-charset=\\"utf-8\\" id=\\"searchboxDrawerForm\\" method=\\"get\\" action=\\"https://search.bbc.co.uk/search\\" data-reactid=\\".jval9y49og.0.0.0.0.1.0\\"><label class=\\"se-searchbox__input\\" for=\\"se-searchbox-input-field\\" data-reactid=\\".jval9y49og.0.0.0.0.1.0.0\\"><span class=\\"se-sr-only\\" data-reactid=\\".jval9y49og.0.0.0.0.1.0.0.0\\">Search Term</span><input name=\\"q\\" type=\\"text\\" value=\\"\\" id=\\"se-searchbox-input-field\\" class=\\"se-searchbox__input__field\\" maxlength=\\"512\\" autocomplete=\\"off\\" autocorrect=\\"off\\" autocapitalize=\\"off\\" spellcheck=\\"false\\" tabindex=\\"0\\" data-reactid=\\".jval9y49og.0.0.0.0.1.0.0.1\\"/></label><input type=\\"hidden\\" name=\\"scope\\" value=\\"\\" data-reactid=\\".jval9y49og.0.0.0.0.1.0.2\\"/><button type=\\"submit\\" class=\\"se-searchbox__submit\\" tabindex=\\"0\\" data-reactid=\\".jval9y49og.0.0.0.0.1.0.3\\">Search</button><button type=\\"button\\" class=\\"se-searchbox__clear se-searchbox__clear--visible\\" tabindex=\\"0\\" data-reactid=\\".jval9y49og.0.0.0.0.1.0.4\\">Close</button></form></div></div></div></section><div aria-live=\\"polite\\" aria-atomic=\\"true\\" class=\\"se-suggestions-container\\" data-reactid=\\".jval9y49og.0.1\\"><section class=\\"se-g-wrap\\" data-reactid=\\".jval9y49og.0.1.0\\"></section></div></div></div>" "searchScopePlaceholder":"" "searchScopeParam":"" "searchScopeTemplate":"" "searchPlaceholderWrapperStart":"" "searchPlaceholderWrapperEnd":""};\n window.SEARCHBOX.suppress = false;\n window.SEARCHBOX.searchScope = SEARCHBOX.searchScopeTemplate.split(\'-\')[0];\n</script>\n<link rel="stylesheet" href="//nav.files.bbci.co.uk/searchbox/1.0.0-133/css/main.css">\n<!--[if IE 8]>\n <script type="text/javascript" src="//nav.files.bbci.co.uk/searchbox/1.0.0-133/script/html5shiv.min.js"></script>\n <script type="text/javascript">window[\'searchboxIEVersion\'] = 8;</script>\n <link rel="stylesheet" href="//nav.files.bbci.co.uk/searchbox/1.0.0-133/css/ie8.css">\n<![endif]-->\n<!--[if IE 9]>\n <script type="text/javascript">window[\'searchboxIEVersion\'] = 9;</script>\n<![endif]-->\n <!--NavID:0.2.0-147--> <link rel="stylesheet" href="//static.bbc.co.uk/id/0.37.24/style/id-cta.css" /> <link rel="stylesheet" href="//static.bbc.co.uk/id/0.37.24/style/id-cta-v5.css" /> <!--[if IE 8]><link href="//static.bbc.co.uk/id/0.37.24/style/ie8.css" rel="stylesheet"/> <![endif]--> <script type="text/javascript"> /* <![CDATA[ */ var map = {}; if (typeof(map[\'jssignals-1\']) == \'undefined\') { map[\'jssignals-1\'] = \'https://static.bbc.co.uk/frameworks/jssignals/0.3.6/modules/jssignals-1\'; } require({paths: map}); /* ]]> */ </script> <script src="//static.bbc.co.uk/id/0.37.24/modules/idcta/dist/idcta-1.min.js"></script> <script type="text/javascript"> (function () { if (!window.require) { throw new Error(\'idcta: could not find require module\'); } if(typeof(map) == \'undefined\') { var map = {}; } if(!!document.createElementNS && !!document.createElementNS(\'http://www.w3.org/2000/svg\' "svg").createSVGRect) { document.documentElement.className += \' id-svg\'; } var ptrt = RegExp("[\\\\?&]ptrt=([^&#]*)").exec(document.location.href); var ENDPOINT_URL = \'//\' + ((window.location.protocol == "https:") ? (\'ssl.bbc.co.uk\').replace("www." "ssl.") : (\'ssl.bbc.co.uk\').replace("ssl." "www.")); var ENDPOINT_CONFIG = (\'/idcta/config?callback&amp;locale=en-GB&ptrt=\' + encodeURI((ptrt ? ptrt[1] : document.location.href))).replace(/\\&amp;/g \'&\'); var ENDPOINT_TRANSLATIONS = \'/idcta/translations?callback&locale=en-GB\'; map[\'idapp-1\'] = \'//static.bbc.co.uk/idapp/0.72.58/modules/idapp/idapp-1\'; map[\'idcta\'] = \'//static.bbc.co.uk/id/0.37.24/modules/idcta\'; map[\'idcta/config\'] = [ENDPOINT_URL + ENDPOINT_CONFIG \'//static.bbc.co.uk/id/0.37.24/modules/idcta/fallbackConfig\']; map[\'idcta/translations\'] = [ENDPOINT_URL + ENDPOINT_TRANSLATIONS \'//static.bbc.co.uk/id/0.37.24/modules/idcta/fallbackTranslations\']; require({paths: map}); /* * Temporary code * To be removed when old id-statusbar-config is no longer supported */ define(\'id-statusbar-config\' [\'idcta/id-config\'] function(conf) { return conf; }); define(\'idcta/id-statusbar-config\' [\'idcta/id-config\'] function(conf) { return conf; }); })(); </script>\n <link rel="stylesheet" href="//mybbc.files.bbci.co.uk/notification-ui/3.8.4/css/main.min.css"/>\n \n <link type="text/css" rel="stylesheet" href="http://static.bbci.co.uk/news/1.219.02158/stylesheets/services/news/core.css">\n <!--[if lt IE 9]>\n <link type="text/css" rel="stylesheet" href="http://static.bbci.co.uk/news/1.219.02158/stylesheets/services/news/old-ie.css">\n <script src="http://static.bbci.co.uk/news/1.219.02158/js/vendor/html5shiv/html5shiv.js"></script>\n <![endif]-->\n <script id="news-loader"> if (document.getElementById("responsive-news")) { window.bbcNewsResponsive = true; } var isIE = (function() { var undef v = 3 div = document.createElement(\'div\') all = div.getElementsByTagName(\'i\'); while ( div.innerHTML = \'<!--[if gt IE \' + (++v) + \']><i></i><![endif]-->\' all[0] ); return v > 4 ? v : undef; }()); var modernDevice = \'querySelector\' in document && \'localStorage\' in window && \'addEventListener\' in window forceCore = document.cookie.indexOf(\'ckps_force_core\') !== -1; window.cutsTheMustard = modernDevice && !forceCore; if (window.cutsTheMustard) { document.documentElement.className += \' ctm\'; var insertPoint = document.getElementById(\'news-loader\') config = {"asset":{"asset_id":"26415021" "asset_locator":"urn:bbc:cps:asset:26415021" "asset_uri":"\\/news\\/technology-26415021" "original_asset_uri":null "first_created":{"date":"2014-03-03 07:36:59" "timezone_type":3 "timezone":"Europe\\/London"} "first_published":{"date":"2014-03-03 10:22:55" "timezone_type":3 "timezone":"Europe\\/London"} "last_updated":{"date":"2014-03-03 10:22:55" "timezone_type":3 "timezone":"Europe\\/London"} "options":{"allowHeadline":true "allowDateStamp":true "allowRelatedStoriesBox":true "allowRightHandSide":true "includeComments":false "isIgorSeoTagsEnabled":false "allowPrintingSharingLinks":true "allowAdvertising":true} "section":{"name":"Technology" "id":"99113" "uri":"\\/news\\/technology" "urlIdentifier":"\\/news\\/technology"} "language":"en-gb" "edition":"International" "audience":null "iStats_counter_name":"news.technology.story.26415021.page" "type":"STY" "curie":"asset:52db3466-0acb-3a48-98c6-21a6e4f5f1cf" "length":5362 "byline":{"name":"By Mark Ward" "persons":{"0":{"name":"Mark Ward" "function":"Technology correspondent BBC News"}} "title":"Technology correspondent BBC News"} "headline":"An hour to catch the coding bug" "mediaType":null "topicTags":null} "smpBrand":null "staticHost":"http:\\/\\/static.bbci.co.uk" "environment":"live" "locatorVersion":"0.46.3" "pathPrefix":"\\/news" "staticPrefix":"http:\\/\\/static.bbci.co.uk\\/news\\/1.219.02158" "jsPath":"http:\\/\\/static.bbci.co.uk\\/news\\/1.219.02158\\/js" "cssPath":"http:\\/\\/static.bbci.co.uk\\/news\\/1.219.02158\\/stylesheets\\/services\\/news" "cssPostfix":"" "dynamic":null "features":{"localnews":true "video":true "liveeventcomponent":true "mediaassetpage":true "gallery":true "rollingnews":true "sportstories":true "radiopromo":true "fromothernewssites":true "locallive":true "weather":true} "features2":{"svg_brand":true "waf_deprecation_notice":true "chartbeat":true "connected_stream":true "connected_stream_promo":true "nav":true "pulse_survey":false "local_survey":true "correspondents":true "blogs":true "open_graph":true "follow_us":true "marketdata_markets":true "marketdata_shares":true "nations_pseudo_nav":true "politics_election2015_topic_pages":true "responsive_breaking_news":true "live_event":true "most_popular":true "most_popular_tabs":true "most_popular_by_day":false "routing":true "radiopromonownext":true "config_based_layout":true "orb":true "map_most_watched":true "top_stories_promo":true "features_and_analysis":true "section_labels":true "index_title":true "share_tools":true "extracted_share_tools":true "local_live_promo":true "adverts":true "adverts_async":true "adexpert":true "igor_geo_redirect":true "igor_device_redirect":true "live":true "comscore_mmx":true "find_local_news":true "comments":true "comments_enhanced":true "browser_notify":true "stream_grid_promo":true "breaking_news":false "top_stories_max_volume":true "record_livestats":true "contact_form":true "channel_page":true "portlet_global_variants":true "suppress_lep_timezone":true "story_sticky_player":true "story_end_slate":true "story_smp_preview":true "embed_player_pid":true "cedexis":true "mpulse":true "story_single_column_layout":true "story_image_copyright_labels":true "ovp_resolve_primary_media_vpids":false "media_player":true "services_bar":true "live_v2_stream":true "ldp_tag_augmentation":true "map_related_topic_tags":true "rio2016_medals":true "embedephant-social-embeds":true "interactive-social-embeds":true "social-embeds":true "amp_link":true} "configuration":{"showtimestamp":"1" "showweather":"1" "showsport":"1" "showolympics":"1" "showfeaturemain":"1" "candyplatform":"EnhancedMobile" "showwatchlisten":"1" "showspecialreports":"" "videotopiccandyid":"" "showvideofeedsections":"1" "showstorytopstories":"" "showstoryfeaturesandanalysis":"1" "showstorymostpopular":"" "showgallery":"1" "cms":"cps" "channelpagecandyid":"10318089"} "pollingHost":"https:\\/\\/polling.bbc.co.uk" "service":"news" "locale":"en-GB" "locatorHost":null "locatorFlagPole":true "local":{"allowLocationLookup":true} "isWorldService":false "isChannelPage":false "languageVariant":"" "commentsHost":"https:\\/\\/www.bbc.co.uk" "search":null "comscoreAnalytics":null}; config.configuration[\'get\'] = function (key) { return this[key.toLowerCase()]; }; var bootstrapUI=function(){var e=function(){if(navigator.userAgent.match(/(Android (2.0|2.1))|(Nokia)|(OSRE\\/)|(Opera (Mini|Mobi))|(w(eb)?OSBrowser)|(UCWEB)|(Windows Phone)|(XBLWP)|(ZuneWP)/))return!1;if(navigator.userAgent.match(/MSIE 10.0/))return!0;var e t=document n=t.head||t.getElementsByTagName("head")[0] r=t.createElement("style") s=t.implementation||{hasFeature:function(){return!1}};r.type="text/css" n.insertBefore(r n.firstChild) e=r.sheet||r.styleSheet;var i=s.hasFeature("CSS2" "")?function(t){if(!e||!t)return!1;var n=!1;try{e.insertRule(t 0) n=!/unknown/i.test(e.cssRules[0].cssText) e.deleteRule(e.cssRules.length-1)}catch(r){}return n}:function(t){return e&&t?(e.cssText=t 0!==e.cssText.length&&!/unknown/i.test(e.cssText)&&0===e.cssText.replace(/\\r+|\\n+/g "").indexOf(t.split(" ")[0])):!1};return i(\'@font-face{ font-family:"font";src:"font.ttf"; }\')}();e&&(document.getElementsByTagName("html")[0].className+=" ff") function(){var e=document.documentElement.style;("flexBasis"in e||"WebkitFlexBasis"in e||"msFlexBasis"in e)&&(document.documentElement.className+=" flex")}();var t n r s i a={} o=function(){var e=document.documentElement.clientWidth n=window.innerWidth r=n>1.5*e;t=r?e:n} u=function(e){var t=document.createElement("link");t.setAttribute("rel" "stylesheet") t.setAttribute("type" "text/css") t.setAttribute("href" n+e+r+".css") t.setAttribute("media" i[e]) s.parentNode.insertBefore(t s) delete i[e]} c=function(e n r){n&&!r&&t>=n&&u(e) r&&!n&&r>=t&&u(e) n&&r&&t>=n&&r>=t&&u(e)} l=function(e){if(a[e])return a[e];var t=e.match(/\\(min\\-width:[\\s]*([\\s]*[0-9\\.]+)(px|em)[\\s]*\\)/) n=e.match(/\\(max\\-width:[\\s]*([\\s]*[0-9\\.]+)(px|em)[\\s]*\\)/) r=t&&parseFloat(t[1])||null s=n&&parseFloat(n[1])||null;return a[e]=[r s] a[e]} f=function(){var e=0;for(var t in i)e++;return e} m=function(){f()||window.removeEventListener("resize" d !1);for(var e in i){var t=i[e] n=l(t);c(e n[0] n[1])}} d=function(){o() m()} h=function(e t){i=e n=t.path+("/"!==t.path.substr(-1)?"/":"") r=t.postfix s=t.insertBefore o() m() window.addEventListener("resize" d !1)};return{stylesheetLoaderInit:h}}(); var stylesheets = {"compact":"(max-width: 599px)" "tablet":"(min-width: 600px)" "wide":"(min-width: 1008px)"}; bootstrapUI.stylesheetLoaderInit(stylesheets { path: \'http://static.bbci.co.uk/news/1.219.02158/stylesheets/services/news\' postfix: \'\' insertBefore: insertPoint }); var loadRequire = function(){ var js_paths = {"jquery-1.9":"vendor\\/jquery-1\\/jquery" "jquery-1":"http:\\/\\/static.bbci.co.uk\\/frameworks\\/jquery\\/0.4.1\\/sharedmodules\\/jquery-1.7.2" "demi-1":"http:\\/\\/static.bbci.co.uk\\/frameworks\\/demi\\/0.10.1\\/sharedmodules\\/demi-1" "swfobject-2":"http:\\/\\/static.bbci.co.uk\\/frameworks\\/swfobject\\/0.1.10\\/sharedmodules\\/swfobject-2" "jquery":"vendor\\/jquery-2\\/jquery.min" "domReady":"vendor\\/require\\/domReady" "translation":"module\\/translations\\/en-GB" "bump-3":"\\/\\/emp.bbci.co.uk\\/emp\\/bump-3\\/bump-3"}; js_paths.navigation = \'module/nav/navManager\'; requirejs.config({ baseUrl: \'http://static.bbci.co.uk/news/1.219.02158/js\' map: { \'vendor/locator\': { \'module/bootstrap\': \'vendor/locator/bootstrap\' \'locator/stats\': \'vendor/locator/stats\' \'locator/locatorView\': \'vendor/locator/locatorView\' } } paths: js_paths waitSeconds: 30 }); define(\'config\' function () { return config; }); require(["compiled\\/all"] function() {\n require([\'domReady\'] function (domReady) { domReady(function () { require(["module\\/dotcom\\/handlerAdapter" "module\\/stats\\/statsSubscriberAdapter" "module\\/alternativeJsStrategy\\/controller" "module\\/iconLoaderAdapter" "module\\/polyfill\\/location.origin" "module\\/components\\/breakingNewsAdapter" "module\\/indexTitleAdaptor" "module\\/navigation\\/handlerAdaptor" "module\\/noTouchDetectionForCss" "module\\/components\\/stickyPlayer\\/mainAdapter" "module\\/components\\/responsiveImage" "module\\/components\\/timestampAdaptor" "module\\/components\\/twiteAdapter" "module\\/tableScrollAdapter" "module\\/userScrollAdapter" "module\\/components\\/mediaPlayer\\/mainAdapter" "module\\/endSlateAdaptor" "module\\/smpPreviewAdaptor"] function() { require(["module\\/strategiserAdaptor"]); }); }); }); });\n }; loadRequire(); } else { var l = document.createElement(\'link\'); l.href = \'http://static.bbci.co.uk/news/1.219.02158/icons/generated/icons.fallback.css\'; l.rel = \'stylesheet\'; document.getElementsByTagName(\'head\')[0].appendChild(l); } </script> <script type="text/javascript"> /*<![CDATA[*/ bbcdotcom.init({adsToDisplay:[\'leaderboard\' \'sponsor_section\' \'mpu\' \'infeed_news_story\' \'outbrain_ar_5\' \'outbrain_ar_7\' \'outbrain_ar_8\' \'outbrain_ar_9\' \'native\' \'mpu_bottom\' \'adsense\' \'inread\']}); /*]]>*/ </script> <noscript><link href="http://static.bbci.co.uk/news/1.219.02158/icons/generated/icons.fallback.css" rel="stylesheet"></noscript>\n \n <meta name="viewport" content="width=device-width initial-scale=1 user-scalable=1">\n \n </head>\n<!--[if IE]><body id="asset-type-sty" class="ie device--feature"><![endif]-->\n<!--[if !IE]>--><body id="asset-type-sty" class="device--feature"><!--<![endif]-->\n <div class="direction" >\n \n <!-- BBCDOTCOM bodyFirst --><div id="bbccom_interstitial_ad" class="bbccom_display_none"></div><div id="bbccom_interstitial" class="bbccom_display_none"><script type="text/javascript"> /*<![CDATA[*/ (function() { if (window.bbcdotcom && bbcdotcom.config.isActive(\'ads\')) { googletag.cmd.push(function() { googletag.display(\'bbccom_interstitial\'); }); } }()); /*]]>*/ </script></div><div id="bbccom_wallpaper_ad" class="bbccom_display_none"></div><div id="bbccom_wallpaper" class="bbccom_display_none"><script type="text/javascript"> /*<![CDATA[*/ (function() { var wallpaper; if (window.bbcdotcom && bbcdotcom.config.isActive(\'ads\')) { if (bbcdotcom.config.isAsync()) { googletag.cmd.push(function() { googletag.display(\'bbccom_wallpaper\'); }); } else if (typeof googletag !== "undefined" && typeof googletag.display === "function") { googletag.display("wallpaper"); } wallpaper = bbcdotcom.adverts.adRegister.getAd(\'wallpaper\'); } }()); /*]]>*/ </script></div><script type="text/javascript"> /*<![CDATA[*/ (function() { if (window.bbcdotcom && bbcdotcom.config.isActive(\'ads\')) { document.write(unescape(\'%3Cscript id="gnlAdsEnabled" class="bbccom_display_none"%3E%3C/script%3E\')); } if (window.bbcdotcom && bbcdotcom.config.isActive(\'analytics\')) { document.write(unescape(\'%3Cscript id="gnlAnalyticsEnabled" class="bbccom_display_none"%3E%3C/script%3E\')); } }()); /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ (function() { window.bbcdotcom.bodyFirst = true; }()); /*]]>*/ </script> <div id="blq-global"> <div id="blq-pre-mast"> </div> </div> <script type="text/html" id="blq-bbccookies-tmpl"><![CDATA[ <section> <div id="bbccookies" class="bbccookies-banner orb-banner-wrapper bbccookies-d"> <div id="bbccookies-prompt" class="orb-banner b-g-p b-r b-f"> <h2 class="orb-banner-title"> Cookies on the BBC website </h2> <p class="orb-banner-content" dir="ltr"> The BBC has updated its cookie policy. We use cookies to ensure that we give you the best experience on our website. This includes cookies from third party social media websites if you visit a page which contains embedded content from social media. Such third party cookies may track your use of the BBC website.<span class="bbccookies-international-message"> We and our partners also use cookies to ensure we show you advertising that is relevant to you.</span> If you continue without changing your settings we\'ll assume that you are happy to receive all cookies on the BBC website. However you can change your cookie settings at any time. </p> <ul class="orb-banner-options"> <li id="bbccookies-continue"> <button type="button" id="bbccookies-continue-button">Continue</button> </li> <li id="bbccookies-settings"> <a href="/privacy/cookies/managing/cookie-settings.html">Change settings</a> </li> <li id="bbccookies-more"><a href="/privacy/cookies/bbc">Find out more</a></li></ul> </div> </div> </section> ]]></script> <script type="text/javascript">/*<![CDATA[*/ (function(){if(bbccookies._showPrompt()){var g=document b=g.getElementById("blq-pre-mast") e=g.getElementById("blq-bbccookies-tmpl") a f;if(b&&g.createElement){a=g.createElement("div");f=e.innerHTML;f=f.replace("<"+"![CDATA[" "").replace("]]"+">" "");a.innerHTML=f;b.appendChild(a);blqCookieContinueButton=g.getElementById("bbccookies-continue-button");blqCookieContinueButton.onclick=function(){a.parentNode.removeChild(a);return false};bbccookies._setPolicy(bbccookies.readPolicy())}var c=g.getElementById("bbccookies");if(c&&!window.orb.fig("uk")){c.className=c.className.replace(/\\bbbccookies-d\\b/ "");c.className=c.className+(" bbccookies-w")}}})(); /*]]>*/</script> <noscript><p style="position: absolute; top: -999em"><img src="https://sa.bbc.co.uk/bbc/bbc/s?name=news.technology.story.26415021.page&amp;ml_name&#x3D;webmodule&amp;ml_version&#x3D;89&amp;blq_js_enabled=0&blq_s=4d&blq_r=2.7&blq_v=default&blq_e=pal&cps_asset_id=26415021&page_type=Story&section=%2Fnews%2Ftechnology&first_pub=2014-03-03T07%3A36%3A59%2B00%3A00&last_editorial_update=2014-03-03T10%3A22%3A55%2B00%3A00&curie=52db3466-0acb-3a48-98c6-21a6e4f5f1cf&title=An+hour+to+catch+the+coding+bug&for_nation=il&app_version=1.219.0&bbc_site=news&pal_route=asset&app_type=responsive&language=en-GB&pal_webapp=tabloid&prod_name=news&app_name=news" height="1" width="1" alt=""></p></noscript> <!-- Begin iStats 20100118 (UX-CMC 1.1009.3) --> <script type="text/javascript">/*<![CDATA[*/ if (typeof bbccookies !== \'undefined\' && bbccookies.isAllowed(\'s1\')) { (function () { require([\'istats-1\'] function (istats) { istatsTrackingUrl = istats.getDefaultURL(); if (istats.isEnabled() && bbcFlagpoles_istats === \'ON\') { sitestat(istatsTrackingUrl); } else { window.ns_pixelUrl = istatsTrackingUrl; /* used by Flash library to track */ } function sitestat(n) { var j = document f = j.location b = ""; if (j.cookie.indexOf("st_ux=") != -1) { var k = j.cookie.split(";"); var e = "st_ux" h = document.domain a = "/"; if (typeof ns_ != "undefined" && typeof ns_.ux != "undefined") { e = ns_.ux.cName || e; h = ns_.ux.cDomain || h; a = ns_.ux.cPath || a } for (var g = 0 f = k.length; g < f; g++) { var m = k[g].indexOf("st_ux="); if (m != -1) { b = "&" + decodeURI(k[g].substring(m + 6)) } } bbccookies.set(e + "=; expires=" + new Date(new Date().getTime() - 60).toGMTString() + "; path=" + a + "; domain=" + h); } window.ns_pixelUrl = n; } }); })(); } else { window.istats = {enabled: false}; } /*]]>*/</script> <!-- End iStats (UX-CMC) --> \n <!--[if (gt IE 8) | (IEMobile)]><!--> <header id="orb-banner" role="banner"> <!--<![endif]--> <!--[if (lt IE 9) & (!IEMobile)]> <![if (IE 8)]> <header id="orb-banner" role="banner" class="orb-old-ie orb-ie8"> <![endif]> <![if (IE 7)]> <header id="orb-banner" role="banner" class="orb-old-ie orb-ie7"> <![endif]> <![if (IE 6)]> <header id="orb-banner" role="banner" class="orb-old-ie orb-ie6"> <![endif]> <![endif]--> <div id="orb-header" class="orb-nav-pri orb-nav-pri-white b-header--white--black orb-nav-empty" > <div class="orb-nav-pri-container b-r b-g-p"> <div class="orb-nav-section orb-nav-blocks"> <a href="/"> <img src="http://static.bbci.co.uk/frameworks/barlesque/3.21.31/orb/4/img/bbc-blocks-dark.png" width="84" height="24" alt="BBC" /> </a> </div> <section> <div class="orb-skip-links"> <h2>Accessibility links</h2> <ul> <li><a href="#page">Skip to content</a></li> <li><a id="orb-accessibility-help" href="/accessibility/">Accessibility Help</a></li> </ul> </div> </section> <div id="mybbc-wrapper" class="orb-nav-section orb-nav-id orb-nav-focus"> <div id="idcta-statusbar" class="orb-nav-section orb-nav-focus"> <a id="idcta-link" href="https://account.bbc.com/account?ptrt=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021"> <span id="idcta-username">BBC iD</span> </a> </div> <script type="text/javascript"> require([\'idcta/statusbar\'] function(statusbar) { new statusbar.Statusbar({"id":"idcta-statusbar" "publiclyCacheable":true}); }); </script>\n <a id="notification-link" class="js-notification-link animated three" href="#">\n <span class="hidden-span">Notifications</span>\n <div class="notification-link--triangle"></div>\n <div class="notification-link--triangle"></div>\n <span id="not-num"></span>\n </a>\n </div> <nav role="navigation" class="orb-nav"> <div class="orb-nav-section orb-nav-links orb-nav-focus" id="orb-nav-links"> <h2>BBC navigation</h2> <ul> <li class="orb-nav-home orb-d" > <a href="http://www.bbc.co.uk/">Home</a> </li> <li class="orb-nav-homedotcom orb-w" > <a href="http://www.bbc.com/">Home</a> </li> <li class="orb-nav-news orb-d" > <a href="http://www.bbc.co.uk/news">News</a> </li> <li class="orb-nav-newsdotcom orb-w" > <a href="http://www.bbc.com/news">News</a> </li> <li class="orb-nav-sport" > <a href="/sport/">Sport</a> </li> <li class="orb-nav-weather" > <a href="/weather/">Weather</a> </li> <li class="orb-nav-shop orb-w" > <a href="http://shop.bbc.com/">Shop</a> </li> <li class="orb-nav-earthdotcom orb-w" > <a href="http://www.bbc.com/earth/">Earth</a> </li> <li class="orb-nav-travel-dotcom orb-w" > <a href="http://www.bbc.com/travel/">Travel</a> </li> <li class="orb-nav-capital orb-w" > <a href="http://www.bbc.com/capital/">Capital</a> </li> <li class="orb-nav-iplayer orb-d" > <a href="/iplayer/">iPlayer</a> </li> <li class="orb-nav-culture orb-w" > <a href="http://www.bbc.com/culture/">Culture</a> </li> <li class="orb-nav-autos orb-w" > <a href="http://www.bbc.com/autos/">Autos</a> </li> <li class="orb-nav-future orb-w" > <a href="http://www.bbc.com/future/">Future</a> </li> <li class="orb-nav-tv" > <a href="/tv/">TV</a> </li> <li class="orb-nav-radio" > <a href="/radio/">Radio</a> </li> <li class="orb-nav-cbbc" > <a href="/cbbc">CBBC</a> </li> <li class="orb-nav-cbeebies" > <a href="/cbeebies">CBeebies</a> </li> <li class="orb-nav-food" > <a href="/food/">Food</a> </li> <li > <a href="/iwonder">iWonder</a> </li> <li > <a href="/education">Bitesize</a> </li> <li class="orb-nav-travel orb-d" > <a href="/travel/">Travel</a> </li> <li class="orb-nav-music" > <a href="/music/">Music</a> </li> <li class="orb-nav-earth orb-d" > <a href="http://www.bbc.com/earth/">Earth</a> </li> <li class="orb-nav-arts" > <a href="/arts/">Arts</a> </li> <li class="orb-nav-makeitdigital" > <a href="/makeitdigital">Make It Digital</a> </li> <li > <a href="/taster">Taster</a> </li> <li class="orb-nav-nature orb-w" > <a href="/nature/">Nature</a> </li> <li class="orb-nav-local" > <a href="/local/">Local</a> </li> <li class="orb-nav-tomorrowsworld orb-d" > <a href="/tomorrowsworld">Tomorrow\'s World</a> </li> <li id="orb-nav-more"><a href="#orb-footer" data-alt="More">Menu<span class="orb-icon orb-icon-arrow"></span></a></li> </ul> </div> </nav> <div class="orb-nav-section orb-nav-search"> <a class="orb-search__button" href="https://search.bbc.co.uk/search" title="Search the BBC">Search</a>\n<form class="b-f" id="orb-search-form" role="search" method="get"\n action="https://search.bbc.co.uk/search" accept-charset="utf-8">\n <div>\n \n <label for="orb-search-q">Search the BBC</label>\n <input\n id="orb-search-q"\n type="text"\n autocomplete="off"\n autocorrect="off"\n autocapitalize="off"\n spellcheck="false"\n name="q"\n placeholder="Search"\n >\n <button id="orb-search-button" class="orb-search__button">Search the BBC</button>\n <input type="hidden" name="suggid" id="orb-search-suggid"/>\n </div>\n</form>\n </div> </div> <div id="orb-panels" > <script type="text/template" id="orb-panel-template"><![CDATA[ <div id="orb-panel-<%= panelname %>" class="orb-panel" aria-labelledby="orb-nav-<%= panelname %>"> <div class="orb-panel-content b-g-p b-r"> <%= panelcontent %> </div> </div> ]]></script> </div> </div> </header> <!-- Styling hook for shared modules only --> <div id="orb-modules"> \n <div id="site-container">\n <!--[if lt IE 9]>\n<div class="browser-notify">\n <div class="browser-notify__banner">\n <div class="browser-notify__icon"></div>\n <span>This site is optimised for modern web browsers and does not fully support your version of Internet Explorer</span>\n </div>\n</div>\n<![endif]--> <div class="site-brand site-brand--height" role="banner" aria-label="BBC News">\n <div class="site-brand-inner site-brand-inner--height">\n <div class="navigation navigation--primary">\n <a href="/news" id="brand">\n <svg class="brand__svg" width="102" height="30" focusable="false" aria-hidden="true">\n <image xlink:href="http://static.bbci.co.uk/news/1.219.02158/img/brand/generated/news-light.svg" src="http://static.bbci.co.uk/news/1.219.02158/img/brand/generated/news-light.png" width="100%" height="100%"/>\n </svg>\n <span class="off-screen">News</span>\n </a> <h2 class="navigation__heading off-screen">BBC News Navigation</h2>\n <a href="#core-navigation" class="navigation__section navigation__section--core" data-event="header">\n <span class="off-screen">Sections</span>\n </a>\n </div>\n </div>\n \n<div class="navigation navigation--wide">\n <ul class="navigation-wide-list" role="navigation" aria-label="BBC News" data-panel-id="js-navigation-panel-primary">\n <li>\n <a href="/news" class="navigation-wide-list__link">\n <span>Home</span>\n </a>\n </li>\n <li>\n <a href="/news/video_and_audio/headlines" class="navigation-wide-list__link">\n <span>Video</span>\n </a>\n </li>\n <li>\n <a href="/news/world" data-panel-id="js-navigation-panel-World" class="navigation-wide-list__link">\n <span>World</span>\n </a>\n </li>\n <li>\n <a href="/news/uk" data-panel-id="js-navigation-panel-UK" class="navigation-wide-list__link">\n <span>UK</span>\n </a>\n </li>\n <li>\n <a href="/news/business" data-panel-id="js-navigation-panel-Business" class="navigation-wide-list__link">\n <span>Business</span>\n </a>\n </li>\n <li class="selected">\n <a href="/news/technology" class="navigation-wide-list__link navigation-arrow--open">\n <span>Tech</span>\n </a>\n <span class="off-screen">selected</span> </li>\n <li>\n <a href="/news/science_and_environment" class="navigation-wide-list__link">\n <span>Science</span>\n </a>\n </li>\n <li>\n <a href="/news/stories" class="navigation-wide-list__link">\n <span>Stories</span>\n </a>\n </li>\n <li>\n <a href="/news/entertainment_and_arts" class="navigation-wide-list__link">\n <span>Entertainment &amp; Arts</span>\n </a>\n </li>\n <li>\n <a href="/news/health" class="navigation-wide-list__link">\n <span>Health</span>\n </a>\n </li>\n <li>\n <a href="/news/world_radio_and_tv" class="navigation-wide-list__link">\n <span>World News TV</span>\n </a>\n </li>\n <li>\n <a href="/news/in_pictures" class="navigation-wide-list__link">\n <span>In Pictures</span>\n </a>\n </li>\n <li>\n <a href="/news/paradisepapers" class="navigation-wide-list__link">\n <span>Paradise Papers</span>\n </a>\n </li>\n <li>\n <a href="/realitycheck" class="navigation-wide-list__link">\n <span>Reality Check</span>\n </a>\n </li>\n <li>\n <a href="/news/special_reports" class="navigation-wide-list__link">\n <span>Special Reports</span>\n </a>\n </li>\n <li>\n <a href="/news/explainers" class="navigation-wide-list__link">\n <span>Explainers</span>\n </a>\n </li>\n <li>\n <a href="/news/the_reporters" class="navigation-wide-list__link">\n <span>The Reporters</span>\n </a>\n </li>\n <li>\n <a href="/news/have_your_say" class="navigation-wide-list__link navigation-wide-list__link--last">\n <span>Have Your Say</span>\n </a>\n </li>\n </ul>\n</div>\n </div>\n \n \n<div id="bbccom_leaderboard_1_2_3_4" class="bbccom_slot " aria-hidden="true">\n <div class="bbccom_advert">\n <script type="text/javascript">\n /*<![CDATA[*/\n (function() {\n if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {\n bbcdotcom.adverts.slotAsync(\'leaderboard\' [1 2 3 4]);\n }\n })();\n /*]]>*/\n </script>\n </div>\n</div>\n <div id="breaking-news-container" data-polling-url="https://polling.bbc.co.uk/news/latest_breaking_news?audience=International" aria-live="polite"></div>\n <div class="container-width-only">\n <span class="index-title index-title--redundant " id="comp-index-title" data-index-title-meta="{&quot;id&quot;:&quot;comp-index-title&quot; &quot;type&quot;:&quot;index-title&quot; &quot;handler&quot;:&quot;indexTitle&quot; &quot;deviceGroups&quot;:null &quot;opts&quot;:{&quot;alwaysVisible&quot;:false &quot;onFrontPage&quot;:false} &quot;template&quot;:&quot;index-title&quot;}">\n <span class="index-title__container">\n <a href="/news/technology">Technology</a>\n </span>\n </span>\n \n<div id="bbccom_sponsor_section_1_2_3_4" class="bbccom_slot " aria-hidden="true">\n <div class="bbccom_advert">\n <script type="text/javascript">\n /*<![CDATA[*/\n (function() {\n if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {\n bbcdotcom.adverts.slotAsync(\'sponsor_section\' [1 2 3 4]);\n }\n })();\n /*]]>*/\n </script>\n </div>\n</div>\n </div>\n \n <div id="page" class="configurable story " data-story-id="technology-26415021"> <div role="main"> <div class="container-width-only"> <span class="index-title index-title--redundant " id="comp-index-title" data-index-title-meta="{&quot;id&quot;:&quot;comp-index-title&quot; &quot;type&quot;:&quot;index-title&quot; &quot;handler&quot;:&quot;indexTitle&quot; &quot;deviceGroups&quot;:null &quot;opts&quot;:{&quot;alwaysVisible&quot;:false &quot;onFrontPage&quot;:false} &quot;template&quot;:&quot;index-title&quot;}">\n <span class="index-title__container">\n <a href="/news/technology">Technology</a>\n </span>\n </span>\n \n<div id="bbccom_sponsor_section_1_2_3_4" class="bbccom_slot " aria-hidden="true">\n <div class="bbccom_advert">\n <script type="text/javascript">\n /*<![CDATA[*/\n (function() {\n if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {\n bbcdotcom.adverts.slotAsync(\'sponsor_section\' [1 2 3 4]);\n }\n })();\n /*]]>*/\n </script>\n </div>\n</div>\n </div> <div class="container"> <div class="container--primary-and-secondary-columns column-clearfix"> <div class="column--primary">\n \n<div class="story-body">\n <h1 class="story-body__h1">An hour to catch the coding bug</h1>\n <div class="byline">\n <span class="byline__name">By Mark Ward</span>\n <span class="byline__title">Technology correspondent BBC News</span>\n </div>\n <div class="with-extracted-share-icons">\n <div class="story-body__mini-info-list-and-share">\n <div class="story-body__mini-info-list-and-share-row">\n <div class="mini-info-list-wrap">\n <ul class="mini-info-list">\n <li class="mini-info-list__item"> <div class="date date--v2" data-seconds="1393842175" data-datetime="3 March 2014">3 March 2014</div>\n</li>\n <li class="mini-info-list__item mini-info-list__item--section"><span class="mini-info-list__section-desc off-screen">From the section </span><a href="/news/technology" class="mini-info-list__section" data-entityid="section-label">Technology</a></li>\n</ul>\n </div>\n <div class="share-tools--event-tag">\n \n <div id="comp-pattern-library-6" class="distinct-component-group container-twite">\n \n <ul class="sharetools">\n <li class="twite__channel-out twite__channel-out--facebook twite__channel-click-extracted--facebook" aria-hidden="true">\n <a class="extracted__channel-link extracted__channel-link--facebook"onclick="window.open(\'http://www.facebook.com/dialog/feed?app_id=58567469885&amp;redirect_uri=http%3A%2F%2Fwww.bbc.co.uk%2Fnews%2Fspecial%2Fshared%2Fvj_sharetools%2Ffb_red_uri.html&amp;link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FSThisFB&amp;display=popup\' \'_blank\' \'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=555 height=615\')" href=\'#\' tabindex="-1">\n <span class="extracted__icon extracted__icon--facebook" data-platform="facebook">\n <svg class="extracted-svg ex-facebook" viewBox="-17 -13 44 44" enable-background="new 0 0 44 44" width="44px" height="44px" aria-hidden="true" focusable="false">\n <g><path d="M5.73 17 L5.73 9.246 L8.333 9.246 L8.723 6.223 L5.73 6.223 L5.73 4.294 C5.73 3.419 5.973 2.823 7.228 2.823 L8.828 2.822 L8.828 0.119 C8.551 0.082 7.601 0 6.496 0 C4.189 0 2.609 1.408 2.609 3.995 L2.609 6.223 L0 6.223 L0 9.246 L2.609 9.246 L2.609 17 L5.73 17 Z"/></g>\n </svg>\n </span>\n <span class="off-screen">Share this with Facebook</span>\n </a>\n </li>\n <li class="twite__channel-out twite__channel-out--twitter twite__channel-click-extracted--twitter" aria-hidden="true">\n <a class="extracted__channel-link extracted__channel-link--twitter"onclick="window.open(\'https://twitter.com/intent/tweet?text=BBC%20News%20-%20An%20hour%20to%20catch%20the%20coding%20bug&amp;url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021\' \'_blank\' \'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=550 height=250\')" href=\'#\' class=shortenUrl data-social-url=https://twitter.com/intent/tweet?text=BBC+News+-+An+hour+to+catch+the+coding+bug&amp;amp;url= data-target-url=http://www.bbc.com/news/technology-26415021 tabindex="-1">\n <span class="extracted__icon extracted__icon--twitter" data-platform="twitter">\n <svg class="extracted-svg ex-twitter" viewBox="-13 -15 44 44" enable-background="new 0 0 44 44" width="44px" height="44px" aria-hidden="true" focusable="false">\n <g><path d="M5.80573373 15 C12.7721527 15 16.581877 9.22887915 16.581877 4.22385671 C16.581877 4.06002242 16.581877 3.89618812 16.5714931 3.73466135 C17.3122088 3.19816171 17.9525471 2.53359441 18.4602026 1.77326482 C17.7690988 2.08016568 17.0364595 2.28092039 16.28536 2.36976011 C17.0756874 1.89671742 17.6675677 1.15138674 17.9502395 0.274527115 C17.2072164 0.715264453 16.3938137 1.02678037 15.5457981 1.19407596 C14.1105174 -0.331198284 11.7118448 -0.405039095 10.1865706 1.0290879 C9.20241101 1.95440555 8.78590269 3.33315194 9.09049603 4.64844138 C6.04571636 4.4961447 3.20861397 3.05740266 1.28529161 0.691035437 C0.280364327 2.42167943 0.793788713 4.63574999 2.45751448 5.74682343 C1.85525036 5.72951699 1.26567764 5.56683646 0.738408105 5.27262698 L0.738408105 5.32108501 C0.739561868 7.12441605 2.00985456 8.67622684 3.77741896 9.03389326 C3.2201516 9.18618993 2.63519393 9.20811142 2.06754269 9.09850397 C2.56366064 10.6410847 3.98509624 11.6979313 5.60613279 11.7290828 C4.26430681 12.7824682 2.60750362 13.3547344 0.902242404 13.3535807 C0.601110348 13.3524269 0.299978293 13.3339667 7.10542736e-15 13.2982001 C1.73295152 14.4104273 3.74742113 15 5.80573373 14.9965387"/></g>\n </svg>\n </span>\n <span class="off-screen">Share this with Twitter</span>\n </a>\n </li>\n <li class="twite__channel-out twite__channel-out--messengermobile twite__channel-click-extracted--messengermobile" aria-hidden="true">\n <a class="extracted__channel-link extracted__channel-link--messengermobile"href=\'fb-messenger://share?app_id=58567469885&amp;redirect_uri=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&amp;link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FCMP%3Dshare_btn_me\' target=_blank tabindex="-1">\n <span class="extracted__icon extracted__icon--messengermobile" data-platform="messengermobile">\n <svg class="extracted-svg ex-messengermobile" viewBox="-14 -13 44 44" enable-background="new 0 0 44 44" width="44px" height="44px" aria-hidden="true" focusable="false">\n <g><path d="M9.84804801 11.1721834 L7.54389655 8.77893955 L3.1059828 11.2323207 L7.97153994 6.06941781 L10.2756914 8.46377529 L14.7136051 6.00928046 L9.84804801 11.1721834 Z M8.90923715 0 C3.98911093 0 0 3.73074306 0 8.33125039 C0 10.9494525 1.29183939 13.2847862 3.3097816 14.8116068 L3.3097816 18 L6.35117243 16.3139269 C7.16079936 16.5399988 8.02054074 16.6625008 8.90923715 16.6625008 C13.830477 16.6625008 17.8184743 12.9328714 17.8184743 8.33125039 C17.8184743 3.73074306 13.830477 0 8.90923715 0 L8.90923715 0 Z"/></g>\n </svg>\n </span>\n <span class="off-screen">Share this with Messenger</span>\n </a>\n </li>\n <li class="twite__channel-out twite__channel-out--messengerdesktop twite__channel-click-extracted--messengerdesktop" aria-hidden="true">\n <a class="extracted__channel-link extracted__channel-link--messengerdesktop"onclick="window.open(\'http://www.facebook.com/dialog/send?app_id=58567469885&amp;redirect_uri=http%3A%2F%2Fwww.bbc.co.uk%2Fnews%2Fspecial%2Fshared%2Fvj_sharetools%2Ffb_red_uri.html&amp;link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FSThisFB&amp;display=popup\' \'_blank\' \'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=645 height=580\')" href=\'#\' tabindex="-1">\n <span class="extracted__icon extracted__icon--messengerdesktop" data-platform="messengerdesktop">\n <svg class="extracted-svg ex-messengerdesktop" viewBox="-14 -13 44 44" enable-background="new 0 0 44 44" width="44px" height="44px" aria-hidden="true" focusable="false">\n <g><path d="M9.84804801 11.1721834 L7.54389655 8.77893955 L3.1059828 11.2323207 L7.97153994 6.06941781 L10.2756914 8.46377529 L14.7136051 6.00928046 L9.84804801 11.1721834 Z M8.90923715 0 C3.98911093 0 0 3.73074306 0 8.33125039 C0 10.9494525 1.29183939 13.2847862 3.3097816 14.8116068 L3.3097816 18 L6.35117243 16.3139269 C7.16079936 16.5399988 8.02054074 16.6625008 8.90923715 16.6625008 C13.830477 16.6625008 17.8184743 12.9328714 17.8184743 8.33125039 C17.8184743 3.73074306 13.830477 0 8.90923715 0 L8.90923715 0 Z"/></g>\n </svg>\n </span>\n <span class="off-screen">Share this with Messenger</span>\n </a>\n </li>\n <li class="twite__channel-out twite__channel-out--email twite__channel-click-extracted--email" aria-hidden="true">\n <a class="extracted__channel-link extracted__channel-link--email"href=\'mailto:?subject=Shared%20from%20BBC%20News&amp;body=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021\' tabindex="-1">\n <span class="extracted__icon extracted__icon--email" data-platform="email">\n <svg class="extracted-svg ex-email" viewBox="-7 1 27 9" enable-background="new 0 0 44 44" width="44px" height="44px" aria-hidden="true" focusable="false">\n <g><path d="M11 4.9V9H2V2.1l4.6 5L13.1 0H0.2H0v11h13V2.8L11 4.9z M10.2 2L6.7 5.8L3.2 2H10.2z"/></g>\n </svg>\n </span>\n <span class="off-screen">Share this with Email</span>\n </a>\n </li>\n <li class="twite">\n <a href="#share-tools" class="twite__share-button" aria-label="Open share panel" data-origin="page" aria-expanded="false" aria-haspopup="true">\n <svg class="twite__share-icon" aria-hidden="true" focusable="false" viewBox="0 0 29.266 32"><path d="M5.473 22.153c1.586 0 3.01-.684 4.012-1.762l9 4.845c-.102.412-.16.85-.16 1.297 0 3.02 2.452 5.468 5.472 5.468 3.017 0 5.47-2.446 5.47-5.468 0-3.023-2.453-5.47-5.47-5.47-1.587 0-3.02.68-4.015 1.757l-9.457-5.175-.074-2.792 9.74-5.456c.99.953 2.327 1.543 3.807 1.543 3.017 0 5.47-2.45 5.47-5.474 0-3.022-2.453-5.467-5.47-5.467-3.02 0-5.473 2.444-5.473 5.466 0 .554.08 1.09.243 1.597L9.27 12.75c-.988-.95-2.326-1.537-3.797-1.537C2.447 11.213 0 13.657 0 16.68c0 3.03 2.447 5.473 5.473 5.473"/></svg><span class="twite__share-text">Share</span>\n </a>\n <div class="twite__panel arrow-top" data-share-uri="">\n <p class="twite__title" aria-hidden="true">Share this with</p>\n <span class="off-screen">These are external links and will open in a new window</span>\n <ul class="twite__channels">\n <li class="twite__channel twite__channel--email twite__channel-click--email">\n <a class="twite__channel-link"href=\'mailto:?subject=Shared%20from%20BBC%20News&amp;body=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021\' >\n <span class="twite__icon twite__icon--email" data-platform="email"></span>\n <p class="twite__channel-text" aria-hidden="true">Email</p>\n <span class="off-screen">Share this with Email</span>\n </a>\n </li>\n <li class="twite__channel twite__channel--facebook twite__channel-click--facebook">\n <a class="twite__channel-link"onclick="window.open(\'http://www.facebook.com/dialog/feed?app_id=58567469885&amp;redirect_uri=http%3A%2F%2Fwww.bbc.co.uk%2Fnews%2Fspecial%2Fshared%2Fvj_sharetools%2Ffb_red_uri.html&amp;link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FSThisFB&amp;display=popup\' \'_blank\' \'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=555 height=615\')" href=\'#\' >\n <span class="twite__icon twite__icon--facebook" data-platform="facebook"></span>\n <p class="twite__channel-text" aria-hidden="true">Facebook</p>\n <span class="off-screen">Share this with Facebook</span>\n </a>\n </li>\n <li class="twite__channel twite__channel--messengerdesktop twite__channel-click--messengerdesktop">\n <a class="twite__channel-link"onclick="window.open(\'http://www.facebook.com/dialog/send?app_id=58567469885&amp;redirect_uri=http%3A%2F%2Fwww.bbc.co.uk%2Fnews%2Fspecial%2Fshared%2Fvj_sharetools%2Ffb_red_uri.html&amp;link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FSThisFB&amp;display=popup\' \'_blank\' \'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=645 height=580\')" href=\'#\' >\n <span class="twite__icon twite__icon--messengerdesktop" data-platform="messengerdesktop"></span>\n <p class="twite__channel-text" aria-hidden="true">Messenger</p>\n <span class="off-screen">Share this with Messenger</span>\n </a>\n </li>\n <li class="twite__channel twite__channel--messengermobile twite__channel-click--messengermobile">\n <a class="twite__channel-link"href=\'fb-messenger://share?app_id=58567469885&amp;redirect_uri=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&amp;link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FCMP%3Dshare_btn_me\' target=_blank>\n <span class="twite__icon twite__icon--messengermobile" data-platform="messengermobile"></span>\n <p class="twite__channel-text" aria-hidden="true">Messenger</p>\n <span class="off-screen">Share this with Messenger</span>\n </a>\n </li>\n <li class="twite__channel twite__channel--twitter twite__channel-click--twitter">\n <a class="twite__channel-link"onclick="window.open(\'https://twitter.com/intent/tweet?text=BBC%20News%20-%20An%20hour%20to%20catch%20the%20coding%20bug&amp;url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021\' \'_blank\' \'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=550 height=250\')" href=\'#\' class=shortenUrl data-social-url=https://twitter.com/intent/tweet?text=BBC+News+-+An+hour+to+catch+the+coding+bug&amp;amp;url= data-target-url=http://www.bbc.com/news/technology-26415021>\n <span class="twite__icon twite__icon--twitter" data-platform="twitter"></span>\n <p class="twite__channel-text" aria-hidden="true">Twitter</p>\n <span class="off-screen">Share this with Twitter</span>\n </a>\n </li>\n <li class="twite__channel twite__channel--pinterest twite__channel-click--pinterest">\n <a class="twite__channel-link"onclick="window.open(\'https://uk.pinterest.com/pin/create/bookmarklet/?url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&amp;description=Is%20it%20possible%20to%20get%20children%20interested%20in%20computer%20programming%20in%20just%2060%20minutes%3F%20The%20Hour%20of%20Code%20has%20been%20designed%20to%20do%20just%20that.&amp;title=An%20hour%20to%20catch%20the%20coding%20bug&amp;media=http%3A%2F%2Fnews.bbcimg.co.uk%2Fmedia%2Fimages%2F73325000%2Fjpg%2F_73325451_hourofcode.jpg\' \'_blank\' \'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=750 height=675\')" href=\'#\' >\n <span class="twite__icon twite__icon--pinterest" data-platform="pinterest"></span>\n <p class="twite__channel-text" aria-hidden="true">Pinterest</p>\n <span class="off-screen">Share this with Pinterest</span>\n </a>\n </li>\n <li class="twite__channel twite__channel--whatsapp twite__channel-click--whatsapp">\n <a class="twite__channel-link"onclick="window.open(\'whatsapp://send?text=BBC%20News%20%7C%20An%20hour%20to%20catch%20the%20coding%20bug%20-%20http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3Focid%3Dwsnews.chat-apps.in-app-msg.whatsapp.trial.link1_.auin\' \'_blank\' \'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=600 height=600\')" href=\'#\' >\n <span class="twite__icon twite__icon--whatsapp" data-platform="whatsapp"></span>\n <p class="twite__channel-text" aria-hidden="true">WhatsApp</p>\n <span class="off-screen">Share this with WhatsApp</span>\n </a>\n </li>\n <li class="twite__channel twite__channel--linkedin twite__channel-click--linkedin">\n <a class="twite__channel-link"onclick="window.open(\'https://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&amp;title=An%20hour%20to%20catch%20the%20coding%20bug&amp;summary=Is%20it%20possible%20to%20get%20children%20interested%20in%20computer%20programming%20in%20just%2060%20minutes%3F%20The%20Hour%20of%20Code%20has%20been%20designed%20to%20do%20just%20that.&amp;source=BBC\' \'_blank\' \'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=550 height=500\')" href=\'#\' >\n <span class="twite__icon twite__icon--linkedin" data-platform="linkedin"></span>\n <p class="twite__channel-text" aria-hidden="true">LinkedIn</p>\n <span class="off-screen">Share this with LinkedIn</span>\n </a>\n </li>\n </ul>\n <p class="twite__copy-text">Copy this link</p>\n <div class="twite__copy-input">\n <a class="twite__share-link" href="http://www.bbc.com/news/technology-26415021" tabindex="-1" contenteditable="true">http://www.bbc.com/news/technology-26415021</a>\n </div>\n <a class="twite__read-more" href="http://www.bbc.co.uk/faqs/questions/bbc_online/sharing">Read more about sharing.</a>\n <p class="twite__new-window" aria-hidden="true">These are external links and will open in a new window</p>\n <button class="twite__close-button">\n <span class="off-screen">Close share panel</span>\n <div class="twite__close-button-graphic" aria-hidden="true"></div>\n </button>\n </div>\n </li>\n</ul>\n \n </div>\n </div>\n </div>\n <div id="topic-tags"><div id="u44392560492269695"><noscript></noscript></div></div> </div>\n </div>\n <div class="story-body__inner" property="articleBody">\n <figure class="media-landscape has-caption full-width lead">\n <span class="image-and-copyright-container">\n \n <img class="js-image-replace" alt="Child with computer" src="https://ichef.bbci.co.uk/news/320/media/images/73325000/jpg/_73325163_olly009.jpg" width="512" height="320">\n \n \n \n </span>\n \n <figcaption class="media-caption">\n <span class="off-screen">Image caption</span>\n <span class="media-caption__text">\n We did our Hour of Code on a lazy Sunday morning\n </span>\n </figcaption>\n \n </figure><p class="story-body__introduction">Okay 60 minutes and counting. Here we go.</p><p>I\'ve got an hour to convince my kids that programming is for them.</p><p>Well sort of.</p><p>I\'m putting my twin 10-year-old boys Toby and Callum through the Hour of Code - a campaign that seeks to ignite an interest in programming - the part we\'re doing using specially created web-based exercises. </p><p>The campaign begun in the US has landed in the UK where it also coincides with government calls for as many children as possible to get coding.</p><div id="bbccom_mpu_1_2_3" class="bbccom_slot mpu-ad" aria-hidden="true">\n <div class="bbccom_advert">\n <script type="text/javascript">\n /**/\n (function() {\n if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {\n bbcdotcom.adverts.slotAsync(\'mpu\' [1 2 3]);\n }\n })();\n /**/\n </script>\n </div>\n</div><p>Programming is being pushed because in an ever more technological world it can only be a good thing to give people a peep into what goes on behind the touch screen cash point and website. </p><p>The Hour of Code is supposed to be the start of that journey and I like many other parents feel it\'s one my children should be embarking on. I do feel like a clock somewhere is ticking and unless they get started with this essential skill they\'ll be left behind. </p><p>"In the future kids are going to be doing programming " said Callum when I asked him why it was worth learning how to code. "We need to learn so we can do stuff with the computer otherwise it will be a blank page and never work."</p><h2 class="story-body__crosshead">Zombie dance</h2><figure class="media-landscape has-caption full-width">\n <span class="image-and-copyright-container">\n \n \n <div class="js-delayed-image-load" data-alt="Screenshot from the hour of code" data-src="https://ichef-1.bbci.co.uk/news/320/media/images/73325000/jpg/_73325167_hourofcode.jpg" data-width="512" data-height="288"></div>\n \n \n <span class="off-screen">Image copyright</span>\n <span class="story-image-copyright">Code.org</span>\n \n </span>\n \n <figcaption class="media-caption">\n <span class="off-screen">Image caption</span>\n <span class="media-caption__text">\n The coding exercises involve familiar characters such as the Angry Birds\n </span>\n </figcaption>\n \n </figure><p>It\'s the getting started for both parents and their offspring that the Hour is intended to help with. I\'m probably like most parents in that I have no significant qualification in computer science. All I can offer my boys is a lifetime of tinkering backed up over the past 18 months with online courses in Python HTML CSS Javascript and the like. </p><p>There\'s good precedents for the value of something like the Hour of Code. I\'ve quizzed every chief technology officer (CTO) developer or IT worker I\'ve met in the past couple of weeks about what got them started and every one knew exactly the moment they got it. Their eyes lit up as they talked about typing in code listings from magazines working through every Dos command or designing their own blocky 8-bit game characters.</p><p>And finally at the back of my mind are all those statistics about the shortages of skilled IT staff and my hope that if this works then their future career options will be much wider than they would be without this skill.</p><p>So no pressure then.</p><p>Yesterday morning we gave it a go. I was keen for it to be fun rather than feel like school as there\'s nothing more likely to turn them off than for it to be sold as good for them. I think we struck the right note of informality - Cal did it in his onesie. </p><p>It went OK no better than that. Pretty good. We worked through all the exercises getting angry birds to mash pigs and zombies to chomp sunflowers. The coding is done by dragging blocks representing different commands into a work area and building the blocks into a tower of coherent instructions.</p><p>The block-building system is based on the Scratch programming language build by MIT\'s Mitch Resnick. </p><p>The exercises start easy - just getting an angry bird to hop on to a pig. By the end we were using "If… else" statements and loops to help a zombie navigate a tricky maze to reach the sunflower.</p><p>This went down well with Callum. "Cool! It\'s scanning for a path " he said as the zombie worked its way towards the hapless flower.</p><p>Mistakes were made but we learned from them we debated over which way to make the birds and zombies turn and the time went really fast. </p><p>Toby was surprised to find that this counted as programming.</p><p>"I thought coding was just a lot of people tapping in letter and numbers until they got it right " he said. </p><h2 class="story-body__crosshead">Next steps</h2><p>And yet I felt it was a bit too easy. I wanted to make the coding connection to real life more tangible. So as we had about 15 minutes of our Hour of Code left we went further.</p><p>This time we used the MIT App Inventor to build a basic program that would run on the tablets they own. </p><p>The app inventor uses the same "drag the block" method to build a program and following the instructions we had soon created an app that turned anything typed in text into speech. </p><figure class="media-landscape has-caption body-narrow-width">\n <span class="image-and-copyright-container">\n \n \n <div class="js-delayed-image-load" data-alt="Screenshot from MIT App Inventor" data-src="https://ichef.bbci.co.uk/news/320/media/images/73325000/jpg/_73325169_appinventor.jpg" data-width="448" data-height="287"></div>\n \n \n <span class="off-screen">Image copyright</span>\n <span class="story-image-copyright">MIT</span>\n \n </span>\n \n <figcaption class="media-caption">\n <span class="off-screen">Image caption</span>\n <span class="media-caption__text">\n The App Inventor uses the same block dragging system as the Hour of Code exercises\n </span>\n </figcaption>\n \n </figure><p>We got it working on Cal\'s tablet and soon they were getting that gadget to call out lots of phrases. Almost inevitably as they are 10 years old a lot of these phrases involved the words "willy" and "bum". </p><p>But they had a lot of fun with it and it brought home to them how straight-forward coding can be. In just over an hour they went from being pretty much novices to creating an Android app - a basic one that trades on the expertise of the people that built the coding tools but it was an accomplishment nonetheless.</p><p>Did they catch the coding bug as a result? </p><p>Maybe later in the day they were programming each other after one of their regular wrestling matches left Toby lying exhausted on the floor. Suddenly Cal called out commands such as "roll left" and Toby started obeying even to the point of crashing into the sofa when too many roll commands were given. </p><p>Then Toby had his turn and did the same they even worked out that they had to compensate for the changes in left and right as they rolled. </p><p>So I think that hour started something. Both with them and with me. Building that Android app made me realise that it is straight-forward. That my lack of formal qualifications do not matter as much as I thought. And maybe that\'s the point of the hour. Making people realise that it is not scary and difficult. You just have to find an hour and give it a try. You can even do it in your onesie.</p>\n </div>\n</div>\n <div id="topic-tags"><div id="u11473008152097464"><noscript></noscript></div></div>\n <div class="share share--lightweight show ghost-column">\n <div id="share-tools"></div>\n <h2 class="share__title share__title--lightweight">\n Share this story <a href="http://www.bbc.co.uk/help/web/sharing.shtml">About&nbsp;sharing</a>\n </h2>\n <ul class="share__tools share__tools--lightweight">\n <li class="share__tool share__tool--email">\n <a href="mailto:?subject=Shared%20from%20BBC%20News&body=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021" >\n <span>Email</span>\n </a>\n </li>\n <li class="share__tool share__tool--facebook">\n <a href="http://www.facebook.com/dialog/feed?app_id=58567469885&redirect_uri=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FSThisFB&display=popup" >\n <span>Facebook</span>\n </a>\n </li>\n <li class="share__tool share__tool--messengerdesktop">\n <a href="http://www.facebook.com/dialog/send?app_id=58567469885&redirect_uri=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FSThisFB&display=popup" >\n <span>Messenger</span>\n </a>\n </li>\n <li class="share__tool share__tool--messengermobile">\n <a href="fb-messenger://share?app_id=58567469885&redirect_uri=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FCMP%3Dshare_btn_me" target=_blank>\n <span>Messenger</span>\n </a>\n </li>\n <li class="share__tool share__tool--twitter">\n <a href="https://twitter.com/intent/tweet?text=BBC%20News%20-%20An%20hour%20to%20catch%20the%20coding%20bug&url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021" class=shortenUrl data-social-url=https://twitter.com/intent/tweet?text=BBC+News+-+An+hour+to+catch+the+coding+bug&amp;url= data-target-url=http://www.bbc.com/news/technology-26415021>\n <span>Twitter</span>\n </a>\n </li>\n <li class="share__tool share__tool--pinterest">\n <a href="https://uk.pinterest.com/pin/create/bookmarklet/?url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&description=Is%20it%20possible%20to%20get%20children%20interested%20in%20computer%20programming%20in%20just%2060%20minutes%3F%20The%20Hour%20of%20Code%20has%20been%20designed%20to%20do%20just%20that.&title=An%20hour%20to%20catch%20the%20coding%20bug&media=http%3A%2F%2Fwww.bbc.co.uk%2Fnews%2Fspecial%2F2015%2Fnewsspec_10857%2Fbbc_news_logo.png%3Fcb%3D1" >\n <span>Pinterest</span>\n </a>\n </li>\n <li class="share__tool share__tool--whatsapp">\n <a href="whatsapp://send?text=BBC%20News%20%7C%20An%20hour%20to%20catch%20the%20coding%20bug%20-%20http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3Focid%3Dwsnews.chat-apps.in-app-msg.whatsapp.trial.link1_.auin" >\n <span>WhatsApp</span>\n </a>\n </li>\n <li class="share__tool share__tool--linkedin">\n <a href="https://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&title=An%20hour%20to%20catch%20the%20coding%20bug&summary=Is%20it%20possible%20to%20get%20children%20interested%20in%20computer%20programming%20in%20just%2060%20minutes%3F%20The%20Hour%20of%20Code%20has%20been%20designed%20to%20do%20just%20that.&source=BBC" >\n <span>LinkedIn</span>\n </a>\n </li>\n </ul>\n</div>\n <div class="story-more">\n <div class="group story-alsos more-on-this-story"> <div class="group__header"> <h2 class="group__title">More on this story</h2> </div> <div class="group__body"> <ul class="units-list "> <li class="unit unit--regular" data-entityid="more-on-this-story#1" > <a href="/news/av/education-25648769/computer-coding-taught-in-estonian-primary-schools" class="unit__link-wrapper"> <div class="unit__body"> <div class="unit__header"> <div class="unit__title"> \n <span class="icon-new icon-new--video-square-red"><span class="off-screen"> Video</span></span>\n \n \n <span class="cta"> Computer coding taught in Estonian primary schools </span> </div> <div class="unit__meta"> <div class="date date--v1" data-seconds="1389169705" data-datetime="8 January 2014">8 January 2014</div> </div> </div> </div> </a> </li> <li class="unit unit--regular" data-entityid="more-on-this-story#2" > <a href="/news/technology-26150717" class="unit__link-wrapper"> <div class="unit__body"> <div class="unit__header"> <div class="unit__title"> <span class="cta"> Year of Code - PR fiasco or vital mission? </span> </div> <div class="unit__meta"> <div class="date date--v1" data-seconds="1392196197" data-datetime="12 February 2014">12 February 2014</div> </div> </div> </div> </a> </li> <li class="unit unit--regular" data-entityid="more-on-this-story#3" > <a href="/news/technology-25857276" class="unit__link-wrapper"> <div class="unit__body"> <div class="unit__header"> <div class="unit__title"> <span class="cta"> Are teachers ready for the coding revolution? </span> </div> <div class="unit__meta"> <div class="date date--v1" data-seconds="1390468159" data-datetime="23 January 2014">23 January 2014</div> </div> </div> </div> </a> </li> </ul> </div> </div> </div>\n \n<div class="story-more">\n <div class="group related-links--external more-on-this-story"> <div class="group__header"> <h2 class="group__title">Related Internet links</h2> </div> <div class="group__body"> <ul class="units-list "> <li class="unit unit--headline" data-entityid="more-on-this-story#1" > <div class="unit__body"> <div class="unit__header"> <a class="unit__link-wrapper" href="http://uk.code.org/"> <div class="unit__title"> <span class="cta">UK Hour of Code</span> </div> </a> </div> </div> </li> <li class="unit unit--headline" data-entityid="more-on-this-story#2" > <div class="unit__body"> <div class="unit__header"> <a class="unit__link-wrapper" href="http://appinventor.mit.edu/explore/"> <div class="unit__title"> <span class="cta">MIT App Inventor</span> </div> </a> </div> </div> </li> <li class="unit unit--headline" data-entityid="more-on-this-story#3" > <div class="unit__body"> <div class="unit__header"> <a class="unit__link-wrapper" href="http://scratch.mit.edu/"> <div class="unit__title"> <span class="cta">MIT Scratch</span> </div> </a> </div> </div> </li> </ul> </div> </div> \n <p class="unit__meta">The BBC is not responsible for the content of external Internet sites</p>\n</div>\n <div id=comp-pattern-library-8\n class="hidden"\n data-post-load-url="/news/pattern-library-components?options%5BassetId%5D=26415021&amp;options%5Bcontainer_class%5D=container-more-from-this-index&amp;options%5Bdata%5D%5Bsource%5D=candy_parent_index&amp;options%5Bdata%5D%5Bsource_params%5D%5Bsection_title%5D=1&amp;options%5Bcomponents%5D%5B0%5D%5Bname%5D=sparrow&amp;options%5Bcomponents%5D%5B0%5D%5Blimit%5D=3&amp;options%5Bloading_strategy%5D=post_load&amp;options%5Bstats%5D%5Blink_location%5D=more-section-index&amp;options%5Bstats%5D%5Bstrapline_link_location%5D=more-from-this-index-headline&amp;options%5Bstats%5D%5Bsection_label%5D=more-from-this-index-section-label&amp;options%5Basset_id%5D=technology-26415021&amp;presenter=pattern-library-presenter">\n </div> <div id=comp-from-other-news-sites\n class="hidden"\n data-comp-meta="{&quot;id&quot;:&quot;comp-from-other-news-sites&quot; &quot;type&quot;:&quot;from-other-news-sites&quot; &quot;handler&quot;:&quot;default&quot; &quot;deviceGroups&quot;:null &quot;opts&quot;:{&quot;assetId&quot;:&quot;26415021&quot; &quot;conditions&quot;:[&quot;is_local_page&quot;] &quot;loading_strategy&quot;:&quot;post_load&quot; &quot;asset_id&quot;:&quot;technology-26415021&quot; &quot;position_info&quot;:{&quot;instanceNo&quot;:1 &quot;positionInRegion&quot;:7 &quot;lastInRegion&quot;:true &quot;lastOnPage&quot;:false &quot;column&quot;:&quot;primary_column&quot;}} &quot;template&quot;:&quot;\\/component\\/from-other-news-sites&quot;}">\n </div> \n<div id="bbccom_outbrain_ar_5_1_2_3_4" class="bbccom_slot outbrain-ad" aria-hidden="true">\n <div class="bbccom_advert">\n <script type="text/javascript">\n /*<![CDATA[*/\n (function() {\n if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {\n bbcdotcom.adverts.slotAsync(\'outbrain_ar_5\' [1 2 3 4]);\n }\n })();\n /*]]>*/\n </script>\n </div>\n</div>\n<div id="bbccom_outbrain_ar_7_1_2_3_4" class="bbccom_slot outbrain-ad" aria-hidden="true">\n <div class="bbccom_advert">\n <script type="text/javascript">\n /*<![CDATA[*/\n (function() {\n if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {\n bbcdotcom.adverts.slotAsync(\'outbrain_ar_7\' [1 2 3 4]);\n }\n })();\n /*]]>*/\n </script>\n </div>\n</div>\n<div id="bbccom_outbrain_ar_8_1_2_3_4" class="bbccom_slot outbrain-ad" aria-hidden="true">\n <div class="bbccom_advert">\n <script type="text/javascript">\n /*<![CDATA[*/\n (function() {\n if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {\n bbcdotcom.adverts.slotAsync(\'outbrain_ar_8\' [1 2 3 4]);\n }\n })();\n /*]]>*/\n </script>\n </div>\n</div>\n </div>\n <div class="column--secondary" role="complementary">\n <div id="comp-top-stories-promo" class="top-stories-promo">\n <h2 class="top-stories-promo__title">Top Stories</h2>\n <a href="/news/world-latin-america-42055676" class="top-stories-promo-story" data-asset-id="/news/world-latin-america-42055676"data-entityid="top-stories#1">\n <strong class="top-stories-promo-story__title">Missing submarine \'reported breakdown\'</strong>\n <p class="top-stories-promo-story__summary top-stories-promo-story__summary--none">The Argentine navy boat vanished off the coast last Wednesday and no trace has been found.</p>\n <div class="date date--v2" data-seconds="1511192516" data-datetime="20 November 2017">20 November 2017</div>\n </a>\n <a href="/news/world-europe-42047532" class="top-stories-promo-story" data-asset-id="/news/world-europe-42047532"data-entityid="top-stories#3">\n <strong class="top-stories-promo-story__title">Blow for Merkel as German talks collapse</strong>\n <div class="date date--v2" data-seconds="1511188547" data-datetime="20 November 2017">20 November 2017</div>\n </a>\n <a href="/news/world-africa-42048412" class="top-stories-promo-story" data-asset-id="/news/world-africa-42048412"data-entityid="top-stories#5">\n <strong class="top-stories-promo-story__title">Mugabe ignores party\'s deadline to quit</strong>\n <div class="date date--v2" data-seconds="1511183438" data-datetime="20 November 2017">20 November 2017</div>\n </a>\n </div> \n<div id="bbccom_mpu_4" class="bbccom_slot mpu-ad" aria-hidden="true">\n <div class="bbccom_advert">\n <script type="text/javascript">\n /*<![CDATA[*/\n (function() {\n if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {\n bbcdotcom.adverts.slotAsync(\'mpu\' [4]);\n }\n })();\n /*]]>*/\n </script>\n </div>\n</div>\n \n<div class="features-and-analysis" id="comp-features-and-analysis" >\n <h2 class="features-and-analysis__title">\n \n Features\n </h2>\n <div class="features-and-analysis__stories promo-unit-spacer">\n \n <div class="features-and-analysis__story" data-entityid="features-and-analysis#1">\n <a href="/news/world-us-canada-42051402" class="bold-image-promo">\n <div class="bold-image-promo__image">\n <div class="responsive-image responsive-image--16by9">\n \n <div class="js-delayed-image-load" data-src="https://ichef.bbci.co.uk/news/304/cpsprodpb/3694/production/_98827931_manson1969_other.jpg" data-width="976" data-height="549" data-alt="Charles Manson in 1969"></div>\n <!--[if lt IE 9]>\n <img src="https://ichef.bbci.co.uk/news/304/cpsprodpb/3694/production/_98827931_manson1969_other.jpg" class="js-image-replace" alt="Charles Manson in 1969" width="976" height="549" />\n <![endif]-->\n \n </div>\n </div>\n <h3 class="bold-image-promo__title">The terrible charisma of Charles Manson</h3>\n <p class="bold-image-promo__summary"> </p>\n </a>\n </div>\n \n \n <div class="features-and-analysis__story" data-entityid="features-and-analysis#2">\n <a href="/news/av/world-us-canada-42015435/a-boom-industry-that-lifted-this-woman-out-of-homelessness" class="bold-image-promo">\n <div class="bold-image-promo__image">\n <div class="responsive-image responsive-image--16by9">\n <div class="responsive-image__inner-for-label"><!-- closed in responsive-image-end -->\n <div class="js-delayed-image-load" data-src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/93DA/production/_98805873_p05nf06p.jpg" data-width="1024" data-height="576" data-alt="Sharon\'s life was rock bottom when she was homeless but how she has a bright future in the solar industry."></div>\n <!--[if lt IE 9]>\n <img src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/93DA/production/_98805873_p05nf06p.jpg" class="js-image-replace" alt="Sharon\'s life was rock bottom when she was homeless but how she has a bright future in the solar industry." width="1024" height="576" />\n <![endif]-->\n <div class="responsive-image__label" aria-hidden="true">\n <span class="icon video"><span class="off-screen"> Video</span></span>\n \n \n \n </div>\n <!-- opened in responsive-image-start --></div>\n </div>\n </div>\n <h3 class="bold-image-promo__title">A boom industry that lifted this woman out of homelessness</h3>\n <p class="bold-image-promo__summary"> </p>\n </a>\n </div>\n \n \n <div class="features-and-analysis__story" data-entityid="features-and-analysis#3">\n <a href="/news/world-asia-india-41983359" class="bold-image-promo">\n <div class="bold-image-promo__image">\n <div class="responsive-image responsive-image--16by9">\n \n <div class="js-delayed-image-load" data-src="https://ichef.bbci.co.uk/news/304/cpsprodpb/F1E2/production/_98822916_indira-canteen-54.jpg" data-width="976" data-height="549" data-alt="A mother feeds her baby"></div>\n <!--[if lt IE 9]>\n <img src="https://ichef.bbci.co.uk/news/304/cpsprodpb/F1E2/production/_98822916_indira-canteen-54.jpg" class="js-image-replace" alt="A mother feeds her baby" width="976" height="549" />\n <![endif]-->\n \n </div>\n </div>\n <h3 class="bold-image-promo__title">The best meal you can buy for 13 cents</h3>\n <p class="bold-image-promo__summary"> </p>\n </a>\n </div>\n \n<div id="bbccom_infeed_news_story_1_2_3_4_5" class="bbccom_slot infeednewsstory-ad" aria-hidden="true">\n <div class="bbccom_advert">\n <script type="text/javascript">\n /*<![CDATA[*/\n (function() {\n if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {\n bbcdotcom.adverts.slotAsync(\'infeed_news_story\' [1 2 3 4 5]);\n }\n })();\n /*]]>*/\n </script>\n </div>\n</div>\n \n <div class="features-and-analysis__story" data-entityid="features-and-analysis#4">\n <a href="/news/av/stories-41999611/don-t-fall-apart-managing-your-mind-at-work" class="bold-image-promo">\n <div class="bold-image-promo__image">\n <div class="responsive-image responsive-image--16by9">\n <div class="responsive-image__inner-for-label"><!-- closed in responsive-image-end -->\n <div class="js-delayed-image-load" data-src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/3C08/production/_98786351_p05n8pvy.jpg" data-width="1024" data-height="576" data-alt="An action plan for the workplace"></div>\n <!--[if lt IE 9]>\n <img src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/3C08/production/_98786351_p05n8pvy.jpg" class="js-image-replace" alt="An action plan for the workplace" width="1024" height="576" />\n <![endif]-->\n <div class="responsive-image__label" aria-hidden="true">\n <span class="icon video"><span class="off-screen"> Video</span></span>\n \n \n \n </div>\n <!-- opened in responsive-image-start --></div>\n </div>\n </div>\n <h3 class="bold-image-promo__title">\'Don’t fall apart\': Managing your mind at work</h3>\n <p class="bold-image-promo__summary"> </p>\n </a>\n </div>\n \n \n <div class="features-and-analysis__story" data-entityid="features-and-analysis#5">\n <a href="/news/world-africa-42012629" class="bold-image-promo">\n <div class="bold-image-promo__image">\n <div class="responsive-image responsive-image--16by9">\n \n <div class="js-delayed-image-load" data-src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/1BF0/production/_98825170_china_zimbabwe.jpg" data-width="976" data-height="549" data-alt="General Li Zuocheng of China and General Constantine Guveya Chiwenga of Zimbabwe"></div>\n <!--[if lt IE 9]>\n <img src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/1BF0/production/_98825170_china_zimbabwe.jpg" class="js-image-replace" alt="General Li Zuocheng of China and General Constantine Guveya Chiwenga of Zimbabwe" width="976" height="549" />\n <![endif]-->\n \n </div>\n </div>\n <h3 class="bold-image-promo__title">Why China matters to Zimbabwe\'s leaders</h3>\n <p class="bold-image-promo__summary"> </p>\n </a>\n </div>\n \n \n <div class="features-and-analysis__story" data-entityid="features-and-analysis#6">\n <a href="/news/av/world-middle-east-42030899/hipster-trends-on-egypt-s-streets" class="bold-image-promo">\n <div class="bold-image-promo__image">\n <div class="responsive-image responsive-image--16by9">\n <div class="responsive-image__inner-for-label"><!-- closed in responsive-image-end -->\n <div class="js-delayed-image-load" data-src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/9CEC/production/_98827104_p05nlpgw.jpg" data-width="1024" data-height="576" data-alt="Egyptian getting hair cut in trendy style"></div>\n <!--[if lt IE 9]>\n <img src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/9CEC/production/_98827104_p05nlpgw.jpg" class="js-image-replace" alt="Egyptian getting hair cut in trendy style" width="1024" height="576" />\n <![endif]-->\n <div class="responsive-image__label" aria-hidden="true">\n <span class="icon video"><span class="off-screen"> Video</span></span>\n \n \n \n </div>\n <!-- opened in responsive-image-start --></div>\n </div>\n </div>\n <h3 class="bold-image-promo__title">Hipster trends on Egypt\'s streets</h3>\n <p class="bold-image-promo__summary"> </p>\n </a>\n </div>\n \n \n <div class="features-and-analysis__story" data-entityid="features-and-analysis#7">\n <a href="/news/in-pictures-42002426" class="bold-image-promo">\n <div class="bold-image-promo__image">\n <div class="responsive-image responsive-image--16by9">\n \n <div class="js-delayed-image-load" data-src="https://ichef.bbci.co.uk/news/304/cpsprodpb/C723/production/_98797905_pa-7437843.jpg" data-width="937" data-height="527" data-alt="Queen Elizabeth and Prince Philip"></div>\n <!--[if lt IE 9]>\n <img src="https://ichef.bbci.co.uk/news/304/cpsprodpb/C723/production/_98797905_pa-7437843.jpg" class="js-image-replace" alt="Queen Elizabeth and Prince Philip" width="937" height="527" />\n <![endif]-->\n \n </div>\n </div>\n <h3 class="bold-image-promo__title">In pictures: 70 years of royal marriage</h3>\n <p class="bold-image-promo__summary"> </p>\n </a>\n </div>\n \n \n <div class="features-and-analysis__story" data-entityid="features-and-analysis#8">\n <a href="/news/av/stories-42031639/here-are-the-people-battling-online-for-russia-s-future" class="bold-image-promo">\n <div class="bold-image-promo__image">\n <div class="responsive-image responsive-image--16by9">\n <div class="responsive-image__inner-for-label"><!-- closed in responsive-image-end -->\n <div class="js-delayed-image-load" data-src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/11E7C/production/_98804337_ptaha.jpg" data-width="1920" data-height="1080" data-alt="Ptaha the pro-Kremlin rapper"></div>\n <!--[if lt IE 9]>\n <img src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/11E7C/production/_98804337_ptaha.jpg" class="js-image-replace" alt="Ptaha the pro-Kremlin rapper" width="1920" height="1080" />\n <![endif]-->\n <div class="responsive-image__label" aria-hidden="true">\n <span class="icon video"><span class="off-screen"> Video</span></span>\n \n \n \n </div>\n <!-- opened in responsive-image-start --></div>\n </div>\n </div>\n <h3 class="bold-image-promo__title">Here are the people battling online for Russia’s future</h3>\n <p class="bold-image-promo__summary"> </p>\n </a>\n </div>\n \n \n <div class="features-and-analysis__story" data-entityid="features-and-analysis#9">\n <a href="/news/business-41902071" class="bold-image-promo">\n <div class="bold-image-promo__image">\n <div class="responsive-image responsive-image--16by9">\n \n <div class="js-delayed-image-load" data-src="https://ichef.bbci.co.uk/news/304/cpsprodpb/1850/production/_98742260_976549gettyimages-75883096.jpg" data-width="976" data-height="549" data-alt="Meat displayed on a chilled shelf in a supermarket"></div>\n <!--[if lt IE 9]>\n <img src="https://ichef.bbci.co.uk/news/304/cpsprodpb/1850/production/_98742260_976549gettyimages-75883096.jpg" class="js-image-replace" alt="Meat displayed on a chilled shelf in a supermarket" width="976" height="549" />\n <![endif]-->\n \n </div>\n </div>\n <h3 class="bold-image-promo__title">How refrigeration revolutionised global trade</h3>\n <p class="bold-image-promo__summary"> </p>\n </a>\n </div>\n \n </div>\n</div>\n \n<div id="bbccom_native_1_2_3_4" class="bbccom_slot native-ad" >\n <div class="bbccom_advert">\n <script type="text/javascript">\n /*<![CDATA[*/\n (function() {\n if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {\n bbcdotcom.adverts.slotAsync(\'native\' [1 2 3 4]);\n }\n })();\n /*]]>*/\n </script>\n </div>\n</div>\n <div id=comp-most-popular\n class="hidden"\n data-comp-meta="{&quot;id&quot;:&quot;comp-most-popular&quot; &quot;type&quot;:&quot;most-popular&quot; &quot;handler&quot;:&quot;mostPopular&quot; &quot;deviceGroups&quot;:null &quot;opts&quot;:{&quot;assetId&quot;:&quot;26415021&quot; &quot;loading_strategy&quot;:&quot;post_load&quot; &quot;position_info&quot;:{&quot;instanceNo&quot;:1 &quot;positionInRegion&quot;:3 &quot;lastInRegion&quot;:true &quot;lastOnPage&quot;:true &quot;column&quot;:&quot;secondary_column&quot;}}}">\n </div> \n<div id="bbccom_mpu_bottom_1_2_3_4" class="bbccom_slot mpu-bottom-ad" aria-hidden="true">\n <div class="bbccom_advert">\n <script type="text/javascript">\n /*<![CDATA[*/\n (function() {\n if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {\n bbcdotcom.adverts.slotAsync(\'mpu_bottom\' [1 2 3 4]);\n }\n })();\n /*]]>*/\n </script>\n </div>\n</div>\n<div id="bbccom_outbrain_ar_9_1_2_3_4" class="bbccom_slot outbrain-ad" aria-hidden="true">\n <div class="bbccom_advert">\n <script type="text/javascript">\n /*<![CDATA[*/\n (function() {\n if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {\n bbcdotcom.adverts.slotAsync(\'outbrain_ar_9\' [1 2 3 4]);\n }\n })();\n /*]]>*/\n </script>\n </div>\n</div>\n<div id="bbccom_adsense_1_2_3_4" class="bbccom_slot adsense-ad" aria-hidden="true">\n <div class="bbccom_advert">\n <script type="text/javascript">\n /*<![CDATA[*/\n (function() {\n if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {\n bbcdotcom.adverts.slotAsync(\'adsense\' [1 2 3 4]);\n }\n })();\n /*]]>*/\n </script>\n </div>\n</div>\n<div id="bbccom_inread_1_2_3_4" class="bbccom_slot inread" aria-hidden="true">\n <div class="bbccom_advert">\n <script type="text/javascript">\n /*<![CDATA[*/\n (function() {\n if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {\n bbcdotcom.adverts.slotAsync(\'inread\' [1 2 3 4]);\n }\n })();\n /*]]>*/\n </script>\n </div>\n</div>\n </div>\n </div> </div> </div> </div> \n \n<div id="core-navigation" class="navigation--footer">\n <h2 class="navigation--footer__heading">BBC News Navigation</h2>\n \n <nav id="navigation--bottom" class="navigation navigation--bottom " role="navigation" aria-label="BBC News">\n <span class="navigation-core-title">Sections</span>\n <ul class="navigation--bottom__toplevel">\n <li class="">\n <a href="/news" class="">\n <span>Home</span>\n </a>\n </li>\n <li class="">\n <a href="/news/video_and_audio/headlines" class="">\n <span>Video</span>\n </a>\n </li>\n <li class="">\n <a href="/news/world" data-panel-id="js-navigation-panel-World" class="navigation-arrow">\n <span>World</span>\n </a>\n <div class="navigation-panel navigation-panel--closed js-navigation-panel-World">\n <div class="navigation-panel__content">\n <ul class="navigation-panel-secondary">\n <li><a href="/news/world"><span>World Home</span></a></li>\n <li>\n <a href="/news/world/africa"><span>Africa</span></a> </li>\n <li>\n <a href="/news/world/asia"><span>Asia</span></a> </li>\n <li>\n <a href="/news/world/australia"><span>Australia</span></a> </li>\n <li>\n <a href="/news/world/europe"><span>Europe</span></a> </li>\n <li>\n <a href="/news/world/latin_america"><span>Latin America</span></a> </li>\n <li>\n <a href="/news/world/middle_east"><span>Middle East</span></a> </li>\n <li>\n <a href="/news/world/us_and_canada"><span>US &amp; Canada</span></a> </li>\n </ul>\n </div>\n </div>\n </li>\n <li class="">\n <a href="/news/uk" data-panel-id="js-navigation-panel-UK" class="navigation-arrow">\n <span>UK</span>\n </a>\n <div class="navigation-panel navigation-panel--closed js-navigation-panel-UK">\n <div class="navigation-panel__content">\n <ul class="navigation-panel-secondary">\n <li><a href="/news/uk"><span>UK Home</span></a></li>\n <li>\n <a href="/news/england"><span>England</span></a> </li>\n <li>\n <a href="/news/northern_ireland"><span>N. Ireland</span></a> </li>\n <li>\n <a href="/news/scotland"><span>Scotland</span></a> </li>\n <li>\n <a href="/news/wales"><span>Wales</span></a> </li>\n <li>\n <a href="/news/politics"><span>Politics</span></a> </li>\n </ul>\n </div>\n </div>\n </li>\n <li class="">\n <a href="/news/business" data-panel-id="js-navigation-panel-Business" class="navigation-arrow">\n <span>Business</span>\n </a>\n <div class="navigation-panel navigation-panel--closed js-navigation-panel-Business">\n <div class="navigation-panel__content">\n <ul class="navigation-panel-secondary">\n <li><a href="/news/business"><span>Business Home</span></a></li>\n <li>\n <a href="http://www.bbc.co.uk/news/business/market_data"><span>Market Data</span></a> </li>\n <li>\n <a href="/news/business/markets"><span>Markets</span></a> </li>\n <li>\n <a href="/news/business-38507481"><span>Global Trade</span></a> </li>\n <li>\n <a href="/news/business/companies"><span>Companies</span></a> </li>\n <li>\n <a href="/news/business-22434141"><span>Entrepreneurship</span></a> </li>\n <li>\n <a href="/news/business-11428889"><span>Technology of Business</span></a> </li>\n <li>\n <a href="/news/business/business_of_sport"><span>Business of Sport</span></a> </li>\n <li>\n <a href="/news/business-12686570"><span>Global Education</span></a> </li>\n <li>\n <a href="/news/business/economy"><span>Economy</span></a> </li>\n </ul>\n </div>\n </div>\n </li>\n <li class="selected ">\n <a href="/news/technology" class="navigation-arrow--open">\n <span>Tech</span>\n </a>\n <span class="off-screen">selected</span> </li>\n <li class="">\n <a href="/news/science_and_environment" class="">\n <span>Science</span>\n </a>\n </li>\n <li class="">\n <a href="/news/stories" class="">\n <span>Stories</span>\n </a>\n </li>\n <li class="">\n <a href="/news/entertainment_and_arts" class="">\n <span>Entertainment &amp; Arts</span>\n </a>\n </li>\n <li class="">\n <a href="/news/health" class="">\n <span>Health</span>\n </a>\n </li>\n <li class="">\n <a href="/news/world_radio_and_tv" class="">\n <span>World News TV</span>\n </a>\n </li>\n <li class="">\n <a href="/news/in_pictures" class="">\n <span>In Pictures</span>\n </a>\n </li>\n <li class="">\n <a href="/news/paradisepapers" class="">\n <span>Paradise Papers</span>\n </a>\n </li>\n <li class="">\n <a href="/realitycheck" class="">\n <span>Reality Check</span>\n </a>\n </li>\n <li class="">\n <a href="/news/special_reports" class="">\n <span>Special Reports</span>\n </a>\n </li>\n <li class="">\n <a href="/news/explainers" class="">\n <span>Explainers</span>\n </a>\n </li>\n <li class="">\n <a href="/news/the_reporters" class="">\n <span>The Reporters</span>\n </a>\n </li>\n <li class="">\n <a href="/news/have_your_say" class="">\n <span>Have Your Say</span>\n </a>\n </li>\n </ul>\n </nav>\n</div> \n <div id="comp-pattern-library-2" class="distinct-component-group ">\n \n <div id="bbc-news-services" class="blue-tit" role="navigation" aria-label="BBC News Services">\n <div class="blue-tit__inner">\n <h2 class="blue-tit__title">BBC News Services</h2>\n <ul class="blue-tit__list">\n <li class="blue-tit__list-item">\n <a href="http://www.bbc.co.uk/news/10628994" class="blue-tit__list-item-link mobile">On your mobile</a>\n </li>\n <li class="blue-tit__list-item">\n <a href="http://www.bbc.co.uk/news/help-17655000" class="blue-tit__list-item-link connected-tv">On your connected tv</a>\n </li>\n <li class="blue-tit__list-item">\n <a href="http://www.bbc.co.uk/news/10628323" class="blue-tit__list-item-link newsletter">Get news alerts</a>\n </li>\n <li class="blue-tit__list-item">\n <a href="http://www.bbc.co.uk/news/20039682" class="blue-tit__list-item-link contact-us">Contact BBC News</a>\n </li>\n </ul>\n </div>\n</div>\n \n </div>\n </div><!-- closes #site-container --> </div> <div id="orb-footer" class="orb-footer orb-footer-grey b-footer--grey--white" > <div id="navp-orb-footer-promo" class="orb-footer-grey"></div> <aside role="complementary"> <div id="orb-aside" class="orb-nav-sec b-r b-g-p"> <div class="orb-footer-inner" role="navigation"> <h2 class="orb-footer-lead">Explore the BBC</h2> <div class="orb-footer-primary-links"> <ul> <li class="orb-nav-home orb-d" > <a href="http://www.bbc.co.uk/">Home</a> </li> <li class="orb-nav-homedotcom orb-w" > <a href="http://www.bbc.com/">Home</a> </li> <li class="orb-nav-news orb-d" > <a href="http://www.bbc.co.uk/news">News</a> </li> <li class="orb-nav-newsdotcom orb-w" > <a href="http://www.bbc.com/news">News</a> </li> <li class="orb-nav-sport" > <a href="/sport/">Sport</a> </li> <li class="orb-nav-weather" > <a href="/weather/">Weather</a> </li> <li class="orb-nav-shop orb-w" > <a href="http://shop.bbc.com/">Shop</a> </li> <li class="orb-nav-earthdotcom orb-w" > <a href="http://www.bbc.com/earth/">Earth</a> </li> <li class="orb-nav-travel-dotcom orb-w" > <a href="http://www.bbc.com/travel/">Travel</a> </li> <li class="orb-nav-capital orb-w" > <a href="http://www.bbc.com/capital/">Capital</a> </li> <li class="orb-nav-iplayer orb-d" > <a href="/iplayer/">iPlayer</a> </li> <li class="orb-nav-culture orb-w" > <a href="http://www.bbc.com/culture/">Culture</a> </li> <li class="orb-nav-autos orb-w" > <a href="http://www.bbc.com/autos/">Autos</a> </li> <li class="orb-nav-future orb-w" > <a href="http://www.bbc.com/future/">Future</a> </li> <li class="orb-nav-tv" > <a href="/tv/">TV</a> </li> <li class="orb-nav-radio" > <a href="/radio/">Radio</a> </li> <li class="orb-nav-cbbc" > <a href="/cbbc">CBBC</a> </li> <li class="orb-nav-cbeebies" > <a href="/cbeebies">CBeebies</a> </li> <li class="orb-nav-food" > <a href="/food/">Food</a> </li> <li > <a href="/iwonder">iWonder</a> </li> <li > <a href="/education">Bitesize</a> </li> <li class="orb-nav-travel orb-d" > <a href="/travel/">Travel</a> </li> <li class="orb-nav-music" > <a href="/music/">Music</a> </li> <li class="orb-nav-earth orb-d" > <a href="http://www.bbc.com/earth/">Earth</a> </li> <li class="orb-nav-arts" > <a href="/arts/">Arts</a> </li> <li class="orb-nav-makeitdigital" > <a href="/makeitdigital">Make It Digital</a> </li> <li > <a href="/taster">Taster</a> </li> <li class="orb-nav-nature orb-w" > <a href="/nature/">Nature</a> </li> <li class="orb-nav-local" > <a href="/local/">Local</a> </li> <li class="orb-nav-tomorrowsworld orb-d" > <a href="/tomorrowsworld">Tomorrow\'s World</a> </li> </ul> </div> </div> </div> </aside> <footer role="contentinfo"> <div id="orb-contentinfo" class="orb-nav-sec b-r b-g-p"> <div class="orb-footer-inner"> <ul> <li > <a href="/terms/">Terms of Use</a> </li> <li > <a href="/aboutthebbc/">About the BBC</a> </li> <li > <a href="/privacy/">Privacy Policy</a> </li> <li > <a href="/privacy/cookies/about">Cookies</a> </li> <li > <a href="/accessibility/">Accessibility Help</a> </li> <li > <a href="/guidance/">Parental Guidance</a> </li> <li > <a href="/contact/">Contact the BBC</a> </li> <li > <a href="/bbcnewsletter">Get Personalised Newsletters</a> </li> <li class=" orb-w" > <a href="http://advertising.bbcworldwide.com/">Advertise with us</a> </li> <li class=" orb-w" > <a href="/privacy/cookies/international/">Ad choices</a> </li> </ul> <small> <span class="orb-hilight">Copyright &copy; 2017 BBC.</span> The BBC is not responsible for the content of external sites. <a href="/help/web/links/" class="orb-hilight">Read about our approach to external linking.</a> </small> </div> </div> </footer> </div> <!-- BBCDOTCOM bodyLast --><div class="bbccom_display_none"><script type="text/javascript"> /*<![CDATA[*/ if (window.bbcdotcom && window.bbcdotcom.analytics && bbcdotcom.config && !bbcdotcom.config.isSportApp()) { bbcdotcom.analytics.page(); } /*]]>*/ </script><noscript><img src="//ssc.api.bbc.com/?c1=2&c2=19293874&ns_site=bbc&name=news.technology-26415021" height="1" width="1" alt=""></noscript><script type="text/javascript"> /*<![CDATA[*/ if (window.bbcdotcom && bbcdotcom.currencyProviders) { bbcdotcom.currencyProviders.write(); } /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ if (window.bbcdotcom && bbcdotcom.currencyProviders) { bbcdotcom.currencyProviders.postWrite(); } /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ if (window.bbcdotcom && bbcdotcom.data && bbcdotcom.data.stats && bbcdotcom.data.stats == 1 && bbcdotcom.config && bbcdotcom.config.isLotameEnabled && bbcdotcom.config.isLotameEnabled() && bbcdotcom.lotame){ bbcdotcom.lotame.write(); } /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ /** * ASYNC waits to make any gpt requests until the bottom of the page */ if ( window.bbcdotcom && bbcdotcom.data && bbcdotcom.data.ads && bbcdotcom.data.ads == 1 && bbcdotcom.config && bbcdotcom.config.isAsync && bbcdotcom.config.isAsync() ) { (function () { var gads = document.createElement(\'script\'); gads.async = true; gads.type = \'text/javascript\'; var useSSL = \'https:\' == document.location.protocol; gads.src = (useSSL ? \'https:\' : \'http:\') + \'//www.googletagservices.com/tag/js/gpt.js\'; var node = document.getElementsByTagName(\'script\')[0]; node.parentNode.insertBefore(gads node); })(); } /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ if (window.bbcdotcom && bbcdotcom.data && bbcdotcom.data.stats && bbcdotcom.data.stats === 1 && bbcdotcom.utils && window.location.pathname === \'/\' && window.bbccookies && bbccookies.readPolicy(\'performance\') ) { var wwhpEdition = bbcdotcom.utils.getMetaPropertyContent(\'wwhp-edition\'); var _sf_async_config={}; /** CONFIGURATION START **/ _sf_async_config.uid = 50924; _sf_async_config.domain = "bbc.co.uk"; _sf_async_config.title = "Homepage"+(wwhpEdition !== \'\' ? \' - \'+wwhpEdition : \'\'); _sf_async_config.sections = "Homepage"+(wwhpEdition !== \'\' ? \' Homepage - \'+wwhpEdition : \'\'); _sf_async_config.region = wwhpEdition; _sf_async_config.path = "/"+(wwhpEdition !== \'\' ? \'?\'+wwhpEdition : \'\'); /** CONFIGURATION END **/ (function(){ function loadChartbeat() { window._sf_endpt=(new Date()).getTime(); var e = document.createElement("script"); e.setAttribute("language" "javascript"); e.setAttribute("type" "text/javascript"); e.setAttribute(\'src\' \'//static.chartbeat.com/js/chartbeat.js\'); document.body.appendChild(e); } var oldonload = window.onload; window.onload = (typeof window.onload != "function") ? loadChartbeat : function() { oldonload(); loadChartbeat(); }; })(); } /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ if (window.bbcdotcom && bbcdotcom.data && bbcdotcom.data.stats == 1 ) { var js_loaded=false percent; if (window.bbcdotcom && bbcdotcom.config && bbcdotcom.config.isSherlockEnabled()) { document.write(\'<script src="//stag.mdotlabs.com/ads.js">\\x3C/script>\'); if(document.location.protocol === "http:"){ document.write(\'<script src="//stag.mdotlabs.com/sherlock.php?clientID=19293874">\\x3C/script>\'); } else { document.write(\'<script src="//stag.mdotlabs.com/sherlock.php?clientID=19293874&sec=1">\\x3C/script>\'); } } } /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ (function() { window.bbcdotcom.bodyLast = true; }()); /*]]>*/ </script></div><!-- BBCDOTCOM all code in page --> <script type="text/javascript" id="orb-js-script" data-assetpath="http://static.bbci.co.uk/frameworks/barlesque/3.21.31/orb/4/" src="http://static.bbci.co.uk/frameworks/barlesque/3.21.31/orb/4/script/orb.min.js"></script> <script type="text/javascript"> (function() {\n \'use strict\';\n var promoManager = {\n url: \'\' \n promoLoaded: false \n makeUrl: function (theme site win) {\n var loc = win? win.location : window.location \n proto = loc.protocol \n host = loc.host \n url = proto + \'//\' + ((proto.match(/s:/i) && !host.match(/^www\\.(int|test)\\./i))? \'ssl.\' : \'www.\') \n themes = [\'light\' \'dark\'];\n if ( host.match(/^(?:www|ssl|m)\\.(int|test|stage|live)\\.bbc\\./i) ) {\n url += RegExp.$1 + \'.\';\n }\n else if ( host.match(/^pal\\.sandbox\\./i) ) {\n url += \'test.\';\n }\n theme = themes[ +(theme === themes[0]) ];\n \n return url + \'bbc.co.uk/navpromo/card/\' + site + \'/\' + theme;\n } \n init: function(node) {\n var disabledByCookie = (document.cookie.indexOf(\'ckns_orb_nopromo=1\') > -1) \n that = this;\n \n if (window.promomanagerOverride) {\n for (var p in promomanagerOverride) {\n that[p] = promomanagerOverride[p];\n }\n }\n \n if ( window.orb.fig(\'uk\') && !disabledByCookie ) {\n require([\'orb/async/_footerpromo\' \'istats-1\'] function(promo istats) {\n var virtualSite = istats.getSite() || \'default\';\n that.url = (window.promomanagerOverride || that).makeUrl(\'light\' virtualSite);\n if (that.url) { \n promo.load(that.url node {\n onSuccess: function(e) {\n if(e.status === \'success\') {\n node.parentNode.className = node.parentNode.className + \' orb-footer-promo-loaded\';\n promoManager.promoLoaded = true;\n promoManager.event(\'promo-loaded\').fire(e);\n }\n } \n onError: function() {\n istats.log(\'error\' \'orb-footer-promo-failed\');\n bbccookies.set(\'ckns_orb_nopromo=1; expires=\' + new Date(new Date().getTime() + 1000 * 60 * 10).toGMTString() + \';path=/;\');\n }\n }); \n }\n });\n }\n }\n };\n \n \n define(\'orb/promomanager\' [\'orb/lib/_event\'] function (event) {\n event.mixin(promoManager);\n return promoManager;\n });\n \n require([\'orb/promomanager\'] function (promoManager) {\n promoManager.init(document.getElementById(\'navp-orb-footer-promo\'));\n })\n})();\n </script> \n <script type="text/javascript">\n require.config({\n paths: {\n "mybbc/templates": \'//mybbc.files.bbci.co.uk/notification-ui/3.8.4/templates\' \n "mybbc/notifications": \'//mybbc.files.bbci.co.uk/notification-ui/3.8.4/js\'\n }\n });\n require([\'mybbc/notifications/NotificationsMain\' \'idcta/idcta-1\'] function (NotificationsMain idcta) {\n var loadNotifications = function (fig) {\n if (fig.geo.isUK()) {\n NotificationsMain.run(idcta \'//mybbc.files.bbci.co.uk/notification-ui/3.8.4/\');\n }\n };\n var orbFig = window.orb.fig;\n if (typeof orbFig.load === \'function\') {\n // Use new async API from Orbit\n orbFig.load(loadNotifications loadNotifications);\n } else {\n // Use old sync-only API from PAL orbfig project\n loadNotifications(orbFig);\n }\n });\n </script>\n <script type="text/javascript"> if (typeof require !== \'undefined\') { require([\'istats-1\'] function(istats){ istats.track(\'external\' { region: document.getElementsByTagName(\'body\')[0] }); istats.track(\'download\' { region: document.getElementsByTagName(\'body\')[0] }); }); } </script> <script type="text/javascript">\n if (window.SEARCHBOX.suppress === false && window.SEARCHBOX.locale && /^en-?.*?/.test(window.SEARCHBOX.locale)) {\n require.config({\n paths: {\n "search/searchbox": window.SEARCHBOX.searchboxAppStaticPrefix \n "disco-layer": "//nav.files.bbci.co.uk/discovery-layer/0.0.1-54.1e3c062/app"\n }\n });\n require([\'search/searchbox/searchboxDrawer\'] function (SearchboxDrawer) {\n SearchboxDrawer.run(window.SEARCHBOX);\n });\n require([\'disco-layer\'] function (discoLayer) {\n discoLayer.run("//nav.files.bbci.co.uk/discovery-layer/content/" "//nav.files.bbci.co.uk/discovery-layer/0.0.1-54.1e3c062/main.css");\n });\n }\n</script> <script type="text/javascript">require(["megavolt-client" "istats-1" "orb/cookies"] function(t e i){function o(){return"true"===l&&a&&t&&"function"==typeof t.getMVTIStatsLabels}function n(){!c&&o()?setTimeout(function(){e.invoke()} "500"):e.invoke()}var s=navigator.userAgent.toLowerCase() a=!(s.indexOf("msie")>-1)||parseInt(s.split("msie")[1] 10)>10 c=!1 l="true";if(i.isAllowed("s1"))try{if(o()&&t.getMVTIStatsLabels(function(t){e.addLabels(t) c=!0}) !require.s.contexts._.config.paths.idcta)return void n();require(["idcta/idcta-1"] function(t){t&&"function"==typeof t.getIStatsLabels&&e.addLabels(t.getIStatsLabels()) n()} function(t){throw t})}catch(t){console&&"function"==typeof console.log&&console.log("an exception occurred while adding idcta labels to istats invoking istats without them" t) n()}});</script> <img alt="" id="livestats" src="http://stats.bbc.co.uk/o.gif?~RS~s~RS~News~RS~t~RS~HighWeb_Story~RS~i~RS~26415021~RS~p~RS~99113~RS~a~RS~International~RS~u~RS~/news/technology-26415021~RS~r~RS~0~RS~q~RS~0~RS~z~RS~6739~RS~"> </div><!-- closes .direction --> <script> window.old_onload = window.onload; window.onload = function() { if(window.old_onload) { window.old_onload(); } window.loaded = true; }; </script> <!-- Chartbeat Web Analytics code - start -->\n<script type="text/javascript">\n /** CONFIGURATION START **/\n var _sf_async_config = {};\n \n _sf_async_config.uid = "50924";\n _sf_async_config.domain = "www.bbc.co.uk";\n _sf_async_config.sections = "News News - technology News - STY News - technology - STY";\n <!-- if page is an index add the edition to the path -->\n _sf_async_config.path = "bbc.co.uk/news/technology-26415021";\n \n (function() {\n var noCookies = true;\n var cookiePrefix = \'_chartbeat\';\n if ("object" === typeof bbccookies && typeof bbccookies.readPolicy == \'function\') {\n noCookies = !bbccookies.readPolicy().performance;\n }\n if (noCookies && document.cookie.indexOf(cookiePrefix) !== -1) {\n //Find and remove cookies whose names begin with \'_chartbeat\'\n var cookieSplit = document.cookie.split(\';\');\n var cookieLength = cookieSplit.length;\n while (cookieLength--) {\n var cookie = cookieSplit[cookieLength].replace(/^\\s+|\\s+$/g \'\');\n var cookieName = cookie.split(\'=\')[0];\n if (cookieName.indexOf(cookiePrefix) === 0) {\n document.cookie = cookieName + \'=; expires=Thu 01 Jan 1970 00:00:00 GMT; path=/;\';\n }\n }\n }\n _sf_async_config.noCookies = noCookies;\n }());\n /** CONFIGURATION END **/\n (function(){\n function loadChartbeat() {\n window._sf_endpt=(new Date()).getTime();\n var e = document.createElement("script");\n e.setAttribute("language" "javascript");\n e.setAttribute("type" "text/javascript");\n e.setAttribute(\'src\' \'//static.chartbeat.com/js/chartbeat.js\');\n document.body.appendChild(e);\n }\n var oldonload = window.onload;\n window.onload = (typeof window.onload != "function") ?\n loadChartbeat : function() { oldonload(); loadChartbeat(); };\n }());\n</script>\n<!-- Chartbeat Web Analytics code - end -->\n <!-- mpulse start -->\n<script>\n(function(){\n window.bbcnewsperformance = {};\n var perf = window.performance;\n function firstScrollTimer() {\n document.removeEventListener(\'scroll\' firstScrollTimer);\n perf.mark(\'firstScroll\');\n perf.measure(\'scrolltime\' \'firstScroll\');\n var timing = perf.getEntriesByName(\'scrolltime\');\n bbcnewsperformance.firstScrollTime = timing[0].startTime;\n }\n if (perf && perf.mark && perf.measure) {\n document.addEventListener(\'scroll\' firstScrollTimer);\n }\n var random = Math.random();\n var rate = 0.25;\n var throttle = 0.02;\n var forceMpulse = window.location.href.match(/force_mpulse/);\n if (rate && throttle && (random < (rate * throttle)) || forceMpulse) {\n if(window.BOOMR && window.BOOMR.version){return;}\n var dom doc where iframe = document.createElement(\'iframe\') win = window;\n function boomerangSaveLoadTime(e) {\n win.BOOMR_onload=(e && e.timeStamp) || new Date().getTime();\n }\n if (win.addEventListener) {\n win.addEventListener("load" boomerangSaveLoadTime false);\n } else if (win.attachEvent) {\n win.attachEvent("onload" boomerangSaveLoadTime);\n }\n iframe.src = "javascript:false";\n iframe.title = ""; iframe.role="presentation";\n (iframe.frameElement || iframe).style.cssText = "width:0;height:0;border:0;display:none;";\n where = document.getElementsByTagName(\'script\')[0];\n where.parentNode.insertBefore(iframe where);\n try {\n doc = iframe.contentWindow.document;\n } catch(e) {\n dom = document.domain;\n iframe.src="javascript:var d=document.open();d.domain=\'"+dom+"\';void(0);";\n doc = iframe.contentWindow.document;\n }\n doc.open()._l = function() {\n var js = this.createElement("script");\n if(dom) this.domain = dom;\n js.id = "boomr-if-as";\n js.src = \'//c.go-mpulse.net/boomerang/\' +\n \'86ZLR-T78UG-6FNFN-UVDPZ-VZFWR\';\n BOOMR_lstart=new Date().getTime();\n this.body.appendChild(js);\n };\n doc.write(\'<body onload="document._l();">\');\n doc.close();\n }\n})();\n</script>\n<!-- mpulse end -->\n </body> </html> \n'

This is becoming a mess, let us get line breaks back:

In [5]:
html = html.split("\n") # html is now a list of lines
html = "\n".join(html)    # we turn it back into a single string
print(html)
<!DOCTYPE html>
<html lang="en" id="responsive-news">
<head prefix="og: http://ogp.me/ns#">
 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge chrome=1">
 <title>An hour to catch the coding bug - BBC News</title>
 <meta name="description" content="Is it possible to get children interested in computer programming in just 60 minutes? The Hour of Code has been designed to do just that.">
 <link rel="preload" as="style" href="http://static.bbci.co.uk/news/1.219.02158/stylesheets/services/news/compact.css" media="(max-width: 599px)">
 <link rel="preload" as="style" href="http://static.bbci.co.uk/news/1.219.02158/stylesheets/services/news/tablet.css" media="(min-width: 600px)">
 <link rel="preload" as="style" href="http://static.bbci.co.uk/news/1.219.02158/stylesheets/services/news/wide.css" media="(min-width: 1008px)">
 <link rel="dns-prefetch" href="https://ssl.bbc.co.uk/">
 <link rel="dns-prefetch" href="http://sa.bbc.co.uk/">
 <link rel="dns-prefetch" href="http://ichef-1.bbci.co.uk/">
 <link rel="dns-prefetch" href="http://ichef.bbci.co.uk/">
 <link rel="dns-prefetch" href="//c.go-mpulse.net/">
 <meta name="x-country" content="il">
 <meta name="x-audience" content="International">
 <meta name="CPS_AUDIENCE" content="International">
 <meta name="CPS_CHANGEQUEUEID" content="">
 <link rel="canonical" href="http://www.bbc.com/news/technology-26415021">
 <link rel="alternate" hreflang="en-gb" href="http://www.bbc.co.uk/news/technology-26415021">
 <link rel="alternate" hreflang="en" href="http://www.bbc.com/news/technology-26415021">
 <meta property="og:title" content="How to get your children coding" />
 <meta property="og:type" content="article" />
 <meta property="og:description" content="Is it possible to get children interested in computer programming in just 60 minutes? The Hour of Code has been designed to do just that." />
 <meta property="og:site_name" content="BBC News" />
 <meta property="og:locale" content="en_GB" />
 <meta property="article:author" content="https://www.facebook.com/bbcnews" />
 <meta property="article:section" content="Technology" />
 <meta property="og:url" content="http://www.bbc.com/news/technology-26415021" />
 <meta property="og:image" content="https://ichef.bbci.co.uk/news/1024/media/images/73325000/jpg/_73325163_olly009.jpg" />
 <meta property="fb:pages" content="1143803202301544 317278538359186 1392506827668140 742734325867560 185246968166196 156060587793370 137920769558355 193435954068976 21263239760 156400551056385 929399697073756 154344434967 228735667216 80758950658 260212261199 294662213128 1086451581439054 283348121682053 295830058648 239931389545417 304314573046 310719525611571 647687225371774 1159932557403143 286567251709437 1731770190373618 125309456546 163571453661989 285361880228 512423982152360 238003846549831 176663550714 260967092113 118450564909230 100978706649892 15286229625 122103087870579 120655094632228 102814153147070 124715648647 153132638110668 150467675018739" />
 <meta name="twitter:card" content="summary_large_image">
 <meta name="twitter:site" content="@BBCWorld">
 <meta name="twitter:title" content="How to get your children coding">
 <meta name="twitter:description" content="Is it possible to get children interested in computer programming in just 60 minutes? The Hour of Code has been designed to do just that.">
 <meta name="twitter:creator" content="@BBCWorld">
 <meta name="twitter:image:src" content="https://ichef.bbci.co.uk/news/560/media/images/73325000/jpg/_73325163_olly009.jpg">
 <meta name="twitter:image:alt" content="Screenshot from the hour of code" />
 <meta name="twitter:domain" content="www.bbc.com">
 <script type="application/ld+json">
 {"@context":"http:\/\/schema.org" "@type":"ReportageNewsArticle" "url":"http:\/\/www.bbc.com\/news\/technology-26415021" "publisher":{"@type":"NewsMediaOrganization" "name":"BBC News" "logo":{"@type":"ImageObject" "url":"http:\/\/www.bbc.co.uk\/news\/special\/2015\/newsspec_10857\/bbc_news_logo.png?cb=1"}} "datePublished":"2014-03-03T10:22:55+00:00" "dateModified":"2014-03-03T10:22:55+00:00" "headline":"How to get your children coding" "image":{"@type":"ImageObject" "width":720 "height":450 "url":"https:\/\/ichef-1.bbci.co.uk\/news\/720\/media\/images\/73325000\/jpg\/_73325163_olly009.jpg"} "thumbnailUrl":"https:\/\/ichef.bbci.co.uk\/news\/208\/media\/images\/73325000\/jpg\/_73325163_olly009.jpg" "author":{"@type":"Person" "name":"Mark Ward"} "mainEntityOfPage":"http:\/\/www.bbc.com\/news\/technology-26415021"}
 </script>
 
 <meta name="apple-mobile-web-app-title" content="BBC News">
<link rel="apple-touch-icon-precomposed" sizes="57x57" href="http://static.bbci.co.uk/news/1.219.02158/apple-touch-icon-57x57-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="http://static.bbci.co.uk/news/1.219.02158/apple-touch-icon-72x72-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="http://static.bbci.co.uk/news/1.219.02158/apple-touch-icon-114x114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="http://static.bbci.co.uk/news/1.219.02158/apple-touch-icon.png">
<link rel="apple-touch-icon" href="http://static.bbci.co.uk/news/1.219.02158/apple-touch-icon.png">
<link rel="apple-touch-startup-image" href="http://static.bbci.co.uk/news/1.219.02158/web-app-launch-icon.png">
<meta name="application-name" content="BBC News">
<meta name="msapplication-TileImage" content="BBC News">
<meta name="msapplication-TileColor" content="#bb1919">
<meta name="mobile-web-app-capable" content="yes">
 <meta http-equiv="cleartype" content="on">
 <meta name="robots" content="NOODP NOYDIR" />
 <meta name="theme-color" content="#bb1919">
 <script type="text/javascript">var _sf_startpt=(new Date()).getTime()</script>
 <script>
 (function() {
 if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
 var msViewportStyle = document.createElement("style");
 msViewportStyle.appendChild(
 document.createTextNode("@-ms-viewport{width:auto!important}")
 );
 document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
 }
 })();
 </script>
 
 <script>window.fig = window.fig || {}; window.fig.async = true;</script>
 <meta property="fb:app_id" content="1609039196070050" />
 <meta name="viewport" content="width=device-width initial-scale=1.0" /> <meta property="fb:admins" content="100004154058350" /> <script type="text/javascript">window.bbcredirection={geo:true}</script> 
<!--[if (gt IE 8) | (IEMobile)]><!-->
<link rel="stylesheet" href="http://static.bbci.co.uk/frameworks/barlesque/3.21.31/orb/4/style/orb.min.css">
<!--<![endif]-->
<!--[if (lt IE 9) & (!IEMobile)]>
<link rel="stylesheet" href="http://static.bbci.co.uk/frameworks/barlesque/3.21.31/orb/4/style/orb-ie.min.css">
<![endif]-->
 <!--orb.ws.require.lib--> <script class="js-require-lib" src="http://static.bbci.co.uk/frameworks/requirejs/lib.js"></script> <script type="text/javascript"> bbcRequireMap = {"jquery-1":"http://static.bbci.co.uk/frameworks/jquery/0.4.1/sharedmodules/jquery-1.7.2" "jquery-1.4":"http://static.bbci.co.uk/frameworks/jquery/0.4.1/sharedmodules/jquery-1.4" "jquery-1.9":"http://static.bbci.co.uk/frameworks/jquery/0.4.1/sharedmodules/jquery-1.9.1" "jquery-1.12":"http://static.bbci.co.uk/frameworks/jquery/0.4.1/sharedmodules/jquery-1.12.0.min" "jquery-2.2":"http://static.bbci.co.uk/frameworks/jquery/0.4.1/sharedmodules/jquery-2.2.0.min" "istats-1":"//nav.files.bbci.co.uk/nav-analytics/0.1.0-43/js/istats-1" "swfobject-2":"http://static.bbci.co.uk/frameworks/swfobject/0.1.10/sharedmodules/swfobject-2" "demi-1":"http://static.bbci.co.uk/frameworks/demi/0.10.1/sharedmodules/demi-1" "gelui-1":"http://static.bbci.co.uk/frameworks/gelui/0.9.13/sharedmodules/gelui-1" "cssp!gelui-1/overlay":"http://static.bbci.co.uk/frameworks/gelui/0.9.13/sharedmodules/gelui-1/overlay.css" "relay-1":"http://static.bbci.co.uk/frameworks/relay/0.2.6/sharedmodules/relay-1" "clock-1":"http://static.bbci.co.uk/frameworks/clock/0.1.9/sharedmodules/clock-1" "canvas-clock-1":"http://static.bbci.co.uk/frameworks/clock/0.1.9/sharedmodules/canvas-clock-1" "cssp!clock-1":"http://static.bbci.co.uk/frameworks/clock/0.1.9/sharedmodules/clock-1.css" "jssignals-1":"http://static.bbci.co.uk/frameworks/jssignals/0.3.6/modules/jssignals-1" "jcarousel-1":"http://static.bbci.co.uk/frameworks/jcarousel/0.1.10/modules/jcarousel-1" "bump-3":"//emp.bbci.co.uk/emp/bump-3/bump-3"}; require({ baseUrl: 'http://static.bbci.co.uk/' paths: bbcRequireMap waitSeconds: 30 }); </script> <script type="text/javascript">/*<![CDATA[*/ if (typeof bbccookies_flag === 'undefined') { bbccookies_flag = 'ON'; } showCTA_flag = true; cta_enabled = (showCTA_flag && (bbccookies_flag === 'ON')); (function(){var m="ckns_policy" q="Thu 01 Jan 1970 00:00:00 GMT" i={ads:true personalisation:true performance:true necessary:true};function c(u){if(c.cache[u]){return c.cache[u]}var t=u.split("/") v=[""];do{v.unshift((t.join("/")||"/"));t.pop()}while(v[0]!=="/");c.cache[u]=v;return v}c.cache={};function a(u){if(a.cache[u]){return a.cache[u]}var v=u.split(".") t=[];while(v.length&&"|co.uk|com|".indexOf("|"+v.join(".")+"|")===-1){if(v.length){t.push(v.join("."))}v.shift()}c.cache[u]=t;return t}a.cache={};function s(t y u){var E=[""].concat(a(window.location.hostname)) B=c(window.location.pathname) D="" w C;for(var x=0 A=E.length;x<A;x++){w=E[x];for(var v=0 z=B.length;v<z;v++){C=B[v];D=t+"="+y+";"+(w?"domain="+w+";":"")+(C?"path="+C+";":"")+(u?"expires="+u+";":"");bbccookies.set(D true)}}}window.bbccookies={POLICY_REFRESH_DATE_MILLIS:new Date(2015 4 21 0 0 0 0).getTime() POLICY_EXPIRY_COOKIENAME:"ckns_policy_exp" _setEverywhere:s cookiesEnabled:function(){var t="ckns_testcookie"+Math.floor(Math.random()*100000);this.set(t+"=1");if(this.get().indexOf(t)>-1){e(t);return true}return false} get:function(){return document.cookie} getCrumb:function(t){if(!t){return null}return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(t).replace(/[\-\.\+\*]/g "\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$") "$1"))||null} policyRequiresRefresh:function(){var u=new Date();u.setHours(0);u.setMinutes(0);u.setSeconds(0);u.setMilliseconds(0);if(bbccookies.POLICY_REFRESH_DATE_MILLIS<=u.getTime()){var t=bbccookies.getCrumb(bbccookies.POLICY_EXPIRY_COOKIENAME);if(t){t=new Date(parseInt(t));t.setYear(t.getFullYear()-1);return bbccookies.POLICY_REFRESH_DATE_MILLIS>=t.getTime()}else{return true}}else{return false}} _setPolicy:function(t){return f.apply(this arguments)} readPolicy:function(){return l.apply(this arguments)} _deletePolicy:function(){s(m "" q)} _isConfirmed:function(){return n()!==null} _acceptsAll:function(){var t=l();return t&&!(j(t).indexOf("0")>-1)} _getCookieName:function(){return b.apply(this arguments)} _showPrompt:function(){var t=((!this._isConfirmed()||this.policyRequiresRefresh())&&window.cta_enabled&&this.cookiesEnabled()&&!window.bbccookies_disable);return(window.orb&&window.orb.fig)?t&&(window.orb.fig("no")||window.orb.fig("ck")):t} _getPolicy:this.readPolicy};function b(u){var t=(""+u).match(/^([^=]+)(?==)/);return(t&&t.length?t[0]:"")}function j(t){return""+(t.ads?1:0)+(t.personalisation?1:0)+(t.performance?1:0)}function f(x){if(typeof x==="undefined"){x=i}if(typeof arguments[0]==="string"){var u=arguments[0] w=arguments[1];if(u==="necessary"){w=true}x=l();x[u]=w}else{if(typeof arguments[0]==="object"){x.necessary=true}}var v=new Date();v.setYear(v.getFullYear()+1);bbccookies.set(m+"="+j(x)+";domain=bbc.co.uk;path=/;expires="+v.toUTCString()+";");bbccookies.set(m+"="+j(x)+";domain=bbc.com;path=/;expires="+v.toUTCString()+";");bbccookies.set(m+"="+j(x)+";domain=bbci.co.uk;path=/;expires="+v.toUTCString()+";");var t=new Date(v.getTime());t.setMonth(t.getMonth()+1);bbccookies.set(bbccookies.POLICY_EXPIRY_COOKIENAME+"="+v.getTime()+";domain=bbc.co.uk;path=/;expires="+t.toUTCString()+";");bbccookies.set(bbccookies.POLICY_EXPIRY_COOKIENAME+"="+v.getTime()+";domain=bbc.com;path=/;expires="+t.toUTCString()+";");bbccookies.set(bbccookies.POLICY_EXPIRY_COOKIENAME+"="+v.getTime()+";domain=bbci.co.uk;path=/;expires="+t.toUTCString()+";");return x}function o(t){if(t===null){return null}var u=t.split("");return{ads:!!+u[0] personalisation:!!+u[1] performance:!!+u[2] necessary:true}}function n(){var t=new RegExp("(?:^|; ?)"+m+"=(\\d\\d\\d)($|;)") u=document.cookie.match(t);if(!u){return null}return u[1]}function l(t){var u=o(n());if(!u){u=i}if(t){return u[t]}else{return u}}function e(t){return document.cookie=t+"=;expires="+q+";"}var g=!(window.bbccookies_flag==="ON"&&!bbccookies._acceptsAll()&&!window.bbccookies_disable);var k={} d={"personalisation":"ckps_.+|X-AB-iplayer-.+|ACTVTYMKR|BBC_EXAMPLE_COOKIE|BBCIplayer|BBCiPlayerM|BBCIplayerSession|BBCMediaselector|BBCPostcoder|bbctravel|CGISESSID|ed|food-view|forceDesktop|h4|IMRID|locserv|MyLang|myloc|NTABS|ttduserPrefs|V5|WEATHER|BBCScienceDiscoveryPlaylist_.+|bitratePref|correctAnswerCount|genreCookie|highestQuestionScore|incorrectAnswerCount|longestStreak|MSCSProfile|programmes-oap-expanded|quickestAnswer|score|servicePanel|slowestAnswer|totalTimeForAllFormatted|v|BBCwords|score|correctAnswerCount|highestQuestionScore|hploc|BGUID|BBCWEACITY|mstouch|myway|BBCNewsCustomisation|cbbc_anim|cbeebies_snd|bbcsr_usersx|cbeebies_rd|BBC-Latest_Blogs|zh-enc|pref_loc|m|bbcEmp.+|recs-.+|_lvd2|_lvs2|tick|_fcap_CAM1|_rcc2" "performance":"ckpf_.+|optimizely.*|BBCLiveStatsClick|id|_em_.+|cookies_enabled|mbox|mbox-admin|mc_.+|omniture_unique|s_.+|sc_.+|adpolicyAdDisplayFrequency|s1|ns_session|ns_cookietest|ns_ux|NO-SA|tr_pr1|gvsurvey|bbcsurvey|si_v|sa_labels|obuid|mm_.+|mmid|mmcore.+|mmpa.+" "ads":"ckad_.+|rsi_segs|c" "necessary":"ckns_.+|BBC-UID|blq\\.dPref|SSO2-UID|BBC-H2-User|rmRpDetectReal|bbcComSurvey|IDENTITY_ENV|IDENTITY|IDENTITY-HTTPS|IDENTITY_SESSION|BBCCOMMENTSMODULESESSID|bbcBump.+|IVOTE_VOTE_HISTORY|pulse|BBCPG|BBCPGstat|ecos\\.dt"};function r(){var x=document.cookie.replace(/; +/g ";").split(";") u v=[];for(var w=0 t=x.length;w<t;w++){u=x[w];v.push(bbccookies._getCookieName(u))}return v}function h(w){var v=JSON.stringify(w);if(typeof(k[v])!=="undefined"){return k[v]}var u="";for(var t in w){if(w.hasOwnProperty(t)&&d[t]){if(w[t]===true){u+=(u?"|":"")+d[t]}}}k[v]=new RegExp("^("+(u?u:".*")+")$" "i");return k[v]}bbccookies.getPolicyExpiryDateTime=function(){return bbccookies.POLICY_EXPIRY_COOKIENAME};bbccookies.purge=function(){var u=bbccookies.readPolicy() w=r() x;for(var v=0 t=w.length;v<t;v++){if(!bbccookies.isAllowed(w[v] u)){x=new Date();x.setTime(0);x=x.toUTCString();s(w[v] "deleted" x)}}};function p(){if(g){return}bbccookies.purge();contentLoaded(window bbccookies.purge);if(window.addEventListener){window.addEventListener("beforeunload" bbccookies.purge false)}else{if(window.attachEvent){window.attachEvent("onbeforeunload" bbccookies.purge)}else{window.onbeforeunload=bbccookies.purge}}}bbccookies.set=function(u t){if(g){return document.cookie=u}var v=bbccookies._getCookieName(u);if(t||bbccookies.isAllowed(v)){return document.cookie=u}return null};bbccookies.isAllowed=function(v){var u=bbccookies.readPolicy();var t=h(u);return t.test(v)};p()})();
/*!
 * contentloaded.js
 *
 * Author: Diego Perini (diego.perini at gmail.com)
 * Summary: cross-browser wrapper for DOMContentLoaded
 * Updated: 20101020
 * License: MIT
 * Version: 1.2
 *
 * URL:
 * http://javascript.nwbox.com/ContentLoaded/
 * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE
 *
 */
function contentLoaded(d i){var c=false h=true k=d.document j=k.documentElement a=k.addEventListener n=a?"addEventListener":"attachEvent" l=a?"removeEventListener":"detachEvent" b=a?"":"on" m=function(o){if(o.type==="readystatechange"&&k.readyState!="complete"){return}(o.type==="load"?d:k)[l](b+o.type m false);if(!c&&(c=true)){i.call(d o.type||o)}} g=function(){try{j.doScroll("left")}catch(o){setTimeout(g 50);return}m("poll")};if(k.readyState==="complete"){i.call(d "lazy")}else{if(!a&&j.doScroll){try{h=!d.frameElement}catch(f){}if(h){g()}}k[n](b+"DOMContentLoaded" m false);k[n](b+"readystatechange" m false);d[n](b+"load" m false)}}if(typeof(require)==="function"&&!require.defined("orb/cookies")){define("orb/cookies" function(){return window.bbccookies})}; /*]]>*/</script> <script type="text/javascript"> define('orb/cookies' function() { return window.bbccookies; }); </script> <script type="text/javascript">/*<![CDATA[*/
(function(){window.orb={};window.orb.figState={ad:0 ap:0 ck:1 eu:1 mb:0 tb:0 uk:1 df:1};window.orb.fig=function(a){return(arguments.length)?window.orb.figState[a]:window.orb.figState};window.orb.fig.device={};window.orb.fig.geo={};window.orb.fig.user={};window.orb.fig.isDefault=function(){return window.orb.fig("df")};window.orb.fig.device.isTablet=function(){return window.orb.fig("tb")};window.orb.fig.device.isMobile=function(){return window.orb.fig("mb")};window.orb.fig.geo.isUK=function(){return window.orb.fig("uk")};window.orb.fig.geo.isEU=function(){return window.orb.fig("eu")};window.fig=window.fig||{};window.fig.manager={include:function(e){e=e||window;var g=false;var j=e.document k=j.cookie i=k.match(/(?:^|; ?)ckns_orb_fig=([^;]+)/) h;if(i){i=this.deserialise(decodeURIComponent(RegExp.$1));this.setFig(e i)}if(window.fig.async&&typeof JSON!="undefined"){var b=(document.cookie.match("(^|; )ckns_orb_cachedfig=([^;]*)")||0)[2];h=b?JSON.parse(b):null;if(h){this.setFig(e h);g=true}}var a="https://fig.bbc.co.uk/frameworks/fig/1/fig.js";if(g){j.write('<script src="'+a+'" async><'+"/script>")}else{j.write('<script src="'+a+'"><'+"/script>")}} confirm:function(a){return true} setFig:function(a b){(function(){a.orb=a.orb||{};a.orb.figState=b})()} deserialise:function(b){var a={};b.replace(/([a-z]{2}):([0-9]+)/g function(){a[RegExp.$1]=+RegExp.$2});return a}}})();fig.manager.include();/*]]>*/</script>
<!-- Nav Analytics : 89 -->
<script type="text/javascript">window.bbcFlagpoles_istats="ON" require.config({paths:{"istats-1":"//nav.files.bbci.co.uk/nav-analytics/0.1.0-89/js/istats-1" "megavolt-client":"//nav.files.bbci.co.uk/nav-analytics/0.1.0-89/js/megavolt-client"} config:{"megavolt-client":{baseUrl:"https://mvt.api.bbc.com"}}}) require(["istats-1" "orb/cookies"] function(e t){if(t.isAllowed("s1")){e.addCollector({name:"default" url:"https://sa.bbc.co.uk/bbc/bbc/s" separator:"&"});var a="news.technology.story.26415021.page";e.setCountername(a) window.istats_countername&&e.setCountername(window.istats_countername) e.addLabels("ml_name=webmodule&ml_version=89")}});</script>
<script type="text/javascript">/*<![CDATA[*/
 window.bbcFlagpoles_istats = 'ON';
 window.orb = window.orb || {};
 if (typeof bbccookies !== 'undefined' && bbccookies.isAllowed('s1')) {
 var istatsTrackingUrl = '//sa.bbc.co.uk/bbc/bbc/s?name=news.technology.story.26415021.page&cps_asset_id=26415021&page_type=Story&section=%2Fnews%2Ftechnology&first_pub=2014-03-03T07%3A36%3A59%2B00%3A00&last_editorial_update=2014-03-03T10%3A22%3A55%2B00%3A00&curie=52db3466-0acb-3a48-98c6-21a6e4f5f1cf&title=An+hour+to+catch+the+coding+bug&for_nation=il&app_version=1.219.0&bbc_site=news&pal_route=asset&app_type=responsive&language=en-GB&pal_webapp=tabloid&prod_name=news&app_name=news';
 require(['istats-1'] function (istats) {
 var counterName = (window.istats_countername) ? window.istats_countername : istatsTrackingUrl.match(/[\?&]name=([^&]*)/i)[1];
 istats.setCountername(counterName);
 istats.addLabels('cps_asset_id=26415021&page_type=Story&section=%2Fnews%2Ftechnology&first_pub=2014-03-03T07%3A36%3A59%2B00%3A00&last_editorial_update=2014-03-03T10%3A22%3A55%2B00%3A00&curie=52db3466-0acb-3a48-98c6-21a6e4f5f1cf&title=An+hour+to+catch+the+coding+bug&for_nation=il&app_version=1.219.0&bbc_site=news&pal_route=asset&app_type=responsive&language=en-GB&pal_webapp=tabloid&prod_name=news&app_name=news');
 var c = (document.cookie.match(/\bckns_policy=(\d\d\d)/) || []).pop() || '';
 istats.addLabels({
 'blq_s': '4d' 
 'blq_r': '2.7' 
 'blq_v': 'default' 
 'blq_e': 'pal' 
 'bbc_mc': (c ? 'ad' + c.charAt(0) + 'ps' + c.charAt(1) + 'pf' + c.charAt(2) : 'not_set')
 }
 );
 });
 }
 /*]]>*/</script>
 <script type="text/javascript">/*<![CDATA[*/ (function(undefined){if(!window.bbc){window.bbc={}}var ROLLING_PERIOD_DAYS=30;window.bbc.Mandolin=function(id segments opts){var now=new Date().getTime() storedItem DEFAULT_START=now DEFAULT_RATE=1 COOKIE_NAME="ckpf_mandolin";opts=opts||{};this._id=id;this._segmentSet=segments;this._store=new window.window.bbc.Mandolin.Storage(COOKIE_NAME);this._opts=opts;this._rate=(opts.rate!==undefined)?+opts.rate:DEFAULT_RATE;this._startTs=(opts.start!==undefined)?new Date(opts.start).getTime():new Date(DEFAULT_START).getTime();this._endTs=(opts.end!==undefined)?new Date(opts.end).getTime():daysFromNow(ROLLING_PERIOD_DAYS);this._signupEndTs=(opts.signupEnd!==undefined)?new Date(opts.signupEnd).getTime():this._endTs;this._segment=null;if(typeof id!=="string"){throw new Error("Invalid Argument: id must be defined and be a string")}if(Object.prototype.toString.call(segments)!=="[object Array]"){throw new Error("Invalid Argument: Segments are required.")}if(opts.rate!==undefined&&(opts.rate<0||opts.rate>1)){throw new Error("Invalid Argument: Rate must be between 0 and 1.")}if(this._startTs>this._endTs){throw new Error("Invalid Argument: end date must occur after start date.")}if(!(this._startTs<this._signupEndTs&&this._signupEndTs<=this._endTs)){throw new Error("Invalid Argument: SignupEnd must be between start and end date")}removeExpired.call(this now);var overrides=window.bbccookies.get().match(/ckns_mandolin_setSegments=([^;]+)/);if(overrides!==null){eval("overrides = "+decodeURIComponent(RegExp.$1)+";");if(overrides[this._id]&&this._segmentSet.indexOf(overrides[this._id])==-1){throw new Error("Invalid Override: overridden segment should exist in segments array")}}if(overrides!==null&&overrides[this._id]){this._segment=overrides[this._id]}else{if((storedItem=this._store.getItem(this._id))){this._segment=storedItem.segment}else{if(this._startTs<=now&&now<this._signupEndTs&&now<=this._endTs&&this._store.isEnabled()===true){this._segment=pick(segments this._rate);if(opts.end===undefined){this._store.setItem(this._id {segment:this._segment})}else{this._store.setItem(this._id {segment:this._segment end:this._endTs})}log.call(this "mandolin_segment")}}}log.call(this "mandolin_view")};window.bbc.Mandolin.prototype.getSegment=function(){return this._segment};function log(actionType params){var that=this;require(["istats-1"] function(istats){istats.log(actionType that._id+":"+that._segment params?params:{})})}function removeExpired(expires){var items=this._store.getItems() expiresInt=+expires;for(var key in items){if(items[key].end!==undefined&&+items[key].end<expiresInt){this._store.removeItem(key)}}}function getLastExpirationDate(data){var winner=0 rollingExpire=daysFromNow(ROLLING_PERIOD_DAYS);for(var key in data){if(data[key].end===undefined&&rollingExpire>winner){winner=rollingExpire}else{if(+data[key].end>winner){winner=+data[key].end}}}return(winner)?new Date(winner):new Date(rollingExpire)}window.bbc.Mandolin.prototype.log=function(params){log.call(this "mandolin_log" params)};window.bbc.Mandolin.prototype.convert=function(params){log.call(this "mandolin_convert" params);this.convert=function(){}};function daysFromNow(n){var endDate;endDate=new Date().getTime()+(n*60*60*24)*1000;return endDate}function pick(segments rate){var picked min=0 max=segments.length-1;if(typeof rate==="number"&&Math.random()>rate){return null}do{picked=Math.floor(Math.random()*(max-min+1))+min}while(picked>max);return segments[picked]}window.bbc.Mandolin.Storage=function(name){validateCookieName(name);this._cookieName=name;this._isEnabled=(bbccookies.isAllowed(this._cookieName)===true&&bbccookies.cookiesEnabled()===true)};window.bbc.Mandolin.Storage.prototype.setItem=function(key value){var storeData=this.getItems();storeData[key]=value;this.save(storeData);return value};window.bbc.Mandolin.Storage.prototype.isEnabled=function(){return this._isEnabled};window.bbc.Mandolin.Storage.prototype.getItem=function(key){var storeData=this.getItems();return storeData[key]};window.bbc.Mandolin.Storage.prototype.removeItem=function(key){var storeData=this.getItems();delete storeData[key];this.save(storeData)};window.bbc.Mandolin.Storage.prototype.getItems=function(){return deserialise(this.readCookie(this._cookieName)||"")};window.bbc.Mandolin.Storage.prototype.save=function(data){window.bbccookies.set(this._cookieName+"="+encodeURIComponent(serialise(data))+"; expires="+getLastExpirationDate(data).toUTCString()+";")};window.bbc.Mandolin.Storage.prototype.readCookie=function(name){var nameEq=name+"=" ca=window.bbccookies.get().split("; ") i c;validateCookieName(name);for(i=0;i<ca.length;i++){c=ca[i];if(c.indexOf(nameEq)===0){return decodeURIComponent(c.substring(nameEq.length c.length))}}return null};function serialise(o){var str="";for(var p in o){if(o.hasOwnProperty(p)){str+='"'+p+'"'+":"+(typeof o[p]==="object"?(o[p]===null?"null":"{"+serialise(o[p])+"}"):'"'+o[p].toString()+'"')+" "}}return str.replace(/ \}/g "}").replace(/ $/g "")}function deserialise(str){var o;str="{"+str+"}";if(!validateSerialisation(str)){throw"Invalid input provided for deserialisation."}eval("o = "+str);return o}var validateSerialisation=(function(){var OBJECT_TOKEN="<Object>" ESCAPED_CHAR='"\\n\\r\\u2028\\u2029\\u000A\\u000D\\u005C' ALLOWED_CHAR="([^"+ESCAPED_CHAR+"]|\\\\["+ESCAPED_CHAR+"])" KEY='"'+ALLOWED_CHAR+'+"' VALUE='(null|"'+ALLOWED_CHAR+'*"|'+OBJECT_TOKEN+")" KEY_VALUE=KEY+":"+VALUE KEY_VALUE_SEQUENCE="("+KEY_VALUE+" )*"+KEY_VALUE OBJECT_LITERAL="({}|{"+KEY_VALUE_SEQUENCE+"})" objectPattern=new RegExp(OBJECT_LITERAL "g");return function(str){if(str.indexOf(OBJECT_TOKEN)!==-1){return false}while(str.match(objectPattern)){str=str.replace(objectPattern OBJECT_TOKEN)}return str===OBJECT_TOKEN}})();function validateCookieName(name){if(name.match(/ ;/)){throw"Illegal name provided must be valid in browser cookie."}}})(); /*]]>*/</script> <script type="text/javascript"> document.documentElement.className += (document.documentElement.className? ' ' : '') + 'orb-js'; fig.manager.confirm(); </script> <script src="http://static.bbci.co.uk/frameworks/barlesque/3.21.31/orb/4/script/orb/api.min.js"></script> <script src="http://static.bbci.co.uk/frameworks/barlesque/3.21.31/orb/4/script/orb/font.min.js"></script> <script type="text/javascript"> var blq = { environment: function() { return 'live'; } } </script> <script type="text/javascript"> /*<![CDATA[*/ function oqsSurveyManager(w flag) { if (flag !== 'OFF' && (w.orb.fig("no") || w.orb.fig("uk"))) { w.document.write('<script type="text/javascript" src="http://static.bbci.co.uk/frameworks/barlesque/3.21.31/orb/4/script/vendor/edr.min.js"><'+'/script>'); } } oqsSurveyManager(window 'ON'); /*]]>*/ </script> <!-- BBCDOTCOM template: responsive webservice -->
 <!-- BBCDOTCOM head --><script type="text/javascript"> /*<![CDATA[*/ var _sf_startpt = (new Date()).getTime(); /*]]>*/ </script><style type="text/css">.bbccom_display_none{display:none;}</style><script type="text/javascript"> /*<![CDATA[*/ var bbcdotcomConfig googletag = googletag || {}; googletag.cmd = googletag.cmd || []; var bbcdotcom = false; (function(){ if(typeof require !== 'undefined') { require({ paths:{ "bbcdotcom":"http://static.bbci.co.uk/bbcdotcom/1.71.0/script" } }); } })(); /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ var bbcdotcom = { adverts: { keyValues: { set: function() {} } } advert: { write: function () {} show: function () {} isActive: function () { return false; } layout: function() { return { reset: function() {} } } } config: { init: function() {} isActive: function() {} setSections: function() {} isAdsEnabled: function() {} setAdsEnabled: function() {} isAnalyticsEnabled: function() {} setAnalyticsEnabled: function() {} setAssetPrefix: function() {} setVersion: function () {} setJsPrefix: function() {} setSwfPrefix: function() {} setCssPrefix: function() {} setConfig: function() {} getAssetPrefix: function() {} getJsPrefix: function () {} getSwfPrefix: function () {} getCssPrefix: function () {} } survey: { init: function(){ return false; } } data: {} init: function() {} objects: function(str) { return false; } locale: { set: function() {} get: function() {} } setAdKeyValue: function() {} utils: { addEvent: function() {} addHtmlTagClass: function() {} log: function () {} } addLoadEvent: function() {} }; /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ (function(){ if (typeof orb !== 'undefined' && typeof orb.fig === 'function') { if (orb.fig('ad') && orb.fig('uk') == 0) { bbcdotcom.data = { ads: (orb.fig('ad') ? 1 : 0) stats: (orb.fig('uk') == 0 ? 1 : 0) statsProvider: orb.fig('ap') }; } } else { document.write('<script type="text/javascript" src="'+('https:' == document.location.protocol ? 'https://www.bbc.com' : 'http://tps.bbc.com')+'/wwscripts/data">\x3C/script>'); } })(); /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ (function(){ if (typeof orb === 'undefined' || typeof orb.fig !== 'function') { bbcdotcom.data = { ads: bbcdotcom.data.a stats: bbcdotcom.data.b statsProvider: bbcdotcom.data.c }; } if (bbcdotcom.data.ads == 1) { document.write('<script type="text/javascript" src="'+('https:' == document.location.protocol ? 'https://www.bbc.com' : 'http://www.bbc.com')+'/wwscripts/flag">\x3C/script>'); } })(); /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ (function(){ if (window.bbcdotcom && (typeof bbcdotcom.flag == 'undefined' || (typeof bbcdotcom.data.ads !== 'undefined' && bbcdotcom.flag.a != 1))) { bbcdotcom.data.ads = 0; } if (/[?|&]ads/.test(window.location.href) || /(^|; )ads=on; /.test(document.cookie) || /; ads=on(; |$)/.test(document.cookie)) { bbcdotcom.data.ads = 1; bbcdotcom.data.stats = 1; } if (window.bbcdotcom && (bbcdotcom.data.ads == 1 || bbcdotcom.data.stats == 1)) { bbcdotcom.assetPrefix = "http://static.bbci.co.uk/bbcdotcom/1.71.0/"; if (/(sandbox|int)(.dev)*.bbc.co*/.test(window.location.href) || /[?|&]ads-debug/.test(window.location.href) || document.cookie.indexOf('ads-debug=') !== -1) { document.write('<script type="text/javascript" src="http://static.bbci.co.uk/bbcdotcom/1.71.0/script/dist/bbcdotcom.dev.js">\x3C/script>'); } else { document.write('<script type="text/javascript" src="http://static.bbci.co.uk/bbcdotcom/1.71.0/script/dist/bbcdotcom.js">\x3C/script>'); } } })(); /*]]>*/ </script><script type="text/javascript"> if (window.bbcdotcom && bbcdotcom.data.stats == 1) { document.write('<link rel="dns-prefetch" href="//secure-us.imrworldwide.com/">'); document.write('<link rel="dns-prefetch" href="//me-cdn.effectivemeasure.net/">'); document.write('<link rel="dns-prefetch" href="//ssc.api.bbc.com/">'); } if (window.bbcdotcom && bbcdotcom.data.ads == 1) { document.write('<link rel="dns-prefetch" href="//www.googletagservices.com/">'); } </script><script type="text/javascript"> /*<![CDATA[*/ (function(){ if (window.bbcdotcom && (bbcdotcom.data.ads == 1 || bbcdotcom.data.stats == 1)) { bbcdotcomConfig = {"adFormat":"standard" "adKeyword":"" "adMode":"smart" "adsEnabled":true "appAnalyticsSections":"news>technology" "asyncEnabled":true "disableInitialLoad":false "advertInfoPageUrl":"http:\/\/www.bbc.com\/privacy\/cookies\/international\/" "advertisementText":"Advertisement" "analyticsEnabled":true "appName":"tabloid" "assetPrefix":"http:\/\/static.bbci.co.uk\/bbcdotcom\/1.71.0\/" "customAdParams":[] "customStatsParams":[] "headline":"An hour to catch the coding bug" "id":"26415021" "inAssociationWithText":"in association with" "keywords":"" "language":"" "orbTransitional":false "outbrainEnabled":true "adsenseEnabled":true "adsportappEnabled":true "lotameEnabled":true "sherlockEnabled":false "platinumEnabled":false "tlNewsIndexEnabled":false "tlNewsStoryEnabled":false "tlNewsFpEnabled":false "palEnv":"live" "productName":"" "sections":[] "comScoreEnabled":true "comscoreSite":"bbc" "comscoreID":"19293874" "comscorePageName":"news.technology-26415021" "slots":"" "sponsoredByText":"is sponsored by" "adsByGoogleText":"Ads by Google" "summary":"Is it possible to get children interested in computer programming in just 60 minutes? The Hour of Code has been designed to do just that." "type":"STORY" "features":{"testfeature":{"name":"testfeature" "envs":["sandbox" "int" "test"] "on":true "options":{} "override":null} "lxadverts":{"name":"lxadverts" "envs":[] "on":true "options":{} "override":null}} "staticBase":"\/bbcdotcom" "staticHost":"http:\/\/static.bbci.co.uk" "staticVersion":"1.71.0" "staticPrefix":"http:\/\/static.bbci.co.uk\/bbcdotcom\/1.71.0" "dataHttp":"tps.bbc.com" "dataHttps":"www.bbc.com" "flagHttp":"www.bbc.co.uk" "flagHttps":"www.bbc.co.uk" "analyticsHttp":"sa.bbc.com" "analyticsHttps":"ssa.bbc.com"}; bbcdotcom.config.init(bbcdotcomConfig bbcdotcom.data window.location window.document); bbcdotcom.config.setAssetPrefix("http://static.bbci.co.uk/bbcdotcom/1.71.0/"); bbcdotcom.config.setVersion("1.71.0"); document.write('<!--[if IE 7]><script type="text/javascript">bbcdotcom.config.setIE7(true);\x3C/script><![endif]-->'); document.write('<!--[if IE 8]><script type="text/javascript">bbcdotcom.config.setIE8(true);\x3C/script><![endif]-->'); document.write('<!--[if IE 9]><script type="text/javascript">bbcdotcom.config.setIE9(true);\x3C/script><![endif]-->'); if (/[?|&]ex-dp/.test(window.location.href) || document.cookie.indexOf('ex-dp=') !== -1) { bbcdotcom.utils.addHtmlTagClass('bbcdotcom-ex-dp'); } } })(); /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ (function() { window.bbcdotcom.head = true; }()); /*]]>*/ </script> <!--Searchbox:133--> <script type="text/javascript">
 // Globally available search context
 window.SEARCHBOX={"variant":"default" "locale":"en" "navSearchboxStaticPrefix":"//nav.files.bbci.co.uk/searchbox/1.0.0-133" "searchboxAppStaticPrefix":"//search.files.bbci.co.uk/searchbox-app/1.0.19" "searchFormHtml":"<div tabindex=\"-1\" data-reactid=\".jval9y49og\" data-react-checksum=\"1886463233\"><div data-reactid=\".jval9y49og.0\"><section class=\"se-searchbox-panel\" data-reactid=\".jval9y49og.0.0\"><div class=\"se-g-wrap\" data-reactid=\".jval9y49og.0.0.0\"><div class=\"se-g-layout\" data-reactid=\".jval9y49og.0.0.0.0\"><div class=\"se-g-layout__item se-searchbox-title\" aria-hidden=\"true\" data-reactid=\".jval9y49og.0.0.0.0.0\">search</div><div class=\"se-g-layout__item se-searchbox\" data-reactid=\".jval9y49og.0.0.0.0.1\"><form accept-charset=\"utf-8\" id=\"searchboxDrawerForm\" method=\"get\" action=\"https://search.bbc.co.uk/search\" data-reactid=\".jval9y49og.0.0.0.0.1.0\"><label class=\"se-searchbox__input\" for=\"se-searchbox-input-field\" data-reactid=\".jval9y49og.0.0.0.0.1.0.0\"><span class=\"se-sr-only\" data-reactid=\".jval9y49og.0.0.0.0.1.0.0.0\">Search Term</span><input name=\"q\" type=\"text\" value=\"\" id=\"se-searchbox-input-field\" class=\"se-searchbox__input__field\" maxlength=\"512\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" tabindex=\"0\" data-reactid=\".jval9y49og.0.0.0.0.1.0.0.1\"/></label><input type=\"hidden\" name=\"scope\" value=\"\" data-reactid=\".jval9y49og.0.0.0.0.1.0.2\"/><button type=\"submit\" class=\"se-searchbox__submit\" tabindex=\"0\" data-reactid=\".jval9y49og.0.0.0.0.1.0.3\">Search</button><button type=\"button\" class=\"se-searchbox__clear se-searchbox__clear--visible\" tabindex=\"0\" data-reactid=\".jval9y49og.0.0.0.0.1.0.4\">Close</button></form></div></div></div></section><div aria-live=\"polite\" aria-atomic=\"true\" class=\"se-suggestions-container\" data-reactid=\".jval9y49og.0.1\"><section class=\"se-g-wrap\" data-reactid=\".jval9y49og.0.1.0\"></section></div></div></div>" "searchScopePlaceholder":"" "searchScopeParam":"" "searchScopeTemplate":"" "searchPlaceholderWrapperStart":"" "searchPlaceholderWrapperEnd":""};
 window.SEARCHBOX.suppress = false;
 window.SEARCHBOX.searchScope = SEARCHBOX.searchScopeTemplate.split('-')[0];
</script>
<link rel="stylesheet" href="//nav.files.bbci.co.uk/searchbox/1.0.0-133/css/main.css">
<!--[if IE 8]>
 <script type="text/javascript" src="//nav.files.bbci.co.uk/searchbox/1.0.0-133/script/html5shiv.min.js"></script>
 <script type="text/javascript">window['searchboxIEVersion'] = 8;</script>
 <link rel="stylesheet" href="//nav.files.bbci.co.uk/searchbox/1.0.0-133/css/ie8.css">
<![endif]-->
<!--[if IE 9]>
 <script type="text/javascript">window['searchboxIEVersion'] = 9;</script>
<![endif]-->
 <!--NavID:0.2.0-147--> <link rel="stylesheet" href="//static.bbc.co.uk/id/0.37.24/style/id-cta.css" /> <link rel="stylesheet" href="//static.bbc.co.uk/id/0.37.24/style/id-cta-v5.css" /> <!--[if IE 8]><link href="//static.bbc.co.uk/id/0.37.24/style/ie8.css" rel="stylesheet"/> <![endif]--> <script type="text/javascript"> /* <![CDATA[ */ var map = {}; if (typeof(map['jssignals-1']) == 'undefined') { map['jssignals-1'] = 'https://static.bbc.co.uk/frameworks/jssignals/0.3.6/modules/jssignals-1'; } require({paths: map}); /* ]]> */ </script> <script src="//static.bbc.co.uk/id/0.37.24/modules/idcta/dist/idcta-1.min.js"></script> <script type="text/javascript"> (function () { if (!window.require) { throw new Error('idcta: could not find require module'); } if(typeof(map) == 'undefined') { var map = {}; } if(!!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg' "svg").createSVGRect) { document.documentElement.className += ' id-svg'; } var ptrt = RegExp("[\\?&]ptrt=([^&#]*)").exec(document.location.href); var ENDPOINT_URL = '//' + ((window.location.protocol == "https:") ? ('ssl.bbc.co.uk').replace("www." "ssl.") : ('ssl.bbc.co.uk').replace("ssl." "www.")); var ENDPOINT_CONFIG = ('/idcta/config?callback&amp;locale=en-GB&ptrt=' + encodeURI((ptrt ? ptrt[1] : document.location.href))).replace(/\&amp;/g '&'); var ENDPOINT_TRANSLATIONS = '/idcta/translations?callback&locale=en-GB'; map['idapp-1'] = '//static.bbc.co.uk/idapp/0.72.58/modules/idapp/idapp-1'; map['idcta'] = '//static.bbc.co.uk/id/0.37.24/modules/idcta'; map['idcta/config'] = [ENDPOINT_URL + ENDPOINT_CONFIG '//static.bbc.co.uk/id/0.37.24/modules/idcta/fallbackConfig']; map['idcta/translations'] = [ENDPOINT_URL + ENDPOINT_TRANSLATIONS '//static.bbc.co.uk/id/0.37.24/modules/idcta/fallbackTranslations']; require({paths: map}); /* * Temporary code * To be removed when old id-statusbar-config is no longer supported */ define('id-statusbar-config' ['idcta/id-config'] function(conf) { return conf; }); define('idcta/id-statusbar-config' ['idcta/id-config'] function(conf) { return conf; }); })(); </script>
 <link rel="stylesheet" href="//mybbc.files.bbci.co.uk/notification-ui/3.8.4/css/main.min.css"/>
 
 <link type="text/css" rel="stylesheet" href="http://static.bbci.co.uk/news/1.219.02158/stylesheets/services/news/core.css">
 <!--[if lt IE 9]>
 <link type="text/css" rel="stylesheet" href="http://static.bbci.co.uk/news/1.219.02158/stylesheets/services/news/old-ie.css">
 <script src="http://static.bbci.co.uk/news/1.219.02158/js/vendor/html5shiv/html5shiv.js"></script>
 <![endif]-->
 <script id="news-loader"> if (document.getElementById("responsive-news")) { window.bbcNewsResponsive = true; } var isIE = (function() { var undef v = 3 div = document.createElement('div') all = div.getElementsByTagName('i'); while ( div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->' all[0] ); return v > 4 ? v : undef; }()); var modernDevice = 'querySelector' in document && 'localStorage' in window && 'addEventListener' in window forceCore = document.cookie.indexOf('ckps_force_core') !== -1; window.cutsTheMustard = modernDevice && !forceCore; if (window.cutsTheMustard) { document.documentElement.className += ' ctm'; var insertPoint = document.getElementById('news-loader') config = {"asset":{"asset_id":"26415021" "asset_locator":"urn:bbc:cps:asset:26415021" "asset_uri":"\/news\/technology-26415021" "original_asset_uri":null "first_created":{"date":"2014-03-03 07:36:59" "timezone_type":3 "timezone":"Europe\/London"} "first_published":{"date":"2014-03-03 10:22:55" "timezone_type":3 "timezone":"Europe\/London"} "last_updated":{"date":"2014-03-03 10:22:55" "timezone_type":3 "timezone":"Europe\/London"} "options":{"allowHeadline":true "allowDateStamp":true "allowRelatedStoriesBox":true "allowRightHandSide":true "includeComments":false "isIgorSeoTagsEnabled":false "allowPrintingSharingLinks":true "allowAdvertising":true} "section":{"name":"Technology" "id":"99113" "uri":"\/news\/technology" "urlIdentifier":"\/news\/technology"} "language":"en-gb" "edition":"International" "audience":null "iStats_counter_name":"news.technology.story.26415021.page" "type":"STY" "curie":"asset:52db3466-0acb-3a48-98c6-21a6e4f5f1cf" "length":5362 "byline":{"name":"By Mark Ward" "persons":{"0":{"name":"Mark Ward" "function":"Technology correspondent BBC News"}} "title":"Technology correspondent BBC News"} "headline":"An hour to catch the coding bug" "mediaType":null "topicTags":null} "smpBrand":null "staticHost":"http:\/\/static.bbci.co.uk" "environment":"live" "locatorVersion":"0.46.3" "pathPrefix":"\/news" "staticPrefix":"http:\/\/static.bbci.co.uk\/news\/1.219.02158" "jsPath":"http:\/\/static.bbci.co.uk\/news\/1.219.02158\/js" "cssPath":"http:\/\/static.bbci.co.uk\/news\/1.219.02158\/stylesheets\/services\/news" "cssPostfix":"" "dynamic":null "features":{"localnews":true "video":true "liveeventcomponent":true "mediaassetpage":true "gallery":true "rollingnews":true "sportstories":true "radiopromo":true "fromothernewssites":true "locallive":true "weather":true} "features2":{"svg_brand":true "waf_deprecation_notice":true "chartbeat":true "connected_stream":true "connected_stream_promo":true "nav":true "pulse_survey":false "local_survey":true "correspondents":true "blogs":true "open_graph":true "follow_us":true "marketdata_markets":true "marketdata_shares":true "nations_pseudo_nav":true "politics_election2015_topic_pages":true "responsive_breaking_news":true "live_event":true "most_popular":true "most_popular_tabs":true "most_popular_by_day":false "routing":true "radiopromonownext":true "config_based_layout":true "orb":true "map_most_watched":true "top_stories_promo":true "features_and_analysis":true "section_labels":true "index_title":true "share_tools":true "extracted_share_tools":true "local_live_promo":true "adverts":true "adverts_async":true "adexpert":true "igor_geo_redirect":true "igor_device_redirect":true "live":true "comscore_mmx":true "find_local_news":true "comments":true "comments_enhanced":true "browser_notify":true "stream_grid_promo":true "breaking_news":false "top_stories_max_volume":true "record_livestats":true "contact_form":true "channel_page":true "portlet_global_variants":true "suppress_lep_timezone":true "story_sticky_player":true "story_end_slate":true "story_smp_preview":true "embed_player_pid":true "cedexis":true "mpulse":true "story_single_column_layout":true "story_image_copyright_labels":true "ovp_resolve_primary_media_vpids":false "media_player":true "services_bar":true "live_v2_stream":true "ldp_tag_augmentation":true "map_related_topic_tags":true "rio2016_medals":true "embedephant-social-embeds":true "interactive-social-embeds":true "social-embeds":true "amp_link":true} "configuration":{"showtimestamp":"1" "showweather":"1" "showsport":"1" "showolympics":"1" "showfeaturemain":"1" "candyplatform":"EnhancedMobile" "showwatchlisten":"1" "showspecialreports":"" "videotopiccandyid":"" "showvideofeedsections":"1" "showstorytopstories":"" "showstoryfeaturesandanalysis":"1" "showstorymostpopular":"" "showgallery":"1" "cms":"cps" "channelpagecandyid":"10318089"} "pollingHost":"https:\/\/polling.bbc.co.uk" "service":"news" "locale":"en-GB" "locatorHost":null "locatorFlagPole":true "local":{"allowLocationLookup":true} "isWorldService":false "isChannelPage":false "languageVariant":"" "commentsHost":"https:\/\/www.bbc.co.uk" "search":null "comscoreAnalytics":null}; config.configuration['get'] = function (key) { return this[key.toLowerCase()]; }; var bootstrapUI=function(){var e=function(){if(navigator.userAgent.match(/(Android (2.0|2.1))|(Nokia)|(OSRE\/)|(Opera (Mini|Mobi))|(w(eb)?OSBrowser)|(UCWEB)|(Windows Phone)|(XBLWP)|(ZuneWP)/))return!1;if(navigator.userAgent.match(/MSIE 10.0/))return!0;var e t=document n=t.head||t.getElementsByTagName("head")[0] r=t.createElement("style") s=t.implementation||{hasFeature:function(){return!1}};r.type="text/css" n.insertBefore(r n.firstChild) e=r.sheet||r.styleSheet;var i=s.hasFeature("CSS2" "")?function(t){if(!e||!t)return!1;var n=!1;try{e.insertRule(t 0) n=!/unknown/i.test(e.cssRules[0].cssText) e.deleteRule(e.cssRules.length-1)}catch(r){}return n}:function(t){return e&&t?(e.cssText=t 0!==e.cssText.length&&!/unknown/i.test(e.cssText)&&0===e.cssText.replace(/\r+|\n+/g "").indexOf(t.split(" ")[0])):!1};return i('@font-face{ font-family:"font";src:"font.ttf"; }')}();e&&(document.getElementsByTagName("html")[0].className+=" ff") function(){var e=document.documentElement.style;("flexBasis"in e||"WebkitFlexBasis"in e||"msFlexBasis"in e)&&(document.documentElement.className+=" flex")}();var t n r s i a={} o=function(){var e=document.documentElement.clientWidth n=window.innerWidth r=n>1.5*e;t=r?e:n} u=function(e){var t=document.createElement("link");t.setAttribute("rel" "stylesheet") t.setAttribute("type" "text/css") t.setAttribute("href" n+e+r+".css") t.setAttribute("media" i[e]) s.parentNode.insertBefore(t s) delete i[e]} c=function(e n r){n&&!r&&t>=n&&u(e) r&&!n&&r>=t&&u(e) n&&r&&t>=n&&r>=t&&u(e)} l=function(e){if(a[e])return a[e];var t=e.match(/\(min\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/) n=e.match(/\(max\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/) r=t&&parseFloat(t[1])||null s=n&&parseFloat(n[1])||null;return a[e]=[r s] a[e]} f=function(){var e=0;for(var t in i)e++;return e} m=function(){f()||window.removeEventListener("resize" d !1);for(var e in i){var t=i[e] n=l(t);c(e n[0] n[1])}} d=function(){o() m()} h=function(e t){i=e n=t.path+("/"!==t.path.substr(-1)?"/":"") r=t.postfix s=t.insertBefore o() m() window.addEventListener("resize" d !1)};return{stylesheetLoaderInit:h}}(); var stylesheets = {"compact":"(max-width: 599px)" "tablet":"(min-width: 600px)" "wide":"(min-width: 1008px)"}; bootstrapUI.stylesheetLoaderInit(stylesheets { path: 'http://static.bbci.co.uk/news/1.219.02158/stylesheets/services/news' postfix: '' insertBefore: insertPoint }); var loadRequire = function(){ var js_paths = {"jquery-1.9":"vendor\/jquery-1\/jquery" "jquery-1":"http:\/\/static.bbci.co.uk\/frameworks\/jquery\/0.4.1\/sharedmodules\/jquery-1.7.2" "demi-1":"http:\/\/static.bbci.co.uk\/frameworks\/demi\/0.10.1\/sharedmodules\/demi-1" "swfobject-2":"http:\/\/static.bbci.co.uk\/frameworks\/swfobject\/0.1.10\/sharedmodules\/swfobject-2" "jquery":"vendor\/jquery-2\/jquery.min" "domReady":"vendor\/require\/domReady" "translation":"module\/translations\/en-GB" "bump-3":"\/\/emp.bbci.co.uk\/emp\/bump-3\/bump-3"}; js_paths.navigation = 'module/nav/navManager'; requirejs.config({ baseUrl: 'http://static.bbci.co.uk/news/1.219.02158/js' map: { 'vendor/locator': { 'module/bootstrap': 'vendor/locator/bootstrap' 'locator/stats': 'vendor/locator/stats' 'locator/locatorView': 'vendor/locator/locatorView' } } paths: js_paths waitSeconds: 30 }); define('config' function () { return config; }); require(["compiled\/all"] function() {
 require(['domReady'] function (domReady) { domReady(function () { require(["module\/dotcom\/handlerAdapter" "module\/stats\/statsSubscriberAdapter" "module\/alternativeJsStrategy\/controller" "module\/iconLoaderAdapter" "module\/polyfill\/location.origin" "module\/components\/breakingNewsAdapter" "module\/indexTitleAdaptor" "module\/navigation\/handlerAdaptor" "module\/noTouchDetectionForCss" "module\/components\/stickyPlayer\/mainAdapter" "module\/components\/responsiveImage" "module\/components\/timestampAdaptor" "module\/components\/twiteAdapter" "module\/tableScrollAdapter" "module\/userScrollAdapter" "module\/components\/mediaPlayer\/mainAdapter" "module\/endSlateAdaptor" "module\/smpPreviewAdaptor"] function() { require(["module\/strategiserAdaptor"]); }); }); }); });
 }; loadRequire(); } else { var l = document.createElement('link'); l.href = 'http://static.bbci.co.uk/news/1.219.02158/icons/generated/icons.fallback.css'; l.rel = 'stylesheet'; document.getElementsByTagName('head')[0].appendChild(l); } </script> <script type="text/javascript"> /*<![CDATA[*/ bbcdotcom.init({adsToDisplay:['leaderboard' 'sponsor_section' 'mpu' 'infeed_news_story' 'outbrain_ar_5' 'outbrain_ar_7' 'outbrain_ar_8' 'outbrain_ar_9' 'native' 'mpu_bottom' 'adsense' 'inread']}); /*]]>*/ </script> <noscript><link href="http://static.bbci.co.uk/news/1.219.02158/icons/generated/icons.fallback.css" rel="stylesheet"></noscript>
 
 <meta name="viewport" content="width=device-width initial-scale=1 user-scalable=1">
 
 </head>
<!--[if IE]><body id="asset-type-sty" class="ie device--feature"><![endif]-->
<!--[if !IE]>--><body id="asset-type-sty" class="device--feature"><!--<![endif]-->
 <div class="direction" >
 
 <!-- BBCDOTCOM bodyFirst --><div id="bbccom_interstitial_ad" class="bbccom_display_none"></div><div id="bbccom_interstitial" class="bbccom_display_none"><script type="text/javascript"> /*<![CDATA[*/ (function() { if (window.bbcdotcom && bbcdotcom.config.isActive('ads')) { googletag.cmd.push(function() { googletag.display('bbccom_interstitial'); }); } }()); /*]]>*/ </script></div><div id="bbccom_wallpaper_ad" class="bbccom_display_none"></div><div id="bbccom_wallpaper" class="bbccom_display_none"><script type="text/javascript"> /*<![CDATA[*/ (function() { var wallpaper; if (window.bbcdotcom && bbcdotcom.config.isActive('ads')) { if (bbcdotcom.config.isAsync()) { googletag.cmd.push(function() { googletag.display('bbccom_wallpaper'); }); } else if (typeof googletag !== "undefined" && typeof googletag.display === "function") { googletag.display("wallpaper"); } wallpaper = bbcdotcom.adverts.adRegister.getAd('wallpaper'); } }()); /*]]>*/ </script></div><script type="text/javascript"> /*<![CDATA[*/ (function() { if (window.bbcdotcom && bbcdotcom.config.isActive('ads')) { document.write(unescape('%3Cscript id="gnlAdsEnabled" class="bbccom_display_none"%3E%3C/script%3E')); } if (window.bbcdotcom && bbcdotcom.config.isActive('analytics')) { document.write(unescape('%3Cscript id="gnlAnalyticsEnabled" class="bbccom_display_none"%3E%3C/script%3E')); } }()); /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ (function() { window.bbcdotcom.bodyFirst = true; }()); /*]]>*/ </script> <div id="blq-global"> <div id="blq-pre-mast"> </div> </div> <script type="text/html" id="blq-bbccookies-tmpl"><![CDATA[ <section> <div id="bbccookies" class="bbccookies-banner orb-banner-wrapper bbccookies-d"> <div id="bbccookies-prompt" class="orb-banner b-g-p b-r b-f"> <h2 class="orb-banner-title"> Cookies on the BBC website </h2> <p class="orb-banner-content" dir="ltr"> The BBC has updated its cookie policy. We use cookies to ensure that we give you the best experience on our website. This includes cookies from third party social media websites if you visit a page which contains embedded content from social media. Such third party cookies may track your use of the BBC website.<span class="bbccookies-international-message"> We and our partners also use cookies to ensure we show you advertising that is relevant to you.</span> If you continue without changing your settings we'll assume that you are happy to receive all cookies on the BBC website. However you can change your cookie settings at any time. </p> <ul class="orb-banner-options"> <li id="bbccookies-continue"> <button type="button" id="bbccookies-continue-button">Continue</button> </li> <li id="bbccookies-settings"> <a href="/privacy/cookies/managing/cookie-settings.html">Change settings</a> </li> <li id="bbccookies-more"><a href="/privacy/cookies/bbc">Find out more</a></li></ul> </div> </div> </section> ]]></script> <script type="text/javascript">/*<![CDATA[*/ (function(){if(bbccookies._showPrompt()){var g=document b=g.getElementById("blq-pre-mast") e=g.getElementById("blq-bbccookies-tmpl") a f;if(b&&g.createElement){a=g.createElement("div");f=e.innerHTML;f=f.replace("<"+"![CDATA[" "").replace("]]"+">" "");a.innerHTML=f;b.appendChild(a);blqCookieContinueButton=g.getElementById("bbccookies-continue-button");blqCookieContinueButton.onclick=function(){a.parentNode.removeChild(a);return false};bbccookies._setPolicy(bbccookies.readPolicy())}var c=g.getElementById("bbccookies");if(c&&!window.orb.fig("uk")){c.className=c.className.replace(/\bbbccookies-d\b/ "");c.className=c.className+(" bbccookies-w")}}})(); /*]]>*/</script> <noscript><p style="position: absolute; top: -999em"><img src="https://sa.bbc.co.uk/bbc/bbc/s?name=news.technology.story.26415021.page&amp;ml_name&#x3D;webmodule&amp;ml_version&#x3D;89&amp;blq_js_enabled=0&blq_s=4d&blq_r=2.7&blq_v=default&blq_e=pal&cps_asset_id=26415021&page_type=Story&section=%2Fnews%2Ftechnology&first_pub=2014-03-03T07%3A36%3A59%2B00%3A00&last_editorial_update=2014-03-03T10%3A22%3A55%2B00%3A00&curie=52db3466-0acb-3a48-98c6-21a6e4f5f1cf&title=An+hour+to+catch+the+coding+bug&for_nation=il&app_version=1.219.0&bbc_site=news&pal_route=asset&app_type=responsive&language=en-GB&pal_webapp=tabloid&prod_name=news&app_name=news" height="1" width="1" alt=""></p></noscript> <!-- Begin iStats 20100118 (UX-CMC 1.1009.3) --> <script type="text/javascript">/*<![CDATA[*/ if (typeof bbccookies !== 'undefined' && bbccookies.isAllowed('s1')) { (function () { require(['istats-1'] function (istats) { istatsTrackingUrl = istats.getDefaultURL(); if (istats.isEnabled() && bbcFlagpoles_istats === 'ON') { sitestat(istatsTrackingUrl); } else { window.ns_pixelUrl = istatsTrackingUrl; /* used by Flash library to track */ } function sitestat(n) { var j = document f = j.location b = ""; if (j.cookie.indexOf("st_ux=") != -1) { var k = j.cookie.split(";"); var e = "st_ux" h = document.domain a = "/"; if (typeof ns_ != "undefined" && typeof ns_.ux != "undefined") { e = ns_.ux.cName || e; h = ns_.ux.cDomain || h; a = ns_.ux.cPath || a } for (var g = 0 f = k.length; g < f; g++) { var m = k[g].indexOf("st_ux="); if (m != -1) { b = "&" + decodeURI(k[g].substring(m + 6)) } } bbccookies.set(e + "=; expires=" + new Date(new Date().getTime() - 60).toGMTString() + "; path=" + a + "; domain=" + h); } window.ns_pixelUrl = n; } }); })(); } else { window.istats = {enabled: false}; } /*]]>*/</script> <!-- End iStats (UX-CMC) --> 
 <!--[if (gt IE 8) | (IEMobile)]><!--> <header id="orb-banner" role="banner"> <!--<![endif]--> <!--[if (lt IE 9) & (!IEMobile)]> <![if (IE 8)]> <header id="orb-banner" role="banner" class="orb-old-ie orb-ie8"> <![endif]> <![if (IE 7)]> <header id="orb-banner" role="banner" class="orb-old-ie orb-ie7"> <![endif]> <![if (IE 6)]> <header id="orb-banner" role="banner" class="orb-old-ie orb-ie6"> <![endif]> <![endif]--> <div id="orb-header" class="orb-nav-pri orb-nav-pri-white b-header--white--black orb-nav-empty" > <div class="orb-nav-pri-container b-r b-g-p"> <div class="orb-nav-section orb-nav-blocks"> <a href="/"> <img src="http://static.bbci.co.uk/frameworks/barlesque/3.21.31/orb/4/img/bbc-blocks-dark.png" width="84" height="24" alt="BBC" /> </a> </div> <section> <div class="orb-skip-links"> <h2>Accessibility links</h2> <ul> <li><a href="#page">Skip to content</a></li> <li><a id="orb-accessibility-help" href="/accessibility/">Accessibility Help</a></li> </ul> </div> </section> <div id="mybbc-wrapper" class="orb-nav-section orb-nav-id orb-nav-focus"> <div id="idcta-statusbar" class="orb-nav-section orb-nav-focus"> <a id="idcta-link" href="https://account.bbc.com/account?ptrt=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021"> <span id="idcta-username">BBC iD</span> </a> </div> <script type="text/javascript"> require(['idcta/statusbar'] function(statusbar) { new statusbar.Statusbar({"id":"idcta-statusbar" "publiclyCacheable":true}); }); </script>
 <a id="notification-link" class="js-notification-link animated three" href="#">
 <span class="hidden-span">Notifications</span>
 <div class="notification-link--triangle"></div>
 <div class="notification-link--triangle"></div>
 <span id="not-num"></span>
 </a>
 </div> <nav role="navigation" class="orb-nav"> <div class="orb-nav-section orb-nav-links orb-nav-focus" id="orb-nav-links"> <h2>BBC navigation</h2> <ul> <li class="orb-nav-home orb-d" > <a href="http://www.bbc.co.uk/">Home</a> </li> <li class="orb-nav-homedotcom orb-w" > <a href="http://www.bbc.com/">Home</a> </li> <li class="orb-nav-news orb-d" > <a href="http://www.bbc.co.uk/news">News</a> </li> <li class="orb-nav-newsdotcom orb-w" > <a href="http://www.bbc.com/news">News</a> </li> <li class="orb-nav-sport" > <a href="/sport/">Sport</a> </li> <li class="orb-nav-weather" > <a href="/weather/">Weather</a> </li> <li class="orb-nav-shop orb-w" > <a href="http://shop.bbc.com/">Shop</a> </li> <li class="orb-nav-earthdotcom orb-w" > <a href="http://www.bbc.com/earth/">Earth</a> </li> <li class="orb-nav-travel-dotcom orb-w" > <a href="http://www.bbc.com/travel/">Travel</a> </li> <li class="orb-nav-capital orb-w" > <a href="http://www.bbc.com/capital/">Capital</a> </li> <li class="orb-nav-iplayer orb-d" > <a href="/iplayer/">iPlayer</a> </li> <li class="orb-nav-culture orb-w" > <a href="http://www.bbc.com/culture/">Culture</a> </li> <li class="orb-nav-autos orb-w" > <a href="http://www.bbc.com/autos/">Autos</a> </li> <li class="orb-nav-future orb-w" > <a href="http://www.bbc.com/future/">Future</a> </li> <li class="orb-nav-tv" > <a href="/tv/">TV</a> </li> <li class="orb-nav-radio" > <a href="/radio/">Radio</a> </li> <li class="orb-nav-cbbc" > <a href="/cbbc">CBBC</a> </li> <li class="orb-nav-cbeebies" > <a href="/cbeebies">CBeebies</a> </li> <li class="orb-nav-food" > <a href="/food/">Food</a> </li> <li > <a href="/iwonder">iWonder</a> </li> <li > <a href="/education">Bitesize</a> </li> <li class="orb-nav-travel orb-d" > <a href="/travel/">Travel</a> </li> <li class="orb-nav-music" > <a href="/music/">Music</a> </li> <li class="orb-nav-earth orb-d" > <a href="http://www.bbc.com/earth/">Earth</a> </li> <li class="orb-nav-arts" > <a href="/arts/">Arts</a> </li> <li class="orb-nav-makeitdigital" > <a href="/makeitdigital">Make It Digital</a> </li> <li > <a href="/taster">Taster</a> </li> <li class="orb-nav-nature orb-w" > <a href="/nature/">Nature</a> </li> <li class="orb-nav-local" > <a href="/local/">Local</a> </li> <li class="orb-nav-tomorrowsworld orb-d" > <a href="/tomorrowsworld">Tomorrow's World</a> </li> <li id="orb-nav-more"><a href="#orb-footer" data-alt="More">Menu<span class="orb-icon orb-icon-arrow"></span></a></li> </ul> </div> </nav> <div class="orb-nav-section orb-nav-search"> <a class="orb-search__button" href="https://search.bbc.co.uk/search" title="Search the BBC">Search</a>
<form class="b-f" id="orb-search-form" role="search" method="get"
 action="https://search.bbc.co.uk/search" accept-charset="utf-8">
 <div>
 
 <label for="orb-search-q">Search the BBC</label>
 <input
 id="orb-search-q"
 type="text"
 autocomplete="off"
 autocorrect="off"
 autocapitalize="off"
 spellcheck="false"
 name="q"
 placeholder="Search"
 >
 <button id="orb-search-button" class="orb-search__button">Search the BBC</button>
 <input type="hidden" name="suggid" id="orb-search-suggid"/>
 </div>
</form>
 </div> </div> <div id="orb-panels" > <script type="text/template" id="orb-panel-template"><![CDATA[ <div id="orb-panel-<%= panelname %>" class="orb-panel" aria-labelledby="orb-nav-<%= panelname %>"> <div class="orb-panel-content b-g-p b-r"> <%= panelcontent %> </div> </div> ]]></script> </div> </div> </header> <!-- Styling hook for shared modules only --> <div id="orb-modules"> 
 <div id="site-container">
 <!--[if lt IE 9]>
<div class="browser-notify">
 <div class="browser-notify__banner">
 <div class="browser-notify__icon"></div>
 <span>This site is optimised for modern web browsers and does not fully support your version of Internet Explorer</span>
 </div>
</div>
<![endif]--> <div class="site-brand site-brand--height" role="banner" aria-label="BBC News">
 <div class="site-brand-inner site-brand-inner--height">
 <div class="navigation navigation--primary">
 <a href="/news" id="brand">
 <svg class="brand__svg" width="102" height="30" focusable="false" aria-hidden="true">
 <image xlink:href="http://static.bbci.co.uk/news/1.219.02158/img/brand/generated/news-light.svg" src="http://static.bbci.co.uk/news/1.219.02158/img/brand/generated/news-light.png" width="100%" height="100%"/>
 </svg>
 <span class="off-screen">News</span>
 </a> <h2 class="navigation__heading off-screen">BBC News Navigation</h2>
 <a href="#core-navigation" class="navigation__section navigation__section--core" data-event="header">
 <span class="off-screen">Sections</span>
 </a>
 </div>
 </div>
 
<div class="navigation navigation--wide">
 <ul class="navigation-wide-list" role="navigation" aria-label="BBC News" data-panel-id="js-navigation-panel-primary">
 <li>
 <a href="/news" class="navigation-wide-list__link">
 <span>Home</span>
 </a>
 </li>
 <li>
 <a href="/news/video_and_audio/headlines" class="navigation-wide-list__link">
 <span>Video</span>
 </a>
 </li>
 <li>
 <a href="/news/world" data-panel-id="js-navigation-panel-World" class="navigation-wide-list__link">
 <span>World</span>
 </a>
 </li>
 <li>
 <a href="/news/uk" data-panel-id="js-navigation-panel-UK" class="navigation-wide-list__link">
 <span>UK</span>
 </a>
 </li>
 <li>
 <a href="/news/business" data-panel-id="js-navigation-panel-Business" class="navigation-wide-list__link">
 <span>Business</span>
 </a>
 </li>
 <li class="selected">
 <a href="/news/technology" class="navigation-wide-list__link navigation-arrow--open">
 <span>Tech</span>
 </a>
 <span class="off-screen">selected</span> </li>
 <li>
 <a href="/news/science_and_environment" class="navigation-wide-list__link">
 <span>Science</span>
 </a>
 </li>
 <li>
 <a href="/news/stories" class="navigation-wide-list__link">
 <span>Stories</span>
 </a>
 </li>
 <li>
 <a href="/news/entertainment_and_arts" class="navigation-wide-list__link">
 <span>Entertainment &amp; Arts</span>
 </a>
 </li>
 <li>
 <a href="/news/health" class="navigation-wide-list__link">
 <span>Health</span>
 </a>
 </li>
 <li>
 <a href="/news/world_radio_and_tv" class="navigation-wide-list__link">
 <span>World News TV</span>
 </a>
 </li>
 <li>
 <a href="/news/in_pictures" class="navigation-wide-list__link">
 <span>In Pictures</span>
 </a>
 </li>
 <li>
 <a href="/news/paradisepapers" class="navigation-wide-list__link">
 <span>Paradise Papers</span>
 </a>
 </li>
 <li>
 <a href="/realitycheck" class="navigation-wide-list__link">
 <span>Reality Check</span>
 </a>
 </li>
 <li>
 <a href="/news/special_reports" class="navigation-wide-list__link">
 <span>Special Reports</span>
 </a>
 </li>
 <li>
 <a href="/news/explainers" class="navigation-wide-list__link">
 <span>Explainers</span>
 </a>
 </li>
 <li>
 <a href="/news/the_reporters" class="navigation-wide-list__link">
 <span>The Reporters</span>
 </a>
 </li>
 <li>
 <a href="/news/have_your_say" class="navigation-wide-list__link navigation-wide-list__link--last">
 <span>Have Your Say</span>
 </a>
 </li>
 </ul>
</div>
 </div>
 
 
<div id="bbccom_leaderboard_1_2_3_4" class="bbccom_slot " aria-hidden="true">
 <div class="bbccom_advert">
 <script type="text/javascript">
 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('leaderboard' [1 2 3 4]);
 }
 })();
 /*]]>*/
 </script>
 </div>
</div>
 <div id="breaking-news-container" data-polling-url="https://polling.bbc.co.uk/news/latest_breaking_news?audience=International" aria-live="polite"></div>
 <div class="container-width-only">
 <span class="index-title index-title--redundant " id="comp-index-title" data-index-title-meta="{&quot;id&quot;:&quot;comp-index-title&quot; &quot;type&quot;:&quot;index-title&quot; &quot;handler&quot;:&quot;indexTitle&quot; &quot;deviceGroups&quot;:null &quot;opts&quot;:{&quot;alwaysVisible&quot;:false &quot;onFrontPage&quot;:false} &quot;template&quot;:&quot;index-title&quot;}">
 <span class="index-title__container">
 <a href="/news/technology">Technology</a>
 </span>
 </span>
 
<div id="bbccom_sponsor_section_1_2_3_4" class="bbccom_slot " aria-hidden="true">
 <div class="bbccom_advert">
 <script type="text/javascript">
 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('sponsor_section' [1 2 3 4]);
 }
 })();
 /*]]>*/
 </script>
 </div>
</div>
 </div>
 
 <div id="page" class="configurable story " data-story-id="technology-26415021"> <div role="main"> <div class="container-width-only"> <span class="index-title index-title--redundant " id="comp-index-title" data-index-title-meta="{&quot;id&quot;:&quot;comp-index-title&quot; &quot;type&quot;:&quot;index-title&quot; &quot;handler&quot;:&quot;indexTitle&quot; &quot;deviceGroups&quot;:null &quot;opts&quot;:{&quot;alwaysVisible&quot;:false &quot;onFrontPage&quot;:false} &quot;template&quot;:&quot;index-title&quot;}">
 <span class="index-title__container">
 <a href="/news/technology">Technology</a>
 </span>
 </span>
 
<div id="bbccom_sponsor_section_1_2_3_4" class="bbccom_slot " aria-hidden="true">
 <div class="bbccom_advert">
 <script type="text/javascript">
 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('sponsor_section' [1 2 3 4]);
 }
 })();
 /*]]>*/
 </script>
 </div>
</div>
 </div> <div class="container"> <div class="container--primary-and-secondary-columns column-clearfix"> <div class="column--primary">
 
<div class="story-body">
 <h1 class="story-body__h1">An hour to catch the coding bug</h1>
 <div class="byline">
 <span class="byline__name">By Mark Ward</span>
 <span class="byline__title">Technology correspondent BBC News</span>
 </div>
 <div class="with-extracted-share-icons">
 <div class="story-body__mini-info-list-and-share">
 <div class="story-body__mini-info-list-and-share-row">
 <div class="mini-info-list-wrap">
 <ul class="mini-info-list">
 <li class="mini-info-list__item"> <div class="date date--v2" data-seconds="1393842175" data-datetime="3 March 2014">3 March 2014</div>
</li>
 <li class="mini-info-list__item mini-info-list__item--section"><span class="mini-info-list__section-desc off-screen">From the section </span><a href="/news/technology" class="mini-info-list__section" data-entityid="section-label">Technology</a></li>
</ul>
 </div>
 <div class="share-tools--event-tag">
 
 <div id="comp-pattern-library-6" class="distinct-component-group container-twite">
 
 <ul class="sharetools">
 <li class="twite__channel-out twite__channel-out--facebook twite__channel-click-extracted--facebook" aria-hidden="true">
 <a class="extracted__channel-link extracted__channel-link--facebook"onclick="window.open('http://www.facebook.com/dialog/feed?app_id=58567469885&amp;redirect_uri=http%3A%2F%2Fwww.bbc.co.uk%2Fnews%2Fspecial%2Fshared%2Fvj_sharetools%2Ffb_red_uri.html&amp;link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FSThisFB&amp;display=popup' '_blank' 'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=555 height=615')" href='#' tabindex="-1">
 <span class="extracted__icon extracted__icon--facebook" data-platform="facebook">
 <svg class="extracted-svg ex-facebook" viewBox="-17 -13 44 44" enable-background="new 0 0 44 44" width="44px" height="44px" aria-hidden="true" focusable="false">
 <g><path d="M5.73 17 L5.73 9.246 L8.333 9.246 L8.723 6.223 L5.73 6.223 L5.73 4.294 C5.73 3.419 5.973 2.823 7.228 2.823 L8.828 2.822 L8.828 0.119 C8.551 0.082 7.601 0 6.496 0 C4.189 0 2.609 1.408 2.609 3.995 L2.609 6.223 L0 6.223 L0 9.246 L2.609 9.246 L2.609 17 L5.73 17 Z"/></g>
 </svg>
 </span>
 <span class="off-screen">Share this with Facebook</span>
 </a>
 </li>
 <li class="twite__channel-out twite__channel-out--twitter twite__channel-click-extracted--twitter" aria-hidden="true">
 <a class="extracted__channel-link extracted__channel-link--twitter"onclick="window.open('https://twitter.com/intent/tweet?text=BBC%20News%20-%20An%20hour%20to%20catch%20the%20coding%20bug&amp;url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021' '_blank' 'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=550 height=250')" href='#' class=shortenUrl data-social-url=https://twitter.com/intent/tweet?text=BBC+News+-+An+hour+to+catch+the+coding+bug&amp;amp;url= data-target-url=http://www.bbc.com/news/technology-26415021 tabindex="-1">
 <span class="extracted__icon extracted__icon--twitter" data-platform="twitter">
 <svg class="extracted-svg ex-twitter" viewBox="-13 -15 44 44" enable-background="new 0 0 44 44" width="44px" height="44px" aria-hidden="true" focusable="false">
 <g><path d="M5.80573373 15 C12.7721527 15 16.581877 9.22887915 16.581877 4.22385671 C16.581877 4.06002242 16.581877 3.89618812 16.5714931 3.73466135 C17.3122088 3.19816171 17.9525471 2.53359441 18.4602026 1.77326482 C17.7690988 2.08016568 17.0364595 2.28092039 16.28536 2.36976011 C17.0756874 1.89671742 17.6675677 1.15138674 17.9502395 0.274527115 C17.2072164 0.715264453 16.3938137 1.02678037 15.5457981 1.19407596 C14.1105174 -0.331198284 11.7118448 -0.405039095 10.1865706 1.0290879 C9.20241101 1.95440555 8.78590269 3.33315194 9.09049603 4.64844138 C6.04571636 4.4961447 3.20861397 3.05740266 1.28529161 0.691035437 C0.280364327 2.42167943 0.793788713 4.63574999 2.45751448 5.74682343 C1.85525036 5.72951699 1.26567764 5.56683646 0.738408105 5.27262698 L0.738408105 5.32108501 C0.739561868 7.12441605 2.00985456 8.67622684 3.77741896 9.03389326 C3.2201516 9.18618993 2.63519393 9.20811142 2.06754269 9.09850397 C2.56366064 10.6410847 3.98509624 11.6979313 5.60613279 11.7290828 C4.26430681 12.7824682 2.60750362 13.3547344 0.902242404 13.3535807 C0.601110348 13.3524269 0.299978293 13.3339667 7.10542736e-15 13.2982001 C1.73295152 14.4104273 3.74742113 15 5.80573373 14.9965387"/></g>
 </svg>
 </span>
 <span class="off-screen">Share this with Twitter</span>
 </a>
 </li>
 <li class="twite__channel-out twite__channel-out--messengermobile twite__channel-click-extracted--messengermobile" aria-hidden="true">
 <a class="extracted__channel-link extracted__channel-link--messengermobile"href='fb-messenger://share?app_id=58567469885&amp;redirect_uri=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&amp;link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FCMP%3Dshare_btn_me' target=_blank tabindex="-1">
 <span class="extracted__icon extracted__icon--messengermobile" data-platform="messengermobile">
 <svg class="extracted-svg ex-messengermobile" viewBox="-14 -13 44 44" enable-background="new 0 0 44 44" width="44px" height="44px" aria-hidden="true" focusable="false">
 <g><path d="M9.84804801 11.1721834 L7.54389655 8.77893955 L3.1059828 11.2323207 L7.97153994 6.06941781 L10.2756914 8.46377529 L14.7136051 6.00928046 L9.84804801 11.1721834 Z M8.90923715 0 C3.98911093 0 0 3.73074306 0 8.33125039 C0 10.9494525 1.29183939 13.2847862 3.3097816 14.8116068 L3.3097816 18 L6.35117243 16.3139269 C7.16079936 16.5399988 8.02054074 16.6625008 8.90923715 16.6625008 C13.830477 16.6625008 17.8184743 12.9328714 17.8184743 8.33125039 C17.8184743 3.73074306 13.830477 0 8.90923715 0 L8.90923715 0 Z"/></g>
 </svg>
 </span>
 <span class="off-screen">Share this with Messenger</span>
 </a>
 </li>
 <li class="twite__channel-out twite__channel-out--messengerdesktop twite__channel-click-extracted--messengerdesktop" aria-hidden="true">
 <a class="extracted__channel-link extracted__channel-link--messengerdesktop"onclick="window.open('http://www.facebook.com/dialog/send?app_id=58567469885&amp;redirect_uri=http%3A%2F%2Fwww.bbc.co.uk%2Fnews%2Fspecial%2Fshared%2Fvj_sharetools%2Ffb_red_uri.html&amp;link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FSThisFB&amp;display=popup' '_blank' 'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=645 height=580')" href='#' tabindex="-1">
 <span class="extracted__icon extracted__icon--messengerdesktop" data-platform="messengerdesktop">
 <svg class="extracted-svg ex-messengerdesktop" viewBox="-14 -13 44 44" enable-background="new 0 0 44 44" width="44px" height="44px" aria-hidden="true" focusable="false">
 <g><path d="M9.84804801 11.1721834 L7.54389655 8.77893955 L3.1059828 11.2323207 L7.97153994 6.06941781 L10.2756914 8.46377529 L14.7136051 6.00928046 L9.84804801 11.1721834 Z M8.90923715 0 C3.98911093 0 0 3.73074306 0 8.33125039 C0 10.9494525 1.29183939 13.2847862 3.3097816 14.8116068 L3.3097816 18 L6.35117243 16.3139269 C7.16079936 16.5399988 8.02054074 16.6625008 8.90923715 16.6625008 C13.830477 16.6625008 17.8184743 12.9328714 17.8184743 8.33125039 C17.8184743 3.73074306 13.830477 0 8.90923715 0 L8.90923715 0 Z"/></g>
 </svg>
 </span>
 <span class="off-screen">Share this with Messenger</span>
 </a>
 </li>
 <li class="twite__channel-out twite__channel-out--email twite__channel-click-extracted--email" aria-hidden="true">
 <a class="extracted__channel-link extracted__channel-link--email"href='mailto:?subject=Shared%20from%20BBC%20News&amp;body=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021' tabindex="-1">
 <span class="extracted__icon extracted__icon--email" data-platform="email">
 <svg class="extracted-svg ex-email" viewBox="-7 1 27 9" enable-background="new 0 0 44 44" width="44px" height="44px" aria-hidden="true" focusable="false">
 <g><path d="M11 4.9V9H2V2.1l4.6 5L13.1 0H0.2H0v11h13V2.8L11 4.9z M10.2 2L6.7 5.8L3.2 2H10.2z"/></g>
 </svg>
 </span>
 <span class="off-screen">Share this with Email</span>
 </a>
 </li>
 <li class="twite">
 <a href="#share-tools" class="twite__share-button" aria-label="Open share panel" data-origin="page" aria-expanded="false" aria-haspopup="true">
 <svg class="twite__share-icon" aria-hidden="true" focusable="false" viewBox="0 0 29.266 32"><path d="M5.473 22.153c1.586 0 3.01-.684 4.012-1.762l9 4.845c-.102.412-.16.85-.16 1.297 0 3.02 2.452 5.468 5.472 5.468 3.017 0 5.47-2.446 5.47-5.468 0-3.023-2.453-5.47-5.47-5.47-1.587 0-3.02.68-4.015 1.757l-9.457-5.175-.074-2.792 9.74-5.456c.99.953 2.327 1.543 3.807 1.543 3.017 0 5.47-2.45 5.47-5.474 0-3.022-2.453-5.467-5.47-5.467-3.02 0-5.473 2.444-5.473 5.466 0 .554.08 1.09.243 1.597L9.27 12.75c-.988-.95-2.326-1.537-3.797-1.537C2.447 11.213 0 13.657 0 16.68c0 3.03 2.447 5.473 5.473 5.473"/></svg><span class="twite__share-text">Share</span>
 </a>
 <div class="twite__panel arrow-top" data-share-uri="">
 <p class="twite__title" aria-hidden="true">Share this with</p>
 <span class="off-screen">These are external links and will open in a new window</span>
 <ul class="twite__channels">
 <li class="twite__channel twite__channel--email twite__channel-click--email">
 <a class="twite__channel-link"href='mailto:?subject=Shared%20from%20BBC%20News&amp;body=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021' >
 <span class="twite__icon twite__icon--email" data-platform="email"></span>
 <p class="twite__channel-text" aria-hidden="true">Email</p>
 <span class="off-screen">Share this with Email</span>
 </a>
 </li>
 <li class="twite__channel twite__channel--facebook twite__channel-click--facebook">
 <a class="twite__channel-link"onclick="window.open('http://www.facebook.com/dialog/feed?app_id=58567469885&amp;redirect_uri=http%3A%2F%2Fwww.bbc.co.uk%2Fnews%2Fspecial%2Fshared%2Fvj_sharetools%2Ffb_red_uri.html&amp;link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FSThisFB&amp;display=popup' '_blank' 'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=555 height=615')" href='#' >
 <span class="twite__icon twite__icon--facebook" data-platform="facebook"></span>
 <p class="twite__channel-text" aria-hidden="true">Facebook</p>
 <span class="off-screen">Share this with Facebook</span>
 </a>
 </li>
 <li class="twite__channel twite__channel--messengerdesktop twite__channel-click--messengerdesktop">
 <a class="twite__channel-link"onclick="window.open('http://www.facebook.com/dialog/send?app_id=58567469885&amp;redirect_uri=http%3A%2F%2Fwww.bbc.co.uk%2Fnews%2Fspecial%2Fshared%2Fvj_sharetools%2Ffb_red_uri.html&amp;link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FSThisFB&amp;display=popup' '_blank' 'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=645 height=580')" href='#' >
 <span class="twite__icon twite__icon--messengerdesktop" data-platform="messengerdesktop"></span>
 <p class="twite__channel-text" aria-hidden="true">Messenger</p>
 <span class="off-screen">Share this with Messenger</span>
 </a>
 </li>
 <li class="twite__channel twite__channel--messengermobile twite__channel-click--messengermobile">
 <a class="twite__channel-link"href='fb-messenger://share?app_id=58567469885&amp;redirect_uri=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&amp;link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FCMP%3Dshare_btn_me' target=_blank>
 <span class="twite__icon twite__icon--messengermobile" data-platform="messengermobile"></span>
 <p class="twite__channel-text" aria-hidden="true">Messenger</p>
 <span class="off-screen">Share this with Messenger</span>
 </a>
 </li>
 <li class="twite__channel twite__channel--twitter twite__channel-click--twitter">
 <a class="twite__channel-link"onclick="window.open('https://twitter.com/intent/tweet?text=BBC%20News%20-%20An%20hour%20to%20catch%20the%20coding%20bug&amp;url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021' '_blank' 'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=550 height=250')" href='#' class=shortenUrl data-social-url=https://twitter.com/intent/tweet?text=BBC+News+-+An+hour+to+catch+the+coding+bug&amp;amp;url= data-target-url=http://www.bbc.com/news/technology-26415021>
 <span class="twite__icon twite__icon--twitter" data-platform="twitter"></span>
 <p class="twite__channel-text" aria-hidden="true">Twitter</p>
 <span class="off-screen">Share this with Twitter</span>
 </a>
 </li>
 <li class="twite__channel twite__channel--pinterest twite__channel-click--pinterest">
 <a class="twite__channel-link"onclick="window.open('https://uk.pinterest.com/pin/create/bookmarklet/?url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&amp;description=Is%20it%20possible%20to%20get%20children%20interested%20in%20computer%20programming%20in%20just%2060%20minutes%3F%20The%20Hour%20of%20Code%20has%20been%20designed%20to%20do%20just%20that.&amp;title=An%20hour%20to%20catch%20the%20coding%20bug&amp;media=http%3A%2F%2Fnews.bbcimg.co.uk%2Fmedia%2Fimages%2F73325000%2Fjpg%2F_73325451_hourofcode.jpg' '_blank' 'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=750 height=675')" href='#' >
 <span class="twite__icon twite__icon--pinterest" data-platform="pinterest"></span>
 <p class="twite__channel-text" aria-hidden="true">Pinterest</p>
 <span class="off-screen">Share this with Pinterest</span>
 </a>
 </li>
 <li class="twite__channel twite__channel--whatsapp twite__channel-click--whatsapp">
 <a class="twite__channel-link"onclick="window.open('whatsapp://send?text=BBC%20News%20%7C%20An%20hour%20to%20catch%20the%20coding%20bug%20-%20http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3Focid%3Dwsnews.chat-apps.in-app-msg.whatsapp.trial.link1_.auin' '_blank' 'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=600 height=600')" href='#' >
 <span class="twite__icon twite__icon--whatsapp" data-platform="whatsapp"></span>
 <p class="twite__channel-text" aria-hidden="true">WhatsApp</p>
 <span class="off-screen">Share this with WhatsApp</span>
 </a>
 </li>
 <li class="twite__channel twite__channel--linkedin twite__channel-click--linkedin">
 <a class="twite__channel-link"onclick="window.open('https://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&amp;title=An%20hour%20to%20catch%20the%20coding%20bug&amp;summary=Is%20it%20possible%20to%20get%20children%20interested%20in%20computer%20programming%20in%20just%2060%20minutes%3F%20The%20Hour%20of%20Code%20has%20been%20designed%20to%20do%20just%20that.&amp;source=BBC' '_blank' 'toolbar=no scrollbars=yes resizable=no fullscreen=no top=50 left=50 width=550 height=500')" href='#' >
 <span class="twite__icon twite__icon--linkedin" data-platform="linkedin"></span>
 <p class="twite__channel-text" aria-hidden="true">LinkedIn</p>
 <span class="off-screen">Share this with LinkedIn</span>
 </a>
 </li>
 </ul>
 <p class="twite__copy-text">Copy this link</p>
 <div class="twite__copy-input">
 <a class="twite__share-link" href="http://www.bbc.com/news/technology-26415021" tabindex="-1" contenteditable="true">http://www.bbc.com/news/technology-26415021</a>
 </div>
 <a class="twite__read-more" href="http://www.bbc.co.uk/faqs/questions/bbc_online/sharing">Read more about sharing.</a>
 <p class="twite__new-window" aria-hidden="true">These are external links and will open in a new window</p>
 <button class="twite__close-button">
 <span class="off-screen">Close share panel</span>
 <div class="twite__close-button-graphic" aria-hidden="true"></div>
 </button>
 </div>
 </li>
</ul>
 
 </div>
 </div>
 </div>
 <div id="topic-tags"><div id="u44392560492269695"><noscript></noscript></div></div> </div>
 </div>
 <div class="story-body__inner" property="articleBody">
 <figure class="media-landscape has-caption full-width lead">
 <span class="image-and-copyright-container">
 
 <img class="js-image-replace" alt="Child with computer" src="https://ichef.bbci.co.uk/news/320/media/images/73325000/jpg/_73325163_olly009.jpg" width="512" height="320">
 
 
 
 </span>
 
 <figcaption class="media-caption">
 <span class="off-screen">Image caption</span>
 <span class="media-caption__text">
 We did our Hour of Code on a lazy Sunday morning
 </span>
 </figcaption>
 
 </figure><p class="story-body__introduction">Okay 60 minutes and counting. Here we go.</p><p>I've got an hour to convince my kids that programming is for them.</p><p>Well sort of.</p><p>I'm putting my twin 10-year-old boys Toby and Callum through the Hour of Code - a campaign that seeks to ignite an interest in programming - the part we're doing using specially created web-based exercises. </p><p>The campaign begun in the US has landed in the UK where it also coincides with government calls for as many children as possible to get coding.</p><div id="bbccom_mpu_1_2_3" class="bbccom_slot mpu-ad" aria-hidden="true">
 <div class="bbccom_advert">
 <script type="text/javascript">
 /**/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('mpu' [1 2 3]);
 }
 })();
 /**/
 </script>
 </div>
</div><p>Programming is being pushed because in an ever more technological world it can only be a good thing to give people a peep into what goes on behind the touch screen cash point and website. </p><p>The Hour of Code is supposed to be the start of that journey and I like many other parents feel it's one my children should be embarking on. I do feel like a clock somewhere is ticking and unless they get started with this essential skill they'll be left behind. </p><p>"In the future kids are going to be doing programming " said Callum when I asked him why it was worth learning how to code. "We need to learn so we can do stuff with the computer otherwise it will be a blank page and never work."</p><h2 class="story-body__crosshead">Zombie dance</h2><figure class="media-landscape has-caption full-width">
 <span class="image-and-copyright-container">
 
 
 <div class="js-delayed-image-load" data-alt="Screenshot from the hour of code" data-src="https://ichef-1.bbci.co.uk/news/320/media/images/73325000/jpg/_73325167_hourofcode.jpg" data-width="512" data-height="288"></div>
 
 
 <span class="off-screen">Image copyright</span>
 <span class="story-image-copyright">Code.org</span>
 
 </span>
 
 <figcaption class="media-caption">
 <span class="off-screen">Image caption</span>
 <span class="media-caption__text">
 The coding exercises involve familiar characters such as the Angry Birds
 </span>
 </figcaption>
 
 </figure><p>It's the getting started for both parents and their offspring that the Hour is intended to help with. I'm probably like most parents in that I have no significant qualification in computer science. All I can offer my boys is a lifetime of tinkering backed up over the past 18 months with online courses in Python HTML CSS Javascript and the like. </p><p>There's good precedents for the value of something like the Hour of Code. I've quizzed every chief technology officer (CTO) developer or IT worker I've met in the past couple of weeks about what got them started and every one knew exactly the moment they got it. Their eyes lit up as they talked about typing in code listings from magazines working through every Dos command or designing their own blocky 8-bit game characters.</p><p>And finally at the back of my mind are all those statistics about the shortages of skilled IT staff and my hope that if this works then their future career options will be much wider than they would be without this skill.</p><p>So no pressure then.</p><p>Yesterday morning we gave it a go. I was keen for it to be fun rather than feel like school as there's nothing more likely to turn them off than for it to be sold as good for them. I think we struck the right note of informality - Cal did it in his onesie. </p><p>It went OK no better than that. Pretty good. We worked through all the exercises getting angry birds to mash pigs and zombies to chomp sunflowers. The coding is done by dragging blocks representing different commands into a work area and building the blocks into a tower of coherent instructions.</p><p>The block-building system is based on the Scratch programming language build by MIT's Mitch Resnick. </p><p>The exercises start easy - just getting an angry bird to hop on to a pig. By the end we were using "If… else" statements and loops to help a zombie navigate a tricky maze to reach the sunflower.</p><p>This went down well with Callum. "Cool! It's scanning for a path " he said as the zombie worked its way towards the hapless flower.</p><p>Mistakes were made but we learned from them we debated over which way to make the birds and zombies turn and the time went really fast. </p><p>Toby was surprised to find that this counted as programming.</p><p>"I thought coding was just a lot of people tapping in letter and numbers until they got it right " he said. </p><h2 class="story-body__crosshead">Next steps</h2><p>And yet I felt it was a bit too easy. I wanted to make the coding connection to real life more tangible. So as we had about 15 minutes of our Hour of Code left we went further.</p><p>This time we used the MIT App Inventor to build a basic program that would run on the tablets they own. </p><p>The app inventor uses the same "drag the block" method to build a program and following the instructions we had soon created an app that turned anything typed in text into speech. </p><figure class="media-landscape has-caption body-narrow-width">
 <span class="image-and-copyright-container">
 
 
 <div class="js-delayed-image-load" data-alt="Screenshot from MIT App Inventor" data-src="https://ichef.bbci.co.uk/news/320/media/images/73325000/jpg/_73325169_appinventor.jpg" data-width="448" data-height="287"></div>
 
 
 <span class="off-screen">Image copyright</span>
 <span class="story-image-copyright">MIT</span>
 
 </span>
 
 <figcaption class="media-caption">
 <span class="off-screen">Image caption</span>
 <span class="media-caption__text">
 The App Inventor uses the same block dragging system as the Hour of Code exercises
 </span>
 </figcaption>
 
 </figure><p>We got it working on Cal's tablet and soon they were getting that gadget to call out lots of phrases. Almost inevitably as they are 10 years old a lot of these phrases involved the words "willy" and "bum". </p><p>But they had a lot of fun with it and it brought home to them how straight-forward coding can be. In just over an hour they went from being pretty much novices to creating an Android app - a basic one that trades on the expertise of the people that built the coding tools but it was an accomplishment nonetheless.</p><p>Did they catch the coding bug as a result? </p><p>Maybe later in the day they were programming each other after one of their regular wrestling matches left Toby lying exhausted on the floor. Suddenly Cal called out commands such as "roll left" and Toby started obeying even to the point of crashing into the sofa when too many roll commands were given. </p><p>Then Toby had his turn and did the same they even worked out that they had to compensate for the changes in left and right as they rolled. </p><p>So I think that hour started something. Both with them and with me. Building that Android app made me realise that it is straight-forward. That my lack of formal qualifications do not matter as much as I thought. And maybe that's the point of the hour. Making people realise that it is not scary and difficult. You just have to find an hour and give it a try. You can even do it in your onesie.</p>
 </div>
</div>
 <div id="topic-tags"><div id="u11473008152097464"><noscript></noscript></div></div>
 <div class="share share--lightweight show ghost-column">
 <div id="share-tools"></div>
 <h2 class="share__title share__title--lightweight">
 Share this story <a href="http://www.bbc.co.uk/help/web/sharing.shtml">About&nbsp;sharing</a>
 </h2>
 <ul class="share__tools share__tools--lightweight">
 <li class="share__tool share__tool--email">
 <a href="mailto:?subject=Shared%20from%20BBC%20News&body=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021" >
 <span>Email</span>
 </a>
 </li>
 <li class="share__tool share__tool--facebook">
 <a href="http://www.facebook.com/dialog/feed?app_id=58567469885&redirect_uri=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FSThisFB&display=popup" >
 <span>Facebook</span>
 </a>
 </li>
 <li class="share__tool share__tool--messengerdesktop">
 <a href="http://www.facebook.com/dialog/send?app_id=58567469885&redirect_uri=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FSThisFB&display=popup" >
 <span>Messenger</span>
 </a>
 </li>
 <li class="share__tool share__tool--messengermobile">
 <a href="fb-messenger://share?app_id=58567469885&redirect_uri=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3FCMP%3Dshare_btn_me" target=_blank>
 <span>Messenger</span>
 </a>
 </li>
 <li class="share__tool share__tool--twitter">
 <a href="https://twitter.com/intent/tweet?text=BBC%20News%20-%20An%20hour%20to%20catch%20the%20coding%20bug&url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021" class=shortenUrl data-social-url=https://twitter.com/intent/tweet?text=BBC+News+-+An+hour+to+catch+the+coding+bug&amp;url= data-target-url=http://www.bbc.com/news/technology-26415021>
 <span>Twitter</span>
 </a>
 </li>
 <li class="share__tool share__tool--pinterest">
 <a href="https://uk.pinterest.com/pin/create/bookmarklet/?url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&description=Is%20it%20possible%20to%20get%20children%20interested%20in%20computer%20programming%20in%20just%2060%20minutes%3F%20The%20Hour%20of%20Code%20has%20been%20designed%20to%20do%20just%20that.&title=An%20hour%20to%20catch%20the%20coding%20bug&media=http%3A%2F%2Fwww.bbc.co.uk%2Fnews%2Fspecial%2F2015%2Fnewsspec_10857%2Fbbc_news_logo.png%3Fcb%3D1" >
 <span>Pinterest</span>
 </a>
 </li>
 <li class="share__tool share__tool--whatsapp">
 <a href="whatsapp://send?text=BBC%20News%20%7C%20An%20hour%20to%20catch%20the%20coding%20bug%20-%20http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021%3Focid%3Dwsnews.chat-apps.in-app-msg.whatsapp.trial.link1_.auin" >
 <span>WhatsApp</span>
 </a>
 </li>
 <li class="share__tool share__tool--linkedin">
 <a href="https://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Ftechnology-26415021&title=An%20hour%20to%20catch%20the%20coding%20bug&summary=Is%20it%20possible%20to%20get%20children%20interested%20in%20computer%20programming%20in%20just%2060%20minutes%3F%20The%20Hour%20of%20Code%20has%20been%20designed%20to%20do%20just%20that.&source=BBC" >
 <span>LinkedIn</span>
 </a>
 </li>
 </ul>
</div>
 <div class="story-more">
 <div class="group story-alsos more-on-this-story"> <div class="group__header"> <h2 class="group__title">More on this story</h2> </div> <div class="group__body"> <ul class="units-list "> <li class="unit unit--regular" data-entityid="more-on-this-story#1" > <a href="/news/av/education-25648769/computer-coding-taught-in-estonian-primary-schools" class="unit__link-wrapper"> <div class="unit__body"> <div class="unit__header"> <div class="unit__title"> 
 <span class="icon-new icon-new--video-square-red"><span class="off-screen"> Video</span></span>
 
 
 <span class="cta"> Computer coding taught in Estonian primary schools </span> </div> <div class="unit__meta"> <div class="date date--v1" data-seconds="1389169705" data-datetime="8 January 2014">8 January 2014</div> </div> </div> </div> </a> </li> <li class="unit unit--regular" data-entityid="more-on-this-story#2" > <a href="/news/technology-26150717" class="unit__link-wrapper"> <div class="unit__body"> <div class="unit__header"> <div class="unit__title"> <span class="cta"> Year of Code - PR fiasco or vital mission? </span> </div> <div class="unit__meta"> <div class="date date--v1" data-seconds="1392196197" data-datetime="12 February 2014">12 February 2014</div> </div> </div> </div> </a> </li> <li class="unit unit--regular" data-entityid="more-on-this-story#3" > <a href="/news/technology-25857276" class="unit__link-wrapper"> <div class="unit__body"> <div class="unit__header"> <div class="unit__title"> <span class="cta"> Are teachers ready for the coding revolution? </span> </div> <div class="unit__meta"> <div class="date date--v1" data-seconds="1390468159" data-datetime="23 January 2014">23 January 2014</div> </div> </div> </div> </a> </li> </ul> </div> </div> </div>
 
<div class="story-more">
 <div class="group related-links--external more-on-this-story"> <div class="group__header"> <h2 class="group__title">Related Internet links</h2> </div> <div class="group__body"> <ul class="units-list "> <li class="unit unit--headline" data-entityid="more-on-this-story#1" > <div class="unit__body"> <div class="unit__header"> <a class="unit__link-wrapper" href="http://uk.code.org/"> <div class="unit__title"> <span class="cta">UK Hour of Code</span> </div> </a> </div> </div> </li> <li class="unit unit--headline" data-entityid="more-on-this-story#2" > <div class="unit__body"> <div class="unit__header"> <a class="unit__link-wrapper" href="http://appinventor.mit.edu/explore/"> <div class="unit__title"> <span class="cta">MIT App Inventor</span> </div> </a> </div> </div> </li> <li class="unit unit--headline" data-entityid="more-on-this-story#3" > <div class="unit__body"> <div class="unit__header"> <a class="unit__link-wrapper" href="http://scratch.mit.edu/"> <div class="unit__title"> <span class="cta">MIT Scratch</span> </div> </a> </div> </div> </li> </ul> </div> </div> 
 <p class="unit__meta">The BBC is not responsible for the content of external Internet sites</p>
</div>
 <div id=comp-pattern-library-8
 class="hidden"
 data-post-load-url="/news/pattern-library-components?options%5BassetId%5D=26415021&amp;options%5Bcontainer_class%5D=container-more-from-this-index&amp;options%5Bdata%5D%5Bsource%5D=candy_parent_index&amp;options%5Bdata%5D%5Bsource_params%5D%5Bsection_title%5D=1&amp;options%5Bcomponents%5D%5B0%5D%5Bname%5D=sparrow&amp;options%5Bcomponents%5D%5B0%5D%5Blimit%5D=3&amp;options%5Bloading_strategy%5D=post_load&amp;options%5Bstats%5D%5Blink_location%5D=more-section-index&amp;options%5Bstats%5D%5Bstrapline_link_location%5D=more-from-this-index-headline&amp;options%5Bstats%5D%5Bsection_label%5D=more-from-this-index-section-label&amp;options%5Basset_id%5D=technology-26415021&amp;presenter=pattern-library-presenter">
 </div> <div id=comp-from-other-news-sites
 class="hidden"
 data-comp-meta="{&quot;id&quot;:&quot;comp-from-other-news-sites&quot; &quot;type&quot;:&quot;from-other-news-sites&quot; &quot;handler&quot;:&quot;default&quot; &quot;deviceGroups&quot;:null &quot;opts&quot;:{&quot;assetId&quot;:&quot;26415021&quot; &quot;conditions&quot;:[&quot;is_local_page&quot;] &quot;loading_strategy&quot;:&quot;post_load&quot; &quot;asset_id&quot;:&quot;technology-26415021&quot; &quot;position_info&quot;:{&quot;instanceNo&quot;:1 &quot;positionInRegion&quot;:7 &quot;lastInRegion&quot;:true &quot;lastOnPage&quot;:false &quot;column&quot;:&quot;primary_column&quot;}} &quot;template&quot;:&quot;\/component\/from-other-news-sites&quot;}">
 </div> 
<div id="bbccom_outbrain_ar_5_1_2_3_4" class="bbccom_slot outbrain-ad" aria-hidden="true">
 <div class="bbccom_advert">
 <script type="text/javascript">
 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('outbrain_ar_5' [1 2 3 4]);
 }
 })();
 /*]]>*/
 </script>
 </div>
</div>
<div id="bbccom_outbrain_ar_7_1_2_3_4" class="bbccom_slot outbrain-ad" aria-hidden="true">
 <div class="bbccom_advert">
 <script type="text/javascript">
 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('outbrain_ar_7' [1 2 3 4]);
 }
 })();
 /*]]>*/
 </script>
 </div>
</div>
<div id="bbccom_outbrain_ar_8_1_2_3_4" class="bbccom_slot outbrain-ad" aria-hidden="true">
 <div class="bbccom_advert">
 <script type="text/javascript">
 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('outbrain_ar_8' [1 2 3 4]);
 }
 })();
 /*]]>*/
 </script>
 </div>
</div>
 </div>
 <div class="column--secondary" role="complementary">
 <div id="comp-top-stories-promo" class="top-stories-promo">
 <h2 class="top-stories-promo__title">Top Stories</h2>
 <a href="/news/world-latin-america-42055676" class="top-stories-promo-story" data-asset-id="/news/world-latin-america-42055676"data-entityid="top-stories#1">
 <strong class="top-stories-promo-story__title">Missing submarine 'reported breakdown'</strong>
 <p class="top-stories-promo-story__summary top-stories-promo-story__summary--none">The Argentine navy boat vanished off the coast last Wednesday and no trace has been found.</p>
 <div class="date date--v2" data-seconds="1511192516" data-datetime="20 November 2017">20 November 2017</div>
 </a>
 <a href="/news/world-europe-42047532" class="top-stories-promo-story" data-asset-id="/news/world-europe-42047532"data-entityid="top-stories#3">
 <strong class="top-stories-promo-story__title">Blow for Merkel as German talks collapse</strong>
 <div class="date date--v2" data-seconds="1511188547" data-datetime="20 November 2017">20 November 2017</div>
 </a>
 <a href="/news/world-africa-42048412" class="top-stories-promo-story" data-asset-id="/news/world-africa-42048412"data-entityid="top-stories#5">
 <strong class="top-stories-promo-story__title">Mugabe ignores party's deadline to quit</strong>
 <div class="date date--v2" data-seconds="1511183438" data-datetime="20 November 2017">20 November 2017</div>
 </a>
 </div> 
<div id="bbccom_mpu_4" class="bbccom_slot mpu-ad" aria-hidden="true">
 <div class="bbccom_advert">
 <script type="text/javascript">
 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('mpu' [4]);
 }
 })();
 /*]]>*/
 </script>
 </div>
</div>
 
<div class="features-and-analysis" id="comp-features-and-analysis" >
 <h2 class="features-and-analysis__title">
 
 Features
 </h2>
 <div class="features-and-analysis__stories promo-unit-spacer">
 
 <div class="features-and-analysis__story" data-entityid="features-and-analysis#1">
 <a href="/news/world-us-canada-42051402" class="bold-image-promo">
 <div class="bold-image-promo__image">
 <div class="responsive-image responsive-image--16by9">
 
 <div class="js-delayed-image-load" data-src="https://ichef.bbci.co.uk/news/304/cpsprodpb/3694/production/_98827931_manson1969_other.jpg" data-width="976" data-height="549" data-alt="Charles Manson in 1969"></div>
 <!--[if lt IE 9]>
 <img src="https://ichef.bbci.co.uk/news/304/cpsprodpb/3694/production/_98827931_manson1969_other.jpg" class="js-image-replace" alt="Charles Manson in 1969" width="976" height="549" />
 <![endif]-->
 
 </div>
 </div>
 <h3 class="bold-image-promo__title">The terrible charisma of Charles Manson</h3>
 <p class="bold-image-promo__summary"> </p>
 </a>
 </div>
 
 
 <div class="features-and-analysis__story" data-entityid="features-and-analysis#2">
 <a href="/news/av/world-us-canada-42015435/a-boom-industry-that-lifted-this-woman-out-of-homelessness" class="bold-image-promo">
 <div class="bold-image-promo__image">
 <div class="responsive-image responsive-image--16by9">
 <div class="responsive-image__inner-for-label"><!-- closed in responsive-image-end -->
 <div class="js-delayed-image-load" data-src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/93DA/production/_98805873_p05nf06p.jpg" data-width="1024" data-height="576" data-alt="Sharon's life was rock bottom when she was homeless but how she has a bright future in the solar industry."></div>
 <!--[if lt IE 9]>
 <img src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/93DA/production/_98805873_p05nf06p.jpg" class="js-image-replace" alt="Sharon's life was rock bottom when she was homeless but how she has a bright future in the solar industry." width="1024" height="576" />
 <![endif]-->
 <div class="responsive-image__label" aria-hidden="true">
 <span class="icon video"><span class="off-screen"> Video</span></span>
 
 
 
 </div>
 <!-- opened in responsive-image-start --></div>
 </div>
 </div>
 <h3 class="bold-image-promo__title">A boom industry that lifted this woman out of homelessness</h3>
 <p class="bold-image-promo__summary"> </p>
 </a>
 </div>
 
 
 <div class="features-and-analysis__story" data-entityid="features-and-analysis#3">
 <a href="/news/world-asia-india-41983359" class="bold-image-promo">
 <div class="bold-image-promo__image">
 <div class="responsive-image responsive-image--16by9">
 
 <div class="js-delayed-image-load" data-src="https://ichef.bbci.co.uk/news/304/cpsprodpb/F1E2/production/_98822916_indira-canteen-54.jpg" data-width="976" data-height="549" data-alt="A mother feeds her baby"></div>
 <!--[if lt IE 9]>
 <img src="https://ichef.bbci.co.uk/news/304/cpsprodpb/F1E2/production/_98822916_indira-canteen-54.jpg" class="js-image-replace" alt="A mother feeds her baby" width="976" height="549" />
 <![endif]-->
 
 </div>
 </div>
 <h3 class="bold-image-promo__title">The best meal you can buy for 13 cents</h3>
 <p class="bold-image-promo__summary"> </p>
 </a>
 </div>
 
<div id="bbccom_infeed_news_story_1_2_3_4_5" class="bbccom_slot infeednewsstory-ad" aria-hidden="true">
 <div class="bbccom_advert">
 <script type="text/javascript">
 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('infeed_news_story' [1 2 3 4 5]);
 }
 })();
 /*]]>*/
 </script>
 </div>
</div>
 
 <div class="features-and-analysis__story" data-entityid="features-and-analysis#4">
 <a href="/news/av/stories-41999611/don-t-fall-apart-managing-your-mind-at-work" class="bold-image-promo">
 <div class="bold-image-promo__image">
 <div class="responsive-image responsive-image--16by9">
 <div class="responsive-image__inner-for-label"><!-- closed in responsive-image-end -->
 <div class="js-delayed-image-load" data-src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/3C08/production/_98786351_p05n8pvy.jpg" data-width="1024" data-height="576" data-alt="An action plan for the workplace"></div>
 <!--[if lt IE 9]>
 <img src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/3C08/production/_98786351_p05n8pvy.jpg" class="js-image-replace" alt="An action plan for the workplace" width="1024" height="576" />
 <![endif]-->
 <div class="responsive-image__label" aria-hidden="true">
 <span class="icon video"><span class="off-screen"> Video</span></span>
 
 
 
 </div>
 <!-- opened in responsive-image-start --></div>
 </div>
 </div>
 <h3 class="bold-image-promo__title">'Don’t fall apart': Managing your mind at work</h3>
 <p class="bold-image-promo__summary"> </p>
 </a>
 </div>
 
 
 <div class="features-and-analysis__story" data-entityid="features-and-analysis#5">
 <a href="/news/world-africa-42012629" class="bold-image-promo">
 <div class="bold-image-promo__image">
 <div class="responsive-image responsive-image--16by9">
 
 <div class="js-delayed-image-load" data-src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/1BF0/production/_98825170_china_zimbabwe.jpg" data-width="976" data-height="549" data-alt="General Li Zuocheng of China and General Constantine Guveya Chiwenga of Zimbabwe"></div>
 <!--[if lt IE 9]>
 <img src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/1BF0/production/_98825170_china_zimbabwe.jpg" class="js-image-replace" alt="General Li Zuocheng of China and General Constantine Guveya Chiwenga of Zimbabwe" width="976" height="549" />
 <![endif]-->
 
 </div>
 </div>
 <h3 class="bold-image-promo__title">Why China matters to Zimbabwe's leaders</h3>
 <p class="bold-image-promo__summary"> </p>
 </a>
 </div>
 
 
 <div class="features-and-analysis__story" data-entityid="features-and-analysis#6">
 <a href="/news/av/world-middle-east-42030899/hipster-trends-on-egypt-s-streets" class="bold-image-promo">
 <div class="bold-image-promo__image">
 <div class="responsive-image responsive-image--16by9">
 <div class="responsive-image__inner-for-label"><!-- closed in responsive-image-end -->
 <div class="js-delayed-image-load" data-src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/9CEC/production/_98827104_p05nlpgw.jpg" data-width="1024" data-height="576" data-alt="Egyptian getting hair cut in trendy style"></div>
 <!--[if lt IE 9]>
 <img src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/9CEC/production/_98827104_p05nlpgw.jpg" class="js-image-replace" alt="Egyptian getting hair cut in trendy style" width="1024" height="576" />
 <![endif]-->
 <div class="responsive-image__label" aria-hidden="true">
 <span class="icon video"><span class="off-screen"> Video</span></span>
 
 
 
 </div>
 <!-- opened in responsive-image-start --></div>
 </div>
 </div>
 <h3 class="bold-image-promo__title">Hipster trends on Egypt's streets</h3>
 <p class="bold-image-promo__summary"> </p>
 </a>
 </div>
 
 
 <div class="features-and-analysis__story" data-entityid="features-and-analysis#7">
 <a href="/news/in-pictures-42002426" class="bold-image-promo">
 <div class="bold-image-promo__image">
 <div class="responsive-image responsive-image--16by9">
 
 <div class="js-delayed-image-load" data-src="https://ichef.bbci.co.uk/news/304/cpsprodpb/C723/production/_98797905_pa-7437843.jpg" data-width="937" data-height="527" data-alt="Queen Elizabeth and Prince Philip"></div>
 <!--[if lt IE 9]>
 <img src="https://ichef.bbci.co.uk/news/304/cpsprodpb/C723/production/_98797905_pa-7437843.jpg" class="js-image-replace" alt="Queen Elizabeth and Prince Philip" width="937" height="527" />
 <![endif]-->
 
 </div>
 </div>
 <h3 class="bold-image-promo__title">In pictures: 70 years of royal marriage</h3>
 <p class="bold-image-promo__summary"> </p>
 </a>
 </div>
 
 
 <div class="features-and-analysis__story" data-entityid="features-and-analysis#8">
 <a href="/news/av/stories-42031639/here-are-the-people-battling-online-for-russia-s-future" class="bold-image-promo">
 <div class="bold-image-promo__image">
 <div class="responsive-image responsive-image--16by9">
 <div class="responsive-image__inner-for-label"><!-- closed in responsive-image-end -->
 <div class="js-delayed-image-load" data-src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/11E7C/production/_98804337_ptaha.jpg" data-width="1920" data-height="1080" data-alt="Ptaha the pro-Kremlin rapper"></div>
 <!--[if lt IE 9]>
 <img src="https://ichef-1.bbci.co.uk/news/304/cpsprodpb/11E7C/production/_98804337_ptaha.jpg" class="js-image-replace" alt="Ptaha the pro-Kremlin rapper" width="1920" height="1080" />
 <![endif]-->
 <div class="responsive-image__label" aria-hidden="true">
 <span class="icon video"><span class="off-screen"> Video</span></span>
 
 
 
 </div>
 <!-- opened in responsive-image-start --></div>
 </div>
 </div>
 <h3 class="bold-image-promo__title">Here are the people battling online for Russia’s future</h3>
 <p class="bold-image-promo__summary"> </p>
 </a>
 </div>
 
 
 <div class="features-and-analysis__story" data-entityid="features-and-analysis#9">
 <a href="/news/business-41902071" class="bold-image-promo">
 <div class="bold-image-promo__image">
 <div class="responsive-image responsive-image--16by9">
 
 <div class="js-delayed-image-load" data-src="https://ichef.bbci.co.uk/news/304/cpsprodpb/1850/production/_98742260_976549gettyimages-75883096.jpg" data-width="976" data-height="549" data-alt="Meat displayed on a chilled shelf in a supermarket"></div>
 <!--[if lt IE 9]>
 <img src="https://ichef.bbci.co.uk/news/304/cpsprodpb/1850/production/_98742260_976549gettyimages-75883096.jpg" class="js-image-replace" alt="Meat displayed on a chilled shelf in a supermarket" width="976" height="549" />
 <![endif]-->
 
 </div>
 </div>
 <h3 class="bold-image-promo__title">How refrigeration revolutionised global trade</h3>
 <p class="bold-image-promo__summary"> </p>
 </a>
 </div>
 
 </div>
</div>
 
<div id="bbccom_native_1_2_3_4" class="bbccom_slot native-ad" >
 <div class="bbccom_advert">
 <script type="text/javascript">
 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('native' [1 2 3 4]);
 }
 })();
 /*]]>*/
 </script>
 </div>
</div>
 <div id=comp-most-popular
 class="hidden"
 data-comp-meta="{&quot;id&quot;:&quot;comp-most-popular&quot; &quot;type&quot;:&quot;most-popular&quot; &quot;handler&quot;:&quot;mostPopular&quot; &quot;deviceGroups&quot;:null &quot;opts&quot;:{&quot;assetId&quot;:&quot;26415021&quot; &quot;loading_strategy&quot;:&quot;post_load&quot; &quot;position_info&quot;:{&quot;instanceNo&quot;:1 &quot;positionInRegion&quot;:3 &quot;lastInRegion&quot;:true &quot;lastOnPage&quot;:true &quot;column&quot;:&quot;secondary_column&quot;}}}">
 </div> 
<div id="bbccom_mpu_bottom_1_2_3_4" class="bbccom_slot mpu-bottom-ad" aria-hidden="true">
 <div class="bbccom_advert">
 <script type="text/javascript">
 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('mpu_bottom' [1 2 3 4]);
 }
 })();
 /*]]>*/
 </script>
 </div>
</div>
<div id="bbccom_outbrain_ar_9_1_2_3_4" class="bbccom_slot outbrain-ad" aria-hidden="true">
 <div class="bbccom_advert">
 <script type="text/javascript">
 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('outbrain_ar_9' [1 2 3 4]);
 }
 })();
 /*]]>*/
 </script>
 </div>
</div>
<div id="bbccom_adsense_1_2_3_4" class="bbccom_slot adsense-ad" aria-hidden="true">
 <div class="bbccom_advert">
 <script type="text/javascript">
 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('adsense' [1 2 3 4]);
 }
 })();
 /*]]>*/
 </script>
 </div>
</div>
<div id="bbccom_inread_1_2_3_4" class="bbccom_slot inread" aria-hidden="true">
 <div class="bbccom_advert">
 <script type="text/javascript">
 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('inread' [1 2 3 4]);
 }
 })();
 /*]]>*/
 </script>
 </div>
</div>
 </div>
 </div> </div> </div> </div> 
 
<div id="core-navigation" class="navigation--footer">
 <h2 class="navigation--footer__heading">BBC News Navigation</h2>
 
 <nav id="navigation--bottom" class="navigation navigation--bottom " role="navigation" aria-label="BBC News">
 <span class="navigation-core-title">Sections</span>
 <ul class="navigation--bottom__toplevel">
 <li class="">
 <a href="/news" class="">
 <span>Home</span>
 </a>
 </li>
 <li class="">
 <a href="/news/video_and_audio/headlines" class="">
 <span>Video</span>
 </a>
 </li>
 <li class="">
 <a href="/news/world" data-panel-id="js-navigation-panel-World" class="navigation-arrow">
 <span>World</span>
 </a>
 <div class="navigation-panel navigation-panel--closed js-navigation-panel-World">
 <div class="navigation-panel__content">
 <ul class="navigation-panel-secondary">
 <li><a href="/news/world"><span>World Home</span></a></li>
 <li>
 <a href="/news/world/africa"><span>Africa</span></a> </li>
 <li>
 <a href="/news/world/asia"><span>Asia</span></a> </li>
 <li>
 <a href="/news/world/australia"><span>Australia</span></a> </li>
 <li>
 <a href="/news/world/europe"><span>Europe</span></a> </li>
 <li>
 <a href="/news/world/latin_america"><span>Latin America</span></a> </li>
 <li>
 <a href="/news/world/middle_east"><span>Middle East</span></a> </li>
 <li>
 <a href="/news/world/us_and_canada"><span>US &amp; Canada</span></a> </li>
 </ul>
 </div>
 </div>
 </li>
 <li class="">
 <a href="/news/uk" data-panel-id="js-navigation-panel-UK" class="navigation-arrow">
 <span>UK</span>
 </a>
 <div class="navigation-panel navigation-panel--closed js-navigation-panel-UK">
 <div class="navigation-panel__content">
 <ul class="navigation-panel-secondary">
 <li><a href="/news/uk"><span>UK Home</span></a></li>
 <li>
 <a href="/news/england"><span>England</span></a> </li>
 <li>
 <a href="/news/northern_ireland"><span>N. Ireland</span></a> </li>
 <li>
 <a href="/news/scotland"><span>Scotland</span></a> </li>
 <li>
 <a href="/news/wales"><span>Wales</span></a> </li>
 <li>
 <a href="/news/politics"><span>Politics</span></a> </li>
 </ul>
 </div>
 </div>
 </li>
 <li class="">
 <a href="/news/business" data-panel-id="js-navigation-panel-Business" class="navigation-arrow">
 <span>Business</span>
 </a>
 <div class="navigation-panel navigation-panel--closed js-navigation-panel-Business">
 <div class="navigation-panel__content">
 <ul class="navigation-panel-secondary">
 <li><a href="/news/business"><span>Business Home</span></a></li>
 <li>
 <a href="http://www.bbc.co.uk/news/business/market_data"><span>Market Data</span></a> </li>
 <li>
 <a href="/news/business/markets"><span>Markets</span></a> </li>
 <li>
 <a href="/news/business-38507481"><span>Global Trade</span></a> </li>
 <li>
 <a href="/news/business/companies"><span>Companies</span></a> </li>
 <li>
 <a href="/news/business-22434141"><span>Entrepreneurship</span></a> </li>
 <li>
 <a href="/news/business-11428889"><span>Technology of Business</span></a> </li>
 <li>
 <a href="/news/business/business_of_sport"><span>Business of Sport</span></a> </li>
 <li>
 <a href="/news/business-12686570"><span>Global Education</span></a> </li>
 <li>
 <a href="/news/business/economy"><span>Economy</span></a> </li>
 </ul>
 </div>
 </div>
 </li>
 <li class="selected ">
 <a href="/news/technology" class="navigation-arrow--open">
 <span>Tech</span>
 </a>
 <span class="off-screen">selected</span> </li>
 <li class="">
 <a href="/news/science_and_environment" class="">
 <span>Science</span>
 </a>
 </li>
 <li class="">
 <a href="/news/stories" class="">
 <span>Stories</span>
 </a>
 </li>
 <li class="">
 <a href="/news/entertainment_and_arts" class="">
 <span>Entertainment &amp; Arts</span>
 </a>
 </li>
 <li class="">
 <a href="/news/health" class="">
 <span>Health</span>
 </a>
 </li>
 <li class="">
 <a href="/news/world_radio_and_tv" class="">
 <span>World News TV</span>
 </a>
 </li>
 <li class="">
 <a href="/news/in_pictures" class="">
 <span>In Pictures</span>
 </a>
 </li>
 <li class="">
 <a href="/news/paradisepapers" class="">
 <span>Paradise Papers</span>
 </a>
 </li>
 <li class="">
 <a href="/realitycheck" class="">
 <span>Reality Check</span>
 </a>
 </li>
 <li class="">
 <a href="/news/special_reports" class="">
 <span>Special Reports</span>
 </a>
 </li>
 <li class="">
 <a href="/news/explainers" class="">
 <span>Explainers</span>
 </a>
 </li>
 <li class="">
 <a href="/news/the_reporters" class="">
 <span>The Reporters</span>
 </a>
 </li>
 <li class="">
 <a href="/news/have_your_say" class="">
 <span>Have Your Say</span>
 </a>
 </li>
 </ul>
 </nav>
</div> 
 <div id="comp-pattern-library-2" class="distinct-component-group ">
 
 <div id="bbc-news-services" class="blue-tit" role="navigation" aria-label="BBC News Services">
 <div class="blue-tit__inner">
 <h2 class="blue-tit__title">BBC News Services</h2>
 <ul class="blue-tit__list">
 <li class="blue-tit__list-item">
 <a href="http://www.bbc.co.uk/news/10628994" class="blue-tit__list-item-link mobile">On your mobile</a>
 </li>
 <li class="blue-tit__list-item">
 <a href="http://www.bbc.co.uk/news/help-17655000" class="blue-tit__list-item-link connected-tv">On your connected tv</a>
 </li>
 <li class="blue-tit__list-item">
 <a href="http://www.bbc.co.uk/news/10628323" class="blue-tit__list-item-link newsletter">Get news alerts</a>
 </li>
 <li class="blue-tit__list-item">
 <a href="http://www.bbc.co.uk/news/20039682" class="blue-tit__list-item-link contact-us">Contact BBC News</a>
 </li>
 </ul>
 </div>
</div>
 
 </div>
 </div><!-- closes #site-container --> </div> <div id="orb-footer" class="orb-footer orb-footer-grey b-footer--grey--white" > <div id="navp-orb-footer-promo" class="orb-footer-grey"></div> <aside role="complementary"> <div id="orb-aside" class="orb-nav-sec b-r b-g-p"> <div class="orb-footer-inner" role="navigation"> <h2 class="orb-footer-lead">Explore the BBC</h2> <div class="orb-footer-primary-links"> <ul> <li class="orb-nav-home orb-d" > <a href="http://www.bbc.co.uk/">Home</a> </li> <li class="orb-nav-homedotcom orb-w" > <a href="http://www.bbc.com/">Home</a> </li> <li class="orb-nav-news orb-d" > <a href="http://www.bbc.co.uk/news">News</a> </li> <li class="orb-nav-newsdotcom orb-w" > <a href="http://www.bbc.com/news">News</a> </li> <li class="orb-nav-sport" > <a href="/sport/">Sport</a> </li> <li class="orb-nav-weather" > <a href="/weather/">Weather</a> </li> <li class="orb-nav-shop orb-w" > <a href="http://shop.bbc.com/">Shop</a> </li> <li class="orb-nav-earthdotcom orb-w" > <a href="http://www.bbc.com/earth/">Earth</a> </li> <li class="orb-nav-travel-dotcom orb-w" > <a href="http://www.bbc.com/travel/">Travel</a> </li> <li class="orb-nav-capital orb-w" > <a href="http://www.bbc.com/capital/">Capital</a> </li> <li class="orb-nav-iplayer orb-d" > <a href="/iplayer/">iPlayer</a> </li> <li class="orb-nav-culture orb-w" > <a href="http://www.bbc.com/culture/">Culture</a> </li> <li class="orb-nav-autos orb-w" > <a href="http://www.bbc.com/autos/">Autos</a> </li> <li class="orb-nav-future orb-w" > <a href="http://www.bbc.com/future/">Future</a> </li> <li class="orb-nav-tv" > <a href="/tv/">TV</a> </li> <li class="orb-nav-radio" > <a href="/radio/">Radio</a> </li> <li class="orb-nav-cbbc" > <a href="/cbbc">CBBC</a> </li> <li class="orb-nav-cbeebies" > <a href="/cbeebies">CBeebies</a> </li> <li class="orb-nav-food" > <a href="/food/">Food</a> </li> <li > <a href="/iwonder">iWonder</a> </li> <li > <a href="/education">Bitesize</a> </li> <li class="orb-nav-travel orb-d" > <a href="/travel/">Travel</a> </li> <li class="orb-nav-music" > <a href="/music/">Music</a> </li> <li class="orb-nav-earth orb-d" > <a href="http://www.bbc.com/earth/">Earth</a> </li> <li class="orb-nav-arts" > <a href="/arts/">Arts</a> </li> <li class="orb-nav-makeitdigital" > <a href="/makeitdigital">Make It Digital</a> </li> <li > <a href="/taster">Taster</a> </li> <li class="orb-nav-nature orb-w" > <a href="/nature/">Nature</a> </li> <li class="orb-nav-local" > <a href="/local/">Local</a> </li> <li class="orb-nav-tomorrowsworld orb-d" > <a href="/tomorrowsworld">Tomorrow's World</a> </li> </ul> </div> </div> </div> </aside> <footer role="contentinfo"> <div id="orb-contentinfo" class="orb-nav-sec b-r b-g-p"> <div class="orb-footer-inner"> <ul> <li > <a href="/terms/">Terms of Use</a> </li> <li > <a href="/aboutthebbc/">About the BBC</a> </li> <li > <a href="/privacy/">Privacy Policy</a> </li> <li > <a href="/privacy/cookies/about">Cookies</a> </li> <li > <a href="/accessibility/">Accessibility Help</a> </li> <li > <a href="/guidance/">Parental Guidance</a> </li> <li > <a href="/contact/">Contact the BBC</a> </li> <li > <a href="/bbcnewsletter">Get Personalised Newsletters</a> </li> <li class=" orb-w" > <a href="http://advertising.bbcworldwide.com/">Advertise with us</a> </li> <li class=" orb-w" > <a href="/privacy/cookies/international/">Ad choices</a> </li> </ul> <small> <span class="orb-hilight">Copyright &copy; 2017 BBC.</span> The BBC is not responsible for the content of external sites. <a href="/help/web/links/" class="orb-hilight">Read about our approach to external linking.</a> </small> </div> </div> </footer> </div> <!-- BBCDOTCOM bodyLast --><div class="bbccom_display_none"><script type="text/javascript"> /*<![CDATA[*/ if (window.bbcdotcom && window.bbcdotcom.analytics && bbcdotcom.config && !bbcdotcom.config.isSportApp()) { bbcdotcom.analytics.page(); } /*]]>*/ </script><noscript><img src="//ssc.api.bbc.com/?c1=2&c2=19293874&ns_site=bbc&name=news.technology-26415021" height="1" width="1" alt=""></noscript><script type="text/javascript"> /*<![CDATA[*/ if (window.bbcdotcom && bbcdotcom.currencyProviders) { bbcdotcom.currencyProviders.write(); } /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ if (window.bbcdotcom && bbcdotcom.currencyProviders) { bbcdotcom.currencyProviders.postWrite(); } /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ if (window.bbcdotcom && bbcdotcom.data && bbcdotcom.data.stats && bbcdotcom.data.stats == 1 && bbcdotcom.config && bbcdotcom.config.isLotameEnabled && bbcdotcom.config.isLotameEnabled() && bbcdotcom.lotame){ bbcdotcom.lotame.write(); } /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ /** * ASYNC waits to make any gpt requests until the bottom of the page */ if ( window.bbcdotcom && bbcdotcom.data && bbcdotcom.data.ads && bbcdotcom.data.ads == 1 && bbcdotcom.config && bbcdotcom.config.isAsync && bbcdotcom.config.isAsync() ) { (function () { var gads = document.createElement('script'); gads.async = true; gads.type = 'text/javascript'; var useSSL = 'https:' == document.location.protocol; gads.src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js'; var node = document.getElementsByTagName('script')[0]; node.parentNode.insertBefore(gads node); })(); } /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ if (window.bbcdotcom && bbcdotcom.data && bbcdotcom.data.stats && bbcdotcom.data.stats === 1 && bbcdotcom.utils && window.location.pathname === '/' && window.bbccookies && bbccookies.readPolicy('performance') ) { var wwhpEdition = bbcdotcom.utils.getMetaPropertyContent('wwhp-edition'); var _sf_async_config={}; /** CONFIGURATION START **/ _sf_async_config.uid = 50924; _sf_async_config.domain = "bbc.co.uk"; _sf_async_config.title = "Homepage"+(wwhpEdition !== '' ? ' - '+wwhpEdition : ''); _sf_async_config.sections = "Homepage"+(wwhpEdition !== '' ? ' Homepage - '+wwhpEdition : ''); _sf_async_config.region = wwhpEdition; _sf_async_config.path = "/"+(wwhpEdition !== '' ? '?'+wwhpEdition : ''); /** CONFIGURATION END **/ (function(){ function loadChartbeat() { window._sf_endpt=(new Date()).getTime(); var e = document.createElement("script"); e.setAttribute("language" "javascript"); e.setAttribute("type" "text/javascript"); e.setAttribute('src' '//static.chartbeat.com/js/chartbeat.js'); document.body.appendChild(e); } var oldonload = window.onload; window.onload = (typeof window.onload != "function") ? loadChartbeat : function() { oldonload(); loadChartbeat(); }; })(); } /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ if (window.bbcdotcom && bbcdotcom.data && bbcdotcom.data.stats == 1 ) { var js_loaded=false percent; if (window.bbcdotcom && bbcdotcom.config && bbcdotcom.config.isSherlockEnabled()) { document.write('<script src="//stag.mdotlabs.com/ads.js">\x3C/script>'); if(document.location.protocol === "http:"){ document.write('<script src="//stag.mdotlabs.com/sherlock.php?clientID=19293874">\x3C/script>'); } else { document.write('<script src="//stag.mdotlabs.com/sherlock.php?clientID=19293874&sec=1">\x3C/script>'); } } } /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ (function() { window.bbcdotcom.bodyLast = true; }()); /*]]>*/ </script></div><!-- BBCDOTCOM all code in page --> <script type="text/javascript" id="orb-js-script" data-assetpath="http://static.bbci.co.uk/frameworks/barlesque/3.21.31/orb/4/" src="http://static.bbci.co.uk/frameworks/barlesque/3.21.31/orb/4/script/orb.min.js"></script> <script type="text/javascript"> (function() {
 'use strict';
 var promoManager = {
 url: '' 
 promoLoaded: false 
 makeUrl: function (theme site win) {
 var loc = win? win.location : window.location 
 proto = loc.protocol 
 host = loc.host 
 url = proto + '//' + ((proto.match(/s:/i) && !host.match(/^www\.(int|test)\./i))? 'ssl.' : 'www.') 
 themes = ['light' 'dark'];
 if ( host.match(/^(?:www|ssl|m)\.(int|test|stage|live)\.bbc\./i) ) {
 url += RegExp.$1 + '.';
 }
 else if ( host.match(/^pal\.sandbox\./i) ) {
 url += 'test.';
 }
 theme = themes[ +(theme === themes[0]) ];
 
 return url + 'bbc.co.uk/navpromo/card/' + site + '/' + theme;
 } 
 init: function(node) {
 var disabledByCookie = (document.cookie.indexOf('ckns_orb_nopromo=1') > -1) 
 that = this;
 
 if (window.promomanagerOverride) {
 for (var p in promomanagerOverride) {
 that[p] = promomanagerOverride[p];
 }
 }
 
 if ( window.orb.fig('uk') && !disabledByCookie ) {
 require(['orb/async/_footerpromo' 'istats-1'] function(promo istats) {
 var virtualSite = istats.getSite() || 'default';
 that.url = (window.promomanagerOverride || that).makeUrl('light' virtualSite);
 if (that.url) { 
 promo.load(that.url node {
 onSuccess: function(e) {
 if(e.status === 'success') {
 node.parentNode.className = node.parentNode.className + ' orb-footer-promo-loaded';
 promoManager.promoLoaded = true;
 promoManager.event('promo-loaded').fire(e);
 }
 } 
 onError: function() {
 istats.log('error' 'orb-footer-promo-failed');
 bbccookies.set('ckns_orb_nopromo=1; expires=' + new Date(new Date().getTime() + 1000 * 60 * 10).toGMTString() + ';path=/;');
 }
 }); 
 }
 });
 }
 }
 };
 
 
 define('orb/promomanager' ['orb/lib/_event'] function (event) {
 event.mixin(promoManager);
 return promoManager;
 });
 
 require(['orb/promomanager'] function (promoManager) {
 promoManager.init(document.getElementById('navp-orb-footer-promo'));
 })
})();
 </script> 
 <script type="text/javascript">
 require.config({
 paths: {
 "mybbc/templates": '//mybbc.files.bbci.co.uk/notification-ui/3.8.4/templates' 
 "mybbc/notifications": '//mybbc.files.bbci.co.uk/notification-ui/3.8.4/js'
 }
 });
 require(['mybbc/notifications/NotificationsMain' 'idcta/idcta-1'] function (NotificationsMain idcta) {
 var loadNotifications = function (fig) {
 if (fig.geo.isUK()) {
 NotificationsMain.run(idcta '//mybbc.files.bbci.co.uk/notification-ui/3.8.4/');
 }
 };
 var orbFig = window.orb.fig;
 if (typeof orbFig.load === 'function') {
 // Use new async API from Orbit
 orbFig.load(loadNotifications loadNotifications);
 } else {
 // Use old sync-only API from PAL orbfig project
 loadNotifications(orbFig);
 }
 });
 </script>
 <script type="text/javascript"> if (typeof require !== 'undefined') { require(['istats-1'] function(istats){ istats.track('external' { region: document.getElementsByTagName('body')[0] }); istats.track('download' { region: document.getElementsByTagName('body')[0] }); }); } </script> <script type="text/javascript">
 if (window.SEARCHBOX.suppress === false && window.SEARCHBOX.locale && /^en-?.*?/.test(window.SEARCHBOX.locale)) {
 require.config({
 paths: {
 "search/searchbox": window.SEARCHBOX.searchboxAppStaticPrefix 
 "disco-layer": "//nav.files.bbci.co.uk/discovery-layer/0.0.1-54.1e3c062/app"
 }
 });
 require(['search/searchbox/searchboxDrawer'] function (SearchboxDrawer) {
 SearchboxDrawer.run(window.SEARCHBOX);
 });
 require(['disco-layer'] function (discoLayer) {
 discoLayer.run("//nav.files.bbci.co.uk/discovery-layer/content/" "//nav.files.bbci.co.uk/discovery-layer/0.0.1-54.1e3c062/main.css");
 });
 }
</script> <script type="text/javascript">require(["megavolt-client" "istats-1" "orb/cookies"] function(t e i){function o(){return"true"===l&&a&&t&&"function"==typeof t.getMVTIStatsLabels}function n(){!c&&o()?setTimeout(function(){e.invoke()} "500"):e.invoke()}var s=navigator.userAgent.toLowerCase() a=!(s.indexOf("msie")>-1)||parseInt(s.split("msie")[1] 10)>10 c=!1 l="true";if(i.isAllowed("s1"))try{if(o()&&t.getMVTIStatsLabels(function(t){e.addLabels(t) c=!0}) !require.s.contexts._.config.paths.idcta)return void n();require(["idcta/idcta-1"] function(t){t&&"function"==typeof t.getIStatsLabels&&e.addLabels(t.getIStatsLabels()) n()} function(t){throw t})}catch(t){console&&"function"==typeof console.log&&console.log("an exception occurred while adding idcta labels to istats invoking istats without them" t) n()}});</script> <img alt="" id="livestats" src="http://stats.bbc.co.uk/o.gif?~RS~s~RS~News~RS~t~RS~HighWeb_Story~RS~i~RS~26415021~RS~p~RS~99113~RS~a~RS~International~RS~u~RS~/news/technology-26415021~RS~r~RS~0~RS~q~RS~0~RS~z~RS~6739~RS~"> </div><!-- closes .direction --> <script> window.old_onload = window.onload; window.onload = function() { if(window.old_onload) { window.old_onload(); } window.loaded = true; }; </script> <!-- Chartbeat Web Analytics code - start -->
<script type="text/javascript">
 /** CONFIGURATION START **/
 var _sf_async_config = {};
 
 _sf_async_config.uid = "50924";
 _sf_async_config.domain = "www.bbc.co.uk";
 _sf_async_config.sections = "News News - technology News - STY News - technology - STY";
 <!-- if page is an index add the edition to the path -->
 _sf_async_config.path = "bbc.co.uk/news/technology-26415021";
 
 (function() {
 var noCookies = true;
 var cookiePrefix = '_chartbeat';
 if ("object" === typeof bbccookies && typeof bbccookies.readPolicy == 'function') {
 noCookies = !bbccookies.readPolicy().performance;
 }
 if (noCookies && document.cookie.indexOf(cookiePrefix) !== -1) {
 //Find and remove cookies whose names begin with '_chartbeat'
 var cookieSplit = document.cookie.split(';');
 var cookieLength = cookieSplit.length;
 while (cookieLength--) {
 var cookie = cookieSplit[cookieLength].replace(/^\s+|\s+$/g '');
 var cookieName = cookie.split('=')[0];
 if (cookieName.indexOf(cookiePrefix) === 0) {
 document.cookie = cookieName + '=; expires=Thu 01 Jan 1970 00:00:00 GMT; path=/;';
 }
 }
 }
 _sf_async_config.noCookies = noCookies;
 }());
 /** CONFIGURATION END **/
 (function(){
 function loadChartbeat() {
 window._sf_endpt=(new Date()).getTime();
 var e = document.createElement("script");
 e.setAttribute("language" "javascript");
 e.setAttribute("type" "text/javascript");
 e.setAttribute('src' '//static.chartbeat.com/js/chartbeat.js');
 document.body.appendChild(e);
 }
 var oldonload = window.onload;
 window.onload = (typeof window.onload != "function") ?
 loadChartbeat : function() { oldonload(); loadChartbeat(); };
 }());
</script>
<!-- Chartbeat Web Analytics code - end -->
 <!-- mpulse start -->
<script>
(function(){
 window.bbcnewsperformance = {};
 var perf = window.performance;
 function firstScrollTimer() {
 document.removeEventListener('scroll' firstScrollTimer);
 perf.mark('firstScroll');
 perf.measure('scrolltime' 'firstScroll');
 var timing = perf.getEntriesByName('scrolltime');
 bbcnewsperformance.firstScrollTime = timing[0].startTime;
 }
 if (perf && perf.mark && perf.measure) {
 document.addEventListener('scroll' firstScrollTimer);
 }
 var random = Math.random();
 var rate = 0.25;
 var throttle = 0.02;
 var forceMpulse = window.location.href.match(/force_mpulse/);
 if (rate && throttle && (random < (rate * throttle)) || forceMpulse) {
 if(window.BOOMR && window.BOOMR.version){return;}
 var dom doc where iframe = document.createElement('iframe') win = window;
 function boomerangSaveLoadTime(e) {
 win.BOOMR_onload=(e && e.timeStamp) || new Date().getTime();
 }
 if (win.addEventListener) {
 win.addEventListener("load" boomerangSaveLoadTime false);
 } else if (win.attachEvent) {
 win.attachEvent("onload" boomerangSaveLoadTime);
 }
 iframe.src = "javascript:false";
 iframe.title = ""; iframe.role="presentation";
 (iframe.frameElement || iframe).style.cssText = "width:0;height:0;border:0;display:none;";
 where = document.getElementsByTagName('script')[0];
 where.parentNode.insertBefore(iframe where);
 try {
 doc = iframe.contentWindow.document;
 } catch(e) {
 dom = document.domain;
 iframe.src="javascript:var d=document.open();d.domain='"+dom+"';void(0);";
 doc = iframe.contentWindow.document;
 }
 doc.open()._l = function() {
 var js = this.createElement("script");
 if(dom) this.domain = dom;
 js.id = "boomr-if-as";
 js.src = '//c.go-mpulse.net/boomerang/' +
 '86ZLR-T78UG-6FNFN-UVDPZ-VZFWR';
 BOOMR_lstart=new Date().getTime();
 this.body.appendChild(js);
 };
 doc.write('<body onload="document._l();">');
 doc.close();
 }
})();
</script>
<!-- mpulse end -->
 </body> </html> 

We give up -- to much noise in this page! How can we get just the text out of this?

Let us use existing libraries.

The first we try is called BeautifulSoup. It is a library to parse "noisy" HTML in general.
Once parsed, the HTML string can be navigated in a convenient manner. Make sure you install beautifulsoup4 by running:

% pip install beautifulsoup4

We can then run this:

In [6]:
from bs4 import BeautifulSoup

def clean_html1(html):
    soup = BeautifulSoup(html)
    return soup.get_text()

Let us try this version of clean_html:

In [7]:
print(clean_html1(html))



An hour to catch the coding bug - BBC News



































 {"@context":"http:\/\/schema.org" "@type":"ReportageNewsArticle" "url":"http:\/\/www.bbc.com\/news\/technology-26415021" "publisher":{"@type":"NewsMediaOrganization" "name":"BBC News" "logo":{"@type":"ImageObject" "url":"http:\/\/www.bbc.co.uk\/news\/special\/2015\/newsspec_10857\/bbc_news_logo.png?cb=1"}} "datePublished":"2014-03-03T10:22:55+00:00" "dateModified":"2014-03-03T10:22:55+00:00" "headline":"How to get your children coding" "image":{"@type":"ImageObject" "width":720 "height":450 "url":"https:\/\/ichef-1.bbci.co.uk\/news\/720\/media\/images\/73325000\/jpg\/_73325163_olly009.jpg"} "thumbnailUrl":"https:\/\/ichef.bbci.co.uk\/news\/208\/media\/images\/73325000\/jpg\/_73325163_olly009.jpg" "author":{"@type":"Person" "name":"Mark Ward"} "mainEntityOfPage":"http:\/\/www.bbc.com\/news\/technology-26415021"}
 














var _sf_startpt=(new Date()).getTime()

 (function() {
 if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
 var msViewportStyle = document.createElement("style");
 msViewportStyle.appendChild(
 document.createTextNode("@-ms-viewport{width:auto!important}")
 );
 document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
 }
 })();
 
window.fig = window.fig || {}; window.fig.async = true;

  window.bbcredirection={geo:true}




   bbcRequireMap = {"jquery-1":"http://static.bbci.co.uk/frameworks/jquery/0.4.1/sharedmodules/jquery-1.7.2" "jquery-1.4":"http://static.bbci.co.uk/frameworks/jquery/0.4.1/sharedmodules/jquery-1.4" "jquery-1.9":"http://static.bbci.co.uk/frameworks/jquery/0.4.1/sharedmodules/jquery-1.9.1" "jquery-1.12":"http://static.bbci.co.uk/frameworks/jquery/0.4.1/sharedmodules/jquery-1.12.0.min" "jquery-2.2":"http://static.bbci.co.uk/frameworks/jquery/0.4.1/sharedmodules/jquery-2.2.0.min" "istats-1":"//nav.files.bbci.co.uk/nav-analytics/0.1.0-43/js/istats-1" "swfobject-2":"http://static.bbci.co.uk/frameworks/swfobject/0.1.10/sharedmodules/swfobject-2" "demi-1":"http://static.bbci.co.uk/frameworks/demi/0.10.1/sharedmodules/demi-1" "gelui-1":"http://static.bbci.co.uk/frameworks/gelui/0.9.13/sharedmodules/gelui-1" "cssp!gelui-1/overlay":"http://static.bbci.co.uk/frameworks/gelui/0.9.13/sharedmodules/gelui-1/overlay.css" "relay-1":"http://static.bbci.co.uk/frameworks/relay/0.2.6/sharedmodules/relay-1" "clock-1":"http://static.bbci.co.uk/frameworks/clock/0.1.9/sharedmodules/clock-1" "canvas-clock-1":"http://static.bbci.co.uk/frameworks/clock/0.1.9/sharedmodules/canvas-clock-1" "cssp!clock-1":"http://static.bbci.co.uk/frameworks/clock/0.1.9/sharedmodules/clock-1.css" "jssignals-1":"http://static.bbci.co.uk/frameworks/jssignals/0.3.6/modules/jssignals-1" "jcarousel-1":"http://static.bbci.co.uk/frameworks/jcarousel/0.1.10/modules/jcarousel-1" "bump-3":"//emp.bbci.co.uk/emp/bump-3/bump-3"}; require({ baseUrl: 'http://static.bbci.co.uk/' paths: bbcRequireMap waitSeconds: 30 });  /*<![CDATA[*/ if (typeof bbccookies_flag === 'undefined') { bbccookies_flag = 'ON'; } showCTA_flag = true; cta_enabled = (showCTA_flag && (bbccookies_flag === 'ON')); (function(){var m="ckns_policy" q="Thu 01 Jan 1970 00:00:00 GMT" i={ads:true personalisation:true performance:true necessary:true};function c(u){if(c.cache[u]){return c.cache[u]}var t=u.split("/") v=[""];do{v.unshift((t.join("/")||"/"));t.pop()}while(v[0]!=="/");c.cache[u]=v;return v}c.cache={};function a(u){if(a.cache[u]){return a.cache[u]}var v=u.split(".") t=[];while(v.length&&"|co.uk|com|".indexOf("|"+v.join(".")+"|")===-1){if(v.length){t.push(v.join("."))}v.shift()}c.cache[u]=t;return t}a.cache={};function s(t y u){var E=[""].concat(a(window.location.hostname)) B=c(window.location.pathname) D="" w C;for(var x=0 A=E.length;x<A;x++){w=E[x];for(var v=0 z=B.length;v<z;v++){C=B[v];D=t+"="+y+";"+(w?"domain="+w+";":"")+(C?"path="+C+";":"")+(u?"expires="+u+";":"");bbccookies.set(D true)}}}window.bbccookies={POLICY_REFRESH_DATE_MILLIS:new Date(2015 4 21 0 0 0 0).getTime() POLICY_EXPIRY_COOKIENAME:"ckns_policy_exp" _setEverywhere:s cookiesEnabled:function(){var t="ckns_testcookie"+Math.floor(Math.random()*100000);this.set(t+"=1");if(this.get().indexOf(t)>-1){e(t);return true}return false} get:function(){return document.cookie} getCrumb:function(t){if(!t){return null}return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(t).replace(/[\-\.\+\*]/g "\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$") "$1"))||null} policyRequiresRefresh:function(){var u=new Date();u.setHours(0);u.setMinutes(0);u.setSeconds(0);u.setMilliseconds(0);if(bbccookies.POLICY_REFRESH_DATE_MILLIS<=u.getTime()){var t=bbccookies.getCrumb(bbccookies.POLICY_EXPIRY_COOKIENAME);if(t){t=new Date(parseInt(t));t.setYear(t.getFullYear()-1);return bbccookies.POLICY_REFRESH_DATE_MILLIS>=t.getTime()}else{return true}}else{return false}} _setPolicy:function(t){return f.apply(this arguments)} readPolicy:function(){return l.apply(this arguments)} _deletePolicy:function(){s(m "" q)} _isConfirmed:function(){return n()!==null} _acceptsAll:function(){var t=l();return t&&!(j(t).indexOf("0")>-1)} _getCookieName:function(){return b.apply(this arguments)} _showPrompt:function(){var t=((!this._isConfirmed()||this.policyRequiresRefresh())&&window.cta_enabled&&this.cookiesEnabled()&&!window.bbccookies_disable);return(window.orb&&window.orb.fig)?t&&(window.orb.fig("no")||window.orb.fig("ck")):t} _getPolicy:this.readPolicy};function b(u){var t=(""+u).match(/^([^=]+)(?==)/);return(t&&t.length?t[0]:"")}function j(t){return""+(t.ads?1:0)+(t.personalisation?1:0)+(t.performance?1:0)}function f(x){if(typeof x==="undefined"){x=i}if(typeof arguments[0]==="string"){var u=arguments[0] w=arguments[1];if(u==="necessary"){w=true}x=l();x[u]=w}else{if(typeof arguments[0]==="object"){x.necessary=true}}var v=new Date();v.setYear(v.getFullYear()+1);bbccookies.set(m+"="+j(x)+";domain=bbc.co.uk;path=/;expires="+v.toUTCString()+";");bbccookies.set(m+"="+j(x)+";domain=bbc.com;path=/;expires="+v.toUTCString()+";");bbccookies.set(m+"="+j(x)+";domain=bbci.co.uk;path=/;expires="+v.toUTCString()+";");var t=new Date(v.getTime());t.setMonth(t.getMonth()+1);bbccookies.set(bbccookies.POLICY_EXPIRY_COOKIENAME+"="+v.getTime()+";domain=bbc.co.uk;path=/;expires="+t.toUTCString()+";");bbccookies.set(bbccookies.POLICY_EXPIRY_COOKIENAME+"="+v.getTime()+";domain=bbc.com;path=/;expires="+t.toUTCString()+";");bbccookies.set(bbccookies.POLICY_EXPIRY_COOKIENAME+"="+v.getTime()+";domain=bbci.co.uk;path=/;expires="+t.toUTCString()+";");return x}function o(t){if(t===null){return null}var u=t.split("");return{ads:!!+u[0] personalisation:!!+u[1] performance:!!+u[2] necessary:true}}function n(){var t=new RegExp("(?:^|; ?)"+m+"=(\\d\\d\\d)($|;)") u=document.cookie.match(t);if(!u){return null}return u[1]}function l(t){var u=o(n());if(!u){u=i}if(t){return u[t]}else{return u}}function e(t){return document.cookie=t+"=;expires="+q+";"}var g=!(window.bbccookies_flag==="ON"&&!bbccookies._acceptsAll()&&!window.bbccookies_disable);var k={} d={"personalisation":"ckps_.+|X-AB-iplayer-.+|ACTVTYMKR|BBC_EXAMPLE_COOKIE|BBCIplayer|BBCiPlayerM|BBCIplayerSession|BBCMediaselector|BBCPostcoder|bbctravel|CGISESSID|ed|food-view|forceDesktop|h4|IMRID|locserv|MyLang|myloc|NTABS|ttduserPrefs|V5|WEATHER|BBCScienceDiscoveryPlaylist_.+|bitratePref|correctAnswerCount|genreCookie|highestQuestionScore|incorrectAnswerCount|longestStreak|MSCSProfile|programmes-oap-expanded|quickestAnswer|score|servicePanel|slowestAnswer|totalTimeForAllFormatted|v|BBCwords|score|correctAnswerCount|highestQuestionScore|hploc|BGUID|BBCWEACITY|mstouch|myway|BBCNewsCustomisation|cbbc_anim|cbeebies_snd|bbcsr_usersx|cbeebies_rd|BBC-Latest_Blogs|zh-enc|pref_loc|m|bbcEmp.+|recs-.+|_lvd2|_lvs2|tick|_fcap_CAM1|_rcc2" "performance":"ckpf_.+|optimizely.*|BBCLiveStatsClick|id|_em_.+|cookies_enabled|mbox|mbox-admin|mc_.+|omniture_unique|s_.+|sc_.+|adpolicyAdDisplayFrequency|s1|ns_session|ns_cookietest|ns_ux|NO-SA|tr_pr1|gvsurvey|bbcsurvey|si_v|sa_labels|obuid|mm_.+|mmid|mmcore.+|mmpa.+" "ads":"ckad_.+|rsi_segs|c" "necessary":"ckns_.+|BBC-UID|blq\\.dPref|SSO2-UID|BBC-H2-User|rmRpDetectReal|bbcComSurvey|IDENTITY_ENV|IDENTITY|IDENTITY-HTTPS|IDENTITY_SESSION|BBCCOMMENTSMODULESESSID|bbcBump.+|IVOTE_VOTE_HISTORY|pulse|BBCPG|BBCPGstat|ecos\\.dt"};function r(){var x=document.cookie.replace(/; +/g ";").split(";") u v=[];for(var w=0 t=x.length;w<t;w++){u=x[w];v.push(bbccookies._getCookieName(u))}return v}function h(w){var v=JSON.stringify(w);if(typeof(k[v])!=="undefined"){return k[v]}var u="";for(var t in w){if(w.hasOwnProperty(t)&&d[t]){if(w[t]===true){u+=(u?"|":"")+d[t]}}}k[v]=new RegExp("^("+(u?u:".*")+")$" "i");return k[v]}bbccookies.getPolicyExpiryDateTime=function(){return bbccookies.POLICY_EXPIRY_COOKIENAME};bbccookies.purge=function(){var u=bbccookies.readPolicy() w=r() x;for(var v=0 t=w.length;v<t;v++){if(!bbccookies.isAllowed(w[v] u)){x=new Date();x.setTime(0);x=x.toUTCString();s(w[v] "deleted" x)}}};function p(){if(g){return}bbccookies.purge();contentLoaded(window bbccookies.purge);if(window.addEventListener){window.addEventListener("beforeunload" bbccookies.purge false)}else{if(window.attachEvent){window.attachEvent("onbeforeunload" bbccookies.purge)}else{window.onbeforeunload=bbccookies.purge}}}bbccookies.set=function(u t){if(g){return document.cookie=u}var v=bbccookies._getCookieName(u);if(t||bbccookies.isAllowed(v)){return document.cookie=u}return null};bbccookies.isAllowed=function(v){var u=bbccookies.readPolicy();var t=h(u);return t.test(v)};p()})();
/*!
 * contentloaded.js
 *
 * Author: Diego Perini (diego.perini at gmail.com)
 * Summary: cross-browser wrapper for DOMContentLoaded
 * Updated: 20101020
 * License: MIT
 * Version: 1.2
 *
 * URL:
 * http://javascript.nwbox.com/ContentLoaded/
 * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE
 *
 */
function contentLoaded(d i){var c=false h=true k=d.document j=k.documentElement a=k.addEventListener n=a?"addEventListener":"attachEvent" l=a?"removeEventListener":"detachEvent" b=a?"":"on" m=function(o){if(o.type==="readystatechange"&&k.readyState!="complete"){return}(o.type==="load"?d:k)[l](b+o.type m false);if(!c&&(c=true)){i.call(d o.type||o)}} g=function(){try{j.doScroll("left")}catch(o){setTimeout(g 50);return}m("poll")};if(k.readyState==="complete"){i.call(d "lazy")}else{if(!a&&j.doScroll){try{h=!d.frameElement}catch(f){}if(h){g()}}k[n](b+"DOMContentLoaded" m false);k[n](b+"readystatechange" m false);d[n](b+"load" m false)}}if(typeof(require)==="function"&&!require.defined("orb/cookies")){define("orb/cookies" function(){return window.bbccookies})}; /*]]>*/  define('orb/cookies' function() { return window.bbccookies; });  /*<![CDATA[*/
(function(){window.orb={};window.orb.figState={ad:0 ap:0 ck:1 eu:1 mb:0 tb:0 uk:1 df:1};window.orb.fig=function(a){return(arguments.length)?window.orb.figState[a]:window.orb.figState};window.orb.fig.device={};window.orb.fig.geo={};window.orb.fig.user={};window.orb.fig.isDefault=function(){return window.orb.fig("df")};window.orb.fig.device.isTablet=function(){return window.orb.fig("tb")};window.orb.fig.device.isMobile=function(){return window.orb.fig("mb")};window.orb.fig.geo.isUK=function(){return window.orb.fig("uk")};window.orb.fig.geo.isEU=function(){return window.orb.fig("eu")};window.fig=window.fig||{};window.fig.manager={include:function(e){e=e||window;var g=false;var j=e.document k=j.cookie i=k.match(/(?:^|; ?)ckns_orb_fig=([^;]+)/) h;if(i){i=this.deserialise(decodeURIComponent(RegExp.$1));this.setFig(e i)}if(window.fig.async&&typeof JSON!="undefined"){var b=(document.cookie.match("(^|; )ckns_orb_cachedfig=([^;]*)")||0)[2];h=b?JSON.parse(b):null;if(h){this.setFig(e h);g=true}}var a="https://fig.bbc.co.uk/frameworks/fig/1/fig.js";if(g){j.write('<script src="'+a+'" async><'+"/script>")}else{j.write('<script src="'+a+'"><'+"/script>")}} confirm:function(a){return true} setFig:function(a b){(function(){a.orb=a.orb||{};a.orb.figState=b})()} deserialise:function(b){var a={};b.replace(/([a-z]{2}):([0-9]+)/g function(){a[RegExp.$1]=+RegExp.$2});return a}}})();fig.manager.include();/*]]>*/

window.bbcFlagpoles_istats="ON" require.config({paths:{"istats-1":"//nav.files.bbci.co.uk/nav-analytics/0.1.0-89/js/istats-1" "megavolt-client":"//nav.files.bbci.co.uk/nav-analytics/0.1.0-89/js/megavolt-client"} config:{"megavolt-client":{baseUrl:"https://mvt.api.bbc.com"}}}) require(["istats-1" "orb/cookies"] function(e t){if(t.isAllowed("s1")){e.addCollector({name:"default" url:"https://sa.bbc.co.uk/bbc/bbc/s" separator:"&"});var a="news.technology.story.26415021.page";e.setCountername(a) window.istats_countername&&e.setCountername(window.istats_countername) e.addLabels("ml_name=webmodule&ml_version=89")}});
/*<![CDATA[*/
 window.bbcFlagpoles_istats = 'ON';
 window.orb = window.orb || {};
 if (typeof bbccookies !== 'undefined' && bbccookies.isAllowed('s1')) {
 var istatsTrackingUrl = '//sa.bbc.co.uk/bbc/bbc/s?name=news.technology.story.26415021.page&cps_asset_id=26415021&page_type=Story&section=%2Fnews%2Ftechnology&first_pub=2014-03-03T07%3A36%3A59%2B00%3A00&last_editorial_update=2014-03-03T10%3A22%3A55%2B00%3A00&curie=52db3466-0acb-3a48-98c6-21a6e4f5f1cf&title=An+hour+to+catch+the+coding+bug&for_nation=il&app_version=1.219.0&bbc_site=news&pal_route=asset&app_type=responsive&language=en-GB&pal_webapp=tabloid&prod_name=news&app_name=news';
 require(['istats-1'] function (istats) {
 var counterName = (window.istats_countername) ? window.istats_countername : istatsTrackingUrl.match(/[\?&]name=([^&]*)/i)[1];
 istats.setCountername(counterName);
 istats.addLabels('cps_asset_id=26415021&page_type=Story&section=%2Fnews%2Ftechnology&first_pub=2014-03-03T07%3A36%3A59%2B00%3A00&last_editorial_update=2014-03-03T10%3A22%3A55%2B00%3A00&curie=52db3466-0acb-3a48-98c6-21a6e4f5f1cf&title=An+hour+to+catch+the+coding+bug&for_nation=il&app_version=1.219.0&bbc_site=news&pal_route=asset&app_type=responsive&language=en-GB&pal_webapp=tabloid&prod_name=news&app_name=news');
 var c = (document.cookie.match(/\bckns_policy=(\d\d\d)/) || []).pop() || '';
 istats.addLabels({
 'blq_s': '4d' 
 'blq_r': '2.7' 
 'blq_v': 'default' 
 'blq_e': 'pal' 
 'bbc_mc': (c ? 'ad' + c.charAt(0) + 'ps' + c.charAt(1) + 'pf' + c.charAt(2) : 'not_set')
 }
 );
 });
 }
 /*]]>*/
/*<![CDATA[*/ (function(undefined){if(!window.bbc){window.bbc={}}var ROLLING_PERIOD_DAYS=30;window.bbc.Mandolin=function(id segments opts){var now=new Date().getTime() storedItem DEFAULT_START=now DEFAULT_RATE=1 COOKIE_NAME="ckpf_mandolin";opts=opts||{};this._id=id;this._segmentSet=segments;this._store=new window.window.bbc.Mandolin.Storage(COOKIE_NAME);this._opts=opts;this._rate=(opts.rate!==undefined)?+opts.rate:DEFAULT_RATE;this._startTs=(opts.start!==undefined)?new Date(opts.start).getTime():new Date(DEFAULT_START).getTime();this._endTs=(opts.end!==undefined)?new Date(opts.end).getTime():daysFromNow(ROLLING_PERIOD_DAYS);this._signupEndTs=(opts.signupEnd!==undefined)?new Date(opts.signupEnd).getTime():this._endTs;this._segment=null;if(typeof id!=="string"){throw new Error("Invalid Argument: id must be defined and be a string")}if(Object.prototype.toString.call(segments)!=="[object Array]"){throw new Error("Invalid Argument: Segments are required.")}if(opts.rate!==undefined&&(opts.rate<0||opts.rate>1)){throw new Error("Invalid Argument: Rate must be between 0 and 1.")}if(this._startTs>this._endTs){throw new Error("Invalid Argument: end date must occur after start date.")}if(!(this._startTs<this._signupEndTs&&this._signupEndTs<=this._endTs)){throw new Error("Invalid Argument: SignupEnd must be between start and end date")}removeExpired.call(this now);var overrides=window.bbccookies.get().match(/ckns_mandolin_setSegments=([^;]+)/);if(overrides!==null){eval("overrides = "+decodeURIComponent(RegExp.$1)+";");if(overrides[this._id]&&this._segmentSet.indexOf(overrides[this._id])==-1){throw new Error("Invalid Override: overridden segment should exist in segments array")}}if(overrides!==null&&overrides[this._id]){this._segment=overrides[this._id]}else{if((storedItem=this._store.getItem(this._id))){this._segment=storedItem.segment}else{if(this._startTs<=now&&now<this._signupEndTs&&now<=this._endTs&&this._store.isEnabled()===true){this._segment=pick(segments this._rate);if(opts.end===undefined){this._store.setItem(this._id {segment:this._segment})}else{this._store.setItem(this._id {segment:this._segment end:this._endTs})}log.call(this "mandolin_segment")}}}log.call(this "mandolin_view")};window.bbc.Mandolin.prototype.getSegment=function(){return this._segment};function log(actionType params){var that=this;require(["istats-1"] function(istats){istats.log(actionType that._id+":"+that._segment params?params:{})})}function removeExpired(expires){var items=this._store.getItems() expiresInt=+expires;for(var key in items){if(items[key].end!==undefined&&+items[key].end<expiresInt){this._store.removeItem(key)}}}function getLastExpirationDate(data){var winner=0 rollingExpire=daysFromNow(ROLLING_PERIOD_DAYS);for(var key in data){if(data[key].end===undefined&&rollingExpire>winner){winner=rollingExpire}else{if(+data[key].end>winner){winner=+data[key].end}}}return(winner)?new Date(winner):new Date(rollingExpire)}window.bbc.Mandolin.prototype.log=function(params){log.call(this "mandolin_log" params)};window.bbc.Mandolin.prototype.convert=function(params){log.call(this "mandolin_convert" params);this.convert=function(){}};function daysFromNow(n){var endDate;endDate=new Date().getTime()+(n*60*60*24)*1000;return endDate}function pick(segments rate){var picked min=0 max=segments.length-1;if(typeof rate==="number"&&Math.random()>rate){return null}do{picked=Math.floor(Math.random()*(max-min+1))+min}while(picked>max);return segments[picked]}window.bbc.Mandolin.Storage=function(name){validateCookieName(name);this._cookieName=name;this._isEnabled=(bbccookies.isAllowed(this._cookieName)===true&&bbccookies.cookiesEnabled()===true)};window.bbc.Mandolin.Storage.prototype.setItem=function(key value){var storeData=this.getItems();storeData[key]=value;this.save(storeData);return value};window.bbc.Mandolin.Storage.prototype.isEnabled=function(){return this._isEnabled};window.bbc.Mandolin.Storage.prototype.getItem=function(key){var storeData=this.getItems();return storeData[key]};window.bbc.Mandolin.Storage.prototype.removeItem=function(key){var storeData=this.getItems();delete storeData[key];this.save(storeData)};window.bbc.Mandolin.Storage.prototype.getItems=function(){return deserialise(this.readCookie(this._cookieName)||"")};window.bbc.Mandolin.Storage.prototype.save=function(data){window.bbccookies.set(this._cookieName+"="+encodeURIComponent(serialise(data))+"; expires="+getLastExpirationDate(data).toUTCString()+";")};window.bbc.Mandolin.Storage.prototype.readCookie=function(name){var nameEq=name+"=" ca=window.bbccookies.get().split("; ") i c;validateCookieName(name);for(i=0;i<ca.length;i++){c=ca[i];if(c.indexOf(nameEq)===0){return decodeURIComponent(c.substring(nameEq.length c.length))}}return null};function serialise(o){var str="";for(var p in o){if(o.hasOwnProperty(p)){str+='"'+p+'"'+":"+(typeof o[p]==="object"?(o[p]===null?"null":"{"+serialise(o[p])+"}"):'"'+o[p].toString()+'"')+" "}}return str.replace(/ \}/g "}").replace(/ $/g "")}function deserialise(str){var o;str="{"+str+"}";if(!validateSerialisation(str)){throw"Invalid input provided for deserialisation."}eval("o = "+str);return o}var validateSerialisation=(function(){var OBJECT_TOKEN="<Object>" ESCAPED_CHAR='"\\n\\r\\u2028\\u2029\\u000A\\u000D\\u005C' ALLOWED_CHAR="([^"+ESCAPED_CHAR+"]|\\\\["+ESCAPED_CHAR+"])" KEY='"'+ALLOWED_CHAR+'+"' VALUE='(null|"'+ALLOWED_CHAR+'*"|'+OBJECT_TOKEN+")" KEY_VALUE=KEY+":"+VALUE KEY_VALUE_SEQUENCE="("+KEY_VALUE+" )*"+KEY_VALUE OBJECT_LITERAL="({}|{"+KEY_VALUE_SEQUENCE+"})" objectPattern=new RegExp(OBJECT_LITERAL "g");return function(str){if(str.indexOf(OBJECT_TOKEN)!==-1){return false}while(str.match(objectPattern)){str=str.replace(objectPattern OBJECT_TOKEN)}return str===OBJECT_TOKEN}})();function validateCookieName(name){if(name.match(/ ;/)){throw"Illegal name provided must be valid in browser cookie."}}})(); /*]]>*/  document.documentElement.className += (document.documentElement.className? ' ' : '') + 'orb-js'; fig.manager.confirm();     var blq = { environment: function() { return 'live'; } }   /*<![CDATA[*/ function oqsSurveyManager(w flag) { if (flag !== 'OFF' && (w.orb.fig("no") || w.orb.fig("uk"))) { w.document.write('<script type="text/javascript" src="http://static.bbci.co.uk/frameworks/barlesque/3.21.31/orb/4/script/vendor/edr.min.js"><'+'/script>'); } } oqsSurveyManager(window 'ON'); /*]]>*/  
 /*<![CDATA[*/ var _sf_startpt = (new Date()).getTime(); /*]]>*/ .bbccom_display_none{display:none;} /*<![CDATA[*/ var bbcdotcomConfig googletag = googletag || {}; googletag.cmd = googletag.cmd || []; var bbcdotcom = false; (function(){ if(typeof require !== 'undefined') { require({ paths:{ "bbcdotcom":"http://static.bbci.co.uk/bbcdotcom/1.71.0/script" } }); } })(); /*]]>*/  /*<![CDATA[*/ var bbcdotcom = { adverts: { keyValues: { set: function() {} } } advert: { write: function () {} show: function () {} isActive: function () { return false; } layout: function() { return { reset: function() {} } } } config: { init: function() {} isActive: function() {} setSections: function() {} isAdsEnabled: function() {} setAdsEnabled: function() {} isAnalyticsEnabled: function() {} setAnalyticsEnabled: function() {} setAssetPrefix: function() {} setVersion: function () {} setJsPrefix: function() {} setSwfPrefix: function() {} setCssPrefix: function() {} setConfig: function() {} getAssetPrefix: function() {} getJsPrefix: function () {} getSwfPrefix: function () {} getCssPrefix: function () {} } survey: { init: function(){ return false; } } data: {} init: function() {} objects: function(str) { return false; } locale: { set: function() {} get: function() {} } setAdKeyValue: function() {} utils: { addEvent: function() {} addHtmlTagClass: function() {} log: function () {} } addLoadEvent: function() {} }; /*]]>*/  /*<![CDATA[*/ (function(){ if (typeof orb !== 'undefined' && typeof orb.fig === 'function') { if (orb.fig('ad') && orb.fig('uk') == 0) { bbcdotcom.data = { ads: (orb.fig('ad') ? 1 : 0) stats: (orb.fig('uk') == 0 ? 1 : 0) statsProvider: orb.fig('ap') }; } } else { document.write('<script type="text/javascript" src="'+('https:' == document.location.protocol ? 'https://www.bbc.com' : 'http://tps.bbc.com')+'/wwscripts/data">\x3C/script>'); } })(); /*]]>*/  /*<![CDATA[*/ (function(){ if (typeof orb === 'undefined' || typeof orb.fig !== 'function') { bbcdotcom.data = { ads: bbcdotcom.data.a stats: bbcdotcom.data.b statsProvider: bbcdotcom.data.c }; } if (bbcdotcom.data.ads == 1) { document.write('<script type="text/javascript" src="'+('https:' == document.location.protocol ? 'https://www.bbc.com' : 'http://www.bbc.com')+'/wwscripts/flag">\x3C/script>'); } })(); /*]]>*/  /*<![CDATA[*/ (function(){ if (window.bbcdotcom && (typeof bbcdotcom.flag == 'undefined' || (typeof bbcdotcom.data.ads !== 'undefined' && bbcdotcom.flag.a != 1))) { bbcdotcom.data.ads = 0; } if (/[?|&]ads/.test(window.location.href) || /(^|; )ads=on; /.test(document.cookie) || /; ads=on(; |$)/.test(document.cookie)) { bbcdotcom.data.ads = 1; bbcdotcom.data.stats = 1; } if (window.bbcdotcom && (bbcdotcom.data.ads == 1 || bbcdotcom.data.stats == 1)) { bbcdotcom.assetPrefix = "http://static.bbci.co.uk/bbcdotcom/1.71.0/"; if (/(sandbox|int)(.dev)*.bbc.co*/.test(window.location.href) || /[?|&]ads-debug/.test(window.location.href) || document.cookie.indexOf('ads-debug=') !== -1) { document.write('<script type="text/javascript" src="http://static.bbci.co.uk/bbcdotcom/1.71.0/script/dist/bbcdotcom.dev.js">\x3C/script>'); } else { document.write('<script type="text/javascript" src="http://static.bbci.co.uk/bbcdotcom/1.71.0/script/dist/bbcdotcom.js">\x3C/script>'); } } })(); /*]]>*/  if (window.bbcdotcom && bbcdotcom.data.stats == 1) { document.write('<link rel="dns-prefetch" href="//secure-us.imrworldwide.com/">'); document.write('<link rel="dns-prefetch" href="//me-cdn.effectivemeasure.net/">'); document.write('<link rel="dns-prefetch" href="//ssc.api.bbc.com/">'); } if (window.bbcdotcom && bbcdotcom.data.ads == 1) { document.write('<link rel="dns-prefetch" href="//www.googletagservices.com/">'); }  /*<![CDATA[*/ (function(){ if (window.bbcdotcom && (bbcdotcom.data.ads == 1 || bbcdotcom.data.stats == 1)) { bbcdotcomConfig = {"adFormat":"standard" "adKeyword":"" "adMode":"smart" "adsEnabled":true "appAnalyticsSections":"news>technology" "asyncEnabled":true "disableInitialLoad":false "advertInfoPageUrl":"http:\/\/www.bbc.com\/privacy\/cookies\/international\/" "advertisementText":"Advertisement" "analyticsEnabled":true "appName":"tabloid" "assetPrefix":"http:\/\/static.bbci.co.uk\/bbcdotcom\/1.71.0\/" "customAdParams":[] "customStatsParams":[] "headline":"An hour to catch the coding bug" "id":"26415021" "inAssociationWithText":"in association with" "keywords":"" "language":"" "orbTransitional":false "outbrainEnabled":true "adsenseEnabled":true "adsportappEnabled":true "lotameEnabled":true "sherlockEnabled":false "platinumEnabled":false "tlNewsIndexEnabled":false "tlNewsStoryEnabled":false "tlNewsFpEnabled":false "palEnv":"live" "productName":"" "sections":[] "comScoreEnabled":true "comscoreSite":"bbc" "comscoreID":"19293874" "comscorePageName":"news.technology-26415021" "slots":"" "sponsoredByText":"is sponsored by" "adsByGoogleText":"Ads by Google" "summary":"Is it possible to get children interested in computer programming in just 60 minutes? The Hour of Code has been designed to do just that." "type":"STORY" "features":{"testfeature":{"name":"testfeature" "envs":["sandbox" "int" "test"] "on":true "options":{} "override":null} "lxadverts":{"name":"lxadverts" "envs":[] "on":true "options":{} "override":null}} "staticBase":"\/bbcdotcom" "staticHost":"http:\/\/static.bbci.co.uk" "staticVersion":"1.71.0" "staticPrefix":"http:\/\/static.bbci.co.uk\/bbcdotcom\/1.71.0" "dataHttp":"tps.bbc.com" "dataHttps":"www.bbc.com" "flagHttp":"www.bbc.co.uk" "flagHttps":"www.bbc.co.uk" "analyticsHttp":"sa.bbc.com" "analyticsHttps":"ssa.bbc.com"}; bbcdotcom.config.init(bbcdotcomConfig bbcdotcom.data window.location window.document); bbcdotcom.config.setAssetPrefix("http://static.bbci.co.uk/bbcdotcom/1.71.0/"); bbcdotcom.config.setVersion("1.71.0"); document.write('<!--[if IE 7]><script type="text/javascript">bbcdotcom.config.setIE7(true);\x3C/script><![endif]-->'); document.write('<!--[if IE 8]><script type="text/javascript">bbcdotcom.config.setIE8(true);\x3C/script><![endif]-->'); document.write('<!--[if IE 9]><script type="text/javascript">bbcdotcom.config.setIE9(true);\x3C/script><![endif]-->'); if (/[?|&]ex-dp/.test(window.location.href) || document.cookie.indexOf('ex-dp=') !== -1) { bbcdotcom.utils.addHtmlTagClass('bbcdotcom-ex-dp'); } } })(); /*]]>*/  /*<![CDATA[*/ (function() { window.bbcdotcom.head = true; }()); /*]]>*/   
 // Globally available search context
 window.SEARCHBOX={"variant":"default" "locale":"en" "navSearchboxStaticPrefix":"//nav.files.bbci.co.uk/searchbox/1.0.0-133" "searchboxAppStaticPrefix":"//search.files.bbci.co.uk/searchbox-app/1.0.19" "searchFormHtml":"<div tabindex=\"-1\" data-reactid=\".jval9y49og\" data-react-checksum=\"1886463233\"><div data-reactid=\".jval9y49og.0\"><section class=\"se-searchbox-panel\" data-reactid=\".jval9y49og.0.0\"><div class=\"se-g-wrap\" data-reactid=\".jval9y49og.0.0.0\"><div class=\"se-g-layout\" data-reactid=\".jval9y49og.0.0.0.0\"><div class=\"se-g-layout__item se-searchbox-title\" aria-hidden=\"true\" data-reactid=\".jval9y49og.0.0.0.0.0\">search</div><div class=\"se-g-layout__item se-searchbox\" data-reactid=\".jval9y49og.0.0.0.0.1\"><form accept-charset=\"utf-8\" id=\"searchboxDrawerForm\" method=\"get\" action=\"https://search.bbc.co.uk/search\" data-reactid=\".jval9y49og.0.0.0.0.1.0\"><label class=\"se-searchbox__input\" for=\"se-searchbox-input-field\" data-reactid=\".jval9y49og.0.0.0.0.1.0.0\"><span class=\"se-sr-only\" data-reactid=\".jval9y49og.0.0.0.0.1.0.0.0\">Search Term</span><input name=\"q\" type=\"text\" value=\"\" id=\"se-searchbox-input-field\" class=\"se-searchbox__input__field\" maxlength=\"512\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" tabindex=\"0\" data-reactid=\".jval9y49og.0.0.0.0.1.0.0.1\"/></label><input type=\"hidden\" name=\"scope\" value=\"\" data-reactid=\".jval9y49og.0.0.0.0.1.0.2\"/><button type=\"submit\" class=\"se-searchbox__submit\" tabindex=\"0\" data-reactid=\".jval9y49og.0.0.0.0.1.0.3\">Search</button><button type=\"button\" class=\"se-searchbox__clear se-searchbox__clear--visible\" tabindex=\"0\" data-reactid=\".jval9y49og.0.0.0.0.1.0.4\">Close</button></form></div></div></div></section><div aria-live=\"polite\" aria-atomic=\"true\" class=\"se-suggestions-container\" data-reactid=\".jval9y49og.0.1\"><section class=\"se-g-wrap\" data-reactid=\".jval9y49og.0.1.0\"></section></div></div></div>" "searchScopePlaceholder":"" "searchScopeParam":"" "searchScopeTemplate":"" "searchPlaceholderWrapperStart":"" "searchPlaceholderWrapperEnd":""};
 window.SEARCHBOX.suppress = false;
 window.SEARCHBOX.searchScope = SEARCHBOX.searchScopeTemplate.split('-')[0];




     /* <![CDATA[ */ var map = {}; if (typeof(map['jssignals-1']) == 'undefined') { map['jssignals-1'] = 'https://static.bbc.co.uk/frameworks/jssignals/0.3.6/modules/jssignals-1'; } require({paths: map}); /* ]]> */    (function () { if (!window.require) { throw new Error('idcta: could not find require module'); } if(typeof(map) == 'undefined') { var map = {}; } if(!!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg' "svg").createSVGRect) { document.documentElement.className += ' id-svg'; } var ptrt = RegExp("[\\?&]ptrt=([^&#]*)").exec(document.location.href); var ENDPOINT_URL = '//' + ((window.location.protocol == "https:") ? ('ssl.bbc.co.uk').replace("www." "ssl.") : ('ssl.bbc.co.uk').replace("ssl." "www.")); var ENDPOINT_CONFIG = ('/idcta/config?callback&amp;locale=en-GB&ptrt=' + encodeURI((ptrt ? ptrt[1] : document.location.href))).replace(/\&amp;/g '&'); var ENDPOINT_TRANSLATIONS = '/idcta/translations?callback&locale=en-GB'; map['idapp-1'] = '//static.bbc.co.uk/idapp/0.72.58/modules/idapp/idapp-1'; map['idcta'] = '//static.bbc.co.uk/id/0.37.24/modules/idcta'; map['idcta/config'] = [ENDPOINT_URL + ENDPOINT_CONFIG '//static.bbc.co.uk/id/0.37.24/modules/idcta/fallbackConfig']; map['idcta/translations'] = [ENDPOINT_URL + ENDPOINT_TRANSLATIONS '//static.bbc.co.uk/id/0.37.24/modules/idcta/fallbackTranslations']; require({paths: map}); /* * Temporary code * To be removed when old id-statusbar-config is no longer supported */ define('id-statusbar-config' ['idcta/id-config'] function(conf) { return conf; }); define('idcta/id-statusbar-config' ['idcta/id-config'] function(conf) { return conf; }); })(); 



 if (document.getElementById("responsive-news")) { window.bbcNewsResponsive = true; } var isIE = (function() { var undef v = 3 div = document.createElement('div') all = div.getElementsByTagName('i'); while ( div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->' all[0] ); return v > 4 ? v : undef; }()); var modernDevice = 'querySelector' in document && 'localStorage' in window && 'addEventListener' in window forceCore = document.cookie.indexOf('ckps_force_core') !== -1; window.cutsTheMustard = modernDevice && !forceCore; if (window.cutsTheMustard) { document.documentElement.className += ' ctm'; var insertPoint = document.getElementById('news-loader') config = {"asset":{"asset_id":"26415021" "asset_locator":"urn:bbc:cps:asset:26415021" "asset_uri":"\/news\/technology-26415021" "original_asset_uri":null "first_created":{"date":"2014-03-03 07:36:59" "timezone_type":3 "timezone":"Europe\/London"} "first_published":{"date":"2014-03-03 10:22:55" "timezone_type":3 "timezone":"Europe\/London"} "last_updated":{"date":"2014-03-03 10:22:55" "timezone_type":3 "timezone":"Europe\/London"} "options":{"allowHeadline":true "allowDateStamp":true "allowRelatedStoriesBox":true "allowRightHandSide":true "includeComments":false "isIgorSeoTagsEnabled":false "allowPrintingSharingLinks":true "allowAdvertising":true} "section":{"name":"Technology" "id":"99113" "uri":"\/news\/technology" "urlIdentifier":"\/news\/technology"} "language":"en-gb" "edition":"International" "audience":null "iStats_counter_name":"news.technology.story.26415021.page" "type":"STY" "curie":"asset:52db3466-0acb-3a48-98c6-21a6e4f5f1cf" "length":5362 "byline":{"name":"By Mark Ward" "persons":{"0":{"name":"Mark Ward" "function":"Technology correspondent BBC News"}} "title":"Technology correspondent BBC News"} "headline":"An hour to catch the coding bug" "mediaType":null "topicTags":null} "smpBrand":null "staticHost":"http:\/\/static.bbci.co.uk" "environment":"live" "locatorVersion":"0.46.3" "pathPrefix":"\/news" "staticPrefix":"http:\/\/static.bbci.co.uk\/news\/1.219.02158" "jsPath":"http:\/\/static.bbci.co.uk\/news\/1.219.02158\/js" "cssPath":"http:\/\/static.bbci.co.uk\/news\/1.219.02158\/stylesheets\/services\/news" "cssPostfix":"" "dynamic":null "features":{"localnews":true "video":true "liveeventcomponent":true "mediaassetpage":true "gallery":true "rollingnews":true "sportstories":true "radiopromo":true "fromothernewssites":true "locallive":true "weather":true} "features2":{"svg_brand":true "waf_deprecation_notice":true "chartbeat":true "connected_stream":true "connected_stream_promo":true "nav":true "pulse_survey":false "local_survey":true "correspondents":true "blogs":true "open_graph":true "follow_us":true "marketdata_markets":true "marketdata_shares":true "nations_pseudo_nav":true "politics_election2015_topic_pages":true "responsive_breaking_news":true "live_event":true "most_popular":true "most_popular_tabs":true "most_popular_by_day":false "routing":true "radiopromonownext":true "config_based_layout":true "orb":true "map_most_watched":true "top_stories_promo":true "features_and_analysis":true "section_labels":true "index_title":true "share_tools":true "extracted_share_tools":true "local_live_promo":true "adverts":true "adverts_async":true "adexpert":true "igor_geo_redirect":true "igor_device_redirect":true "live":true "comscore_mmx":true "find_local_news":true "comments":true "comments_enhanced":true "browser_notify":true "stream_grid_promo":true "breaking_news":false "top_stories_max_volume":true "record_livestats":true "contact_form":true "channel_page":true "portlet_global_variants":true "suppress_lep_timezone":true "story_sticky_player":true "story_end_slate":true "story_smp_preview":true "embed_player_pid":true "cedexis":true "mpulse":true "story_single_column_layout":true "story_image_copyright_labels":true "ovp_resolve_primary_media_vpids":false "media_player":true "services_bar":true "live_v2_stream":true "ldp_tag_augmentation":true "map_related_topic_tags":true "rio2016_medals":true "embedephant-social-embeds":true "interactive-social-embeds":true "social-embeds":true "amp_link":true} "configuration":{"showtimestamp":"1" "showweather":"1" "showsport":"1" "showolympics":"1" "showfeaturemain":"1" "candyplatform":"EnhancedMobile" "showwatchlisten":"1" "showspecialreports":"" "videotopiccandyid":"" "showvideofeedsections":"1" "showstorytopstories":"" "showstoryfeaturesandanalysis":"1" "showstorymostpopular":"" "showgallery":"1" "cms":"cps" "channelpagecandyid":"10318089"} "pollingHost":"https:\/\/polling.bbc.co.uk" "service":"news" "locale":"en-GB" "locatorHost":null "locatorFlagPole":true "local":{"allowLocationLookup":true} "isWorldService":false "isChannelPage":false "languageVariant":"" "commentsHost":"https:\/\/www.bbc.co.uk" "search":null "comscoreAnalytics":null}; config.configuration['get'] = function (key) { return this[key.toLowerCase()]; }; var bootstrapUI=function(){var e=function(){if(navigator.userAgent.match(/(Android (2.0|2.1))|(Nokia)|(OSRE\/)|(Opera (Mini|Mobi))|(w(eb)?OSBrowser)|(UCWEB)|(Windows Phone)|(XBLWP)|(ZuneWP)/))return!1;if(navigator.userAgent.match(/MSIE 10.0/))return!0;var e t=document n=t.head||t.getElementsByTagName("head")[0] r=t.createElement("style") s=t.implementation||{hasFeature:function(){return!1}};r.type="text/css" n.insertBefore(r n.firstChild) e=r.sheet||r.styleSheet;var i=s.hasFeature("CSS2" "")?function(t){if(!e||!t)return!1;var n=!1;try{e.insertRule(t 0) n=!/unknown/i.test(e.cssRules[0].cssText) e.deleteRule(e.cssRules.length-1)}catch(r){}return n}:function(t){return e&&t?(e.cssText=t 0!==e.cssText.length&&!/unknown/i.test(e.cssText)&&0===e.cssText.replace(/\r+|\n+/g "").indexOf(t.split(" ")[0])):!1};return i('@font-face{ font-family:"font";src:"font.ttf"; }')}();e&&(document.getElementsByTagName("html")[0].className+=" ff") function(){var e=document.documentElement.style;("flexBasis"in e||"WebkitFlexBasis"in e||"msFlexBasis"in e)&&(document.documentElement.className+=" flex")}();var t n r s i a={} o=function(){var e=document.documentElement.clientWidth n=window.innerWidth r=n>1.5*e;t=r?e:n} u=function(e){var t=document.createElement("link");t.setAttribute("rel" "stylesheet") t.setAttribute("type" "text/css") t.setAttribute("href" n+e+r+".css") t.setAttribute("media" i[e]) s.parentNode.insertBefore(t s) delete i[e]} c=function(e n r){n&&!r&&t>=n&&u(e) r&&!n&&r>=t&&u(e) n&&r&&t>=n&&r>=t&&u(e)} l=function(e){if(a[e])return a[e];var t=e.match(/\(min\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/) n=e.match(/\(max\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/) r=t&&parseFloat(t[1])||null s=n&&parseFloat(n[1])||null;return a[e]=[r s] a[e]} f=function(){var e=0;for(var t in i)e++;return e} m=function(){f()||window.removeEventListener("resize" d !1);for(var e in i){var t=i[e] n=l(t);c(e n[0] n[1])}} d=function(){o() m()} h=function(e t){i=e n=t.path+("/"!==t.path.substr(-1)?"/":"") r=t.postfix s=t.insertBefore o() m() window.addEventListener("resize" d !1)};return{stylesheetLoaderInit:h}}(); var stylesheets = {"compact":"(max-width: 599px)" "tablet":"(min-width: 600px)" "wide":"(min-width: 1008px)"}; bootstrapUI.stylesheetLoaderInit(stylesheets { path: 'http://static.bbci.co.uk/news/1.219.02158/stylesheets/services/news' postfix: '' insertBefore: insertPoint }); var loadRequire = function(){ var js_paths = {"jquery-1.9":"vendor\/jquery-1\/jquery" "jquery-1":"http:\/\/static.bbci.co.uk\/frameworks\/jquery\/0.4.1\/sharedmodules\/jquery-1.7.2" "demi-1":"http:\/\/static.bbci.co.uk\/frameworks\/demi\/0.10.1\/sharedmodules\/demi-1" "swfobject-2":"http:\/\/static.bbci.co.uk\/frameworks\/swfobject\/0.1.10\/sharedmodules\/swfobject-2" "jquery":"vendor\/jquery-2\/jquery.min" "domReady":"vendor\/require\/domReady" "translation":"module\/translations\/en-GB" "bump-3":"\/\/emp.bbci.co.uk\/emp\/bump-3\/bump-3"}; js_paths.navigation = 'module/nav/navManager'; requirejs.config({ baseUrl: 'http://static.bbci.co.uk/news/1.219.02158/js' map: { 'vendor/locator': { 'module/bootstrap': 'vendor/locator/bootstrap' 'locator/stats': 'vendor/locator/stats' 'locator/locatorView': 'vendor/locator/locatorView' } } paths: js_paths waitSeconds: 30 }); define('config' function () { return config; }); require(["compiled\/all"] function() {
 require(['domReady'] function (domReady) { domReady(function () { require(["module\/dotcom\/handlerAdapter" "module\/stats\/statsSubscriberAdapter" "module\/alternativeJsStrategy\/controller" "module\/iconLoaderAdapter" "module\/polyfill\/location.origin" "module\/components\/breakingNewsAdapter" "module\/indexTitleAdaptor" "module\/navigation\/handlerAdaptor" "module\/noTouchDetectionForCss" "module\/components\/stickyPlayer\/mainAdapter" "module\/components\/responsiveImage" "module\/components\/timestampAdaptor" "module\/components\/twiteAdapter" "module\/tableScrollAdapter" "module\/userScrollAdapter" "module\/components\/mediaPlayer\/mainAdapter" "module\/endSlateAdaptor" "module\/smpPreviewAdaptor"] function() { require(["module\/strategiserAdaptor"]); }); }); }); });
 }; loadRequire(); } else { var l = document.createElement('link'); l.href = 'http://static.bbci.co.uk/news/1.219.02158/icons/generated/icons.fallback.css'; l.rel = 'stylesheet'; document.getElementsByTagName('head')[0].appendChild(l); }   /*<![CDATA[*/ bbcdotcom.init({adsToDisplay:['leaderboard' 'sponsor_section' 'mpu' 'infeed_news_story' 'outbrain_ar_5' 'outbrain_ar_7' 'outbrain_ar_8' 'outbrain_ar_9' 'native' 'mpu_bottom' 'adsense' 'inread']}); /*]]>*/  





 /*<![CDATA[*/ (function() { if (window.bbcdotcom && bbcdotcom.config.isActive('ads')) { googletag.cmd.push(function() { googletag.display('bbccom_interstitial'); }); } }()); /*]]>*/  /*<![CDATA[*/ (function() { var wallpaper; if (window.bbcdotcom && bbcdotcom.config.isActive('ads')) { if (bbcdotcom.config.isAsync()) { googletag.cmd.push(function() { googletag.display('bbccom_wallpaper'); }); } else if (typeof googletag !== "undefined" && typeof googletag.display === "function") { googletag.display("wallpaper"); } wallpaper = bbcdotcom.adverts.adRegister.getAd('wallpaper'); } }()); /*]]>*/  /*<![CDATA[*/ (function() { if (window.bbcdotcom && bbcdotcom.config.isActive('ads')) { document.write(unescape('%3Cscript id="gnlAdsEnabled" class="bbccom_display_none"%3E%3C/script%3E')); } if (window.bbcdotcom && bbcdotcom.config.isActive('analytics')) { document.write(unescape('%3Cscript id="gnlAnalyticsEnabled" class="bbccom_display_none"%3E%3C/script%3E')); } }()); /*]]>*/  /*<![CDATA[*/ (function() { window.bbcdotcom.bodyFirst = true; }()); /*]]>*/      <![CDATA[ <section> <div id="bbccookies" class="bbccookies-banner orb-banner-wrapper bbccookies-d"> <div id="bbccookies-prompt" class="orb-banner b-g-p b-r b-f"> <h2 class="orb-banner-title"> Cookies on the BBC website </h2> <p class="orb-banner-content" dir="ltr"> The BBC has updated its cookie policy. We use cookies to ensure that we give you the best experience on our website. This includes cookies from third party social media websites if you visit a page which contains embedded content from social media. Such third party cookies may track your use of the BBC website.<span class="bbccookies-international-message"> We and our partners also use cookies to ensure we show you advertising that is relevant to you.</span> If you continue without changing your settings we'll assume that you are happy to receive all cookies on the BBC website. However you can change your cookie settings at any time. </p> <ul class="orb-banner-options"> <li id="bbccookies-continue"> <button type="button" id="bbccookies-continue-button">Continue</button> </li> <li id="bbccookies-settings"> <a href="/privacy/cookies/managing/cookie-settings.html">Change settings</a> </li> <li id="bbccookies-more"><a href="/privacy/cookies/bbc">Find out more</a></li></ul> </div> </div> </section> ]]> /*<![CDATA[*/ (function(){if(bbccookies._showPrompt()){var g=document b=g.getElementById("blq-pre-mast") e=g.getElementById("blq-bbccookies-tmpl") a f;if(b&&g.createElement){a=g.createElement("div");f=e.innerHTML;f=f.replace("<"+"![CDATA[" "").replace("]]"+">" "");a.innerHTML=f;b.appendChild(a);blqCookieContinueButton=g.getElementById("bbccookies-continue-button");blqCookieContinueButton.onclick=function(){a.parentNode.removeChild(a);return false};bbccookies._setPolicy(bbccookies.readPolicy())}var c=g.getElementById("bbccookies");if(c&&!window.orb.fig("uk")){c.className=c.className.replace(/\bbbccookies-d\b/ "");c.className=c.className+(" bbccookies-w")}}})(); /*]]>*/   /*<![CDATA[*/ if (typeof bbccookies !== 'undefined' && bbccookies.isAllowed('s1')) { (function () { require(['istats-1'] function (istats) { istatsTrackingUrl = istats.getDefaultURL(); if (istats.isEnabled() && bbcFlagpoles_istats === 'ON') { sitestat(istatsTrackingUrl); } else { window.ns_pixelUrl = istatsTrackingUrl; /* used by Flash library to track */ } function sitestat(n) { var j = document f = j.location b = ""; if (j.cookie.indexOf("st_ux=") != -1) { var k = j.cookie.split(";"); var e = "st_ux" h = document.domain a = "/"; if (typeof ns_ != "undefined" && typeof ns_.ux != "undefined") { e = ns_.ux.cName || e; h = ns_.ux.cDomain || h; a = ns_.ux.cPath || a } for (var g = 0 f = k.length; g < f; g++) { var m = k[g].indexOf("st_ux="); if (m != -1) { b = "&" + decodeURI(k[g].substring(m + 6)) } } bbccookies.set(e + "=; expires=" + new Date(new Date().getTime() - 60).toGMTString() + "; path=" + a + "; domain=" + h); } window.ns_pixelUrl = n; } }); })(); } else { window.istats = {enabled: false}; } /*]]>*/ 
             Accessibility links  Skip to content Accessibility Help       BBC iD    require(['idcta/statusbar'] function(statusbar) { new statusbar.Statusbar({"id":"idcta-statusbar" "publiclyCacheable":true}); }); 

Notifications




   BBC navigation   Home   Home   News   News   Sport   Weather   Shop   Earth   Travel   Capital   iPlayer   Culture   Autos   Future   TV   Radio   CBBC   CBeebies   Food   iWonder   Bitesize   Travel   Music   Earth   Arts   Make It Digital   Taster   Nature   Local   Tomorrow's World  Menu     Search


Search the BBC

Search the BBC



   <![CDATA[ <div id="orb-panel-<%= panelname %>" class="orb-panel" aria-labelledby="orb-nav-<%= panelname %>"> <div class="orb-panel-content b-g-p b-r"> <%= panelcontent %> </div> </div> ]]>     

 






News
 BBC News Navigation

Sections







Home




Video




World




UK




Business




Tech

selected 


Science




Stories




Entertainment & Arts




Health




World News TV




In Pictures




Paradise Papers




Reality Check




Special Reports




Explainers




The Reporters




Have Your Say








 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('leaderboard' [1 2 3 4]);
 }
 })();
 /*]]>*/
 






Technology





 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('sponsor_section' [1 2 3 4]);
 }
 })();
 /*]]>*/
 



   

Technology





 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('sponsor_section' [1 2 3 4]);
 }
 })();
 /*]]>*/
 


   

An hour to catch the coding bug

By Mark Ward
Technology correspondent BBC News






 3 March 2014

From the section Technology












Share this with Facebook









Share this with Twitter









Share this with Messenger









Share this with Messenger









Share this with Email




Share


Share this with
These are external links and will open in a new window




Email
Share this with Email





Facebook
Share this with Facebook





Messenger
Share this with Messenger





Messenger
Share this with Messenger





Twitter
Share this with Twitter





Pinterest
Share this with Pinterest





WhatsApp
Share this with WhatsApp





LinkedIn
Share this with LinkedIn



Copy this link

http://www.bbc.com/news/technology-26415021

Read more about sharing.
These are external links and will open in a new window

Close share panel








 







Image caption

 We did our Hour of Code on a lazy Sunday morning
 

Okay 60 minutes and counting. Here we go.I've got an hour to convince my kids that programming is for them.Well sort of.I'm putting my twin 10-year-old boys Toby and Callum through the Hour of Code - a campaign that seeks to ignite an interest in programming - the part we're doing using specially created web-based exercises. The campaign begun in the US has landed in the UK where it also coincides with government calls for as many children as possible to get coding.


 /**/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('mpu' [1 2 3]);
 }
 })();
 /**/
 

Programming is being pushed because in an ever more technological world it can only be a good thing to give people a peep into what goes on behind the touch screen cash point and website. The Hour of Code is supposed to be the start of that journey and I like many other parents feel it's one my children should be embarking on. I do feel like a clock somewhere is ticking and unless they get started with this essential skill they'll be left behind. "In the future kids are going to be doing programming " said Callum when I asked him why it was worth learning how to code. "We need to learn so we can do stuff with the computer otherwise it will be a blank page and never work."Zombie dance


Image copyright
Code.org


Image caption

 The coding exercises involve familiar characters such as the Angry Birds
 

It's the getting started for both parents and their offspring that the Hour is intended to help with. I'm probably like most parents in that I have no significant qualification in computer science. All I can offer my boys is a lifetime of tinkering backed up over the past 18 months with online courses in Python HTML CSS Javascript and the like. There's good precedents for the value of something like the Hour of Code. I've quizzed every chief technology officer (CTO) developer or IT worker I've met in the past couple of weeks about what got them started and every one knew exactly the moment they got it. Their eyes lit up as they talked about typing in code listings from magazines working through every Dos command or designing their own blocky 8-bit game characters.And finally at the back of my mind are all those statistics about the shortages of skilled IT staff and my hope that if this works then their future career options will be much wider than they would be without this skill.So no pressure then.Yesterday morning we gave it a go. I was keen for it to be fun rather than feel like school as there's nothing more likely to turn them off than for it to be sold as good for them. I think we struck the right note of informality - Cal did it in his onesie. It went OK no better than that. Pretty good. We worked through all the exercises getting angry birds to mash pigs and zombies to chomp sunflowers. The coding is done by dragging blocks representing different commands into a work area and building the blocks into a tower of coherent instructions.The block-building system is based on the Scratch programming language build by MIT's Mitch Resnick. The exercises start easy - just getting an angry bird to hop on to a pig. By the end we were using "If… else" statements and loops to help a zombie navigate a tricky maze to reach the sunflower.This went down well with Callum. "Cool! It's scanning for a path " he said as the zombie worked its way towards the hapless flower.Mistakes were made but we learned from them we debated over which way to make the birds and zombies turn and the time went really fast. Toby was surprised to find that this counted as programming."I thought coding was just a lot of people tapping in letter and numbers until they got it right " he said. Next stepsAnd yet I felt it was a bit too easy. I wanted to make the coding connection to real life more tangible. So as we had about 15 minutes of our Hour of Code left we went further.This time we used the MIT App Inventor to build a basic program that would run on the tablets they own. The app inventor uses the same "drag the block" method to build a program and following the instructions we had soon created an app that turned anything typed in text into speech. 


Image copyright
MIT


Image caption

 The App Inventor uses the same block dragging system as the Hour of Code exercises
 

We got it working on Cal's tablet and soon they were getting that gadget to call out lots of phrases. Almost inevitably as they are 10 years old a lot of these phrases involved the words "willy" and "bum". But they had a lot of fun with it and it brought home to them how straight-forward coding can be. In just over an hour they went from being pretty much novices to creating an Android app - a basic one that trades on the expertise of the people that built the coding tools but it was an accomplishment nonetheless.Did they catch the coding bug as a result? Maybe later in the day they were programming each other after one of their regular wrestling matches left Toby lying exhausted on the floor. Suddenly Cal called out commands such as "roll left" and Toby started obeying even to the point of crashing into the sofa when too many roll commands were given. Then Toby had his turn and did the same they even worked out that they had to compensate for the changes in left and right as they rolled. So I think that hour started something. Both with them and with me. Building that Android app made me realise that it is straight-forward. That my lack of formal qualifications do not matter as much as I thought. And maybe that's the point of the hour. Making people realise that it is not scary and difficult. You just have to find an hour and give it a try. You can even do it in your onesie.






 Share this story About sharing




Email




Facebook




Messenger




Messenger




Twitter




Pinterest




WhatsApp




LinkedIn





  More on this story        
 Video
 Computer coding taught in Estonian primary schools    8 January 2014            Year of Code - PR fiasco or vital mission?    12 February 2014            Are teachers ready for the coding revolution?    23 January 2014         

  Related Internet links         UK Hour of Code           MIT App Inventor           MIT Scratch        
The BBC is not responsible for the content of external Internet sites


 




 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('outbrain_ar_5' [1 2 3 4]);
 }
 })();
 /*]]>*/
 





 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('outbrain_ar_7' [1 2 3 4]);
 }
 })();
 /*]]>*/
 





 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('outbrain_ar_8' [1 2 3 4]);
 }
 })();
 /*]]>*/
 





Top Stories

Missing submarine 'reported breakdown'
The Argentine navy boat vanished off the coast last Wednesday and no trace has been found.
20 November 2017


Blow for Merkel as German talks collapse
20 November 2017


Mugabe ignores party's deadline to quit
20 November 2017





 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('mpu' [4]);
 }
 })();
 /*]]>*/
 




 
 Features
 









The terrible charisma of Charles Manson
 










 Video




A boom industry that lifted this woman out of homelessness
 










The best meal you can buy for 13 cents
 





 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('infeed_news_story' [1 2 3 4 5]);
 }
 })();
 /*]]>*/
 










 Video




'Don’t fall apart': Managing your mind at work
 










Why China matters to Zimbabwe's leaders
 










 Video




Hipster trends on Egypt's streets
 










In pictures: 70 years of royal marriage
 










 Video




Here are the people battling online for Russia’s future
 










How refrigeration revolutionised global trade
 







 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('native' [1 2 3 4]);
 }
 })();
 /*]]>*/
 







 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('mpu_bottom' [1 2 3 4]);
 }
 })();
 /*]]>*/
 





 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('outbrain_ar_9' [1 2 3 4]);
 }
 })();
 /*]]>*/
 





 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('adsense' [1 2 3 4]);
 }
 })();
 /*]]>*/
 





 /*<![CDATA[*/
 (function() {
 if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
 bbcdotcom.adverts.slotAsync('inread' [1 2 3 4]);
 }
 })();
 /*]]>*/
 



   

BBC News Navigation

Sections



Home




Video




World




World Home

Africa 

Asia 

Australia 

Europe 

Latin America 

Middle East 

US & Canada 






UK




UK Home

England 

N. Ireland 

Scotland 

Wales 

Politics 






Business




Business Home

Market Data 

Markets 

Global Trade 

Companies 

Entrepreneurship 

Technology of Business 

Business of Sport 

Global Education 

Economy 






Tech

selected 


Science




Stories




Entertainment & Arts




Health




World News TV




In Pictures




Paradise Papers




Reality Check




Special Reports




Explainers




The Reporters




Have Your Say








BBC News Services


On your mobile


On your connected tv


Get news alerts


Contact BBC News





       Explore the BBC    Home   Home   News   News   Sport   Weather   Shop   Earth   Travel   Capital   iPlayer   Culture   Autos   Future   TV   Radio   CBBC   CBeebies   Food   iWonder   Bitesize   Travel   Music   Earth   Arts   Make It Digital   Taster   Nature   Local   Tomorrow's World            Terms of Use   About the BBC   Privacy Policy   Cookies   Accessibility Help   Parental Guidance   Contact the BBC   Get Personalised Newsletters   Advertise with us   Ad choices    Copyright © 2017 BBC. The BBC is not responsible for the content of external sites. Read about our approach to external linking.       /*<![CDATA[*/ if (window.bbcdotcom && window.bbcdotcom.analytics && bbcdotcom.config && !bbcdotcom.config.isSportApp()) { bbcdotcom.analytics.page(); } /*]]>*/  /*<![CDATA[*/ if (window.bbcdotcom && bbcdotcom.currencyProviders) { bbcdotcom.currencyProviders.write(); } /*]]>*/  /*<![CDATA[*/ if (window.bbcdotcom && bbcdotcom.currencyProviders) { bbcdotcom.currencyProviders.postWrite(); } /*]]>*/  /*<![CDATA[*/ if (window.bbcdotcom && bbcdotcom.data && bbcdotcom.data.stats && bbcdotcom.data.stats == 1 && bbcdotcom.config && bbcdotcom.config.isLotameEnabled && bbcdotcom.config.isLotameEnabled() && bbcdotcom.lotame){ bbcdotcom.lotame.write(); } /*]]>*/  /*<![CDATA[*/ /** * ASYNC waits to make any gpt requests until the bottom of the page */ if ( window.bbcdotcom && bbcdotcom.data && bbcdotcom.data.ads && bbcdotcom.data.ads == 1 && bbcdotcom.config && bbcdotcom.config.isAsync && bbcdotcom.config.isAsync() ) { (function () { var gads = document.createElement('script'); gads.async = true; gads.type = 'text/javascript'; var useSSL = 'https:' == document.location.protocol; gads.src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js'; var node = document.getElementsByTagName('script')[0]; node.parentNode.insertBefore(gads node); })(); } /*]]>*/  /*<![CDATA[*/ if (window.bbcdotcom && bbcdotcom.data && bbcdotcom.data.stats && bbcdotcom.data.stats === 1 && bbcdotcom.utils && window.location.pathname === '/' && window.bbccookies && bbccookies.readPolicy('performance') ) { var wwhpEdition = bbcdotcom.utils.getMetaPropertyContent('wwhp-edition'); var _sf_async_config={}; /** CONFIGURATION START **/ _sf_async_config.uid = 50924; _sf_async_config.domain = "bbc.co.uk"; _sf_async_config.title = "Homepage"+(wwhpEdition !== '' ? ' - '+wwhpEdition : ''); _sf_async_config.sections = "Homepage"+(wwhpEdition !== '' ? ' Homepage - '+wwhpEdition : ''); _sf_async_config.region = wwhpEdition; _sf_async_config.path = "/"+(wwhpEdition !== '' ? '?'+wwhpEdition : ''); /** CONFIGURATION END **/ (function(){ function loadChartbeat() { window._sf_endpt=(new Date()).getTime(); var e = document.createElement("script"); e.setAttribute("language" "javascript"); e.setAttribute("type" "text/javascript"); e.setAttribute('src' '//static.chartbeat.com/js/chartbeat.js'); document.body.appendChild(e); } var oldonload = window.onload; window.onload = (typeof window.onload != "function") ? loadChartbeat : function() { oldonload(); loadChartbeat(); }; })(); } /*]]>*/  /*<![CDATA[*/ if (window.bbcdotcom && bbcdotcom.data && bbcdotcom.data.stats == 1 ) { var js_loaded=false percent; if (window.bbcdotcom && bbcdotcom.config && bbcdotcom.config.isSherlockEnabled()) { document.write('<script src="//stag.mdotlabs.com/ads.js">\x3C/script>'); if(document.location.protocol === "http:"){ document.write('<script src="//stag.mdotlabs.com/sherlock.php?clientID=19293874">\x3C/script>'); } else { document.write('<script src="//stag.mdotlabs.com/sherlock.php?clientID=19293874&sec=1">\x3C/script>'); } } } /*]]>*/  /*<![CDATA[*/ (function() { window.bbcdotcom.bodyLast = true; }()); /*]]>*/    (function() {
 'use strict';
 var promoManager = {
 url: '' 
 promoLoaded: false 
 makeUrl: function (theme site win) {
 var loc = win? win.location : window.location 
 proto = loc.protocol 
 host = loc.host 
 url = proto + '//' + ((proto.match(/s:/i) && !host.match(/^www\.(int|test)\./i))? 'ssl.' : 'www.') 
 themes = ['light' 'dark'];
 if ( host.match(/^(?:www|ssl|m)\.(int|test|stage|live)\.bbc\./i) ) {
 url += RegExp.$1 + '.';
 }
 else if ( host.match(/^pal\.sandbox\./i) ) {
 url += 'test.';
 }
 theme = themes[ +(theme === themes[0]) ];
 
 return url + 'bbc.co.uk/navpromo/card/' + site + '/' + theme;
 } 
 init: function(node) {
 var disabledByCookie = (document.cookie.indexOf('ckns_orb_nopromo=1') > -1) 
 that = this;
 
 if (window.promomanagerOverride) {
 for (var p in promomanagerOverride) {
 that[p] = promomanagerOverride[p];
 }
 }
 
 if ( window.orb.fig('uk') && !disabledByCookie ) {
 require(['orb/async/_footerpromo' 'istats-1'] function(promo istats) {
 var virtualSite = istats.getSite() || 'default';
 that.url = (window.promomanagerOverride || that).makeUrl('light' virtualSite);
 if (that.url) { 
 promo.load(that.url node {
 onSuccess: function(e) {
 if(e.status === 'success') {
 node.parentNode.className = node.parentNode.className + ' orb-footer-promo-loaded';
 promoManager.promoLoaded = true;
 promoManager.event('promo-loaded').fire(e);
 }
 } 
 onError: function() {
 istats.log('error' 'orb-footer-promo-failed');
 bbccookies.set('ckns_orb_nopromo=1; expires=' + new Date(new Date().getTime() + 1000 * 60 * 10).toGMTString() + ';path=/;');
 }
 }); 
 }
 });
 }
 }
 };
 
 
 define('orb/promomanager' ['orb/lib/_event'] function (event) {
 event.mixin(promoManager);
 return promoManager;
 });
 
 require(['orb/promomanager'] function (promoManager) {
 promoManager.init(document.getElementById('navp-orb-footer-promo'));
 })
})();
 

 require.config({
 paths: {
 "mybbc/templates": '//mybbc.files.bbci.co.uk/notification-ui/3.8.4/templates' 
 "mybbc/notifications": '//mybbc.files.bbci.co.uk/notification-ui/3.8.4/js'
 }
 });
 require(['mybbc/notifications/NotificationsMain' 'idcta/idcta-1'] function (NotificationsMain idcta) {
 var loadNotifications = function (fig) {
 if (fig.geo.isUK()) {
 NotificationsMain.run(idcta '//mybbc.files.bbci.co.uk/notification-ui/3.8.4/');
 }
 };
 var orbFig = window.orb.fig;
 if (typeof orbFig.load === 'function') {
 // Use new async API from Orbit
 orbFig.load(loadNotifications loadNotifications);
 } else {
 // Use old sync-only API from PAL orbfig project
 loadNotifications(orbFig);
 }
 });
 
 if (typeof require !== 'undefined') { require(['istats-1'] function(istats){ istats.track('external' { region: document.getElementsByTagName('body')[0] }); istats.track('download' { region: document.getElementsByTagName('body')[0] }); }); }  
 if (window.SEARCHBOX.suppress === false && window.SEARCHBOX.locale && /^en-?.*?/.test(window.SEARCHBOX.locale)) {
 require.config({
 paths: {
 "search/searchbox": window.SEARCHBOX.searchboxAppStaticPrefix 
 "disco-layer": "//nav.files.bbci.co.uk/discovery-layer/0.0.1-54.1e3c062/app"
 }
 });
 require(['search/searchbox/searchboxDrawer'] function (SearchboxDrawer) {
 SearchboxDrawer.run(window.SEARCHBOX);
 });
 require(['disco-layer'] function (discoLayer) {
 discoLayer.run("//nav.files.bbci.co.uk/discovery-layer/content/" "//nav.files.bbci.co.uk/discovery-layer/0.0.1-54.1e3c062/main.css");
 });
 }
 require(["megavolt-client" "istats-1" "orb/cookies"] function(t e i){function o(){return"true"===l&&a&&t&&"function"==typeof t.getMVTIStatsLabels}function n(){!c&&o()?setTimeout(function(){e.invoke()} "500"):e.invoke()}var s=navigator.userAgent.toLowerCase() a=!(s.indexOf("msie")>-1)||parseInt(s.split("msie")[1] 10)>10 c=!1 l="true";if(i.isAllowed("s1"))try{if(o()&&t.getMVTIStatsLabels(function(t){e.addLabels(t) c=!0}) !require.s.contexts._.config.paths.idcta)return void n();require(["idcta/idcta-1"] function(t){t&&"function"==typeof t.getIStatsLabels&&e.addLabels(t.getIStatsLabels()) n()} function(t){throw t})}catch(t){console&&"function"==typeof console.log&&console.log("an exception occurred while adding idcta labels to istats invoking istats without them" t) n()}});    window.old_onload = window.onload; window.onload = function() { if(window.old_onload) { window.old_onload(); } window.loaded = true; };  

 /** CONFIGURATION START **/
 var _sf_async_config = {};
 
 _sf_async_config.uid = "50924";
 _sf_async_config.domain = "www.bbc.co.uk";
 _sf_async_config.sections = "News News - technology News - STY News - technology - STY";
 <!-- if page is an index add the edition to the path -->
 _sf_async_config.path = "bbc.co.uk/news/technology-26415021";
 
 (function() {
 var noCookies = true;
 var cookiePrefix = '_chartbeat';
 if ("object" === typeof bbccookies && typeof bbccookies.readPolicy == 'function') {
 noCookies = !bbccookies.readPolicy().performance;
 }
 if (noCookies && document.cookie.indexOf(cookiePrefix) !== -1) {
 //Find and remove cookies whose names begin with '_chartbeat'
 var cookieSplit = document.cookie.split(';');
 var cookieLength = cookieSplit.length;
 while (cookieLength--) {
 var cookie = cookieSplit[cookieLength].replace(/^\s+|\s+$/g '');
 var cookieName = cookie.split('=')[0];
 if (cookieName.indexOf(cookiePrefix) === 0) {
 document.cookie = cookieName + '=; expires=Thu 01 Jan 1970 00:00:00 GMT; path=/;';
 }
 }
 }
 _sf_async_config.noCookies = noCookies;
 }());
 /** CONFIGURATION END **/
 (function(){
 function loadChartbeat() {
 window._sf_endpt=(new Date()).getTime();
 var e = document.createElement("script");
 e.setAttribute("language" "javascript");
 e.setAttribute("type" "text/javascript");
 e.setAttribute('src' '//static.chartbeat.com/js/chartbeat.js');
 document.body.appendChild(e);
 }
 var oldonload = window.onload;
 window.onload = (typeof window.onload != "function") ?
 loadChartbeat : function() { oldonload(); loadChartbeat(); };
 }());




(function(){
 window.bbcnewsperformance = {};
 var perf = window.performance;
 function firstScrollTimer() {
 document.removeEventListener('scroll' firstScrollTimer);
 perf.mark('firstScroll');
 perf.measure('scrolltime' 'firstScroll');
 var timing = perf.getEntriesByName('scrolltime');
 bbcnewsperformance.firstScrollTime = timing[0].startTime;
 }
 if (perf && perf.mark && perf.measure) {
 document.addEventListener('scroll' firstScrollTimer);
 }
 var random = Math.random();
 var rate = 0.25;
 var throttle = 0.02;
 var forceMpulse = window.location.href.match(/force_mpulse/);
 if (rate && throttle && (random < (rate * throttle)) || forceMpulse) {
 if(window.BOOMR && window.BOOMR.version){return;}
 var dom doc where iframe = document.createElement('iframe') win = window;
 function boomerangSaveLoadTime(e) {
 win.BOOMR_onload=(e && e.timeStamp) || new Date().getTime();
 }
 if (win.addEventListener) {
 win.addEventListener("load" boomerangSaveLoadTime false);
 } else if (win.attachEvent) {
 win.attachEvent("onload" boomerangSaveLoadTime);
 }
 iframe.src = "javascript:false";
 iframe.title = ""; iframe.role="presentation";
 (iframe.frameElement || iframe).style.cssText = "width:0;height:0;border:0;display:none;";
 where = document.getElementsByTagName('script')[0];
 where.parentNode.insertBefore(iframe where);
 try {
 doc = iframe.contentWindow.document;
 } catch(e) {
 dom = document.domain;
 iframe.src="javascript:var d=document.open();d.domain='"+dom+"';void(0);";
 doc = iframe.contentWindow.document;
 }
 doc.open()._l = function() {
 var js = this.createElement("script");
 if(dom) this.domain = dom;
 js.id = "boomr-if-as";
 js.src = '//c.go-mpulse.net/boomerang/' +
 '86ZLR-T78UG-6FNFN-UVDPZ-VZFWR';
 BOOMR_lstart=new Date().getTime();
 this.body.appendChild(js);
 };
 doc.write('<body onload="document._l();">');
 doc.close();
 }
})();


 

C:\Anaconda3\lib\site-packages\bs4\__init__.py:181: UserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system ("lxml"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently.

The code that caused this warning is on line 193 of the file C:\Anaconda3\lib\runpy.py. To get rid of this warning, change code that looks like this:

 BeautifulSoup(YOUR_MARKUP})

to this:

 BeautifulSoup(YOUR_MARKUP, "lxml")

  markup_type=markup_type))

We got rid of the HTML tags, but we still have lots of "non text" - mainly javascript code. We can still use beautifulsoup to navigate the HTML DOM structure and filter out the script blocks - this will be effective in this case.

But we can go faster and use the justext library. This is developed specifically to remove boilerplate from html strings. It uses a very nice machine learning algorithm which is documented in its homepage.

Make sure you install the library first:

% pip install justext

Now let's try it:

In [8]:
import justext

def clean_html2(html):
    paragraphs = justext.justext(html, justext.get_stoplist('English'))
    return "\n".join([p.text for p in paragraphs if not p.is_boilerplate])

Let us try this second version of clean_html:

In [9]:
print(clean_html2(html))
I'm putting my twin 10-year-old boys Toby and Callum through the Hour of Code - a campaign that seeks to ignite an interest in programming - the part we're doing using specially created web-based exercises.
The campaign begun in the US has landed in the UK where it also coincides with government calls for as many children as possible to get coding.
Programming is being pushed because in an ever more technological world it can only be a good thing to give people a peep into what goes on behind the touch screen cash point and website.
The Hour of Code is supposed to be the start of that journey and I like many other parents feel it's one my children should be embarking on. I do feel like a clock somewhere is ticking and unless they get started with this essential skill they'll be left behind.
"In the future kids are going to be doing programming " said Callum when I asked him why it was worth learning how to code. "We need to learn so we can do stuff with the computer otherwise it will be a blank page and never work."
Zombie dance
It's the getting started for both parents and their offspring that the Hour is intended to help with. I'm probably like most parents in that I have no significant qualification in computer science. All I can offer my boys is a lifetime of tinkering backed up over the past 18 months with online courses in Python HTML CSS Javascript and the like.
There's good precedents for the value of something like the Hour of Code. I've quizzed every chief technology officer (CTO) developer or IT worker I've met in the past couple of weeks about what got them started and every one knew exactly the moment they got it. Their eyes lit up as they talked about typing in code listings from magazines working through every Dos command or designing their own blocky 8-bit game characters.
And finally at the back of my mind are all those statistics about the shortages of skilled IT staff and my hope that if this works then their future career options will be much wider than they would be without this skill.
So no pressure then.
Yesterday morning we gave it a go. I was keen for it to be fun rather than feel like school as there's nothing more likely to turn them off than for it to be sold as good for them. I think we struck the right note of informality - Cal did it in his onesie.
It went OK no better than that. Pretty good. We worked through all the exercises getting angry birds to mash pigs and zombies to chomp sunflowers. The coding is done by dragging blocks representing different commands into a work area and building the blocks into a tower of coherent instructions.
The block-building system is based on the Scratch programming language build by MIT's Mitch Resnick.
The exercises start easy - just getting an angry bird to hop on to a pig. By the end we were using "If… else" statements and loops to help a zombie navigate a tricky maze to reach the sunflower.
This went down well with Callum. "Cool! It's scanning for a path " he said as the zombie worked its way towards the hapless flower.
Mistakes were made but we learned from them we debated over which way to make the birds and zombies turn and the time went really fast.
Toby was surprised to find that this counted as programming.
"I thought coding was just a lot of people tapping in letter and numbers until they got it right " he said.
Next steps
And yet I felt it was a bit too easy. I wanted to make the coding connection to real life more tangible. So as we had about 15 minutes of our Hour of Code left we went further.
This time we used the MIT App Inventor to build a basic program that would run on the tablets they own.
The app inventor uses the same "drag the block" method to build a program and following the instructions we had soon created an app that turned anything typed in text into speech.
Image copyrightMITImage caption
The App Inventor uses the same block dragging system as the Hour of Code exercises
We got it working on Cal's tablet and soon they were getting that gadget to call out lots of phrases. Almost inevitably as they are 10 years old a lot of these phrases involved the words "willy" and "bum".
But they had a lot of fun with it and it brought home to them how straight-forward coding can be. In just over an hour they went from being pretty much novices to creating an Android app - a basic one that trades on the expertise of the people that built the coding tools but it was an accomplishment nonetheless.
Did they catch the coding bug as a result?
Maybe later in the day they were programming each other after one of their regular wrestling matches left Toby lying exhausted on the floor. Suddenly Cal called out commands such as "roll left" and Toby started obeying even to the point of crashing into the sofa when too many roll commands were given.
Then Toby had his turn and did the same they even worked out that they had to compensate for the changes in left and right as they rolled.
So I think that hour started something. Both with them and with me. Building that Android app made me realise that it is straight-forward. That my lack of formal qualifications do not matter as much as I thought. And maybe that's the point of the hour. Making people realise that it is not scary and difficult. You just have to find an hour and give it a try. You can even do it in your onesie.

Tokenizing

Now that we have clean text, let us tokenize it into a list of words.

We will use nltk tokenizer to do this. Make sure you have nltk installed, and that you invoke nltk.download() to download the datasets that come with it.

Then let us try the tokenizer.

In [10]:
import nltk

tokens = nltk.word_tokenize(clean_html2(html))

print("We found %s tokens" % (len(tokens)))
We found 1079 tokens

The output of justext is organized in paragraphs. We converted them as one line of text each.

In [11]:
paragraphs = clean_html2(html).split("\n")
p0 = paragraphs[0]
print(nltk.word_tokenize(p0))
['I', "'m", 'putting', 'my', 'twin', '10-year-old', 'boys', 'Toby', 'and', 'Callum', 'through', 'the', 'Hour', 'of', 'Code', '-', 'a', 'campaign', 'that', 'seeks', 'to', 'ignite', 'an', 'interest', 'in', 'programming', '-', 'the', 'part', 'we', "'re", 'doing', 'using', 'specially', 'created', 'web-based', 'exercises', '.']

Note how abbreviations in English are tokenized ("I'm" becomes ["I", "'m"]).