<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Блог Ильи Барышева</title>
	
	<link>http://prophet.ru</link>
	<description>О веб-разработке и не только…</description>
	<lastBuildDate>Mon, 26 Sep 2011 16:51:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/baryshev" /><feedburner:info uri="baryshev" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Твиты Future Colors, 3 неделя сентября</title>
		<link>http://feedproxy.google.com/~r/baryshev/~3/VZXq4g87mJA/</link>
		<comments>http://prophet.ru/2011/09/fc-tweeter-spetember-3/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 16:51:33 +0000</pubDate>
		<dc:creator>prophet</dc:creator>
				<category><![CDATA[Твитер]]></category>
		<category><![CDATA[coffeescript]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[разработка]]></category>

		<guid isPermaLink="false">http://prophet.ru/?p=236</guid>
		<description><![CDATA[Мы ежедневно делимся в твитере @futurecolors полезными ссылками, новостями вебразработки, еженедельно — фотками с работы. Раз в неделю-две я буду собирать всё это в один пост, чтобы это легко было найти потом. Хронология специально нарушена, это не&#160;так важно. Кое-где мои &#8230; <a href="http://prophet.ru/2011/09/fc-tweeter-spetember-3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Мы ежедневно делимся в твитере <a href="http://twitter.com/#!/futurecolors">@futurecolors</a> полезными ссылками, новостями вебразработки, еженедельно — фотками с работы. Раз в неделю-две я буду собирать всё это в один пост, чтобы это легко было найти потом. Хронология специально нарушена, это не&nbsp;так важно. Кое-где мои комментарии к&nbsp;твитам.</p>
<h3>Django</h3>
<blockquote>
<p><a href="http://twitter.com/#!/isagalaev">Иван Сагалаев</a> в своём блоге <a href="http://softwaremaniacs.org/blog/2011/09/08/djangocon-2011/">делится впечатлениями</a> о прошедешем DjangoCon&nbsp;US.</p>
</blockquote>
<blockquote>
<p>Опубликованы <a href="http://blip.tv/djangocon">видеозаписи с DjangoCon US 2011</a> Всем&nbsp;смотреть!</p>
</blockquote>
<p>Целых 40 записей, 16 гигабайт видео, часов ещё больше. Смотрите <a href="http://djangocon.us/schedule/">описания выступлений</a> и изучайте, это очень интересно.&nbsp;</p>
<blockquote>
<p>А вы уже <a href="https://www.djangoproject.com/weblog/2011/sep/09/security-releases-issued/">обновили django до 1.3.1</a> и 1.2.7&nbsp;соответственно?</p>
</blockquote>
<p>Благодаря <a href="http://packages.python.org/django-fab-deploy/">django-fab-deploy</a>, обновить фреймворк не составило особого&nbsp;труда.</p>
<blockquote>
<p>Хорошая заметка о <a href="http://lucumr.pocoo.org/2011/7/19/sqlachemy-and-you/">различиях между&nbsp;Django ORM и SQLAlchemy</a>. Ещё <a href="http://habrahabr.ru/blogs/python/128052/">холивор с похожей&nbsp;темой</a></p>
</blockquote>
<blockquote>
<p><a href="http://djangrrl.com/view/contributing-django-documentation-part-1-generating-and-editing-documentation-locally/">Как помочь улучшить документацию django</a> (две заметки из блога девушки с татуировкой пони).&nbsp;<a href="http://djangrrl.com/view/contributing-django-documentation-part-2-submitting-patch/">Вторая</a></p>
</blockquote>
<blockquote>
<p><a href="https://github.com/dmpayton/django-admin-honeypot/">Подменяем /admin/ фальшивой авторизацией</a> и следим за&nbsp;&laquo;хакерами&raquo;</p>
</blockquote>
<blockquote>
<p><span style="white-space:nowrap">Наконец-то</span> начались какие-то <a href="https://code.djangoproject.com/browser/django/branches/features/py3k/">попытки портировать Django на&nbsp;python3</a></p>
</blockquote>
<p>Ветка теперь доступна и на&nbsp;<a href="https://github.com/django/django/tree/features/py3k">гитхабе</a></p>
<blockquote>
<p>На новых проектах будем использовать <a href=" https://github.com/kmmbvnr/django-jenkins">django-jenkins</a> и <a href="https://github.com/kmmbvnr/django-any">django-any</a>. Очень полезные&nbsp;штуки.</p>
</blockquote>
<p>Используем ежедневно. не&nbsp;без недостатков, но очень правильные&nbsp;идеи.</p>
<blockquote>
<p>JetBrains радуют новыми фичами и апдейтами старых. <a href="http://blog.jetbrains.com/pycharm/2011/09/django-templates-debugging-with-pycharm/">Пост из блога pycharm про дебаг шаблонов джанги</a> в их&nbsp;IDE</p>
</blockquote>
<h3>HTML и&nbsp;Javascript</h3>
<blockquote>
<p><a href="http://mobilehtml5.org">Какие фичи html5 поддерживают мобильные браузеры</a>. Полезная&nbsp;табличка</p>
</blockquote>
<blockquote>
<p><a href=" https://github.com/zgrossbart/jslim">Утилита для вырезания из js-библиотек неспользуемого вами кода</a>. Насколько хорошо она почикает&nbsp;jquery?</p>
</blockquote>
<h3>CoffeeScript (и&nbsp;django)</h3>
<blockquote>
<p>Весёлая презентация <a href="http://bodil.github.com/coffeescript/">CoffeeScript: JavaScript without the&nbsp;Fail</a></p>
</blockquote>
<blockquote>
<p>Думаете только поклонники руби уважают CoffeeScript? Всовсе нет, например:&nbsp;<a href="http://pypi.python.org/pypi/django-coffeescript/">django-coffeescript</a></p>
</blockquote>
<blockquote>
<p>Впрочем, необязательно ставить дополнительный пакет, достаточно нашего любимого <a href="https://github.com/jezdez/django_compressor">django-compressor</a>  (django + coffeescript)</p>
</blockquote>
<p>Всерьёз задумались о внедрении кофескрипта как замены js на будущих&nbsp;проектах.</p>
<h3>Разработка</h3>
<blockquote>
<p><a href=" http://book.git-scm.com/5_finding_issues_-_git_bisect.html">Команда git bisect</a> выручает при борьбе с нетривиальными регрессиями. Очень&nbsp;полезно</p>
</blockquote>
<blockquote>
<p>Познавательно про <a href=" http://habrahabr.ru/company/skbkontur/blog/128427/">разработку в СКБ&nbsp;Контур</a></p>
</blockquote>
<div id="attachment_246" class="wp-caption aligncenter" style="width: 610px"><a href="http://img.prophet.ru/media/models.jpg"><img src="http://img.prophet.ru/media/models-600x400.jpg" alt="" title="models" width="600" height="400" class="size-medium wp-image-246" /></a><p class="wp-caption-text">Проектирование моделей (тех самых, которые являются частью MVC). На фото - Илья Барышев</p></div>
<img src="http://feeds.feedburner.com/~r/baryshev/~4/VZXq4g87mJA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://prophet.ru/2011/09/fc-tweeter-spetember-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://prophet.ru/2011/09/fc-tweeter-spetember-3/</feedburner:origLink></item>
		<item>
		<title>Боремся с Clickjacking</title>
		<link>http://feedproxy.google.com/~r/baryshev/~3/CfQY35Pncos/</link>
		<comments>http://prophet.ru/2011/08/fighting-clickjacking/#comments</comments>
		<pubDate>Sun, 21 Aug 2011 15:45:00 +0000</pubDate>
		<dc:creator>prophet</dc:creator>
				<category><![CDATA[Технологии]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://prophet.ru/?p=203</guid>
		<description><![CDATA[Что такое&#160;clickjacking Clickjacking&#160;&#8212; относительно новый и&#160;не очень широко известный тип атак на веб-сайты. Его суть в том, что пользователь, совершая клик на специально сформированной странице злоумышленника, на самом деле кликает по ссылке на совершенно другом сайте. Это может быть использовано как&#160;для &#8230; <a href="http://prophet.ru/2011/08/fighting-clickjacking/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h3>Что такое&nbsp;clickjacking</h3>
<p>Clickjacking&nbsp;&mdash; относительно новый и&nbsp;не очень широко известный тип атак на веб-сайты. Его суть в том, что пользователь, совершая клик на специально сформированной странице злоумышленника, на самом деле кликает по ссылке на совершенно другом сайте. Это может быть использовано как&nbsp;для относительно безобидных накруток голосований (например, <a href="http://shiflett.org/blog/2009/feb/twitter-dont-click-exploit">ретвитов</a>&nbsp;или <a href="http://erickerr.com/like-clickjacking">лайков</a>), так и более разрушительных вещей, главное, чтобы для этого&nbsp;требовался щелчок мыши.</p>
<h3>Как это&nbsp;работает</h3>
<p>Атакуемый сайт оборачивается в прозрачный ифрейм. Поверх него располагают <span style="white-space:nowrap">какую-нибудь</span> привлекательную ссылку, на которую захочет кликнуть «жертва» (при атаке на твитер в&nbsp;2009 такой приманкой стала кнопка c текстом «Don&#39;t click»). Теперь вместо клика на&nbsp;неё будет происходить клик в ифрейме (так как&nbsp;он находится поверх&nbsp;кнопки).</p>
<h3><a href="/demos/clickjacking/">Демонстрация&nbsp;кликджекинга</a></h3>
<p>(абсолютно&nbsp;безвредно)</p>
<p>Замечу, что защита от clickjacking совершенно иная, чем от&nbsp;CSRF, хотя цели злоумышленников в обоих атаках&nbsp;&mdash; заставить пользователя совершить запрос к сайту под своими&nbsp;правами.</p>
<h3>Защищаемся через&nbsp;javscript</h3>
<p>Самый простой способ&nbsp;&mdash; сделать редирект с помощью js, если сайт открыт в ифрейме&nbsp;(<a href="http://prophet.ru/demos/clickjacking/attacker_simple_defence.php">пример</a>):</p>
<pre><code>if(top != self) {
  top.location = self.location;
}</code></pre>
<p>К сожалению, это код неуниверсален, существуют несколько способов его обхода разной степени изощрённости и применимости в браузерах. Подробнее можно почитать в исследовании <a href="http://crypto.stanford.edu/~dabo/pubs/papers/framebust.pdf">Busting Frame Busting: a Study of Clickjacking Vulnerabilities on Popular&nbsp;Sites</a>.</p>
<h3>Защищаемся через&nbsp;заголовки</h3>
<p>В дополнение к предыдущему методу, разработчики браузеров ввели новый заголовок ответа сервера&nbsp;<a href="https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header">X-Frame-Options</a>.<br />
Он позволяет не отображать сайт, если он загружается c другого домена через ифрейм. Пример настроек для&nbsp;Apache и&nbsp;nginx:</p>
<pre>Header always append X-Frame-Options SAMEORIGIN</pre>
<pre>add_header X-Frame-Options SAMEORIGIN;</pre>
<p><br/></p>
<p>Работает в IE 8.0+, FF 3.6.9+, Opera 10.50+, Safari 4.0+ и&nbsp;Chrome 4.1+, на момент написания поста по рунету это более 70%&nbsp;пользователей.</p>
<p>В новой версии Django 1.4 для добавления этого заголовка есть настраиваемый&nbsp;<a href="https://docs.djangoproject.com/en/dev/ref/clickjacking/">XFrameOptionsMiddleware</a>.</p>
<p><a href="http://www.owasp.org/index.php/Clickjacking">Подробно про Clickjacking</a> на сайте Open Web Application Security&nbsp;Project.</p>
<img src="http://feeds.feedburner.com/~r/baryshev/~4/CfQY35Pncos" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://prophet.ru/2011/08/fighting-clickjacking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://prophet.ru/2011/08/fighting-clickjacking/</feedburner:origLink></item>
		<item>
		<title>HttpOnly куки и с чем их едят</title>
		<link>http://feedproxy.google.com/~r/baryshev/~3/TCPoHRUYwPw/</link>
		<comments>http://prophet.ru/2010/12/httponly-cookies/#comments</comments>
		<pubDate>Mon, 20 Dec 2010 06:15:40 +0000</pubDate>
		<dc:creator>prophet</dc:creator>
				<category><![CDATA[Технологии]]></category>

		<guid isPermaLink="false">http://prophet.ru/?p=185</guid>
		<description><![CDATA[HttpOnly cookie — это такие куки, которые невозможно прочитать с помощью javascript, но доступные серверным скриптам, как и любые другие. Несмотря на&#160;то, что&#160;это совсем не новая технология (HttpOnly cookie появились 8 лет назад в IE6 SP1), далеко не&#160;все знают, почему &#8230; <a href="http://prophet.ru/2010/12/httponly-cookies/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>HttpOnly cookie — это такие куки, которые невозможно прочитать с помощью javascript, но доступные серверным скриптам, как и любые другие. Несмотря на&nbsp;то, что&nbsp;это совсем не новая технология (HttpOnly cookie появились 8 лет назад в IE6 SP1), далеко не&nbsp;все знают, почему их обязательно стоит&nbsp;использовать.</p>
<h3>Зачем это&nbsp;нужно</h3>
<p>Куки, недоступные из джаваскипта, помогут защитить от XSS-атак, как второй рубеж обороны от злоумышленников. Прокравшийся на страницу вредоносный код не сможет утащить пользовательские куки с помощью&nbsp;<code>document.cookie</code>.</p>
<h3>Где это&nbsp;работает</h3>
<p>Основная мысль: <em>это работает во всех популярных и современных браузерах</em> (IE6+, Firefox 2.0+, Chrome 1.0+, Opera 9.5+, Safari 4.0+) Подробнее можно ознакомиться на сайте <a href="http://www.browserscope.org/">browserscope</a> (раздел&nbsp;Security).</p>
<p>HttpOnly cookie <a href="http://php.net/manual/en/function.setcookie.php">легко установить в php</a>, <a href="http://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpResponse.set_cookie">django</a>. Чтобы установить куки собственноручно через передачу заголовка ответа, достаточко добавить параметр&nbsp;<code>; HttpOnly</code></p>
<pre><code>Set-Cookie: &lt;name&gt;=&lt;value&gt;[; &lt;Max-Age&gt;=&lt;age&gt;]
[; expires=&lt;date&gt;][; domain=&lt;domain_name&gt;]
[; path=&lt;some_path&gt;][; secure][; HttpOnly]</code></pre>
<h2><a href="http://prophet.ru/demos/cookie/">Демо</a></h2>
<p><br/><br />
<a href="http://www.owasp.org/index.php/HttpOnly">Подробно про HttpOnly cookie</a> на сайте Open Web Application Security&nbsp;Project</p>
<img src="http://feeds.feedburner.com/~r/baryshev/~4/TCPoHRUYwPw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://prophet.ru/2010/12/httponly-cookies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://prophet.ru/2010/12/httponly-cookies/</feedburner:origLink></item>
		<item>
		<title>VPC-EC3S1R и Убунта</title>
		<link>http://feedproxy.google.com/~r/baryshev/~3/IsHcDqki150/</link>
		<comments>http://prophet.ru/2010/12/vpc-ec3s1r-and-ubuntu/#comments</comments>
		<pubDate>Wed, 15 Dec 2010 19:35:08 +0000</pubDate>
		<dc:creator>prophet</dc:creator>
				<category><![CDATA[Технологии]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[vaio]]></category>
		<category><![CDATA[рецепт]]></category>

		<guid isPermaLink="false">http://prophet.ru/?p=142</guid>
		<description><![CDATA[Взамен старого ноута приобрёл новый VAIO серии&#160;E. О своих впечатлениях о новинке расскажу в следующей заметке, а пока пара советов для убунтоводов, обзаведшихся ноутом сони, почерпнутых в одном из&#160;блогов. Под свежеустановленным Мавериком (10.10) почти всё завелось &#171;из коробки&#187;: видео, аудио, &#8230; <a href="http://prophet.ru/2010/12/vpc-ec3s1r-and-ubuntu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Взамен <a href="http://www.trustedreviews.com/laptops/review/2005/09/07/Fujitsu-Siemens-AMILO-M3438G-Gaming-Notebook/p1">старого ноута</a>  приобрёл новый <a href="http://market.yandex.ru/model.xml?modelid=6496796">VAIO серии&nbsp;E</a>.<br />
О своих впечатлениях о новинке расскажу в следующей заметке, а пока пара советов для убунтоводов, обзаведшихся ноутом сони, почерпнутых в <a href="http://outhereinthefield.wordpress.com/2010/11/03/ubuntu-10-4-lucid-lynx-on-vaio-vpcea36fg/">одном из&nbsp;блогов</a>.</p>
<p><img src="http://img.prophet.ru/media/vaio.jpg" alt="Sony VAIO VPC-EC3S1R" width="408" height="256" class="aligncenter size-full wp-image-169" /></a></p>
<p>Под свежеустановленным Мавериком (10.10) почти всё завелось &laquo;из коробки&raquo;: видео, аудио, вебкамера, но&nbsp;не обошлось и&nbsp;без досадных недоразумений в виде нерабочего тачпада и кнопок управления&nbsp;яркости.</p>
<h3>Убунта и яркость&nbsp;экрана</h3>
<p>Сидеть за дисплеем со 100-процентной яркостью совершенно невозможно, поэтому, пока не отказали глаза срочно понижаем её в меню &laquo;Система → Параметры → Управления питанием&raquo;. Данный трюк не проходит, если питание от сети отсутствует, поэтому надо оживить кнопки Fn+F5 и&nbsp;Fn+F6, отвечающие за&nbsp;яркость.</p>
1) Правим файл <code>/etc/acpi/events/sony-brightness-down</code>, который будет выполняться при нажатии&nbsp;Fn+F5.
<pre><code class="bash"># /etc/acpi/events/sony-brightness-down
event=sony/hotkey SNC 00000001 00000010
action=/etc/acpi/brightdown.sh</code></pre>
<p>Код клавиши может отличаться для других моделей ноутбуков Сони (можно определить с помощью команды&nbsp;<code>acpi_listen</code>)</p>
2) Правим скрипт <code>/etc/acpi/brightdown.sh</code>, который понижает&nbsp;яркость
<pre><code class="bash">#!/bin/bash
curr=`cat /sys/class/backlight/acpi_video0/actual_brightness`
if [ $curr -gt 0 ]; then
curr=$((curr-1));
echo $curr  &gt; /sys/class/backlight/acpi_video0/brightness;
fi</code></pre>
<p>Главное, не забыть про права на&nbsp;исполнение.</p>
3) Аналогично редактируем файл&nbsp;<code>/etc/acpi/events/sony-brightness-up</code>
<pre><code class="bash"># /etc/acpi/events/sony-brightness-up
event=sony/hotkey SNC 00000001 00000011
action=/etc/acpi/brightup.sh</code></pre>
<p><br/></p>
4) А вот скрипт повышения яркости для файла&nbsp;<code>/etc/acpi/brightup.sh</code>
<pre><code class="bash">#!/bin/bash
curr=`cat /sys/class/backlight/acpi_video0/actual_brightness`
if [ $curr -lt 8 ]; then
curr=$((curr+1));
echo $curr  &gt; /sys/class/backlight/acpi_video0/brightness;
fi</code></pre>
<h3>Убунта и&nbsp;тачпад</h3>
Тачпад особенно не нужен на 17-дюймовом ноуте, который заменяет десктоп, но&nbsp;для порядка надо оживить и&nbsp;его.<br />
Нужно отредактировать <code>/etc/default/grub</code>, добавив следующую&nbsp;строчку
<pre><code class="bash">GRUB_CMDLINE_LINUX="i8042.noloop i8042.nomux i8042.reset i8042.nopnp splash"</code></pre>
После этого надо пересоздать&nbsp;grub.conf
<pre><code class="bash">sudo update-grub</code></pre>
<p>После этого перезагружаемся и тачпад&nbsp;работает.</p>
<p>Продолжение&nbsp;следует.</p>
<img src="http://feeds.feedburner.com/~r/baryshev/~4/IsHcDqki150" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://prophet.ru/2010/12/vpc-ec3s1r-and-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://prophet.ru/2010/12/vpc-ec3s1r-and-ubuntu/</feedburner:origLink></item>
		<item>
		<title>День рождения API Яндекс.Карт</title>
		<link>http://feedproxy.google.com/~r/baryshev/~3/ijlludYs9hE/</link>
		<comments>http://prophet.ru/2010/11/yandex-maps-api-brithday/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 10:31:15 +0000</pubDate>
		<dc:creator>prophet</dc:creator>
				<category><![CDATA[Технологии]]></category>
		<category><![CDATA[события]]></category>
		<category><![CDATA[Яндекс]]></category>

		<guid isPermaLink="false">http://prophet.ru/?p=120</guid>
		<description><![CDATA[В пятницу команда Яндекс.Карт вместе с активистами клуба отмечали двухлетие API и предоставили возможность рассказать про&#160;наш скромный проект «Банкоматор». Послушали любопытное выступление Кащея про&#160;то, как работает продвинутая кластеризация, как сильно ускорить вывод объектов на карте и&#160;без хотспотов. А также немного &#8230; <a href="http://prophet.ru/2010/11/yandex-maps-api-brithday/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>В пятницу команда Яндекс.Карт вместе с активистами <a href="http://clubs.ya.ru/mapsapi/">клуба</a> отмечали двухлетие API и предоставили возможность рассказать про&nbsp;наш скромный проект «<a href="http://bankomator.ru">Банкоматор</a>». Послушали <a href="http://video.yandex.ru/users/vaddoo/view/4">любопытное выступление Кащея</a> про&nbsp;то, как работает продвинутая кластеризация, как сильно ускорить вывод объектов на карте и&nbsp;без хотспотов. А также <a href="http://video.yandex.ru/users/vaddoo/view/3#hq">немного статистики</a> о том, как растёт и становится лучше API карт. Очень здорово, что поддержка в клубе такая оперативная и полная. А вот <a href="http://ymapsapi.ya.ru/replies.xml?item_no=104">фото и видео со&nbsp;встречи</a>.</p>
<p>Народу было немного, познакомились с командой, кого не видели на <a href="http://habrahabr.ru/blogs/yandex/79266/">прошлогоднем семинаре</a>. Встреча закончилась вкусным тортом и небольшой экскурсию по офису.&nbsp;Спасибо!</p>
<p><a href="http://img.prophet.ru/media/0_3847d_675c29f1_orig.jpg"><img src="http://img.prophet.ru/media/0_3847d_675c29f1_orig.jpg" alt="Фото на память" title="0_3847d_675c29f1_orig" width="643" height="427" class="aligncenter" /></a></p>
<img src="http://feeds.feedburner.com/~r/baryshev/~4/ijlludYs9hE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://prophet.ru/2010/11/yandex-maps-api-brithday/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://prophet.ru/2010/11/yandex-maps-api-brithday/</feedburner:origLink></item>
		<item>
		<title>Firefox 2 и HTML5</title>
		<link>http://feedproxy.google.com/~r/baryshev/~3/oj9J4jdcA84/</link>
		<comments>http://prophet.ru/2010/11/firefox-2-and-html5/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 16:13:48 +0000</pubDate>
		<dc:creator>prophet</dc:creator>
				<category><![CDATA[Технологии]]></category>
		<category><![CDATA[explorer]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://prophet.ru/?p=71</guid>
		<description><![CDATA[Сейчас для многих HTML5 это такой всеобщий «тренд» веб-разработки и просто «buzzword». Все сейчас радуются за новые и полезные семантические теги разметки &#60;header&#62;, &#60;footer&#62;, &#60;section&#62;, &#60;article&#62;&#160;и даже &#60;aside&#62;. Но не&#160;все ещё знают о том, какие проблемы с обратной совместимостью устаревших &#8230; <a href="http://prophet.ru/2010/11/firefox-2-and-html5/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Сейчас для многих HTML5 это такой всеобщий «тренд» веб-разработки и просто «buzzword». Все сейчас радуются за новые и полезные семантические теги разметки <code>&lt;header&gt;</code>, <code>&lt;footer&gt;</code>, <code>&lt;section&gt;</code>, <code>&lt;article&gt;</code>&nbsp;и даже <code>&lt;aside&gt;</code>. Но не&nbsp;все ещё знают о том, какие проблемы с обратной совместимостью устаревших браузеров по-прежнему&nbsp;существуют.</p>
<h3>Ослик</h3>
<p>То, что Internet Explorer вплоть до 9 версии не умеет применять стили к неизвестным тегам без специальных ухищрений, давно известно. Для обхода этого недоразумения существует популярное решение <a href="http://code.google.com/p/html5shiv/">html5shiv</a>. Хитрость в том, чтобы динамически создать новый элемент, тогда explorer волшебным образом застайлит все последующие его&nbsp;вхождения.</p>
<h3>Firefox&nbsp;2</h3>
<p>Куда менее известно о том, что Firefox 2 тоже <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=311366">не дружит с незнакомыми ему&nbsp;тегами</a>:</p>
<blockquote>
<p>Firefox 2 (а также любой другой браузер на движке Gecko версии младше 1.9b5) имеет баг в разборе HTML: все неизвестные теги принудительно закрываются, как только парсер встречает блочный элемент (p, h1, div и&nbsp;т.п.&nbsp;).</p>
</blockquote>
<p>На данный момент доля второй ветки FF <a href="http://goo.gl/Gxel9">в рунете</a> и <a href="http://goo.gl/9DwO4">в мире</a> составляет меньше процента (0.4%). В то время как доля IE6 <a href="http://goo.gl/NIMgf">в 10 раз больше</a>&nbsp;&mdash; около 5%. Поэтому, неудивительно, что проблема кажется&nbsp;надуманной.</p>
<p>Тем не менее, если вы разрабатываете популярный ресурс с многотысячной посещаемостью, число таких людей будет исчисляться сотнями в неделю. Каждый из&nbsp;них вместо свёрстанного сайта увидит нечто совершенно непотребное и скорее всего сразу уйдёт.&nbsp;</p>
<div>
<a href="http://img.prophet.ru/media/firefox_2.0.0.20.png" title="Firefox 2: Вот как всё разваливается"><img src="http://img.prophet.ru/media/firefox_2.0.0.20-300x225.png" width="300" height="225" class="size-thumbnail wp-image-97" /></a>&nbsp;<a href="http://img.prophet.ru/media/firefox_3.0.png" title="Firefox 3: Так должно выглядеть на самом деле"><img src="http://img.prophet.ru/media/firefox_3.0-300x225.png" width="300" height="225" class="size-thumbnail wp-image-102" /></a></div>
<p>Есть несколько способов исправить проблему, со своими плюсами и минусами, как&nbsp;водится.</p>
<h4>Деградация</h4>
<p>Заменяем все новые теги на блочные <code>&lt;div&gt;</code>&nbsp;для Firefox 2. Придётся применить пресловутый browser sniffing, а значит есть риск ошибиться при разборе User Agent. Кроме того, стили и весь javascript не должен быть привязан к названиям тегов (вообще, это хороший стиль). Ну и кэшировать такие страницы придётся&nbsp;отдельно.</p>
<h4>Переходим на&nbsp;XHTML</h4>
<p>Отдаём фаерфоксу заголовок <code>application/xhtml+xml</code>&nbsp;и баг пропадает. Кроме того, что в данном методе присутствует browser sniffing, xhtml strict mode чреват тем, что из-за ошибочной вёрстки посетитель не увидит вообще ничего, кроме parse error (документ должен быть well-formed). <a href="http://remysharp.com/2009/04/14/html5-and-firefox2/">Пример в блоге Remy&nbsp;Sharp</a></p>
<h4>Используем&nbsp;JS</h4>
<p>С помощью javasctipt можно обойти DOM-дерево и убрать лишние закрывающие теги, которые проставил Firefox. Готового решения нет, поскольку определить то, что&nbsp;тег закрыт преждевременно по ошибке нетривиально. <a href="http://blog.whatwg.org/supporting-new-elements-in-firefox-2">Пример в блоге&nbsp;WHATWG</a>.</p>
<h3>Итого</h3>
<p>Полезно заранее определить границы кроссбраузерности и определить <a href="http://developer.yahoo.com/yui/articles/gbs/">степень поддержки тех&nbsp;или иных версий браузеров</a>. Если вы планируете использовать новые теги в вёрстке, незначительная часть ваших пользователей увидят ваш сайт совсем не так, как&nbsp;вы этого могли ожидать, если об этом не позаботиться. Внедряя новые «примочки», полезно не забывать об обратной совместимости, ведь не&nbsp;все могут легко установить себе современный&nbsp;браузер.</p>
<img src="http://feeds.feedburner.com/~r/baryshev/~4/oj9J4jdcA84" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://prophet.ru/2010/11/firefox-2-and-html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://prophet.ru/2010/11/firefox-2-and-html5/</feedburner:origLink></item>
		<item>
		<title>Google Developer Day 2010</title>
		<link>http://feedproxy.google.com/~r/baryshev/~3/3AQvxTYy1eI/</link>
		<comments>http://prophet.ru/2010/11/google-developer-day-2010/#comments</comments>
		<pubDate>Sun, 14 Nov 2010 17:02:27 +0000</pubDate>
		<dc:creator>prophet</dc:creator>
				<category><![CDATA[Технологии]]></category>
		<category><![CDATA[GDD]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[события]]></category>

		<guid isPermaLink="false">http://prophet.ru/?p=40</guid>
		<description><![CDATA[Посетил вместе с @piumosso очень хорошо подготовленное и позитивное мероприятие под названием GDD 2010. Спасибо русскому Гуглу, за&#160;то&#160;что с каждым годом делают конференцию всё лучше. В этот раз основными темами стали: Andriod, Chrome с&#160;HTML5, GAE, бизнес и немного social. Конференция &#8230; <a href="http://prophet.ru/2010/11/google-developer-day-2010/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://www.futurecolors.ru/blog/wp-content/uploads/2010/11/gddru.png" alt="GDD 2010" width="128" height="109" />Посетил вместе с <a href="http://piumosso.ru">@piumosso</a> очень хорошо подготовленное и позитивное мероприятие под названием GDD 2010. Спасибо русскому Гуглу, за&nbsp;то&nbsp;что с каждым годом делают конференцию всё лучше. В этот раз <a href="http://www.google.com/events/developerday/2010/moscow/agenda.html">основными темами</a> стали: Andriod, Chrome с&nbsp;HTML5, GAE, бизнес и немного social. Конференция нам понравилась, о&nbsp;чём мы не преминули написать свой&nbsp;отчёт.</p>
<p><a class="strong" href="http://www.futurecolors.ru/blog/2010/11/google-developer-day-2010/">Полная версия отчёта о GDD 2010 в блоге Future&nbsp;Colors</a></p>
<div class="post_block"><a title="Излюбленное место для фотографий" href="http://img.prophet.ru/media/google_logo.jpg"><img class="size-thumbnail wp-image-53" src="http://img.prophet.ru/media/google_logo-300x225.jpg" alt="" width="300" height="225" /></a><a title="Символика мероприятия необычная, чего стоит НЛО и 4 дырки в голове" href="http://img.prophet.ru/media/gdd_banner.jpg">&nbsp;<img class="size-thumbnail wp-image-52" src="http://img.prophet.ru/media/gdd_banner-300x225.jpg" alt="" width="300" height="225" /></a></div>
<div class="post_block">А вот немного ссылочек на чужие&nbsp;отчёты:
<div style="padding-left: 30px;">
<a href="http://victimofbabylon.com/o-gddru-2010-scheduled-november-20-2010-at-12">#gddru 2010 от&nbsp;@memphys</a><br />
<a href="http://habrahabr.ru/blogs/conference/108137/">Пост Андрея Реброва на&nbsp;Хабре</a><br />
<a href="http://gtug.do.am/news/google_developer_day_2010/2010-11-14-70">Отчёт смоленского&nbsp;GTUG</a><br />
<a href="http://zborovskiy.posterous.com/gddru10">Фотоотчёт&nbsp;@glamchicken</a>
</div>
</div>
<p>На закуску <a href="http://www.futurecolors.ru/blog/2009/11/google-developer-day-2009/">мои впечатления от&nbsp;Google Developer Day&nbsp;2009</a>.</p>
<img src="http://feeds.feedburner.com/~r/baryshev/~4/3AQvxTYy1eI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://prophet.ru/2010/11/google-developer-day-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://prophet.ru/2010/11/google-developer-day-2010/</feedburner:origLink></item>
		<item>
		<title>Как добавить сертификат SSL в Chrome под Ubuntu</title>
		<link>http://feedproxy.google.com/~r/baryshev/~3/Gi4W12BlSps/</link>
		<comments>http://prophet.ru/2010/11/ssl-chrome-ubuntu/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 19:43:18 +0000</pubDate>
		<dc:creator>prophet</dc:creator>
				<category><![CDATA[Технологии]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://prophet/?p=6</guid>
		<description><![CDATA[Хром очень печётся о безопасности пользователя, поэтому иногда можно увидеть вместо сайта вот такое&#160;предостережение: Как правило, владельцы ресурса используют самоподписанный сертификат, что само по себе угрозой не является, но вызывает раздражение, если видишь эту кровавую страницу каждый раз при посещении, например,&#160;интранет-сайта. &#8230; <a href="http://prophet.ru/2010/11/ssl-chrome-ubuntu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Хром очень печётся о безопасности пользователя, поэтому иногда можно увидеть вместо сайта вот такое&nbsp;предостережение:</p>
<p><a href="http://img.prophet.ru/media/chrome_security_warning1.png" title="Предупреждение Chrome о небезопасности сертификата"><img class="aligncenter size-thumbnail wp-image-17" src="http://img.prophet.ru/media/chrome_security_warning1-300x168.png" alt="" width="300" height="168" /></a></p>
<p>Как правило, владельцы ресурса используют самоподписанный сертификат, что само по себе угрозой не является, но вызывает раздражение, если видишь эту кровавую страницу каждый раз при посещении, например,&nbsp;интранет-сайта.</p>
<p>В фаерфоксе подобная проблема решается прямо в браузере несколькими кликами, нужно всего лишь добавить сертификат к доверенным. Любителям хрома под линукс придётся <a href="http://code.google.com/p/chromium/wiki/LinuxCertManagement">использовать командную&nbsp;строку</a>.</p>
<h3>Решение</h3>
<p>Некто Алекс придумал <a href="http://blog.avirtualhome.com/2010/02/02/adding-ssl-certificates-to-google-chrome-linux-ubuntu/">способ немного автоматизировать&nbsp;процесс</a>:</p>
<ol>
<li>Ставим себе&nbsp;libnss3-tools:
<pre><code class="bash">sudo apt-get install libnss3-tools</code></pre>
</li>
<li>Создаём исполняемый файл&nbsp;import-cert.sh
<pre><code class="bash">#!/bin/sh
#
# usage: import-cert.sh remote.host.name [port]
#
REMHOST=$1
REMPORT=${2:-443}
exec 6&gt;&amp;1
exec &gt; $REMHOST
echo | openssl s_client -connect ${REMHOST}:${REMPORT} 2&gt;&amp;1 |sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "$REMHOST" -i $REMHOST
exec 1&gt;&amp;6 6&gt;&amp;-</code></pre>
</li>
<li>Запускаем&nbsp;скрипт:
<pre><code class="bash">import-cert.sh example.com 443</code></pre>
<p>(где 443&nbsp;&mdash; необязательный параметр, порт&nbsp;SSL)</p>
Вот и всё, сертификат добавился в <a rel="nofollow" href="https://wiki.mozilla.org/NSS_Shared_DB_And_LINUX">NSS Shared DB</a>, mission&nbsp;accomplished.</li>
</ol>
<h3>На всякий&nbsp;случай</h3>
<p>Если <span style="white-space:nowrap">что-то</span> пошло не так, всегда можно через консоль посмотреть, какие сертификаты&nbsp;добавлены:</p>
<pre><code class="bash">certutil -L -d sql:$HOME/.pki/nssdb</code></pre>
<p>&nbsp;или удалить негодный&nbsp;сертификат:</p>
<pre><code class="bash">certutil -D -n &lt;em&gt;имя_сертификата&lt;/em&gt; -d sql:$HOME/.pki/nssdb</code></pre>
<h3>Итого</h3>
<p>Пока приходится использовать вот такие «костыли», но, скорее всего, в будущем появится нормальный менеджер сертификатов под&nbsp;Linux и данный скрипт будет более не нужен, на&nbsp;что я очень&nbsp;надеюсь.</p>
<img src="http://feeds.feedburner.com/~r/baryshev/~4/Gi4W12BlSps" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://prophet.ru/2010/11/ssl-chrome-ubuntu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://prophet.ru/2010/11/ssl-chrome-ubuntu/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 1.252 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-02-17 17:21:34 --><!-- Compression = gzip -->

