Как стать автором
Обновить
1
0
Kirill Plotnikov @pltnk

Senior Software Engineer / Team Lead

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

Хронология развития DPI в России и странах СНГ

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

Поговорим про DPI? В России эту аббревиатуру большинство интернет-пользователей воспринимает негативно, так как она ассоциируется с блокировкой Телеграма – по мнению многих, одного из самых юзер-френдли мессенджеров. В 2018 году это событие вызвало широкий общественный резонанс. Конечно, DPI позволяет блокировать приложения, будь то мессенджеры, соцсети, да и вообще любой сервис в сети, однако сценариев применения операторами DPI гораздо больше.

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

Обзор PocketBook Cloud — бесплатного облачного сервиса для синхронизации книг между ридерами, смартфонами и компьютерами

Время на прочтение6 мин
Количество просмотров47K
Приветствую всех! В недавнем обзоре флагманского ридера PocketBook 740 я обещал написать отдельный пост об облачном сервисе PocketBook Cloud. Собственно, этот самый отдельный пост вы сейчас и читаете.



PocketBook 740 — первый ридер с поддержкой PocketBook Cloud. Поэтому тестирование я проводил именно с его помощью. (Позже поддержку сервиса получат и некоторые другие покетбуки, к этому вопросу я ещё вернусь ниже.) Для удобства я разобью пост на главы, в которых и расскажу — что такое PocketBook Cloud и для чего он вообще нужен. Если коротко, то это сервис для тех, кто живет чтением в прямом смысле этого слова и читает книги на любом подручном устройстве любую свободную минуту. И этот сервис позволяет синхронизировать книги и позиции чтения между ридером, компом, смартфоном и планшетом. То есть делать то, чего от «Покета» давно ждали.

Более развернутый вариант рассказа о PocketBook Cloud — ниже.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии73

Здоровая конкуренция в GO. Главное не перехитрить самого себя

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров14K

Несколько лет назад я прочитал статью о параллелизации в GO и ничего не понял – я тогда только начинал программировать на этом языке. Но размышления автора мне очень понравились – они подкреплялись бэнчмарками, что было довольно убедительно. Автор игрался c параметром GOMAXPROCS и показал, что увеличение этого параметра не всегда приводит к увеличению производительности. Под конец статьи он подобрал такое значение, которое будет максимально эффективным для его функции, на мое удивление, это значение оказалось равно единице! Т.е. его код работал максимально эффективно, если работал всего на одном ядре процессора! Однако, в одном из комментариев под той статьей я прочел, что все эти изыскания нелепы, поскольку та же самая функция из статьи запущенная всего в один поток оказывается эффективнее любой ее параллельной реализации.


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



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

Дизайн-система Gravity UI: как легко построить свой интерфейс

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров45K

Всем привет, я Алексей Сизиков, руководитель отдела User Experience в Yandex Cloud. В этой статье я хочу поделиться новостью: мы выпустили нашу дизайн-систему и библиотеку компонентов Gravity UI в опенсорс. 

Под катом — рассказ, зачем мы сделали Gravity UI, как его используем, в чём особенности и преимущества нашего подхода и как мы планируем развивать его дальше. А ещё — как настроить разные цветовые схемы в своих проектах и почему у нас четыре темы вместо двух стандартных.

Читать далее
Всего голосов 66: ↑64 и ↓2+67
Комментарии27

RecTools – OpenSource библиотека для рекомендательных систем

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров9.8K

Если вы когда-либо работали с рекомендательными системами, то знаете, что все необходимые и самые часто используемые инструменты разбросаны по разным библиотекам. Более того, каждая из таких библиотек имеет много уникальных особенностей, к которым нужно приноровиться (например, разные форматы данных на вход).

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

К такому же выводу, видимо, пришли ребята из МТС – и выкатили в опенсурс RecTools. Это библиотека, где собраны самые часто используемые модели для рекомендательных систем. Также с её помощью можно максимально просто и быстро оценивать необходимые метрики. 

Давайте же посмотрим, что RecTools умеет, и как с этим работать.

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

Как я использовала идею CYBERPUNK 2077 в договорах с клиентами

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров78K

Договоры необязательно писать только «юридическим» языком. Можно упрощать, чтобы было понятно, о чём там речь, неюристам. Как же я обрадовалась, когда увидела оферту CYBERPUNK 2077. Там буквально на языке простого пользователя игры объясняли сложные вещи. Оказывается, так можно делать!

И никто не отругает: теперь я могу ссылаться на оферту одной из самых популярных игр, если кто‑то скажет, что «так никто не делает».

Что получилось
Всего голосов 132: ↑127 и ↓5+158
Комментарии158

Press F, чтобы рассчитать использование облачных ресурсов

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

Привет, Хабр! Меня зовут Эд, я менеджер биллинга в Selectel. Сегодня хотел бы рассказать про подход FinOps, который объединяет продуктовое мышление, мониторинг и управление облачными ресурсами. А еще показать графики и разобрать, кому и зачем это вообще нужно. Спойлер: не только кросс-командным проектам. Приглашаю за подробностями под кат.
Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии10

Yet Another Easyjson. Как я не устаю делать велосипеды, а главное зачем

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров3.9K

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


Сразу скажу: велосипедостроение в коммерческой разработке — зло. Создавать что-то, что уже существует и было отлажено многократно – это бессмысленно. И учитывая время, необходимое для выхода на рынок (Time To Market), это еще и опасно. Кроме того, новый код — это новые ошибки. Именно поэтому часто проще взять готовое и дополнить его до нужного уровня при работе в реальных продуктовых проектах.


Тем не менее, я противоречу сам себе, опровергая то, что сказал ранее. Я разработал на языке GO свой собственный easyjson в рамках именно продуктовой разработки, за что мне бесконечно стыдно. Если кто-то скажет, что я потратил деньги бизнес-заказчика в угоду своим амбициям, я не буду с ним спорить, но у меня были определенные причины, а главное теперь у меня есть интересный опыт. Об этом опыте я и расскажу.



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

Интервью с разработчиками мультитула для хакеров и пентестеров Flipper Zero

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров29K

Flipper Zero — карманный "мультитул" для гиков, сокровище для пентестеров, ваш собственный кибер-зверёк. Возможности девайса ограничиваются только вашим воображением и сноровкой.

В этой статье мы пообщаемся с разработчиками устройства Flipper Zero. Поклонникам девайса предлагается нырнуть вглубь истории создания и технических возможностей. Тем, кто впервые слышит про Флиппер — познакомиться с проектом.

Читать далее
Всего голосов 43: ↑37 и ↓6+52
Комментарии34

Анализ «Пяти неправд»

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

«Пять почему» — это распространённый метод исследования первопричин события. Он основан на предположении, что задав вопрос «почему» пять раз, можно найти ответ, который и будет являться первопричиной. Программист Сергей Целовальников* уверен: такая практика может оказаться полезной, но её бездумное применение часто приводит к не самым лучшим результатам.

Под катом автор рассуждает о специфике этого метода на примере выдуманного инцидента в компании Acme Corp.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Всего голосов 26: ↑25 и ↓1+25
Комментарии9

IT-Екатеринбург: как из заводской культуры выросли IT-слоны и поколение айтишников

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

Екатеринбург — четвертый по населению город России. Как и большинство уральских городов, он начался с железоделательного завода: в Лондоне до сих пор есть крыши, покрытые металлом с нашим соболем на логотипе.

Издалека Екатеринбург известен как родина Бориса Ельцина, место расстрела царской семьи, столица конструктивизма и крупный промышленный центр. По просьбе Хабра расскажу про Екатеринбург айтишный — историю появления и становления IT-жизни здесь, состояние, перспективы развития.

Читать далее
Всего голосов 45: ↑40 и ↓5+44
Комментарии87

Прививка от ошибки выбора: что спросить работодателя «на берегу»

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров24K

Меня зовут Настя, я руководитель службы инструментов репозитория в Yandex Infrastructure. Больше 15 лет я проработала в IT-индустрии: сначала как разработчик, потом тимлид, техлид, менеджер проектов и руководитель службы. За это время несколько сотен человек рассказали мне о своём карьерном пути: кто-то собеседовался со мной как с нанимающим менеджером, кто-то приходил ко мне на менторинг, кто-то расширял свой нетворк, как теперь модно говорить. Из этих разговоров можно выделить причины недовольства работой, которые я вижу у людей чаще остальных. Одна из главных причин — ошибка выбора вакансии.  

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

Читать далее
Всего голосов 44: ↑41 и ↓3+44
Комментарии49

Пакет context в Go: взгляд профессионала

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров28K

А вы часто читаете реализацию стандартной библиотеки своего любимого языка?..

Меня зовут Константин Соколов, и мы с Сергеем Мачульскисом, моим коллегой из бэкенд-разработки в Positive Technologies, хотим с вами поделиться вдохновением. Давайте вместе посмотрим на пакет context с последними обновлениями. На наш взгляд, он идеально выражает философию языка Go! Образцовый интерфейс, постоянное развитие пакета и использование самых распространенных приемов Go — все это говорит о том, что наш материал будет полезен не только новичкам, но и знатокам.

Под кат
Всего голосов 34: ↑33 и ↓1+35
Комментарии8

Человеческим языком про метрики 3: перцентили для чайников

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

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

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

Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria, Cloak и все-все-все

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

