RuNIX.org — планета блогов о *NIX на русском языке RuNIX.org — планета блогов о *NIX на русском языке 03.05.2008 Leolik's blog Проблема c установкой Ubuntu 8.04 на винт Seagate (Barracuda ST 340016A) Решил установить Ubuntu 8.04 на свой комп, но неожиданно столкнулся с нестандартной проблемой - убунта не захотела ставиться на мой винт Seagate (Barracuda ST 340016A, 40Gb, ide) ((. Пробовал грузиться с LiveCD и просто устанавливать - убунта пыталась загрузиться, но безуспешно выкидывала меня в командную строку, при этом загрузка прекращалась. Ну что ж, приступим к разбору полетов. Для начала by Иван at 03.05.2008 00:01:11 02.05.2008 Записки о Linux Мобильный парк На той неделе купил жене телефон на Windows Mobile 6 (Gigabyte Gsmart i350). Довольно удачно купил с 20% скидкой в Dixis. Получилось дешевле чем в интернет магазине. В добавок дали ещё купон-скидку на 1690 рублей при следующей покупке. В общем я за 100 доплаченных рублей купил ещё себе гарнитуру Nokia BH-207, которую переделал под левое ухо (так уж сложилось что и трубки прижимаю только к левому и молоток держу в левой руке, а вот пишу правой, а рисую обеими). Gigabyte Gsmart i350 Toshiba G900 Сперва была мысль купить Toshiba G900, с экраном 800×480, но он уж слишком мал для такого разрешения, да и клавиатура раздвижная это лишнее. Хотя экранная клавиатура довольно неудобная (мелковатая) в WM (в отличии от OS2008 для планшетов Nokia). Теперь у меня дома полный мобильный зоопарк, в виде Nokia E61, Gigabyte Gsmart i350, Nokia N810 и гарнитуры Nokia BH-207. И операционок теперь аж три, Maemo OS2008, Symbian S60 и Windows Mobile 6. Вообще сравнивая эти операционные системы очень хочется отметить, что установка софта под Linux гораздо удобнее, чем просто попытка найти софт под WM или Symbian. Не нужно перекапывать интернет, только для того, чтобы понять, какая же софтинка тебе нужна для различных нужд. Наверно это связано с моим линуксовым мышлением. После того, как я откопал нормальную читалку для книг, нормальный проигрыватель для видео, Jabber-клиент, то всё встало на свои места. Мне даже понравилось. Мобильный парк У i350 не маленький экран, 640×480, а при помощи последней (бета, зато не просит себя купить) Opera можно вполне удобно лазить по интернету. Процессор мощный, не тормозит на немасштабированном видео. Есть GPS, но это так. Сравнивая операционки, сложно сказать за кем будущее. Если WM будет работать без сбоев, если Symbian получит Touch Screen, если Linux под все свои всевозможные варианты сохранит простую установку софта, а главное хотя бы его наличие, то я бы сказал шансы (на будущее) у всех равные. Если сравнивать WM с Symbian, то первый чем-то напоминает Windows 3.1 с меню из Windows 95, второй просто напоминает сборище иконок. В плане дизайна Maemo (на мой взгляд) далеко впереди (а как он будет вести себя при разрешении 320×240?). Если сравнивать устройства в качестве наладонников, то я бы их расположил в таком порядке (размер экрана полностью совпадает с удобством работы): Nokia N810 (конвертация видео приводит к экономии места), Gigabyte Gsmart i350 (мощная железяка), Nokia E61 (калькулятор). Да, чем экран меньше, тем не удобней работать, и даже не спасает клавиатура E61. Осматривая данные девайсы у меня в голове созрел список улучшений, который неплохо было бы увидеть в будущих версиях интернет таблеток. Более мощный процессор, а то заявленный YouTube как-то тормозит; Цифровая камера с несколькими мегапикселями. Пусть уж Nokia хотя бы свою карту портирует под Maemo. GSM модуль + нормальная работа гарнитуры из коробки. Навести порядок в своём репозитории. Подводя итог всему вышесказаному, хочу сказать, что Windows Mobile мне понравился больше чем Symbian. Возможно это связано с размером экрана, возможно с тем, что есть стилус. Возможно даже, что на телефоне это “самое то”, но я не могу себе представить как пользоваться КПК c Windows Mobile на бору (да, Maemo на N810 для меня удобнее всех). 02.05.2008 21:47:04 Верхом на Debian GNU Linux Жонглирование ядрами. Настройка GRUB. Не так давно мне пришлось установить новое ядро для поддержки VirtualBox. С установкой ядра проблем не возникло никаких, но вот загружаться по-умолчанию оно не захотело. Это заставило меня посмотреть в сторону менеджера загрузки GRUB и его настройки. Как это ни странно, но вся информация по GRUB, которую я нашел в Интернете была по меньшей мере пятигодовой давности, и полезного я из нее by Mak_s at 02.05.2008 20:47:07 Заметки администратора Mailhub-сервер на базе Exim Второй раз столкнулся с задачей конфигурирования основного mx-сервера и так уж получилось, что это вновь оказался Exim (дистрибутив Debian Etch 4.0r3). Решил уже всё дотошно описать, чтобы впоследствии можно было с легкостью восстановить требуемую конфигурацию. Данное описание содержит комментарии только к внесенным мною изменениям, стандартные конфигурационные параметры я не описываю и не указываю. В моей конфигурации основной mx-сервер выступает в роли "привратника", который принимает из Internet всю почту и рассылает далее по внутренним smtp-серверам, поэтому упор делается на отброс нежелательной корреспонденции (spam'a).Комментарии приветствуются :)Основной конфигурационный файл Exim для "пересборки" выглядит примерно так:# cat /etc/exim4/update-exim4.confdc_eximconfig_configtype='internet'dc_other_hostnames='mail.mycompany.com'dc_local_interfaces=''dc_readhost=''dc_relay_domains='mycompany.com:mycompany.eu:mycompany.net'dc_minimaldns='false'dc_relay_nets=''dc_smarthost=''CFILEMODE='644'dc_use_split_config='true'dc_hide_mailname=''dc_mailname_in_oh='true'dc_localdelivery='mail_spool'Для удобства внесения изменений в конфигурацию я использую мини-скрипт rebuildcat > /etc/exim4/rebuild#!/bin/bashupdate-exim4.conf/etc/init.d/exim4 restart[Ctrl+d]chmod +x /etc/exim4/rebuildВ базовой комплектации Debian Exim идёт в "лёгкой" сборке, но для того, чтобы использовать возможность фильтровать вирусы с помощью ClamAv необходим heavy-пакет.# apt-get install exim4-daemon-heavyАнтивирус прикручивается к Exim'у просто и не требует каких-то особых настроек.# apt-get install clamav-daemonЧтобы clamav-пользователь имел возможность читать и писать в каталог /var/spool/exim4/scan, его необходимо добавить в группу Debian-exim# usermod -G Debian-exim clamavЧтобы научить Exim отдавать на проверку stmp-траффик, необходимо добавить строкуav_scanner = clamd:/var/run/clamav/clamd.ctlв main-отдел конфигурации Exim'а (каталог /etc/exim4/conf.d/main/).Затем добавить в acl-отдел конфигурации строкиdeny message = This message contains a virus: ($malware_name) please scan your system.demime = *malware = *Далее начинается самое ответственное - конфигурация Exim'а для первичной фильтрации спама:/etc/exim4/conf.d/main/01_exim4-config_listmacrosdefsCHECK_RCPT_IP_DNSBLS = bl.spamcop.net/etc/exim4/conf.d/main/02_exim4-config_optionssmtp_banner = Welcome to the Moon $tod_full - изменяем bannerrfc1413_query_timeout = 0s - отключаем Ident-запросы, чтобы избавиться от задержки при подключению к smtp-сервисуhelo_allow_chars = _ - чтобы разрешить в HELO/EHLO символ _/etc/exim4/conf.d/acl/30_exim4-config_check_mailacl_check_mail:denymessage = no HELO given before MAIL commandcondition = ${if def:sender_helo_name {no}{yes}}accept/etc/exim4/conf.d/acl/30_exim4-config_check_rcptdacl_check_rcpt:accepthosts = :# описание этого условия можно найти тутdrop message = Forged IP in HELO.log_message = HELO is our IPcondition = ${if eq {${lookup {$sender_helo_name} \ lsearch{/etc/exim4/reject_helo} \ {yes}{no}}}{${if !eq {$sender_host_address}{127.0.0.1}{yes}{no}}}{yes}{no}} accept.ifndef CHECK_RCPT_POSTMASTERlocal_parts = postmaster.elselocal_parts = CHECK_RCPT_POSTMASTER.endifdomains = +local_domains : +relay_to_domainsaccepthosts = +relay_from_hostscontrol = submission/sender_retainacceptauthenticated = *control = submission/sender_retainacceptdomains = +local_domainsendpassmessage = unknown userverify = recipient# Иногда бывает удобно воспользоваться данным условием, чтобы заблокировать отправителей,# указав их в файле /etc/exim4/local_sender_blacklistdenymessage = sender envelope address $sender_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster!acl = acl_whitelist_local_denysenders = ${if exists{CONFDIR/local_sender_blacklist}\ {CONFDIR/local_sender_blacklist}\ {}}# То же самое, только касательно хостов-отправителейdenymessage = sender IP address $sender_host_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster!acl = acl_whitelist_local_denyhosts = ${if exists{CONFDIR/local_host_blacklist}\ {CONFDIR/local_host_blacklist}\ {}}# Полезное правило, но с ним нужно быть осторожным. На основном mx-сервере я оставляю его# в warn-режиме, чтобы вдруг не заблокировать неродиво настроенных серверов, а вот на вторичных всегда выставляю в deny.warnmessage = X-Host-Lookup-Failed: Reverse DNS lookup failed for $sender_host_address (${if eq{$host_lookup_failed}{1}{failed}{deferred}})condition = ${if and{{def:sender_host_address}{!def:sender_host_name}}\ {yes}{no}}# Проверка по DNSBLS. Почта отбрасывается, если хост находится сразу в трёх DNS Black листах:# bl.spamcop.net, xbl.spamhaus.org, ctl.abuseat.org..ifdef CHECK_RCPT_IP_DNSBLSdropmessage = X-Warning: $sender_host_address is listed at DNSLists (bl.spamcop.net,xbl.spamhaus.org,cbl.abuseat.org) and out system thinks your message is spam.log_message = $sender_host_address is listed at DNSListsdnslists = CHECK_RCPT_IP_DNSBLSdnslists = xbl.spamhaus.orgdnslists = cbl.abuseat.org.endif# Проверка отправителя. Callout означает, что данных почтовый сервер, для того чтобы проверить# существование указанного отправителя, инициирует попытку отправить письмо указанному отправителю.# Опция defer_ok предостерегает от отбрасывания серверов с greylisting'ом, либо с серверов,# на которые временно невозможно присоединитьсяdenymessage = Sender verification failed!acl = acl_whitelist_local_denydomains = +relay_to_domains!verify = sender/callout=30s,defer_ok# Обязательная проверка получателя для внутренних доменов (relay_to_domains) callout'ом.acceptdomains = +relay_to_domainsendpassmessage = unknown userverify = recipient/callout# Если все предыдущие условия не подходят, отбрасываем письмо.denymessage = relay not permittedА для того, чтобы данный основной mx-сервер рассылал почту конкретным внутренним серверам, достаточно добавить файл /etc/exim4/hubbed_hosts примерно такого содержания:mycompany.com: 192.168.1.2mycompany.eu: 192.168.1.2mycompany.net: 192.168.1.3Ссылки:Specification of the Exim Mail Transfer Agent by Roman Sozinov at 02.05.2008 20:46:54 Deepwalker Скрипт для конфигурации по шаблонам Кратенький код для конфигурирования машины по шаблонам файлов. Действует так - натравливаете его на каталог с шаблонами, он строит в указаной вами папке то самое дерево, только с отрендеренными шаблонами. По первому же импорту знающие люди поймут какой должен быть синтаксис : ) Ну а для людей не от мира Django будут примеры. Код:#! /usr/bin/pythonfrom jinja import Environment, FileSystemLoaderfrom ConfigParser import SafeConfigParserimport os# pc_cfg = py-configuratorpc_cfg = SafeConfigParser()pc_cfg.read('/etc/py-configurator/py-configurator.cfg')pc_config = dict(pc_cfg.items('main'))base_path = pc_cfg.get('main','templates').rstrip('/')target_path = pc_cfg.get('main','target').rstrip('/')if not target_path: target_path='/'machine_cfg = pc_cfg.get('main','machine_cfg')print 'Configuration:',pc_config.items()ws_cfg = SafeConfigParser()ws_cfg.read(machine_cfg)ws_config = dict(ws_cfg.items('main'))base_len = len(base_path)+1env = Environment(loader=FileSystemLoader(base_path))for root, dirs, files in os.walk(base_path, topdown=False): for name in files: na_root = root[base_len:]+'/' if root!=base_path else '' print "Work on file:",name,"Root:",root,"Short root",na_root tmpl_file=na_root+name try: os.lstat(os.path.join(target_path,na_root)) except: os.mkdir(os.path.join(target_path,na_root)) tmpl = env.get_template(tmpl_file) tmpl_vars={'name':tmpl_file} tmpl_vars.update(os.environ) tmpl_vars.update(ws_config) open(os.path.join(target_path,tmpl_file),'w').write(tmpl.render(**tmpl_vars))Пример конфига:[main]templates = /etc/py-configurator/templates/target = /etcmachine_cfg = /etc/machine.cfgПеременные берет из /etc/machine.cfg, например из такого:[main]ws_name = ws3ws_num = 3domain = msk5region_addr = 24dep_addr = 55По сути сварганить бы что то вроде facter из puppet, но еще один велосипед, даже не знаю стоит ли.Обещаный пример (/etc/hosts):127.0.0.1 localhost10.{{ region_addr }}.{{ dep_addr }}.{{ ws_num }} {{ ws_name }}.{{ domain }}.realm.tld {{ ws_name }}10.{{ region_addr }}.{{ dep_addr }}.1 kdc.{{ domain }}.realm.tld# The following lines are desirable for IPv6 capable hosts::1 ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allroutersff02::3 ip6-allhostsПодробнее о синтаксисе шаблонов (а он богат возможностями) тут. Собственно вся затея с etc-шаблонятором родилась от любви к шаблонам Django, ну и слегка требовалась утилита шаблонной настройки. by Deepwalker at 02.05.2008 16:45:04 FreeBSD и все-все-все... Клоунада (третий сезон) Некрофилы снова накачали труп SCO деньгами и оживили его. Он уже изрыгает свои первые, после воскрешения, угрозы. Все срочно запасаемся напитками и чипсами. :) by Князь at 02.05.2008 15:16:14 Записки старого сисадмина » Линукс Записки в PDF Скомпоновал самые популярные и полезные "записки" в PDF файл. Качаем, кому надо. Ну и распространять желательно. :) by Silver Ghost at 02.05.2008 13:56:12 RU Linux Впечатления от Ubuntu 8.04 Hardy Heron Выкачал DVD-версию через KTorrent, можно заказать почтой. На праздниках посмотрел. Основные причины любопытства -- в последнее время для Ubuntu быстрее появляются пакеты, чем в Debian Testing/Unstable, больше бекпортов, и еще хотелось глянуть на GVFS т.к. подумываю отказаться от KWrite и Kate в пользу Geany. Хронические болезни дисктопных дистрибутивов Linux 1. Кодеки MP3 и MPEG2 Загружаются по сети по требованию, работает 2. Расшаривание директорий в Samba через GUI Через контекстное меню папки в Nautilus, почти работает 3. Русские шоткаты в Firefox Работают 4. ACPI Sleep на десктопе Есть, но глючит 5. Отключение напряжения от USB-флешки при отмонтировании Нет 6. Смена раскладки при отпускании сочетания клавиш а не при нажатии Нет 7. Закрытые драйвера видео в комплекте Есть, легко ставится через менеджер драйверов 8. Переключалка клавиатуры Работает хуже, чем в 7.10 Подробности в картинках 1. Это было в 7.04 но работало через раз, висло. Теперь лучше. Хотим например Эхо-Москвы послушать в онлайне. На картинке видно, как открывая MP3-файл во вкладке Firefox, видим закладку GStreamer-plugin, которая говорит что нет такого кодека. Плагин не умеет кодеки загружать и нужно внизу нажать кнопку, чтобы открыть MP3 в Totem, который и предложит скачать кодеки. 2. Наконец-то расшаривание работает через файловый менеджер, без правки конфигов Samba. На картинке видно, как расшаривая папку из контекстного меню автоматически устанавливается Samba usershare. Причем можно расшарить в анонимный доступ простым выставлением галки в том же диалоге. Юзабилити пока страдает -- сразу видим нелокализованное сообщение об ошибке, на котором для пользователей без гугла под рукой попытка использования Ubuntu в сети Windows закончится неудачей: "Ошибка 255 при запуске 'net usershare': cannot open usershare directory /var/lib/samba/ usershares. Error Permission Denied. ...". В этом случае нужно сделать две неочевидные вещи: убедиться что расшариваемая папка принадлежит текущему пользователю -- иначе нельзя расшарить, и после первой установки Samba usershare необходимо выйти из сессии пользователя и залогиниться заново. После этого работает. Да, кривовато, но уже что-то, лучшее решение из всех что я видел на линукс-десктопе. 3. В комплекте идет Firefox 3 beta 5, где это наконец-то исправили. Firefox производит приятное впечатления, используются родные GTK-виджеты для форм, сразу работает интеграция с Gstreamer для проигрывания всего потокового, сразу работает проверка русской орфографии в формах ввода текста, удобный журнал последних посещённых страниц, плагины от FF2 работают, по умолчанию набор шрифтов для русского языка очень хороший, ничего не надо доставлять. Т.е. Браузер идет с хорошей настройкой и локализацией по умолчанию, по крайней мере в DVD-версии Ubuntu. Из недостатков FF3 -- медленная прокрутка сложных страниц, например ящика Gmail, по сравнению с Konqueror и Opera. 4. Кнопка в Gnome есть, но компьютер засыпает вечным сном. 5. Тут все как обычно. 6. Неприятный баг в XOrg остался. 7. Nvidia-драйвер ставится одним кликом с DVD-диска через менеджер несвободных драйверов, который в этой версии Ubuntu прекрасно локализован. После установки легко включаются эффекты рабочего стола аля Vista. 8. Выбор раскладки Russian Winkeys при установке не сохраняется, раскладка неправильная, приходится добавлять winkeys снова. Кроме того, при выборе переключения раскладок через Alt-Shift через все тот-же плохо локализованный и ужасно непонятный диалог с деревом опций, не переключается через правый Alt-Shift, а только через левый. GVFS vs KIOSlave Самое интересное для меня в новом Gnome конечно новая система доступа к файлам GVFS, а точнее её особенность монтировать удалённые файловые системы через fuse, как обычные папки внутри /home/user/.gvfs/. Это даёт потенциальную возможность удобно работать с удалёнными файлами в программах, которые не привязаны к Gnome, например открывать файлы по FTP в Geany или по SMB в OO Writer. На деле же демон, который отвечает за fuse-монтирование, страшно глючит: если выйти и зайти под тем же пользователем, каталог ~/.gvfs пропадает, при открытии файла с FTP через Nautilus в Geany файл открывается правильно, но при первом же сохранении изменений демон умирает и файл больше нельзя сохранить. В обоих случаях смерть демона сопровождается словами "transport endpoint is not connected". Баг уже описан в https://bugs.launchpad.net/ubuntu/+source/gvfs/+bug/212789. Кроме того, сохранение через fuse-демон идёт в синхронном режиме без какого-либо диалога с кнопкой отмены и прогрессбара -- просто приложение висит пока не запишет. Еще одно неудобство -- отсутствие кеширования: если в Nautilus зайти по FTP в каталог, а потом нажать "Вверх", список файлов снова будет получаться по FTP, в отличие от Konqueror, который использует старый список пока не обновишь через F5, что сильно экономит время при работе с FTP. При открытии файла по FTP в GEdit -- редакторе с поддержкой GVFS -- файл вообще открывается в режиме "только для чтения". В общем GVFS пока сплошное разочарование и сравнивать с KIOSlave в KDE ещё рано, слишком сырое, работать с этим невозможно. Выводы Мои основные инструменты сломаны. Начиная с прошлой версии Ubuntu 7.10 убрали TeTeX, а с TexLive так и не подружился из за проблем с MetaPost и pdflatex. Нормально редактировать файлы по FTP невозможно. А в целом впечатления от дистрибутива положительные. Пока оставил двойной загрузкой с Debian Etch и пользуюсь Ubuntu, когда нужно поработать с графикой в новых версиях Gimp 2.4 и Inkscape 0.46. Остальное делаю в Debian. by sin at 02.05.2008 11:56:35 01.05.2008 Записки дебианщика Простая настройка сетевого интерфейса: как быстро настроить сетевую карту в Линукс Несмотря на то, что во многих современных дистрибутивах есть красивые графические утилиты по настройке сетевой карты, в ряде случаев проще настроить всё руками в конфигах. Это очень просто - вписать несколько строчек в нужные конфиги. Как посмотреть текущие настройки сетевой карты в Линукс Просмотреть текущие настройки можно, набрав в консоли с привилегиями рута команду: # ifconfig или sudo by virens at 01.05.2008 23:51:28 Записки старого сисадмина » Линукс Поставил себе VirtualBox Поставил себе поиграться VirtualBox. Мощная вещь. Впечатлила интеграция рабочего стола: by Silver Ghost at 01.05.2008 22:00:54 Переключение раскладки в Ubuntu 8.04 Многие, кто обновил Ubuntu до Hardy Heron, заметили проблему с переключением раскладки после перезагрузки системы. Решается проблема на самом деле просто. Идем в xorg.conf и правим секцию клавиатуры до такого состояния: Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "us,ru" Option "XkbVariant" ",winkeys" Option "XkbOptions" "grp:ctrl_shift_toggle" EndSection Рестартуем Иксы и пробуем. Если не помогло, то это значит, что Вы что-то перемудрили в конфигах Гнома, который начал управлять клавиатурой. Просто удалите каталог ~/.gconf/desktop/gnome/peripherals/keyboard и сделайте logout/login. Мне помогло. by Silver Ghost at 01.05.2008 13:53:07 Leolik's blog Простой DHCP-сервер + прозрачный прокси на Squid Для начала опишу ситуацию, почему я установил у себя на компьютере связку dhcp-сервера и прозрачного прокси на squid. Все дело в том, что мне частенько приходится дома работать с несколькими компьютерами одновременно (что-нить настроить и т.п.), но постоянно каждому компьютеру прописывать ручками ip, а так же прописывать настройки прокси очень не удобно, можешь забыть, что ты уже использовал by Leolik at 01.05.2008 13:38:31 Операционная система Линукс (inf.by/linux) Ubuntu обрел Wubi или инсталляция в два клика Ubuntu определена как самая массовая линукс-система по результатам сбора данных об установке открытого программного обеспечения. Это и неудивительно благодаря ее простоте, доступности, рассылке установочных дисков, рекламным акциям и доступности репозитариев. Не так давно опробованные мной инсталляции порадовали простотой, корректной работой с разбиением дисков, автомонтированием разделов чужих ... 01.05.2008 11:10:00 Unix-way Даже не знаю как мне это удается. Я удивлен тем, как мало я могу сейчас спать. Проснулся вчера в 2 часа ночи, в час дня лег спать и был разбужен ровно через час, когда пришли гости. Сейчас 03:35 уже следующего утра, а я до сих пор не хочу спать. Утром ещё зеленого чая выпью и лягу в середине дня. Я всегда хотел меньше времени тратить на сон, но я только сейчас обратил внимание на то, что спать я действительно стал меньше. Часть контента на моем сайте теперь пишется в Emacs Muse. Читать и редактировать такие тексты очень удобно - текст не перегружен ссылками и тегами - в Muse есть режим визуализации по типу "WYSIWYG". Сейчас подумалось - надо скрестить lj-compose с Muse или Markdown.el, чтобы удобно было вводить ссылки. Более сложной разметки в жж мне не требуется. 01.05.2008 01:00:00 API для модулей в phpBlosxom-ng. Эта заметка будет первым шагом к написанию документации по phpBlosxom-ng. Для написания модулей в этом блоге используется callback-механизм. Сейчас я опишу его и дам пример модуля. Есть пять массивов, в которые заносятся имена функций. Функции из массива txtfile вызываются после загрузки списка файлов (записей). Т.е. это callback-событие можно использовать для модификации списка постов до того, как он будет обрабатываться далее. Функции из массива rawEntry вызываются после загрузки содержимого постов как есть из файлов функцией file_get_contents. После этого уже идет обработка этого текста. Функции из массива processedEntry вызываются после того, как посты будут обработаны - заголовок отделен от текста, например. Функции из массивов flavourLoaded и storyTemplate позволяют работать с загруженным шаблоном. Разница в том, что второй коллбэк выполняется после замены таких переменных, как blog_title, base_url в шаблоне на их значения. Можно заменить их на свои значения. Для наглядности предлагаю рассмотреть пример простейшего модуля. Пример простой и хорошо показывает применение callback-механизма. Этот модуль создает новую переменную в шаблоне body_short, которая содержит текст поста с вырезанной частью от !--cut--> до !--nocut--> и заменяет её на ссылку "Read more". Таких частей может быть много - аналог lj-cut в живом журнале. global $callback; $callback['storyTemplate'][] = "process_readmore"; function process_readmore() { global $a, $b, $config; $a['entry_short']=preg_replace("'<\!--cut-->.*<\!--nocut-->'si", "Read more", $a['entry']); $b = str_replace('$body_short', $a['entry_short'], $b); $a['entry']=preg_replace("'<\!--cut-->'", "", $a['entry']); } Чтобы использовать этот модуль нужно в шаблоне главной страницы заменить $body на $body_short, в шаблоне просмотра отдельного поста остается $body и отображается полный текст. Если требуются пояснения по коду модуля - пишите в комментарии к посту. P.S. В коде модуля не должно быть бекслешей, просто без них он по понятным причинам заменял их на Read More. Кстати, в rss-фид лучше отдавать полностью текст записи, или с катом? Я склоняюсь к полному тексту поэтому пока оставил полный. UPD: Вводить новую переменную некошерно т.к. может нарушить работу других модулей в этом callback, чтобы переделать это кошерно мне надо внести изменение в модуль комментариев. 01.05.2008 01:00:00 30.04.2008 Wild's Weblog. Linux wild Иногда нужно что то найти, иногда не нужно, но хочеться. Тогда все потенциальные источники хороши: torrent, amule, поисковики… Обычно свой поиск файлов, я начинаю с dc++ там как то ближе что ли Для услуг dc++ необходим клиент. Конечно есть linuxdcpp 1.0.1 удовлетворяющий большинство потребностей, но версия ядра ни самая последняя. В aur’е появился обновлененький dc клиент linuxdcpp-bzr, основанный на ядре 0.705 (немного об измененениях) С установкой, проблем не возникло. #yaourt -S linuxdcpp-bzr Проблемы возникли, немного после - с руссификацией. Решение возникло следом: Запускать linuxdc++ таким вот образом sh -c “LC_ALL=ru_RU.CP1251 linuxdcpp” Для удобство можно создать/отредактировать ярлык, изменив команду запуска dc клиента, на предложенную мною. by wildarcher7 at 30.04.2008 23:42:49 Записки океанолога Первый раз в жизни что-то выиграл :) Выиграл конкурс слайдкастов на podfm.ru (ну не выиграл, второе место получил )). Удивлен по этому поводу невероятно Ссылка на новость о выигрыше Принимаю подарки и поздравления )) Блин, возобновить что ли подкаст…. (more…) by magik at 30.04.2008 21:30:51 FreeBSD и все-все-все... Терминальный сервер в клетке FreeBSD Сегодня поднял настроил терминальный сервер в клетке FreeBSD. Как оказалось терминал с 300Мгц процом вполне сносно тянет графику 1280x1024 с 85 герц (GNOME). Тормоза есть, но они терпимы. Пока не удается проверить бездисковую загрузку из-за отсутствия подходящей сетевой карты. by Князь at 30.04.2008 21:41:14 Записки океанолога Использование Compiz в качестве глобуса Мой брат, тоже океанолог (как, собственно, и другой брат), придумал оригинальный способ использования верхней и нижней грани в компизовском кубике. Теперь, он всегда может не только рассказать, но и показать студентам, где пролегает хребет Ломоносова, и в каком океане расположено море Уэдделла. Кому не интересен компиз, может просто послушать “Полёт Шмеля” Римского-Корсакова в исполнении Рахманинова с лицом Джеффри Раша, исполняющего Девида Хельфготта, который исполняет “Полёт шмеля” . Под катом видео и ссылка на страницу откуда картинки можно взять: (more…) by magik at 30.04.2008 17:00:04 Apachedev.ru 5 простых способов “ускорения” сайта Сперва хочу попросить прощения за долгое отсутствие обновлений на сайта. Но теперь материалы будут появляться чаще. А начнем мы с нескольких полезный советов по "ускорению Apache-a" от отличного сайта AskApache.comСжатие файлов стилей (.css) и JavaScript файлов (.js)Если на вашем сервере установлен Apache 2, то просто добавьте следующие директивы в ваш ... 30.04.2008 16:36:06 Украшаем листинг каталога в Apache Прочитал сегодня пост CSS Styling Apache Directory Listings. Очень интересный результат получил автор. Для каталогов софта, музыки и подобных сайтов такой подход позволит вообще обойтись без CMS, PHP и даже без HTML (кроме нескольких файлов).Посмотрите, какого результата добился автор:До:После:А вот как это сделано.Устанавливаем через .htaccess или httpd.conf следующие параметры каталога ... 30.04.2008 16:36:06 Записки о Linux VirtualBox для Fedora 9 Вечная проблема с эмуляторами. Ни VMware, ни VirtualBox не работают с ядром 2.6.25. Для того, чтобы победить VMware нужно сперва применить any-any-update116, а затем воспользоваться инструкцией или ждать патча #117. С VirtualBox немного хуже. Во-первых для работы нужен старый openssl, во-вторых нужно пропатчить исходники таким образом, чтобы компилируемый модуль смог нормально подгрузиться (для ядра 2.6.25). Можно также подождать новой версии, правда после покупки Innotek компанией Sun думаю этого придётся ждать долго. Так как ждать некогда, мне пришлось собрать пакет VirtualBox-patched, а также compat-openssl. Подключите репозитории nonfree (i386, x86_64) и tigro (i386, x86_64) и установите виртуальную машину: yum install VirtualBox-patched По поводу репозитория non-free. Он содержит набор проприетарных пакетов, за которыми “надоедает” лазить на оффициальные сайты. VirtualBox-patched-1.5.6-1.fc9.i586.rpm VirtualBox-patched-1.5.6-1.fc9.x86_64.rpm compat-openssl-0.9.8b-17.fc9.i386.rpm compat-openssl-0.9.8b-17.fc9.x86_64.rpm 30.04.2008 16:34:59 Интервью с Алексом Могилевским На сайте Radio-T выложено интервью с Алексом Могилевским, архитектором последних версий браузера Internet Explorer и одним из создателей современных стандартов CSS. Интервью в формате mp3. 30.04.2008 16:34:59 Записки старого сисадмина » Линукс Ubuntu 8.04 и Adobe PhotoShop Обновился до Ubuntu 8.04 Hardy Heron и тут же возникла проблема с Фотошопом. После загрузки стал ругаться на то, что не может найти какие-то нужные ему библиотеки. Путем запуска его из консоли выяснил, что wine не может использовать первый мегабайт адресного пространства ДОС. preloader: Warning: failed to reserve range 00000000-60000000 err:dosmem:setup_dos_mem Cannot use first megabyte for DOS address space, please report Лечится это просто: $ sudo sysctl -w vm.mmap_min_addr=0 $ sudo gedit /etc/sysctl.conf Ищем vm.mmap_min_addr = 65536 и меняем 65536 на 0. Все. :) Теперь наслаждаемся работой в ФШ. by Silver Ghost at 30.04.2008 12:31:32 Flycat.Info | КОТорый летает сам по себе... » linux Странность с MAC-адресами Натолкнулся сегодня на одну очень странную штуку: сервер (linux SLES 10sp1) после перезагрузки не видит свой шлюз. И что примечательно, адрес у него не DHCP. Причём, в arp-таблице у него явная ерунда: mac-адрес шлюза “левый” (не тот, который на самом деле), хотя, похоже, настоящий: судя по базе данных nmap, какая-то сетевушка малоизвестного производителя Intel. Все попытки определить, что же это за машина с таким mac-ом - пока безуспешны: скан arp-таблиц на маршрутизаторе, arping - ничего не помогло. Ситуация исправилсась очисткой arp-таблицы на шлюзе (!!!) - сервер заработал, arp-таблица на сервере стала соответствовать действительности. Но хотелось бы большего: понять причину и устранить возможность повторения такого. by flycat at 30.04.2008 09:58:21 29.04.2008 Журнал Витуса. WINE и CuneiForm again. Мне таки удалось получить в Cuneiform под Wine картинку непосредственно со сканера.Правда, тормозит сканер при работе через SaneTwain настолько, что, пожалуй пакетное распознавание со сканированием XSane будет эффективнее.Делается это так:1. Ставится Wine из 0.9.58 и выше2. Заменяется msvcrt.dll на родную от виндов (в сети много сайтов, откуда можно скачать DLL)3. Заменяется twain_32.dll на родную, с http://www.twain.org.4. Ставится CuneiForm5. Ставится SaneTwain6. Настраивается saned чтобы пускал с локалхоста7. в Face.INI находится строчка TWAIN_TransferMode = memory-buffered и заменяется memory-buffered на memory-nativeПовторяю, результаты мне не понравились. Но работает. 29.04.2008 17:35:06 Kir Kolyshkin linux-image-openvz в Debian В Дебиановском баге #392015 идёт долгая дискуссия о том, можно ли в дистрибутиве иметь linux-image-openvz, то бишь бинарную сборку OpenVZ ядра.Вначале написали, что никак нельзя, потому что, согласно Debian Kernel Patch Acceptance Guidelines, никак нельзя сделать п 21102 shell omala - : - xxx 307 kiev apartaments service snr roulements -