<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title>Apache Flink: Apache Flink 1.3.2 Released</title>
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">

    <!-- Bootstrap -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
    <link rel="stylesheet" href="/css/flink.css">
    <link rel="stylesheet" href="/css/syntax.css">

    <!-- Blog RSS feed -->
    <link href="/blog/feed.xml" rel="alternate" type="application/rss+xml" title="Apache Flink Blog: RSS feed" />

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <!-- We need to load Jquery in the header for custom google analytics event tracking-->
    <script src="/js/jquery.min.js"></script>

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>  
    

    <!-- Main content. -->
    <div class="container">
    <div class="row">

      
     <div id="sidebar" class="col-sm-3">
        

<!-- Top navbar. -->
    <nav class="navbar navbar-default">
        <!-- The logo. -->
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <div class="navbar-logo">
            <a href="/">
              <img alt="Apache Flink" src="/img/flink-header-logo.svg" width="147px" height="73px">
            </a>
          </div>
        </div><!-- /.navbar-header -->

        <!-- The navigation links. -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
          <ul class="nav navbar-nav navbar-main">

            <!-- First menu section explains visitors what Flink is -->

            <!-- What is Stream Processing? -->
            <!--
            <li><a href="/streamprocessing1.html">What is Stream Processing?</a></li>
            -->

            <!-- What is Flink? -->
            <li><a href="/flink-architecture.html">What is Apache Flink?</a></li>

            

            <!-- What is Stateful Functions? -->

            <li><a href="/stateful-functions.html">What is Stateful Functions?</a></li>

            <!-- Use cases -->
            <li><a href="/usecases.html">Use Cases</a></li>

            <!-- Powered by -->
            <li><a href="/poweredby.html">Powered By</a></li>


            &nbsp;
            <!-- Second menu section aims to support Flink users -->

            <!-- Downloads -->
            <li><a href="/downloads.html">Downloads</a></li>

            <!-- Getting Started -->
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Getting Started<span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="https://ci.apache.org/projects/flink/flink-docs-release-1.11/getting-started/index.html" target="_blank">With Flink <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.1/getting-started/project-setup.html" target="_blank">With Flink Stateful Functions <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="/training.html">Training Course</a></li>
              </ul>
            </li>

            <!-- Documentation -->
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Documentation<span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="https://ci.apache.org/projects/flink/flink-docs-release-1.11" target="_blank">Flink 1.11 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-docs-master" target="_blank">Flink Master (Latest Snapshot) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.1" target="_blank">Flink Stateful Functions 2.1 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-statefun-docs-master" target="_blank">Flink Stateful Functions Master (Latest Snapshot) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
              </ul>
            </li>

            <!-- getting help -->
            <li><a href="/gettinghelp.html">Getting Help</a></li>

            <!-- Blog -->
            <li class="active"><a href="/blog/"><b>Flink Blog</b></a></li>


            <!-- Flink-packages -->
            <li>
              <a href="https://flink-packages.org" target="_blank">flink-packages.org <small><span class="glyphicon glyphicon-new-window"></span></small></a>
            </li>
            &nbsp;

            <!-- Third menu section aim to support community and contributors -->

            <!-- Community -->
            <li><a href="/community.html">Community &amp; Project Info</a></li>

            <!-- Roadmap -->
            <li><a href="/roadmap.html">Roadmap</a></li>

            <!-- Contribute -->
            <li><a href="/contributing/how-to-contribute.html">How to Contribute</a></li>
            

            <!-- GitHub -->
            <li>
              <a href="https://github.com/apache/flink" target="_blank">Flink on GitHub <small><span class="glyphicon glyphicon-new-window"></span></small></a>
            </li>

            &nbsp;

            <!-- Language Switcher -->
            <li>
              
                
                  <!-- link to the Chinese home page when current is blog page -->
                  <a href="/zh">中文版</a>
                
              
            </li>

          </ul>

          <ul class="nav navbar-nav navbar-bottom">
          <hr />

            <!-- Twitter -->
            <li><a href="https://twitter.com/apacheflink" target="_blank">@ApacheFlink <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>

            <!-- Visualizer -->
            <li class=" hidden-md hidden-sm"><a href="/visualizer/" target="_blank">Plan Visualizer <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>

          <hr />

            <li><a href="https://apache.org" target="_blank">Apache Software Foundation <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>

            <li>
              <style>
                .smalllinks:link {
                  display: inline-block !important; background: none; padding-top: 0px; padding-bottom: 0px; padding-right: 0px; min-width: 75px;
                }
              </style>

              <a class="smalllinks" href="https://www.apache.org/licenses/" target="_blank">License</a> <small><span class="glyphicon glyphicon-new-window"></span></small>

              <a class="smalllinks" href="https://www.apache.org/security/" target="_blank">Security</a> <small><span class="glyphicon glyphicon-new-window"></span></small>

              <a class="smalllinks" href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Donate</a> <small><span class="glyphicon glyphicon-new-window"></span></small>

              <a class="smalllinks" href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a> <small><span class="glyphicon glyphicon-new-window"></span></small>
            </li>

          </ul>
        </div><!-- /.navbar-collapse -->
    </nav>

      </div>
      <div class="col-sm-9">
      <div class="row-fluid">
  <div class="col-sm-12">
    <div class="row">
      <h1>Apache Flink 1.3.2 Released</h1>
      <p><i></i></p>

      <article>
        <p>05 Aug 2017</p>

