Pull to refresh
0
0

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

Send message

Выпускайте Кракена: опыт использования KrakenD

Reading time12 min
Views12K

Привет, Хабр! Меня зовут Владимир Калугин, я руковожу бэкенд-разработкой в МТС Travel. Сегодня расскажу про KrakenD, готовое решение, которое мы используем для реализации API-шлюза, важной штуки для продуктов с микросервисной архитектурой. Уверен, наш опыт может пригодиться разработчикам из других сервисов.

Читать далее
Total votes 21: ↑20 and ↓1+19
Comments8

Учет электроэнергии для умного дома — zemismart SPM02

Level of difficultyEasy
Reading time4 min
Views16K

Достаточно долгое время искал для своего умного дома датчик учета электроэнергии, сначала присматривался к Tuya Smart Life 3 Phase WiFi Energy KWH Meter, но места в щитке у меня не было (думал повесить его за щитком), потом думал собрать на ESP32, но нужно было собирать три устройства - ввод в квартиру у меня 3х фазный, но совсем недавно на рынке появился миниатюрный датчик от известного производителя электроники zemismart - SPM02-D2TZ (у производителя также есть однофазное устройство - SPM01).

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments33

Профилирование Node.js. Доклад Яндекса

Reading time18 min
Views7.8K
Полтора года назад я выступил на FrontendConf и посвятил 40 минут профилированию. Перечисленные приемы и инструменты по-прежнему актуальны — сегодня публикую видео с подробным конспектом. Доклад расскажет, что такое профилирование, научит локализовывать потенциальные утечки памяти, а также немного углубит ваше понимание инструмента DevTools.

— Всем привет. Меня зовут Артём Несмиянов, я fullstack-разработчик Яндекс.Практикума. И, как видите, сегодня я хочу рассказать о профилировании Node.js, хотя это не совсем фронтендерская тема. Но сейчас очень много приложений используют фронтбэк, где есть свой server-side rendering, где нужно это все отдавать клиенту, и фронтендеру часто приходится взаимодействовать с Node.js. Иногда происходят вещи, которые могут повлиять на ваш сервер, положить его, перегрузить и так далее. С этим надо бороться. Я хочу показать, какие методы использовали мы. Это скорее введение в профилирование Node.js.
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments0

Эффективное ведение дел или Obsidian + GTD

Level of difficultyMedium
Reading time12 min
Views41K

Иногда сложно справиться с большим потоком задач и информации, особенно если это касается работы. Поэтому создание персональной базы знаний для своих текущих дел становится весьма актуальным. Но простая фиксация данных не всегда эффективна: легко потеряться в куче заметок. Различные методики помогают правильно организовать процесс. Вместе с тем информация не существует сама по себе, она, как правило, неразрывно связана со всеми нашими проектами, задачами и другими событиями. Если это учитывать, то проще оперировать данными, находить нужные факты. Через задачу легко выйти на связанную с ней информацию или, наоборот, через данные можно найти проект или задачу, в рамках которых они появились. Однако на практике все это будет эффективно работать, если получится создать единую среду для ведения дел и хранения всех связанных с ними данных.

Существующие приложения, как правило, не могут предоставить готовое решение для работы в таком контексте. Приходится придумывать или создавать что-то свое. Самое простое — это начать с каких-то стандартных заметочников, например Evernote или OneNote, и приспособить их под себя. Однако с появлением Roam-подобных программ пришло понимание, что можно создать очень гибкую систему, которую легко настроить под ведение любого вида задач, проектов и хранение различного типа связанной с ними информации. В этой статье познакомимся с примером настройки и практического использования маркдаун-заметочника Obsidian совместно с методологией Getting Things Done (GTD) Дэвида Аллена.

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments34

Собеседование в Яндекс: театр абсурда :/

Reading time14 min
Views511K

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

В прошлой статье меня знатно разбомбили в комментариях, где-то за дело, где-то я считаю, что нет. Так или иначе, я выжил, и у меня есть чем с вами поделиться >:)

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

Как вы думаете, что делают рекрутеры, когда видят "Alexandr, NOT OPEN FOR WORK"? Правильно, пишут "Алексей, рассматриваете вариант работать в X?" Я обычно игнорирую это, но тут мне предложили попытать счастья с Яндекс.Лавкой, и я не смог пройти мимо - интересно было, смогу ли я устроиться куда-нибудь, когда введут великий российский файерволл. К тому же за последние 3 года я проходил только два интервью, и мне показалось, что я не в теме, что нынче требуется индустрии. Блин, я оказался и вправду не в теме. И вы, скорей всего, тоже - об этом и статья.

