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

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

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

Про необходимость выдохновения

2018-11-07 03:01:42 — Evgeniy Shumilov

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

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

Теги: сон, плееры, подкасты

Веб-сервер одним файлом на шелле в 24 килобайта с шахматами и поэтессами

2018-11-06 00:50:24 — Evgeniy Shumilov

  Когда я начинал вести этот блог, у меня было стойкое ощущение, что писать мне будет не о чем, но снова и снова я нахожу какие-то интересные вещи, которыми хотелось бы поделиться.  Иногда я нахожу их заброшенными, достаю из бекапов, причёсываю, привожу в более-менее нормальный вид, исправляю какие-то ошибки, пишу документацию, выкладываю на github. Вот так и сейчас. Для тестирования блога мне периодически нужен вебсервер. Вебсервер, который должен выполнять только одну функцию - отдавать браузеру HTML. Можно конечно открыть файл самим браузером из файловой системы, но тогда ломаются ссылки на графику и локальные ресуры вида /images/imagename.png. В качестве вебсервера я обычно запускал python c соответствующим модулем: python -m SimpleHTTPServer. В принципе, этого хватает, но дёргать за хвост целый интерпретатор пайтона ради отдачи HTML - это какой-то overkill. Тогда я и вспомнил, что когда-то написал веб-сервер на шелле. Кто сказал, что нельзя написать веб-сервер на шелле?

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

Теги: shell, web, minimalism

Про почту и дедка

2018-11-04 14:36:14 — Evgeniy Shumilov

Было это года два назад, достал из бекапов.

  Я на таком позитиве пришёл на работу! :)

  На почту я пришёл за 10 минут до открытия и передо мной было уже человек 20. Среди них был один дедок, лет под 65. Старые вытянутые треники, кепка, потасканная фланелевая рубашка в клетку, очки с линзами в палец толщиной....

  Ровно в 11-01 он встал на ступеньки перед входом на почту, как Ленин на броневичок и начал выкрикивать пламенную речь следующего содержания:
С..ки!!!! Сталина на вас нет! Вам в ж..пу надо вставить провод, который должен вести прямо в кремль! И ровно в 11-00 они будут нажимать на кнопку и если в этот момент двери почты будут ещё закрыты, вас будет хер..чить в ср..ку током!!! Развалили страну! Никакого порядка! Раньше хоть определённость в жизни была! Приходишь в магазин - либо есть колбаса по два двадцать, либо её НЕТ!!! Всё просто и понятно! Сейчас захочешь и не знаешь, каким из 70 сортов отравиться! Вы видели, что дети пишут в диктантах? Я посмотрел в тетрадь внука! На его месте я бы не знал - писАть или пИсать!!!

  После этого он залез на подоконник почты и в форточку заорал - "ПОЛУУУУНДРАААА!!! КИТАЙЦЫ ПЕРЕХОДЯТ ГРАНИЦУ НАШЕЙ РОДИНЫ!!! СВИСТАТЬ ВСЕХ НАВЕРХ!!!!"

Почту открыли в 11-02. :)

Теги: fun

Про ценообразование, качество и сложность

2018-11-02 21:29:02 — Evgeniy Shumilov

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

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

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

Дорабатываем bashblog напильником, часть третья - исправляем таймстемпы

2018-11-01 15:54:40 — Evgeniy Shumilov

  Не бывает бочки мёда без пары ложек дёгтя. Если привкус дёгтя вам по вкусу - можно ничего не менять и наслаждаться жизнью, в противном случае требуется какое-то вмешательство. Проблема, которую будем сегодня решать - это даты или таймстемпы, кому как привычнее. Дело в том, что когда работа с bashblog производится на одной машине, то проблем не возникает, но как только мы уносим проект в git и делаем checkout на другой машине, то все даты создания файлов на локальной файловой системе будут совпадать со временем чекаута. Например:

-rw-r--r-- 1 corpse corpse 12K ноя 1 14:17 nemnogo-ob-avtomaticheskoj-generacii-parolej.html
-rw-r--r-- 1 corpse corpse 9,0K ноя 1 14:17 o-detalyax-i-pamyati.html
-rw-r--r-- 1 corpse corpse 15K ноя 1 14:17 okna-v-okne---pro-evolyuciyu-virtualizacii.html
-rw-r--r-- 1 corpse corpse 30K ноя 1 14:17 pro-klaviatury-gryaznye-xaki-i-podgoranie-pyatoj-tochki.html
-rw-r--r-- 1 corpse corpse 13K ноя 1 14:17 pro-lyubov-k-minimalizmu-i-staticheskuyu-generaciyu-kontenta.html
 

  Bashblog устроен таким образом, что он при каждом rebuild или посте переписывает даты и время публикации поста на время создание файла. То есть, вы сделали десяток постов, потом решили добавить ещё один, находясь за другим компьютером, сделали checkout, создали новый пост и все ваши посты получили сегодняшнюю дату и время, когда вы выгрузили содержимое репозитория. Нехорошо. Есть два пути решения этой проблемы - либо вмешаться в содержимое bashblog и изменить его логику работы со временем и датой постов, либо после выгрузки изменять дату и время создания файлов на необходимые. Путь менее очевидный, но я предпочёл его, поскольку не хочу менять код bashblog без особой на то необходимости (чтобы не было мучительно больно после обновления самого bashblog при необходимости).

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

Теги: bashblog, shell

Про собак

2018-10-31 11:54:50 — Evgeniy Shumilov

  У нас с женой постоянные "качели" в отношении собак. И она и я хотим собаку. Периодически это желание приобретает острые формы и мы бьём друг-друга по рукам. У неё был когда-то русский спаниель, у меня - серьёзная восточноевропейская овчарка. Мы долго думали над вопросом заведения питомца, сошлись на том, что собака должна быть маленькой, иначе каждый день с ней придётся наматывать лишних +5 - +7 км (что совершенно замечательно в отношении здоровья при сидячем образе жизни, но совершенно паршиво в отношении времени, которого постоянно не хватает и на то, чтобы нормально высыпаться). Мы решили, что собака появится после того, как появятся дети и вырастут до сознательных лет 7-10, чтобы воспитывать в них ответственность, а заодно и выгул переложить на них. Ну и чтобы собан не утягивал ребёнка - опять таки он должен быть небольшой. Овчарку дитё (да и жена, которая весит меньше хорошей овчарки) в критической ситуации не удержит. Одним словом, решили, что у нас будет корги. :)

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

Теги: собаки

Про клавиатуры, грязные хаки и подгорание пятой точки

2018-10-29 00:58:20 — Evgeniy Shumilov

Крайне редко что-то в этом мире вызывает у меня раздражение близкое к негодованию. И то, что я изложу ниже - как раз такой случай.

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

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

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

Теги: keyboards

Сам себе хостинг или о недооценённых утилитах

2018-10-21 00:49:04 — Evgeniy Shumilov
- Та-ак, а вы что, ещё и права на файлы за меня выдавать будете?
- Ага-а-а!

  О чём вы думаете, когда слышите аббревиатуру FTP? На меня накатывает ностальгия. Сразу вспоминаются всякие уютные ламповые локалочки, сетевые карты rtl8139, серенькие восьмипортовые коммутаторы D-Link в пластиковых корпусах, папки Public и Private, полные варезом - фильмы, музыка, софт, игры... Одним словом, машинка времени в моей голове телепортирует меня куда-то лет на 15 назад. Много воды утекло с тех пор, но когда кто-то просит совета, как построить себе миниатюрный хостинг, часто в числе прочего я в том или ином виде получаю вопрос: "как поднять FTP"? И каждый раз меня это удивляет. А чем sftp не угодил? Да, это медленнее, но во-первых, скорость интернет соединения сейчас уже не та, что была 15 лет тому, во-вторых, у sftp на борту шифрование и в-третьих, sftp практически всегда уже есть там, где присутствует openssh.

  Да, sftp, реализованный средствами OpenSSH не лишён ряда недостатков. Хотелось найти некое решение, которое бы позволило быстро и просто реализовать доступ к машине для разных пользователей, для каждого в свою папку, желательно с chroot. Всё заканчивалось длинными ролями на ансибле, которые переписывали конфиги openssh, добавляли пользователей в нужные гргуппы, ставили пакет управления расширенными правами доступа, дёргали всякие setfacl и прочее. И тут меня попросил мой хороший друг (Иван, спасибо тебе!) помочь ему настроить сервер, а пользователям в качестве шелла поставить MySecureShell. Ранее я с таким зверем не сталкивался, да и ни от кого из моих знакомых за те почти 15 лет, что я общаюсь с linux, не слышал. Судя по всему, это не особо популярное решение. Я бы сказал, незаслуженно обойдённое вниманием. Да вы только посмотрите на их логотип! Похоже, это пингвин, прямо поверх которого начали разводить печатную плату (что похоже, сказалось на его настроении), при этом он ещё кому-то угражает двумя логотипами OpenBSD! Интересно, на каких веществах сидел автор? Ладно, этот вопрос оставим наркологам. Лучше посмотрим в конфигурационный файл. Почитав, что там написано, я понял, что эта штука умеет всё, о чём я мечтал и многое из того, о чём я мечтать не смел.

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

Теги: ssh, shell, sftp, админское

Немного об автоматической генерации паролей

2018-10-19 15:05:32 — Evgeniy Shumilov

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

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

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

В ротейт мне логи! Про минимализм, busybox и логирование.

2018-10-17 15:09:07 — Evgeniy Shumilov

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


Традиционный список хотелок:

  • Минимальные зависимостии размер
  • Уровни логирования (debug/info/warinig)
  • Отключаемая подсветка разными цветами разных типов событий
  • Работоспособность под OpenWRT, Android, Alpine и т.п.
  • Возможность переопределять параметры переменными в основном скрипте
  • Возможность передать в FATAL сразу код завершения
  • Настраиваемый формат даты
  • Разделитель (очень полезно для отделения частей лога)
  • Краткий синтаксис вызова (не люблю длинные имена модулей)

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

Теги: logging, shell, busybox, minimalism