Продуктивність старту JavaScript



Веб-розробники знають, як легко розростаються розміри веб-сторінок. Але завантаження сторінки — це не просто передача байтів по дроту. Коли браузер завантажив скрипти, йому потрібно їх отпарсить, інтерпретувати і запустити. У статті ми уважно розглянемо цю фазу і дізнаємося, чому вона може стати причиною уповільнення запуску вашої програми і як це виправити.

Читати далі →

SmartMonitoring — моніторинг бізнес-логіки в Однокласниках



Зараз у нас в Однокласниках є чотири географічно розподілених дата-центру, 11 тис. серверів, більше 1 тис. мережевих пристроїв, 180 сервісів. Під сервісами ми розуміємо фото, відео, музику, стрічку і т. д. Щодня сайт відвідують десятки мільйонів унікальних користувачів. І за всім цим господарством необхідно стежити, чим і займаються:

  • команда інженерів, яка встановлює обладнання, змінює диски, вирішує hardware-інциденти;
  • команда моніторингу, яка якраз шукає ці інциденти і віддає в роботу іншим командам;
  • мережеві адміністратори, вони працюють з мережею, налаштовують обладнання;
  • системні адміністратори, вони адмініструють і налаштовують портал;
  • розробники.
Ми самі встановлюємо і налаштовуємо наші сервери, але так як їх дуже багато, то неминуче, що кожен день щось ламається. І наша найголовніша задача в такому випадку — побачити поломку швидше користувачів. Тому за роботу всього порталу відповідає ціла команда моніторингу. Вони переглядають графіки, шукають у них аномалії, заводять інциденти, розподіляють «автоинциденты», які створюються за допомогою зв'язки Zabbix + JIRA. Ми не просто моніторимо бізнес-логіку, але і автоматично її аналізуємо. Детальніше про це я розповім далі.

Читати далі →

Техносфери Mail.Ru — три роки


Сьогодні виповнилося три роки з моменту запуску одного з наших освітніх проектів — Техносфери Mail.Ru, з'явився спільно з факультетом ВМК МГУ ім. Ломоносова. Програма Техносфери розрахована на підготовку фахівців у сфері великих даних. Спочатку вона була розрахована на один рік і складалася з шести дисциплін. Проте через рік ми переглянули програму і зробили її дворічної. Протягом чотирьох семестрів студенти вивчають 12 дисциплін, виконуючи великий обсяг практичних робіт. Заодно був розроблений підготовчий курс «Алгоритми та структури даних».

В Техносферу приймають студентів 2-4-х курсів. Незважаючи на те що схема вступних іспитів у всі наші освітні проекти однакова (студенти здають онлайн-тест і проходять очна співбесіда), в Техносфери ми більше орієнтуємося на базові знання з вищої математики. Крім читання лекцій ми створили лабораторію, де студенти працюють з реальними завданнями, з якими ми стикаємося в Mail.Ru Group. Наприклад, намагаються покращити аналітичні алгоритми, створити певні евристики. Тобто роблять все те ж саме, що вони робили б під час звичайної стажування в компанії. З осені 2015 року в лабораторії почали проводити наукові дослідження. Наприклад, вивчаються можливості застосування нейронних мереж для вирішення тих чи інших бізнес-завдань.

І в честь дня народження ми викладаємо список навчальних матеріалів, які рекомендовані до вивчення нашим студентам протягом всього дворічного курсу.

Читати далі →

Як працює hashCode() за замовчуванням?


Спроба зазирнути вглиб
hashCode()
призвела до спелеологическому подорожі вихідного коду JVM, з розглядом структури об'єктів і прив'язаною блокування (biased locking), а також дивовижних наслідків для продуктивності, пов'язаних з використанням
hashCode()
за замовчуванням.

Читати далі →

Запрошуємо на Game Design meetup 4 лютого



Вже зовсім скоро, в першу суботу лютого, відбудеться перша неформальна ігрова зустріч Game Design meetup. Подія буде цікаво геймдизайнерам, ігровим аналітикам і продюсерам GameDev. Нам дуже хочеться, щоб представники різних компаній обмінювалися досвідом, обговорювали новинки і тенденції, знайомилися і заводили корисні контакти. Адже розвивати індустрію в цілому корисно всім її учасникам!

Для першої зустрічі ми приготували чотири доповіді. В перерві між ними у вас буде можливість обговорити почуте. Модератор зустрічі — Олександр Мішулін, креативний директор студії GamesLab, Mail.Ru Group. Програму читайте під катом.

Читати далі →

Скоро відкриття ML Boot Camp III



15 лютого стартує Machine Learning Boot Camp III — третє змагання з машинного навчання та аналізу даних від Mail.Ru Group. Сьогодні розповідаємо про минулий контесті і відкриваємо таємниці нового! Отже, в ході майбутнього конкурсу потрібно буде вгадати, чи залишиться учасник в онлайн-грі або піде з неї. Вибірки для завдання побудовані на дванадцяти ігрових ознаках для 25000 користувачів. Природно, всі дані анонимизированы.

Читати далі →

Запрошуємо на Data Fest⁴ 11 і 12 лютого



Майже через два тижні у нашому московському офісі відбудеться Data Fest⁴ — вже четверта конференція, яка об'єднує дослідників, інженерів і розробників, пов'язаних з Data Science у всіх його проявах. Вас чекає багата програма, безліч теоретичних і практичних секцій. Подробиці читайте під катом.

Читати далі →

Архітектура микросервисов



На жаль, у мене немає досвіду роботи з микросервисами, але близько року тому я дуже активно цікавився цією темою і вивчив всі джерела інформації, які зміг знайти. Я переглянув кілька виступів на конференціях, прочитав кілька статей дуже авторитетних і досвідчених фахівців на зразок Мартіна Фаулера, Фреда і Джорджа, Едріана Кокрофта та Кріса Річардсона, щоб якомога більше дізнатися про микросервисах. Ця стаття — результат моїх вишукувань.

Читати далі →

Master-master реплікація і масштабування додатків між усіма IoT-пристроями і хмарою


На фото представлені пристрої, використані для прототипування. Як видно, за основу взята платформа Intel Edison, так як вона підтримує багато архітектури, в тому числі MIPS і ARM.

Всім привіт. У цій статті я хотів би поділитися досвідом вирішення однієї цікавої проблеми, пов'язаної з синхронізацією даних між IoT-пристроями і хмарним додатком. Спочатку я розповім про основною ідеєю і метою мого проекту, а потім детально опишу його технічну сторону і реалізацію: мова піде про ОС Contiki, базах даних, протоколах та подібних аспектах. На закінчення я коротко перерахую технології, використані при побудові системи.

Читати далі →

Оптимізація роботи портальної дизайн-команди з допомогою Sketch і хмари

Працюючи в продуктовій команді над одним або кількома проектами, ми неминуче приходимо до необхідності організувати загальний процес і робочий простір. Хтось вирішує це питання через додавання інструментів для колаборації, хтось навіть будує навколо цього свій продукт. Проте ми звернулися до досвіду наших найближчих колег — розробників. Вони вміють оптимізувати свою роботу та взаємодію, як ніхто інший, і тому є чудовим прикладом для натхнення.



Читати далі →