20091218

захотелось мне послушать песенку задом наперёд

судорожно подёргался по интернетам, но что-то конкретной и простой инструкции не попалось.

вот sox умеет делать reverse. но у меня он почему-то не понял mp3. и даже почему-то не заработал через pipe. что-то сегодня, видимо, не мой день.
поэтому пришлось в два шага:
$ mpg123 -qw промежуточный.wav исходный.mp3$ sox промежуточный.wav реверсированный.wav reverse
вот, собственно, и всё.

p.s. хотя, в теории, должна была сработать любая из этих команд:
$ sox исходный.mp3 реверсированный.wav$ mpg123 -qw - исходный.mp3 | sox -t wav - реверсированный.wav reverse
должна бы, но что-то или кто-то у меня, видимо, как те гранаты у верещагина…

p.p.s. mpg123 — это просто первое, что под руку попалось. в принципе, для превращения mp3 в wav, много чего подойдёт. тот же mplayer, например:
$ mplayer -ao pcm:file=промежуточный.wav исходный.mp3

20091205

google wave

получить приглашение в googlewave оказалось элементарным делом.
проверено на себе.
зашёл на http://wave.google.com и оставил заявку.
честно говоря, не помню сколько прошло дней — пришло письмо со ссылкой на активацию аккаунта.
из-за запарки на работе письмо я обнаружил лишь спустя пару дней,
пока тыкался там в интерфейсе (работает не очень стабильно, по крайней мере у меня), пришло письмо/волна с предложением разослать ещё восемь инвайтов.

так что не надо рыскать по интернету или выклянчивать инвайт у кого-то.
можно вполне спокойно получить его напрямую у гугля.

p.s. аккаунт, как я понял, идентичен гугловскому. только вместо gmail.com стоит googlewave.com:
alex.barakin@googlewave.com.
p.p.s. письма из внешнего мира туда не ходят. надеюсь, пока.

20091122

converting openssh private key to lsh

потихоньку-полегоньку переползаю с openssh на lsh.
соответственно, встал вопрос об использовании приватного ключа ~/.ssh/id_rsa.
не генерировать же новый ключ для lsh!
порылся в документации. публичный ключ легко гоняется из openssh в lsh и обратно. а вот приватный…
а вот для приватного ключа штатно предусмотрен лишь экспорт из lsh в openssh.

в google нашёл по этому поводу лишь одно внятное упоминание в lsh-bugs@lists.lysator.liu.se.
ключевые посты там: раз два
почесал я свои опилки и чуть-чуть упростил конструкцию:
$ cat ~/.ssh/id_rsa | pkcs1-conv | sexp-conv -s advanced | \
sed 's/rsa/rsa-pkcs1/' | sexp-conv -s canonical | lsh-writekey

вроде работает.

p.s. специально для злобных буратин типа меня (но я пытаюсь исправиться):
чтобы ключ был сгенерирован без passphrase (т.е., незашифрованым), надо (нет-нет, конечно не надо, но если очень хочется…) добавить к lsh-writekey ключ «-c none».

20090904

как я madwimax для midinux-а собирал.

накатал вот статейку с кратким изложением процесса сборки madwimax-а (и, конечно, libusb1) под дистрибутивом midinux, стоящим на mid moblin.

20090830

прославиться можно по-разному

можно зарегистрировать первый в интернете домен. http://symbolics.com

а можно так обидеть человека, что это подвигнет его на создание операционной системы. http://www.gnu.org/

забавно получается, когда это совершает одна и та же компания. http://opendotdotdot.blogspot.com/2009/08/rms-1-symbolics-0.html

впереди планеты всей?

http://www.bbc.co.uk/russian/science/2009/08/090828_europe_soyuz.shtml
В надежде на продолжение своей программы освоения космоса Европа намеревается закупать в России космические корабли "Союз".
Интерес к "Союзам" обусловлен тем, что 2010/11 годах американские шаттлы прекращают свои полеты, а это означает, что количество отправляемых в космос астронавтов сократится.

20090825

шведская «Pirate Party», RMS и пять лет copyright-а.

How the Swedish Pirate Party Platform Backfires on Free Software (как платформа шведской «партии пиратов» может «аукнуться» свободному п.о.)

в двух словах (в вольном изложении) для тех, кто, как и я, с трудом воспринимает английский:

