Pull to refresh
8
0
Станислав Гамаюнов @happyproff

Веб-разработчик

Send message

Учим три телевизора делать солнышко

Level of difficultyEasy
Reading time29 min
Views50K

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

Осторожно, трафик!
Total votes 286: ↑283 and ↓3+329
Comments97

Как мы строили Норильск «на ледяной планете»

Reading time13 min
Views52K


60–65% территории России занимает вечная мерзлота. Она бывает разная: где-то это много относительно сухой земли, а где-то прямо линза льда (до 95% воды), причём глубиной до нескольких километров. В районе Норильска можно грубо сравнить её с замёрзшим океаном.

И вот посреди этой красоты мы вдруг нашли очень ценные полезные ископаемые. Медь, никель, золото, палладий и ещё кучу других слов, без которых не бывает современного ИТ и космоса. И, наверное, мы бы их так и оставили валяться, если бы не ещё одно обстоятельство: прямо рядом с ними нашёлся практически бесконечный источник энергии — гора угля. Причём некоторые из углей в этой горе были коксующимися, то есть позволяли получать металлы из оксидов прямо на месте.

Земляне высадились в эти места строить город. Практически как на снежную планету. И это оказалась очень суровая планета: холод до -56 градусов Цельсия, разрушающий конструкции, ураганный ветер и снег, который всё заметает. Ну и ко всему этому тут есть длинная полярная ночь, если вам не хватает сложностей.

Строить на линзе льда ничего нельзя. Тепло от здания означает, что его фундамент просто разорвёт при подвижках льда. Но тогда, конечно, про сюрпризы с мерзлотой мы не знали, и потому первое поселение — позже его назовут Аварийным посёлком — разрушилось через полгода.

Современный город стоит на скальных выходах как на островах: есть центральный жилой остров, есть Оганер — остров с больницей, есть Талнах — добывающий район, отдельно есть аэропорт, есть Надежда — ещё один комбинат, есть остров Дудинка — порт в 90 километрах от центра. Есть кусок скалы — можно строить. Нет скалы — нельзя строить.

В общем, я хочу рассказать вам про удивительно прекрасный и, как это ни странно, уютный Норильск.
Читать дальше →
Total votes 289: ↑284 and ↓5+332
Comments614

Кто реально угрожает C++ (нет, Rust, не ты)

Reading time14 min
Views74K

Привет! Меня зовут Александр Каленюк, и я крепко подсел на C++. Пишу на C++ 18 лет кряду, и все эти годы отчаянно пытаюсь избавиться от этой разрушительной зависимости.

Всё началось в конце 2005 года, когда мне довелось писать движок для симуляции 3D-пространства. В этом движке было буквально всё, чем язык C++ мог похвастаться в 2005 году. Трёхзвёздочные указатели, восьмиуровневые зависимости, C-подобные макросы повсюду. Кое-где – вкрапления ассемблера. Итераторы в стиле Степанова и мета-код в стиле Александреску. В общем, всё. Кроме ответа на самый важный вопрос: зачем?

Читать далее
Total votes 220: ↑208 and ↓12+244
Comments361

Неожиданные последствия запуска PostgreSQL в Docker: замедление запросов в 100 раз

Level of difficultyMedium
Reading time4 min
Views40K

У одного из клиентов нашей системы мониторинга PostgreSQL серверов возникла проблема сильного замедления запросов при запуске базы в Docker. В этой статье расскажем о возможных последствиях использования PostgreSQL в Docker с конфигурацией по умолчанию.

Читать далее
Total votes 95: ↑84 and ↓11+93
Comments57

Отказоустойчивая работа с клиентами: архитектура, немного кода, разбор проблем и асинхронные подходы

Reading time8 min
Views3.3K

Мы в Юле применяем подходы и паттерны, которые позволяют нам избегать проблем, связанных с интеграциями: создаем абстракции, где размещаем транспортный протокол и логирование, используем circuit breaker, обращаемся к асинхронным подходам, используя Kafka как шину данных. Предлагаем погрузиться на несколько слоев абстракции и вместе решить любые проблемы интеграций: от тайм-аута до кэширования.

