<?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; Свободное ПО</title>
	<atom:link href="http://sadko.xskernel.org/archives/category/foss/feed" rel="self" type="application/rss+xml" />
	<link>http://sadko.xskernel.org</link>
	<description>блог обо всём и ни о чём</description>
	<lastBuildDate>Wed, 14 Dec 2011 20:21:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Как же правильно рисовать иероглифы?</title>
		<link>http://sadko.xskernel.org/archives/1906</link>
		<comments>http://sadko.xskernel.org/archives/1906#comments</comments>
		<pubDate>Sat, 19 Mar 2011 19:54:08 +0000</pubDate>
		<dc:creator>SadKo</dc:creator>
				<category><![CDATA[Кодинг]]></category>
		<category><![CDATA[Свободное ПО]]></category>
		<category><![CDATA[日本語]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[opera]]></category>

		<guid isPermaLink="false">http://sadko.xskernel.org/?p=1906</guid>
		<description><![CDATA[Tweet Я решил следовать современным тенденциям HTML5 и прикрутил к сайту http://kanji.xskernel.org/ возможность рисовать иероглифы. Вернее, рисовать-то могу их только я, а вот остальные могут посмотреть, как правильно следует соблюдать порядок черт при изображении конкретного символа. Конечно, сейчас выглядит всё достаточно схематически, но уже заметный прогресс налицо. Тем не менее, это на порядок лучше, чем [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin: 0 0 5px 10px; " class="vk-button">
<!-- vkontakte share button -->
<script type="text/javascript">
<!--
document.write(VK.Share.button(
{
  url: 'http://sadko.xskernel.org/archives/1906',
  title: 'Как же правильно рисовать иероглифы?',
  description: 'Я решил следовать современным тенденциям HTML5 и прикрутил к сайту http://kanji.xskernel.org/ возможность рисовать иероглифы.\nВернее, рисовать-то могу их только я, а вот остальные могут посмотреть, как пра...',
  noparse: true 
}, 
{
  type: 'button',
  text: 'Скопировать'
}));
-->
</script>
<!-- / vkontakte share button -->
</div><div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; " class="really_simple_share_linkedin"> 
				<script type="text/javascript" src="http://platform.linkedin.com/in.js"></script>
				<script type="in/share" data-counter="right" data-url="http://sadko.xskernel.org/archives/1906"></script>
			</div><div style="float:left; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="&ETH;&ETH;&deg;&ETH;&ordm; &ETH;&para;&ETH;&micro; &ETH;&iquest;&Ntilde;&ETH;&deg;&ETH;&sup2;&ETH;&cedil;&ETH;&raquo;&Ntilde;&ETH;&frac12;&ETH;&frac34; &Ntilde;&ETH;&cedil;&Ntilde;&ETH;&frac34;&ETH;&sup2;&ETH;&deg;&Ntilde;&Ntilde; &ETH;&cedil;&ETH;&micro;&Ntilde;&ETH;&frac34;&ETH;&sup3;&ETH;&raquo;&ETH;&cedil;&Ntilde;&Ntilde;?" data-url="http://sadko.xskernel.org/archives/1906">Tweet</a> 
				<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script> 
			</div></div>
	<br style="clear:both;" /><p>Я решил следовать современным тенденциям HTML5 и прикрутил к сайту <a href="http://kanji.xskernel.org/">http://kanji.xskernel.org/</a> возможность рисовать иероглифы.<br />
Вернее, рисовать-то могу их только я, а вот остальные могут посмотреть, как правильно следует соблюдать порядок черт при изображении конкретного символа.<br />
Конечно, сейчас выглядит всё достаточно схематически, но уже заметный прогресс налицо. Тем не менее, это на порядок лучше, чем рисовать к каждому иероглифу GIF-файл. В среднем, на аккуратную отрисовку одного подобного иероглифа уходит где-то от двух до пяти минут.</p>
<p>Итак, знакомимся. Перед вами один из иероглифов, обладающий достаточно большим количеством черт, который я специально подобрал для демонстрации.<br />
Иероглиф записывается как 電, имеет только одно онное чтение デン [den], кунных чтений не имеет. При использовании в качестве корня слова означает молнию, электричество. Ключом к этому иероглифу служит другой иероглиф 雨, означающий дождь. Собственно, по нему его и можно найти в словаре иероглифов на сайте.</p>
<p><a href="http://kanji.xskernel.org/index.cgi?frame=kanji_stroke&#038;action=kanji_stroke&#038;kanji_id=16828">Ну а черты рисуются в следующем порядке (ЖЖ не позволяет вставлять iframe)</a>:<br />
<iframe src="http://kanji.xskernel.org/index.cgi?frame=kanji_stroke&#038;action=kanji_stroke&#038;kanji_id=16828" width="100%" height="500"></p>
<p>Облом-с, фреймы нема&#8230;</p>
<p></iframe></p>
<p>Что же касается браузеров, то Google Chrome, Konqueror, Mozilla Firefox и Opera, вроде, грамотно отрисовывают всё. Насчёт Internet Explorer &#8212; не знаю, у меня на trial-венде в виртуалке стоит только восьмая версия (и обновляться пока нельзя), а восьмёрка тег &lt;canvas&gt; не умеетЪ. Microsoft, как всегда, &#171;идёт в ногу с технологиями&#187;, ну да ладно, хрен с ними. Если вы фанат Internet Explorer и не обновились до девятой версии &#8212; то, видать, не судьба.</p>
<p> <lj-repost button="Забрать к себе" /></p>
]]></content:encoded>
			<wfw:commentRss>http://sadko.xskernel.org/archives/1906/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>字引。</title>
		<link>http://sadko.xskernel.org/archives/1769</link>
		<comments>http://sadko.xskernel.org/archives/1769#comments</comments>
		<pubDate>Sun, 02 May 2010 15:17:23 +0000</pubDate>
		<dc:creator>SadKo</dc:creator>
				<category><![CDATA[Интернеты]]></category>
		<category><![CDATA[Свободное ПО]]></category>
		<category><![CDATA[japan]]></category>

		<guid isPermaLink="false">http://sadko.xskernel.org/?p=1769</guid>
		<description><![CDATA[Tweet Да, что-то в последнее время выбился я из блогосферы, поэтому сегодня меня, так сказать, &#171;прорвало&#187;. И, мало того, давно я ничего не писал о программинге. Поэтому кину сюда пару строчек. Так получилось, что недавно я самосильно стал изучать японский язык (日本語). Зачем &#8212; не спрашивайте, не заставляйте краснеть. Дело в другом. Что для облегчения, [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin: 0 0 5px 10px; " class="vk-button">
<!-- vkontakte share button -->
<script type="text/javascript">
<!--
document.write(VK.Share.button(
{
  url: 'http://sadko.xskernel.org/archives/1769',
  title: '字引。',
  description: 'Да, что-то в последнее время выбился я из блогосферы, поэтому сегодня меня, так сказать, &quot;прорвало&quot;.\n\nИ, мало того, давно я ничего не писал о программинге. Поэтому кину сюда пару строчек.\n\nТак по...',
  noparse: true 
}, 
{
  type: 'button',
  text: 'Скопировать'
}));
-->
</script>
<!-- / vkontakte share button -->
</div><div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; " class="really_simple_share_linkedin"> 
				<script type="text/javascript" src="http://platform.linkedin.com/in.js"></script>
				<script type="in/share" data-counter="right" data-url="http://sadko.xskernel.org/archives/1769"></script>
			</div><div style="float:left; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="&aring;&shy;&aring;&frac14;&atilde;" data-url="http://sadko.xskernel.org/archives/1769">Tweet</a> 
				<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script> 
			</div></div>
	<br style="clear:both;" /><p>Да, что-то в последнее время выбился я из блогосферы, поэтому сегодня меня, так сказать, &#171;прорвало&#187;.</p>
<p>И, мало того, давно я ничего не писал о программинге. Поэтому кину сюда пару строчек.</p>
<p>Так получилось, что недавно я самосильно стал изучать японский язык (日本語). Зачем &#8212; не спрашивайте, не заставляйте краснеть. Дело в другом. Что для облегчения, так сказать, изучения, я завёл отдельный домен &#8212; <a href="http://kanji.xskernel.org/">kanji.xskernel.org</a>. Сначала предполагалось сделать просто интерактивную табличку иероглифов (漢字) с их описанием. Но дальше, как говорится, Остапа понесло. После чего была добавлена игрушка по изучению слоговой азбуки годзюон (五十音) путём сопоставления пар слогов из четырёх разных азбук: катаканы (片仮名), хираганы (平仮名）, ромадзи (ローマ字) и русской транскрипцией, похожей на систему Поливанова (キリル文字).<br />
Потом я понял, что шелловские скрипты, хоть и удобные, но редактировать их порой бывает сложно, поэтому прикрутил систему авторизации и сохранения сессий в базе, то есть, в ближайшее время должна появиться и админка.</p>
<p>А совсем недавно я взялся за написание словаря и понял, что текущая структура базы не очень удобна и не совсем универсальна. Не универсальна в том смысле, что сейчас есть возможность переводить только из японского в русский, обратный процесс сейчас затруднителен. И, опять же, из двух языков возможен только японский и русский. Также нет возможности искать слово по его транскрипции (идея принадлежит товарищу <a href="http://users.livejournal.com/stalkerg/profile/"><img src="http://stat.livejournal.com/img/userinfo.gif" style="border: 0pt none ; vertical-align: bottom;" height="17" width="17"></a><a href="http://users.livejournal.com/stalkerg/"><b>stalkerg</b></a>), что могло бы упростить поиск услышанного слова или записанного латиницей.</p>
<p>Поэтому сейчас я взялся за перепроектировку базы данных с целью исключить данные изъяны впредь. Поэтому сейчас мне важно очень мнение читающих по следующим вопросам:</p>
<ol>
<li>Какой, на ваш взгляд, функционал должен быть реализован в словаре?</li>
<li>Чего не хватает или что не нравится в дизайне? Не слишком ли он сейчас простой?</li>
<li>Что бы вы ещё хотели увидеть на подобном сайте, предназначенном для изучения языка?</li>
<li>Есть какие-нибудь идеи, как сделать сайт лучше?</li>
<li>Заинтересовал ли вас домен <a href="http://kanji.xskernel.org/">kanji.xskernel.org</a> в принципе?</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://sadko.xskernel.org/archives/1769/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ещё одна эпопея с OEM</title>
		<link>http://sadko.xskernel.org/archives/1759</link>
		<comments>http://sadko.xskernel.org/archives/1759#comments</comments>
		<pubDate>Sun, 02 May 2010 14:47:19 +0000</pubDate>
		<dc:creator>SadKo</dc:creator>
				<category><![CDATA[Интернеты]]></category>
		<category><![CDATA[Свободное ПО]]></category>
		<category><![CDATA[oem]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[озпп]]></category>
		<category><![CDATA[цест]]></category>

		<guid isPermaLink="false">http://sadko.xskernel.org/?p=1759</guid>
		<description><![CDATA[Tweet Теперь товарищ busyrv решил пойти по нашим стопам и вернуть деньги за ненужный OEM Windows, установленный на ноутбуке Acer. Пока процесс возврата затянулся, подробности можно прочитать тут: Возврат OEM Windows &#8212; это просто? Прежде всего хотел бы предупредить остальных: вы не обязаны отдавать оригиналы документов (кроме гарантийного талона) сервис-центру. У них всегда должен стоять [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin: 0 0 5px 10px; " class="vk-button">
<!-- vkontakte share button -->
<script type="text/javascript">
<!--
document.write(VK.Share.button(
{
  url: 'http://sadko.xskernel.org/archives/1759',
  title: 'Ещё одна эпопея с OEM',
  description: 'Теперь товарищ  решил пойти по нашим стопам и вернуть деньги за ненужный OEM Windows, установленный на ноутбуке Acer.\n\nПока процесс возврата затянулся, подробности можно прочитать тут:\nВозврат OEM Wind...',
  noparse: true 
}, 
{
  type: 'button',
  text: 'Скопировать'
}));
-->
</script>
<!-- / vkontakte share button -->
</div><div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; " class="really_simple_share_linkedin"> 
				<script type="text/javascript" src="http://platform.linkedin.com/in.js"></script>
				<script type="in/share" data-counter="right" data-url="http://sadko.xskernel.org/archives/1759"></script>
			</div><div style="float:left; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="&ETH;&Ntilde;&Ntilde; &ETH;&frac34;&ETH;&acute;&ETH;&frac12;&ETH;&deg; &Ntilde;&ETH;&iquest;&ETH;&frac34;&ETH;&iquest;&ETH;&micro;&Ntilde; &Ntilde; OEM" data-url="http://sadko.xskernel.org/archives/1759">Tweet</a> 
				<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script> 
			</div></div>
	<br style="clear:both;" /><p>Теперь товарищ <a href="http://users.livejournal.com/busyrv/profile/"><img src="http://stat.livejournal.com/img/userinfo.gif" style="border: 0pt none ; vertical-align: bottom;" height="17" width="17"></a><a href="http://users.livejournal.com/busyrv/"><b>busyrv</b></a> решил пойти по нашим стопам и вернуть деньги за ненужный OEM Windows, установленный на ноутбуке Acer.</p>
<p>Пока процесс возврата затянулся, подробности можно прочитать тут:<br />
<a href="http://busyrv.livejournal.com/17111.html">Возврат OEM Windows &#8212; это просто?</a></p>
<p>Прежде всего хотел бы предупредить остальных: вы не обязаны отдавать оригиналы документов (кроме гарантийного талона) сервис-центру. У них всегда должен стоять копир для создания копий необходимых документов.</p>
<p>Более развёрнуто вопрос разъяснил <a href="http://users.livejournal.com/klark932/profile/"><img src="http://stat.livejournal.com/img/userinfo.gif" style="border: 0pt none ; vertical-align: bottom;" height="17" width="17"></a><a href="http://users.livejournal.com/klark932/"><b>klark932</b></a> <a href="http://busyrv.livejournal.com/17111.html?thread=16855#t16855">вот в этом комментарии</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sadko.xskernel.org/archives/1759/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>五十音：片仮名、平仮名、ローマ字</title>
		<link>http://sadko.xskernel.org/archives/1750</link>
		<comments>http://sadko.xskernel.org/archives/1750#comments</comments>
		<pubDate>Tue, 30 Mar 2010 09:21:22 +0000</pubDate>
		<dc:creator>SadKo</dc:creator>
				<category><![CDATA[Интернеты]]></category>
		<category><![CDATA[Кодинг]]></category>
		<category><![CDATA[Свободное ПО]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[japan]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[oss]]></category>

		<guid isPermaLink="false">http://sadko.xskernel.org/?p=1750</guid>
		<description><![CDATA[Tweet Написал небольшую игрушку для интерактивного выучивания таблицы годзю:он (五十音) на JavaScript. Сама по себе она напоминает игрушку на память: собирать пары совпадающих ячеек до тех пор, пока все пары не будут собраны. Идея состоит в том, что в качестве пары выступают слоги из разных слоговых азбук. Вернее, в разном представлении. Доступны следующие ассоциации пар: [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin: 0 0 5px 10px; " class="vk-button">
<!-- vkontakte share button -->
<script type="text/javascript">
<!--
document.write(VK.Share.button(
{
  url: 'http://sadko.xskernel.org/archives/1750',
  title: '五十音：片仮名、平仮名、ローマ字',
  description: 'Написал небольшую игрушку для интерактивного выучивания таблицы годзю:он (五十音) на JavaScript.\n\nСама по себе она напоминает игрушку на память: собирать пары совпадающих ячеек до тех пор, пока все ...',
  noparse: true 
}, 
{
  type: 'button',
  text: 'Скопировать'
}));
-->
</script>
<!-- / vkontakte share button -->
</div><div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; " class="really_simple_share_linkedin"> 
				<script type="text/javascript" src="http://platform.linkedin.com/in.js"></script>
				<script type="in/share" data-counter="right" data-url="http://sadko.xskernel.org/archives/1750"></script>
			</div><div style="float:left; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="&auml;&ordm;&aring;&eacute;&sup3;&iuml;&frac14;&ccedil;&auml;&raquo;&reg;&aring;&atilde;&aring;&sup1;&sup3;&auml;&raquo;&reg;&aring;&atilde;&atilde;&shy;&atilde;&frac14;&atilde;&aring;&shy;" data-url="http://sadko.xskernel.org/archives/1750">Tweet</a> 
				<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script> 
			</div></div>
	<br style="clear:both;" /><p>Написал небольшую игрушку для интерактивного выучивания таблицы годзю:он (五十音) на JavaScript.</p>
<p>Сама по себе она напоминает игрушку на память: собирать пары совпадающих ячеек до тех пор, пока все пары не будут собраны. Идея состоит в том, что в качестве пары выступают слоги из разных слоговых азбук. Вернее, в разном представлении. Доступны следующие ассоциации пар:</p>
<ul>
<li>катакана &#8212; хирагана (片仮名 &#8212; 平仮名);</li>
<li>катакана &#8212; ромадзи （片仮名 &#8212; ローマ字);</li>
<li>хирагана &#8212; ромадзи (平仮名 &#8212; ローマ字)</li>
<li>катакана &#8212; поливанов (片仮名 &#8212; キリル文字)</li>
<li>хирагана &#8212; поливанов (平仮名 &#8212; キリル文字)</li>
</ul>
<p>То есть, например, для пары &#171;катакана-хирагана&#187; слоги &#171;a, i, u, e, o&#187; будут иметь ассоциации &#171;ア <-> あ&#187;, &#171;イ &#8212; い&#187;, &#171;ウ &#8212; う&#187;, &#171;エ &#8212; え&#187;, &#171;オ &#8212; お&#187;.<br />
Играть можно как в простом режиме (easy), так и в сложном (hard). В первом случае все ячейки со слогами открыты. Во втором случае &#8212; скрыты, то есть если слоги в ячейках не будут совпадать, содержимое ячеек будет скрываться, а открытыми будут оставаться только уже найденные пары.<br />
Также можно выбирать перечень разучиваемых слогов (ставить галочки напротив определённого слогового ряда). Если много галочек ставить лень &#8212; можно воспользоваться предустановками, среди которых есть:</p>
<ul>
<li>выбор всех доступных слогов;</li>
<li>сброс всех доступных слогов;</li>
<li>выбор только слогов таблицы годзю:он;</li>
<li>выбор только слогов, которы были получены путём озвончения &#8212; нигори (濁り) &#8212; или оглушения &#8212; ханнигори (半に濁り ?).</li>
</ul>
<p>Ссылка на игрушку здесь (распространяется по лицензии GPLv2):<br />
<a href="http://kanji.xskernel.org/?target=gojuon">http://kanji.xskernel.org/?target=gojuon</a>.</p>
<p>Приятного времяпрепровождения! Если есть замечания, исправления, предложения или пожелания &#8212; пишите <img src='http://sadko.xskernel.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://sadko.xskernel.org/archives/1750/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ГОУ Лицей при СПбГУТ переходит на СПО!</title>
		<link>http://sadko.xskernel.org/archives/1745</link>
		<comments>http://sadko.xskernel.org/archives/1745#comments</comments>
		<pubDate>Sat, 27 Mar 2010 11:05:48 +0000</pubDate>
		<dc:creator>SadKo</dc:creator>
				<category><![CDATA[Свободное ПО]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[спо]]></category>

		<guid isPermaLink="false">http://sadko.xskernel.org/?p=1745</guid>
		<description><![CDATA[Tweet Все мы прекрасно знаем, что в конце 2010 года лицензии пакета &#171;Первая помощь&#187; завершают своё действие (становятся недействительными). В связи с этим у школ есть два варианта: либо находить финансовые средства и закупать проприетарное ПО для последующей установки на компьютеры, либо освоить новую нишу &#8212; свободное программное обеспечение. Лицей, в котором я учился, выбрал [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin: 0 0 5px 10px; " class="vk-button">
<!-- vkontakte share button -->
<script type="text/javascript">
<!--
document.write(VK.Share.button(
{
  url: 'http://sadko.xskernel.org/archives/1745',
  title: 'ГОУ Лицей при СПбГУТ переходит на СПО!',
  description: 'Все мы прекрасно знаем, что в конце 2010 года лицензии пакета &quot;Первая помощь&quot; завершают своё действие (становятся недействительными). В связи с этим у школ есть два варианта: либо находить финанс...',
  noparse: true 
}, 
{
  type: 'button',
  text: 'Скопировать'
}));
-->
</script>
<!-- / vkontakte share button -->
</div><div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; " class="really_simple_share_linkedin"> 
				<script type="text/javascript" src="http://platform.linkedin.com/in.js"></script>
				<script type="in/share" data-counter="right" data-url="http://sadko.xskernel.org/archives/1745"></script>
			</div><div style="float:left; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="&ETH;&ETH;&ETH;&pound; &ETH;&ETH;&cedil;&Ntilde;&ETH;&micro;&ETH;&sup1; &ETH;&iquest;&Ntilde;&ETH;&cedil; &ETH;&iexcl;&ETH;&ETH;&plusmn;&ETH;&ETH;&pound;&ETH;&cent; &ETH;&iquest;&ETH;&micro;&Ntilde;&ETH;&micro;&Ntilde;&ETH;&frac34;&ETH;&acute;&ETH;&cedil;&Ntilde; &ETH;&frac12;&ETH;&deg; &ETH;&iexcl;&ETH;&ETH;!" data-url="http://sadko.xskernel.org/archives/1745">Tweet</a> 
				<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script> 
			</div></div>
	<br style="clear:both;" /><p>Все мы прекрасно знаем, что в конце 2010 года лицензии пакета &#171;Первая помощь&#187; завершают своё действие (становятся недействительными). В связи с этим у школ есть два варианта: либо находить финансовые средства и закупать проприетарное ПО для последующей установки на компьютеры, либо освоить новую нишу &#8212; свободное программное обеспечение.</p>
<p>Лицей, в котором я учился, выбрал второй, верный путь. Недавно я был у них в гостях, и, надо сказать, отметил для себя, что с начала этого года (а именно тогда была дана команда всем переходить на СПО) они уже проделали порядочную работу: завели большинство оборудования под Linux (для этого порой приходилось даже связываться напрямую с производителями), ознакомились со свободными программными пакетами, позволяющими производить математические расчёты и симуляции электрических цепей. В общем, работа кипит, и потенциал достаточно высок.</p>
<p>Можно посмотреть их собственную презентацию, представленную на Санкт-Петербургском конкурсе инновационных продуктов:<br />
<OBJECT width="470" height="353"><PARAM name="movie" value="http://video.rutube.ru/d1e620b8ad06889d68e4a6b05f847daf"></PARAM><PARAM name="wmode" value="window"></PARAM><PARAM name="allowFullScreen" value="true"></PARAM><EMBED src="http://video.rutube.ru/d1e620b8ad06889d68e4a6b05f847daf" type="application/x-shockwave-flash" wmode="window" width="470" height="353" allowFullScreen="true" ></EMBED></OBJECT></p>
<p>В общем, молодцы, так держать.<br />
Если вы хотите поддержать их &#8212; можете оставить свой голос <a href="http://petersburg-edu.ru/voting/voting/obshchestvennaya-ekspertiza-materialov-predstavlennykh-na-konkurs-innovatsionnykh-produktov--0">здесь</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sadko.xskernel.org/archives/1745/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Драма с возвратом денез за OEM</title>
		<link>http://sadko.xskernel.org/archives/1733</link>
		<comments>http://sadko.xskernel.org/archives/1733#comments</comments>
		<pubDate>Mon, 15 Mar 2010 08:25:49 +0000</pubDate>
		<dc:creator>SadKo</dc:creator>
				<category><![CDATA[Интернеты]]></category>
		<category><![CDATA[Свободное ПО]]></category>
		<category><![CDATA[hp]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[oem]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://sadko.xskernel.org/?p=1733</guid>
		<description><![CDATA[Tweet Товарищ zawullon изложил драму о пяти частях о том, как пытался вернуть деньги за OEM-нутую венду: Борьба с навязыванием Windows #1 Борьба с навязыванием Windows #2 Борьба с навязыванием Windows #3 Борьба с навязыванием Windows #4 Борьба с навязыванием Windows #5 Пока исход дела достаточно драматичный. Мировой судья &#171;поспрашивала у знакомых компьютерщиков&#187; о том, [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin: 0 0 5px 10px; " class="vk-button">
<!-- vkontakte share button -->
<script type="text/javascript">
<!--
document.write(VK.Share.button(
{
  url: 'http://sadko.xskernel.org/archives/1733',
  title: 'Драма с возвратом денез за OEM',
  description: 'Товарищ  изложил драму о пяти частях о том, как пытался вернуть деньги за OEM-нутую венду:\nБорьба с навязыванием Windows #1\nБорьба с навязыванием Windows #2\nБорьба с навязыванием Windows #3\nБорьба с навязыв...',
  noparse: true 
}, 
{
  type: 'button',
  text: 'Скопировать'
}));
-->
</script>
<!-- / vkontakte share button -->
</div><div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; " class="really_simple_share_linkedin"> 
				<script type="text/javascript" src="http://platform.linkedin.com/in.js"></script>
				<script type="in/share" data-counter="right" data-url="http://sadko.xskernel.org/archives/1733"></script>
			</div><div style="float:left; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="&ETH;&Ntilde;&ETH;&deg;&ETH;&frac14;&ETH;&deg; &Ntilde; &ETH;&sup2;&ETH;&frac34;&ETH;&middot;&ETH;&sup2;&Ntilde;&ETH;&deg;&Ntilde;&ETH;&frac34;&ETH;&frac14; &ETH;&acute;&ETH;&micro;&ETH;&frac12;&ETH;&micro;&ETH;&middot; &ETH;&middot;&ETH;&deg; OEM" data-url="http://sadko.xskernel.org/archives/1733">Tweet</a> 
				<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script> 
			</div></div>
	<br style="clear:both;" /><p>Товарищ <a href="http://users.livejournal.com/zawullon/profile/"><img src="http://stat.livejournal.com/img/userinfo.gif" style="border: 0pt none ; vertical-align: bottom;" height="17" width="17"></a><a href="http://users.livejournal.com/zawullon/"><b>zawullon</b></a> изложил драму о пяти частях о том, как пытался вернуть деньги за OEM-нутую венду:<br />
<a href="http://zawullon.livejournal.com/1327.html">Борьба с навязыванием Windows #1</a><br />
<a href="http://zawullon.livejournal.com/1710.html">Борьба с навязыванием Windows #2</a><br />
<a href="http://zawullon.livejournal.com/1917.html">Борьба с навязыванием Windows #3</a><br />
<a href="http://zawullon.livejournal.com/2554.html">Борьба с навязыванием Windows #4</a><br />
<a href="http://zawullon.livejournal.com/3016.html">Борьба с навязыванием Windows #5</a></p>
<p>Пока исход дела достаточно драматичный. Мировой судья &#171;поспрашивала у знакомых компьютерщиков&#187; о том, является ли венда частью компьютера, на основе чего и решила исход дела в пользу ответчика. При этом, ГК РФ и ЗоЗПП как бы идут лесом.<br />
Будем надеяться, что поданная апелляция повернёт исход дела в совсем другое русло, и законные деньги за OEM, моральный ущерб и судебные издержки возвернутся.</p>
]]></content:encoded>
			<wfw:commentRss>http://sadko.xskernel.org/archives/1733/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VSFTPD &#8212; такой ли секьюрный?</title>
		<link>http://sadko.xskernel.org/archives/1704</link>
		<comments>http://sadko.xskernel.org/archives/1704#comments</comments>
		<pubDate>Tue, 26 Jan 2010 12:35:40 +0000</pubDate>
		<dc:creator>SadKo</dc:creator>
				<category><![CDATA[Кодинг]]></category>
		<category><![CDATA[Свободное ПО]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[proftpd]]></category>
		<category><![CDATA[suse]]></category>
		<category><![CDATA[vsftpd]]></category>

		<guid isPermaLink="false">http://sadko.xskernel.org/?p=1704</guid>
		<description><![CDATA[Tweet Сегодня разочаровался в моём любимом Very Secure FTP Daemon. Произошло это, когда мне нужно было реализовать что-то вроде RandomAccessFile, работающего по FTP. И когда я дошёл до seek-операций, обнаружил, что vsftpd некорректно отрабатывает пару команд REST + STOR. А именно, открывает файл всегда в режиме O_APPEND, о чём с горестью сообщает manpage: O_APPEND The [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin: 0 0 5px 10px; " class="vk-button">
<!-- vkontakte share button -->
<script type="text/javascript">
<!--
document.write(VK.Share.button(
{
  url: 'http://sadko.xskernel.org/archives/1704',
  title: 'VSFTPD - такой ли секьюрный?',
  description: 'Сегодня разочаровался в моём любимом Very Secure FTP Daemon.\nПроизошло это, когда мне нужно было реализовать что-то вроде RandomAccessFile, работающего по FTP. И когда я дошёл до seek-операций, обнаружил, что vsftpd не...',
  noparse: true 
}, 
{
  type: 'button',
  text: 'Скопировать'
}));
-->
</script>
<!-- / vkontakte share button -->
</div><div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; " class="really_simple_share_linkedin"> 
				<script type="text/javascript" src="http://platform.linkedin.com/in.js"></script>
				<script type="in/share" data-counter="right" data-url="http://sadko.xskernel.org/archives/1704"></script>
			</div><div style="float:left; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="VSFTPD &amp;#8212; &Ntilde;&ETH;&deg;&ETH;&ordm;&ETH;&frac34;&ETH;&sup1; &ETH;&raquo;&ETH;&cedil; &Ntilde;&ETH;&micro;&ETH;&ordm;&Ntilde;&Ntilde;&Ntilde;&ETH;&frac12;&Ntilde;&ETH;&sup1;?" data-url="http://sadko.xskernel.org/archives/1704">Tweet</a> 
				<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script> 
			</div></div>
	<br style="clear:both;" /><p>Сегодня разочаровался в моём любимом <a href="http://vsftpd.beasts.org/"><b>Very Secure FTP Daemon</b></a>.<br />
Произошло это, когда мне нужно было реализовать что-то вроде RandomAccessFile, работающего по FTP. И когда я дошёл до seek-операций, обнаружил, что <b>vsftpd</b> некорректно отрабатывает пару команд REST + STOR. А именно, открывает файл всегда в режиме <b>O_APPEND</b>, о чём с горестью сообщает manpage:<br />
<span id="more-1704"></span></p>
<blockquote><p>
       O_APPEND<br />
              The  file is opened in append mode. Before each write(), the file offset is positioned at the end of the file, as if with<br />
              lseek().  O_APPEND may lead to corrupted files on NFS file systems if more than one process appends data  to  a  file  at<br />
              once.   This is because NFS does not support appending to a file, so the client kernel has to simulate it, which can&#8217;t be<br />
              done without a race condition.
</p></blockquote>
<p>Таким образом, получаем следующую ситуацию:</p>
<ul>
<li>Я создаю на удалённом сервере некий файл при помощи STOR.</li>
<li>Записываю в файл строку &#171;01234567890123456789&#8243;.</li>
<li>Закрываю файл (прекращаю передачу данных).</li>
<li>Делаю REST 3.</li>
<li>Снова открываю файл через STOR.</li>
<li>Записываю в файл строку &#171;xxx&#187;.</li>
<li>Закрываю файл.</li>
</ul>
<p>В результате таких нехитрых манипуляций, по идее, я должен получить файл с содержимым &#171;012xxx67890123456789&#8243;, вместо чего получаю файл с содержимым &#171;01234567890123456789xxx&#187;, то есть, &#171;xxx&#187; ушли в конец.<br />
При этом, <a href="http://proftpd.org/"><b>ProFTPD</b></a> замечательно разруливает эту ситуацию так, как надо.<br />
Что ж, думаю, может в новой версии <b>VSFTPD</b> это пофиксено. Качаю исходники, собираю, ставлю, но ситуация повторяется. Пришлось поковыряться в коде и выяснить, что там действительно делается <b>O_APPEND</b>, что вызвало массу негодования с моей стороны и было допилено.<br />
За сим выкладываю патч для <b>VSFTPD</b> и пропатченный архив для версии 2.2.2:</p>
<ul>
<li><a href="ftp://xskernel.org/pub/patches/vsftpd/vsftpd-2.2.2.patch.bz2">патч для версии 2.2.2</a>;</li>
<li><a href="ftp://xskernel.org/pub/patches/vsftpd/vsftpd-2.2.2-patched.tar.gz">пропатченная версия 2.2.2</a>.</li>
</ul>
<p><b>UPD:</b> Забыл добавить, что внёс ещё одну фичу: файл не будет транкейтиться, если предварительно сделать <b>REST 0</b>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sadko.xskernel.org/archives/1704/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KDE 4</title>
		<link>http://sadko.xskernel.org/archives/1639</link>
		<comments>http://sadko.xskernel.org/archives/1639#comments</comments>
		<pubDate>Mon, 30 Nov 2009 21:41:47 +0000</pubDate>
		<dc:creator>SadKo</dc:creator>
				<category><![CDATA[Одминское]]></category>
		<category><![CDATA[Свободное ПО]]></category>
		<category><![CDATA[compiz]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[opensuse]]></category>

		<guid isPermaLink="false">http://sadko.xskernel.org/?p=1639</guid>
		<description><![CDATA[Tweet Сижу вот, вникаю в KDE 4. Уж слишком вычурно как-то пока. Да и работает ощутимо плавнее и медленнее, чем KDE3. KDE 3 я тоже поставил, но вот есть одна незадача &#8212; падает knotify по непонятным причинам. А пока &#8212; текущий скриншот нового рабочего стола. Будем ковыряться дальше.]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin: 0 0 5px 10px; " class="vk-button">
<!-- vkontakte share button -->
<script type="text/javascript">
<!--
document.write(VK.Share.button(
{
  url: 'http://sadko.xskernel.org/archives/1639',
  title: 'KDE 4',
  description: 'Сижу вот, вникаю в KDE 4. Уж слишком вычурно как-то пока.\nДа и работает ощутимо плавнее и медленнее, чем KDE3.\nKDE 3 я тоже поставил, но вот есть одна незадача - падает knotify по непонятным причинам.\nА пок...',
  noparse: true 
}, 
{
  type: 'button',
  text: 'Скопировать'
}));
-->
</script>
<!-- / vkontakte share button -->
</div><div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; " class="really_simple_share_linkedin"> 
				<script type="text/javascript" src="http://platform.linkedin.com/in.js"></script>
				<script type="in/share" data-counter="right" data-url="http://sadko.xskernel.org/archives/1639"></script>
			</div><div style="float:left; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="KDE 4" data-url="http://sadko.xskernel.org/archives/1639">Tweet</a> 
				<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script> 
			</div></div>
	<br style="clear:both;" /><p>Сижу вот, вникаю в KDE 4. Уж слишком вычурно как-то пока.<br />
Да и работает ощутимо плавнее и медленнее, чем KDE3.<br />
KDE 3 я тоже поставил, но вот есть одна незадача &#8212; падает <b>knotify</b> по непонятным причинам.<br />
А пока &#8212; текущий скриншот нового рабочего стола.</p>
<p><a href="http://sadko.xskernel.org/wp-content/uploads/2009/12/kde4.png"><img src="http://sadko.xskernel.org/wp-content/uploads/2009/12/kde4-300x240.png" alt="Мой новый рабочий стол" title="kde4" width="300" height="240" class="size-medium wp-image-1638" /></a></p>
<p>Будем ковыряться дальше.</p>
]]></content:encoded>
			<wfw:commentRss>http://sadko.xskernel.org/archives/1639/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>openSUSE 11.2 Migration tips #2</title>
		<link>http://sadko.xskernel.org/archives/1625</link>
		<comments>http://sadko.xskernel.org/archives/1625#comments</comments>
		<pubDate>Sat, 28 Nov 2009 18:42:00 +0000</pubDate>
		<dc:creator>SadKo</dc:creator>
				<category><![CDATA[Одминское]]></category>
		<category><![CDATA[Свободное ПО]]></category>
		<category><![CDATA[Туториалы]]></category>
		<category><![CDATA[opensuse linux]]></category>

		<guid isPermaLink="false">http://sadko.xskernel.org/?p=1625</guid>
		<description><![CDATA[Tweet Вторая проблема, с которой пришлось столкнуться &#8212; это откровенно медленная работа Mozilla Firefox. Грузить страницу за 30 секунд при 9-мегабитном коннекте &#8212; позор. Поэтому, пошерстив немного инет, вышел на следующую страничку: Sooo slow Firefox on Suse 11.2 Оказывается, господа-разработчики Firefox немного перемудрили и врубили автоматическое использование DNS для IPv6. Поэтому лекарство следующее: 1. Пишем [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin: 0 0 5px 10px; " class="vk-button">
<!-- vkontakte share button -->
<script type="text/javascript">
<!--
document.write(VK.Share.button(
{
  url: 'http://sadko.xskernel.org/archives/1625',
  title: 'openSUSE 11.2 Migration tips #2',
  description: 'Вторая проблема, с которой пришлось столкнуться - это откровенно медленная работа Mozilla Firefox. Грузить страницу за 30 секунд при 9-мегабитном коннекте - позор.\nПоэтому, пошерстив немного инет, выш...',
  noparse: true 
}, 
{
  type: 'button',
  text: 'Скопировать'
}));
-->
</script>
<!-- / vkontakte share button -->
</div><div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; " class="really_simple_share_linkedin"> 
				<script type="text/javascript" src="http://platform.linkedin.com/in.js"></script>
				<script type="in/share" data-counter="right" data-url="http://sadko.xskernel.org/archives/1625"></script>
			</div><div style="float:left; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="openSUSE 11.2 Migration tips #2" data-url="http://sadko.xskernel.org/archives/1625">Tweet</a> 
				<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script> 
			</div></div>
	<br style="clear:both;" /><p>Вторая проблема, с которой пришлось столкнуться &#8212; это откровенно медленная работа <b>Mozilla Firefox</b>. Грузить страницу за 30 секунд при 9-мегабитном коннекте &#8212; позор.<br />
Поэтому, пошерстив немного инет, вышел на следующую страничку:<br />
<a href="http://www.linuxquestions.org/questions/susenovell-60/sooo-slow-firefox-on-suse-11.2-769848/">Sooo slow Firefox on Suse 11.2</a><br />
Оказывается, господа-разработчики Firefox немного перемудрили и врубили автоматическое использование DNS для IPv6. Поэтому лекарство следующее:<br />
1. Пишем в адресной строке: <b>about:config</b><br />
2. Ищем параметр <b>network.dns.disableIPv6</b> и выставляем его в <b>false</b><br />
3. &#8230;<br />
4. PROFIT!</p>
]]></content:encoded>
			<wfw:commentRss>http://sadko.xskernel.org/archives/1625/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>For fun.</title>
		<link>http://sadko.xskernel.org/archives/1603</link>
		<comments>http://sadko.xskernel.org/archives/1603#comments</comments>
		<pubDate>Fri, 20 Nov 2009 19:01:40 +0000</pubDate>
		<dc:creator>SadKo</dc:creator>
				<category><![CDATA[Кодинг]]></category>
		<category><![CDATA[Свободное ПО]]></category>
		<category><![CDATA[bsd]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[opensuse]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://sadko.xskernel.org/?p=1603</guid>
		<description><![CDATA[Tweet Совсем недавно приходилось решать интересную задачу по Unix: Фактически нужно было разработать демон simple-telnetd на языке Perl, позволяющий удалённо запускать некоторое ограниченное подмножество команд и выводить пользователю результат их выполнения. simple-telnetd может запускать только разрешенные программы, которые перечислены в файле /etc/simple-telnetd.conf. Демон должен перечитывать этот файл и обновлять список разрешенных программ после поступления сигнала [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin: 0 0 5px 10px; " class="vk-button">
<!-- vkontakte share button -->
<script type="text/javascript">
<!--
document.write(VK.Share.button(
{
  url: 'http://sadko.xskernel.org/archives/1603',
  title: 'For fun.',
  description: 'Совсем недавно приходилось решать интересную задачу по Unix:\nФактически нужно было разработать демон simple-telnetd на языке Perl, позволяющий удалённо запускать некоторое ограниченное подмножество ...',
  noparse: true 
}, 
{
  type: 'button',
  text: 'Скопировать'
}));
-->
</script>
<!-- / vkontakte share button -->
</div><div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; " class="really_simple_share_linkedin"> 
				<script type="text/javascript" src="http://platform.linkedin.com/in.js"></script>
				<script type="in/share" data-counter="right" data-url="http://sadko.xskernel.org/archives/1603"></script>
			</div><div style="float:left; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="For fun." data-url="http://sadko.xskernel.org/archives/1603">Tweet</a> 
				<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script> 
			</div></div>
	<br style="clear:both;" /><p>Совсем недавно приходилось решать интересную задачу по Unix:<br />
Фактически нужно было разработать демон simple-telnetd на языке Perl, позволяющий удалённо запускать некоторое ограниченное подмножество команд и выводить пользователю результат их выполнения. </p>
<ul>
<li>simple-telnetd может запускать только разрешенные программы, которые перечислены в файле /etc/simple-telnetd.conf. Демон должен перечитывать этот файл и обновлять список разрешенных программ после поступления сигнала SIGHUP;</li>
<li>Запускаемые программы могут иметь параметры командной строки, но simple-telnetd не должен поддерживать интерактивного взаимодействия пользователя с запускаемыми программами;</li>
<li>Демон не обязан обрабатывать спец символы: ^C, ^D, и т.д.</li>
<li>В качестве параметра командной строки simple-telnetd может передаваться параметр timeout &#8212; максимальное время выполнения одной команды;</li>
<li>Желательно чтобы демон мог прослушивать не только tcp сокеты, но и локальные (например /tmp/simple-telnetd);</li>
</ul>
<p>В конце-концов, скрипт всё же не пригодился, поэтому, чтобы компенсировать потраченное на него время, выкладываю его тут &#8212; вдруг, кому пригодится. Забрать его можно по этой ссылке.<br />
<a href="http://download.xskernel.org/pub/perl/simple-telnetd.tar.gz">simple-telnetd.tar.gz</a><br />
Если кому-то помогло, пишите, не стесняйтесь, буду рад <img src='http://sadko.xskernel.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Поскольку я писал этот демон с особым энтузиазмом, не обошлось без фич, которых нет в исходном задании: написал init.d-скрипт для службы, который успешно был протестирован в openSUSE Linux, оформил perldoc и manpages, сделал возможность интерактивной авторизации, ну и другая мелочёвка (уже даже и не помню какая) вдовесок.</p>
]]></content:encoded>
			<wfw:commentRss>http://sadko.xskernel.org/archives/1603/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

