dimisit/articles/Two_years_with_clojure.html

86 lines
3.2 KiB
HTML
Raw Normal View History

2015-10-23 14:29:11 +00:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title></title>
<style type="text/css">code{white-space: pre;}</style>
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link rel="stylesheet" href="../styling.css">
</head>
<body>
<nav id="TOC">
<ul>
<li><a href="#todo-choose-a-title">TODO: choose a title</a><ul>
<li><a href="#plan">Plan</a></li>
2015-10-26 13:27:51 +00:00
<li><a href="#the-elephant-graveyard">The Elephant Graveyard</a></li>
2015-10-23 14:29:11 +00:00
</ul></li>
</ul>
</nav>
<h1 id="todo-choose-a-title">TODO: choose a title</h1>
<p>TODO: tl;dr: … (3 sentences max)</p>
<p>TODO: introduction (20 lines max)</p>
<h2 id="plan">Plan</h2>
<p>TODO: Remove the detailled plan</p>
<ul>
2015-10-26 13:27:51 +00:00
<li>Start with the end
<ul>
<li>show a pulse</li>
<li>explain what is simple / hard</li>
</ul></li>
2015-10-23 14:29:11 +00:00
<li>The situation before
<ul>
<li>pb with volume (MongoDB / PHP, etc…)</li>
<li>securities issues</li>
<li>pb with abilities</li>
<li>angular complexity</li>
<li>refactoring issues</li>
<li>deployment issues</li>
</ul></li>
<li>The choices
<ul>
<li>why clojure?</li>
<li>why Haskell?</li>
<li>why not full Haskell?</li>
<li>why reagent?</li>
<li>why Kafka?</li>
<li>why Mesos / Marathon?</li>
<li>why Druid?</li>
<li>why still MongoDB?</li>
</ul></li>
<li>The firsts weeks
<ul>
<li>first impressions</li>
<li>what was harder?</li>
<li>what was easier?</li>
</ul></li>
<li>Once used to clojure
<ul>
<li>how does it feels?</li>
<li>was it a mistake?</li>
<li>Do we have any doubts?</li>
</ul></li>
<li>One year later (maintenance and impressions)</li>
</ul>
2015-10-26 13:27:51 +00:00
<h2 id="the-elephant-graveyard">The Elephant Graveyard</h2>
<p>Imagine you could get all tweets in realtime.</p>
<p>Imagine you need to count them. Imagine you need to filter them by keywords. Imagine you need to answer complex questions about them in realtime. For example, how many tweets from women, containing the word <code>clojure</code> expressing a positive sentiment during the last hour. Imagine the same question about the last year.</p>
<p>How would you do it?</p>
<p>First youll need to absorb tweets in realtime. The twitter streaming API is here for that. But you are limited to 1% of all twitter volume. If you want not to be limited, you need either deal directly with twitter or use GNIP.</p>
<p>Next, youll need to keep only tweet of interest. By example, youll need to filter by keyword.</p>
<p>Just after that, you need to add informations for each received tweet. You need to enrich them by information it doesnt already possess. For example, the gender of the author of a tweet must be guessed. The same for the sentiment expressed by the tweet.</p>
<p>In the end youll need to display all these informations in real-time. By real-time we mean with a very low latency.</p>
<p>Under the minute is generally acceptable. But under the hood, we generally have less than half a second of latency.</p>
<p>Most of the lantency is due to twitter (about 2s) or gnip (about 15s).</p>
<hr/>
2015-10-23 14:29:11 +00:00
<div id="footer">
2015-10-26 13:27:51 +00:00
<a href="http://about.me/gbuisson">G</a> -
<a href="http://sprunck.com">S</a> -
<a href="http://yannesposito.com">Y</a>
2015-10-23 14:29:11 +00:00
</div>
</body>
</html>