<?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://www.job-blog.bullgare.ru/category/%d0%b1%d0%b5%d0%b7-%d1%80%d1%83%d0%b1%d1%80%d0%b8%d0%ba%d0%b8/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.job-blog.bullgare.ru</link>
	<description>о программировании и работе</description>
	<lastBuildDate>Wed, 08 Feb 2012 09:39:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Open Mail Format (OMF)</title>
		<link>http://www.job-blog.bullgare.ru/2011/05/open-mail-format-omf/</link>
		<comments>http://www.job-blog.bullgare.ru/2011/05/open-mail-format-omf/#comments</comments>
		<pubDate>Wed, 18 May 2011 14:19:01 +0000</pubDate>
		<dc:creator>bullgare</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[OMF]]></category>

		<guid isPermaLink="false">http://www.job-blog.bullgare.ru/?p=1092</guid>
		<description><![CDATA[Open Mail Format (OMF) — это открытый стандарт разметки почтовых уведомлений. OMF позволяет вам улучшить представление ваших писем в интерфейсе почты Mail.Ru, повышая их эффективность и конверсию. http://api.mail.ru/mail/omf/ спецификация формата]]></description>
			<content:encoded><![CDATA[<blockquote><p>Open Mail Format (OMF) — это открытый стандарт разметки почтовых уведомлений. OMF позволяет вам улучшить представление ваших писем в интерфейсе почты Mail.Ru, повышая их эффективность и конверсию.</p></blockquote>
<p><a href="http://api.mail.ru/mail/omf/">http://api.mail.ru/mail/omf/</a></p>
<p><a href="http://www.openmailformat.org/specification.html">спецификация формата</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.job-blog.bullgare.ru/2011/05/open-mail-format-omf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Программы для обработки видео под Ubuntu</title>
		<link>http://www.job-blog.bullgare.ru/2010/10/%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d1%8b-%d0%b4%d0%bb%d1%8f-%d0%be%d0%b1%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b8-%d0%b2%d0%b8%d0%b4%d0%b5%d0%be-%d0%bf%d0%be%d0%b4-ubuntu/</link>
		<comments>http://www.job-blog.bullgare.ru/2010/10/%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d1%8b-%d0%b4%d0%bb%d1%8f-%d0%be%d0%b1%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b8-%d0%b2%d0%b8%d0%b4%d0%b5%d0%be-%d0%bf%d0%be%d0%b4-ubuntu/#comments</comments>
		<pubDate>Fri, 01 Oct 2010 20:09:35 +0000</pubDate>
		<dc:creator>bullgare</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[видео]]></category>

		<guid isPermaLink="false">http://www.job-blog.bullgare.ru/?p=790</guid>
		<description><![CDATA[AvideMUX &#8211; очень неплохая программа для перекодирования (понимает mkv, я ей перегоняю всякие домашние видео fullHD (MPEG4-AVC &#8211; single pass, quality quantizer average=22, MP3lame=128, контейнер MKV)) CinePaint Cinelerra Kino Jahshaka Slideshow Creator LiVES &#8211; судя по картинкам, может совмещать видео с фото и разные дорожки видео и аудио Vivia KDEnlive &#8211; можно создавать видеофрагменты, использую [...]]]></description>
			<content:encoded><![CDATA[<p>AvideMUX &#8211; очень неплохая программа для перекодирования (понимает mkv, я ей перегоняю всякие домашние видео fullHD (MPEG4-AVC &#8211; single pass, quality quantizer average=22, MP3lame=128, контейнер MKV))<br />
CinePaint<br />
Cinelerra<br />
Kino<br />
Jahshaka<br />
Slideshow Creator<br />
LiVES &#8211; судя по картинкам, может совмещать видео с фото и разные дорожки видео и аудио<br />
Vivia<br />
KDEnlive &#8211; можно создавать видеофрагменты, использую для генерации тайтлов, можно делать видео разрешением вплоть до 1440х1080<br />
FFmpeg<br />
<a href="http://techcityinc.com/2009/02/04/top-10-free-video-editors-for-ubuntu-linux/">более подробное описание</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.job-blog.bullgare.ru/2010/10/%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d1%8b-%d0%b4%d0%bb%d1%8f-%d0%be%d0%b1%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b8-%d0%b2%d0%b8%d0%b4%d0%b5%d0%be-%d0%bf%d0%be%d0%b4-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Выбор цвета (color picker) в linux</title>
		<link>http://www.job-blog.bullgare.ru/2010/08/%d0%b2%d1%8b%d0%b1%d0%be%d1%80-%d1%86%d0%b2%d0%b5%d1%82%d0%b0-color-picker-%d0%b2-linux/</link>
		<comments>http://www.job-blog.bullgare.ru/2010/08/%d0%b2%d1%8b%d0%b1%d0%be%d1%80-%d1%86%d0%b2%d0%b5%d1%82%d0%b0-color-picker-%d0%b2-linux/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 12:05:10 +0000</pubDate>
		<dc:creator>bullgare</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.job-blog.bullgare.ru/?p=781</guid>
		<description><![CDATA[В windows пользовался pixie &#8211; http://www.nattyware.com/pixie.php. Понадобился аналог под linux &#8211; нашёл grabc. По сравнению с pixie он конечно не так удобен &#8211; работает из командной строки, но хоть что-то.]]></description>
			<content:encoded><![CDATA[<p>В windows пользовался pixie &#8211; <a href="http://www.nattyware.com/pixie.php">http://www.nattyware.com/pixie.php</a>.<br />
Понадобился аналог под linux &#8211; нашёл <strong>grabc</strong>.<br />
По сравнению с pixie он конечно не так удобен &#8211; работает из командной строки, но хоть что-то.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.job-blog.bullgare.ru/2010/08/%d0%b2%d1%8b%d0%b1%d0%be%d1%80-%d1%86%d0%b2%d0%b5%d1%82%d0%b0-color-picker-%d0%b2-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Закрасить изображение в Gimp (размножить часть изображения)</title>
		<link>http://www.job-blog.bullgare.ru/2010/08/%d0%b7%d0%b0%d0%ba%d1%80%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%b8%d0%b7%d0%be%d0%b1%d1%80%d0%b0%d0%b6%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-gimp-%d1%80%d0%b0%d0%b7%d0%bc%d0%bd%d0%be%d0%b6%d0%b8%d1%82%d1%8c/</link>
		<comments>http://www.job-blog.bullgare.ru/2010/08/%d0%b7%d0%b0%d0%ba%d1%80%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%b8%d0%b7%d0%be%d0%b1%d1%80%d0%b0%d0%b6%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-gimp-%d1%80%d0%b0%d0%b7%d0%bc%d0%bd%d0%be%d0%b6%d0%b8%d1%82%d1%8c/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 12:06:54 +0000</pubDate>
		<dc:creator>bullgare</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[GIMP]]></category>

		<guid isPermaLink="false">http://www.job-blog.bullgare.ru/?p=765</guid>
		<description><![CDATA[Сложно придумать человеческое название этому процессу. К примеру, есть дизайн одной картинкой, из него нужна кнопка, на кнопке уже что-то написано, надо это убрать. Нужно прямоугольным выделением выделить нужную область, потом Инструменты->Преобразование->Масштаб и подвигать ползунок, пока избражение не закроет всю кнопку.]]></description>
			<content:encoded><![CDATA[<p>Сложно придумать человеческое название этому процессу.<br />
К примеру, есть дизайн одной картинкой, из него нужна кнопка, на кнопке уже что-то написано, надо это убрать.<br />
Нужно прямоугольным выделением выделить нужную область, потом <strong>Инструменты</strong>-><strong>Преобразование</strong>-><strong>Масштаб</strong> и подвигать ползунок, пока избражение не закроет всю кнопку.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.job-blog.bullgare.ru/2010/08/%d0%b7%d0%b0%d0%ba%d1%80%d0%b0%d1%81%d0%b8%d1%82%d1%8c-%d0%b8%d0%b7%d0%be%d0%b1%d1%80%d0%b0%d0%b6%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-gimp-%d1%80%d0%b0%d0%b7%d0%bc%d0%bd%d0%be%d0%b6%d0%b8%d1%82%d1%8c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как сдампить базу данных PostgreSql в локальную базу через командную строку в Windows</title>
		<link>http://www.job-blog.bullgare.ru/2010/05/%d0%ba%d0%b0%d0%ba-%d1%81%d0%b4%d0%b0%d0%bc%d0%bf%d0%b8%d1%82%d1%8c-%d0%b1%d0%b0%d0%b7%d1%83-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85-postgresql-%d0%b2-%d0%bb%d0%be%d0%ba%d0%b0%d0%bb%d1%8c%d0%bd%d1%83/</link>
		<comments>http://www.job-blog.bullgare.ru/2010/05/%d0%ba%d0%b0%d0%ba-%d1%81%d0%b4%d0%b0%d0%bc%d0%bf%d0%b8%d1%82%d1%8c-%d0%b1%d0%b0%d0%b7%d1%83-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85-postgresql-%d0%b2-%d0%bb%d0%be%d0%ba%d0%b0%d0%bb%d1%8c%d0%bd%d1%83/#comments</comments>
		<pubDate>Thu, 20 May 2010 12:06:45 +0000</pubDate>
		<dc:creator>bullgare</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[командная строка]]></category>

		<guid isPermaLink="false">http://www.job-blog.bullgare.ru/?p=730</guid>
		<description><![CDATA[pg_dump.exe -U [user_remote] -h [host_remote] [database_name] &#124; psql -U [user_local] -d [local_db_name]]]></description>
			<content:encoded><![CDATA[<pre class="code">
pg_dump.exe -U [user_remote] -h [host_remote] [database_name] | psql -U [user_local] -d [local_db_name]
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.job-blog.bullgare.ru/2010/05/%d0%ba%d0%b0%d0%ba-%d1%81%d0%b4%d0%b0%d0%bc%d0%bf%d0%b8%d1%82%d1%8c-%d0%b1%d0%b0%d0%b7%d1%83-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85-postgresql-%d0%b2-%d0%bb%d0%be%d0%ba%d0%b0%d0%bb%d1%8c%d0%bd%d1%83/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Свойства системы в Windows 7</title>
		<link>http://www.job-blog.bullgare.ru/2010/04/%d1%81%d0%b2%d0%be%d0%b9%d1%81%d1%82%d0%b2%d0%b0-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d1%8b-%d0%b2-windows-7/</link>
		<comments>http://www.job-blog.bullgare.ru/2010/04/%d1%81%d0%b2%d0%be%d0%b9%d1%81%d1%82%d0%b2%d0%b0-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d1%8b-%d0%b2-windows-7/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 18:50:41 +0000</pubDate>
		<dc:creator>bullgare</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[windows 7]]></category>

		<guid isPermaLink="false">http://www.job-blog.bullgare.ru/?p=671</guid>
		<description><![CDATA[То окно, которое было доступно в Windows XP при клике правой кнопкой мыши на &#171;мой компьютер&#187;->свойства, можно получить в Windows 7, если в командной строке ввести sysdm.cpl Я сделал ярлык на рабочем столе &#8211; не так удобно, как в XP, но хоть что-то.]]></description>
			<content:encoded><![CDATA[<p>То окно, которое было доступно в Windows XP при клике правой кнопкой мыши на &laquo;мой компьютер&raquo;->свойства, можно получить в Windows 7, если в командной строке ввести<br />
<strong>sysdm.cpl</strong><br />
Я сделал ярлык на рабочем столе &#8211; не так удобно, как в XP, но хоть что-то.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.job-blog.bullgare.ru/2010/04/%d1%81%d0%b2%d0%be%d0%b9%d1%81%d1%82%d0%b2%d0%b0-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d1%8b-%d0%b2-windows-7/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Заметки об использовании MongoDB в реальной системе (сервис Server Density)</title>
		<link>http://www.job-blog.bullgare.ru/2010/03/%d0%b7%d0%b0%d0%bc%d0%b5%d1%82%d0%ba%d0%b8-%d0%be%d0%b1-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b8-mongodb-%d0%b2-%d1%80%d0%b5%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b9/</link>
		<comments>http://www.job-blog.bullgare.ru/2010/03/%d0%b7%d0%b0%d0%bc%d0%b5%d1%82%d0%ba%d0%b8-%d0%be%d0%b1-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b8-mongodb-%d0%b2-%d1%80%d0%b5%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b9/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 12:37:19 +0000</pubDate>
		<dc:creator>bullgare</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[база данных]]></category>
		<category><![CDATA[бд]]></category>
		<category><![CDATA[ссылка]]></category>

		<guid isPermaLink="false">http://www.job-blog.bullgare.ru/?p=643</guid>
		<description><![CDATA[http://blog.boxedice.com/2010/02/28/notes-from-a-production-mongodb-deployment/. Узнал здесь]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.boxedice.com/2010/02/28/notes-from-a-production-mongodb-deployment/">http://blog.boxedice.com/2010/02/28/notes-from-a-production-mongodb-deployment/</a>.<br />
Узнал <a href="http://habrahabr.ru/blogs/hi/85938/">здесь</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.job-blog.bullgare.ru/2010/03/%d0%b7%d0%b0%d0%bc%d0%b5%d1%82%d0%ba%d0%b8-%d0%be%d0%b1-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b8-mongodb-%d0%b2-%d1%80%d0%b5%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Полнотекстовый поиск в PostgreSQL (8.4)</title>
		<link>http://www.job-blog.bullgare.ru/2010/02/%d0%bf%d0%be%d0%bb%d0%bd%d0%be%d1%82%d0%b5%d0%ba%d1%81%d1%82%d0%be%d0%b2%d1%8b%d0%b9-%d0%bf%d0%be%d0%b8%d1%81%d0%ba-%d0%b2-postgresql-8-4/</link>
		<comments>http://www.job-blog.bullgare.ru/2010/02/%d0%bf%d0%be%d0%bb%d0%bd%d0%be%d1%82%d0%b5%d0%ba%d1%81%d1%82%d0%be%d0%b2%d1%8b%d0%b9-%d0%bf%d0%be%d0%b8%d1%81%d0%ba-%d0%b2-postgresql-8-4/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 13:36:14 +0000</pubDate>
		<dc:creator>bullgare</dc:creator>
				<category><![CDATA[Без рубрики]]></category>

		<guid isPermaLink="false">http://www.job-blog.bullgare.ru/?p=630</guid>
		<description><![CDATA[Сразу в бой: Для нужных нам полей устанавливаем триггеры: на изменение данных CREATE TRIGGER "my_field_tr_after_insert_update_tsearch" AFTER INSERT OR UPDATE ON my_field FOR EACH ROW EXECUTE PROCEDURE my_field_trigger_on_insert_update();; на удаление данных CREATE TRIGGER "my_field_tr_after_delete_tsearch" AFTER DELETE ON my_field FOR EACH ROW EXECUTE PROCEDURE my_field_trigger_on_delete(); Соответствующие хранимые функции: для обновления create or replace function my_field_trigger_on_insert_update() returns trigger [...]]]></description>
			<content:encoded><![CDATA[<p>Сразу в бой:<br />
<span id="more-630"></span><br />
Для нужных нам полей устанавливаем триггеры:<br />
на изменение данных</p>
<pre class="code">
CREATE TRIGGER "my_field_tr_after_insert_update_tsearch"
AFTER INSERT OR UPDATE ON my_field
FOR EACH ROW EXECUTE PROCEDURE my_field_trigger_on_insert_update();;
</pre>
<p>на удаление данных</p>
<pre class="code">
CREATE TRIGGER "my_field_tr_after_delete_tsearch"
AFTER DELETE ON my_field
FOR EACH ROW EXECUTE PROCEDURE my_field_trigger_on_delete();
</pre>
<p>Соответствующие хранимые функции:<br />
для обновления</p>
<pre class="code">
create or replace function my_field_trigger_on_insert_update() returns trigger as $$
BEGIN
	PERFORM my_table_row_indexer( NEW );
	return NEW;
END;
$$
language $\$plpgsql$$
</pre>
<p>для удаления</p>
<pre class="code">
create or replace function my_field_trigger_on_delete() returns trigger as $$
BEGIN
	DELETE FROM search_table
	WHERE search_table.[field_id] = OLD.[field_id];
	return OLD;
END;
$$
language $\$plpgsql$$
</pre>
<p>Соответственно, осталось только определить мега-функцию <em>my_table_row_indexer</em></p>
<pre class="code">
create or replace function my_table_row_indexer( [table_name] ) returns void as $$
DECLARE
	Param ALIAS FOR $1;
	existId integer DEFAULT NULL;
	Id integer DEFAULT NULL;
	indexData RECORD;

BEGIN
	SELECT [search_table].[search_id] INTO existId
		FROM [search_table]
		WHERE	[search_table].[field_id] = Param.[field_id];
	Id := Param.[field_id];

-- все простые поля для индексации с разбивкой по весам
SELECT
COALESCE([table_name].[field1]::text, '') AS idx_dataA,
COALESCE([table_name].[field2]::text, '')||' '||
COALESCE([table_name].[field3]::text, '')||' '||
COALESCE([table_name].[field4]::text, '') AS idx_dataB,
COALESCE([table_name].[field5]::text, '')||' '||
COALESCE([table_name].[field6]::text, '') AS idx_dataC,
' ' AS idx_dataD, -- это если таких совсем нету
INTO indexData
FROM [table_name]
	WHERE [table_name].[field1] = Id;

-- заносим данные в таблицу индексов
	IF existId IS NULL THEN
		INSERT INTO [search_table] ([field_id], ts_vector)
			VALUES(Param.[field_id],
				setweight( to_tsvector( 'russian', indexData.idx_dataA::text ), 'A' ) ||
				setweight( to_tsvector( 'english', indexData.idx_dataA::text ), 'A' ) ||
				setweight( to_tsvector( 'russian', indexData.idx_dataB::text ), 'B' ) ||
				setweight( to_tsvector( 'english', indexData.idx_dataB::text ), 'B' ) ||
				setweight( to_tsvector( 'russian', indexData.idx_dataC::text ), 'C' ) ||
				setweight( to_tsvector( 'english', indexData.idx_dataC::text ), 'C' ) ||
				setweight( to_tsvector( 'russian', indexData.idx_dataD::text ), 'D' ) ||
				setweight( to_tsvector( 'english', indexData.idx_dataD::text ), 'D' )
			);
	ELSE
		UPDATE [search_table] SET (ts_vector)
			= (
				setweight( to_tsvector( 'russian', indexData.idx_dataA::text || refIndexA ), 'A' ) ||
				setweight( to_tsvector( 'english', indexData.idx_dataA::text || refIndexA ), 'A' ) ||
				setweight( to_tsvector( 'russian', indexData.idx_dataB::text || refIndexB ), 'B' ) ||
				setweight( to_tsvector( 'english', indexData.idx_dataB::text || refIndexB ), 'B' ) ||
				setweight( to_tsvector( 'russian', indexData.idx_dataC::text || refIndexC ), 'C' ) ||
				setweight( to_tsvector( 'english', indexData.idx_dataC::text || refIndexC ), 'C' ) ||
				setweight( to_tsvector( 'russian', indexData.idx_dataD::text || refIndexD ), 'D' ) ||
				setweight( to_tsvector( 'english', indexData.idx_dataD::text || refIndexD ), 'D' )
			)
		WHERE [search_id] = existId;
	END IF;

	RETURN;
END;
$$
language $$plpgsql$$
</pre>
<p>При этом поиск производится так:</p>
<pre class="code">
SELECT *
FROM [table_name]
LEFT JOIN [search_table]
	ON [search_table].[field_id] = [table_name].[field_id]
	WHERE [search_table].ts_vector @@ (plainto_tsquery('russian', 'безопасный текст') || plainto_tsquery('english', 'безопасный текст'))
ORDER BY
	ts_rank_cd(ts_vector,(plainto_tsquery('russian', 'безопасный текст') || plainto_tsquery('english', 'безопасный текст')), 32) DESC
LIMIT 20, 30
</pre>
<p>Можно заметить интересное число &laquo;32&#8243; &#8211; по этому поводу можно почитать мануал по PostgreSQL (глава 12.3.3. Ranking Search Results).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.job-blog.bullgare.ru/2010/02/%d0%bf%d0%be%d0%bb%d0%bd%d0%be%d1%82%d0%b5%d0%ba%d1%81%d1%82%d0%be%d0%b2%d1%8b%d0%b9-%d0%bf%d0%be%d0%b8%d1%81%d0%ba-%d0%b2-postgresql-8-4/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Как сделать прозрачный GIF в GIMP</title>
		<link>http://www.job-blog.bullgare.ru/2010/01/%d0%ba%d0%b0%d0%ba-%d1%81%d0%b4%d0%b5%d0%bb%d0%b0%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b7%d1%80%d0%b0%d1%87%d0%bd%d1%8b%d0%b9-gif-%d0%b2-gimp/</link>
		<comments>http://www.job-blog.bullgare.ru/2010/01/%d0%ba%d0%b0%d0%ba-%d1%81%d0%b4%d0%b5%d0%bb%d0%b0%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b7%d1%80%d0%b0%d1%87%d0%bd%d1%8b%d0%b9-gif-%d0%b2-gimp/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 13:28:42 +0000</pubDate>
		<dc:creator>bullgare</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[gif]]></category>
		<category><![CDATA[GIMP]]></category>

		<guid isPermaLink="false">http://www.job-blog.bullgare.ru/?p=625</guid>
		<description><![CDATA[1. Правой кнопкой на изображении: Слой -> Прозрачность -> Добавить альфа-канал 2. Правой кнопкой на изображении: Выделение -> По цвету 3. Ткнуть в нужный цвет (часть изображения выделится) 4. Правой кнопкой на изображении: Правка -> Очистить 5. Сохранить в GIF]]></description>
			<content:encoded><![CDATA[<p>1. Правой кнопкой на изображении: Слой -> Прозрачность -> Добавить альфа-канал<br />
2. Правой кнопкой на изображении: Выделение -> По цвету<br />
3. Ткнуть в нужный цвет (часть изображения выделится)<br />
4. Правой кнопкой на изображении: Правка -> Очистить<br />
5. Сохранить в GIF</p>
]]></content:encoded>
			<wfw:commentRss>http://www.job-blog.bullgare.ru/2010/01/%d0%ba%d0%b0%d0%ba-%d1%81%d0%b4%d0%b5%d0%bb%d0%b0%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b7%d1%80%d0%b0%d1%87%d0%bd%d1%8b%d0%b9-gif-%d0%b2-gimp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Что видят пользователи в браузере &#8211; инструмент от Google</title>
		<link>http://www.job-blog.bullgare.ru/2009/12/%d1%87%d1%82%d0%be-%d0%b2%d0%b8%d0%b4%d1%8f%d1%82-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d0%b5%d0%bb%d0%b8-%d0%b2-%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80%d0%b5-%d0%b8%d0%bd%d1%81/</link>
		<comments>http://www.job-blog.bullgare.ru/2009/12/%d1%87%d1%82%d0%be-%d0%b2%d0%b8%d0%b4%d1%8f%d1%82-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d0%b5%d0%bb%d0%b8-%d0%b2-%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80%d0%b5-%d0%b8%d0%bd%d1%81/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 14:08:09 +0000</pubDate>
		<dc:creator>bullgare</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[вёрстка]]></category>
		<category><![CDATA[дизайн]]></category>

		<guid isPermaLink="false">http://www.job-blog.bullgare.ru/?p=529</guid>
		<description><![CDATA[http://browsersize.googlelabs.com/ &#8211; инструмент от Google, который позволяет посмотреть сайт и оценить, какая его часть будет видна пользователям без прокрутки.]]></description>
			<content:encoded><![CDATA[<p><a href="http://browsersize.googlelabs.com/">http://browsersize.googlelabs.com/</a> &#8211; инструмент от Google, который позволяет посмотреть сайт и оценить, какая его часть будет видна пользователям без прокрутки.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.job-blog.bullgare.ru/2009/12/%d1%87%d1%82%d0%be-%d0%b2%d0%b8%d0%b4%d1%8f%d1%82-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d0%b5%d0%bb%d0%b8-%d0%b2-%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80%d0%b5-%d0%b8%d0%bd%d1%81/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

