Наше внутрішнє співтовариство Go-розробників Mail.Ru Group активно розвивається, колеги регулярно зустрічаються для обміну досвідом і корисними ресурсами. Ми знаємо, як важливо спілкуватися з людьми з інших команд і проектів, мати можливість запитати ради, обговорювати тільки що з'явилися технології та поділитися досвідом. Близько півроку тому в нашому офісі вже проходила зустріч розробників Go, і нині ця мова все ще викликає великий інтерес. Тому 14 квітня ми організуємо черговий Go meetup. Запрошуємо спікерів! Від Mail.Ru Group вже заявлений один доповідь. Подробиці під катом.

Читати далі →

image
Dali by kristina323
Привіт, Хабр! Мене звуть Наталія Спрогіс, я керую напрямком UX-досліджень в Mail.Ru Group і продовжую цикл ликбезных статей про UX-дослідженнях. Сьогодні я хочу розповісти про айтрекинг.
Айтрекинг, або окулография, — це технологія, яка дозволяє фіксувати руху погляду людини. Коли я вперше почала застосовувати її у UX-дослідженнях, я була дуже натхнені і чекала неймовірних результатів і одкровень про поведінку користувачів. А після кількох місяців роботи виявилася трохи розчарована. Не виходило побудувати гарні теплові карти, то не виходило знайти нові проблеми. З досвідом я зрозуміла, для яких завдань айтрекинг гарний, де підводні камені, яка його цінність, навіть якщо він не додає до звіту красивих картинок. Про це я і хочу розповісти в цій статті.
Читати далі →

image
зрештою, я повинен був до цього прийти. Коли я опублікував статтю «Я написав швидку хеш-таблицю», а потім ще одну — «Я написав ще більш швидку хеш-таблицю». Тепер я завершив роботу над самою швидкою хеш-таблицею. І під цим я розумію, що реалізував самий швидкий пошук порівняно з усіма хеш-таблиць, які мені вдалося знайти. При цьому операції вставки та видалення також працюють дуже швидко (хоча і не швидше конкурентів).
Я використовував хешування за алгоритмом Robin Hood з обмеженням максимальної кількості наборів. Якщо елемент повинен бути на відстані більше Х позицій від своєї ідеальної позиції, то збільшуємо таблицю і сподіваємося, що в цьому випадку кожен елемент зможе бути ближче до своєї бажаної позиції. Схоже, такий підхід дійсно добре працює. Величина Х може бути відносно невелика, що дозволяє реалізувати деякі оптимізації внутрішнього циклу пошуку по хеш-таблиці.
Якщо ви хочете тільки спробувати її в роботі, то можете завантажити звідси. Або прокрутіть вниз до розділу «Вихідний код і використання». Хочете подробиць — читайте далі.
Читати далі →

image
Оновлений курс «Web-технологии» на платформі Stepik тепер підтримує останню версію Django і можливість вести розробку як на Python 2, так і на Python 3. Викладачі курсу — Дмитро Смаль і Динар Сабітов, web-програмісти з ігрового спрямування Mail.Ru Group. Другого березня ми перезапускаємо «Постановку завдання на розробку» без дедлайнів, щоб ви змогли пройти курси в зручний час та отримати сертифікати. Викладач курсу — Дмитро Безуглий, генеральний директор компанії "Системний підхід", бізнес-аналітик і системний аналітик.
Читати далі →



В першу неділю березня в офісі Mail.Ru Group пройде міжнародна конференція Lua in Moscow 2017. У програмі — виступи автора мови Роберто Єрусалимського і кращих зарубіжних і вітчизняних експертів з Lua і LuaJIT.

Lua — унікальний мова програмування, який використовується далеко не тільки в індустрії комп'ютерних ігор, але і як вбудований мова розширень в таких інструментах web-програмування, як Redis, nginx, Tarantool, OpenResty. Lua також застосовується для аналізу великих даних, наукових обчислень. У багатьох роутерах, принтерах і інших подібних пристроях є Lua.

