среда, 10 февраля 2010 г.

Multicast forward/routing Linux, OpenBSD (iptv).

/*

в эпоху модемов с поддержкой V.22 (1,200 бит/с) даже думать о потоковом контенте было страшно. времена меняются и в медвежьи берлоги вламываются результаты "электрификации всей стганы" с более-менее приемлимыми тарифными планами. при этом вполне оправдано появление устройств из категории "домашние роутеры", принимающих канал доступа в internet/локалку от провайдера и раздающих ресурсы грубо говоря "на всю квартиру". зачастую эту функцию берут на себя старенькие компы уровня Pentium-Pentium III под управлением Linux/OpenBSD. при этом зачастую Провайдер даёт выход в сеть internet при помощи vpn/dsl туннеля/подключения, а мультикаст (как например услуга iptv - потокового вещания видео) "крутится" в сегменте "локальной" сети. ниже постараюсь описать принципы настройки роутера для работы в данных условиях. материал не претендует на исчерпывающее изложение и какую-либо оригинальность. здесь не будет готовых рецептов - только общие рекомендации. если Вам понравилось или есть чем дополнить - милости прошу оставить комментарий.


***********************************************

намеренно оставил за рамками роутеры на FreeBSD, так как imho (хотел бы ошибаться, но практика, Господа...) эта система не содержит механизмов, позволяющих нормально решать вопросы динамического роутинга/форварда мультикаста одновременно с NAT-ом, о чём честно предупреждает handbook:

31.2.8 Multicast Routing

FreeBSD supports both multicast applications and multicast routing natively. Multicast applications do not require any special configuration of FreeBSD; applications will generally run out of the box. Multicast routing requires that support be compiled into the kernel:

options MROUTING

In addition, the multicast routing daemon, mrouted(8) must be configured to set up tunnels and DVMRP via /etc/mrouted.conf. More details on multicast configuration may be found in the manual page for mrouted(8).

Note: As of FreeBSD 7.0 the mrouted(8) multicast routing daemon has been removed from the base system. It implements the DVMRP multicast routing protocol, which has largely been replaced by pim(4) in many multicast installations. The related map-mbone(8) and mrinfo(8) utilities have also been removed. These programs are now available in the FreeBSD Ports Collection as net/mrouted.

также стоит помнить, что сам по себе демон "mrouted" морально устарел (Ben, it's dead! RIP...) и не рекомендован к использованию при наличии альтернатив.

***********************************************


OpenBSD


тут всё очень просто и понятно. сам механизм прекрасно документирован:

OpenBSD Multicasting

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


Linux


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

вне зависимости от "железа" основную роль тут играют "прошивки". они могут быть закрытыми ("фирменными", что предустановлены на заводе-изготовителе) или открытыми (как dd-wrt, прошивки Олега для ASUS-ов и т.п.). с задачей форварда/роутинга мультикаста "из коробки" на отлично справляются лишь прошивки от Олега (вне зависимости от наличия vpn соединения). по крайней мере до сего дня dd-wrt содержали баг в ядре и в исходниках igmpproxy, препятствующий нормальному функционированию. подробности.

рассмотрим пример конфигурации роутера:

eth0 - интерфейс к локальной сети Провайдера (пусть будет сеть 10.0.0.0/8), обозначим как $IF_IN
ppp0 - vpn туннель с выходом в internet, обозначим как $IF_VPN
eth1 - интерфейс к "домашней" сети (адреса в пределах 192.168.1.0/24), обозначим как $IF_OUT

для "домашних роутеров" схема конфига осложняется тем, что в качестве eth1 (интерфейса к "домашней" подсети) выступает (как правило) бридж (br0), объединяющий Ethernet и Wireless интерфейсы (ессно при наличии этого самого wifi).

теперь немного чтива для любознательных:

общее описание мультикаста (English Wiki)

1. Multicast over TCP/IP HOWTO - старый, но добрый хау-ту.

2. Multicast Routing Code in the Linux Kernel - тоже не Откровение, но даёт понятие о (как минимум) двух стоящих внимания "хомячка" переменных:

/proc/net/ip_mr_vif - список интерфейсов, вовлечённых в обмен мультикаст пакетами
/proc/net/ip_mr_cache - текущий статус MFC (Multicast Forwarding Cache - кэш мультикаст пакетов)

3. Configuring Linux For Network Multicast - начальные сведения о конфигурации Linux ядра для роутинга мультикаста.

собсно с конфигурирования ядра и начнём. в обязательном порядке нам нужны следующие опции:

CONFIG_IP_ADVANCED_ROUTER=y (или же CONFIG_IP_ROUTER=y)
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
CONFIG_IP_MULTICAST=y
CONFIG_NET_IPIP=y

кроме того может возникнуть необходимость проконтролировать (cat имя_файла) и/или изменить (echo $ЗНАЧЕНИЕ > имя_файла) некоторые дополнительные параметры:

разрешаем форвард ipv4 пакетов:

$ cat /proc/sys/net/ipv4/conf/default/forwarding
1

разрешаем форвард мультикаста:

$ cat /proc/sys/net/ipv4/conf/[ $IF_IN | $IF_OUT ]/mc_forwarding
1

отключаем reverse path filtering:

$ cat /proc/sys/net/ipv4/conf/$IF_IN/rp_filter
0

для ядер 2.6.* может потребоваться принудительное указание "типа"/версии igmp пакетов (варианты значений - 0, 1 или 2, описание есть в исходниках ядра - /usr/src/linux/net/ipv4/igmp.c):

$ cat /proc/sys/net/ipv4/conf/[ $IF_IN | $IF_OUT ]/force_igmp_version
{0,1,2}


с ядром более-менее разобрались, остался вопрос к прикладному софту. потребуется:

iptables
igmpproxy
пакеты "net-tools" (route, traceroute) и "iproute2" (ip) для управления маршрутами/(роутинг)
tcpdump/wireshark для мониторинга


в роли igmpproxy может выступить pimd или проприетарный gated (эт если из пушки да по воробьям засадить...). есть ещё smcroute, но оно умеет только "статику" (не наш метод). ещё на просторах сети где-то бродят сборки "родного" древнего многострадального mrouted-а с патчами для Linux. не будем ворошить труп. RIP.

для начала на роутере очищаем все цепочки iptables (flush) и рисуем что-то типа:

-A INPUT -d 224.0.0.0/240.0.0.0 -p 2 -j ACCEPT # некоторые опускают ключ -d 224.0.0.0/240.0.0.0 и разрешают весь входящий igmp трафик
-A INPUT -d 224.0.0.0/240.0.0.0 -p udp -m udp ! --dport 1900 -j ACCEPT
-A FORWARD -d 224.0.0.0/240.0.0.0 -p udp -j ACCEPT

также можно включить некоторую страховку от сволочной и шкурной натуры Провайдера, принудительно увеличив TTL мультикаст-потока на одну единичку при прохождении нашего роутера (а то особо умные принудительно на мультикаст ставят TTL == 1, чтобы потешить ЧСВ, не иначе):

-t mangle -A PREROUTING -d 224.0.0.0/240.0.0.0 -p udp -j TTL --ttl-inc 1


после чего делаем тупой конфигурационный файл (читаем man!) для igmpproxy (вместо значений переменных $IF_IN/$IF_OUT подставить имена соответствующих интерфейсов ессно):

$ cat /etc/igmpproxy.conf

# good things to begin with :)
quickleave

phyint $IF_IN upstream
altnet 0.0.0.0/0

phyint $IF_OUT downstream


и запускаем демона (от рута):

# igmpproxy -c /etc/igmpproxy.conf


для того, чтобы тело взлетело осталось лишь правильно настроить роутинг/(маршрутизацию). здесь надо помнить, что источники выдачи сигнала могут присутствовать помимо указанных в плейлисте того же iptv. т.е. кроме собсно мультикаста (net 224.0.0.0/240.0.0.0 ) источник может иметь "левые" ip-ы типа 88.210.40.0/24, 77.94.170.0/24 и т.п.. это легко отслеживается tcpdump-ом/wireshark-ом если непосредственно на роутере стартануть VLC или MPlayer, собранный с поддержкой live555 и получить "картинку" видео. роутинг к этим "левым" адресам должен идти через $IF_IN, не затрагивая $IF_VPN! объясняться подобный "казус" может довольно просто. Провайдер зачастую делает пиринг с теми, кто держит нехилые "фермы", раздающие сам трафик, что и приводит к появлению в локальной сети (Провайдера) подобных "левых" адресов. или же "фермам" присваивают адреса "от фонаря". другими словами адрес, что прописан в плейлисте - это адрес для JOIN/LEAVE ("подписки" и "выписки" из мультикаст-группы), а сам источник udp потока может приползти откуда угодно.

напоследок могу лишь посоветовать посматривать на статистику $IF_IN при пользовании igmpproxy. известно, что [далеко] не всегда "отписка" проходит корректно и это вполне может забить канал рано или поздно (при активной смене каналов вы быстро заметите если что-то пойдёт не так...).

удачи.

*/