в числе требований, выдвигаемых шведской «партией пиратов», присутствует и сокращение срока copyright-а до пяти лет.
RMS, хотя, в общем, и поддерживает предлагаемые ими изменения (в т.ч. запрещение drm и легализацию некоммерческого использования опубликованных работ), размышляет по поводу этого пункта о пяти годах.

ведь что получается?
вот опубликован некий код под лицензией gpl. проходит пять лет и лицензия перестаёт «работать». код переходит в public domain. и может быть вполне легально использован в закрытом, проприетарном п.о.
противоположная ситуация: выпущена программа под закрытой лицензией. проходит пять лет и она тоже становится public domain. программа. не исходники.

бог бы с ним, если бы сохранялся паритет. но увы. проприетарщик вряд ли выложит исходники своей программы. ничто его к этому не обязывает. скорее он (и это совсем не исключено) заложит в программу «временну́ю бомбу» и бинарник спустя пять лет просто перестанет запускаться.
спрашивается, кто выигравает и кто теряет?

разработчики свободного п.о. обратили внимание на эту несправедливость и предложили удлинить срок copyright-а для с.п.о. (RMS считает, что десяти лет будет достаточно), но лидеры шведской «партии пиратов» отклонили идею о возможности продления срока в особых случаях.

далее RMS предлагает другой вариант: производитель проприетарного п.о. помещает исходники на хранение третьему лицу. и по прошествии пяти лет они должны быть опубликованы. это будет честнее.

а как вы считаете?

20090721

microsoft делает вклад в linux-сообщество драйверами для gnu/linux. part 3.

начало: http://sash-kan.blogspot.com/2009/07/microsoft-linux-gnulinux.html

presspass: какую пользу могут извлечь клиенты из этих самых linux device drivers?

Hanrahan: многие заказчики изучают вопрос, как виртуализация может уменьшить стоимость развертывания и управления их it-инфраструктурами за счет консолидации серверов и более эффективного использования серверных ресурсов.

клиенты говорили нам, что им хотелось бы остановиться в вопросах виртуализации на одной платформе. и linux device drivers позволят клиентам, работающим с gnu/linux, запускать свои gnu/linux и windows-серверы на одной платформе виртуализации, уменьшая общую сложность инфраструктуры.
следовательно, у них будет больше выбора в том, как разрабатывать и развертывать решения, управляя при этом всем дата-центром из одной консоли управления.

presspass: что подвигло microsoft на этот шаг?

Ramji: нынешний экономический климат вынуждает многие компани консолидировать их аппаратное и программные активы, откладывая приобретение нового программно-аппаратного обеспечения и снижая расходы на поездки и обучение, - делать все возможное для того, чтобы сократить расходы на контролируемую инфраструктуру и получить максимальную отдачу от своих квалифицированных сотрудников.
многие компании часто обращаются к microsoft с просьбой помочь им добиться успеха в гетерогенном технологическом мире потому что мы понимаем, что уменьшение сложности является ключевым фактором для снижения затрат. мы рассматриваем совместимость как рычаг для роста бизнеса.
можно сказать так: повышение производительности gnu/linux при запуске поверх windows server будет взаимовыгодно и для наших клиентов, и для microsoft, и для коммерческих, и для свободных дистрибутивов gnu/linux.

presspass: есть ли ещё примеры работы microsoft на ниве opensource?

Ramji: многие люди весьма удивляются, когда узнают, сколько opensource-разработок и контактов с opensource-community проходит через microsoft. это, вероятно, имеет непосредственное отношение к факту, что мы сосредоточены на получении результата и привлечении сообщества на основе персональных контактов, не особо это афишируя. мы в настоящее время участвуем и сотрудничаем в ряде opensource-проектов, предоставляя техническую поддержки и код.
примеры могут быть найдены в работе, которую мы проделали с php-community: был сделан вклад в php engine, оптимизация php 5.3 для работы в windows, повышение производительности многочисленных php-приложений в windows. ещё — продолжающееся участие в различных проектах apache software foundation, таких как hadoop, stonehenge и qpid. в дополнение к этому мы работали над улучшением взаимодействия с axis2 и оказывали поддержку firefox community в оптимизации firefox для vista и windows media player.
примеры подобного рода разбросаны по всей компании.

presspass: каковы перспективные планы microsoft по работе с сообществами opensource на ближайшие три-пять лет?

Ramji: мы сосредоточены на создании устойчивых бизнес-стратегий в области opensource в Microsoft.
исходя из этого, мы видим, что opensource играет в трёх ключевых областях, одна из которых заключается в использовании "входящего (inbound)" открытого исходного кода и opensource-ной модели развития, что делает наши процессы разработки более эффективными. наглядными примерами этого является то, что мы делали в последнее время с jquery в visual studio 2008, внедрение коннекторов openpegasus и адаптеры в system center operations manager, а также работа, которую команда microsoft high computing проделала совместно с argonne national lab (anl) над их реализацией mpich2 (переносимая реализация message passing interface (mpi)), используемой в кластерных вычислениях и супер-компьютерах.
другая область — «евангелизм продукта (product evangelism)» — привлечение людей к принятию наших технологий. в течение 34 лет у microsoft была стратегия open-edge, в соответствии с которой мы предоставляем открытые интерфейсы прикладного программирования и наборы средств для разработки п.о.. opensource - следующий уровень в наших усилиях, направленых на создание широкого принятия платформы (to create broad platform adoption). пример этого - ajax control toolkit. наши усилия в плане функциональной совместимости — также часть процесса «евангелизма продуктов» microsoft (пример: предоставление большей видимости функциональных возможностей windows из php-приложений).
третья область — использование opensource для уменьшения маркетинговых расходов и цен или тестирование новых фич, которые пользователи до этого в глаза не видели. opensource образовательные инструментальные средства, недавно выпущенные для microsoft office, — хороший пример. в частности, add-in-ы для математической и химической нотации позволяют учителям и студентам увидеть, что они могут использовать office для диапазона новых вещей, о которых они и не знали. в дополнение к использованию latex-а, сильной, но сложной системы подготовки документов, для описания математических проблем, учителя увидят новые возможности, доступные из microsoft word.
поскольку opensource адаптирован на ряде платформ, понимание, привлечение и поддержка opensource-разработки продолжает оставаться фундаментом для предоставления клиентам большего выбора.

microsoft делает вклад в linux-сообщество драйверами для gnu/linux. part 2.

начало: http://sash-kan.blogspot.com/2009/07/microsoft-linux-gnulinux.html

presspass пообщался с Ramji и Hanrahan, чтобы узнать больше о сегодняшнем заявлении.

presspass: microsoft всерьёз сватается за opensource community. какую роль сегодняшние новости сыграют в общей opensource-стратегии microsoft?

Ramji: мы видим, что сообщества microsoft и opensource растут вместе, что, в конечном счете, идёт на пользу нашим клиентам. сообщество linux, например, создало платформу, у которой много пользователей. поэтому наша стратегия состоит в том, чтобы укрепить взаимодействие между платформой windows и многими opensource-технологиями (включая gnu/linux), с целью обеспечить возможность выбора, о которой просят нас наши клиенты.
центральной частью нашей стратегии является работа в ostc, которую мы начали около трех лет назад. ostc имеет глубокие технические познания в gnu/inux, unix и opensource-технологиях, а также прочные социальные связи в opensource-сообществах. мы многому научились у лидеров этих сообществ в плане того, как эффективно работать вместе, и полны решимости продолжать диалог.
наша работа в этой области — предоставление большей свободы действий и выбора, и запросы наших клиентов и партнеров действительно задают импульс этим усилиям. мы слышим всё больше и больше рассказов от клиентов и opensource-партнёров о том, что они получают одни из наилучших показателей при развертывании новых oss-решений поверх существующих платформ microsoft. сегодняшний релиз был бы неслыханным со стороны microsoft всего лишь несколько лет назад, но это яркий пример, что потребительский спрос является мощным катализатором перемен.

presspass: так что же вы, собственно, зарелизили сегодня?

Hanrahan: сегодня мы выложили код linux device driver-а для разработчиков ядра linux. это является важной вехой, поскольку мы в первый раз зарелизили код непосредственно для linux community. не менее важен тот факт, что выпустили мы его под лицензией gplv2, являющейся предпочтительной в linux-сообществе.
первоначальной нашей целью при написании кода был запуск gnu/linux как виртуальной машины поверх hyper-v (гипервизора от microsoft) и, собственно, осуществление виртуализации.
драйверы устройств linux, которые мы выложили, сконструированы таким образом, что ядро linux может работать в прогрессивном (enlightened) режиме, дающем ему те же оптимизированные искусственные устройства, что и виртуальной машине windows, работающей поверх hyper-v. без этого кода gnu/linux, конечно, может работать поверх windows, но с далеко не таким же высоким уровнем производительности. мы работали в очень тесном контакте с командой hyper-v, чтобы этого добиться.
продолжение

microsoft делает вклад в linux-сообщество драйверами для gnu/linux. part 1.

круглый стол «вопросов и ответов»: Sam Ramji, старший директор по стратегии на платформе microsoft, а также Tom Hanrahan, директор центра opensource-технологий microsoft, обсуждают релиз linux-драйвера, сделанный компанией под general public license v2.

редмонд, штат вашингтон, 20 июля, 2009 - сегодня, ломая обыденность, microsoft выпустила 20000 строк кода драйверов для linux-сообщества. код, который включает в себя три linux-драйвера, был передан сообществу ядрописателей для включения в дерево исходников linux. драйверы будут доступны linux-сообществу и позволят повысить эффективность работы операционной системы gnu/linux в виде виртуальной машины под windows server 2008 hyper-v и windows server 2008 r2 hyper-v.

Sam Ramji отвечает за создание устойчивых партнерских отношений с opensource-сообществами в рамках его роли старшего директора platform strategy в организации microsoft’s server and tools. роль включает в себя надзор за функционированием microsoft’s opensource technology center (ostc), который выступает в качестве целевой точки для opensource-сообществ и компаний, заинтересованных в сотрудничестве с microsoft, и ресурса для microsoft product groups, заинтересованных в opensource-технологиях. Том Hanrahan, который также играет решающую роль в повседневных взаимоотношениях microsoft — opensource, является директором этого самого ostc. его команда сыграла ключевую роль в создании драйвера, и будет вести дальнейшую его разработку.

продолжение

20090706

пересборка erlang R13B01 в debian lenny

в репозиториях debian lenny лежит erlang версии R12B3.
в testing-е (в данный момент) — R13B.
и лишь в unstable (в данный момент) — последняя версия с erlang.org — R13B01.

чтобы собрать пакеты для lenny, потребуются три файла со страницы http://packages.debian.org/sid/erlang:
$ cd /usr/src/
$ wget http://ftp.de.debian.org/debian/pool/main/e/erlang/erlang_13.b.1-dfsg-3.dsc \http://ftp.de.debian.org/debian/pool/main/e/erlang/erlang_13.b.1-dfsg.orig.tar.gz \http://ftp.de.debian.org/debian/pool/main/e/erlang/erlang_13.b.1-dfsg-3.diff.gz
/usr/src — это общепринятое место для сборки. чтобы рядовой пользователь мог писать в этот каталог, он должен входить в группу src (по крайней мере в debian это так).
имена актуальных на момент прочтения файлов имеет смысл брать непосредственно с вышеуказанной страницы.

для начала должны быть установлены по крайней мере пакеты build-essential и devscripts.
какие ещё пакеты понадобятся для сборки erlang-а, проще всего узнать методом «научного тыка».
итак, распаковываем исходники с одновременным наложением debian-овских патчей:
$ dpkg-source -x erlang_13.b.1-dfsg-2.dsc
$ cd erlang-13.b.1-dfsg
$ dch -i
у вас открылся редактор с уже загруженным файлом ./debian/changelog. и сразу же в нём добавился шаблон для новой записи. я привёл её первые строки к примерно такому виду:
erlang (1:13.b.1-dfsg-2.1-backport) stable; urgency=low
* Non-maintainer upload.
* backport to lenny
т.е., добавил в имя пакета слово «-backport» (не обязательно, но полезно), заменил «testing» на «stable» и вписал соответствующий комментарий.
после сохранения файла всё готово для сборки:
$ dpkg-buildpackage -sa
если каких-то пакетов не хватает, именно сейчас вы об этом и узнаете (улыбка).

после завершения сборки (процесс длительный) в каталоге /usr/src вы обнаружите собранные пакеты. установить их можно, как обычно, программой dpkg:
$ sudo dpkg -i пакет1 пакет2 …


p.s. ежели кто из читателей знает более короткое/правильное решение — you are welcome.

p.p.s. до встречи через 100000 секунд.

♺ man dpkg-source dch dpkg-buildpackage
http://wiki.debian.org/DebianRussian/DebinstPackages

20090705

select * from таблица;

это, ясное дело, sql.
а как оно будет звучать в случае mnesia (естественно, на erlang-е)? а примерно так:
mnesia:dirty_match_object(mnesia:table_info(таблица,wild_pattern)).

ввиду того, что eshell «больно вумный», и выдаст на такой запрос из большой таблицы всего несколько строк, лучше просматривать порционно, записей, например, по десять::
lists:sublist(mnesia:dirty_match_object(mnesia:table_info(таблица,wild_pattern)),1,10).
lists:sublist(mnesia:dirty_match_object(mnesia:table_info(Table,wild_pattern)),11,10).
и т.д.

краткая расшифровка:
mnesia:table_info(Table,wild_pattern).
возвращает шаблон для получения записей для заданной таблицы Table. фактически — это запись (кортеж), в которой первым элементом идёт название самой таблицы, остальные элементы — анонимные переменные '_' в нужном количестве.
mnesia:dirty_match_object(шаблон)
это, собственно, и есть поиск по шаблону. а так как полученный с помощью table_info шаблон содержит только анонимные переменные, то, в переводе на sql это означает, что условие where мы не задали (или задали where true (улыбка)), и в результате получим _все_ строки таблицы.
почему dirty? а это чтобы с транзакциями не заморачиваться. зачем, спрашивается, нужна транзакция при выборке данных?

p.s. ежели кто из читателей знает более короткое/элегантное решение — you are welcome.

p.p.s. до встречи через 100000 секунд.

♺ man -erl mnesia lists

20090704

show tables;

это sql. а как узнать список таблиц mnesia (естественно, на erlang-е)?

вариант 1.
mnesia:info().
заметный недостаток: выводится ещё много (в данный момент ненужной) информации.

вариант 2.
mnesia:system_info(tables).
недостаток: если таблиц много, список обрезается.чтобы список был полным, можно добавить немножко «обвязки»:
lists:foreach(fun(X)->io:fwrite("~s~n",[X])end,mnesia:system_info(tables)).
краткая расшифровка:
lists:foreach(функция,список).
применение функции к каждому элементу списка.
io:fwrite(шаблон,данные).
вывод данных согласно шаблону.

p.s. ежели кто из читателей знает более короткое/элегантное решение — you are welcome.

p.p.s. до встречи через 100000 секунд.

♺ man -erl mnesia lists io

20090703

подключение к ejabberd. часть 2.

в предыдущем посте из серии 100000 речь шла о подключении к локальному узлу ejabberd@машина.
для того, чтобы удалённо подключиться к erlang-узлу с таким именем, нужно чтобы имя «машина» разрезолвилось в нужный ip-адрес. проще всего — добавить строку
ip-адрес машина
в файл /etc/hosts.

проверяем резолвинг:
$ host машинамашина has address такой-то

подключаемся:
$ erl -sname новый_узел -setcookie <cookie> -remsh ejabberd@машина
пояснения смотрите в предыдущем посте

p.s. ежели кто из читателей знает более лучшее/универсальное решение — you are welcome.

p.p.s. до встречи через 100000 секунд.

♺ man hosts host hostname

20090702

подключение к ejabberd.

для начала нужно узнать erlang-cookie, используемый узлом (node) ejabberd. сам узел по умолчанию так и называется: «ejabberd@машина».
где находится cookie? скорее всего — в домашнем каталоге пользователя, от имени которого запущен ejabberd. а запущен он, скорее всего, от имени пользователя ejabberd. смотрим выдачу
$ ps aux|grep ejabberd
первым полем и будет имя пользователя, от имени которого запущен процесс (тавтология в компьютерных науках, увы, практически неодолима).
узнать домашний каталог пользователя проще всего так:
getent passwd пользователь
предпоследнее поле (поля разделены двоеточием) и будет искомым каталогом. в нём должен лежать файл «.erlang.cookie». на содержимое этого файла я в дальнейшем буду ссылаться так: <cookie>

теперь собственно подключение.
на той же машине, где крутится ejabberd, подключиться к нему можно так:
$ erl -sname новый_узел -setcookie <cookie> -remsh ejabberd@$(hostname -s)
что такое «новый_узел»? просто какое-нибудь уникальное имя. например, «n0».
что такое «$(hostname -s)»? подстановка (средствами bash-а) результата выполнения команды «hostname -s», которая возвращает короткое имя машины. чаще всего узел, на котором работает ejabberd, называется именно по короткому имени. уточнить можно по выводу ps (см. выше): если среди аргументов присутствует -sname — используется короткое имя машины, если -name — полное (возвращаемое командой hostname без опции -s).
небольшое отступление. допустим, полное имя машины — «машина.domain.org». короткое имя — «машина». так вот ejabberd, скорее всего, запущен на узле «ejabberd@машина». и обращаться к нему следует именно так. а узел «ejabberd@машниа.domain.org» — это уже будет совершенно другой узел.
вот, собственно, и всё подключение.

p.s. ежели кто из читателей знает более лучшее/универсальное решение — you are welcome.

p.p.s. до встречи через 100000 секунд.

♺ man erl ejabberd hostname getent ps grep bash

20090701

серия 100000

ровно в 1246500000 секунд от начала эпохи unix в этом блоге появится первый пост из несуществующей пока серии 100000.
почему 100000? потому что планирую в дальнейшем раз в сто тысяч секунд публиковать очередной пост из этой серии.
формат этих постов будет выдерживаться в духе «простое решение маленького вопроса».
так как в данный момент в ареале моих интересов расплодились всякие erlang-и с mnesia-ми, именно о них речь поначалу и пойдёт.

p.s. получить текущее время в секундах с начала эпохи unix:
$ date +%s
получить время в человеческом формате из секунд с начала эпохи unix:
$ date -d @секунды
например, время выхода первого поста из серии 100000:
$ date -d @1246500000

♺ man date

20090612

коррупция, головотяпство и разгильдяйство в одной коробке

1. набор спо для школ рассылают вместе с набором проприетарщины.
2. два ключевых установочных диска сделаны незагражающимися.

подробнее:
в блоге у Алксниса
в блоге у Новодворского

20090606

проприетарная vs свободная модели разработки в контексте качества.

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

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

20090113

sulci jabber bot on debian lenny. «Unbound value Cryptokit.hash_string»


как полагается, скачал исходники из svn, дал команду make.
по мере возникающих ошибок доустанавливал требуемые пакеты.
пока дело не упёрлось в:
ocamlfind ocamlopt -package cryptokit,xml -c sasl.ml
File "sasl.ml", line 27, characters 10-31:
Unbound value Cryptokit.hash_string
make[3]: *** [sasl.cmi] Error 2

розыски уводят в логи jabber-конференций аж 2005-го года.
и нигде, нигде не написано хоть что-то внятное по поводу решения проблемы.
я абсолютно не знаком с ocaml-ом. но методом курения бамбука и научного тыка пришёл к такому выводу:
когда сборка доходит до этого самого cryptokit-а, а пакет libcryptokit-ocaml-dev не установлен, в каталоге site-lib создаётся каталог cryptokit. вот из-за наличия этого каталога сборка и обламывается.
не знаю, что именно там происходит в ocaml-овых глубинах, но, если заглянуть в файл site-lib/cryptokit/META, можно увидеть строку
version = "1.4"

кто и почему решил, что у cryptokit-а есть версия 1.4 — неизвестно. на сайте, куда отсылают (в sulci/README) за cryptokit-ом: http://caml.inria.fr/distrib/bazar-ocaml/ , самая последняя на данный момент версия — 1.3. google тоже ничего про версию 1.4 не знает.

резюмирую.
надо либо удалить каталог site-lib/cryptokit и сделать (на всякий пожарный) make clean.
либо до сборки установить libcryptokit-ocaml-dev.

кстати, вот минимальный набор пакетов, после которых sulci (у меня) благополучно собирается:
libocamlnet-ocaml-dev ocaml-ulex libssl-ocaml-dev libcryptokit-ocaml-dev libgdbm-dev libsqlite3-ocaml-dev

по зависимостям (вроде бы) устанавливается и всё остальное, что необходимо. по крайней мере всё, что перечислено в sulci/README.