#### What?
A Sunday in the Boston MA area full of technology in an Open Space event organized by the Community for the Community, with the quality of the Apache Software Foundation events.

#### When?
May 19th, 2013 starting at 9AM EST.

#### Sponsors
<div>
  <img alt="Hippo" src="hippo.png" title="hippo" />
</div>
<div style="margin-top: 10px">
  <img alt="Hippo" src="basis.png" title="Basis" />
</div>  