Читать далее
Total votes 664: ↑637 and ↓27+610
Comments1270

Микросервисы — отчуждение от результатов труда

Reading time15 min
Views63K

Поветрия

Я наблюдаю за развитием IT в течение приблизительно четверти века, и с каждым днём меня всё сильнее удручает происходящее.

Постоянно мы слышим, что какой-нибудь паттерн или язык становится всё более модным, а что-то, напротив, — уходит в историю. А ещё различные поветрия о "хорошо или плохо" будто волнами перекатываются через это вот всё.

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

Увы, новые вещи (коих не так чтобы вообще есть) всё чаще приносят с собой и очевидно деструктивные, будто навязываемые извне, паттерны.

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

В этой статье я хотел бы поговорить о причинах происходящего.

Если кому-то интересно - под кат
Total votes 294: ↑226 and ↓68+158
Comments1018

Три важных качества CTO, о которых я не догадывался, пока был разработчиком

Level of difficultyEasy
Reading time8 min
Views38K

Я начинал карьеру как фронтенд-разработчик и прошел по всем стандартным этапам: от джуниора до сеньора и тимлида, потом стал руководителем отдела. И дальше, конечно, планировал стать CTO — Chief Technical Officer. И только через несколько лет узнал, что мои представления о том, какие навыки нужны на этой должности, были далеки от реальности.

В статье я расскажу о том, как я стал CTO в крупной компании и на своем опыте узнал о законах этого жанра. Если вам интересно, в чем заключается такая работа, или — вдруг — вы тоже готовитесь занять эту роль, добро пожаловать под кат!

Читать далее
Total votes 114: ↑110 and ↓4+106
Comments65

Создание сервера для онлайн ММО игр ч. 6 — Выбор технологий, протокола и архитектурный шаблон Entity Component System

Level of difficultyEasy
Reading time5 min
Views4.5K

Правительство РФ анонсировало выделение до $50 млрд для выхода РФ в топ-20 стран—разработчиков Игр к 2030 году. Возможно в скором времени разрабатываемый мной сервис наконец увидит свет.

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

Читать далее
Total votes 6: ↑3 and ↓30
Comments14

Что делать с детьми летом, если ты айтишник. Часть 2

Level of difficultyEasy
Reading time4 min
Views30K

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

Мой вариант — занять ребёнка чем-то созидательным, что привлекает его сейчас и поможет в будущем. Нам не пришлось долго выбирать. Поскольку я айтишник, в качестве хобби занимающийся ремонтом разных железок, дочка часто видит меня с мультиметром и паяльником. Она горит желанием помочь, но что тут можно доверить пятилетнему ребёнку? Оказывается, многое! Нужно только правильно организовать процесс.

Читать далее
Total votes 52: ↑49 and ↓3+46
Comments27

Как не нужно фиксить concurrency проблемы

Level of difficultyEasy
Reading time3 min
Views10K

Согласитесь, сoncurrency — одна из непростых тем программирования. В начале своей карьеры программиста кто‑то всячески пытается избежать погружения в эту тему, но рано или поздно приходится столкнуться с concurrency проблемами. Это может случиться, потому что нужно написать потокобезопасный код или прилетел баг на уже имеющийся код.

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

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

Читать далее
Total votes 21: ↑15 and ↓6+9
Comments123

Чем заменить New Relic: 11 альтернатив и наш выбор

Reading time8 min
Views9.4K

Это лишь часть таблицы инструментов, которые мы рассматривали. Подробнее по ссылке.

Мы используем New Relic в каждом из наших 250 PHP-сервисов. С его помощью отслеживаем взаимосвязи между сервисами, их зависимости, смотрим нагруженные транзакции, анализируем полный трейс запроса пользователя. Наши основные функциональные требования: связи, оценка по времени отклика и параметру APDEX (собирательное значение удовлетворенности пользователя).

Отказаться от New Relic хотели давно. Главная причина — он стал дорогой. Весной добавилась вторая причина — мы из России. Запереживали, что нас могут отключить. А мы в команде инфраструктуры стараемся все сервисы держать на своей стороне.

В августе закончился договор с New Relic, так что заранее стали искать ему замену. И вот, как оно было.

Читать далее
Total votes 26: ↑26 and ↓0+26
Comments15

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

