Навел порядок в своей библиотеке.
2017-01-22 11:44:25
Превратил жуткую свалку fb2 и epub-файлов, в которой мог разобраться только FBReader, да и то не ...
+ развернуть текст сохранённая копия
Превратил жуткую свалку fb2 и epub-файлов, в которой мог разобраться только FBReader, да и то не сразу, в более-менее структуруированное хранилище,
вида перваябуква/автор/название
Была еще идея насоздавать симлинков для книг с более чем одним автором, но решил пока не связываться.
Большую часть работы проделал вот такой скрипт:
for i in *.fb2.zip; do
author="`unzip -p $i "*.fb2"| xmlstarlet sel \
-t -m "//_:title-info/_:author[1]" \
-v _:last-name -o "_" -v _:first-name -n
`"
title="`unzip -p $i "*.fb2"| xmlstarlet sel -t \
-v "//_:title-info/_:book-title" | tr ' ' '_'`"
dir=`echo "$author"|sed 's!^\(.\)!\1/\1!'`
echo "$i => $dir/${title}.fb2.zip"
[ -d "$dir" ] || mkdir -p "$dir"
mv $i "$dir/${title}.fb2.zip"
done
Скрипт, конечно наколеночный и кривой. Поддержки epub пока нет, хотя смысл там примерно
unzip -p $epub_file content.opf |
xmlstarlet sel -N dc=http://purl.org/dc/elements/1.1/ \
-t -v '//dc:creator[1]' -n -v //dc:title -n
.
Ну и еще файл сканируется дважды. Но я решил что проще это делать дважды, чем
разгребаться с эскейпингом средствами xslt.
О, кстати придумал как обойтись без искейпинга. Вывод xmlstarlet который пишет автора на первой строчке, а title во второй, перенаправляем в
(read author
read title
# do what we need with author and title
)
. В результате внутри xmlstarlet нужно заэскейпить только ньюлайны.
P.S. А если для фотографий аналогичный скрипт сделать? Чтобы валить их все в кучу, чуть ли не rsync-ом, а скрипт пусть потом разгребает по датам и местам.
This entry was originally posted at http://vitus-wagner.dreamwidth.org/1869108.html. Please comment there using OpenID. Now there are comments
Тэги:
fb2,
open,
source,
компьтерное
IPv6: что я делаю не так?
2017-01-19 21:10:10
Выяснил, в чем причина того, что хецнеровская виртуалка была не доступна по IPv6:
...
+ развернуть текст сохранённая копия
Выяснил, в чем причина того, что хецнеровская виртуалка была не доступна по IPv6:
Оказывается, я там что-то лишнее перекрыл на файрволле, и поэтому оно и не работало.
Файрвол был более-менее прямолинейно скопирован с IPv4 конфигурации и выглядел вот так:
# Generated by ip6tables-save v1.4.21 on Sat Mar 5 12:27:46 2016
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p icmp -j ACCEPT
-A INPUT -p igmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p udp -m udp --dport 1194 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5222 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5269 -j ACCEPT
-A INPUT -i eth0 -j REJECT --reject-with icmp6-port-unreachable
-A OUTPUT -p tcp -m tcp --dport 6000:6020 -j DROP
COMMIT
http://vitus-wagner.dreamwidth.org/1868705.html. Please comment there using OpenID. Now there are
comments
Тэги:
debian,
open,
source,
вопросы
Redmine на MySQL с RocksDB быстрее, чем с InnoDB, от 20% до 3 раз
2017-01-16 01:19:10
Мы собрали форк MySQL от Facebook с движком RocksDB вместо InnoDB и потестировали его с реальными ...
+ развернуть текст сохранённая копия
Мы собрали форк MySQL от Facebook с движком RocksDB вместо InnoDB и потестировали его с реальными приложениями: Drupal, Wordpress, Redmine.
Это офигенная штука. При низкой нагрузке выигрыш маленький, десятки процентов. Зато при высокой нагрузке выигрыш в разы. Когда RocksDB добавят в стабильный релиз в MariaDB, я уверен, что в течение полугода половина народа перейдет с InnoDB на RocksDB. Особенно, небольшие сайты на cloud/VPS и выделенных серверах.
Что такого хорошего в MyRocks? Линейная запись вместо случайной и снижение числа дисковых операций вообще. То есть транзакции базы данных порождают меньше дисковых операций, меньше занимают очередь диска, и пишутся намного быстрее.
Я собрал в статью результаты тестирования реальных сценариев Redmine, добавил анализ результатов и выводы. Redmine на MySQL с RocksDB оказался быстрее, чем с InnoDB — от 20% при минимальной нагрузке до 3 раз при максимальной. Позже подготовлю материалы по Drupal и другим PHP-приложениям.
Вы сможете проверить работу MyRocks и самостоятельно — в конце статьи есть ссылки на инсталляторы и виртуальные машины с LAMP/LEMP/Ruby стеками, собранные с MyRocks вместо MySQL.
Читать дальше →
Тэги:
benchmark,
facebook,
innodb,
lsm,
myrocks,
mysql,
open,
rails,
redmine,
rocksdb,
ruby,
source,
tree,
веб-сайтов,
веб-сервисов,
разработка,
тестирование
vws 0.5
2017-01-14 22:17:53
В связи с необходимостью сетапит новый билд-сервер, выпустил очередную версию vws. На самом деле у ...
+ развернуть текст сохранённая копия
В связи с необходимостью сетапит новый билд-сервер, выпустил очередную версию vws. На самом деле у нас vws уже почти год в production работает. Т.е. в итоге задача "сделать простые вещи удобнее, чем в virsh" вполне решена.
На идею нарисовать GUI я, похоже, окончательно забил. А вот автостарт виртуальных машин при перезагрузке допилил.
Буду теперь его везде ставить из deb-пакета.
This entry was originally posted at http://vitus-wagner.dreamwidth.org/1867526.html. Please comment there using OpenID. Now there are comments
Тэги:
debian,
open,
qemu,
source
Переведена документация Nuxt.JS
2017-01-14 04:52:41
Всем привет от Translation Gang!
Vue.js нам показалось мало. Планов громадьё, причём ...
+ развернуть текст сохранённая копия
Всем привет от Translation Gang!
Vue.js нам показалось мало. Планов громадьё, причём даже за пределами русского языка, фронтенда и веба вообще, но на практике пока что далеко от Vue не убегали — благодаря стараниям theOnlyBoy мы оперативно перевели документацию фреймворка сверхвысокого уровня Nuxt.js.
- Официальный сайт с переводом
- Репозиторий на GitHub
Сам фреймворк ещё молодой и немного сырой, как и его документация — но что есть, то мы перевели, и как только обновляются оригинальные доки — тут же обновляем и перевод. Надеемся, вам понравится!
Читать дальше →
Тэги:
github,
javascript,
nuxt,
nuxtjs,
open,
open-source,
opensource,
source,
translation,
translation-gang,
translationgang,
vue,
vue2,
vuejs,
vuejs2,
английского,
веб-сайтов,
перевод,
переводы,
разработка
Страницы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...