<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2russianfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><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:sy="http://purl.org/rss/1.0/modules/syndication/" 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.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/outofcloud" /><feedburner:info uri="outofcloud" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><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://feedproxy.google.com/~r/outofcloud/~3/rUm_ACEtrEY/</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[Продолжая тему предыдущего&#160;поста.

Kwalify - парсер, валидатор и data binding (не знаю как перевести) для YAML и JSON. Реализация на Ruby и&#160;Java.

Data binding означает что вы можете связать схему с классом (прописать в схеме имя класса), и при валидации YAML файла валидатор вернет экземпляр этого класса с данными из&#160;файла.
]]></description>
			<content:encoded><![CDATA[<p>Продолжая тему <a href="http://outofcloud.net/blog/2008/05/json-validation/">предыдущего&nbsp;поста</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"><span class="caps">YAML</span></abbr> и <abbr title="JavaScript Object Notation"><span class="caps">JSON</span></abbr>. <a href="http://sourceforge.net/projects/kwalify/">Реализация</a> на Ruby и&nbsp;Java.</p>

<p>Data binding означает что вы можете связать схему с классом (прописать в схеме имя класса), и при валидации <span class="caps">YAML</span> файла валидатор вернет экземпляр этого класса с данными из&nbsp;файла.</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://feedproxy.google.com/~r/outofcloud/~3/adI0-HvKHQE/</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&#160;схем.

Сейчас существует реализация [...]]]></description>
			<content:encoded><![CDATA[<p>Нашел в сети интересный проект — <a href="http://json-schema.org/"><span class="caps">JSON</span> Schema</a> по валидации данных в формате <abbr title="JavaScript Object Notation"><span class="caps">JSON</span></abbr>. Формат описания схемы — <span class="caps">JSON</span>, синтаксис ясный и понятный, особенно если Вам приходилось писать схемы для <abbr title="eXtensible Markup Language"><span class="caps">XML</span></abbr>. Само описание схемы стандартное: базовые типы, сложные типы, минимальные/максимальные значения, <abbr title="Regular Expression">RegExp</abbr>, расширения на других схем. Т. е. взято все лучшее из <span class="caps">XML</span>&nbsp;схем.</p>

<p>Сейчас существует <a href="http://code.google.com/p/jsonschema/">реализация валидатора на JavaScript</a>, но думаю для других языков он и не очень нужен (хотя бывает полезен, и думаю&nbsp;появится).</p>

<p>Ссылки по&nbsp;теме:</p>

<ul>
    <li><a href="http://json-schema.org/"><span class="caps">JSON</span>&nbsp;Schema</a></li>
    <li><a href="http://code.google.com/p/jsonschema/">спецификация и валидатор <span class="caps">JSON</span> Schema @ Google&nbsp;Code</a></li>
    <li><a href="http://www.json.com/json-schema-proposal/"><span class="caps">JSON</span> Schema @&nbsp;json.com</a></li>
    <li><a href="http://groups.google.com/group/json-schema">обсуждение <span class="caps">JSON</span> Schema @ Google&nbsp;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://feedproxy.google.com/~r/outofcloud/~3/vsvQp64dmSo/</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 вот за такие вещи (думал написать сам, но погуглив нашел у&#160;Torchbox):

CREATE AGGREGATE to_array (
    sfunc = array_append,
    basetype = anyelement,
    stype = anyarray,
    initcond = '{}'
)

Теперь существует агрегатная функция to_array(), которая превращает выбраный столбец в массив.
Например, из&#160;таблицы:


 col_a &#124; col_b
-------+-------
 a [...]]]></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> нашел у&nbsp;<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>, которая превращает выбраный столбец в массив.
Например, из&nbsp;таблицы:</p>

<pre>
 col_a | col_b
-------+-------
 a     | 1
 a     | 2
 a     | 3
 b     | 1
 b     | 5
 b     | 12
</pre>

<p>по запросу
<code>SELECT col_a, to_array(col_b) FROM sometable GROUP BY col_a;</code>&nbsp;вернется</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> и тогда по запросу
<code>SELECT col_a, array_to_string(to_array(col_b), '; ') FROM sometable GROUP BY col_a;</code>
получается красота&nbsp;вроде:</p>

<pre>
 col_a | array_to_string
-------+-----------------
 b     | 1; 5; 12
 a     | 1; 2; 3
</pre>

<p>В обратную сторону, кстати тоже можно&nbsp;:)</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://feedproxy.google.com/~r/outofcloud/~3/-ZJtgLKTnZU/</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&#160;Tennison
]]></description>
			<content:encoded><![CDATA[<p>Интересная <a href="http://www.jenitennison.com/blog/node/84">статья про рефакторинг <span class="caps">XSLT</span> шаблонов</a> от <a href="http://www.jenitennison.com/">Jeni&nbsp;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>
