to post messages and comments.

Вышла новая версия интерпретатора языка программирования APL — GNU APL 1.1
Теперь можно запускать не только в GNU/Linux, но и во FreeBSD, OS-X, CYGWIN.
Установить, что-ли для прикола.

Забавная игрушка — Политический компас.
Отвечаешь на 25 вопросов, и смотришь, кто из кандидатов ответил так же.

Жесть!
В меня с Каспаровым 79% совпадений. Там, где у меня «скорее нет», у него «Нет», где «скорее да» — «да». Жесть какая!

compass.cvk2012.org

Придумали с няшками расширение для заказного кинга: заказной кинг с доцентом. Доцент — король пик.
Игра начинается с розыгрыша «брать доцента». Первые два хода с прикупа, дальше — по порядку. Нужно взять доцента — короля пик, с пик ходить нельзя.
Кто взял доцента, тот становится сам доцентом. Он получает право на своём заказе заказать эту игру. Тут уже он берет прикуп, сносит, кроме пик, естественно. Звание доцента переходит (или не переходит).
Игра «брать доцента» пересдаётся.
Игра может продолжаться бесконечно долго. А не два часа, как обычный заказной кинг без расширений.
Пробовали вчера поиграть, я выиграл, мне понравилось.

Много лет назад я придумал свою псевдоцилиндрическую проекцию. меридианы сходятся в одной точке, а локсодромы, выходящие из центра карты, изображаются прямыми линиями. Но компьютерами я тогда толком пользоваться не умел, а рисовать такое руками я не осилил.

И вот почему-то спустя время во мне проснулся интерес к этой забаве, и я нарисовал в matplotlib карту.

Углы выглядят как-то не очень придётся допиливать.
rghost.ru

Забавная ситуация.
Поскольку pacman отвалился, я собрал его вручную, make && make install. Теперь этим pacman'ом устанавливаю pacman из репозитория, с опцией --force, ну, часть файлов перезаписать нужно.
То есть, даю команду $ pacman -Suf pacman
Перед тем, как сделать то, что я хочу, pacman видит, что в SyncFirst прописан pacman, и предлагает для начала обновить pacman. Я, уже уставший, соглашаюсь, ведь я именно это и хочу, обновить pacman.
Но теперь-то pacman начинает выполняться в обычном режиме, а не в режиме --force. Файлы, понятное дело, не перезаписываются.
Спокойной ночи, дорогая жуйка!

Изъ асечки:
если вендузятники это вендобiонты, то разнообразiе дистрибутивовъ Linux вполнѣ себѣ тянетъ на кембрiйский взрывъ.
Slackware — это кишечнополостные безъуправленiя зависимостями; Debian проходитъ черезъ личинку (sid), куколку (testing), имаго (stable), Gentoo весьма смахиваетъ на лягушку съ ея rolling release…

Гражданское общество, эй, походу, мои жизнь и здоровье подъ угрозой…
Тутъ возлѣ дома спецiальне площадка для парковки спецтранспорта — пожарные, скорая… А тамъ какой-то нехорошiй человѣкъ поставилъ ведро къ кетайскими порногвоздями…
Полчаса назадъ я звонилъ 02… Но моя милицiя меня не бережетъ… Срочно переименовать в полицiю!

поиск самой длинной строки в файле. если несколько строк одинаковой длины, вывести все, самый быстрый вариант, какой пока смог придумать:
#!/bin/sed -f
1 {h;s/./a/g;G;}
:B
$ {s/^a*\n//;q;}
h;s/\n.*//;N;H;
s/[^\n]/a/g;
tA;:A
s/^\(a*\)\n\1//;tC
g;s/\na*\n[^\n]*$//;bB
:C
^$ {g;s/a*\n\([^\n]*\)$/\1/;bB;}
g;s/.*\n//;h;s/./a/g;G;bB;

Оказывается, программу можно свалить на SEGFAULT, указав специально подобранное значение n в операторе new T[n] на 32-разрядной системе. Т.е. упомянутый оператор сам по себе порождает SEGFAULT (а не только успешное завершение или исключение std::bad_alloc). О потенциальной уязвимости такого кода я узнал из книжки "24 смертных греха компьютерной безопасности" (авторов не помню, должна нагуглиться). Код (в первом комменте) я откомпилировал 5 компиляторами:

* MinGW g++ 3.2.3
* Borland C++ 5.5
* Сишный компилятор из Microsoft Visual Studio 8
* g++ 2.95.3 под QNX
* qcc 2.95.3 под QNX (фактически, разновидность g++ с другими аргументами командной строки)

Свободен от ошибки был только рантайм компилятора из MS VS.

Сам "эксплойт" в комменте.

Тестирование на других ОС (включая последний тег) и под другими компиляторами приветствуется)

Слабо объяснить результаты тестов?

посвятил кусочек воскресного вечера благородным забавам с AWK. (до последнего времени эта команда оставалась для меня незнакомой).
Вот что получилось:
AWK-Quine №1:
#!/bin/gawk -f
BEGIN{A=";B=A;gsub(\"\\\\n\",\"\\\\n\",A);gsub(\"\\\\\\\\\",\"\\\\\\\\\",A);gsub(\"\\\"\",\"\\\\\\\"\",A);print \"#!/bin/gawk -f\\nBEGIN{A=\\\"\" A \"\\\"\" B}";B=A;gsub("\\n","\\n",A);gsub("\\\\","\\\\",A);gsub("\"","\\\"",A);print "#!/bin/gawk -f\nBEGIN{A=\"" A "\"" B}

AWK-Quine №2:
#!/bin/gawk -f
BEGIN{c="#!/bin/gawk -f%cBEGIN{c=%c%s%c;printf c,10,34,c,34,10}%c";printf c,10,34,c,34,10}

Ну и последовательный awk-sed quine (скрипт на sed выводит скрипт на awk, и наоброт):
#!/bin/sed -f
sQ^Q#!/bin/gawk -fQ;x;sQ^QBEGIN{c="#!/bin/sed -f%cs%c^%c#!/bin/gawk -f%c;x;s%c^%cBEGIN{c=%c%s%c;printf c,10,81,81,81,81,81,34,c,34,81,10}%c;H;g;%c";printf c,10,81,81,81,81,81,34,c,34,81,10}Q;H;g;

#!/bin/gawk -f
BEGIN{c="#!/bin/sed -f%cs%c^%c#!/bin/gawk -f%c;x;s%c^%cBEGIN{c=%c%s%c;printf c,10,81,81,81,81,81,34,c,34,81,10}%c;H;g;%c";printf c,10,81,81,81,81,81,34,c,34,81,10}