Читать далее
Total votes 7: ↑6 and ↓1+8
Comments0

Sampler. Консольная утилита для визуализации результата любых shell команд

Reading time5 min
Views84K

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


Sampler


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


Код доступен на гитхабе. Инструкции по установке — для Linux, macOS и (экспериментально) Windows.

Читать дальше →
Total votes 298: ↑297 and ↓1+296
Comments54

Опросил больше 1000 айтишников: вранье в резюме и котируемость курсов по «вкатыванию в IT»

Reading time7 min
Views129K

Получилось отследить довольно интересные тренды: как размер стажа в индустрии коррелирует с отношением к выдумыванию опыта в резюме, как в IT-среде на самом деле относятся к выпускникам школ в стиле «стань айтишником за год», а также рейтинг самых ненавидимых и респектуемых в среде профи школ.

Читать далее
Total votes 167: ↑146 and ↓21+147
Comments318

Применение DDD. От моделей до EDM — поиск новых форм и архитектурные излишества

Reading time14 min
Views6.1K

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



DDD не на коленке, а за дорого ;)

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments6

Как содержать пароли. Мой сетап

Level of difficultyMedium
Reading time7 min
Views52K

Я долго собирал информацию о том, как организовать свои аккаунты. Как сделать доступ к ним достаточно надёжным и стойким к утере девайсов. 

Меня интересовало, как я могу залогиниться туда, где многофакторная авторизация через телефон, в случае потери телефона. 

Или, как обезопасить себя от забывания мастер пароля от менеджера паролей? На моей практике я несколько раз забывал пин-код от банковской карты, состоящий из 4-ёх цифр, после ежедневного использования на протяжении многих месяцев. Мозг - странная штука. 

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

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

Любимая задачка на знание React

Level of difficultyEasy
Reading time3 min
Views21K

Всем привет! Меня зовут Олег и я fullstack-программист в компании Тензор. Опыт в разработке, без малого, 20 лет (как-то раз батя спаял на кухне ZX Spectrum и все заверте..., сам не понял как так вышло). В данный момент являюсь тимлидом собственной команды разработчиков, которая периодически нуждается в пополнении толковыми программистами.

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

Наша команда занимается разработкой веб-приложения на React. Соответственно, мне важно найти программистов уверенно владеющих основами (!) этого фреймворка. Есть много способов проверки компетенций на собеседовании, один из любимых - задача по написанию hook для загрузки данных.

Если вы тоже в вечном поиске классных фронтендеров или сами часто проходите собесы - велком в эту статью :)

Итак, задачка...
Total votes 23: ↑23 and ↓0+23
Comments56

Как я с 0 поднял свой уровень английского до B2 и подтвердил этот уровень на экзамене IELTS Academic

Level of difficultyEasy
Reading time10 min
Views155K

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

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

Начнем с бекграунда и причин.

Я – инженер машиностроитель (мой профиль – торцевые уплотнения вращающихся валов). Я начал работать в своей отрасли сразу после бакалавра, параллельно заканчивая магистратуру, и как только я начал работать, я стал стараться впитать как можно больше теоретических знаний по моей специальности из академических источников. Достаточно бысто я понял, что последняя серьезная книга по моей специальности на русском языке была написана в 1978 году. И спустя больше чем 40 лет технологии сильно поменялись, а вот их описание на русском языке отсутствовает. Зато я нашел на reddit людей работающих в штатах в моей же отрасли. Они мне насоветовали кучу классной литературы. Разумееется, она вся на английском, и русского перевода не имеет.

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

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

Читать далее
Total votes 150: ↑146 and ↓4+165
Comments220

Message broker per service

Level of difficultyEasy
Reading time7 min
Views8.1K

Задумывались ли вы, почему мы используем отдельную базу данных для каждого сервиса, но при этом один общий брокер для нескольких сервисов? Ведь вполне возможно использовать базу данных в роли брокера сообщений. Однако, если мы попробуем заменить RabbitMQ на Redis, то натолкнемся на проблему общего использования базы данных. Это станет проблемой, потому что общее использование базы данных является антипаттерном.

Читать далее
Total votes 4: ↑3 and ↓1+4
Comments5

Коллеги, вы меня огорчаете

Reading time12 min
Views173K
В июле и августе 2020 года я, с подачи Григория Петрова, проводил для компании Evrone технические интервью на позицию Senior Golang Backend developer. И, видимо, буду вынужден продолжать проводить, о чём ниже.

Задача формулировалась как «найти человека, который сможет задать и поддерживать высокий уровень профессионализма в применении языка Go». То есть, сформулирована она была по-человечески, перевод на канцелярит — мой. Под эту задачу я сформировал новый опросник вместо того, которым пользовался несколько лет — старый был с жестким закосом под DevOps. Методику, которой я пользуюсь для создания опросников и количественной оценки соответствия кандидатов, я излагал в своем докладе «Техническое интервью как инженерная задача» на конференции Saint TeamLead 2019.

И вот что я хочу сказать вам, коллеги: вы меня огорчаете.


Читать дальше →
Total votes 145: ↑101 and ↓44+93
Comments1152

Автоматический обход блокировок

Level of difficultyMedium
Reading time5 min
Views52K

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

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

Защита персональных данных. Часть 2

Reading time6 min
Views5.3K

В этой статье мы продолжим рассмотрение процесса построения системы защиты персональных данных. В предыдущей статье мы остановились на определении Уровня защищенности персональных данных.

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

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

Прекратите звать (не) меня на работу

Level of difficultyEasy
Reading time3 min
Views53K

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

Начну очень издалека. Видите мой ник? Его опосредованный источник — давно забытый одноимённый криминальный фильм двадцатилетней давности; когда мне нужно было придумать позывной для регистрации в местной локалке, забавное сочетание букв само выпрыгнуло из извилин на клавиатуру. И с тех пор кочует вслед за мной, не считаясь с моими желаниями, в том числе — и в одном из созданных ещё на заре gmail почтовых ящиков, используемых для всяких регистраций, подписок, и прочего спама.

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

Читать чужие письма
Total votes 131: ↑127 and ↓4+149
Comments147

Поставил OKR, а что дальше? Или как провести мониторинг на 12 команд

Level of difficultyEasy
Reading time4 min
Views1.6K

У вас было такое, что поставленные цели не достигались и терялись в потоке рутины. В статье расскажу как решаю эту проблему в своих и соседних командах в Тинькофф Бизнес.

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

Что такое Lean Canvas?

Reading time5 min
Views50K
Продакт-менеджеры, планирующие запуск нового продукта, не всегда понимают его до конца и не могут грамотно презентовать другим. Тогда берутся за составление большой презентации с кучей графиков и текста в PowerPoint. Но нужно ли тратить на это время, если в первую очередь понять суть проекта надо самому?

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

image
Читать дальше →
Total votes 3: ↑2 and ↓1+1
Comments1

Выбираем протокол для умной дачи

Reading time9 min
Views19K

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

Читать далее
Total votes 13: ↑4 and ↓9-4
Comments44

Теория и практика unattended upgrades в Ubuntu

Reading time6 min
Views49K
Unattended upgrades — это родной для Debian/Ubuntu (и других основанных на них дистрибутивов GNU/Linux) механизм автоматических обновлений. По умолчанию он включён в системе благодаря наличию установленного пакета unattended-upgrades и конфигурационного файла /etc/apt/apt.conf.d/50unattended-upgrades, а настроен на обновления пакетов только из security-репозитория, куда попадают, например, критичные исправления для пакета libssl, которые выходят в результате очередного пополнения базы уязвимостей CVE.


Примечание: здесь и далее рассматриваются unattended upgrades в контексте серверных редакций Ubuntu, что скорее всего применимо «как есть» и к другим дистрибутивам, но могут встречаться свои особенности, оставшиеся вне рамок статьи.

Итак, какие дополнительные возможности предоставляют unattended upgrades (помимо включённых по умолчанию security updates) и к каким проблемам они могут привести?
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments9
1
23 ...

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity