<?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"
	>

<channel>
	<title>#моск</title>
	<atom:link href="http://blog.folone.org.ua/wp-feed.php" rel="self" type="application/rss+xml" />
	<link>http://blog.folone.org.ua</link>
	<description>semanti</description>
	<pubDate>Wed, 26 Nov 2008 09:05:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>sessionRequest</title>
		<link>http://blog.folone.org.ua/MOCK=251</link>
		<comments>http://blog.folone.org.ua/MOCK=251#comments</comments>
		<pubDate>Mon, 24 Nov 2008 12:32:27 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/?p=251</guid>
		<description><![CDATA[
Сессия - инструмент передачи переменных из одной jsp-страницы в другую. В jsp-страницах уже определена переменная session класса HttpSession. Сессии в jsp-страницах поддерживаются по умолчанию, отключить эту поддержку можно с помощью опции session="false" директивы

&#60;%@page%&#62;

.
Тут же небольшой пример. Первая страница:

&#60;%
    String S =&#34;The message from the first application&#34;;
    session.setAttribute&#40;&#34;S&#34;, S&#41;;
  [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://folone.semanti.googlepages.com/2501935966_9bd6b5ae01.jpg" alt="java session" /><br />
<strong>Сессия</strong> - инструмент передачи переменных из одной jsp-страницы в другую. В jsp-страницах уже определена переменная <code>session</code> класса <code>HttpSession</code>. Сессии в jsp-страницах поддерживаются по умолчанию, отключить эту поддержку можно с помощью опции <code>session="false"</code> директивы</p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>%@page%<span style="font-weight: bold; color: black;">&gt;</span></span></pre></div></div>

<p>.</p>
<p>Тут же небольшой пример. <strong>Первая страница:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>%
    String S =<span style="color: #ff0000;">&quot;The message from the first application&quot;</span>;
    session.setAttribute<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;S&quot;</span>, S<span style="color: #66cc66;">&#41;</span>;
    out.println<span style="color: #66cc66;">&#40;</span>S+<span style="color: #ff0000;">&quot;&lt;br/&gt;</span>&quot;);
    out.println(session.getAttribute(&quot;S&quot;));
%&gt;
<span style="color: #009900;">&lt;br /&gt;</span>
<span style="color: #009900;">&lt;a href=&quot;</span>http://localhost:<span style="color: #cc66cc;">8080</span>/ses1/contin.jsp<span style="color: #ff0000;">&quot;&gt;</span>
    To the second page
<span style="color: #009900;">&lt;/a&gt;</span></span></pre></div></div>

<p><strong>Вторая:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>%
    out.println<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;The session variable is:&quot;</span>+session.getAttribute<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;S&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
%<span style="font-weight: bold; color: black;">&gt;</span></span></pre></div></div>

<p>Всё очень просто. Странички можно инклудить друг в друга. <code>include</code> - на этапе превращения в сервлет, <code>jsp:include</code> - на этапе запроса. Сразу пример. <strong>Первая страничка:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;body<span style="font-weight: bold; color: black;">&gt;</span></span></span>
     Including page ...
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;br</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;jsp:include</span> <span style="color: #000066;">page</span>=<span style="color: #ff0000;">&quot;req1.jsp&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>%
        out.println<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;&lt;br/&gt;</span>Finished&quot;);
    %&gt;
<span style="color: #009900;">&lt;/body&gt;</span></span></pre></div></div>

<p><strong>Вторая:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;body<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>%
        out.println<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Hello, &quot;</span>+request.getParameter<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;S&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    %<span style="font-weight: bold; color: black;">&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/body<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre></div></div>

<p>Теперь, учтя вышеизложенное, придумаем что-нибудь посложней. <strong>Первая страничка:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;body<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    Including page ...
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;br</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;jsp:include</span> <span style="color: #000066;">page</span>=<span style="color: #ff0000;">&quot;req1.jsp&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>%
        out.println <span style="color: #66cc66;">&#40;</span>request.getAttribute<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Q&quot;</span><span style="color: #66cc66;">&#41;</span> +<span style="color: #ff0000;">&quot;&lt;br&gt;</span>&quot;);
        out.println(&quot;<span style="color: #009900;">&lt;br/&gt;</span>Finished&quot;);
    %&gt;
<span style="color: #009900;">&lt;/body&gt;</span></span></pre></div></div>

<p><strong>..и инициализация переменной во второй страничке:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #aaaadd; font-weight: bold;">String</span> Q = <span style="color: #ff0000;">&quot;new string&quot;</span>;
request.<span style="color: #006600;">setAttribute</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Q&quot;</span>, Q<span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p><strong>Два слова о пересылке запроса:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;body<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    Forwarding request ...
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;br</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;jsp:forward</span> <span style="color: #000066;">page</span>=<span style="color: #ff0000;">&quot;req1.jsp&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>%
        out.println<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;&lt;br/&gt;</span>Finished&quot;);
    %&gt;
<span style="color: #009900;">&lt;/body&gt;</span></span></pre></div></div>

<p>Характерным случаем для пересылки запроса будет предварительная обработка данных сервлетом, установка бинов, и в результате пересылка их одному из документов.</p>
<p><strong>Пример пересылки в зависимости от запроса:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #000000; font-weight: bold;">try</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #aaaadd; font-weight: bold;">String</span> SP=<span style="color: #ff0000;">&quot;&quot;</span>;
    <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #aaaadd; font-weight: bold;">String</span> FIRST = <span style="color: #ff0000;">&quot;first&quot;</span>;
    <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #aaaadd; font-weight: bold;">String</span> SECOND = <span style="color: #ff0000;">&quot;second&quot;</span>;
    SP = request.<span style="color: #006600;">getParameter</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;S&quot;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #aaaadd; font-weight: bold;">String</span> ur = <span style="color: #ff0000;">&quot;/default.jsp&quot;</span>;
    <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>SP==<span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        ur=<span style="color: #ff0000;">&quot;/default.jsp&quot;</span>;
    <span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>SP.<span style="color: #006600;">equals</span><span style="color: #66cc66;">&#40;</span>FIRST<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> ur = <span style="color: #ff0000;">&quot;/first.jsp&quot;</span>;
        <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>SP.<span style="color: #006600;">equals</span><span style="color: #66cc66;">&#40;</span>SECOND<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> ur= <span style="color: #ff0000;">&quot;/second.jsp&quot;</span>;
    <span style="color: #66cc66;">&#125;</span>
    RequestDispatcher rd = getServletContext<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">getRequestDispatcher</span><span style="color: #66cc66;">&#40;</span>ur<span style="color: #66cc66;">&#41;</span>;
    rd.<span style="color: #006600;">forward</span><span style="color: #66cc66;">&#40;</span>request, response<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Фильтры. Позволяют организовать цепочки классов, которые последовательно выполняют запрос клиента. <strong>Основные элементы реализации:</strong></p>
<ul>
<li>В новом классе переопределить метод <code>doFilter()</code>;</li>
<li>Описать фильтр в дескрипторе развёртки (<code>web.xml</code>).</li>
</ul>
<p><strong>Простой пример</strong> (блокируем контент для некоторых имён, основной код):</p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #aaaadd; font-weight: bold;">String</span> S=<span style="color: #ff0000;">&quot;&quot;</span>+request.<span style="color: #006600;">getParameter</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;nm&quot;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>S.<span style="color: #006600;">equals</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;bob&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #aaaadd; font-weight: bold;">PrintWriter</span> out = response.<span style="color: #006600;">getWriter</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;You are banned because of persistent spamming&quot;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
    chain.<span style="color: #006600;">doFilter</span><span style="color: #66cc66;">&#40;</span>request, response<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p><strong>Два слова про страницы ошибок:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>%@page <span style="color: #000066;">contentType</span>=<span style="color: #ff0000;">&quot;text/html&quot;</span> <span style="color: #000066;">errorPage</span>=<span style="color: #ff0000;">&quot;err.jsp&quot;</span> <span style="color: #000066;">pageEncoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span>%<span style="font-weight: bold; color: black;">&gt;</span></span>
<span style="color: #00bbdd;">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;</span>
<span style="color: #00bbdd;">&quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;</span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;html<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;head<span style="font-weight: bold; color: black;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;meta</span> <span style="color: #000066;">http-equiv</span>=<span style="color: #ff0000;">&quot;Content-Type&quot;</span> <span style="color: #000066;">content</span>=<span style="color: #ff0000;">&quot;text/html; charset=UTF-8&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;title<span style="font-weight: bold; color: black;">&gt;</span></span></span>JSP Page<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/title<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/head<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;body<span style="font-weight: bold; color: black;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>%
            int <span style="color: #000066;">i</span>=<span style="color: #cc66cc;">10</span>;
            if <span style="color: #66cc66;">&#40;</span>i<span style="font-weight: bold; color: black;">&gt;</span></span>0) throw new Exception();
            else
        %&gt;
        Hello, world
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/body<span style="font-weight: bold; color: black;">&gt;</span></span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/html<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre></div></div>

<p><strong><br />
И сама страница ошибки:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>%@page <span style="color: #000066;">contentType</span>=<span style="color: #ff0000;">&quot;text/html&quot;</span> <span style="color: #000066;">pageEncoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span>%<span style="font-weight: bold; color: black;">&gt;</span></span>
<span style="color: #00bbdd;">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;</span>
<span style="color: #00bbdd;">&quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;</span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;html<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;head<span style="font-weight: bold; color: black;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;meta</span> <span style="color: #000066;">http-equiv</span>=<span style="color: #ff0000;">&quot;Content-Type&quot;</span> <span style="color: #000066;">isErrorPage</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000066;">content</span>=<span style="color: #ff0000;">&quot;text/html; charset=UTF-8&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;title<span style="font-weight: bold; color: black;">&gt;</span></span></span>Error Page<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/title<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/head<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;body<span style="font-weight: bold; color: black;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;h2<span style="font-weight: bold; color: black;">&gt;</span></span></span>Sorry, we erred<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/h2<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/body<span style="font-weight: bold; color: black;">&gt;</span></span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/html<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre></div></div>

<p><strong>И в заключение поговорим об атрибутах директивы</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>%@page%<span style="font-weight: bold; color: black;">&gt;</span></span></pre></div></div>

<p>.</p>
<ul>
<li><strong>import</strong> - импортируемые пакеты.</li>
<li><strong>contentType</strong> - MIME-тип содержимого, передаваемого клиенту.</li>
<li><strong>isThreadSafe</strong>(по умолчанию <code>true</code>) - определяет, является ли код потокобезопасным, и, в результате, должен ли сервлет реализовывать интерфейс <code>SingleThreadModel</code>.</li>
<li><strong>session</strong> (по умолчанию <code>true</code>) - автоматическая поддержка сессий.</li>
<li><strong>errorPage</strong> - установка страницы, которая выведется в случае ошибки.</li>
<li><strong>isErrorPage</strong> - может ли данная страница выводиться в качестве страницы ошибки.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=251/feed</wfw:commentRss>
		</item>
		<item>
		<title>Sushi time</title>
		<link>http://blog.folone.org.ua/MOCK=242</link>
		<comments>http://blog.folone.org.ua/MOCK=242#comments</comments>
		<pubDate>Sun, 23 Nov 2008 13:52:11 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[misc]]></category>

		<category><![CDATA[sushi]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/?p=242</guid>
		<description><![CDATA[




Выходные. Хэнд-мейд. Спасибо.
з.ы. дада, завидуйте.
]]></description>
			<content:encoded><![CDATA[<dl class="wp-caption alignleft" style="width: 250px;">
<dt class="wp-caption-dt">
<img src="http://farm4.static.flickr.com/3018/3052084219_927240251b_m.jpg" width="240" height="192" alt="DSC00514" />
</dt>
</dl>
<p>Выходные. <a href="http://www.flickr.com/photos/killnicole/sets/72157609783445531/">Хэнд-мейд</a>. <a href="http://veresk.org.ua/">Спасибо</a>.<br />
<strong>з.ы.</strong> дада, завидуйте.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=242/feed</wfw:commentRss>
		</item>
		<item>
		<title>Библиотеки тегов и jstl</title>
		<link>http://blog.folone.org.ua/MOCK=215</link>
		<comments>http://blog.folone.org.ua/MOCK=215#comments</comments>
		<pubDate>Sat, 22 Nov 2008 12:24:05 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[jstl]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/?p=215</guid>
		<description><![CDATA[




JSTL(JavaServer Pages Standard Tag Library) — в переводе с английского «стандартная библиотека тегов JSP». Она расширяет спецификацию JSP, добавляя библиотеку JSP тегов для общих нужд, таких как разбор XML данных, условная обработка, создание циклов и поддержка интернационализации. JSTL — конечный результат JSR 52, разработанного в рамках JCP(Процесса Java сообщества).
JSTL является альтернативой такому виду встроенной в [...]]]></description>
			<content:encoded><![CDATA[<dl class="wp-caption alignleft" style="width: 270px;">
<dt class="wp-caption-dt">
<img src="http://folone.semanti.googlepages.com/356301189_4d79f5ccae.jpg" alt="JSTL" />
</dt>
</dl>
<blockquote><p><strong>JSTL</strong>(<strong>J</strong>avaServer Pages <strong>S</strong>tandard <strong>T</strong>ag <strong>L</strong>ibrary) — в переводе с английского «стандартная библиотека тегов JSP». Она расширяет спецификацию JSP, добавляя библиотеку JSP тегов для общих нужд, таких как разбор XML данных, условная обработка, создание циклов и поддержка интернационализации. JSTL — конечный результат JSR 52, разработанного в рамках JCP(Процесса Java сообщества).<br />
JSTL является альтернативой такому виду встроенной в JSP логики, как скриптлеты, то есть прямые вставки Java кода. Использование стандартизованного множества тегов предпочтительнее, поскольку получаемый код легче поддерживать и проще отделять бизнес-логику от логики отображения.</p></blockquote>
<p> <a href="http://ru.wikipedia.org/wiki/JSTL">via</a></p>
<p>Библиотека десрипторов подключается к jsp-странице с помощью директивы</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict"><span style="color: #009900;">&lt;%@ taglib uri=“…<span style="color: #ff0000;">&quot; prefix=“…&quot;</span> %<span style="color: #000000; font-weight: bold;">&gt;</span></span></pre></div></div>

<p>. Это даёт возможность добавлять свои, пользовательские теги к страничке (правда похоже на импортирование существующих онтологий в свои?), в том числе и стандартную библиотеку тегов jsp (<strong>jstl</strong>).<br />
<strong><br />
Основные группы тегов jstl:</strong></p>
<ul>
<li>вывод текста на jsp-страницах;</li>
<li>установка атрибутов объектов для веб-приложений;</li>
<li>перебор элементов некоторой коллекции данных;</li>
<li>форматирование чисел, дат, валют;</li>
<li>обработка XML-файлов;</li>
<li>взаимодействие с бд;</li>
<li>специальные возможности вызова кода из страницы jsp.</li>
</ul>
<p><strong>Простейший пример:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="html4strict"><span style="color: #009900;">&lt;%@page contentType=<span style="color: #ff0000;">&quot;text/html&quot;</span> pageEncoding=<span style="color: #ff0000;">&quot;UTF-8&quot;</span>%<span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;">&lt;%@ taglib uri=<span style="color: #ff0000;">&quot;http://java.sun.com/jsp/jstl/core&quot;</span> prefix=<span style="color: #ff0000;">&quot;c&quot;</span> %<span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #00bbdd;">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;</span>
<span style="color: #00bbdd;"> &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;html&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;head&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;meta</span> <span style="color: #000066;">http-equiv</span>=<span style="color: #ff0000;">&quot;Content-Type&quot;</span> <span style="color: #000066;">content</span>=<span style="color: #ff0000;">&quot;text/html; charset=UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title&gt;</span></span>JSP Page<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/head&gt;</span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;body&gt;</span></span>
        <span style="color: #009900;">&lt;c:out <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;hello&quot;</span>/<span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/body&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/html&gt;</span></span></pre></div></div>

<p><strong>Перебор значений:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="html4strict"><span style="color: #009900;">&lt;c:set var=<span style="color: #ff0000;">&quot;SS&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;Ivanov, Petrov, Sidorov&quot;</span>/<span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;">&lt;c:forEach var=<span style="color: #ff0000;">&quot;v&quot;</span> items=<span style="color: #ff0000;">&quot;${SS}&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    ${v}
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;br</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;</span>/c:forEach&gt;</span></pre></div></div>

<p><strong>Парсинг xml:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="html4strict"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;body&gt;</span></span>
    <span style="color: #009900;">&lt;c:import url=<span style="color: #ff0000;">&quot;books.xml&quot;</span> var=<span style="color: #ff0000;">&quot;xb&quot;</span>/<span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;">&lt;x:parse doc=<span style="color: #ff0000;">&quot;${xb}&quot;</span> var=<span style="color: #ff0000;">&quot;xx&quot;</span>/<span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;">&lt;x:forEach var=<span style="color: #ff0000;">&quot;v&quot;</span> select=<span style="color: #ff0000;">&quot;$xx/catalogue/book/title&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;">&lt;x:out select=<span style="color: #ff0000;">&quot;$v&quot;</span>/<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;br</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;</span>/x:forEach&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/body&gt;</span></span></pre></div></div>

<p><strong>Соответствующий xml-файл:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="font-weight: bold; color: black;">?&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;catalogue</span> <span style="color: #000066;">location</span>=<span style="color: #ff0000;">&quot;Congress Library&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;book<span style="font-weight: bold; color: black;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;author<span style="font-weight: bold; color: black;">&gt;</span></span></span>Sidorov<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/author<span style="font-weight: bold; color: black;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;title<span style="font-weight: bold; color: black;">&gt;</span></span></span>The pleasure of murders<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/title<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/book<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;book<span style="font-weight: bold; color: black;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;author<span style="font-weight: bold; color: black;">&gt;</span></span></span>Petrov<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/author<span style="font-weight: bold; color: black;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;title<span style="font-weight: bold; color: black;">&gt;</span></span></span>Innocent victims<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/title<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/book<span style="font-weight: bold; color: black;">&gt;</span></span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/catalogue<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=215/feed</wfw:commentRss>
		</item>
		<item>
		<title>java beans &#038; jsp</title>
		<link>http://blog.folone.org.ua/MOCK=198</link>
		<comments>http://blog.folone.org.ua/MOCK=198#comments</comments>
		<pubDate>Fri, 21 Nov 2008 23:47:55 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[beans]]></category>

		<category><![CDATA[jsp]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/?p=198</guid>
		<description><![CDATA[




Ещё один банальный пост о всем известных штуках. Поясню, зачем пишу эти посты. Мне бы хотелось поднять пару интересных мне тем, связанных с фреймворками: JSF, Hibernate, Spring, &#8230; Потому мне кажется правильным вначале поговорить о некоторых моментах, которые впоследствии я планирую использовать в контексте последующих постов. Заранее прошу прощения у тех, кому кажется, что ниженаписанное [...]]]></description>
			<content:encoded><![CDATA[<dl class="wp-caption alignleft" style="width: 250px;">
<dt class="wp-caption-dt">
<img src="http://folone.semanti.googlepages.com/2752053377_64c1963a61copy.jpg" alt="java beans &#038; jsp" />
</dt>
</dl>
<p>Ещё один банальный пост о всем известных штуках. Поясню, зачем пишу эти посты. Мне бы хотелось поднять пару интересных мне тем, связанных с фреймворками: <em>JSF, Hibernate, Spring,</em> &#8230; Потому мне кажется правильным вначале поговорить о некоторых моментах, которые впоследствии я планирую использовать в контексте последующих постов. Заранее прошу прощения у тех, кому кажется, что ниженаписанное ежу понятно. Постараюсь стать интересней в ближайшее время.</p>
<p><strong>&#8592;&nbsp;Пикрелейтед</strong> - материальная помощь фотошопокалекам от <a href="http://veresk.org.ua/" rel="friend met sweetheart">чудесного дизайнера</a>.</p>
<blockquote><p><strong>JavaBeans</strong> — классы в языке Java, написанные по определённым правилам. Они используются для объединения нескольких объектов в один (bean) для удобной передачи данных.</p>
<p>Спецификация Sun Microsystems определяет JavaBeans, как &#8220;универсальные программные компоненты, которые могут управляться с помощью графического интерфейса&#8221; (<em>&#8220;reusable software components that can be manipulated visually in a builder tool&#8221;</em>).</p></blockquote>
<p> <a href="http://ru.wikipedia.org/wiki/JavaBeans">via</a></p>
<p><strong>Правила описания bean`ов:</strong></p>
<ul>
<li>Класс компонента должен иметь <code>public</code>-конструктор без параметров (либо не иметь конструкторов).</li>
<li>Свойства класса должны быть доступны через методы с именами, которые подчинятся стантдартному соглашению об именах (<code>get</code>, <code>set</code>, <code>is</code>, &#8230;). Да, мне тоже вспоминаются страшные слова <em>&#8220;аксессор&#8221;</em> и <em>&#8220;мутатор&#8221;</em> из курса ООП в универе.</li>
<li>Класс должен быть сериализуем. Для сохранения состояния платформонезависимым способом.</li>
<li>Не должен содержать методы обработки событий.</li>
</ul>
<p>Bean-компоненты могут быть использованы как консольными, так и веб-приложениями.</p>
<p><strong>Пример bean`a:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #000000; font-weight: bold;">package</span> beantest;
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> StringBean <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #aaaadd; font-weight: bold;">String</span> request;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #aaaadd; font-weight: bold;">String</span> appendix;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #aaaadd; font-weight: bold;">String</span> answer;
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #993333;">void</span> treat<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        answer=appendix+request;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #993333;">void</span> setAppendix<span style="color: #66cc66;">&#40;</span><span style="color: #aaaadd; font-weight: bold;">String</span> appendix<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006600;">appendix</span>=appendix;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #aaaadd; font-weight: bold;">String</span> getRequest<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> request;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #aaaadd; font-weight: bold;">String</span> getAppendix<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> appendix;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #aaaadd; font-weight: bold;">String</span> getAnswer<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        treat<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #000000; font-weight: bold;">return</span> answer;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #993333;">void</span> setRequest<span style="color: #66cc66;">&#40;</span><span style="color: #aaaadd; font-weight: bold;">String</span> request<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006600;">request</span>=request;
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p><strong>Пример прокладки между ben`ом и jsp-страницой:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #a1a100;">import beantest.*;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> testbean <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #993333;">void</span> main <span style="color: #66cc66;">&#40;</span><span style="color: #aaaadd; font-weight: bold;">String</span><span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> args<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        StringBean sb=<span style="color: #000000; font-weight: bold;">new</span> StringBean<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
        sb.<span style="color: #006600;">setRequest</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;aaaa&quot;</span><span style="color: #66cc66;">&#41;</span>;
        sb.<span style="color: #006600;">setAppendix</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;hello, &quot;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #aaaadd; font-weight: bold;">System</span>.<span style="color: #006600;">out</span>.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span>sb.<span style="color: #006600;">getAnswer</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p><strong>И пример самой jsp-странички:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;html<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;head<span style="font-weight: bold; color: black;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;title<span style="font-weight: bold; color: black;">&gt;</span></span></span> The simple JSP page <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/title<span style="font-weight: bold; color: black;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/head<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;body<span style="font-weight: bold; color: black;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;jsp:useBean</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;info&quot;</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;beantest.StringBean&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;jsp:setProperty</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;info“ property=&quot;</span>appendix“ <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;Hello, &quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;jsp:setProperty</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;info“ property=&quot;</span>request<span style="color: #ff0000;">&quot; value='&lt;%=request.getParameter(&quot;</span>input<span style="color: #ff0000;">&quot;)%&gt;</span>'/&gt;
        <span style="color: #009900;">&lt;center&gt;</span>
            <span style="color: #009900;">&lt;strong&gt;</span>
                <span style="color: #009900;">&lt;jsp:getProperty name=&quot;</span>info“ <span style="color: #000066;">property</span>=<span style="color: #ff0000;">&quot;answer&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/strong<span style="font-weight: bold; color: black;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/center<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/body<span style="font-weight: bold; color: black;">&gt;</span></span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/html<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=198/feed</wfw:commentRss>
		</item>
		<item>
		<title>JSP - сервлеты. Базовые возможности.</title>
		<link>http://blog.folone.org.ua/MOCK=194</link>
		<comments>http://blog.folone.org.ua/MOCK=194#comments</comments>
		<pubDate>Thu, 20 Nov 2008 19:09:36 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[jsp]]></category>

		<category><![CDATA[servlet]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/?p=194</guid>
		<description><![CDATA[




Ниженаписанное будет Вам не интересно в случае, если вы знаете, что такое JSP. Тут излагаются только основные сведения о сервлетах, ничего нового либо оригинального.
Сервлет - java-программа, выполняющаяся на стороне сервера и расширяющей функциональные возможности сервера. Сервлет взаимодействует с клиентами посредством принципа запрос-ответ.
via.
Сервлеты должны реализовывать интерфейс Servlet. Также имеется несколько готовіх реализаций: класс GenericServlet и дочерний [...]]]></description>
			<content:encoded><![CDATA[<dl class="wp-caption alignleft" style="width: 250px;">
<dt class="wp-caption-dt">
<img src="http://folone.semanti.googlepages.com/jsp.jpg" alt="jsp" />
</dt>
</dl>
<p>Ниженаписанное будет Вам не интересно в случае, если вы знаете, что такое JSP. Тут излагаются <strong>только</strong> основные сведения о сервлетах, ничего нового либо оригинального.</p>
<blockquote><p><strong>Сервлет</strong> - java-программа, выполняющаяся на стороне сервера и расширяющей функциональные возможности сервера. Сервлет взаимодействует с клиентами посредством принципа запрос-ответ.</p></blockquote>
<p><a href="http://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%80%D0%B2%D0%BB%D0%B5%D1%82">via</a>.</p>
<p>Сервлеты должны реализовывать интерфейс <code>Servlet</code>. Также имеется несколько готовіх реализаций: класс <code>GenericServlet</code> и дочерний для него класс <code>HttpServlet</code> (как правило, его наследуют при написании сервлетов для расширения веб-серверов). Соответствующие классы и интерфейся находятся в пакетах <code>javax.servlet</code> и <code>javax.servlet.http</code>.</p>
<p><strong>Жизненный цикл сервлета:</strong></p>
<ol>
<li>В случае отсутствия сервлета в контейнере.
<ol>
<li>Класс сервлета загружается контейнером.</li>
<li>Контейнер создает экземпляр класса сервлета.</li>
<li>Контейнер вызывает метод <code>init()</code>. Этот метод инициализирует сервлет и вызывается в первую очередь, до того, как сервлет сможет обслуживать запросы. За весь жизненный цикл метод <code>init()</code> вызывается только однажды.</li>
</ol>
</li>
<li>Обслуживание клиентского запроса. Каждый запрос обрабатывается в своем отдельном потоке. Контейнер вызывает метод <code>service()</code> для каждого запроса. Этот метод определяет тип пришедшего запроса и распределяет его в соответствующий этому типу метод для обработки запроса (например <code>doGet()</code>, <code>doPost()</code>). Разработчик сервлета должен предоставить реализацию для этих методов. Если поступил запрос, метод для которого не реализован, вызывается метод родительского класса и обычно завершается возвращением ошибки инициатору запроса.</li>
<li>В случае если контейнеру необходимо удалить сервлет, он вызывает метод <code>destroy()</code>, который снимает сервлет из эксплуатации. Подобно методу <code>init()</code>, этот метод тоже вызывается единожды за весь цикл сервлета.</li>
</ol>
<p><strong>Прочие важные методы:</strong></p>
<ul>
<li>Получение параметра запроса - метод getParameter(&#8221;name&#8221;)</li>
<li>Получение потока вывода - метод getWriter()</li>
</ul>
<p><strong>Простейший пример сервлета:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #a1a100;">import java.io.*;</span>
<span style="color: #a1a100;">import javax.servlet.*;</span>
<span style="color: #a1a100;">import javax.servlet.http.*;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> reply <span style="color: #000000; font-weight: bold;">extends</span> HttpServlet <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #993333;">void</span> doGet <span style="color: #66cc66;">&#40;</span>HttpServletRequest request, HttpServletResponse response<span style="color: #66cc66;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> ServletException, <span style="color: #aaaadd; font-weight: bold;">IOException</span> <span style="color: #66cc66;">&#123;</span>
        response.<span style="color: #006600;">setContentType</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;text/html&quot;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #aaaadd; font-weight: bold;">String</span> req=request.<span style="color: #006600;">getParameter</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;name&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
        <span style="color: #aaaadd; font-weight: bold;">PrintWriter</span> out = response.<span style="color: #006600;">getWriter</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
        out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span>; out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span>;
        out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span>; out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;&lt;span style=&quot;</span>font-size: x-large; color: maroon;<span style="color: #ff0000;">&quot;&gt;&quot;</span><span style="color: #66cc66;">&#41;</span>;
        out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;GREETINGS, &quot;</span>+req+<span style="color: #ff0000;">&quot;!&quot;</span><span style="color: #66cc66;">&#41;</span>;
        out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;&lt;/span&gt;&quot;</span><span style="color: #66cc66;">&#41;</span>; out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span>;
        out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;This is a very simple servlet&quot;</span><span style="color: #66cc66;">&#41;</span>;
        out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span>;
        out.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span>; out.<span style="color: #006600;">close</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p><strong>Подготовка сервлетов к выполнению:</strong></p>
<ul>
<li>Компиляция</li>
<li>Подготовка связанных файлов, в частности - дескрипторов развёртки (web.xml)</li>
<li>Типичным шагом является упаковка сервлетов в war-файлы с помощью утилит jar либо ant.</li>
<li>Доставка на сервер - с помощью deploytools, либо ручная развёртка.</li>
</ul>
<p><strong>Дескриптор развёртки:</strong></p>
<ul>
<li>Тег &lt;servlet&gt;, который задаёт соответствие между именем сервлета (servlet-name) и его классом (servlet-class).</li>
<li>Тег &lt;servlet-mapping&gt;, который задаёт соответствие между именем сервлета (&lt;servlet-name&gt;) и методом обращения к нему (&lt;url-pattern&gt;)</li>
</ul>
<p><strong>Простой пример дескриптора развёртки:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;servlet<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;servlet-name<span style="font-weight: bold; color: black;">&gt;</span></span></span> reply <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/servlet-name<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;servlet-class<span style="font-weight: bold; color: black;">&gt;</span></span></span> reply <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/servlet-class<span style="font-weight: bold; color: black;">&gt;</span></span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/servlet<span style="font-weight: bold; color: black;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;servlet-mapping<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;servlet-name<span style="font-weight: bold; color: black;">&gt;</span></span></span> reply <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/servlet-name<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;url-pattern<span style="font-weight: bold; color: black;">&gt;</span></span></span>/servlet/reply<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/url-pattern<span style="font-weight: bold; color: black;">&gt;</span></span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/servlet-mapping<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre></div></div>

<p><strong>jsp-страницы:</strong><br />
Комбинация статического html и динамического контента из скриптлетов.<br />
Например:</p>

<div class="wp_syntax"><div class="code"><pre>&lt;html&gt;
    &lt;head&gt;
        &lt;title&gt;
            The simple JSP page
        &lt;/title&gt;
    &lt;/head&gt;
&nbsp;
    &lt;body&gt;
        &lt;%
            String name=request.getParameter(&quot;name&quot;);
        %&gt;
        &lt;center&gt;
            &lt;img src=&quot;sample.jpg&quot; /&gt;
            &lt;br clear=&quot;all&quot; /&gt;
            &lt;strong&gt;
                Hello, &lt;%=name%&gt;
            &lt;/strong&gt;
        &lt;/center&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre></div></div>

<p><strong>Также используются:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>%! Декларации %<span style="font-weight: bold; color: black;">&gt;</span></span>, <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>%@ Директивы <span style="color: #66cc66;">&#40;</span>директива атрибуты<span style="color: #66cc66;">&#41;</span> %<span style="font-weight: bold; color: black;">&gt;</span></span> и <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>%-- Комментарии %<span style="font-weight: bold; color: black;">&gt;</span></span></pre></div></div>

<p><strong>Некоторые заранее определённые переменные:</strong></p>
<ul>
<li><em>request</em> - запрос клиента, объект класса <em>HttpServletRequest</em></li>
<li><em>response</em> - ответ клиенту, объект класса <em>HttpServletResponse</em></li>
<li><em>out</em> - поток класса <em>PrintWriter</em>, используется для передачи данных клиенту</li>
<li><em>session</em> - данные сессии, объект класса <em>HttpSession</em></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=194/feed</wfw:commentRss>
		</item>
		<item>
		<title>i`m back+semanticAPI</title>
		<link>http://blog.folone.org.ua/MOCK=184</link>
		<comments>http://blog.folone.org.ua/MOCK=184#comments</comments>
		<pubDate>Tue, 18 Nov 2008 09:34:09 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[projects]]></category>

		<category><![CDATA[semantic web]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/?p=184</guid>
		<description><![CDATA[




Я снова вернулся. И я счастлив. Но. Тут не о том. Не буду рассказывать о причинах моего отсутствия, расскажу лучше о том, как преобразится блог. Я поудалял все лишние посты (оставил только тематические и те, которые было жалко удалить): о личной жизни и прочей нечисти буду писать на тумблр. Когда-нибудь. Когда время будет. Тут же [...]]]></description>
			<content:encoded><![CDATA[<div class="mceTemp">
<dl class="wp-caption alignleft" style="width: 250px;">
<dt class="wp-caption-dt"><img title="i`m back" src="http://folone.googlepages.com/2784638549_936e316991_m.jpg" alt="i`m back" width="240" height="180" /></dt>
</dl>
</div>
<p>Я снова вернулся. И я счастлив. Но. Тут не о том. Не буду рассказывать о причинах моего отсутствия, расскажу лучше о том, как преобразится блог. Я поудалял все лишние посты (оставил только тематические и те, которые было жалко удалить): о личной жизни и прочей нечисти буду писать на <a href="http://folone.tumblr.com/">тумблр</a>. Когда-нибудь. Когда время будет. Тут же отныне останется две основные и две вспомогательные категории: <em>java</em> и <em>semantic web</em>; <em>projects</em> и <em>misc</em> (на случай если всё-же очень захочется нечисти тут).</p>
<p>Итак, пишем о жаве и семантик веб. И начнём прямо сейчас. Те, кто меня читал в начале этого года, помнят, возможно, что темой моей дипломной работы был <em>Семантический Веб</em>. Собственно, практической частью работы было написание API на жаве, <strong>semanticAPI</strong>. АПИ включает в себя два пакета: <strong>microformatParser</strong> и <strong>rdfParser</strong>, в каждом - класс <strong>document</strong> и единственный (кроме конструктора, конечно же) публичный метод - <strong>gerMicroformats()</strong> и <strong>parseRdf()</strong> соответственно. Не буду вдаваться в реализацию, желающим полистать сорцы могу предложить их скачать <a href="http://folone.semanti.googlepages.com/semanticApi.zip">тут</a>, желающим всё это просто напросто заюзать (если такие правда будут), предлагаю ознакомиться с UML-диаграммами и презентацией (оставил с защиты работы; если заинтересует, выложу русскую версию) ниже и скачать <a href="http://folone.semanti.googlepages.com/semanticApi.jar">jar-файл</a>.</p>
<h3>microformatParser:</h3>
<div class="mceTemp">
<dl class="wp-caption alignnone" style="width: 792px;">
<dt class="wp-caption-dt"><img title="microformatParser" src="http://folone.semanti.googlepages.com/mf.jpg" alt="microformatParser" width="782" height="308" /></dt>
</dl>
</div>
<h3>rdfParser:</h3>
<div class="mceTemp">
<dl class="wp-caption alignnone" style="width: 608px;">
<dt class="wp-caption-dt"><img title="rdfParser" src="http://folone.semanti.googlepages.com/rdf.jpg" alt="rdfParser" width="598" height="217" /></dt>
</dl>
</div>
<h3>Презентация:</h3>
<p><iframe src='http://docs.google.com/EmbedSlideshow?docid=ddf57mhm_62c8pvk7ht&amp;size=m' frameborder='0' width='555' height='451'></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=184/feed</wfw:commentRss>
		</item>
		<item>
		<title>[Онтологии] MetaVocab</title>
		<link>http://blog.folone.org.ua/MOCK=158</link>
		<comments>http://blog.folone.org.ua/MOCK=158#comments</comments>
		<pubDate>Wed, 21 May 2008 20:59:52 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[semantic web]]></category>

		<category><![CDATA[metaVocab]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/MOCK=158</guid>
		<description><![CDATA[Очередной вольный перевод наброска спецификации. Сегодня мы рассмотрим онтологию, которая используется для описания авторов и генераторов rdf-документов, MetaVocab (рабочее название -
 RDF Site Summary 1.0 Modules: Administrative, потому и картинка к посту такая). Данная онтология имеет статус &#8220;proposed&#8221;, но уже используется в некоторых контекстах. Как и TrackBack, онтология разрабатывалась как дополнение к RSS 1.0, но [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm2.static.flickr.com/1087/951510431_5247e5fad6_m.jpg" alt="metaVocab" width="240" height="199" align="left" />Очередной вольный перевод <a href="http://web.resource.org/rss/1.0/modules/admin/">наброска спецификации</a>. Сегодня мы рассмотрим онтологию, которая используется для описания авторов и генераторов rdf-документов, <strong>MetaVocab</strong> (рабочее название -<br />
<strong> RDF Site Summary 1.0 Modules: Administrative</strong>, потому и картинка к посту такая). Данная онтология имеет статус &#8220;proposed&#8221;, но уже используется в некоторых контекстах. Как и <a href="http://blog.folone.org.ua/MOCK=157">TrackBack</a>, онтология разрабатывалась как дополнение к RSS 1.0, но может использоваться в не-rdf-форматированном RSS 2.0. Итак, начнём:</p>
<h2><a title="authors" name="authors"></a>Авторы:</h2>
<dl>
<dt> <a href="mailto:aaron@theinfo.org">Aaron Swartz</a>,       <a href="http://www.theinfo.org/">The Info Network</a> </dt>
<dt> <a href="mailto:ken@bitsko.slc.ut.us">Ken MacLeod</a>,        <a href="http://cycletime.com/">Terrapin Technologies, Inc.</a> </dt>
</dl>
<h2><a title="version" name="version"></a>Версия:</h2>
<p><strong>Последняя версия:</strong> <a href="http://web.resource.org/rss/1.0/modules/admin/">http://web.resource.org/rss/1.0/modules/admin/</a></p>
<h2><a title="status" name="status"></a>Статус:</h2>
<p>Proposed</p>
<h2><a title="rights" name="rights"></a>Права:</h2>
<p>Разрешено использование, копирование, модифицирование и распространение Спецификации Модуля RDF Site Summary      1.0,а также её сопроводительной документации для любых целей, при условии, что уведомление об авторских правах и этот пункт будет присутствовать во всех копиях. Владельцыавторских прав не гарантируют пригодность спецификации для каких-либо целей. Она предоставляется “как есть” без выраженных или подразумеваемых гарантий.</p>
<p>Данный копирайт относится к авторским правам на Модуль RDF Site Summary      1.0 и к его сопроводительной документации, и не распространяется на формат самого RSS Модуля.</p>
<h2><a title="description" name="description"></a>Описание:</h2>
<p><em>Модуль добавляет некоторые администраторские свойства, чтобы увеличить надёжность в использовании RSS поверх провайдеров, агрегаторов, клиентов и других пользователей.</em></p>
<p><strong> &lt;admin:errorReportsTo&gt;</strong> - это URI (обычно &#8216;mailto:&#8217;       URL), который служит для связи с автором, либо источником для конкретного RSS/RDF. Будет использоваться в качестве фидбэка о технических проблемах при использовании RSS, RDF, либо XML.</p>
<p><strong> &lt;admin:generatorAgent&gt;</strong> - это URI софтвера, который был использован для генерации данного RSS/RDF. Идентично User-Agent&#8217;у в HTTP, или полю X-Mailer в email-сообщении. Может использоваться для отлавливания и исправления ошибок в программном обеспечении, а также для сбора статистических данных. URI должен содержать версию софтвера, а также в случае использования разрешимой URL, должен возвращать человеко-читаемую html-страницу.</p>
<h2>Определение пространства имён:</h2>
<p><strong>xmlns:admin=&#8221;http://webns.net/mvcb/&#8221;</strong></p>
<h2><a title="model" name="model"></a>Модель:</h2>
<p><em>&lt;channel&gt; Elements:</em></p>
<ul>
<li><strong>&lt;admin:errorReportsTo rdf:resource=&#8221;URI&#8221;/&gt;</strong></li>
<li><strong>&lt;admin:generatorAgent rdf:resource=&#8221;URI&#8221;/&gt;</strong></li>
</ul>
<h2><a title="example" name="example"></a>Пример:</h2>
<pre>&lt;?xml version="1.0" encoding="utf-8"?&gt;</pre>
<pre>&lt;rdf:RDF</pre>
<pre>xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"</pre>
<pre><strong><span class="example-other">xmlns:admin="http://webns.net/mvcb/"</span></strong>

xmlns="http://purl.org/rss/1.0/"&gt;</pre>
<pre>
&lt;channel rdf:about="http://meerkat.oreillynet.com/?_fl=rss1.0"&gt;

&lt;title&gt;Meerkat&lt;/title&gt;

&lt;link&gt;http://meerkat.oreillynet.com&lt;/link&gt;

&lt;description&gt;Meerkat: An Open Wire Service&lt;/description&gt;

<strong>    <span class="example-other">&lt;admin:errorReportsTo rdf:resource="mailto:channel-owner@acme.orgs"/&gt;</span></strong>

<strong>    <span class="example-other">&lt;admin:generatorAgent rdf:resource="http://Orchard.SourceForge.net/1.2/"/&gt;</span></strong>

&lt;image rdf:resource="http://meerkat.oreillynet.com/icons/meerkat-powered.jpg" /&gt;</pre>
<pre>&lt;items&gt;

&lt;rdf:Seq&gt;

&lt;rdf:li rdf:resource="http://c.moreover.com/click/here.pl?r123" /&gt;

&lt;/rdf:Seq&gt;

&lt;/items&gt;</pre>
<pre>
&lt;textinput rdf:resource="http://meerkat.oreillynet.com/" /&gt;

&lt;/channel&gt;</pre>
<pre>
&lt;image rdf:about="http://meerkat.oreillynet.com/icons/meerkat-powered.jpg"&gt;

&lt;title&gt;Meerkat Powered!&lt;/title&gt;

&lt;url&gt;http://meerkat.oreillynet.com/icons/meerkat-powered.jpg&lt;/url&gt;

&lt;link&gt;http://meerkat.oreillynet.com&lt;/link&gt;

&lt;/image&gt;</pre>
<pre>&lt;item rdf:about="http://c.moreover.com/click/here.pl?r123"&gt;

&lt;title&gt;XML: A Disruptive Technology&lt;/title&gt;

&lt;link&gt;http://c.moreover.com/click/here.pl?r123&lt;/link&gt;

&lt;/item&gt;</pre>
<pre>
&lt;textinput rdf:about="http://meerkat.oreillynet.com/"&gt;</pre>
<pre>
&lt;title&gt;Search Meerkat&lt;/title&gt;

&lt;description&gt;Search Meerkat's RSS Database...&lt;/description&gt;

&lt;name&gt;s&lt;/name&gt;

&lt;link&gt;http://meerkat.oreillynet.com/&lt;/link&gt;

&lt;/textinput&gt;

&lt;/rdf:RDF&gt;</pre>
<h2>По теме:</h2>
<ul>
<li><a href="http://swoogle.umbc.edu/index.php?option=com_frontpage&amp;service=relation&amp;queryType=rel_ns_swt&amp;searchString=http%3A%2F%2Fwebns.net%2Fmvcb%2F">Страница на Swoogle</a></li>
</ul>
<p>В следующий раз поговорим о <a href="http://www.w3.org/2003/01/geo/">Basic Geo (WGS84 lat/long) Vocabulary</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=158/feed</wfw:commentRss>
		</item>
		<item>
		<title>[Онтологии] Trackback</title>
		<link>http://blog.folone.org.ua/MOCK=157</link>
		<comments>http://blog.folone.org.ua/MOCK=157#comments</comments>
		<pubDate>Tue, 20 May 2008 20:55:57 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[semantic web]]></category>

		<category><![CDATA[ontology]]></category>

		<category><![CDATA[trackback]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/MOCK=157</guid>
		<description><![CDATA[Это вольный перевод наброска спецификации онтологии TrackBack.  Начнём:
Авторы:

 Justin Klubnik (justin AT madskills DOT com),  		justin.madskills.com 
 Benjamin and Mena Trott (trackback AT movabletype DOT com),  		movabletype.org 

Версия:
Current Version: 1.0 (Draft)
Права:
Разрешено использование, копирование, модифицирование и распространение Спецификации Модуля RSS 1.0/2.0 TrackBack,а также её сопроводительной документации для любых целей, при условии, что уведомление [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm4.static.flickr.com/3018/2497961234_3082d0d591_m.jpg" alt="trackback" width="180" height="240" align="left" />Это вольный перевод <a href="http://madskills.com/public/xml/rss/module/trackback/">наброска спецификации</a> онтологии TrackBack.  Начнём:</p>
<h2>Авторы:</h2>
<dl>
<dt> Justin Klubnik (justin AT madskills DOT com),  		<a href="http://justin.madskills.com/">justin.madskills.com</a> </dt>
<dt> Benjamin and Mena Trott (trackback AT movabletype DOT com),  		<a href="http://movabletype.org/">movabletype.org</a> </dt>
</dl>
<h2>Версия:</h2>
<p><strong>Current Version:</strong> 1.0 (Draft)</p>
<h2>Права:</h2>
<p>Разрешено использование, копирование, модифицирование и распространение Спецификации Модуля RSS 1.0/2.0 TrackBack,а также её сопроводительной документации для любых целей, при условии, что уведомление об авторских правах и этот пункт будет присутствовать во всех копиях. Владельцыавторских прав не гарантируют пригодность спецификации для каких-либо целей. Она предоставляется &#8220;как есть&#8221; без выраженных или подразумеваемых гарантий.</p>
<p>Данный копирайт относится к авторским правам на Модуль RSS 1.0/2.0 TrackBack и к его сопроводительной документации, и не распространяется на формат самого RSS Модуля.</p>
<h2>Описание:</h2>
<p>Модуль построен на <a href="http://movabletype.org/docs/mtmanual_trackback.html">TrackBack</a>-системе, разработанной в рамках движка <a href="http://movabletype.org/">MovableType</a>. TrackBack - это P2P фреймворк, разработанный для коммуникации между сайтами. Сайты, поддерживающие данную технологию, общаются при помощи пингов. Пинг сообщает сайту, что на пингующем сайте появилась ссылка на пост (либо на категорию) с целевого сайта.</p>
<p>Пинги посылаются на TrackBack-URL&#8217;ы. TrackBack-URL&#8217;ы - это уникальные URL&#8217;ы, ассоциированные с постом (категорией), которые умеют принимать пинги. Производится запрос (HTTP GET) к соответствующей URL, которая в общем виде выглядит следующим образом:</p>
<p><tt>http://foo.com/mt/mt-tb.cgi?tb_id=ID</tt></p>
<p>Тут ID - это ID того, к чему мы посылаем ТрекБек (пост, категория).</p>
<h2>Определение пространства имён:</h2>
<p>xmlns:trackback=&#8221;<a href="http://madskills.com/public/xml/rss/module/trackback/">http://madskills.com/public/xml/rss/module/trackback/</a>&#8221;</p>
<h2>Синтаксис:</h2>
<p>Модели данных у RSS 1.0 (RDF Site Summary) и у RSS 2.0 (Really Simple Syndication) разные. Потому синтаксис модуля будет отличаться в каждом из них. Значения же различных элементов остаётся, в основном, тем же.</p>
<h3>trackback:ping</h3>
<p><tt>trackback:ping</tt> - является суб-элементом элемента <tt>item</tt>, и содержит TrackBack URL <tt>item</tt>&#8216;a. Вот пример реализации для RSS 1.0:</p>
<pre>&lt;item rdf:about="<span class="different">http://blog.folone.org.ua/MOCK=155/</span>"&gt;

 	&lt;title&gt;[Онтологии] Trackback&lt;/title&gt;

 	&lt;link&gt;<span class="different">http://blog.folone.org.ua/MOCK=155/</span>&lt;/link&gt;

 	&lt;description&gt;Жорик решил рассказать об и так всем уже известном механизме трекбека&lt;/description&gt;

 	<span class="different">&lt;trackback:ping rdf:resource="http://blog.folone.org.ua/MOCK=155/trackback"/&gt;</span>

&lt;/item&gt;</pre>
<p>И для RSS 2.0:</p>
<pre>&lt;item&gt;

 	&lt;title&gt;[Онтологии] Trackback&lt;/title&gt;

 	&lt;link&gt;<span class="different">http://blog.folone.org.ua/MOCK=155/</span>&lt;/link&gt;

 	&lt;description&gt;Жорик решил рассказать об и так всем уже известном механизме трекбека&lt;/description&gt;

 	<span class="different">&lt;trackback:ping&gt;http://blog.folone.org.ua/MOCK=155/trackback&lt;/trackback:ping&gt;</span>

&lt;/item&gt;</pre>
<p>Вкратце, эти RSS <tt>item</tt>ы теперь говорят: &#8220;Пингуйте, будьте добры, сюда:<span class="different"> http://blog.folone.org.ua/MOCK=155/trackback</span>.&#8221;</p>
<h3>trackback:about</h3>
<p><tt>trackback:about</tt> - суб-элемент <tt>item</tt>&#8216;а, содержит TrackBack URL, который пингуется как ссылка к данному <tt>item</tt>&#8216;у. Каждый <tt>item</tt> может содержать ноль и больше инстанций <tt>trackback:about</tt>.</p>
<p>Для RSS 1.0 это выглядит так:</p>
<pre>&lt;item rdf:about="http://bar.com/weblog/rss_plus_trackback.html"&gt;

 	&lt;title&gt;[Онтологии] Trackback&lt;/title&gt;

 	&lt;link&gt;<span class="different">http://blog.folone.org.ua/MOCK=155/</span>&lt;/link&gt;

 	&lt;description&gt;Жорик решил рассказать об и так всем уже известном механизме трекбека&lt;/description&gt;

 	<span class="different">&lt;trackback:ping rdf:resource="</span><span class="different">http://blog.folone.org.ua/MOCK=155/trackback</span><span class="different">"/&gt;</span>

 	<span class="different">&lt;trackback:about rdf:resource="</span><span class="different">http://blog.folone.org.ua/MOCK=154/trackback</span><span class="different">"/&gt;</span>

&lt;/item&gt;</pre>
<p>Для RSS 2.0 - так:</p>
<pre>&lt;item&gt;

 	&lt;title&gt;[Онтологии] Trackback&lt;/title&gt;

 	&lt;link&gt;<span class="different">http://blog.folone.org.ua/MOCK=155/</span>&lt;/link&gt;

 	&lt;description&gt;Жорик решил рассказать об и так всем уже известном механизме трекбека&lt;/description&gt;

 	<span class="different">&lt;trackback:ping&gt;</span><span class="different">http://blog.folone.org.ua/MOCK=155/trackback</span><span class="different">&lt;/trackback:ping&gt;</span>

 	<span class="different">&lt;trackback:about&gt;</span><span class="different">http://blog.folone.org.ua/MOCK=154/trackback</span><span class="different">&lt;/trackback:about&gt;</span>

&lt;/item&gt;</pre>
<p>Вкратце, эти <tt>item</tt>&#8216;ы теперь говорят: &#8220;Пингуйте, будьте добры, сюда:<span class="different"> http://blog.folone.org.ua/MOCK=155/trackback</span>. А сам я пингану <span class="different">http://blog.folone.org.ua/MOCK=154/trackback,</span> ибо мой материал каким-то образом схож, либо ссылается на пост (категорию), ассоциированную с данной ссылкой.&#8221;</p>
<h2>Это всё нужно чтобы:</h2>
<p>Пользователю не приходилось искать ТрекБек-ссылку к посту, на который он хочет сослаться. А также чтобы оторвать механизм реализации трекбеков от конкретного движка.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=157/feed</wfw:commentRss>
		</item>
		<item>
		<title>[Онтологии] Dublin Core &#038; FOAF</title>
		<link>http://blog.folone.org.ua/MOCK=156</link>
		<comments>http://blog.folone.org.ua/MOCK=156#comments</comments>
		<pubDate>Tue, 20 May 2008 19:24:26 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[semantic web]]></category>

		<category><![CDATA[dublin core]]></category>

		<category><![CDATA[foaf]]></category>

		<category><![CDATA[ontology]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/MOCK=156</guid>
		<description><![CDATA[Онтоло?гия — это попытка всеобъемлющей и детальной формализации некоторой области знаний с помощью концептуальной схемы. Обычно такая схема состоит из иерархической структуры данных, содержащей все релевантные классы объектов, их связи и правила (теоремы, ограничения), принятые в этой области.
Онтологии применяются в искусственном интеллекте, семантической паутине (SemanicWeb) и технологии программирования как форма представления знаний о реальном мире [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm1.static.flickr.com/117/309535430_3f2e3be172_m.jpg" alt="web 3.0" width="240" height="240" align="left" /><strong>Онтоло?гия</strong> — это попытка всеобъемлющей и детальной <span class="new">формализации</span> некоторой области знаний с помощью концептуальной схемы. Обычно такая схема состоит из иерархической структуры данных, содержащей все релевантные классы объектов, их связи и правила (теоремы, ограничения), принятые в этой области.</p>
<p>Онтологии применяются в искусственном интеллекте, семантической паутине (SemanicWeb) и <span class="new">технологии программирования</span> как форма представления знаний о реальном мире или его части.(<a href="http://ru.wikipedia.org/wiki/%D0%9E%D0%BD%D1%82%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%28%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0%29">via</a>)</p>
<p>Чего это я вдруг? Просто по мере написАния дипломной, рецензии и отзыва к ней, я постараюсь выкладывать на всеобщее обозрение показавшиеся мне особо интересными части.</p>
<p>Сегодня речь пойдёт об онтологиях. Как утверждает <a href="http://futuri.us/">Коля</a>, вся информация будет жить в rdf-документах, а доставать её мы будем с помощью <a href="http://futuri.us/2008/03/10/budushhee-tut-agent-smit-mnogo-agentov-smitov/">sparql-запросов</a>. Но что же сидит в этих самых rdf-документах? А вот и правильно, онтологии.</p>
<p>Существует несколько языков описания онтологий. Нас в данном контексте (веб) интересует <a href="http://www.w3.org/2004/OWL/">owl</a> (ontology web language), как расширение rdf и rdfs, который является стандартом W3C.</p>
<p>С этого поста я начну понемногу описывать существующие на сегодняшний день онтологии. А сегодня советую интересующимся почитать про первые две из них у <a href="http://futuri.us/">Коли</a>:</p>
<ul>
<li><a href="http://futuri.us/2008/01/18/dublinskoe-yadro/">Dublin Core</a></li>
<li><a href="http://futuri.us/2007/12/31/budushhee-ryadom-foaf-2/">FOAF</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=156/feed</wfw:commentRss>
		</item>
		<item>
		<title>Script#</title>
		<link>http://blog.folone.org.ua/MOCK=154</link>
		<comments>http://blog.folone.org.ua/MOCK=154#comments</comments>
		<pubDate>Tue, 20 May 2008 17:15:16 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[misc]]></category>

		<category><![CDATA[scriptSharp]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/MOCK=154</guid>
		<description><![CDATA[Раз уж руки дошли дописАть эту заметку, грех этого не сделать  
Впервые услышал об этой штуке на презентации Windows Live 2008. Итак, что такое Script Sharp. S# интерпретирует C#-код в JavaScript (вместо MSIL). В результате получаем все преимущества работы с инструментарием Visual Studio при разработке, скажем, Ajax-приложений:

Intellisense

Поддержка MSBuild

Обработка ошибок во время компиляции (не во [...]]]></description>
			<content:encoded><![CDATA[<p align="right"><img src="http://projects.nikhilk.net/App_Assets/Images/ScriptSharpLogo.png" alt="" width="82" height="82" align="left" /><em>Раз уж руки дошли дописАть эту заметку, грех этого не сделать <img src='http://blog.folone.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></p>
<p>Впервые услышал об этой штуке на презентации Windows Live 2008. Итак, что такое Script Sharp. S# интерпретирует C#-код в JavaScript (вместо MSIL). В результате получаем все преимущества работы с инструментарием Visual Studio при разработке, скажем, Ajax-приложений:</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Intellisense">Intellisense</a><br />
<img src="http://projects.nikhilk.net/ScriptSharp/Content/Intro/Intellisense.png" alt="intellisense" width="533" height="258" /></li>
<li>Поддержка <a href="http://en.wikipedia.org/wiki/Msbuild">MSBuild</a><br />
<img src="http://projects.nikhilk.net/ScriptSharp/Content/Intro/MSBuildT.png" alt="msbuild" width="240" height="110" /></li>
<li>Обработка ошибок во время компиляции (не во время работы, как, скажем, с firebug&#8217;ом)<br />
<img src="http://projects.nikhilk.net/ScriptSharp/Content/Intro/BuildErrorsT.png" alt="errors" /></li>
<li>Поддержка <a href="http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3">рефакторинга</a><br />
<img src="http://projects.nikhilk.net/ScriptSharp/Content/Intro/RefactorT.png" alt="refactoring" width="240" height="192" /></li>
<li>Интуитивно-понятный ООП-синтаксис (чем JavaScript похвастаться не может)<br />
<img src="http://projects.nikhilk.net/ScriptSharp/Content/Intro/OOPSyntaxT.png" alt="oop" width="240" height="131" /></li>
<li>Визуализация кода<br />
<img src="http://projects.nikhilk.net/ScriptSharp/Content/Intro/ClassDiagramT.png" alt="uml code" width="240" height="132" /></li>
<li>Достойный просмотр и поиск по коду<br />
<img src="http://projects.nikhilk.net/ScriptSharp/Content/Intro/ClassBrowserT.png" alt="search browse code" width="240" height="183" /></li>
<li>xml-документированный код<br />
<img src="http://projects.nikhilk.net/ScriptSharp/Content/Intro/DocumentationT.png" alt="documentate" width="240" height="100" /></li>
<li>[скоро] Возможности для <a href="http://ru.wikipedia.org/wiki/%D0%AE%D0%BD%D0%B8%D1%82-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5">юнит-тестирования</a><br />
<img src="http://projects.nikhilk.net/ScriptSharp/Content/Intro/UnitTestT.png" alt="unit testing" width="240" height="127" /></li>
</ul>
<p>S# бесплатен. Придумал его <a href="http://www.nikhilk.net/">сторонний разработчик</a>. Несмотря на это, им усиленно пользуются в Майкрософт.</p>
<p><em>Если Вы разрабатываете Ajax или <a href="http://ru.wikipedia.org/wiki/Rich_Internet_Applications">RIA</a>-приложения, попробуйте Script#, не пожалеете <img src='http://blog.folone.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></p>
<p>Более подробно можно узнать со <a href="http://projects.nikhilk.net/ScriptSharp/Default.aspx">странички проекта</a> и из <a href="http://www.nikhilk.net/ScriptSharpIntro.aspx">блога разработчика</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=154/feed</wfw:commentRss>
		</item>
		<item>
		<title>Стиви Би</title>
		<link>http://blog.folone.org.ua/MOCK=155</link>
		<comments>http://blog.folone.org.ua/MOCK=155#comments</comments>
		<pubDate>Tue, 20 May 2008 16:38:38 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[misc]]></category>

		<category><![CDATA[Steve Balmer]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/MOCK=155</guid>
		<description><![CDATA[Сейчас я быстренько объясню банальные причины того, что я давненько сюда не писАл, а потом расскажу про эту самую пафосную фигуру из названия поста. Итак, не писАл я из-за..правильно, из-за сессии и дипломной работы. Кстати, материалы для своей работы я нагло черпаю у Коли и из НетЭволюшн. К тому же, я уволился, и теперь до [...]]]></description>
			<content:encoded><![CDATA[<p align="right"><em>Сейчас я быстренько объясню банальные причины того, что я давненько сюда не писАл, а потом расскажу про эту самую пафосную фигуру из названия поста. Итак, не писАл я из-за..правильно, из-за сессии и дипломной работы. Кстати, материалы для своей работы я нагло черпаю у <a href="http://futuri.us/">Коли</a> и из <a href="http://netevolution.ru/">НетЭволюшн</a>. К тому же, я уволился, и теперь до конца сессии - безработный <img src='http://blog.folone.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></p>
<p><img src="http://mobiltelefon.ru/i/other/november/09/steve_ballmer.jpg" alt="Steve B" width="400" height="301" align="left" />А теперь - о Балмере. Да, я видел это чудо живьём. Дело было в Красном корпусе Универа (который, кстати, нынче с приставкой &#8220;Исследовательский&#8221; (омг)). Онлайн-трансляцию желающие могли лицезреть <a href="http://www.microsoft.com/ukraine/CEOvisit/video.html">вот тут</a>.</p>
<p>Ей-богу, дядька мне понравился. Не смотря на некую шизанутость, что-то в его манере вести себя с аудиторией завораживает. Говорил Стиви, в основном, о возможностях работы в его компании и в компаниях-партнёрах для студентов и выпускников технических ВУЗ&#8217;ов. Несколько раз сделал комплимент аудитории по поводу её технической осведомлённости.</p>
<p>Насчёт организации события - повеселили хитмэны у рам металоискателей, повеселил переводчик своими репликами до начала выступления Стиви (&#8221;- кстати, они нас там слышат.. - правда?!&#8221;).</p>
<p>Итого. Мероприятие было приятным, не более, но и не менее. Никаких щепитильных тем (Yahoo!) не поднималось (до меня очередь не дошла, не успел спросить), все разошлись довольныме тем, что видели великого толстяка из Майкрософт.</p>
<p>Кстати, Стив поделился своим адресом электронной почты. Просим проспонсировать велосипед? <img src='http://blog.folone.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=155/feed</wfw:commentRss>
		</item>
		<item>
		<title>Безопасный Singleton</title>
		<link>http://blog.folone.org.ua/MOCK=153</link>
		<comments>http://blog.folone.org.ua/MOCK=153#comments</comments>
		<pubDate>Wed, 26 Mar 2008 16:23:56 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[design pattern]]></category>

		<category><![CDATA[singleton]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/MOCK=153</guid>
		<description><![CDATA[Сначала немного о нём:
Цель:

Обеспечить класс, который имеет только один экземпляр и предоставить глобальную точку доступа к нему.
Инкапсулировать &#8220;JIT инициализацию&#8221; (&#8221;инициализацию при первом использовании&#8221;).

Заметки:
Приложению требуется один, и только один экземпляр объекта. Кроме того, необходима ленивая инициализация и глобальный доступ.
Заставить класс единственной инстанции объекта отвечать за создание, инициализацию и доступ. Объявить инстанцию с private static модификаторами доступа. [...]]]></description>
			<content:encoded><![CDATA[<h2><img src="http://farm2.static.flickr.com/1384/1024895588_100e13f115.jpg?v=0" align="left" height="500" width="241" />Сначала немного о нём:</h2>
<p><strong>Цель:</strong></p>
<ul>
<li>Обеспечить класс, который <span onmouseover="_tipon(this)" onmouseout="_tipoff()">имеет только один экземпляр и предоставить глобальную точку доступа к нему.</span></li>
<li><span onmouseover="_tipon(this)" onmouseout="_tipoff()">Инкапсулировать &#8220;JIT инициализацию&#8221; (&#8221;инициализацию при первом использовании&#8221;).</span><span id="more-153"></span></li>
</ul>
<p><strong>Заметки:</strong></p>
<p>Приложению требуется один, и только один экземпляр объекта. Кроме того, необходима <a href="http://ru.wikipedia.org/wiki/Ленивая_инициализация_(шаблон_проектирования)">ленивая инициализация</a> и глобальный доступ.</p>
<p>Заставить класс единственной инстанции объекта отвечать за создание, инициализацию и доступ. Объявить инстанцию с private static модификаторами доступа. Обеспечить public static метод, который включит в себя весь код инициализации, а также предоставит доступ к инстанции.</p>
<p>Клиент вызывает аксессор (тот самый метод, используя имя класса), как только понадобится ссылка на инстанцию.</p>
<p>Предусмотреть возможность расширения паттерна (для указанного пользователем количества инстанций).</p>
<p>Удаление Singleton класса/инстанции - непростая задача. Чтобы разобраться, как это сделать (для с++), посмотрите &#8220;<a href="http://sourcemaking.com/design_patterns/to_kill_a_singleton">To Kill A Singleton</a>&#8220;, John Vlissides.</p>
<p>Не буду останавливаться на прочей абстракции, потому <strong>Контрольный список:</strong></p>
<ol>
<li>Определить <code>private static</code> аттрибут класса.</li>
<li>Определить  <code>private statiс </code>метод-аксессор.</li>
<li>Реализовать &#8220;ленивую инициализацию&#8221; (создание при первом использовании) в методе-аксессоре.</li>
<li>Все конструкторы -  <code>protected</code> либо <code>private</code>.</li>
<li>Разрешить манипуляцию инстанцией только посредством аксессора.</li>
</ol>
<p><strong>Собственно, код: </strong></p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Singleton <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> Singleton test1;	<span style="color: #000000; font-weight: bold;">private</span> Singleton<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> Singleton getInstance<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>test1 == <span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">synchronized</span> <span style="color: #66cc66;">&#40;</span>Singleton.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>test1 == <span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
					test1 = <span style="color: #000000; font-weight: bold;">new</span> Singleton<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
				<span style="color: #66cc66;">&#125;</span>
&nbsp;
 			<span style="color: #66cc66;">&#125;</span>
&nbsp;
 		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">return</span> test1;
&nbsp;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p><strong>Ну и немного отсебятины:</strong></p>
<p>Для пущей безопасности от кривизны рук, стоит также перегрузить метод <code>clone()</code>. Например, в данном случае - так:</p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #000000; font-weight: bold;">public</span> Singleton clone<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="java">    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006600;">getInstance</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>или так:</p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #000000; font-weight: bold;">public</span> Singleton clone<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #aaaadd; font-weight: bold;">CloneNotSupportedException</span> <span style="color: #66cc66;">&#123;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="java">    <span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #aaaadd; font-weight: bold;">CloneNotSupportedException</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #66cc66;">&#125;</span></pre></div></div>

<p><strong>По теме:</strong></p>
<ul>
<li> Отличный <a href="http://sourcemaking.com/">ресурс</a> по <a href="http://sourcemaking.com/design_patterns">паттернам проектирования</a>, <a href="http://sourcemaking.com/antipatterns">антипаттернам</a> и <a href="http://sourcemaking.com/refactoring">методам рефакторинга</a>.</li>
<li> Все материалы - из <a href="http://sourcemaking.com/design-patterns-simply">этой книжечки</a>.<a href="http://myextralife.com/56geeks/"><img src="http://sourcemaking.com/files/sm/a6.jpg" height="29" width="415" /></a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=153/feed</wfw:commentRss>
		</item>
		<item>
		<title>[Музыкальное] Темплейты в музыке.</title>
		<link>http://blog.folone.org.ua/MOCK=151</link>
		<comments>http://blog.folone.org.ua/MOCK=151#comments</comments>
		<pubDate>Tue, 11 Mar 2008 15:34:38 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[misc]]></category>

		<category><![CDATA[lp]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/MOCK=151</guid>
		<description><![CDATA[Это вольный пересказ статьи &#8220;All Linkin Park songs look the same&#8221;.
Каждая новая песня этой группы (которая является &#8220;классической мазафакой&#8221; (с)), наводит на одну мысль: &#8220;хм..разве они не писАли эту песню раньше?&#8221;. Кроме того, что их песни звучат одинаково (очень наглядно продемонстрировано), они ещё и выглядят практически идентично. Ниже приведены изображения уровня звука первых девяноста секунд [...]]]></description>
			<content:encoded><![CDATA[<p>Это вольный пересказ статьи <a href="http://www.hometracked.com/2007/05/29/all-linkin-park-songs-look-the-same/">&#8220;All Linkin Park songs look the same&#8221;</a>.</p>
<p>Каждая новая песня этой группы (которая является &#8220;классической мазафакой&#8221; <a href="http://angelina-smart.livejournal.com/">(с)</a>), наводит на одну мысль: &#8220;хм..разве они не писАли эту песню раньше?&#8221;. Кроме того, что их песни <a href="http://www.ugcs.caltech.edu.nyud.net:8080/~paymer/mer/all_linkin_park_songs_sound_exactly_the_same.mp3">звучат одинаково</a> (очень наглядно продемонстрировано), они ещё и выглядят практически идентично. Ниже приведены изображения уровня звука первых девяноста секунд для некоторых самых популярных. (<em>ремарка:</em> темп некоторых из песен увеличен)</p>
<p><span id="more-151"></span></p>
<p><a href="http://www.youtube.com/watch?v=eZJVd5amJWI">What I`ve done</a>:</p>
<p><img src="http://www.hometracked.com/wp-content/uploads/LinkinPark/WID.gif" alt="What i`ve done" width="402" height="95" /></p>
<p><a href="http://www.youtube.com/watch?v=sesOnXMcaBk">Faint</a>:</p>
<p><img src="http://www.hometracked.com/wp-content/uploads/LinkinPark/Faint.gif" alt="faint" width="402" height="95" /></p>
<p><a href="http://www.youtube.com/watch?v=PWvIRxLCfiQ">Somewhere I belong</a>:</p>
<p><img src="http://www.hometracked.com/wp-content/uploads/LinkinPark/SIB.gif" alt="Somewhere i belong" width="402" height="95" /></p>
<p><a href="http://www.youtube.com/watch?v=fqB9O52lXpQ">Crawling</a>:</p>
<p><img src="http://www.hometracked.com/wp-content/uploads/LinkinPark/Crawling.gif" alt="Crawling" width="402" height="95" /></p>
<p><a href="http://www.youtube.com/watch?v=d7VvkZY3VVk">Numb</a>:</p>
<p><img src="http://www.hometracked.com/wp-content/uploads/LinkinPark/Numb.gif" alt="Numb" width="402" height="95" /></p>
<p><a href="http://www.youtube.com/watch?v=_eopCV3ZTxQ">Lying from you</a>:</p>
<p><img src="http://www.hometracked.com/wp-content/uploads/LinkinPark/LFY.gif" alt="Lying from you" width="402" height="95" /></p>
<p><sup>Послушать - по ссылкам на названия, ссылки ведут на ютуб.</sup></p>
<p><strong>Итак, в чём же формула успеха песен группы?</strong></p>
<ol>
<li><strong>Тихое вступление.</strong> Каждая песня имеет в среднем два круга тихого вступления.</li>
<li><strong>Инструментальный проигрыш.</strong> Играют все инструменты, два или четыре круга. Проигрыш обычно энергичный, инструментальный (минимум электроники).</li>
<li><strong>Тихий куплет.</strong> Песня стихает на куплетах для придания контрастности между секциями.</li>
<li><strong>Тяжёлый припев.</strong> Обычно с теми же аккордами, с кричащим Честером (Беннингтоном).</li>
</ol>
<p>Ничего принципиально нового в выше изложенном нету. Но именно это помогает группе продолжать продавать альбомы.</p>
<p><strong>Почему это работает:</strong></p>
<ul>
<li><strong>Динамический контраст.</strong> Человеческий слух находит динамические звуки более интересными. А контраст между секциями песни привлекает большее внимание к её динамической части. Песни группы привлекают на инстинктивном уровне.</li>
<li><strong>Запоминающаяся мелодия.</strong> Мелодия припева - самая запоминающаяся в песне. Группа, по сути, даёт послушать припев и запомнить его мелодию ещё до самого припева (проигрыш).</li>
<li><strong>Песни кажутся знакомыми.</strong> Группа постоянно использует уже наработанную музыку, что заставляет слушателя чувствовать себя комфортно с их новым материалом.</li>
</ul>
<p><strong>Вывод:</strong></p>
<p><strong>С одной стороны</strong>, памятник им пора ставить за то, что нашли и развивают удачную формулу. В конце концов, их работа - веселить людей, и у них это отлично получается.</p>
<p><strong>Но с другой стороны</strong> - посмотрите ещё раз на картинки выше. Компании порицают действия людей, которые качают песни из свободных источников, но что они предлагают взамен? Купить одну песню, перезапакованную в шесть разных упаковок?</p>
<p><strong>З.Ы.</strong> больше об этом - <a href="http://www.hometracked.com/2007/05/29/all-linkin-park-songs-look-the-same/">тут</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=151/feed</wfw:commentRss>
		</item>
		<item>
		<title>Идея: hMedia.</title>
		<link>http://blog.folone.org.ua/MOCK=150</link>
		<comments>http://blog.folone.org.ua/MOCK=150#comments</comments>
		<pubDate>Fri, 07 Mar 2008 00:29:11 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[semantic web]]></category>

		<category><![CDATA[hmedia]]></category>

		<category><![CDATA[microformat]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/MOCK=150</guid>
		<description><![CDATA[Для обозначения метаданных о графике (графический редактор, фотоаппарат, автор), музыке (название, исполнитель, альбом, год), видео (автор, ещё что-то  ).
Данные давно уже отображаются в том же Flicker&#8217;е, Last.fm&#8217;е и YouTub&#8217;е. Идея - как-нибудь унифицировать это отображение. Что-то вроде..
Для графики:

1
2
3
4
5
6
&#60;ul class=&#34;hMedia&#34; isa=&#34;picture&#34;&#62;
    &#60;li class=&#34;editor&#34;&#62;Photoshop CS&#60;/li&#62;
    &#60;li class=&#34;camera&#34;&#62;Cannon A85&#60;/li&#62;
   [...]]]></description>
			<content:encoded><![CDATA[<p>Для обозначения метаданных о графике (графический редактор, фотоаппарат, автор), музыке (название, исполнитель, альбом, год), видео (автор, ещё что-то <img src='http://blog.folone.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).</p>
<p>Данные давно уже отображаются в том же <a href="http://www.flickr.com/">Flicker&#8217;е</a>, <a href="http://last.fm/">Last.fm&#8217;е</a> и <a href="http://youtube.com/">YouTub&#8217;е</a>. Идея - как-нибудь унифицировать это отображение. Что-то вроде..</p>
<p><span id="more-150"></span><strong>Для графики:</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre>&lt;ul class=&quot;hMedia&quot; isa=&quot;picture&quot;&gt;
    &lt;li class=&quot;editor&quot;&gt;Photoshop CS&lt;/li&gt;
    &lt;li class=&quot;camera&quot;&gt;Cannon A85&lt;/li&gt;
    &lt;li class=&quot;author&quot;&gt;Name Surname&lt;/li&gt;
    &lt;li class=&quot;picture&quot;&gt;&lt;img src=&quot;path.to/picture.jpg&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;</pre></td></tr></table></div>

<p><strong>Для музыки:</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre>&lt;ul class=&quot;hMedia&quot; isa=&quot;audio&quot;&gt;
    &lt;li class=&quot;name&quot;&gt;Blood&lt;/li&gt;
    &lt;li class=&quot;performer&quot;&gt;Papa Roach&lt;/li&gt;
    &lt;li class=&quot;album&quot;&gt;Getting Away With Murder&lt;/li&gt;
    &lt;li class=&quot;year&quot;&gt;2004&lt;/li&gt;
    &lt;li class=&quot;media&quot;&gt;&lt;!-- embed or link here --&gt;&lt;/li&gt;
&lt;/ul&gt;</pre></td></tr></table></div>

<p><strong>Для видео:</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre>&lt;ul class=&quot;hMedia&quot; isa=&quot;video film &lt;!-- возможные варианты: clip, fan-video --&gt;&quot;&gt;
    &lt;li class=&quot;name&quot;&gt;Requiem For a Dream&lt;/li&gt;
    &lt;li class=&quot;director&quot;&gt;Darren Aronofsky&lt;/li&gt;
    &lt;li class=&quot;actor&quot; role=&quot;Sara Goldfarb&quot;&gt;Jared Leto&lt;/li&gt;
    &lt;li class=&quot;actor&quot; role=&quot;Harry Goldfarb&quot;&gt;Ellen Burstyn&lt;/li&gt;
    &lt;li class=&quot;plot&quot;&gt;
        The hopes and dreams of four ambitious people are shattered
        when their drug addictions begin spiraling out of control.&lt;/li&gt;
    &lt;li class=&quot;language&quot;&gt;English&lt;/li&gt;
    &lt;li class=&quot;country&quot;&gt;USA&lt;/li&gt;
    &lt;li class=&quot;release&quot;&gt; 27.10.2000&lt;/li&gt;
    &lt;li class=&quot;media&quot;&gt;&lt;!-- embed or link here --&gt;&lt;/li&gt;
&lt;/ul&gt;</pre></td></tr></table></div>

<p><strong>Итого:</strong> полный бред, или есть рациональное зерно? Поделитесь своими соображениями в комментариях, плз <img src='http://blog.folone.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=150/feed</wfw:commentRss>
		</item>
		<item>
		<title>Ищем, используя метаданные</title>
		<link>http://blog.folone.org.ua/MOCK=148</link>
		<comments>http://blog.folone.org.ua/MOCK=148#comments</comments>
		<pubDate>Thu, 06 Mar 2008 15:01:40 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[semantic web]]></category>

		<category><![CDATA[microformat]]></category>

		<category><![CDATA[rdf]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/MOCK=148</guid>
		<description><![CDATA[Да уж, в последнее время я немного подзабыл, что мой теглайн состоит из одного слова, semanti. Буду исправляться. Итак, сегодня поговорим о более богатом поиске, с парсингом метаданных.

Где такой есть? Да хоть у Yahoo!, который стал таким популярным в последнее время. Итак, представляю Вам Yahoo! MicroSearch. Сервис, который комбинирует стандартный поиск Yahoo!, но при этом [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://img-fotki.yandex.ru/get/15/folone.0/0_d13c_7102d45c_L.jpg" alt="logo" align="left" height="47" width="295" />Да уж, в последнее время я немного подзабыл, что мой теглайн состоит из одного слова, semanti. Буду исправляться. Итак, сегодня поговорим о более богатом поиске, с парсингом метаданных.</p>
<p><span id="more-148"></span></p>
<p>Где такой есть? Да хоть у <a href="http://www.yahoo.com/">Yahoo!</a>, который стал таким популярным в последнее время. Итак, представляю Вам <a href="http://www.yr-bcn.es/demos/microsearch/">Yahoo! MicroSearch</a>. Сервис, который комбинирует стандартный поиск Yahoo!, но при этом ещё и вытягивает из страниц-результатов метаданные: микроформаты, <abbr title="Resource Description Framework">RDF</abbr> (данные, на которые ссылаются с помоцью тега &lt;link&gt;) и <abbr title="Embedding Structured Data in Web Pages">RDFa</abbr> (в будущем планируется <abbr title="Gleaning Resource Descriptions from Dialects of Languages">GRDDL</abbr>). Крупные компании уже давно поняли, что за метаданными - <a href="http://futuri.us/">будущее</a>, потому они (метаданные) продолжают появляться в новых сервисах (<a href="http://moikrug.ru/">Мой.Круг</a>, <a href="http://flickr.com/">Flickr</a>, <a href="http://upcoming.yahoo.com/">upcoming.org</a>, <a href="http://www.linkedin.com/">LinkedIn</a>).</p>
<p><a href="http://www.yr-bcn.es/demos/microsearch/images/microsearch-screenshot.jpg"><img src="http://www.yr-bcn.es/demos/microsearch/images/microsearch-screenshot.jpg" height="360" width="480" /></a></p>
<p>Кстати, вот <a href="http://www.yr-bcn.es/demos/microsearch/search.do?p=folone&amp;y=Search&amp;fr=lo">так</a> можно найти меня. Да, кириллица пока хромает, но думаю, всё будет <img src='http://blog.folone.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Основные фичи продемонстрированы в примерах поиска (<a href="http://www.yr-bcn.es/demos/microsearch/search.do?p=ivan+herman">1</a>, <a href="http://www.yr-bcn.es/demos/microsearch/search.do?p=peter+mika">2</a>, <a href="http://www.yr-bcn.es/demos/microsearch/search.do?p=san+francisco+conference">3</a>, <a href="http://www.yr-bcn.es/demos/microsearch/search.do?p=peter+site:flickr.com">4</a>).</p>
<p>Работает это всё так: по запросу собираются результаты стандартного поиска. Далее выделяются метаданные: микроформаты (<a href="http://microformats.org/wiki/hCard">hCard</a>, <a href="http://microformats.org/wiki/hCalendar">hCalendar</a>, <a href="http://microformats.org/wiki/hReview">hReview</a>), RDF и RDFa. Метаданные отображаются в результатах, <a href="http://maps.yahoo.com/">на карте</a> и в таймлайне (для событий, скажем). Для всего этого используется:</p>
<ul>
<li>Джава сервлеты</li>
<li><a href="http://www.openrdf.org/">Sesame</a></li>
<li><a href="http://openrdf.org/doc/elmo/1.0/user-guide.html">Elmo</a></li>
<li><a href="http://simile.mit.edu/wiki/Fresnel">Simile Fresnel API</a></li>
<li><a href="http://simile.mit.edu/timeline">Simile Timeline</a></li>
<li><a href="http://developer.yahoo.com/maps/ajax/index.html">Yahoo! Ajax Maps API</a></li>
<li>ну и Yahoo! Search</li>
</ul>
<h2>Почитать по теме:</h2>
<ul>
<li><a href="http://microformats.org/">микроформаты</a></li>
<li><a href="http://ru.wikipedia.org/wiki/Resource_Description_Framework">RDF</a></li>
<li><a href="http://www.w3.org/TR/xhtml-rdfa-primer/">RDFa</a></li>
<li><a href="http://www.w3.org/TR/grddl/">GRDDL</a></li>
<li><a href="http://www.yr-bcn.es/dokuwiki/doku.php?id=microsearch">MicroSearch Wiki</a></li>
<li><a href="http://tripletalk.wordpress.com/2008/02/20/microsearch/">Пост одного из авторов</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=148/feed</wfw:commentRss>
		</item>
		<item>
		<title>Офисы и рабочие места громких веб 2.о компаний</title>
		<link>http://blog.folone.org.ua/MOCK=137</link>
		<comments>http://blog.folone.org.ua/MOCK=137#comments</comments>
		<pubDate>Fri, 01 Feb 2008 11:05:14 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[misc]]></category>

		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/MOCK=137</guid>
		<description><![CDATA[Новые идеи меняют мир с каждым днём. Новые идеи рождаются в оригинальной обстановке, и каждая уважающая себя компания старается &#8220;снабдить&#8221; своих разработчиков этой самой обстановкой - традиция, которую задали ещё в Гугле.
Давайте посмотрим, как это получается у разных веб 2.0-компаний (взято тут и тут):


Стартап запущен в недалёком 2006 году. Социальная сеть, по сути, положившая начало [...]]]></description>
			<content:encoded><![CDATA[<p>Новые идеи меняют мир с каждым днём. Новые идеи рождаются в оригинальной обстановке, и каждая уважающая себя компания старается &#8220;снабдить&#8221; своих разработчиков этой самой обстановкой - традиция, которую задали ещё в Гугле.</p>
<p>Давайте посмотрим, как это получается у разных веб 2.0-компаний (взято <a href="http://uaddit.com/discussions/showthread.php?t=706">тут</a> и <a href="http://s33426.gridserver.com/">тут</a>):<br />
<span id="more-137"></span><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2289/2220965415_aa7cbb7fc5_o.png" border="0" alt="" /><br />
Стартап запущен в недалёком 2006 году. Социальная сеть, по сути, положившая начало микроблоггингу. Оповещения через веб-интерфейс, смс, либо интернет-пейджер. Их офис выглядит так:<br />
<img style="margin: 5px; padding: 5px" src="http://farm1.static.flickr.com/248/535632337_789455a056.jpg" border="0" alt="" width="500" height="375" /></p>
<p><img style="margin: 5px; padding: 5px" src="http://farm1.static.flickr.com/251/535632243_23bd8e764a.jpg" border="0" alt="" /></p>
<p>А вход в офис - так:<br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2292/2221730672_8c031216ac_o.jpg" border="0" alt="" /></p>
<hr /><img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2058/2221730704_c9f7646fc4_o.jpg" border="0" alt="" />Запущен 4го февраля 2004 года. Самая успешная социальная сеть на сегодняшний день. Скандалы вокруг похищения их исходников, тысячи клонов, движки, позволяющие имитировать стартап, блоги, посвящённые исключительно ему, хакеры, специализирующиеся исключительно на нём, поддержка сторонних разработчиков, открытые АПИ - всё это только добавляет масла в огонь. Смотрим:<br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2031/2220939023_01d9b2773d_o.jpg" border="0" alt="" /><img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2038/2098985717_93dca678ae.jpg" border="0" alt="" /><img style="margin: 5px; padding: 5px" src="http://farm1.static.flickr.com/29/52276580_fa56d45e5f.jpg" border="0" alt="" /></p>
<p>А вы думали, индусы работают только в Майкрософте? <img src='http://blog.folone.org.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><img style="margin: 5px; padding: 5px" src="http://farm1.static.flickr.com/29/39463228_90546736d2.jpg" border="0" alt="" /></p>
<hr /><img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2048/2220939039_0f003116b7_o.gif" border="0" alt="" />Законодатель в популярности блогов и новостей, стартап, под который нынче стараются косить многие ру-стартапы:<br />
<img style="margin: 5px; padding: 5px" src="http://farm1.static.flickr.com/179/370285189_5bd3abc368.jpg" border="0" alt="" /><img style="margin: 5px; padding: 5px" src="http://farm1.static.flickr.com/137/370284569_fd96a9a01d.jpg" border="0" alt="" /><img style="margin: 5px; padding: 5px" src="http://farm2.static.flickr.com/1328/1409543946_1507572c02.jpg" border="0" alt="" /></p>
<hr />
<h2>Craiglist</h2>
<p>По сути своей, огромный каталог всего.<br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2150/2221731420_287fac9c73_o.jpg" border="0" alt="" /></p>
<p><img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2217/2221731638_c80f7e4c85_o.jpg" border="0" alt="" /></p>
<hr /><img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2203/2220252687_bf07741e4f_o.gif" border="0" alt="" /><br />
Опенсорсный проект. Разрабатывается, помимо прочих, комьюнити волонтёров. Основные продукты - Огнелис и Thunderbird.<br />
Огнелис - самый безопасные веб-браузер на сегодняшний день. Признайтесь: ведь именно им вы сейчас смотрите эту страничку <img src='http://blog.folone.org.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2289/2221731836_e2b3b7cd27_o.jpg" border="0" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2085/2220939867_fd18ef510b_o.jpg" border="0" alt="" /><img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2058/2221732250_7101ab956c_o.jpg" border="0" alt="" /></p>
<hr /><img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2255/2221732326_b639345c59_o.jpg" border="0" alt="" />p2p видеоплеер:<br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2170/2221732558_74e7db31ea_o.jpg" border="0" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2286/2220252651_d07fa7f083.jpg" border="0" alt="" /></p>
<hr /><img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2085/2220940593_311b0d9e92_o.jpg" border="0" alt="" />Своего рода имя нарицательное для фотосервисов. Проектом быстро заинтересовался Yahoo!, который, собственно и приобрёл его в марте 2005 года за 35 млн. убитых енотов:<br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2355/1698044633_720df5ac4c.jpg?v=0" border="0" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2099/2220220707_860d39aeea.jpg" border="0" alt="" /></p>
<hr /><img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2305/2220940703_eedec47a36_o.gif" border="0" alt="" />Сервис, построенный на инновационной технологии AudioScrobbler. Музыка у нас в крови. ЛастФМ поможет найти именно ту музыку (и тех людей), которая понравится именно Вам:<br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2046/2220940879_1457c93b13_o.jpg" border="0" alt="" />Да-да, я тож так работаю <img src='http://blog.folone.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2132/2221733154_5e3bd4f7a0_o.jpg" border="0" alt="" /></p>
<hr /><img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2147/2221033419_7942ef4861_o.gif" border="0" alt="" />Запущен в июле 2006 года, главный конкурент Твиттера на сегодняшний день. Куплен Гуглом:<br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2410/2220941375_9a2bd34d54_o.jpg" border="0" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2118/2221733720_d137870880_o.jpg" border="0" alt="" /></p>
<hr /><img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2117/2221733754_f014d9ece9_o.gif" border="0" alt="" />Профессиональная социальная сеть. То, под что нынче косит Мой.Круг:<br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2037/2220941765_9d0793caff_o.jpg" border="0" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2044/2220941929_5c212b1344_o.jpg" border="0" alt="" /></p>
<hr /><img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2108/2220941945_c49544271a_o.png" border="0" alt="" /><br />
Пионер персонализированной домашней страницы. Использую его (как ни странно, не iGoogle) уже давненько, и ребята не устают радовать новинками. Один из полезнейших для меня сайтов за последние полтора-два года.<br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2159/2221015658_baf4418157_o.jpg" border="0" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2207/2221015556_0c99cc394e_o.jpg" border="0" alt="" /></p>
<hr /><img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2108/2220942003_69ac74ebe2_o.jpg" border="0" alt="" />Запущен в 2005 году. Реддит показывает Вам новости, основанные на Ваших предпочтениях, которые высчитываются, анализируя историю Ваших голосований.<img style="margin: 5px; padding: 5px" src="http://farm2.static.flickr.com/1146/594173981_03e89abb18.jpg" border="0" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm1.static.flickr.com/35/123935479_18151c9de9.jpg" border="0" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2191/1623212817_c35f3a1160.jpg" border="0" alt="" /></p>
<hr /><img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/uploads/2008/01/tumblerlogo.PNG" alt="" /><br />
Пионер т-блогов (собственно, в их честь названных). Красота и аскетизм. Поразительно красиво и функционально, и ничего лишнего.<br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/tumblr/tumblr1.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/tumblr/tumblr2.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/tumblr/tumblr3.jpg" alt="" /></p>
<hr /><img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/uploads/2007/12/yahoo-logo.JPG" alt="" /><br />
В представлении не нуждается, считается главным конкурентом Гугла:<br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/yahny/yahny1.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/yahny/yahny2.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/yahny/yahny3.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/yahny/yahny4.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/yahny/yahny5.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/yahny/yahny6.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/yahny/yahny7.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/yahny/yahny8.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/yahny/yahny9.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/yahny/yahny10.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/yahny/yahny11.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/yahny/yahny12.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/yahny/yahny13.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/yahny/yahny14.jpg" alt="" /></p>
<hr /><img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/uploads/2007/12/aol-logo.jpg" alt="" /><br />
AOL. Компания, которую все любят не любить <img src='http://blog.folone.org.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> Кстати, маленького человечка зовут Mr. Fitzsnoogins. Индийский офис (омг):<br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/aol/aol1.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/aol/aol2.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/aol/aol3.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/aol/aol4.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/aol/aol5.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/aol/aol6.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/galleries/aol/aol7.jpg" alt="" /></p>
<hr /><img style="margin: 5px; padding: 5px" src="http://www.officesnapshots.com/wp-content/uploads/2007/09/googlelogo.gif" alt="" /><br />
Ну и как же без гиганта? Офис в Санта Монике:<br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2414/2116604895_f9b3ef266b_o.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2240/2117390934_b626d51c42_o.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2017/2116612027_c30f73a939_o.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2282/2116611849_7d8f6820dc_o.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2141/2116611593_f9eb6ef6d2_o.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2156/2117391572_b47791faa0_o.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2410/2117391468_ef18a83733_o.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2122/2116611305_d86fc1a497_o.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2200/2117391144_8b961bbdd0_o.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2333/2116610957_89203ee425_o.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2405/2116611135_34e65bd40a_o.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2320/2117390784_0a73d3bd75_o.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2103/2117390762_e47123e3ec_o.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2193/2117390182_18ce1c6b85_o.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2368/2116610135_e2072ff012_o.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2069/2116609985_b58c21d323_o.jpg" alt="" /><br />
<img style="margin: 5px; padding: 5px" src="http://farm3.static.flickr.com/2048/2117392170_636731c6ea_o.jpg" alt="" /></p>
<p>А где бы хотели работать Вы?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=137/feed</wfw:commentRss>
		</item>
		<item>
		<title>Эффект градиента для текста с помощью CSS</title>
		<link>http://blog.folone.org.ua/MOCK=135</link>
		<comments>http://blog.folone.org.ua/MOCK=135#comments</comments>
		<pubDate>Wed, 23 Jan 2008 23:09:36 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[misc]]></category>

		<category><![CDATA[gradient]]></category>

		<category><![CDATA[hack]]></category>

		<category><![CDATA[ie6]]></category>

		<category><![CDATA[png]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/MOCK=135</guid>
		<description><![CDATA[Очередной вольный перевод. Оригинал - тут. 
Частенько хочется сделать несложный заголовок с простеньким графическим эффектом. Но вот фотошопить каждый раз немного утомляет. Тем более - если хочется чтобы каждый заголовок был с этим самым эффектом (ясное дело, с разным текстом). Вот Вам простой CSS-трюк, как это сделать, используя рисунок в формате png (чистый CSS, никакого [...]]]></description>
			<content:encoded><![CDATA[<p><em>Очередной вольный перевод. Оригинал - <a href="http://www.webdesignerwall.com/tutorials/css-gradient-text-effect/">тут</a>. </em></p>
<p>Частенько хочется сделать несложный заголовок с простеньким графическим эффектом. Но вот фотошопить каждый раз немного утомляет. Тем более - если хочется чтобы каждый заголовок был с этим самым эффектом (ясное дело, с разным текстом). Вот Вам простой CSS-трюк, как это сделать, используя рисунок в формате png (чистый CSS, никакого жаваскрипта и флеша). Всё что нужно - пустой тег</p>
<pre><code class="html">&lt;span&gt;</code></pre>
<p>в заголовке,  и заставить фоновое изображение перекрыть текст с помощью свойства</p>
<pre><code class="html">position:absolute</code></pre>
<p>Трюк проверен на большинстве популярных браузеров: Firefox, Safari, Opera, даже под Internet Explorer 6 работает (с png-хаком, разумеется).<br />
Посмотреть на это можно <a href="http://www.webdesignerwall.com/demo/css-gradient-text/">тут</a>, скачать демо - <a href="http://www.webdesignerwall.com/file/css-gradient-demo.zip">тут</a>. А <a href="http://blog.folone.org.ua/?p=135">дальше</a> можно почитать, как это всё сделано <img src='http://blog.folone.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<span id="more-135"></span></p>
<h2>Преимущества:</h2>
<ul>
<li>Это чистый CSS, никакого жаваскрипта или флеша, работает на большинстве браузеров (в т.ч. IE6, правда - с хаком)</li>
<li>Идеальная техника для дизайна заголовков. Не нужно каждый предварительно вырисовывать в фотошопе. Это сэкономит время и канал.</li>
<li>Использовать можно на любых web-шрифтах, размер шрифта останется изменяемым (Ctrl+, Ctrl-).</li>
</ul>
<h2>Как это работает?</h2>
<p>Сама по себе реализация проста. Мы просто добавляем поверх текста однопиксельный png-градиент (с альфа-прозрачностью).</p>
<p><img style="margin: 5px; padding: 5px" src="http://www.webdesignerwall.com/wp-content/uploads/2008/01/screen1.gif" border="1" alt="" width="455" height="215" /></p>
<h2>html-разметка.</h2>

<div class="wp_syntax"><div class="code"><pre>&lt;h1&gt;CSS Gradient Text&lt;/h1&gt;</pre></div></div>

<h2>Собственно, CSS.</h2>
<p>Основным пунктом в данном случае являются</p>
<p><code>h1 { position: relative }</code></p>
<p><code> </code>и</p>
<p><code>h1 span { </code><code>position: absolute }</code></p>
<p>А дальше:</p>

<div class="wp_syntax"><div class="code"><pre class="css">h1 <span style="color: #66cc66;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">font</span>: <span style="color: #993333;">bold</span> <span style="color: #933;"><span style="color: #933;">330</span>%</span>/<span style="color: #933;"><span style="color: #933;">100</span>%</span> <span style="color: #ff0000;">&quot;Lucida Grande&quot;</span>;
  <span style="color: #000000; font-weight: bold;">position</span>: <span style="color: #993333;">relative</span>;
  <span style="color: #000000; font-weight: bold;">color</span>: <span style="color: #cc00cc;">#<span style="color: #933;">464646</span></span>;
<span style="color: #66cc66;">&#125;</span>
h1 span <span style="color: #66cc66;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">background</span>: <span style="color: #993333;">url</span><span style="color: #66cc66;">&#40;</span><span style="color: #933;">gradient<span style="color: #6666ff;">.png</span></span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333;">repeat-x</span>;
  <span style="color: #000000; font-weight: bold;">position</span>: <span style="color: #993333;">absolute</span>;
  <span style="color: #000000; font-weight: bold;">display</span>: <span style="color: #993333;">block</span>;
  <span style="color: #000000; font-weight: bold;">width</span>: <span style="color: #933;"><span style="color: #933;">100</span>%</span>;
  <span style="color: #000000; font-weight: bold;">height</span>: <span style="color: #933;">31px</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Вот и всё. Готово. Посмотреть можно <a href="http://www.webdesignerwall.com/demo/css-gradient-text/">тут</a>.</p>
<h2>Заставим это работать в IE6.</h2>
<p>По причине неправильной обработки прозрачности png-24 в IE6, для правильного отображения нужен следующий хак (добавить где-нибудь между тегами &lt;head&gt;&lt;/head&gt;).</p>

<div class="wp_syntax"><div class="code"><pre>&lt;!--[if lt IE 7]&gt;
&lt;mce:style&gt;&lt;! 
h1 span {
  background: none;
  filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='gradient.png', sizingMethod='scale');
}
--&gt;
&nbsp;
&lt;!--[endif]--&gt;</pre></div></div>

<p>(кстати, насчёт хаков для IE6. почитать - <a href="http://www.webdesignerwall.com/general/trash-all-ie-hacks/">тут</a>.)</p>
<h2>jQuery-версия, для любителей семантики.</h2>
<p>Если Вам не хочется иметь в заголовках пустой <code>&lt;span&gt;</code> тег, можно использовать жаваскрипт чтобы его (тег) туда поместить. Например, с помощью метода <code>prepend</code> (<a href="http://jquery.com/">jQuery</a>):</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">&lt;script src=<span style="color: #3366CC;">&quot;jquery.js&quot;</span> type=<span style="color: #3366CC;">&quot;text/javascript&quot;</span>&gt;&lt;!--mce:<span style="color: #CC0000;">0</span>--&gt;&lt;/script&gt;
&nbsp;
&lt;script type=<span style="color: #3366CC;">&quot;text/javascript&quot;</span>&gt;&lt;!--mce:<span style="color: #CC0000;">1</span>--&gt;&lt;/script&gt;</pre></div></div>

<h2>Ещё:</h2>
<p>Хотите <span style="text-decoration: line-through;">вебдванольный</span> глянцевый текст?</p>
<p><img style="margin: 5px; padding: 5px" src="http://www.webdesignerwall.com/wp-content/uploads/2008/01/screen2.gif" border="1" alt="" width="470" height="180" /></p>
<p>В принципе, этот трюк применим на любом однотонном фоновом цвете (пока цвет Вашего градиента совпадает с цветом фона).</p>
<p><img style="margin: 5px; padding: 5px" src="http://www.webdesignerwall.com/wp-content/uploads/2008/01/screen4.gif" border="1" alt="" width="480" height="170" /></p>
<p><img style="margin: 5px; padding: 5px" src="http://www.webdesignerwall.com/wp-content/uploads/2008/01/screen5.gif" border="1" alt="" width="480" height="105" /></p>
<p><img style="margin: 5px; padding: 5px" src="http://www.webdesignerwall.com/wp-content/uploads/2008/01/screen6.gif" border="1" alt="" width="480" height="105" /></p>
<p><img style="margin: 5px; padding: 5px" src="http://www.webdesignerwall.com/wp-content/uploads/2008/01/screen7.gif" border="1" alt="" width="480" height="105" /></p>
<p><img style="margin: 5px; padding: 5px" src="http://www.webdesignerwall.com/wp-content/uploads/2008/01/screen8.jpg" border="1" alt="" width="480" height="190" /></p>
<h2>Паттерны/текстуры.</h2>
<p>Можно также побаловаться с повторяющимися текстурами. Например, так:</p>
<p><img style="margin: 5px; padding: 5px" src="http://www.webdesignerwall.com/wp-content/uploads/2008/01/screen9.gif" border="1" alt="" width="480" height="125" /></p>
<h2>Ограничения и прочее.</h2>
<ul>
<li>Этот трюк подходит только для элементов, которые находятся на однотонном фоне. Ваш градиент (рисунок png) должен быть того же цвета, что и фон.</li>
<li>Требуется хак для правильной обработки png в IE.</li>
<li>Если градиент выше Вашего текста, его (текст) невозможно будет выделить.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=135/feed</wfw:commentRss>
		</item>
		<item>
		<title>.:filteRSS</title>
		<link>http://blog.folone.org.ua/MOCK=133</link>
		<comments>http://blog.folone.org.ua/MOCK=133#comments</comments>
		<pubDate>Mon, 21 Jan 2008 21:04:13 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[projects]]></category>

		<category><![CDATA[my]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/MOCK=133</guid>
		<description><![CDATA[Вот я и привёл этот проектик в более-менее удобоваримый вид (читай: &#8220;иногда работает&#8220;). Знакомьтесь: filteRSS. Собственно, ничего нового в концепции, и ничего сложного в реализации. Итак, по пунктам:

Что?
Это маленький инструментик, который фильтрует rss по заданным параметрам (ключевое слово, цели, в которых оно ищется). На выходе - рсс файл.
Зачем?
В прошлом году ещё было дело. Делали мы [...]]]></description>
			<content:encoded><![CDATA[<p>Вот я и привёл этот проектик в более-менее удобоваримый вид (читай: &#8220;<em>иногда работает</em>&#8220;). Знакомьтесь: <a href="http://folone.org.ua/filterss/">filteRSS</a>. Собственно, ничего нового в концепции, и ничего сложного в реализации. Итак, по пунктам:</p>
<p><span id="more-133"></span></p>
<h2>Что?</h2>
<p>Это маленький инструментик, который фильтрует rss по заданным параметрам (ключевое слово, цели, в которых оно ищется). На выходе - рсс файл.</p>
<h2>Зачем?</h2>
<p>В прошлом году ещё было дело. Делали мы <a href="http://zaraz-media.org.ua/">сайт</a> для нашей универской газеты (в результате, сделал его лично <a href="http://scream3.livejournal.com/">Крик</a>). Была предложена идея редакторских блогов. И у нас с <a href="http://cyrillyun.blogspot.com/">Кириллом</a> возникла идея написАть какой-то инструмент, который кросспостил бы посты в зависимости от их тегов (если, скажем, присутствует тег &#8220;<em>мой жур-блог</em>&#8220;, - кросспостим). Потом это всё как-то забылось, а потом я однажды вспомнил об идее фильтрации рсс. Вспомнил в контексте очередного редизайна блога. Захотелось иметь рсс-поток для каждого тега. Сделал пару набросков. После - сессия, работа. И вот, в конце прошлой недели я снова вернулся за проект. И сейчас я могу кое что <a href="http://folone.org.ua/filterss/">показать</a>.</p>
<h2>А дальше?</h2>
<p>А дальше будет вот что:</p>
<ul>
<li>Прикручу <a href="http://jquery.com/">jQuery</a>. Чтобы обрабатывать более одного фида и более одного ключевого слова.</li>
<li>Разберусь и прикручу <a href="http://www.xmlrpc.com/">xmlrpc</a>.</li>
<li>Буду генерировать фид в формате на выбор, не только <a href="http://cyber.law.harvard.edu/rss/rss.html">RSS 2.0</a></li>
<li>(Хотелось бы) поменять хостинг для проекта с целью перевести его на <a href="http://cyber.law.harvard.edu/rss/rss.html">ZendFramework</a> (да, на этом хостинге - 4й пхп и первый Апач).</li>
<li>(возможно) <a href="http://code.google.com/apis/feedburner/">feedburner API</a>.</li>
</ul>
<h2>Хотелось бы</h2>
<ul>
<li>Ваших комментариев, отзывов, пожеланий, критики, прочего.</li>
<li>Может кто знает: где бы мне сгенерированные фиды хранить? Хостинг - не резиновый, осталось всего 10 мб. Хотелось бы какой-нибудь файловый хостинг с API.</li>
<li>Наполнить раздел FAQ, потому задавайте вопросы <img src='http://blog.folone.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p><a href="http://cyrillyun.blogspot.com/">Кирилл</a> обещал сделать версию под <strong>ASP.NET</strong>. Жду с нетерпением.</p>
<p>Вроде всё. Спасибо всем откликнувшимся.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=133/feed</wfw:commentRss>
		</item>
		<item>
		<title>140 именованных цветов</title>
		<link>http://blog.folone.org.ua/MOCK=131</link>
		<comments>http://blog.folone.org.ua/MOCK=131#comments</comments>
		<pubDate>Tue, 15 Jan 2008 17:09:08 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[misc]]></category>

		<category><![CDATA[colors]]></category>

		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/MOCK=131</guid>
		<description><![CDATA[За последние пару лет все основные браузеры позаботились о поддержке 140 именованных цветов (распознаются по имени) в своих HTML и CSS. Тоесть, вместо того чтобы запоминать шестнадцатиричный код &#8220;#FFA500?, можно просто использовать “orange” для определения цвета в Вашем коде, и браузер автоматически переведёт это значение в шестнадцатиричное. Под катом - маленькая шпаргалочка по этим цветам.
(можно [...]]]></description>
			<content:encoded><![CDATA[<p>За последние пару лет все основные браузеры позаботились о поддержке 140 именованных цветов (распознаются по имени) в своих HTML и CSS. Тоесть, вместо того чтобы запоминать шестнадцатиричный код &#8220;#FFA500?, можно просто использовать “orange” для определения цвета в Вашем коде, и браузер автоматически переведёт это значение в шестнадцатиричное. Под катом - маленькая шпаргалочка по этим цветам.</p>
<p><sub>(можно отсортировать по семье оттенков и банально по имени)</sub></p>
<p><span id="more-131"></span></p>
<p><script type="text/javascript"><!--
  function Sort(SortBy) {
    if (SortBy == "name") {
      document.getElementById("alpha").style.display = "block";
      document.getElementById("family").style.display = "none";
    } else if (SortBy == "family") {
      document.getElementById("alpha").style.display = "none";
      document.getElementById("family").style.display = "block";
    }
  }
// --></script></p>
<div>Сортировать по:</p>
<select><option value="family">Семье оттенков</option><option value="name">Имени цвета</option></select>
</div>
<table id="family" class="colorlist" border="0">
<tbody>
<tr class="header">
<td>Имя</td>
<td>Hex</td>
<td>RGB</td>
</tr>
<tr class="darktext" bgcolor="lightcoral">
<td>lightcoral</td>
<td>F08080</td>
<td>240,128,128</td>
</tr>
<tr class="darktext" bgcolor="rosybrown">
<td>rosybrown</td>
<td>BC8F8F</td>
<td>188,143,143</td>
</tr>
<tr class="darktext" bgcolor="indianred">
<td>indianred</td>
<td>CD5C5C</td>
<td>205,92,92</td>
</tr>
<tr class="lighttext" bgcolor="red">
<td>red</td>
<td>FF0000</td>
<td>255,0,0</td>
</tr>
<tr class="lighttext" bgcolor="firebrick">
<td>firebrick</td>
<td>B22222</td>
<td>178,34,34</td>
</tr>
<tr class="lighttext" bgcolor="brown">
<td>brown</td>
<td>A52A2A</td>
<td>165,42,42</td>
</tr>
<tr class="lighttext" bgcolor="darkred">
<td>darkred</td>
<td>8B0000</td>
<td>139,0,0</td>
</tr>
<tr class="lighttext" bgcolor="maroon">
<td>maroon</td>
<td>800000</td>
<td>128,0,0</td>
</tr>
<tr class="darktext" bgcolor="mistyrose">
<td>mistyrose</td>
<td>FFE4E1</td>
<td>255,228,225</td>
</tr>
<tr class="darktext" bgcolor="salmon">
<td>salmon</td>
<td>FA8072</td>
<td>250,128,114</td>
</tr>
<tr class="darktext" bgcolor="tomato">
<td>tomato</td>
<td>FF6347</td>
<td>255,99,71</td>
</tr>
<tr class="darktext" bgcolor="darksalmon">
<td>darksalmon</td>
<td>E9967A</td>
<td>233,150,122</td>
</tr>
<tr class="darktext" bgcolor="coral">
<td>coral</td>
<td>FF7F50</td>
<td>255,127,80</td>
</tr>
<tr class="lighttext" bgcolor="orangered">
<td>orangered</td>
<td>FF4500</td>
<td>255,69,0</td>
</tr>
<tr class="darktext" bgcolor="lightsalmon">
<td>lightsalmon</td>
<td>FFA07A</td>
<td>255,160,122</td>
</tr>
<tr class="lighttext" bgcolor="sienna">
<td>sienna</td>
<td>A0522D</td>
<td>160,82,45</td>
</tr>
<tr class="darktext" bgcolor="seashell">
<td>seashell</td>
<td>FFF5EE</td>
<td>255,245,238</td>
</tr>
<tr class="darktext" bgcolor="chocolate">
<td>chocolate</td>
<td>D2691E</td>
<td>210,105,30</td>
</tr>
<tr class="lighttext" bgcolor="saddlebrown">
<td>saddlebrown</td>
<td>8B4513</td>
<td>139,69,19</td>
</tr>
<tr class="darktext" bgcolor="sandybrown">
<td>sandybrown</td>
<td>F4A460</td>
<td>244,164,96</td>
</tr>
<tr class="darktext" bgcolor="peachpuff">
<td>peachpuff</td>
<td>FFDAB9</td>
<td>255,218,185</td>
</tr>
<tr class="darktext" bgcolor="peru">
<td>peru</td>
<td>CD853F</td>
<td>205,133,63</td>
</tr>
<tr class="darktext" bgcolor="linen">
<td>linen</td>
<td>FAF0E6</td>
<td>250,240,230</td>
</tr>
<tr class="darktext" bgcolor="bisque">
<td>bisque</td>
<td>FFE4C4</td>
<td>255,228,196</td>
</tr>
<tr class="darktext" bgcolor="darkorange">
<td>darkorange</td>
<td>FF8C00</td>
<td>255,140,0</td>
</tr>
<tr class="darktext" bgcolor="burlywood">
<td>burlywood</td>
<td>DEB887</td>
<td>222,184,135</td>
</tr>
<tr class="darktext" bgcolor="antiquewhite">
<td>antiquewhite</td>
<td>FAEBD7</td>
<td>250,235,215</td>
</tr>
<tr class="darktext" bgcolor="tan">
<td>tan</td>
<td>D2B48C</td>
<td>210,180,140</td>
</tr>
<tr class="darktext" bgcolor="navajowhite">
<td>navajowhite</td>
<td>FFDEAD</td>
<td>255,222,173</td>
</tr>
<tr class="darktext" bgcolor="blanchedalmond">
<td>blanchedalmond</td>
<td>FFEBCD</td>
<td>255,235,205</td>
</tr>
<tr class="darktext" bgcolor="papayawhip">
<td>papayawhip</td>
<td>FFEFD5</td>
<td>255,239,213</td>
</tr>
<tr class="darktext" bgcolor="moccasin">
<td>moccasin</td>
<td>FFE4B5</td>
<td>255,228,181</td>
</tr>
<tr class="darktext" bgcolor="orange">
<td>orange</td>
<td>FFA500</td>
<td>255,165,0</td>
</tr>
<tr class="darktext" bgcolor="wheat">
<td>wheat</td>
<td>F5DEB3</td>
<td>245,222,179</td>
</tr>
<tr class="darktext" bgcolor="oldlace">
<td>oldlace</td>
<td>FDF5E6</td>
<td>253,245,230</td>
</tr>
<tr class="darktext" bgcolor="floralwhite">
<td>floralwhite</td>
<td>FFFAF0</td>
<td>255,250,240</td>
</tr>
<tr class="darktext" bgcolor="darkgoldenrod">
<td>darkgoldenrod</td>
<td>B8860B</td>
<td>184,134,11</td>
</tr>
<tr class="darktext" bgcolor="goldenrod">
<td>goldenrod</td>
<td>DAA520</td>
<td>218,165,32</td>
</tr>
<tr class="darktext" bgcolor="cornsilk">
<td>cornsilk</td>
<td>FFF8DC</td>
<td>255,248,220</td>
</tr>
<tr class="darktext" bgcolor="gold">
<td>gold</td>
<td>FFD700</td>
<td>255,215,0</td>
</tr>
<tr class="darktext" bgcolor="lemonchiffon">
<td>lemonchiffon</td>
<td>FFFACD</td>
<td>255,250,205</td>
</tr>
<tr class="darktext" bgcolor="khaki">
<td>khaki</td>
<td>F0E68C</td>
<td>240,230,140</td>
</tr>
<tr class="darktext" bgcolor="palegoldenrod">
<td>palegoldenrod</td>
<td>EEE8AA</td>
<td>238,232,170</td>
</tr>
<tr class="darktext" bgcolor="darkkhaki">
<td>darkkhaki</td>
<td>BDB76B</td>
<td>189,183,107</td>
</tr>
<tr class="darktext" bgcolor="ivory">
<td>ivory</td>
<td>FFFFF0</td>
<td>255,255,240</td>
</tr>
<tr class="darktext" bgcolor="lightyellow">
<td>lightyellow</td>
<td>FFFFE0</td>
<td>255,255,224</td>
</tr>
<tr class="darktext" bgcolor="beige">
<td>beige</td>
<td>F5F5DC</td>
<td>245,245,220</td>
</tr>
<tr class="darktext" bgcolor="lightgoldenrodyellow">
<td>lightgoldenrodyellow</td>
<td>FAFAD2</td>
<td>250,250,210</td>
</tr>
<tr class="darktext" bgcolor="yellow">
<td>yellow</td>
<td>FFFF00</td>
<td>255,255,0</td>
</tr>
<tr class="lighttext" bgcolor="olive">
<td>olive</td>
<td>808000</td>
<td>128,128,0</td>
</tr>
<tr class="lighttext" bgcolor="olivedrab">
<td>olivedrab</td>
<td>6B8E23</td>
<td>107,142,35</td>
</tr>
<tr class="darktext" bgcolor="yellowgreen">
<td>yellowgreen</td>
<td>9ACD32</td>
<td>154,205,50</td>
</tr>
<tr class="lighttext" bgcolor="darkolivegreen">
<td>darkolivegreen</td>
<td>556B2F</td>
<td>85,107,47</td>
</tr>
<tr class="darktext" bgcolor="greenyellow">
<td>greenyellow</td>
<td>ADFF2F</td>
<td>173,255,47</td>
</tr>
<tr class="darktext" bgcolor="chartreuse">
<td>chartreuse</td>
<td>7FFF00</td>
<td>127,255,0</td>
</tr>
<tr class="darktext" bgcolor="lawngreen">
<td>lawngreen</td>
<td>7CFC00</td>
<td>124,252,0</td>
</tr>
<tr class="darktext" bgcolor="darkseagreen">
<td>darkseagreen</td>
<td>8FBC8B</td>
<td>143,188,139</td>
</tr>
<tr class="darktext" bgcolor="honeydew">
<td>honeydew</td>
<td>F0FFF0</td>
<td>240,255,240</td>
</tr>
<tr class="darktext" bgcolor="palegreen">
<td>palegreen</td>
<td>98FB98</td>
<td>152,251,152</td>
</tr>
<tr class="darktext" bgcolor="lightgreen">
<td>lightgreen</td>
<td>90EE90</td>
<td>144,238,144</td>
</tr>
<tr class="darktext" bgcolor="lime">
<td>lime</td>
<td>00FF00</td>
<td>0,255,0</td>
</tr>
<tr class="darktext" bgcolor="limegreen">
<td>limegreen</td>
<td>32CD32</td>
<td>50,205,50</td>
</tr>
<tr class="lighttext" bgcolor="forestgreen">
<td>forestgreen</td>
<td>228B22</td>
<td>34,139,34</td>
</tr>
<tr class="lighttext" bgcolor="green">
<td>green</td>
<td>008000</td>
<td>0,128,0</td>
</tr>
<tr class="lighttext" bgcolor="darkgreen">
<td>darkgreen</td>
<td>006400</td>
<td>0,100,0</td>
</tr>
<tr class="lighttext" bgcolor="seagreen">
<td>seagreen</td>
<td>2E8B57</td>
<td>46,139,87</td>
</tr>
<tr class="darktext" bgcolor="mediumseagreen">
<td>mediumseagreen</td>
<td>3CB371</td>
<td>60,179,113</td>
</tr>
<tr class="darktext" bgcolor="springgreen">
<td>springgreen</td>
<td>00FF7F</td>
<td>0,255,127</td>
</tr>
<tr class="darktext" bgcolor="mintcream">
<td>mintcream</td>
<td>F5FFFA</td>
<td>245,255,250</td>
</tr>
<tr class="darktext" bgcolor="mediumspringgreen">
<td>mediumspringgreen</td>
<td>00FA9A</td>
<td>0,250,154</td>
</tr>
<tr class="darktext" bgcolor="mediumaquamarine">
<td>mediumaquamarine</td>
<td>66CDAA</td>
<td>102,205,170</td>
</tr>
<tr class="darktext" bgcolor="aquamarine">
<td>aquamarine</td>
<td>7FFFD4</td>
<td>127,255,212</td>
</tr>
<tr class="darktext" bgcolor="turquoise">
<td>turquoise</td>
<td>40E0D0</td>
<td>64,224,208</td>
</tr>
<tr class="darktext" bgcolor="lightseagreen">
<td>lightseagreen</td>
<td>20B2AA</td>
<td>32,178,170</td>
</tr>
<tr class="darktext" bgcolor="mediumturquoise">
<td>mediumturquoise</td>
<td>48D1CC</td>
<td>72,209,204</td>
</tr>
<tr class="darktext" bgcolor="azure">
<td>azure</td>
<td>F0FFFF</td>
<td>240,255,255</td>
</tr>
<tr class="darktext" bgcolor="lightcyan">
<td>lightcyan</td>
<td>E0FFFF</td>
<td>224,255,255</td>
</tr>
<tr class="darktext" bgcolor="paleturquoise">
<td>paleturquoise</td>
<td>AFEEEE</td>
<td>175,238,238</td>
</tr>
<tr class="darktext" bgcolor="aqua">
<td>aqua</td>
<td>00FFFF</td>
<td>0,255,255</td>
</tr>
<tr class="darktext" bgcolor="cyan">
<td>cyan</td>
<td>00FFFF</td>
<td>0,255,255</td>
</tr>
<tr class="lighttext" bgcolor="darkcyan">
<td>darkcyan</td>
<td>008B8B</td>
<td>0,139,139</td>
</tr>
<tr class="lighttext" bgcolor="teal">
<td>teal</td>
<td>008080</td>
<td>0,128,128</td>
</tr>
<tr class="lighttext" bgcolor="darkslategray">
<td>darkslategray</td>
<td>2F4F4F</td>
<td>47,79,79</td>
</tr>
<tr class="darktext" bgcolor="darkturquoise">
<td>darkturquoise</td>
<td>00CED1</td>
<td>0,206,209</td>
</tr>
<tr class="darktext" bgcolor="cadetblue">
<td>cadetblue</td>
<td>5F9EA0</td>
<td>95,158,160</td>
</tr>
<tr class="darktext" bgcolor="powderblue">
<td>powderblue</td>
<td>B0E0E6</td>
<td>176,224,230</td>
</tr>
<tr class="darktext" bgcolor="lightblue">
<td>lightblue</td>
<td>ADD8E6</td>
<td>173,216,230</td>
</tr>
<tr class="darktext" bgcolor="deepskyblue">
<td>deepskyblue</td>
<td>00BFFF</td>
<td>0,191,255</td>
</tr>
<tr class="darktext" bgcolor="skyblue">
<td>skyblue</td>
<td>87CEEB</td>
<td>135,206,235</td>
</tr>
<tr class="darktext" bgcolor="lightskyblue">
<td>lightskyblue</td>
<td>87CEFA</td>
<td>135,206,250</td>
</tr>
<tr class="lighttext" bgcolor="steelblue">
<td>steelblue</td>
<td>4682B4</td>
<td>70,130,180</td>
</tr>
<tr class="darktext" bgcolor="aliceblue">
<td>aliceblue</td>
<td>F0F8FF</td>
<td>240,248,255</td>
</tr>
<tr class="lighttext" bgcolor="dodgerblue">
<td>dodgerblue</td>
<td>1E90FF</td>
<td>30,144,255</td>
</tr>
<tr class="darktext" bgcolor="lightslategray">
<td>lightslategray</td>
<td>778899</td>
<td>119,136,153</td>
</tr>
<tr class="darktext" bgcolor="slategray">
<td>slategray</td>
<td>708090</td>
<td>112,128,144</td>
</tr>
<tr class="darktext" bgcolor="lightsteelblue">
<td>lightsteelblue</td>
<td>B0C4DE</td>
<td>176,196,222</td>
</tr>
<tr class="darktext" bgcolor="cornflowerblue">
<td>cornflowerblue</td>
<td>6495ED</td>
<td>100,149,237</td>
</tr>
<tr class="lighttext" bgcolor="royalblue">
<td>royalblue</td>
<td>4169E1</td>
<td>65,105,225</td>
</tr>
<tr class="darktext" bgcolor="ghostwhite">
<td>ghostwhite</td>
<td>F8F8FF</td>
<td>248,248,255</td>
</tr>
<tr class="darktext" bgcolor="lavender">
<td>lavender</td>
<td>E6E6FA</td>
<td>230,230,250</td>
</tr>
<tr class="lighttext" bgcolor="blue">
<td>blue</td>
<td>0000FF</td>
<td>0,0,255</td>
</tr>
<tr class="lighttext" bgcolor="mediumblue">
<td>mediumblue</td>
<td>0000CD</td>
<td>0,0,205</td>
</tr>
<tr class="lighttext" bgcolor="darkblue">
<td>darkblue</td>
<td>00008B</td>
<td>0,0,139</td>
</tr>
<tr class="lighttext" bgcolor="midnightblue">
<td>midnightblue</td>
<td>191970</td>
<td>25,25,112</td>
</tr>
<tr class="lighttext" bgcolor="navy">
<td>navy</td>
<td>000080</td>
<td>0,0,128</td>
</tr>
<tr class="lighttext" bgcolor="slateblue">
<td>slateblue</td>
<td>6A5ACD</td>
<td>106,90,205</td>
</tr>
<tr class="lighttext" bgcolor="darkslateblue">
<td>darkslateblue</td>
<td>483D8B</td>
<td>72,61,139</td>
</tr>
<tr class="lighttext" bgcolor="mediumslateblue">
<td>mediumslateblue</td>
<td>7B68EE</td>
<td>123,104,238</td>
</tr>
<tr class="darktext" bgcolor="mediumpurple">
<td>mediumpurple</td>
<td>9370DB</td>
<td>147,112,219</td>
</tr>
<tr class="lighttext" bgcolor="blueviolet">
<td>blueviolet</td>
<td>8A2BE2</td>
<td>138,43,226</td>
</tr>
<tr class="lighttext" bgcolor="indigo">
<td>indigo</td>
<td>4B0082</td>
<td>75,0,130</td>
</tr>
<tr class="lighttext" bgcolor="darkorchid">
<td>darkorchid</td>
<td>9932CC</td>
<td>153,50,204</td>
</tr>
<tr class="lighttext" bgcolor="darkviolet">
<td>darkviolet</td>
<td>9400D3</td>
<td>148,0,211</td>
</tr>
<tr class="darktext" bgcolor="mediumorchid">
<td>mediumorchid</td>
<td>BA55D3</td>
<td>186,85,211</td>
</tr>
<tr class="darktext" bgcolor="thistle">
<td>thistle</td>
<td>D8BFD8</td>
<td>216,191,216</td>
</tr>
<tr class="darktext" bgcolor="plum">
<td>plum</td>
<td>DDA0DD</td>
<td>221,160,221</td>
</tr>
<tr class="darktext" bgcolor="violet">
<td>violet</td>
<td>EE82EE</td>
<td>238,130,238</td>
</tr>
<tr class="lighttext" bgcolor="fuchsia">
<td>fuchsia</td>
<td>FF00FF</td>
<td>255,0,255</td>
</tr>
<tr class="lighttext" bgcolor="magenta">
<td>magenta</td>
<td>FF00FF</td>
<td>255,0,255</td>
</tr>
<tr class="lighttext" bgcolor="darkmagenta">
<td>darkmagenta</td>
<td>8B008B</td>
<td>139,0,139</td>
</tr>
<tr class="lighttext" bgcolor="purple">
<td>purple</td>
<td>800080</td>
<td>128,0,128</td>
</tr>
<tr class="darktext" bgcolor="orchid">
<td>orchid</td>
<td>DA70D6</td>
<td>218,112,214</td>
</tr>
<tr class="lighttext" bgcolor="mediumvioletred">
<td>mediumvioletred</td>
<td>C71585</td>
<td>199,21,133</td>
</tr>
<tr class="lighttext" bgcolor="deeppink">
<td>deeppink</td>
<td>FF1493</td>
<td>255,20,147</td>
</tr>
<tr class="darktext" bgcolor="hotpink">
<td>hotpink</td>
<td>FF69B4</td>
<td>255,105,180</td>
</tr>
<tr class="darktext" bgcolor="lavenderblush">
<td>lavenderblush</td>
<td>FFF0F5</td>
<td>255,240,245</td>
</tr>
<tr class="darktext" bgcolor="palevioletred">
<td>palevioletred</td>
<td>DB7093</td>
<td>219,112,147</td>
</tr>
<tr class="lighttext" bgcolor="crimson">
<td>crimson</td>
<td>DC143C</td>
<td>220,20,60</td>
</tr>
<tr class="darktext" bgcolor="pink">
<td>pink</td>
<td>FFC0CB</td>
<td>255,192,203</td>
</tr>
<tr class="darktext" bgcolor="lightpink">
<td>lightpink</td>
<td>FFB6C1</td>
<td>255,182,193</td>
</tr>
<tr class="darktext" bgcolor="white">
<td>white</td>
<td>FFFFFF</td>
<td>255,255,255</td>
</tr>
<tr class="darktext" bgcolor="snow">
<td>snow</td>
<td>FFFAFA</td>
<td>255,250,250</td>
</tr>
<tr class="darktext" bgcolor="whitesmoke">
<td>whitesmoke</td>
<td>F5F5F5</td>
<td>245,245,245</td>
</tr>
<tr class="darktext" bgcolor="gainsboro">
<td>gainsboro</td>
<td>DCDCDC</td>
<td>220,220,220</td>
</tr>
<tr class="darktext" bgcolor="lightgrey">
<td>lightgray</td>
<td>D3D3D3</td>
<td>211,211,211</td>
</tr>
<tr class="darktext" bgcolor="silver">
<td>silver</td>
<td>C0C0C0</td>
<td>192,192,192</td>
</tr>
<tr class="darktext" bgcolor="darkgray">
<td>darkgray</td>
<td>A9A9A9</td>
<td>169,169,169</td>
</tr>
<tr class="darktext" bgcolor="gray">
<td>gray</td>
<td>808080</td>
<td>128,128,128</td>
</tr>
<tr class="lighttext" bgcolor="dimgray">
<td>dimgray</td>
<td>696969</td>
<td>105,105,105</td>
</tr>
<tr class="lighttext" bgcolor="black">
<td>black</td>
<td>000000</td>
<td>0,0,0</td>
</tr>
</tbody>
</table>
<table id="alpha" class="colorlist" border="0">
<tbody>
<tr class="header">
<td>Имя</td>
<td>Hex</td>
<td>RGB</td>
</tr>
<tr class="darktext" bgcolor="aliceblue">
<td>aliceblue</td>
<td>F0F8FF</td>
<td>240,248,255</td>
</tr>
<tr class="darktext" bgcolor="antiquewhite">
<td>antiquewhite</td>
<td>FAEBD7</td>
<td>250,235,215</td>
</tr>
<tr class="darktext" bgcolor="aqua">
<td>aqua</td>
<td>00FFFF</td>
<td>0,255,255</td>
</tr>
<tr class="darktext" bgcolor="aquamarine">
<td>aquamarine</td>
<td>7FFFD4</td>
<td>127,255,212</td>
</tr>
<tr class="darktext" bgcolor="azure">
<td>azure</td>
<td>F0FFFF</td>
<td>240,255,255</td>
</tr>
<tr class="darktext" bgcolor="beige">
<td>beige</td>
<td>F5F5DC</td>
<td>245,245,220</td>
</tr>
<tr class="darktext" bgcolor="bisque">
<td>bisque</td>
<td>FFE4C4</td>
<td>255,228,196</td>
</tr>
<tr class="lighttext" bgcolor="black">
<td>black</td>
<td>000000</td>
<td>0,0,0</td>
</tr>
<tr class="darktext" bgcolor="blanchedalmond">
<td>blanchedalmond</td>
<td>FFEBCD</td>
<td>255,235,205</td>
</tr>
<tr class="lighttext" bgcolor="blue">
<td>blue</td>
<td>0000FF</td>
<td>0,0,255</td>
</tr>
<tr class="lighttext" bgcolor="blueviolet">
<td>blueviolet</td>
<td>8A2BE2</td>
<td>138,43,226</td>
</tr>
<tr class="lighttext" bgcolor="brown">
<td>brown</td>
<td>A52A2A</td>
<td>165,42,42</td>
</tr>
<tr class="darktext" bgcolor="burlywood">
<td>burlywood</td>
<td>DEB887</td>
<td>222,184,135</td>
</tr>
<tr class="darktext" bgcolor="cadetblue">
<td>cadetblue</td>
<td>5F9EA0</td>
<td>95,158,160</td>
</tr>
<tr class="darktext" bgcolor="chartreuse">
<td>chartreuse</td>
<td>7FFF00</td>
<td>127,255,0</td>
</tr>
<tr class="darktext" bgcolor="chocolate">
<td>chocolate</td>
<td>D2691E</td>
<td>210,105,30</td>
</tr>
<tr class="darktext" bgcolor="coral">
<td>coral</td>
<td>FF7F50</td>
<td>255,127,80</td>
</tr>
<tr class="darktext" bgcolor="cornflowerblue">
<td>cornflowerblue</td>
<td>6495ED</td>
<td>100,149,237</td>
</tr>
<tr class="darktext" bgcolor="cornsilk">
<td>cornsilk</td>
<td>FFF8DC</td>
<td>255,248,220</td>
</tr>
<tr class="lighttext" bgcolor="crimson">
<td>crimson</td>
<td>DC143C</td>
<td>220,20,60</td>
</tr>
<tr class="darktext" bgcolor="cyan">
<td>cyan</td>
<td>00FFFF</td>
<td>0,255,255</td>
</tr>
<tr class="lighttext" bgcolor="darkblue">
<td>darkblue</td>
<td>00008B</td>
<td>0,0,139</td>
</tr>
<tr class="lighttext" bgcolor="darkcyan">
<td>darkcyan</td>
<td>008B8B</td>
<td>0,139,139</td>
</tr>
<tr class="darktext" bgcolor="darkgoldenrod">
<td>darkgoldenrod</td>
<td>B8860B</td>
<td>184,134,11</td>
</tr>
<tr class="darktext" bgcolor="darkgray">
<td>darkgray</td>
<td>A9A9A9</td>
<td>169,169,169</td>
</tr>
<tr class="lighttext" bgcolor="darkgreen">
<td>darkgreen</td>
<td>006400</td>
<td>0,100,0</td>
</tr>
<tr class="darktext" bgcolor="darkkhaki">
<td>darkkhaki</td>
<td>BDB76B</td>
<td>189,183,107</td>
</tr>
<tr class="lighttext" bgcolor="darkmagenta">
<td>darkmagenta</td>
<td>8B008B</td>
<td>139,0,139</td>
</tr>
<tr class="lighttext" bgcolor="darkolivegreen">
<td>darkolivegreen</td>
<td>556B2F</td>
<td>85,107,47</td>
</tr>
<tr class="darktext" bgcolor="darkorange">
<td>darkorange</td>
<td>FF8C00</td>
<td>255,140,0</td>
</tr>
<tr class="lighttext" bgcolor="darkorchid">
<td>darkorchid</td>
<td>9932CC</td>
<td>153,50,204</td>
</tr>
<tr class="lighttext" bgcolor="darkred">
<td>darkred</td>
<td>8B0000</td>
<td>139,0,0</td>
</tr>
<tr class="darktext" bgcolor="darksalmon">
<td>darksalmon</td>
<td>E9967A</td>
<td>233,150,122</td>
</tr>
<tr class="darktext" bgcolor="darkseagreen">
<td>darkseagreen</td>
<td>8FBC8B</td>
<td>143,188,139</td>
</tr>
<tr class="lighttext" bgcolor="darkslateblue">
<td>darkslateblue</td>
<td>483D8B</td>
<td>72,61,139</td>
</tr>
<tr class="lighttext" bgcolor="darkslategray">
<td>darkslategray</td>
<td>2F4F4F</td>
<td>47,79,79</td>
</tr>
<tr class="darktext" bgcolor="darkturquoise">
<td>darkturquoise</td>
<td>00CED1</td>
<td>0,206,209</td>
</tr>
<tr class="lighttext" bgcolor="darkviolet">
<td>darkviolet</td>
<td>9400D3</td>
<td>148,0,211</td>
</tr>
<tr class="lighttext" bgcolor="deeppink">
<td>deeppink</td>
<td>FF1493</td>
<td>255,20,147</td>
</tr>
<tr class="darktext" bgcolor="deepskyblue">
<td>deepskyblue</td>
<td>00BFFF</td>
<td>0,191,255</td>
</tr>
<tr class="lighttext" bgcolor="dimgray">
<td>dimgray</td>
<td>696969</td>
<td>105,105,105</td>
</tr>
<tr class="lighttext" bgcolor="dodgerblue">
<td>dodgerblue</td>
<td>1E90FF</td>
<td>30,144,255</td>
</tr>
<tr class="lighttext" bgcolor="firebrick">
<td>firebrick</td>
<td>B22222</td>
<td>178,34,34</td>
</tr>
<tr class="darktext" bgcolor="floralwhite">
<td>floralwhite</td>
<td>FFFAF0</td>
<td>255,250,240</td>
</tr>
<tr class="lighttext" bgcolor="forestgreen">
<td>forestgreen</td>
<td>228B22</td>
<td>34,139,34</td>
</tr>
<tr class="lighttext" bgcolor="fuchsia">
<td>fuchsia</td>
<td>FF00FF</td>
<td>255,0,255</td>
</tr>
<tr class="darktext" bgcolor="gainsboro">
<td>gainsboro</td>
<td>DCDCDC</td>
<td>220,220,220</td>
</tr>
<tr class="darktext" bgcolor="ghostwhite">
<td>ghostwhite</td>
<td>F8F8FF</td>
<td>248,248,255</td>
</tr>
<tr class="darktext" bgcolor="gold">
<td>gold</td>
<td>FFD700</td>
<td>255,215,0</td>
</tr>
<tr class="darktext" bgcolor="goldenrod">
<td>goldenrod</td>
<td>DAA520</td>
<td>218,165,32</td>
</tr>
<tr class="darktext" bgcolor="gray">
<td>gray</td>
<td>808080</td>
<td>128,128,128</td>
</tr>
<tr class="lighttext" bgcolor="green">
<td>green</td>
<td>008000</td>
<td>0,128,0</td>
</tr>
<tr class="darktext" bgcolor="greenyellow">
<td>greenyellow</td>
<td>ADFF2F</td>
<td>173,255,47</td>
</tr>
<tr class="darktext" bgcolor="honeydew">
<td>honeydew</td>
<td>F0FFF0</td>
<td>240,255,240</td>
</tr>
<tr class="darktext" bgcolor="hotpink">
<td>hotpink</td>
<td>FF69B4</td>
<td>255,105,180</td>
</tr>
<tr class="darktext" bgcolor="indianred">
<td>indianred</td>
<td>CD5C5C</td>
<td>205,92,92</td>
</tr>
<tr class="lighttext" bgcolor="indigo">
<td>indigo</td>
<td>4B0082</td>
<td>75,0,130</td>
</tr>
<tr class="darktext" bgcolor="ivory">
<td>ivory</td>
<td>FFFFF0</td>
<td>255,255,240</td>
</tr>
<tr class="darktext" bgcolor="khaki">
<td>khaki</td>
<td>F0E68C</td>
<td>240,230,140</td>
</tr>
<tr class="darktext" bgcolor="lavender">
<td>lavender</td>
<td>E6E6FA</td>
<td>230,230,250</td>
</tr>
<tr class="darktext" bgcolor="lavenderblush">
<td>lavenderblush</td>
<td>FFF0F5</td>
<td>255,240,245</td>
</tr>
<tr class="darktext" bgcolor="lawngreen">
<td>lawngreen</td>
<td>7CFC00</td>
<td>124,252,0</td>
</tr>
<tr class="darktext" bgcolor="lemonchiffon">
<td>lemonchiffon</td>
<td>FFFACD</td>
<td>255,250,205</td>
</tr>
<tr class="darktext" bgcolor="lightblue">
<td>lightblue</td>
<td>ADD8E6</td>
<td>173,216,230</td>
</tr>
<tr class="darktext" bgcolor="lightcoral">
<td>lightcoral</td>
<td>F08080</td>
<td>240,128,128</td>
</tr>
<tr class="darktext" bgcolor="lightcyan">
<td>lightcyan</td>
<td>E0FFFF</td>
<td>224,255,255</td>
</tr>
<tr class="darktext" bgcolor="lightgoldenrodyellow">
<td>lightgoldenrodyellow</td>
<td>FAFAD2</td>
<td>250,250,210</td>
</tr>
<tr class="darktext" bgcolor="lightgray">
<td>lightgray</td>
<td>D3D3D3</td>
<td>211,211,211</td>
</tr>
<tr class="darktext" bgcolor="lightgreen">
<td>lightgreen</td>
<td>90EE90</td>
<td>144,238,144</td>
</tr>
<tr class="darktext" bgcolor="lightpink">
<td>lightpink</td>
<td>FFB6C1</td>
<td>255,182,193</td>
</tr>
<tr class="darktext" bgcolor="lightsalmon">
<td>lightsalmon</td>
<td>FFA07A</td>
<td>255,160,122</td>
</tr>
<tr class="darktext" bgcolor="lightseagreen">
<td>lightseagreen</td>
<td>20B2AA</td>
<td>32,178,170</td>
</tr>
<tr class="darktext" bgcolor="lightskyblue">
<td>lightskyblue</td>
<td>87CEFA</td>
<td>135,206,250</td>
</tr>
<tr class="darktext" bgcolor="lightslategray">
<td>lightslategray</td>
<td>778899</td>
<td>119,136,153</td>
</tr>
<tr class="darktext" bgcolor="lightsteelblue">
<td>lightsteelblue</td>
<td>B0C4DE</td>
<td>176,196,222</td>
</tr>
<tr class="darktext" bgcolor="lightyellow">
<td>lightyellow</td>
<td>FFFFE0</td>
<td>255,255,224</td>
</tr>
<tr class="darktext" bgcolor="lime">
<td>lime</td>
<td>00FF00</td>
<td>0,255,0</td>
</tr>
<tr class="darktext" bgcolor="limegreen">
<td>limegreen</td>
<td>32CD32</td>
<td>50,205,50</td>
</tr>
<tr class="darktext" bgcolor="linen">
<td>linen</td>
<td>FAF0E6</td>
<td>250,240,230</td>
</tr>
<tr class="lighttext" bgcolor="magenta">
<td>magenta</td>
<td>FF00FF</td>
<td>255,0,255</td>
</tr>
<tr class="lighttext" bgcolor="maroon">
<td>maroon</td>
<td>800000</td>
<td>128,0,0</td>
</tr>
<tr class="darktext" bgcolor="mediumaquamarine">
<td>mediumaquamarine</td>
<td>66CDAA</td>
<td>102,205,170</td>
</tr>
<tr class="lighttext" bgcolor="mediumblue">
<td>mediumblue</td>
<td>0000CD</td>
<td>0,0,205</td>
</tr>
<tr class="darktext" bgcolor="mediumorchid">
<td>mediumorchid</td>
<td>BA55D3</td>
<td>186,85,211</td>
</tr>
<tr class="darktext" bgcolor="mediumpurple">
<td>mediumpurple</td>
<td>9370DB</td>
<td>147,112,219</td>
</tr>
<tr class="darktext" bgcolor="mediumseagreen">
<td>mediumseagreen</td>
<td>3CB371</td>
<td>60,179,113</td>
</tr>
<tr class="lighttext" bgcolor="mediumslateblue">
<td>mediumslateblue</td>
<td>7B68EE</td>
<td>123,104,238</td>
</tr>
<tr class="darktext" bgcolor="mediumspringgreen">
<td>mediumspringgreen</td>
<td>00FA9A</td>
<td>0,250,154</td>
</tr>
<tr class="darktext" bgcolor="mediumturquoise">
<td>mediumturquoise</td>
<td>48D1CC</td>
<td>72,209,204</td>
</tr>
<tr class="lighttext" bgcolor="mediumvioletred">
<td>mediumvioletred</td>
<td>C71585</td>
<td>199,21,133</td>
</tr>
<tr class="lighttext" bgcolor="midnightblue">
<td>midnightblue</td>
<td>191970</td>
<td>25,25,112</td>
</tr>
<tr class="darktext" bgcolor="mintcream">
<td>mintcream</td>
<td>F5FFFA</td>
<td>245,255,250</td>
</tr>
<tr class="darktext" bgcolor="mistyrose">
<td>mistyrose</td>
<td>FFE4E1</td>
<td>255,228,225</td>
</tr>
<tr class="darktext" bgcolor="moccasin">
<td>moccasin</td>
<td>FFE4B5</td>
<td>255,228,181</td>
</tr>
<tr class="darktext" bgcolor="navajowhite">
<td>navajowhite</td>
<td>FFDEAD</td>
<td>255,222,173</td>
</tr>
<tr class="lighttext" bgcolor="navy">
<td>navy</td>
<td>000080</td>
<td>0,0,128</td>
</tr>
<tr class="darktext" bgcolor="oldlace">
<td>oldlace</td>
<td>FDF5E6</td>
<td>253,245,230</td>
</tr>
<tr class="lighttext" bgcolor="olive">
<td>olive</td>
<td>808000</td>
<td>128,128,0</td>
</tr>
<tr class="lighttext" bgcolor="olivedrab">
<td>olivedrab</td>
<td>6B8E23</td>
<td>107,142,35</td>
</tr>
<tr class="darktext" bgcolor="orange">
<td>orange</td>
<td>FFA500</td>
<td>255,165,0</td>
</tr>
<tr class="lighttext" bgcolor="orangered">
<td>orangered</td>
<td>FF4500</td>
<td>255,69,0</td>
</tr>
<tr class="darktext" bgcolor="orchid">
<td>orchid</td>
<td>DA70D6</td>
<td>218,112,214</td>
</tr>
<tr class="darktext" bgcolor="palegoldenrod">
<td>palegoldenrod</td>
<td>EEE8AA</td>
<td>238,232,170</td>
</tr>
<tr class="darktext" bgcolor="palegreen">
<td>palegreen</td>
<td>98FB98</td>
<td>152,251,152</td>
</tr>
<tr class="darktext" bgcolor="paleturquoise">
<td>paleturquoise</td>
<td>AFEEEE</td>
<td>175,238,238</td>
</tr>
<tr class="darktext" bgcolor="palevioletred">
<td>palevioletred</td>
<td>DB7093</td>
<td>219,112,147</td>
</tr>
<tr class="darktext" bgcolor="papayawhip">
<td>papayawhip</td>
<td>FFEFD5</td>
<td>255,239,213</td>
</tr>
<tr class="darktext" bgcolor="peachpuff">
<td>peachpuff</td>
<td>FFDAB9</td>
<td>255,218,185</td>
</tr>
<tr class="darktext" bgcolor="peru">
<td>peru</td>
<td>CD853F</td>
<td>205,133,63</td>
</tr>
<tr class="darktext" bgcolor="pink">
<td>pink</td>
<td>FFC0CB</td>
<td>255,192,203</td>
</tr>
<tr class="darktext" bgcolor="plum">
<td>plum</td>
<td>DDA0DD</td>
<td>221,160,221</td>
</tr>
<tr class="darktext" bgcolor="powderblue">
<td>powderblue</td>
<td>B0E0E6</td>
<td>176,224,230</td>
</tr>
<tr class="lighttext" bgcolor="purple">
<td>purple</td>
<td>800080</td>
<td>128,0,128</td>
</tr>
<tr class="lighttext" bgcolor="red">
<td>red</td>
<td>FF0000</td>
<td>255,0,0</td>
</tr>
<tr class="darktext" bgcolor="rosybrown">
<td>rosybrown</td>
<td>BC8F8F</td>
<td>188,143,143</td>
</tr>
<tr class="lighttext" bgcolor="royalblue">
<td>royalblue</td>
<td>4169E1</td>
<td>65,105,225</td>
</tr>
<tr class="lighttext" bgcolor="saddlebrown">
<td>saddlebrown</td>
<td>8B4513</td>
<td>139,69,19</td>
</tr>
<tr class="darktext" bgcolor="salmon">
<td>salmon</td>
<td>FA8072</td>
<td>250,128,114</td>
</tr>
<tr class="darktext" bgcolor="sandybrown">
<td>sandybrown</td>
<td>F4A460</td>
<td>244,164,96</td>
</tr>
<tr class="lighttext" bgcolor="seagreen">
<td>seagreen</td>
<td>2E8B57</td>
<td>46,139,87</td>
</tr>
<tr class="darktext" bgcolor="seashell">
<td>seashell</td>
<td>FFF5EE</td>
<td>255,245,238</td>
</tr>
<tr class="lighttext" bgcolor="sienna">
<td>sienna</td>
<td>A0522D</td>
<td>160,82,45</td>
</tr>
<tr class="darktext" bgcolor="silver">
<td>silver</td>
<td>C0C0C0</td>
<td>192,192,192</td>
</tr>
<tr class="darktext" bgcolor="skyblue">
<td>skyblue</td>
<td>87CEEB</td>
<td>135,206,235</td>
</tr>
<tr class="lighttext" bgcolor="slateblue">
<td>slateblue</td>
<td>6A5ACD</td>
<td>106,90,205</td>
</tr>
<tr class="darktext" bgcolor="slategray">
<td>slategray</td>
<td>708090</td>
<td>112,128,144</td>
</tr>
<tr class="darktext" bgcolor="snow">
<td>snow</td>
<td>FFFAFA</td>
<td>255,250,250</td>
</tr>
<tr class="darktext" bgcolor="springgreen">
<td>springgreen</td>
<td>00FF7F</td>
<td>0,255,127</td>
</tr>
<tr class="lighttext" bgcolor="steelblue">
<td>steelblue</td>
<td>4682B4</td>
<td>70,130,180</td>
</tr>
<tr class="darktext" bgcolor="tan">
<td>tan</td>
<td>D2B48C</td>
<td>210,180,140</td>
</tr>
<tr class="lighttext" bgcolor="teal">
<td>teal</td>
<td>008080</td>
<td>0,128,128</td>
</tr>
<tr class="darktext" bgcolor="thistle">
<td>thistle</td>
<td>D8BFD8</td>
<td>216,191,216</td>
</tr>
<tr class="darktext" bgcolor="tomato">
<td>tomato</td>
<td>FF6347</td>
<td>255,99,71</td>
</tr>
<tr class="darktext" bgcolor="turquoise">
<td>turquoise</td>
<td>40E0D0</td>
<td>64,224,208</td>
</tr>
<tr class="darktext" bgcolor="violet">
<td>violet</td>
<td>EE82EE</td>
<td>238,130,238</td>
</tr>
<tr class="darktext" bgcolor="wheat">
<td>wheat</td>
<td>F5DEB3</td>
<td>245,222,179</td>
</tr>
<tr class="darktext" bgcolor="white">
<td>white</td>
<td>FFFFFF</td>
<td>255,255,255</td>
</tr>
<tr class="darktext" bgcolor="whitesmoke">
<td>whitesmoke</td>
<td>F5F5F5</td>
<td>245,245,245</td>
</tr>
<tr class="darktext" bgcolor="yellow">
<td>yellow</td>
<td>FFFF00</td>
<td>255,255,0</td>
</tr>
<tr class="darktext" bgcolor="yellowgreen">
<td>yellowgreen</td>
<td>9ACD32</td>
<td>154,205,50</td>
</tr>
</tbody>
</table>
<p><strong>З.Ы.</strong> нашёл <a href="http://www.colorschemer.com/blog/2007/07/24/140-named-colors/">тут</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=131/feed</wfw:commentRss>
		</item>
		<item>
		<title>CSS псевдоклассы и псевдоэлементы</title>
		<link>http://blog.folone.org.ua/MOCK=127</link>
		<comments>http://blog.folone.org.ua/MOCK=127#comments</comments>
		<pubDate>Tue, 18 Dec 2007 15:08:23 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[misc]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/MOCK=127</guid>
		<description><![CDATA[Всегда интересовался эффектами, достижимыми использованием псевдоклассов в css. Я никогда верстальщиком/дизайнером не был, но поразбираться иногда очень интересно. Потому заметочка для себя.
Итак, псевдоклассы предназначены для управления элементами, недостижимыми с помощью обычных селекторов.
Список всем известных псевдоклассов и псевдоэлементов в css2:

 :first-child - первый потомок элемента.
 :link - непосещенные ссылки.
 :visited - посещенные ссылки
 :hover - элемент, [...]]]></description>
			<content:encoded><![CDATA[<p>Всегда интересовался эффектами, достижимыми использованием псевдоклассов в css. Я никогда верстальщиком/дизайнером не был, но поразбираться иногда очень интересно. Потому заметочка для себя.</p>
<p>Итак, псевдоклассы предназначены для управления элементами, недостижимыми с помощью обычных селекторов.<span id="more-127"></span></p>
<p>Список всем известных <a href="http://www.w3.org/TR/REC-CSS2/selector.html#q15">псевдоклассов и псевдоэлементов</a> в <a href="http://www.w3.org/TR/REC-CSS2/">css2</a>:</p>
<ul>
<li><em> :first-child</em> - первый потомок элемента.</li>
<li><em> :link</em> - непосещенные ссылки.</li>
<li><em> :visited</em> - посещенные ссылки</li>
<li><em> :hover</em> - элемент, над которым находится указатель мыши.</li>
<li><em> :active</em> - активизированный элемент.</li>
<li><em> :focus</em> - элемент, имеющий фокус.</li>
<li><em> :lang</em> - текущий язык.</li>
<li><em> :first-line</em> - первая строка абзаца.</li>
<li><em> :first-letter</em> -  первая буква абзаца.</li>
<li><em> :before</em> - располагает содержание перед элементом.</li>
<li><em> :after</em> - располагает содержание после элемента.</li>
</ul>
<p>В <a href="http://www.w3.org/TR/css3-roadmap/">css3</a> уже заявлены следующие <a href="http://www.w3.org/TR/css3-selectors/">псевдоклассы и псевдоэлементы</a>:</p>
<ul>
<li><em>:</em><span lang="EN-US"><em>root</em> - </span>корневой элемент документа.</li>
<li><em>:<span lang="EN-US">nth</span>-<span lang="EN-US">child</span>(<span lang="EN-US">n</span>)</em> -  	<span lang="EN-US">n</span>-й дочерний элемент родительского элемента.</li>
<li><em>:<span lang="EN-US">nth</span>-<span lang="EN-US">last</span>-<span lang="EN-US">child</span>(<span lang="EN-US">n</span>)</em> -  	<span lang="EN-US">n</span>-й дочерний элемент родительского элемента, считая с конца.</li>
<li><em>:<span lang="EN-US">nth</span>-<span lang="EN-US">of</span>-<span lang="EN-US">type</span>(<span lang="EN-US">n</span>)</em> -  	<span lang="EN-US">n</span>-й среди элементов одного уровня и одного типа.</li>
<li><em>:<span lang="EN-US">nth</span>-<span lang="EN-US">last</span>-<span lang="EN-US">of</span>-<span lang="EN-US">type</span>(n)</em> -  	<span lang="EN-US">n</span>-й среди элементов одного уровня и одного типа, считая с конца.</li>
<li><em>:<span lang="EN-US">last</span>-<span lang="EN-US">child</span></em> - последний дочерний элемент некоторого родительского элемента.</li>
<li><em>:<span lang="EN-US">f</span><span lang="EN-US">irst</span>-<span lang="EN-US">of</span>-<span lang="EN-US">type</span></em> - первый среди элементов одного уровня и одного типа.</li>
<li><em>:<span lang="EN-US">last</span>-<span lang="EN-US">of</span>-<span lang="EN-US">type</span></em> - последний из элементов одного уровня и одного типа.</li>
<li><em>:<span lang="EN-US">only</span>-<span lang="EN-US">child</span></em> - единственный дочерний элемент некоторого родительского элемента.</li>
<li><em>:<span lang="EN-US">only</span>-<span lang="EN-US">of</span>-<span lang="EN-US">type</span></em> - единственный элемент данного уровня и данного типа.</li>
<li><em>:<span lang="EN-US">empty</span></em> - элемент, не имеющий дочерних элементов (учитывая текст).</li>
</ul>
<p>Почитать подробнее и с примерами можно <a href="http://stepbystep.htmlbook.ru/?id=58">тут</a> и <a href="http://softsvet.ru/2007/07/05/strukturnye_psevdoklassy_objavlennye_v_css3..html">тут</a>.</p>
<p>Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=127/feed</wfw:commentRss>
		</item>
		<item>
		<title>Используем микроформаты в своём блоге.</title>
		<link>http://blog.folone.org.ua/MOCK=116</link>
		<comments>http://blog.folone.org.ua/MOCK=116#comments</comments>
		<pubDate>Tue, 04 Dec 2007 23:15:50 +0000</pubDate>
		<dc:creator>folone</dc:creator>
		
		<category><![CDATA[semantic web]]></category>

		<category><![CDATA[hAtom]]></category>

		<category><![CDATA[hCalendar]]></category>

		<category><![CDATA[hCard]]></category>

		<category><![CDATA[hResume]]></category>

		<category><![CDATA[hReview]]></category>

		<category><![CDATA[MicroID]]></category>

		<category><![CDATA[relLicense]]></category>

		<category><![CDATA[relTag]]></category>

		<category><![CDATA[xfn]]></category>

		<category><![CDATA[xoxo]]></category>

		<guid isPermaLink="false">http://blog.folone.org.ua/MOCK=116</guid>
		<description><![CDATA[Подразумеваются блоги на Вордпрессе. Увидел статью тут, решил перевести.
Есть два варианта решения данной проблемы. Первый: ручками копипастить соответствующий код, полученный с помощью редакторов микроформатов. Делается так:

Заполняем формочки редакторов. Вот основные:

hCalendar Creator
hCard Creator
hResume Creator
hReview Creator


Вставляем получившийся код перед текстом поста в своём редакторе. Например, вот как выглядит код hReviewer  Creator`а:
&#60;div class="hreview"&#62; &#60;abbr class="dtreviewed" title="20060901T1200"&#62;Sep 1, [...]]]></description>
			<content:encoded><![CDATA[<p>Подразумеваются блоги на <a href="http://wordpress.org/">Вордпрессе</a>. Увидел статью <a href="http://bloghelper.is-there.net/using-microformats-in-wordpress/">тут</a>, решил перевести.</p>
<blockquote><p>Есть два варианта решения данной проблемы. Первый: ручками копипастить соответствующий код, полученный с помощью редакторов микроформатов. Делается так:<span id="more-116"></span></p>
<ol>
<li>Заполняем формочки редакторов. Вот основные:
<ul>
<li><a href="http://microformats.org/code/hcalendar/creator">hCalendar Creator</a></li>
<li><a href="http://microformats.org/code/hcard/creator">hCard Creator</a></li>
<li><a href="http://hresume.weblogswork.com/hresumecreator/">hResume Creator</a></li>
<li><a href="http://microformats.org/code/hreview/creator">hReview Creator</a></li>
</ul>
</li>
<li>Вставляем получившийся код перед текстом поста в своём редакторе. Например, вот как выглядит код <strong>hReviewer  Creator`</strong>а:<code><br />
&lt;div class="hreview"&gt; &lt;abbr class="dtreviewed" title="20060901T1200"&gt;Sep 1, 2006&lt;/abbr&gt; by &lt;span class="reviewer vcard"&gt; &lt;span class="fn"&gt;anonymous&lt;/span&gt; &lt;/span&gt; &lt;span class="version" style="display: none;"&gt;0.3&lt;/span&gt; &lt;p style="font-size: smaller;"&gt;This &lt;a href="http://microformats.org/wiki/hreview"&gt;hReview&lt;/a&gt; brought to you by the &lt;a href="http://microformats.org/code/hreview/creator"&gt;hReview Creator&lt;/a&gt;. &lt;/p&gt; &lt;/div&gt;<br />
</code>Так как вставляться будет html, Вам прийдётся использовать не WYSIWYG-редактор (либо режим редактирования кода).</li>
<li>Постим (как обычно).</li>
</ol>
<p><strong>З.Ы.</strong> <a href="http://performancing.com/node/4170">Тут</a> - подробней.</p>
<p>Второй метод предполагает использование  плагинов для Вордпресса, потому подходит только для standalone блогов. Этот метод позволяет постить отформатированные посты прямо из админки, кроме того этот метод является гораздо более чистым, валидным и правильным (ну и удобным, ясное дело).</p>
<ul>
<li>Как именно поступать - зависит от интересующего лично Вас микроформата и плагина, который Вы выберете. Потому я просто перечислю варианты:
<ol>
<li><strong>Плагины, поддерживающие несколько форматов:</strong>
<ul>
<li><a href="http://www.structuredblogging.org/instructions-wp.php">Structured blogging</a> - поддерживает hReview, hCalendar, hCard, и некоторые другие <a href="http://microformats.org/about/">микрофотматы</a> (такие как XFN, relLicense, relTag, и XOXO).</li>
<li><a href="http://wordpress.org/support/topic/43405?replies=4">WP-Microformats</a> - поддерживает hCalendar и hCard. Добавляет кнопку для каждого микроформата на панель Write Post, которая вызовет соответствующую всплывающую формочку.</li>
</ul>
</li>
<li><strong>hReview - плагины:</strong>
<ul>
<li><a href="http://www.aes.id.au/?page_id=28">hReview WordPress Plugin</a> - Добавляет соответствующее поле (которое можно отключить) на панель Write Post/Page.</li>
<li><a href="http://paulgoscicki.com/projects/wp-movie-ratings/">WP-Movie Ratings</a> - Обзоры фильмов, сделанные с помощью данного плагина - в формате hReview.</li>
</ul>
</li>
<li><strong>hResume плагин:</strong>
<ul>
<li><a href="http://hresume.weblogswork.com/?page_id=3">hResume Plugin</a> - Создаёт новую страницу, описанную в формате hResume.</li>
</ul>
</li>
<li><strong>hCalendar плагин:</strong>
<ul>
<li><a href="http://trac.labnotes.org/cgi-bin/trac.cgi/wiki/WPPlugin/uPress">uPress WordPress Plugin</a> - Добавляет соответствующие поля на Вашу панель Write Post. <a href="http://blog.labnotes.org/2006/01/10/screencast-posting-events-with-wordpress-20/">Мануал</a> для WP 2.0 - в наличии.</li>
</ul>
</li>
<li><strong>hCard плагин:</strong>
<ul>
<li><a href="http://factorycity.net/projects/wp-microformatted-blogroll/">WP Microformatted Blogroll</a> - Создаёт страницу с Вашими ссылками, размеченную в формате hCard, XOXO и XFN.</li>
</ul>
</li>
<li><strong>MicroID плагин:</strong>
<ul>
<li><a href="http://www.richardkmiller.com/blog/archives/2006/03/microid-plugin-for-wordpress">MicroID Plugin for WP</a> - Автоматически прикрепляет MicroID к Вашему блогу, каждому посту и комментарию. <a href="http://microid.org/">Подробнее</a>.</li>
</ul>
</li>
<li><strong>Около-XFN`овский плагин:</strong>
<ul>
<li><a href="http://chancecube.com/products/happypals/">Happy Pals</a> - Это, собственно, не плагин для микроформата XFN. Он лишь применяет CSS классы к ссылкам с rel-атрибутами (например, <em>rel=&#8221;friend&#8221;</em>), давая возможность стилизировать свой блогролл.</li>
</ul>
</li>
</ol>
</li>
<li>Кроме плагинов, существуют также темы с поддержкой микроформата hAtom. Например, такие:
<ul>
<li><a href="http://www.plaintxt.org/themes/sandbox/">Sandbox Theme</a></li>
<li><a href="http://www.whump.com/dropbox/Strangelove.zip">Strange Love (изменённая Kubrick) theme</a></li>
</ul>
</li>
<p>Возможно Вам будет также интересна некоторая <a href="http://factoryjoe.com/blog/2006/08/06/wordpress-makes-a-move-towards-hatom-gets-upgrades/">информация</a> по поддержке микроформата hAtom в темах Вордпресса.</ul>
<p>Вот и всё, что я смог найти. Возможно, что-то пропущено?</p></blockquote>
<div class="hreview"><a class="url" href="http://bloghelper.is-there.net/using-microformats-in-wordpress/">Статья</a></p>
<blockquote class="description"><p>..просто восхитительна. Подборка плагинов порадовала. Огромное спасибо <a href="http://bloghelper.is-there.net/author/admin/">автору</a>.</p></blockquote>
<p>My rating: <span class="rating">5.0</span> stars<br />
<img class="hreview_image" src="http://blog.folone.org.ua/wp-content/plugins/hreview/starfull.gif" alt="*" width="20" height="20" /><img class="hreview_image" src="http://blog.folone.org.ua/wp-content/plugins/hreview/starfull.gif" alt="*" width="20" height="20" /><img class="hreview_image" src="http://blog.folone.org.ua/wp-content/plugins/hreview/starfull.gif" alt="*" width="20" height="20" /><img class="hreview_image" src="http://blog.folone.org.ua/wp-content/plugins/hreview/starfull.gif" alt="*" width="20" height="20" /><img class="hreview_image" src="http://blog.folone.org.ua/wp-content/plugins/hreview/starfull.gif" alt="*" width="20" height="20" /></div>
<p><a href="http://microformats.org/wiki/icons">Бонус</a> - иконки для разных микроформатов.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folone.org.ua/MOCK=116/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
