dastapov: (Default)
У меня в ЖЖ было куча ссылок между постами, и я хотел в DW поправить их так, чтобы они вели на соответствующие посты в DW.

Оказалось, что все велосипеды уже придуманы до нас :) Вот тут человек наколхозил скрипт, который пробегает по архиву, сделанному ljdump, собирает соответствия между URL-ами в ЖЖ и DW, правит посты и обновляет их в DW.

Из коробки скрипт у меня не заработал, пришлось его чуть поправить, чтобы он умел работать с ЖЖ-никами, в которых есть подчеркивания (как это было у меня). Результат на github-е (https://github.com/adept/ljdump/blob/master/fix_links.py), запускать из директории с результатами ljdump.

Оно будет показывать diff для всех поправленных постов и после подтверждения обновлять их. Можно выбрать альтернативную программу для сравнения через переменную окружения DIFF.

Я запускал так: DIFF=patdiff ~/path/to/fix_links.py

Вроде бы как все переехало нормально, ссылки поправлены, ничего не поломалось.

UPD: Заодно, вписав в скрипт пару строк вида url['вот это']='заменить на это', пофиксил все картинки, которые поломались после того, как dropbox закрыл public фолдеры. Красота!
dastapov: (Default)
Сказал сделать импорт всего, importer отругался, что "Unable to load FOAF data", но вроде все из профиля втянул. Что ему не нравиться - неясно, в ЖЖ по ссылке /data/foaf все отлично отдается.

Взял ljdump.py отсюда, добавил два патчика отсюда и выкачал им все из ЖЖ и из dreamwidth.

С помощью bash и patdiff сравнил выкачанное, наколхозив вот такой скрипт:

#!/bin/bash
lj="$1"
dw="$2"
for l in ${lj}/L-* ; do
    l_url=$(xmlstarlet sel -t -v "event/url" -n $l | grep -o '[0-9]*')
    d=$(ag -l "/${l_url}</import_source" ${dw})
    d_url=$(xmlstarlet sel -t -v "event/url" -n $d | grep -o '[0-9]*')    
    echo "$l (${l_url}.html) vs ${d} (${d_url}.html)"
    [ -z "$d" ] && { echo "cant find dw post for $l"; exit 1; }
    patdiff -ascii <(xmlstarlet sel -t -v "event/event" -n $l | \
              sed -re 's#lj (user|comm)="?([^ &"]*)"?[^&]*&gt#user site="livejournal.com" \1="\2"\&gt#g') \
            <(xmlstarlet sel -t -v "event/event" -n $d)
done


Страшный sed из-за того, что в ссылки на пользователей ЖЖ dreamwidth добавляет site="livejournal.com" и обязательные кавычки вокруг имени пользователя.

Похоже, не переехало только embedded video, а все остальное - пучком. Настроил кросспост в ЖЖ. Что еще я пропустил?

Что DW делает с френдами, которые тоже переехали сюда? Как-то их вычисляет/добавляет, или нет?
dastapov: (new)
Обращаюсь за помощью к коллективному разуму.

Есть у меня NAS с RAID-ом. На нем - ~400 Gb Ценных Данных. Хочется их на куда-то сбекапить off-site, на случай непредвиденных обстоятельств - если вдруг RAID накроется целиком и сразу весь.

Хочется, чтобы:
1)Лить бэкап можно было прямо с NAS-а (а там - linux и ARM), то если либо по rsync, либо по ftp/ssl или sft, либо еще что-то подобное, и уж точно не какой-то GUI-клиент.
2)Все, что я лью туда, должно быть зашифровано (допустим, каким-то симметричным алогоритмом с большим ключом).
3)Версионированиие и прочие модные штуки (доступ с мобилки, шаринг файлов, фото-альбомы(!)) - не нужны.
4)Супер-пупер надежность с 29-ю девятками после запятой - тоже не нужна. Мне нужна разумная страховка на случай, если с моей стороны случится что-то маловероятное, а не основное средство для бэкапа. Для меня будет достаточно, если они скажут "извини, тут с вот этим файлом беда вышла - надо перезалить".
5)Инкрементальные бэкапы - обязательны

Вроде ж не много хочу, да? И вот что выяснилось ... )
dastapov: (Default)
Понадобилось мне сделать из диаграммы, нарисованой в Visio, файл в формате EPS или PDF - чтобы вставить в документ, написаный на LaTeX.

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

После долгого сеанса прикладного гугленья в дебрях какого-то форума был найден простой работающий рецепт, который я для памяти запишу у себя в журнале.Read more... )
dastapov: (Default)
Некоторое время тому назад я писал (http://dastapov.dreamwidth.org/78794.html) о скрипте, с помощью которого я извлекаю данные о фильмах с сайта imdb.com. После нескольких недель эксплуатации скрипт оброс дополнительными возможностями, главная из которых - "декодирование" оценки фильма с помощью IMDB Movie Decoder Ring.

Что это за "декодирование" и зачем оно нужно? А для того, чтобы ответить на вопрос: "фильм с оценкой 6.1 - это фильм плохой, хороший или так себе?". Если бы оценки посетителей были бы распределены равномерно в интервале от 1 до 10, то можно было бы утверждать, что фильм с оценкой 6.1 - скорее хороший, чем средний. Однако фильмов с оценкой 1 и 2 на imdb.com почти нет, а фильмов с оценкой в интервале [5;7] - очень много. Как же можно содержательно интерпретировать оценку?

Например, так: можно заменить оценку X на процентное отношение фильмов, имеющих оценку <=X, к общему количеству фильмов. Если более 50% фильмов в базе imdb.com имеют оценку <=X, то можно считать, что фильм - скорее хороший. Более того, подобные процентные отношения можно рассчитать отдельно для всех жанров, к которым относится фильм, и тогда можно будет ответить на вопрос, как выбранная нами мелодрама (жанры Comedy, Drama) соотносится с другими комедиями и драмами.

Чтобы не выполнять каждый раз обработку всей базы imdb, Tom Moertel свел подобные расчеты в удобную компактную таблицу, которую он назвал IMDB Movie Decoder Ring. Табличка эта предназначена для использования вручную, но я, как человек ленивый, тоже не захотел связываться с обработкой сырых данных с imdb.com, и запихнул эту табличку в свой скрипт. Теперь в таблице результатов добавились две колонки: процент всех фильмов, оцененных ниже, чем этот, и (в отдельной колонке) подобные проценты по всем жанрам фильма, через запятую.

В результате можно выяснить, что, например, фильм "Broken English (2007)", имеющий оценку 6.3 -- едва-едва попадает в категорию "скорее хорошие". Он "лучше" всего 51% фильмов в базе imdb. Кроме того, если посмотреть на его положение в каждом из жанров -- Comedy, Drama, Romance -- то окажется, что он лучше 55% комедий, но - всего лишь 42% драм и 46% романтических фильмов. Получается, что для комедии оценка 6.3 - это "хорошо", а для драмы - всего лишь "удовлетворительно.

Полный текст скрипта - под катом.Read more... )
dastapov: (Default)
Сегодня я с некоторым офигением обнаружил, что можно вбить в Google поисковый запрос "Кто вы, мистер Брукс? site:imdb.com" и получить первым результатом ссылку на страницу этого фильма на imdb.com.

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

Кому интересно, скрипт и пример его использования - под катом.Read more... )
dastapov: (Default)
Понадобилось мне выкачать все полноразмерные фотографии из некоего альбома, опубликованого в Picasaweb. Около 80 фоток. Кликать на каждое preview и делать "save image as ..." - долго и моторошно. Из подручных средств сложилось вот такое решение:фиговину прикладываем к хреновине, а потом со всей дури @#$!% сверху молотком )
Наверняка я изобрел велосипед. Ну и фиг с ним :)
Рецепт пусть остается мне для истории, а вам, возможно, пригодится ссылочка на Xtract.
dastapov: (Default)
Поскольку лафа заканчивается, и я опять начинаю регулярно ходить на работу, я решил сделать то, до чего у меня в течении 2-х месяцев не доходили руки.

А именно - научить linux на новом ноутбуке (Toshiba Satellite A100-002) hibernate-ился и восстанавливался из hibernate-а.Дальше интересно будет только geek-ам )
dastapov: (Default)
Во френдленте пробежала череда постов о том, что оказывается можно листать странички в браузере при помощи Space и Shift-Space, обычно - с комментарием типа "Обана! 5/10/15 лет за компом, и не знал!".

Ну, для меня, пользующегося less с конца 90-х годов прошлого века(как звучит!) эта "новость" оказалась вовсе и не новость. Зато я вспомнил другую вещь, с которой я протормозил лет эдак на 5-10. Спешу поделиться :)

Недели три тому назад я с подачи [livejournal.com profile] helge9210 добавил в опции монтирования файловых систем /var, /usr и /home опцию "noatime". Скорость выполнения некоторых дискожручих операций (типа "apt-cache search", индексирование и поиск почты, find, ...) визуально увеличилась в разы, а иногда - на порядок.

Спрашивается в задаче - почему я не сделал это раньше? Например, параллельно с появлением DMA transfers в мохнатом 199x году :)
dastapov: (Default)
В прошлый раз я поленился записать walkthrough, и очень зря. Там все просто, но если под рукой есть готовый чеклист - становится на порядок удобнее.

Итак, задача: есть ноутбук с linux-ом и новый ноутбук с чем угодно. Надо переехать на новый ноутбук, перенеся туда систему и данные со старого. checklist для самого себя под катом )
dastapov: (Default)
Вчера мне пришлось столкнуться с глупой проблемой, решение которой оказалось достаточно нетривиальным. Судя по поиску в google, проблема достаточно широко распространена, а вот информация о решении - нет. Поэтому, поделюсь-ка я с широкой общественность решением.

Итак, проблема:
Дано: компьютер с linux-ом, libdvdread с включенной поддержкой DeCSS, мешок видеопроигрывателей (mplayer, xine, totem, vlc, ogle), DVD с фильмом "Пираты Карибского Моря".

Проблема: при попытке проиграть DVD получаем либо "Sector read error", либо сообщения о том, что "libdvdread: Error cracking CSS key". Правда, какие-то ключи все-таки ломаются, он сильно это не помогает - фильм все равно не показывается ни одним из проигрывателей (вместо видео - мусор, вместо аудио - шум). На соседнем компьютере с теми же версиями софта - все проигрывается.

Решение:

Оказывается, libdvdread не умеет ломать CSS-ключи на некоторых новых DVD-приводах, если у этих самых приводов не выставлен "DVD region". Я про ту самую настройку, которая в теории должна ограничивать возможность просмотра DVD, произведеных в "далеких странах" и которую можно поменять всего два-три раза, после чего привод отказывается работать (или как-то так). На практике все на эту настройку забивают, чтобы пользователь не выкинул шибко умное железо на мусорник.

Да, так вот. Если у моего привода вообще не устанавливать этот "регион", то ключи ломаться не будут. А если поставить програмку "regionset" (apt-get install regionset) и с ее помощью установить любое значение "DVD region", то все начинает работать.

Правда, не сразу - сначала надо удалить из ~/.dvdcss те ключи, которые libdvdread якобы сломал до установки "DVD region". После этого ключи будут вычислены по-новой и все заработает.

Have fun.
dastapov: (Default)
Сегодня впервые после долгого перерыва решил забекапить телефон через bluetooth. И получил шиш на постном масле - при попытке за-pair-ить телефон с ноутбуком hcid говорит в syslog "call_passkey_agent(): no agent registered" и соединение не устанавливается.

Танцы с бубном не помогли - ни с dbus_pin_helper, ни с "pin_helper /usr/bin/bluez-pin", ни с явно прописаным в hcid.conf пином счастья мне не было. А было все то же сообщение об ошибке.

Как ни странно, поиск в гугле по тексту ошибки не дал вообще ничего :( Похоже, что это лично у меня что-то поломано, или это мне так повезло.

Anyway, downgrade of bluez-utils from version 3.1 to version 2.25 has solved that

(последняя строка по-английски специально для иноязычных страдальцев, которые найдут мой пост в гугле. Навеяно попытками вчитаться в турецкие и японские blog-посты на тему bluetooth)

Profile

dastapov: (Default)
Dmitry Astapov

July 2017

M T W T F S S
     12
3456789
1011 1213141516
17181920212223
24252627282930
31      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags