<!doctype html>
<!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

         https://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<html lang="en" prefix="og: https://ogp.me/ns#">
  <head>
      <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>Apache Template - Blogs</title>


    <!-- Below Meta Tags Generated via https://www.opengraph.xyz -->
    <!-- If you don't care about social media then remove this section -->
    <!-- Values are set in pelicanconf.py -->
    <!-- HTML Meta Tags -->
    <meta name="description" content="Provides a template for projects wishing to use the Pelican ASF static content system">
    <!-- Facebook Meta Tags -->
    <meta property="og:url" content="https://template.apache.org">
    <meta property="og:type" content="website">
    <meta property="og:title" content="Apache Template">
    <meta property="og:description" content="Provides a template for projects wishing to use the Pelican ASF static content system">
    <meta property="og:image" content="https://template.apache.org/images/logo.png">
    <!-- Twitter Meta Tags -->
    <meta name="twitter:card" content="summary_large_image">
    <meta property="twitter:domain" content="template.apache.org">
    <meta property="twitter:url" content="https://template.apache.org">
    <meta name="twitter:title" content="Apache Template">
    <meta name="twitter:description" content="Provides a template for projects wishing to use the Pelican ASF static content system">
    <meta name="twitter:image" content="https://template.apache.org/images/logo.png">
    <!-- Above Meta Tags Generated via https://www.opengraph.xyz -->

    <!-- Start favicon styles - use apache feather -->
    <link rel="shortcut icon" href="https://www.apache.org/favicons/favicon.ico">
    <link rel="apple-touch-icon" sizes="57x57" href="https://www.apache.org/favicons/apple-touch-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="https://www.apache.org/favicons/apple-touch-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="https://www.apache.org/favicons/apple-touch-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="https://www.apache.org/favicons/apple-touch-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="https://www.apache.org/favicons/apple-touch-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="https://www.apache.org/favicons/apple-touch-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="https://www.apache.org/favicons/apple-touch-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="https://www.apache.org/favicons/apple-touch-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="https://www.apache.org/favicons/apple-touch-icon-180x180.png">
    <link rel="icon" type="image/png" href="https://www.apache.org/favicons/favicon-32x32.png" sizes="32x32">
    <link rel="icon" type="image/png" href="https://www.apache.org/favicons/favicon-194x194.png" sizes="194x194">
    <link rel="icon" type="image/png" href="https://www.apache.org/favicons/favicon-96x96.png" sizes="96x96">
    <link rel="icon" type="image/png" href="https://www.apache.org/favicons/android-chrome-192x192.png" sizes="192x192">
    <link rel="icon" type="image/png" href="https://www.apache.org/favicons/favicon-16x16.png" sizes="16x16">
    <!--<link rel="manifest" href="https://www.apache.org/favicons/manifest.json" crossorigin="anonymous">-->
    <meta name="msapplication-TileColor" content="#603cba">
    <meta name="msapplication-TileImage" content="https://www.apache.org/favicons/mstile-144x144.png">
    <meta name="msapplication-config" content="https://www.apache.org/favicons/browserconfig.xml">
    <meta name="theme-color" content="#282661">
    <!-- End favicon styles - use apache feather -->

    <!-- Start load of stylesheets (will need to upgrade periodically) -->
    <link rel="stylesheet"
      href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
      integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
      crossorigin="anonymous">
    <link rel="stylesheet"
      href="https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/3.0.1/github-markdown.min.css"
      crossorigin="anonymous">
    <!-- Override css for this site. You can do this inline as shown here or with a site asset. See comment.-->
    <style>
html {
  font-size: 18px;
}
body {
  font-family: 'Montserrat', 'Source Sans Pro','Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 300;
  background-color: #fff;
}
.markdown-body {
  box-sizing: border-box;
  min-width: 200px;
  max-width: 980px;
  margin: 0 auto;
  padding: 45px;
}
@media (max-width: 767px) {
  .markdown-body {
    padding: 15px;
  }
}
.footer {
  border-top: 1px solid black;
  padding-top: 3px;
}
.right-align {
  text-align: right;
}
.center-align {
  text-align: center;
}
blockquote {
  background: bisque;
}
.bg-primary {
  background-color: #005bff!important;
}
a {
  font-weight: 400;
  color: #4643aa;
#  color: #005bff;
}
#li {
#  line-height: 2;
#}
.h1, h1 {
  font-size: 1.5rem;
}
.h2, h2 {
  font-size: 1.4rem;
}
.h3, h3 {
  font-size: 1.3rem;
}
.h4, h4 {
  font-size: 1.2rem;
}
.h5, h5 {
  font-size: 1.1rem;
}
.headerlink {
  visibility: hidden;
}
h1:hover > .headerlink, h2:hover > .headerlink, h3:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, h6:hover > .headerlink {
  visibility: visible
}
    </style>
    <!--<link rel="stylesheet" href="/styles/styles.css">-->
    <!-- End stylesheets -->
  </head>

  <body id="index" class="home">
    <!-- Start branding and top navigation -->
    <nav class="navbar navbar-expand-lg navbar-dark bg-primary">
      <img src="https://www.apache.org/foundation/press/kit/feather.svg"
        width="30" height="30" class="d-inline-block align-top"
        alt="Apache Feather">
      <a class="navbar-brand" href="/">Apache Template</a>
      <button class="navbar-toggler" type="button"
        data-toggle="collapse" data-target="#navbarSupportedContent"
        aria-controls="navbarSupportedContent" aria-expanded="false"
        aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>

      <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav mr-auto">
          <li class="nav-item active">
            <a class="nav-link" href="/index.html">Home</a>
          </li>
          <li class="nav-item active dropdown">
            <a class="nav-link dropdown-toggle" href="#" id="exampleDropdown"
              role="button" data-toggle="dropdown" aria-expanded="false">Examples</a>
            <ul class="dropdown-menu" aria-labelledby="exampleDropdown">
              <li><a class="dropdown-item" href="/board.html">Board</a></li>
              <li><a class="dropdown-item" href="/featured.html/">Featured</a></li>
              <li><a class="dropdown-item" href="/committees.html">Committees</a></li>
              <li><a class="dropdown-item" href="/projects.html">Projects</a></li>
              <li><a class="dropdown-item" href="/project_list.html">Project Columns</a></li>
              <li><hr class="dropdown-divider"></li>
              <li><a class="dropdown-item" href="/eccn.html">Site Data</a></li>
              <li><a class="dropdown-item" href="/tweets.html">Tweets</a></li>
              <li><a class="dropdown-item" href="/blogs.html">Blogs</a></li>
            </ul>
          </li>
          <li class="nav-item active">
            <a class="nav-link" href="/downloads.html">Downloads</a>
          </li>
          <li class="nav-item active">
            <a class="nav-link" href="/faq.html">FAQ</a>
          </li>
        </ul>
        <div class="navbar-nav">
          <div class="nav-item dropdown dropdown-menu-right active">
            <a class="nav-link dropdown-toggle" href="#"
              role="button" data-toggle="dropdown" aria-haspopup="true"
              aria-expanded="false">About</a>
            <div class="dropdown-menu dropdown-menu-right">
              <a class="dropdown-item" href="https://www.apache.org/">Foundation</a>
              <div class="dropdown-divider"></div>
              <a class="dropdown-item"
                href="https://www.apache.org/licenses/">License</a>
              <a class="dropdown-item"
                href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
              <a class="dropdown-item"
                href="https://www.apache.org/foundation/thanks.html">Thanks</a>
              <div class="dropdown-divider"></div>
              <a class="dropdown-item"
                href="https://www.apache.org/security/">Security</a>
            </div>
          </div>
        </div>
      </div>
    </nav>
    <!-- End branding and top navigation -->

    <!-- Start main content area -->
    <div class="container">
      <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="#">Blogs</a></p>
    <h1>Blogs</h1>
    

    <!-- Licensed under ALv2 -->
