<!DOCTYPE html>
<html>

  <head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width initial-scale=1" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge">

  <title>Michael Hartl | Author of the Ruby on Rails Tutorial | Founder of Tau Day and Author of The Tau Manifesto</title>
  <meta name="description" content="">

  <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
  <link rel="stylesheet" href="/css/main.css">
  <link rel="canonical" href="http://michaelhartl.com/">

  <!-- TESTING A COMMENT -->

  <meta property="og:title" content="" />
  <meta property="og:description" content="" />
  <meta property="og:site_name" content="Michael Hartl | Author of the Ruby on Rails Tutorial | Founder of Tau Day and Author of The Tau Manifesto"/>
  <meta property="og:image" content="http://softcover-static.s3.amazonaws.com/og_mhartl.png"/>
  <meta property="og:image:secure_url" content="https://softcover-static.s3.amazonaws.com/og_mhartl.png" />
  <meta property="og:url" content="http://michaelhartl.com/">
  <meta property="og:type" content="article" />
  <meta property="article:author" content="https://www.facebook.com/mhartl" />

  <meta name="twitter:widgets:csp" content="on" />
  <link type="application/atom+xml" rel="alternate" href="http://michaelhartl.com/feed.xml" title="" />

  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.min.js"></script>
  <script src="//use.typekit.net/nqj6bco.js"></script>
  <script>try{Typekit.load();}catch(e){}</script>

<script type="text/javascript" src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML">
  MathJax.Hub.Config({
    tex2jax: {
      inlineMath: [['$','$'],["\\(","\\)"]]},
      displayMath: [ ['$$','$$'], ['\[','\]'] ],
    "HTML-CSS": {
      availableFonts: ["TeX"]
    }
  });
</script>
</head>


  <body>

    <nav id="nav">
  <a id="logo" href="/"><img src="https://secure.gravatar.com/avatar/ffda7d145b83c4b118f982401f962ca6?s=400" alt="Michael-hartl">Michael Hartl</a>
  <ul>
    <li><a href="/">Home</a></li>
    
      
      <li><a href="/about/">About</a></li>
      
    
      
      <li><a href="/archive/">Archive</a></li>
      
    
      
    
      
    
    <li class="email"><a href="http://tauday.com/" target="_blank">Tau Day</a></li>
    <li class="buyLnk"><a href="https://www.railstutorial.org/" target="_blank">Ruby on Rails Tutorial</a></li>
  </ul>


</nav>


<!-- <a href="#" class="menu-icon">
  <svg viewBox="0 0 18 15">
    <path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
    <path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
    <path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
  </svg>
</a> -->


    <div id="container">
      <div class="container page">
  
<div id="indexAuthor">
  <header>
    <img src="https://secure.gravatar.com/avatar/ffda7d145b83c4b118f982401f962ca6?s=400" alt="Michael-hartl">
    <h5>
      Michael Hartl
      <div class="socialLinks">
        <a href="https://twitter.com/mhartl" target="_blank" class="iconLink"><i class="fa fa-twitter"></i></a>
        <a href="https://github.com/mhartl" target="_blank" class="iconLink"><i class="fa fa-github"></i></a>
      </div>
    </h5>
  </header>
  <p>I&rsquo;m Michael Hartl—author, educator, and entrepreneur.<span class="intersentencespace"></span> I&rsquo;m probably best known as the creator of the <a href="http://www.railstutorial.org/" target="_blank">Ruby on Rails Tutorial</a>, a <a href="http://railstutorial.org/book" target="_blank">book</a> and <a href="http://screencasts.railstutorial.org/" target="_blank">screencast series</a> that together constitute one of the leading introductions to web development.<span class="intersentencespace"></span> Once called his &ldquo;<a href="http://www.quora.com/Jimmy-Wales-1/What-is-Jimmy-Waless-favorite-book?share=1" target="_blank">favorite book</a>&rdquo; by Wikipedia founder <a href="https://en.wikipedia.org/wiki/Jimmy_Wales" target="_blank">Jimmy Wales</a>, the <em>Ruby on Rails Tutorial</em> currently has <a href="http://amzn.to/1PDOv9W#revMHLContainer" target="_blank">over 150 5-star reviews</a> at Amazon.<span class="intersentencespace"></span> I&rsquo;m also (in)famous for creating <a href="http://tauday.com/" target="_blank">Tau Day</a> and <a href="http://tauday.com/tau-manifesto" target="_blank"><em>The Tau Manifesto</em></a>, which have inspired an international movement dedicated to the proposition that &ldquo;<a href="http://tauday.com/" target="_blank">pi is wrong</a>.&rdquo;<span class="intersentencespace"></span> (For example, as a result of <em>The Tau Manifesto</em>, MIT releases their <a href="http://mitadmissions.org/blogs/entry/pi-day-tau-time">admissions decisions</a> each year at 6:28&nbsp;p.m., and <a href="https://www.google.com/search?q=tau%2F2" target="_blank">typing tau/2 at Google</a> yields 3.14159&hellip;) <span class="intersentencespace"></span> Finally, I&rsquo;m a founder of <a href="http://www.softcover.io/" target="_blank">Softcover</a>, a publishing system and sales platform for technical authors, which among other things powers both <em>The Tau Manifesto</em> and the <em>Ruby on Rails Tutorial</em>.</p>

  <p>I&rsquo;m a graduate of <a href="http://college.harvard.edu/" target="_blank">Harvard College</a> and have a Ph.D. in Physics from <a href="http://www.caltech.edu/" target="_blank">Caltech</a>, where I studied <a href="http://resolver.caltech.edu/CaltechETD:etd-05222003-161626" target="_blank">black hole dynamics</a> was an <a href="http://www.its.caltech.edu/~arcomm/teachawards/awards2000.html" target="_blank">award-winning instructor</a> in theoretical and computational physics.<span class="intersentencespace"></span> I&rsquo;m also an alumnus of <a href="http://ycombinator.com/" target="_blank">Y&nbsp;Combinator</a>, the entrepreneur program that has produced companies such as Dropbox and Airbnb.<span class="intersentencespace"></span> (Alas, my own Y&nbsp;Combinator startup was neither Dropbox nor Airbnb.)</p>


<!-- Begin MailChimp Signup Form -->

<div id="mc_embed_signup">
  <form action="//railstutorial.us4.list-manage.com/subscribe/post?u=f28e57865f6d3115bded33cc5&amp;id=7d01428470" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
    <div id="mc_embed_signup_scroll">

    <div class="mc-field-group field">
      <label for="mce-EMAIL">Join the mailing list for news and updates</label>
      <input type="email" value="" name="EMAIL" class="required email" id="mce-EMAIL">
      <input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
    </div>

    <div id="mce-responses" class="clear">
      <div class="response" id="mce-error-response" style="display:none"></div>
      <div class="response" id="mce-success-response" style="display:none"></div>
    </div>

    <div style="position: absolute; left: -5000px;">
      <input type="text" name="b_f28e57865f6d3115bded33cc5_7d01428470" tabindex="-1" value="">
      <input type="checkbox" checked="checked" value="65536" name="group[25473][65536]" id="mce-group[25473]-25473-0">
    </div>


  </form>
</div>

<script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script><script type='text/javascript'>(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);</script>
<!--End mc_embed_signup-->

</div>

  
  

</div>




      <footer id="footer">
  <div class="container">
    <a id="logo" href="/">Michael Hartl</a>

    <ul id="footNav">
      <li><a href="/">Home</a></li>

      
        
        <li><a href="/about/">About</a></li>
        
      
        
        <li><a href="/archive/">Archive</a></li>
        
      
        
      
        
      

      <li class="email"><a href="http://tauday.com/" target="_blank">Tau Day</a></li>
      <li class="buyLnk"><a href="https://www.railstutorial.org/" target="_blank">Ruby on Rails Tutorial</a></li>
    </ul>

    <ul id="buyIcons">
      <li>
        <a target="_blank" name="buy" href="http://www.railstutorial.org/"><div class="iconEbook">
          <img width="184" src="/images/buy_ebook.png" alt="Buy_ebook">
          <img width="184" src="/images/buy_ebook_o.png" alt="Buy_ebook_o">
        </div>
        <br>
        <h3>Buy Ebook and Videos</h3>
        <p>Buy the downloadable ebook versions of <em>The Tau Manifesto</em> in EPUB, MOBI, and PDF formats, along with downloadable versions of the Tau Talk videos!</p>
        </a>
      </li>
    </ul>

    
<ul class="share">

  <li><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://michaelhartl.com/" data-count="horizontal" data-via="jekyllrb" data-text="No, really, pi is wrong: The Tau Manifesto by Michael Hartl #TauDay">Tweet</a></li>
  <li><div class="fb-like" data-href="http://michaelhartl.com/" data-layout="button_count" data-action="like" data-show-faces="false" data-share="true"></div>
  </li>
  
    <li><a href="/feed.xml" class="iconLink"><i class="fa fa-rss"></i></a></li>
  
</ul>

    </div>
  </div>
</footer>

    </div>

    <script>
  (function() {
      var v = document.getElementsByClassName("youtube-player");
      for (var n = 0; n < v.length; n++) {
          var p = document.createElement("div");
          p.innerHTML = labnolThumb(v[n].dataset.id);
          p.onclick = labnolIframe;
          v[n].appendChild(p);
      }
  })();

  function labnolThumb(id) {
      return '<img class="youtube-thumb" src="//i.ytimg.com/vi/' + id + '/hqdefault.jpg"><div class="play-button"></div>';
  }

  function labnolIframe() {
      var iframe = document.createElement("iframe");
      iframe.setAttribute("src", "//www.youtube.com/embed/" + this.parentNode.dataset.id + "?autoplay=1&autohide=2&border=0&wmode=opaque&enablejsapi=1&controls=1&showinfo=1");
      iframe.setAttribute("frameborder", "0");
      iframe.setAttribute("allowfullscreen", "");
      iframe.setAttribute("id", "youtube-iframe");
      this.parentNode.replaceChild(iframe, this);
  }
</script>
    <div id="fb-root"></div>
<script>

(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.3&appId=119843151394139";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
    

<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-239903-3', 'auto');
  ga('send', 'pageview');

</script>

  </body>
</html>
