Как стать автором
Обновить
10
0
Babichev Maxim @REZ1DENT3

Backend developer

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

История разработки фасетного поиска средствами PHP

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

Как экспериментальный Pet Project дошел до production и на что способны современные версии языка PHP. Немного о проблематике фасетного поиска в части построения агрегатов.

Если ваша первая реакция: «Почему не на Sphinx/ElasticSearch/etc?», не торопитесь с выводами. Воспринимайте изложенное как интересный исследовательский опыт в области возможностей языка и его оптимизаций.

Спойлер: пришлось даже написать порт на GoLang, чтобы лучше понять пути оптимизации кода.

Читать далее
Всего голосов 59: ↑58 и ↓1+57
Комментарии6

Как построить систему распознавания лиц с помощью Elasticsearch и Python

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

Пытались ли вы когда-нибудь искать объекты на изображениях? Elasticsearch может помочь вам хранить, анализировать и искать объекты на изображениях или видео.

В этом кратком руководстве мы покажем вам, как создать систему распознавания лиц с помощью Python. Узнайте больше о том, как обнаруживать и кодировать информацию о внешности - и находить совпадения в поиске.

Читать далее
Всего голосов 8: ↑6 и ↓2+4
Комментарии2

Я, пират

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


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

Так начинался фантастический рассказ — антиутопия про один день из жизни программиста в недалёком будущем, написанный мной в 2010 году. Меня просили продолжить, и через какое-то время появились идеи, но всё никак не было времени их реализовать. Однако в связи с последними событиями начинает казаться, что придуманный мной сюжет того гляди может стать реальностью. Поэтому сегодня представляю вам вторую главу. Рисунок был сделан в прошлом году совсем по другому поводу, но он хорошо подошел сюда как иллюстрация.
Читать дальше →
Всего голосов 228: ↑205 и ↓23+182
Комментарии70

Algorithms in Go

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

Most solutions to algorithmic problems can be grouped into a rather small number of patterns. When we start to solve some problem, we need to think about how we would classify them. For example, can we apply fast and slow аlgorithmic pattern or do we need to use cyclic sortpattern? Some of the problems have several solutions based on different patterns. In this series, we discuss the most popular algorithmic patterns that cover more than 90% of the usual problems.

It is different from High-School Algorithms 101 Course, as it is not intended to cover things like Karatsuba algorithm (fast multiplication algorithm) or prove different methods of sorting. Instead, Algorithmic Patterns focused on practical skills needed for the solution of common problems. For example, when we set up a Prometheus alert for high request latency we are dealing with Sliding Window Pattern. Or let say, we organize a team event and need to find an available time slot for every participant. At the first glance, it is not obvious that in this case, we are actually solving an algorithmic problem. Actually, during our day we usually solve a bunch of algorithmic problems without realizing that we dealing with algorithms.

The knowledge about Algorithmic Patterns helps one to classify a problem and then apply the appropriate method.

But probably most importantly learning algorithmic patterns boost general programming skills. It is especially helpful when you are debugging some production code, as it trains you to understand the execution flow.

Patterns covered so far:

Sliding Window I

Sliding Window II

Merge Intervals

Dutch National Flag

Matrix Spiral

Iterative Postorder Traversal

Bit Manipulation

Stay tuned :)

<Promo> If you interested to work as a backend engineer, there is an open position in my squad. Prior knowledge of Golang is not required. I am NOT an HR and DO NOT represent the company in any capacity. However, I can share my personal experience as a backend engineer working in the company. </Promo>

Read more
Всего голосов 7: ↑6 и ↓1+5
Комментарии0

Как удалить «неудаляемые» приложения со смартфона

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


Чтобы увеличить привлекательность смартфонов, производители ставят на них как можно больше разных программ. Это понятно. Просто берём и удаляем ненужное… Стоп.

Оказывается, некоторые программы невозможно удалить. Например, на отдельных моделях Samsung невозможно удалить Facebook (есть только опция 'disable'). Говорят, на Samsung S9 вдобавок предустановлены «неудаляемые» приложения Microsoft.

Эти смартфоны приведены для примера. Такая же проблема и на других моделях. На многих есть неудаляемые программы от самого производителя.

Всё это надо зачистить.
Читать дальше →
Всего голосов 190: ↑179 и ↓11+168
Комментарии203

Опыт инвестиций в акции

Время на прочтение4 мин
Количество просмотров79K
Всем привет. Опрос в моем прошлом посте показал, что людям хотелось бы почитать о моем опыте инвестиций. На данный момент мой ИИС открыт 1 год и 3 месяца назад. Инвестировал я 500 000 рублей за это время.
Читать дальше →
Всего голосов 52: ↑40 и ↓12+28
Комментарии165

90+ полезных инструментов для Kubernetes: развертывание, управление, мониторинг, безопасность и не только

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

Осенью 2018 года мы опубликовали список из 25 полезных инструментов Kubernetes. С тех популярность платформы сильно выросла. Экосистема оркестрации контейнеров бурно развивается, можно найти вспомогательные инструменты практически для любой задачи.

Поэтому команда Kubernetes aaS от Mail.ru обновила и дополнила подборку. Предлагаем вашему вниманию список с почти сотней полезных инструментов, упрощающих жизнь тем, кто работает с Kubernetes.

Всего голосов 30: ↑30 и ↓0+30
Комментарии15

MongoDB Go Driver туториал

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

UPD: туториал обновлен в связи с выходом релизной версии.


Хорошие новости! Официальный драйвер go для mongoDB вышел в релиз.
Немного поразмыслив я решил перевести статью с официального сайта mongoDB вместо того, чтобы писать материал самостоятельно(данный перевод отличается от статьи).
Вот что будет в данном туториале:


  • Установка mongo-go-driver
  • Соединение с mongoDB с помощью mongo-go-driver
  • Использование BSON объектов
  • Использование CRUD методов

image

Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии12

Миллион WebSocket и Go

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

image


Привет всем! Меня зовут Сергей Камардин, я программист команды Почты Mail.Ru.


Это статья о том, как мы разработали высоконагруженный WebSocket-сервер на Go.


Если тема WebSocket вам близка, но Go — не совсем, надеюсь, статья все равно покажется вам интересной с точки зрения идей и приемов оптимизации.

Читать дальше →
Всего голосов 119: ↑115 и ↓4+111
Комментарии78

Микросервисы на Go с помощью Go kit: Введение

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

В этой статье я опишу использование Go kit, набора инструментов и библиотек для создания микросервисов на Go. Эта статья — введение в Go kit. Первая часть в моем блоге, исходный код примеров доступен здесь.

Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии7

Как делегировать в условиях удаленной работы — руководство для тимлида и не только

Время на прочтение5 мин
Количество просмотров3.4K
Пандемия. Мир массово переключается на remote режим. И если еще пару месяцев назад удаленка была характерна в основном либо для фрилансеров, либо для самых прогрессивных компаний, то сегодня для многих предприятий этот формат стал единственной возможностью продолжать бизнес. И большинство вновь прибывших в эти ряды менеджеров и сотрудников оказались не готовы к такому развитию событий. Так в чем же проблема?

Давайте посмотрим, какие условия должны выполняться, чтобы связка “удаленный сотрудник — руководитель” заработала:

  • техническая оснащенность (интернет, ноутбук, подключенные доступы)
  • система коммуникаций (онлайн- и мобильные сервисы для общения с командой, для ведения проектов, отчетности, учета рабочего времени, контроля версий и т.д.)
  • четкая система делегирования (достижение целей подразделения с наилучшим использованием ресурсов команды).

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

В этой статье я обобщила свой собственный опыт руководства и те знания и навыки, которые затем получила, работая в области развития soft skills для лидеров и их команд. В настоящий момент я развиваюсь как iOS-разработчик, и имею возможность взглянуть на проблему и от лица члена IT-сообщества.
image
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии6

Собеседование здорового человека

Время на прочтение4 мин
Количество просмотров98K
Эта статья написана как ответ на статью «Собеседование в Додо Пиццу» со стороны разработчика с опытом синьора. Я не претендую на истинность суждений, мне хотелось бы выразить довольно популярное среди моих знакомых мнение о процессе найма в частности и жизни разработчика в целом.
Читать дальше →
Всего голосов 355: ↑341 и ↓14+327
Комментарии473

Планирование за час и другие оптимизации scrum ивентов

Время на прочтение7 мин
Количество просмотров9.4K
image
Чистый скрам — как единорог на музыкальном фестивале: вроде бы он существует, все о нём говорят, только вот показать тебе его никто не может. Так же сложилось и у нас в команде, об этом и поговорим. А если конкретнее — о том, как мы сократили время на встречи и не потеряли пользу от них.
Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии10

Помоги компилятору помочь тебе

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

Предисловие


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


Огромное количество претензий, которые предъявляют к языку C++ в этих ваших интернетах, — про сложность, небезопасность, стрельбу по ногам и т.п., — относятся как раз к тем случаям, когда люди просто не знают о том, что можно решить эти проблемы лёгким движением пальцев по клавиатуре.


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

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

Создаем интернет-магазин на Nuxt.js 2 пошаговое руководство Часть 2

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


Первая часть тут


Продолжаем разработку нашего интернет магазина. В этой части будет:


  • нормальная загрузка картинок по статическим адресам
  • генерация хлебных крошек на клиенте
  • страница товара
  • шапка
  • рабочая кнопка купить с синхронизацией товаров между вкладками (и сессиями)
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии10

Как в одиночку запустить продукт, если вы разработчик: советы от создателя Laravel Тейлора Отвела. Часть 1: Аудитория

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


Элита программисты или нет, достойны они сверхвысоких зарплат и заслуживают ли особого отношения — вопрос спорный. Очевидно только то, что программист — профессия немасштабируемая, поэтому сравнение с водителем автобуса вполне оправданно. В конечном итоге, программист продает часы разработки. Можно всю жизнь перебирать компании, какая из них больше предложит, но от этого часов в сутках не прибавится.


Лучше брать пример с Тэйлора Отвела, который создавал Laravel в свободное от основной работы время. В ноябре он опубликовал мини-серию подкастов, в которой поразмыслил над успехом своих программных продуктов — за последние 5 лет они принесли ему больше 10 млн долларов. В четырех выпусках подкаста Тейлор поделился советами, которые затрагивают ряд тем от поиска идеи и формирования лояльной аудитории до сохранения мотивации и преданности качеству.


Думаю сейчас самое подходящее время представить конспект его рассуждений. Всего будет опубликовано три конспекта, которые полностью охватят материал первоисточника.

Итак, поехали.

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

Как в одиночку запустить продукт, если вы разработчик: советы от создателя Laravel Тейлора Отвела. Часть 2: Поиск идеи

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


В прошлом выпуске мы рассматривали различные способы формирования аудитории. Когда есть аудитория — есть потенциальные покупатели. Теперь осталось придумать, что им продавать.

Откуда брать идеи для своего продукта?
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии3

Как в одиночку запустить продукт, если вы разработчик: советы от создателя Laravel Тейлора Отвела. Часть 3: Не сдаваться

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


В предыдущих выпусках мы обсудили, как формировать аудиторию и где искать идеи для своего продукта. Но есть еще одна важная вещь, о которой меня часто спрашивают. Как сохранять мотивацию и доводить дело до конца. Сразу оговорюсь, что волшебной пилюли не существует, лично мне помогало следующее:
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии7

Telegram-бот для управления инфраструктурой

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

По мотивам статьи Телеграмм-бот для системного администратора (статья не моя, я только прочитал) захотел поделиться опытом создания Telegram-бота на PowerShell для управления серверами приложений. Будет текст, код и немножко картинок. Конструктивная критика приветствуется ( главное чтобы не звучало «зачем на PowerShell? Надо было на perl» ).

Думаю что статья больше подойдет «новичкам» в PowerShell, но и опытные администраторы могут что-то полезное здесь увидеть.

Саму статью старался построить по частям – от простого к сложному. Возможно, встретится плагиат, будьте бдительны!

Итак, у нас есть необходимость осуществлять управление сервисами или приложениями на нескольких серверах (останавливать, запускать), перезагружать сервера, смотреть логи и еще какую-то информацию при необходимости. Всё это хочется делать (на самом деле нет), находясь в метро, в магазине или даже лёжа на диване, без VPN и ноутбуков. Из требований (которые были написаны, конечно, на коленке).

  • Простота добавления/изменения задач в Telegram-бот
  • Многозадачность или параллелизация
  • «Понятный» интерфейс управления
  • Хоть какая-то безопасность
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии31

Node.js Streams для чайников или как работать с потоками

Время на прочтение8 мин
Количество просмотров88K
Я думаю многие не раз слышали про Node js Streams, но так ни разу и не использовали, либо использовали, не задумываясь как же они работают, запайпили (pipe) стрим и норм. Давайте же разберемся что такое стримы, запайпить (pipe), чанки (chunk — часть данных) и все такое))


Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии10
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Краснодар, Краснодарский край, Россия
Дата рождения
Зарегистрирован
Активность