мелкие тире в FBreader

2020-07-23

Неприятная особенность — после очередного обновления системы FBreader начал показывать мелкие тире в конце слов — скорее всего то, что должно быть “невидимым переносом”. Я перепробовал массу настроек, задумался о смене читалки, начал раздумывать над тем, что в принципе можно отредактировать бы ~/.config/gtk-3.0/gtk.css так чтобы скрыть это безобразие, но, решил почитать доки и накнулся в них на такой ключ:

-zlui ui-type

          Try to start FBReader with the specified uu type. Supported ui types are gtk (to use Gtk+ library), qt (Qt 3 library) and qt4 (Qt 4 library).

Сиречь запуск с разными библиотеками. Запуск с

fbreader -zlui qt

решил вопрос. Теперь добавлю под него в ~/.bash_aliases алиас:

alias fbreader='fbreader -zlui qt'

либо даже запилю отдельный башскрипт — и буду продолжать им пользоваться.

Но вообще думаю про что-нибудь более продвинутое (fbless, foliate) — забавно, что в наше продвинутое время нормальных читалок под линуксовый десктоп (быстрых и чтобы понимали fb2/epub) раз, два и обчелся.


Укрощение лисы

2018-04-12

…или как снизить потребление памяти прожорливого firefox и заставить linux жить по средствам.

Сейчас иногда использую в качестве мобильного рабочего места ноут Samsung R522 — впечатляющая даже по сегодняшним меркам машинка, но всего с 2G RAM на борту. В основном я работаю либо с совсем низкоуровневыми программами (vim, tmux, mutt, mbsync, mercurial, pandoc, … что еще нужно человеку для полного счастья?) и прельстиво и любовно допиленным openbox. Однако, quantum firefox способен сожрать всю память и завесить систему. Ко всему прочему, чтобы пощадить винт, я принципиально отключил своп. Посему начали случаться моменты когда система зависала. Это не совсем зависание — как написали на одном из форумов «just highly unresponsible» — но обычно у меня не хватало терпения ждать и я перезагружал машину.

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

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

За режим выделения памяти отвечают переменные vm.overcommit_memory — которая задает режим выделения памяти и vm.overcommit_ratio, которая определяет насколько можно превысить пределы.

По дефолту у меня были режим 0 и 50% соответственно:


cat /proc/sys/vm/overcommit_memory
0

cat /proc/sys/vm/overcommit_ratio
50

Я их поменял на «режим 2» (не выдавать память авансом — давать только то, что есть в наличии) и 98% (расходовать всю память минус 2% для баша на всякий пожарный) соответственно. Все равно памяти больше не станет — поэтому лучше, чтобы система «жила по средствам» и не тщилась съесть больше, чем есть в наличии.

Это можно сделать из-под рута на один сеанс (до перезагрузки — посмотреть, как поведет себя система):


echo 2 > /proc/sys/vm/overcommit_memory
echo 98 > /proc/sys/vm/overcommit_ratio

Либо открыть из-под рута в текстовом редакторе /etc/sysctl.conf

и добавить туда пару строчек:

# профилактируем оверкоммиты памяти
vm.overcommit_ratio = 98
vm.overcommit_memory = 2

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

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


Централизация, децентрализация и падение телеграма

2018-03-29

Неоднократно встречал мнение о том, что с приходом Slack, Telegram и иже с ними почта отомрет. Куда-то в ту же степь мнение о ненужности XMPP-протокола aka Jabber. Текущее «падение телеграма» наглядно показывает, что слухи о смерти почты оказались сильно преувеличены.

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

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

В противовес этому, почтовый или jabber-сервис может развернуть кто угодно, это распределенные службы, которые широко распространены, которые сложно задавить и которые в принципе позволяют шифрование и приватность. Правительство Украины может запретить mail.ru, yandex.ru и vk.com, но очень маловероятно, что оно запретит использование электронной почты в принципе :)

Из относительно свежих систем почти так же распространены торренты: сейчас на большинстве трекеров перестали учитывать рейтинг отдачи — то есть количество пользователей достигло критической массы. Следом идет tor и прочие даркнеты. Блокчейны тоже можно отнести куда-то сюда. Из распределенных сетей а-ля Твиттер набирает популярность Mastodon. Возможно, дальше по оси времени появятся распределенные мессенджеры типа Tox («появятся» — в смысле «наберут достаточную популярность»). Эти системы (в отличие от почты) «не для всех», их развитие изобилует зигзагами и ухабами (история того же Tox или история jabber, который был убит Гуглом), но интернет тоже изначально был «не для всех». При этом открытые распределенные системы обладают теми же преимуществами, что и open source — их тяжело контролировать политически, они (почти) не зависят от монетизации, они менее уязвимы для физических сбоев. Так что будущее останется за ними.


Организация локального поиска файлов через locate — дешево и сердито

2017-02-10

В командной строке есть утилита locate, которая ежедневно сканирует файловую систему с помощью утилиты updatedb и позволяет быстро находить файлы на диске по названию. Мне часто удобнее искать не по всему диску, а только по домашней директории или вообще по каким-то отдельным папкам. Обычно я использую find, но, читая man updatedb я обнаружил что поиск можно организовать в локальную базу таким вот образом:

updatedb -l 0 -o db_file -U source_directory

db_file — куда сохранять, source_directory — что сканировать.

Захотелось сделать свой локальный кэшируемый поисковик. Задача — сканировать домашнюю папку /home/vik, кэш хранить в /home/vik/.local/share/mlocate.db (еще одна полезная папка — ~/.local) и иметь возможность задать не locate а «local locate» — llocate.

Сделал отдельный скрипт на сканирование диска:

~/bin/locate/local_updatedb

С содержимым:

#!/bin/sh
updatedb -l 0 -o /home/vik/.local/share/locate.db -U /home/vik -n ".git .bzr .hg .svn .dropbox.cache"

Расшифровка ключей:

-l 0 не проверять права на доступ к базе данных

-o — где сохранить базу данных

-U — что сканировать

-n — какие имена игнорировать (очень удобно, чтобы не получать в поиске имен из папок контроля версий).

Дал скрипту права на запуск:

$ chmode a+x ~/bin/locate/local_updatedb

Обновлялку вынес в крон:

$ crontab -e

и вписал в файл:

@reboot /home/vik/bin/locate/local_updatedb 

«на каждой перезагрузке запускать сканирование диска»

Внимание: если вы редактируете crontab-файл — в конце нужно обязательно оставить пустую строку — иначе не заработает.

Последний штрих — добавил alias llocate в ~/.bash_aliases

alias llocate='locate -d /home/vik/.local/share/mlocate.db'

Пример:

vik@firefly:~$ llocate Войников

/home/vik/av/mp3/Виктор Войников - Честный стрелок.mp3
/home/vik/av/mp3/1_сборки/pulsar/Модель Для Сборки - Виктор Войников - Резонанс.mp3
/home/vik/book/hub/одессика/1914_Вся Одесса_Войников_737.png
...
/home/vik/zbox/yandex/Яндекс.Фотки/memorial Войников_new.jpeg.jpg

АБТФ, поиск и вызов книг, работа с книжным аппаратом

2016-10-06

И снова про plain text. Про то, что переходить по ссылкам из текстовых заметок я уже писал. Несколько позже выяснилось, что ваш покорный слуга изобрел велосипед — у vim’а есть свой netrw с хоткеем gx. Он тоже позволяет ходить по ссылкам из текста, плюс понимает запуск файлов по ссылке (то есть если в файле есть что-то типа ~/gifs/my-pic.jpg — можно стать на эту ссылку, набрать gx — и запустится графический просмотрщик, который по дефолту обрабатывает эту ссылку).

Я часто конспектирую книги — как по работе, так и просто что-то читая. Моя книжная папка часто перетасовывается — появляются новые книги, старые уходят в Глубокие Архивы, разделы пересматриваются. Прямая ссылка на книгу очень быстро стареет — а работая с книгой хочется, чтобы она открывалась прямо из файла. Тут нужен другой механизм. Читать далее…


