Hackathon as a way to expand coder consciousness. Photo Correspondent Report

    Waking up one morning ... (no). Waking up one evening ... (no!). In short, waking up one day at work on a sunny morning (it sounds provocative already), and wiping my eyes from the production routine, I thought that our team is certainly great, but technologically somewhat narrowish ... “And we should hang on with something else!” - I flashed an original thought. And so we made our own hackathon, which we imprisoned not on the topic, but on technology. It turned out, I’ll say right away ... not bad.

    After a short analysis of our turnover, the following conditions were set:

    • 3 full days away with overnight stays (do not be distracted!);
    • Necessarily in full force;
    • The format is standard (from natural ideas, through their natural selection, and forward to implementation);
    • Ideas of projects - limited to web services (we absolutely do not want desktops), and “programming for people” in itself is generally a pleasant thing.

    Technological conditions:

    • we code on anything, but not on our “routine” stack (php / java / python / mongodb / * sql / mobile phones / soldering chips / programming microcontrollers);
    • which meant: [node.js] [go] [erlang] [redis] and any databases [except sql] and boring already [mongodb];
    • We don’t have a frontend at all, therefore we invited friends / acquaintances, but for some reason they did not join (they regretted the weekend - and in vain!) - therefore they did not focus on front-end technologies at all;
    • Stack preparation at least at the level of 'hello world' for all participants;
    • Alcoholic motivating drinks at your own expense.

    First, it was necessary to choose an idea for implementation. Despite the forthcoming explanations and other clever agitating blah blah, the coder's facial expressions were 97.43% identical to “WTF, what am I doing here?”

    But after a few minutes, the first fan sketches did their job - a stream of friendly trolling of various thicknesses activated creative brain lobes and threw ideas onto several sheets of flipchart. They do not look particularly interesting, the whole tsimus was in a lively discussion:

    The ideas were different, devoid of any business sense (not for business, we all started this).
    But all of them are from the field of doing good and improving (with further subjugation) Internet Internet users:

    • optimization of ticket sales of Russian Railways;
    • several options for ingenious replacements for terrible forms of feedback on sites;
    • social networks on sound messages;
    • several online many-man-games (mafia / poker / etc with significantly improved online rules with video correspondence and facial recognition systems);
    • ant battles (http://habrahabr.ru/post/135287/) with the transfer of action to online maps of Moscow (the exclusive idea of ​​evil and destruction);
    • creating an unbiased and competent news aggregator with the right analysis of popularity / prevalence;
    • space-based courier service, similar to Yandex.taxi and criminal defense mechanisms

    It's time for a choice. In second places - of course, “ErZheDe” (the thickest trolling was right here). At first - evil ant battles and good reminder service. For development, we chose good first, and evil (if we have time) postponed for later :-)

    The idea is very simple, but the participants are interested in - a service with an open API through which you can leave a reminder application to yourself, or to a follower, or a group of friends or corporate-administrative a group that can be made periodic or assigned for some time, as well as protection mechanisms against using the service as spam, etc. a bunch of related features.

    We started architectural holivarto design. Of course, everyone knew exactly “how to do this”, and the most experienced modestly kept silent, “absorbing popcorn with cola” and enjoying the action:

    Schemes and implementations multiplied at a speed of 27 flipcharts per hour:

    Directing the process: visualizing the provider’s delivery scale for Reminder:

    The R&D team has already come up with a brand, registered a domain and started calculating profits :-)

    By lunch, everything was ready, namely:

    • The subject area and architectural layers are recorded;
    • The “ERLANG” team - does the front part and scatters applications-reminders in the subject area (people / groups / followers) of the intended service;
    • The “GO” command - implements multi-threaded reading of data from the subject area and archi-loading scattering of reminders on delivery providers;
    • As a base they took Redis;
    • The “SISADMIN” team - prepares software on battle servers and loafs around in anticipation of deployment tasks;
    • The “R&D” team left to look for big suitcases for money :-)
    • There was no meaningfulness in choosing technologies for the task - the hackathon participants in these languages ​​did not do anything before and did not work with Redis. But it was in this development of events that the hackathon was conceived :-)

    After lunch - exercises useful for the productive work of gray cells.
    The tablet “for children under 14 years of age” did not bother anyone, all the more so since no one was observed in the given range in the district :-) The

    teams were formed, the tasks are clear - get to work!

    Team “GO”. The one who prepared a little more than 'hello world' is naturally popular and magnificent :-)

    The “ERLANG” team is fun. They still do not suspect the severity of the consequences of their choice :-)

    From time to time, they tried to recall everything that was driven into the idea at the start and, due to the difference in understanding, they had to collect everything “in a concrete pile for implementation”:

    In the background, general Skype chat draws to the dark side of the force:

    Evening program.
    This season's football is better to play than to watch:

    Jet tests: The

    second and third day. Only coding, only hardcore: why are we changing the premises and settling in comfortably: The

    backs of the “ERLANG” team are smart and focused:

    They probably code the API for the front: The

    timid commit history “from newcomers to the genre”:

    The “GO” team is looking for a connection in Redis:

    ... and having found, composes romantic Japanese poems in which each line begins with the magical “go”, endowed with the meaning only known to the author, devoting them to the beautiful and affordable goroutines :-)

    Along the way, a couple of know-how.
    For example, nosql-paper-database, version of flomaster.
    • write speed - 4 files per hour
    • reading speed - light
    • understanding speed is zero :-)

    And now everyone is afraid ... IT compiles:

    IT does something:

    At the same time, Asynchronously and Parallel!

    And fast enough ...

    • We came up with and made a service (even slightly working), on YaPs, previously unknown to us.
    • Pity those whom we called, but you did not come :-)
    • We’ll repeat it somehow.

    Also popular now: