
New Year is getting closer. Many have already summed up, set new goals, made far-reaching conclusions and made plans. By the end of December, it is also customary to remember all the best that happened over the past year. Our blog has published a lot of interesting materials; Today we remember our best posts of 2014, which gained 50 pluses and more.
10 obscure Objective-C features (+57)This article contains 10 interesting features of the Objective-C language. Some of them are obvious, some are far from that. For the use of some in the combat code, you have to beat your hands, while others can help in optimizing critical sections of code and in debugging. At the end of the article there is a link to the source code, which shows all these features with an example.
Designer review Android 4.4 KitKat. Part 1 (+51)Designer review Android 4.4 KitKat. Part 2 (+49)The first part of the article describes in detail all the main interface changes that have undergone the lock screen and desktops compared to previous versions of Android. Next - a lot of pictures.
')
The second part describes the updated stock programs and some other design innovations that were added to Android 4.4 Kit Kat. Next - a lot of pictures.
jQuery Events from the inside (+60)The jQuery JavaScript library needs no introduction. She jQuery is designed to speed development, provide syntactic “sugar” for native JS, and save developers from cross-platform issues.
Accessing iFrame content from another domain (+58)It tells how we in our project
indexisto.com made an analogue of the Google Webmaster Marker tool. This is a tool in the Google Webmaster account that allows you to annotate your pages with Open Graph tags.
Burn after reading (+68)The post describes the difficulties that a
Technopark student had to face when writing a one-time reference 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 hopes placed on neurocomputers come true, and what are the three main tasks facing the creator of artificial intelligence?
These and other questions can be answered 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.
Overview of the Android core features (+133)How many times have you been rescued by the availability of Android sources? Android is an open project, but, unfortunately, we only have the opportunity to read; it’s almost impossible to edit the Android code without being a Google employee. Let's grumble over this moment and load the repository. How to do this is perfectly described on the official
site .
One year in the life of the project. Mail.Ru Answers (+61)In this article, we tried to remember and describe all the difficulties and pitfalls that were encountered on the path of the implementation of tasks related to the Answers, as well as to tell about the architecture of the project.
ElasticSearch 1.0 - new analytics features (+69)Many have heard of the high-level search engine
ElasticSearch , but not everyone knows that many people use it for quite different purposes. This is an analysis of various structured and not very real-time data.
Arrow functions in ECMAScript 6 (+102)One of the most interesting parts of the new ECMAScript 6 standard is the arrow functions. Arrow functions, as the name implies, are defined by a new syntax that uses the arrow =>. In addition to syntax, the arrow functions are different from the traditional and in other points, as described in this post.
Pi Day (+77)Here we made a selection of very interesting infographics associated with 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 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 habrabot?"
Queue Server (+67)In the process of growth in many projects there is a need to solve a number of tasks associated with the queues. The article describes the features of creating servers queues.
Mail.Ru Group announces the launch of a vulnerability scan program (+73)This post, which is obvious, we announced that we will reward those who have found vulnerabilities in a number of our products. By the way, good money was offered, it was worth a search for them.
Educational and training resources for web developers and web designers (+75)Actually, the name says: in a post a very large collection of learning resources is collected.
Why, after the discovery of Heartbleed, we do not suggest Mail.Ru Mail users to change passwords (+53)The short answer to the question voiced in the title: 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 increased productivity with a speech analyzer (+81)In the modern world, corporate trolling is as mundane as spam. In the rating of "time-eaters" trolls are in the first place. At the same time, it is sometimes very difficult to distinguish the simple desire of an employee to “troll” from a productive dispute in essence.
The Mail.Ru Group’s internal resource efficiency department has found a way to distinguish trolling from productive communication: we created the AntiTroll hardware and software system, tested it and made sure of its effectiveness.
Server architecture of an online game using Skyforge as an example (+113)In this article, one of the Skyforge programmers reveals secrets regarding the game server device. It is told in as much detail as possible, with examples, and it is also explained why this or that architectural decision was made.
Mobile applications for travel (+52)The collection of applications collected by us will be useful without exaggeration to any traveler.
Happy freelancer! (+60)Again, congratulations and some curious statistics about the level of education of freelancers and working Russians.
Happy Star Wars Day! May the force be with you (+81)Fasting 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 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. In Mail.Ru Group there are not too many girls, but they are. And one of them, Ekaterina
lecharton Trefilova, developer from
Mail.Ru Poster , we had 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 fairly smooth, so children usually knew and understood what was once valuable and important to the previous generation. But today a variety of gadgets and electronics led to a break in the continuity of generations. We decided to conduct a small experiment - to invite six children from six to ten years old and show them the 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 capabilities implemented in the Mail.Ru for Business project at the request of our users.
Viruses. Viruses? Viruses! Part 1 (+73)Viruses. Viruses? Viruses! Part 2 (+65)In a large article consisting of two parts, computer viruses are considered as code that is capable of generating its own copies, changing from generation to generation. He needs a carrier file 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 the bus from the car by GPS tracks (+59)This article deals with the method of extracting route vehicles (buses, trolley buses, minibuses and trams) from the raw stream of GPS data.
404 post (+71)Congratulations on the day 404 and the selection of the most interesting and inventive designs instead of the standard "stub".
Ribs.js - nested attributes, computed fields and binding for Backbone.js (+50)The article describes the capabilities of the library, extending the capabilities of Backbone.js.
Remote testing. Tips experienced freelancer (+62)The director of quality who is responsible for the Mail and Mail.Ru portal shares his extensive experience and advice with readers.
About the leak of the user password database (+52)A detailed story about password leakage from Mail.Ru mailboxes and manipulating numbers.
Happy system administrator (+103)Congratulations, wishes, a selection of myths about system administrators and specially drawn illustrations. We tried our best. :)
Sleep Biohacking: Science-Confirmed Tips (+119)Chronic lack of sleep has long become a problem in our society. Here are collected various tips that help to significantly improve the quality of sleep. So if you can not sleep longer, then at least sleep better.
The history of the "Titans" (+58)It tells about the creation of a social game for Odnoklassniki "Titans".
Push notifications in REST API using the example of the Target Mail.Ru system (+54)In Target Mail.Ru was implemented a system of push-notifications. Proper use of task queues allows you to implement a fast system for the delivery of notifications. This post describes the application and implementation of this model in this service.
Shaping attacks in networks of low latency 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 we need another one? There is a fairly common misconception that such attacks always require statistical analysis and are rather difficult to implement. Previously published articles belong specifically to this class of attacks. Here, a quite realistic scenario is considered, in which a single query is enough to de-anonymize the network user.
Internal portal of the company: yesterday, today, tomorrow (+65)A detailed post about how the internal Mail.Ru Group portal works, how it looked before and how we see it in the future.
Virtual reality and third-person games (+75)This post describes the creation and testing on a volunteer of a system based on Oculus Rift glasses, in which a person sees himself as a third person. Such a review is characteristic of many games, and we decided to try, and what it really is like to contact the physical world, while receiving visual information exclusively from our third party.
Glasses of virtual reality made of cardboard, acrylic and plastic (+56)The author of the system from the previous post is experimenting with the self-made design of virtual reality glasses from various scrap materials.
Divide and conquer: how we implemented the separation of sessions 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 site of the RuNet. The portal includes a huge number of services, each of which has its own destiny, and each of them has a separate team. Developers had to work hard to ensure that all projects — new and old, and those that joined the portal as it developed — used a single authorization system. And after many years, the developers actually got the opposite task: to divide user sessions. About why we did it, what difficulties we expected and how we got around them, described in this post.
Tesla Model S: close acquaintance (+215)Overview of the on-board system in Tesla (+103)A series of two posts in which it is told about the best modern electric vehicle Tesla Model S on the example of an instance owned by Dmitry Grishin, CEO of Mail.Ru Group.
Raffle in honor of the Day of the programmer (+119)In this post we announced the beginning of our geek raffle and the manufacture of a special installation for printing the tickets of participants.
mysqlnd - explorer 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 is, how to use it and what advantages it gives - read the article.
10 most common mistakes when programming in JavaScript (+147)At first glance, this language may seem rather simple. However, this is a deceptive impression, since JavaScript is much more complicated, more powerful and more sensitive to nuances than it seems at first. Many subtleties in this language lead to a large number of common errors. In a post some of them are considered. You need to pay special attention to these errors if you want to program well in JavaScript.
Review of Garmin, Huawei and Sony fitness bracelets (+53)A comparative review of several fitness gadgets, with consideration of the advantages and disadvantages.
Hobbies of IT specialists: electric bicycles, wooden houses and Tibetan sound production (+88)We learned what our IT people do in their free time, what their hobbies are. The variety of hobbies of our colleagues was so amazing that we decided to share with you our discoveries.
Industry of eSports: from a box of beer to a million dollars (+52)The article describes the most significant events and events since the inception of eSports and to this day.
Unicode tutorial (+52)For a long time, the shameful legacy of CP1251 irritated the developers of the project My World. To translate into Unicode a big project into which
My World has evolved is very laborious. This procedure for a large project is not easy and time consuming, along the way we had to solve some rather interesting tasks, which are described in this article.
Review of educational resources by September 1 (+51)A selection of various educational resources in the field of IT.
Python, how would I like to see it (+77)We can say for sure: Python is not an ideal programming language. The main problems stem from the features of the interpreter and have little connection 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 thoughts about the direction in which Python is best developed.
Visual effects for Skyforge: theory and practical advice (+58)This article details how the effects artists in the Skyforge project are guided, as well as some tricks, art optimization and relationships in the development team.
Centrifuge - I will no longer update the page before posting a comment (+53)When an event occurs on your site, about which you need to instantly inform some of your users, you can use a tool such as Centrifuge. You post the desired event to Centrifuge, and she, in turn, sends it to all interested users who subscribe to the desired channel.
Analysis of rendering through Skia Debugger: how to find the most expensive elements for drawing (+68)It tells you how to use the Skia Debugger tool included in the Chrome toolkit for step-by-step analysis of the page rendering process, as well as how it can be used to get data on how long it takes to render each element.
Everything 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 collected together, which will help to avoid possible problems due to the unobvious, at first glance, threat.
Writing C code in Cython (+53)The article describes how to use “raw” structures and arrays of C (and sometimes C ++ vectors) and a small wrapper around malloc / free. The code works almost as fast as C / C ++, because this is 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 timezone correctly (+74)A selection of tips and advice for all Python programmers on how to work with time zones in their projects.