Обновить
1
0
Sergey Kaleev@skaleev

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

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

Учусь Ansible: от пинга до Nginx на Raspberry Pi и Orange Pi

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

Привет.

Я студент, изучаю Ansible на Raspberry Pi через Tailscale. Делюсь полным путем от первой ошибки до работающих веб-серверов. Код + выводы + уроки. Репозиторий на GitHub.

Читать далее

Двухфакторная аутентификация (2FA) в Zabbix 7.0

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели4.3K

Всем привет! Мы делаем проекты по Zabbix, накопили большую экспертизу и решили сделать переводы нескольких статей, которые нам показались интересными и полезными. Наверняка, будут полезны и вам. Также своим опытом делимся в телеграм-канале zabbix_ru, где вы можете найти полезные материалы и записи наших вебинаров, опубликованных на нашем ютуб-канале (прим. переводчика). Ниже ссылки на предыдущие статьи из цикла.

Миграция с MySQL на PostgreSQL

SELinux: интеграция с Zabbix и другими инструментами

Защита от ложных срабатываний триггеров в Zabbix с использованием функций min/max/avg

Zabbix – автоматизация управления пользователями (JIT)

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

Читать далее

Rust vs Go: управление памятью

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

Давайте рассмотрим как управляют памятью два популярных языка программирования — Rust и Go.

Когда запускается программа, создается процесс с собственным адресным пространством и потоками, выполняющимися на ядрах. Процессор работает с виртуальной памятью — абстракцией, которой управляет операционная система.
Например в Go, когда мы создаем массив

Читать далее

Почему Python — не лучший язык для data science. Часть 2 — Python против R

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели4.6K

Команда Python for Devs подготовила перевод статьи о том, почему Python — несмотря на свою популярность — не всегда идеален для Data Science. Автор показывает, как отсутствие нестандартной оценки выражений усложняет анализ данных, и сравнивает Python с R, где такие задачи решаются куда элегантнее.

Читать далее

Зачем вообще использовать ORM?

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

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

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

ORM — это как раз инструмент, экономящий время разработки. Но за счёт чего?

Читать далее

Не делайте рефакторинг как Дядя Боб (вторая редакция)

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели6.4K

Когда я в прошлом году услышал, что дядя Боб планирует выпустить вторую редакцию «Чистого кода», то был восхищён, а это для меня редкость. Я считал, что и первый выпуск был хорош, хотя сам читаю редко.

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

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

А может, это была глубинная надежда, что кто-то, наконец, пересмотрел его идеи и осознал необходимость изменения подхода Мартина к написанию «чистого кода». Всё же это была самая жестокая критика первой редакции книги с момента её публикации более 17 лет назад.

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

Так что представьте, каково было моё разочарование, когда я потратил $60 на электронную версию этой книги, в которой Боб не просто не изменил своей позиции по большинству спорных практик, но и продолжил топить за них ещё круче!

Невероятно!

Но я забегаю вперёд…

Читать далее

Зачем инженеру персональная система планирования?

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели4.3K

Последние 2 года я выстраивал и непрерывно улучшал собственную систему планирования в Obsidian. За это время я обнаружил кое-что важное, что решил разделить с сообществом.

И вот что я заметил: почти все, кто пытается выстроить систему управления, начинают с одного и того же вопроса — «Какой инструмент мне взять?» Notion? Jira? Obsidian? Linear? Асана?

Тут я всегда отвечаю одно: выбор инструмента — это последний вопрос, а не первый.

Читать далее

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

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели124K

Переезд на юг, в Сириус, подарил не только вид на море с высоты птичьего полета, но и столкновение с суровым «местным колоритом». Когда цивилизация обрывается, уступая место лесу с медведями, а за врезку в частную трубу просят половину бюджета стройки, приходится включать инженерную смекалку на полную мощность.

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

Читать далее

Ошибки, которые я совершал при оценке стоимости проектов на фрилансе

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели9.5K

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

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

Читать далее

Погибший мамонтенок раскрыл свои тайны: ученые прочитали его РНК спустя 39 тысяч лет

Время на прочтение5 мин
Охват и читатели40K

Когда в 2010 году в сибирской мерзлоте нашли небольшого мамонтенка Юку, находку восприняли как огромную удачу. Ткани животного сохранились почти идеально: на теле сохранились царапины, шерсть лежала плотным слоем, мышцы практически не утратили структуру. 15 лет спустя стало ясно, что эта находка куда важнее, чем предполагали вначале. 

Группа исследователей из Стокгольмского университета сообщила о выделении из тканей Юки древней РНК — молекул, которые редко переживают даже десятилетия, не говоря о десятках тысяч лет. Работа исследователей показала, как современные методы позволяют выйти за рамки привычного анализа ДНК и получить данные о клеточной активности давно исчезнувшего животного.

Читать далее

Poetry vs Pip: Почему пора перестать использовать requirements.txt

Время на прочтение12 мин
Охват и читатели20K

На моем компьютере всё работало!» — фраза, после которой начинается многочасовой дебаггинг. Вы открываете requirements.txt, а там свалка: непонятные версии, транзитивные зависимости и библиотеки, которые вы вообще не ставили.

Pip — отличный установщик, но ужасный менеджер проектов. В 2025 году стыдно таскать за собой «портянку» из текстовых файлов. В этой статье я покажу, как Poetry превращает ад зависимостей в скучный и предсказуемый процесс. Разберем pyproject.toml, магию lock-файла и переедем с Pip за 5 минут без боли.

Внутри: туториал, гайд по миграции и честный разбор минусов (да, Poetry тоже не идеален).

Читать далее

Менеджер Python проектов на Python

Время на прочтение2 мин
Охват и читатели8K

Была у меня папка на диске C под названием Python. В ней я держал свои проекты. Со временем надоело каждый раз вручную создавать папку для нового проекта, потом вручную создавать стартовый файл app.py. Это одно и то же действие снова и снова. В какой то момент я зае***ся сильно устал, хотелось просто нажать одну кнопку и получить готовую структуру без рутины. Решил автоматизировать

Здарова Хабровчане, на связи King Triton. Ловите мое очередное бесполезное творение PythonProjectManager (далее PPM)

PPM это небольшое приложение на Python. Сделано на PyQt6. Задача простая. Создавать проекты быстро, без лишних движений, с удобным доступом к ним

Читать далее

Wi-Fi наружу, LAN внутрь: лучшее решение для работы в корпоративной сети

Уровень сложностиСложный
Время на прочтение6 мин
Охват и читатели12K

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

Читать далее

Как тестировать конфигурацию Nginx: корректность и информационная безопасность

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели10K

При разработке сложной системы приходится сталкиваться с использованием nginx в качестве reverse proxy: роутинг, список правил, регулирующих путь запроса во внутренние системы или между подсистемами.
Быстро развивающиеся сервисы обрастают правилами, назначение которых не очевидно или имеет недокументированные особенности. Проверенный способ рефакторинга таких систем: зафиксировать и вылечить упростить. Фиксировать будем тестами.

Как проверить корректность вашей конфигурации Nginx'а? Как проверить ее безопасность и нет ли уязвимостей ? Какие есть для этого варианты, их плюсы, минусы, практическая применимость и как эти проверки встроить в CI пайплайн ?
Ответы на эти вопросы под катом. Будет полезно, погнали.

Погнали

Паттерн Outbox для надежного обмена сообщениями в микросервисах

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

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

Читать далее

Docs as Code – Code as Docs – No Docs

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели6.7K

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

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

Существует три класса задач, которые решает техническая документация:

1. Описать наши требования к системе и принятые решения

2. Описать текущее состояние системы

3. Объяснить пользователю, как работать (\разворачивать\эксплуатировать) с системой.

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

Второй тип документации — описание текущего состояния системы. Так как мы не хотим разрыва между описанием системы и самой системой, мы будем пытаться генерировать человеко-читаемое описание из кода и конфигурации. Назовем этот подход Code as Docs.

Третий тип — различные виды пользовательской документации. Эту форму документации мы постараемся минимизировать, сделав понятным наши интерфейсы и встроив подсказки прямо в процесс работы пользователя с системой. Назовем это подходом No Docs.

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

Читать далее

Почему менеджеры увольняют лучших инженеров — и всегда потом жалеют

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели62K

Лучших инженеров увольняют не потому, что они плохи. А потому что они слишком правы. Их слова рушат иллюзию контроля — и показывают, что план не сработает. Но без них компании быстро понимают, какой ценой даётся это «спокойствие».

Читать далее

Лучшие Service Desk системы: что выбрать?

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели7.3K

Когда в компании несколько отделов, а IT-отдел тонет в хаосе заявок из Telegram, почты и личных сообщений — пора задуматься о системе, которая поможет контролировать все в одном месте. Подобрать подходящую Service Desk систему — первый шаг к порядку.

В этой статье разберем, что такое Service Desk система, чем она отличается от таск-трекера, почему ее путают с Help Desk, и по каким критериям можно подобрать себе решение. 

Читать далее

Собираем OpenWRT прошивку и ImageBuilder для нестандартного оборудования на основе dts

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели9.9K

Привет Хабр! Меня зовут Алексей и я занимаюсь беспроводными технологиями. Не так давно я рассказывал, как собрать прошивку OpenWRT без image builder. В этой статье мы повысим планку и попробуем собрать и прошивку, и image builder для модели роутера с частичной поддержкой OpenWRT. Под частичной поддержкой я понимаю то, что для данной конкретной модели роутера поддержки нет, но она есть для платформы. Экспериментировать я буду с реальным устройством - это Wi-Fi 7 роутер, полученный от китайского производителя. Вместе с роутером производитель предоставил нам необходимую документацию и DTS файл. Заранее хочу предупредить, что производитель просил не раскрывать название модели и не тиражировать его DTS файл. Поэтому часть информации на скриншотах я заблюрирую.

Читать далее

Алгоритмы на графах

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

Краткое и доступное руководство по базовым алгоритмам на графах: BFS, DFS, топологической сортировке и алгоритму Дейкстры. Чёткие объяснения, примеры и код на C++ — для тех, кто хочет быстро и уверенно освоить фундамент графовых алгоритмов.

Узнать больше об алгоритмах

Информация

В рейтинге
Не участвует
Откуда
Сургут, Тюменская обл. и Ханты-Мансийский АО, Россия
Дата рождения
Зарегистрирован
Активность