Обновить
Just Habra User@justhabrauserread⁠-⁠only

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

2
Подписчики
Отправить сообщение

ЧАСТЬ 2 — Мониторинг МФУ на Flask: новые функции, проблемы и планы

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

Опубликовал ЧАСТЬ 2: проект вырос из простого SNMP‑опрашивателя в рабочий инструмент для парка принтеров. Теперь есть склад картриджей, журнал ТО, отдельная страница парка и удобные экспорты в Excel. Пишу про реальные боли (цветные МФУ, разные прошивки, потеря данных в CSV) и о том, что планирую доделать

Читать далее

Веб-мониторинг МФУ и уровня тонера через SNMP на Python + Flask

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

В этой статье я расскажу, как с помощью Python, Flask и SNMP создать простой веб-мониторинг для МФУ в корпоративной сети. Решение позволяет видеть статус, уровень тонера, тип картриджа и серийный номер принтера прямо в браузере.

Читать далее

Возможно, самый гениальный код на python на сегодня: разбираем 200-строчный microgpt от Андрея Карпаты

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

Буквально на днях Андрей Карпаты, один из ранних сооснователей OpenAI, покинувший компанию, исследователь нейросетей, опубликовал на Гитхаб фантастическую вещь: чистый (без специализированных библиотек) 200-строчный python-код трансформера, аналога GPT-2, для изучения всеми желающими. И написал в блоге статью для понимания этого кода (и работы трансформеров). Я перевёл статью и комментарии к коду — ведь этот код (я уверен!) войдёт в ИТ-историю...

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

Читать далее

Антипаттерны на питоне, которые меня победили

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

У нас в компании был один проект, с которым я не справился.

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

Оказалось, что плохо вообще всё.

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

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

Короче, вот она — анти-статья, собранная из того проекта. А где мне не хватало примеров, я брал код из Django, потому что он вообще полностью собран на антипаттернах.

Получилось много букв, как всегда

Для здоровья полезно заниматься разнообразно

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

Совсем свежее исследование, январь 2026.

https://pubmed.ncbi.nlm.nih.gov/41574252/ и Physical activity types, variety, and mortality: results from two prospective cohort studies.

70 725 женщин и 40 742 мужчин. Подбирали тех кто максимально здоров, без диабета, рака и так далее. За их физическими занятиями следили - чем занимались, сколько раз в неделю. Далее всё это свели в графики смертности.

Общая длина экспериментов-наблюдений 34 - 36 лет. Колоссальный по длине научный путь.

Общее число прослеженных человеческих лет - 2 431 318 лет.

Зафиксировано - 38 847 смертей. 9901 от сердца и сосудов, 10 719 от рака, 3159 от болезней дыхательной системы.

Общие выводы на счёт количества физических упражнений и их пользе для жизни::

1 - Если человек как либо занимался физухой, это удлиняло жизнь. Особенно ходьба, начинать и заканчивать любой день лучше походив. Ничто не заменит простую ходьбу, вообще никак. Наши предки ходили миллионами лет и нам придётся. Вся наша эволюция как разумных тварей, тянется где то с 4 000 000 лет назад, когда за сотни тысяч лет наши предковые виды постепенно слезли с деревьев начали ходить между участками леса. С тех пор обязанность ходить в нас буквально прошилась естественным отбором, а все предковые виды людей, кто плохо ходил....вымерли. И те кто просто плохо ходили - вымерли.

2 - Плавание исключение - обычно люди норовят плавать побыстрее и подольше, а это как раз вредно. Если уж плавать, то держать пульс в пределах 130 - 140 ударов в минуту.

Читать далее

Pydantic vs Adaptix – плюсы, минусы и области применения

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

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

Читать далее

Как я написал bash-скрипт и получил оффер

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

Если что, это не кликбейт. История довольно проста: в один из рабочих дней (работаю экспертом по компьютерной экспертизе) мне "на стол" попал сервер на ALT. Всё стандартно:

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

2) делаю диагностику всей системы на момент первого запуска, для внесения в отчёт. Данная диагностика должна включать в себя первичную информацию о: диске; памяти; сети; базовых службах (ssh, cron и тд.) и о системе в целом.

Что было дальше

Удалённый рабочний стол через ssh туннель

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

Ситуация: рабочая машина под управлением Windows находится в корпоративной сети за NAT. Извне хода в сеть нет. К рабочему компьютеру необходим удалённый доступ с домашнего компьютера на Linux. Работа AnyDesk оставляет желать лучшего.

Читать далее

Еще один MultiWan на Mikrotik ROS7 с Балансировкой и QOS. Часть 2

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

Привет, Хабр! Это вторая часть статьи о балансировке между провайдерами на Mikrotik. С первой части прошел год, за это время многое изменилось в жизни поэтому такая большая задержка.

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

И так у нас есть 3 настроенных провайдера (их может быть и больше), начинаем маркировать трафик.

Читать далее

Особенности Python, о которых вас точно спросят на техническом собеседовании. Часть 2

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

Привет, Хабр! Меня зовут Бартенев Евгений, я автор курса «Python-разработчик» в Яндекс Практикуме и практикующий разработчик. Я прособеседовал сотни кандидатов и сам неоднократно побывал в роли собеседуемого, поэтому хорошо представляю, какие именно знания проверяют на интервью и где чаще всего «проваливаются» не только джуны, но и опытные разработчики.

Первая часть этой статьи вызвала оживлённое обсуждение. В комментариях читатели делились собственным опытом, напоминали о тонкостях, которые я упустил, и задавали отличные уточняющие вопросы. В этой части я продолжу разбирать очередные «подводные камни» в Python. 

Как и раньше, я не буду разбирать заезженные вопросы вроде «чем отличается список от кортежа». Вместо этого — разберём реальные особенности Python, на которых строятся самые коварные задачи и вопросы.

Читать далее

Парсинг HH.ru: от /vacancies до асинхронных очередей и боли с ConversationHandler'ами

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

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

Думаю, у каждого, кто искал работу, есть этот "любимый" запрос на hh. Вбиваешь "Python Developer", ставишь фильтр "нет опыта", а тебе вываливается 500 вакансий "Senior Analyst", где в требованиях "базовое знание SQL, Python будет плюсом".

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

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

Читать далее

Патчим Chrome для работы с YouTube

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

Салют, Хабр! Я думаю, каждый из вас знаком или, по крайней мере, слышал о такой прекрасной утилите как NoDPI написанной на питоне (большое спасибо @Lord_of_Rings!). Сегодня я хочу представить вам (почти) свою разработку, не требующую ни питона ни прокси. Мы будем патчить прямо на диске библиотеку chrome.dll - входяющую в пакет Chrome на Windows и лежащую в директории "C:\Program Files\Google\Chrome\Application\140.0.7339.208\chrome.dll". Цифры могут меняться в зависимости от версии. Данный патч занимает всего 8 байт и после него у нас появится YouTube.

Читать далее

Собственный ИИ локально, бесплатно и без GPU

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

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

Читать далее

Как НЕ нужно писать автотесты на Python

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

Разбираем самые странные антипаттерны в автотестах на Python: от sleep(0.1) и стрелочек вниз до глобальных курсоров и "фреймворков" на 3500 строк. Почему так делать не стоит и какие есть взрослые альтернативы.

Читать далее

Паттерны проектирования в Python, о которых следует забыть

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

Попробуйте поискать в Интернете «Паттерны проектирования на Python» — и получите целую простыню туториалов, демонстрирующих, как в точности воспроизвести на Python паттерны проектирования из книги «Банды четырёх». Там же будут диаграммы классов, иерархии фабрик и столько шаблонного кода, что выхлопа хватит, чтобы отопить маленькую деревню. Так вам внушают, будто вы пишете «серьёзный» код. Умно. Профессионал ьно. Готово для корпоративного использования.

Но вот в чём проблема: большинство из этих паттернов решают проблемы, которые в Python просто отсутствуют. Паттерны разрабатывались для таких языков как Java и C++, где для выполнения самых базовых вещей требуется настоящая эквилибристика — нет ни функций первого класса, ни динамической типизации, ни модулей в качестве пространств имён. Разумеется, вам потребуется Фабрика или Синглтон, если без них в вашем языке просто не с чем работать.

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

Читать далее

Волшебство ООП или как упростить многопоточное программирование C++

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

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

Читать далее

Устанавливаем кластер Kubernetes в LXC-контейнерах Proxmox

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

Если вы когда-либо разворачивали Kubernetes-кластер на виртуальных машинах (ВМ), то знаете, насколько это может быть ресурсоёмко. Особенно это ощущается на одноплатных компьютерах вроде Orange Pi 5 Plus, даже несмотря на его 16 ГБ оперативной памяти. Для домашнего лабораторного стенда или лёгкой продакшн-инфраструктуры хочется чего-то более лёгкого и быстрого

Читать далее

Как собрать Linux-контейнер с нуля и без Docker

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

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

Читать далее

Мой первый контейнер без Docker

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

Технологии контейнеризации, возможно, как и у большинства из нас, плотно засели в моей голове. И казалось бы, просто пиши Dockerfile и не выпендривайся. Но всегда же хочется узнавать что‑то новое и углубляться в уже освоенные темы. По этой причине я решил разобраться в реализации контейнеров в ОС на базе ядра linux и в последствие создать свой «контейнер» через cmd.

Читать далее

Почему мы перешли на RAID 10

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


Недавно у нас развалился RAID 5. Один диск на первом году своей жизни умер сам от естественных причин. Такое может быть и в период трёхлетней гарантии — нечасто, но может. Мы вынули его, поставили на его место диск из горячего резерва — и во время ребилда в массиве умер второй диск. Данные умерли вместе с ним.

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

Это правда: ни одна схема резервирования никогда не гарантирует 100 %. Случается всякое. Диски из одной партии могут умереть в один день: у нас такое было только один раз несколько лет тому назад, но было. Разболтавшийся кулер может вызвать резонансные вибрации, которые убьют два массива целиком: такое было больше пяти лет тому назад, и мы долго расследовали ту ситуацию.

Бывает всё.

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

Это привело к целой цепочке последствий, в частности, к тому, что мы перешли на RAID 10 как на новый для нас стандарт хранения данных.
Читать дальше →
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность