Friends, if you did not reach the final of
RussianCodeCup 2013 , do not despair, we will tell you about the most interesting things.
If you have been with us, you have the opportunity to refresh your memories and share impressions in the comments.

A 3D printer, a game through melon and bananas and a fighting robot are common things for an IT company.')
On September 23, the 27th-floor tower, the new office of the Mail.Ru Group, hosted the final of the Olympiad of Russian Code Cup 2013 programmers.
Three and a half thousand programmers from cities of Russia (and not only, several Russian-speaking representatives of foreign countries got to the final) took part in the Olympiad. 49 guys and one girl got to the finals, where they had to solve six difficult tasks.
The only finalist girl inevitably attracted attentionWhile the finalists were completely absorbed in solving problems, one after another famous speakers and digital stars appeared before the guests of the event.
The CEO and founder of the Mail.Ru Group, Dmitry Grishin, and the host of the ceremony, Anton KomolovSpeeches

Dmitry Sklyarov broke his speech into two parts. In the first he introduced us to reversing, “which is very simple” (practically - yes). In the second part (“Reverse Engineering blindly”) he explained the danger of “thinking like a programmer” by examining the password hashing algorithm in Huawei equipment. Sklyarov's method is based on elementary principles:
- Collect all available statistics from open sources;
- Carefully read the documentation;
- See the results in Google, look for matches;
- Build simple guesses about what could not be determined right away (The most frequently used encryption algorithm with an 8-byte block? - Perhaps, DES;; Where to find the encryption key? - In the firmware file!)
To think like a programmer and successfully apply your skills in practice is certainly good. However, most programmers are primarily focused on efficiency. They use standard approaches, easily computed by other programmers, which can carry a significant security risk.

Simon Pierrot, the digital magician, was able to divert us from the reverse analysis with “ipadadomagia”. You can evaluate the level of his skill on any YouTube video: “
Simon Pierro iPad Magic ”.

The presentation on cloud robotics from Ken Goldberg, the inventor of the world's first web-based robot, returned to the world of seriousness.
The easiest way to understand what cloud robotics is is, one can follow the scene from the movie “The Matrix”: a helicopter pilot training program is loaded into Trinity's consciousness. Thanks to the Internet, robots interacting with unfamiliar objects in real time are able to solve problems by downloading updated behavior programs. Cloud computing gives robots amazing capabilities: a robot can learn something by itself, not only using the “clouds”, but also accessing the database of another robot.

But the professor began his speech from afar, from the African continent, where he and his colleagues were engaged in creating an affordable budget robot. Can you imagine a robot, the cost of which in industrial production will be 10 dollars? After all, only such systems will bring the moment of widespread availability of high technologies.

A competition was announced for the budget robot itself, the winner of which created a model from a controller for the Sony console, castors and two candies for balance. The robot called it: Lollybot. This is not the only concept of a cheap robot. Enthusiasts, even if they have no direct relation to robotics, create their own models of the literal of everything - Lego designer, details of children's radio-controlled toys, just garbage are used.
A small robot, the entire filling of which is literally one chip, can efficiently process data only through the “cloud”. Cloud computing helps it to adapt to unfamiliar surroundings. As an analogy, Goldberg cited the Google Goggles object recognition system. When the robot stumbles upon something unfamiliar, Google will help it recognize the object and on the basis of this will change the model of interaction with the object.

Most modern robots do nothing themselves, soullessly carry out orders and make the same mistakes as the human operator. Already, cloud learning technologies allow robots to perform actions at the same level of quality as humans, but much faster. After a few years, having learned first from a human and then from other robots, cars will increase the level of quality tenfold.
We are literally entering the era of the “industrial Internet”, in which devices will begin to communicate with each other, bypassing the intermediary - the person, to establish the most effective learning process.

After the robots magic returned to the hall. Marco Tempest told how technology and magic coexisted for hundreds of years (“Any sufficiently developed technology is indistinguishable from magic” A. Clark), and demonstrated
digital-illusions .

The last speaker was the legendary Edward Jordan, the developer of the structural systems analysis method, a member of the Computer Hall of Fame, the author of the best-selling book “The Kamikaze Way”. Jordan dedicated his ambiguous speech to the future of programming.
What awaits today's young programmers in the next ten years?
First of all, the conversation is about the "iron". More than forty years ago, Gordon Moore set forth a rule based on his observations, according to which the number of transistors in integrated circuits will double every two years. Moore initially predicted that his law would be valid for another 10 years - that is, until 1975.
The law is still valid. In 2008, Intel made the assumption that the law will be valid until 2029. The computer will be 100 times faster than today - this is not an abstraction, not a theoretical question, we understand that it will be so. But what will it give?
It is believed that the progress in the hardware will cure all the flaws of the programs, but a careful observer may notice that the programs are only getting slower. As the Wirth law says, “programs become slower more rapidly than computers become faster.”
In the recent past, we saw how programs worked fine (and continue to work) on slow computers. The on-board computer Voyager-1, created in 1977, is 240,000 times weaker than the iPhone, but it still works successfully. The more limited the capabilities of the programmer, the more accurate and developed strategies need to be. Custom products that are now entering the market very rarely have limitations in terms of computing power.
From a hundredfold increase in processor power, we expect success in the fields of weather forecasting, biomedical and genetic research, the development of AI, and so on. But for many other areas, an increase in computing power can lead to degradation of software.

Computers are becoming more powerful and cheaper. According to forecasts, by 2014–2015 there will be 2 billion personal computers in the world, although it is more likely that a device commonly used in several years will be a smartphone, rather than a personal computer. In the future, free or very cheap computers will lead to the emergence of the concept of disposable computers, self-destructing devices with a very short lifespan, personalized devices.
In these conditions, improving the software will not be the primary task for programmers. Even now, most of the developers continue to write bad code, the overwhelming number of companies have not learned how to manage projects, a minimum of resources are involved, most of the problems are solved head-on. Millions more are waiting for us, and only a tiny fraction of them will be successful. New explosive solutions in the field of software may appear, but not programmers will come up with them ... but ordinary users.
Olympiad

The main event of the day was the award ceremony of the contest winners. But before they called the names of the champions, the guests were told about the conditions under which the last four hours of the competition took place.
Participants, armed only with their own laptops, had to solve 6 problems. In the event that it was decided to have the same number of tasks, the algorithms were evaluated according to the speed of writing and the number of unsuccessful attempts. Attempts in which the algorithm did not pass at least one of the 100 tests prepared for each task were considered unsuccessful.

Tasks for the casual observer are divided into two types. When it is not clear what is wanted from you, and when the task is clear to you, but the solution is not at all obvious. An example of the second type is a task that would have liked Gennady Onishchenko. The slide shows the vaccination procedure. With each vaccination in humans increases immunity. The objective of the task is to determine the level of immunity of a population of people on specific days.
A detailed analysis of all the tasks of the final you
will see in this thread .
Award

The award ceremony began flying quadcopters. After them, Anton Komolov appeared on the stage and in turn announced several nominations.
Pavel Kunyavsky took the “Shortness - Sister of T.” prize for the shortest code
Nikolai Nikiforov, Minister of Communications and Mass Media of Russia, advertises a new iPad. Actually, no: he hands Dmitriy Zhukov the prize for the quickest decision
The third place among the best was taken by a graduate of the Kharkov Polytechnic University Dmitry Dzhulgakov. His prize is 3 thousand dollars
Second place and five thousand dollars took home a student NRU ITMO Gennady Korotkevich
The first place, ten thousand dollars and a cup, which you cannot buy for any money, went to Peter Mitrichev, a graduate of Moscow State University, the winner of the RCC 2011
On this all, once again congratulations to the winners and remind:
The best reward missed the pages of our photo essay.
The best reward is the experience they will carry in themselves to feed the great hungry beast named the
market for cadres.PS Special thanks to media_magnit for inviting me to this great event!