Pull to refresh
3
0.5

WEB-программист, сетевой администратор

Send message

Обновление MikroTik по SSH: Python-скрипт с автоматическим RouterBOARD upgrade

Level of difficultyMedium
Reading time2 min
Views2.9K

Обновление MikroTik — та ещё боль. То не влезешь по SSH, то забыл сделать routerboard upgrade, то устройство «уходит в себя» и не возвращается. Особенно, когда устройств не одно, а десятки. Вручную это превращается в спорт на выносливость и крепкие нервы.

Я решил, что хватит. Написал скрипт на Python, который делает всю грязную работу за меня: подключается, проверяет обновления, ставит новые пакеты, делает routerboard upgrade и даже ждёт, пока устройство снова появится в сети. Главное — всё логируется и работает аккуратно, как системный администратор в хорошем настроении.

В этой статье:

Читать далее

Регулярные выражения простыми словами. Часть 3

Level of difficultyEasy
Reading time11 min
Views8.9K

Разработчики делятся на три типа: тех, кто уже понимает регулярные выражения и порой решает сложные задачи одной строкой; тех, кто все еще боится их и всячески избегает; и тех, кто уже прочитал первую и вторую части этой серии статей и полон оптимизма разобраться с этими магическими письменами. Эта статья специально для третьих, чтобы обратно их напугать, ведь в этой части мы рассмотрим одну из самых сложных, но в буквальном смысле захватывающих тем.
Читать дальше →

Как не облажаться с типами данных в PostgreSQL

Level of difficultyMedium
Reading time19 min
Views9.7K

Недавно вышла отличная книга PostgreSQL Mistakes and How to Avoid Them от Jimmy Angelakos — системного архитектора, практика и давнего участника сообщества PostgreSQL. Книга подробно разбирает распространённые ошибки, с которыми сталкиваются разработчики и администраторы при работе с PostgreSQL, и предлагает практичные решения: от тонкостей конфигурации и миграции до антипаттернов в SQL и выбора типов данных.

Я перевёл одну из ключевых глав этой книги — про неправильное использование типов данных. В ней подробно объясняется, почему, например:

timestamp without time zone может ломать логику расчёта интервалов;

money — это не то, чем кажется (и почему он опасен);

char(n) и varchar(n) не дают ожидаемой экономии и даже вредны;

serial — это прошлый век, а identity — настоящее.

Глава будет полезна всем, кто работает с PostgreSQL в проде — особенно backend-разработчикам, независимо от языка и фреймворка. Если вы проектируете схемы БД, пишете SQL-запросы или просто хотите избежать неприятных грабель — стоит прочитать.

Читать далее

NoDPI4Android. Решаем проблему «деградации» YouTube теперь и на Android

Level of difficultyEasy
Reading time5 min
Views47K

Салют, Хабр! На связи снова я, Aragorn, со своим проектом по терроризированию Роскомпозора. В прошлый раз я рассказывал о NoDPI - утилите для "раздеградирования" YouTube и установил личный рекорд - 400 звезд на GitHub и блокировка статьи РКН через три дня после публикации.

Многие мои знакомые и люди в комментариях просили сделать версию под Android и Android TV. Я не очень дружу с Джавой и с Джавой под андроид в особенности, и поэтому такая перспектива меня не очень прельщала, но у меня был опыт написания android-приложений на python и kivy, который я и решил применить. После нескольких дней (и ночей) напряженного труда и танцев с бубном, мне наконец удалось создать NoDPI for Android, который практически не имеет аналогов. Именно о нем я и хочу сегодня рассказать. Надеюсь, статья будет вам полезна и интересна. Поехали!

Читать далее

Это был идеальный кандидат, и он получил отказ. Вы не поверите почему

Level of difficultyEasy
Reading time8 min
Views128K

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

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

Читать далее

Я разобрался с ELK в .NET, чтобы вам не пришлось

Level of difficultyEasy
Reading time6 min
Views5.7K

Вообще, эта статья — по сути краткий обзор современных инструментов логирования, которые часто используются в.NET. Но из‑за того, что настройка ELK — относительно трудоемкий процесс, весь фокус по итогу сместился в сторону использования сего стека. Я просто смирился с этим. Надеюсь, мой опыт сэкономит время и силы читателю, желающему ознакомиться с ELK.

Читать далее

Как ChatGPT удалил в нашем чате 555 спам-сообщений с точностью 98,38%

Level of difficultyMedium
Reading time7 min
Views12K

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

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

Код на Python, скрины и цифры

Прочитал «Чистый код», чтобы вам не пришлось

Level of difficultyEasy
Reading time12 min
Views45K

