<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2russianfull.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Out of Cloud</title>
	
	<link>http://outofcloud.net/blog</link>
	<description />
	<pubDate>Tue, 15 Jul 2008 22:58:38 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/outofcloud" type="application/rss+xml" /><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/outofcloud" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Foutofcloud" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Foutofcloud" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Foutofcloud" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://lenta.yandex.ru/settings.xml?name=feed&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Foutofcloud" src="http://lenta.yandex.ru/i/addfeed.gif">?????? ? ??????.?????</feedburner:feedFlare><item>
		<title>Валидация YAML</title>
		<link>http://feeds.feedburner.com/~r/outofcloud/~3/291590072/</link>
		<comments>http://outofcloud.net/blog/2008/05/yaml-validation/#comments</comments>
		<pubDate>Fri, 16 May 2008 11:50:12 +0000</pubDate>
		<dc:creator>KBA-KBA</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[JSON]]></category>

		<category><![CDATA[schema]]></category>

		<category><![CDATA[validation]]></category>

		<category><![CDATA[YAML]]></category>

		<guid isPermaLink="false">http://outofcloud.net/blog/?p=9</guid>
		<description><![CDATA[Продолжая тему предыдущего поста.
Kwalify - парсер, валидатор и data binding (не знаю как перевести) для YAML и JSON. Реализация на Ruby и Java.
Data binding означает что вы можете связать схему с классом (прописать в схеме имя класса), и при валидации YAML файла валидатор вернет экземпляр этого класса с данными из файла.
]]></description>
			<content:encoded><![CDATA[<p>Продолжая тему <a href="http://outofcloud.net/blog/2008/05/json-validation/">предыдущего поста</a>.</p>
<p><a href="http://www.kuwata-lab.com/kwalify/">Kwalify</a> - парсер, валидатор и data binding <span class="unimportant">(не знаю как перевести)</span> для <abbr title="YAML Ain't Markup Language">YAML</abbr> и <abbr title="JavaScript Object Notation">JSON</abbr>. <a href="http://sourceforge.net/projects/kwalify/">Реализация</a> на Ruby и Java.</p>
<p>Data binding означает что вы можете связать схему с классом (прописать в схеме имя класса), и при валидации YAML файла валидатор вернет экземпляр этого класса с данными из файла.</p>
]]></content:encoded>
			<wfw:commentRss>http://outofcloud.net/blog/2008/05/yaml-validation/feed/</wfw:commentRss>
		<feedburner:origLink>http://outofcloud.net/blog/2008/05/yaml-validation/</feedburner:origLink></item>
		<item>
		<title>Валидация JSON</title>
		<link>http://feeds.feedburner.com/~r/outofcloud/~3/336517998/</link>
		<comments>http://outofcloud.net/blog/2008/05/json-validation/#comments</comments>
		<pubDate>Fri, 16 May 2008 11:21:46 +0000</pubDate>
		<dc:creator>KBA-KBA</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[JSON]]></category>

		<category><![CDATA[schema]]></category>

		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://outofcloud.net/blog/?p=8</guid>
		<description><![CDATA[Нашел в сети интересный проект — JSON Schema по валидации данных в формате JSON. Формат описания схемы — JSON, синтаксис ясный и понятный, особенно если Вам приходилось писать схемы для XML. Само описание схемы стандартное: базовые типы, сложные типы, минимальные/максимальные значения, RegExp, расширения на других схем. Т. е. взято все лучшее из XML схем.
Сейчас существует [...]]]></description>
			<content:encoded><![CDATA[<p>Нашел в сети интересный проект — <a href="http://json-schema.org/">JSON Schema</a> по валидации данных в формате <abbr title="JavaScript Object Notation">JSON</abbr>. Формат описания схемы — JSON, синтаксис ясный и понятный, особенно если Вам приходилось писать схемы для <abbr title="eXtensible Markup Language">XML</abbr>. Само описание схемы стандартное: базовые типы, сложные типы, минимальные/максимальные значения, <abbr title="Regular Expression">RegExp</abbr>, расширения на других схем. Т. е. взято все лучшее из XML схем.</p>
<p>Сейчас существует <a href="http://code.google.com/p/jsonschema/">реализация валидатора на JavaScript</a>, но думаю для других языков он и не очень нужен (хотя бывает полезен, и думаю появится).</p>
<p>Ссылки по теме:</p>
<ul>
<li><a href="http://json-schema.org/">JSON Schema</a></li>
<li><a href="http://code.google.com/p/jsonschema/">спецификация и валидатор JSON Schema @ Google Code</a></li>
<li><a href="http://www.json.com/json-schema-proposal/">JSON Schema @ json.com</a></li>
<li><a href="http://groups.google.com/group/json-schema">обсуждение JSON Schema @ Google Groups</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://outofcloud.net/blog/2008/05/json-validation/feed/</wfw:commentRss>
		<feedburner:origLink>http://outofcloud.net/blog/2008/05/json-validation/</feedburner:origLink></item>
		<item>
		<title>Агрегатные функции в PostgreSQL</title>
		<link>http://feeds.feedburner.com/~r/outofcloud/~3/288737739/</link>
		<comments>http://outofcloud.net/blog/2008/05/aggregate-functions-in-postgresql/#comments</comments>
		<pubDate>Mon, 12 May 2008 14:58:46 +0000</pubDate>
		<dc:creator>KBA-KBA</dc:creator>
		
		<category><![CDATA[SQL]]></category>

		<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://outofcloud.net/blog/?p=7</guid>
		<description><![CDATA[Люблю PostgreSQL вот за такие вещи (думал написать сам, но погуглив нашел у Torchbox):
CREATE AGGREGATE to_array (
    sfunc = array_append,
    basetype = anyelement,
    stype = anyarray,
    initcond = '{}'
)
Теперь существует агрегатная функция to_array(), которая превращает выбраный столбец в массив.
Например, из таблицы:

 col_a &#124; [...]]]></description>
			<content:encoded><![CDATA[<p>Люблю <a href="http://www.postgresql.org/">PostgreSQL</a> вот за такие вещи (думал написать сам, но <a href="http://www.google.com/search?q=postgres+aggregate+to_array">погуглив</a> нашел у <a href="http://www.torchbox.com/blog/pgsql_aggregates.html">Torchbox</a>):</p>
<pre><code>CREATE AGGREGATE to_array (
    sfunc = array_append,
    basetype = anyelement,
    stype = anyarray,
    initcond = '{}'
)</code></pre>
<p>Теперь существует <a href="http://www.postgresql.org/docs/current/static/sql-expressions.html#SYNTAX-AGGREGATES">агрегатная функция</a> <code>to_array()</code>, которая превращает выбраный столбец в массив.<br />
Например, из таблицы:</p>
<pre>
 col_a | col_b
-------+-------
 a     | 1
 a     | 2
 a     | 3
 b     | 1
 b     | 5
 b     | 12
</pre>
<p>по запросу<br />
<code>SELECT col_a, to_array(col_b) FROM sometable GROUP BY col_a;</code><br />
вернется</p>
<pre>
 col_a | to_array
-------+----------
 b     | {1,5,12}
 a     | {1,2,3}
</pre>
<p>Массив можно легко перевести в строку с помощью <code><a href="http://www.postgresql.org/docs/8.2/static/functions-array.html">array_to_string(anyarray, text)</a></code> и тогда по запросу<br />
<code>SELECT col_a, array_to_string(to_array(col_b), '; ') FROM sometable GROUP BY col_a;</code><br />
получается красота вроде:</p>
<pre>
 col_a | array_to_string
-------+-----------------
 b     | 1; 5; 12
 a     | 1; 2; 3
</pre>
<p>В обратную сторону, кстати тоже можно :)</p>
]]></content:encoded>
			<wfw:commentRss>http://outofcloud.net/blog/2008/05/aggregate-functions-in-postgresql/feed/</wfw:commentRss>
		<feedburner:origLink>http://outofcloud.net/blog/2008/05/aggregate-functions-in-postgresql/</feedburner:origLink></item>
		<item>
		<title>[link] рефакторинг XSLT шаблонов</title>
		<link>http://feeds.feedburner.com/~r/outofcloud/~3/276921382/</link>
		<comments>http://outofcloud.net/blog/2008/04/link-refactoring-xslt-templates/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 13:28:59 +0000</pubDate>
		<dc:creator>KBA-KBA</dc:creator>
		
		<category><![CDATA[XML]]></category>

		<category><![CDATA[xslt]]></category>

		<guid isPermaLink="false">http://outofcloud.net/blog/?p=6</guid>
		<description><![CDATA[Интересная статья про рефакторинг XSLT шаблонов от Jeni Tennison
]]></description>
			<content:encoded><![CDATA[<p>Интересная <a href="http://www.jenitennison.com/blog/node/84">статья про рефакторинг XSLT шаблонов</a> от <a href="http://www.jenitennison.com/">Jeni Tennison</a></p>
]]></content:encoded>
			<wfw:commentRss>http://outofcloud.net/blog/2008/04/link-refactoring-xslt-templates/feed/</wfw:commentRss>
		<feedburner:origLink>http://outofcloud.net/blog/2008/04/link-refactoring-xslt-templates/</feedburner:origLink></item>
	</channel>
</rss>
