fossplanet.ru: Архив

2007-10-01 - 2007-10-31

erl-shell

Михаил Гусаров (dottedmag) 02.10.2007 20:15:49

Интересную тему подняли в #d-r:

<ilyak_> В shell всё более чувствуется потребность в ключе -j для цикла for
<ilyak_> В связи с тем, что ядрышек-то всё больше
...
<ilyak_> thresh: Я пока не придумал простого способа &ить for
<ilyak_> Если он есть - буду рад услышать
<ilyak_> Хотелось бы, при этом, чтобы сразу 500 процессов не форкались, а в 
         порядке общей очередит
<dottedmag> ilyak_: ммм. какой очереди? т.е. если есть 8 CPU, чтобы по 8 
            форкались, отрабатывали, а на место их - новые... Так?
<ilyak_> dottedmag: Да


Готовых примитивов, которые вполне могут распараллеливаться, не так уж и много - for, for in, пожалуй и всё, остальное надо сооружать ручками из & и wait.

Сразу всплыла идея сделать шелл на идеях эрланга (или даже на VM эрланга), добавив примитивы send и recieve (spawn уже есть), а также супервизоры a-la Erlang.

tvtime-web

Михаил Гусаров (dottedmag) 03.10.2007 22:14:13

Состряпал за полчаса web-мордочку для управления tvtime: http://tvtime-web.dottedmag.net/

Если кому пригодится - хорошо. Патчи, как всегда, welcome.

Борцуны с копирайтом и электронные книги

Михаил Гусаров (dottedmag) 04.10.2007 16:55:10

Заглянул случайно в какую-то баталию между теми, кто с магазинов с электронными книжками деньги наваривает, и теми, кто скриптами выложенные "для чтения" книжки обратно в нормальный offline-формат перегоняет.

Ужасно умилил довод (вероятно, рассчитанный на особо тупоголовых людей) "тех, кто наваривает": "вы книжку покупаете за 20 рублей, а на написание скрипта скачивания потратите своё время, которое больше, чем эти 20 рублей стоят". То ли у них действительно отсутствует мозг (если они в этот довод верят), то ли они пытаются эту мысль в голову тем, кто думать не умеет, вложить. Скрипт-то пишется один раз, а стянуть с его помощью можно хоть всю библиотеку (прикинем по fictionbook'у, пусть даже 50% книг из 12000 предложенных там в public domain - всё равно на 120 тысяч).

Zeroconf в двух словах

Михаил Гусаров (dottedmag) 06.10.2007 03:15:50

Заинтересовала меня такая вещь, как Zeroconf. Краткая выжимка из Zero Configuration Networking: TDG.

Zeroconf состоит из трёх частей:

  • Link-local IP address - автоматический выбор IP-адреса при отсутствии DHCP или статической конфигурации IP. Работает путём "выбрали, ARP-ом попробовали, что никого по этому адресу нет, ARP-ом объявили, что теперь это наш".

  • mDNS. Почти обычный DNS, но работающий не с центральным сервером, а с помощью link-local multicast - каждая машинка в подсети отвечает на мультикаст-DNS-запросы со своим именем. Отвечает, опять же, мультикастом. Работает для специально выделенного псевдо-TLD .local.

  • DNS service discovery. Соглашение на SRV-записи DNS, позволяющее публиковать и искать сервисы по их именам. В совокупности с mDNS позволяет перечислять сервисы в локальной сети (mDNS-запрос без конкретного адресата "дайте мне SRV-запись _workstation._tcp" вернёт ответы от всех mDNS-серверов, эффективно перечислив все Zeroconf-машинки в сети, аналогично с принтерами для _ipp._tcp и так далее). В дополнение специфицируется работа со статическими DNS-серверами, позволяющая достичь того же сервиса.



mDNS и DNS-SD могут работать без Link-local IP address - DHCP или ручная конфигурация ничем не мешают.

DNS-SD может работать без mDNS, но тогда DNS-серверу неплохо бы поддерживать расширения для динамического добавления/удаления ресурсов и нотификации о таковых событиях (расширения входят в спецификацию DNS-SD), так что с mDNS работать проще.

Чего этим можно добиться?


  • Link-local addresses и mDNS упрощают администрирование мелкой сети.

  • DNS-SD позволяет публиковать ресурсы сети в удобном для использования виде (a-la SMB share browser, но "типизированнее"). Интересные (для меня) типы, на данный момент определённые в реестре сервисов: HTTP (втч отдельные страницы, есть модуль для Apache), WebDAV, FTP, ssh, Postgresql (да, даже постгрес :), Jabber, SMTP (submission), IMAP4, IPP



Как это реализуется в Linux?


  • Link-local IP address - DHCP-клиентом и небольшой поддержкой в ядре.

  • mDNS и DNS-SD - avahi-daemon

  • Разрешение .local-адресов - libnss-mdns

Опен-соурсное

Alex Ott (alexott) 08.10.2007 20:44:00

Дописал сегодня софтинку для поддержки Google Safe Browsing API в Squid - squid-gsb. Документация и инструкции по установке находятся у меня на домашней странице. Поскольку я "ленив", то для разработки использовал Boost по полной программе. В принципе, можно почти все переписать без использования Boost, но тогда надо будет подумать как сделать этот софт кросс-платформенным.

Часы с кукушкой из компьютера с дисководом

Алексей Русаков (ktirf) 17.10.2007 21:12:30

В комментариях одного из френдов попался идейный скрипт, превращающий компьютер с CD/DVD-приводом в часы с кукушкой. Особенно эффектно пустить этот скрипт на нескольких рядом стоящих серверах. Впечатляюще должно быть.

Мониторинг событий

Peter Saveliev (peet) 18.10.2007 22:41:27


!
catch snmp if snmpTrapOID=linkDown if community=dlink500T
        exec eject
!
catch snmp if snmpTrapOID=linkUp if community=dlink500T
        exec eject -t
!
events
        snmp

Правильная архитектура делает простыми довольно неожиданные вещи. Поэтому пока взрослые и серьёзные дяди обсуждают её необходимость, мы ей вовсю пользуемся. Вот отрывок кода открывает и закрывает CDROM на рабочей станции в ответ на падение и поднимание ADSL-канала на моём домашнем шлюзе...

Нет, конечно, и мониторинг событий, и сигналы, и фоновые задачи я делал не для шуток с cdrom'ом :) И уж точно не для этого раскапывал netlink и snmp/asn1. Некоторые вполне рабочие примеры можно глянуть на wiki проекта. В двух словах -- это унифицированный механизм реакции на события как на хосте, так и на других машинах. Мы всё ближе к HA, и это радует. Следующий шаг -- inotify и xen... И очередной приступ документирования. Никто не желает помочь? ;)

Выборы дистрибутива

Peter Saveliev (peet) 26.10.2007 21:27:16

ТЗ: в дистрибутиве должна быть поддержка Python версий 2.4 и 2.5. Причём лучше так, чтобы можно было одновременно ставить и тот, и другой и переключаться на лету. Вопрос: Gentoo или Debian? Пока склоняюсь ко второму варианту.

Назад