Tags: linux

default

Как я переезжаю в dreamwidth, часть вторая: фиксим ссылки

У меня в ЖЖ было куча ссылок между постами, и я хотел в 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 фолдеры. Красота!

This entry was originally posted at http://dastapov.dreamwidth.org/129372.html. Please comment there using OpenID.
default

Как я переезжаю в dreamwidth

Сказал сделать импорт всего, 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 делает с френдами, которые тоже переехали сюда? Как-то их вычисляет/добавляет, или нет?

This entry was originally posted at http://dastapov.dreamwidth.org/129182.html. Please comment there using OpenID.
default

Linux & on-line backup-ы - куда бежать?

Обращаюсь за помощью к коллективному разуму.

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

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

Вроде ж не много хочу, да? Collapse )
default

Как сконвертировать Visio в EPS или PDF

Понадобилось мне сделать из диаграммы, нарисованой в Visio, файл в формате EPS или PDF - чтобы вставить в документ, написаный на LaTeX.

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

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

Извлечение данных о фильме с imdb.com и их содержательная интерпретация (ч. 2)

Некоторое время тому назад я писал (http://users.livejournal.com/_adept_/79951.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 - это "хорошо", а для драмы - всего лишь "удовлетворительно.

Полный текст скрипта - под катом.Collapse )
default

Поиск по русским именам фильмов на imdb.com и автоматическое извлечение данных о фильме оттуда же

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

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

Кому интересно, скрипт и пример его использования - под катом.Collapse )
default

Как скачать фотоальбом из Picasaweb целиком?

Понадобилось мне выкачать все полноразмерные фотографии из некоего альбома, опубликованого в Picasaweb. Около 80 фоток. Кликать на каждое preview и делать "save image as ..." - долго и моторошно. Из подручных средств сложилось вот такое решение:Collapse )
Наверняка я изобрел велосипед. Ну и фиг с ним :)
Рецепт пусть остается мне для истории, а вам, возможно, пригодится ссылочка на Xtract.
default

Страшная история о том, как в 21-м веке настраивается hibernate под linux

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

А именно - научить linux на новом ноутбуке (Toshiba Satellite A100-002) hibernate-ился и восстанавливался из hibernate-а.Collapse )
default

Я не тормоз, я не тормоз!

Во френдленте пробежала череда постов о том, что оказывается можно листать странички в браузере при помощи Space и Shift-Space, обычно - с комментарием типа "Обана! 5/10/15 лет за компом, и не знал!".

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

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

Спрашивается в задаче - почему я не сделал это раньше? Например, параллельно с появлением DMA transfers в мохнатом 199x году :)
default

Как переехать на новый ноут за 3 часа - памятка самому себе.

В прошлый раз я поленился записать walkthrough, и очень зря. Там все просто, но если под рукой есть готовый чеклист - становится на порядок удобнее.

Итак, задача: есть ноутбук с linux-ом и новый ноутбук с чем угодно. Надо переехать на новый ноутбук, перенеся туда систему и данные со старого. Collapse )