<p>The Apache Flink community released the second bugfix version of the Apache Flink 1.3 series.</p>

<p>This release includes more than 60 fixes and minor improvements for Flink 1.3.1. The list below includes a detailed list of all fixes.</p>

<p>We highly recommend all users to upgrade to Flink 1.3.2.</p>

<div class="alert alert-warning">
  Important Notice:

  <p>A user reported a bug in the FlinkKafkaConsumer
  (<a href="https://issues.apache.org/jira/browse/FLINK-7143">FLINK-7143</a>) that is causing
  incorrect partition assignment in large Kafka deployments in the presence of inconsistent broker
  metadata.  In that case multiple parallel instances of the FlinkKafkaConsumer may read from the
  same topic partition, leading to data duplication. In Flink 1.3.2 this bug is fixed but incorrect
  assignments from Flink 1.3.0 and 1.3.1 cannot be automatically fixed by upgrading to Flink 1.3.2
  via a savepoint because the upgraded version would resume the wrong partition assignment from the
  savepoint. If you believe you are affected by this bug (seeing messages from some partitions
  duplicated) please refer to the JIRA issue for an upgrade path that works around that.</p>

  <p>Before attempting the more elaborate upgrade path, we would suggest to check if you are
  actually affected by this bug. We did not manage to reproduce it in various testing clusters and
  according to the reporting user, it only appeared in rare cases on their very large setup. This
  leads us to believe that most likely only a minority of setups would be affected by this bug.</p>
</div>

<p>Notable changes:</p>

<ul>
  <li>The default Kafka version for Flink Kafka Consumer 0.10 was bumped from 0.10.0.1 to 0.10.2.1.</li>
  <li>Some default values for configurations of AWS API call behaviors in the Flink Kinesis Consumer
 were adapted for better default consumption performance: 1) <code>SHARD_GETRECORDS_MAX</code> default changed
 to 10,000, and 2) <code>SHARD_GETRECORDS_INTERVAL_MILLIS</code> default changed to 200ms.</li>
</ul>

<p>Updated Maven dependencies:</p>

<div class="highlight"><pre><code class="language-xml"><span class="nt">&lt;dependency&gt;</span>
  <span class="nt">&lt;groupId&gt;</span>org.apache.flink<span class="nt">&lt;/groupId&gt;</span>
  <span class="nt">&lt;artifactId&gt;</span>flink-java<span class="nt">&lt;/artifactId&gt;</span>
  <span class="nt">&lt;version&gt;</span>1.3.2<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
  <span class="nt">&lt;groupId&gt;</span>org.apache.flink<span class="nt">&lt;/groupId&gt;</span>
  <span class="nt">&lt;artifactId&gt;</span>flink-streaming-java_2.10<span class="nt">&lt;/artifactId&gt;</span>
  <span class="nt">&lt;version&gt;</span>1.3.2<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
  <span class="nt">&lt;groupId&gt;</span>org.apache.flink<span class="nt">&lt;/groupId&gt;</span>
  <span class="nt">&lt;artifactId&gt;</span>flink-clients_2.10<span class="nt">&lt;/artifactId&gt;</span>
  <span class="nt">&lt;version&gt;</span>1.3.2<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span></code></pre></div>

<p>You can find the binaries on the updated <a href="http://flink.apache.org/downloads.html">Downloads page</a>.</p>

<p>List of resolved issues:</p>

<h2>        Sub-task
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6665">FLINK-6665</a>] -         Pass a ScheduledExecutorService to the RestartStrategy
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6667">FLINK-6667</a>] -         Pass a callback type to the RestartStrategy, rather than the full ExecutionGraph
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6680">FLINK-6680</a>] -         App &amp; Flink migration guide: updates for the 1.3 release
</li>
</ul>

<h2>        Bug
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-5488">FLINK-5488</a>] -         yarnClient should be closed in AbstractYarnClusterDescriptor for error conditions
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6376">FLINK-6376</a>] -         when deploy flink cluster on the yarn, it is lack of hdfs delegation token.
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6541">FLINK-6541</a>] -         Jar upload directory not created
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6654">FLINK-6654</a>] -         missing maven dependency on &quot;flink-shaded-hadoop2-uber&quot; in flink-dist
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6655">FLINK-6655</a>] -         Misleading error message when HistoryServer path is empty
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6742">FLINK-6742</a>] -         Improve error message when savepoint migration fails due to task removal
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6774">FLINK-6774</a>] -         build-helper-maven-plugin version not set
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6806">FLINK-6806</a>] -         rocksdb is not listed as state backend in doc
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6843">FLINK-6843</a>] -         ClientConnectionTest fails on travis
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6867">FLINK-6867</a>] -         Elasticsearch 1.x ITCase still instable due to embedded node instability
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6918">FLINK-6918</a>] -         Failing tests: ChainLengthDecreaseTest and ChainLengthIncreaseTest
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6945">FLINK-6945</a>] -         TaskCancelAsyncProducerConsumerITCase.testCancelAsyncProducerAndConsumer instable test case
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6964">FLINK-6964</a>] -         Fix recovery for incremental checkpoints in StandaloneCompletedCheckpointStore
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6965">FLINK-6965</a>] -         Avro is missing snappy dependency
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6987">FLINK-6987</a>] -         TextInputFormatTest fails when run in path containing spaces
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6996">FLINK-6996</a>] -         FlinkKafkaProducer010 doesn&#39;t guarantee at-least-once semantic
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7005">FLINK-7005</a>] -         Optimization steps are missing for nested registered tables
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7011">FLINK-7011</a>] -         Instable Kafka testStartFromKafkaCommitOffsets failures on Travis
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7025">FLINK-7025</a>] -         Using NullByteKeySelector for Unbounded ProcTime NonPartitioned Over
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7034">FLINK-7034</a>] -         GraphiteReporter cannot recover from lost connection
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7038">FLINK-7038</a>] -         Several misused &quot;KeyedDataStream&quot; term in docs and Javadocs
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7041">FLINK-7041</a>] -         Deserialize StateBackend from JobCheckpointingSettings with user classloader
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7132">FLINK-7132</a>] -         Fix BulkIteration parallelism
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7133">FLINK-7133</a>] -         Fix Elasticsearch version interference
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7137">FLINK-7137</a>] -         Flink table API defaults top level fields as nullable and all nested fields within CompositeType as non-nullable
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7143">FLINK-7143</a>] -         Partition assignment for Kafka consumer is not stable
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7154">FLINK-7154</a>] -         Missing call to build CsvTableSource example
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7158">FLINK-7158</a>] -         Wrong test jar dependency in flink-clients
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7177">FLINK-7177</a>] -         DataSetAggregateWithNullValuesRule fails creating null literal for non-nullable type
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7178">FLINK-7178</a>] -         Datadog Metric Reporter Jar is Lacking Dependencies
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7180">FLINK-7180</a>] -         CoGroupStream perform checkpoint failed
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7195">FLINK-7195</a>] -         FlinkKafkaConsumer should not respect fetched partitions to filter restored partition states
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7216">FLINK-7216</a>] -         ExecutionGraph can perform concurrent global restarts to scheduling
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7225">FLINK-7225</a>] -         Cutoff exception message in StateDescriptor
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7226">FLINK-7226</a>] -         REST responses contain invalid content-encoding header
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7231">FLINK-7231</a>] -         SlotSharingGroups are not always released in time for new restarts
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7234">FLINK-7234</a>] -         Fix CombineHint documentation
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7241">FLINK-7241</a>] -         Fix YARN high availability documentation
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7255">FLINK-7255</a>] -         ListStateDescriptor example uses wrong constructor
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7258">FLINK-7258</a>] -         IllegalArgumentException in Netty bootstrap with large memory state segment size
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7266">FLINK-7266</a>] -         Don&#39;t attempt to delete parent directory on S3
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7268">FLINK-7268</a>] -         Zookeeper Checkpoint Store interacting with Incremental State Handles can lead to loss of handles
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7281">FLINK-7281</a>] -         Fix various issues in (Maven) release infrastructure
</li>
</ul>

<h2>        Improvement
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6365">FLINK-6365</a>] -         Adapt default values of the Kinesis connector
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6575">FLINK-6575</a>] -         Disable all tests on Windows that use HDFS
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6682">FLINK-6682</a>] -         Improve error message in case parallelism exceeds maxParallelism
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6789">FLINK-6789</a>] -         Remove duplicated test utility reducer in optimizer
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6874">FLINK-6874</a>] -         Static and transient fields ignored for POJOs
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6898">FLINK-6898</a>] -         Limit size of operator component in metric name
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6937">FLINK-6937</a>] -         Fix link markdown in Production Readiness Checklist doc
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6940">FLINK-6940</a>] -         Clarify the effect of configuring per-job state backend
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-6998">FLINK-6998</a>] -         Kafka connector needs to expose metrics for failed/successful offset commits in the Kafka Consumer callback
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7004">FLINK-7004</a>] -         Switch to Travis Trusty image
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7032">FLINK-7032</a>] -         Intellij is constantly changing language level of sub projects back to 1.6
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7069">FLINK-7069</a>] -         Catch exceptions for each reporter separately
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7149">FLINK-7149</a>] -         Add checkpoint ID to &#39;sendValues()&#39; in GenericWriteAheadSink
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7164">FLINK-7164</a>] -         Extend integration tests for (externalised) checkpoints, checkpoint store
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7174">FLINK-7174</a>] -         Bump dependency of Kafka 0.10.x to the latest one
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7211">FLINK-7211</a>] -         Exclude Gelly javadoc jar from release
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7224">FLINK-7224</a>] -         Incorrect Javadoc description in all Kafka consumer versions
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7228">FLINK-7228</a>] -         Harden HistoryServerStaticFileHandlerTest
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7233">FLINK-7233</a>] -         TaskManagerHeapSizeCalculationJavaBashTest failed on Travis
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7287">FLINK-7287</a>] -         test instability in Kafka010ITCase.testCommitOffsetsToKafka
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-7290">FLINK-7290</a>] -         Make release scripts modular
</li>
</ul>

      </article>
    </div>

    <div class="row">
      <div id="disqus_thread"></div>
      <script type="text/javascript">
        /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
        var disqus_shortname = 'stratosphere-eu'; // required: replace example with your forum shortname

        /* * * DON'T EDIT BELOW THIS LINE * * */
        (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
             (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
        })();
      </script>
    </div>
  </div>
</div>
      </div>
    </div>

    <hr />

    <div class="row">
      <div class="footer text-center col-sm-12">
        <p>Copyright © 2014-2019 <a href="http://apache.org">The Apache Software Foundation</a>. All Rights Reserved.</p>
        <p>Apache Flink, Flink®, Apache®, the squirrel logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.</p>
        <p><a href="/privacy-policy.html">Privacy Policy</a> &middot; <a href="/blog/feed.xml">RSS feed</a></p>
      </div>
    </div>
    </div><!-- /.container -->

    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.matchHeight/0.7.0/jquery.matchHeight-min.js"></script>
    <script src="/js/codetabs.js"></script>
    <script src="/js/stickysidebar.js"></script>

    <!-- Google Analytics -->
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-52545728-1', 'auto');
      ga('send', 'pageview');
    </script>
  </body>
</html>