Три месяца назад здесь на Хабре была опубликована статья “Интернет-цензура и обход блокировок: не время расслабляться”, в которой простыми примерами показывалось, что практически все популярные у нас для обхода блокировок VPN- и прокси-протоколы, такие как Wireguard, L2TP/IPSec, и даже SoftEther VPN, SSTP и туннель-через-SSH, могут быть довольно легко детектированы цензорами и заблокированы при должном желании. На фоне слухов о том, что Роскомнадзор активно обменивается опытом блокировок с коллегами из Китая и блокировках популярных VPN-сервисов, у многих людей стали возникать вопросы, что же делать и какие технологии использовать для получения надежного нефильтрованного доступа в глобальный интернет.

Мировым лидером в области интернет-цензуры является Китай, поэтому имеет смысл обратить на технологии, которые разработали энтузиасты из Китая и других стран для борьбы с GFW (“великим китайским файрволом”). Правда, для неподготовленного пользователя это может оказаться нетривиальной задачей: существует огромное количество программ и протоколов с похожими названиями и с разными не всегда совместимыми между собой версиями, огромное количество опций, плагинов, серверов и клиентов для них, хоть какая-то нормальная документация существует нередко только на китайском языке, на английском - куцая и устаревшая, а на русском ее нет вообще.

Поэтому сейчас мы попробуем разобраться, что же это все такое и как это использовать и не сойти с ума.

Читать далее
Всего голосов 126: ↑124 и ↓2+153
Комментарии136

Проксируем OpenVPN с помощью Cloak

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров76K

Cloak — это подключаемый транспорт, который расширяет возможности традиционных прокси-инструментов, таких как OpenVPN, Shadowsocks и Tor для обхода сложной цензуры и дискриминации данных.

Руководство будет включать:

1. Предисловие

2. Описание работы Cloak

3. Настройку сервера Cloak

4. Настройку клиента Cloak на OpenWRT

5. Настройку клиента OpenVPN

Читать далее
Всего голосов 34: ↑34 и ↓0+34
Комментарии59

Анализ музыкальных предпочтений с использованием аудиоаналитики на Python

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

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

Что делает песню хитом? Какие элементы музыки заставляют нас нажимать "пропустить" или добавлять трек в свой плейлист? Ответы на эти вопросы лежат в понимании музыкальных предпочтений слушателей. Анализ этих предпочтений — это не только путь к более точным рекомендациям, но и ключ к пониманию наших эмоциональных реакций на музыку. Именно здесь на сцену выходит аудиоаналитика.

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

Не как у людей — история проекта 1tracker

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров5.1K

Весной 2012 года я опубликовал первую версию экспериментального мультисистемного кроссплатформенного музыкального редактора с интерфейсом типа «трекер» — 1tracker v0.1. Экспериментальность заключалась в проверке новых подходов и отказе от общепринятых стандартов для подобного рода программ. Прошло десять лет, редактор до сих пор экспериментальный, до сих пор мало кому известен, и до сих пор не добрался до версии 1.0. Тем не менее, он регулярно пригождается нескольким странным людям на планете, а новые концепции вполне успешно выдержали проверку временем, хотя вряд ли когда-нибудь станут новым стандартом. Пора выйти из сумрака и рассказать обо всём этом подробнее. И заодно про историю трекеров.
Читать дальше →
Всего голосов 64: ↑64 и ↓0+64
Комментарии15

Колхоз. Большая история фермы устройств Яндекса

Время на прочтение20 мин
Количество просмотров39K
Все новые сервисы Яндекса, а также апдейты к существующим приложениям и сайтам нужно тестировать: на айфонах, андроидах, десктопах, умных колонках, телевизорах. Раньше часть тестировщиков работали на личных телефонах и компьютерах, а часть — использовали для тестов корпоративные девайсы. Процесс не был гибким и с трудом масштабировался. Поэтому мы сделали свою клауд-ферму устройств. Сначала ей пользовались только отдельные команды тестирования, но со временем ферма стала особенно популярна и среди разработчиков. В итоге мы собрали почти 800 разных девайсов, которые теперь доступны 24/7.



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

DIY таймер кормления кота на Arduino Mega

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров7K

Я разработчик, в то время работал в начальником отдела разработки в небольшой "компании одного продукта", пилил что-то типа ERP, посвященной ремонту больших парков грузовиков-бульдозеров-экскаваторов, учету съеденных на этот ремонт клиенских денег и контролю затраченного на него времени.

Как водится, у меня есть кот. Это не дань моде: коты у меня живут всю жизнь и всю жизнь они хотят есть (а некоторые даже ЖРАТЬ) что не проблема, когда ты живешь один и всегда знаешь, что ты либо покормил кота, либо еще нет — промежуточного состояния не дано.

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

Все ясно: кто-то недавно его покормил. Скорее всего потом потом кто-то еще покормил. А потом еще и ты. А потом...

Читать далее
Всего голосов 47: ↑47 и ↓0+47
Комментарии43

Информация

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

Специализация

Backend Developer, ML Engineer
Senior