<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Чудо{вищные} заметки &#187; DailyWTF</title>
	<atom:link href="http://miracle.rpz.name/category/dailywtf/feed/" rel="self" type="application/rss+xml" />
	<link>http://miracle.rpz.name</link>
	<description>Sorry for my terrible english. My native language is PHP.</description>
	<lastBuildDate>Thu, 12 Jan 2012 20:42:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19719</generator>
		<item>
		<title>Failed to initialize the NVIDIA GPU</title>
		<link>http://miracle.rpz.name/2012/01/12/failed-to-initialize-the-nvidia-gpu/</link>
		<comments>http://miracle.rpz.name/2012/01/12/failed-to-initialize-the-nvidia-gpu/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 22:44:30 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nvidia]]></category>
		<category><![CDATA[slackware]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=621</guid>
		<description><![CDATA[После обновления ядра до версии 2.6.38.7 система стала работать нестабильно, переодически зависала на продолжительное время, решил не откатываться на предыдущее, не ждать милости Патрика, а собрать более свежее ядро руками (вспомнить молодость, ага). Процесс прошёл на удивление быстро: #"инструкция" cd /usr/src/ wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.1.8.tar.bz2 tar xfj linux-3.1.8.tar.bz2 rm -rf linux ln -s /usr/src/linux-3.1.8 /usr/src/linux cd /usr/src/linux [...]]]></description>
			<content:encoded><![CDATA[<p>После обновления ядра до версии 2.6.38.7 система стала работать нестабильно, переодически зависала на продолжительное время, решил не откатываться на предыдущее, не ждать милости <a href="http://slackware.com/about/">Патрика</a>, а собрать более свежее ядро руками (вспомнить молодость, ага).</p>
<p>Процесс прошёл на удивление быстро:</p>
<pre class="c">
#"инструкция"
cd /usr/src/
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.1.8.tar.bz2
tar xfj linux-3.1.8.tar.bz2
rm -rf linux
ln -s /usr/src/linux-3.1.8 /usr/src/linux
cd /usr/src/linux
zcat /proc/config.gz > .config
make oldnoconfig
make menuconfig
make -j3 all
make modules_install
make install
cd /etc/rc.d
mv /boot/vmlinuz /boot/vmlinuz-3.1.8
ln -s /boot/vmlinuz-3.1.8 /boot/vmlinuz
mv /boot/System.map /boot/System.map-3.1.8
ln -s /boot/System.map-3.1.8 /boot/System.map
cp /usr/src/linux/.config /boot/config-3.1.8
rm /boot/config
ln -s /boot/config-3.1.8 /boot/config
mcedit lilo.conf
lilo
reboot
</pre>
<p>&#8230;а главное безболезненно &#8211; система загрузилась сразу.</p>
<p> Настал черёд пересобрать драйвера <strong>nvidia</strong>. В наличии имелся инсталлятор версии <strong>275.09</strong> &#8211; он работать отказался сославшись на то, что не может найти исходники ядра. Хорошо &#8211; скачал последнюю на данный момент сборку &#8211; <strong>290.10</strong>, которая установилась без проблем. Но не тут-то было &#8211; xOrg не запустился ругнувшись:</p>
<pre class="c">
NVIDIA: could not open the device file /dev/nvidia0 (Input/output error).
(EE) NVIDIA(0): Failed to initialize the NVIDIA GPU at PCI:1:0:0.  Please
(EE) NVIDIA(0):     check your system's kernel log for additional error
(EE) NVIDIA(0):     messages and refer to Chapter 8: Common Problems in the
(EE) NVIDIA(0):     README for additional information.
(EE) NVIDIA(0): Failed to initialize the NVIDIA graphics device
</pre>
<p>И пошло-поехало&#8230; </p>
<ul>
<li>откатился до <strong>285.05.09</strong> &#8211; тоже самое</li>
<li>последовательно перепробовал всевозможные опции ядру, которые удалось найти в &#8220;этих ваших интернетах&#8221; и <em>noacpi</em> и <em><a href="https://wiki.archlinux.org/index.php/NVIDIA#.27.2Fdev.2Fnvidia0.27_Input.2FOutput_error">pci=biosirq</a></em> и <em><a href="https://bbs.archlinux.org/viewtopic.php?pid=1018357#p1018357">vmalloc=XXXm</a></em> &#8211; без результата.</li>
<li>перепробовал море разных опций модулю nvidia &#8211; без толку</li>
</ul>
<p>И вот надежда уже погибла, <strong>xOrg</strong> работает через убогий <strong>nouveau</strong> и остаётся лишь <strike>&#8220;<a href="https://bbs.archlinux.org/viewtopic.php?pid=1021966#p1021966">установить бубунту</a>&#8220;</strike> загрузить старое ядро (и собрать ему старые драйвера nvidia). Поудалял кучу старых инсталляторов и решил <a href="http://www.nvidia.com/object/linux_display_archive.html">скачать</a> (раз пошла такая пьянка) <strong>275.28</strong> и на всякий попробовал их собрать к свежему ядру. И что удивительно &#8211; получилось! всё заработало, на первый взгляд система стала шустрее, chrome с полусотней открытых табов больше не вводит иксы в транс. На днях попробую повторить операцию &#8220;хватить тупить&#8221; на другой машине</p>
<p>&#8220;Такой день&#8221; (ц)</p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2012/01/12/failed-to-initialize-the-nvidia-gpu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>zoom-слайдер на клавиатуре в linux</title>
		<link>http://miracle.rpz.name/2012/01/11/zoom-slider-on-microsoft-keyboard-and-xorg/</link>
		<comments>http://miracle.rpz.name/2012/01/11/zoom-slider-on-microsoft-keyboard-and-xorg/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 20:56:10 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[slackware]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=602</guid>
		<description><![CDATA[После прочтения заметки о &#8220;странных кнопках ноутбука&#8221; сразу вспомнил о неработающем zoom-слайдере на клавиатуре Microsoft Microsoft® Digital Media Keyboard. Немедленно с помощью showkeys выяснил keycodes событий &#8220;слайдер вверх&#8221; &#8211; 418, слайдер вниз &#8211; 419. Перечитав ещё несколько раз заметку понял что мне она больше не поможет &#8211; xOrg в принципе не переваривает keycodes выше 255, [...]]]></description>
			<content:encoded><![CDATA[<p>После прочтения заметки о &#8220;<a href="http://linsovet.com/xorg-use-non-standard-keys">странных кнопках ноутбука</a>&#8221; сразу вспомнил о неработающем zoom-слайдере на клавиатуре <a href="http://autocatalog.nix.ru/autocatalog/keyboards_microsoft/Microsoft_Digital_Media_Keyboard_ver.1.0a_Black_Ergo_USB_105_15_Zoom_Slider_DB800012_31415.html" title="конечно же это реклама, а не ссылка на страницу с фотографией клавиатуры" target="_blank"> Microsoft Microsoft® Digital Media Keyboard</a>. Немедленно с помощью <strong>showkeys</strong> выяснил keycodes событий &#8220;слайдер вверх&#8221; &#8211; 418, слайдер вниз &#8211; 419. Перечитав ещё несколько раз заметку понял что мне она больше не поможет &#8211; <strong>xOrg</strong> в принципе не переваривает keycodes выше 255, ситуация казалось бы безвыходная, но оказалось не совсем, нашлось решение в виде <a href="http://www.bedroomlan.org/projects/evrouter">evrouter</a> &#8211; программы, которая (как видно из названия) &#8220;пробрасывает&#8221; события одних устройств на другие трансформируя согласно правилам описанным в конфигурационном файле.</p>
<p>После непродолжительных мытарств родился следующий <strong>~/.evrouterrc</strong>:</p>
<pre class="c">
#при нажатии на slider up на клавиатуре - сгенерируй событие "mousewheelup"
"Microsoft Microsoft® Digital Media Keyboard" "/dev/input/event.*" none key/418 "XButton/4"
#при нажатии на slider down на клавиатуре - сгенерируй событие "mousewheeldown
"Microsoft Microsoft® Digital Media Keyboard" "/dev/input/event.*" none key/419 "XButton/5"
</pre>
<p>Для получения необходимых прав в /dev/input в <strong>rc.local</strong> была добавлена строка: </p>
<pre class="c">
# внимание - используйте на свой страх и риск! Слабо представляю какие подсистемы затронет такое наглое вмешательство в /dev
chgrp users /dev/input/event*
</pre>
<p>В <strong>~/.kde/Autostart</strong> добавлен запуск <strong>/usr/bin/evrouter /dev/input/event*</strong></p>
<blockquote><p>Вы можете запускать evrouter через sudo (и не трогать права на /dev), но подозреваю, что с автозапуском могут быть проблемы&#8230;</p></blockquote>
<p>После чего обнаружил что скроллинг работает, да совсем не так, как ожидалось &#8211; одно нажатие на слайдер прогручивает активное окно на три строки (как и указано в настройках KDE), но хотелось-то чтобы прокручивалось до тех пор пока слайдер не отпустишь&#8230; Снова поиск и снова решение <span id="more-602"></span>- <a href="https://gist.github.com/754395">патч evrouter, который добавляет повторения &#8220;мышиных&#8221; событий</a>. Качаю, накладываю, пересобираю <strong>evrouter</strong>, меняю команду запуска на <strong>evrouter -r /dev/input/event*</strong> и получаю желанное. </p>
<p>Напоследок добавляю в rc.local_shutdown :</p>
<pre class="c">
/usr/bin/evrouter -q
rm -f /tmp/.evrouter*
</pre>
<p>Спустя семь лет после приобретения клавиатуры заработал &#8220;ползунок&#8221;, пройдут десятилетия и возможно удастся завести &#8220;фаворитные&#8221; пять кнопок <img src='http://miracle.rpz.name/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p>&#8220;Такой день&#8221; (ц)</p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2012/01/11/zoom-slider-on-microsoft-keyboard-and-xorg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>subversion как система резервного копирования</title>
		<link>http://miracle.rpz.name/2011/12/08/subversion-as-a-backup-service/</link>
		<comments>http://miracle.rpz.name/2011/12/08/subversion-as-a-backup-service/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 07:00:43 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[win32]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=577</guid>
		<description><![CDATA[Понадобилось легко и непринуждённо иметь резервную копию директории с windows-сервера. *** Первой попыткой было использование wget &#8211;mirror с ftp-сервером: #!/bin/sh -e unset url="ftp://server.tld/path/to/dir/" backup="/tmp/local-copy" wget --no-cache -nH -c -t0 --mirror -P$backup -i- &#60;&#60;EOF $url/subfolder1 $url/subfolder2 $url/subfolderN EOF Первоначальный бэкап вроде как получился, но последующие попытки синхронизироваться ничем не завершались &#8211; wget уходил в себя от [...]]]></description>
			<content:encoded><![CDATA[<p>Понадобилось легко и непринуждённо иметь резервную копию директории с windows-сервера.</p>
<p align="center">***</p>
<p>Первой попыткой было использование <strong>wget &#8211;mirror</strong> с ftp-сервером:</p>
<pre class="php">
#!/bin/sh -e
unset
url="ftp://server.tld/path/to/dir/"
backup="/tmp/local-copy"

wget --no-cache -nH -c -t0 --mirror -P$backup -i- &lt;&lt;EOF
        $url/subfolder1
        $url/subfolder2
        $url/subfolderN
EOF
</pre>
<p> Первоначальный бэкап вроде как получился, но последующие попытки синхронизироваться ничем не завершались &#8211; wget уходил в себя от бесконечных потуг скачать некоторые файлы, размер которых не сходился с ожидаемым.<br />
Вина ли тут ftp-сервера или проблема во wget разбираться не захотелось. Кроме того обнаружилось, что файлы с кириллицей в названии в процессе перекачки потеряли часть былых имён. <strong>wget</strong> вычёркиваем.</p>
<p align="center">***</p>
<p>
Попытался найти аналог rsync для windows, первые несколько страниц поиска содержали какие-то gui-приложения, форумы предлагали использовать cygwin и массу других тяжеловесных комбайнов&#8230;<br />
<br />
В итоге всё решилось импортом директории в svn и добавлением в &#8220;Scheduled tasks&#8221; следующего bat-файла:</p>
<pre class="php">
cd \path\to\dir
for /f "tokens=2*" %%i in ('\path\to\bin\svn status . ^| find "?"') do \path\to\bin\svn add "%%i"
for /f "tokens=2*" %%i in ('\path\to\bin\svn status . ^| find "!"') do \path\to\bin\svn delete "%%i"
\path\to\bin\svn commit -m "Automatic backup" .
</pre>
<p align="center">***</p>
<p>Дописывая эти строки подумалось &#8211; а ведь можно было использовать dropbox (asus webstorage, ubuntu one и т.п.)&#8230; Ну да ладно &#8211; велосипед собранный своими руками милее (и прозрачнее в работе).</p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2011/12/08/subversion-as-a-backup-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Переезды.</title>
		<link>http://miracle.rpz.name/2011/11/05/movements/</link>
		<comments>http://miracle.rpz.name/2011/11/05/movements/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 11:27:49 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[advertise]]></category>
		<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[чOрный PR]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=564</guid>
		<description><![CDATA[Переездов было несколько, конечно они все виртуальные, но нервотрёпка была &#8220;прям как настоящая&#8221;. *** Первым делом переехали доменные имена от webst.ru. В далёком каком-то там году в поисках варианта &#8220;подешевле&#8221; я наткнулся на упомянутого регистратора. Удивили крайне низкие цены на фоне других предложений и отсутствие всяческой бумажной волокиты (которую я многократно наблюдал например в nic.ru). [...]]]></description>
			<content:encoded><![CDATA[<p>Переездов было несколько, конечно они все виртуальные, но нервотрёпка была &#8220;прям как настоящая&#8221;.</p>
<p style="text-align: center;">***</p>
<p>Первым делом переехали доменные имена от webst.ru.</p>
<p>В далёком каком-то там году в поисках варианта &#8220;подешевле&#8221; я наткнулся на упомянутого регистратора. Удивили крайне низкие цены на фоне других предложений и отсутствие всяческой бумажной волокиты (которую я многократно наблюдал например в nic.ru). Сумма была совсем небольшая и я рискнул ей, зарегистрировав домен rpz.name на один год. И процесс на удивление быстро прошёл &mdash; буквально несколько минут и я стал владельцем собственного домена. Таким образом система заработала моё доверие и в последствии я регистрировал, редактировал, переносил множество других доменов и почти не знал бед. Спустя несколько лет я расстался с windows и как следствие &#8211; с IE, в котором была возможна моментальная оплата счетов в системе webmoney transfer. Тут появились первые проблемы &#8211; один из моих доменов зарегистрирован в конце января. Каждый год в новогодние каникулы была традиция &#8211; продлить домен. Тот год был не исключением. Перевёл деньги &#8211; был честно предупреждён, что &#8220;неавтоматическом режиме&#8221; деньги идут ДО 48 часов. Время было. Волнение появилось к середине месяца &#8211; исправно поступали уведомления о том что срок регистрации домена истекает &#8220;вот-вот&#8221;. Попытки быстро связаться с Артуром (владельцем проекта webst.ru) ни к чему не привели. В конце-концов эта история закончилась благополучно, деньги зачислились, домен продлился и вроде бы даже принеслись извинения. С тех пор это стало нормой, но в общем-то не очень сильно напрягало &#8211; несколько раз в год за пару месяцев до истечения срока домена я переводил деньги и спустя какой-то терпимый промежуток времени деньги поступали по назначению.<br />
В этом году я решил поступить иначе и решил продлить их сразу на три-четыре года, т.к. один по недосмотру уже потерял. Начать решил как раз с rpz.name &#8211; его срок выходил буквально &#8220;на днях&#8221;. Получив очередное предупреждение о том, что через 60 дней срок регистрации истечёт, я выписал счёт и перевёл требуемую сумму (около 1000 руб.). Я разумеется был готов к ежегодным &#8220;качелям&#8221; и не волновался первые недели три. Затем оставил тикет с системе поддержки &#8211; &#8220;когда мол деньги-то приедут, а?&#8221;. Спустя неделю обнаружил что тикет в состоянии &#8220;не обработан&#8221;. Написал SMS &#8211; доставлено, но осталось без ответа. И вот только после всего этого я посетил webmoney &#8211; писать на WMID. Там я и обнаружил, что в арбитраже претензий к Каримову было десятка полтора и все одного содержания &#8211; деньги перевёл н-цать дней назад, с тех пор ни ответа, ни привета. Кто-то жаловался, что вовсе потеряли домены, несмотря на то, что всё оплатили.</p>
<p>Я написал на WMID о своём волнении и снова забыл на несколько дней об этой &#8220;проблеме&#8221;. Потом оставил претензию в арбитраже. Через неделю обнаружил, что претензии моей просто нет в системе&#8230; отправил её повторно. А спустя ещё несколько дней стал жаловаться в арбитраж. Тут уже выяснилось что первая жалоба была неполной (хотя вторая была копи-пастом первой), а &#8220;судится&#8221; может только персонально аттестованный участник системы (забавная социальная математика &#8211; вернуть надо $30, но для это надо потратится на аттестат порядка $15-$20 реальных денег, и полдня рабочего времени). Пока я решался &#8211; бросить эту затею или &#8220;пойти на принцип&#8221;, домен потихоньку &#8220;протухал&#8221;, поэтому было решено &#8211; перенести домен к регистратору, к который не пропадёт так же как предыдущий, у которого есть настоящие офисы, в которых сидят настоящие, живые люди, количеством больше одного. В общем захотелось в случае проблем найти кого-то кому можно будет посмотреть в глаза и сказать что-нибудь непечатное. Первым на глаза попался reg.ru (его рекомендует webmoney на свои страницах). Беглый осмотр интернет-отзывов показал, что &#8220;этим людям можно верить&#8221;, и я зарегистрировался, оплатил продление и инициировал перенос домена к ним. Тут как водится тоже всё пошло не так, как хотелось бы, потребовалось около трёх недель переписки сначала с менеджерами reg.ru &#8211; они искренне наверное хотели помочь, отвечали на все мои письма и заявки, но в итоге отписались следующим: </p>
<blockquote><p>
К сожалению, пока ответ от Регистратора мы так и не получили.<br />
В случае, если мы не получим ответа, то можно будет только отменить заявку и вернуть Вам средства.
</p></blockquote>
<p>Тогда я сам связался с Регистратором (некий 1API GmbH), объяснил ситуацию на &#8220;ломанном врунглише&#8221; и через несколько дней мне принесли извинения, домен перенесли.<br />
Всё закончилось благополучно, спустя некоторое время Артур вернул (молча) веб-мани, на которые я перенёс (не без приключений) остальные домены.</p>
<p>На сайте webst по сей день красуются зазывающий текст &#8220;почему вы должны&#8221;, ни одной новости или любой другой пометки о том, что услуги предоставляются семи по себе, никакой поддержки вам не окажут и будут вас игнорировать так долго, как только возможно. Никаких объяснений и разъяснений. Такой вот ебизнес по-русски.</p>
<blockquote><p>В текущей рабочей деятельности последнее время всё чаще всплывают конторы, которые хотят построить &#8220;автоматический бизнес&#8221; &#8211; где клиент приходит на сайт, оплачивает и получает услугу от её поставщика, а контора получает свою маржу (сидя на пятой точке, не прилагая никаких усилий) . С ужасом (и интересом) представляю как система в какой-то момент &#8220;даёт сбой&#8221;, клиент остаётся без денег (а это суммы существенно больше тридцати долларов) и без какой-либо надежды связаться с &#8220;конторой&#8221;.<br />
Насколько большую сумму вы готовы оплатить &#8220;вперёд&#8221; через интернет за реальный товар/услугу который увидите (может быть) после оплаты по сути анонимному продавцу, судить о котором вы можете только по анонимным же отзывам?
</p></blockquote>
<p style="text-align: center;">***</p>
<p>Следующим &#8220;переездом&#8221; был перенос виртуального сервера, на котором крутятся мои проектики. 4-5 лет назад, когда shared-хостинг стал совсем поганым, а ютиться на серверах работодателя стало совсем &#8220;нескромно&#8221; я присмотрелся к входившим тогда в моду VDS/VPS (честное слово не знаю в чём отличия этих аббревиатур). Первый свой сервер я приобрёл в virtualserver.ru у своих давних виртуальных знакомых. И несколько лет почти не знал бед, играло ли роль наше знакомство или действительно &#8220;наши клиенты самые лучшие&#8221; как было написано в топике irc-канала на котором можно было застать поддержку, но проблем действительно не было &#8211; они все решались очень быстро, а главное &#8211; они решались. Уйти к 1gb.ru меня побудил более удобный способ оплаты &#8211; за virtualserver можно оплатить только веб-манями. В автоматическом режиме &#8211; только wmz. В какой-то момент источник wmz пересох и перед каждой оплатой приходилось посуетиться в &#8220;обменниках&#8221; или &#8220;упрашивать&#8221; принять wmr. В 1gb видимо только появились VDS на базе Hyper-V, обещали честный &#8220;делёж&#8221; ресурсов, полный доступ (вплоть до перезагрузки). И, признаюсь, всё так и было некоторое время, потом начались проблемы с диском (да, nickname, ты меня предупреждал <img src='http://miracle.rpz.name/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) Пару раз, после жалоб в чат поддержки, машину переносили между физическими серверами и на какое-то время это спасало. Но последние несколько месяцев всё стало просто отвратительно, сервер мог быть запросто недоступен по два-три часа в сутки. Примечателен ответ поддержки на жалобу о недоступности сервера &#8211; &#8220;запустили создание большого количества машин, к утру нагрузка должна нормализоваться&#8221;, &#8220;разумеется&#8221; даже спустя сутки ничего не изменилось, но поддержка дипломатично промолчала&#8230; Последней каплей было &#8220;прокачивание&#8221; через этот сервер двухсотмегабайтного видео-файла. Загрузка заняла около 6 часов, а скачивание около 12&#8230;  Почитав обзоры и отзывы разных хостинговых площадок я пришёл к неутешительному для российских компаний выводу &#8211; &#8220;надо валить&#8221;. Большая часть претензий пользователей в основном касается того, что наши &#8220;жадины&#8221; продают ресурсы дважды, а затем либо просто &#8220;вымогают&#8221; деньги выталкивая клиентов на более дорогие тарифные планы (хотя зачастую переход не помогает), либо просто не отвечают. На этот раз я доверился зарубежной <a rel="nofollow" href="http://www.linode.com/?r=27e1bc9e8911895648056298ddedbcac4ef19fd2" title="реферальная ссылка на linode">linode.com</a>, о которых не нашёл сильно негативных отзывов, но нашёл море позитивных. В отличии от многих других компаний тут не было &#8220;тестового периода&#8221;, всё сразу &#8220;серьёзно&#8221; &#8211; оплатил месяц виртуальной visa-картой, которую сделал в qiwi.ru, после чего получил доступ в панель управления, но это первая компания в которой мне предложили создать машину со slackware на борту, а ещё дали выбрать дата-центр в котором она будет размещена. С поддержкой мне пока столнуться не довелось, всё работает исправно, быстро, страница блога, например, теперь открывается <span title="на 1gb в последнее время так и было...">меньше чем за две минуты!</a>. Панель управления простая и очень функциональная. </p>
<p>Буду надеяться, что ситуация не изменится и на некоторое продолжительное время можно будет &#8220;осесть на обжитом месте&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2011/11/05/movements/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Встаньте в очередь!</title>
		<link>http://miracle.rpz.name/2011/04/23/sound-card-index/</link>
		<comments>http://miracle.rpz.name/2011/04/23/sound-card-index/#comments</comments>
		<pubDate>Sat, 23 Apr 2011 13:27:57 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=466</guid>
		<description><![CDATA[Встроенная камера ноутбука уже давненько определялась &#34;через раз&#34;, был выработан целый шаманский обряд для её включения, но видимо я чем-то прогневил Великого Байта и последние месяцы камера совсем, что называется &#34;отвалилась&#34;. Поэтому &#34;случайно&#34; посетив большой магазин с кучей техники, &#34;случайно&#34; же приобрёл usb-вебкамеру. Вопреки опасениям камера определилась и заработала (в skype) сразу же, без каких-либо [...]]]></description>
			<content:encoded><![CDATA[<p>Встроенная камера ноутбука уже давненько определялась &quot;через раз&quot;, был выработан целый шаманский обряд для её включения, но видимо я чем-то прогневил Великого Байта и последние месяцы камера совсем, что называется &quot;отвалилась&quot;. Поэтому &quot;случайно&quot; посетив большой магазин с кучей техники, &quot;случайно&quot; же приобрёл usb-вебкамеру. Вопреки опасениям камера определилась и заработала (в skype) сразу же, без каких-либо танцев с драйверами, настройками, поиском anus-ware решений и т.п. дребеденью непременно сопровождающей подключение &laquo;любого&raquo; периферийного устройства в linux. Это не может не радовать!</p>
<p>После перезагрузки вдруг перестал работать звук в flash. Недлительное гугление рассказало о какой-то <em>libflashsupport</em>, которая немедленно поможет справиться с недугом, но внутренний голос пробасил что-то вроде &laquo;ты же не менял никаких настроек уже несколько недель&raquo;. Что характерно &#8211; звук в amarok, vlc и skype работал исправно, но было замечено что в kmix первой закладкой было устройство под названием &quot;<strong>USB Device 0x46d:0&#215;825</strong>&quot; вместо  обычной &quot;<strong>HDA Intel</strong>&quot;, которая стала второй. Запустил <strong>alsamixer</strong> &#8211; и точно, устройством по-умолчанию стала новоявленная карта, у которой даже и playback-а-то нет. Но видимых настроек у flash-player-а нет, поэтому надо было исправлять ситуацию &quot;системно&quot;.</p>
<p>Поскольку уже <span title="попытка воспроизвести звук pcmcia-ного tv-тюнера без вспомогательных программ вроде sox">имелся негативный опыт ковыряния с asound.conf(.asoundrc)</span>, то сразу стал искать способ либо переименовать устройства (вроде того, как переименовывают eth* правилами в udev) или определить порядок загрузки драйверов &#8211; лишь бы не трогать asound.</p>
<p>И способ нашёлся &#8211; в <strong>/etc/modprobe.d/sound.conf</strong> добавлены следующие правила:</p>
<pre class="c">
options snd_hda_intel index=0
options snd_usb_audio index=1
</pre>
<p>После перезагрузки карты выстроились в порядке живой очереди:</p>
<pre class="c">
$ cat /proc/asound/cards
 0 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xa5100000 irq 41
 1 [U0x46d0x825    ]: USB-Audio - USB Device 0x46d:0x825
                      USB Device 0x46d:0x825 at usb-0000:00:1d.7-5.4, high speed
</pre>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2011/04/23/sound-card-index/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Решения и их последствия.</title>
		<link>http://miracle.rpz.name/2011/04/16/ie9-and-custom-namespaced-attributes/</link>
		<comments>http://miracle.rpz.name/2011/04/16/ie9-and-custom-namespaced-attributes/#comments</comments>
		<pubDate>Sat, 16 Apr 2011 11:28:36 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[ieupdate]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=429</guid>
		<description><![CDATA[Разрабатывать продукт в недра которого может влезть &#8220;чужой&#8221; непросто. Мы придумываем всяческие &#8220;неймспейсы&#8221;, давая файлам, директориям, переменным и классам псевдо-уникальные префиксы, пытаясь предотвратить коллизии с чужеродной средой. Однажды, много лет назад, ко мне свалилась задача &#8211; размещение некой сложной формы на сторонних ресурсах. Очевидное и годами отработанное решение &#8211; iframe было забраковано, т.к. опыт и [...]]]></description>
			<content:encoded><![CDATA[<p>
Разрабатывать продукт в недра которого может влезть &#8220;чужой&#8221; непросто. Мы придумываем всяческие &#8220;неймспейсы&#8221;, давая файлам, директориям, переменным и классам псевдо-уникальные префиксы, пытаясь предотвратить коллизии с чужеродной средой. </p>
<p>
Однажды, много лет назад, ко мне свалилась задача &#8211; размещение некой сложной формы на сторонних ресурсах. Очевидное и годами отработанное решение &#8211; iframe было забраковано, т.к. опыт и <strike>пятая точка</strike>шестое чувство подсказывали &#8211; как только владелец сайта разместит форму у себя, его светлую голову немедленно посетит мысль &#8211; &#8220;а как мне приделать перламутровые пуговицы?!&#8221;. Это, признаться, пугало &#8211; целыми днями верстать и раскрашивать незнакомым дядям и тётям одну и ту же страницу пятью миллионами способов? Нет, пристрелите меня семеро! Второй способ &#8211; разработать и задокументировать API, чтобы владелец ресурса сам разрабатывал себе форму, был отвергнут как трудозатратный, но совершенно нежизнеспособный так как рядовой клиент как правило (тут могло бы быть нечто оскорбительное про уровень интеллекта и радиус кривизны передних конечностей, но цензура не пропустит) не готов своими силами что-то создавать, тогда как продукт конкурента был проще в освоении (работал из коробки). Был выбран третий путь &#8211; размещение формы в виде html-разметки, которую мы отдаём заказчику, что называется &#8220;в руки&#8221;, а данные подгружаем через <em>&lt;script src=&quot;http://my-resource.example.com/?parameters&quot;&gt;&lt;/script&gt;</em>, это позволяло владельцу ресурса до определённой степени контролировать внешний вид полученного документа и избавляло нас от трудозатратной кастомизации сотен инсталляций продукта. Но этот способ потенциально создавал много проблем, т.к. находясь в инородной среде наш документ мог &#8220;подхватить&#8221; незапланированные свойства, &#8220;заразится&#8221; чужими переменными и вообще рассыпаться в пыль в руках неуклюжего веб-мастера. Необходимо было тщательно изолировать всё и вся. Одним из способов отделить своё &#8220;добро&#8221; внутри документа было создание уникального &#8220;пространства имён&#8221;, например создание атрибутов в виде <em>&lt;div rpz:property=&quot;value&quot;&gt;&lt;/div&gt;</em> &#8211; это самое <b>rpz:</b> давало надежду на то, что внешний скрипт(движок сайта или сам вебмастер) &#8220;случайно&#8221; не создаст аналогичный атрибут с другим value (или вовсе без него), развалив всю эту шаткую конструкцию. Решение оказалось рабочим во всех доступных графических браузерах и популяризировалось мной не только в этом продукте, но и повсеместно в других <strike>(печатая эти строки пытаюсь понять &#8211; зачем вообще нужны были именно атрибуты и почему их нельзя было заменить на переменные в скрипте, но разумного ответа почему-то не нахожу)</strike>.</p>
<p>
Это неоднозначное решение &#8220;выстрелило в ногу&#8221; только на днях &#8211; появился IE9&#8230; <strike>Невероятно быстр, ангельски красив, дьявольски умён &#8211; блеск, а не браузер</strike> <strike>На вид такой же унылый как все предыдущие</strike> В общем обзор новшеств можно наверное найти на сайте разработчиков, ну а я увидел его первый раз два дня назад, ничего <strike>хорошего</strike> про него сказать не могу, да и речь совсем не о том. Случись такое совпадение &#8211; сайт заказчика оказался настолько весь из себя валиден, что IE9 работал со страницей в своём новом <strong>document.documentMode</strong>. И чтобы вы думали? Точно! Годами отработанная &#8220;технология&#8221; дала сбой &#8211; &#8220;самодельные&#8221; атрибуты просто-напросто не видны на такой странице, а моя твёрдая уверенность в том, что они есть запретила здравому смыслу проверять их наличие&#8230; так и случаются epic fail-ы, так было и со мной.</p>
<p>
Один грязный хак удалось временно залатать <a href="http://msdn.microsoft.com/ru-ru/library/cc288325%28v=vs.85%29.aspx">другим грязным хаком</a>, но урок получен &#8211; недокументированная возможность это лишь &#8220;возможность&#8221;, строить на ней что-то прочное нельзя.</p>
<p>
К слову сказать, не так давно вместо атрибута rpz:property=&quot;value&quot;, я начал использовать &#8220;<a href="http://dev.w3.org/html5/spec/elements.html#embedding-custom-non-visible-data-with-the-data-attributes">документированную возможность</a>&#8221; &#8211; атрибут data-rpz-property=&quot;value&quot; и соответствующий вызов в js изменился с <a href="http://api.jquery.com/attr/">jQuery(selector).attr</a>(&quot;rpz:property&quot;) на <a href="http://api.jquery.com/data/">jQuery(selector).data</a>(&quot;rpz-property&quot;) , видимо &#8220;шестое чувство&#8221; о чём-то подозревало&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2011/04/16/ie9-and-custom-namespaced-attributes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amarok. Следующая остановка &#8211; eof?</title>
		<link>http://miracle.rpz.name/2011/04/09/why-amarok-stop-playback-after-each-file/</link>
		<comments>http://miracle.rpz.name/2011/04/09/why-amarok-stop-playback-after-each-file/#comments</comments>
		<pubDate>Sat, 09 Apr 2011 14:01:52 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[amarok]]></category>
		<category><![CDATA[kde]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=424</guid>
		<description><![CDATA[В последнее время практически не слушаю музыку из локальной коллекции по причине описанной ранее. Но иногда запускаю и Amarok. И вот этот самый amarok начал чудить &#8211; останавливает проигрывание после каждого файла. Перерыл все настройки на предмет управление playback-ом, по многочисленным советам с разных убунтофорумов попробовал удалять все конфиги, перерыл багтрекер &#8211; все найденные баги [...]]]></description>
			<content:encoded><![CDATA[<p>В последнее время практически не слушаю музыку из локальной коллекции по причине <a href="http://miracle.rpz.name/2010/12/04/last-fm-free-music-player/">описанной ранее</a>. Но иногда запускаю и <a href="http://amarok.kde.org">Amarok</a>. И вот этот самый amarok начал чудить &#8211; останавливает проигрывание после каждого файла. Перерыл все настройки на предмет управление playback-ом, по многочисленным советам с разных убунтофорумов попробовал удалять все конфиги, перерыл багтрекер &#8211; все найденные баги были пофиксены несколько версий назад, всё безрезультатно, надежды нет и конец близок. Хоть бери да используй другой плеер&#8230;</p>
<p>Решение оказалось неожиданным &#8211; потребовалось сменить backend у phonon (кто бы мог подумать?!)  с mplayer на xine, чтобы плеер перестал проказничать. </p>
<p>&#8220;Такой день.&#8221; (ц)</p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2011/04/09/why-amarok-stop-playback-after-each-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Communication problem with  &#8220;kded&#8221;</title>
		<link>http://miracle.rpz.name/2010/12/05/kde-probably-crashed/</link>
		<comments>http://miracle.rpz.name/2010/12/05/kde-probably-crashed/#comments</comments>
		<pubDate>Sun, 05 Dec 2010 12:21:13 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[kde]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=409</guid>
		<description><![CDATA[Экспериментируя с Plasma сильно-сильно уронил KDE. Роковое стечение обстоятельств &#8211; как раз перед этим обновил систему (в т.ч. и kde) и не успел рестартнуть сессию. Итого: утомительная многочасовая битва с мельницами, почти полностью утерянные настройки и эта чудо{вищная} заметка. Симптомы были следующие: kde не стартует под пользователем, но прекрасно запускаются под root-ом. startkde: Starting up... [...]]]></description>
			<content:encoded><![CDATA[<p>Экспериментируя с Plasma сильно-сильно уронил KDE. Роковое стечение обстоятельств &#8211; как раз перед этим обновил систему (в т.ч. и kde) и не успел рестартнуть сессию. Итого: утомительная многочасовая битва с мельницами, почти полностью утерянные настройки и эта чудо{вищная} заметка.</p>
<p>Симптомы были следующие: kde не стартует под пользователем, но прекрасно запускаются под root-ом.</p>
<pre class="c">
startkde: Starting up...
Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
kded(4946): Communication problem with  "kded" , it probably crashed.
Error message was:  "org.freedesktop.DBus.Error.ServiceUnknown" : " "The name org.kde.kded was not provided by any .service files" " 

<unknown program name>(4944)/ KStartupInfo::createNewStartupId: creating:  "${HOSTNAME};1283501102;250139;4944_TIME0" : "unnamed app"
startkde: Shutting down...
klauncher: Exiting on signal 1
startkde: Running shutdown scripts...
startkde: Done.
</pre>
<p>Незамедлительно был сделан вывод: что-то &#8220;пришло&#8221; в обновлённых пакетах, как назло недоступен slackware.com (нет, ну вы подумайте &#8211; всё вот так вот разом, а?). Был перелопачен /etc на предмет разного рода изменений в правах доступа. Затем в /dev/null один за одним полетели файлы из $HOME, /tmp и т.п. Удалил весь $HOME, создал девственно чистый &#8211;  ничего. Начинала свербить мысль &#8211; а может остаться под root-ом&#8230;. ?!</p>
<p>Решение как всегда оказалось простым и ожиданным. Позабыл удалить <strong>/var/tmp/kdecache-$USER</strong>. Уже не первый раз сталкиваюсь и не последний раз забываю начать именно с этого.</p>
<p><strong>P.S.</strong><br />
Вот на кой ляд половина хлама падает в /tmp, а другая в /var/tmp ?</p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2010/12/05/kde-probably-crashed/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Добавляем действия в контектное меню KDE</title>
		<link>http://miracle.rpz.name/2010/12/01/kde-context-menu/</link>
		<comments>http://miracle.rpz.name/2010/12/01/kde-context-menu/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 21:42:21 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[kde]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=387</guid>
		<description><![CDATA[Многие операции вроде &#8220;замаунтить флешку&#8221;, &#8220;скопировать файл&#8221; и т.п. ежедневно-рутинные действия я не задумываясь совершаю в консоли (благодаря yakuake она всегда под рукой). Но перед людьми бывает &#8220;неудобно&#8221; &#8211; они видя все эти &#8220;магические&#8221; манипуляции ещё больше укрепляются в мысли, что &#8220;эти ваши линуксы&#8221; не для &#8220;наших широт&#8221;. Для того чтобы немного размазать негативные впечатления [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="tn" href="http://miracle.rpz.name/shared/2010/kde-context-menu.png" title="Контекстное меню KDE"><img align="right" src="http://miracle.rpz.name/shared/2010/kde-context-menu-tn.png" alt="Контекстное меню KDE"></a>Многие операции вроде &#8220;замаунтить флешку&#8221;, &#8220;скопировать файл&#8221; и т.п. ежедневно-рутинные действия я не задумываясь совершаю в консоли (благодаря <a href="http://extragear.kde.org/apps/yakuake/">yakuake</a> она всегда под рукой). Но перед людьми бывает &#8220;неудобно&#8221; &#8211; они видя все эти &#8220;магические&#8221; манипуляции ещё больше укрепляются в мысли, что &#8220;эти ваши линуксы&#8221; не для &#8220;наших широт&#8221;.</p>
<p>Для того чтобы немного размазать негативные впечатления добавил некоторые действия в контекстное меню &#8220;проводников&#8221;.</p>
<p>Первое что надо сделать: понять ГДЕ необходимо приложить  руки.</p>
<pre class="c">$ kde4-config --path services
/home/miracle/.kde/share/kde4/services/:/usr/share/kde4/services/
</pre>
<p>В одной из этих директорий создаём файл <strong>my-super-actions.desktop </strong> подобного содержания:</p>
<pre class="c">
[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=video/*;
Actions=CompressMovie4Nokia;CompressMovie4HTC;GetSubtitles;
Encoding=UTF-8

[Desktop Action CompressMovie4Nokia]
Name=Compress for Nokia
Icon=phone
Exec=/bin/sh -c 'cd "`dirname "%f"`" \
&#038;&#038; ffmpeg -y -i "`basename "%f"`" -ac 1 -ar 22050 -vcodec mpeg4 -s 176x144 -r 24 \
-b 118k -ab 32k -aspect 11:9 "nokia-`basename "%f" .avi`.mp4" \
&#038;&#038; kdialog --title "Compress Movie" --passivepopup "Movie `basename "%f"` compressed"'

[Desktop Action CompressMovie4HTC]
Name=Compress for HTC
Icon=pda
Exec=/bin/sh -c 'cd "`dirname "%f"`" \
&#038;&#038; ffmpeg -y -i "`basename "%f"`" -s 320x240 -r 22.5 -ac 2 "htc-`basename "%f" .avi`.avi" \
&#038;&#038; kdialog --title "Compress Movie" --passivepopup "Movie `basename "%f"` compressed"'

[Desktop Action GetSubtitles]
Name=Download subtitles
Icon=draw-text
Exec=/bin/sh -c 'cd "`dirname "%f"`" \
&#038;&#038; subtitles `basename "%f"` -l en \
&#038;&#038; kdialog --title "Subtitles" --passivepopup "Subtitles for movie `basename "%f"` downloaded"'
</pre>
<p>Затем выполняем:</p>
<pre class="c">
$ kbuildsycoca4
</pre>
<p>И наблюдаем свежедобавленные пункты в меню &#8220;Actions&#8221;.</p>
<p>В коде всё наглядно, отдельного упоминания наверное стоит только тот факт, что <em>/bin/sh</em> нужен лишь для того, чтобы запустить более одной команды, как в моём случае &#8211; если команда одна, то запуск шелла будет лишним.</p>
<p>Ссылка по теме: <a href="http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html">Desktop Entry Specification</a></p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2010/12/01/kde-context-menu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion и время модификации файлов</title>
		<link>http://miracle.rpz.name/2010/08/17/subversion-and-filemtim/</link>
		<comments>http://miracle.rpz.name/2010/08/17/subversion-and-filemtim/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 12:08:40 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=360</guid>
		<description><![CDATA[Крайне странно что раньше я не замечал по-умолчанию директива use-commit-times ВЫКЛЮЧЕНА!. Включить, понятное дело, можно настройкой в конфиге ~/.subversion/config. Ну или в cli добавив параметр &#8211;config-option=config:miscellany:use-commit-times=yes]]></description>
			<content:encoded><![CDATA[<p>Крайне странно что <span style="text-decoration: line-through;">раньше я не замечал</span> по-умолчанию директива <em>use-commit-times</em> ВЫКЛЮЧЕНА!.</p>
<p>Включить, понятное дело, можно настройкой в конфиге <em>~/.subversion/config</em>.</p>
<p>Ну или в <em>cli </em>добавив параметр <strong>&#8211;config-option=config:miscellany:use-commit-times=yes</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2010/08/17/subversion-and-filemtim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: miracle.rpz.name @ 2012-02-06 18:50:15 by W3 Total Cache -->