«Маскарад в красном смещении»

2016-04-23

Леди coala-the-bear на днях упомянула f.lux и то, что подкрашивание монитора в красные цвета (и уборка синего спектра) хорошо влияет на сон. Для меня, как для совы-заполуношника это зело актуально. Но f.lux проприетарная и под linux работает не ахти, посему озаботился поиском подходящего свободного софта. Причем как на десктоп, так и на андроид, с которого я ночью читаю и на котором у меня стоит dimmer который хорош, но недостаточно.

Быстро выяснилось, что для андроида есть не менее свободный Red Moon, который более чем хорошо справляется со своими задачами. При этом нужно учитывать, что пока он работает не получится устанавливать apk-файлы — собственно, как я понимаю это верно для всех экранных фильтров. Поэтому сначала отключить, а потом обновлять софт.

Для десктопа есть redshift который работает аналогично. gtk-версия у меня не запустилась, поэтому я просто использую коммандлайновый вариант, запуская его из комстроки, через меню или на старте через ~/.config/openbox/autostart.sh и при необходимости убивая через killall redshift. Утилита хорошая, единственное что я бы советовал сделать — сразу положить в ~/.config/ файл redshift.conf (пример есть на сайте) с забитыми в него координатами и режимом manual.


old good stable

2016-03-07

Чем больше вожусь с «новейшими» библиотеками python, тем сильнее понимаю политику debian stable.


К годовщие Firefox или почему у мозиллы может получиться

2015-11-23

Если говорить о десктопе, то я почти всегда предпочитаю оффлайновое (десктопное) приложение онлайновому. То есть читать почту из thunderbird’а, а не из веб-интерфейса. Читаю книги с диска, а не из онлайновой библиотеки (только одно исключение — когда нужно оперативно найти цитату). Смотрю кино оффлайновым плейером, а не из тытруба. И так далее, и тому подобное.

Со смартфоном ситуация строго обратная. Какое-то время я ставил разные приложения типа прогноза погоды с wunderground’а, фейсбук мессенджера и т.д. и т.п. Потом открыл для себя такую чудесную штуку, как «страница -> добавить на домашний экран» в андроидном firefox. Эта штука добавляет на рабочий экран иконку, которая является закладкой на нужную страницу. То есть вместо огромного фейсбук мессенджера можно оставить иконку на страничку с сообщениями (а еще на страничку новостей, на страничку мероприятий) — и сэкономить этим пространство и время. Все равно без интернета мессенджер бесполезен, а с интернетом — с равным успехом можно сидеть и через браузер. Дальше последовали иконки-ярлыки на погодные сайты, на твиттер, на ЖЖ, на наиболее интересные для меня сайты и я проникся системой целиком.

Разница в функционале практически незаметна. При этом я имею **длинный список приложений** по цене одного firefox, который все равно стоит у меня по дефолту. Это не только экономия пространства — это позволяет:

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

— не думать про пароли и логины. firefox синхронизирует их с десктопной версией — и необходимость каждый раз при сбое вводить все заново здорово раздражает

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

— last but not least: полный контроль за поведением софта. если вам знакома ситуация, когда вы выходя в интернеты чтобы посмотреть прогноз погоды получаете сообщение из мессенджера (или почту от шефа, например) — и залипаете на час — вы меня понимаете. а у того же мессенджера есть мерзкая привычка включаться в онлайн каждый раз, когда этот онлайн появляется.

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

И оценивая это, я начинаю понимать, что FirefoxOS это не такая уж и плохая идея, как принято думать.


Комментирование в markdown и однострочниках bash файлов

2015-10-21

LUKE: Is Perl better than Python?
YODA: No… no… no. Quicker, easier, more seductive.
LUKE: But how will I know why Python is better than Perl?
YODA: You will know. When your code you try to read six months from now.

(c)

Хороший код (и хороший текст) всегда должен быть откомментирован. В последнее время я много пишу на markdown’не, который по ходу дела обрабатывается pandoc’ом и sed’ом, причем все это сведено в один makefile, который со временем разрастается до довольно больших размеров. Читать далее…


