As students at Holberton School, a software engineering school based in San Francisco, Siphan and I are exposed to lots of exciting technology! The main goal of the school is to produce full-stack engineers in two years. Although we are only four months into the program, we are already learning how to use the Docker platform.
A few weeks ago, we held our very first hackathon at school – and of course it was focused on Docker! The school’s founders (one of whom was an original member of the Docker marketing #boomteam) thought now was the perfect time for us to participate in a hackathon, so they teamed up with Docker to make it happen.
In the spirit of DockerCon, our guidelines were basically the same as those of DockerCon Cool Hack Challenge: make the most awesome things we could think of using Docker, and do it in ten hours. Cue the intense music.
Siphan and I joined forces as Team Tyrion Cannister. Considering neither of us had any coding experience prior to the school (read: we’re total noobs), it took us a while to come up with even just a viable idea. At 2 a.m. the night before the hackathon, we finally came up with something that was both doable and cool: a GUI for a piece of software called neural style (GitHub repo here).
The idea spawned out of a combination of some of the past projects we had done at school. We had just learned about MVC and the tkinter Python module, and creating pictures using neural style was easily our most visually impressive project. The only thing is that installing and using neural style can be pretty intimidating. So our goal was to make it more accessible to a wider audience by providing a nice, friendly user interface.
The main plan was to write a Python script that would launch a tkinter GUI. The GUI would have input fields for the user to fill out about how to run neural style, like the urls of the pictures to use and how many iterations to run, and then the program would pass those parameters into the neural style bash command. The bash command would be stored as a jSON string, which would be called using the subprocess Python module. So simple and elegant, right?
It wasn’t until an hour and a half before the deadline, when we were assembling all the pieces and running neural style in the Docker container, that we finally hit a problem that stopped us in our tracks: the Docker image we built our container on (ubuntu:14.04) had no way of launching a windowing system. This is a fancy way of saying no GUI.
After a lot of frantic research, we were saved by piecing together information from a bunch of the aforementioned awesome blogs. The solution relied on the magic of the docker run -v option, which let us mount my laptop’s X11 socket into the container. With just a few more tweaks to the docker run command, we had GUIs for everyone (with a Linux system)!
Participating in this hackathon was an incredibly rewarding experience. It was a really cool, engaging way for us to learn the basics and get started with Docker, which was actually made really easy because the tutorials are so well-explained and straightforward to follow.
It was also an awesome opportunity for us students to test our own limits and showcase our ingenuity. We saw all sorts of super cool hacks, from a Docker Arcade to a Raspberry Pi smart home simulator to an interactive Docker installation tutorial. Watching our peers present their Docker hacks confirmed that we’ve all learned and accomplished a ton in just a few months. You can see for yourself right here!
That’s why it was such a huge honor when the judges awarded us first place, and we couldn’t be more thrilled to attend DockerCon 2016! We’re looking forward to learning more about Docker during the Hands-on Labs, watching other folks present, and just being a part of the amazing Docker community.
- Easy Neural Style – Rona Chong & William McCann
- Web-Based Pokediary – Electra Chong & Joe Greene
- Holberton Code Tester – Mason Fish & Rick Harris
- Neural Time – Praylin Diana Dinamoni & Asaia Palacios
- Docker Arcade – Steven Garcia & Sravanthi Sinha
- Neural Network Web GUI – Josquin Gaillard & John Serrano
- Command Line Docker Tutorial – Damian Ali & Marine Déjean
- Holberton Integrated Work Environment – Bennett Buchanan & John Spence
- Automating Documentation – Kris Bredemeier & Augustin Francis Boeuf
- Raspberry Pi and Docker Home Automation – Chandler Mayo & Joshua Parkin
Can’t join us in Seattle for DockerCon 2016?
Don’t worry, all of the general sessions will be livestreamed! We are also recording the conference sessions and will post them online along with the presenter’s slides after the conference.
Here is the schedule for the DockerCon livestream:
Sign up here for DockerCon updates including a daily recap of the news and links to the slides and recorded videos.
Learn More about Docker
- New to Docker? Try our 10 min online tutorial
- Share images, automate builds, and more with a free Docker Hub account
- Read the Docker 1.11 Release Notes
- Subscribe to Docker Weekly
- Sign up for upcoming Docker Online Meetups
- Attend upcoming Docker Meetups
- Register for DockerCon 2016
- Watch DockerCon EU 2015 videos
- Start contributing to Docker