Dora Korpar and Siphan Bou

DockerCon Cool Hack Challenge: Tyrion Cannister Neural Style GUI

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?

Of course, actually building our idea wasn’t as simple as I’d hoped. During the hackathon, we ran into several installation issues with neural style, tkinter kept acting up, and we had to restart the computer a few times because the CPU was overloaded (shoutout to emacs backups!). But we were able to work through the bumps without any major crises, thanks in large part to the vast amount of awesome documentation on all things Docker, from the official website to third-party blogs.

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.

Don’t forget to check out our hack, Neural Style GUI, on GitHub and Docker Hub!

Take a look at all the cool hacks the Holberton School students came up with:

  1. Easy Neural StyleRona Chong & William McCann
  2. Web-Based Pokediary – Electra Chong & Joe Greene
  3. Holberton Code TesterMason Fish & Rick Harris
  4. Neural TimePraylin Diana Dinamoni & Asaia Palacios
  5. Docker ArcadeSteven Garcia & Sravanthi Sinha
  6. Neural Network Web GUIJosquin Gaillard & John Serrano
  7. Command Line Docker TutorialDamian Ali & Marine Déjean
  8. Holberton Integrated Work EnvironmentBennett Buchanan & John Spence
  9. Automating Documentation – Kris Bredemeier & Augustin Francis Boeuf
  10. Raspberry Pi and Docker Home AutomationChandler Mayo & Joshua Parkin

Can’t join us in Seattle for DockerCon 2016?

dockercon-seattle

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:

Monday, June 20: 9am (PDT)

Tuesday, June 21: 9am (PDT)

Tuesday, June 21: 4:45pm (PDT)

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

, , , ,

Dora Korpar and Siphan Bou

DockerCon Cool Hack Challenge: Tyrion Cannister Neural Style GUI


Leave a Reply

Get the Latest Docker News by Email

Docker Weekly is a newsletter with the latest content on Docker and the agenda for the upcoming weeks.