пятница, 5 февраля 2010 г.

SuSE: иного нет у нас пути...

/*
-М-м-м-у-у-у-у!!!
-Шо за "му"?! Опять нажрался, свинота?!

начну с элементарного - русификации консоли (tty/mingetty) в современных SLE/SuSE. где-то с версии SuSE-9.1 "проблема" как-бы исчезла полностью благодаря поддержке UTF-8, но как и что делать вроде никто в отдельную заметку не выносил. по поводу русификации ранних версий есть отличная статейка:

Русификация SuSE 9

но увы и ах - "бойянЪ". задача раскладывается на три составляющие (при условии, что Ваша "локаль" уже задана в /etc/sysconfig/language как RC_LANG="en_US.UTF-8" или RC_LANG="ru_RU.UTF-8"):

1) выбрать "правильный" шрифт (содержащий UTF-8 символы кириллицы как минимум).

чешем в "/usr/share/kbd/consolefonts/" и выбираем тот, который нравится больше всего. после чего вносим его в "/etc/sysconfig/console" как шрифт по умолчанию (пример):

CONSOLE_FONT="UniCyr_8x16.psf.gz"
CONSOLE_MAGIC="(K"

2) задаём UTF-8 кодировку терминала для вывода символов, отличных от ASCII, в "/etc/sysconfig/console":

CONSOLE_ENCODING="UTF-8"

3) выбираем подходящую "раскладку" и "переключалку" (доступные варианты можно просмотреть в /usr/share/kbd/keymaps/i386/qwerty/) и вносим её в "/etc/sysconfig/keyboard" (пример с переключением по правому ALT-у):

KEYTABLE="ru1_win-utf.map.gz"

кроме этого тут же можно установить "шорткат" для переключения между активными терминалами (например по кнопке "Win"):

COMPOSETABLE="clear winkeys"

завершающий штрих - рестарт сервиса "kbd":

/sbin/service kbd restart

после чего можно смело переключиться в "чистую" консоль (Ctl+Alt+F1) и оценить результат.
mission сукесфули комплитед.



Девушки бывают разные:
чёрные, белые, красные...

SuSE/SLE довольно специфичный дистрибутив, ибо содержит огромное количество "вкусностей", недоступных остальным "из коробки". это требует от пользователя определённого знания системы и вырианты решений тех или иных задач могут существенно отличаться (в этом-то и проявляется специфика). где-то эдак годика с 2005-го SuSE включила в базовую поставку системы свою собственную "надстройку" (называйте как хотите - "морда", гуй и т.п.) для управления пакетным фильтром iptables - SuSEfirewall, что до сих пор, imho, остаётся лучшим решением по управлению трафиком.

вся настройка идёт путём правки единственного файла:

$ sudo vim /etc/sysconfig/SuSEfirewall2

файл отлично документирован комментариями и поверхностного знания английского языка будет вполне достаточно. для применения новых значений используем связку:

$ sudo /sbin/SuSEfirewall2 stop
$ sudo /sbin/SuSEfirewall2 start

анализ эффективных цепочек правил легче всего делать при помощи:

$ sudo /usr/sbin/iptables-save | less

"черновую" настройку можно набросать в "гуях" YAST-а:

$ gksu yast2 -> Security and Users -> Firewall

после чего настоятельно рекомендую ввести изменения в силу и в дальнейшем редактировать "/etc/sysconfig/SuSEfirewall2" вручную. особая ценность решения от SuSE в том, что оно не накладывает никаких ограничений "творческой мысли" при редактировании цепочек. если Вы не осилили предлагаемые готовые "пресеты", то никто не запрещает указать:

FW_CUSTOMRULES="/etc/sysconfig/scripts/SuSEfirewall2-custom"

и подгрузить из файла "SuSEfirewall2-custom" свои собственные правила. причём ситуаций, которые требуют подобного вмешательства - масса. в указанном выше файле содержатся примеры с кратким описанием ситуаций для их применения.

основным преимуществом использования SuSEfirewall можно считать чётко структурированный подход к работе цепочек фильтрации. по сути это одно большое наглядное практическое пособие о том, как Правильно работать с iptables. весь трафик сперва делится на "зоны" - DMZ, "внешний"/external, "внутренний"/internal, lo - с возможностью определить дополнительные при желании - wlan и т.п.. после чего для каждой "зоны" создаётся отдельная "цепочка" эффективных правил, фильтрующая весь трафик. также идёт прямое указание на загрузку необходимых Вам модулей ядра (пример):

FW_LOAD_MODULES="nf_conntrack_netbios_ns xt_conntrack xt_owner \
xt_iprange xt_CONNMARK xt_limit xt_TCPMSS xt_state\
nf_conntrack_ftp nf_nat_ftp"

в результате мы получаем красивую и логичную схему действующих правил, которая ещё и минимизирует издержки при обработке трафика благодаря stateful природе пакетного фильтра. суть stateful пожалуй можно перевести как установление "статуса" активного соединения и разбору дальнейших пакетов на его основе. т.е. если какое-то соединение признано валидным/состоявшимся, то оно получает статус ESTABLISHED/(установлено), после чего весь соответствующий ему трафик обрабатывается на основе этого статуса, "минуя" цепочки фильтрации. рассмотрим простой пример, наглядно демонстрирующий преимущества решений SuSE:

> sudo iptables-save -t raw

*raw
:PREROUTING ACCEPT [38828:15020523]
:OUTPUT ACCEPT [36327:4135365]
-A PREROUTING -i lo -j NOTRACK
-A OUTPUT -o lo -j NOTRACK
COMMIT

(параметр FW_LO_NOTRACK="yes")

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

-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

здесь мы "синхронизируем" активное соединение с MSS (Maximum Segment Size in TCP), тем самым предотвращая пересылку слишком больших пакетов, требующих насильственного "деления".

рассмотрим далее упрощённый вариант того, что у нас творится в основных "цепочках" таблицы filter (как пример, без наворотов типа DMZ или специальных "зон" - ситуация "из коробки" так сказать...):

> sudo iptables-save -t filter | less

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:forward_ext - [0:0]
:forward_int - [0:0]
:input_ext - [0:0]
:input_int - [0:0]
:reject_func - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED -j ACCEPT
-A INPUT -p icmp -m state --state RELATED -j ACCEPT
-A INPUT -i tap0 -j input_int
-A INPUT -i eth1 -j input_ext
-A INPUT -i wlan1 -j input_ext
-A INPUT -i wmaster0 -j input_ext
-A INPUT -j input_ext
-A INPUT -m limit --limit 3/min -j LOG --log-prefix "SFW2-IN-ILL-TARGET " --log-tcp-options --log-ip-options
-A INPUT -j DROP
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -i tap0 -j forward_int
-A FORWARD -i eth1 -j forward_ext
-A FORWARD -i wlan1 -j forward_ext
-A FORWARD -i wmaster0 -j forward_ext
-A FORWARD -m limit --limit 3/min -j LOG --log-prefix "SFW2-FWD-ILL-ROUTING " --log-tcp-options --log-ip-options
-A FORWARD -j DROP
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -m limit --limit 3/min -j LOG --log-prefix "SFW2-OUT-ERROR " --log-tcp-options --log-ip-options
*********************
**** прочее обрезано
*********************

нет никакого бардака. определены пять "функции" (отдельные цепочки правил для обработки трафика):

:forward_ext - [0:0]
:forward_int - [0:0]
:input_ext - [0:0]
:input_int - [0:0]
:reject_func - [0:0]

и весь траф поделён на "зоны":

int - "внутренний" - внутри локальной сети
ext - "внешний" - трафик из сетей, которые мы не контролируем (интернет и т.п.)

нетрудно заметить, что к "внутренней" зоне отнесён лишь один сетевой интерфейс - tap0. все остальные интерфейсы работают с "внешним" трафиком. нра? то-то...

для "краткого курса молодого бойца" необходимо и достаточно ознакомиться со следующим файлом:

> vim /usr/share/doc/packages/SuSEfirewall2/EXAMPLES

где дают исчерпывающие примеры по начальной конфигурации пакетного фильтра путём редактирования любимого файла "/etc/sysconfig/SuSEfirewall2". описывают восемь "сценариев":

1. Simple dialup
2. Small home network
3. Small home network with additional WLAN
4. Small company with external mail and web server
5. Company with IPsec tunnel to subsidiary
6. Company with web server in DMZ
7. Complex scenario
8. Laptop in private network but with additional public IP adresses

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

ISP предлагает тариф, позволяющий "качать" порно на скорости 768kbit/s, а вот "отдавать" трафик можно лишь на скорости в 256kbit/s. при этом возможна ситуация, когда при активной "отдаче" вы заметите "паралич" загружаемых файлов. лечение (при условии, что Вы на впн соединении с интерфейсом dsl0):

FW_HTB_TUNE_DEV="dsl0,250"

тут мы при помощи HTB режем исходящий трафик и резервируем 6kbit/s на "технические" нужды (пакеты TCP ACK или interactive SSH).

по умолчанию (для EXT зоны) зарезан broadcast и multicast. это может быть неудобно, поэтому внимательно смотрим на следующие переменные:

FW_ALLOW_FW_BROADCAST_EXT="no"
FW_ALLOW_FW_BROADCAST_INT="no"
FW_ALLOW_FW_BROADCAST_DMZ="no"
# ниже мы игнорируем логирование "дропнутых" ранее броадкастов
FW_IGNORE_FW_BROADCAST_EXT="yes"
FW_IGNORE_FW_BROADCAST_INT="yes"
FW_IGNORE_FW_BROADCAST_DMZ="yes"

для broadcast пакетов имеет смысл лишь открыть определённые порты, т.е. разрешить лишь выбранным приложениям принимать их. для multicast сперва надо ознакомиться с содержимым файла /etc/protocols, после чего уже разрешать определённые протоколы (например):

FW_SERVICES_EXT_IP="GRE MTP PIM"

и/или цепляем FW_CUSTOMRULES=файл_с_ручными_правками_правил, где рисуем:

iptables -A INPUT -j ACCEPT -d 224.0.0.0/24

тем самым разрешая "входящий" мультикаст на все протоколы/интерфейсы.

не будет лишним обратить внимание на:

FW_KERNEL_SECURITY="yes"

этот параметр включает некоторые скрытые защитные механизмы ядра (icmp_ignore_bogus_error_responses, icmp_echoreply_rate, icmp_destunreach_rate, icmp_paramprob_rate, icmp_timeexeed_rate, ip_local_port_range, log_martians, rp_filter, routing flush, bootp_relay, proxy_arp, secure_redirects, accept_source_route, icmp_echo_ignore_broadcasts, ipfrag_time)

если у вас большая и "шаловливая" локалка, то имеет смысл сделать:

FW_REJECT="no"
FW_REJECT_INT="no"

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

имеет смысл как страховку от тупого DDOS-а выставить

FW_ALLOW_FW_SOURCEQUENCH="no"

тут мы "вырезаем" атаку по icmp которая возможна, при следующем условии:

-A input_ext -p icmp -m icmp --icmp-type 4 -j ACCEPT

но теряем на оповещении о статусе соединения от ISP (ежели он соизволит оное раздать ессно, что далеко не факт...)

последняя стадия "Enlightenment-а"/(сиречь Просветления, Мудрости и Духовной Силы) - это прямое редактирование скрипта, ведающего формированием цепочек правил:

> sudo vim /sbin/SuSEfirewall2

тут уж "вольному - воля". кто смел духом - дерзайте (бэкап оригинала не забудьте сохранить на всякий).

Use SuSE, Luke!

пятница, 8 января 2010 г.

с новым гадом!

/*

-Мальцик, мальцик сам виноват!
/вопль судьи (после речи обвиняемого) на слушании дела по изнасилованию несовершеннолетнего.../

всех со всеми, всего, того же и туда же... надеюсь, что НГ удался на славу и вы можете по крупицам восстанавливать хронологию событий в ближайшем будущем. эта заметка планировалась как "последняя" в "цикле" про OBS, но, планы эт одно, а каменная жопа реальности - совсем другое дело. к тому же один мой друг скоро должен академическим языком (в отличие от аффтара) изложить свои мысли и наработки по OBS - должно быть весьма занимательно, пропиарю, не сумлевайтесь.

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

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

1. Какого хуя при локальной сборке пакета (rpmbuild -bb file.spec) всё путём, а OBS не может понять, что все зависимости заданы корректно?!


т.е. Вы, как пионэр, в "BuildRequires:" прописали всё, что надо (и даже больше), но сборка сыпется с сообщениями, что требуемого пакета в "сборочном окружении" нет (хотя лог показывает, что сей пакет корректно установлен!). в 99% случаев это жестокий "прикол" утилиты "/usr/bin/pkg-config", связанный с разблядовкой собранной программы на "-devel" и прочие "обычные" пакеты. OBS/(rpm в частности) самостоятельно отслеживает динамических линковку либ/бинарей и выставляет корректный "Requires:" (прямые зависимости пакета) для результата. но, это, сцуко, только для "non devel related" пакетов! соответственно команда:

> rpm -qR имя_пакета

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

%devel [-n новое_имя]
Group: чего-то там
Summary: И вас туда же (да-да-да, с Заглавной, мать её, буквы!)
Requires: %{name} = %{version}

то, что дано в квадратных скобках - [] - опционально. но пример выше лишь указывает, что при установке "devel" пакета в систему надо обязательно тащить и "основной пакет". "прямые" зависимости на "devel" пакеты OBS/rpm НЕ ОТСЛЕЖИВАЕТ! и у "pkg-config" (который работает исключительно с "devel" пакетами) сносит крышу, когда, допустим, требуется для сборки "curl", в "сборочное окружение" "libcurl" установлен, но, "/usr/lib/pkgconfig/libcurl.pc" файла-то НЕТ! ибо надо ручками, самому, в секцию "%devel" дорисовывать:

Requires: пакет1-devel пакет2-devel .....

т.е. риска для "хомячков" (которым spec-файл и в кошмарном сне не привидится) нет никакого, а вот "господа мейнтейнеры" огребают по полной (причём справедливо, по результатам теста на IQ).

как это ловить:

если "rpmbuild -bb[-ba] файл.spec" проходит на ура, а в OBS - жопа, то даём команду:

> osc build

в результате у нас в "/var/tmp/build-root/" будет сформировано окружение для сборки. можно сделать:

> sudo chroot /var/tmp/build-root/
> pkg-config --modversion имя_требуемого_пакета

если всё путём - то последняя команда выдаст версию установленного пакета, если нет - то вы хоть поймёте где накосячили. соответственно исправляем/(пинаем мейнтейнера) косяки.

очень полезно в данном случае вдумчиво ознакомиться с политикой Партии по обновлению пакетов, да!

2. Бля, всё собралось, репо не обновляется! Шозахуйня?!

сынок, не ссы, всё путём! одна из "фишек" OBS именно в том, что репо не будет обновлено до тех пор, пока не произойдёт удовлетворение ВСЕХ зависимых пакетов (хомячки в восторге писают гранулированным кипятком, их системы всегда будут в рабочем состоянии)! поясню. допустим мы вносим изменения в пакет А, от которого зависят пакеты B и С. репо не будет обновлено до тех пор, пока пакеты B и С не отрапортуют об успешной пересборке с ИЗМЕНИВШИМСЯ пакетом А. это вам не "ебиан" и не "федорино горе" - привыкайте заботиться о Пользователях, Господа хорошие! одним из следствий этого являются "большие" номера "релизов" в SLE/SUSE ("Release: №"), ибо значение этого поля состоит из двух цифр, разделённых точкой (.). первая цифирь - судит о том, как долго вы ебались со спеком, прежде чем он собрался в OBS, вторая - сколько раз перехуяривали зависимости к вашему пакету... кроме того, есть такая штука, как scheduler - это некий виртуальный администратор на раздачу заданий в OBS - он может быть завален работой по самое ни-ни и не стоит требовать в данном случае от него немедленного удовлетворения ваших низменных потребностей.

3. Ёб вашу мать! Пакет в порядке, какого хуя сборка упала?!

"shit happens, you know..." будьте готовы к тому, что некоторые "сборочные цеха" примут ваш заказ на исполнение и уйдут в запой немедленно. результат - "failed" статус для полностью корректного пакета по причине того, что виртуальный "XEN-build-host" наебнулся с ошибкой в собственной конфигурации. ничего страшного, кроме того, что рестартовать сборку надо вручную (оно само пока не способно себя же контролировать). хомячки этого даже не заметят.

4. А-а-а! Демоны! Демоны!

как правило подобные "эмоции" характерны для товарищей, не осиливших макросы при сборке rpm-пакетов. это особенно актуально для модулей пистона (python), жемчужины (perl) и прочих скриптовых языков. с версии openSUSE-11.2 идёт тенденция спихнуть это всё на "noarch" архитектуру (ибо скрипты одинаковы для всех), что порождает порой забавные ситуации (забавные - эт если со стороны смотреть...). совет тут один - "читайте книжки"...


5. Слышь, начальник, я это, свой OBS хочу намутить! Шо делать надо?

читать! здеся:

Build_Service всё и неоднократно...

*************

вскоре вместо этих "звёздочек" появится материал по работе с модулями ядра при Code11 или же ознакомьтесь с подробной документацией, пжалста....

кроме того могу проинформировать всех SLE/SUSE пользователей Enlightenment Desktop Shell об успешном апдейте репов на E-svn-20100103_r44860 и о сборке python-EFL "bindings" для openSUSE-11.2. там же вы можете найти кучу новых пакетов, типа виртуальной клавиатуры на EFL/elementary или же медиа-центра "Canola" (который пока не пашет должным образом, ибо EFL у нас дюже "новэнький", а "canola" хочет более старых версий...)

всем удачи и творческих узбеков в новом, 2010-ом, году!

*/

четверг, 24 декабря 2009 г.

всех с наступающим!

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


Waiting For A Weekend
Sleepy
Stardust

писалось "тупняком" - Burny RLC-60S(Китай) в Boss ME8(Japan) где добавлен реверок и "Presence" на эквалайзер в районе 50 (чтобы компенсировать хоть как-то старые струны) и arecord снимал с линейного входа.

пинайте!

P.S. не пугайтесь, если Ваши комменты не появятся сразу в блоге - из-за рекламы выставлен режим модерирования. удаляю только посты, нарушающие законодательство РФ. можете смело обкладывать аффтара буями - такие комменты пропущу :).

четверг, 10 декабря 2009 г.

мысли вслух...

/*

...хоронили тёщу, порвали два баяна...

эта заметка сделана "для себя", чтобы как-то упорядочить ощущения от "общения" с гитарами где-то с конца 80-х годов прошлого столетия. за это время поменялось многое, не сказать, что всё в лучшую сторону. радует одно: в 80-х (в СССР) не было широкого доступа ни к информации, ни к инструментам (электрогитарам в частности). ноне - раздолье. да только вот вместо отсутствия информации как таковой имеем хорошо развитые техники по "оболваниванию" покупателя. "правда" - она ведь разная, есть белая, а есть красная. возможно лично Вы не согласитесь со многими тезисами этой заметки - Ваше право. в данном случае автор - сторона абсолютно не заинтересованная "материально", далёкая от музыкальной индустрии и изредка лишь тренькающая пару аккордов перед сном.

терминология

сингл/single - датчик с одной катушкой (как правило) по размерам подходящий для "фендерообразных" гитар ("стратов" и "теле")

спарка/humbucker - датчик из двух синглов (двух индукционных катушек), катушки которых намотаны в противоположных направлениях (reverse wound reverse polarity) и подключены последовательно (возможны варианты коммутации). изобретён/(запатентован) товарищем Seth Lover-ом/(компанией Gibson).

быки - два опорных винта, вкручивающихся в деку и "держащих" на себе все "машинки" типа Floyd Rose.

винтаж/vintage - в идеале это довольно старый инструмент (от 30-40 лет возраста), дошедший до нас (до нашего времени) в оригинальной комплектации. рынок "винтажных" инструментов переполнен мошенниками, леваком, да и сама концепция "винтажа" не предполагает активного использования, что ведёт к ухудшению качества инструмента (дерево не раскрывает свой потенциал). но ощущения от игры на инструменте скажем 1952-го года выпуска весьма своеобразны (есть у меня один такой...)

MS[R]P - Manufacturer Selling [Retail] Price - цена продажи в розницу со склада производителя

ghostbuilder - человек/компания, кто делает (как правило) отличные инструменты на заказ для известных мастеров и вешает на них шильдик от другой компании (которая инструмент хорошо сделать не может, но контракт с гитаристом на продвижение своего бренда уже таки подписала...). за примерами далего идти не надо: Joe Despagne (AKA JEM) сделал для Steve Vai-я его личные "JEM" гитарёшки; PBC Guitars делает американский custom shop для Ibanez-а; Kramer вообще не имел своих производственных мощностей и собирал из комплектующих (их "Made in USA" делались в Канаде компанией "Godin Guitar Company", "именные" инструменты от Kramer как правило ваял Том Андерсон, остальной ширпотреб - ESP, после чего и выяснялось, что "есть, Петька, нюансы..."); Epiphone - хрен поймёшь кто там в Китае реально делает для "эпифона", проще перечислить, кто НЕ делает... и т.д. и т.п...

самопал - так называемый мастеровой инструмент, непонятно кем сделанный (как правило Российского или восточноевропейского производства). в СССР свято верили, что самопалы, сделанные на продажу - говно это одно, а вот самопалы, сделанные мастерами "для себя, для души" - это СОВСЕМ другое дело. утверждение сие абсолютно корректно и справедливо...

винт - деформация грифа гитары, при готорой накладка с ладами выгибается на подобие лопасти винта самолёта (гриф "перекручивает")

хто здесь?!

электрогитара с одной стороны очень отличается от акустической, но с другой - по сути в "электричке" работают те же физические принципы, что и в "классике": звук формируется колебанием струны, на которое влияет акустический резонанс, резонанс твёрдого тела - самой гитары, резонанс/параметры звукоснимателя/(-лей), каскады усилителя/(преда) и особенности самого "кабинента" - параметры динамиков, акустические свойства "колонки". это накладывается на акустику помещения и попадает к нам в уши. влияет всё - от техники звукоизвлечения/(качества струн) и до... поэтому бытует вполне справедливое замечание, что звук электрогитары - это 50% сам инструмент и 50% - "комбик" (усилитель + "кабинет" - колонка с динамиками).

на сегодня существует несколько базовых форм/(комплектаций) электрогитар, закладывающих основу звука:

1) "гибсонообразные" (для простоты включим сюда всю "линейку" - Les Paul, SG, Flying V, Explorer)

2) "фендерообразные" (strat, tele, и множесво моделей на ту же тему от других производителей)

3) "полуакустические" (ES175, ES335 и прочая к ним - коротко именуются как "джазовые")

утверждение: чем богаче/лучше чистый звук у инструмента (хорошие гармоники, обертона, слабое магнитное поле датчика не препятствует естественному колебанию струн, датчик подобран по тональным характеристикам к инструменту и не мешает ему) - тем больше вероятность, что с исказителем (типа "distortion") добиться хорошего результата будет проблематично. и наоборот. при этом электрогитара с хорошим чистым звуком вполне способна удивить "воткнувшись" в ламповый предусилитель (или в полностью ламповый усилитель и пред). суть этого есть элементарная физика. использование цифровых исказителей позволяет как-то сгладить эту ситуацию ценой "убийства" оригинального звука инструмента. ещё один путь - это тщательный подбор датчиков к инструменту по тональным/резонансным характеристикам, использование (экранированных) "спарок", использование комбинированных схем съёма звука (т.е. пьезодатчик + спарка/сингл), использование различных по характеристикам датчиков, расположенных у грифа (чистый звук) и у нижнего порожка (для работы с исказителем).

нетрудно заметить, что вариаций на тему "стратов" и "телеков" в разы больше, чем прочих. это обусловлено как агрессивной политикой компании Gibson по судебному преследованию "пиратов" (а-ля Fernandes, Tokai, Ibanez, PRS, etc.), так и тем, что с 1925-го года в Gibson работали люди, типа Ллойда Лоуэра (Lloyd Loar), который сперва рассчитывал модель гитары математически, а потом лишь делал макет. такой подход оставляет очень мало места для "дизайнерских" изысков, зато способствует формированию "классических канонов" (ES175). вполне возможно, что данный подход (опора на математическую модель) обусловил и хроническую болезнь всех "гибсонов" - черезвычайно слабый гриф с тенденцией поломки в районе головки. бытует мнение, что компании Gibson стоит принудительно ломать все грифы прям на фабрике до момента покраски, потом клеить/чинить (прочность склеенного шва выше прочности исходного материала в разы), красить и продавать. ибо трещины (различимы невооружённым глазом) в районе порожка (нулевой лад) и на стыке с декой в новых инструментах абсолютная норма (к сожалению...), особенно ежели длительная транспортировка имела счастье приключиться. абсолютно аналогичная картина характерна и для "пиратских подделок".

форма инструмента, материал (тип используемой древесины, пластика, и т.п.), тип (магнитного) датчика ("сингл"/"спарка"/"пьезо"), способ и место его/(датчика) крепления, материал и конструкция нижнего порожка, способ крепления струны, угол наклона головки грифа, материал и тип ладов - всё влияет на звук в той или иной степени. даже тип (лакового) покрытия (возможен вариант "масляного" покрытия - обычно делается конопляным маслом), хотя это и не так сильно выражено, как в акустических инструментах или в скрипках. если с формой всё понятно и без объяснений (физика твёрдого тела отлично умеет искать/рассчитывать резонансные точки любой конструкции), то очерк по свойствам пород древесины, особенностям заготовки дерева (имеет значение не только время заготовки, но и "место") даже начинать не буду. нюансов тут предостаточно. опишу лишь кратко технологию заготовки дерева для изготовления "массовых" электрогитар:

1) покупается на рынке необработанная кубатура (стволы)
2) идёт распил на заготовки
3) заготовки засовывают в "микроволновку", где они "текут" - удаляются смолы, излишняя влага и т.п.

на этом подготовительный этап заканчивается и идёт сама сборка

4) после "микроволновки" заготовки засовывают в CNC "шайтан-машину" и она мигом вырезает деки, грифы и/или накладки на гриф (Anderson, Baker, Gibson, PRS, Fender, ESP, Ibanez, Washburn, Yamahaha и многие другие используют CNC. термин "ручная работа"/"handmade" для электрогитар деградировал - его зачастую используют некорректно. мне известна лишь одна компания, которая с момента своего основания в начале 20-го века не изменила техпроцесс и делает всё "по-старинке" вручную. от и до. это Eastman. точка. абзац.)
5) схожий набор "шайтан-машин" набивает лады, красит и т.д. и т.п.

собственно инструмент готов. если производителя жаба душит раскошеливаться на CNC - используются аналоги оборудования, применяющегося в мебельной промышленности ("станки с ЧПУ" - хз как это по английски будет). нетрудно догадаться, что себестоимость конечной продукции при описанном выше методе изготовления крайне мала, различия в звуке могут появиться при использовании датчиков с различными (резонансными) характеристиками. при использовании качественных комплектующих и надлежащем контроле качества за производством электрогитара (конечный Продукт) вполне способна удовлетворить потребности подавляющего большинства покупателей. спустя лет эдак 20-30 (особенно если на электрогитаре будут регулярно играть) дерево окончательно "дозреет" и инструмент "раскроется" полностью (опять же, если есть чему "дозревать" и "раскрываться" - зачастую трава остаётся травой, редко когда трава становится дровами, ну а шанс, что дрова вырастут во что-то приличное балует отнюдь не многих). после чего (если вы не горите желанием продать инструмент "винтажникам") рекомендуется сделать глобальное ТО, поменять датчики/лады/фурнитуру и пользовать дальше в своё удовольствие.

почем опиум для народа?

перечитайте ещё раз пару абзацев вверху. теперь откройте любой ценник/("прайс-лист", мать его) музыкального магазина. пройдитесь по списку. подумайте. ещё раз подумайте. ваши выводы?

для полной картины примем в рассчёт формулу ценообразования для РФ:

Цена(РФ) = (цена Покупки + Цена Доставки) * 1.15 (Таможенная Пошлина) * 1.18 (НДС) + Таможенное Оформление (мизер) + Маржа Продавца

при этом "цена Покупки" != MSRP, она зачастую значительно ниже, ибо для рынка РФ идёт подсос остатков на складах ("на тебе Боже, чего нам не гоже!"). суммы дисконта могут быть весьма значительными. MSRP - это так называемая "каталожная" цена. MSRP всегда выше, чем "Street Price" (уличная цена). а "цена Покупки" вполне может быть как на уровне, так и ниже именно "уличной цены".

формула по расчёту цены продажи на единицу продукции для производителя:

MSRP = Прямые расходы (материалы, труд, электроенергия) + Косвенные расходы (складские) + Затраты на Маркетинг + Административные Затраты + Маржа производителя

соответственно коммерчески успешный производитель электрогитар имеет "Маржу Производителя", которая позволяет противостоять инфляции (как минимум!) и в цену инструмента закладываются маркетинговые (реклама - двигатель торговли) и прочие накладные расходы. MSRP призвана регулировать уровень цен у дилеров/розницы и зачастую не имеет никакого отношения к реальной закупочной цене крупного дилера.

теперь можно огласить список "Барыг-чемпионов" - компаний, цена на инструменты которых ОЧЕНЬ сильно завышена (т.е. покупка инструментов этих брэндов оправдана только если вам деньги больше девать некуда или если вы решили реализовать свою детскую мечту и надеетесь, что она избавит вас от каких-то комплексов). оглашать будем без привязки к российским реалиям/дилерам - тут всё более-менее прозрачно.

на почётном первом месте наблюдаем беспощадную борьбу двух "толстых корпоративных котиков" - Gibson и ESP. выделить абсолютного чемпиона довольно сложно, ибо если в случае с "гибсоном" где-то 2/3 от розничной цены приходится на брэнд (цена репутации == воздух в нашем случае, ибо ничем не оправдана. ещё ни разу не слышал, чтобы кто-то добился компенсаций явного брака по их Lifetime Warranty. да и зачастую кажется, что новые "гибсона" топором вырезали из заготовок, даже наждачки на "обточку" пожалели...), то ESP (у ESP и Schecter один хозяин кстати - Hisatake Shibuya) имеет производственные мощности исключительно в Азии (Корея, Индонезия) и в качестве "целевой" аудитории избрала поклонников "тяжёлого металла" - что позволяет не заморачиваться с "чистым" звуком и откровенно гнать лажу на рынок ("Distortion"/"Metal Zone" всех уравняют на выходе).

imho: сколько этих ESP/LTD/Cort/(other crap) палок не смотрел - убого, особенно на фоне Fernandes/Burny или на фоне "американцев" Jackson/Charvell. визуально и "на ощупь" качество у ESP/LTD приличное (инструменты более "вылизаны", чем Gibson, хотя скажем честно - надо ОЧЕНЬ постараться, чтобы сделать инструмент хуже, чем родной "гипсон": накладка с ладами выступает за поверхность грифа - фигня! сколы и трещины на грифе/деке - фигня! сам гриф "винтом" - какая мелочь! лады и нижний порожек не отшлифованы - не парит никого...), но... не звучат и всё тут. даже модели со сквозным грифом не радуют.

самое весёлое - Gibson постоянно на протяжении последних лет эдак *дцати находится в состоянии, близком к банкротству. в конце 80-х (в 90-х) компанию по сути "вытащил" Slash, игравший на инструментах Криса Деррига (Kris Derrig) (к компании Gibson эти инструменты не имели никакого отношения, кроме своей формы корпуса). также многие утверждают, что Slash использовал/использует инструменты от "Макса" (MAX/Peter Barant), являющиеся репликами модели "Les Paul".

P.S.: не спешите обвинять автора в предвзятости - он прекрасно знает о чём тут идёт речь, ибо являлся как обладателем ESP (Eclipse custom), так и является собственником "стандарта" (который и в Африке стандарт). розничная цена на новые инструменты даже с учётом нормы прибыли производителя/дилеров - завышена в разы.

второе место среди Барыг отдадим славной компании PRS, ибо:

1) с ценообразованием наблюдаются такие же "проблемы", как и у компании Gibson.
2) оформление накладки на гриф с "драконом" - дело рук Ларри Сифеля из компании "Пёрлворкс", Балтимор (Larry Siffel, Pearlworks, Baltimore) при помощи CNC.
3) все инструменты у PRS сделаны при помощи CNC машин - с какого интересно тогда такие цены?

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

информация к размышлению:
в Китае на распродаже можно легко и непринуждённо купить "Squier Stratocaster" за USD $28.00 . дальше - сами, если есть желание.

что в имени тебе моём?! ты зацени груди объём!

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

Gibson Guitar Corporation (Gibson USA):
Epiphone, Baldwin, Garrison, Maestro, Wurlitzer, Tobias, Valley Arts Guitar, Slingerland, MaGIC, Gibson Amphitheatre, Hamilton, Chickering, Kramer, Steinberger, Electar, Aeolian, etc.

Fender Musical Instruments Corporation (FMIC):
Squier, Gretsch, Jackson Guitars, Charvel, Hamer, Tacoma, Guild Guitar Company, SWR, Sound Corporation, Brand X, Orpheum, Olympia, Heartfield, etc.

Washburn прикупил Parker-а и вроде как пользует те же корейские производственные мощности, что и ESP/Schecter/Cort, альянсы японских Gakki довольно "извилисты" и где-то 60% - 70% всего рынка электрогитар делает Samick.

окромя ентих "котиков" вовсю процветает ghostbuild (см. терминологию). эта каша и кутерьма низводит понятие "бренд" в ноль. можно найти за копейки какого-нибуть "китайца" с (!относительно!) хорошим деревом и нормальным качеством изготовления, попотеть над подбором датчиков и результат уделает боком легко и непринуждённо любой аналогичный/(схожий по типу) серийный ширпотреб (включая линейку "made in USA"). можно поймать момент завоза Burny, озаботиться наличием лампового комбика, перебрать всё и выбрать инструмент, который по самые гланды будет засаживать "оригинальным гипсонам" и "гипсонообразным" сородичам (толика везения таки должна присутствовать, но задача вполне решаема). ничего нового в данной ситуации нет. точно так же дело обстояло и в конце 70-х, когда Edward Van Halen за $130 USD прикупил "запчасти" (гриф и деку) у компании "Boogie Bodies", самостоятельно покрасил деку в белый цвет из аэрозольного баллончика и магнитной плёнкой наколбасил чёрные полоски. после чего на этой "гитаре" был записан альбомчик "Van Halen I". а посему - "не имей амати, а умей играти!"

ищите да обрящете...

допустим, что возможности позволяют и хочется чего-то особенного. imho - можно посмотреть в сторону мелкосерийного производства с элементами ручной работы: Baker, Quicksilver или присмотреться к Eastman - вряд ли пожалеете. не помешает побродить по сайтику г-на Романа, только учитывайте, что человек болен здоровым американским шовинизмом (он - патриот своей страны), поэтому пропускайте все его статьи через призму здравого смысла. с доставкой в РФ и растаможкой проблем нет никаких. сравнить цены можно с сетью Sweetwater. ориентироваться на Ebay не советую - там жулики и нет никакой гарантии, что вы покупаете именно то, что и ожидаете купить. впрочем полностью игнорировать Ebay не стоит. относитесь к нему как к справочному бюро. это некий индикатор упоминавшейся выше "уличной цены" на оборудование. не стоит забывать об "особенностях расейского рынка/менталитета", особенно если вы планируете перепродать инструмент через некоторое время. тогда на первый план выходит задача "сохранения стоимости". какие брэнды в этой стране не теряют в цене - вопрос интересный. рискну предположить, что либо те, которые и так стоят неприлично дёшево (до $100 USD), либо мелкосерийка с бирками "Made in Japan/USA". на китайцев/корейцев рассчитывать сложно - только в привязке к какому-либо брэнду. именно поэтому в заметке упомянута несколько раз компания Fernandes - она (помимо великолепной репутации/истории) разработала прекрасную "электрику" - sustainer и не менее прекрасные датчики для своих гитар. современные Ibanez-ы разочаровали. перенос производства/(субконтракт) в Корею на пользу звуку и качеству не пошёл. по мне так их линейка с 80-х и до начала 90-х (а то и до середины) загнёт и вложит аналогичным современным моделям по самое "не хочу". мнение это субъективно, если ваши ощущения говорят об обратном - спорить не стану. на вкус и цвет. "китаёзы" прогрессируют день ото дня. их подводят дерьмовая фурнитура/комплектующие и (!временное!) отсутствие хороших датчиков в их ценовом диапазоне. что ни говори, но себестоимость хорошего (действительно хорошего) электромагнитного датчика для китайского "no name" сегодня получается "как крыло самолёта" (относительно себестоимости остальной гитары), что есть серьёзное (!временное!) затруднение.

утро красит нежным цветом...

прогресс наметился и в нашей стране. пусть в свободной продаже и не появилась марка "Red Bear"/"Novik" (а хотелось бы, может спроса нет? странно), зато "выстрелил" г-н Ерасов. неплохо найти дилера, кто имеет несколько "комбиков"/усилителей и начать прослушивание с моделей, не отягчённых избытком тумблеров и крутилочек. ламповый усилитель должен давать надёжную основу звука. есть опция лампового перегруза - отлично. нет - не страшно. вся обработка - от задержек/реверберации и до ... - дело десятое.

г-н Шамрай продолжает прокладывать тернистый путь к звёздам. большому кораблю - большая дорога. удачи, творческих узбеков и самые наилучшие от чистого сердца. как звучит его нонешний custom shop - не знаю. выглядит многообещающе. первые модели под брэндом "Russtone" ("Shamray" отделился в 1998-ом согласно официальной версии) - это "спаси и сохрани мя, грешного..." (AFAIR). сейчас - совсем другое дело. не стыдно людям показать. зачем Russtone занимается галиматьёй с размещением заказов в Индонезии - не понятно, ну да это не моё дело. дай Бог памяти, но то ли "рустон", то ли "шамрай" (то ли оба) в "детстве" отличался слабым грифом. через некоторое непродолжительное время гриф вело "винтом". надеюсь, что подобное осталось лишь в воспоминаниях.

finita la comedia...

на звкуску - тёплые и добрые слова в адрес Peavey - за отличные комбики (как бывший владелец "50 Classic 2x12' Celestion" и бывший владелец "51/50 head"), нормальные цены и высокое качество продукции (у них и гитарёшки очень даже приятные во всех отношениях). про остальных "котиков" (или про "толстых корпоративных котиков") пусть расскажет кто другой - сам пока не сталкивался вплотную. ежели тема интересна - могу накатать чуток отсебятины по ламповым усилителям, датчикам и чему-нибудь ещё.

добро пожаловаться!
удачи...

*/

среда, 25 ноября 2009 г.

Заебали пидарасы...

уважаемые Господа,

прошу помощи. есть некие гандоны, что постят в комментариях рекламу, нарушающую законодательство РФ. как с ними бороться? запрещать постинг комментов для всех - не хочется. закрывать глаза на нарушение законодательства - становишься соучастником. с удовольствием рассмотрю все идеи. в идеале было бы изложение способов связи с google (поскольку blogspot.com им и принадлежит) с последующими санкциями. если наши правоохранительные органы заинтересованы в участии - не вопрос. вопрос лишь как это всё организовать без излишней суеты.

спасибо.

вторник, 24 ноября 2009 г.

SOAD-Linux-3.3.1 is out

/*

Ladies and Gents,

the new SOAD-Linux based on openSUSE-11.2 is out:

Download page
List of installed packages
README
Version 3.3.1 download link

It's a hybrid "iso" image capable to run in VM (qemu, etc.), to be burned on CD/DVD or to be "dumped" to USB-sticks. We're providing the extended set of a drivers for devices/filesystems along with the extended set of WM's for your convenience. Please be aware that we can not assure the correct behavior of "Ecomorph" despite on installed NVIDIA driver (you need to build from official "NVIDIA*.run" sources to avoid "White screen" compiz bug for a modern NVIDIA GPU's). Also due to a "lzma+squashfs" compression method we can't provide the small "xdelta" patches yet.

You're always welcome to leave your comments here.

Have fun!

***********************************************

Дамы и Господа,

предлагаем Вашему вниманию новую версию SOAD-Linux, основанную на openSUSE-11.2:

Страница загрузки
Список предустановленных пакетов
README
Скачать образ

С удовольствием учтём Ваши пожелания при подготовке следующих релизов.

Удачи!

*/