Reading time10 min
Views93K

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

Читать далее
Total votes 21: ↑20 and ↓1+19
Comments2

Человеческим языком про метрики 2: Prometheus

Reading time10 min
Views69K

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

Под катом: формат данных, способы отправки, типы метрик и их применение, кардинальность.

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments5

Node.js: Heroes of Worker Threads ― C++ Addon

Reading time8 min
Views4.5K

Node.js имеет несколько способов исполнения CPU-bound заданий:

1. Просто запустить CPU-bound задачу в одном процессе, блокируя event loop. Кто-то может возразить, что это совсем не вариант, но если этот процесс был специально создан для этой задачи, то почему бы и нет. Правда не у всех есть пара дополнительных ядер.

2. Создать отдельные процессы (Child Processes), распределить между ними задания.

3. Создать cluster и заставить работать отдельные процессы в нем.

4. Использовать Worker Threads и создать несколько дополнительных потоков исполнения.

5. Попросить C++ разработчика написать C++ Addon, который загадочным образом выполняет CPU-bound задания. В конце концов, думаю все слышали старинные легенды про компилируемые языки программирования и о том, что “нативная” реализация ― это всегда успех (на этой фразе где-то в мире должен заплакать React Native разработчик, смотря на перформанс своего приложения).

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments1

Настройка GeoIP ACL в HAProxy в два шага

Reading time5 min
Views7K

Hello Planets by Augustinas Raginskis

Иногда возникает задача управления трафиком в зависимости от географического положения клиента. Возможные области применения — блокировка некоторых локаций либо перенаправление трафика на итоговый сервер в зависимости от локации клиента. Традиционно подобные вещи реализуются при помощи библиотек GeoIP компании MaxMind. В статье расскажу, как это сделать.
Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments4

Механическая видеостена с ядерным Ambilight на 2300 зон

Level of difficultyEasy
Reading time8 min
Views50K

Однажды я подбирал себе новый монитор и немного увлёкся — получилось чудище во всю стену из трёх телевизоров с ядерной 2318-зональной подсветкой 40 000 люмен на STM32.

Читaть далее
Total votes 139: ↑136 and ↓3+133
Comments136

Как я делаю опенсорсную статусную панель «я занят»

Reading time8 min
Views27K

Прототип моего проекта светодиодной таблички, которая показывает что я занят — Busy StatusBar

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

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

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

Приглашаю всех желающих поучаствовать в разработке.
Читать дальше →
Total votes 157: ↑154 and ↓3+151
Comments195

Принципы Solid и как они помогают сделать код лучше

Reading time10 min
Views25K

Про принципы Solid написано немало, в том числе на Хабре. Показывали в картинках, рассказывали на примерах.  

Так чем же будет отличаться эта статья, спросите вы? А мы скажем: подходом. Сначала мы расскажем про ситуации, которые порой возникают на проектах, как код разрастается, становится сложнее и как сделать так, чтобы этот самый код не потерял в качестве и был читаем. 

Читать далее
Total votes 12: ↑8 and ↓4+4
Comments14

Как я строил Умный Дом. Часть 1

Reading time3 min
Views33K

Всем привет! Вот и я решил написать тут, да не просто статью, а серию статей в лайв формате. Тема - строительство своего дома, Умного дома.

Собственно, строительства будет минимум, а инженерки и её автоматизации поболее.

Строим Умный дом вместе ;)

Читать далее
Total votes 57: ↑40 and ↓17+23
Comments330

Как я хакнул свой автомобиль

Reading time10 min
Views58K
image

Машина


Прошлым летом я купил Hyundai Ioniq SEL 2021 года. Это хороший экономящий топливо гибрид с приличным набором функций: беспроводные Android Auto/Apple CarPlay, беспроводная зарядка для телефона, сиденья с подогревом и люк в крыше.

Особенно мне понравилась в этой машине система In-Vehicle Infotainment (IVI). Как я говорил ранее, у машины есть беспроводное Android Auto, что довольно редко для такого ценового диапазона. Приложение имеет красивые плавные анимации меню, поэтому я понял, что ЦП/GPU не такие уж и слабые; или, по крайней мере, ПО ест не слишком много ресурсов.

Как и со всеми остальными моими гаджетами, я решил немного поэкспериментировать и посмотреть, что можно сделать с этой системой.
Читать дальше →
Total votes 341: ↑340 and ↓1+339
Comments71
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity