Banks of the Boneyard 17.1.0

First of all, sorry for being gone so long, but we are finally back!

So, what’s happening in ACM?

It has been a busy start to the spring semester, as HackIllinois just wrapped up and many ACM projects are starting to being deployed in production.

HackIllinois

HackIllinois was a departure from HackIllinois in the past, and other hackathons in general. This year the event was focused entirely on getting college students involved in the Open Source Community and as far as we know, this is the first Open Source College Hackathon ever.

HackIllinois Staff 2017

We had the Open Source community and college students from around the nation descend on Siebel Center and ECEB, with developers representing Rust, Gulp, Apache Airavata, Apache Traffic Server, Python, Debian, Ubuntu, NixOS and more and students from as far as Florida and California. Students were treated to in depth debates on copyleft vs permissive licenses, stories of how groups like Rust got started and great talks and panels from our VIP judges Karl Fogel (@kfogel), Jean-Baptiste Kempf, Jessica McKeller (@jessicamckellar), Carol Willing (@WillingCarol), and Jay Freeman (@saurik). And of course there was great swag, including a special edition of Karl’s book Producing Open Source Software printed especially for HackIllinois.

Opening Ceremonies

The results were beyond even our expectations as students either created brand new open source projects or contributed to existing ones. We saw new web frameworks (https://github.com/Flatline4/Flatline4) and a system for prototyping bitcoin trading strategies (https://github.com/CoinTK/CoinTK) presented and we saw significant contributions to huge projects like Rust (https://github.com/brson/rust-cookbook) and Yargs started, and completed during the event.

We saw 3 releases of packages in the Gulp.js project, completed during HackIllinois because the students solved the last remaining issues preventing their release.

There is plenty more to be said about how HackIllinois went, so keep an eye out for that.

Groot

The crowning achievement so far in terms of projects has been the launch of Groot, our new chapter infrastructure. Groot has been a year and a half in the making, replacing our old infrastructure Liquid and totals 25,000 lines of source code. The process was hard, but we managed to migrate all the data over to the new system, and the new ACM website, backed by Groot is live!

acm.illinois.edu

What’s so special about a website?

Groot is architected to try and avoid the issues we had with Liquid. With how fast technology changes, it’s hard to find people who know how to use a framework that was popular just a few years earlier. So Groot adopts the micro-service architecture where all major components are modular (so separate services to operate things like caffeine, manage members, store quotes, etc.). And so if a service is getting too old to maintain, it can be thrown out and rewritten easily (our largest service is 1.5k lines of code and our smallest is just over 100). We unify the services in what is called an API gateway. This makes it easier for frontend developers to manage backend, and the gateway also provides application level security and some light request sanitization.

Introducing Arbor

Since the idea of micro-services is fairly popular, there are a couple frameworks to help facilitate setting up the system (mostly focusing on the API gateway). However, most are geared towards industry level performance, and so they are a bit hard to work with and offer more features than we need.

So we ended up developing our own framework for micro-services called Arbor. Arbor is like the flask or sinatra of API Gateway frameworks. Its easy to configure, basically documents itself and provides the key features for an API Gateway: the proxy, a service registry, a client registry, and some security features

You can checkout both Arbor and Groot on our github (https://github.com/acm-uiuc), if you want to discuss ideas on how to improve the system, join ACM’s gitter https://gitter.im/acm-uiuc.

Merch

Unfortunately, due to age, Caffeine passed away late last semester, and though we have kept its front panel around to remember it by, work is almost complete on its successor Merch. Through a generous donation from the ACM Alumni at Palantir, we have received and proceeded to modify the new machine to vend via commands to a web service.

This machine will integrate into the Groot infrastructure and will have the ability to not only vend soda cans, but bottles, shirts, swag and soylent. SIGBot has been leading the effort on the device side and the Groot Development team has been working on the service integration.

Twilight

Chroma was a staple of the office, but as it was designed in the era before accessible IoT platforms. We are working on a next generation version of connected lights, referred to as Twilight, based around mesh protocols like Thread and platforms like the Raspberry Pi Zero and the Teensy LC. The goal is to create a mesh networking platform using only off the shelf components so repairs and improvements are much easier.

Twilight will also have a new look. It will be a set of light boxes that will be almost like RGB ceiling tiles, with the inside lined with individually addressable RGB LED strips.

Concert

Finally work is being done to replace our office jukebox system Beats. The next generation system will be called Concert. Out of all the ongoing projects at ACM, this one is in its earliest days, but it will be a system run on top of the Music Player Daemon (mpd) commonly used on many Linux based systems. It seeks to be more responsive, and use more modern streaming techniques than our past system.

We will be keeping you posted on the progress of these projects and more on goings in the ACM office in the coming months so stay tuned.