Как стать автором
Обновить
20
0.3
Сергей Тихонов @tumbler

Программный архитектор

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

Обзор библиотеки FluentValidation. Часть 5. Условия

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

Вы можете задавать условия через методы расширения When и Unless для определения, должны ли выполняться все предыдущие валидаторы (до вызова метода расширения) либо конкретный валидатор в правиле RuleFor. Применение метода расширения When:

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

Квоты в Kubernetes: очевидные, менее очевидные и совсем не очевидные

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

Привет, Хабр! Я Виктор, техлид продукта CI/CD в Samokat.tech. А это, :(){ :|:& };: fork-бомба, которая создаёт свои дочерние процессы бесконечно. Запуск такой штуки в контейнере без ограничений роняет всю ноду. Не используйте в проде! Если запустить в WSL, то винду тоже укладывает. Как же избежать запуска такой штуки на проде? Помогут квоты.

Давайте разберемся как работают квоты в Kubernetes. Там есть немало граблей. В этой статье поделюсь своим опытом по работе с квотами – расскажу, чем квоты хороши, что у них под капотом, в каких задачах используются и почему нужны даже в среде single-tenant.

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

GOST: швейцарский нож для туннелирования и обхода блокировок

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

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

Сегодня я расскажу о замечательном инструменте под названием GOST. Не пугайтесь, он не имеет никакого отношения к ГОСТ-шифрованию или чему-то подобному, на самом деле это Go Simple Tunnel. Он действительно simple (простой) в использовании и настройке, но при этом невероятно мощный, поскольку поддерживает огромное количество протоколов и транспортов, из которых вы при желании сможете построить самые упоротые и бронебойные комбинации, а именно...

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

Как разбить видеокарту и поделиться с коллегами? Динамический шеринг GPU в Kubernetes с помощью MIG, MPS и TimeSlicing

Уровень сложности Сложный
Время на прочтение 31 мин
Количество просмотров 3.6K

Привет, Хабр! С вами снова Антон, все еще DevOps-инженер в отделе Data- и ML-продуктов Selectel, который все еще исследует тему шеринга GPU. В предыдущей статье я рассказал, как можно использовать шеринг видеокарт в Kubernetes.

В комментариях была затронута тема динамического переконфигурирования MIG. Вопрос: можно ли настраивать деление GPU при активной нагрузке? Я погрузился подробнее в этот вопрос и нашел несколько способов, как это сделать. Интересно? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 39: ↑39 и ↓0 +39
Комментарии 8

Хороший ретрай, плохой ретрай, или История одного падения

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

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

Меня зовут Денис Исаев, и я работаю в Яндекс Go. Сегодня я поделюсь опытом решения проблем с отказоустойчивостью из-за ретраев. Основано на реальных инцидентах в системе из 800 микросервисов.

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

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

Особенности проксирования через CDN/Websocket/gRPC для обхода блокировок

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

Эта статья — заключительная (наконец‑то!) из моего огромного цикла про недетектируемые инструменты для обхода блокировок. В предыдущих публикациях я упоминал, что клиенты и серверы XRay (форк V2Ray) и Sing‑box при использовании протоколов VLESS/VMess/Trojan могут работать через веб‑сокеты и gRPC, что позволяет подключаться к даже заблокированным Роскомнадзором прокси‑серверам через CDN (content delivery или content distribution network) и дает дополнительные преимущества. Сегодня мы поговорим об этом поподробнее.

Читать далее
Всего голосов 80: ↑78 и ↓2 +76
Комментарии 148

Переписка со спамерами: избранное – 2

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

Спамер демонстрирует комиссии ФАС свою полную неуиноуность (доллары подкинули враги, спам – ветром надуло).

Я радуюсь, получая спам, ведь у меня появляется возможность пополнить бюджет любимой страны (откуда берутся деньги на пенсии, больницы, школы и домики для уточек). Каждое полученное от спамеров сообщение я аккуратно пересылаю в ФАС, давая ей возможность пополнить бюджет на 2-500 тысяч рублей штрафа, а потом наслаждаюсь материалами «расследований», проливающих свет на грязную подноготную «солидного бизнеса» и его подручных. Вранье, подтасовка документов и далее со всеми остановками…

Читать дальше →
Всего голосов 91: ↑88 и ↓3 +85
Комментарии 67

Умный дом на Home Assistant без проводов

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

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

Здесь не будет мануалов по установке и конфигурации Home Assistant.

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

Приёмы эффективного общения

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

Здравствуйте, меня зовут Павел Кондратьев, и я руководитель проектов. 

Начинал работу в небольшой компании, создавая кросс-платформенные и нативные мобильные приложения на Kotlin/Swift и веб-сервисы на Yii2, пока не перешел в ГК Юзтех, где веду самые разные проекты на .NET/Vue.JS в мультивендорных командах.

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

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

Трейсинг в Go — это просто

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

В эпоху быстрорастущих приложений важно иметь возможность контролировать состояние системы в любой момент времени. Одними из требований для достижения этого являются логи и метрики, которые помогают нам следить за многими параметрами, такими как количество запросов в секунду (RPS), потребление памяти, cache git и т.д. Однако, есть ещё один полезный инструмент - трейсинг. В этой статье мы ознакомимся со стандартом OpenTelemetry в языке Go и инструментом Jaeger

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

Учимся создавать пакеты Python

Время на прочтение 8 мин
Количество просмотров 38K
imageПочему важно уметь создавать пакеты Python?
• Пакеты легко устанавливаются (pip install demo).
• Пакеты упрощают разработку (Команда pip install -e устанавливает ваш пакет и следит за тем, чтобы он сам обновлялся в ходе всего процесса разработки).
• Пакеты легко запускать и тестировать (from demo.main import say_hello, а затем тестируем функцию).
• Пакеты легко версионировать, при этом вы не рискуете нарушить работу кода, зависящего от этого пакета (pip install demo==1.0.3).
Читать дальше →
Всего голосов 28: ↑26 и ↓2 +24
Комментарии 14

ROS книги по робототехнике переведенные на русский язык

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

Robot Operating System это фреймворк который позволяет эффективно программировать современных роботов.

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

Локальные репозитории пакетов

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

Всем привет! Сегодня хочу поделиться нашими мыслями относительно того, как защититься от санкций палок в колёсах в современных условиях. Собственно, что мы имеем ввиду? Речь идёт о том, что в крупных проектах часто есть единые точки отказа в процессах CI/CD, это может быть как простой репозиторий кодом, так и различные конвеерные системы сборки кода и доставки его в рабочие окружения. Если мы говорим про системный софт, то его можно просто перестать обновлять, запретить ему ходить "наружу", но в данной статье мы поговорим про внешние репозитории с кодом.

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

Визуальное программирование для детей. Выбираем платформу обучения

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

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

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

WireGuard для подключения к домашней Raspberry pi и использование домашнего интернета удалённо

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

Wireguard удобный инструмент (хотя и легко определяеться на DPI, но мы сейчас не об этом) сегодня я хочу рассказать как с его помощью можно:

1. Подключаться к компьютерам за NAT (используя другой сервер с публичным IP) 

2. Использовать интернет провайдера за NAT'ом (домашнего провайдера)
При этом - подключаясь - к одному серверу, а выходить в интернет через совершенно другой

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

Соотношение «цена-прибыль» Шиллера и пузыри на рынке акций

Время на прочтение 20 мин
Количество просмотров 22K
Адриан Ханнеман. Два мальчика, выдувающие пузыри. ок. 1630 г. Музей искусств Нортона, Уэст-Палм-Бич.

Пару месяцев назад на Хабре вышла статья «На фондовом рынке США сформировался пузырь небывалых размеров». Согласно этой статье, «мультипликаторы находятся на исторических максимумах», так что «большой кризис неизбежен».

Один из мультипликаторов, на который ссылается статья — это известное соотношение «цена-прибыль» Шиллера. Честно говоря, я уже сбился со счёта, сколько раз за последние годы я читал апокалиптические прогнозы, основанные на индикаторе Шиллера. Чтобы выяснить, насколько можно верить этим прогнозам, я решил наконец-то почитать работы Шиллера и других исследователей. Оказалось, что недавно даже сам Шиллер написал, что такой прямолинейный взгляд на показатель «цена-прибыль» может быть весьма спорным.

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

Что делать, если украли смартфон

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


Евгений (MalDeckard) Черешнев поделился личным опытом и написал исчерпывающий гайд, который может помочь многим людям и предостеречь от последствий:

У меня на днях украли смартфон — профессиональный вор-велосипедист на скорости выхватил из рук прямо в центре города и был таков. Это может случиться с кем угодно и в любой стране мира. Я, в силу профессиональной деформации вокруг IT, данных, приватности и безопасности, к ситуации был морально готов и знал, что делать. Друзья, с которым поделился историей посоветовали написать памятку, которую может использовать каждый человек, даже далекий от айти. Этот текст — эта самая памятка. Смартфон она вам не вернет. Но, если кому-то поможет снизить ущерб и сэкономит седых волос — значит, не зря потратил время на написание, а вы — на прочтение.

Справедливости ради, большинство воров уже в курсе того, что каждый смартфон — это, по сути, радиомаяк, по которому всегда можно укравшего отследить. Поэтому они редко оставляют его включенным — практически сразу достают и выбрасывают SIM-карту, сам телефон вырубают и сдают на запчасти за копейки. Что крайне обидно — ибо шансы того, что, например, мой iPhone 12 Pro Max 512 банально разберут на экран, аккумулятор и несколько особо востребованных микросхем — стремятся к 100%. То есть, вор украл крайне дорогой девайс, а получит за него или хрен или (если он идиот) — срок. Но это не всегда так. Иногда можно получить реально грузовичок и тележку проблем. Во-первых, в ряде типов краж (как в моем случае) телефон попадает в руки плохого парня в разлоченном состоянии и есть риск, что злоумышленник девайс специально не залочит — будет держать его активированным и извлекать из него максимальную пользу, на что у него будет в теории до 24ч (после чего сработает система защиты в заводских настройках и снова попросит ввести пин-код, даже, если телефон до сих пор разлочен).
Читать дальше →
Всего голосов 167: ↑157 и ↓10 +147
Комментарии 486

Погружение в CQRS

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

Эта статья является конспектом материала Clarified CQRS.

Прежде чем начать разбираться с CQRS, нужно понять две основные движущие силы, стоящие за ним: сотрудничество и устаревание.

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

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

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

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

Вотериус: Передача показаний воды на телефон по Wi-Fi (4 года от батареек)

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


Однажды мне надоело снимать показания счётчиков воды. Можно было поселить рядом со счетчиком магнит и на этом успокоиться, но этот путь я счёл неспортивным.

Мой путь оказался непростым и витиеватым. Но в результате получилось устройство, передающее показания воды по Wi-Fi на телефон. Простое и понятное в использовании и настройке хоть школьнику, хоть гуманитарию пенсионеру. А знакомым со словом «Ардуино» — ещё и несложное для изготовления. Девайс способен работать от батареек четыре года (дольше, чем длились отношения с вашей бывшей). Это ещё и первый открытый проект с такими характеристиками. Заводские аналоги я выписал, их мало, да и ладно с ними.

Итак, у нас есть немного денег и большое, но честное желание упростить себе жизнь, не нарушая Уголовный Кодекс. И чтобы никаких этих ваших 220В, серверов и кучи кнопок! Показания смотрим на смартфоне в приложении Blynk или аналогичном сервисе.

Теперь устройтесь в кресле поудобнее, съешьте ещё этих мягких французских булочек да выпейте чаю. Смотрите красивые фотографии и слушайте мой рассказ о том, что надо учитывать при создании автономных устройств. Но сначала краткое описание Вотериуса.
Читать дальше →
Всего голосов 127: ↑126 и ↓1 +125
Комментарии 205

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

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


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

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

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

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

Информация

В рейтинге
1 910-й
Зарегистрирован
Активность