понедельник, 18 апреля 2011 г.

Неужто никто кроме меня не наткнулся

Сколько не обновляю bash-completion, и уже который раз натыкаюсь на поломку оного для portinstall.
Не забыть бы таки PR отослать (для того и пишу, чтобы не забыть).
В оригинальном варианте поиск индексного файла портов кривой, а в портах -- не работающий. Правильный патч для portupgrade (в отличии от битого из портов) должен быть:
--- contrib/portupgrade.orig    2010-09-04 02:35:04.000000000 -0400
+++ contrib/portupgrade 2010-09-04 02:38:00.000000000 -0400
@@ -26,11 +26,7 @@

portsdir=${PORTSDIR:-/usr/ports}/
_get_comp_words_by_ref cur prev
- # First try INDEX-5
- indexfile=$portsdir/INDEX-5
- # Then INDEX if INDEX-5 does not exist or system is not FreeBSD 5.x
- [[ "${OSTYPE%.*}" == freebsd5 && -f $indexfile ]] ||
- indexfile=$portsdir/INDEX
+ indexfile="$portsdir/INDEX-${OSTYPE:7:1}"

[[ "$prev" == -l || "$prev" == -L || "$prev" == -o ]] && return 0
Разница всего-то в одной цифре.

SBT: Don't forget to update!

В рассылке проекта sbt (simple-build-tool) уже пару раз (раз и два) всплывал один и тот же вопрос: как скомпилировать проект с continuations и scala 2.8.

И хоть на вики это есть http://code.google.com/p/simple-build-tool/wiki/CompilerPlugins
все равно новенькие снова наступают на те же грабли.
Часто чинится посредством вызовом sbt update перед компиляцией. Тогда все идет нормально.

Века не хватит научится

Познавательная статья
(pdf)Implementing First-Class Polymorphic Delimited Continuations by a Type-Directed Selective CPS-Transform. T.Rompf, I.Maier, M.Odersky.
Besides that, it is common knowledge that delimited continuations are able
to express any definable monad (Filinski 1994, 1999).


Это я на потихоньку решил вытащить все посты из draft'ов. Сначала мелкие, а потом, когда время и желание будет -- крупные.

У меня слабость к культовым книжкам

Я каким-то образом умудрился пропустить выход книжки Рассела и Норвига. Это я о третьем издании -- "Artificial Intelligence: A Modern Approach (3rd Edition)", которое было в 2009 году. Конечно же найти ее можно на library.nu.

Нужная книга

Для тех, кто хоть как-то касается языка Java (Closure, Scala, Groovy), книжка Брайана Гоетца "Java concurrency in practice" должна на время стать одной из настольных книг.
Достаточно широко охватывает проблемы, связанные с многопоточностью в Яве. Показывает как делать нужно, как не нужно, и чем это грозит (какой раскаленный и шершавый вам попадет в одно место, если налажаете). На ночь читать не рекомендую, потом будут мучать кошмары.

Haskell Platform on FreeBSD

Месяц назад обновлялся до 8-stable. Апдейт прошел не совсем гладко, возник повод прибить кучу лишних портов, в том числе ocaml и хаскел.
Хаскель решил вернуть, но из портов больше не ставить, собрал руками (в home, так удобней играться).
Установка проста.
Вытащить архив ghc для freebsd, любезно предоставленный Gabor PALI:
http://haskell.org/ghc/download_ghc_7_0_2#freebsd

Собрать:
$ ./configure --prefix=/home/easy/.local
$ gmake install
Вытащить архив с исходниками для Haskell Platform:
http://hackage.haskell.org/platform/linux.html
haskell-platform-2011.2.0.0.tar.gz
Собрать:
# На bsd каталог с либами и хидерами нужно указывать явно
$ env CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib \
./configure \
--prefix=/home/easy/.local
$ gmake install
$ cabal update
Готово!

Эталон -- 90/60/90?

Маркерные доски -- удобная штука. Агитировать никого не хочу, но мне часто помогает.
Только вопрос в размере. Больше -- лучше, если у вас есть офис или просторный кабинет.
Жаловаться на недостаток метража дома вроде бы грех, но вечно места не хватает. Да и на стену доску вешать намертво не хочется. Ее иногда удобно положить на стол или взять в руки (на колени). Использовать треногу неплохая альтернатива, но хорошого выбора в нашем городе нет: или на подставке маркерная доска с исключительно портретной ориентацией, или дорогой мелкий флипчарт на треноге. Отдельно треног не видел.
Пришел к тому, что дома удобнее иметь две доски 90x60, чем одну, большего размера. Меньший размер вообще не рассматривается.
А еще лучше три, но тоже девать особо некуда (при малолетней дочурке, у которой ручки так и чешуться че-нить стереть или закрасить).

Я не внимателен

Обычно я не люблю "палить" ссылки на книжные нычки, т.е. публично не даю на них прямые линки: это способствует их скорейшему прикрытию. Но тут на library.nu наконец-то разглядел стандартную просьбу, как помочь ресурсу. Один из пунктов: "By telling your friends and colleagues about this place! Most users already come here by word of mouth referrals!"
Что с легким сердцем теперь и делаю. Хотя только ленивый или очень невнимательный о ней не знает об этом ресурсе.
Бывшая гигапедия, находится по адресу library.nu.
Еще не все книжки восстановлены, но их там офигенная куча. Много поступлений, потихоньку восстанавливаются книги из старых архивов.
Информация разнообразная. Меня там привлекают хорошие технические книжки.
Почти все хорошие книжки найдены там.

Вот давеча увидел Фаулера "Domain Specific Languages" и "Software Language Engineering: Creating Domain-Specific Languages Using Metamodels". Наткнулся потому, что черновики на сайте фаулера уже отсутствуют. Так что хорошее дополнение к книжке "DSLs in Action" от Debasish Ghosh. :)