---
layout: post
status: PUBLISHED
published: true
title: Community Development News - January 2017
id: 01fa20cf-642b-4205-ba4e-708520fcdda4
date: '2017-02-14 16:39:06 -0500'
categories: comdev
tags: []
permalink: comdev/entry/community-development-news-january-2017
---
<p>Welcome to our monthly blog update about what is happening in Apache Community Development. This month we have news about FOSDEM and our Commnity Development presence there, Feathercast and the audio recordings available and the new mini conference format for Apachecon NA 2017.   </p>
<h2>Community Development at FOSDEM 2017</h2>
<p> During January a lot of our focus has been in preparing for <a href="https://fosdem.org/2017/">FOSDEM</a>. FOSDEM is a open source conference in Brussels that is held every year. It is completely free to attend and attracts 4000-5000 attendees. It is a great event to spread the word about Apache and also projects can use it to promote themselves to potential new users or community members.<br /> <br />
A wiki page was setup with details of the event where projects could book time on the ASF booth to promote their project.This year we had a special banner made featuring logos of as many Apache projects as we could fit. Having the banner with the project logos really helped people realise just how many projects we have at the ASF. We are now seeing a lot more recognition of Apache projects than before.<br /> <br />
Around 20 FOSDEM presentations and talks were from ASF contributors which shows that the ASF is already building a strong presence. There is also an increased awareness of Big Data and IoT and it was good to see that many people recognised ASF projects as leading the way in these technology areas. And <a href="https://twitter.com/TheASF/status/828031760810270720">tweets</a> from the ASF Twitter account helped guide people to our booth. <br />
During FOSDEM we also had the opportunity to record some Feathercast interviews. Links can the recordings can be found below: </p>
<p> <a href="https://s.apache.org/89GS">Interview : Joerg Schad (Apache Mesos)</a> <br /> <a href="https://s.apache.org/mORk">Interview : Holden Karau (Apache Spark)</a> <br /> <a href="https://s.apache.org/zNRf">Interview : Danese Cooper</a> <br /> <a href="https://s.apache.org/i9cJ">Interview : Rich Bowen </a> <br /> <a href="https://s.apache.org/mS4I">Interview : Roman Shaposhnik </a> <br /> <a href="https://s.apache.org/eB0z">Interview : Isabel Drost-Fromm </a> <br />
Thanks to everyone who helped out on and around the ASF booth during the conference and also to the people who volunteered to be interviewed. We are looking forward to being at FOSDEM again next year.</p>
<h2>Feathercast</h2>
<p> <a href="https://feathercast.apache.org/">Feathercast</a> was started by David Reid and Rich Bowen and is currently used to store podcasts and recorded audio from ASF related events or presentations. It contains a lot of audio from previous Apachecons and is a good way to catch a presentation that you haven't been able to attend. All the audio from Apache Big Data and Apachecon 2016 in Seville has is now uploaded and available.<br /> <br />
 In the past Feathercast was jointly maintained by David and Rich. More recently Rich has taken on the majority of the work involved so now we are actively looking for additional volunteers to help share the workload. If you are interested in helping out with Feathercast then please follow the feathercast mailing list feathercast@apache.org or subscribe to the feathercast mailing list&nbsp; by sending an email to feathercast-subscribe@apache.org        </p>
<h2>Apachecon NA 2017</h2>
<p> The Community Development team will be working on helping support the preparations for <a href="https://apachecon.com/">Apachecon</a> NA in Miami. If you have been following the discussions on our mailing lists then you will have seen that a new format for Apachecon has been proposed. This involves mini project or themed conferences integrated with Apachecon. Already confirmed for Miami are the following: </p>
<ul>
<li>Apache: Big Data </li>
<li>Cloudstack Collaboration Conference</li>
<li> Tomcatcon</li>
<li>Apache IoT&nbsp; (Internet of Things)</li>
<li>FlexJS Summit</li>
<li>Apache Traffic Server and Traffic Control Summit</li>
</ul>
<p>We will still be including our core Apachecon tracks for community, lightning talks, general project presentations and tutorials, as well as our regular Barcamp.We hope that you will enjoy the new format and hope to see as many of you as possible in Miami.       </p>
<h2>Contacting Community Development</h2>
<p> Remember that we are always happy to get your feedback and comments so please feel free to contact us, follow our events and participate in our discussions on <a href="https://s.apache.org/qdrd">our mailing list</a>. If you would like to be kept up to date with all the latest news about what is happening in Community Development then please subscribe to our mailing list by sending an email to dev-subscribe AT community DOT apache DOT org.</p>
