Обзор лучших постов по итогам года
Новый год всё ближе. Многие уже подвели итоги, наметили новые цели, сделали далеко идущие выводы и построили планы. Под конец декабря также принято вспоминать всё самое лучшее, что случилось за прошедший год. В нашем блоге было опубликовано много интересных материалов; сегодня мы вспоминаем наши самые лучшие посты 2014 года, набравшие 50 плюсов и более.10 малоизвестных возможностей Objective-C (+57)В этой статье собраны 10 интересных свойств языка Objective-C. Некоторые из них очевидны, некоторые далеко не таковы. За использование некоторых в боевом коде надо бить по рукам, другие же способны помочь в оптимизации критических участков кода и в отладке. В конце статьи имеется ссылка на исходник, показывающий на примере все эти фичи.
Дизайнерский обзор Android 4.4 KitKat. Часть 1 (+51)Дизайнерский обзор Android 4.4 KitKat. Часть 2 (+49)В первой части статьи подробно описаны все основные интерфейсные изменения, которые претерпели экран блокировки и рабочие столы по сравнению с предыдущими версиями Android. Дальше — много картинок.
Во второй части рассмотрены обновленные стоковые программы и некоторые другие дизайнерские нововведения, которые были добавлены в Android 4.4 Kit Kat. Дальше — много картинок.
jQuery Events изнутри (+60)JavaScript-библиотека jQuery в представлении не нуждается. Она jQuery призвана ускорить разработку, предоставить синтаксический «сахар» для нативного JS и избавить разработчиков от проблем, связанных с кроссплатформенностью.
Доступ к контенту iFrame с другого домена (+58)Здесь рассказывается о том, как мы в своем проекте indexisto.com сделали аналог инструмента Google Webmaster Marker. Это инструмент в кабинете Google Webmaster, который позволяет аннотировать ваши страницы тегами Open Graph.
После прочтения сжечь (+68)В посте рассказывается о том, с какими сложностями пришлось столкнуться одному из студентов Технопарка при написании сервиса одноразовых ссылок.
Искусственный интеллект для программистов (+51)Как случилось, что искусственный интеллект успешно развивается, а «правильного» определения для него до сих пор нет? Почему не оправдались надежды, возлагавшиеся на нейрокомпьютеры, и в чем заключаются три главные задачи, стоящие перед создателем искусственного интеллекта?
На эти и другие вопросы вы найдете ответ в статье, написанной на основе выступления Константина Анисимовича, директора департамента разработки технологий ABBYY, одного из ведущих экспертов страны в сфере искусственного интеллекта.
Обзор особенностей ядра Андроида (+133)Сколько раз вас выручало наличие исходников Андроида? Андроид — открытый проект, но, к сожалению, у нас есть возможность только читать; править код Андроида, не будучи сотрудником Google, практически невозможно. Погрустим над этим моментом и загрузим репозиторий. Как это сделать, отлично описано на официальном сайте.
Один год из жизни проекта Ответы Mail.Ru (+61)В данной статье мы постарались вспомнить и описать все сложности и подводные камни, которые встречались на пути реализации задач, связанных с Ответами, а также рассказать и про архитектуру проекта.
ElasticSearch 1.0 — новые возможности аналитики (+69)Многие слышали о высокоуровневом поисковом сервере ElasticSearch, но не все знают, что многие используют его не совсем по прямому назначению. Речь идет об анализе различных структурированных и не очень данных в реальном времени.
Стрелочные функции (Arrow functions) в ECMAScript 6 (+102)Одной из самых интересных частей нового стандарта ECMAScript 6 являются стрелочные функции. Стрелочные функции, как и понятно из названия, определяются новым синтаксисом, который использует стрелку =>. Помимо синтаксиса, стрелочные функции отличаются от традиционных и в других моментах, о чём и рассказано в этом посте.
День числа Пи (+77)Здесь мы сделали подборку очень интересной инфографики, связанной с этим самым узнаваемым математическим символом.
Добро Mail.Ru и Нетология запускают проект «Безграничные возможности» (+67)В статье рассказано о новом проекте, помогающем людям с инвалидностью получить полезные навыки и освоить профессию, которая станет не только источником дохода, но и возможностью реализовать себя.
С днём рождения, Хабрахабр! (+79)Помимо собственно поздравления, в этом посте мы опубликовали ответы некоторых наших сотрудников, довольно известных среди разработчиков и программистов, на вопрос «Что значит быть хабраавтором?»
Сервер очередей (+67)В процессе роста во многих проектах появляется необходимость решения ряда задач, связанных с очередями. В статье рассмотрены особенности создания серверов очередей.
Mail.Ru Group объявляет о старте программы поиска уязвимостей (+73)Этим постом, что очевидно, мы объявили о том, что будем награждать нашедших уязвимости в ряде наших продуктов. Кстати, предлагались хорошие деньги, ради них стоило поискать.
Образовательные и обучающие ресурсы для веб-разработчиков и веб-дизайнеров (+75)Собственно, название говорящее: в посте собрана очень большая подборка обучающих ресурсов.
Почему после обнаружения Heartbleed мы не предлагаем пользователям Почты Mail.Ru менять пароли (+53)Короткий ответ на вопрос, озвученный в заголовке: потому что этого не требуется. Heartbleed, одна из самых критичных уязвимостей в истории OpenSSL, не ударила по нашим пользователям. Чуть более подробный ответ — в статье.
Детектор троллинга: как мы повышали продуктивность с помощью речевого анализатора (+81)В современном мире корпоративный троллинг — явление такое же обыденное, как спам. В рейтинге «пожирателей времени» тролли стоят на первом месте. При этом иногда очень сложно отличить простое желание сотрудника «потроллить» от продуктивного спора по существу.
Отдел по повышению эффективности внутренних ресурсов Mail.Ru Group нашел способ отличить троллинг от продуктивного общения: мы создали программно-аппаратный комплекс «AntiTroll», протестировали его и убедились в эффективности.
Архитектура сервера онлайн-игры на примере Skyforge (+113)В этой статье один из программистов Skyforge раскрывает секреты, касающиеся устройства игрового сервера. Рассказано максимально подробно, с примерами, а также объяснено, почему было принято то или иное архитектурное решение.
Мобильные приложения для путешествий (+52)Собранная нами подборка приложений будет полезна без преувеличения любому путешественнику.
С днём фрилансера! (+60)Опять же поздравление и небольшая любопытная статистика об уровне образования фрилансеров и работающих россиян.
С днем Звёздных Войн! Да пребудет с вами сила (+81)Пост для всех истинных поклонников Звёздных Войн с подборкой очень занимательных фактов о световых мечах, главном star wars-фетише.
Право на свой код (+78)Большая часть IT-коллективов похожа на мужской монастырь. Девушки встречаются в рекламе, маркетинге, чуть реже в дизайне и графике, но совсем редко в «святая святых» — в программировании. В Mail.Ru Group девушек тоже не так много, но они есть. И у одной из них — Екатерины lecharton Трефиловой, разработчика из Афиши Mail.Ru, — мы взяли небольшое интервью.
Дети настоящего и гаджеты прошлого (+113)Детство каждого поколения отмечено характерными для того времени материальными объектами. Раньше смена технологий была достаточно плавной, поэтому дети обычно хорошо знали и понимали то, что когда-то было ценным и важным для предыдущего поколения. Но сегодня разнообразие гаджетов и электроники привело к разрыву преемственности поколений. Мы решили провести небольшой эксперимент — пригласить шесть детей от шести до десяти лет и показать им гаджеты из недалёкого прошлого.
«Mail.Ru для бизнеса»: всё, что вы хотели и не стеснялись просить (+55)В статье рассказано о ряде инструментов и возможностей, реализованных в проекте «Mail.Ru для бизнеса» по просьбам наших пользователей.
Вирусы. Вирусы? Вирусы! Часть 1 (+73)Вирусы. Вирусы? Вирусы! Часть 2 (+65)В большой статье, состоящей из двух частей, компьютерные вирусы рассматриваются как код, который способен порождать собственные копии, изменяясь от поколения к поколению. Ему необходим файл-носитель и благодатная среда — много вкусных исполняемых файлов, а также много невнимательных и активных пользователей, запускающих эти файлы. Так что название «вирус» — не просто красивый ярлычок для описания вредоносной программы: компьютерный вирус в его классическом понимании является сущностью, весьма близкой к своему биологическому аналогу.
Отличаем автобус от автомобиля по GPS-трекам (+59)В данной статье речь идёт о методе выделения маршрутных транспортных средств (автобусов, троллейбусов, маршруток и трамваев) из необработанного потока данных GPS.
404 пост (+71)Поздравление с днём страницы 404 и подборка самых интересных и изобретательных дизайнов вместо стандартной «заглушки».
Ribs.js — вложенные атрибуты, вычисляемые поля и биндинги для Backbone.js (+50)В статье рассказывается о возможностях библиотеки, расширяющей возможности Backbone.js.
Удаленное тестирование. Советы бывалого фрилансера (+62)Своим богатым опытом и советами с читателями делится директор по качеству, отвечающийза Почту и портал Mail.Ru.
Про утечку базы паролей пользователей (+52)Подробный рассказ об утечке паролей от почтовых ящиков Mail.Ru и манипуляции с цифрами.
С днём системного администратора (+103)Поздравления, пожелания, подборка мифов о системных администраторах и специально нарисованные иллюстрации. Мы старались. :)
Биохакинг сна: подтверждённые наукой советы (+119)Хронический недосып давно стал проблемой нашего общества. Здесь собраны различные советы, помогающие существенно улучшить качество сна. Так что если вы не сможете спать подольше, то хотя бы спите лучше.
История «Титанов» (+58)Здесь рассказывается о создании социальной игры для Одноклассников «Титаны».
Push-уведомления в REST API на примере системы Таргет Mail.Ru (+54)В Таргете Mail.Ru была реализована система push-уведомлений. Грамотное использование очередей задач позволяет реализовать быструю систему доставки уведомлений. В этом посте рассказано о применении и реализации этой модели в данном сервисе.
Атаки шейпинга в сетях low latency или почему Tor не спасает от спецслужб (+106)Тайминг-атаки являются известным слабым местом сети Tor и неоднократно обсуждались, в том числе на Хабре, где можно найти около десятка статей, так или иначе затрагивающих эту тему. Зачем нужна еще одна? Существует достаточно распространенное заблуждение, что подобные атаки всегда требуют статистического анализа и достаточно сложны в реализации. Ранее опубликованные статьи относятся именно к такому классу атак. Здесь рассмотрен вполне реалистичный сценарий, в котором достаточно единственного запроса для деанонимизации пользователя сети.
Внутренний портал компании: вчера, сегодня, завтра (+65)Подробный пост о том, как устроен внутренний портал Mail.Ru Group, как он выглядел ранее и каким мы видим его в будущем.
Виртуальная реальность и игры от третьего лица (+75)В этом посте рассказано о создании и испытании на добровольце системы на базе очков Oculus Rift, в которой человек видит себя от третьего лица. Такой обзор характерен для множества игр, и мы решили попробовать, а каково это на самом деле — контактировать с физическим миром, получая при этом визуальную информацию исключительно от своего третьего лица.
Очки виртуальной реальности из картона, акрила и пластика (+56)Автор системы из предыдущего поста экспериментирует с самодельной конструкцией очков виртуальной реальности из разных подручных материалов.
Разделяй и властвуй: как мы реализовывали разделение сессий на портале Mail.Ru (+108)Mail.Ru — огромный портал, существующий более 15 лет. За это время мы прошли путь от небольшого веб-проекта до самого посещаемого сайта рунета. В состав портала входит огромное количество сервисов, у каждого из которых своя судьба, и над каждым из которых работает отдельная команда. Разработчикам пришлось как следует потрудиться, чтобы на всех проектах — и новых, и старых, и тех, которые присоединились к порталу по мере его развития, — использовалась единая система авторизации. А через много лет перед разработчиками встала фактически обратная задача: разделить пользовательские сессии. О том, зачем мы это делали, какие трудности нас ожидали и как мы их обошли, рассказано в этом посте.
Tesla Model S: близкое знакомство (+215)Обзор бортовой системы в Tesla (+103)Серия из двух постов, в которых рассказывается о лучшем современном электромобиле Tesla Model S на примере экземпляра, принадлежащего Дмитрию Гришину, CEO Mail.Ru Group.
Розыгрыш призов в честь Дня программиста (+119)В этом посте мы объявили о начале нашего гик-розыгрыша призов и изготовлении специальной установки для распечатки билетов участников.
mysqlnd — проводник между PHP и MySQL (+103)Расширение mysqlnd появилось ещё в PHP 5.3, но до сих пор малоизвестно среди разработчиков. Однако оно незаменимо, если ваша система основана на MySQL. Если вы хотите узнать, почему это расширение так важно, что оно собой представляет, как его использовать и какие оно даёт преимущества — читайте статью.
10 самых распространённых ошибок при программировании на JavaScript (+147)На первый взгляд этот язык может показаться довольно простым. Однако это обманчивое впечатление, поскольку JavaScript гораздо сложнее, мощнее и чувствительнее к нюансам, чем кажется поначалу. Немало тонкостей в этом языке приводит к большому количеству распространённых ошибок. В посте рассмотрены некоторые из них. На эти ошибки нужно обратить особое внимание, если вы хотите отлично программировать на JavaScript.
Обзор фитнес-браслетов Garmin, Huawei и Sony (+53)Сравнительный обзор нескольких фитнес-гаджетов, с рассмотрением достоинств и недостатков.
Хобби айтишников: электровелосипед, деревянный дом и тибетское звукоизвлечение (+88)Мы узнали, чем занимаются в свободное от работы время наши айтишники, какие у них хобби. Разнообразие увлечений наших коллег оказалось настолько удивительным, что мы решили поделиться с вами своими открытиями.
Индустрия киберспорта: от ящика пива до миллиона долларов (+52)В статье рассказано о самых знаменательных событиях и явлениях с момента зарождения киберспорта и до сегодняшнего дня.
Практическое руководство по Unicode’изации (+52)Долгое время позорное наследие CP1251 раздражало разработчиков проекта Мой Мир. Перевести на Unicode большой проект, в который развился Мой Мир, очень трудоемко. Процедура эта для большого проекта непростая и длительная, по пути нам пришлось решить несколько достаточно интересных задач, о которых рассказано в этой статье.
Обзор образовательных ресурсов к 1 сентября (+51)Подборка различных образовательных ресурсов в сфере IT.
Python, каким бы я хотел его видеть (+77)Можно сказать совершенно точно: Python не является идеальным языком программирования. Основные проблемы вытекают из особенностей интерпретатора и мало связаны с самим языком, однако все эти нюансы интерпретатора постепенно становятся частью самого языка, и поэтому они так важны. Здесь изложены размышления о том, в каком направлении лучше развиваться языку Python.
Визуальные эффекты для Skyforge: теория и практические советы (+58)В этой статье подробно рассказывается, чем руководствуются художники по эффектам в проекте Skyforge, а также говорится о некоторых хитростях, оптимизации арта и взаимоотношениях в команде разработчиков.
Centrifuge — я больше не буду обновлять страницу перед отправкой комментария (+53)Когда на вашем сайте возникает событие, о котором вам нужно моментально сообщить некоторым вашим пользователям, можно воспользоваться таким инструментом, как Centrifuge. Вы постите нужное событие в Центрифугу, а она, в свою очередь, отправляет его всем заинтересованным пользователям, подписанным на нужный канал.
Анализ рендеринга через Skia Debugger: как можно найти самые дорогие для отрисовки элементы (+68)Здесь рассказывается, как можно применять инструмент Skia Debugger, входящий в набор инструментов Chrome, для пошагового анализа процесса отрисовки страницы, а также говорится, как с его помощью можно получить данные о том, сколько времени занимает отрисовка каждого элемента.
Всё, что вы хотели знать об уязвимости Shellshock (но боялись спросить) (+86)Помните Heartbleed? Shellshock можно отнести к той же «весовой категории», с таким же стильным названием, хоть и без классного логотипа (кому-то из департамента маркетинга этой уязвимости надо бы этим заняться). В посте собрана воедино вся необходимая информация, которая поможет избежать возможных проблем из-за неочевидной, на первый взгляд, угрозы.
Пишем код C на Cython (+53)В статье рассказывается о том, как можно использовать «сырые» структуры и массивы C (а иногда и векторы C++) и маленькую обёртку вокруг malloc/free. Код работает практически так же быстро, как C/C++, потому что это и есть код на C/C++, украшенный синтаксическим сахаром. Это код на C/C++ с функционалом Python именно там, где это нужно.
«Never say never» или Работаем с таймзонами правильно (+74)Подборка советов и рекомендаций для всех программистов на Python о том, как правильно работать с таймзонами в своих проектах.