new

0x29

It is this time of the year again :)

Борода еще седее, но совсем чуть-чуть. Внезапно обнаружил себя родителем школьника. Проекты с детьми сложнее, чем проекты на github. Плюс один иностранный язык, хоть и со скрипом. На работе учил интерна, который моложе, чем мой .emacs. Внезапно понял, что в текущей индустрии уже столько же, сколько до этого провел в предыдущей. Один год - это больше, чем 1 миллион шагов, но меньше, чем два. Планов еще больше, а времени для них еще меньше (но это по-прежнему лучше, чем наоборот).

This entry was originally posted at https://dastapov.dreamwidth.org/131497.html. Please comment there using OpenID.
new

ICFPC-2018

В этом году ICFPC был про футуристическую 3D печать.

Коротко задачу можно описать так:

Вам дается описание 3d-модели, составленой из кубиков одинакового размера. Все кубики или стоят на земле или одной из сторон соединены с каким-то другим кубиком. У вас есть "нанобот", который может перемещаться в пространстве (наплевав на гравитацию) и "печатать" кубики в непосредственной близости от себя. Кроме того, от бота можно "отпочковать" нового бота (и так до 20 штук) и кроме того, можно временно "включить антигравитацию" в зоне печати, и тогда кубики, не прикрепленные к чему-то, будут висеть в том месте, в котором их напечатали. При отключенной антигравитации висящие в воздухе кубики считаются фатальной ошибкой и вызывают завершение программы.Collapse )
new

Работа в UK - считаем деньги

Специально для Макса и Жени и ещё Жени :)

Допустим, вы получили offer на работу в UK. Как понять, насколько он хорош, и во что выльется переезд и жизнь в Великобритании? Collapse )

This entry was originally posted at https://dastapov.dreamwidth.org/130248.html. Please comment there using OpenID.
new

0x28

Время идет. Борода стала чуть седее. Дети стали чуть старше. Пережит один переезд и 0.1 ремонта. Пройдено 1400 км. Сменил метро на поезд, а лис - на зайцев. За окном проезжают brexit, MIFID и Трамп. Перезимовали суровую английскую зиму с метелями и снегопадами. Минус две социальные сети. Плюс три настольных игры. Много планов, но мало веремени (но это лучше, чем наоборот :)

Спасибо за поздравления!

This entry was originally posted at https://dastapov.dreamwidth.org/129579.html. Please comment there using OpenID.
new

Как я переезжаю в 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.
new

Как я переезжаю в 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.