Sunduk or 10 seconds per name
![image](https://habrastorage.org/getpro/habr/post_images/e85/a82/601/e85a82601e05459f8c64b17860ae41aa.png)
For a long time I was going to write an article on Habr, but still could not get together. That topic was not worthy, it was, but too voluminous, then lazy. Or maybe it was always lazy. But now, in any case, he has gathered.
Prologue
I don’t know about you, but I am addicted to hackathons. I go to them at every opportunity. And I’m very upset when, for one reason or another, I can’t go to the next night gatherings of programmers. There is no need to go far for the topic for the project - ideas are born in my head by themselves. As a rule, bad, but cool. Awl in a famous place always makes me write some kind of thread "cool thing." And, as a rule, luck is lucky - the Projects / 4Fun folder is replenished with a new project, sometimes even going public.
Tie
I had both the experience of winning the hackathon and the prize of audience sympathy ... But now is not about that. And about quite ordinary participation, but, I hope, not about ordinary result. A week ago, on May 17-18, the regional stage of Qiwi Universe hackathons was held in Minsk . My partner and I decided to go. We often decide to go to hackathons, but we don’t always go to them. But this time, our opportunities coincided with our desires, and we sacrificed the weekend for the sake of ... I don’t even know how to say ... for the sake of a good mood, or something.
Action development
Who does not know what a hackathon is - welcome to Wikipedia . In a nutshell: programmers, designers and other IT-characters go around idly, sit for 1 or 2 days (depending on the hackathon format), drink coffee, sometimes eat, and as a result give the jury and other participants the results of their attempts - web sites, mobile applications, desktop programs, sometimes some hardware or robots. Who on what much, in general. My partner and I were much more happy with the mobile application ...
Probably, unlike the majority of hackathon participants, many of whom believe or want to consider themselves startups, I try to make not just a project with the potential to capture the world, but a cool project with a wow effect, or at least trying to surprise. This is the very “cool thing” that I periodically want to do, and not just another social network for dogs, a book exchange service or a search for travel companions. All this has already happened, and more than once. I even had an idea at one of the hackathons to make a program for its participants, into which they would drive their ideas / projects, and other participants would evaluate them: “Boyan”, “100500th Facebook”, “Crowdfunding service? Seriously?". I even gave this idea to everyone to implement. But, apparently, no one appreciated. But again I got distracted.
The mobile application that we were going to make (and did) should not have been useful, simplifying the life of its user, or bringing him benefits. It had to serve one purpose - to please the eye. And first of all to its creators. We should have been pleased that everything worked out, it works as we intended. And it looks good. As a result, everything turned out that way. We called the prog ... Sunduk. As a partner put it, “this is the name generated in 10 seconds.” It was urgent to register the team in the list of participants, and there was no choice but to turn on the generator of project names in my head. And the generator gave out - "Sunduk". I had to agree with him. Popular wisdom says: "As you call a boat, so it floats." Perhaps this name also played a role in the number of the place that we took. And we took "no" place.
Nevertheless, the project turned out. The idea was as follows - using a simultaneous swipe on the screens of phones lying next to each other, to lock them together, and transfer the "money" with gestures from one phone to another. The “money” could be files, music or something like that, but “qiwi -> e-commerce -> money”. We wrote all this on Unity3d - a very convenient engine for cross-platform development. I had to honestly activate the 30-day Pro version of Unity3d, because the free non-Pro version does not have the ability to work with sockets on mobile platforms. And we just needed the sockets - the phones communicate with each other and communicate over the network.
Climax
The technical part of the project seemed simple to us. But this always happens until you proceed directly to its implementation. So it happened this time. There was a moment at night when I wanted to quit. Nothing worked. More precisely worked, but through time. Between 2 computers everything is OK: they connect normally, money is transferred. And 2nd mobile phones (iPhone and Android) - well, nothing. They see each other, then no. We both approached the problem. They even wanted to find a stable sequence of actions (first we turn it on here, then here after 5 seconds ...), in which the program worked without failures - so that you would not face dirt in the demonstration of projects. And they kind of found her. And then bam - and the worked out sequence stopped working ...
This problem and the approaching deadline added adrenaline. Here, no redbuls and burns are needed, although at such events they are probably the most popular drinks. Someone was sleeping, snoring and unnerving the sleeping members. Someone programmed their service to search for bank deposits. And we frantically searched for the reason - “Why,! # $ @%, Nothing works ?!”. And found her!
Denouement
The reason for all this disgrace was found a few hours after the first symptoms. It was all about the installed software on the Android phone - Opera Max was the culprit. This is such a thing that should compress mobile (not wifi!) Traffic, saving the user money. This program may save some money, but we ate it a lot of nerves, energy and time.
For some reason, wifi traffic went through the VPN created by Opera Max, and because of this Broadcast packets were lost - our server could not tell potential customers that it was alive and located on such IP. In any case, everything worked sharply, as soon as I demolished this, of course, useful (but not in our case) program. And all that was needed was to hardcode the IP server to the client part of the Chest and live in peace. Many would have done so, and would have been right. But “we have our own way” (c).
But happiness was full of pants when the phones finally saw each other and the first $ 50 was transferred from one screen to another. We realized that it was not in vain that we did not sleep that night and sawed the code. The task was completed - the project was completed and working, we figured out things that were new to us, realized that we needed to remove all beta software before the hackathon. But most importantly - we ate for 2 whole days for free!
Epilogue
And here is the Chest, or rather its contents: