<!DOCTYPE html>
<html lang="en-US">

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

    <link rel="stylesheet" href="/assets/css/custom.css">
    <link rel="stylesheet" href="/assets/css/main.css">
    <link rel="stylesheet" href="/assets/css/font-awesome.min.css">

    <link rel="shortcut icon" href="/favicon.ico?1">
    <!-- Begin Jekyll SEO tag v2.8.0 -->
<title>Nemo blog published! | Nemo</title>
<meta name="generator" content="Jekyll v3.9.3" />
<meta property="og:title" content="Nemo blog published!" />
<meta name="author" content="Won Wook SONG" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="Our blog is published and is online! We’ll be posting exciting news related to our project on our blog." />
<meta property="og:description" content="Our blog is published and is online! We’ll be posting exciting news related to our project on our blog." />
<link rel="canonical" href="http://nemo.apache.org//blog/2018/03/20/nemo-blog-published/" />
<meta property="og:url" content="http://nemo.apache.org//blog/2018/03/20/nemo-blog-published/" />
<meta property="og:site_name" content="Nemo" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-03-20T00:00:00+09:00" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:title" content="Nemo blog published!" />
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"Won Wook SONG"},"dateModified":"2018-03-20T00:00:00+09:00","datePublished":"2018-03-20T00:00:00+09:00","description":"Our blog is published and is online! We’ll be posting exciting news related to our project on our blog.","headline":"Nemo blog published!","mainEntityOfPage":{"@type":"WebPage","@id":"http://nemo.apache.org//blog/2018/03/20/nemo-blog-published/"},"url":"http://nemo.apache.org//blog/2018/03/20/nemo-blog-published/"}</script>
<!-- End Jekyll SEO tag -->


    <link rel="canonical" href="http://nemo.apache.org//blog/2018/03/20/nemo-blog-published/">
    <link rel="alternate" type="application/rss+xml" title="Nemo" href="http://nemo.apache.org//feed.xml" />
</head>


<body>

    <nav class="navbar navbar-default navbar-fixed-top">
    <div class="container navbar-container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
            <a class="navbar-brand" href="/">
                <span><img src="/assets/img/nemo-logo.png" alt="Logo"></span>
            </a>
        </div>
        <div id="navbar" class="collapse navbar-collapse">
            <ul class="nav navbar-nav">
                <li ><a href="/docs/home/">Docs</a></li>
                <li ><a href="/apidocs">APIs</a></li>
                <li ><a href="/pages/downloads">Downloads</a></li>
                <li ><a href="/pages/talks">Talks</a></li>
                <li ><a href="/pages/team">Team</a></li>
                <li ><a href="/pages/license">License</a></li>
                <li  class="active" ><a href="/blog/2022/09/10/release-note-0.4/">Blog</a></li>
                <li class="dropdown">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">ASF<span class="caret"></span></a>
                  <ul class="dropdown-menu">
                    <li><a href="http://www.apache.org/">Apache Software Foundation</a></li>
                    <li><a href="https://www.apache.org/foundation/how-it-works.html">How Apache Works</a></li>
                    <li><a href="https://www.apache.org/licenses/">License</a></li>
                    <li><a href="https://www.apache.org/security/">Security</a></li>
                    <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy</a></li>
                    <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsoring Apache</a></li>
                    <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                  </ul>
                </li>
            </ul>
            <div class="navbar-right">
                <form class="navbar-form navbar-left">
                    <div class="form-group has-feedback">
                        <input id="search-box" type="search" class="form-control" placeholder="Search...">
                        <i class="fa fa-search form-control-feedback"></i>
                    </div>
                </form>
                <ul class="nav navbar-nav">
                    <li><a href="https://github.com/apache/incubator-nemo"><i class="fa fa-github" aria-hidden="true"></i></a></li>
                </ul>
            </div>
        </div>
    </div>
</nav>


    <div class="page-content">
        <div class="wrapper">
            <div class="container">
    <div class="row">

        <div class="col-md-4">
            <div class="well">
                <h4>RECENT POSTS</h4>
                <ul class="list-unstyled post-list-container">
                    
                    <li><a href="/blog/2022/09/10/release-note-0.4/" >Nemo Release 0.4</a></li>
                    
                    <li><a href="/blog/2022/08/15/beam-runner/" >Beam Nemo Runner documents updated!</a></li>
                    
                    <li><a href="/blog/2022/06/07/release-note-0.3/" >Nemo Release 0.3</a></li>
                    
                    <li><a href="/blog/2020/03/09/release-note-0.2/" >Nemo Release 0.2</a></li>
                    
                    <li><a href="/blog/2019/03/02/release-note-0.1/" >Nemo Release 0.1</a></li>
                    
                    <li><a href="/blog/2018/03/23/shuffle-on-nemo/" >Optimizing shuffle performance using Nemo</a></li>
                    
                    <li><a href="/blog/2018/03/23/pado-on-nemo/" >Harnessing transient resources using Nemo</a></li>
                    
                    <li><a href="/blog/2018/03/20/nemo-blog-published/"  class="active" >Nemo blog published!</a></li>
                    
                    <li><a href="/allposts">All posts ...</a></li>
                </ul>
            </div>
        </div>

        <div class="col-md-8">
            <h1>Nemo blog published!</h1>
            <p>Mar 20, 2018 • Won Wook SONG</p>
            <div  id="markdown-content-container"><p>Our blog is published and is online! We’ll be posting exciting news related to our project on our blog.</p>

<p>Your contribution is welcome!</p>
</div>
            <hr>
            <ul class="pager">
                 
                <li class="next">
                    <a href="/blog/2018/03/23/pado-on-nemo/">
                      Newer <span aria-hidden="true">&rarr;</span>
                    </a>
                </li>
                
            </ul>
        </div>

    </div>
</div>

        </div>
    </div>

    <footer class="footer">
    <div class="container">
        <div class="row">
            <div class="col-sm-11">
                <p class="text-center">
                    Nemo 2023 |
                    Powered by <a href="https://github.com/aksakalli/jekyll-doc-theme">Jekyll Doc Theme</a>
                </p>
                <br>
                <p class="text-muted text-center">
                    Disclaimer: Apache Nemo (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
                    <br>
                    <br>
                    Copyright © 2022 The Apache Software Foundation. Apache and the Apache feather logo are trademarks of The Apache Software Foundation 
                </p>
                <!-- <p class="text-muted">Place sticky footer content here.</p> -->
            </div>
            <div class="col-sm-1">
                <a href="https://www.apache.org/events/current-event.html">
                    <img src="https://www.apache.org/events/current-event-125x125.png">            
                </a>
            </div>
        </div>
    </div>
</footer>

    <script>
  var baseurl = ''
</script>
<script src="/assets/js/jquery-1.12.4.min.js "></script>
<script src="/assets/js/bootstrap.min.js "></script>
<script src="/assets/js/typeahead.bundle.min.js "></script>

<script src="/assets/js/main.js "></script>

</body>

</html>
