<?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>451 degrees Fahrenheit</title>
	<atom:link href="http://451f.com.ua/feed/" rel="self" type="application/rss+xml" />
	<link>http://451f.com.ua</link>
	<description>developer blog</description>
	<pubDate>Wed, 20 Aug 2008 12:24:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<item>
		<title>Валидация DOM HTML в реальном времени</title>
		<link>http://451f.com.ua/2008/08/15/html5-live-dom-validator/</link>
		<comments>http://451f.com.ua/2008/08/15/html5-live-dom-validator/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 14:12:02 +0000</pubDate>
		<dc:creator>pilot</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

		<category><![CDATA[валидация]]></category>

		<guid isPermaLink="false">http://451f.com.ua/2008/08/15/html5-live-dom-validator/</guid>
		<description><![CDATA[Во время web 2.0 валидность документов стандартрам w3.org xhtml, html, css является неотемлемой частью любого проекта
Осообенно трепетно к этому относятся заказчики за пределами СНГ

Валидатор от w3.org, конечно хорошо, но как всегда хочеться большего.
В нашем случае &#8220;большее&#8221; - это живой валидатор в реальном времени, автор живого валидатора (Validator.nu) Henri Sivonon взял Hixie’s Live DOM Viewer, и [...]]]></description>
			<content:encoded><![CDATA[<p>Во время web 2.0 валидность документов стандартрам <a href="http://www.w3.org/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.w3.org');">w3.org</a> xhtml, html, css является неотемлемой частью любого проекта</p>
<blockquote><p><font style="background-color: #ffffff" face="Lucida Sans Unicode">Осообенно трепетно к этому относятся заказчики за пределами СНГ</font></p>
</blockquote>
<p><a href="http://validator.w3.org/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/validator.w3.org');">Валидатор</a> от w3.org, конечно хорошо, но как всегда хочеться большего.</p>
<p>В нашем случае &#8220;большее&#8221; - это живой валидатор в реальном времени, автор <a href="http://livedom.validator.nu/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/livedom.validator.nu');">живого валидатора</a> (Validator.nu) Henri Sivonon взял Hixie’s Live DOM Viewer, и на его основе собрал свой парсер DOM. </p>
<p>Получилось я вам скажу очень даже неплохо.</p>
<p><a href="http://451f.com.ua/img/2008/08/livedomvalidation.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="652" alt="livedomvalidation" src="http://451f.com.ua/img/2008/08/livedomvalidation-thumb.png" width="544" border="0"></a></p>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2008/08/15/html5-live-dom-validator/','Валидация DOM HTML в реальном времени');</script></div>]]></content:encoded>
			<wfw:commentRss>http://451f.com.ua/2008/08/15/html5-live-dom-validator/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Html DOM parser на PHP</title>
		<link>http://451f.com.ua/2008/08/11/php-simple-html-dom-parser-jquery-style/</link>
		<comments>http://451f.com.ua/2008/08/11/php-simple-html-dom-parser-jquery-style/#comments</comments>
		<pubDate>Mon, 11 Aug 2008 15:36:19 +0000</pubDate>
		<dc:creator>pilot</dc:creator>
		
		<category><![CDATA[php]]></category>

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

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

		<guid isPermaLink="false">http://451f.com.ua/2008/08/11/php-simple-html-dom-parser-jquery-style/</guid>
		<description><![CDATA[Очень полезный класс для разборки DOM модели веб документа с селектора в&#160; jQuery стиле.
Это просто незаменимая вещь если вы любитель обдирать чужие сайты )). А вообще одно из основных применений - это к примеру брать котировки валют прям со страницы банка и тд.

Почему собственно PHP Simple HTML DOM Parser:

Написан на PHP5+ и позволяет легко управлять [...]]]></description>
			<content:encoded><![CDATA[<p>Очень полезный <a href="http://simplehtmldom.sourceforge.net/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/simplehtmldom.sourceforge.net');">класс</a> для разборки DOM модели веб документа с селектора в&nbsp; <a href="http://jquery.com/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/jquery.com');">jQuery</a> стиле.</p>
<blockquote><p><font style="background-color: #ffffff" face="Lucida Sans Unicode">Это просто незаменимая вещь если вы любитель обдирать чужие сайты )). А вообще одно из основных применений - это к примеру брать котировки валют прям со страницы банка и тд.</font></p>
</blockquote>
<p>Почему собственно <a href="http://simplehtmldom.sourceforge.net/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/simplehtmldom.sourceforge.net');">PHP Simple HTML DOM Parser</a>:</p>
<ul>
<li>Написан на PHP5+ и позволяет легко управлять HTML
<li>Поддерживает не валидный HTML
<li>Поиск тагов в HTML с селекторами в jQuery стиле
<li>Может разложить все содержимое HTML в строку</li>
</ul>
<p>Скачать последнюю версию с <a href="http://sourceforge.net/project/showfiles.php?group_id=218559" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/sourceforge.net');">Sourceforge</a>.</p>
<p>Онлайн <a href="http://simplehtmldom.sourceforge.net/manual.htm" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/simplehtmldom.sourceforge.net');">документация</a>.</p>
<p>Небольшой пример, как извлеть HTML элемент:</p>
<pre>

// Create DOM from URL or file$html = file_get_html('http://www.google.com/');


// Find all images
foreach($html-&gt;find('img') as $element)
  echo $element-&gt;src . '&lt;br&gt;'; 

// Find all links
foreach($html-&gt;find('a') as $element)
  echo $element-&gt;href . '&lt;br&gt;';
</pre>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2008/08/11/php-simple-html-dom-parser-jquery-style/','Html DOM parser на PHP');</script></div>]]></content:encoded>
			<wfw:commentRss>http://451f.com.ua/2008/08/11/php-simple-html-dom-parser-jquery-style/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Второе обновление в системе плагинов Symfony</title>
		<link>http://451f.com.ua/2008/08/10/new-features-for-the-plugin-system-2/</link>
		<comments>http://451f.com.ua/2008/08/10/new-features-for-the-plugin-system-2/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 20:38:02 +0000</pubDate>
		<dc:creator>pilot</dc:creator>
		
		<category><![CDATA[Symfony]]></category>

		<category><![CDATA[symfony plugins]]></category>

		<guid isPermaLink="false">http://451f.com.ua/2008/08/10/new-features-for-the-plugin-system-2/</guid>
		<description><![CDATA[Разработчики не перестают удивлять скоростью реакции на фидбеки от комьюнити. Вот очередная серия доработок к системе плагинов:

Появилось новое поле для описания плагина. Это поле не зависит от версии плагина и будет выводиться на главном табе &#8220;Plugin Information&#8221;.
Каждый плагин можо связать с ORM, который он использует. Первоначально это свойство задавалось автоматически основываясь на имени плагина и [...]]]></description>
			<content:encoded><![CDATA[<p>Разработчики не перестают удивлять скоростью реакции на фидбеки от комьюнити. Вот очередная серия доработок к системе плагинов:</p>
<ul>
<li>Появилось новое поле для описания плагина. Это поле не зависит от версии плагина и будет выводиться на главном табе &#8220;Plugin Information&#8221;.</li>
<li>Каждый плагин можо связать с ORM, который он использует. Первоначально это свойство задавалось автоматически основываясь на имени плагина и некоторых &#8220;таинственных&#8221; характеристиках. Теперь это поле может задать разработчик. С этого момента информаци о используемом ORM в плагине станет более достоверной.</li>
<li>Добавлен полезный инструмент для тестирования README файла перед созданием PEAR пакета. Для проверки заходим на <a href="http://www.symfony-project.org/plugins/markdown_dingus" onclick="javascript:pageTracker._trackPageview ('/outbound/www.symfony-project.org');">страницу проверки валидности Markdown</a>. На этой же странице вы найдете и шпаргалку по разметке Markdown.</li>
</ul>
<p><span id="more-253"></span></p>
<ul>
<li>Еще у большого количества плагинов README файл написан в trac wiki синтаксисе. Для конвертации в новый формат Markdown, теперь можно загрузить конвертер в табе &#8220;README&#8221;.</li>
<li>Система плагинов основывается на некоторых соглашениях по представлению информации о них, но эти соглашения нигде неописаны, поэтому добавили <a href="http://www.symfony-project.org/plugins/FAQ" onclick="javascript:pageTracker._trackPageview ('/outbound/www.symfony-project.org');">FAQ для разработчиков</a>, который отвечает на большенство вопросов заданных по новой системе плагинов. Если у вас все еще есть вопросы пишите их Фабьену (мильник есть на офф сайте)</li>
<li>При загрузки ваших PEAR пакетов, symfony проверить ваш пакет и вслучае неудачи выведет ошибки описывающие проблему с пакетом. Так же добавлен &#8220;строгий&#8221; режим, при включении которого, symfony так же проверить плагин и на стандартные соглашения по плагинам. Так к примеру в &#8220;строгом&#8221; режиме файлы LICENSE и README нужны для пакета обязательно. В будущем также будут добавлены новые режими проверки.</li>
<li>Поисковый модуль пополнился новыми флагом &#8220;стабильность&#8221; плагина. И так же стал доступен на  <a href="http://www.symfony-project.org/plugins/search" onclick="javascript:pageTracker._trackPageview ('/outbound/www.symfony-project.org');">отдельной странице</a>. Поисковый движок теперь выдает GET запрос, что позволяет добавлять поисковые запросы в букмарки либо делать копи\паст нужным вам запросам.</li>
</ul>
<p>На сегодня это все. Но кроме улучшений самой системы, желательно, чтоб все разработчики плагинов добавили &#8220;таги&#8221; к ним, и обновли package.xml файл. Так, что если ТЫ разработчик плагина(ов), потрать пару минут для обновления плагина и добавления к нему необходимой информации. И если вы еше не загрузили PEAR пакет вашего плагина, то сейчас самое время это сделать.</p>
<p>Ну и на последок, сейчас все еще нет хозяев у 45 плагинов, так что если вы один из владельцов пожалуйста напишите письмицо Фабьену и не забудьте указать имя вашего плагина и ваш логин в trac.</p>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2008/08/10/new-features-for-the-plugin-system-2/','Второе обновление в системе плагинов Symfony');</script></div>]]></content:encoded>
			<wfw:commentRss>http://451f.com.ua/2008/08/10/new-features-for-the-plugin-system-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Очередной Symfony camp, пройдет в Голландии</title>
		<link>http://451f.com.ua/2008/08/09/symfony-camp-2008-2/</link>
		<comments>http://451f.com.ua/2008/08/09/symfony-camp-2008-2/#comments</comments>
		<pubDate>Sat, 09 Aug 2008 19:47:05 +0000</pubDate>
		<dc:creator>pilot</dc:creator>
		
		<category><![CDATA[Symfony]]></category>

		<category><![CDATA[symfony camp]]></category>

		<guid isPermaLink="false">http://451f.com.ua/2008/08/09/symfony-camp-2008-2/</guid>
		<description><![CDATA[
Ежегодная встреча сообщества symfony состоиться 12-13 сентября в Dutch Open Projects (DOP), что в Голландии.
Мероприятие начнется с тренинга по symfony 1.1, предствляет Nicolas Perriault (менеджер релиза symfony 1.1).
Докладов не так много, и на мой взгляд как-то маловато для такого мероприятия, вот список некоторых из них:

Обучающие уроки от Yahoo! (Dustin Whittle)
Производительность symfony (Fabian Lange) - это [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://451f.com.ua/img/2008/08/symfonycamp-logo.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" src="http://451f.com.ua/img/2008/08/symfonycamp-logo-thumb.png" border="0" alt="symfonycamp_logo" width="500" height="73" /></a></p>
<p>Ежегодная <a href="http://www.symfonycamp.com" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.symfonycamp.com');">встреча сообщества symfony</a> состоиться 12-13 сентября в Dutch Open Projects (DOP), что в Голландии.</p>
<p>Мероприятие начнется с тренинга по symfony 1.1, предствляет Nicolas Perriault (менеджер релиза symfony 1.1).</p>
<p>Докладов не так много, и на мой взгляд как-то маловато для такого мероприятия, вот список некоторых из них:</p>
<ul>
<li>Обучающие уроки от Yahoo! (Dustin Whittle)</li>
<li>Производительность symfony (Fabian Lange) - это интересно</li>
<li>symfony и Doctrine vs Propel (Jonathan Wage, главный разработчик Doctrine)</li>
<li>Библиотеки интерфейса пользователя от Yahoo (Dustin Whittle)</li>
<li>Плагины и как создавать свои собственные (Lambert Beekhuis)</li>
<li>Генерация Админ панели (Ian Christian)</li>
<li>symfony 2.0</li>
</ul>
<p>Кто созрел, <a href="http://www.symfonycamp.com/registration/create" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.symfonycamp.com');">регистрируется</a>, и потом рассказуется всем нам как там было хорошо ))</p>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2008/08/09/symfony-camp-2008-2/','Очередной Symfony camp, пройдет в Голландии');</script></div>]]></content:encoded>
			<wfw:commentRss>http://451f.com.ua/2008/08/09/symfony-camp-2008-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>100 презентаций с Open Source Convention</title>
		<link>http://451f.com.ua/2008/08/05/100-presention-open-source-convence/</link>
		<comments>http://451f.com.ua/2008/08/05/100-presention-open-source-convence/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 09:25:00 +0000</pubDate>
		<dc:creator>pilot</dc:creator>
		
		<category><![CDATA[Conference]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://451f.com.ua/?p=239</guid>
		<description><![CDATA[Прошедшая 21-25 июля самая большая конференция по open source в Portland, Oregon собрала более 2500 профессионалов. Были представлены проекты на Linux, PHP, Perl, Python, Ruby, Java, Mobile, Databases, Desktop Applications, Web Applications, Administration, Security, People, Business.
На офф сайте доступно 100 презентаций (все на английском языке), вот некоторые из них:

Architecture of Maria, the New Transactional Storage [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://451f.com.ua/wp-content/uploads/2008/07/oscon.png" title="Open Source Convention"><img class="alignleft" style="border: 0pt none; margin: 0px 3px;" title="oscon" src="http://451f.com.ua/wp-content/uploads/2008/07/oscon.png" alt="" width="212" height="72" /></a>Прошедшая 21-25 июля самая большая конференция по open source в Portland, Oregon собрала более<a href="http://451f.com.ua/wp-content/uploads/2008/07/oscon.png"><img class="alignright size-full wp-image-240" title="oscon" src="http://451f.com.ua/wp-content/uploads/2008/08/oscon.png" alt="" /></a> 2500 профессионалов. Были представлены проекты на Linux, PHP, Perl, Python, Ruby, Java, Mobile, Databases, Desktop Applications, Web Applications, Administration, Security, People, Business.</p>
<p>На <a href="http://en.oreilly.com/oscon2008/public/schedule/proceedings" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/en.oreilly.com');">офф сайте</a> доступно 100 презентаций (все на английском языке), вот некоторые из них:</p>
<ul>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2619" onclick="javascript:pageTracker._trackPageview ('/outbound/en.oreilly.com');">Architecture of Maria, the New Transactional Storage Engine for MySQL</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2871" onclick="javascript:pageTracker._trackPageview ('/outbound/en.oreilly.com');">Advanced wxPython Nuts and Bolts</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2933" onclick="javascript:pageTracker._trackPageview ('/outbound/en.oreilly.com');">Cloud Computing with bigdata</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2538" onclick="javascript:pageTracker._trackPageview ('/outbound/en.oreilly.com');">Code Reviews for Fun and Profit</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2841" onclick="javascript:pageTracker._trackPageview ('/outbound/en.oreilly.com');">Even Faster Web Sites</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2949" onclick="javascript:pageTracker._trackPageview ('/outbound/en.oreilly.com');">Hack This App! PHP Security Workshop</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2745" onclick="javascript:pageTracker._trackPageview ('/outbound/en.oreilly.com');">How to be Normal: A Guide for Developers</a></li>
<li><a href="http://en.oreilly.com/oscon2008/public/schedule/detail/3076" onclick="javascript:pageTracker._trackPageview ('/outbound/en.oreilly.com');">Integration Testing PHP Applications</a></li>
</ul>
<p>Море интересных презентаций, просто глаза разбегаются</p>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2008/08/05/100-presention-open-source-convence/','100 презентаций с Open Source Convention');</script></div>]]></content:encoded>
			<wfw:commentRss>http://451f.com.ua/2008/08/05/100-presention-open-source-convence/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Symfony, у плагинов появился новый дом!</title>
		<link>http://451f.com.ua/2008/08/01/symfony-plugins-have-a-new-home/</link>
		<comments>http://451f.com.ua/2008/08/01/symfony-plugins-have-a-new-home/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 11:31:46 +0000</pubDate>
		<dc:creator>pilot</dc:creator>
		
		<category><![CDATA[Symfony]]></category>

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

		<guid isPermaLink="false">http://451f.com.ua/2008/08/01/symfony-plugins-have-a-new-home/</guid>
		<description><![CDATA[Плагины в symfony - это самый простой способ внести свой вклад в развитие фреймворка symfony. Плагины легко пишуться, пакуются, устанавливаются и они могут переписать все что угодно в фреймворке.
Но существующаю система работы с плагинами не может ответить на вопросы:

А есть ли плагин который добавляет &#8220;вот такую штуку&#8221; ?
А поддерживает ли мой любимый плагин новую версию [...]]]></description>
			<content:encoded><![CDATA[<p>Плагины в symfony - это самый простой способ внести свой вклад в развитие фреймворка symfony. Плагины легко пишуться, пакуются, устанавливаются и они могут переписать все что угодно в фреймворке.
<p>Но существующаю система работы с плагинами не может ответить на вопросы:
<ul>
<li>А есть ли плагин который добавляет &#8220;вот такую штуку&#8221; ?
<li>А поддерживает ли мой любимый плагин новую версию symfony 1.1?
<li>А совместим ли плагин с Doctrine?
<li>А какие самые популярные плагины?
<li>Как я могу помочь доработать плагин?</li>
</ul>
<p>С текущей системой управления плагинами Trac, на эти вопросы ответить тяжело. Сейчас в системе более 200 плагинов, вот потому и решино было сделать для них отдельную систему. </p>
<p><span id="more-236"></span>
<p>Ну и вот теперь у нас есть совершенно новый раздел &#8220;<a href="http://www.symfony-project.org/plugins/" onclick="javascript:pageTracker._trackPageview ('/outbound/www.symfony-project.org');">Plugins</a>&#8221; (в верхнем меню), который и дополнил старый добрый Trac.<br />
<h4>Что умеет</h4>
<p>Ниже список фич новой системы плагинов:
<ul>
<li>Страница плагинов отображает все существующие на данный момент плагины, их можно отсортировать по версии symfony, по используемой ORM модели, по автору либо по имени плагина
<li>У каждого плагина, как и раньше, есть отдельная страница, с информацией о плагине, с текстом лицензии, с процессом установки, readme, зависимостями, списком релизов отсортированным по версиям symfony и админ панелью для разработчика плагина. Эту страницу так же можно настроить под каждую версию отдельно.<br /><img alt="http://www.symfony-project.org/uploads/assets/plugins_releases.png" src="http://www.symfony-project.org/uploads/assets/plugins_releases.png">
<li>Вся информация залинкована между собой, это означает что вы легко можете найти всех разработчиков плагина, либо все плагины выбранного разработчика<br /><img alt="http://www.symfony-project.org/uploads/assets/plugins_dev_plugins.png" src="http://www.symfony-project.org/uploads/assets/plugins_dev_plugins.png">
<li>Владелец плагина (его главный разработчик) получает доступ к админ панели управления плагином (редактирование описание, категорий, &#8230;), загрузке новых релизов и управлнию командой разработчиков плагина.<br /><img alt="http://www.symfony-project.org/uploads/assets/plugins_admin_tab.png" src="http://www.symfony-project.org/uploads/assets/plugins_admin_tab.png">
<li>Над каждым плагином могут работать несколько разработчиков с разными правами (ролями):<br />- <strong>девелопер</strong>: имеет доступ к репозиторию плагина (если он расположен в&nbsp; репозитории symfony)<br />- <strong>сборщик</strong>: может загружать новые релизы и удалять старые<br />- <strong>владелец (лидер)</strong>: что хочет то и делает с плагином
<li>Теперь если вы хотите помогать в разработке существующего плагина, достаточно попросить доступ у Владельца плагина. Этот процесс очень прост, так как сейчас все автоматизировано, от создания акканута до авторизации в SVN<br /><img alt="http://www.symfony-project.org/uploads/assets/plugins_contribute.png" src="http://www.symfony-project.org/uploads/assets/plugins_contribute.png">
<li>Категории к которым относятся плагины, может выбирать владелец (главный разработчик) админ панели управления плагином. И когда большую часть плагинов растусуют по категориям, появится возможность на главной странице плагинов отсортировать их еще и по категориям.
<li>Все trac аккаунты были перенесены в новую систему, <strong>и сейчас вы можете залогинится с вашим существующим trac аккаунтом</strong>. Т.е. одинаковые аккануты сейчас используются для Trac, Плагинов, и Subversion.</li>
</ul>
<h4>Для разработчиков плагинов</h4>
<p>Во время переноса в новую систему, произошли некоторые изменения. Ниже спискок главных моментов, которые нужно учитывать при разработке плагинов:
<ul>
<li>Информация о плагине, отображаемая на странице плагинов, берется из файла <u>package.xml</u>. Поэтому все владельцы плагинов, должны проверить и исправить свои <u>package</u> файлы.<br /> 
<li><strong>Раздел &#8220;Лицензий&#8221; в админ панеле плагина, покажет файл ЛИЦЕНЗИИ PEAR пакета, если он есть.</strong> Если его нет, то пожалуйста добавьте его в корень вашего PEAR пакета с текстом самой лицензии.<br /> 
<li><strong>Раздел &#8220;readme&#8221; покажет файл <u>README</u></strong>. Формат этого файла сменился с Trac wiki markup на Markdown, так как этот формат используется во всей документации symfony. Конвертация в Markdown из Trac wiki markup, происходит автоматически, но так как она оставляет желать лучшего, нужно сомстоятельно проверить файл README на соответствие <a href="http://daringfireball.net/projects/markdown/syntax" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/daringfireball.net');">Markdown синтаксису</a><br /> 
<li>Скрипт импорта автоматически связал владельца плагина с его плагином, но это сработало если email в вашем trac аккаунте совпадал с email&#8217;ом, который вы указали с файле <u>package.xml</u>. На данный момент порядка 85 плагинов не имеют хозяев (налетаем и разбираем, кому плагинчик!). Если вы владелец плагина и вы не можете получить к нему доступ, отправьте письмо с именем вашего плагина и логином Фабьену (fabien.potencier[at]symfony-prokect.com)<br /> 
<li>Некоторые плагины не были перенесены так как были с ошибками.<br />Если вы не нашли своего плагина в новой системе, тогда посмотрите на странице <a href="http://www.symfony-project.org/plugins/errors" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.symfony-project.org');">плагинов с ошибками</a> для того чтоб узнать причину. Если не знаете как побороть возникшую проблему, пишите Фабьену должен помочь<br /> 
<li>Страница с плагинами в Trac перенаплавляется на новую страницу плагинов, так что пользователи попадут туда куда хотели.</li>
</ul>
<h4>В завершение</h4>
<p>Новая система плагинов не заменяет текущую Trac систему, и так же не предлагает SVN репозитории для плагинов. Это потому что новая система не заменяет систему формирования проекта symfony. Разработчики все еще трудятся над такой системой, которая предоставит для наших плагинов выделеный SVN репозиторий, систему трекинга, wiki, и еще кучу всего разного&#8230; Так что оставайтесь на связи!</p>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2008/08/01/symfony-plugins-have-a-new-home/','Symfony, у плагинов появился новый дом!');</script></div>]]></content:encoded>
			<wfw:commentRss>http://451f.com.ua/2008/08/01/symfony-plugins-have-a-new-home/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pushup the web, не забываем обновляться</title>
		<link>http://451f.com.ua/2008/07/29/pushup-the-web-dont-forget-for-update/</link>
		<comments>http://451f.com.ua/2008/07/29/pushup-the-web-dont-forget-for-update/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 15:28:56 +0000</pubDate>
		<dc:creator>pilot</dc:creator>
		
		<category><![CDATA[Software &amp; Tools]]></category>

		<guid isPermaLink="false">http://451f.com.ua/2008/07/29/pushup-the-web-dont-forget-for-update/</guid>
		<description><![CDATA[Давайте дружно попросим пользователей наших сайтов незабывать обновлять их браузеры! Для этого нам поможет Pushup.
Установив небольшой скрипт pushup на вашем сайте, пользователь который использует устаревшую версию браузера получит ненавязчивое уведомление о том что его браузер устарел и его нужно обновить с ссылкой на обновление.
 
Юзер сможет либо сразу пойти и обновиться либо попросить напомнить ему [...]]]></description>
			<content:encoded><![CDATA[<p>Давайте дружно попросим пользователей наших сайтов незабывать обновлять их браузеры! Для этого нам поможет <a href="http://www.pushuptheweb.com/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.pushuptheweb.com');">Pushup</a>.</p>
<p>Установив небольшой скрипт <u>pushup</u> на вашем сайте, пользователь который использует устаревшую версию браузера получит ненавязчивое уведомление о том что его браузер устарел и его нужно обновить с ссылкой на обновление.</p>
<p><a href="http://451f.com.ua/img/2008/07/pushuptheweb1.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="53" alt="pushuptheweb1" src="http://451f.com.ua/img/2008/07/pushuptheweb1-thumb.png" width="240" border="0"></a> </p>
<p>Юзер сможет либо сразу пойти и обновиться либо попросить напомнить ему об этом позже, время напоминания указывается в опциях скрипта.</p>
<p>На сегодняшний момент <strong>Pushup</strong> поддерживает<a href="http://www.pushuptheweb.com/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.pushuptheweb.com');"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="143" alt="pushuptheweb" src="http://451f.com.ua/img/2008/07/pushuptheweb-thumb.png" width="542" border="0"></a> </p>
<h3>Установка</h3>
<p>В хидер страниц (на которых будет напоминание) добавьте:</p>
<pre>&lt;link rel='stylesheet' type='text/css' href='css/pushup.css' /&gt;
&lt;script type='text/javascript' src='js/pushup.js'&gt;&lt;/script&gt;</pre>
<p>Скачать <a href="http://www.pushuptheweb.com/#" class="downloadLink" rel="http://www.pushuptheweb.com/assets/downloads/fclick.php?pushup" onclick="javascript:pageTracker._trackPageview ('/outbound/www.pushuptheweb.com');"><u><font color="#0066cc">Pushup 1.0.0</font></u></a></p>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2008/07/29/pushup-the-web-dont-forget-for-update/','Pushup the web, не забываем обновляться');</script></div>]]></content:encoded>
			<wfw:commentRss>http://451f.com.ua/2008/07/29/pushup-the-web-dont-forget-for-update/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Список команд symfony 1.1 в сравнении с symfony 1.0</title>
		<link>http://451f.com.ua/2008/07/28/symfony-newtasknames11/</link>
		<comments>http://451f.com.ua/2008/07/28/symfony-newtasknames11/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 08:09:48 +0000</pubDate>
		<dc:creator>pilot</dc:creator>
		
		<category><![CDATA[Symfony]]></category>

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

		<guid isPermaLink="false">http://451f.com.ua/2008/07/28/symfony-newtasknames11/</guid>
		<description><![CDATA[Команды в symfony 1.1 изменились и теперь используют синтаксис пространства имен. Пока что трудно сказать стало ли от этого все хорошо или нет. Старый набор команд так же работает ввиде алиасов на новые имена команд. 
Таблица старых и новых команд:&#160; 



Old task name 
New task name 


&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;
&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 


clear-cache 
cache:clear 


clear-controllers 
project:clear-controllers 


disable 
project:disable 


downgrade 
[Not [...]]]></description>
			<content:encoded><![CDATA[<p>Команды в symfony 1.1 изменились и теперь используют синтаксис пространства имен. Пока что трудно сказать стало ли от этого все хорошо или нет. Старый набор команд так же работает ввиде алиасов на новые имена команд. </p>
<p>Таблица старых и новых команд:&nbsp; </p>
<table border="1">
<tbody>
<tr>
<td>Old task name </td>
<td>New task name </td>
</tr>
<tr>
<td>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</td>
<td>&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; </td>
</tr>
<tr>
<td>clear-cache </td>
<td>cache:clear </td>
</tr>
<tr>
<td>clear-controllers </td>
<td>project:clear-controllers </td>
</tr>
<tr>
<td>disable </td>
<td>project:disable </td>
</tr>
<tr>
<td>downgrade </td>
<td>[Not implemented] </td>
</tr>
<tr>
<td>enable </td>
<td>project:enable </td>
</tr>
<tr>
<td>fix-perms </td>
<td>project:permissions </td>
</tr>
<tr>
<td>freeze </td>
<td>project:freeze </td>
</tr>
<tr>
<td>init-app </td>
<td>generate:app </td>
</tr>
<tr>
<td>init-batch </td>
<td>[Not implemented] </td>
</tr>
<tr>
<td>init-controller </td>
<td>[Not implemented] </td>
</tr>
<tr>
<td>init-module </td>
<td>generate:module </td>
</tr>
<tr>
<td>init-project </td>
<td>generate:project </td>
</tr>
<tr>
<td>log-purge </td>
<td>log:clear </td>
</tr>
<tr>
<td>log-rotate </td>
<td>log:rotate </td>
</tr>
<tr>
<td>plugin-install </td>
<td>plugin:install </td>
</tr>
<tr>
<td>plugin-list </td>
<td>plugin:list </td>
</tr>
<tr>
<td>plugin-uninstall </td>
<td>plugin:uninstall </td>
</tr>
<tr>
<td>plugin-upgrade </td>
<td>plugin:upgrade </td>
</tr>
<tr>
<td>propel-build-all </td>
<td>propel:build-all </td>
</tr>
<tr>
<td>propel-build-all-load </td>
<td>propel:build-all-load </td>
</tr>
<tr>
<td>propel-build-db </td>
<td>propel:build-db </td>
</tr>
<tr>
<td>propel-build-model </td>
<td>propel:build-model </td>
</tr>
<tr>
<td>propel-build-schema </td>
<td>propel:build-schema </td>
</tr>
<tr>
<td>propel-build-sql </td>
<td>propel:build-sql </td>
</tr>
<tr>
<td>propel-convert-xml-schema </td>
<td>propel:schema-to-yml </td>
</tr>
<tr>
<td>propel-convert-yml-schema </td>
<td>propel:schema-to-xml </td>
</tr>
<tr>
<td>propel-dump-data </td>
<td>propel:data-dump </td>
</tr>
<tr>
<td>propel-generate-crud </td>
<td>propel:generate-crud </td>
</tr>
<tr>
<td>propel-init-admin </td>
<td>propel:init-admin </td>
</tr>
<tr>
<td>propel-init-crud </td>
<td>[Not implemented] </td>
</tr>
<tr>
<td>propel-insert-sql </td>
<td>propel:insert-sql </td>
</tr>
<tr>
<td>propel-load-data </td>
<td>propel:data-load </td>
</tr>
<tr>
<td>sync </td>
<td>project:deploy </td>
</tr>
<tr>
<td>test-all </td>
<td>test:all </td>
</tr>
<tr>
<td>test-functional </td>
<td>test:functional </td>
</tr>
<tr>
<td>test-unit </td>
<td>test:unit </td>
</tr>
<tr>
<td>unfreeze </td>
<td>project:unfreeze </td>
</tr>
<tr>
<td>upgrade </td>
<td>project:freeze </td>
</tr>
</tbody>
</table>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2008/07/28/symfony-newtasknames11/','Список команд symfony 1.1 в сравнении с symfony 1.0');</script></div>]]></content:encoded>
			<wfw:commentRss>http://451f.com.ua/2008/07/28/symfony-newtasknames11/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Пара полезных плагинов для wordpress</title>
		<link>http://451f.com.ua/2008/07/25/2-interesting-wordpress-plugins-googlemap-buzzwords/</link>
		<comments>http://451f.com.ua/2008/07/25/2-interesting-wordpress-plugins-googlemap-buzzwords/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 14:32:09 +0000</pubDate>
		<dc:creator>pilot</dc:creator>
		
		<category><![CDATA[Wordpress]]></category>

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

		<category><![CDATA[google map]]></category>

		<category><![CDATA[wordpress plugins]]></category>

		<guid isPermaLink="false">http://451f.com.ua/2008/07/25/2-interesting-wordpress-plugins-googlemap-buzzwords/</guid>
		<description><![CDATA[По работе часто пишем плагины для блогов на движке wordpress.org, большенство из них защищены копирайтами заказчиков и нашими собственными )), но есть и те которыми хотелось бы поделится со всеми.
Складываем их на

Плагины:
1. Google maps in posts
Думаю, что название говорит само за себя, с этим плагином вы можете добавлять карту к себе на сайт. Подобных плагинов [...]]]></description>
			<content:encoded><![CDATA[<p>По работе часто пишем плагины для блогов на движке wordpress.org, большенство из них защищены копирайтами заказчиков и нашими собственными )), но есть и те которыми хотелось бы поделится со всеми.</p>
<p>Складываем их на</p>
<p><a href="http://blog-ware.com/" onclick="javascript:pageTracker._trackPageview ('/outbound/blog-ware.com');"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" src="http://451f.com.ua/img/2008/07/blog-ware-com.png" border="0" alt="blog-ware-com" width="296" height="65" /></a></p>
<p><strong>Плагины:</strong></p>
<p><strong>1. <a href="http://blog-ware.com/en/plugins/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/blog-ware.com');">Google maps in posts</a><br />
</strong>Думаю, что название говорит само за себя, с этим плагином вы можете добавлять карту к себе на сайт. Подобных плагинов много, но почему-то у всех чего-то да не хватает, вот и постарались собрать все вместе.</p>
<p><a href="http://451f.com.ua/img/2008/07/screenshot2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" src="http://451f.com.ua/img/2008/07/screenshot2-thumb.png" border="0" alt="screenshot2" width="594" height="480" /></a></p>
<p><span id="more-217"></span></p>
<p><span style="text-decoration: underline;">Что умеет</span>:</p>
<ul>
<li>Создает вашу собственную карту в посте либо пейдже</li>
<li>В настройка плагина, кроме API кея гугл мапс, можно указать место по умолчанию (к примеру ваш офис)</li>
<li>Место по умолчанию отображается на каждой новой карте</li>
<li>Для каждого маркера на карте можно указать свою иконку</li>
<li>Каждому маркеру можно добавить название и описание</li>
<li>Автоматичеки установить маркер по введеному вами адресу</li>
<li>Установить пустой маркер в центр карты</li>
<li>Задать размеры карты, высоту и ширину</li>
<li>Задать изначальный зум с которым будет отображаться карта</li>
</ul>
<ul><span style="text-decoration: underline;">Планируем добавить</span>: использование html тегов в описании маркера, добавить возможность создавать несколько карт в одном посте</ul>
<ul><a href="http://blog-ware.com/wp-content/uploads/downloads/google-maps-in-posts.rar" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/blog-ware.com');">Скачать Google maps in posts</a></ul>
<p><strong>2. <a href="http://blog-ware.com/en/plugins/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/blog-ware.com');">Buzzwords</a></strong> (быстрая подсказка по выделенному слову)<br />
Плагин позволит вам к любому посту либо пейджу добавить слова, по которым будет выводится подсказка с ссылкой на этот пост/пейдж. Т.е. таким образом вы можете составить &#8220;глоссарий&#8221;, к примеру каких либо терминов, не только с названием и ссылкой, но и кратким описанием.</p>
<p><a href="http://451f.com.ua/img/2008/07/buzzwords-3.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" src="http://451f.com.ua/img/2008/07/buzzwords-3-thumb.png" border="0" alt="buzzwords_3" width="450" height="350" /></a></p>
<p><span style="text-decoration: underline;">Что умеет</span>:</p>
<ul>
<li>Создать слово подсказку (далее Buzzword) к существующему посту/пейджу либо как самостоятельную единицу</li>
<li>При создании самостоятельного Buzzword, можно указать любую ссылку</li>
<li>Buzzwords будут подсвеченны в посте с сылкой, названием и описанием</li>
<li>Buzzwords можно добавлять либо по одному либо &#8220;пачкой&#8221; использюя &#8220;;&#8221; как разделитель</li>
<li>В администрировании можно редактировать, удалять и добавлять новые Buzzwords</li>
<li>При редактировании поста/пейджа вы сразу видите какие Buzzwords к нему привязаны</li>
</ul>
<ul><a href="http://blog-ware.com/wp-content/uploads/downloads/buzzwords.rar" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/blog-ware.com');">Скачать Buzzwords</a></ul>
<p>В ближайшее время будет добавлен еще один плагин <span style="text-decoration: underline;">галерея</span>, его пример можно уже увидить на главной странице <a href="http://blog-ware.com" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/blog-ware.com');">blog-ware.com</a></p>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2008/07/25/2-interesting-wordpress-plugins-googlemap-buzzwords/','Пара полезных плагинов для wordpress');</script></div>]]></content:encoded>
			<wfw:commentRss>http://451f.com.ua/2008/07/25/2-interesting-wordpress-plugins-googlemap-buzzwords/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Сравнение 9-ти способов обфускации email адресов</title>
		<link>http://451f.com.ua/2008/07/25/nine-methods-to-obfuscate-e-mail-addresses-compared/</link>
		<comments>http://451f.com.ua/2008/07/25/nine-methods-to-obfuscate-e-mail-addresses-compared/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 10:23:15 +0000</pubDate>
		<dc:creator>pilot</dc:creator>
		
		<category><![CDATA[Software &amp; Tools]]></category>

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

		<guid isPermaLink="false">http://451f.com.ua/2008/07/25/nine-methods-to-obfuscate-e-mail-addresses-compared/</guid>
		<description><![CDATA[Вечная проблема при публикации своего email, конечно же не хочется получать в итоге спам на свой ящик, и тут мы начинаем прибегать к различным способам обфускации (чтоб было понятно людям, но не понятно ботам) нашего email адреса.
Silvan Mühlemann занялся этим вопросом, создал 9 разных email ящиков, защитил их 9 способами, разместил их на популярном сервере, [...]]]></description>
			<content:encoded><![CDATA[<p>Вечная проблема при публикации своего email, конечно же не хочется получать в итоге спам на свой ящик, и тут мы начинаем прибегать к различным способам обфускации (чтоб было понятно людям, но не понятно ботам) нашего email адреса.</p>
<p><a href="http://techblog.tilllate.com" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/techblog.tilllate.com');">Silvan Mühlemann</a> занялся этим вопросом, создал <a href="http://ch.tilllate.com/061101_emailtest.php" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/ch.tilllate.com');">9 разных email ящиков</a>, защитил их <a href="http://techblog.tilllate.com/2006/11/01/im-test-8-methoden-die-e-mail-adresse-zu-verstecken/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/techblog.tilllate.com');">9 способами</a>, разместил их на популярном <a href="http://www.tilllate.com/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.tilllate.com');">сервере</a>, чтоб их хорошенько проиндексил <a href="http://www.google.ch/search?hl=de&amp;q=techblog.tilllate.com-E-Mail-Harvester-Test&amp;btnG=Google-Suche&amp;meta=" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.google.ch');">google</a>, подождал (всего, ничего) 1.5 года и вот он результат&#8230;</p>
<p><a href="http://451f.com.ua/img/2008/07/obfuscation-methods.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" src="http://451f.com.ua/img/2008/07/obfuscation-methods-thumb.png" border="0" alt="obfuscation_methods" width="430" height="317" /></a></p>
<p>На графике показаны методы защиты и количество спама в мб, полученного по каждому методу.</p>
<p>В итоге следующие 3 метода оказались самыми надежными:</p>
<p><strong>1. Изменение нарямую через CSS</strong></p>
<pre>&lt;style type="text/css"&gt;
span.codedirection { unicode-bidi:bidi-override; direction: rtl; }
&lt;/style&gt;&lt;p&gt;&lt;span class="codedirection"&gt;moc.etalllit@7raboofnavlis&lt;/span&gt;&lt;/p&gt;</pre>
<p><strong>2. Использование метода CSS display: none<br />
</strong></p>
<pre>&lt;style type="text/css"&gt;
p span.displaynone { display:none; }
&lt;/style&gt;
&lt;p&gt;silvanfoobar8@&lt;span class="displaynone"&gt;null&lt;/span&gt;tilllate.com&lt;/p&gt;</pre>
<p><strong>3. ROT13 - кодирование<br />
</strong>Закодировать email в ROT13 можно с помощью <a href="http://rot13.de/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/rot13.de');">тулзы rot13</a> либо php функцией <a href="http://ch2.php.net/str_rot13" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/ch2.php.net');">str_rot13</a> и после декодировать с помощью Javascript</p>
<pre>&lt;script type="text/javascript"&gt;
document.write("&lt;n uers=\"znvygb:fvyinasbbone10@gvyyyngr.pbz\" ery=
\"absbyybj\"&gt;".replace(/[a-zA-Z]/g, function(c){return String.fromCharCode
((c&lt;="Z"?90:122)&gt;=(cc=c.charCodeAt(0)+13)?c:c-26);}));
&lt;/script&gt;silvanfoobar's Mail&lt;/a&gt;</pre>
<p>Из 3х мне больше всего понравился 2й способ, как наиболее простой в реализации.</p>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2008/07/25/nine-methods-to-obfuscate-e-mail-addresses-compared/','Сравнение 9-ти способов обфускации email адресов');</script></div>]]></content:encoded>
			<wfw:commentRss>http://451f.com.ua/2008/07/25/nine-methods-to-obfuscate-e-mail-addresses-compared/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
