---
layout: post
status: PUBLISHED
published: true
title: 'The Apache News Round-up: week ending 8 September 2017'
id: 8c08f0af-1568-4230-8a3c-51035af1adef
date: '2017-09-09 21:12:38 -0400'
categories: foundation
tags:
- summary
- projects
- software
- news
- weekly
- community
- foundation
- round-up
- initiatives
- apache
permalink: foundation/entry/the-apache-news-round-up35
---
<div>Happy Friday! Let's review what the Apache community has been working on over the past week:</div>
<div></div>
<div>Success at Apache &ndash;the monthly blog series that&nbsp;focuses on the processes behind why the ASF "just works".<br />&nbsp;- Lowering Barriers to Open Innovation by Luke Han&nbsp;<a href="https://s.apache.org/dAlg">https://s.apache.org/dAlg</a></div>
<p>ASF Board &ndash;management and oversight of the business affairs of the corporation in accordance with the Foundation's bylaws.<br />&nbsp;- Next Board Meeting: 20 September. Board calendar and minutes <a href="http://apache.org/foundation/board/calendar.html">http://apache.org/foundation/board/calendar.html</a><br />&nbsp;- ASF Quarterly Report: Operations Summary Q1 FY2018&nbsp;<a href="https://s.apache.org/cEUm">https://s.apache.org/cEUm</a></p>
<p>ASF Infrastructure &ndash;our mighty distributed team on three continents keeps the ASF's infrastructure running around the clock.<br />&nbsp;- 7M+ weekly checks yield shazam performance at 99.85% uptime <a href="http://status.apache.org/">http://status.apache.org/</a></p>
<p>ASF Operations Factoid&nbsp;&ndash;this week, 460 Committers changed 1,011,972 lines of code over 2,764 commits. Top 5 contributors, in order, are: Jean-Baptiste Onofr&eacute;, Jian He, Samarth Jain, Francesco Chicchiricc&ograve;, and Claus Ibsen.</p>
<div>
<p>Apache Bahir&trade; &ndash;extensions to distributed analytic platforms such as Apache Spark.<br />&nbsp;- Apache Bahir 2.2.0 released <a href="http://bahir.apache.org">http://bahir.apache.org</a></p>
<p>Apache Chemistry&trade; cmislib &ndash;provides Open Source implementations of the Content Management Interoperability Services (CMIS) specification.<br />&nbsp;- Apache Chemistry cmislib 0.6.0 released&nbsp;<a href="http://chemistry.apache.org/">http://chemistry.apache.org/</a></p>
<p>Apache Commons&trade; &ndash;Commons CSV reads and writes files in variations of the Comma Separated Value (CSV) format.<br />&nbsp;- Apache Commons CSV 1.5 released<span style="white-space: pre;"> <a href="http://commons.apache.org/proper/commons-csv/">http://commons.apache.org/proper/commons-csv/</a></span></p>
<p>Apache Groovy&trade; &ndash;a multi-facet programming language for the JVM.<br />&nbsp;- Apache Groovy 2.6.0-alpha-1 released <a href="https://groovy.apache.org/">https://groovy.apache.org/</a></p>
<p>Apache HttpComponents&trade; Core &ndash;HTTP transport library including support for asynchronous execution based on Java NIO.<br />&nbsp;- Apache HttpComponents Core 5.0 alpha4 released&nbsp;<a href="http://hc.apache.org/httpcomponents-core/">http://hc.apache.org/httpcomponents-core/</a></p>
<p>Apache Jackrabbit&trade; Oak &ndash;a scalable, high-performance hierarchical content repository designed for use as the foundation of modern world-class Web sites and other demanding content applications.<br />&nbsp;- Apache Jackrabbit Oak 1.4.18 and Jackrabbit 2.6.9 released and Jackrabbit 2.4 retired&nbsp;<a href="http://jackrabbit.apache.org/">http://jackrabbit.apache.org/</a></p>
<p>Apache Lucene&trade; &ndash;a high-performance, full-featured text search engine library written entirely in Java.<br />&nbsp;- Apache Lucene 6.6.1 and Solr 6.6.1 released&nbsp;<a href="https://lucene.apache.org/">https://lucene.apache.org/</a></p>
<p>Apache MXNet (incubating)&nbsp;&ndash;a flexible and efficient library for deep learning.<br />&nbsp;- Apache MXNet (incubating) 0.11.0 released&nbsp;<a href="http://mxnet.incubator.apache.org/">http://mxnet.incubator.apache.org/</a></p>
<p>Apache Olingo&trade; &ndash;a Java library which enables developers to implement OData service providers (server) and consumers (clients).<br />&nbsp;- Apache Olingo 4.4.0 released&nbsp;<a href="http://olingo.apache.org/">http://olingo.apache.org/</a></p>
<p>Apache OpenMeetings&trade; &ndash;provides video conferencing, instant messaging, white board, collaborative document editing and other groupware tools using API functions of the Red5 Streaming Server for Remoting and Streaming.<br />&nbsp;- Apache OpenMeetings 3.3.1 released&nbsp;<a href="http://openmeetings.apache.org">http://openmeetings.apache.org</a></p>
<p>Apache Qpid&trade; &ndash; a messaging library for the Advanced Message Queuing Protocol 1.0 (AMQP 1.0, ISO/IEC 19464, http://www.amqp.org).<br />&nbsp;-&nbsp;Apache Qpid Proton-J 0.21.0 released&nbsp;<a href="http://qpid.apache.org/">http://qpid.apache.org/</a></p>
<p>Apache Struts&trade; &ndash;Open Source framework for creating Java Web applications.<br />&nbsp;- Apache Struts 2.3.34 and 2.5.13 General Availability with Security Fixes released <a href="http://struts.apache.org/">http://struts.apache.org/</a> </p>
</p></div>
<div>
<p>Apache Tomcat&trade; Native Library &ndash;provides portable API for features not found in contemporary JDKs.<br />&nbsp;- Apache Tomcat Native 1.2.14 released <a href="http://tomcat.apache.org/">http://tomcat.apache.org/</a></p>
<p>Apache Traffic Server&trade; &ndash;a high performance, scalable HTTP Intermediary and proxy cache.<br />&nbsp;- Apache Traffic Server v7.1.1 released&nbsp;<a href="https://trafficserver.apache.org/">https://trafficserver.apache.org/</a></p>
</p></div>
<div>
<p>Apache VCL&trade; &ndash;a self-service system used to dynamically provision and broker remote access to a dedicated compute environment for an end-user.<br />&nbsp;- Apache VCL 2.5 released&nbsp;<a href="http://vcl.apache.org/">http://vcl.apache.org/</a></p>
<p>Apache Wicket&trade; &ndash;an Open Source Java component oriented Web application framework.<br />&nbsp;- Apache Wicket 6.27.1 released&nbsp;<a href="http://wicket.apache.org">http://wicket.apache.org</a></p>
<div></div>
</p></div>
<div><strong>Did You Know?</strong></div>
<div>
<p>&nbsp;- Did you know that Netflix uses Apache Tinkerpop for storing and querying highly-interconnected data at scale?&nbsp;<a href="http://tinkerpop.apache.org/">http://tinkerpop.apache.org/</a></p>
<p><a href="https://projects.apache.org/committees.html?date"></a>&nbsp;- Did you know that The New York Times uses Apache Kafka to store and process every article ever published?&nbsp;<a href="http://kafka.apache.org/">http://kafka.apache.org/</a></p>
<p><a href="https://jaxenter.com/jax-magazine"></a>&nbsp;- Did you know that Emirates Reit Real Estate Investment Trust uses Apache Wicket?&nbsp;<a href="http://wicket.apache.org/">http://wicket.apache.org/</a></p>
</p></div>
<div></div>
<div><strong>Apache Community Notices:</strong></div>
<div></div>
<div>&nbsp;- "Success at Apache" focuses on the processes behind why the ASF "just works". 1) Project Independence <a href="https://s.apache.org/CE0V">https://s.apache.org/CE0V</a> 2) All Carrot and No Stick <a href="https://s.apache.org/ykoG">https://s.apache.org/ykoG</a> 3) Asynchronous Decision Making <a href="https://s.apache.org/PMvk%20">https://s.apache.org/PMvk</a>4) Rule of the Makers <a href="https://s.apache.org/yFgQ">https://s.apache.org/yFgQ</a> 5) JFDI --the unconditional love of contributors <a href="https://s.apache.org/4pjM">https://s.apache.org/4pjM</a> 6) Meritocracy and Me <a href="https://s.apache.org/tQQh">https://s.apache.org/tQQh</a> 7) Learning to Build a Stronger Community <a href="https://s.apache.org/x9Be">https://s.apache.org/x9Be</a>&nbsp;8) Meritocracy. <a href="https://s.apache.org/DiEo">https://s.apache.org/DiEo</a>&nbsp;9) Lowering Barriers to Open Innovation&nbsp;<a href="https://s.apache.org/dAlg">https://s.apache.org/dAlg</a></div>
<div></div>
<div>&nbsp;- Follow the ASF on social media: @TheASF on Twitter and on LinkedIn at <a href="https://www.linkedin.com/company/the-apache-software-foundation">https://www.linkedin.com/company/the-apache-software-foundation</a> (re-tweets/shares/likes most appreciated!)</div>
<div>
<p>&nbsp;- Presentations from ApacheCon <a href="https://s.apache.org/Hli7">https://s.apache.org/Hli7</a> and Apache: Big Data <a href="https://s.apache.org/tefE">https://s.apache.org/tefE</a> are available; as well as videos <a href="https://s.apache.org/AE3m">https://s.apache.org/AE3m</a> and audio recordings <a href="https://feathercast.apache.org/">https://feathercast.apache.org/</a></p>
<p><a href="https://feathercast.apache.org/"></a>&nbsp;- Check out the latest Apache Community Development newsletter <a href="https://blogs.apache.org/comdev/entry/community-development-news-july-2017">https://blogs.apache.org/comdev/entry/community-development-news-july-2017</a></p>
</p></div>
<div>&nbsp;- Do friend and follow us on the Apache Community Facebook page <a href="https://www.facebook.com/ApacheSoftwareFoundation/">https://www.facebook.com/ApacheSoftwareFoundation/</a> and Twitter account <a href="https://twitter.com/ApacheCommunity">https://twitter.com/ApacheCommunity</a></div>
<div>
<p>&nbsp;- The list of Apache project-related MeetUps can be found at <a href="https://twitter.com/ApacheCommunity">http://apache.org/events/meetups.html</a></p>
<p>&nbsp;- TomcatCon will be held 25 September in London&nbsp;<a href="https://www.eventbrite.com/e/tomcatcon-london-2017-tickets-36683639754">https://www.eventbrite.com/e/tomcatcon-london-2017-tickets-36683639754</a></p>
</p></div>
<div>
<p>&nbsp;- Meet members of the Apache Big Data communities at DataWorks/Hadoop Summit 20-21 September in Sydney <a href="https://dataworkssummit.com/">https://dataworkssummit.com/</a></p>
</p></div>
<div>
<p>&nbsp;- The Apache community will be at All Things Open --stop by the ASF booth and say hello! 23-24 October in Raleigh&nbsp;<a href="https://allthingsopen.org/">https://allthingsopen.org/</a></p>
<p>&nbsp;- Learn about Apache Atlas, AriaTosca (incubating), Hadoop YARN, Kafka, ManifoldCF, Ranger, Spot (incubating), Thrift, and more at Open Source Summit Europe + ELC Europe 2017 23-26 October in Prague&nbsp;<a href="https://osseu17.sched.com/">https://osseu17.sched.com/</a></p>
<p>&nbsp;- Catch the Apache Ignite and Spark communities at the In-Memory Computing Summit 24-25 October in San Francisco <a href="https://imcsummit.org/">https://imcsummit.org/</a></p>
<p>&nbsp;- ASF Annual Report is available at&nbsp;<a href="https://s.apache.org/FY2017AnnualReport">https://s.apache.org/FY2017AnnualReport</a></p>
</p></div>
<div>&nbsp;- Find out how you can participate with Apache community/projects/activities --opportunities open with Apache HTTP Server, Avro, ComDev (community development), Directory, Incubator, OODT, POI, Polygene, Syncope, Tika, Trafodion, and more! <a href="https://helpwanted.apache.org/">https://helpwanted.apache.org/</a></div>
<div></div>
<div>&nbsp;- Are your software solutions Powered by Apache? Download &amp; use our "Powered By" logos <a href="http://www.apache.org/foundation/press/kit/#poweredby">http://www.apache.org/foundation/press/kit/#poweredby</a></div>
<div></div>
<div>= = =</div>
<div></div>
<div>For real-time updates, sign up for Apache-related news by sending mail to announce-subscribe@apache.org and follow @TheASF on Twitter. For a broader spectrum from the Apache community, <a href="https://twitter.com/PlanetApache">https://twitter.com/PlanetApache</a> provides an aggregate of Project activities as well as the personal blogs and tweets of select ASF Committers.</div>
<p># # #</p>
