Author Archive for GQ

Роняю ядра. Недорого.

Сегодня научился ронять ядро.
Следующим образом:
mkfs.ext2 /dev/sdc2
mount /dev/sdc2 /mnt
iozone … -f /mnt/io #бенчмарк

В другом потоке:
dd if=/dev/zero of=/dev/sdc2 bs=1024 count=1024
mkfs.reiserfs /dev/sdc2

Вот я теперь думаю: я был не прав или всё-таки оно не должно было упасть?
Что ответит Александр ДрузьКО?

Редактирование истории в git

Еще один внутренний документик по работе с гитом от Максима Чистолинова:

Continue reading ‘Редактирование истории в git’

Copyright ≠ Авторское право

Сегодня был ткнут мордой в очаровательный факт. Подавляющее большинство словарей трактует/переводит Копирайт как Авторское право. И я тоже был в этом долгое время уверен.

Таки нет! Нам все эти годы врали! Английское Copyright обозначает только отчуждаемые авторские права. А к неотчуждаемым правам отношения не имеет.

А вы говорите, что изюм это сушеный виноград…

NeTAMS in Debian

Уж не знаю, имеет ли сегодня это какой смысл, но NeTAMS таки попал в архив Debian. А, с другой стороны, свободных аналогов-то и не видно что-то.

ЗЫ В моем репозитории в секции main лежат бэкпорты под все актуальные дистрибутивы Debian/Ubuntu.

Весёлые картинки

Вчера делал аж два рассказа про Debian. Один про то, как это всё вообще устроено, другой про то как выглядит работа мейнтейнера.
Картинки раз и два.

Upd: Лицензия на второй файл cc-3.0-by-sa, на первый, скорее всего тоже, но надо еще уточнить, потому что я использовал за основу творчество Сэма Хосевара, напишу ему и спрошу.

Басня о гит

Эдик Торощин перевел довольно забавную байку.
Читать здесь.

Смена бизнес-модели

Производишь музыку? Продавать компакт диски уже не модно. Продавать треки через интернет-магазин? Прошлый век. Новые возможности, новые горизонты, растущая прибыль.

MyDNS to BIND convert script

Понадобилось мне тут на одном хосте поднять ispconfig. Ниче так, работает, одна проблема: для поддержки DNS там используется MyDNS (реально mydns-ng), который как-то странно работает. В частности он не умеет (не смотря на заявления автора) IXFR, так что на нормальные вторичники зона не трансферится, пока там явно не включишь request-ixfr no; для первичного сервера. И вроде как заменить MyDNS нечем, исправить нереально, а работать должно. В итоге родилась извращенная идея генерить гонфиги и зоны для BIND на лету. Был написан такой скрипт:

#!/bin/sh

rm -f /etc/bind/mydns/db.*
echo -n > /etc/bind/named.conf.mydns

echo "select origin from dns_soa where active='Y';" | mysql --defaults-file=/etc/mysql/debian.cnf dbispconfig | while read DOMAIN;do
[ "$DOMAIN" = "origin" ]&&continue

mydnsexport "$DOMAIN" > /etc/bind/mydns/db."$DOMAIN"

XFER=$(echo "select xfer from dns_soa where origin=\"$DOMAIN\"" | mysql --defaults-file=/etc/mysql/debian.cnf dbispconfig | tail -n1|tr , \;| sed -e 's/;;/;/g' -e 's/^;$//')\;

echo "zone \"$DOMAIN\" { type master; allow-transfer { $XFER }; file \"/etc/bind/mydns/db.$DOMAIN\"; };" >> /etc/bind/named.conf.mydns

done

/etc/init.d/bind9 reload > /dev/null

где /etc/mysql/debian.cnf – это файл содержащий параметры доступа к mysql:

[client]
host     = localhost
user     = root
password = password
socket   = /var/run/mysqld/mysqld.sock

Правда, как оказалось, mydnsexport генерирует невалидный файл зоны, так что пришлось его слегка пропатчить:

diff -rNu mydns-1.2.8/src/lib/rr.c mydns-1.2.8.patched/src/lib/rr.c
--- mydns-1.2.8/src/lib/rr.c	2009-02-03 12:15:26.000000000 +0300
+++ mydns-1.2.8.patched/src/lib/rr.c	2009-09-27 05:00:26.000000000 +0400
@@ -866,6 +866,7 @@
 			     "%s%s%s"
 			     "%s%s"
 			     "%s%s"
+			     "%s"
 			     "%s",

 			     columns,
@@ -891,8 +892,9 @@
 			     (filter)? " AND " : "",
 			     (filter)? filter : "",

+			     " ORDER BY name,type",
 			     /* Optional sorting */
-			     (mydns_rr_use_stamp)? " ORDER BY stamp DESC" : "");
+			     (mydns_rr_use_stamp)? ",stamp DESC" : "");

   RELEASE(namequery);

Ну и вставить вызов скрипта в крон. Извращение, но работает.

Встреча выпускников Лицея 1502

Кросспост из списка рассылки.

Всем привет.

Как уже всем должно быть известно, в этом году Лицею исполняется 20 лет. В связи с этим планируется проведение встреч выпускников. Так как народу суммарно получается очень много, то было решено провести это мероприятие в 2 этапа: выпуски до 98го года включительно будут собираться 19го сентября, а с 99го по 2005 – 28го ноября.

Кашкарова сказала, что с Ольгой Николаевной у нее связь есть и, вероятно, она придет.