FBReader — чтение и допиливание

2015-07-05

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

Неудобств у этой софтины пока всплыло два.

Первое — она категорически не хочет открывать .fb2.zip файлы, считая их прерогативой CoolReader. К счастью, есть человек, который не поленился сделать костыль к этому, что сильно облегчило работу с системой.

Второе — скачивая книги из флибусты по OPDS (или вообще из любой сетевой библиотеки), она складывает их в отдельные каталоги не называя по имени-названию, а просто нумеруя.

Скажем Кутузов Лидии Ивченко выкачивается не как Ivchenko_Zhizn-zamechatelnyh-lyudey_1372_Kutuzov.335158.fb2.zip, а как целое дерево вложенных папок: <родная папка fbreader'а>/flibusta.net/b/335158.zip, что ужасно неудобно.

Моя система хранения книг опирается в первую очередь на файловую систему — осмысленные названия файлов и иерархия папок по которым эти файлы тасуются. Ничего более удобного пока нет и, скорее всего, не будет придумано в ближайшее время. Иерархия “папка-файл” выглядит скучновато в отличие от всяческих all-inside хранилищ типа Calibre или той же встроенной библиотеки FBReader, зато надежна, минимальна по занимаемому месту, вообще не требует стороннего софта для упорядочивания, хорошо упорядочивается дельта-итерациями (тема отдельного разговора) и — как я начинаю понимать — нейрологически обоснованна (очень рекомендую такую книгу, как Daniel J. Levitin “The Organized Mind Thinking Straight in the Age of Information Overload” — написано хорошо, не заумно, без утомляющего выпендрежа и по делу).

Поэтому 335158.zip меня не устраивал категорически, хотя сам OPDS-доступ к сетевой библиотеке (т.е. скачивание книги через FBReader) оказался вполне удобным. Первым делом я попробовал переименовывать файлы вручную и раскладывать их по своим папкам — меня хватило файла на два.

К счастью, быстро выяснилось, что внутри у скачанного 335158.zip лежит вполне приличный по названию Ivchenko_Zhizn-zamechatelnyh-lyudey_1372_Kutuzov.335158.fb2 — дальше дело заключалось в написании простенького скрипта:

#!/bin/bash
# основная идея избавиться от закачки безымянных файлов с флибусты

# находит и раззиповывает в корень файлы в каталогах
find . -type f -name "*.fb2.zip" -exec unzip {} \;

Простенький однострочник на самом деле — find спускается вниз по дереву папок, находит файлы (-type f), которые заканчиваются на .fb2.zip (-name "*.fb2.zip") и запускает unzip, который над ними операцию распаковки (-exec unzip {} \; — вместо {} подставляется имя найденного файла). Разумеется, чтобы это работало, в системе должен быть установлен unzip (у меня он стоит по умолчанию — если его нет надо сделать что-нибудь типа sudo apt-get install unzip)

Этот файл (unzipper.sh) был положен в корень (то, что выше названо <родная папка fbreader'а>) и — дррррр! — тридцать файлов, которые к тому времени скопились в дереве папок, оказались найдены, раззипованы и аккуратно сложены в папке со скриптом.

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

find . -type f -name '*.fb2' -exec zip '{}'.zip '{}' \;

Находим файлы, которые оканчиваются на .fb2 и зипуем их. -exec zip '{}'.zip '{}' \; выполнит операцию zip (он тоже должен быть в системе — sudo apt-get install zip) и подставит в нее найденные название файла ({}) и имя новосоздаваемого архива ({}.zip — старое имя + расширение .zip).

Итого:

#!/bin/bash
# основная идея избавиться от закачки безымянных файлов с флибусты

# находит и раззиповывает в корень файлы в каталогах
find . -type f -name "*.fb2.zip" -exec unzip {} \;

# зипует их обратно
find . -type f -name '*.fb2' -print -exec zip '{}'.zip '{}' \;

Можно было бы написать еще и автоматическое удаление ненужных файлов — но я предпочитаю делать это руками, на случай если что-то пойдет не так.


Cleanup is automatic

2015-06-24

Еще немного о информационной перегрузке и о работе с информацией. Больше двух лет назад (в ноябре 2012-го) я натолкнулся на совет — делать большую часть временных вещей в папке /tmp. Эта папка доступна отовсюду, к ней удобно доступаться из командной строки и — самое главное — она очищается при перезагрузке машины. Я последовал совету и настроил /tmp, как дефолтную папку для загрузки файлов из firefox. Сначала меня одолевали сомнения — как это так, компьютер будет удалять мои загрузки без моего ведома, кто в конце концов тут хозяин — человек или машина? И так далее и тому подобное. После первых пары дней практики я изменил свое мнение.

Оказалось это — не только чертовски удобно, но и меняет подход к проблеме. До этого мне приходилось ежемесячно расчищать завалы в папке ~/Downloads — времязатратное, выматывающее занятие. Если кто-то расчищал подобный хлам — он меня поймет. Теперь же приходилось принимать решение сразу — если загруженный файл не скопировать куда-нибудь еще — при перезагрузке система его сотрет. Когда начинаешь копировать файл — решение о том, куда его определить приходит само и файл ложится не в папку «посмотреть_позже_когда_нибудь_в_долгом_ящике_с_котом_за_хвост», а строго на отведенное ему место. Кроме того, как оказалось, в 90% случаев файл загружается не для того, чтобы его куда-то сохранить, а для того, чтобы его просмотреть или прослушать. Если раньше при разборе таких файлов у меня срабатывал «Внутренний хомяк» («может стоит оставить его на всякий случай, а вдруг эта накладная еще пригодится… в будущем… моим потомкам»), то в этом случае проще предоставить файл самому себе и очищающей перезагрузке.

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

Max Tabs, который я себе поставил, работает аналогичным образом. Лимит на количество открытых вкладок заставляет сразу принимать решение — чтобы открыть одиннадцатую вкладку, какую-то из десяти нужно закрыть. Просто закрыть? Добавить в закладки? Сохранить для чтения? Словом тот же подход — «решай или закрывай». Дополнительным бонусом — быстрая работа браузера.
Вот еще бы было расширение, которое бы очищало «неподшитые закладки» скажем раз в месяц — было бы совсем здорово.


Max Tabs и концентрация

2015-06-23

Заметил, что очень много энергии в последнее время тратится на соцсети и политику. В порядке эксперимента поставил себе Max Tabs и оставил дефолтные десять вкладок (может быть потом сокращу или расширю — практика покажет). Так же хочу поэкспериментировать с Личблоком — он у меня стоит давно, но толком я его не настраивал.

Об этом всем я подумывал давно — сейчас после статьи Почему мы больше не можем читать? решил заняться информационной гигиеной вплотную. После этой же статьи выкачал себе «The Organized Mind» Дэниэла Левитина. Штудирую. Плюс к этому (как-то оно все сходится, когда начинаешь изучать вопрос) — хороший обзор Никласа Карра у Москалюка (хотя с «разоблачениями» Талеба и Гладуэлла я не согласен :) и — заметка на австралийском Лайфхакере зачем ограничивать количество вкладок.

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


2015-02-03

(ворчливо) Дуров верни стену Яндекс-читалка rss переехала на Яндекс новости. Ну вы поняли? Интерфейс плиткой, что-то не работает, что-то глючит — пользоваться неудобно, но выглядит вебдванольно. Вот не знаю. У меня одного ощущение, что чем дальше, тем больше упарываются софтописатели становится красивого, но абсолютно неудобного софта — или это объективная реальность? Даже в дебиан умудрились запилить совершенно жуткого родственника Ктулху, который спустя некоторое время таки зохаваит. Пойду настрою newsbeuter в облаке :)


Not so open source

2015-01-31

Отключение служб гугла в Крыму — наглядный пример того, почему нельзя полагаться на корпорации, даже если они обещают бесплатный сыр, что не будут сильно evil. Программное обеспечение должно быть не просто бесплатным, но и свободным — не как пиво, а как GNU GPL. Иначе, какой-нибудь дяденька в лице Главменеджера Корпорации Добра решит в один прекрасный день порулить и лишит вас рабочего инструмента.

Поэтому — Firefox (реакция на скандал со Сноуденом, кстати, была очень характерной), поэтому Libre Office и Linux. И поэтому — по возможности сободная прошивка на андроидофон, плюс использование софта в основном из свободного репозитария F-Droid — там есть практически все, что необходимо для жизни (во всяком случае мне) под андроидом.


лекарство одно — открытые форматы хранения и open source софт. Это требует некоторого ума и некоторого приложения сил (трудности обычно сильно преувеличены), зато потом окупается сторицей — можно быть уверенным, что после «часа $» мои данные не превратятся в труху, а софт — в тыкву.

(c)


Openshot, ImageMagick и красноглазая магия…

2014-11-30

На днях осваивал программу для нелинейного видеомонтажа под Debian GNU Linux. Требовалось смонтировать простенькое слайд-шоу плюс несколько видеофайлов.

Из всех программ выбор пал на OpenShot — как лучший компромисс и аналог Movie Maker’а фирмы M$.

Все хорошо, однако на over 100 фотографиях OpenShot начал тормозить. Непродолжительный поиск подсказал, что проблемой может быть то, что все эти фотки грузятся в трек as is (а там фотографии на десяток мегабайт каждая) и OpenShot’у приходится каждый раз прокручивать все это богатство в памяти.

В теории фотографии можно уменьшить чем-нибудь типа ImageMagick — причем сделать это «одним чохом» в командной строке, но как? То есть я помню что в «Магике» есть утилита convert, но вопрос в том в какой размер конвертировать файлы и как быть с тем, что фотографии в моей подборке разной ориентации?

Ответ нашелся достаточно быстро. Где-то на ЛОРе на аналогичный вопрос советовали использовать связку bash+ffmpeg+imagemagick (что мне не подходило категорически — поскольку подборка требовала еще некоторой подгонки в ручном режиме). После чего я нашел ссылку на скрипт конверсии. Сам скрипт не понадобился — я извлек из него следующие строки:

RESOLUTION=1920x1080
mogrify -resize $RESOLUTION *.JPG

И тупо вбил их в комстроку в моей директории. mogrify — еще одна утилита пакета ImageMagick и она прекрасно справилась с конверсией. Фотографии стали весить порядка пары сотен килобайт, OpenShot перестал тормозить, а клип получился хорошего качества

Разрешение можно было задать и вот так:

mogrify -resize "1920x1080" *.JPG

И скорее всего уменьшить еще. Но это было часа три ночи и для вникания в детали у меня не было настроения.


АБТФ, Evernote или «Первая доза бесплатно»

2014-11-20

Достаточно долгое время мои хорошие знакомые время от времени рекомендовали мне Evernote, как универсальный сборник заметок. Некоторое время я обдумывал мысль включить тем или иным образом эту систему себе в рабочий процесс — тем более что были всяческие вкусности типа командной строки для линукса, но… Но у меня уже была система, которая меня полностью устраивает, которая заточена под меня и которая не требует денех или вложений. Словом поленился.

Сейчас потихоньку начали просачиваться новости о том, что систему переводят в небесплатный режим и вообще. Что хуже — btsync тоже начал двигаться в сторону коммэрции, хотя с ним есть надежда, что они будут монетизировать только хранилище, а саму утилиту так и продолжат распространять бесплатно. С другой стороны — уже есть Pulse ну и rsync с unison’ом еще никто не отменял.

Словом история повторяется снова и снова:


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

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


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

(c) Сирил Норкот Паркинсон

Пока лекарство одно — открытые форматы хранения и open source софт. Это требует некоторого ума и некоторого приложения сил (трудности обычно сильно преувеличены), зато потом окупается сторицей — можно быть уверенным, что после «часа $» мои данные не превратятся в труху, а софт — в тыкву.


Система бэкапов mysql moodle на двух машинах через scp ssh

2013-12-27

После вчерашнего танца с бубнами… Гм. Лучше по порядку. Вчера вышел из строя основной сервер. Я запустил резервный сервер, перекинул коммутацию интернетов в обход сервера. Этим я обеспечил интернеты. Потом поднял из бэкапов мудл, который у нас основным рабочим продуктом.

В более-менее спокойной обстановке народ разобрался с основным сервером (повезло — там была мелочь) и буквально через полчаса мы включили все обратно по основной схеме.

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

Из всего, что необходимо для работы мудла самую большую ценность представляет его база данных. Все прочее развертывается и ставится по отработанной схеме. А вот в MySQL хранятся все результаты, опросы и так далее. Читать далее…


make power

2013-10-30

Пока я работал с Неназываемым — столкнулся с необходимостью многократно прогонять комплект действий с питоновскими скриптами. Потратив примерно полчаса (чуть меньше на самом деле — учитывайте, что я не профессиональный программист, а скромный power user) разобрался в GNU make и написал себе такой вот файлик:

all: struc func

clean:
    rm *.csv
    rm *.dot
    rm *.png

struc:
    python st.py 
    find . -name '*.dot' -exec dot {} -Tpng -o {}.png \;
func:
    python fun.py 
    find . -name '*.dot' -exec dot {} -Tpng -o {}.png \;
one:
    python st.py 
    dot struct_kond_B1_01.dot -Tpng -o poligon.png
    geeqie poligon.png

В данном случае make struc считает одни аспекты Неназываемого и с помощью graphviz (точнее dot) рисует к ним диаграммы, make func делает тоже самое для других аспектов Неназываемого, make one — отладочный «единичный сценарий», make clean чистит папку от лишних файлов (храните в версионном контроле только то, что редактируется руками, ага). make или make all прогоняет сценарии всех аспектов Неназываемого.

Удобно. Когда освоил — понял, что именно make мне не хватало для автоматической обработки данных. Вообще говоря make предназначен совсем-совсем для другого, но с коммандлайновыми утилитами он прекрасно автоматизирует действия и в тоже время делает это очень прозрачно, избавляя от необходимости плодить где-то по окрестностям скрипты и алиасы.

Например. Читать далее…


Развертывание простой samba-шары, борьба с autorun.inf на samba-сервере или сисадмину на заметку

2013-10-04

Пока писал еще один пост про Гринпис, подошел один из инженеров и пожаловался, что какой-то из классов заела эпидемия «авторанов». Причем, авторанов, распространяющихся через сервер. Я насторожился, поскольку сервером у нас работает (с моей подачи) уютненький Debian GNU Linux.
Читать далее…


weatherman или сбор статистики о погоде через METAR

2013-03-26

Давно мечтал про скрипт, накапливающий статистику по изменению температуры и давления. Год назад, написал крошечный парсер на питоне, выгребающий из интернета metar-файл для моего города и парсящий из него давление и температуру.

Работает он так:

vik@firefly:~/blog$ python ~/bin/metar.py
на 22:00
-02 °C 1010 гПа

В конки встроен с помощью строки:

${offset 140}За бортом:${color green} ${execi 600 python /home/vik/bin/metar.py | tail -n 1 }${color }

Краткие пояснения по тому, как я пришел к идее (фактически склепал на коленке — питон хорош в том числе тем, что позволяет «думать руками»), я вынес в приложение.

Дальше дело застопорилось. То ли мне не хватило вренмени, то ли что-то еще. Скорее всего, я хотел реализовать весь процесс одним скриптом и в итоге не нашел для этого времени.

Пару дней назад, разбирая conky-систему, нашел этот скрипт и кое-что в нем поправил.

Сегодня меня (после очередного скачка атмосферного давления, на которое мое серое вещество не очень хорошо реагирует) осенило — раз скрипт выдает данные (и справляется неплохо, не смотря на примитивность) — почему бы не перенаправить их в файл и завязать все это на крон? Получится именно такой сборщик статистики, которого мне хотелось. А сам файл, можно будет потом скормить gnuplot’у, ну или libreoffic’у в худшем случае.

Сказано-сделано.

описание процесса