Пересказываю культовую книгу Роберта Мартина "Чистый код" с примерами на C#. Узнайте, как создавать код, который читается как проза: от магии имен переменных и идеальных функций до безупречных тестов и архитектуры, которая не рухнет при первом требовании заказчика. Полный гид, ваш код станет предметом гордости, а не источником кошмаров.

Читать далее

О модальных формах в Obsidian

Level of difficultyEasy
Reading time19 min
Views4.6K

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

Читать далее

Инструмент для маппинга: Решение проблемы для системного аналитика

Level of difficultyEasy
Reading time3 min
Views9K

В жизни каждого системного аналитика наступает момент, когда он открывает две вкладки: слева – Swagger с контрактом системы А, справа – Confluence с контрактом системы Б. Между ними – пустая Excel-таблица, либо ещё одна вкладка Confluence. Задача – простая, как мир: смаппить поля.

И начинается знакомый ритуал: скопировать атрибут из одного места, вставить в другое. Ctrl+C → Ctrl+V, снова и снова. Одно неверное движение или опечатка — и через пару дней от разработчика прилетит таск с комментарием «маппинг не работает, проверь пути».

Так родилась идея десктопного приложения для маппинга...

Читать далее

Obsidian: Авторская настройка программы перед началом работы (v1.8.10)

Level of difficultyEasy
Reading time3 min
Views9.8K

В папке «0. Файлы» содержится техническая информация: здесь хранятся картинки, несортированные заметки, заметки о том, как надо вести хранилище (скопируйте туда эту статью, чтобы несколько раз не возвращаться).

Модифицированная файловая архитектура по методу P.A.R.A (с небольшими изменениями).

Читать далее

Отправляем себе сообщения в телеграмм через питон. Как это может быть полезно в работе аналитика?

Level of difficultyEasy
Reading time8 min
Views6K

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

Читать далее

Как работает OSPF

Level of difficultyEasy
Reading time8 min
Views7.5K

OSPF — это протокол состояния каналов, который считается самым известным протоколом из семейства протоколов внутренних шлюзов (IGP), разработанный в середине 1980-х годов рабочей группой OSPF в IETF.

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

Читать далее

Передаем документацию заказчику: Markdown, Git, CI/CD и почти полная автоматизация

Reading time5 min
Views6.3K

Представьте, что вы разработали программное обеспечение. Все идеально: код отточен, тесты пройдены, система готова к работе. Но тут встает вопрос: как отправить документацию заказчику?

Всем привет! Меня зовут Катя, я развиваю Gramax, open source-платформу для управления технической документацией. В этой статье хочу поделиться впечатлением от стандартных способов передачи документации на заказную разработку. А также рассказать о том, как этот процесс можно автоматизировать с помощью Gramax.

Рассказывай!

Я вам заявляю, с Linux мы доигрались: теперь точно знаем, как начать в нём карьеру

Level of difficultyEasy
Reading time10 min
Views94K

Привет, Хабр! Меня зовут Евгений Никулин, я – тимлид инженеров эксплуатации в К2 Cloud.

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

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

Читать далее

Перепрограммируем заводской Zigbee датчик протечки от компании Tuya

Level of difficultyEasy
Reading time5 min
Views13K

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

Читать далее

9 коротких промптов, которые делают работу с ChatGPT (и любым другим ИИ) проще и веселее

Level of difficultyEasy
Reading time3 min
Views88K

Привет! Как и многие в 2025 году, я постоянно работаю с ChatGPT и Gemini: они помогают мне в работе, отвечают на сотни вопросов и просто развлекают. За время работы с ИИ у меня накопилась целая коллекция мини-промптов, которые делают процесс проще, результативнее и даже веселее. Сегодня делюсь с вами.

Читать далее

Ansible для людей: автоматизировал и выдохнул

Level of difficultyMedium
Reading time8 min
Views18K

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

Читать далее

Почему в 2025 году важно уметь писать промпты, даже если вы не технарь. Без этого навыка уже никуда

Level of difficultyEasy
Reading time9 min
Views14K

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

Читать далее

Планирование в Python

Reading time7 min
Views4.9K
Планирование задач — неотъемлемая часть работы любых веб-приложений, в особенности таких, в которых требуется совершать периодические или отложенные действия. В Python предусмотрено множество способов планирования задач, и у каждого есть свои сильные и слабые стороны. В этой статье будут рассмотрены некоторые наиболее популярные способы планирования задач в приложении, написанном на основе FastAPI.

sched – планировщик событий из Python


Модуль sched входит в состав стандартной библиотеки Python и обеспечивает простой механизм для планирования событий в программе. Этот модуль может работать в приложении на FastAPI, но пользоваться им не рекомендуется, так как он слишком прост, и функциональность его ограничена.
Читать дальше →

Information

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