Официальная программа для нашего выпуска пока выглядит так: часов в 11 сбор в Лицее в отдельной аудитории (классами или парами классов), в 12 часов начало официальной части в актовом зале. Планируется, что Кашкарова с Чудовым расскажут о том что и как сейчас происходит в Лицее, покажут видео о лицее вообще и нарезку архивов, касающихся нашего выпуска. Ну и, естественно, аэробика, чтобы добить эту программу до положенных полутора часов =)

Также планируется в каком-то виде экскурсия по Лицею.

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

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

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

Опять же если есть какие-то предложения/пожелания – их можно высказывать.

Кашкарова с Чудовым очень боятся возможного количества участников и даже кагбе намекали, что если кому неинтересно, то тянуть их на встречу не надо, тем не менее, передайте по возможности эту информацию своим знакомым из других классов и других выпусков, потому что из нашего
выпуска на собрании присутствовали только Алла из XI-2-99 и я.

ЗЫ А новый бассейн на территории Лицея действительно построили :-D

RuNIX.org update

Обновили RuNIX.org. Детали тут.
Порядок записей на странице – это артефакт обновления, насколько я понимаю, скорее всего в дальнейшем всё будет нормально.

Со всеми замечаниями как всегда на root@runix.org.

Cheers.

Калькуляция

Попалась мне тут в руки таможенная декларация на Renault Koleos. Почитал и проникся. Не ну я, конечно, слышал что всё плохо, но что так…

Итак, Автофрамос ввозит машину. Цена машины: 426т.р.
С нее снимают налог 1,8евро на кубик: 162т.р.
Потом еще и c мощности 194р. за 0,75киловатт: 33т.р.
Дальше мне очень нравится: взимается еще 18%, с получившейся суммы.
Незаметно машина дорожает до 732т.р.
В нашей стране умеют делать деньги.

ЗЫ А под французским именем-то скрывается кореец.

Git trac post-receive hook

Добавил тут для одного из проектов хук в репозиторий, который закрывает тикеты по коммит-логам.

Неочевидное тут вот что:
закрывать тикеты надо тогда, когда коммит попадает на master (такая у нас модель разработки), соответственно надо отлавливать мержи и в случае мержа просматривать смерженные коммиты.

Upd: Гит оказался умнее меня и сам (rev-list) выводит коммиты со смерженных веток. Поэтому всё намного проще и получившийся скрипт даже и не интересен ни разу.

Скрипт получился такой:

#!/bin/sh
# This script is run after receive-pack has accepted a pack and the
# repository has been updated.  It is passed arguments in through stdin
# in the form
#  oldrev newrev refname
# For example:
#  aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master

TRAC_HOOK="/srv/git/hooks/trac-post-commit-hook"
TRAC_DIR="/srv/trac/stand"

procrevs() {
    while read gitrev; do
	"$TRAC_HOOK" -p "$TRAC_DIR" -r "$gitrev"
    done
}

while read OLD NEW NAME;do
	test "$NAME" == "refs/heads/master"||continue
	git rev-list --no-merges "$OLD..$NEW"|procrevs
done

Где TRAC_HOOK – это trac-post-commit-hook из дистрибутива trac, TRAC_DIR – каталог с проектом trac. В самом trac’е должен быть включен и настроен плагин trac-git.

TWIMC

TWIMC: Новоселье откладывается-таки на август. Улетел в Таганрог, в субботу вечером только вернусь.

Пингвины захватывают мир

Только что на одном из подоконников в коридорах факультета ВМиК МГУ обнаружили десяток флэшек. По 2 гига каждая. На стальной боковине надпись маркером Linux. Внутри fat32 раздел с syslinux и образом RFRemix-11-i686. Бутиться пока не пробовал.

Пингвины откладывают яйца? Галагтеко опасносте?

Пьем, танцуем, веселимся

У меня появился еще один почтовый адрес. Можете поздравлять.

Рабочее

Пришел на работу неожиданно рано. Аж пол-одиннадцатого. Никого кроме меня нету. Только шеф ходит, хмуро гремит ключами и осматривает пустые рабочие места. К чему бы это?

XI-5-99

Эй, XI-5, почему до сих пор у меня никто даже не спросил про встречу?

В итоге всё уехало на конец июня. Но таки надо. Подробности тут.
Если вдруг не подписаны, то подписаться на список можно тут, только не забудьте указать имя.

NeTAMS

В репозитории обновился пакет NeTAMS до версии 3.4.2c-1.
В частности исправлены ошибки в postinst скрипте.

OpenPGP key update

Продолжая волну флэшмоба тоже поменял PGP-ключик.

Мой новый ключ:

pub   2048R/2AAC33F1 2009-05-18
Отпечаток ключа = 04B5 9D90 DF7C C2AB CD49  BAEA CA87 E9E8 2AAC 33F1
uid                  Alexander GQ Gerasiov <gq@cs.msu.su>

Подробнее: gpg-transition-gq-2009-05-18.txt.

PS Если кто-то хочет обменяться подписями – можете отмечаться в комментах.

О некрофилах

Таненбаум всё еще мечтает о world domination.

Хотя, с другой стороны, за такие деньги…

Почитал внимательнее minix3.org. Таненбаум, похоже, понял, что сказки про микроядро не интересны никому, кроме гиков. Теперь он упирает на BSD-лицензию и смотрит на проприетарные встроенные системы как целевую аудиторию.
В общем даже интересно. Где бы найти немножко времени, чтобы посмотреть на код…