<h3 id="foundation">Foundation<a class="headerlink" href="#foundation" title="Permalink">&para;</a></h3>
<h4 id="post">Post<a class="headerlink" href="#post" title="Permalink">&para;</a></h4>
<p><a href="https://blogs.apache.org/foundation/entry/the-apache-news-round-up236">The Apache News Round-up: week ending 23 July 2021</a></p>
<p>
</p>
<p>
</p>
<p>
 Happy Friday! Let's review at what's happened with the Apache community over the past week:
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
<span style="font-weight:700;">
  ASF Board
 </span>
 &ndash; management and oversight of the business affairs of the corporation in accordance with the Foundation's bylaws.
 <br/>
 - Next Board Meeting: 18 August 2021. Board calendar and minutes&nbsp;&lt;a href="https://apache.org/foundation/board/calendar.html"...
</p>
<h4 id="post_1">Post<a class="headerlink" href="#post_1" title="Permalink">&para;</a></h4>
<p><a href="https://blogs.apache.org/foundation/entry/the-apache-news-round-up235">The Apache News Round-up: week ending 16 July 2021</a></p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
 The week has zipped by --it's Friday already-- and it's time to take a
 look at what the Apache community has been up to over the past week:
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<span style="font-weight:700;">
 ASF Board
</span>
&ndash; management and oversight of the business affairs of the corporation in accordance with the...
<h4 id="post_2">Post<a class="headerlink" href="#post_2" title="Permalink">&para;</a></h4>
<p><a href="https://blogs.apache.org/foundation/entry/the-apache-news-round-up234">The Apache News Round-up: week ending 9 July 2021</a></p>
<p>
</p>
<p>
 Happy Friday, everyone. The Apache community has had another great week. Let's review what we've been up to:
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<span style="font-weight:700;">
 ASF Board
</span>
&ndash; management and oversight of the business affairs of the corporation in accordance with the Foundation's bylaws.
<br/>
- Next Board Meeting: 21 July 2021. Board calendar...
<h3 id="planet">Planet<a class="headerlink" href="#planet" title="Permalink">&para;</a></h3>
<p><a href="https://blogs.apache.org/foundation/entry/the-apache-news-round-up236">The Apache News Round-up: week ending 23 July 2021</a></p>
<h3 id="conferences">Conferences<a class="headerlink" href="#conferences" title="Permalink">&para;</a></h3>
<p><a href="https://blogs.apache.org/conferences/entry/check-out-the-schedule-for">Check Out the Schedule for ApacheCon@Home 2021</a></p>


    </div>
    <!-- End main content area -->

    <!-- Start footer -->
    <footer class="navbar-expand-lg navbar-light bg-light">
      <div class="footer" id="footer">
        <div class="row container-fluid">
          <div class="col-sm">
            <a href="https://www.apache.org/">
              <img src="https://www.apache.org/img/asf_logo.png" alt="The Apache Software Foundation" style="border: 0; margin-top: 2px" width="200">
            </a>
          </div>
          <div class="col-sm center-align">
            <a href="https://www.apache.org/foundation/contributing.html">
              <img src="https://www.apache.org/images/SupportApache-small.png" alt="Support The ASF" height="80" width="80">
            </a>
          </div>
          <div class="col-sm right-align">
            <a class="acevent" data-format="wide" data-mode="light" data-event="random"></a>
          </div>
        </div>

        <div class="container-fluid">
          Copyright &copy; 2021 The Apache Software Foundation,
          Licensed under the
          <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0.</a>
          <br/>
          Apache, the Apache feather logo, and "Project" are trademarks or registered trademarks of <a href="https://www.apache.org/">The Apache Software Foundation.</a>
        </div><!-- #container-fluid -->

      </div>
    </footer>
    <!-- End footer -->

    <!-- Start the loading of javascript frameworks (will need to upgrade periodically) -->
    <script src="https://www.apachecon.com/event-images/snippet.js"></script>
    <script
      src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.slim.min.js"
      integrity="sha512-6ORWJX/LrnSjBzwefdNUyLCMTIsGoNP6NftMy2UAm1JBm6PRZCO1d7OHBStWpVFZLO+RerTvqX/Z9mBFfCJZ4A=="
      crossorigin="anonymous"></script>
    <script
      src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
      integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
      crossorigin="anonymous"></script>
    <script
      src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
      integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
      crossorigin="anonymous"></script>
    <!-- End the loading of javascript frameworks -->

    <!-- Source: blogs.ezmd; Template: page; Url: pages/.html -->
  </body>
</html>