Hackathon @ JetBrains 2014



    More than a year has passed since the first hackathon took place in our company , which gave birth to new projects. During this time, the “ ideaphone ” (the same brutal musical instrument consisting of gas pipes and hammers controlled by Arduino) visited several exhibitions and continued to inspire our developers to new ideas.

    I must say that during the year, hands were scratched: employees kept discussing new projects that could be hacked during the lunch break, ideas were put in a long box, forgotten over time, and new ones appeared. At the beginning of summer, the unbearable expectation of a hackathon gave way to calm immediately after the announcement of the event. Two weeks before the start, the list was no more than five projects, what happened? Perhaps a crisis of ideas or a banal lack of time? It turned out that neither the first nor the second: the guys secretly prepared their projects from each other, verified the complexity and time costs, everyone wanted to get a working prototype in 48 hours, and not a conceptual model.



    As a result, by the beginning of the hackathon, more than 30 projects with a full range of technologies were presented, from clean development to hardware projects, the latter this year were much more.

    How it was





    Everyone could participate in the hackathon (not only developers). Project topics were also not limited to anything. Two JetBrains offices - St. Petersburg and Munich - turned into bases for project participants for 2 days with full support: thematic lunches (German for the St. Petersburg office and Russian for Munich), survival kits (plaid, pillow, ear plugs, sleep mask) and 48-hour infrastructure support for projects.



    To write about how the code was written (excuse me for the tautology), I think there is no special meaning. All habrachitateli and so perfectly imagine how this happens. The only thing I would like to draw attention to is symbolism. The organizers decided to highlight the hackathon participants with flags and bracelets among all employees, so that everyone would know: these guys are now working in a different dimension.





    About Applications


    Let's now go over the applications and gadgets that have turned out.

    Travelpie


    One of the teams in 48 hours made an application for travelers who, finding themselves in a new place, want to have a good time and learn the city in their own style.



    The application does not contain standard city tours; each time it automatically creates a unique tour depending on the interests of the user. At the entrance you choose the city where you are going to go (now it is only St. Petersburg, the hackathon zhezh), the number of days and the address where you plan to stay. Then from the list you choose what is interesting for you and in what proportions (you make your own travel pie of interests). At the exit, you get a route for every day, taking into account where to eat, where to go, what to do and all this - based on your preferences.



    What technologies is built on?
    To raise the backend, it was decided to use familiar technologies and spend the least effort: Java, Servlet 3, H2 Database. For the frontend, Backbone.js and RequireJS were used for modularity and dependency management. Everything, of course, was written in IntelliJ IDEA, git was used to store the code.

    The guys have plans for improvement: an improved algorithm for building the path, the ability to edit the constructed route, building not only walking routes, but also routes using public transport, saving the route, integrating with external sources to get photos and information about attractions. We will wait for updates and plan trips through travel pie.

    Jet socialism


    We have YouTrack application tracker, version control system, TeamCity continuous integration server and blogs. Let's add some fun and badges to all of this. Each action in the above systems generates the corresponding events: someone fixes a bug or does a feature and receives points for each event.



    Since each person is unique in one way or another, the application can try to highlight the user's strengths - for example, someone posts more than other meta-issues, or commits more often than others builds, and someone simply writes large texts or quickly fix minor tasks ...



    Thus, according to a rather complicated formula, it turns out that a person works very quickly, and then he unlocks the “Speed ​​Gonzales” badge. And the other closes the ancient Ishim, he is the “Slayer of Mummies”, and so on ... Formulas are both simple and complex. At the output, we get a fan - and the data already exists for a long time and will exist.

    Jetworld


    We have many users around the world, it is very nice when some cities have strong communities that share knowledge within themselves, but we would like to take one more step towards our users and try to show all the events related to JetBrains on the world map. JetWorld is a tool whose mission is to help JetBrains product users around the world create closer local communities.

    Technologically, it is a web application that uses the Google Maps API to present data. MongoDB is used as the data store, the backend is written in Kotlin, and the frontend is in pure JavaScript. Heroku is used as a hosting platform.



    On the map, the user can see the planned events, one way or another related to JetBrains (conferences, reports of employees at meetings of user groups, etc.), as well as companies using JetBrains products and located nearby. Convenient access to such information, according to team members, can be extremely useful for the formation of active local communities of our users.

    There is also the option of adding organizations to the map, which can allow third-party companies to talk about their experiences using JetBrains products. JetWorld developers want to give the opportunity for individual users who are experts in our products to talk about themselves. Access to the expert database will be very useful for users and companies in training, sharing experience in using JetBrains products.

    In general, there were many cool projects, for example, the guys from the MPS team did automated watering of plants.



    Munich colleagues assembled a robotic stand with colorful balls, which in real time displays the purchases made by users of our products, each product has its own color.

    About the winners


    And of course, you need to say about the winners.

    Robot - painter


    The third place was won by Ekaterina Tuzova with her robot artist, who could draw any picture of the A3 format in one line for 6 hours or less. The robot is built on stepper motors controlled by Arduino. Image analysis and path building software was written in python.



    Despite the time limit of 48 hours, the robot began to paint pictures in the first day. Although at first not everything went smoothly, and you had to properly configure the software and fix the ballpoint pen. But by the end of the hackathon, the robot confidently drew pictures of any complexity.



    Wachter


    Our office has its own territory for parking cars, and to get inside, you need to open the barrier . When we just moved to Vasilievsky Island, employees were given trinkets for remote opening of the barrier. But it so happens that sometimes you go to work with a different backpack, or the keychain remains at work, you have to call the reception and ask someone to open the barrier.



    First, the idea was born to make a web button, which, when pressed, sends a signal to the server and activates the barrier. But the guys from the project with the comic name “Wachter” went further. They gained access to surveillance cameras and, using the OpenCV library, began to sort out license plates. We have our own internal social network JetPeople, in which each employee on the page shows the vehicle license plate number. Already on the first day, Wachter learned to distinguish numbers (though not all) and check them for compliance with employee records.



    The bottleneck was that not all signals from the transmitter reach the barrier. Apparently, the developers of the barrier decided that if it does not rise after pressing the button, the user will repeat this process until the outcome is successful. But still, the project received a large number of votes and took 2nd place.

    Handcartoon


    The first place went to the project for the animation of flat pictures on the tablet. We decided to shoot a short video interview about this project:



    Here are our winners:



    And now we will wait for the next year.

    Keep hacking!

    Also popular now: