Зайчатки разума

Зайчатки разума

Записная книжка айтишника

Про оптимизацию, тишину, эволюцию, нестандартные решения и домашнюю сеть.

2019-01-21 01:15:09 — Evgeniy Shumilov

  Достаточно давно я собрал свой первый домашний сервер. И довольно много сил я тогда положил на то, чтобы сделать его как можно более тихим, маленьким и потребляющим минимум энергии. Я сменил радиаторы на процессеоре и северном мосту с целью увеличить площадь рассеивающей поверхности. Я искал самые тихие кулеры, я занижал частоту процессора, я сменил кулер в блоке питания и жёсткий диск я выбирал тоже исходя из теж же требований - тихий и потребляющий минимум энергии. В конце-концов, я переместил свой сервер в диван. Мне тогда нужна была платформа для экспериментов и само-собою подразумевалось, что она будет работать 24 часа, 7 дней в неделю.

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

Читать дальше...

Теги: админское, automatization, networking, python

О найфомании и ножах как таковых

2019-01-18 02:30:09 — Evgeniy Shumilov

Вместо предисловия:

- Сколько ножей у обычного человека?
- У обычного человека всегда при себе 2-3 ножа.
- Но это же человек, который увлекается ножами!
- У человека, который увлекается ножами, с собой 5-6 ножей.
- Но это же маньяк!
- Нет, у маньяка с собой 10 ножей.
- Но это уже странный человек!
- У странного человека при себе вообще нет ножей.
- Но это как раз обычный человек!
- Нет, мы уже говорили, что у обычного человека при себе 2-3 ножа...

(c) Старинный найфоманский анекдот

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

  Совсем другое дело - ножи, не относящиеся к кухонным. Это как раз те вещи, которые задевают струны моей души. Кажется, это началось с седьмого класса, когда я посмотрел советский мультфильм "Маугли", где главный герой из всех несметных сокровищ выбрал себе кинжал, повесил его на шею и стал с ним неразлучен. Для меня нож - являет собой нечто большее, чем сумма полоски стали и рукояти. За понятием "нож" скрывается целый мир. Это культура, эстетика, это один из древнейших инструментов, прошедший долгий эволюционный путь, длиною в тысячи лет, это миллионы (я не шучу) людей, объединённых общими интересами, клубы фанатов той или иной модели, праздничные новогодние каталоги фирм-производителей, многочисленные обзоры и тесты на ютубе, соревнования и школы ножевого боя, сотни марок сталей, кустари-одиночки и бренды с исторей, насчитывающей десятки, а то и сотни лет, произведения искусства в конце-концов. Издавна ножи украшали резьбой, травлением, в рукоять икнрустировали драгоценные камни, использовали ценные породы дерева и драгоценныe металлы.

  Вы можете себе представить многотысячную армию фанатов какой-то определённой модели плоскогубцев? Или строительный молоток с рукоятью из чёрного дерева, отделанного серебром? Или, скажем, огромную выставку ножовок по металлу, на которую слетаются люди со всей страны, а то и из-за рубежа? Глянцевый пятидесятистраничный каталог "Лучшие лопаты ноября 2018" фирмы X?

Читать дальше...

Теги: knifes

Вызов метода класса по имени в python

2019-01-15 18:50:43 — Evgeniy Shumilov

  Недавно столкнулся с одной простой задачей, с которой раньше cталкиваться не приходилось, поэтому оставлю себе здесь запись в качестве памятки. В MicroPython необходимо было для одного класса написать встроенный менеджер задач - некий аналог cron и таймера, который бы позволил микроконтроллеру в общем цикле вызывать методы этого же класса (например, проверка состояния GPIO, датчиков, подключения к WiFi, MQTT и т.п.) по расписанию или через заданное количество времени после наступления какого-либо события. В числе прочего планировалась возможность фильтровать задачи по имени для динамической расстановки их приоритетов и я счёл, что лучшим вариантом в этом случае будет хранение в структуре данных имени метода, затем, возможно, создание словаря, ключами которого будут имена методов. Заодно и имя метода в виде строки куда проще передавать в другой метод в качестве параметра плюс аттрибуты отдельным кортежем во втором параметре. Использовать для обратного преобразования (да и для практически любых других задач) eval - мягко говоря, дурной тон, поэтому пришлось мучать гугл. Решение оказалось не простым, а очень простым. Я уже устал удивляться подобному при программировании на python, но всё ещё продолжаю это делать.

