<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Блог Виталия Степаненко</title>
	<atom:link href="http://www.nayjest.ru/feed" rel="self" type="application/rss+xml" />
	<link>http://www.nayjest.ru</link>
	<description>Веб-разработка за чашечкой кофе</description>
	<lastBuildDate>Sat, 25 Jun 2011 09:53:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Маленький, но значимый шажок в сторону семантического веба</title>
		<link>http://www.nayjest.ru/semanticheskiy-veb/schema-org-and-semantic-we#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.nayjest.ru/semanticheskiy-veb/schema-org-and-semantic-we#comments</comments>
		<pubDate>Sat, 25 Jun 2011 09:53:07 +0000</pubDate>
		<dc:creator>Nayjest</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[семантический веб]]></category>

		<guid isPermaLink="false">http://www.nayjest.ru/?p=364</guid>
		<description><![CDATA[Случаи, когда конкуренты объединяются, случаются не так уж и часто, один из них – выработка стандартов. О том, как сделать свой сайт более понятным для поисковиков, расскажет schema.org – детище Google, Yahoo! и Microsoft. Google и Microsoft – конкуренты на рынке поиска (о Yahoo тут можно не говорить, т.к. он работает на движке Bing), однако, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-365" title="schema" src="http://www.nayjest.ru/wp-content/schema.jpg" alt="schema.org" align="left" /> Случаи, когда конкуренты объединяются, случаются не так уж и часто, один из них – выработка стандартов. О том, как сделать свой сайт более понятным для поисковиков, расскажет schema.org – детище Google, Yahoo! и Microsoft.</p>
<p>Google и Microsoft – конкуренты на рынке поиска (о Yahoo тут можно не говорить, т.к. он работает на движке Bing), однако, как показывает мировой опыт, наличие стандартов всегда благотворно влияет на рынок, поэтому неудивительно, что эти гиганты решили помочь владельцам сайтов сделать их более понятными поисковым машинам, для чего создали ресурс <a href="http://schema.org/">schema.org</a>, который содержит конкретные рекомендации по разметке страниц.</p>
<p><a href="http://internetno.net/category/obzoryi/schema_org/" target="_blank">Читать дальше (на сайте &laquo;Интернетные штучки&raquo;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nayjest.ru/semanticheskiy-veb/schema-org-and-semantic-we/feed</wfw:commentRss>
		<slash:comments>440</slash:comments>
		</item>
		<item>
		<title>iPromo, отчет о конференции</title>
		<link>http://www.nayjest.ru/it-events/ipromo-report#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.nayjest.ru/it-events/ipromo-report#comments</comments>
		<pubDate>Sun, 26 Sep 2010 23:12:14 +0000</pubDate>
		<dc:creator>Nayjest</dc:creator>
				<category><![CDATA[it-events]]></category>
		<category><![CDATA[iPromo]]></category>
		<category><![CDATA[it-события Киева]]></category>
		<category><![CDATA[конференции]]></category>

		<guid isPermaLink="false">http://www.nayjest.ru/?p=345</guid>
		<description><![CDATA[В прошлую среду в Киеве прошла конференция iPromo. Моей скромной персоне удалось посетить это весьма занятное мероприятие, так что я немного об этом расскажу. Конференция посвящена продвижению в интернет. Ориентирована она в первую очередь на два типа слушателей: 1) Специалистов в области управления интернет-рекламой, SEO и интернет-маркетинга в целом. 2) Владельцев бизнеса, руководителей компаний и [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: left; border: none; margin: 10px;" src="http://www.nayjest.ru/userfiles/ipromo/iPromo.com.ua.png" alt="Конференция iPromo.com.ua: продвижение вашего бизнеса в сети. Киев, 2010" />В прошлую среду в Киеве прошла конференция <a title="iPromo" href="http://ipromo.com.ua/" target="_blank">iPromo</a>. Моей скромной персоне удалось посетить это весьма занятное мероприятие, так что я немного об этом расскажу.</p>
<p>Конференция посвящена продвижению в интернет. Ориентирована она в первую очередь на два типа слушателей:</p>
<p>1) Специалистов в области управления интернет-рекламой, SEO и интернет-маркетинга в целом.</p>
<p>2) Владельцев бизнеса, руководителей компаний и подразделений маркетинга</p>
<p>Соответственно, проходило мероприятие в два потока.</p>
<p>Зал покрупнее был выделен для владельцев бизнеса, а в зале поменьше разместились специалисты по всевозможным методам продвижения в интернет. Причем, второй зал был набит под завязку, я по началу даже не мог найти место, куда бы можно приземлить свою пятую точку.</p>
<p>Среди наиболее известных в интернетах личностей (по моим субъективым критериям), в качестве докладчиков на конференции фигурировали Игорь Ашманов (Ашманов и партнеры), Александр Ольшанский (Imena.ua, MiroHost,&#8230;), Дмитрий Сатин (UsabilityLab), Роман Кузема (Бегун-Украина).<span id="more-345"></span></p>
<h2>Доклады</h2>
<p>В своем вступительном слове Игорь Ашманов говорил о социально-демографической ситуации украинского Интернета, его динамике, тренду глобализации и автоматизации, что может быть опасно для маленьких SEO-контор.</p>
<p>Я постоянно мигрировал между потоками, выбирая для себя наиболее интересные доклады, и после вступительного слова решил послушать Мурада Рогожникова(Ideal), который рассказал о том, что же на сайте &laquo;продает&raquo;. Ничего революционно нового, но если вы все-таки планируете делать сайт, который продает, обязательно пройдитесь по его &laquo;13 принципам конверсии&raquo; (см. в <a title="презентация c iPromo: Мурад Рогожников : Из чего состоит конверсия, или что на сайте продает (PDF)" href="http://ipromo.com.ua/presentations/04-rogoznikov-ipromo2010.pdf" target="_blank">презентации</a>, листать, пока не увидите сиськи). Полезность подтверждаю, доктор прописал использовать как некий check-list для аудита собственных сайтов. Еще у Мурада прикльная шляпа, спасибо ему.</p>
<p>Юрий Кушнеров сравнивал точность работы систем веб-аналитики <a title="Google Analytics" href="http://www.google.com/analytics/" target="_blank">Google Analytics</a>, <a title="Яндекс.Метрика - инструмент для оценки посещаемости сайтов, анализа поведения пользователей и эффективности рекламных усилий" href="http://metrika.yandex.ru/" target="_blank">Яндекс.Метрика</a>, <a title="LiveInternet" href="http://www.liveinternet.ru/" target="_blank">LiveInternet</a> и <a title="BigMir" href="http://top.bigmir.net/" target="_blank">BigMir</a>. По его данным количество посетителей сайта лучше всего считает Google Analytics, кол-во просмотров страниц &#8212; Яндекс.Метрика, больше всего сайтов-источников переходов определяет LiveInternet. Больше всего источников-поисковых систем определяет опять же, Яндекс.Метрика. В общем, данные действительно немного отличаются, и из всего этого я сделал вывод, что иногда действительно полезно поставить на сайт параллельно несколько систем сбора статистики. Конкретные цифры в <a title="iPromo: Юрий Кушнеров: Сравнение точности данных систем веб-аналитики и рейтингов Google Analytics, Yandex.Metrika, LiveInternet и BigMir" href="http://ipromo.com.ua/presentations/05-kushnerov-ipromo2010.ppt" target="_blank">его презентации</a>.</p>
<p>Далее я проследовал в место дислокации бизнесменов, дабы послушать Константина Шурыгина. Глаголил он о том, за что многие товарищей SEO&#8217;шников неистово нелюбят. Вкратце табличкой о том, что мы можем получить, когда за дело берутся &laquo;умные и находчивые&raquo;:</p>
<table class="tbl" style="float: left;" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td><strong>Что мы хотели получить</strong></td>
<td><strong>Что мы получили</strong></td>
</tr>
<tr>
<td><span style="text-decoration: line-through;">Число посетителей</span></td>
<td>Азиатский ботнет</td>
</tr>
<tr>
<td><span style="text-decoration: line-through;">Продажи</span></td>
<td>Зависания сайта</td>
</tr>
<tr>
<td><span style="text-decoration: line-through;">Хосты</span></td>
<td>Порнотрафик</td>
</tr>
<tr>
<td><span style="text-decoration: line-through;">Видимость</span></td>
<td>Нецелевые посетители</td>
</tr>
<tr>
<td><span style="text-decoration: line-through;">TOP 10</span></td>
<td>Частота запросов = 0</td>
</tr>
<tr>
<td><span style="text-decoration: line-through;">Регистрации</span></td>
<td>Хрумер</td>
</tr>
<tr>
<td><span style="text-decoration: line-through;">Просмотры</span></td>
<td>Перегрузки сервера</td>
</tr>
</tbody>
</table>
<p>В <a title="iPromo: Константин Шурыгин. Псевдо-продвижение: трюки и уловки" href="http://ipromo.com.ua/presentations/03-shurygin-ipromo2010.ppt" target="_blank">презентации</a> вы найдете забавные вещи, но понять о чем идет речь наверно сможет далеко не каждый, хорошо бы все-таки слышать сам доклад. Не знаю, выложена ли его видеозапись где-либо в интернетах, но если выложена &#8212; рекомендую посмотреть. Это был один из самых доставляющих докладов. Чисто в общеобразовательных целях мне было весьма интересно почерпнуть информацию о разного рода технических уловках, на которые грешат нечистые на руку SEO&#8217;шники (называть их &laquo;оптимизаторами&raquo; почему-то язык не поворачивается).</p>
<h2 style="clear: both;">Мелкие приятности</h2>
<p>После Кофе-брейка, утолив свои гастрономические потребности соком и чудесными тортиками, я нашел минутку, чтобы порыться в рюкзаке, выданном мне как и всем слушателям. Там оказалось много разных журналов (HiTech с DVD-диском, &laquo;Профиль&raquo;, &laquo;Бизнес&raquo;,  &raquo;Практика интернет-маркетинга&raquo;, &laquo;Главред&raquo;, &laquo;Как начать успешный интернет-бизнес&raquo;), рекламные буклеты (у брошюрки Ашманова весьма сильный дизайн, а Promodo решили взять количеством и запихнули аж 4 штуки), стильный красный блокнотик с желтоватой бумагой, коврик imena.ua такой же, как выдавали на iForum&#8217;е (ребята, ну могли бы для разнообразия что-то новое нарисовать) и в загадочном футляре оказалась крутая ручка Sz.Leqi брендированная компанией &laquo;Ашманов и партнеры&raquo;.</p>
<h2>Еще доклады</h2>
<p>Передо мной встал выбор между секциями &laquo;Увеличение продаж через Интернет&raquo; и &laquo;Практические методы и кейсы продвижения сайтов&raquo;, я посвятил свое время последнему.</p>
<p>Роман Кузема (директор ООО &laquo;Бегун-Украина&raquo;) дал практические рекомендации по контекстной рекламе. Если вы как раз заняты созданием рекламной кампании, взгляните на его <a title="iPromo. Роман Кузема (Бегун). Практические рекомендации" href="http://ipromo.com.ua/presentations/11-kuzema-ipromo2010.ppt" target="_blank">презентацию</a>, наверняка найдете, что можно улучшить.</p>
<p>Потом Святослав Слабошпицкий (Ашманов и партнеры Украина) выступил с докладом &laquo;Продвижение без бюджетов&raquo;. Акцент был сделан на то, что иногда есть смысл браться за такое продвижение, если у вас куча свободных трудовых ресурсов и неважно с заказами, шансы получить в будущем весьма лояльного клиента велики. Был рассмотрен конкретный пример продвижения, который в для людей непосвященных очень наглядно продемонстрировал, как же работают оптимизаторы. Еще Святослав настойчиво обращал внимание на тот факт, что продвижение по низкочастотным запросам часто оказывается более выгодным. В общем, доклад мне понравился. Его <a title="iPromo. Святослав Слабошпицкий. Продвижение в поисковых системах без бюджетов" href="http://ipromo.com.ua/presentations/12-slaboshpickiy-ipromo2010.ppt" target="_blank">презентацию</a> тоже вполне можно использовать как check-list, если вы решили собственноручно покорить поисковые системы.</p>
<p>Алексей Макаров (С-Format) поведал слушателям свой кейс о мультиязычном продвижении отеля в Киеве в поисковой системе Google. Информация была специфична и узко ориентирована на специалистов по продвижению, так что ваш герой, пишущий этот отчет мало что понял. Но вынес для себя некоторые интересные цифры (к примеру, по словам Алексея, бюджет для продвижения в ТОП-5 в среднем в 1.3 раза больше бюджета для ТОП-10). Еще я поймал Алексея после доклада и *лампу в глаза, кресло с наручниками* допросил о инструментах, которыми он пользуется в своих трудовых буднях для автоматизации работы. Собственно, вынес для себя много интересных инструментов, с которыми уже начал знакомиться, спасибо Алексею.</p>
<p>Завершил секцию доклад Константина Леоновича (Sape.ru) &laquo;Практические рекомендации по распределению бюджетов между инструментами поискового продвижения&raquo;. Честно говоря, я бы сказал, что доклад Константина имел намного больше теоретических аспектов, чем практических, но возможно до практических просто не успели дойти, т. к. внезапно подкралось время для обеда. Еще Константин прекрасный оратор. Вообще с ораторским искусством в среднем как-то больше сложилось у докладчиков из секции для владельцев бизнеса, но Константин здесь &#8212; исключение.</p>
<h2>Обед</h2>
<p>На этом разделе не буду задерживаться слишком долго, скажу лишь, что все было очень вкусно и красиво, особенно мне понравились шашлычки. А вот решение перепробовать все виды вин возможно было ошибочным, я просчитался с соотношением свойств своего метаболизма и объемами вина, потому видимо следующие доклады воспринимались мной как-то своеобразно.<br />
Что-то я все о хорошем да о хорошем, вы же знаете, что я не могу без ноток негодования: с местом для курения было неудобно, к выходу из бизнес-центра &laquo;Парус&raquo;, в котором проходила конференция, топать было как-то далековато, а балкончик нужно было либо закрыть от таких как я, либо поставить туда урну/пепельницу.</p>
<h2>Не поверите&#8230; снова доклады</h2>
<p>Немного расслабившись после обеда, я с удовольствием прослушал выступление Александра Ольшанского о брендах, в котором он кстати охватил не только 21-й век, но и всю историю развития данного явления. &laquo;Бренд &#8212; это обещание&raquo; говорил Александр. Замечательное определение бренда.</p>
<p>Роман Вилявин (Promodo) представил доклад, имеющий (по крайней мере для меня) огромную практическую ценность. Раньше я даже не задумывался об этом: При выборе инструментов и рекламных площадок очень важно руководствоваться принципами, кардинально зависящими от того, ориентирована рекламная кампания непосредственно на продажи или же на продвижение бренда в общем.</p>
<p>Потом я дезертировал с секции о брендинге и новых тенденциях (мне все-таки очень хотелось прослушать доклад Дениса Довгополого &laquo;Вирус как технология продвижения&raquo;, но я решил, что мне полезнее будет узнать о бюджетных вариантах продвижения интернет-магазинов) и направился на завершающий доклад Артема Геращенкова. Опять же, ничего кардинально нового не прозвучало, если вы немного разбираетесь в интернет-продвижении и usability, но доклад хорош потому что огромное количество владельцев интернет-магазинов судя по тому, что мы видим в интернетах, совершенно не понимает каких-то базовых принципов, которые удачно собрал в своем докладе Артем. Если вы &#8212; владелец интернет-магазина &#8212; посмотрите <a title="iPromo. Артем Геращенков. Продвижение интернет-магазина: бюджетный вариант" href="http://ipromo.com.ua/presentations/20-gerashenkov-ipromo2010.ppt" target="_blank">презентацию</a> Артема, возможно это подтолкнет вас к каким-то позитивным изменениям.</p>
<h2>P.S.</h2>
<p>Спасибо Роману Ильичеву (GigaHost.ua), за приглашение на это интереснейшее мероприятие.</p>
<p>Отдельное спасибо хочу сказать организаторам конференции, оперативно позаботившимся о том, чтобы <strong>все</strong> презентации докладов были выложены на сайте конференции в кратчайшие сроки. Ознакомиться с ними вы можете в разделе <a title="iPromo.com.ua : Программа конференции" href="http://ipromo.com.ua/program/" target="_blank">программа</a>.</p>
<p>В ближайшее время обновлю этот репортаж фотографиями с iPromo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nayjest.ru/it-events/ipromo-report/feed</wfw:commentRss>
		<slash:comments>388</slash:comments>
		</item>
		<item>
		<title>iPromo – конференция о продвижении в сети</title>
		<link>http://www.nayjest.ru/it-events/ipromo-conference#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.nayjest.ru/it-events/ipromo-conference#comments</comments>
		<pubDate>Mon, 20 Sep 2010 08:14:40 +0000</pubDate>
		<dc:creator>Nayjest</dc:creator>
				<category><![CDATA[it-events]]></category>

		<guid isPermaLink="false">http://www.nayjest.ru/?p=340</guid>
		<description><![CDATA[Завтра, 21 сентября 2010 г. в бизнес-центре «Парус» (Киев, ул. Мечникова, 2) пройдет международная конференция, посвященная продвижению бизнеса в Интернет – iPromo. Организаторы конференции – компании «Ашманов и Партнеры Россия», «Ашманов и Партнеры Украина», Imena.UA и организационный комитет конференции iForum. Доклады будут идти в два потока, с программой вы можете ознакомиться на официальном сайте. Регистрация посетителей [...]]]></description>
			<content:encoded><![CDATA[<p>Завтра, 21 сентября 2010 г. в бизнес-центре «Парус» (Киев, ул. Мечникова, 2) пройдет международная конференция, посвященная продвижению бизнеса в Интернет – iPromo.</p>
<p>Организаторы конференции – компании «Ашманов и Партнеры Россия», «Ашманов и Партнеры Украина», Imena.UA и организационный комитет конференции iForum.</p>
<p>Доклады будут идти в два потока, с программой вы можете ознакомиться на <a href="http://ipromo.com.ua/program/">официальном сайте</a>. Регистрация посетителей начнется в 9 часов утра, открытие конференции в 10.00 (со вступительным словом выступит Игорь Ашманов)</p>
<p>Помимо  докладов, на следующий день после конференции будут проводиться мастер-классы. Участие в мастер-классах оплачивается отдельно и не входит в стоимость конференции.</p>
<p>Стоимость участия в конференции:<br />
до 20 сентября – 1600 грн,<br />
21 сентября, в день конференции – 2000 грн.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nayjest.ru/it-events/ipromo-conference/feed</wfw:commentRss>
		<slash:comments>180</slash:comments>
		</item>
		<item>
		<title>Требования к html-верстке</title>
		<link>http://www.nayjest.ru/verstka/html-requirements#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.nayjest.ru/verstka/html-requirements#comments</comments>
		<pubDate>Tue, 10 Aug 2010 14:05:02 +0000</pubDate>
		<dc:creator>Nayjest</dc:creator>
				<category><![CDATA[Верстка веб-страниц]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.nayjest.ru/?p=292</guid>
		<description><![CDATA[1. Верстка, аутсорсинг и технические задания Верстка — относительно независимый этап веб-разработки и, к примеру, в маленьких веб-студиях часто — это первый кандидат на аутсорсинг в условиях ограниченных трудовых ресурсов. Так сложилось, что мне часто приходилось отдавать эту работу субподрядчикам и, несмотря на предполагаемую однозначность результата, иногда верстальщики меня очень удивляли. Причем чаще — в [...]]]></description>
			<content:encoded><![CDATA[<h2>1. Верстка, аутсорсинг и технические задания</h2>
<p><img style="float: left;" title="Требования и рекомендации, html верстка сайтов" src="http://nayjest.ru/userfiles/verstka-recomendations/html_100.jpg" alt="Требования и рекомендации, html верстка сайтов" /> Верстка — относительно независимый этап веб-разработки и, к примеру, в маленьких веб-студиях часто — это первый кандидат на аутсорсинг в условиях ограниченных трудовых ресурсов.<br />
Так сложилось, что мне часто приходилось отдавать эту работу субподрядчикам и, несмотря на предполагаемую однозначность результата, иногда верстальщики меня очень удивляли. Причем чаще — в негативном смысле.</p>
<p><img style="float: right; margin: 5px;" title="Картинка для устрашения html-верстальщиков" src="http://nayjest.ru/userfiles/verstka-recomendations/head_end.jpg" alt="Картинка для устрашения html-верстальщиков" /> Чтобы сэкономить трудовые ресурсы штатных верстальщиков, недостаточно просто переложить эту работу на плечи первого приглянувшегося фрилансера. Все намного проще, если вы постоянно отдаете работу на аутсорсинг одним и тем же исполнителям — в процессе длительного сотрудничества всегда складывается какой-то негласный свод стандартов и требований, выполнение которых входит в привычку. Но если вы работаете с человеком впервые — самое хорошее портфолио и рекомендации не гарантируют получения нужного  результата и более того — даже не предполагают, что исполнитель вообще вас правильно поймет. Потому  нужны детальные технические задания по верстке.</p>
<p>И этот момент игнорируется. Часто это происходит из-за предположения, что трудозатраты на написание детального ТЗ в сумме со стоимостью аутсорсинга не окупаются сэкономленным временем штатного верстальщика. В конце концов, верстка — это ведь не так уж сложно — думает рядовой project менеджер. И, как правило, это действительно прокатывает, *хвала человеческому интеллекту*, профессиональные верстальщики в большинстве своем ограничивают буйство экспериментаторского духа и заранее знают, какие технические решения в верстке могут вызвать у заказчика геморрой не столь адский, чтобы забанить верстальщика, но все же исключающий радость и восхищение прекрасным html-макетом.</p>
<p>Тем не менее, вероятность факапов, как показывает практика, не столь мала, чтобы этим можно было пренебречь.<span id="more-292"></span></p>
<p>А основное заблуждение здесь в том, что детальное ТЗ — это сложно и трудоемко. Какие-то специфические требования к макету в любом случае приходится описывать, а вот на общие требования и рекомендации, как правило, забивают.</p>
<h2>2. О, велика моя скорбь!</h2>
<p>Я недавно получил макет, который менеджеры отдавали на аутсорсинг и просто не знал, смеяться мне или плакать. Если бы не мне предстояло интегрировать этот макет в систему шаблонов CMS, я бы наверно все-таки смеялся.</p>
<p><img style="float: right; margin: 5px;" title="Требования и рекомендации, html верстка сайтов" src="http://nayjest.ru/userfiles/verstka-recomendations/house_facepalm.jpg" alt="Требования и рекомендации, html верстка сайтов" />Табличная верстка и стили, не вынесенные в CSS файл и стандартный дримвиверовский скрипт для подсветки кнопок даже не воспринимаются как недостатки после того ада, который я увидел. Все поля ввода были вставлены внутрь тегов label, засунутых в отдельные формы, причем при попытках как-то привести это в человеческий вид, вся верстка разваливалась. CSS классы имели кириллические названия, причем не осмысленные, а вида «.стиль1, .стиль2». Большинство элементов форм стилизировались каким-то мало известным и до ужаса кривым скриптом на jQuery, некоторые элементы имели одинаковые ID и между ними был JS код, оперирующий как раз этими элементами и получающий их по ID, и верх маразма — это применение в конце документа метода jQuery.сss чтобы задать стили, которые ну совсем ничто не мешало просто прописать в CSS файл. А еще хедер сайта вместе с кучей ссылок (шрифтом Tahoma и без сглаживания) был сделан одной картинкой, на которую наложены элементы MAP и AREA. Пожалуй не буду больше травмировать вашу психику описанием фейлов в этом замечательном макете, т. к. было их там еще бессчетное количество.</p>
<p>В общем, поверьте, товарищи, это был пиздец, который к тому же подкрался практически перед самым дедлайном.</p>
<p>Происшествия такого вот характера побудили меня опубликовать список требований и рекомендаций, которые будут полезны как людям, отдающим макеты на html-верстку, так и собственно верстальщикам.</p>
<p>Вы можете переработать эти рекомендации и  дополнить ними свое типовое ТЗ на верстку. Многие вещи из перечисленных вполне очевидны, но вы можете извлечь profit из того, что все они собраны в одном месте. Некоторые пункты (к примеру требования к поддержке браузерами или используемым скриптам) для разных контор специфичны, но я не буду далее писать расплывчатых фраз, чтобы этот списочек можно было легко скопипастить и заточить под свою специфику работы.</p>
<h2>3. Требования и рекомендации</h2>
<p><strong>1</strong>.	Кроссбраузерность<br />
Сайт должен нормально работать в  IE6-8, FF3+, Opera9+, Safari4+, Chrome4+</p>
<p><strong>2</strong>.	Всегда описывайте цвет фона для body даже если он белый.</p>
<p><strong>3</strong>.	Если используете CSS хаки, комментируйте, что это и для какого браузера, а лучше используйте <a href="http://rafael.adm.br/css_browser_selector">css_browser_selector.js</a>. Заботьтесь о верстальщиках, которым придется работать с этим макетом после вас.</p>
<p><strong>4</strong>.	Названия классов и id должны по смыслу соответствовать применению<br />
например, header, menu, footer, news</p>
<p><strong>5</strong>.	Просьба разделять основные html блоки комментариями. Примерно так:<br />
&lt;!&#8211;—BEGIN FOOTER &#8211;&gt;<br />
&lt;!&#8211;—END FOOTER &#8211;&gt;</p>
<p>Это нужно для создания из сверстанного html макета шаблонов для CMS, после чего комментарии будут удаляться.</p>
<p><strong>6</strong>.	Не пренебрегать возможностью использовать GIF/PNG с 8-битным альфаканалом вместо PNG-24, где это возможно.</p>
<p><strong>7</strong>.	Все что можно сделать без Javascript, делать без него.</p>
<p><strong>8</strong>.	Если Javascript кода много — нужно его выносить в отдельный файл. Обработчики событий тоже лучше отделить и объявлять в отдельном файле.</p>
<p><strong>9</strong>.	Если это еще не оговорено с заказчиком, предварительно оговорить, какие JavaScript библиотеки вы планируете использовать при верстке макета, чтобы потом не оказалось, что при верстке использовался, к примеру, PrototypeJS, а заказчик планирует в обязательном порядке внедрять на сайт jQuery.</p>
<p><strong>10</strong>.	Для резиновых макетов обязательно должна быть задана минимальная и максимальная ширина.</p>
<p><strong>11</strong>.	Если в Т.З. не сказано другое, макет обязательно должен помещаться без горизонтальных скроллбаров в развернутое на весь экран окно браузера при горизонтальной составляющей разрешения экрана 1024px, а если позволяет размер макета, то и 800px.</p>
<p><strong>12</strong>.	В папке с изображениями не должно быть картинок, не использующихся в верстке. Если что-то исключили из верстки или переделали — не забывайте удалять уже ненужные картинки.</p>
<p><strong>13</strong>.	Для всех элементов, которые могут содержать текст различной длины, который должен быть вписан в одну строку (например, для кнопок или заголовков, если в дизайне не предусмотрено, что они могут занимать больше одной строки), обязательно  задавайте CSS свойство white-space:nowrap.</p>
<p><strong>14</strong>.	CSS файл должен быть разбит с помощью строк с комментариями на блоки по функциональному назначению, например:</p>
<blockquote><p>/* ___________1. Сброс CSS____________________*/<br />
/* ___________2. Типовые элементы____________*/<br />
/* _______________2.1. Залоговки______________*/<br />
/* _______________2.2. Ссылки________________*/<br />
/* _______________2.3. Элементы форм_________*/<br />
/*___________3. HEADER (Шапка сайта) __________*/<br />
/*___________4. FOOTER (Подвал )_______________*/<br />
/*___________5. SIDEBAR (Справа)_______________*/</p></blockquote>
<p>Как именно структурировть стили — вопрос немного холиварный, но главное — как-то это делать.</p>
<p><strong>15</strong>.	Если сдача верстки производится более чем одним этапом (например, верстальщик отправляет страницы по одной, или если ему возвращаются на доработку уже  сверстанные страницы) и вы не используете систему контроля версий для верстки, исполнитель  должен в обязательном порядке прикрепить файл с описанием изменений в макете примерно такого содержания:</p>
<blockquote>
<ul>
<li><span style="background-color: #ffffff;">Добавил новые картинки в папку img,</span></li>
<li><span style="background-color: #ffffff;">Картинки btnHome.jpg и btnFeedback.jpg уже не нужны, можно удалять</span></li>
<li><span style="background-color: #ffffff;">Изменил html-код в секции  файла anketa.html</span></li>
<li><span style="background-color: #ffffff;">Добавил в конец файла main.css новые стили (начиная с .form_row и ниже).</span></li>
</ul>
</blockquote>
<p><strong>16</strong>.	Оговорить, в какой кодировке должен быть html-макет. CSS и JS файлы должны быть в той же кодировке, что и макет, иначе вероятность долгой и утомительной охоты на баги критически возрастает.</p>
<p><strong>17</strong>.	Если в макете присутствует JS, изменяющий DOM — внимательно следить, чтобы все корректно работало в Опере, т. к. этот замечательный браузер при нажатии на кнопочку назад страницу не перезагружает, а отдает закешированный документ, причем очень важный момент: документ не просто закешированный, а еще и с учетом всех модификаций DOM, которые были выполнены с помощью JS</p>
<p><strong>18</strong>.	Не забывайте прописывать cursor:pointer для кнопок, сделанных не с помощью input. Если вы не знаете, будет на эту кнопку повешен обработчик событий с помощью JS или это будет ссылкой, лучше в любом случае использовать тег &lt;a&gt;.</p>
<p><strong>19</strong>.	Если вы делаете обработку событий при нажатии на ссылки, следите  за тем, чтобы обработчики событий возвращали false, или же используйте href=&#8217;javascript:void(0)&#8217; вместо популярного href=&#8217;#', чтобы страница не скроллилась вверх.</p>
<p><strong>20</strong>.	Верстайте формы правильно: метки полей должны находиться в тегах label, имеющих правильно заполненный атрибут for. Предусматривайте при верстке форм элементы для вывода ошибок валидации и стили для неправильно заполненных полей. Если  это не предусмотрено в т.з. и дизайне, обязательно обсудите это с заказчиком.</p>
<p><strong>21</strong>.	Если в макете используются нестандартные шрифты, обязательно оговорите, можно ли элементы с нестандартным шрифтом делать картинками, если нельзя — обсудите, с помощью какой технологии будет реализовано их отображение (sIfr, Cufon, etc.)</p>
<p><strong>22</strong>.	Если не оговорено обратное для частных случаев, все блоки, высоту которых ничего в дизайне не мешает сделать динамической, должны иметь именно динамическую (т. е. зависимую от содержания) высоту, а иногда, чтобы ничего не могло потенциально поломать дизайн, нужно задавать и минимальную высоту. Если хотите сделать блок фиксированной высоты — сначала спросите у заказчика.</p>
<p><strong>23</strong>.	В макетах, где высота страницы зависит от контента (а таких, как правило, большинство), предусматривайте, чтобы футер был прибит к низу браузера при отсутствии/малом количестве контента, если не оговорено обратное.</p>
<p><strong>24</strong>.	Если макет не проходит 100%-ную html-валидацию, постарайтесь по крайней мере делать так, чтобы использование невалидного кода было оправданно. Не стоит факапить валидность  верстки только потому, что «мне так нравится» или «так получается короче»</p>
<p>Надеюсь, этот списочек будет вам полезен. Если есть конструктивные мысли, предлагайте в комментариях, чем его можно дополнить.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nayjest.ru/verstka/html-requirements/feed</wfw:commentRss>
		<slash:comments>359</slash:comments>
		</item>
		<item>
		<title>Украинский форум интернет-деятелей (iForum), отчет</title>
		<link>http://www.nayjest.ru/it-events/iforum-report#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.nayjest.ru/it-events/iforum-report#comments</comments>
		<pubDate>Fri, 02 Apr 2010 19:30:06 +0000</pubDate>
		<dc:creator>Nayjest</dc:creator>
				<category><![CDATA[it-events]]></category>

		<guid isPermaLink="false">http://www.nayjest.ru/?p=272</guid>
		<description><![CDATA[Вчера в Киеве прошел Украинский форум интернет-деятелей &#8212; достаточно крупное отраслевое IT-мероприятие, точнее &#8212; внезапно достаточно крупное (я был удивлен). Дело в том, что до того момента, как меня лично туда пригласили, я вообще думал, что это &#8212; превоапрельская шутка. А собралось по неофициальным данным &#8212; около 3000 человек, что очень даже много для Киева [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.nayjest.ru/userfiles/iforum/report.jpg" alt="" align="left" style="border:none" border="0" /><br />
Вчера в Киеве прошел <a href="http://iforum.com.ua"><strong>Украинский форум интернет-деятелей</strong></a> &#8212; достаточно крупное отраслевое IT-мероприятие, точнее &#8212; внезапно достаточно крупное (я был удивлен).<br />
Дело в том, что до того момента, как меня лично туда пригласили, я вообще думал, что это &#8212; превоапрельская шутка.<br />
А собралось по неофициальным данным &#8212; около 3000 человек, что очень даже много для Киева и Украины (сравнивая с аудиторией других IT-конференций и встреч).<br />
Впрочем, цены очень демократичны, за что спасибо организаторам, помещение громадное, а среди докладчиков есть легендарные личности всея рунета.<br />
Мероприятие это проводится уже второй раз, первый раз (в прошлом году), форум интернет-деятелей собрал примерно в три раза меньше народу.</p>
<p>Поскольку интернет-деятели излагали свои доклады в четыре потока, физической возможности прослушать все у человека, не обладающего паранормальными способностями или диктофонами в трех залах, не было. Так что, перед тем, как решите читать дальше этот отчет, примите во внимание, что я слушал по большей части доклады из потоков &laquo;интернет-технологии&raquo;, а также немного &laquo;WEB 2.0&#8243;, доклад Антона Носика в потоке &laquo;интернет-бизнес&raquo;.<span id="more-272"></span></p>
<h1>Сразу же о потоках</h1>
<p><img src="http://www.nayjest.ru/userfiles/iforum/ponaehalo.jpg" alt="" align="left" /> Еще я методично пытался послушать доклады из потока &laquo;интернет-реклама&raquo;, но каждый раз попадал на какую-то нудотину о примитивных общеизвестных вещах в плане рекламы и SEO. Мне было бы интересно послушать доклад Дмитрия Сатина(<a href="http://www.usabilitylab.ru">usabilitylab</a>) о &laquo;Юзабилити веб-сайта&raquo; (в надежде узнать что-то новое для себя), но я в это время созерцал звезду смерти и забавных котэ  на докладе о HTML5 и CSS3, который вел Юрий Артюх (<a href="http://cssing.org.ua">cssing.org.ua</a>).</p>
<p>Доклад Игоря Ашманова я профакапил, наивно полагая, что доклады заканчиваются одновременно.</p>
<p>Самой большой (по размерам аудитории и соответственно количеству слушателей) был поток &laquo;интернет-бизнес&raquo;, немного меньше &#8212; &laquo;WEB 2.0&#8243;, еще меньше &#8212; &laquo;интернет-реклама&raquo;, и <span style="color: gray;"><em>*негодует*</em></span> совсем маленький &#8212; &laquo;интернет-технологии&raquo;.</p>
<p>Поток &laquo;WEB 2.0&#8243; находился в другм крыле здания, нужно было выходить на улицу и топать ко второму входу, что несколько усложняло процесс передислокации между потоками.</p>
<p><img src="http://www.nayjest.ru/userfiles/iforum/top_view.jpg" alt="" align="left" /> А специфика этого мероприятия такова, что бегать между потоками приходилось очень много (по крайней мере ввиду моей широкой сферы интересов). Не везде были сидячие места (так чтобы сесть 2-м &#8212; 3-м человекам вместе), но ближе к концу форума, интернет-деятели видимо поднадоели Киевлянам и те лишили ряды самых стойких, подняв кол-во свободных мест до более комфортного уровня. Особенно это было актуально для секции &laquo;интернет-технологий&raquo; с самым маленьким залом. Странно, что в международном выставочном центре не смогли подобрать аудиторию побольше, ведь он огромен.</p>
<p>Сначала было предположение, что мы послушаем разные секции и будем делиться опытом (я на iForum встретил коллегу из рекламного агентства <a href="http://www.ram.com.ua">ram</a>, а позже &#8212; еще людей, с которыми когда-то учился на факультете прикладной математики в КПИ), но это было неудачное предположение, т. к. победил коллективный инстинкт и мы в дальнейшем перемещались кучкой.</p>
<p>Не могу не отметить, что на iForum была одна секция, которую в достаточной мере не освещал ни один пресс-релиз, но тем не менее, она набрала достаточно большое количество посетителей. Целевая аудитория была однозначно найдена, но об этом ниже.</p>
<h1>ПО (продовольственное обеспечение) мероприятия</h1>
<p>Это &#8212; завораживающее место сразу напротив главного входа, где на столиках разложили массу коробок со всевозможными сладкими ништячками. Наравне с аудиториями для докладов, здесь тусовалось множество IT-шников, блоггеров и бизнесменов, охотящихся на печеньки.<br />
Особый фурор вызвало появление коробок с зефирами. По моим субъективным впечатлениям, это был самый трендовый и высоко ценимый ресурс в даной секции. Так же была минералочка, бесплатный чай и кофе.<br />
Делюсь несколькими фотографиями этого праздника жизни:<br />
<img src="http://www.nayjest.ru/userfiles/iforum/prazdnik_jizni.jpg" alt="" align="center" /><br />
<img src="http://www.nayjest.ru/userfiles/iforum/5_potok.jpg" alt="" align="center" /><br />
<img src="http://www.nayjest.ru/userfiles/iforum/cookies.jpg" alt="" align="center" /></p>
<h1>Высадка десанта</h1>
<p>Я приехал в МВЦ уже к началу первого доклада. Думал что опоздаю, т. к. утром пришлось в экстренном порядке заправлять принтер, чтобы нормально распечатать пригласительный / бейджик (печатать черно-белый как-то несолидно, никогда не печатайте черно-белые бейджики, если вы идете на мероприятие, где  много потенциальнх бизнес-партнеров / инвесторов).  Впрочем, даже такой настрой не помог мне не забыть о визитках  <span style="color: gray;"><em>*facepalm*</em></span></p>
<p>Еще выходя из метро заметил стабильный поток, двигающийся в направлении МВЦ, но я зря принял их за своих, т. к. вчера там же проходили еще &laquo;Baby Expo&raquo; и &laquo;Art Expo Shoes&raquo;, и внедриться вместе с потоком в здание мне не удалось, т. к. на Украинский форум интернет-деятелей попасть можно только через другой вход, к которому нужно было пройти немного дальше (их там много). Но когда я увидел Антона Носика aka <a href="http://dolboeb.livejournal.com/">dolboeb</a>, я наконец-то убедился, что пришел в нужное место.<br />
<img title="Антон Носик(bfm.ru, dolboeb.livejournal.com) и Виталий Степаненко (nayjest.ru, perevaga.com)" src="http://www.nayjest.ru/userfiles/iforum/anton_nosik.jpg" alt="" align="center" /><br />
После проверки пригласительных, всем вручали вот такие пакетики:<br />
<img src="http://www.nayjest.ru/userfiles/iforum/paket.jpg" alt="" align="center" /><br />
С кучей рекламы, фирменной ручкой, которую у меня кто-то отвеял и календариком.</p>
<h1>Доклады</h1>
<p>Сначала я конечно же послушал Антона Носика. Можно сказать, что он был личностью для привлечения внимания, ведь кто не слышал о фееричном <a href="http://dolboeb.livejournal.com/">Dolboeb</a>&#8216;е.</p>
<p>Вопреки мнению предыдущего камрада, отчитавшегося на Хабре, мне его доклад понравился. В принципе, Антон говорил правильные вещи о условиях ведения ебизнеса, отличиях от обычного бизнеса и о том, почему мудилы, прикручивающие гайки (к примеру, что касается требований предоставлять паспортные данные для регистрации доменов в зоне .RU) создают только отток клиентов в более свободные зоны. После доклада у меня возникла мысль, что интересно было бы посмотреть статистику по выбору доменной зоны для русскоязычных проектов и динамику этих показателей.</p>
<p>Потом я смог немного поприсутствовать на затянувшемся и внезапно очень интересном докладе Сергея Котырева (<a href="http://www.umi-cms.ru">Юмисофт</a>), который разжигал почву  для религиозных войн своим докладом о сравнении платных и бесплатных CMS. Обычно у меня никак руки не доходили до UMI.CMS, а тут Сергей вполне презентабельно продемонстрировал некоторые моменты в своем детище, хотя конечно же (и не смейте усомнится), моя секретная CMS, которая выйдет в следующем году и взорвет рынок веб-разработки, несоизмеримо круче <span style="color: grey;"><em>*юмор*</em></span>.<br />
Кстати &laquo;религиозные войны&raquo; стали прямо таки трендом iForuma и эта фраза еще звучала много раз.</p>
<p>Далее в той же секции был средней интересности доклад Юлии Юркевич (<a href="www.avanport-design.com#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">Аванпорт-дизайн</a>), которая по большей части вещала об 1С-Битрикс.</p>
<p>Проскочила очень интересная мысль об экономической выгодности CMS как основном и важнейшем показателе со всеми истекающими фактами (не помню, кто об этом говорил, Сергей или Юлия).</p>
<p>После этого Игорь Кононученко (студия дизайна <a href="www.vedjo.com.ua/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">&laquo;Веджо&raquo;</a>) рассказывал о Python и Django, но мне доклад показался каким-то слишком нубо-ориентированным (возможно он был интересен тем, кто совсем не слышал о Python и Django), да и ораторскому искусству Игорю нужно еще подучиться (как и некоторым другим докладчикам из секции интернет-технологий).<br />
То есть, ребята, спасибо конечно же за работу, проделанную над докладами, выступайте дальше, сейте знания и опыт, но не забывайте тренироваться перед зеркалом и по возможности рассказывать быстрее. В этом плане, подкованность части докладчиков из данной секции iForum немного удручает (не в обиду, я конечно же понимаю, что вы все &#8212; специалисты в первую очередь в своих областях, а не в умении красиво говорить).<br />
В общем-то, возможно далее Игорь и говорил что-то интересное, но мы как граждане демократической страны, провели коллективное голосование и решили посмотреть в это время другие секции.</p>
<p>Немного удовлетворив свои гастрономические интересы в секции печенек, мы бегло взглянули на &laquo;интернет-бизнес&raquo; и &laquo;интернет-рекламу&raquo; и устремились в поток &laquo;WEB 2.0&#8243;.<br />
Тарас Тарасов из Game Industry Consulting рассказал немного о истории и нынешнем состоянии в мире Shareware, казуальных и социальных игр, ценообразовании и современных тенденциях.</p>
<p>Потом пройдя обратный цикл по всем секциям, мы остановились на докладе Олега Бунина (<a href="http://ontico.ru">ontico.ru</a>), который вкратце рассказал практически о всем том, что далее звучало на секции &laquo;Разработка высоконагруженных систем в Интернете&raquo;.</p>
<p>Далее был Евгений Курт (<a href="http://www.ucoz.ru">ucoz</a>), сказавший на своем докладе в потоке WEB 2.0, что пользователи их сервиса &#8212; их враги :) и представители Youscan, формировавшие своим докладом целевую аудиторию для своего проекта по отслеживанию репутации в онлайне.<br />
<img src="http://www.nayjest.ru/userfiles/iforum/ucoz.jpg" border="1" alt="" align="center" /><br />
Девушка из Life рассказывала о том, как они пиарятся благодаря своему корпоративному блогу, об интересных акциях в Life и о блоггере, которого заслали на неделю в детдом.</p>
<p>Затем я успел услышать завершительную часть доклада Андрея Никитина о такой софтине как MySQL Enterprise Monitor, а Всеволод Демкин просветил об использовании NoSQL БД и облачных технологиях.<br />
Впрочем, то ли тема высоконагрузочных систем в Интернете меня не возбуждает, то ли на этой секции было как-то скучновато.</p>
<p>Зато секция &laquo;Новые технологии в Интернете&raquo; была великолепна.<br />
Сначала Юрий Артюх достаточно интересно рассказал о HTML5 и СSS3, донес до аудитории мысль о том, что эти стандарты не монолитные как звезда смерти из Star Wars, которая при огромных затратах на производство, познала печальную судьбу (лучше бы флот истребителей забацали, да), а что это &#8212; объединение множества более узконаправленных стандартов. В общем, он приводил еще много забавных аналогий, показал один демотиватор и много котов, которые внезапно появлялись, упомянул &laquo;незлим, тихим словом&raquo; (укр.) нашего всеобщего любимчика, IE6.</p>
<p>Даже несмотря на то, что о  HTML5 и СSS3 я узнал мало нового, презентация очень доставляет.</p>
<p>Остальные доклады в этой секции были тоже очень интересными и информативными: звучало много хороших вопросов, Павел Башмаков(Stanfy) делился ценнейшим опытом разработки под мобильные платформы, Сергей Байдачный(Microsoft) очень живенько и насыщенно поведал о Windows Phone 7 и Internet Explorer 9.0 (опять же, для меня не так уж много нового, но такой качественный доклад слушать интересно).<br />
<img src="http://www.nayjest.ru/userfiles/iforum/serge_windows_phone7.jpg" border="1" alt="" align="left" /> Презентация была на черном фоне, как и положено для WP7-приложений (Дело в том, что устройства на базе WP7 будут обладать экранами, расходующими меньше энергии, если на экране отображено что-то черное).<br />
Еще он во время доклада создал в помощью визуального интерфейса Visual Studio простенькое приложение под Windows Phone 7, которое отображало на экране эмулятора WP7-устройства его фотографию.</p>
<p>Только вот мне не понравилось объявление, что все задавшие вопросы будут награждены футболкой от Microsoft &#8212; дело в том, что тянуть руку начали почти все и я банально не успел задать 4 волновавших меня вопроса (время поджимало, нужно было освобождать аудиторию), хотя хотел задать их с самого начала. Но это не помешало мне подойти к Сергею после доклада и узнать обо всем интересовавшем (дело в том, что я пишу игру на XNA, а игры на платформе XNA будут работать на Windows Phone 7).</p>
<p>Резюмируя могу сказать, что самыми интересными были доклады в начале и в конце iForum.<br />
Немного многовато саморекламы в докладах, но это ок.<br />
Все-таки участие стоит всего 300 грн, а докладчики я так понимаю вряд-ли получают гонорар за свои труды.<br />
Кстати, если уж говорить о рекламе, интересным рекламным ходом была пропажа буквы M в логотипе imena.ua, висевшим за главной сценой. Я думал &#8212; отвалилась, оказывается &#8212; рекламный ход. Маркетологи, берите на заметку. (на хабре в комментариях написали, что буква M отвалилась случайно)<br />
Еще заинтриговали разбросанные карточки <a href="http://Psihuha.ru">Психуха.ru</a>, но не знаю, был ли в этом смысл, т. к. инвайтов я нигде не заметил.</p>
<p>Вот <strong>TOP3 понравившихся мне докладов:</strong></p>
<p>1. Юрий Артюх &#8212; CSS3 и HTML5<br />
<span style="color: gray;"><em>*золотая медаль*</em></span><br />
2. Сергей Байдачный &#8212; Windows Phone 7 и IE9<br />
<span style="color: gray;"><em>* серебряная медаль*</em></span><br />
3. Сергей Котырев &#8212; Платные и бесплатные CMS<br />
<span style="color: gray;"><em>*бронзовая медаль*</em></span></p>
<h1>Недостатки iForum</h1>
<p>1. <span style="text-decoration: underline;">Нигде рядом не было сигарет</span>. Дело в том что сигареты у нас быстро закончились (ага, такие классные доклады, что некоторым слушателям после каждого доклада хотелось закурить, причем не один раз). В результате  представители веб-студии <a href="http://www.perevaga.com">Perevaga.com</a> стреляли у интернет-деятелей сигареты в больших количествах.<br />
Кстати, возле центрального входа часто можно было наблюдать Антона Носика, регулярно выходившего покурить и собиравшего вокруг себя толпу зевак. Популярность, однако.</p>
<p>2. <span style="text-decoration: underline;">В мужском туалете не работала ни одна сушилка для рук</span>. Как сказал товарищ <a href="http://twitter.com/Fauxru">Faux</a> &#8212; примечательно было обнаружить этот факт после доклада о Usability.</p>
<p>3. <span style="text-decoration: underline;">Смещения по временной шкале.</span> Собственно, все действо началось примерно на 15 минут позже запланированного начала и многие докладчики очень затягивали, в результате чего часто сверяясь с расписанием докладов и бегая по аудиториям, я попадал вовсе не на то, на что рассчитывал.</p>
<p>4. <span style="text-decoration: underline;">Девушки в бикини not detected.</span> Запомните: <span style="text-decoration: underline;">На IT-конференциях обязательно должны быть девушки в бикини!</span> Можно даже топлесc.</p>
<h1>Подарки</h1>
<p>В процессе конференции у всех желающих собирались визитки для участия в розыгрыше призов, который состоялся на закрытии мероприятия.<br />
Самый ценный приз &#8212; ноутбук, предоставленный компанией <a href="http://www.p-host.com.ua/">p-host</a>, выиграл парень из <a href="http://perukar.org/">perukar.org</a>, так же разыгрывался DVD-проигрыватель, жесткий диск и куча флешек.<br />
Примечательно то, что владельцев большинства визиток, которые вытягивались, уже не было на розыгрыше призов и тогда тянули визитки еще и еще, пока не находился кто-то присутствующий. Призы давали только лично владельцам удачливых визиток.</p>
<p>Александр Ольшанский(<a href="http://www.imena.ua">imena.ua</a>) предоставлял торжественную роль вытягивания визиток слушателям в зале или даже людям, случайно проходящим мимо с чашечкой кофе.</p>
<p>Одна предприимчивая блондинка, которую вызвали тянуть визитки, решила не заморачиваться со случайным выбором и засунула свой носик в пакет с визитками, начав их просто перебирать (она наверно маркетолог). Судя по всему ее непалевная попытка обмануть почти тысячу людей, не привела к успеху, но тем не менее здорово повеселила публику.</p>
<p>Так же проводился розыгрыш призов, где учавствовали анкеты, которые утром выдавали для заполнения (я как-то пропустил этот момент), а еще на докладе Сергея Клоченко было разыграно пять миллионов бесплатных баннеропоказов формата 468х60 в Украинской Баннерной Сети.</p>
<p>Девочки из <a href="Imena.ua#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">Imena.ua</a> раздавали всем коврики для мышек со своей символикой, а Сергей Байдачный (Microsoft) дарил забавные футболки в обмен  на вопросы.</p>
<p>Если я что-то упустил (что вполне возможно, учитывая масштаб мероприятия) &#8212; пишите в комментариях, поможете еще более целостно осветить iForum.</p>
<h1>О распространении информации</h1>
<p>На iForum акредитовано 67 изданий 192 журналиста, так что думаю, скоро будет широкое освещение этого события в прессе, что привлечет еще больше интересных интернет-деятелей в следующем году. Я для себя решил, что обязательно пойду.</p>
<p>Так же стоит упомянуть о бурном(очень) обсуждении в Twitter, многие твитили прямо во время конференции, а еще на завершающей части несколько призов дали авторам самых интересных твитов. Так то.<br />
Читайте тви по хэштегу <a href="http://twitter.com/#search?q=%23iforum">#iforum</a>.</p>
<p>Вообще приятно, что услышал я об этой конференции сразу из нескольких информационных источников. Потому что меня мучает осознание того, сколько всего интересного я постоянно пропускаю&#8230; взять хотя-бы недавний <a href="http://openwebcamp.org.ua/">Openwebcamp</a> в Киеве.</p>
<p>Ребята-организаторы подобных мероприятий &#8212; не скупитесь, освещайте ваши event&#8217;ы сильнее и заранее.</p>
<h1>Благодарности</h1>
<p>Выражаю благодарность Роману Ильичеву (<a href="http://gigahost.ua">GigaHost.ua</a>) за оплаченное для меня приглашение на Украинский форум интернет-деятелей, всем организаторам данного event&#8217;а  за замечательное мероприятие, собственно докладчикам за интересные доклады и лично вам за то, что вы дочитали аж до этого места :)</p>
<h1>Ссылки</h1>
<h3>Материалы докладов</h3>
<p>Павел Башмаков (<a href="http://stanfy.com.ua/">Stanfy</a>) <a href="http://www.slideshare.net/bexcite/ss-3622136">Презентация о разработке мобильных приложений</a><br />
Игорь Кононученко (студия дизайна <a href="www.vedjo.com.ua/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">&laquo;Веджо&raquo;</a>): <a href="http://www.kigorw.com/talks/iforum2010#1">Построение веб-сайтов на Django</a>, презентация (html)<br />
Владимир Исаев (Opera): <a href="http://mmr.net.ua/news/newsid/19417/index.html">«Кто, куда и зачем ходит в Сеть с мобильного телефона»</a> (присутствуют довольно интересные статистические данные)<br />
Юрий Артюх (<a href="cssing.org.ua#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">Cssing.org.ua</a>): <a href="http://cssing.org.ua/examples/css3html5/#slide1">Презентация по докладу HTML5, CSS3</a>. Примечательно, что сама презентация сделана сугубо с использованием упомянутых технологий.<br />
<a href="http://iforum.com.ua/doklady/2010/biz/brodskiy.ppt">Презентация</a> украинского политика Михаила Бродского, который так и не появился на iForum.<br />
Сергей Митрофанов: <a href="http://iforum.com.ua/doklady/2010/biz/SE_Mitrofanov_post-Gutenberg_era_present.pdf">Презентация по докладу &laquo;Брендинг в Сети&raquo;</a>   </p>
<h3>Посты на хабре</h3>
<p> <a href="http://habrahabr.ru/blogs/uanet/89722/">В Киеве прошел второй Украинский форум интернет-деятелей Iforum (отчетик + фотки)</a><br />
<a href="http://habrahabr.ru/blogs/uanet/89780/">Еще пару фото с Украинского форума интернет-деятелей Iforum</a><br />
<a href="http://habrahabr.ru/blogs/uanet/85491/">Первый мини-анонс iForum на Хабре</a></p>
<h3>Другие ссылки</h3>
<p> <a href="http://iforum.com.ua">Официальный сайт Украинского форума интернет-деятелей</a><br />
<a href="http://community.livejournal.com/dzherelo_org/4975.html">Отчет от Badevlad</a><br />
<a href="http://uk.wikipedia.org/wiki/%D0%A3%D0%BA%D1%80%D0%B0%D1%97%D0%BD%D1%81%D1%8C%D0%BA%D0%B8%D0%B9_%D1%84%D0%BE%D1%80%D1%83%D0%BC_%D1%96%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82-%D0%B4%D1%96%D1%8F%D1%87%D1%96%D0%B2">Статья в Wikipedia</a> (на украинском)<br />
<a href="http://webanalitic.blogspot.com/2010/04/76-iforum.html">76 висловів твіттерян про iForum</a> (на украинском)<br />
<a href="http://bukovynaonline.com/iforum/">Еще один достаточно подробный отчет</a> (на украинском)<br />
<a href="http://digger.spaces.live.com/default.aspx">Отчет Виктора Шахотина</a> (он выступал с докладом о Windows Azure Platform, который я пропустил)<br />
Заметка  <a href="http://dmitro.name/archives/330">iForum, или динамичное 1 апреля</a><br />
Daria Rosyuk, <a href="http://dariaro.posterous.com/-iforum-2010#">Мой взгляд на iForum 2010</a><br />
А вот камрад Limanoff пишет как-то не в самом позитивном ключе об iForum: <a href="http://www.gweek.com.ua/2010/04/60.html">Интернет уже не блажь</a><br />
Денис Довгополый (выступал с докладом &laquo;Технологический бизнес. Правила игры&raquo;), <a href="http://dennydov.blogspot.com/2010/04/iforum.html">Отчет с секции стартапы</a><br />
<a href="http://habrahabr.ru/blogs/conf/89820/">Этот же отчет на Хабре</a></p>
<p>upd: В результате написания этого поста я понял, что я очень-очень медленно пишу статьи. Надеюсь, мой отчет заинтересует тех, кто так и не добрался до iForum 2010 и возможно подтолкнет их посетить iForum 2011, а так же будет интересен тем, кто посетил это мероприятие.</p>
<p>Посетивших просьба затвитить этот отчет / кинуть ссылку друзьям, которые тоже там были.</p>
<p>Спасибо за внимание.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nayjest.ru/it-events/iforum-report/feed</wfw:commentRss>
		<slash:comments>350</slash:comments>
		</item>
		<item>
		<title>Вышел jQuery 1.4.1</title>
		<link>http://www.nayjest.ru/jquery/jquery-141-released#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.nayjest.ru/jquery/jquery-141-released#comments</comments>
		<pubDate>Tue, 26 Jan 2010 03:45:21 +0000</pubDate>
		<dc:creator>Nayjest</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.nayjest.ru/?p=248</guid>
		<description><![CDATA[Ура, товарищи! Встречаем новую версию jQuery и радуемся, что разработчики этой замечательной javascript библиотеки все так же интенсивно развивают и продвигают свое детище! Не успели мы освоиться с jQuery 1.4, как подкатил новый релиз. В jQuery 1.4.1 исправили несколько багов, появившихся в версии 1.4 и наславу поработали над API. 1. Скачать jQuery 1.4.1 можно здесь: [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: left;" title="jQuery" src="http://www.nayjest.ru/userfiles/jQuery.jpg" alt="jQuery" /> Ура, товарищи! Встречаем новую версию jQuery и радуемся, что разработчики этой замечательной javascript библиотеки все так же интенсивно развивают и продвигают свое детище! Не успели мы освоиться с jQuery 1.4, как подкатил новый релиз.</p>
<p>В jQuery 1.4.1 исправили несколько багов, появившихся в версии 1.4 и наславу поработали над API.<br />
<span id="more-248"></span></p>
<h2>1. Скачать jQuery 1.4.1 можно здесь:</h2>
<ul>
<li><a href="http://code.jquery.com/jquery-1.4.1.js">jQuery 1.4.1</a> (157kb)</li>
<li><a href="http://code.jquery.com/jquery-1.4.1.min.js">jQuery 1.4.1 Minified</a> (23kb <a href="http://www.julienlecomte.net/blog/2007/08/13/">Gzipped</a>)</li>
</ul>
<h2>2. А теперь предлагаю ознакомиться с нововведениями:</h2>
<ul>
<li>Разработчикам пришло в голову, что их изначальная идея обозвать события &laquo;blur&raquo; и &laquo;focus&raquo; (потеря и получение фокуса html элементами) новыми именами, а именно &laquo;focusin&raquo; и &laquo;focusout&raquo; возможно была и не так хороша, так что теперь в методе .live() мы можем использовать первый вариант (&laquo;focusin&raquo; и &laquo;focusout&raquo; естественно никуда не делись в целях обратной совместимости).</li>
<li>Та же ситуация с событиями &laquo;mouseenter&raquo;, &laquo;mouseleave&raquo;. Теперь кроме них в методе .live() можно использовать еще и метод &laquo;hover&raquo;</li>
<li>Для метода .live() теперь можно задавать несколько типов событий, как и для .bind(). Пример, каким образом это может быть полезно:<br />
<code><br />
$('#some_element').live('mouseenter mouseleave', function() {<br />
$(this).toggleClass('entered');<br />
});<br />
</code></li>
<li>Еще раз рациональное мышление посетило создателей jQuery, когда они присмотрелись к методу .die(). Ну, или хорошие разработчики отправляют им правильные тикеты в багтреккер :) Изначально призвана для того, чтобы удалять обработчики событий, назначенные с помощью метода .live(), теперь функция .die() может удалить их все, если ее вызвать без параметров (т. е. не нужно передавать в нее тип события, для которого нужно удалить обработчиков).</li>
<li>Теперь в методы .height() и .width() можно передавать параметром функцию, которая будет соответственно устанавливать высоту / ширину.</li>
<li>Функции .parseJSON() (парсит JSON строку в javascript объект) и .error() (единый механизм вывода ошибок &#8212; это хорошо) теперь доступны всем (ранее использовались только внутри jQuery), что вполне логично, как по мне.</li>
</ul>
<p>Еще исправлена куча багов, но останавливаться на них детально не буду, об этом <a href="http://jquery14.com/day-12/jquery-141-released">читаем здесь</a> (на английском).</p>
<p>Спасибо за внимание. Не ленимся, обновляем jQuery в своих проектах ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nayjest.ru/jquery/jquery-141-released/feed</wfw:commentRss>
		<slash:comments>220</slash:comments>
		</item>
		<item>
		<title>Былины о хостинге</title>
		<link>http://www.nayjest.ru/hosting/story#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.nayjest.ru/hosting/story#comments</comments>
		<pubDate>Mon, 11 Jan 2010 12:34:53 +0000</pubDate>
		<dc:creator>Nayjest</dc:creator>
				<category><![CDATA[веб-хостинг]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[бесплатный хостинг]]></category>

		<guid isPermaLink="false">http://www.nayjest.ru/?p=194</guid>
		<description><![CDATA[Приветствую, дорогие читатели! В прошлогодней статье о WordPress 2.9 я немного говорил о прожорливости этой блогоплатформы. И если наши западные коллеги не заморачиваются с такою вещью, как производительность (хостинг то у них везде резиновый-безлимитный), то качество сервиса некоторых наших хостеров просто жутко бесит, хочется взять и уе расцеловать. Я к примеру пол-года мирился с тем, [...]]]></description>
			<content:encoded><![CDATA[<p>Приветствую, дорогие читатели!</p>
<p><img src="/userfiles/vzyat_i_.jpg" alt="" align="left" /> В <a title="Время обновить WordPress! Тестируем версию 2.9 «Carmen»" href="http://www.nayjest.ru/wordpress/carmen#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">прошлогодней статье о WordPress 2.9</a> я немного говорил о прожорливости этой блогоплатформы. И если наши западные коллеги не заморачиваются с такою вещью, как производительность (хостинг то у них везде резиновый-безлимитный), то<strong> качество сервиса некоторых наших хостеров просто жутко бесит</strong>, хочется взять и <span style="text-decoration: line-through;">уе</span> расцеловать.</p>
<p>Я к примеру пол-года мирился с тем, что в админ-панели моего блога на WordPress значительная часть функций не работала из-за ограничения хостером оперативной памяти на поток. В результате переписки со службой тех.поддержки лимит мне подняли до  32Мб ОЗУ на поток, но этого так и не хватило для работы базовых функций панели управления WordPress, а на многие плагины мне приходилось только смотреть и мечтать. Запускался примерно один из четырех, остальные вылетали с той же ошибкой о недостаточном количестве памяти. Ну, может не совсем мирился, писем то хостеру отправлено столько, что стоит лишь позавидовать героической способности тех.поддержки соблюдать ледяное спокойствие. А из практической пользы &#8212; мне поступило предложение накинуть еще 10 Мб за дополнительную плату 1$ в месяц. Ну как-то совсем по-жлобски, согласитесь.</p>
<p><span id="more-194"></span></p>
<p>Вдвойне обидно, когда за хостинг давно заплачены деньги, у хостера на официальном сайте написано, цитирую:</p>
<blockquote><p>Хостинг оптимизирован для работы с такими CMS как WordPress, Drupal, Joomla, PHP-Nuke</p></blockquote>
<p>И в результате приходится забугорный бесплатный хостинг, такой как к примеру <a title="Бесплатный буржуйский хостинг" rel="external nofollow" href="http://www.freehostia.com">freehostia.com</a> или <a title="Еще один бесплатный буржуйский хостинг" rel="external nofollow" href="http://www.000webhost.com/">000webhost.com</a> для размещения сайта на WordPress, где кстати все прекрасно работает в отличии от нашего платного. Но работает <strong>до поры до времени</strong>, а об этом расскажу немного детальнее.</p>
<h2>Бесплатный хостинг: Failure stories</h2>
<p><img title="Freehostia, бесплатный хостинг PHP+MySQL без рекламы" src="http://www.nayjest.ru/userfiles/Freehostia.jpg" alt="Freehostia" align="right" /> В далеком 2006-м заказывали у меня сайтик для базы отдыха. Бюджет был очень ограничен и решили мы с заказчиком разместить его на бесплатном <a title="Бесплатный буржуйский хостинг" rel="external nofollow" href="http://www.freehostia.com">freehostia.com</a>. Должен сказать, не было моей радости предела &#8212; шикарный функционал хостинга, никаких существенных ограничений, 250Мб места под сайт, 6Гб трафика в месяц, чего с головой достаточно для бюджетного сайта-визитки, даже почта отправлялась через сайт на ура, в то время как большинство поставщиков бесплатного хостинга блокировало функции для отправки почты в целях борьбы со спамом.</p>
<p>Это был прорыв для дремучего 2006-го, до freehostia я даже не смел мечтать о бесплатном хостинге с поддержкой PHP+MySQL без требования установить на свой сайт гигантский и уродский говно-баннер на пол-экрана. А тут мой личный, такой заманчивый кусочек дискового пространства оперативной памяти и процессорного времени обвешанного необходимым мне ПО сервера в прекрасном датацентре, находящемся в городе Фримоунт штата Калифорния. В то время это казалось настоящим альтруизмом на фоне настоящего &laquo;выжимания соков&raquo; из клиентских сайтов со стороны поставщиков бесплатного хостинга.</p>
<p><span style="background-color: #ffffff;">Но, как гласит пословица, бесплатный сыр бывает только&#8230; сами знаете где. После месяца-двух бесперебойной работы сайт начал очень часто выпадать в оффлайн. Практически каждый день. Приходилось обращаться в техническую поддержку. Причем в отличии от других поставщиков бесплатного хостинга, где акт обращения в супорт по результативности &#8212; все-равно что труп попинать, сотрудники freehostia отвечали в течении суток на мои письма на ломаном английском, которые мне было чертовски неудобно писать. Правда, ничего круче извинений и предложений перейти на платный тариф, где гарантированный uptime 99,9%, я из них так и не вытянул.</span></p>
<p>Со временем с периодическими вылетами в offline смирились, хостинг все-таки бесплатный. Время шло, я оброс кучей других проектов и забыл об этом сайте, пока не случился первый epic fail в моей профессиональной деятельности, связанный с веб-хостингом. У freehostia.com полетел сервер. Где-то на середине второго года существования сайта. Причем так далеко полетел, что ни о каких бекапах не могло быть и речи. Ребята из Калифорнии поставили мне девственно чистый аккаунт, извинились, сказали перезалить сайт.</p>
<p>Я конечно же храню резервные копии сайтов, в то время хранил на DVD-R дисках. А поскольку сайт о котором идет речь почти не обновлялся после разработки, то не было причин и особо расстраиваться, повторное внесение изменений в содержание сайта после восстановления из бекапа должно было быть минимальным.</p>
<p>Но мне очень сложно передать словами бурю тех эмоций, которые охватили меня, когда я таки нашел нужный мне диск. Тут хочется процитировать сразу два следствия закона Мерфи, а именно следствие №3:</p>
<blockquote><p>Изо всех возможных неприятностей произойдёт именно та, ущерб от которой больше.</p></blockquote>
<p>И следствие №5:</p>
<blockquote><p>Предоставленные сами себе события имеют тенденцию развиваться от плохого к худшему.</p></blockquote>
<p>Диски с бэкапами и разного рода архивной информацией я храню в нижнем ящике своего рабочего стола. И когда я туда заглянул, среди огромной кучи никем не тронутых, покрытых пылью болванок со всяким барахлом, лежал один практически уничтоженный диск. Один зверски изувеченный диск среди сотен идеально чистых и совершенно ненужных мне болванок со всякой старой фигней.</p>
<p><img title="мой французский бульдог, Бэлла" src="/userfiles/french_bulldog_bella.jpg" alt="" align="right" />Тогда Бэлле, моей собаке, был примерно год. Французские бульдоги вообще по природе своей очень игривы, а в юном возрасте они особо любят шкодничать.</p>
<p>До этого она уничтожила N-ное количество тапочек, немного обоев, пару веников и пыталась съесть мою зачетку (после этого преподы очень удивлялись своеобразной форме зачетки). <span style="background-color: #ffffff;">Думаю, вы уже догадались, какая участь постигла диск с бэкапами сайтов, разработанных мной за последний год. Остается только гадать, почему это умнейшее животное выбрало именно этот диск для своих неведомых мне целей. Кстати, кто хочет приобрести щенка французского бульдога (мальчик, полтора месяца) в Киеве, обращайтесь ;)</span></p>
<p><img title="мой французский бульдог, Бэлла" src="/userfiles/french_bulldog_bella2.jpg" alt="" align="right" />В тот момент я еще не потерял надежду, что смогу вернуть пропавший сайт. Началось мое катание по киевским фирмам, занимающимся восстановлением данных с испорченных носителей. Некоторые говорили мне сразу, что дела плохи, одна фирма пыталась что-то делать с мои диском где-то в течении двух недель, но в результате ничего достать оттуда не удалось.</p>
<p>В общем, сделал я клиенту новый сайт с новым дизайном (хотя старые макеты у меня в принципе сохранились) по очень демократичной цене и разместил его на платном хостинге.</p>
<p>Но так как сайты я вообще создаю по достаточно демократичным ценам, это был не последний клиент, сайты которого я размещал на бесплатном хостинге. И как говорится, мыши плакали, но продолжали есть кактус. Услугами freehostia я после этого перестал пользоваться, решил найти что-то новенькое. И нашел: Та-дам, <a title="Бесплатный PHP+MySQL хостинг 000webhost.com" href="http://www.000webhost.com">000webhost.com</a>. На этот раз датацентр в Далласе, Техас. Не буду вдаваться в детали, но  ребята из 000webhost тоже не поскупились на ресурсы(1500Гб на диске, 100Гб трафика в месяц). Я много гуглил, сравнивал многие варианты и пришел к решению, что это вроде-бы самый достойный конкурент freehostia. Туда и перенес свои сайты от freehostia. (Их там было немного, только клиенты с ограниченным бюджетом, остальные сайты я в то время размещал в хостинг-центре &laquo;РБК Украина&raquo;, он же hc.ua)</p>
<p><img title="000Webhost.com, еще один бесплатный хостинг PHP+MySQL без рекламы" src="http://www.nayjest.ru/userfiles/000webhost.jpg" alt="000Webhost" align="right" /> Естественно, на этот раз резервная копия сайта была вручена клиенту на диске, но когда гром грянул, этот диск ему так и не удалось найти. А грянул он буквально месяц назад. Сайт просто перестал работать без каких-либо предупреждений/уведомлений на электронную почту. В cpanel я зайти тоже не смог, написал хостеру о проблеме, на что получил ответ:</p>
<blockquote><p>Hello,<br />
Server #8 has been shut down, therefore your files are gone. Please set up a new account.</p></blockquote>
<p>И хотя в информации о бесплатном хостинг-пакете написано:</p>
<blockquote><p>Automated Weekly Backups: Limited</p></blockquote>
<p>То есть, хоть какое-то автоматическое создание резервных копий вроде бы должно быть, уточнения этой информации я на их официальном сайте не нашел.</p>
<p>На соответствующий запрос мне ответили:</p>
<blockquote><p>Hello,<br />
I am sorry, nothing can be retrieved.</p></blockquote>
<p>Честно говоря, такое впечатление, что поставщики бесплатного хостинга, дающие относительно много ресурсов, просто заманивают клиентов, и если в течении года-двух не получают profit в виде перехода на платный аккаунт, просто избавляются от &laquo;мусора&raquo;.</p>
<p>Так что мой вам совет: если пользуетесь бесплатным хостингом, уделяйте побольше времени на периодические бекапы. И да, в offline сайты и на 000webhost и на freehostia выпадают достаточно часто.</p>
<p><img src="/userfiles/HostSitesAbroad_LernEnglish300.gif" alt="" align="right" /> Что тут сказать, зато подтянул английский при общении со службой технической поддержки, а общаться приходилось немало :) Если же вы не задаетесь целью изучить английский, то одним из самых жирных плюсов в пользу отечественного хостинга является более удобное общение с тех. поддержкой, хотя это утверждение не всегда справедливо.</p>
<p>Например от звонков в <a title="freehost.com.ua, украинский хостинг" href="freehost.com.ua#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">freehost.com.ua</a>, где сейчас хостится мой блог, толку мало, так как  практически по любому вопросу, где от тех. поддержки требуются какие-либо действия, или на который они не в состоянии сходу ответить, просят написать запрос на e-mail, что лично мне очень и очень неудобно. Но возможно мне и не стоит жаловаться на freehost, все-таки хостинг у них относительно дешевый (с другой стороны, если уж он платный, то было бы неплохо, чтобы он был в чем-то лучше бесплатных зарубежных аналогов). А еще они захостили <a title="Веб-студия Perevaga.com: создание сайтов в Украине" href="http://www.perevaga.com/">сайт моей веб-студии</a> бесплатно.</p>
<h2>Сила блоггинга</h2>
<p>Так вот, после моей прошлой публикации, где я немного жаловался на проблеммы с WordPress, произошло <strong>два приятных для меня события</strong>:</p>
<p><strong>1) </strong>Саппорт freehost&#8217;а накинул мне 10 Мб ОЗУ к лимиту (теперь значит в мой тарифный план входит 42 Мб ОЗУ на поток), что не может не радовать. Опечаливающим фактором является то, что во-первых: этого объема памяти все-равно не хватает, чтобы например автоматически  обновить WordPress до свежей версии 2.9.1 через панель управления самого WordPress, а во вторых: там, где раньше были ошибки из-за нехватки памяти, сейчас вылезли другие ошибки, разобраться с которыми у меня пока не было времени (типа такого: Warning: curl_setopt(): CURLPROTO_FILE cannot be activated when in safe_mode or an open_basedir is set in wp-includes/http.php on line 1302).</p>
<p>Кстати, все марш обновляться до WordPress 2.9.1! Читаем о новой версии на <a title="Русский WordPress 2.9.1 " href="http://ru.wordpress.org/2010/01/05/wordpress-2-9-1-ru_ru/">русском</a> и <a title="WordPress 2.9.1" href="http://wordpress.org/development/2010/01/wordpress-2-9-1/">английском</a>.</p>
<p><strong>2) </strong>Ранее неизвестный мне хостер <a href="http://gigahost.ua/">GigaHost.ua</a> <strong>подарил мне хостинг-аккаунт на 5 сайтов</strong> сроком на 6 месяцев (промокод для 100% скидки).</p>
<p>Что ж, такой жест доброй воли не может не радовать, тем более хостинг мне сейчас реально нужен для новых проектов, так как количество отдельных доменов в моем аккаунте у старого хостера достигло лимита, при наличии около 80% неиспользованного дискового пространства. А тут места не очень много (500 Мб), но для пяти сайтов-визиток / корпоративных сайтов / небольших веб-сервисов хватит с головой, просто красота.</p>
<h2>Хостинг русский и украинский, &laquo;отечественный&raquo;</h2>
<p>Как я узнал из переписки, <a title="Украинский хостинг GigaHost.ua" href="http://www.GigaHost.ua">GigaHost.ua</a> — это дочерний проект <a title="MiroHost.net: еще один качественный хостинг" href="http://www.mirohost.net">Mirohost.net</a>. А с Mirohost мне уже приходилось иметь дело. Я у них когда-то хостил интернет-магазин на самописной CMS (PHP+MySQL) с посещаемостью около 1000 посетителей в сутки и около 5000 товаров в базе данных (этот хостинг был заранее приобретен клиентом). Но через год, когда нужно было продлять хостинг, предложил перенести к себе на freehost, т. к. у меня в аккаунте пустовало место, и хостинг этот подешевле, а это важный аргумент. Как выяснилось  — зря, потому что на пиках посещаемости, где-то через месяц пользования хостингом (хе-хе, у них как-раз мани-бек 30 дней), сайт время от времени начинал грузиться по 10 минут, а потом и вовсе вылетал, причем тормозить и вылетать начали все мои сайты в этом аккаунте.</p>
<p>Потом freehost и вовсе отключил этот сайт за превышение нагрузки на сервер (и делал такие отключения еще несколько раз в течении следующих месяцев, я слезно просил включить обратно, обещая немедленно заняться оптимизацией движка), хотя ничего убийственного для сервера в нем не было: до 15 SQL запросов на страницу, шаблоны страниц кэшируются, SQL — нет, время генерации страницы у меня на домашнем компьютере и на старом хостинге — порядка 0.2—0.5 сек, посещаемость — все такая же, около 1000 посетителей в сутки.</p>
<p>В результате я потратил кучу нервов, кучу времени на оптимизацию движка сайта (зато достиг ускорения где-то на 30—50%) и проблемы все еще есть, но пока так и живем, так как владельцы интернет-магазина, о котором речь сейчас меньше вкладывают в его продвижение и посещаемость сейчас соответственно ниже. Больше всего бесит, что тормозить начинают все сайты в аккаунте, и шквал звонков от клиентов мне гарантирован. Тьфу-тьфу-тьфу, последних месяца три все вроде-бы работает четко. А Mirohost был хорош, все-таки значительно быстрее и надежнее чем Freehost, но и дороже.</p>
<p>Так вот, вернусь собственно к GigaHost.ua:</p>
<p><img title="Украинский хостинг GigaHost.ua" src="http://www.nayjest.ru/userfiles/GigaHost.jpg" alt="GigaHost" align="right" /> Создание аккаунта прошло полностью автоматически и буквально через 3-5 минут я получил на e-mail письмо с данными для доступа к админке. Сразу же решил прикрутить домен, и какое же было мое удивление, когда сайт заработал моментально после изменения DNS-записей. Ну, это полностью заслуга naunet.ru, работает у них все четко и лучшая цена для партнеров: 99 руб. за домен .RU</p>
<p>Панель управления у GigaHost.ua стандартненькая, очень порадовало то, что доступ к phpMyAdmin или file manager осуществляется без ввода дополнительных паролей. И это правильно, достаточно одного нормального пароля для панели управления, ведь все-равно если есть доступ к панели управления, все остальное можно тем или иным путем получить / поменять пароли.</p>
<p>Меня сразу же заинтересовало, что находится в разделе &laquo;автоматическая установка софта&raquo;, и опять же очень порадовало наличие свежей версии WordPress и я был удивлен увидеть там LiveStreet.</p>
<p>Вообще, такое впечатление, что хостинг заточен под WordPress, хотя об этом и нигде не говорится. Установился он за считанные секунды и работает просто отлично. Даже не хочу перечислять список фич, с которыми у меня проблемы на старом хостинге (проблемы с обновлением, плагинами, кодировкой и многое другое), но тут все действительно замечательно, нулевый блог на WordPress летает, в панели управления тоже все путем. Я даже задумываюсь о том, чтобы перенести к этим ребятам свой блог, возможно так и сделаю.</p>
<p>Отдельно радует поддержка Python, все остальное тоже на месте &#8212; ежедневные бекапы, планировщик заданий, неограниченный трафик, PHP, MySQL, Perl, встроенная статистика, доступ к log файлам.</p>
<p>Видно что там толковые ребята: и софт обновляют и с поддержкой трендовых CMS у них нормально и подход к продвижению очень похвальный: прочли мою статью →  понравилась → подарили хостинг :) и сервера у них судя по первым впечатлениям быстрые. Грех не сказать, что это хороший хостинг, но конечно же под конкретные задачи. К примеру ели вам нужно захостить много сайтов-визиток / блогов / корпоративных сайтов, да в общем, каких угодно, кроме файло-хранилищ / больших интернет-магазинов или каких-то специфических веб-сервисов, занимающих иногда по несколько гигов и больше, то тариф <strong>третий</strong> (50 сайтов за 7.5$ в месяц) <a title="Хостинг от GigaHost" href="http://gigahost.ua/hosting.php">очень даже хорош</a>. В общем, рекомендую.</p>
<p>На этом пожалуй и закончу, а то пост получился и так слишком большим.<strong> Надеюсь, мой жизненный опыт будет вам полезен.</strong></p>
<p><strong>p.s.:</strong> Все марш менять год на 2010-й в копирайтах ваших сайтов, если там висит еще 2009! ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nayjest.ru/hosting/story/feed</wfw:commentRss>
		<slash:comments>423</slash:comments>
		</item>
		<item>
		<title>Время обновить WordPress! Тестируем версию 2.9 &#171;Carmen&#187;</title>
		<link>http://www.nayjest.ru/wordpress/carmen#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.nayjest.ru/wordpress/carmen#comments</comments>
		<pubDate>Sun, 20 Dec 2009 02:38:35 +0000</pubDate>
		<dc:creator>Nayjest</dc:creator>
				<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.nayjest.ru/?p=141</guid>
		<description><![CDATA[Этот пост я пишу уже из админки  WordPress 2.9 под кодовым именем &#171;Carmen&#187;. Последняя версия популярнейшего приложения для ведения блогов названа так в честь джазовой певицы Кармен Мерседес Макрэй, ниже вы увидите ее фото(в молодости). Итак, давайте посмотрим, что же нам преподнесли разработчики в финальном релизе WordPress 2.9. Here we go Начну в хронологическом порядке: [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border: none;" title="WordPress 2.9 Carmen" src="http://www.nayjest.ru/userfiles/wordpress.jpg" alt="WordPress logo" width="100" align="left" />Этот пост я пишу уже из админки  <strong>WordPress 2.9</strong> под кодовым именем <strong>&laquo;Carmen&raquo;</strong>.</p>
<p>Последняя версия популярнейшего приложения для ведения блогов названа так в честь джазовой певицы Кармен Мерседес Макрэй, ниже вы увидите ее фото(в молодости).</p>
<p>Итак, давайте посмотрим, что же нам преподнесли разработчики в финальном релизе WordPress 2.9.<span id="more-141"></span></p>
<h3 style="clear: both; padding-top: 5px;">Here we go</h3>
<p><img title="Кармен Мерседес Макрэй" src="http://www.nayjest.ru/userfiles/carmen_mcrae.jpg" alt="Фото Кармен Мерседес Макрэй" width="100" height="125" align="left" /> Начну в хронологическом порядке: только я успел заметить, что вышел финальный релиз WordPress 2.9, как подтянулась и <a title="Русский WordPress" href="http://ru.wordpress.org/" target="_blank">русская версия</a>, но видимо одним из первых скачавших ее я встретил <a title="Epic fail в русской версии wordpress 2.9 Кармен" href="http://ru.forums.wordpress.org/topic/%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-%D0%B2-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8-29" target="_blank">epic fail</a>, а именно — серьезные проблемы с добавлением новых рубрик из-за некорректной замены $filtered=trim(preg_replace(&#8216;/\s+/&#8217;, &#8216; &#8216;, $filtered)) в новой функции sanitize_text_field().</p>
<p>На счастье, эту ошибку исправили за 2 часа после первого баг-реппорта, так что я перезакачал WordPress и приступил к тестированию.</p>
<p>А вот украинским блоггерам все еще <a title="WordPress Україна" href="http://uk.wordpress.org/" target="_blank">предлагают скачать WordPress 2.8.6</a>, так что придется немного подождать, если вы пишете щирою українською.</p>
<h3>Открываем панель управления</h3>
<p>WordPress и в версии 2.8 жрал много памяти, а в этой начал кушать еще больше. Дело в том, что у моего хостера (<a title="Хостинг Freehost.com.ua" href="http://freehost.com.ua/" target="_blank">freehost.com.ua</a>, тарифный план <a title="Хостинг Freehost.com.ua, тарифный план &quot;Perfect&quot;" href="http://freehost.com.ua/unix/perfect/" target="_blank">Perfect</a>) стоит ограничение 32 Мб оперативной памяти на поток, в результате чего некоторые функции админки не работали (постоянно вылетало: Fatal error: Allowed memory size of N bytes exhausted (tried to allocate M bytes)), в WordPress 2.9 я вижу еще больше таких ошибок (в консоли у меня не работают  панели &laquo;Входящие ссылки&raquo;, &laquo;Плагины&raquo;, &laquo;Разработка WordPress&raquo;).</p>
<p>Из позитивных моментов могу заметить, что из десятка плагинов установленных на моем блоге, при обновлении не вылетел ни один, похоже что с обратной совместимостью все ок.</p>
<h3>Вкусненькое в WordPress 2.9</h3>
<p><img style="border: none;" title="Корзина в WordPress 2.9 Carmen" src="http://www.nayjest.ru/userfiles/trash.png" alt="Корзина" align="left" />Первое нововведение, которое лично мне очень нравится &#8212; это <strong>корзина</strong>. В английской версии сразу бросается в глаза ссылка  &laquo;Trash&raquo; вместо &laquo;Delete&raquo;, в русской же так и оставили &laquo;Удалить&raquo;, кстати, сама корзина в панели управления отобразится только после того, как вы что-то в нее переместите. И не пугайтесь, что при попытке удаления записи вас теперь не спрашивают &laquo;уверены ли вы?&raquo;. Да, мы уверены :)  <img title="Встроенный графический редактор WordPress 2.9" src="http://www.nayjest.ru/userfiles/wordpress2.9_image_editor.gif" alt="Графический редактор WordPress 2.9" align="right" /><strong></strong></p>
<p><strong>Встроенный редактор изображений</strong>. Это однозначно must have. Очень удобно бывает уменьшить или обрезать изображение прямо из админки WrodPress. Еще можно повернуть и отразить по горизонтали/вертикали нашу картинку. Приятно что есть даже кнопки отменить/повторить предыдущее действие.</p>
<p><strong>Ссылки на видео  теперь автоматически заменяются на встроенный видеопроигрыватель</strong>. Поддерживаются такие сервисы: YouTube, Google Video, Blip.tv, DailyMotion, Flickr, Viddler, Qik.com, Hulu, Revision3, PollDaddy.</p>
<p><strong>Виджеты можно встраивать в любое место.</strong> Делается это с помощью новой функции the_widget(), вызываемой из шаблона. Ух, чувствую, наделают теперь тем&#8230;</p>
<p><strong>Групповое обновление плагинов и проверка совместимости.</strong> Не то чтобы я без этого не мог жить, но не могу сказать ничего против. Впрочем, мне к сожалению приходится вручную обновлять некоторые плагины, т. к. в связи с недостатками моего хостинга, о которых я писал выше, после закачки некоторых плагинов через админку, WordPress&#8217;у не хватает памяти. А некоторые и вовсе не стают.</p>
<p>Наконец-то WordPress научился понимать <strong>rel=canonical </strong>в ссылках! А для него между прочим это было очень важно, ведь часть контента в WordPress дублируется и в общей ленте и в рубриках, в архиве, по датам, на страницах тегов, на страницах постов. В общем, еще одно позитивное изменение, которое позволит поисковикам правильнее понимать ваш блог.</p>
<p>Когда вы редактируете файлы тем оформления или плагинов, после нажатия на кнопку &laquo;Сохранить&raquo;, вы будете возвращены на ту же строку, которую редактировали. Слава богу! :)</p>
<p><strong>Автоматическая оптимизация базы данных</strong> должна улучшить производительность. Для этого напишите в wp-config.php <code>define('WP_ALLOW_REPAIR', true);</code></p>
<p>В темах оформления теперь можно использовать <strong>картинки-превью к записям</strong>.  Добавлена таблица для хранения <strong>мета-данных о комментариях</strong> в формате пар ключ-значение.  В общем, если вы из тех ребят, которые сами что-то прогают для своего бложека, вам это возможно понравится, осталось только придумать, что же еще можно прикрутить к комментариям.</p>
<p><strong>Пользовательские типы записей. </strong>Если вам мало стандартных<strong> </strong>запись/страница<strong>..</strong>. честно говоря не представляю, кому оно нужно, но это делает архитектуру WordPress более гибкой. Если вам это действительно нужно, возможно, вы используете WordPress не по назначению :)</p>
<p><strong>Можно использовать свои директории для тем оформления</strong>. К примеру, теперь плагин может зарегистрировать тему оформления, поставляемую вместе с ним. Или у вас  может быть несколько директорий с темами.</p>
<p><strong>Расширен XML-RPC API.</strong></p>
<p><strong></strong><strong>Сайдбары теперь могут иметь описания.</strong></p>
<p>Визуальный (WYSIWYG) редактор <strong>TinyMCE</strong> и PHP библиотека для работы с RSS каналами <strong>SimplePie</strong> обновлены.</p>
<p>И еще много мелких улучшений и исправлений. Их общее число больше 500!</p>
<p>Кстати, если вы еще не видели, официальное видео (на английском):<br />
<center><br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="224" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="flashvars" value="guid=OxzyETzZ&amp;width=400&amp;height=224" /><param name="src" value="http://v.wordpress.com/wp-content/plugins/video/flvplayer.swf?ver=1.11" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="400" height="224" src="http://v.wordpress.com/wp-content/plugins/video/flvplayer.swf?ver=1.11" allowfullscreen="true" flashvars="guid=OxzyETzZ&amp;width=400&amp;height=224"></embed></object><br />
</center></p>
<h3>Замеченные баги</h3>
<p>Вообще-то я не уверен, что это проблема WordPress, возможно это из-за некорректной работы хостинга: Иногда не удается обновить редактируемую запись (после нажатия на кнопку &laquo;обновить&raquo; я попадаю на страницу с ошибкой).<br />
Один раз при редактировании этого поста слетели все абзацы. Это было очень непрятно.<br />
В WYSIWYG редакторе иногда не снимается выделение жирным с текста, скопированного из другой страницы. Причем в исходном коде текст выделен именно тегом strong.</p>
<h3>Планы на будущее</h3>
<p>WordPress 3.0 должен выйти где-то к весне. В будущем следует ожидать объединение с многопользовательской версией (<a title="WordPress MU (Многопользовательская версия)" href="http://codex.wordpress.org/ru:WordPressMU" target="_blank">WordPress MU</a>) и замену стандартной темы оформления.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nayjest.ru/wordpress/carmen/feed</wfw:commentRss>
		<slash:comments>232</slash:comments>
		</item>
		<item>
		<title>Пишем свой рейтинг популярных записей русскоязычных блогов на базе Яндекс.API, часть 1</title>
		<link>http://www.nayjest.ru/php/blogpostrating#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.nayjest.ru/php/blogpostrating#comments</comments>
		<pubDate>Thu, 17 Dec 2009 19:03:58 +0000</pubDate>
		<dc:creator>Nayjest</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[урок]]></category>
		<category><![CDATA[Яндекс]]></category>

		<guid isPermaLink="false">http://www.nayjest.ru/?p=129</guid>
		<description><![CDATA[Жил-был в составе поиска по блогам Яндекса рейтинг популярных записей, который для многих был такой себе ежедневной газеткой. Но решили в Яндексе его закрыть да предоставили API, чтобы каждый желающий мог сделать свой рейтинг популярных записей по блогам, чем мы собственно сегодня и займемся. Писать будем на PHP. Итак, для начала ознакомимся с API статистики записей [...]]]></description>
			<content:encoded><![CDATA[<p>Жил-был в составе поиска по блогам Яндекса рейтинг популярных записей, который для многих был такой себе ежедневной газеткой. Но <a title="Рейтинг популярных записей закрывается, или да здравствуют новые рейтинги" href="http://clubs.ya.ru/company/replies.xml?item_no=20164" target="_blank">решили в Яндексе его закрыть</a> да предоставили <a title="API статистики записей Поиска по блогам" href="http://blogs.yandex.ru/faq/entriesapi" target="_blank">API</a>, чтобы каждый желающий мог сделать свой рейтинг популярных записей по блогам, чем мы собственно сегодня и займемся. Писать будем на PHP.</p>
<p><span id="more-129"></span>Итак, для начала ознакомимся с API статистики записей Поиска по блогам.</p>
<p>Тут все просто, мы имеем RSS ленту статистики записей по блогам за последние 24 часа, разбитую на страницы по 50 записей.</p>
<p>На первой странице выводятся самые свежие записи. Номер страницы, которую нам нужно получить задается параметром p=&lt;номер страницы&gt; в URL адресе, по которому мы обращаемся к API, например: <a href="http://blogs.yandex.ru/entriesapi">http://blogs.yandex.ru/entriesapi?p=1</a>.</p>
<p>Перейдите по  ссылке выше и посмотрите на исходный код этой страницы (<em>Вид-&gt;просмотреть источник</em> или <em>Ctrl+U</em>, если у вас FireFox/Opera/Chrome).  Мы видим обычный XML документ, который будем читать и анализировать с помощью PHP.  Нас интересуют информация о записях, находящаяся внутри тегов &lt;item&gt;. Названия вложенных элементов говорят сами за себя, это:</p>
<ul>
<li><strong>author –</strong> ссылка на блог/страницу автора;</li>
<li><strong>description </strong><strong>– </strong>короткое описание (обычно пусто);</li>
<li><strong>link</strong> <strong>– </strong>ссылка на пост;</li>
<li><strong>pubDate</strong> <strong>– </strong>дата и время публикации;</li>
<li><strong>title</strong> <span style="font-weight: bold;">– заголовок поста;</span></li>
<li><span style="font-weight: bold;"><strong>yablogs:commenters</strong><span style="font-weight: normal;"> – </span></span><span style="font-weight: bold;">количество разных русскоязычных комментаторов у записи за все время ее существования;</span></li>
<li><span style="font-weight: bold;"><strong>yablogs:commenters24</strong><span style="font-weight: normal;"> – количество разных русскоязычных комментаторов у записи;</span></span></li>
<li><span style="font-weight: bold;"><span style="background-color: #ffffff;"><strong>yablogs:comments</strong><span style="font-weight: normal;"> – общее количество комментариев к записи за все время ее существования;</span></span></span></li>
<li><span style="font-weight: bold;"><span style="background-color: #ffffff;"><strong>yablogs:comments24</strong><span style="font-weight: normal;"> – количество комментариев к записи за последние 24 часа;</span></span></span></li>
<li><span style="font-weight: bold;"><span style="background-color: #ffffff;"><strong>yablogs:links</strong><span style="font-weight: normal;"> – общее количество ссылок на запись за все время ее существования;</span></span></span></li>
<li><span style="font-weight: bold;"><span style="background-color: #ffffff;"><strong>yablogs:links24</strong><span style="font-weight: normal;"> – количество ссылок на запись за последние 24 часа;</span></span></span></li>
<li><span style="font-weight: bold;"><span style="background-color: #ffffff;"><strong>yablogs:links24weight</strong><span style="font-weight: normal;"> – взвешенное количество ссылок на запись за последние 24 часа(с отфильтрованными накрутками и спамными ссылками);</span></span></span></li>
<li><span style="font-weight: bold;"><span style="background-color: #ffffff;"><strong>yablogs:linksweight</strong><span style="font-weight: normal;"> – общее взвешенное количество ссылок на запись (с отфильтрованными накрутками и спамными ссылками);</span></span></span></li>
<li><span style="font-weight: bold;"><span style="background-color: #ffffff;"><strong>yablogs:visits24</strong><span style="font-weight: normal;"> – примерное количество посетителей записи за последние 24 часа;</span></span></span></li>
<li><span style="font-weight: bold;"><span style="background-color: #ffffff;"><strong>yablogs:ppb_username</strong><span style="font-weight: normal;"> – имя (nickname) автора поста.</span></span></span></li>
</ul>
<p>Ну что ж, читать такие записи мы научились, теперь давайте научим читать их наш скрипт.</p>
<p>Для начала нужно определиться с инструментом для работы с  XML. В PHP manual есть просто таки огромный раздел <a title="PHP Manual: XML Manipulation" href="http://www.php.net/manual/en/refs.xml.php" target="_blank">XML manipulation</a>, где вы можете найти массу различных средств для работы с XML документами. Одним из самых простых, удобных и в то же время мощных решений является расширение <a title="PHP manual: SimpleXML extension" href="http://www.php.net/manual/en/book.simplexml.php" target="_blank">SimpleXML</a>, которое поставляется с PHP начиная с 5-й версии и включено по умолчанию. С ним мы и будем работать. Поверьте мне, это действительно очень хороший инструмент, позволяющий просто и удобно работать с XML документами.  Продемонстрирую это:</p>
<blockquote><p><code><span style="font-family: Consolas, 'Courier New', Courier, monospace; color: black; font-size: x-small;"><br />
<span style="color: #cc6633;">$xml</span> = simplexml_load_file(<span style="color: #008000;">'http://blogs.yandex.ru/entriesapi'</span>);<br />
<span style="color: #0000ff;">echo</span> <span style="color: #008000;">'&lt;b&gt;Это заголовок канала:&lt;/b&gt; '</span>,<br />
<span style="color: #cc6633;">$xml</span>-&gt;channel-&gt;title, <span style="color: #008000;">'&lt;br&gt;'</span>,<br />
<span style="color: #008000;">'&lt;b&gt;А это заголовок последнего поста:&lt;/b&gt; '</span>,<br />
<span style="color: #cc6633;">$xml</span>-&gt;channel-&gt;item[<span style="color: #008000;">0</span>]-&gt;title, <span style="color: #008000;">'&lt;br&gt;'</span>,<br />
<span style="color: #008000;">'&lt;b&gt;Время публикации последнего поста: &lt;/b&gt; '</span>,<br />
<span style="color: #cc6633;">$xml</span>-&gt;channel-&gt;item[<span style="color: #008000;">0</span>]-&gt;pubDate;<br />
</span></code></p></blockquote>
<p>Думаю, тут все понятно: в первой строке мы загружаем первую страницу ленты популярных записей в переменную $xml (функция simplexml_load_file возвращает экземпляр класса <a title="PHP Manual: The SimpleXMLElement class" href="http://www.php.net/manual/en/class.simplexmlelement.php" target="_blank">SimpleXMLElement</a>), которую далее можем интерпретировать как объект, соответствующий нашему XML документу, что мы собственно и делаем.</p>
<p>Если мы обращаемся к произвольному полю такого объекта, выполняется поиск дочернего элемента XML дерева с именем, соответствующим имени запрошенного поля и если такой элемент найден, возвращается объект, являющийся также экземпляром класса SimpleXMLElement, или массив таких объектов.</p>
<p>Благодаря такой логике работы мы можем выполнять цепочки запросов вида: <span style="color: #cc6633;">$xml</span>-&gt;someElement-&gt;children-&gt;childrenOfChildren.</p>
<p>Обратите внимание, что элементов item в нашем XML документе много, поэтому <span style="color: #cc6633;">$xml</span>-&gt;channel-&gt;item возвращает не один объект, а массив объектов, предоставляющих доступ к этим элементам. В примере мы обратились к самому первому в документе элементу item по индексу [0], и вывели его заголовок и дату публикации на экран (в браузер).</p>
<p>Альтернативный способ получить нужную ветвь XML документа в SimpleXML — это использование <a title="Wikipedia: XPath (XML Path Language)" href="http://ru.wikipedia.org/wiki/XPath" target="_blank">XPath</a>, языка запросов к элементам XML дерева. В классе SimpleXMLElement для этого имеется метод xpath(<span><span>string</span> <tt>$path</tt></span>), возвращающий массив экземпляров класса SimpleXMLElement или FALSE в случае ошибки.</p>
<p>Пример использования XPath:</p>
<p><span id="ctl00_InnerContent_ctl00_Label1"><code><span style="font-family: Consolas, 'Courier New', Courier, monospace; color: black; font-size: x-small;">$items=<span style="color: #cc6633;">$xml</span>-&gt;xpath(<span style="color: #008000;">'channel/item'</span>); </span></code></span></p>
<p>Чтобы получить аналогичный набор элементов без XPath, нужно выполнить:</p>
<p><span id="ctl00_InnerContent_ctl00_Label1"><code><span style="font-family: Consolas, 'Courier New', Courier, monospace; color: black; font-size: x-small;">$items=<span style="color: #cc6633;">$xml</span>-&gt;channel-&gt;item;</span></code></span></p>
<p>Использование XPath или цепочек вызовов полей  — это дело вкуса, в нашем случае мы будем использовать XPath, чтобы обратиться к элементам типа yablogs:links, где есть символ &laquo;:&raquo;, так как он мешает интерпретировать эти элементы как поля объекта в PHP.</p>
<p>Ну давайте уже что-нибудь сделаем. Например функцию, получающую информацию о всех записях за 24 часа. Собственно, вот:</p>
<blockquote>
<p><code></p>
<ol>
<li><a href="http://www.php.net/manual/en/function.define.php">define</a> (<span style="color: #008000;">'MAX_PAGES'</span>,<span style="color: #008000;">200</span>);</li>
<li><span style="color: #0000ff;">function</span> load_all() {</li>
<li> <span style="color: #cc6633;">$all_items</span>=<span style="color: #0000ff;">array</span>();</li>
<li> <span style="color: #0000ff;">for</span> (<span style="color: #cc6633;">$i</span>=<span style="color: #008000;">1</span>; <span style="color: #0000ff;">true</span>;<span style="color: #cc6633;">$i</span>++) {</li>
<li> <span style="color: #cc6633;">$xml</span> = simplexml_load_file(<span style="color: #008000;">'http://blogs.yandex.ru/entriesapi?p='</span> . <span style="color: #cc6633;">$i</span>);</li>
<li> <span style="color: #cc6633;">$items</span>=<span style="color: #cc6633;">$xml</span>-&gt;xpath(<span style="color: #008000;">'channel/item'</span>);</li>
<li> <span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">empty</span>(<span style="color: #cc6633;">$items</span>)) {</li>
<li> <span style="color: #0000ff;">break</span>;</li>
<li> }</li>
<li> <span style="color: #cc6633;">$all_items</span>=<a href="http://www.php.net/manual/en/function.array-merge.php">array_merge</a>(<span style="color: #cc6633;">$all_items</span>,<span style="color: #cc6633;">$items</span>);</li>
<li> <span style="color: #0000ff;">if</span> (<span style="color: #cc6633;">$i</span>&gt;=MAX_PAGES) <span style="color: #0000ff;">break</span>;</li>
<li> }</li>
<li> <span style="color: #0000ff;">return</span> <span style="color: #cc6633;">$all_items</span>;</li>
<li>}</li>
</ol>
<p></code></p></blockquote>
<p>Такая функция конечно же будет работать очень медленно и скорее всего упрется в ограничение на время выполнения php скриптов: по умолчанию — 30 секунд, поэтому полученные данные нужно обязательно кэшировать, а само их получение выполнять не при открытии страницы, а через планировщик задач crontab. Мы будем сохранять полученную информацию в базу данных, использовать будем MySQL, но об этом в следующей части, а пока вернемся к  работе с XML.</p>
<p>Давайте уже в этом уроке соберем наш рейтинг популярных записей русскоязычных блогов с минимальным функционалом и отложим на потом кэширование, расширение функционала, придание ООП&#8217;шности и MVC&#8217;шности нашему коду.</p>
<p>Чтобы долго и нудно не ждать результата выполнения функции load_all(), давайте зададим ей ограничение: будем обрабатывать только первые 4 страницы RSS ленты, выдаваемой Яндексом. Специально для этого я ввел константу MAX_PAGES, заменяем значение 200 в первой строчке на 4.</p>
<p>Наш рейтинг должен уметь сортировать записи по количеству комментариев, количеству ссылок и количеству посещений. Мы уже имеем функцию, с помощью которой можем получить список записей. Значит задача состоит в сортировке этого списка.</p>
<p>Если бы мы заносили информацию о всех  записях в базу данных скриптом, вызываемым через планировщик задач, а при выдаче информации пользователю, брали бы ее из БД, то мы бы воспользовались возможностями SQL для сортировки, но это мы будем делать во второй части урока, а сейчас сделаем по-быстрому сортировку средствами PHP.</p>
<p>Поможет нам в этом стандартная функция PHP usort, позволяющая сортировать массивы с использованием своей функции для сравнения элементов массива.</p>
<p>Элементами массива у нас являются экземпляры класса SimpleXMLElement, инициализированные элементами XML дерева &lt;item&gt;.</p>
<p>Рассмотрим, как мы можем получить к примеру количество комментариев записи:</p>
<blockquote>
<p><code></p>
<ol>
<li>$xml = simplexml_load_file(<span style="color: #008000;">'http://blogs.yandex.ru/entriesapi'</span>);</li>
<li><span style="color: #cc6633;">$item</span>=$xml-&gt;channel-&gt;item[<span style="color: #008000;">12</span>];<span style="color: #696969;">//Получаем какой-нибуть XML элемент item, например 13-й.</span></li>
<li><span style="color: #cc6633;">$comments_arr</span>=<span style="color: #cc6633;">$item</span>-&gt;xpath(<span style="color: #008000;">'yablogs:comments'</span>);<span style="color: #696969;">//получаем массив объектов</span></li>
<li><span style="color: #cc6633;">$comments_obj</span>=<span style="color: #cc6633;">$comments_arr</span>[<span style="color: #008000;"> 0</span>];<span style="color: #696969;">//объект у нас должен быть один, это мы знаем</span></li>
<li><span style="color: #cc6633;">$comments</span>=(int)<span style="color: #cc6633;">$comments_obj</span>;<span style="color: #696969;">//приводим его тип к целочисленному (int), чтобы можно было выполнить сравнение </span></li>
</ol>
<p></code></p></blockquote>
<p>А теперь можно написать и функцию сравнения, причем универсальную.</p>
<blockquote>
<p><code></p>
<ol>
<li><span style="color: #cc6633;">$cmp</span>=<span style="color: #008000;">'yablogs:comments'</span>;<span style="color: #696969;">//по этому параметру сравниваем, </span></li>
<li><span style="color: #696969;">//к функции сравнения при использовании в usort есть требование: </span></li>
<li><span style="color: #696969;">//она должна принимать два только параметра, </span></li>
<li><span style="color: #696969;">//соответствующие сравниваемым элементам массива, </span></li>
<li><span style="color: #696969;">//поэтому делаем $cmp просто глобальной переменной</span></li>
<li><span style="color: #0000ff;">function</span> cmp(<span style="color: #cc6633;">$a</span>, <span style="color: #cc6633;">$b</span>)</li>
<li>{</li>
<li> <span style="color: #0000ff;"> global</span> <span style="color: #cc6633;">$cmp</span>;</li>
<li> <span style="color: #cc6633;"> $a</span>=<span style="color: #cc6633;">$a</span>-&gt;xpath(<span style="color: #cc6633;">$cmp</span>);</li>
<li> <span style="color: #cc6633;"> $b</span>=<span style="color: #cc6633;">$b</span>-&gt;xpath(<span style="color: #cc6633;">$cmp</span>);</li>
<li> <span style="color: #cc6633;"> $a</span>=(int)<span style="color: #cc6633;">$a</span>[<span style="color: #008000;">0</span>];</li>
<li> <span style="color: #cc6633;"> $b</span>=(int)<span style="color: #cc6633;">$b</span>[<span style="color: #008000;">0</span>];</li>
<li> <span style="color: #0000ff;"> if</span> (<span style="color: #cc6633;">$a</span> == <span style="color: #cc6633;">$b</span>) {</li>
<li> <span style="color: #0000ff;"> return</span> <span style="color: #008000;"> 0</span>;</li>
<li> }</li>
<li> <span style="color: #0000ff;">return</span> (<span style="color: #cc6633;">$a</span> &gt; <span style="color: #cc6633;">$b</span>) ? -<span style="color: #008000;">1</span> : <span style="color: #008000;">1</span>;</li>
<li>}</li>
</ol>
<p></code></p></blockquote>
<p>У нас будет функция sort_by, в которую будем передавать ссылку на массив и строку, соответствующую XML элементу, по которому будем сортировать (критерий сравнения).  sort_by в свою очередь будеть вызывать стандартную функцию usort, передавая ей ссылку на массив и присваивать глобальной переменной $cmp критерий сравнения.</p>
<blockquote>
<p><code></p>
<ol>
<li><span style="color: #0000ff;">function</span> sort_by(<span style="color: #cc6633;">$sort_by</span>,<span style="color: #cc6633;">$i</span>)</li>
<li>{</li>
<li> <span style="color: #0000ff;">global</span> <span style="color: #cc6633;">$cmp</span>;</li>
<li> <span style="color: #cc6633;">$cmp</span>=<span style="color: #cc6633;">$sort_by</span>;</li>
<li> <a href="http://www.php.net/manual/en/function.usort.php">usort</a>(<span style="color: #cc6633;">$i</span>,<span style="color: #008000;">'cmp'</span>);</li>
<li>}</li>
</ol>
<p></code></p></blockquote>
<p>Почти готово, теперь мы можем к примеру вывести отсортированные по количеству комментариев записи вот так:</p>
<blockquote>
<p><code></p>
<ol>
<li><span style="color: #cc6633;">$items</span>=load_all();</li>
<li>sort_by(<span style="color: #008000;">'yablogs:comments'</span>,&amp;<span style="color: #cc6633;">$items</span>);</li>
<li><span style="color: #0000ff;">foreach</span> (<span style="color: #cc6633;">$items</span> <span style="color: #0000ff;">as</span> <span style="color: #cc6633;">$item</span>) {</li>
<li> <span style="color: #cc6633;">$comments</span>=<span style="color: #cc6633;">$item</span>-&gt;xpath(<span style="color: #008000;">'yablogs:comments'</span>);</li>
<li> <span style="color: #cc6633;">$links</span>=<span style="color: #cc6633;">$item</span>-&gt;xpath(<span style="color: #008000;">'yablogs:links'</span>);</li>
<li> <span style="color: #cc6633;">$visits</span>=<span style="color: #cc6633;">$item</span>-&gt;xpath(<span style="color: #008000;">'yablogs:visits24'</span>);</li>
<li> <span style="color: #0000ff;">echo</span> <span style="color: #008000;">"&lt;a href='$item-&gt;link'&gt;$item-&gt;title&lt;/a&gt;&lt;br&gt;"</span>,</li>
<li> <span style="color: #008000;">"Комментариев: $comments[0]&lt;br&gt;"</span>,</li>
<li> <span style="color: #008000;">"Ссылок: $links[0]&lt;br&gt;"</span>,</li>
<li> <span style="color: #008000;">"Просмотров: $visits[0]&lt;hr&gt;"</span>;</li>
<li>}</li>
</ol>
<p></code></p></blockquote>
<p>Как именно сортировать наш список, будем передавать параметром URI sort_by, который будет доступен в php как $_GET['sort_by']. Создадим три ссылки для разных типов сортировки, для этого перед тегом &lt;?php, обозначающим начало php кода, пишем:</p>
<blockquote>
<p><code></p>
<ol>
<li><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div</span> <span style="color: #ff0000;">style</span><span style="color: #0000ff;">="text-align:center;"&gt;</span></li>
<li> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">a</span> <span style="color: #ff0000;">href</span><span style="color: #0000ff;">="index.php/?sort_by=comments"&gt;</span>Самые комментируемые<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">a</span><span style="color: #0000ff;">&gt;</span></li>
<li> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">a</span> <span style="color: #ff0000;">href</span><span style="color: #0000ff;">="index.php/?sort_by=visits24"&gt;</span>Самые посещаемые<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">a</span><span style="color: #0000ff;">&gt;</span></li>
<li> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">a</span> <span style="color: #ff0000;">href</span><span style="color: #0000ff;">="index.php/?sort_by=links"&gt;</span>Самые цитируемые<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">a</span><span style="color: #0000ff;">&gt;</span></li>
<li><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span></li>
</ol>
<p></code></p></blockquote>
<p>Нам осталось только получить в PHP критерий сортировки и отсортировать все соответствующим образом. Для этого строку с  sort_by(<span style="color: #008000;">&#8216;yablogs:comments&#8217;</span>,&amp;<span style="color: #cc6633;">$items</span>)  заменяем на это:</p>
<blockquote>
<p><code></p>
<ol>
<li><span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">isset</span>(<span style="color: #cc6633;">$_GET</span>[<span style="color: #008000;">'sort_by'</span>])){</li>
<li> <span style="color: #cc6633;">$crit</span>=<span style="color: #cc6633;">$_GET</span>[<span style="color: #008000;">'sort_by'</span>];</li>
<li>}<span style="color: #0000ff;">else</span>{</li>
<li> <span style="color: #cc6633;">$crit</span>=<span style="color: #008000;">'comments'</span>;</li>
<li>}</li>
<li>sort_by(<span style="color: #008000;">'yablogs:'</span> . <span style="color: #cc6633;">$crit</span> ,&amp;<span style="color: #cc6633;">$items</span>);</li>
</ol>
<p></code></p></blockquote>
<p>И напоследок добавим немного оформления с помощью CSS, чтобы наш рейтинг смотрелся получше:</p>
<blockquote>
<p><code></p>
<ol>
<li><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">style</span><span style="color: #0000ff;">&gt;</span></li>
<li> div{padding:20px; background-color:#EEE;}</li>
<li> hr{border:none; border-bottom:1px dashed yellow;}</li>
<li><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">style</span><span style="color: #0000ff;">&gt;</span></li>
</ol>
<p></code></p></blockquote>
<p>Исходник того, что мы сделали вы можете скачать здесь: <a href="http://www.nayjest.ru/userfiles/yabdex.blograting.by.nayjest.zip#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">http://www.nayjest.ru/userfiles/yabdex.blograting.by.nayjest.zip</a></p>
<p>В следующих уроках я расскажу, как сделать из этого полноценный веб-сервис, где все будет ООП&#8217;шненько, будет работа с БД, архитектура MVC, валидный HTML, кэширование, может даже AJAX и вообще все, что захотите (предлагайте в комментариях!).</p>
<p>Надеюсь, было интересно и полезно. Чтобы не пропустить следующие уроки, <a title="RSS канал сайта Nayjest.ru" href="http://feeds.feedburner.com/nayjest">подписывайтесь на мой RSS</a>, follow me on <a title="Мой twitter" href="http://twitter.com/nayjest">Twitter</a>. Спасибо за внимание, жду ваших комментариев!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nayjest.ru/php/blogpostrating/feed</wfw:commentRss>
		<slash:comments>119</slash:comments>
		</item>
		<item>
		<title>Пора скачать jQuery 1.4 alpha1! Детальный обзор</title>
		<link>http://www.nayjest.ru/jquery/1-4-alpha1-release#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.nayjest.ru/jquery/1-4-alpha1-release#comments</comments>
		<pubDate>Sat, 05 Dec 2009 14:38:08 +0000</pubDate>
		<dc:creator>Nayjest</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.nayjest.ru/?p=91</guid>
		<description><![CDATA[Вчера в официальном блоге jQuery появилась новость о выходе новой версии этой удобнейшей библиотеки (не знаю, как бы я жил без jQuery). Это первая альфа jQuery версии 1.4. Код стабильный (проходит тесты во всех браузерах из списка поддерживаемых), разработчики ждут тестирования своего детища на реальных приложениях. Что нового? Методу live сделали капитальный ремонт Немного освежу [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float:left;" title="jQuery" src="http://www.nayjest.ru/userfiles/jQuery.jpg" alt="jQuery" /> Вчера в официальном блоге <strong>jQuery</strong> появилась <a href="http://blog.jquery.com/2009/12/04/jquery-14-alpha-1-released/" target="_blank">новость</a> о выходе новой версии этой удобнейшей библиотеки (не знаю, как бы я жил без jQuery).</p>
<p>Это первая альфа jQuery версии 1.4.</p>
<p>Код стабильный (проходит тесты во всех браузерах из списка поддерживаемых), разработчики ждут тестирования своего детища на реальных приложениях.<span id="more-91"></span></p>
<h2>Что нового?</h2>
<h4>Методу <strong>live</strong> сделали капитальный ремонт</h4>
<p>Немного освежу вашу память: метод <strong>live</strong> впервые появился в jQuery 1.3, выполняет ту же функцию, что и bind: <strong>позволяет назначить обработчик событий</strong>, но делает это несколько по-другому: мы можем назначить обработчик событий для элементов определенного типа, даже если их еще нет на странице и они генерируются <strong>динамически</strong>. А когда у нас в документе появятся такие элементы, им автоматически, без нашего вмешательства будет назначен обработчик событий. Пример:</p>
<blockquote><p><code><span style="font-family: Consolas, 'Courier New', Courier, monospace; color: black; font-size: x-small;"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">script</span>&gt;<br />
$(<span style="color: #a31515;">'input.live'</span>).live(<span style="color: #a31515;">'click'</span>,<br />
<span style="color: #0000ff;">function</span>()<br />
{<br />
alert(<span style="color: #a31515;">"Подпишись на этот блог по RSS!"</span>);<br />
});<br />
<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">script</span><span style="color: #0000ff;">&gt;</span><br />
<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">input</span> <span style="color: #ff0000;">type</span><span style="color: #0000ff;">="button"</span> <span style="color: #ff0000;">value</span><span style="color: #0000ff;">="Добавить кнопку"</span><br />
<span style="color: #ff0000;">onclick</span>="$(<span style="color: #0000ff;">'body'</span>).<span style="color: #ff0000;">append</span>(&amp;<span style="color: #ff0000;">lt</span>;<span style="color: #ff0000;">input type</span><span style="color: #0000ff;">='button'</span> <span style="color: #ff0000;">class</span><span style="color: #0000ff;">='live'/&gt;</span>)"<br />
<span style="color: #0000ff;">/&gt;</span><br />
</span></code></p></blockquote>
<p>В <strong>jQuery 1.4</strong> <strong>метод live</strong> поддерживает во всех браузерах такие события: <strong>submit</strong>, <strong>change</strong>, <strong>mouseenter</strong>, <strong>mouseleave</strong>, <strong>focus</strong>, <strong>blur</strong>. Также теперь поддерживается контекст в обработчиках событий и передача дополнительных данных необязательным параметром data.</p>
<h4>Подкорректировано поведение метода add</h4>
<p>Этот метод добавляет элементы к набору уже выбранных. Пример: $(&#8216;div&#8217;).add(&#8216;p&#8217;).css(&#8216;color&#8217;,'red&#8217;) выполнит то же, что и $(&#8216;div, p&#8217;).css(&#8216;color&#8217;,'red&#8217;).</p>
<p>Начиная с <strong>jQuery 1.4 </strong>метод <strong>add</strong> <strong>возвращает элементы строго в последовательности их расположения в объектной модели документа</strong> (DOM).</p>
<h2>Размер библиотеки и производительность</h2>
<p><strong>Размер jQuery в несжатом виде увеличился на 20%</strong> (jQuery 1.3.2 весит 120 Kb).<br />
Тестов по производительности еще нет, но разработчики заверяют, что новая версия работает быстрее.<br />
<strong> </strong></p>
<p><strong>Очень сильно улучшена производительность</strong> некоторых функций для работы с <strong>Document object model</strong>, в частности <strong>append</strong> (вставка в конец дочерних элементов), <strong>prepend </strong>(вставка перед дочерними элементами).</p>
<p>Также теперь работают быстрее функции <strong>find</strong>, <strong>empty</strong>, <strong>remove</strong>, <strong>addClass</strong>, <strong>removeClass</strong>, <strong>hasClass</strong>, <strong>attr</strong> и <strong>css.</strong></p>
<p>Ну, это слова разработчиков, что касается практики, на Хабре проскакивала вот такая картинка:<br />
<img title="Сравнение производительности jQuery 1.4 и более старых версий" src="http://img214.imageshack.us/img214/7460/jquery.png" alt="Сравнение производительности jQuery 1.4 и более старых версий" /></p>
<p>А еще вот результаты тестирования в FireFox 3.6b4: jQuery 1.3.2 va jQuery 1.4a1:<br />
<a target='_blank' title='ImageShack - Image And Video Hosting' href='http://img138.imageshack.us/img138/4484/slickspeedselectorstest.png'><img src='http://img689.imageshack.us/img689/4484/slickspeedselectorstest.png' border='0'/></a></p>
<h2>Твори добро!</h2>
<p>Мы можем помочь разработчикам jQuery, попробовав подключить ее в свои проекты <em>(не на production server конечно же, это ведь первая альфа-версия)</em>. Если вы обнаружите какие-то баги/ошибки &#8212; <a title="Регистрация в баг-треккере jQuery" href="http://dev.jquery.com/register" target="_blank">зарегистрируйтесь</a>/<a title="Вход на баг-треккер jQuery" href="http://dev.jquery.com/login" target="_blank">залогиньтесь</a> на <a title="official jQuery bug-tracker " href="http://dev.jquery.com" target="_blank">баг-треккекре JQuery</a> и сообщите о проблемме разработчикам, сделаете хорошее дело.</p>
<h2>Скачай новую версию jQuery!</h2>
<p><strong>Скачать jQuery 1.4 alpha 1</strong>: <a href="http://code.jquery.com/jquery-1.4a1.js">http://code.jquery.com/jquery-1.4a1.js</a> (размер: 87.9 Kb)</p>
<p><strong>Скачать jQuery 1.4 alpha 1 minified</strong>: <a href="http://code.jquery.com/jquery-1.4a1.min.js">http://code.jquery.com/jquery-1.4a1.min.js</a> (145 Kb)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nayjest.ru/jquery/1-4-alpha1-release/feed</wfw:commentRss>
		<slash:comments>122</slash:comments>
		</item>
	</channel>
</rss>

