Как стать автором
Обновить
26
0

Пользователь

Отправить сообщение

Telegram. Безлимитный сетевой диск. Бесплатный

Время на прочтение3 мин
Количество просмотров187K
Привет, Хабр.

Наверняка многие об этом задумывались, возможно у кого то эта идея лежит в TODO. У меня она пролежала примерно год, но таки удалось ее реализовать в виде работающего прототипа.

TgCloud:


  • Виртуальная файловая система с открытым исходным г****кодом.
  • На локальном диске — только метаданные: имена, размер, структура папок и т.д.
  • Данные хранятся в Telegram и загружаются только при работе с файлом
  • Размер и тип файлов не ограничен, можно использовать с любой ОС

Подробности реализации и ссылка на репозиторий под катом.
Читать дальше →
Всего голосов 211: ↑175 и ↓36+139
Комментарии232

Производительность фронтенда: разбираем важные метрики

Время на прочтение12 мин
Количество просмотров32K
Обычно под производительностью понимают количество операций за определенный интервал времени и чем их больше, тем лучше. Но такое определение, да и подход в целом, мало применим к фронтенду, потому что у каждого пользователя будет свой «фронтенд». Именно об этом я и хочу поговорить, что же происходит «там», у пользователя, на другой стороне, в реальности, а не на вашем топовом MacBook.

Кроме это, я постараюсь вскользь рассмотреть общие правила оптимизации кода и некоторые ошибки на которые стоит обратить внимание. Ещё расскажу про инструмент, который помогает не только в профилировании, но и «из коробки» собирает кучу базовых метрик о производительности вашего приложения (и надеюсь, вы дочитаете этот пост до конца).
Читать дальше →
Всего голосов 65: ↑65 и ↓0+65
Комментарии22

Bitmap-индексы в Go: поиск на дикой скорости

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


Вступительное слово


Я выступил с этим докладом на английском языке на конференции GopherCon Russia 2019 в Москве и на русском — на митапе в Нижнем Новгороде. Речь в нём идёт о bitmap-индексе — менее распространённом, чем B-tree, но не менее интересном. Делюсь записью выступления на конференции на английском и текстовой расшифровкой на русском.

Мы рассмотрим, как устроен bitmap-индекс, когда он лучше, когда — хуже других индексов и в каких случаях он значительно быстрее них; увидим, в каких популярных СУБД уже есть bitmap-индексы; попробуем написать свой на Go. А «на десерт» мы воспользуемся готовыми библиотеками, чтобы создать свою супербыструю специализированную базу данных.

Очень надеюсь, что мои труды окажутся для вас полезными и интересными. Поехали!
Всего голосов 93: ↑91 и ↓2+89
Комментарии40

Реставрируем фотографии с помощью нейросетей

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


Всем привет, я работаю программистом-исследователем в команде компьютерного зрения Mail.ru Group. Ко Дню Победы в этом году мы решили сделать проект по реставрации военных фотографий. Что такое реставрация фотографий? Она состоит из трех этапов:

  • находим все дефекты изображения: надломы, потертости, дырки;
  • закрашиваем найденные дефекты, основываясь на значениях пикселей вокруг них;
  • раскрашиваем изображение.

В этой статье я детально пройдусь по каждому из этапов реставрации и расскажу, как и где мы брали данные, какие сети мы учили, что у нас получилось, на какие грабли мы наступили.
Читать дальше →
Всего голосов 119: ↑118 и ↓1+117
Комментарии43

Используем все возможности индексов в PostgreSQL

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

В мире Postgres индексы крайне важны для эффективной навигации по хранилищу базы данных (его называют «куча», heap). Postgres не поддерживает для него кластеризацию, и архитектура MVCC приводит к тому, что у вас накапливается много версий одного и того же кортежа. Поэтому очень важно уметь создавать и сопровождать эффективные индексы для поддержки приложений.

Предлагаю вашему вниманию несколько советов по оптимизации и улучшению использования индексов.

Примечание: показанные ниже запросы работают на не модифицированном образце базы данных pagila.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии3

Внедрение зависимостей в Go

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

Недавно я создал небольшой проект на языке Go. После нескольких лет работы с Java я был сильно удивлён тем, как вяло внедрение зависимостей (Dependency Injection, DI) применяется в экосистеме Go. Для своего проекта я решил использовать библиотеку dig от компании Uber, и она меня по-настоящему впечатлила.

Я обнаружил, что внедрение зависимостей позволяет решить множество проблем, с которыми я сталкивался в работе над Go-приложениями: злоупотребление функцией init и глобальными переменными, чрезмерная сложность настройки приложений и др.

В этой статье я расскажу об основах внедрения зависимостей, а также покажу пример приложения до и после применения этого механизма (посредством библиотеки dig).
Читать дальше →
Всего голосов 48: ↑43 и ↓5+38
Комментарии92

Прорабатываем навык использования группировки и визуализации данных в Python

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

Привет, Хабр!

Сегодня будем прорабатывать навык использования средств группирования и визуализации данных в Python. В предоставленном датасете на Github проанализируем несколько характеристик и построим набор визуализаций.

