Skip to content

Instantly share code, notes, and snippets.

@KevinGreene
Created October 9, 2013 20:57
Show Gist options
  • Select an option

  • Save KevinGreene/6908239 to your computer and use it in GitHub Desktop.

Select an option

Save KevinGreene/6908239 to your computer and use it in GitHub Desktop.
An example strangeloop private talk
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Tracking Millions of Ganks in Near Real Time</title>
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="copyright" content="&copy; 2006 C4Media" />
<meta name="google-site-verification" content="0qInQx_1WYOeIIbxnh7DnXlw1XOxNgAYakO2k4GhNnY" />
<meta name="msapplication-TileColor" content="#ffffff"/>
<meta name="msapplication-TileImage" content="/styles/i/logo.jpg"/>
<meta property="wb:webmaster" content="3eac1729a8bbe046" />
<link href='http://fonts.googleapis.com/css?family=Gentium+Book+Basic' rel='stylesheet' type='text/css' />
<link rel="stylesheet" type="text/css" media="screen" href="http://cdn4.infoq.com/styles/site.css?20131009"/>
<link rel="stylesheet" type="text/css" media="screen" href="http://cdn2.infoq.com/styles/site_en.css?20130618"/>
<link rel="image_src" href="http://cdn4.infoq.com/styles/i/logo-big.jpg" />
<link rel="shortcut icon" href="http://cdn4.infoq.com/favicon.ico" type="image/x-icon" />
<link rel="apple-touch-icon" href="http://cdn4.infoq.com/apple-touch-icon.png" />
<link rel="stylesheet" href="http://cdn1.infoq.com/scripts/ui/jquery.jscrollpane.css" type="text/css" />
<script type="text/javascript">
var InfoQConstants = {};
InfoQConstants.language = 'en';
InfoQConstants.countryCode = '';
</script>
<script type="text/javascript" src="http://cdn4.infoq.com/scripts/combinedJs.js?20131008"></script>
<script type="text/javascript">
var JSi18n = JSi18n || {}; // define only if not already defined
JSi18n.error='Error';
JSi18n.login_unverifiedAccount='Unverified account';
JSi18n.contentSummary_showPresentations_1='';
JSi18n.contentSummary_showPresentations_2='';
JSi18n.contentSummary_showPresentations_3='';
JSi18n.contentSummary_showInterviews_1='';
JSi18n.contentSummary_showInterviews_2='';
JSi18n.contentSummary_showInterviews_3='';
JSi18n.contentSummary_showMinibooks_1='';
JSi18n.contentSummary_showMinibooks_2='';
JSi18n.login_sendingRequest='Sending request ...';
JSi18n.bookmark_saved='<q>&nbsp;&nbsp;&nbsp;Saved&nbsp;&nbsp;&nbsp;&nbsp;</q>';
JSi18n.bookmark_error='<q style=color:black;>&nbsp;&nbsp;&nbsp;Error&nbsp;&nbsp;&nbsp;&nbsp;</q>';
JSi18n.categoryManagement_showpopup_viewAllLink_viewAllPrefix='View All';
JSi18n.categoryManagement_showpopup_viewAllLink_viewAllSuffix='';
JSi18n.categoryManagement_showpopup_includeExcludeLink_Exclude='Exclude';
JSi18n.categoryManagement_showpopup_includeExcludeLink_Include='Include';
</script>
<script type="text/javascript">
function createOverFunction(i) {
var pixels = i * 129;
return function() {
$('#personas_' + i).addClass('selected');
$('ul.menu > li .top_submenu.c' + i).css('left','-' + pixels + 'px');
}
};
function createOutFunction(i) {
return function() {
$('ul.menu > li .top_submenu.c' + i).css('left','-999em');
$('#personas_' + i).removeClass('selected');
}
}
$(function() {
for (var i = 0; i < 5; i++) {
$('ul.menu > li').has('.top_submenu.c' + i).hoverIntent({
sensitivity: 15,
interval: 150,
timeout:200,
over: createOverFunction(i),
out: createOutFunction(i)
});
}
});
</script>
<script type='text/javascript'>
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
(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);
})();
googletag.cmd.push(function() {
googletag.defineSlot('/5286733/en_geo_banner_bottom', [728, 90], 'id_geo_banner_ad').addService(googletag.pubads());
googletag.defineSlot('/5286733/en_300x250_banner_top', [300, 250], 'id_300x250_banner_top').addService(googletag.pubads());
googletag.defineSlot('/5286733/en_300x250_banner_bottom', [300, 250], 'id_300x250_banner_bottom').addService(googletag.pubads());
googletag.defineSlot('/5286733/en_textlink1', [250, 60], 'id_ad_textlink1').addService(googletag.pubads());
googletag.defineSlot('/5286733/en_textlink2', [250, 60], 'id_ad_textlink2').addService(googletag.pubads());
googletag.defineSlot('/5286733/en_textlink3', [250, 60], 'id_ad_textlink3').addService(googletag.pubads());
/* googletag.defineSlot('/5286733/en_textlink4', [120, 100], 'id_ad_textlink4').addService(googletag.pubads());
googletag.defineSlot('/5286733/en_textlink5', [120, 100], 'id_ad_textlink5').addService(googletag.pubads());*/
googletag.defineSlot('/5286733/en_300x250_category', [300, 250], 'id_300x250_category').addService(googletag.pubads());
googletag.defineSlot('/5286733/en_300x250_banner_searchResults', [300, 250], 'id_300x250_banner_searchResults').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.pubads().collapseEmptyDivs();
googletag.enableServices();
});
</script>
<script type="text/javascript">var NREUMQ=NREUMQ||[];NREUMQ.push(["mark","firstbyte",new Date().getTime()])</script>
<script type="text/javascript" src="http://cdn2.infoq.com/scripts/forum.js"></script>
<meta property="og:image" content=""/>
<link rel="image_src" href=""/>
<meta name="keywords" content="riak game scale,Architecture &amp; Design,Strange Loop 2013,Strange Loop 2013 Early Access,Strange Loop,"/>
<meta name="description" content="Riot Games's League of Legends supports millions of concurrent players at any given moment of the day. In this talk, I'll explore how we are leveraging Riak for our next generation stats system. I'll discuss in detail why we chose to use Riak, how we structure our data model and indexes, and our strategies for working with eventually consistent data.
"/>
<meta name="tprox" content="1379571840000" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/swfobject/2.1/swfobject.js"></script>
<script type="text/javascript" src="http://cdn3.infoq.com/scripts/video/player/PlayerPresentation_mobile.js"></script>
<script type="text/javascript">
$(document).ready(function() {
init();
});
</script>
<script type='text/javascript' src='http://cdn1.infoq.com/scripts/video/flashPlayercombinedJsPresentation.js'></script>
<script type="text/javascript">
var slides = new Array();
var TIMES = new Array();
var EXPRESSINSTALL_SWF = "http://d1snlc0orfrhj.cloudfront.net/static/flash/expressinstall.swf";
var jsclassref = 'cHJlc2VudGF0aW9ucy8xMy1zZXAtdHJhY2tpbmdtaWxsaWlvbnMubXA0';
</script>
<script type='text/javascript' src='http://cdn1.infoq.com/scripts/video/PresentationUI.js'></script>
<script type='text/javascript' src='http://cdn4.infoq.com/scripts/ui/jquery.tipsy.js'></script>
<script src="http://cdn2.infoq.com/scripts/jquery/jquery.tinyscrollbar.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="/styles/tipsy.css" type="text/css" />
<meta property="og:image" content="http://cdn1.infoq.com/styles/i/logo-big.jpg"/>
</head>
<body >
<div id="wrapper" style="background-color:#fff">
<!-- ####### SITE START ######### -->
<div id="site">
<div id="topInfo">
<ul class="list1">
<li><a href="/aboutus" title="About Us">About Us</a></li>
<li><a href="/aboutyou" title="About You">About You</a></li>
<li><a href="/contribute" title="Our Contributor Team">Our Contributor Team</a></li>
<li><a href="/purpose" title="Purpose Index">Purpose Index</a></li>
</ul>
<ul class="list2">
<li>Exclusive updates on:</li>
<li><a href="http://twitter.com/infoq" target="_blank"><img src="http://cdn1.infoq.com/styles/i/twitter.jpg" alt="" border="0" /></a></li>
<li><a href="http://www.facebook.com/InfoQ" target="_blank"><img src="http://cdn3.infoq.com/styles/i/facebook.jpg" alt="" border="0" /></a></li>
<li><a href="http://www.linkedin.com/company/InfoQ" target="_blank"><img src="http://cdn3.infoq.com/styles/i/linkedin.gif" alt="" border="0" /></a></li>
<li><a id="headerRssLink" href="#" title=""><img src="http://cdn2.infoq.com/styles/i/rss.jpg" alt="" border="0" /></a></li>
</ul>
<div class="clear"></div>
</div>
<!-- ####### HEADER START ######### -->
<div id="header">
<div class="top_explain">Facilitating the spread of knowledge and innovation in enterprise software development</div>
<!-- ####### search ######### -->
<div class="search_cls">
<form name="search" id="search" action="/search.action" method="get" enctype="multipart/form-data">
<fieldset>
<input type="text" id="keyword" name="queryString" class="searchInput" value="Search" onfocus="if(this.value=='Search'){ this.value = ''; }" onblur="if(this.value==''){ this.value = 'Search'; }" />
<input type="hidden" id="page" name="page" value="1"/>
<input type="hidden" id="searchOrder" size="15" name="searchOrder">
<input type="submit" value="" id="search" class="submitCls" />
</fieldset>
</form>
<!-- ####### login ######### -->
<div id="login">
<a class="logged_in" href="javascript:;" title="Login"><span>Kevin</span></a>
<div class="login_overlay">
<!-- html for login box -->
<div id="popupLogin">
<div class="welcome_title">
Welcome,
Kevin
!
</div>
<ul class="logged_submenu">
<li><a href="/showbookmarks.action" title="My Bookmarks">My Reading List</a></li>
<li><a href="/edituser.action" title="Preferences">Preferences</a></li>
</ul>
<div class="login-type-in">
Personalize Your Main Interests
</div>
<form>
<fieldset>
<ul class="logged_submenu">
<li>
<input type="checkbox" name="development" value="true" checked="checked" id="hpersona6815" onclick="includeExcludeCommunity(this, true);"/>
<label class="label_logged_in" for="development">
Development
</label>
</li>
<li>
<input type="checkbox" name="architecture-design" value="true" checked="checked" id="hpersona6816" onclick="includeExcludeCommunity(this, true);"/>
<label class="label_logged_in" for="architecture-design">
Architecture &amp; Design
</label>
</li>
<li>
<input type="checkbox" name="process-practices" value="true" checked="checked" id="hpersona6817" onclick="includeExcludeCommunity(this, true);"/>
<label class="label_logged_in" for="process-practices">
Process &amp; Practices
</label>
</li>
<li>
<input type="checkbox" name="operations-infrastructure" value="true" checked="checked" id="hpersona6818" onclick="includeExcludeCommunity(this, true);"/>
<label class="label_logged_in" for="operations-infrastructure">
Operations &amp; Infrastructure
</label>
</li>
<li>
<input type="checkbox" name="enterprise-architect" value="true" checked="checked" id="hpersona6819" onclick="includeExcludeCommunity(this, true);"/>
<label class="label_logged_in" for="enterprise-architect">
Enterprise Architecture
</label>
</li>
</ul>
</fieldset>
</form>
<p class="notes">This affects what content you see on the homepage & your RSS feed. Click preferences to access more fine-grained personalization.</p>
<a id="logout" class="logout" href="/logout.action">
Sign out
</a>
</div>
<!-- html for login box -->
</div>
</div>
</div>
<div class="clear"></div>
<!-- ####### logo ######### -->
<div class="logo">
<a class="image" href="/" title="">
<img src="http://cdn1.infoq.com/styles/i/logo_bigger.jpg" alt="" border="0" />
</a>
<div class="clear"></div>
<ul class="langs">
<li><a class="active" href="#" onclick="return false;" title="InfoQ English">En</a> |</li>
<li><a href="/cn/">中文</a> |</li>
<li><a href="/jp/">日本</a> |</li>
<li><a href="/fr/">Fr</a> |</li>
<li><a href="/br/">Br</a></li>
</ul>
<div class="clear"></div>
<p>
858,214 Sep unique visitors
</p>
<div class="clear"></div>
</div>
<!-- ####### menu ######### -->
<ul class="menu" id="mainmenu">
<li id="personas_0">
<a class="main" href="/development/" title="Development"><span>Development</span></a>
<div class="top_submenu c0">
<div class="scroll-pane">
<ul class="top_submenu_links">
<li><a class="featured" href="/java/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Java">Java</a></li>
<li><a class="featured" href="/dotnet/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title=".Net">.Net</a></li>
<li><a class="featured" href="/cloud-computing/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Cloud">Cloud</a></li>
<li><a href="/mobile/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Mobile">Mobile</a></li>
<li><a href="/HTML5Topic/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="HTML5">HTML5</a></li>
<li><a href="/javascript/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="JavaScript">JavaScript</a></li>
<li><a href="/ruby/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Ruby">Ruby</a></li>
<li><a href="/dsl/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="DSLs">DSLs</a></li>
<li><a href="/python/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Python">Python</a></li>
<li><a href="/Topic_PHP/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="PHP">PHP</a></li>
<li><a href="/api/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="API">API</a></li>
<!-- <li><a class="more" href="#" title="">+ More topics</a></li> -->
</ul>
</div>
<div class="menu_article">
<h2>Featured in <span id="developmentHDLabel"></span></h2>
<h3 id="developmentHDTitle"></h3>
<div class="clear"></div>
<p>
<img id="developmentHDImg" src="" alt="" border="0" />
<span id="developmentHDSummary"></span>
</p>
<div class="clear"></div>
<div class="alignCenter">
<a class="view_all_categ" href="/development/">
<span>All in <b id="developmentHDLabel2">Development</b></span>
</a>
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
</li>
<li id="personas_1">
<a class="main" href="/architecture-design/" title="Architecture &amp; Design"><span>Architecture<br/>&amp; Design</span></a>
<div class="top_submenu c1">
<div class="scroll-pane">
<ul class="top_submenu_links">
<li><a href="/Modeling/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Modeling">Modeling</a></li>
<li><a href="/performance-scalability/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Scalability/Performance">Scalability/Performance</a></li>
<li><a href="/domain-driven-design/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="DDD">DDD</a></li>
<li><a href="/Behavior-Driven-Development/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="BDD">BDD</a></li>
<li><a href="/AOP/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="AOP">AOP</a></li>
<li><a href="/DesignPattern/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Patterns">Patterns</a></li>
<li><a href="/Security/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Security">Security</a></li>
<li><a href="/cloud-computing/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Cloud">Cloud</a></li>
<li><a href="/soa/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="SOA">SOA</a></li>
<!-- <li><a class="more" href="#" title="">+ More topics</a></li> -->
</ul>
</div>
<div class="menu_article">
<h2>Featured in <span id="architecture-designHDLabel"></span></h2>
<h3 id="architecture-designHDTitle"></h3>
<div class="clear"></div>
<p>
<img id="architecture-designHDImg" src="" alt="" border="0" />
<span id="architecture-designHDSummary"></span>
</p>
<div class="clear"></div>
<div class="alignCenter">
<a class="view_all_categ" href="/architecture-design/">
<span>All in <b id="architecture-designHDLabel2">Architecture &amp; Design</b></span>
</a>
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
</li>
<li id="personas_2">
<a class="main" href="/process-practices/" title="Process &amp; Practices"><span>Process &amp; Practices</span></a>
<div class="top_submenu c2">
<div class="scroll-pane">
<ul class="top_submenu_links">
<li><a href="/agile/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Agile">Agile</a></li>
<li><a href="/Leadership/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Leadership">Leadership</a></li>
<li><a href="/team-collaboration/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Collaboration">Collaboration</a></li>
<li><a href="/agile_techniques/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Agile Techniques">Agile Techniques</a></li>
<li><a href="/methodologies/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Methodologies">Methodologies</a></li>
<li><a href="/continuous_integration/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Continuous Integration">Continuous Integration</a></li>
<li><a href="/lean/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Lean/Kanban">Lean/Kanban</a></li>
<!-- <li><a class="more" href="#" title="">+ More topics</a></li> -->
</ul>
</div>
<div class="menu_article">
<h2>Featured in <span id="process-practicesHDLabel"></span></h2>
<h3 id="process-practicesHDTitle"></h3>
<div class="clear"></div>
<p>
<img id="process-practicesHDImg" src="" alt="" border="0" />
<span id="process-practicesHDSummary"></span>
</p>
<div class="clear"></div>
<div class="alignCenter">
<a class="view_all_categ" href="/process-practices/">
<span>All in <b id="process-practicesHDLabel2">Process &amp; Practices</b></span>
</a>
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
</li>
<li id="personas_3">
<a class="main" href="/operations-infrastructure/" title="Operations &amp; Infrastructure"><span>Operations &amp; Infrastructure</span></a>
<div class="top_submenu c3">
<div class="scroll-pane">
<ul class="top_submenu_links">
<li><a href="/performance/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Scalability/Performance">Performance</a></li>
<li><a href="/bigdata/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Big Data">Big Data</a></li>
<li><a href="/devops/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="DevOps">DevOps</a></li>
<li><a href="/cloud-computing/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Cloud">Cloud</a></li>
<li><a href="/apm/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Cloud">APM</a></li>
<li><a href="/virtualization/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Virtualization">Virtualization</a></li>
<li><a href="/NoSQL/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="NoSQL">NoSQL</a></li>
<!-- <li><a class="more" href="#" title="">+ More topics</a></li> -->
</ul>
</div>
<div class="menu_article">
<h2>Featured in <span id="operations-infrastructureHDLabel"></span></h2>
<h3 id="operations-infrastructureHDTitle"></h3>
<div class="clear"></div>
<p>
<img id="operations-infrastructureHDImg" src="" alt="" border="0" />
<span id="operations-infrastructureHDSummary"></span>
</p>
<div class="clear"></div>
<div class="alignCenter">
<a class="view_all_categ" href="/operations-infrastructure/">
<span>All in <b id="operations-infrastructureHDLabel2">Operations &amp; Infrastructure</b></span>
</a>
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
</li>
<li id="personas_4" class="last">
<a class="main" href="/enterprise-architect/" title="Enterprise Architecture"><span>Enterprise Architecture</span></a>
<div class="top_submenu c4">
<div class="scroll-pane">
<ul class="top_submenu_links">
<li><a href="/enterprise-architecture/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Enterprise Architecture">Enterprise Architecture</a></li>
<li><a href="/bpm/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="BPM">BPM</a></li>
<li><a href="/business_it_alignment/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Business/IT Alignment">Business/IT Alignment</a></li>
<li><a href="/Architecture-Documentation/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Architecture Documentation">Architecture Documentation</a></li>
<li><a href="/Governance/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="IT Governance">IT Governance</a></li>
<li><a href="/soa/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="SOA">SOA</a></li>
<!-- <li><a class="more" href="#" title="">+ More topics</a></li> -->
</ul>
</div>
<div class="menu_article">
<h2>Featured in <span id="enterprise-architectHDLabel"></span></h2>
<h3 id="enterprise-architectHDTitle"></h3>
<div class="clear"></div>
<p>
<img id="enterprise-architectHDImg" src="" alt="" border="0" />
<span id="enterprise-architectHDSummary"></span>
</p>
<div class="clear"></div>
<div class="alignCenter">
<a class="view_all_categ" href="/enterprise-architect/">
<span>All in <b id="enterprise-architectHDLabel2">Enterprise Architecture</b></span>
</a>
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
</li>
</ul>
<!-- ####### qcon ######### -->
<div class="qcon dual">
<p>
<a href="http://qconsf.com/?utm_source=infoq&utm_medium=header&utm_campaign=infoqheader" target="_blank" title="San Francisco 2013"><strong>San Francisco 2013</strong><br />Nov 11 - Nov 15</a>
</p>
<p>
<a href="http://qconlondon.com/?utm_source=infoq&utm_medium=header&utm_campaign=infoqheader" target="_blank" title="London 2014"><strong>London 2014</strong><br />March 3 - Mar 7</a>
</p>
</div>
<div class="clear"></div>
<!-- ####### submenu ######### -->
<ul class="submenu">
<li><a href="/mobile/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Mobile">Mobile</a></li>
<li><a href="/HTML5Topic/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="HTML5">HTML5</a></li>
<li><a href="/javascript/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="JavaScript">JavaScript</a></li>
<li><a href="/apm/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="APM">APM</a></li>
<li><a href="/cloud-computing/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Cloud">Cloud</a></li><li><a href="/php/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="PHP">PHP</a></li><li><a href="/agile/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Agile">Agile</a></li><li><a class="last" href="/bigdata/?utm_source=infoq&utm_medium=header_graybar&utm_campaign=topic_clk" title="Big Data">Big Data</a></li>
</ul>
<div class="all_topics"><a href="/topics">All topics</a></div>
<div class="all_topics"><a style="color:#106CB6; text-shadow:1px 1px 1px #A7A7A7; margin-right:20px; font-size:14px;" href="http://www.infoq.com/coderally?utm_source=infoq&utm_medium=infoq_greybar&utm_campaign=greybar_clk" target="_blank">IBM Code Rally</a></div>
<div class="clear"></div>
<div class="breadcrumbs">
<span class="first">You are here:</span>
<a class="normal" href="/?utm_source=infoq&amp;utm_medium=breadcrumbs_feature&amp;utm_campaign=breadcrumbs" title="InfoQ Homepage">InfoQ Homepage</a>
<a class="normal" href="/presentations?utm_source=infoq&amp;utm_medium=breadcrumbs_feature&amp;utm_campaign=breadcrumbs" title="Presentations">Presentations</a>
<span class="last">Tracking Millions of Ganks in Near Real Time</span>
</div>
<div class="clear"></div>
</div>
<!-- ####### HEADER END ######### -->
<!-- ####### CONTENT START ######### -->
<div id="content">
<!-- ####### left side START ######### -->
<div class="article_page_left presentation_full">
<h1 class="general">
<div>Tracking Millions of Ganks in Near Real Time</div>
<span class="recorded">Recorded at:<br>
<a title="" href="https://thestrangeloop.com/">
<img id="promoImage" border="0" alt="" src="/resource/presentations/riak-game-scale/en/promoimage/strangeloop2013.png">
</a>
</span>
</h1>
<span class="author_general">
by
<a
href="/author/Garrett-Eardley"
class="editorlink f_taxonomyEditor">
Garrett Eardley
</a>
on
Sep 19, 2013
<em>|</em>
</span>
<ul class="share_this">
<li class="space">Share</li>
<li>
<a href="http://www.addthis.com/bookmark.php?v=250&amp;username=infoq" class="standard addthis_button" style="background:none;text-decoration:none;color:#1C497B; padding:0 2px; float:left; font-weight: bold;font-size: 85%;">
<img src="http://s7.addthis.com/static/btn/sm-plus.gif" width="16" height="15" border="0" alt="Share" />
</a>
</li>
<li>
<span class="addthis_separator">|&nbsp;</span>
</li>
<li><a class="standard addthis_button_facebook"></a></li>
<li><a class="standard addthis_button_digg"></a></li>
<li><a class="standard addthis_button_dzone"></a></li>
<li><a class="standard addthis_button_twitter"></a></li>
<li><a class="standard addthis_button_reddit"></a></li>
<li><a class="standard addthis_button_delicious"></a></li>
<li><a class="standard addthis_button_email"></a></li>
<li><a id="bookmarkBtn" href="#" onclick="Bookmarks.bookmarkContent('presentations', 'riak-game-scale');return false;" class="read_later" title=""><q>Read later</q></a></li>
<li><a class="reading_list" style="margin-right:104px;" href="/showbookmarks.action"><q>My Reading List</q></a></li>
</ul>
<script type="text/javascript">
var addthis_config = {
data_ga_property: 'UA-6608133-2',
data_ga_social: true
};
</script>
<!-- AddThis Button END -->
<div class="clear"></div>
<div id="note">
<p><b>Thank you for attending Strange Loop 2013</b><br>
All videos will become freely available along with slide synchronization (two per week) for non-attendees over the next six months. </p>
</div>
<!-- Prezentation horizontal version start -->
<div id="pr_horizontal" class="presentation_v1">
<div id="top">
<div>
<div class="video" id="playerContainer">
<script type="text/javascript">
// reset size variables first before init
presentationVideoPlayerWidth='640';
presentationVideoPlayerHeight='500';
presentationPlayerLogo='logo_scrubber_big.png';
FlashDetect.check(9, "playerContainer", "The presentation player requires <a href='http://www.macromedia.com/go/getflashplayer' target='_blank' style='text-decoration:underline;'>Flash version 9 or higher</a>.", "Please install <a target='_blank' href='http://www.adobe.com/go/getflashplayer' style='text-decoration:underline;'>Flash player</a>.");
</script>
<div class="restricted">
<div id="player">
</div>
</div>
</div>
<p id="summary">
<strong>Summary</strong><br>
Riot Games's League of Legends supports millions of concurrent players at any given moment of the day. In this talk, I'll explore how we are leveraging Riak for our next generation stats system. I'll discuss in detail why we chose to use Riak, how we structure our data model and indexes, and our strategies for working with eventually consistent data.
</p>
<h3 id="biolabel">Bio</h3>
<p id="biotext">Garrett &quot;Grizzly&quot; Eardley is a software engineer at Riot Games. He is intimately acquainted with the difficulties of scaling the distributed systems that power League of Legends' 32+ million monthly active players. Garrett holds an M.S. in Computer Science from Washington University in St. Louis, where he currently resides with his wife, children, and beard. /p>
<p id="conference">
<img border="0" alt="" src="/resource/presentations/riak-game-scale/en/promoimage/strangeloop2013.png">
Strange Loop is a multi-disciplinary conference that aims to bring together the developers and thinkers building tomorrow's technology in fields such as emerging languages, alternative databases, concurrency, distributed systems, mobile development, and the web.
</p>
</div>
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
<div class="random_links">
<ul>
<li><a><span class="gray_color">Sections</span></a></li>
<li><a class="f_taxonomy" href="/architecture-design" name="architecture-design" id="6,816"><b>Architecture & Design</b></a></li>
<li><a><span class="gray_color">Topics</span></a></li>
<li><a class="f_taxonomy" href="/Strange_Loop" name="Strange_Loop" id="6,297">Strange Loop</a></li> <li><a class="f_taxonomy" href="/Strange-Loop-2013-Early-Access" name="Strange-Loop-2013-Early-Access" id="14,786">Strange Loop 2013 Early Access</a></li> <li><a class="f_taxonomy" href="/Strange-Loop-2013" name="Strange-Loop-2013" id="14,785">Strange Loop 2013</a></li>
</ul>
</div>
<div class="vendor_vs_popular">
<div class="leftS">
<div class="related_sponsors wholething">
<div class="gray_section_related">
<div class="related_editorial recommended">
<p class="title">Related Editorial</p>
<div id="editorial_links" class="links">
<div class="clear"></div>
</div>
</div>
<div class="related_editorial sponsored">
<p class="title">Related Vendor Content</p>
<div class="links">
<h3 title="" class="entrypdf f_vcrbottom" jsh="{&quot;id&quot;:2426,&quot;title&quot;:&quot;Continuous Delivery: A Maturity Assessment Model&quot;}">
<a href="/vendorcontent/show.action?vcr=2426&utm_source=infoq&utm_medium=VCR&utm_campaign=vcr_presentations_click" >
Continuous Delivery: A Maturity Assessment Model
</a>
</h3>
<h3 title="" class="entrypdf f_vcrbottom" jsh="{&quot;id&quot;:2440,&quot;title&quot;:&quot;Hadoop Deep Dive: YARN, Tez, REEF, Samza Case Studies at LinkedIn, Netflix @ QConSF 2013&quot;}">
<a href="/vendorcontent/show.action?vcr=2440&utm_source=infoq&utm_medium=VCR&utm_campaign=vcr_presentations_click" target="_blank">
Hadoop Deep Dive: YARN, Tez, REEF, Samza Case Studies at LinkedIn, Netflix @ QConSF 2013
</a>
</h3>
<h3 title="" class="entrypdf f_vcrbottom" jsh="{&quot;id&quot;:2461,&quot;title&quot;:&quot;Why NoSQL - Three Trends Disrupting the Database Status Quo&quot;}">
<a href="/vendorcontent/show.action?vcr=2461&utm_source=infoq&utm_medium=VCR&utm_campaign=vcr_presentations_click" >
Why NoSQL - Three Trends Disrupting the Database Status Quo
</a>
</h3>
<h3 title="" class="entrydemo f_vcrbottom" jsh="{&quot;id&quot;:2408,&quot;title&quot;:&quot;Top 22 Web Performance Posts of 2013&quot;}">
<a href="/vendorcontent/show.action?vcr=2408&utm_source=infoq&utm_medium=VCR&utm_campaign=vcr_presentations_click" target="_blank">
Top 22 Web Performance Posts of 2013
</a>
</h3>
<h3 title="" class="entrypdf f_vcrbottom" jsh="{&quot;id&quot;:2442,&quot;title&quot;:&quot;Top 5 Use Cases for Moving to a Hybrid Cloud&quot;}">
<a href="/vendorcontent/show.action?vcr=2442&utm_source=infoq&utm_medium=VCR&utm_campaign=vcr_presentations_click" target="_blank">
Top 5 Use Cases for Moving to a Hybrid Cloud
</a>
</h3>
<div class="clear"></div>
</div>
</div>
</div>
<div class="clear"></div>
<div class="related_research"></div>
</div>
<script type="text/javascript">
$.ajax({
url: "/api/recommendationlinks.action",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
type: 'POST',
data: {"topicIds": "", "title": "Tracking Millions of Ganks in Near Real Time", "contentPath": "/presentations/riak-game-scale", "language": "en"},
success: displayRelatedEditorial,
async: false
});
function displayRelatedEditorial(data) {
var trackingCode = "?utm_source=infoq&utm_medium=related_content_link&utm_campaign=relatedContent_presentations_clk";
if (data.length > 0) {
for (var i = 0; i < data.length; i++) {
if (i === 5) {
break;
}
var link = $('<h3 title="" class="' + data[i].contentType + '">\n\
<a title="" href="' + data[i].url + trackingCode +
'">' + data[i].title + '</a></h3>');
$('#editorial_links').append(link);
}
$('.gray_section_related > .related_editorial.recommended').css('display', 'block');
}
}
</script>
<script type="text/javascript">
$.ajax({
type: "POST",
url: '/widgets/researchHorizontalWidget.action',
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: {
"path": 'riak-game-scale',
"uriMapping": 'presentations'
},
success: displayRelatedResearch,
error: function() {
// fail silently
},
async: false
});
function displayRelatedResearch(data) {
if (InfoQConstants.language != 'en') {
return;
}
if (data.matchedList && data.matchedList.length > 0) {
$('.related_research').append('<p class="title">Related Research</p>')
for (var i = 0; i < data.matchedList.length; i++) {
var link = $('<a class="rel_results" title="" href="' + data.matchedList[i][0] +
'?utm_source=infoqresearch&utm_campaign=rr-content">' +
'<img border="0" alt="" src="' + data.matchedList[i][2] + '">' +
data.matchedList[i][1] +
'</a>');
$('.related_research').append(link);
}
if (data.latestList) {
for (var i = 0; i < data.latestList.length; i++) {
var link = $('<a class="rel_results" title="" href="' + data.latestList[i][0] +
'?utm_source=infoqresearch&utm_campaign=rr-content">' +
'<img border="0" alt="" src="' + data.latestList[i][2] + '">' +
data.latestList[i][1] +
'</a>');
$('.related_research').append(link);
}
}
$('.related_research').show();
}
}
</script>
<script type="text/javascript">
$(function() {
var grayBox = $('.gray_section_related');
var recommendedColumn = $('.gray_section_related > .related_editorial.recommended');
var recommendedExists = $(recommendedColumn).css('display') === 'block';
var vcrColumn = $('.gray_section_related > .related_editorial.sponsored');
var vcrExists = $(vcrColumn).length === 1;
var sponsorshipColumn = $('.related_sponsors > .paid_section')
var sponsorshipExists = $(sponsorshipColumn).length === 1;
var researchRow = $('.related_research');
var researchExists = $(researchRow).css('display') === 'block';
if (recommendedExists || vcrExists || sponsorshipExists || researchExists) {
$('.related_sponsors.wholething').show(); // show the big related box
}
if(recommendedExists || vcrExists){
$('.gray_section_related').show(); // show the gray box for vcr and recommendations
}
// in case all three available, leave now
if (recommendedExists && vcrExists && sponsorshipExists) {
return;
}
// in case only two of them available
if (recommendedExists && vcrExists && !sponsorshipExists) {
$(recommendedColumn).addClass('only2');
$(vcrColumn).addClass('only2last');
$(grayBox).addClass('only2 fullWidth');
} else if (recommendedExists && sponsorshipExists && !vcrExists) {
$(recommendedColumn).addClass('only2');
$(sponsorshipColumn).addClass('only2last');
$(grayBox).addClass('only1');
} else if (vcrExists && sponsorshipExists && !recommendedExists) {
$(vcrColumn).addClass('only2');
$(sponsorshipColumn).addClass('only2last');
$(grayBox).addClass('only1');
}
// in case only one is available
else if (recommendedExists && !vcrExists && !sponsorshipExists) {
$(recommendedColumn).addClass('only1');
$(grayBox).addClass('only1 fullWidth');
} else if (vcrExists && !recommendedExists && !sponsorshipExists) {
$(vcrColumn).addClass('only1');
$(grayBox).addClass('only1 fullWidth');
} else if (sponsorshipExists && !recommendedExists && !vcrExists) {
$(sponsorshipColumn).addClass('only1');
}
// in case none is available, do not display upper border for the research category if any
else if (researchExists) {
$(researchRow).addClass('only1');
}
});
</script>
<div class="clear"></div>
<div class="article_page_left">
<div class="text_info">
<script type='text/javascript'>
var JSi18n = JSi18n || {}; // define only if not already defined
JSi18n.re='Re:';
JSi18n.errorSubject='Please enter a subject.';
JSi18n.errorBody='You can not post a blank message. Please type your message and try again.';
JSi18n.errorInvalidLinks='The Message body contains invalid links. Please review and try again';
JSi18n.stopWatchText='Stop Watching Thread';
JSi18n.startWatchText='Watch Thread';
JSi18n.timeExpiredMessage='5 minute allowable editing time has elapsed. Sorry for any inconvenience.';
JSi18n.repostButtonFormat='Repost ($m left)';
JSi18n.timeExpiredButton='Time Expired';
JSi18n.sessionExpiredMessage='Your session expired. Please log in and resubmit';
JSi18n.editLinkFormat='Edit ($m minutes left)';
JSi18n.enter_subject='Please enter a subject';
JSi18n.enter_message='Message';
JSi18n.content_datetime_format='MMM dd, yyyy';
var forumID=1;
var threadID=31774;
var ctxPath= '';
var postAddress= ctxPath + '/forum/post!post.action?language=' + 'en';
var repostAddress= ctxPath + '/forum/repost.action?language=' + 'en';
var postAddWatches= ctxPath + '/forum/watches!add.action';
var postRemoveWatches= ctxPath + '/forum/watches!remove.action';
var loggedIn=true;
var threadWatched=false;
var forumNotificationDefault=false;
var commentEditPeriod=5;
</script>
<script type="text/javascript" src='/dwr/interface/ForumNotifications.js'></script>
<script type="text/javascript" src='http://cdn2.infoq.com/scripts/ui/jquery.autosize.js'></script>
<script type="text/javascript" src='http://cdn3.infoq.com/scripts/date.js'></script>
<div class="comment_here">
<div id="postFormDeck" >
<div id="deckText">
<h2>Hello stranger!</h2>
You need to <a href="/reginit.action">Register an InfoQ account</a> or
<a class="login" href="javascript:;">Login</a> to post comments. But there's so much more behind being registered.<br/>
<div id="getMost"><h2>Get the most out of the InfoQ experience.</h2></div>
</div>
</div>
<a id="theCommentsSection"></a>
<h3>Tell us what you think</h3>
<form onsubmit="return false;" target="" enctype="multipart/form-data" method="post" action="" name="">
<div class="area" name="comments">
<input type="text" id="subject" value=""/>
<textarea id="body"></textarea>
</div>
<div class="clear"></div>
<p class="allowed">Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p</p>
<input type="checkbox" class="checkReply emailMe" name="emailMe">
<span class="tocheck">Email me replies to any of my messages in this thread</span>
<div class="clear"></div>
<input type="button" value="Post Message" class="submit" id="subButton">
</form>
<div class="clear"></div>
</div>
<div class="comments">
<div class="comments_title">Community comments
<span id="watch">
<a href="javascript:void(0)" class="watch_thread"></a>
</span>
</div>
<div class="clear"></div>
</div>
<div class="all_comments">
</div>
<!-- overlay -->
<div id="overlay_comments">
<a href="javascript:;" class="close_comment" title="">Close</a>
<h4><strong></strong> by <span id='author'></span> <span id="timepast"></span></h4>
<p id="body"/>
<div class="alt">
<span>on <span id="timestamp"></span></span>
</div>
<div class="clear"></div>
<ul class="help_links">
<li><a title="" class="view">View</a></li>
<li><a title="" href="javascript:;" class="reply">Reply</a></li>
<li><a title="" href="#" class="backtop">Back to top</a></li>
</ul>
<div class="clear"></div>
</div>
<!-- reply box -->
<div id="replyPopup" class="popupLoginComments">
<a title="" class="close_login_popup" href="javascript:;">Close</a>
<form onsubmit="return false;" target="" action="" name="tpopup-reply" method="post">
<label class="label_login">Subject</label>
<input type="text" class="login_text subject" name="subject">
<label class="label_login">
Your Reply
<a style="float: right; text-decoration: underline; font-weight: normal; color: grey;" href="#" onclick="CommentsHandler.quoteOriginalMessage();return false;">
Quote original message
</a>
</label>
<textarea class="commentsReply" name="commentsReply"></textarea>
<div class="clear"></div>
<p class="error allowed"></p>
<div class="clear"></div>
<p class="allowed">Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p</p>
<input type="checkbox" class="checkReply emailMe" name="emailMe">
<span class="tocheck">Email me replies to any of my messages in this thread</span>
<div class="clear"></div>
<input type="button" id="submit-reply" name="submit-reply" value="Post Message">
<input type="reset" class="reset-reply" name="reset-reply" value="Cancel">
</form>
</div>
<!-- edit comment box -->
<div id="editCommentPopup" class="popupLoginComments">
<a title="" class="close_login_popup" href="javascript:;">Close</a>
<form onsubmit="return false;" target="" action="" name="tpopup-reply" method="post">
<label class="label_login">Subject</label>
<input type="text" class="login_text subject" name="subject">
<label class="label_login">Your Reply</label>
<textarea class="commentsReply" name="commentsReply"></textarea>
<div class="clear"></div>
<p class="error allowed"></p>
<div class="clear"></div>
<p class="allowed">Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p</p>
<input type="checkbox" class="checkReply emailMe" name="emailMe">
<span class="tocheck">Email me replies to any of my messages in this thread</span>
<div class="clear"></div>
<p class="time_expired allowed"></p>
<input type="button" id="resubmit-reply" name="submit-reply" value="">
<input type="reset" class="reset-reply" name="reset-reply" value="Cancel">
</form>
</div>
<!-- notification popup -->
<div id="messagePopup" class="popupLoginComments">
<a title="" class="close_login_popup" href="javascript:;">Close</a>
<div class="clear"></div>
<p class="allowed"></p>
<div class="clear"></div>
<input type="reset" class="reset-reply" name="reset-reply" value="OK">
</div>
<div id="responseContent"></div>
<a id="noOfComments" title="" href="#theCommentsSection" class="comments_like">
<span class="comments_counts">
<span class="nr">
Discuss
</span>
</span>
</a>
</div>
<div class="clear"></div>
</div>
</div>
<div class="rightS">
<div class="article_page_right">
<div id="mostPopularSection" class="news_in_tabs">
<!-- the tabs -->
<ul class="tabs">
<li><div class="tab_title">Popular</div></li>
<li><a href="javascript:;" class="current">Week</a></li>
<li><a href="javascript:;">Month</a></li>
<li><a href="javascript:;">6 months</a></li>
</ul>
<!-- tab "panes" -->
<div class="panes">
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
<div class="commercials">
<div class="banner_type1 margintop" id="id_300x250_banner_bottom">
<script type='text/javascript'>
googletag.cmd.push(function() { googletag.display('id_300x250_banner_bottom'); });
</script>
</div>
</div>
<div class="clear"></div>
</div>
</div>
</div>
<div class="clear"></div>
</div>
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#username=infoq"></script>
<div id="imgPreload"></div>
<script type="text/javascript">if (!NREUMQ.f) { NREUMQ.f=function() {NREUMQ.push(["load",new Date().getTime()]);var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://js-agent.newrelic.com/nr-100.js";document.body.appendChild(e);if(NREUMQ.a)NREUMQ.a();};NREUMQ.a=window.onload;window.onload=NREUMQ.f;};NREUMQ.push(["nrf2","beacon-1.newrelic.com","bfafe6a5f6",410411,"YAFWMEEAW0RUVk1cCllLfjdjTkVFUEZcWxFWEF0LXRIaRF1aTmpVB1FSFlYSQUVcVk1QARkORxQ=",0,121,new Date().getTime()])</script>
</div>
<!-- ####### CONTENT END ######### -->
<div class="clear"></div>
</div>
<!-- ####### SITE END ######### -->
<!-- ####### FOOTER START ######### -->
<div id="footer">
<div class="footer_bg">
<div id="latestContent" class="footer_class"></div>
<div class="clear"></div>
</div>
<div class="footer">
<ul class="footerMenu">
<li class="l1"><a class="active" href="/" title="Home">Home</a></li>
<li class="l2"><a class="active" href="/topics" title="All topics">All topics</a></li>
<li class="l3"><a href="http://www.qconferences.com/" target="_blank" title="QCon Conferences">QCon Conferences</a></li>
<li class="l7"><a href="/aboutus" title="About us">About us</a></li>
<li class="l7"><a href="/aboutyou" title="About You">About You</a></li>
<li class="l7"><a href="/contribute" title="Our Contributor Team">Our Contributor Team</a></li>
<li class="l7"><a href="/purpose" title="Purpose Index">Purpose Index</a></li>
<li class="l5"><a href="/logout.action" title="Sign out">Sign out</a></li>
</ul>
<ul class="footerTxt1">
<li><strong>EVENTS</strong></li>
<li><a href="http://www.qconsp.com/?utm_source=infoq&utm_medium=listing&utm_campaign=footer" target="_blank" title="QCon São Paulo Aug 29-31">QCon São Paulo, Aug 29-31</a></li>
<li><a href="http://www.qconshanghai.com/?utm_source=infoq&utm_medium=listing&utm_campaign=footer" target="_blank" title="QCon Shanghai Oct 23-25">QCon Shanghai, Nov 1-3</a></li>
<li><a href="http://www.qconsf.com/?utm_source=infoq&utm_medium=listing&utm_campaign=footer" target="_blank" title="QCon San Francisco Nov 11-13">QCon San Francisco, Nov 11-13</a></li>
<li><a href="http://www.qconlondon.com/?utm_source=infoq&utm_medium=listing&utm_campaign=footer" target="_blank" title="QCon London, March 5-7, 2014">QCon London, March 5-7, 2014</a></li>
</ul>
<div class="ftxt3">
<div class="newsletter">
<div class="txtNews">
<h3>Infoq Weekly Newsletter</h3>
<p>Subscribe to our Weekly email newsletter to follow all new content on InfoQ</p>
<span id="footerNewsletterEmailSuccess" style="color:green;"></span>
<span id="footerNewsletterEmailError" style="color:red;"></span>
</div>
<div class="click2view">
<a target="_blank" href="/newsletter_sample.html">
<img src="http://cdn3.infoq.com/styles/i/click2view2_en.jpg" alt="" border="0" />
</a>
</div>
<div class="clear"></div>
<form name="footerNewsletterForm" id="footerNewsletteForm" action="#" onsubmit="footerNewsletter.saveSubscription(); return false;">
<fieldset>
<input type="text" class="input_text" id="footerNewsletterEmail" name="footerNewsletterEmail" value="Your email here"
onclick="footerNewsletter.clearEmailText();" onblur="footerNewsletter.resetEmailText();" />
<input type="submit" value="Subscribe" id="sbs" name="sbs" class="input_submit" onclick="return footerNewsletter.validateEmail('Invalid email address');"/>
</fieldset>
</form>
<div class="clear"></div>
</div>
<ul class="footerTxt3">
<li><a class="rss" id="footerNewsletterRssLink" href="#">Your personalized RSS</a></li>
<li><a class="twitter" href="http://twitter.com/infoq" target="_blank">For daily content and announcements</a></li>
<li><a class="fb" href="http://www.facebook.com/InfoQ" target="_blank">For major community updates</a></li>
</ul>
</div>
<script type="text/javascript">
var footerNewsletter = new Newsletter('Your email here', 'footerNewsletterEmail', 'footerNewsletterForm', 'footerNewsletterEmailError', 'footerNewsletterEmailSuccess');
</script>
<div class="our_events">
<div class="communities">
<p>Personalize Your Main Interests</p>
<br/><br/><br/>
<fieldset>
<ul>
<fieldset>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td valign="middle">
<input type="checkbox" name="development" value="true" checked="checked" id="persona6815" class="chb" onclick="includeExcludeCommunity(this, false);"/>
<span>Development</span>
</td>
</tr>
<tr>
<td valign="middle">
<input type="checkbox" name="architecture-design" value="true" checked="checked" id="persona6816" class="chb" onclick="includeExcludeCommunity(this, false);"/>
<span>Architecture &amp; Design</span>
</td>
</tr>
<tr>
<td valign="middle">
<input type="checkbox" name="process-practices" value="true" checked="checked" id="persona6817" class="chb" onclick="includeExcludeCommunity(this, false);"/>
<span>Process &amp; Practices</span>
</td>
</tr>
<tr>
<td valign="middle">
<input type="checkbox" name="operations-infrastructure" value="true" checked="checked" id="persona6818" class="chb" onclick="includeExcludeCommunity(this, false);"/>
<span>Operations &amp; Infrastructure</span>
</td>
</tr>
<tr>
<td valign="middle">
<input type="checkbox" name="enterprise-architect" value="true" checked="checked" id="persona6819" class="chb" onclick="includeExcludeCommunity(this, false);"/>
<span>Enterprise Architecture</span>
</td>
</tr>
</table>
</fieldset>
</ul>
</fieldset>
</div>
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
<!-- ####### FOOTER END ######### -->
<div class="bottomContent">
<table cellpadding="0" cellspacing="0" border="0" width="100%" class="last_content">
<tr>
<td>
<div>General Feedback</div>
<div><a href="mailto:feedback@infoq.com">feedback@infoq.com</a></div>
</td>
<td>
<div>Bugs</div>
<div><a href="mailto:bugs@infoq.com">bugs@infoq.com</a></div>
</td>
<td>
<div>Advertising</div>
<div><a href="mailto:sales@infoq.com">sales@infoq.com</a></div>
</td>
<td>
<div>Editorial</div>
<div><a href="mailto:editors@infoq.com">editors@infoq.com</a></div>
</td>
<td class="text">
<span>InfoQ.com and all content copyright &#169; 2006-2013 C4Media Inc. InfoQ.com hosted at <a href="http://www.contegix.com/">Contegix</a>, the best ISP we've ever worked with.<br/><a href="/privacypolicy" target="_blank">Privacy policy</a></span>
</td>
</tr>
</table>
</div>
<div id="id_geo_banner" style="display:none;position:fixed;bottom:0;left:0;width:100%;z-index:100000;">
<div id="id_geo_banner_ad" style="display:none;">
<script type='text/javascript'>
if(CookieManager.readCookie("igabgt") == null) {
// use the jquery.watch method to see when GAM changes the display css attribute of id_geo_banner_ad
// whenever an ad is placed there GAM will chnage the display which is init as none. This is the safest way to determine when an ad is fetched by GAM!
$("#id_geo_banner_ad").watch('display',showAd,1000);
googletag.cmd.push(function() { googletag.display('id_geo_banner_ad');});
}
function showAd() {
try {
$('#id_geo_banner iframe:first').attr('width', '100%');
$('#id_geo_banner iframe:first').attr('height', '100%');
$('#id_geo_banner iframe:first').css('min-width', '1024px');
}catch(err){}
$('#id_geo_banner').show('slow');
setTimeout("$('#id_geo_banner').hide('slow');", 30000);
}
</script>
</div>
</div>
<script src="/dwr/engine.js" type="text/javascript"></script>
<script src="/dwr/interface/UserCategoryUtil.js" type="text/javascript"></script>
<script src="/dwr/interface/DWRRewriteAction.js" type="text/javascript"></script>
<iframe name="loginFrame" id="loginFrame" style="width:0;height:0;border:0;"></iframe>
<div class="login_overlay" id="loginWidget" style="display:none;">
<!-- html for login box -->
<input type="hidden" id="loginWidgetOrigin"/>
<div id="popupLogin">
<a title="" class="close_login_flat" href="#" onclick="UserActions_Login.hideLoginWidget();return false;" >Close</a>
<form method="post" id="login_formLogin"
action="https://www.infoq.com/login.action"
target="loginFrame" onsubmit="UserActions_Login.showMessage(JSi18n.login_sendingRequest);">
<label class="label_login">Email</label>
<input type="text" name="username" id="login_username" class="login_text" />
<label class="label_login">Password</label>
<input type="password" name="password" id="login_password" class="login_text" />
<input type="submit" value="" name="submit-login" class="submit-login" />
<div id="socialLogin">
<a class="social-idp google" href="/social/googleLogin.action?fl=login" title="Login with Google">Login with Google</a>
<div class="clearer" style="height: 0px;"></div>
<a class="social-idp twitter" href="/social/twitterLogin.action?fl=login" title="Login with Twitter">Login with Twitter</a>
<div class="clearer" style="height: 0px;"></div>
<a class="social-idp facebook" href="/social/facebookLogin.action?fl=login" title="Login with Facebook">Login with Facebook</a>
<div class="clearer" style="height: 0px;"></div>
<a class="social-idp microsoft" href="/social/liveLogin.action?fl=login" title="Login with Microsoft">Login with Microsoft</a>
<div class="clearer" style="height: 0px;"></div>
</div>
<div class="more_links">
<p>
<a style="text-decoration:none;" href="#" onClick="UserActions_Login.showForgotPasswordForm();return false;">
Forgot password ?
</a>
<br/><br/>
</p>
</div>
</form>
<form method="post" id="login_formPasswordReset"
action="/resetpasswordinit.action"
target="loginFrame" style="display:none;" onsubmit="UserActions_Login.showMessage(JSi18n.login_sendingRequest);">
<label class="label_login">InfoQ Account Email</label>
<input type="text" name="email" id="login_email" class="login_text" />
<button type="submit" name="submit-login" style="border: 1px solid #CCCCCC; width: 100%; padding: 8px 5px;" on>Send Email</button>
<div class="more_links">
<p>
<a style="text-decoration:none;" href="#" onClick="UserActions_Login.showLoginForm();return false;">
Back to login
</a>
<br/><br/>
</p>
</div>
</form>
<form method="post" id="login_formEmailVerification"
action="/reactivate.action"
target="loginFrame" style="display:none;" onsubmit="UserActions_Login.showMessage(JSi18n.login_sendingRequest);">
<label class="label_login">Resend Activation</label>
<input type="text" name="email" id="login_emailVerification" class="login_text" />
<button type="submit" name="submit-login" style="border: 1px solid #CCCCCC; width: 100%; padding: 8px 5px;" on>Resend</button>
<div class="more_links">
<p>
<a style="text-decoration:none;" href="#" onClick="UserActions_Login.showLoginForm();return false;">
Back to login
</a>
<br/><br/>
</p>
</div>
</form>
<div class="more_links">
<p><a href="/reginit.action" title="">Don't have a username ?</a></p>
<p><a href="/reginit.action" title="">REGISTER HERE</a></p>
<div style="padding:5px;background:#EBF0F3;margin-top:45px;display:none;" id="loginPopupMessage"></div>
</div>
</div>
<!-- html for login box -->
</div>
<script type="text/javascript">
var includeName = 'content.inline_personalization.include.label';
var excludeName = 'content.inline_personalization.exclude.label';
var includeHint = 'content.inline_personalization.include.hint';
var excludeHint = 'content.inline_personalization.exclude.hint';
var excludeCategoryMessage = 'content.inline_personalization.exclude.message';
var viewallCategoryMessage = 'content.inline_personalization.view_all.hint';
var busyMessage = 'content.inline_personalization.busy.message';
var contextPath = '' + '/';
var viewallCategoryPath= '';
var includeExcludeLink= true;
</script>
<script type="text/javascript">
var gaProfile="UA-6608133-2";
var _gaq = _gaq || [];
_gaq.push(['_setAccount', gaProfile]);
_gaq.push(['_setLocalGifPath', 'http://www.infoq.com/styles/i/__utm.gif']);
_gaq.push(['_setLocalRemoteServerMode']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<script src="http://cdn3.infoq.com/scripts/tracker.js?20121126" type="text/javascript"></script>
<script type="text/javascript">
Tracker.safeExec(function() {
_gaq.push(["_trackEvent", "userregistered", "true"]);
});
Tracker.safeExec(function() {_gaq.push(["_trackEvent", "userprefs", "0"]);});
Tracker.safeExec(Tracker.doTrackVcrImpressions);
Tracker.safeExec(Tracker.doTrackPresentationDefaultDisplay);
Tracker.safeExec(Tracker.doTrackTaxonomyImpressions);
Tracker.safeExec(Tracker.doTrackAuthorImpressions);
</script>
<script type="text/javascript">
var newsletterSubscriptionURL ='/newsletter/subscribe.action';
DynamicLinks.updateRssLinks('UD8fPHl3j0vdskvHKGYwiOAByvivFCUR');
ContentTools.updateLatestContentSection();
ContentTools.updatePersonaDropdowns();
// only get the most popular links if they are used in the current page
//(so far they are used on homepage, inteview and presentation pages)
if($('#mostPopularSection').length){
ContentTools.updateMostPopular();
}
ContentSummary.setSelectedTab('en');
//when user enters the main content area show default topics in the topics bar
$("#content-wrapper").mouseenter(function() {
showDefaultTopics();
});
Bookmarks.contentTitle = "Tracking Millions of Ganks in Near Real Time";
Bookmarks.apiUrl = '/widgets/bookmark.action';
</script>
<script type="text/javascript">
var $buoop = {vs:{i:6,f:1,o:10.1,s:1}}
$buoop.ol = window.onload;
$(document).ready(function() {
try {if ($buoop.ol) $buoop.ol();}catch (e) {}
var e = document.createElement("script");
e.setAttribute("type", "text/javascript");
e.setAttribute("src", "http://browser-update.org/update.js");
document.body.appendChild(e);
});
</script>
</div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment