CINXE.COM

addthis/hydra · GitHub

<!DOCTYPE html> <html lang="en" class=""> <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# object: http://ogp.me/ns/object# article: http://ogp.me/ns/article# profile: http://ogp.me/ns/profile#"><script type="text/javascript" src="https://web-static.archive.org/_static/js/bundle-playback.js?v=7YQSqjSh" charset="utf-8"></script> <script type="text/javascript" src="https://web-static.archive.org/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="https://web-static.archive.org/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://github.com/addthis/hydra","20141121074123","https://web.archive.org/","web","https://web-static.archive.org/_static/", "1416555683"); </script> <link rel="stylesheet" type="text/css" href="https://web-static.archive.org/_static/css/banner-styles.css?v=p7PEIJWi" /> <link rel="stylesheet" type="text/css" href="https://web-static.archive.org/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="Content-Language" content="en"> <title>addthis/hydra · GitHub</title> <link rel="search" type="application/opensearchdescription+xml" href="/web/20141121074123/https://github.com/opensearch.xml" title="GitHub"> <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub"> <link rel="apple-touch-icon" sizes="57x57" href="/web/20141121074123im_/https://github.com/apple-touch-icon-114.png"> <link rel="apple-touch-icon" sizes="114x114" href="/web/20141121074123im_/https://github.com/apple-touch-icon-114.png"> <link rel="apple-touch-icon" sizes="72x72" href="/web/20141121074123im_/https://github.com/apple-touch-icon-144.png"> <link rel="apple-touch-icon" sizes="144x144" href="/web/20141121074123im_/https://github.com/apple-touch-icon-144.png"> <meta property="fb:app_id" content="1401488693436528"> <meta content="@github" name="twitter:site"/><meta content="summary" name="twitter:card"/><meta content="addthis/hydra" name="twitter:title"/><meta content="Contribute to hydra development by creating an account on GitHub." name="twitter:description"/><meta content="https://avatars3.githubusercontent.com/u/2325903?v=3&amp;s=400" name="twitter:image:src"/> <meta content="GitHub" property="og:site_name"/><meta content="object" property="og:type"/><meta content="https://web.archive.org/web/20141121074123im_/https://avatars3.githubusercontent.com/u/2325903?v=3&amp;s=400" property="og:image"/><meta content="addthis/hydra" property="og:title"/><meta content="https://web.archive.org/web/20141121074123/https://github.com/addthis/hydra" property="og:url"/><meta content="Contribute to hydra development by creating an account on GitHub." property="og:description"/> <meta name="browser-stats-url" content="/_stats"> <link rel="assets" href="https://assets-cdn.github.com/"> <link rel="conduit-xhr" href="https://ghconduit.com:25035"> <meta name="pjax-timeout" content="1000"> <meta name="msapplication-TileImage" content="/windows-tile.png"> <meta name="msapplication-TileColor" content="#ffffff"> <meta name="selected-link" value="repo_source" data-pjax-transient> <meta name="google-analytics" content="UA-3769691-2"> <meta content="collector.githubapp.com" name="octolytics-host"/><meta content="collector-cdn.github.com" name="octolytics-script-host"/><meta content="github" name="octolytics-app-id"/><meta content="25BB08A5:5F9C:115FA25A:546EEC8D" name="octolytics-dimension-request_id"/> <meta content="Rails, view, files#disambiguate" name="analytics-event"/> <link rel="icon" type="image/x-icon" href="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/favicon.ico"> <meta content="authenticity_token" name="csrf-param"/> <meta content="oDgLvg+bdYmlEAKexWlCy6D16yQwiqAASHM9/lTnmxSEDCP4C8lGt5xquqR2p544AQjnBYD1HDVmNWKSFdrBEQ==" name="csrf-token"/> <link href="https://web.archive.org/web/20141121074123cs_/https://assets-cdn.github.com/assets/github-fa9b8c5d848205db514d4097d2b78f4528d01a79f39601e0f9c5c40ed6894711.css" media="all" rel="stylesheet" type="text/css"/> <link href="https://web.archive.org/web/20141121074123cs_/https://assets-cdn.github.com/assets/github2-e48cf9f7b34f2138837ae8f236223b114441dde478e265f64e1ad9bf6bd76afd.css" media="all" rel="stylesheet" type="text/css"/> <meta http-equiv="x-pjax-version" content="4bd1158cb0b6a7536ceeee1c74a448f2"> <meta name="description" content="Contribute to hydra development by creating an account on GitHub."> <meta name="go-import" content="github.com/addthis/hydra git https://github.com/addthis/hydra.git"> <meta content="2325903" name="octolytics-dimension-user_id"/><meta content="addthis" name="octolytics-dimension-user_login"/><meta content="15475337" name="octolytics-dimension-repository_id"/><meta content="addthis/hydra" name="octolytics-dimension-repository_nwo"/><meta content="true" name="octolytics-dimension-repository_public"/><meta content="false" name="octolytics-dimension-repository_is_fork"/><meta content="15475337" name="octolytics-dimension-repository_network_root_id"/><meta content="addthis/hydra" name="octolytics-dimension-repository_network_root_nwo"/> <link href="https://web.archive.org/web/20141121074123/https://github.com/addthis/hydra/commits/master.atom" rel="alternate" title="Recent Commits to hydra:master" type="application/atom+xml"> </head> <body class="logged_out env-production windows vis-public"> <a href="#start-of-content" tabindex="1" class="accessibility-aid js-skip-to-content">Skip to content</a> <div class="wrapper"> <div class="header header-logged-out" role="banner"> <div class="container clearfix"> <a class="header-logo-wordmark" href="https://web.archive.org/web/20141121074123/https://github.com/" ga-data-click="(Logged out) Header, go to homepage, icon:logo-wordmark"> <span class="mega-octicon octicon-logo-github"></span> </a> <div class="header-actions" role="navigation"> <a class="button primary" href="/web/20141121074123/https://github.com/join" data-ga-click="(Logged out) Header, clicked Sign up, text:sign-up">Sign up</a> <a class="button signin" href="/web/20141121074123/https://github.com/login?return_to=%2Faddthis%2Fhydra" data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in">Sign in</a> </div> <div class="site-search repo-scope js-site-search" role="search"> <form accept-charset="UTF-8" action="/web/20141121074123/https://github.com/addthis/hydra/search" class="js-site-search-form" data-global-search-url="/search" data-repo-search-url="/addthis/hydra/search" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓"/></div> <input type="text" class="js-site-search-field is-clearable" data-hotkey="s" name="q" placeholder="Search" data-global-scope-placeholder="Search GitHub" data-repo-scope-placeholder="Search" tabindex="1" autocapitalize="off"> <div class="scope-badge">This repository</div> </form> </div> <ul class="header-nav left" role="navigation"> <li class="header-nav-item"> <a class="header-nav-link" href="/web/20141121074123/https://github.com/explore" data-ga-click="(Logged out) Header, go to explore, text:explore">Explore</a> </li> <li class="header-nav-item"> <a class="header-nav-link" href="/web/20141121074123/https://github.com/features" data-ga-click="(Logged out) Header, go to features, text:features">Features</a> </li> <li class="header-nav-item"> <a class="header-nav-link" href="https://web.archive.org/web/20141121074123/https://enterprise.github.com/" data-ga-click="(Logged out) Header, go to enterprise, text:enterprise">Enterprise</a> </li> <li class="header-nav-item"> <a class="header-nav-link" href="/web/20141121074123/https://github.com/blog" data-ga-click="(Logged out) Header, go to blog, text:blog">Blog</a> </li> </ul> </div> </div> <div id="start-of-content" class="accessibility-aid"></div> <div class="site" itemscope itemtype="http://schema.org/WebPage"> <div id="js-flash-container"> </div> <div class="pagehead repohead instapaper_ignore readability-menu"> <div class="container"> <ul class="pagehead-actions"> <li> <a href="/web/20141121074123/https://github.com/login?return_to=%2Faddthis%2Fhydra" class="minibutton with-count star-button tooltipped tooltipped-n" aria-label="You must be signed in to star a repository" rel="nofollow"> <span class="octicon octicon-star"></span> Star </a> <a class="social-count js-social-count" href="/web/20141121074123/https://github.com/addthis/hydra/stargazers"> 263 </a> </li> <li> <a href="/web/20141121074123/https://github.com/login?return_to=%2Faddthis%2Fhydra" class="minibutton with-count js-toggler-target fork-button tooltipped tooltipped-n" aria-label="You must be signed in to fork a repository" rel="nofollow"> <span class="octicon octicon-repo-forked"></span> Fork </a> <a href="/web/20141121074123/https://github.com/addthis/hydra/network" class="social-count"> 40 </a> </li> </ul> <h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public"> <span class="mega-octicon octicon-repo"></span> <span class="author"><a href="/web/20141121074123/https://github.com/addthis" class="url fn" itemprop="url" rel="author"><span itemprop="title">addthis</span></a></span><!-- --><span class="path-divider">/</span><!-- --><strong><a href="/web/20141121074123/https://github.com/addthis/hydra" class="js-current-repository" data-pjax="#js-repo-pjax-container">hydra</a></strong> <span class="page-context-loader"> <img alt="" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </span> </h1> </div><!-- /.container --> </div><!-- /.repohead --> <div class="container"> <div class="repository-with-sidebar repo-container new-discussion-timeline with-full-navigation "> <div class="repository-sidebar clearfix"> <nav class="sunken-menu repo-nav js-repo-nav js-sidenav-container-pjax js-octicon-loaders" role="navigation" data-pjax="#js-repo-pjax-container" data-issue-count-url="/addthis/hydra/issues/counts"> <ul class="sunken-menu-group"> <li class="tooltipped tooltipped-w" aria-label="Code"> <a href="/web/20141121074123/https://github.com/addthis/hydra" aria-label="Code" class="selected js-selected-navigation-item sunken-menu-item" data-hotkey="g c" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches /addthis/hydra"> <span class="octicon octicon-code"></span> <span class="full-word">Code</span> <img alt="" class="mini-loader" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </a> </li> <li class="tooltipped tooltipped-w" aria-label="Issues"> <a href="/web/20141121074123/https://github.com/addthis/hydra/issues" aria-label="Issues" class="js-selected-navigation-item sunken-menu-item" data-hotkey="g i" data-selected-links="repo_issues repo_labels repo_milestones /addthis/hydra/issues"> <span class="octicon octicon-issue-opened"></span> <span class="full-word">Issues</span> <span class="js-issue-replace-counter"></span> <img alt="" class="mini-loader" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </a> </li> <li class="tooltipped tooltipped-w" aria-label="Pull Requests"> <a href="/web/20141121074123/https://github.com/addthis/hydra/pulls" aria-label="Pull Requests" class="js-selected-navigation-item sunken-menu-item" data-hotkey="g p" data-selected-links="repo_pulls /addthis/hydra/pulls"> <span class="octicon octicon-git-pull-request"></span> <span class="full-word">Pull Requests</span> <span class="js-pull-replace-counter"></span> <img alt="" class="mini-loader" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </a> </li> </ul> <div class="sunken-menu-separator"></div> <ul class="sunken-menu-group"> <li class="tooltipped tooltipped-w" aria-label="Pulse"> <a href="/web/20141121074123/https://github.com/addthis/hydra/pulse" aria-label="Pulse" class="js-selected-navigation-item sunken-menu-item" data-selected-links="pulse /addthis/hydra/pulse"> <span class="octicon octicon-pulse"></span> <span class="full-word">Pulse</span> <img alt="" class="mini-loader" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </a> </li> <li class="tooltipped tooltipped-w" aria-label="Graphs"> <a href="/web/20141121074123/https://github.com/addthis/hydra/graphs" aria-label="Graphs" class="js-selected-navigation-item sunken-menu-item" data-selected-links="repo_graphs repo_contributors /addthis/hydra/graphs"> <span class="octicon octicon-graph"></span> <span class="full-word">Graphs</span> <img alt="" class="mini-loader" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </a> </li> </ul> </nav> <div class="only-with-full-nav"> <div class="clone-url open" data-protocol-type="http" data-url="/web/20141121074123oe_/https://github.com/users/set_protocol?protocol_selector=http&amp;protocol_type=clone"> <h3><span class="text-emphasized">HTTPS</span> clone URL</h3> <div class="input-group"> <input type="text" class="input-mini input-monospace js-url-field" value="https://github.com/addthis/hydra.git" readonly="readonly"> <span class="input-group-button"> <button aria-label="Copy to clipboard" class="js-zeroclipboard minibutton zeroclipboard-button" data-clipboard-text="https://github.com/addthis/hydra.git" data-copied-hint="Copied!" type="button"><span class="octicon octicon-clippy"></span></button> </span> </div> </div> <div class="clone-url " data-protocol-type="subversion" data-url="/web/20141121074123oe_/https://github.com/users/set_protocol?protocol_selector=subversion&amp;protocol_type=clone"> <h3><span class="text-emphasized">Subversion</span> checkout URL</h3> <div class="input-group"> <input type="text" class="input-mini input-monospace js-url-field" value="https://github.com/addthis/hydra" readonly="readonly"> <span class="input-group-button"> <button aria-label="Copy to clipboard" class="js-zeroclipboard minibutton zeroclipboard-button" data-clipboard-text="https://github.com/addthis/hydra" data-copied-hint="Copied!" type="button"><span class="octicon octicon-clippy"></span></button> </span> </div> </div> <p class="clone-options">You can clone with <a href="#" class="js-clone-selector" data-protocol="http">HTTPS</a> or <a href="#" class="js-clone-selector" data-protocol="subversion">Subversion</a>. <a href="https://web.archive.org/web/20141121074123/https://help.github.com/articles/which-remote-url-should-i-use" class="help tooltipped tooltipped-n" aria-label="Get help on which URL is right for you."> <span class="octicon octicon-question"></span> </a> </p> <a href="https://web.archive.org/web/20141121074123/http://windows.github.com/" class="minibutton sidebar-button" title="Save addthis/hydra to your computer and use it in GitHub Desktop." aria-label="Save addthis/hydra to your computer and use it in GitHub Desktop."> <span class="octicon octicon-device-desktop"></span> Clone in Desktop </a> <a href="/web/20141121074123/https://github.com/addthis/hydra/archive/master.zip" class="minibutton sidebar-button" aria-label="Download the contents of addthis/hydra as a zip file" title="Download the contents of addthis/hydra as a zip file" rel="nofollow"> <span class="octicon octicon-cloud-download"></span> Download ZIP </a> </div> </div><!-- /.repository-sidebar --> <div id="js-repo-pjax-container" class="repository-content context-loader-container" data-pjax-container> <span id="js-show-full-navigation"></span> <div class="repository-meta js-details-container "> </div> <div class="overall-summary overall-summary-bottomless"> <div class="stats-switcher-viewport js-stats-switcher-viewport"> <div class="stats-switcher-wrapper"> <ul class="numbers-summary"> <li class="commits"> <a data-pjax href="/web/20141121074123/https://github.com/addthis/hydra/commits/master"> <span class="octicon octicon-history"></span> <span class="num text-emphasized"> 1,341 </span> commits </a> </li> <li> <a data-pjax href="/web/20141121074123/https://github.com/addthis/hydra/branches"> <span class="octicon octicon-git-branch"></span> <span class="num text-emphasized"> 15 </span> branches </a> </li> <li> <a data-pjax href="/web/20141121074123/https://github.com/addthis/hydra/releases"> <span class="octicon octicon-tag"></span> <span class="num text-emphasized"> 50 </span> releases </a> </li> <li> <include-fragment src="/addthis/hydra/contributors_size"> <a href="/web/20141121074123/https://github.com/addthis/hydra/graphs/contributors"> <span class="octicon octicon-organization"></span> <span class="num text-emphasized"></span> Fetching contributors </a> </include-fragment> </li> </ul> <div class="repository-lang-stats"> <ol class="repository-lang-stats-numbers"> <li> <a href="/web/20141121074123/https://github.com/addthis/hydra/search?l=java"> <span class="color-block language-color" style="background-color:#b07219;"></span> <span class="lang">Java</span> <span class="percent">82.1%</span> </a> </li> <li> <a href="/web/20141121074123/https://github.com/addthis/hydra/search?l=javascript"> <span class="color-block language-color" style="background-color:#f1e05a;"></span> <span class="lang">JavaScript</span> <span class="percent">16.3%</span> </a> </li> <li> <a href="/web/20141121074123/https://github.com/addthis/hydra/search?l=css"> <span class="color-block language-color" style="background-color:#563d7c;"></span> <span class="lang">CSS</span> <span class="percent">1.1%</span> </a> </li> <li> <span class="other"> <span data-lang="Other" class="color-block language-color"></span> <span class="lang">Other</span> <span class="percent">0.5%</span> </span> </li> </ol> </div> </div> </div> </div> <div class="tooltipped tooltipped-s" aria-label="Show language statistics"> <a href="#" class="repository-lang-stats-graph js-toggle-lang-stats" style="background-color:#ccc"> <span class="language-color" style="width:82.1%; background-color:#b07219;" itemprop="keywords">Java</span><span class="language-color" style="width:16.3%; background-color:#f1e05a;" itemprop="keywords">JavaScript</span><span class="language-color" style="width:1.1%; background-color:#563d7c;" itemprop="keywords">CSS</span><span class="language-color" style="width:0.5%; background-color:#ccc;" itemprop="keywords">Other</span> </a> </div> <include-fragment src="/addthis/hydra/show_partial?partial=recently_touched_branches_list"></include-fragment> <div class="file-navigation in-mid-page"> <a href="/web/20141121074123/https://github.com/addthis/hydra/find/master" class="js-show-file-finder minibutton empty-icon tooltipped tooltipped-s right" data-pjax data-hotkey="t" aria-label="Quickly jump between files"> <span class="octicon octicon-list-unordered"></span> </a> <a href="/web/20141121074123/https://github.com/addthis/hydra/compare" aria-label="Compare, review, create a pull request" class="minibutton primary tooltipped tooltipped-s left compare-button" aria-label="Compare &amp; review" data-pjax> <span class="octicon octicon-git-compare"></span> </a> <div class="select-menu js-menu-container js-select-menu left"> <span class="minibutton select-menu-button js-menu-target css-truncate" data-hotkey="w" data-master-branch="master" data-ref="master" title="master" role="button" aria-label="Switch branches or tags" tabindex="0" aria-haspopup="true"> <span class="octicon octicon-git-branch"></span> <i>branch:</i> <span class="js-select-button css-truncate-target">master</span> </span> <div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax aria-hidden="true"> <div class="select-menu-modal"> <div class="select-menu-header"> <span class="select-menu-title">Switch branches/tags</span> <span class="octicon octicon-x js-menu-close" role="button" aria-label="Close"></span> </div> <!-- /.select-menu-header --> <div class="select-menu-filters"> <div class="select-menu-text-filter"> <input type="text" aria-label="Filter branches/tags" id="context-commitish-filter-field" class="js-filterable-field js-navigation-enable" placeholder="Filter branches/tags"> </div> <div class="select-menu-tabs"> <ul> <li class="select-menu-tab"> <a href="#" data-tab-filter="branches" class="js-select-menu-tab">Branches</a> </li> <li class="select-menu-tab"> <a href="#" data-tab-filter="tags" class="js-select-menu-tab">Tags</a> </li> </ul> </div><!-- /.select-menu-tabs --> </div><!-- /.select-menu-filters --> <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches"> <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring"> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/gaussian-fit" data-name="gaussian-fit" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="gaussian-fit">gaussian-fit</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/goofy-reservoir" data-name="goofy-reservoir" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="goofy-reservoir">goofy-reservoir</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/job-alias" data-name="job-alias" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="job-alias">job-alias</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/job-history" data-name="job-history" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="job-history">job-history</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/job-size" data-name="job-size" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="job-size">job-size</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/keytopper-fix2" data-name="keytopper-fix2" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="keytopper-fix2">keytopper-fix2</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item selected"> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/master" data-name="master" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="master">master</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/mesos" data-name="mesos" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="mesos">mesos</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/source-piping" data-name="source-piping" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="source-piping">source-piping</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/sparsepage" data-name="sparsepage" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="sparsepage">sparsepage</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/spiegel/data-count-min" data-name="spiegel/data-count-min" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="spiegel/data-count-min">spiegel/data-count-min</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/spiegel/reservoir-queryfix" data-name="spiegel/reservoir-queryfix" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="spiegel/reservoir-queryfix">spiegel/reservoir-queryfix</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/squashed_sparsepage_versions" data-name="squashed_sparsepage_versions" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="squashed_sparsepage_versions">squashed_sparsepage_versions</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/the-spawn-is-on-fire" data-name="the-spawn-is-on-fire" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="the-spawn-is-on-fire">the-spawn-is-on-fire</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/tree-refactoring" data-name="tree-refactoring" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="tree-refactoring">tree-refactoring</a> </div> <!-- /.select-menu-item --> </div> <div class="select-menu-no-results">Nothing to show</div> </div> <!-- /.select-menu-list --> <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags"> <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring"> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.6.4" data-name="v4.6.4" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.6.4">v4.6.4</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.6.3" data-name="v4.6.3" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.6.3">v4.6.3</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.6.2" data-name="v4.6.2" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.6.2">v4.6.2</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.6.1" data-name="v4.6.1" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.6.1">v4.6.1</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.6.0" data-name="v4.6.0" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.6.0">v4.6.0</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.5.3" data-name="v4.5.3" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.5.3">v4.5.3</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.5.2" data-name="v4.5.2" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.5.2">v4.5.2</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.5.1" data-name="v4.5.1" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.5.1">v4.5.1</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.5.0" data-name="v4.5.0" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.5.0">v4.5.0</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.4.10" data-name="v4.4.10" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.4.10">v4.4.10</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.4.9" data-name="v4.4.9" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.4.9">v4.4.9</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.4.8" data-name="v4.4.8" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.4.8">v4.4.8</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.4.7" data-name="v4.4.7" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.4.7">v4.4.7</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.4.6" data-name="v4.4.6" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.4.6">v4.4.6</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.4.5" data-name="v4.4.5" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.4.5">v4.4.5</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.4.3" data-name="v4.4.3" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.4.3">v4.4.3</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.4.2" data-name="v4.4.2" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.4.2">v4.4.2</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.4.1" data-name="v4.4.1" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.4.1">v4.4.1</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.4.0" data-name="v4.4.0" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.4.0">v4.4.0</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.3.7" data-name="v4.3.7" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.3.7">v4.3.7</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.3.6" data-name="v4.3.6" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.3.6">v4.3.6</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.3.5" data-name="v4.3.5" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.3.5">v4.3.5</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.3.4" data-name="v4.3.4" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.3.4">v4.3.4</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.3.3" data-name="v4.3.3" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.3.3">v4.3.3</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.3.2" data-name="v4.3.2" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.3.2">v4.3.2</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.3.1" data-name="v4.3.1" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.3.1">v4.3.1</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.3.0" data-name="v4.3.0" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.3.0">v4.3.0</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.2.14" data-name="v4.2.14" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.2.14">v4.2.14</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.2.12" data-name="v4.2.12" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.2.12">v4.2.12</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.2.11" data-name="v4.2.11" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.2.11">v4.2.11</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.2.9" data-name="v4.2.9" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.2.9">v4.2.9</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.2.8" data-name="v4.2.8" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.2.8">v4.2.8</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.2.7" data-name="v4.2.7" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.2.7">v4.2.7</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.2.6" data-name="v4.2.6" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.2.6">v4.2.6</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.2.5" data-name="v4.2.5" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.2.5">v4.2.5</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.2.4" data-name="v4.2.4" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.2.4">v4.2.4</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.2.3" data-name="v4.2.3" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.2.3">v4.2.3</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.2.2" data-name="v4.2.2" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.2.2">v4.2.2</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.2.1" data-name="v4.2.1" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.2.1">v4.2.1</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.2.0" data-name="v4.2.0" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.2.0">v4.2.0</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.1.8" data-name="v4.1.8" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.1.8">v4.1.8</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.1.7" data-name="v4.1.7" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.1.7">v4.1.7</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.1.6" data-name="v4.1.6" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.1.6">v4.1.6</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.1.5" data-name="v4.1.5" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.1.5">v4.1.5</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.1.4" data-name="v4.1.4" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.1.4">v4.1.4</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.1.3" data-name="v4.1.3" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.1.3">v4.1.3</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.1.2" data-name="v4.1.2" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.1.2">v4.1.2</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.1.1" data-name="v4.1.1" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.1.1">v4.1.1</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.1.0" data-name="v4.1.0" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.1.0">v4.1.0</a> </div> <!-- /.select-menu-item --> <div class="select-menu-item js-navigation-item "> <span class="select-menu-item-icon octicon octicon-check"></span> <a href="/web/20141121074123/https://github.com/addthis/hydra/tree/v4.0.0" data-name="v4.0.0" data-skip-pjax="true" rel="nofollow" class="js-navigation-open select-menu-item-text css-truncate-target" title="v4.0.0">v4.0.0</a> </div> <!-- /.select-menu-item --> </div> <div class="select-menu-no-results">Nothing to show</div> </div> <!-- /.select-menu-list --> </div> <!-- /.select-menu-modal --> </div> <!-- /.select-menu-modal-holder --> </div> <!-- /.select-menu --> <div class="breadcrumb"><span class="repo-root js-repo-root"><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/web/20141121074123/https://github.com/addthis/hydra" class="" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">hydra</span></a></span></span><span class="separator"> / </span><form action="/web/20141121074123/https://github.com/login?return_to=%2Faddthis%2Fhydra" aria-label="Sign in to make or propose changes" class="js-new-blob-form tooltipped tooltipped-e new-file-link" method="post"><span aria-label="Sign in to make or propose changes" class="js-new-blob-submit octicon octicon-plus" data-test-id="create-new-git-file" role="button"></span></form></div> </div> <div class="commit commit-tease js-details-container"> <p class="commit-title "> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/58ad81524458d7d68bcd6cc5b283a9cd52b1625c" class="message" data-pjax="true" title="Only allow a disabled job to be enabled if it’s idle. Ref T50807">Only allow a disabled job to be enabled if it’s idle. Ref T50807</a> </p> <div class="commit-meta"> <button aria-label="Copy SHA" class="js-zeroclipboard zeroclipboard-link" data-clipboard-text="58ad81524458d7d68bcd6cc5b283a9cd52b1625c" data-copied-hint="Copied!" type="button"><span class="octicon octicon-clippy"></span></button> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/58ad81524458d7d68bcd6cc5b283a9cd52b1625c" class="sha-block" data-pjax>latest commit <span class="sha">58ad815244</span></a> <div class="authorship"> <img alt="" class="avatar" height="20" src="https://web.archive.org/web/20141121074123im_/https://2.gravatar.com/avatar/ed5388dd3f8dc6b0f73fae3d2d109edc?d=https%3A%2F%2Fassets-cdn.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png&amp;r=x&amp;s=140" width="20"/> <span class="author-name"><span>yuesong</span></span> authored <time class="updated" datetime="2014-11-21T01:47:39Z" is="relative-time">Nov 20, 2014</time> </div> </div> </div> <div class="file-wrap"> <table class="files" data-pjax> <tbody> <tr class="warning include-fragment-error"> <td class="icon"><span class="octicon octicon-alert"></span></td> <td class="content" colspan="3">Failed to load latest commit information.</td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-directory"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/tree/master/docs" class="js-directory-link" id="e3e2a9bfd88566b05001b02a3f51d286-c2608e0a30b14778ed50475e28528f4867577d76" title="docs">docs</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/5fdfc5e3dc71e640415bcec3cedd4283c17a28b0" class="message" data-pjax="true" title="'onSuccess' and 'onExit' optional timeout values. On a per job basis add the ability to specify timeouts for onSuccess and onExit endpoints. If no timeout is specified then the cluster default timeout is used.">'onSuccess' and 'onExit' optional timeout values.</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2014-06-19T19:05:25Z" is="time-ago">Jun 19, 2014</time></span> </td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-directory"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/tree/master/hydra-avro" class="js-directory-link" id="93c0b9fa07733b8c92d44d7c38f419b1-0b3ca51374e493f2a681a7bdce7ca874cd29c053" title="hydra-avro">hydra-avro</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/bb9805a05b47e6de1177540204cde9d2d4429150" class="message" data-pjax="true" title="[maven-release-plugin]prepare for next development iteration">[maven-release-plugin]prepare for next development iteration</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2014-11-19T16:20:21Z" is="time-ago">Nov 19, 2014</time></span> </td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-directory"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/tree/master/hydra-data" class="js-directory-link" id="dfe7d2b334472070e257d06421a2dd7e-1ad6576817b2cf8da19a98f1eee469fc0f6cd23a" title="hydra-data">hydra-data</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/37b5d34e20944a5c610189e2dfe2c70dfaf48221" class="message" data-pjax="true" title="Fix typo in generated hydra user reference.">Fix typo in generated hydra user reference.</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2014-11-20T18:57:18Z" is="time-ago">Nov 20, 2014</time></span> </td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-directory"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/tree/master/hydra-essentials" class="js-directory-link" id="77b686bc2df59213299d5d742450df89-64cdfc75123636f4dee89b0f139c70eac2704c69" title="hydra-essentials">hydra-essentials</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/bb9805a05b47e6de1177540204cde9d2d4429150" class="message" data-pjax="true" title="[maven-release-plugin]prepare for next development iteration">[maven-release-plugin]prepare for next development iteration</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2014-11-19T16:20:21Z" is="time-ago">Nov 19, 2014</time></span> </td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-directory"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/tree/master/hydra-filters" class="js-directory-link" id="71d021c6b291efad11f60f2cdc540bc3-1d1061bd311e9146c8a4b6ebfa7a48ea0dae6df1" title="hydra-filters">hydra-filters</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/bb9805a05b47e6de1177540204cde9d2d4429150" class="message" data-pjax="true" title="[maven-release-plugin]prepare for next development iteration">[maven-release-plugin]prepare for next development iteration</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2014-11-19T16:20:21Z" is="time-ago">Nov 19, 2014</time></span> </td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-directory"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/tree/master/hydra-hdfs" class="js-directory-link" id="e59ae6b06affa3d3c24780c9804ea167-46eab7f484b91ab87a917daafea35732b0c8d385" title="hydra-hdfs">hydra-hdfs</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/bb9805a05b47e6de1177540204cde9d2d4429150" class="message" data-pjax="true" title="[maven-release-plugin]prepare for next development iteration">[maven-release-plugin]prepare for next development iteration</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2014-11-19T16:20:21Z" is="time-ago">Nov 19, 2014</time></span> </td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-directory"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/tree/master/hydra-main-api" class="js-directory-link" id="2d52fcbd90d9c63f706785f79e281bc7-f46532fb5c3919ed2e7851dde6d9e5ca2a3df90b" title="hydra-main-api">hydra-main-api</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/bb9805a05b47e6de1177540204cde9d2d4429150" class="message" data-pjax="true" title="[maven-release-plugin]prepare for next development iteration">[maven-release-plugin]prepare for next development iteration</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2014-11-19T16:20:21Z" is="time-ago">Nov 19, 2014</time></span> </td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-directory"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/tree/master/hydra-main" class="js-directory-link" id="318d4471b5787f360b2fec3d47c1f5f4-f2278be35db14470633fb23c49ba404638182492" title="hydra-main">hydra-main</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/58ad81524458d7d68bcd6cc5b283a9cd52b1625c" class="message" data-pjax="true" title="Only allow a disabled job to be enabled if it’s idle. Ref T50807">Only allow a disabled job to be enabled if it’s idle. Ref T50807</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2014-11-21T01:47:39Z" is="time-ago">Nov 20, 2014</time></span> </td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-directory"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/tree/master/hydra-mq" class="js-directory-link" id="73d526592af348a631e9346b863ee439-32b8b5fb552f90cc6e2d2fa1acf55f6f8fdccabc" title="hydra-mq">hydra-mq</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/bb9805a05b47e6de1177540204cde9d2d4429150" class="message" data-pjax="true" title="[maven-release-plugin]prepare for next development iteration">[maven-release-plugin]prepare for next development iteration</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2014-11-19T16:20:21Z" is="time-ago">Nov 19, 2014</time></span> </td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-directory"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/tree/master/hydra-store" class="js-directory-link" id="24c1b50e6ab3314e4fd7042cf966cd36-967301c43f599ffb43f41c52668680dae554a466" title="hydra-store">hydra-store</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/bb9805a05b47e6de1177540204cde9d2d4429150" class="message" data-pjax="true" title="[maven-release-plugin]prepare for next development iteration">[maven-release-plugin]prepare for next development iteration</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2014-11-19T16:20:21Z" is="time-ago">Nov 19, 2014</time></span> </td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-directory"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/tree/master/hydra-task" class="js-directory-link" id="f4836b4cdc30c5b8cc3a5bcf9edf72a9-dd5f0b34a8a3a0cd8f04a807df19e81fa29f9ef5" title="hydra-task">hydra-task</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/436f765bb2deb82827d10cbc69e4f85a4a1039f8" class="message" data-pjax="true" title="work-arounds for interrupt handling in muxy/bdb these hacks should eventually be replaced when I decide on how to refactor (a)sync start/stop/error reporting between various threaded sub-components">work-arounds for interrupt handling in muxy/bdb</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2014-11-19T17:43:31Z" is="time-ago">Nov 19, 2014</time></span> </td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-directory"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/tree/master/hydra-uber" class="js-directory-link" id="ba983a003766cb0804906af3ffe49ba3-06f385127a3e6e9bf0f79919c0722ac0911a174b" title="hydra-uber">hydra-uber</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/bb9805a05b47e6de1177540204cde9d2d4429150" class="message" data-pjax="true" title="[maven-release-plugin]prepare for next development iteration">[maven-release-plugin]prepare for next development iteration</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2014-11-19T16:20:21Z" is="time-ago">Nov 19, 2014</time></span> </td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-directory"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/tree/master/resources" class="js-directory-link" id="55b558c7ef820e6e00e5993b9e55d93b-3c14d66a575e74e26ff9ad11b5fc834d773a7597" title="resources">resources</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/a2fd50a67573969f5862b24e58e2937f6fe18991" class="message" data-pjax="true" title="Initial commit of Javadoc landing page and CSS stylesheet.">Initial commit of Javadoc landing page and CSS stylesheet.</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2014-01-10T20:23:13Z" is="time-ago">Jan 10, 2014</time></span> </td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-text"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/blob/master/.gitignore" class="js-directory-link" id="a084b794bc0759e7a6b77810e01874f2-a44f91e2bf877f01e74371dbf882e346345298fa" title=".gitignore">.gitignore</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/92b91039105a7c1baae67d77ee2b8f20a09484bc" class="message" data-pjax="true" title="Revert &quot;Adding index.min.html to gitignore.&quot; This reverts commit 077ee651a1c110c70c7ec4fde7eccae841158a9c.">Revert "Adding index.min.html to gitignore."</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2014-06-24T13:43:44Z" is="time-ago">Jun 24, 2014</time></span> </td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-text"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/blob/master/LICENSE" class="js-directory-link" id="9879d6db96fd29134fc802214163b95a-430d42bbea592e3c130eda0a07a7e1082b96ba73" title="LICENSE">LICENSE</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/4dc27085808a8fc367acb2d84dc81911670b2a8d" class="message" data-pjax="true" title="Initial Commit">Initial Commit</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2013-12-27T14:44:02Z" is="time-ago">Dec 27, 2013</time></span> </td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-text"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/blob/master/NOTICE" class="js-directory-link" id="aa14599dc3fdfa9cc81a7c3c247b77b9-4f4bcaefbd81cc39611043958a3d14f166f33c3b" title="NOTICE">NOTICE</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/1620976773ed1bb946e345d7a8ebf8994c724012" class="message" data-pjax="true" title="Import http://bitbucket.org/jlanchas/aho-corasick/ Apache-compatible license. NOTICE file updated with third party library. All source files have headers with the license file. We may consider http://ahocorasick.org as an eventual replacement. It is Apache licensed and available on maven central. It is a new project which is why I recommend waiting for the bugs to be shaken out.">Import</a> <a href="https://web.archive.org/web/20141121074123/http://bitbucket.org/jlanchas/aho-corasick/">http://bitbucket.org/jlanchas/aho-corasick/</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2014-05-01T16:28:46Z" is="time-ago">May 1, 2014</time></span> </td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-text"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/blob/master/README.mdown" class="js-directory-link" id="1647c9289d3ab11892a8ba9b2f8cf8bc-f51128dc232d9beb01853a46ec61fe83acd411b8" title="README.mdown">README.mdown</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/7cae32deecb2fa6ad4d4c4b66de2711de8e87531" class="message" data-pjax="true" title="java 8 now required">java 8 now required</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2014-11-07T03:28:11Z" is="time-ago">Nov 6, 2014</time></span> </td> </tr> <tr> <td class="icon"> <span class="octicon octicon-file-text"></span> <img alt="" class="spinner" height="16" src="https://web.archive.org/web/20141121074123im_/https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16"/> </td> <td class="content"> <span class="css-truncate css-truncate-target"><a href="/web/20141121074123/https://github.com/addthis/hydra/blob/master/pom.xml" class="js-directory-link" id="600376dffeb79835ede4a0b285078036-c0c929e4d7a218708988ce3d042dc6e3301b1664" title="pom.xml">pom.xml</a></span> </td> <td class="message"> <span class="css-truncate css-truncate-target"> <a href="/web/20141121074123/https://github.com/addthis/hydra/commit/bb9805a05b47e6de1177540204cde9d2d4429150" class="message" data-pjax="true" title="[maven-release-plugin]prepare for next development iteration">[maven-release-plugin]prepare for next development iteration</a> </span> </td> <td class="age"> <span class="css-truncate css-truncate-target"><time datetime="2014-11-19T16:20:21Z" is="time-ago">Nov 19, 2014</time></span> </td> </tr> </tbody> </table> </div> <div id="readme" class="boxed-group flush clearfix announce instapaper_body mdown"> <h3> <span class="octicon octicon-book"></span> README.mdown </h3> <article class="markdown-body entry-content" itemprop="mainContentOfPage"><h2> <a id="user-content-hydra" class="anchor" href="#hydra" aria-hidden="true"><span class="octicon octicon-link"></span></a>hydra</h2> <p>Hydra is a distributed data processing and storage system originally developed at <a href="https://web.archive.org/web/20141121074123/http://www.addthis.com/">AddThis</a>. It ingests streams of data (think log files) and builds trees that are aggregates, summaries, or transformations of the data. These trees can be used by humans to explore (tiny queries), as part of a machine learning pipeline (big queries), or to support live consoles on websites (lots of queries).</p> <p>You can run hydra from the command line to slice and dice that Apache access log you have sitting around (or that gargantuan csv file). Or if terabytes per day is your cup of tea run a Hydra Cluster that supports your job with resource sharing, job management, distributed backups, data partitioning, and efficient bulk file transfer.</p> <h2> <a id="user-content-documentation-and-references" class="anchor" href="#documentation-and-references" aria-hidden="true"><span class="octicon octicon-link"></span></a>Documentation and References</h2> <p><a href="https://web.archive.org/web/20141121074123/http://oss-docs.addthiscode.net/hydra/latest/user-guide/index.html">The Hydra Documentation Page</a> contains concepts, tutorials, guides, and the web api.</p> <p><a href="https://web.archive.org/web/20141121074123/http://oss-docs.clearspring.com/hydra/latest/user-reference/">The Hydra User Reference</a> is built automatically from the source code and contains reference material on hydra's configurable job components.</p> <p><a href="https://web.archive.org/web/20141121074123/https://www.addthis.com/blog/2014/02/18/getting-started-with-hydra">Getting Started With Hydra</a> is a blog post that contains a nice self-contained introduction to hydra processing.</p> <p><a href="https://web.archive.org/web/20141121074123/http://oss-docs.addthiscode.net/hydra/latest/user-guide/guide/standards.html">AddThis Java Code Style</a> is the code style that hydra tries to adhere to.</p> <h2> <a id="user-content-building" class="anchor" href="#building" aria-hidden="true"><span class="octicon octicon-link"></span></a>Building</h2> <p>Assuming you have <a href="https://web.archive.org/web/20141121074123/http://maven.apache.org/">Apache Maven</a> installed and configured:</p> <pre><code>mvn package </code></pre> <p>Should compile and build jars. All hydra dependencies should be available on maven central but hydra itself is not yet published.</p> <p><a href="https://web.archive.org/web/20141121074123/http://www.oracle.com/technetwork/database/berkeleydb/overview/index-093405.html">Berkeley DB Java Edition</a> is used for several core features. The sleepycat license has strong copyleft properties that do not match the rest of the project. It is set as a non-transitive dependency to avoid inadvertently pulling it into downstream projects. In the future hydra should have pluggable storage with multiple implementations.</p> <p>The <code>hydra-uber</code> module builds an <code>exec</code> jar containing hydra and all of it's dependencies. To include BDB JE when building with <code>mvn package</code> use <code>-P bdbje</code>. The main class of the <code>exec</code> jar launches the various components of a hydra cluster by name.</p> <h2> <a id="user-content-system-dependencies" class="anchor" href="#system-dependencies" aria-hidden="true"><span class="octicon octicon-link"></span></a>System dependencies</h2> <p>JDK 8 is required. Hydra has been developed on Linux (Centos 6) and should work on any modern Linux distro. Other unix-like systems should work with minor changes but have not been tested. Mac OSX should work for building and running local-stack (see below).</p> <p>Hydra uses <a href="https://web.archive.org/web/20141121074123/http://www.rabbitmq.com/">rabbitmq</a> for low volume command and control message exchange. On a modern Linux systems <code>apt-get install rabbitmq-server</code> and running with the default settings is adequate in most cases.</p> <p>To run efficiently Hydra needs a mechanism to take copy on write backups of the output of jobs. The is currently accomplished by adding the <a href="https://web.archive.org/web/20141121074123/http://xmailserver.org/flcow.html">fl-cow</a> library to <code>LD_PRELOAD</code>. Experimenting with other approaches such as ZFS or <code>cp --reflink</code> are under consideration.</p> <p>Many components assume that there is a local user called <code>hydra</code> and that all minion nodes can ssh as that user to each other. This is used most prominently for <code>rsync</code> based replicas. The user <code>hydra</code> is not necessary when running a local-stack environment (see below).</p> <h3> <a id="user-content-os-x" class="anchor" href="#os-x" aria-hidden="true"><span class="octicon octicon-link"></span></a>OS X</h3> <p>On OS X several utilities are necessary to run the local-stack environment:</p> <pre><code>brew install coreutils brew install wget </code></pre> <h2> <a id="user-content-components" class="anchor" href="#components" aria-hidden="true"><span class="octicon octicon-link"></span></a>Components</h2> <p>While hydra can be used for ad-hoc analysis of csv and other local files, it's most commonly used in a distributed cluster. In that case the following components are involved:</p> <ul> <li><a href="https://web.archive.org/web/20141121074123/http://zookeeper.apache.org/">ZooKeeper</a></li> <li>Spawn: Job control and execution</li> <li>Minion: Task runner</li> <li>QueryMaster: Handler for queries</li> <li>QueryWorker: Handle scatter-gather requests from QueryMaster</li> <li>Meshy: File server</li> </ul> <p>A typical configuration is to have a cluster head with Spawn &amp; QueryMaster backed by a homogeneous clusters of nodes running Minion, QueryWorker, and Meshy.</p> <h2> <a id="user-content-local-stack" class="anchor" href="#local-stack" aria-hidden="true"><span class="octicon octicon-link"></span></a>Local Stack</h2> <p>For local development all of the above components can run together in a single stack run out of <code>hydra-local</code>. There is a <code>local-stack.sh</code> script to assist with this. To run the local stack:</p> <ul> <li>You must be able to build hydra</li> <li>Have rabbitmq installed</li> <li>Allow your current user to ssh to itself</li> </ul> <p>The first time the script is run a <code>hydra-local</code> directory will be created.</p> <ul> <li> <code>./hydra-uber/bin/local-stack.sh start</code> - start ZooKeeper</li> <li> <code>./hydra-uber/bin/local-stack.sh start</code> - start spawn, querymaster etc.</li> <li> <code>./hydra-uber/bin/local-stack.sh seed</code> - add some sample data</li> </ul> <p>You can then navigate to http://localhost:5052/ and you should see the spawn web interface.</p> <p>When done <code>./hydra-uber/bin/local-stack.sh stop</code> will stop everything except ZooKeeper, and running <code>stop</code> a second time will bring that process down as well.</p> <p>There are sample job configurations located in <code>hydra-uber/local/sample/</code></p> <h2> <a id="user-content-administrative" class="anchor" href="#administrative" aria-hidden="true"><span class="octicon octicon-link"></span></a>Administrative</h2> <h3> <a id="user-content-discussion" class="anchor" href="#discussion" aria-hidden="true"><span class="octicon octicon-link"></span></a>Discussion</h3> <p>Mailing list: <a href="https://web.archive.org/web/20141121074123/http://groups.google.com/group/hydra-oss">http://groups.google.com/group/hydra-oss</a></p> <p><a href="https://web.archive.org/web/20141121074123/http://freenode.net/">Freenode</a> channel: <code>#hydra</code></p> <h3> <a id="user-content-versioning" class="anchor" href="#versioning" aria-hidden="true"><span class="octicon octicon-link"></span></a>Versioning</h3> <p>It's x.y.z where:</p> <ul> <li>x: Something Big Happened</li> <li>y: next release</li> <li>z: strive for bug fix only</li> </ul> <h3> <a id="user-content-license" class="anchor" href="#license" aria-hidden="true"><span class="octicon octicon-link"></span></a>License</h3> <p>hydra is released under the Apache License Version 2.0. See <a href="https://web.archive.org/web/20141121074123/http://www.apache.org/licenses/LICENSE-2.0">Apache</a> or the LICENSE file in this distribution for details.</p> </article> </div> </div> </div><!-- /.repo-container --> <div class="modal-backdrop"></div> </div><!-- /.container --> </div><!-- /.site --> </div><!-- /.wrapper --> <div class="container"> <div class="site-footer" role="contentinfo"> <ul class="site-footer-links right"> <li><a href="https://web.archive.org/web/20141121074123/https://status.github.com/">Status</a></li> <li><a href="https://web.archive.org/web/20141121074123/https://developer.github.com/">API</a></li> <li><a href="https://web.archive.org/web/20141121074123/http://training.github.com/">Training</a></li> <li><a href="https://web.archive.org/web/20141121074123/http://shop.github.com/">Shop</a></li> <li><a href="/web/20141121074123/https://github.com/blog">Blog</a></li> <li><a href="/web/20141121074123/https://github.com/about">About</a></li> </ul> <a href="/web/20141121074123/https://github.com/" aria-label="Homepage"> <span class="mega-octicon octicon-mark-github" title="GitHub"></span> </a> <ul class="site-footer-links"> <li>&copy; 2014 <span title="0.04255s from github-fe122-cp1-prd.iad.github.net">GitHub</span>, Inc.</li> <li><a href="/web/20141121074123/https://github.com/site/terms">Terms</a></li> <li><a href="/web/20141121074123/https://github.com/site/privacy">Privacy</a></li> <li><a href="/web/20141121074123/https://github.com/security">Security</a></li> <li><a href="/web/20141121074123/https://github.com/contact">Contact</a></li> </ul> </div><!-- /.site-footer --> </div><!-- /.container --> <div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay"> <div class="fullscreen-container js-suggester-container"> <div class="textarea-wrap"> <textarea name="fullscreen-contents" id="fullscreen-contents" class="fullscreen-contents js-fullscreen-contents js-suggester-field" placeholder=""></textarea> </div> </div> <div class="fullscreen-sidebar"> <a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped tooltipped-w" aria-label="Exit Zen Mode"> <span class="mega-octicon octicon-screen-normal"></span> </a> <a href="#" class="theme-switcher js-theme-switcher tooltipped tooltipped-w" aria-label="Switch themes"> <span class="octicon octicon-color-mode"></span> </a> </div> </div> <div id="ajax-error-message" class="flash flash-error"> <span class="octicon octicon-alert"></span> <a href="#" class="octicon octicon-x flash-close js-ajax-error-dismiss" aria-label="Dismiss error"></a> Something went wrong with that request. Please try again. </div> <script crossorigin="anonymous" src="https://web.archive.org/web/20141121074123js_/https://assets-cdn.github.com/assets/frameworks-2d727fed4d969b14b28165c75ad12d7dddd56c0198fa70cedc3fdad7ac395b2c.js" type="text/javascript"></script> <script async="async" crossorigin="anonymous" src="https://web.archive.org/web/20141121074123js_/https://assets-cdn.github.com/assets/github-df890fda784aa4e11f79ebb77d324afca1b2ce38f543eb8e247f9213825b11b4.js" type="text/javascript"></script> </body> </html> <!-- FILE ARCHIVED ON 07:41:23 Nov 21, 2014 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 23:44:20 Feb 23, 2025. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.626 exclusion.robots: 0.035 exclusion.robots.policy: 0.022 esindex: 0.011 cdx.remote: 41.77 LoadShardBlock: 130.765 (3) PetaboxLoader3.datanode: 89.875 (4) PetaboxLoader3.resolve: 91.295 (2) load_resource: 73.721 -->

Pages: 1 2 3 4 5 6 7 8 9 10