У 2014 році ми провели восьму щорічну конференцію по мові програмування Lua Workshop, найбільшу за кількістю учасників за всі роки. З тих пір ми не забували про мову програмування Lua, проводили митапы і потоки на IT-конференціях. І ось, нарешті, в цьому році у вас знову є шанс особисто задати питання автору мови, обмінятися досвідом з кращими програмістами і, звичайно, послухати доповіді про передовий досвід застосування Lua і LuaJIT.

Частина доповідей буде англійською мовою.

Навіть якщо ви ще не пишете мовою Lua, приходьте, можливо, конференція відкриє вам очі на щось нове та цікаве!

Читати далі →

image
Частини 1 і 2: посилання
У першій частині ми поговорили про різних стратегіях обробки помилок і про те, коли їх рекомендується застосовувати. Зокрема, я розповів, що передумови функцій повинні перевірятися з допомогою налагоджувальних тверджень (debug assertions), тобто тільки в режимі налагодження.
Для перевірки умови бібліотека З надає макрос
assert()
, але тільки якщо не визначено
NDEBUG
. Однак, як і у випадку з багатьма іншими речами, це просте, але іноді неефективне рішення. Головна проблема, з якою я зіткнувся, — глобальність рішення: у вас є твердження або скрізь, або ніде. Погано це тому, що ви не зможете вимкнути затвердження в бібліотеці, залишивши їх тільки у власному коді. Тому багато авторів бібліотек самостійно пишуть макроси тверджень, раз за разом.
Читати далі →



Існує дві основні стратегії: обробка виправних помилок (виключення, коди повернення помилково, функції-обробники) і невиправних (
assert()
,
abort()
). В яких випадках яку стратегію краще використовувати?

Читати далі →



У першу суботу лютого відбулася перша неформальна ігрова зустріч Game Design meetup. І сьогодні ми хочемо поділитися матеріалами виступів, під катом вас чекають презентації та відео чотирьох доповідей.

Читати далі →

останнім часом на Хабре з'являється досить багато статей про Tarantool — базу даних та сервер додатків, який використовується в Mail.Ru Group, Avito, Yota на різних високонавантажених проектах. І ось, коли в маленькому стартапі, який я іноді консультую, виникла необхідність поділу прекрасного, але, на жаль, монолітного програми на микросервисы, я подумав: а чим ми гірше за інших компаній? — і вирішив подивитися в бік Tarantool. Однак, на відміну від більшості компаній, де використовується Tarantool, в нашому випадку розробка проекту ведеться в Visual Studio на Windows. Передбачається, що навіть з переходом на микросервисную архітектуру більшість микросервисов буде написано на мові C#. А Tarantool… Варто зайти на офіційний сайт і відразу розумієш: Tarantool навіть встановити на Windows проблематично, так як на цю операційну систему він не портований. Як я боровся з такими складнощами, для якого саме микросервиса вибрав Tarantool і як ви можете використовувати Tarantool у своїх .NET-проектах, я розповім в цій статті. А поки спойлер — практично всі труднощі переборні, і мій досвід можна без сумнівів назвати позитивним. Наприклад, на те, щоб завантажити і запустити Tarantool, а потім зробити до нього запит з коду на мові C#, у мене пішло менше десяти хвилин. І я покажу вам, як це зробити!
image
Дана стаття являє собою туторіал, що описує роботу з Tarantool як таку. Тут немає опису проекту, побудованого на Tarantool, або порівняння Tarantool з іншими продуктами (статей на цю тему і так вже написано досить багато). Матеріал народився як спроба відповісти на запитання: а що б я хотів прочитати, коли тільки починав працювати з Tarantool. Але спочатку трохи розповім, для чого ми, власне, Tarantool застосовуємо в реальному житті.
Читати далі →

image

В останню середу лютого ми організуємо другий Unity Moscow Meetup. Зустріч відбудеться в офісі Mail.Ru Group. Запрошуємо розробників обмінюватися досвідом використання Unity, ідеями та сучасними підходами, а також заводити нові контакти. У програмі зустрічі дві доповіді, подробиці читайте під катом.

Читати далі →