Читать дальше...

Теги: python

Отправка логов с OpenWRT/LEDE в syslog и обработка событий

2019-01-13 02:31:22 — Evgeniy Shumilov

  Вдогонку к статье о syslog-ng решил сделать дополнение о том, как завернуть логи с OpenWRT и настроить реакцию на соответствие какому-нибудь фильтру. Дома у меня есть два Xiaomi MiWifi 3G (оказалось крайне доступным и достойным по характеристикам устройством), три штуки Netgear WNR3500L, которые в текущий момент работают в качестве гигабитных свичей в разных частях квартиры и Nexx 3020 для экспериментов. Одним словом, правило для сохранения логов должно быть общее для всех этих устройств, чтобы не писать шесть отдельных конфигурационных файлов. Начать я решил со своего основного Xiaomi роутера с хостнеймом gw01, на котором стоит OpenWRT 18.06.

Читать дальше...

Теги: админское, docker, logging

Про ярлыки и квадратно-гнездовой способ мышления

2019-01-09 18:02:49 — Evgeniy Shumilov

  Один мой друг натолкнул меня на мысли о "навешивании ярлыков". Что же в сущности такое - эти ярлыки и зачем их на кого-то навешивать? На мой взгляд всё очень просто. Ярлыки - это принадлежность к некоей категории или нескольким категориям. Наш мозг склонен структурировать информацию, потому что в таком виде ей легче оперировать и её легче хранить. Мозг бережёт себя от перегрузок, переходя на более высокий уровень абстракции. На этом уровне он отбрасывает массу незначительных, как ему кажется, деталей, создавая ассоциативную связь вида "Вася" -> "Урод". Для создания данной связи ему нужно, чтобы в категории "Уроды" уже находился некий индивид, скажем, "Петя", или группа индивидов, например, "Байкеры", которые имеют некие признаки или совершили некие действия подобные действиям нашего гипотетического Васи.

Читать дальше...

Теги: жизненное, мысли-вслух

Про программистов доступным языком

2019-01-07 20:09:25 — Evgeniy Shumilov

  Помнится, устроился я в 2004-м году на свою первую работу. Устроился в научно-исследовательскую часть Пермского Государственного Университета "программистом" на полставки, если можно так выразиться, потому как в трудовой у меня было написано мифическое "Техник третьего разряда". С полным отсутствием опыта работы и обучаясь на втором курсе в ПГУ я рассчитывать на бОльшее не мог, точнее мог, но мне это было неинтересно. Мой оклад поначалу составлял целых 600 рублей в месяц. Я мог заплатить за сотовый телефон и раза три на эти деньги посетить столовую. Почему я пошёл туда работать? На то было несколько причин. Во-первых, это было рядом: достаточно было перейти из одного корпуса в другой - и вот я на работе. Во-вторых, у меня чесались руки в отношении программирования и администрирования, мне нужен был опыт, а на работе появлялись задачи и не нужно было изобретать их самостоятельно. В-третьих, шёл стаж.


  Моя начальница якобы имела большие планы на мою деятельность, но старательно уворачивалась от любых моих вопросов и уточнений. Под предлогом "уйди мальчик, не мешай, серьёзная тётя работает".
- Какое техническое задание? Зачем вообще? Иди, пиши программки!

Читать дальше...

Теги: жизненное

Гоголь. Мочало, Гоголь. Жаль, Гоголь. Страшный бред

2019-01-06 13:24:19 — Evgeniy Shumilov

Николай Васильевич, а почему Хома Брут бегает по стенам?

Ничего ты не понимаешь, Александр, это паркур!

  Вчера досмотрели с женой серию из трёх полнометражек: "Гоголь. Начало", "Гоголь. Вий" и "Гоголь. Страшная месть". Я не кинокритик, но мнение своё личное выскажу хотя бы кратко, потому что молчать об этом тяжело. Извините, но дальше спойлеры.

Читать дальше...

Теги: кино

Установка порта Heroes of Might and Magic 3 на linux Mint

2019-01-05 00:00:33 — Evgeniy Shumilov

  Жена давно хотела поиграть в Heroes of Migth and Magic III (далее HOMM3), так как играла в это много лет назад и третьи герои вызывают её ностальгические чувства. Я знаю, что есть порт под linux, но на retropie мне его собрать так и не удалось - были проблемы с зависимостями и версиями библиотек, лишь впустую потратил несколько часов времени. Но не так давно я поставил под телевизор новый китайский неттоп и накатил на него последний минт, как раз для того, чтобы не было проблем со всякой мультимедией, так как в отличие от дебиана, построенного из минимального chroot, там множество вещей работает из коробки. Да и не за чем мучать любимого человека, тайловый i3 и консоль ей не нужны.

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

Читать дальше...

Теги: linux, games, ностальгия

Про централизованный сбор логов

2019-01-03 00:52:53 — Evgeniy Shumilov

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

Что и зачем собирать?

  1. Периодически ночью отваливается интернет от билайна, хотелось бы видеть, что в этот момент происходит с роутером.
  2. Есть десяток IoT устройств, построенных на ESP8266, которые с прошивкой ESPEasy умеют отправлять логи по сети.
  3. Жена на новый год подарила управляемый гигабитный коммутатор, почему бы не снимать логи и с него, если уж будет такая возможность?
  4. Есть сервер умного дома, работающий на отдельной OrangePI Zero.
  5. Есть около полутора десятков докер и lxc контейнеров с различными службами и pet-проектами, в том числе и этот блог.

  Хотелось бы хранить все эти логи в одном месте, чтобы облегчить их анализ, ротацию, архивирование и бекап. Как обрабатывать подобную информацию - это уже отдельная задача, но для начала эту информацию нужно собрать.

Читать дальше...

Теги: админское, docker, logging

Про праздники, поздравления и специализацию

2018-12-28 20:28:00 — Evgeniy Shumilov

  Все мы любим праздники! Или не все? Я например, не очень их люблю, а некоторые очень даже не люблю. Например, свой день рождения. Об этом имеет смысл рассказать отдельно, потом вернусь к другим. Когда-то давно я указал дату своего рождения везде, где мог - в аське, в скайпе, затем в контакте, когда он появился и всё это заботливо напоминало множеству моих знакомых о факте моего существования. К сожалению я не сразу понял, чем это грозит. По мере увеличения количества этих знакомых, увеличивалось и количество "поздравлений" с днём рождения. Что же в этом плохого? Дело в том, что я обладал рядом навыков и опытом, который мог быть кому-то полезен и в день рождения я получал от пяти до пятнадцати звонков примерно следующего вида:

  • Хээээй-привет-как-дела-с-днём-рождения-переустанови-мне-винду!
  • Счастья-тебе-удачи-здоровья-у-меня-навернулась-программа-для-записи-дисков!
  • А-правда-что-у-тебя-день-рождения-ну-тогда-с-ним-кстати-у-меня-рейдмассив-рассыпался!
  • Мужик-поздравляю-с-днюхой-сможешь-заехать-посмотреть-мой-системник?

  Всё это и множество других вариантов поздравлений зачастую произносилось слитно, на одном дыхании, одним восторженным предложением. То есть, интонация была поздравительная, смысл - не очень. Мол, поздравляю тебя, у меня рейд рассыпался и теперь это твоя проблема! Иногда поздравление выглядело нормально, следовало несколько связных и осмысленных предложений, а потом, подойдя издалека, человек интересовался, как у меня со временем и не мог бы многоуважаемый джинн быть любезен? Сначала Джинн был любезен, но спустя несколько лет такой котовасии любезность резко устремилась к нулю.

Читать дальше...

Теги: мысли-вслух