Overview of the best posts for the year
New Year is getting closer. Many have already summed up, outlined new goals, made far-reaching conclusions and made plans. By the end of December, it is also customary to recall all the best that has happened over the past year. A lot of interesting material has been published on our blog; Today we recall our best posts of 2014, with 50 pluses or more.
10 little-known features of Objective-C (+57)
This article contains 10 interesting properties of the Objective-C language. Some of them are obvious, some are far from such. For the use of some in the battle code you have to beat hands, while others can help in optimizing critical sections of the code and in debugging. At the end of the article there is a link to the source, showing all these features as an example.
Design review of Android 4.4 KitKat. Part 1(+51)
Design review of Android 4.4 KitKat. Part 2 (+49)
In the first part of the article, all the main interface changes that have undergone the lock screen and desktops compared to previous versions of Android are described in detail. Next up are a lot of pictures.
The second part describes updated stock programs and some other design innovations that were added to Android 4.4 Kit Kat. Next up are a lot of pictures.
jQuery Events from the Inside (+60) The
Access iFrame content from another domain(+58)
Here it is told about how we in our project indexisto.com made an analogue of the Google Webmaster Marker tool. This is a tool in your Google Webmaster account that annotates your pages with Open Graph tags.
After reading burn (+68)
The post talks about the difficulties that one of the students of Technopark had to deal with when writing a one-time link service.
Artificial Intelligence for Programmers (+51)
How did it happen that artificial intelligence is developing successfully, but there is still no “correct” definition for it? Why did not the expectations placed on neurocomputers come true, and what are the three main tasks facing the creator of artificial intelligence?
You will find the answer to these and other questions in an article written on the basis of a speech by Konstantin Anisimovich, director of the technology development department of ABBYY, one of the country's leading experts in the field of artificial intelligence.
Android kernel features overview (+133)
How many times have Android source codes helped you out? Android is an open project, but, unfortunately, we only have the ability to read; editing an Android code without being a Google employee is almost impossible. We will sadden over this moment and load the repository. How to do this is well described on the official website .
One year from the life of the project Answers Mail.Ru (+61)
In this article we tried to recall and describe all the difficulties and pitfalls that encountered in the implementation of the tasks associated with the Answers, as well as tell about the architecture of the project.
ElasticSearch 1.0 - new analytics features (+69)
Many have heard about the high-level search server ElasticSearch, but not everyone knows that many do not use it for its intended purpose. It is about analyzing various structured and not so real-time data.
Arrow functions in ECMAScript 6 (+102)
One of the most interesting parts of the new ECMAScript 6 standard is arrow functions. Arrow functions, as the name implies, are defined by the new syntax that uses the arrow =>. In addition to the syntax, arrow functions differ from the traditional ones in other aspects, which is described in this post.
Pi Day (+77)
Here we made a selection of very interesting infographics related to this most recognizable mathematical symbol.
Welcome Mail.Ru and Netology launch the project “Unlimited possibilities”(+67)
The article talks about a new project that helps people with disabilities gain useful skills and learn a profession that will become not only a source of income, but also an opportunity to realize themselves.
Happy Birthday, Habrahabr! (+79)
In addition to the congratulations, in this post we published the answers of some of our employees, quite well-known among developers and programmers, to the question “What does it mean to be a habraautor?”
Queue server (+67)
In the process of growth in many projects, it becomes necessary to solve a number queue related tasks. The article discusses the features of creating queue servers.
Mail.Ru Group announces the launch of a vulnerability search program (+73)
Obviously, we announced this post that we will reward those who find vulnerabilities in a number of our products. By the way, good money was offered, it was worth looking for.
Educational and training resources for web developers and web designers (+75)
Actually, the name says: the post contains a very large selection of training resources.
Why, after detecting Heartbleed, we do not offer Mail.Ru users to change passwords (+53)
A short answer to the question voiced in the header: because it is not required. Heartbleed, one of the most critical vulnerabilities in the history of OpenSSL, did not hit our users. A slightly more detailed answer is in the article.
Trolling Detector: How We Improved Productivity with a Speech Analyzer(+81)
In the modern world corporate trolling is a phenomenon as ordinary as spam. In the rating of "time eaters" trolls are in the first place. Moreover, it is sometimes very difficult to distinguish the employee’s simple desire to “troll” from a substantive productive dispute.
The Mail.Ru Group internal resources efficiency department has found a way to distinguish trolling from productive communication: we created the AntiTroll software and hardware complex, tested it and made sure of its effectiveness.
The architecture of an online game server using the example of Skyforge (+113)
In this article, one of Skyforge programmers reveals secrets regarding the construction of a game server. It is told in the most detail, with examples, and also it is explained why this or that architectural decision was made.
Mobile applications for traveling (+52) The
collection of applications that we have collected will be useful without exaggeration to any traveler.
Happy freelancer day! (+60)
Again, congratulations and some curious statistics about the level of education of freelancers and working Russians.
Happy Star Wars! May the force be with you (+81) A
post for all true Star Wars fans with a selection of very entertaining facts about lightsabers, the main star wars fetish.
The right to your code (+78)
Most IT teams look like a man’s monastery. Girls are found in advertising, marketing, a little less often in design and graphics, but very rarely in the "holy of holies" - in programming. There are not so many girls in Mail.Ru Group, but they are. And one of them - Ekaterina lecharton Trefilova, a developer from the Poster Mail.Ru - we took a short interview.
Children of the present and gadgets of the past (+113)
The childhood of each generation is marked by material objects characteristic of that time. Previously, the change of technology was quite smooth, so the children usually knew and understood what was once valuable and important for the previous generation. But today, the diversity of gadgets and electronics has led to a break in the continuity of generations. We decided to conduct a small experiment - invite six children from six to ten years old and show them gadgets from the recent past.
“Mail.Ru for business”: everything you wanted and did not hesitate to ask (+55)
The article describes a number of tools and opportunities implemented in the project “Mail.Ru for business” at the request of our users.
Viruses. Viruses? Viruses! Part 1 (+73)
Viruses. Viruses? Viruses! Part 2 (+65)
In a large two-part article, computer viruses are seen as code that can spawn their own copies, varying from generation to generation. He needs a file carrier and a fertile environment - many tasty executable files, as well as many inattentive and active users who run these files. So the name “virus” is not just a beautiful label for describing a malicious program: a computer virus in its classical sense is an entity very close to its biological counterpart.
We distinguish a bus from a car by GPS-tracks (+59)
This article is about a method of extracting route vehicles (buses, trolleybuses, minibuses and trams) from the raw GPS data stream.
404 post (+71)
Congratulations on the day of page 404 and a selection of the most interesting and inventive designs instead of the standard "stub".
Ribs.js - nested attributes, calculated fields and bindings for Backbone.js (+50)
The article describes the capabilities of the library that extends the capabilities of Backbone.js.
Remote testing. Tips from a seasoned freelancer (+62) The
Director of Quality, responsible for the Post and Mail.Ru portal, shares his wealth of experience and advice with readers.
About the leak of the database of user passwords (+52)
A detailed story about the leak of passwords from Mail.Ru mailboxes and the manipulation of numbers.
Happy system administrator (+103)
Congratulations, wishes, a selection of myths about system administrators and specially drawn illustrations. We tried our best. :)
Sleep biohacking: advice confirmed by science (+119)
Chronic lack of sleep has long been a problem in our society. Here are some tips to help you significantly improve your sleep quality. So if you can’t sleep longer, then at least sleep better.
The story of the Titans (+58)
This tells about the creation of the social game for Odnoklassniki Titans.
Push notifications in the REST API using the example of Target Mail.Ru (+54)
In Mail.Ru Target, a push notification system was implemented. Proper use of task queues allows you to implement a fast notification delivery system. This post talks about the application and implementation of this model in this service.
Shaping attacks in low latency networks or why Tor does not save from special services (+106)
Timing attacks are a well-known weak point of the Tor network and have been repeatedly discussed, including on Habré, where you can find about a dozen articles that somehow affect this topic. Why do you need another one? There is a fairly common misconception that such attacks always require statistical analysis and are quite difficult to implement. Previously published articles relate specifically to this class of attacks. Here we consider a quite realistic scenario in which a single request is enough to deanonymize a network user.
The company's internal portal: yesterday, today, tomorrow (+65)
A detailed post on how the Mail.Ru Group internal portal is structured, how it looked earlier and how we see it in the future.
Virtual reality and third-person games (+75)
This post talks about creating and testing a volunteer system based on the Oculus Rift glasses, in which a person sees himself from a third person. Such a review is characteristic of many games, and we decided to try, and what it really is - to contact the physical world, while receiving visual information exclusively from our third party.
Virtual reality glasses made of cardboard, acrylic and plastic (+56)
The author of the system from the previous post is experimenting with the self-made construction of virtual reality glasses from various materials at hand.
Divide and conquer: how we implemented session separation on the Mail.Ru portal (+108)
Mail.Ru is a huge portal that has existed for over 15 years. During this time, we have gone from a small web project to the most visited Runet site. The portal includes a huge number of services, each of which has its own fate, and each of which has a separate team. The developers had to work hard to ensure that all projects - both new and old, and those that joined the portal as it developed - used a single authorization system. And after many years, the developers actually faced the opposite task: to separate user sessions. About why we did this, what difficulties awaited us and how we circumvented them, is described in this post.
Tesla Model S: close acquaintance (+215)
Overview of the on-board system in Tesla (+103)
A series of two posts that talk about the best modern electric car Tesla Model S using an example owned by Dmitry Grishin, CEO of Mail.Ru Group.
Prize draw in honor of Programmer's Day (+119)
In this post, we announced the start of our geek prize draw and the manufacture of a special installation for printing participants' tickets.
mysqlnd - a conductor between PHP and MySQL (+103)
The mysqlnd extension appeared in PHP 5.3, but is still little known among developers. However, it is indispensable if your system is based on MySQL. If you want to know why this extension is so important, what it represents, how to use it and what benefits it gives - read the article.
Review of fitness bracelets Garmin, Huawei and Sony (+53)
A comparative review of several fitness gadgets, with an examination of the advantages and disadvantages.
IT hobbyists: electric bike, wooden house and Tibetan sound production (+88)
We learned what our IT people do in their free time, what hobbies they have. The variety of hobbies of our colleagues turned out to be so amazing that we decided to share our discoveries with you.
The e-sports industry: from a beer box to a million dollars (+52)
The article describes the most significant events and phenomena from the inception of e-sports to the present day.
Practical Guide to Unicode'ization (+52)
For a long time the shameful heritage of CP1251 annoyed the developers of the My World project. Translate to Unicode the big project My World has developed intovery laborious. This procedure for a large project is not simple and lengthy, along the way we had to solve several rather interesting problems, which are described in this article.
Overview of educational resources by September 1 (+51)
A selection of various educational resources in the field of IT.
Python, how I would like to see it (+77)
We can say for sure: Python is not an ideal programming language. The main problems arise from the features of the interpreter and have little to do with the language itself, however, all these nuances of the interpreter gradually become part of the language itself, and therefore they are so important. Here are some thoughts on which direction Python should take.
Visual Effects for Skyforge: Theory and Practical Tips(+58)
This article describes in detail what effect artists are guided by in the Skyforge project, as well as some tricks, art optimization and relationships in the development team.
Centrifuge - I will no longer refresh the page before posting a comment (+53)
When an event occurs on your site that you need to immediately inform some of your users, you can use a tool such as Centrifuge. You post the desired event to the Centrifuge, and she, in turn, sends it to all interested users who are subscribed to the desired channel.
Analysis of rendering through Skia Debugger: how to find the most expensive elements for rendering (+68)
It tells how you can use the Skia Debugger tool, which is part of the Chrome toolbox, to step-by-step analyze the process of rendering a page, and also tells how to use it to get data on how long it takes to render each element.
All you wanted to know about Shellshock vulnerability (but were afraid to ask) (+86)
Remember Heartbleed ? Shellshock can be attributed to the same "weight category", with the same stylish name, albeit without a cool logo (someone from the marketing department of this vulnerability would have to do this). In the post, all the necessary information is gathered together, which will help to avoid possible problems due to a non-obvious, at first glance, threat.
Writing C code in Cython (+53)
The article talks about how you can use “raw” C structures and arrays (and sometimes C ++ vectors) and a small wrapper around malloc / free. The code runs almost as fast as C / C ++, because that is the C / C ++ code decorated with syntactic sugar. This is C / C ++ code with Python functionality exactly where it is needed.
“Never say never” or Working with timezones correctly (+74)
A selection of tips and tricks for all Python programmers on how to work correctly with timezones in their projects.