Паранойя

Всегда было не по себе, когда приходилось выкидывать в мусор всякие бумажки, на которых написана разная условно конфиденциальная информация, вроде паспортных данных.
Позавчера паранойа взыграла особенно сильно, как результат был куплен замечательный настольный USB-шредер.
Всего 350 рубликов в ilmax.ru и новый томагочи поселится у вас на столе.

ЗЫ Кстати о паранойе. Очень впечатлили дельцы, которые продают в Москве RFID-блокирующие обложки на “биометрические” паспорта по цене в 3т.р. Хорошо так люди деньги делают. (Купил на e-bay в 5 раз дешевле.)

Из жизни

Купил ребенку байк. На три года. Орбеа. Шура привет =) Всё как у взрослых: тормоза, тросики, ручки, подседельник на эксцентрике… И пусть коллеги показывают на меня пальцем, я не смог купить пластилиновый китай. Хорошие велосипеды развращают.

ЗЫ Через 2 недели Бегущий Город. На этот раз команда будет полностью из ЛВК. Все 4 человека.

Maemo conference Moscow 2010

Побывал сегодня на конференции, посвященной платформе Maemo.

Довольно любопытно. Оказывается, что Нокиевцы сами не ожидали, что N900 удастся (в такой степени), а сейчас они расходятся как пирожки. В России 4е место по прибыли (порядка 1500-2000шт в месяц), в мире 5е. Планы на 2009 Q4 были перевыполнены в два с лишним раза. При этом средний покупатель, оказывается, вовсе даже не гик (политкорректно маркетинговые люди их называют “тэкникал лидерз”), а человек, переросший E серию (не по статусу, а по потребностям). Хотя встречаются перебежчики с яблок и форточек.

Кстати Россия сейчас для Нокии “4й по величине рынок”. Не совсем понятно правда, в мире или в азиатском регионе, но всё равно.

Люди из Нокии потравили много интересных баек в коридоре. Они всерьез уверены, что за Маэмо будущее. При этом вроде бы настроены очень лицом к сообществу. Правда основная причина это “лучше я сейчас потрачу 30 тысяч, чтобы замейнлайнить наше изменение в апстрим, чем 3 лимона за поддержку всего этого самим в течении 5 лет”. Но всё равно это звучит весьма позитивно.

Насколько их планы на завоевание рынка кажутся реалистичными? Не знаю. Но они говорят очень много правильных вещей в том, что касается юзабилити (в более широком, чем юзабилити пользовательского интерфейса, смысе), возможностей, которые они требуют от платформы. Хочется надеяться, что прок будет. В общем, если и вправду N920 будет без клавиатуры, и если навител портирует под него свою навигацию, то я, пожалуй, куплю себе и то и другое. А пока FS n560. Хотя и исключительно в роли нафигатора.

Spin Debian package

SPIN is a general tool for verifying the correctness of distributed software models in a rigorous and mostly automated fashion. It was written by Gerard J. Holzmann and others in the original Unix group of the Computing Sciences Research Center at Bell Labs, beginning in 1980. The software has been available freely since 1991, and continues to evolve to keep pace with new developments in the field.

http://spinroot.com

Unfortunately Bell Labs use strange non-free copyleft-like license instead of good old GPL. So it could not be included in Debian archive. But as I need Debian package for it, I’ve prepared one and put into my repository.

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

Сегодня научился ронять ядро.
Следующим образом:
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

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

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 и я.

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

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. Бутиться пока не пробовал.

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