По традиции, в начале, определим цели:

  • Сгруппировать данные по полу и году и визуализировать общую динамику рождаемости обоих полов;
  • Найти самые популярные имена за всю историю;
  • Разбить весь временной промежуток в данных на 10 частей и для каждой найти самое популярное имя каждого пола. Для каждого найденного имени визуализировать его динамику за все время;
  • Для каждого года рассчитать сколько имен покрывает 50% людей и визуализировать (мы увидим разнообразие имен за каждый год);
  • Выбрать 4 года из всего промежутка и отобразить для каждого года распределение по первой букве в имени и по последней букве в имени;
  • Составить список из нескольких известных людей (президенты, певцы, актеры, киногерои) и оценить их влияние на динамику имен. Построить наглядную визуализацию.

Меньше слов, больше кода!

И, поехали.
Читать дальше →
Всего голосов 44: ↑42 и ↓2+40
Комментарии5

SNA Hackathon 2019

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

В феврале-марте 2019 года проходил конкурс по ранжированию ленты социальной сети SNA Hackathon 2019, в котором наша команда заняла первое место. В статье я расскажу про организацию конкурса, методах, которые мы попробовали, и настройках catboost для обучения на больших данных.


Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии2

Столярная мастерская своими руками: ожидания и реальность

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


Зачем вообще делать столярную мастерскую? Однозначного ответа у меня нет. Если вам просто хочется делать что-то руками из дерева, то есть мастерские, в которые можно прийти, заплатить деньги за аренду станков и рабочего места, и сделать всё там. Необязательно иметь свое помещение и собственное оснащение. Если же вы хотите заниматься деревообработкой как бизнесом, то конкуренция здесь высокая, найти свою нишу сложно. Поэтому я начну с объяснения моих собственных мотивов.
Читать дальше →
Всего голосов 151: ↑144 и ↓7+137
Комментарии201

Завершающий курс специализации по Python от Mail.ru Group

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


Python — простой и гибкий язык, применяемый во многих областях современной разработки. На нём создают веб-приложения, пишут игры, анализируют данные и выполняют многие другие задачи. Mail.ru Group запустила на платформе Coursera специализацию «Программирование на Python», состоящую из четырех курсов — от погружения в язык до Data Science. Мы хотим, чтобы изучать и углублять свои знания в языке могли и новички, и студенты, и опытные разработчики.

Первая из четырех частей, «Погружение в Python», стартовала еще в 2017 году. В августе слушателям стали доступны вторая и третья части: «ООП и паттерны проектирования в Python» и «Создание Web-сервисов на Python». А в декабре стартовала четвертая, заключительная часть специализации «Python для анализа данных».

Все курсы подготовлены при поддержке МФТИ, их авторы — сотрудники МФТИ и Mail.ru Group.
Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии2

VShard — горизонтальное масштабирование в Tarantool

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


Меня зовут Владислав, я участвую в разработке Tarantool — СУБД и сервера приложений в одном флаконе. И сегодня расскажу вам, как мы реализовали горизонтальное масштабирование в Tarantool при помощи модуля VShard.
Читать дальше →
Всего голосов 58: ↑58 и ↓0+58
Комментарии5

Лучшие работодатели в ИТ 2018: ежегодный рейтинг «Моего круга»

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

В середине 2018 года мы на «Моём круге» запустили сервис оценки работодателей, с помощью которого каждый сможет узнать, что думают о компании как о работодателе её сотрудники. И сегодня рады представить первый ежегодный рейтинг компаний «Лучшие работодатели в ИТ 2018, по версии «Моего круга». Этот рейтинг мы хотим сделать доброй традицией и выпускать ежегодно.

С момента запуска сервиса порядка 5000 сотрудников поставили свои оценки более чем 900 компаниям. В итоге, на данный момент публичную оценку получили 150 компаний, собравших мнения о себе от 10 и более сотрудников. Именно эти компании и стали участниками нашего нынешнего рейтинга.

Сотрудники оценивают своих работодателей по 12 качествам, по каждому ставят оценку от 1 (полностью не согласен) до 5 (полностью согласен). Из оценок сотрудников вычисляется средняя оценка каждого качества (как среднее взвешенное), а из оценок качеств — средняя оценка компании в целом (как среднее арифметическое). Эти средние оценки компании в целом мы и сравниваем, чтобы построить рейтинг. Подробнее о системе оценок и правилах их расчёта.

Ещё мы сравниваем оценки компаний по каждому из 12 качеств, и если компания вошла в тройку лидеров по данному качеству, мы присваиваем ей соответствующую номинацию.

Компании в рейтинге соревнуются в 4 «весовых» категориях:


  • Огромные компании (xbig). Для компаний численностью более 5000 сотрудников, «нормальной» (средней медианной) является оценка 3.6.
  • Большие компании (big). Для компаний от 1000 до 5000 сотрудников — 4.2.
  • Средние компании (medium). Для компаний от 100 до 1000 сотрудников — 4.5
  • Небольшие компании (small). Для компаний от 10 до 100 сотрудников — 4.6.
Смотреть рейтинг компаний
Всего голосов 77: ↑68 и ↓9+59
Комментарии56

Знакомство с виртуализацией, контейнерами и Kubernetes: 18 материалов о работе в облаке

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


В этой подборке команда Kubernetes aaS от Mail.ru объединила статьи и руководства для тех, кто хочет познакомиться с виртуализацией. В материалах под катом — как появилась виртуальная инфраструктура, что такое контейнеризация и чем занимается Cloud DevOps Engineer.
Читать дальше →
Всего голосов 40: ↑36 и ↓4+32
Комментарии0

Как стать React разработчиком в 2018 году

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


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

Адам Голаб, эксперт по React и JS, составил пошаговый учебный план, который поможет вам стать разработчиком с нуля либо укажет направление для дальнейшего повышения навыков в профессии.

План Адама представляет собой список основных пунктов, которые вам нужно изучить самостоятельно. Мы добавили описание, а в некоторых сложных моментах указали ссылки на дополнительные справочные материалы, с помощью которых вы получите ответ на вопрос: «Что я должен узнать как React-разработчик?».
Читать дальше →
Всего голосов 67: ↑62 и ↓5+57
Комментарии121

25 полезных инструментов Kubernetes: развёртывание и управление

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

Anthony Smith Images / Shutterstock.com

Мы создаём Kubernetes как облачный сервис и пристально следим за актуальными инструментами разработчиков контейнерных приложений. В этом посте мы расскажем про инструменты, которые сильно облегчают работу с развёртываниями Kubernetes и помогают построить CI/CD.
Читать дальше →
Всего голосов 36: ↑31 и ↓5+26
Комментарии21

Курс по Machine Learning от Почты Mail.Ru

Время на прочтение3 мин
Количество просмотров11K
27 сентября начинается курс по машинному обучению от Почты Mail.Ru. Занятия будут проходить два раза в неделю в офисе Mail.Ru Group в течение трех месяцев. Регистрация открыта для студентов московских ВУЗов.

В ходе курса специалисты Почты и Антиспама Mail.Ru расскажут об ML-технологиях, которые применяются для того, чтобы сделать Почту еще более удобным и современным продуктом. Под катом подробности о курсе: формат, программа, авторы и перспективы для выпускников.


Читать дальше →
Всего голосов 29: ↑24 и ↓5+19
Комментарии10

Приглашаем на митап «Go в продакшене»

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


23 сентября в московском офисе Mail.Ru Group пройдёт тематический митап «Go в продакшене». Знакомьтесь с программой и регистрируйтесь! Вход на событие бесплатный, по одобренной регистрации.

На митапе мы хотим рассказать и показать на примерах разных компаний, как мигрировать на Go с других языков, почему проекты и компании выбирают Go, какие они решают задачи, с чем сталкиваются при переходе, какие получают результаты и т.д. Митап ориентирован на людей, которые не имеют опыта в Go, но очень хотят попробовать и нуждаются во вдохновляющих примерах.
Программа и другая полезная инфа
Всего голосов 41: ↑38 и ↓3+35
Комментарии10

Процесс ревью кода в hh.ru

Время на прочтение7 мин
Количество просмотров19K
Мне на глаза попался документ с правилами и рекомендациями по процессу ревью кода внутри компании. Я решил, что такой полезной информацией надо поделиться с внешним миром. С благословения автора я публикую работу.


Читать дальше →
Всего голосов 40: ↑37 и ↓3+34
Комментарии2

Коллаборативная фильтрация

Время на прочтение6 мин
Количество просмотров70K
В современном мире часто приходится сталкиваться с проблемой рекомендации товаров или услуг пользователям какой-либо информационной системы. В старые времена для формирования рекомендаций обходились сводкой наиболее популярных продуктов: это можно наблюдать и сейчас, открыв тот же Google Play. Но со временем такие рекомендации стали вытесняться таргетированными (целевыми) предложениями: пользователям рекомендуются не просто популярные продукты, а те продукты, которые наверняка понравятся именно им. Не так давно компания Netflix проводила конкурс с призовым фондом в 1 миллион долларов, задачей которого стояло улучшение алгоритма рекомендации фильмов (подробнее). Как же работают подобные алгоритмы?

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


Читать дальше →
Всего голосов 57: ↑55 и ↓2+53
Комментарии20

Пишем код C на Cython

Время на прочтение3 мин
Количество просмотров57K
Последние два года я решаю все задачи исключительно на Cython. Это вовсе не значит, что я пишу на Питоне, а потом «Ситонизирую» это с использованием различных деклараций типов, нет, я просто пишу на Cython. Я использую «сырые» структуры и массивы C (а иногда и векторы C++) и маленькую обёртку вокруг malloc/free, которую я написал сам. Код работает практически так же быстро, как C/C++, потому что это и есть код на C/C++, украшенный синтаксическим сахаром. Это код на C/C++ с функционалом Python именно там, где мне это нужно и где я этого хочу.

Читать дальше →
Всего голосов 71: ↑62 и ↓9+53
Комментарии13

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность