<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>хабрахабр: главная / захабренные</title>
    <link>http://habrahabr.ru/rss/</link>
    <atom:link href="http://rss-farm.ru/rssfarmru/habrahabr" rel="self" type="application/rss+xml" />
    <description></description>
    <pubDate>Sun, 05 Feb 2012 18:19:26 GMT</pubDate>
    <lastBuildDate>Sun, 05 Feb 2012 18:19:26 GMT</lastBuildDate>
    <dc:creator>rssfarmru</dc:creator>
    <item>
      <title>Информационная безопасность / Alarmist, или история одного параноика</title>
      <link>http://habrahabr.ru/blogs/infosecurity/137646/</link>
      <pubDate>Sun, 05 Feb 2012 17:02:38 GMT</pubDate>
      <description>
  	&lt;img src="http://s1.hostingkartinok.com/uploads/images/2012/02/34d517876f0a56f91525a97d0ab64484.png" alt="Alarmist in action"&gt;&lt;br&gt;
&lt;br&gt;
Так уж случилось, что мне понадобилось полное шифрование ОС на моём ноутбуке. Как бы мне ни хотелось воспользоваться для этого одним из дистрибутивов GNU/Linux, к сожалению, мне пришлось остаться на Windows, поскольку мне было необходимо определенное ПО, доступное только под Windows (а Wine я слишком сильно не люблю, чтобы пользоваться им почти ежедневно). Зато такой выбор ОС сразу упростил выбор системы шифрования, поскольку под Windows ничего сто?ящего, кроме TrueCrypt, нет (поправьте меня, если я не прав).&lt;br&gt;
&lt;br&gt;
Итак, я зашифровал весь свой жесткий диск, установил TrueCrypt'овый загрузчик и вроде бы всё у меня сразу стало хорошо. &lt;a name="habracut"&gt;&lt;/a&gt;Однако, у меня было одно опасение: а что, если мой ноутбук попадёт в чужие руки &lt;i&gt;включенным&lt;/i&gt;? Ведь тогда все мои старания будут бесполезными, поскольку ключ шифрования будет в оперативной памяти и новый владелец без проблем сможет просматривать любые данные на моём жестком диске.&lt;br&gt;
&lt;br&gt;
Я начал думать над решением новонайденной проблемы. На ArchLinux Wiki я вычитал идею написать приложение, которое выключает ноутбук, если не может найти какое-то заданное Bluetooth-устройство. Идея, в общем-то, показалась мне неплохой, но мне не хотелось, чтобы работоспособность моего ноутбука зависила не только от его аккумулятора, но ещё и от аккумулятора какого-то другого устройства. Да и постоянно включенный и используемый Bluetooth не понизит энергопотребление.&lt;br&gt;
&lt;br&gt;
И тут я очень вовремя вспомнил, что мой ноутбук относиться к объективно самой лучшей серии ноутбуков в мире, а именно, к серии ThinkPad. Одной из функций, присущей всем новым (и не очень) ноутбукам этой серии, является т.н. &lt;a href="http://www.thinkwiki.org/wiki/Active_Protection_System"&gt;Active Protection System&lt;/a&gt;. Говоря простым языком, это акселерометр на материнской плате, преназначенный для того, чтобы детектировать падения ноутбука, дабы заранее припарковать головку жесткого диска, таким образом уменьшаяя вероятность нанесения урона жесткому диску в результате падения. Но кого, собственно, интересует, для чего эта штука &lt;i&gt;предназначена&lt;/i&gt;? Ведь главное — то, что у нас есть акселерометр, при помощи которого можно определить, когда ноутбук подняли или другим образом пытаются переместить с одного места на другое.&lt;br&gt;
&lt;br&gt;
Так родилась идея Alarmist. Alarmist — программа на языке Python, которая умеет брать показатели с &lt;i&gt;датчиков&lt;/i&gt; и, если датчики показывают что-нибудь страшное, подавать &lt;i&gt;сигнал паники&lt;/i&gt;. Как датчики, так и реализации паники можно легко заменять и модифицировать. Конечно же, Alarmist можно легко на время приостанавливать, например, если необходимо передвинуть ноутбук с одного места на другое.&lt;br&gt;
&lt;br&gt;
Сейчас Alarmist умеет получать данные с ThinkPad'овского акселерометра (правда, только под Windows) и выполнять произвольные консольные команды в случае паники (по умолчанию — гибернация). За исключением датчика ThinkPadShockSensor, Alarmist полностью кроссплатформенный (в теории, на практике я его не тестировал под другими ОС). Мне большего и не нужно, но я был бы рад увидеть реализации других датчиков и методов паник, благо Alarmist &lt;a href="https://raw.github.com/popoffka/alarmist/master/LICENSE"&gt;свободен&lt;/a&gt; и &lt;a href="https://github.com/popoffka/alarmist"&gt;доступен на github&lt;/a&gt;. Интересными (на мой взгляд) идеями для новых датчиков является уже упомянутое выше использование Bluetooth и устройства-«маячка», использование модулей GPS/GSM/WiMax и анализ поведения пользователя.&lt;br&gt;
&lt;br&gt;
Я буду очень рад, если моя разработка пригодится ещё кому-нибудь, поэтому и делюсь ею здесь. Тем, кто захочет ею воспользоваться, я хотел бы дать ещё один совет: не забудьте о настроенных действиях при закрытии крышки ноутбука и нажатии на кнопку выключения, поскольку, если у вас там «sleep», ничто не помешаети злоумышленнику закрыть крышку ноутбука, отнести его к себе в логово и уже там открыть, на ровной поверхности, не вызвав никаких подозрений у Alarmist.&lt;br&gt;
&lt;br&gt;
Кстати, вот видео с демонстрацией работы Alarmist (уж простите за качество):&lt;br&gt;
&lt;iframe width="560" height="349" src="http://www.youtube.com/embed/l0SKIhsyJqQ" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt; 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/infosecurity/137646/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/infosecurity/137646/</guid>
      <dc:creator>mariofag</dc:creator>
    </item>
    <item>
      <title>Смартфоны и коммуникаторы / Зачем компаниям мобильные приложения или почему в Маркетах столько барахла</title>
      <link>http://habrahabr.ru/blogs/smartphone_ru/137644/</link>
      <pubDate>Sun, 05 Feb 2012 16:14:42 GMT</pubDate>
      <description>
  	Сейчас любая компания хочет себе мобильное приложение. Когда мы стали заниматься разработкой iPhone и Android аппов на заказ, мы стали получать огромное количество запросов от клиентов. Первое время мы очень радовались этому факту, однако вскоре это стало нас расстраивать. Потому что большинство клиентов на самом деле не отдает себе отчет в том, зачем нужны мобильные приложения, как их используют люди и как они могут помочь в бизнесе. В этой статье я решил написать о типичных запросах клиентов, и почему нам часто приходится их расстраивать. А также о том, что же все-таки со всем этим делать.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Мобильное приложение — визитка&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
Клиент говорит:&lt;br&gt;
 — Мы хотим сделать приложение о нашей компании. &lt;br&gt;
 — Какой функционал Вы бы хотели в нем видеть?&lt;br&gt;
 — Ну, информацию о нашей компании, контакты, форму заказа обязательно, новости, отзывы.&lt;br&gt;
 — Окей, а сколько на вашем сайте посетителей?&lt;br&gt;
 — Не знаю, может быть, 50&lt;br&gt;
 — А есть те, которые приходят повторно?&lt;br&gt;
 — Вряд ли, в основном люди попадают на наш сайт из поиска.&lt;br&gt;
&lt;br&gt;
На вопрос «А зачем тогда люди станут устанавливать программу на телефон?» клиенты уже ответить не могут. &lt;br&gt;
&lt;a name="habracut"&gt;&lt;/a&gt;&lt;br&gt;
На самом деле все очень просто. Приложение — это инструмент для решения какой-то задачи. Вот три основных задачи, которые люди решают с помощью мобильных приложений:&lt;br&gt;
 — скоротать время;&lt;br&gt;
 — получить доступ в интернет при отсутствии других способов;&lt;br&gt;
 — срочно получить необходимую информацию;&lt;br&gt;
&lt;br&gt;
Если приложение не решает ни одной из этих задач, оно скорее всего не нужно людям. Лучше потратьте деньги на хорошую мобильную версию сайта, и будет вам счастье! А если вы видите, что люди &lt;b&gt;регулярно&lt;/b&gt; заходят на ваш сайт, то скорее всего сайт позволяет решить им какую-то задачу. Отразив ее в мобильном приложении, вы скорее всего получите довольных клиентов!&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Мобильно приложение для Интернет-магазина&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
Клиент говорит: &lt;br&gt;
 — Мы хотим сделать приложение, с помощью которого можно будет просматривать каталог нашей продукции и делать заказ&lt;br&gt;
 — Окей, а какие цели вы преследуете?&lt;br&gt;
 — Мы бы хотели, чтобы люди находили наше приложение в Appstore и Android Market и совершали покупки.&lt;br&gt;
&lt;br&gt;
На самом деле мобильное приложение делается для &lt;b&gt;уже существующих постоянных&lt;/b&gt; клиентов. Если люди регулярно делают заказы в определенном магазине, то мобильное приложение для них может быть более удобным инструментом сделать заказ. Но много вы знаете таких интернет-магазинов? Большинство людей ищут товар в Яндексе, потом попадают в нужный интернет-магазин, делает заказ &lt;b&gt;один раз&lt;/b&gt; и уходят. Неужели они станут ради одного заказа скачивать приложение? Гораздо лучше здесь подойдет мобильная версия сайта, на которую будут попадать люди, ищущие товары с мобильных устройств.&lt;br&gt;
&lt;br&gt;
В этом случае клиенты часто приводят в пример Тануки и Империю Пиццы, приложения которых стали очень популярными. Но не надо забывать, что люди и так регулярно заказывали еду в этих заведениях. Приложение позволило делать это более удобно и из любого места. Конечно, пользователи были рады! Кроме того, эти заведения были одни из первых в России, которые сделали мобильное приложение, а сейчас этим уже никого не удивишь.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Но айфоны и айпэды — это ведь так модно. Можно нам все-таки сделать какое-нибудь приложение?&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
Конечно можно! Но предварительно надо все-таки хорошенько подумать, зачем люди будут его использовать регулярно. Если нет прямого очевидного функционала, придумайте дополнительный, который и будет заставлять людей регулярно открывать приложение. Вот простые примеры, как сделать обычное приложение о компании нужным для постоянного использования.&lt;br&gt;
&lt;br&gt;
 — Приложение о фитнес-клубе, содержащее также дневник тренировок и сборник упражнений&lt;br&gt;
 — Приложение о розничной сети, также включающее удобный список покупок&lt;br&gt;
 — Приложение ресторана, также включающее в себя рецепты блюд&lt;br&gt;
 — Приложение салона красоты с советами по макияжу на каждый день&lt;br&gt;
&lt;br&gt;
Пока еще все-таки относительно мало российских компаний имеют свои мобильные приложения, поэтому выделиться на этом рынке не так сложно. Главное, слишком сильно не увлекаться, и не пытаться вставить аналог Angry Birds на одну из вкладок приложения инвестиционной компании. 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/smartphone_ru/137644/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/smartphone_ru/137644/</guid>
      <dc:creator>somneart</dc:creator>
    </item>
    <item>
      <title>Типографика / Вышел стандарт Unicode 6.1, добавлено 732 новых символа</title>
      <link>http://habrahabr.ru/blogs/typography/137639/</link>
      <pubDate>Sun, 05 Feb 2012 14:08:32 GMT</pubDate>
      <description>
  	31 января официально представлена новая версия стандарта &lt;a href="http://www.unicode.org/versions/Unicode6.1.0/"&gt;Unicode 6.1.0&lt;/a&gt;, это минорный релиз по сравнению с Unicode 6.0.0 (&lt;a href="http://habrahabr.ru/blogs/typography/106091/"&gt;октябрь 2010 г.&lt;/a&gt;).&lt;br&gt;
&lt;br&gt;
Последняя версия включает &lt;a href="http://www.unicode.org/charts/PDF/Unicode-6.1/"&gt;732 новых символа&lt;/a&gt;, в том числе семь новых письменностей: китайские, азиатские и африканские. Среди 110 тыс. символов Unicode можно найти глифы на любой вкус, например, вот символ &lt;a href="http://www.fileformat.info/info/unicode/char/1f3e9/index.htm"&gt;LOVE HOTEL&lt;/a&gt; (U+1F3E9):&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/e26/92b/f26/e2692bf26ccf406d0ca45680a88be3c9.png"&gt;&lt;br&gt;
&lt;a name="habracut"&gt;&lt;/a&gt;&lt;br&gt;
В Unicode 6.1 добавлена поддержка 200 вариаторов для иконок (смайликов) Emoji, так что теперь эти значки можно описывать как в чёрно-белом (text style), так и в цветном варианте (emoji style).&lt;br&gt;
&lt;br&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;26FA FE0E&lt;/td&gt;
&lt;td&gt;&lt;img alt="U+26FA+U+FE0E/" src="http://www.unicode.org/cgi-bin/varglyph?24-26FA-FE0E"&gt;&lt;/td&gt;
&lt;td&gt;TENT text style&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;26FA FE0F&lt;/td&gt;
&lt;td&gt;&lt;img alt="U+26FA+U+FE0F/" src="http://www.unicode.org/cgi-bin/varglyph?24-26FA-FE0F"&gt;&lt;/td&gt;
&lt;td&gt;TENT emoji style&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;26FD FE0E&lt;/td&gt;
&lt;td&gt;&lt;img alt="U+26FD+U+FE0E/" src="http://www.unicode.org/cgi-bin/varglyph?24-26FD-FE0E"&gt;&lt;/td&gt;
&lt;td&gt;FUEL PUMP text style&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;26FD FE0F&lt;/td&gt;
&lt;td&gt;&lt;img alt="U+26FD+U+FE0F/" src="http://www.unicode.org/cgi-bin/varglyph?24-26FD-FE0F"&gt;&lt;/td&gt;
&lt;td&gt;FUEL PUMP emoji style&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;Из других улучшений в Unicode 6.1: добавлены два новых свойства разбивки строк для текстов на японском языке и иврите; улучшена сегментация текстов для тайского, лаосского и схожих языков; улучшена обработка китайских текстов за счёт более точного мэппинга между упрощёнными и традиционными китайскими иероглифами. 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/typography/137639/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/typography/137639/</guid>
      <dc:creator>alizar</dc:creator>
    </item>
    <item>
      <title>Информационная безопасность / [Из песочницы] Взлом капчи LostFilm (php)</title>
      <link>http://habrahabr.ru/blogs/infosecurity/137601/</link>
      <pubDate>Sun, 05 Feb 2012 13:48:22 GMT</pubDate>
      <description>
      Решив скачать очередную серия Хауса я заглянул на &lt;a href="http://lostfilm.tv"&gt;LostFilm&lt;/a&gt; и обнаружил, что теперь на сайте, чтобы скачать нужно регистрироваться. &lt;br&gt;
Только я решил зарегистрироваться, как на глаза мне попалась их новомодная капча:&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/418/9af/89f/4189af89f236d9794ec358f274584f6c.png"&gt;&lt;br&gt;
&lt;br&gt;
Капча показалась мне довольно простой (хоть и не лишена она дольки оригинальности).&lt;br&gt;
&lt;a name="habracut"&gt;&lt;/a&gt;&lt;br&gt;
Итак, капча представляет собой изображение с тремя фигурами и надписью.&lt;br&gt;
Фигуры отображаются в случайном порядке, без каких либо искажений или изменений положения по осям (меняется только тип фигуры и порядок). Всего фигур четыре: круг (circle), квадрат (square), треугольник (triangle) и крестик (x).&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/435/8e3/2b9/4358e32b9de924c48ac4415adb6fff4b.png"&gt;&lt;br&gt;
&lt;br&gt;
Под фигурами выводится надпись, на которой указано какую из фигур необходимо выбрать.&lt;br&gt;
&lt;br&gt;
Всё это «чудо» располагается в файле &lt;a href="http://login.bogi.ru/captcha.php"&gt;login.bogi.ru/captcha.php&lt;/a&gt;, выводится стандартной phpGD библиотекой, размеры файла 170x95px, тип PNG.&lt;br&gt;
&lt;br&gt;
Регистрация происходит по отправке GET HTTP запроса (в данном случае XHR, но это никакого значения не имеет, т.к. проверки на подмену нет): &lt;br&gt;
&lt;code&gt;&lt;a href="http://bogi.ru/auth/registration?first=FIRST_NAME"&gt;bogi.ru/auth/registration?first=FIRST_NAME&lt;/a&gt;&lt;br&gt;
&amp;last=LAST_NAME&lt;br&gt;
&amp;nick=NICK&lt;br&gt;
&amp;email=EMAIL&lt;br&gt;
&amp;password=PASSWORD&lt;br&gt;
&amp;sex=1&lt;br&gt;
&amp;captcha=1&lt;br&gt;
&amp;sid=&lt;br&gt;
&amp;ajax=1&lt;br&gt;
&amp;target=http%3A%2F%2Flostfilm.tv%2F&lt;/code&gt;&lt;br&gt;
Больше всего нас интересуют поля email, password, captcha и sid. &lt;br&gt;
&lt;br&gt;
Через sid передаётся идентификатор капчи по которому и ведётся проверка подлинности.&lt;br&gt;
В параметре captcha указывается номер фигуры 1, 2 или 3.&lt;br&gt;
&lt;br&gt;
Полный путь к картинке капчи будет выглядеть так:&lt;br&gt;
&lt;a href="http://login.bogi.ru/captcha.php?sid=a0vxd4rgs0gsz5gh38gan903sac"&gt;login.bogi.ru/captcha.php?sid=a0vxd4rgs0gsz5gh38gan903sac&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;img src="http://login.bogi.ru/captcha.php?sid=a0vxd4rgs0gsz5gh38gan903sac" alt="image"&gt;&lt;br&gt;
&lt;br&gt;
Получим картинку из исходного кода страницы регистрации, например из скрытого поля sid:&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;&lt;code class="php"&gt;$reg = &amp;quot;/name=\&amp;quot;sid\&amp;quot; value=\&amp;quot;([^\/]+)\&amp;quot;/&amp;quot;;//&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;sid&amp;quot; value=&amp;quot;7cf6e89e9ee5dd19cdae1328208198&amp;quot; /&amp;gt;
preg_match($reg, $site_html, $sid);
$sid = $sid[1];&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;
&lt;br&gt;
Получив изображение, можно переходить к его разбору.&lt;br&gt;
Для начала я разделил всё изображение на две области:&lt;br&gt;
1) Фигуры&lt;br&gt;
2) Надпись&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/680/1c8/e5f/6801c8e5fa17598be7cb8ddabf6620ff.png"&gt;&lt;br&gt;
&lt;br&gt;
Так как ни фигуры, ни надпись не искажаются и не меняют свое положение, легко составить их матрицы для каждого случая (4*2 = 8 матриц).&lt;br&gt;
Например, так:&lt;br&gt;
&lt;pre&gt;&lt;code class="php"&gt;for($x=0; $x&amp;lt;$width; $x++)
{
    for($y=0; $y&amp;lt;$height; $y++)
    { 
        
        $color[$x][$y] = imagecolorat($img, $x, $y);
        //sign
        if($y &amp;gt; 70)
        {
            $sign[$x1][$y1]  .= ($color[$x][$y]==2147483647?0:1);
            $y1++;
        }
        //FIGURE 1
        if($y &amp;gt; 10 &amp;&amp; $y &amp;lt; 40 &amp;&amp; $x &amp;gt; 20 &amp;&amp; $x &amp;lt; 50)
        {
            $figures[0][$f0x] .= ($color[$x][$y]==16777215?0:1);
        }
        
        //FIGURE 2
        if($y &amp;gt; 10 &amp;&amp; $y &amp;lt; 40 &amp;&amp; $x &amp;gt; 70 &amp;&amp; $x &amp;lt; 100)
        {
            $figures[1][$f1x] .= ($color[$x][$y]==16777215?0:1);
        }
        
        //FIGURE 3
        if($y &amp;gt; 10 &amp;&amp; $y &amp;lt; 40 &amp;&amp; $x &amp;gt; 120 &amp;&amp; $x &amp;lt; 150)
        {
            $figures[2][$f2x] .= ($color[$x][$y]==16777215?0:1);
        }

    }

    if(count($sign)){$x1++; $y1=0;}

    if($x &amp;gt; 20 &amp;&amp; $x &amp;lt; 50) $f0x++;
    if($x &amp;gt; 70 &amp;&amp; $x &amp;lt; 100) $f1x++;
    if($x &amp;gt; 120 &amp;&amp; $x &amp;lt; 150) $f2x++;
}&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;
&lt;br&gt;
Здесь я делаю матрицы для 3 фигур ($figures) и матрицу для надписи ($sign). Фоновые цвета (у фигур белый, у надписи прозрачный) я заменяю на 0, остальные — 1. &lt;br&gt;
В итоге получаются матрицы наподобие такой:&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/53e/df4/c81/53edf4c813463f27c85088fa0dd7096e.png"&gt;&lt;br&gt;
&lt;br&gt;
Остаётся дело за малым, нужно составить банк матриц для всех фигур и надписей, а затем сравнивая разобранные изображения с заранее сохраненными матрицами можно будет установить номер фигуры, а следовательно — разгадать капчу.&lt;br&gt;
&lt;br&gt;
Код сверки довольно простой:&lt;br&gt;
&lt;pre&gt;&lt;code class="php"&gt;if($sign == $signs['x']) 
{
    if($figures[0] == $drawings['x']){$result = 1;}
    elseif($figures[1] == $drawings['x']){$result = 2;}
    elseif($figures[2] == $drawings['x']){$result = 3;}
    else{$result = 0;}
}
elseif($sign == $signs['circle'])
{
    if($figures[0] == $drawings['circle']){$result = 1;}
    elseif($figures[1] == $drawings['circle']){$result = 2;}
    elseif($figures[2] == $drawings['circle']){$result = 3;}
    else{$result = 0;}
}
elseif($sign == $signs['square'])
{
    if($figures[0] == $drawings['square']){$result = 1;}
    elseif($figures[1] == $drawings['square']){$result = 2;}
    elseif($figures[2] == $drawings['square']){$result = 3;}
    else{$result = 0;}
}
elseif($sign == $signs['triangle'])
{
    if($figures[0] == $drawings['triangle']){$result = 1;}
    elseif($figures[1] == $drawings['triangle']){$result = 2;}
    elseif($figures[2] == $drawings['triangle']){$result = 3;}
    else{$result = 0;}
}&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;
&lt;br&gt;
Здесь, $signs — матрицы надписей, $drawings — набор матриц фигур, $sign — текущая надпись, $figures — набор текущих фигур.&lt;br&gt;
&lt;br&gt;
В результате получаем номер картинки (или 0 если не удалось разобрать).&lt;br&gt;
&lt;br&gt;
Всё что осталось — отправить запрос на регистрацию:&lt;br&gt;
&lt;pre&gt;&lt;code class="php"&gt;$regURL = &amp;quot;http://bogi.ru/auth/registration?first=TestBot&amp;last=Bot1a&amp;nick=bot&amp;quot;.substr(uniqid(), 0, 5).&amp;quot;&amp;email=bot&amp;quot;.substr(uniqid(), 0, 5).&amp;quot;@gmail.com&amp;password=qwerty123&amp;sex=1&amp;captcha=&amp;quot;.$result.&amp;quot;&amp;sid=&amp;quot;.$sid.&amp;quot;&amp;ajax=1&amp;target=http%3A%2F%2Flostfilm.tv%2F&amp;quot;;
$data = file_get_contents($regURL);&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;
&lt;br&gt;
В ответ получаем &lt;br&gt;
&lt;code&gt;callback({&amp;quot;error&amp;quot;:0,&amp;quot;text&amp;quot;:&amp;quot;&amp;quot;});&lt;/code&gt;&lt;br&gt;
Что значит &lt;b&gt;«Ура! Регистрация пройдена успешно»&lt;/b&gt;.&lt;br&gt;
&lt;br&gt;
Хотел бы заметить, что эта капча крайне не надёжна, легко взламывается даже неопытным программистом за короткое время, и использовать её, если вы хотите оградить свой сайт от ботов и спамеров разумеется не стоит.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;P.S.&lt;/b&gt; В общем, на «взлом» этой капчи ушло около часа, на разбор одной картинки (вместе с парсингом и регистрацией) уходит около 5 секунд. На всякий случай, отчёт о проделанном я отправил в тех. поддержку LostFilm, а затем отправился смотреть 10 серию Хауса.
  		&lt;div class="clear"&gt;&lt;/div&gt;
    &lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/infosecurity/137601/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/infosecurity/137601/</guid>
      <dc:creator>ozver</dc:creator>
    </item>
    <item>
      <title>Информационная безопасность / Боитесь что снова закроют ex.ua? Не стоит — все можно скачать на сервере Министерства внутренних дел Украины</title>
      <link>http://habrahabr.ru/blogs/infosecurity/137634/</link>
      <pubDate>Sun, 05 Feb 2012 13:00:08 GMT</pubDate>
      <description>
  	Заходим на &lt;a href="ftp://91.227.69.2/Install/"&gt;91.227.69.2/Install/&lt;/a&gt; и качаем. Там и пиратская Windows с ключем и MS Office, и еще много чего:&lt;br&gt;
&lt;a name="habracut"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;img src="http://dl.dropbox.com/u/858463/Untitled-1.png" alt="image"&gt;&lt;br&gt;
&lt;blockquote&gt; &lt;br&gt;
inetnum: 91.227.69.0 — 91.227.69.255&lt;br&gt;
netname: MVS-NET&lt;br&gt;
descr: Ministry of Internal Affairs of Ukraine&lt;br&gt;
country: UA&lt;br&gt;
org: ORG-MoIA2-RIPE&lt;br&gt;
admin-c: MRA75-RIPE&lt;br&gt;
tech-c: MRA75-RIPE&lt;br&gt;
status: ASSIGNED PI&lt;br&gt;
mnt-by: RIPE-NCC-END-MNT&lt;br&gt;
mnt-lower: RIPE-NCC-END-MNT&lt;br&gt;
mnt-by: MNT-MVS&lt;br&gt;
mnt-routes: MNT-MVS&lt;br&gt;
mnt-domains: MNT-MVS&lt;br&gt;
source: RIPE # Filtered&lt;br&gt;
&lt;br&gt;
organisation: ORG-MoIA2-RIPE&lt;br&gt;
org-name: Ministry of Internal Affairs of Ukraine&lt;br&gt;
org-type: OTHER&lt;br&gt;
address: 10 Bohomoltsa str.,&lt;br&gt;
address: Kyiv 01024, Ukraine&lt;br&gt;
phone: +380 44 2561439&lt;br&gt;
fax-no: +380 44 2561697&lt;br&gt;
admin-c: MRA75-RIPE&lt;br&gt;
tech-c: MRA75-RIPE&lt;br&gt;
e-mail: &lt;br&gt;
e-mail: &lt;br&gt;
source: RIPE # Filtered&lt;br&gt;
mnt-by: MNT-MVS&lt;br&gt;
mnt-ref: MNT-MVS&lt;br&gt;
&lt;/blockquote&gt; 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/infosecurity/137634/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/infosecurity/137634/</guid>
      <dc:creator>inoname</dc:creator>
    </item>
    <item>
      <title>Информационная безопасность / Спецам из Рурского университета удалось взломать систему шифрования спутниковой телефонной связи</title>
      <link>http://habrahabr.ru/blogs/infosecurity/137633/</link>
      <pubDate>Sun, 05 Feb 2012 12:54:24 GMT</pubDate>
      <description>
  	&lt;img src="http://habrastorage.org/storage2/85e/a8e/65a/85ea8e65a3133aeba4ca69c80541b7c9.jpg"&gt;&lt;br&gt;
&lt;br&gt;
Да, «И на старуху найдется проруха», правильно говорит эта народная поговорка (или пословица, никогда не понимал между ними разницы). Специалисты по информационной безопасности из университета города Бохум (Рурский университет) на днях заявили об успешном взломе стандарта шифрования спутниковой связи, используемого для переговоров по спутниковым телефонам. При этом исследователям не понадобились экзотичные средства связи и многие тысячи долларов. Достаточно любого ПК и обычного радиоприемника.&lt;br&gt;
&lt;br&gt;
&lt;a name="habracut"&gt;&lt;/a&gt;Такой системы, при наличии специализированного программного обеспечения, хватит для того, чтобы без всяких проблем прослушивать телефонные переговоры находящихся неподалеку абонентов, использующих спутниковую телефонную связь. По мнению экспертов, все это делает уязвимыми спутниковые телефоны всего мира, при условии использования стандартов шифрования GMR-1 и GMR-2. Эксперты смогли провести так называемый реверс-инжиниринг указанных стандартов связи. &lt;br&gt;
&lt;br&gt;
Упомянутые стандарты шифрования спутниковой связи используются большинством провайдеров спутниковой телефонной связи, включая и такую крупную компанию, как Thuraya. Рабоают с GMR-1 и GMR-2 и военные средства связи, которые также автоматически становятся неустойчивыми к взлому. Стандартизацией алгоритмов шифрования для спутниковой связи занимается ETSI, и именно к этой организации немцы обратились прежде всего, надеясь, что разработчики из ETSI создадут более надежные стандарты шифрования.&lt;br&gt;
&lt;br&gt;
Немецкие специалисты проводят аналогию между сотовой связью и спутниковой связью, обращая внимание на то, что операторы мобильной связи уже занимаются внедрением более надежных средств шифрования в свои сети, в то время, как операторы спутниковой связи пока ничего не делают. Или, если и делают, то все это идет достаточно медленно — а ведь взломщики разных мастей не дремлют.&lt;br&gt;
&lt;br&gt;
Via &lt;a href="http://www.theinquirer.net/inquirer/news/2143626/researchers-crack-satellite-phone-encryption"&gt;theinquirer&lt;/a&gt; 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/infosecurity/137633/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/infosecurity/137633/</guid>
      <dc:creator>marks</dc:creator>
    </item>
    <item>
      <title>Android / История заблокированного приложения</title>
      <link>http://habrahabr.ru/blogs/android/137630/</link>
      <pubDate>Sun, 05 Feb 2012 11:55:30 GMT</pubDate>
      <description>
  	&lt;img src="http://www.mobilityfeeds.com/.a/6a0134862db50d970c0153923cd29c970b-250wi" align="left"&gt;Несколько дней назад я писал в &lt;a href="http://habrahabr.ru/blogs/webdev/137496/"&gt;этой &lt;/a&gt; статье о деталях того как можно скачать видео с YouTube. В этой же статье была ссылка на Android-приложение, использующее описанный алгоритм. В комментариях к той статье меня предупреждали, что приложение могут скоро заблокировать, так как оно нарушает правила использования сервиса YouTube. Так и случилось… Через двое суток после публикации приложение стало недоступно для установки из Android маркета. Цель написания этой статьи: показать на своем примере, какие реальные санкции со стороны Google ожидают разработчика если его приложение окажется «вне закона».&lt;br&gt;
Если интересно, добро пожаловать под кат.&lt;br&gt;
&lt;br&gt;
&lt;a name="habracut"&gt;&lt;/a&gt;&lt;br&gt;
Для начала приведу немного статистики:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;С момента публикации до блокировки прошло почти 48 часов;&lt;/li&gt;
&lt;li&gt;За это время приложение было установлено 26 943 раза;&lt;/li&gt;
&lt;li&gt;Благодаря встроенной рекламе я заработал около 100$ (правда снять их не получилось, подробности ниже).&lt;/li&gt;
&lt;/ul&gt;&lt;br&gt;
Разрабатывая YouTube Downloader я не рассчитывал, что подобное приложение будет пользоваться такой дикой популярностью. Учитывая, что я не прилагал особых усилий, чтобы как-то продвинуть его, кроме того, что запостил на своих страницах Facebook, Вконтакте, Twitter сообщение типа «написал новое приложение, если интересно можете установить». На разработку кода ушло в целом около 8 часов времени. Естественно, никакого особенного дизайна там не было, так как в дизайне я не слишком силен. Чисто ради интереса я так же встроил в приложение 2 самых маленьких баннера (320х50) доступных в системе &lt;a href="http://www.admob.com/"&gt;AdMob&lt;/a&gt;. Приложение было бесплатным. Была мысль сделать его платным, но я из Украины, поэтому на данный момент это оказалось невозможным.&lt;br&gt;
Уже через несколько часов после публикации было больше сотни установок. Вместе с установками пошли и клики по баннерам. Поначалу прирост составлял порядка 0.5$ в час, потом все больше и больше. К началу вторых суток на виртуальном счету было уже около 40$. Я уже было решил, что наткнулся на золотую жилу. Мысленно я представлял, что такими темпами через полгода буду рассекать по родному городу на BMW-Z4. Но не тут-то было…&lt;br&gt;
После очередного обновления страницы статистики в маркете я увидел, что приложение перешло в статус «Приостановлено». &lt;br&gt;
&lt;br&gt;
&lt;img src="http://dl.dropbox.com/u/26865519/abdroid_console.jpg"&gt;&lt;br&gt;
&lt;br&gt;
Почти одновременно с этим пришло письмо от саппорта следующего содержания:&lt;br&gt;
&lt;blockquote&gt;Hello,&lt;br&gt;
&lt;br&gt;
This is a notification that the application, YouTube Downloader, with package ID com.youtubedownloader has been removed from Android Market due to a violation of the Developer Content Policy. Please review the &lt;a href="http://market.android.com/support/bin/answer.py?answer=113474"&gt;Content Policies&lt;/a&gt;, &lt;a href="http://www.android.com/us/developer-distribution-agreement.html"&gt;Developer Distribution Agreement&lt;/a&gt;, and &lt;a href="http://www.google.com/mobile/android/market-policies.html"&gt;Business and Program Policies&lt;/a&gt; before you create or upload additional applications. Please also consult our &lt;a href="https://www.google.com/support/androidmarket/developer/bin/answer.py?&amp;amp;&amp;amp;answer=188189"&gt;guidelines on rating your application&lt;/a&gt;. If your developer account is still in good standing, and the nature of your application allows for it; please make any necessary revisions and upload a new version that is compliant with the above Terms.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Please be advised that violations may result in a suspension of your Android Market Publisher account, and may also result in actions, including possible suspension, taken against any associated Android Market Publisher, AdSense, Google Checkout, or AdMob accounts.&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
To appeal this decision, please reply to this email, or visit the &lt;a href="http://market.android.com/support"&gt;Android Market Help Center&lt;/a&gt; for additional information.&lt;br&gt;
&lt;br&gt;
Thanks,&lt;br&gt;
The Android Market Team&lt;/blockquote&gt;&lt;br&gt;
Я конечно расстроился, но не удивился (предупреждали ведь) и первым делом отправился читать &lt;a href="http://www.youtube.com/t/terms"&gt;правила пользования сервисом YouTube&lt;/a&gt; и нашел пункт, согласно которому можно однозначно сказать: скачивать видео с YouTube запрещено (кроме специально оговоренных случаев). Вот выдержка из правил:&lt;br&gt;
&lt;blockquote&gt;Content is provided to you AS IS. You may access Content for your information and personal use solely as intended through the provided functionality of the Service and as permitted under these Terms of Service. You shall not download any Content unless you see a “download” or similar link displayed by YouTube on the Service for that Content. You shall not copy, reproduce, distribute, transmit, broadcast, display, sell, license, or otherwise exploit any Content for any other purposes without the prior written consent of YouTube or the respective licensors of the Content. YouTube and its licensors reserve all rights not expressly granted in and to the Service and the Content.&lt;/blockquote&gt;&lt;br&gt;
Таким образом все даунлоадеры, сервисы, скрипты, расширения для браузера и тому подобные утилиты являются вне закона. Скачивать можно только разрешенные для скачивания видео, а все остальное от лукавого.&lt;br&gt;
Но блокировкой приложения санкции не закончились. На следующие сутки я попробовал зайти в аккаунт AdMob чтобы проверить сколько там «накапало» и не смог этого сделать: аккаунт заблокировали. Официальное сообщение при логине:&lt;br&gt;
&lt;blockquote&gt;Your account has been disabled for invalid activity or repeated policy violations. Some examples include recurring manual clicks or impressions, violation of our content policies which can be found &lt;a href="http://www.google.com/support/admob/bin/answer.py?answer=1307237"&gt;here&lt;/a&gt;, robots, automated click and impression generating tools, third-party services that generate clicks or impressions such as pay-to-click, pay-to-surf, autosurf, and click-exchange programs, or any deceptive software. If you have any questions or concerns about the actions we've taken, how you can appeal this decision, or invalid activity in general, you can find more information &lt;a href="http://www.google.com/support/admob/bin/answer.py?answer=1693551"&gt;here&lt;/a&gt;.&lt;br&gt;
&lt;/blockquote&gt;&lt;br&gt;
Получается, что все что было заработано при помощи нелегального приложения получить не удастся, питать ложных надежд не стоит. Более того, единственный способ получить свой аккаунт обратно, это заполнить &lt;a href="https://support.google.com/admob/as/bin/request.py?hl=ru&amp;amp;contact_type=disablement_appeal"&gt;эту форму&lt;/a&gt; и рассчитывать на снисхождение администрации. Но и это еще не все. Если аккаунт не разблокируют, а ты создашь новый и этот новый аккаунт будет уличен в связи с заблокированным, то и новый заблокируют. Получается пожизненный бан и в дальнейшем можно забыть о том, чтобы зарабатывать на своих приложениях с помощью AdMob. А это уже довольно серьезный демотиватор…&lt;br&gt;
&lt;br&gt;
&lt;h4&gt;Выводы&lt;/h4&gt;&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;Волне реально за короткие сроки и без особых вложений написать популярное приложение, которое будет приносить хороший дополнительный доход;&lt;/li&gt;
&lt;li&gt;Перед тем, как публиковать приложение, следует убедиться что оно не нарушает авторские права и не использует нелегальный контент;&lt;/li&gt;
&lt;li&gt;Если приложение будет нарушать чьи-либо права или использовать нелегальный контент оно обязательно будет заблокировано;&lt;/li&gt;
&lt;li&gt;Если нелегальное приложение показывало рекламу AdMob, соответствующий аккаунт так же будет заблокирован за накручивание кликов и получить его обратно будет крайне сложно.&lt;/li&gt;
&lt;/ul&gt;&lt;br&gt;
&lt;br&gt;
&lt;h4&gt;Вместо послесловия&lt;/h4&gt;&lt;br&gt;
Я рассказал эту историю, чтобы показать какие последствия ожидают тебя если ты невнимательно подойдешь к вопросу нарушения авторских прав. Впрочем, если ты такой же как и я, то наверняка решишь рискнуть. А вдруг пронесет?.. 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/android/137630/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/android/137630/</guid>
      <dc:creator>alexrewa</dc:creator>
    </item>
    <item>
      <title>Телефония / Что такое iNum, и чем мы можем помочь развитию данного проекта</title>
      <link>http://habrahabr.ru/blogs/telephony/135938/</link>
      <pubDate>Sun, 05 Feb 2012 11:06:03 GMT</pubDate>
      <description>
  	&lt;h4&gt;Что такое iNum&lt;/h4&gt;&lt;br&gt;
&lt;img src="http://inum.xaker1.ru/wp-content/themes/showtime/sliders/images/logo.png" alt="image" align="left"&gt;iNum, international Number, международный номер. Данные номера позиционируются как глобальные телефонные номера для нового мира, не зависящего от географической привязки, текущего местоположения, расстояния и государственных границ. &lt;br&gt;
&lt;br&gt;
iNum использует телефонный код +883, выделенный ITU (международный союз электросвязи) компании Voxbone для нужд IP телефонии, помимо голосовых вызовов на данные номера доступны и sms сообщения.&lt;br&gt;
&lt;br&gt;
Предполагается, что вызовы на данные номера с ТфОП будут равны по стоимости местным вызовам. Но увы, еще далеко не все ОпСоСы и обычные телефонные провайдеры маршрутизируют звонки в данном направлении (да и не все VoIP провайдеры тоже).&lt;br&gt;
&lt;br&gt;
Предоставление номера в массиве +883 абсолютно бесплатно. В России этим занимаются всего 2 провайдера:&lt;a href="http://www.youmagic.com/"&gt;YouMagic&lt;/a&gt; и &lt;a href="http://www.mob1.biz/"&gt;Mobile One&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;a name="habracut"&gt;&lt;/a&gt;&lt;br&gt;
&lt;h4&gt;Способы подключения&lt;/h4&gt;&lt;br&gt;
Существует 2 способа подключения к iNum.&lt;br&gt;
&lt;br&gt;
Первый, он же простейший — просто переадресовывать звонки на SIP номера _number_@inum.net (например, 883510000000091@inum.net), а sms сообщения отсылать по протоколу XMPP на тот же адрес (_number_@inum.net, например 883510000000094@inum.net)&lt;br&gt;
&lt;br&gt;
Второй — подать заявку через &lt;a href="http://inum.net/contact/"&gt;форму обратной связи&lt;/a&gt; и получить прямой доступ к iNum. В данном случае SMS сообщения оправляются в качестве SIP сообщений.&lt;br&gt;
&lt;br&gt;
&lt;h4&gt;Проверка маршрутизации&lt;/h4&gt;&lt;br&gt;
&lt;br&gt;
Существует 2 номера для проверки маршрутизации (везде по 8 нулей):&lt;br&gt;
Echo тест: 883510000000091&lt;br&gt;
DTMF тест: 883510000000092&lt;br&gt;
CallerID тест: 883510000000093&lt;br&gt;
SMS тест: 883510000000094 — оправляем свой email, в случае успешной доставки на email получаете уведомление.&lt;br&gt;
&lt;br&gt;
&lt;h4&gt;Чем Хабрасообщество может помочь развитию iNum?&lt;/h4&gt;&lt;br&gt;
Вариантов несколько:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;Проверить доступность вызовов и sms на iNum со своего провайдера (в т.ч. и в роуминге)&lt;/li&gt;
&lt;li&gt;Связаться со своим провайдером, с просьбой о поддержке iNum.&lt;/li&gt;
&lt;li&gt;Сообщить о iNum в Twitter, FaceBook, G+, etc.&lt;/li&gt;
&lt;li&gt;Общаться на форуме iNum, предлагать свои идеи для развития iNum&lt;/li&gt;
&lt;/ul&gt;&lt;br&gt;
&lt;br&gt;
Предлагаю проверять возможность звонков\отправки смс сообщений (не только мобильных и стационарных провайдеров, но и и VOIP), оставлять свои пожелания оператору и в комментариях сообщать о результатах — добавлю в табличку ниже. Так же оставлять результаты можно на форуме проекта.&lt;br&gt;
&lt;br&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;Оператор&lt;/td&gt;
&lt;td&gt;Поддерживает ли звонки по номерам iNum&lt;/td&gt;
&lt;td&gt;Поддерживает ли sms по номерам iNum&lt;/td&gt;
&lt;td&gt;Запрос отослан&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Beeline&lt;/td&gt;
&lt;td&gt;Нет&lt;/td&gt;
&lt;td&gt;Нет&lt;/td&gt;
&lt;td&gt;Да&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MTS&lt;/td&gt;
&lt;td&gt;Нет&lt;/td&gt;
&lt;td&gt;Нет&lt;/td&gt;
&lt;td&gt;Да&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Megafon&lt;/td&gt;
&lt;td&gt;Нет&lt;/td&gt;
&lt;td&gt;Нет&lt;/td&gt;
&lt;td&gt;Да&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tele2&lt;/td&gt;
&lt;td&gt;Нет&lt;/td&gt;
&lt;td&gt;Нет&lt;/td&gt;
&lt;td&gt;Да&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LMT&lt;/td&gt;
&lt;td&gt;Да&lt;/td&gt;
&lt;td&gt;Нет&lt;/td&gt;
&lt;td&gt;Да&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Life&lt;/td&gt;
&lt;td&gt;Нет&lt;/td&gt;
&lt;td&gt;Нет&lt;/td&gt;
&lt;td&gt;Да&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;U-tel&lt;/td&gt;
&lt;td&gt;Нет&lt;/td&gt;
&lt;td&gt;Нет&lt;/td&gt;
&lt;td&gt;Да&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ростелеком&lt;/td&gt;
&lt;td&gt;Нет&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;Да&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kyivstar&lt;/td&gt;
&lt;td&gt;Нет&lt;/td&gt;
&lt;td&gt;Нет&lt;/td&gt;
&lt;td&gt;Да&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;br&gt;
&lt;br&gt;
&lt;h4&gt;Ссылки&lt;/h4&gt;&lt;br&gt;
&lt;a href="http://inum.net"&gt;Официальный сайт проекта&lt;/a&gt;&lt;br&gt;
&lt;a href="http://inum.xaker1.ru"&gt;Русскоязычное зеркало проекта&lt;/a&gt;&lt;br&gt;
&lt;a href="http://www.inum.net/forum/"&gt;Форум проекта&lt;/a&gt; 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/telephony/135938/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/telephony/135938/</guid>
      <dc:creator>xaker1</dc:creator>
    </item>
    <item>
      <title>Интерфейсы / Перенос корпоративной почты на почту для домена от Яндекса</title>
      <link>http://habrahabr.ru/blogs/ui/136542/</link>
      <pubDate>Sun, 05 Feb 2012 10:07:01 GMT</pubDate>
      <description>
  	&lt;h1&gt;Дисклеймер&lt;/h1&gt;&lt;br&gt;
Может показаться, что в этом топике я ругаю Яндекс, но на самом деле все совсем не так. Эта история о том, как мелочи могут серьезно повлиять на впечатление от продукта, или помочь в решении проблемы. Также, я надеюсь, что эта статья поможет «собратьям по несчастью» пока в Яндексе занимаются доработками продукта.&lt;br&gt;
&lt;br&gt;
&lt;h1&gt;Предыстория&lt;/h1&gt;&lt;br&gt;
Одним прекрасным зимним днем решили мы перенести корпоративную почту на Яндекс, ибо старая почта доставляла лишние хлопоты: то надо было освобождать место для новых писем, то ящики переставали работать без видимых причин. В общем, по сравнению с тем, что было, Яндекс.почта представлялась чем-то далеким и прекрасным…&lt;br&gt;
&lt;a name="habracut"&gt;&lt;/a&gt;&lt;br&gt;
&lt;h1&gt;Приключения админа — тайна Яндекса&lt;/h1&gt;&lt;br&gt;
&lt;h2&gt;Начало&lt;/h2&gt;&lt;br&gt;
Первым делом я открыл хром, залогинился на Яндексе и попробовал подключить домен. Имя домена ввелось, кнопка нажалась и мне предстала надпись «Проверка подключения домена может занять продолжительное время». Минут 5 я сосредоточенно ожидал результата, после чего решил пройтись по офисам и решить организационные вопросы.&lt;br&gt;
&lt;br&gt;
Вернувшись через пару часов я обнаружил точно такую же картину и решил поискать решение в интернетах. К счастью, &lt;a href="http://habrahabr.ru/links/73490/#comment_2113829"&gt;полезный комментарий&lt;/a&gt; нагуглился почти сразу. Из него стало ясно, что у хрома и сафари есть «семейные» проблемы с работой яндексовского кода — через пару минут домен был успешно добавлен через IE и с его подтверждением проблем не возникло.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Заметка номер раз&lt;/b&gt;: Сообщение о «проверке подключения» малоинформативно — слишком уж растяжимое понятие «продолжительное время». Может быть, кто-то уже неделю ждет, пока эта продолжительность пройдет. О кроссбраузерности я скажу ниже…&lt;br&gt;
&lt;br&gt;
&lt;h2&gt;А настроить?&lt;/h2&gt;&lt;br&gt;
Есть у меня одна привычка: тестировать перед введением в эсплуатацию. Поэтому мне не очень понравился подход Яндекса, при котором ничего нельзя настроить, не прописав MX-записи. Значит, придется поработать во внеурочное время. Я разослал всем сообщения о том, что с завтра вся почта будет уже в другом месте и подготовился к рабочему вечеру.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Заметка номер два&lt;/b&gt;: Не стоит недооценивать песочницы и возможности опробовать продукт, особенно если он создан для администраторов. Из-за того, что пришлось работать «по-живому», сотрудникам предприятия добавилось лишнего геморрою при переносе почты.&lt;br&gt;
&lt;br&gt;
&lt;h2&gt;Дружественный интерфейс&lt;/h2&gt;&lt;br&gt;
Воспользовавшись &lt;a href="https://pdd.yandex.ru/help/section61/"&gt;инструкцией&lt;/a&gt;, я подключил поддомен для входа в почту. Поддомен mail уже активно использовался для старой почты (с него забирают почту Thunderbird'ы), поэтому я решил, что от использования поддомена pochta хуже не станет. На первый взгляд все работало нормально — форма входа отображалась. А проверять её было нечем — почтовые ящики нельзя создать до переезда.&lt;br&gt;
Забегая вперед, скажу, что затея провалилась: после входа в почту всем пользователям вываливалась вот такая «красота»:&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/32f/ccb/361/32fccb361ae4535e90b08a4db25fe55d.png"&gt;&lt;br&gt;
Паника, хаос и звонки админу были обеспечены.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Заметка номер три&lt;/b&gt;: Если Вы активно следите за безопасностью, то делайте так, чтобы пользователь понимал что «что-то не так» как можно раньше. Лучше бы предупреждение о безопасности выдавалось до ввода данных — тогда мне не пришлось бы вводить пользователей в заблуждение.&lt;br&gt;
&lt;br&gt;
&lt;h2&gt;Создание ящиков&lt;/h2&gt;&lt;br&gt;
Создать ящики заранее нельзя, добавить ящики пачкой нельзя — строго ручками по одному. Ну да ладно, на что не пойдешь ради светлого будущего… Подвох оказался там, где не ждали: интерфейс отчаянно тупил после добавления пары ящиков. Надпись «Выполняется...» могла висеть сколько угодно — приходилось постоянно перезагружать страницу, чтобы проверить результат действия. Рабочий вечер плавно перетекал в рабочую ночь…&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Заметка номер четыре&lt;/b&gt;: Новые технологии не всегда так хороши, как говорят маркетологи. Модный «аяксовый» интерфейс может перестать нормально работать даже у Яндекса. Так что иногда лучше по-старому, но надежно.&lt;br&gt;
&lt;br&gt;
&lt;h2&gt;Безопасность превыше всего&lt;/h2&gt;&lt;br&gt;
Не все ящики удалось создать со старыми паролями. У кого-то пароли были недостаточно заковыристыми, у кого-то недостаточно длинными. Из-за того, что в Яндексе такого не терпят, приходилось объяснять, что другая не только страница для входа, но и пароль. Не очень радостное известие среди нежданной рабочей ночи.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Заметка номер пять&lt;/b&gt;: Безопасность — это всегда неудобно. Не забывайте об этом и не фанатейте от всевозможных проверок и шифрований, пользователи вряд ли это оценят.&lt;br&gt;
&lt;br&gt;
&lt;h2&gt;Сохраняя лучшее&lt;/h2&gt;&lt;br&gt;
За годы работы в старой почте сотрудники собрали ценную переписку, которую необходимо было оставить в целости и сохранности. Причем непременно со структурой папок. Но перенос почты по IMAP тоже не пожелал работать в хроме, причем без каких-либо сообщений.&lt;br&gt;
&lt;br&gt;
В одном ящике лежали только системные уведомления, которые никто не сортировал. Я попробовал перенести его через POP3. И здесь оказался нежданный подвох — все письма начали переадресовываться. К счастью, я к тому времени не настроил всю переадресацию, и 10 000 писем свалились в тестовый ящик. Вот бы удивились пользователи…&lt;br&gt;
&lt;br&gt;
&lt;h2&gt;Писец подкрался незаметно&lt;/h2&gt;&lt;br&gt;
Подозревая Яндекс в нелюбви к творению конкурента, я открыл &lt;i&gt;старый добрый&lt;/i&gt; IE. Это мало чем помогло. Попытки открыть вкладку «Другой почтовый сервер» заканчиваются ничем — пользователи IE могут попытаться перенести почту только из gmail. Осознаю, что в Яндексе недолюбливают многих :).&lt;br&gt;
&lt;br&gt;
Когда все плохо, обычно почему-то вспоминают рыжих. Так произошло и в моем случае — на помощь был призвал Firefox. И случилось маленькое чудо, все заработало довольно сносно. Похоже, разработчики Яндекса пользуются только им.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Заметка номер шесть&lt;/b&gt;: Если вы разрабатываете веб-приложения — не спешите делить браузеры на хорошие и плохие или хоронить их. Оставьте это развлечение админам и пользователям. В большинстве случаев пользователь посчитает плохим веб-сервис а не браузер.&lt;br&gt;
&lt;br&gt;
&lt;h2&gt;Продолжая сохранять&lt;/h2&gt;&lt;br&gt;
Однако, перенос через IMAP сразу не захотел работать и в firefox'е. На этот раз уже с сообщением о «внутренней ошибке». Решаю отложить перенос на следующий день — утро обещает быть неспокойным.&lt;br&gt;
&lt;br&gt;
После долгих объяснений и обещаний «все будет» начинаю заниматься переносом переписки. Приходится переносить по одному ящику по ряду причин:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;В админке Яндекса можно увидеть лишь количество перенесенных писем, и то только во время переноса.&lt;/li&gt;
&lt;li&gt;В старой админке есть только размер ящика в мегабайтах.&lt;/li&gt;
&lt;li&gt;Сообщения об ошибках при переносе крайне неинформативны. Их всего два:&lt;br&gt;
«Проверьте правильность введенных данных и списка логинов и паролей. Затем попробуйте ещё раз.» и&lt;br&gt;
«Внутренняя ошибка. Попробуйте повторить операцию позже, или обратитесь в службу поддержки.»&lt;/li&gt;
&lt;li&gt;Нельзя понять, при переносе какого ящика возникла ошибка.&lt;/li&gt;
&lt;/ul&gt;&lt;br&gt;
&lt;br&gt;
Поэтому перенос шел медленно и печально: запустить процесс, дождаться окончания (некоторые ящики переносились 1-2 час), открыть старую почту, открыть новую почту и визуально сравнить их соответствие.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Заметка номер семь&lt;/b&gt;: Все должно быть сделано так просто, как это возможно. Но не проще.&lt;br&gt;
Чрезмерное упрощение интерфейса может быть вредно. В моем случае помогла бы любая дополнительная информация о ящиках. Но интерфейс яндекс-почты для домена слабо приспособлен для корпоративной почты — нет ни информации о ящиках, ни полей для комментариев (которые будут полезны другим администраторам компании). 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/ui/136542/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/ui/136542/</guid>
      <dc:creator>TipTop</dc:creator>
    </item>
    <item>
      <title>Mobile Development / Native vs Web. Часть 0: +1 аргумент в пользу разработки native мобильных приложений</title>
      <link>http://habrahabr.ru/blogs/mobiledev/137600/</link>
      <pubDate>Sun, 05 Feb 2012 08:33:33 GMT</pubDate>
      <description>
  	&lt;img src="http://lh4.googleusercontent.com/-t8ncnqUChyY/Ty0DyB_C46I/AAAAAAAAATw/Pd6MqQBzlvc/s400/NativeVsWeb.png" alt="image"&gt;&lt;br&gt;
&lt;br&gt;
&lt;i&gt;Как-то вечером мне захотелось написать статью о разработке приложений для мобильных устройств, но тут Остапа понесло...&lt;/i&gt;&lt;br&gt;
&lt;br&gt;
Так же как &lt;a href="http://www.youtube.com/watch?v=1yjjNiu4i3k"&gt;киборги в свое время заполонили всю планету&lt;/a&gt;, сейчас мобильные девайсы заполоняют нашу жизнь. А что это означает для нас, гиков? Новые возможности даже обсуждать не стоит — это вкусные плоды с дерева под названием “гаджет”. А раз есть плоды и толпы страждущих, то почему бы не начать их выращивать (я про плоды, выращивать же страждущих умеет лишь Apple )? И тот вырастит больше и вкуснее, у кого инструмент лучше. Какие есть подходы в мобильном приложениеводстве? Как минимум можно использовать старую проверенную web-платформу и заняться написанием мобильных web-приложений, либо освоить молодую отрасль разработки под iOS и Android. Выбор, не простой, и чаши весов качались крайне долго в моей голове, пока на сторону разработки приложений под iOS (потенциально и под Android) не пал один весомый аргумент, о котором сегодня и пойдет речь. Но для начала краткий экскурс в технологии и их возможности.&lt;br&gt;
&lt;a name="habracut"&gt;&lt;/a&gt;&lt;br&gt;
&lt;h4&gt;Что нам стоит инструмент освоить?&lt;/h4&gt;&lt;br&gt;
Как минимум нужно с чего-то начинать. Это могут быть либо книги, либо туториалы. В области мобильных web-приложений все просто: о без года совершеннолетнем JavaScript (прим. для танкистов: он в 1995 году появился), его сестре погодоке CSS и старшем брате HTML 1991 года рождения написано книг на терабайт, а может и более. Одним словом, сфера развитая, готового материала в ней много, как и специалистов (прим. автора: и тех кто считает себя таковыми), и процесс обучения не должен вызвать особых трудностей. Молодые бойцы могут начать тренироваться на кошках, разрабатывая обычные десктопные web-приложения, а затем планомерно перейти на мобильные платформы. Единственное, что для вас изменится — вы будете использовать jQuery Mobile с вкраплениями jQTouch вместо классического JQuery. В довесок вы получите GEO-API, события поворота устройства (увы, полноценного доступа к гироскопам и акселерометрам вам не дадут, так что написать аналог &lt;a href="http://itunes.apple.com/ru/app/multiponk/id366322908?mt=8"&gt;Multiponk&lt;/a&gt; у вас не выйдет) и довольно убогий мультитач. По вышеупомянутым “довескам”, кстати сказать, материал придется собирать в сети по крупицам, книг или руководств в стиле “Пишем современное работающее приложение для mobile web с поддержкой GEO, Rotation и Multitouch” вы скорее всего не найдете (или я плохо искал?).&lt;br&gt;
&lt;br&gt;
Хорошо, а как дело обстоит с нативными платформами? Т.к. нас интересует лишь рынок, то отвернем головы от MeeGo, Symbian, RIM. И вот мы видим симпотяжку робота четырех лет от роду и вкусненькое яблоко, появившееся на свет годом ранее. Из хороших моментов можно отметить, что за годы существования было написано много фундаментальных изданий как для iOS, так и для Android. Писать для Android несколько проще: в качестве язык SDK — Java, взнос за Android Market составляет 25 енотов единоразово, а SDK доступен почти под любую вменяемую OS. С iOS дела обстоят несколько сложнее, т.к. денежных вливаний будет много: вначале вам придется купить Mac, после того, как вам надоест возиться с хакинтошами, затем вы выложите около сотни енотов за аккаунт разработчика в год, без него, кстати говоря, вы не получите доступ к полной документации SDK и видео с WWDC (качаешь с торрентов?! — типун тебе в карму). За все эти денежно/временные вложения вы получите полноценную поддержку GEO-API, полноценный гироскоп (либо акселерометр), микрофон, камеру, доступ к фото галерее, хранилище данных, мультитач. Выбор плюшек явно богаче чем при web-разработке. &lt;br&gt;
&lt;br&gt;
&lt;h4&gt;Быстрее, выше, сильнее&lt;/h4&gt;&lt;br&gt;
Дьявол в деталях. А в мобильных устройствах, на мой взгляд, самый большой дьявол скрыт в скорости отклика приложения на действия пользователя. И ни один браузер не сможет работать быстрее, чем нативное приложение. Это может показаться несущественно: разница отклика на открытие вкладки, или выбора пункта меню может исчисляться в миллисекундах, но на мобильных устройствах она будет плавнее и быстрее на десяток миллисекунд, и это ощущение не будет вас покидать. Откройте &lt;a href="http://m.youtube.com/"&gt;m.youtube.com&lt;/a&gt; (а ведь это пожалуй одно из лучших web-приложений для мобильных устройств) и походите по сайту. Зайдите во вкладку категорий, поверните ваш гаджет. А теперь откройте встроенное приложение YouTube. И сравните. Детали незначительны, но с нативным приложением работать приятнее, чем с web-версией — плавность и скорость берут свое.&lt;br&gt;
&lt;br&gt;
&lt;h4&gt;Эталоны графического дизайна&lt;/h4&gt;&lt;br&gt;
Пожалуй, среди пользователей можно выделить две категории людей: одни кричат “Мы хотим свободы самовыражения в том, что мы создаем”, а другая категория просто делает удобные приложения выдержанные в едином стиле. С такими приложениями легче разобраться, понять, как они работают и какие возможности предоставляют. В web-приложениях же царит буйство красок и форм. Возможно необычный дизайн это и здорово, но чтобы его оценил пользователь, он должен с ним хоть немного поработать, а не закрыть вкладку со словами “не понимаю, зачем оно мне?”. В нативных приложениях платформа диктует принципы построения дизайна — проще сделать классический дизайн, чем придумывать что-то свое. Web же всегда отличался разнообразием подходов к построению пользовательского интерфейса. &lt;br&gt;
&lt;br&gt;
&lt;h4&gt;Аргумент&lt;/h4&gt;&lt;br&gt;
“Gillette — рекламируем станки, а подымаем на лезвиях”. Помимо прямого зарабатывания денег на мобильных приложениях (дядь, купи приложение всего за 1 вечный и зеленый!), сами App-маркеты (AppStore, Android Market) являются потрясающим маркетинговым инструментом! Вы можете использовать мобильное приложение для продажи вашего сервиса.&lt;br&gt;
&lt;br&gt;
Сделав мобильное приложение под Android или iOS, вы запускаете его в уже существующую сеть распространения товаров в категорию FREE. И так же как в обычных супермаркетах, люди пришедшие за молоком могут обратить внимание на йогурт-новинку, так и в AppStore человек пришедший за текстовым редактором может заинтересоваться вашим приложением “Блокнотус”. Но ведь у вас, как у разработчика “блокнотуса” истинная цель привлечь пользователей к вашему сервису и не дать &lt;a href="http://www.evernote.com/"&gt;слонам&lt;/a&gt; голодать ;-)&lt;br&gt;
&lt;br&gt;
Планшеты и прочие мобильные устройства вошли в моду. Люди регулярно ищут новинки в AppStore и Android Market для своих карманных зверюшек. Вероятность того, что они наткнутся на ваше приложение — очень велика. А т.к. оно быстро работает, имеет каноническую графику и простой интерфейс управления, то пользователь сможет понять его и заинтересоваться им. Овладев же его интересом вы овладеваете потенциальным заказчиком услуг вашего интернет-сервиса.&lt;br&gt;
&lt;br&gt;
&lt;i&gt;P.S.0:&lt;/i&gt; это первая статья из серии сравнения процесса разработки мобильных native и web приложений. Несмотря на то, что я убедился (я надеюсь, и вы тоже) в доминировании native-платформы, иногда встречаются задачи, для которых web — это быстрое и дешевое решение, от которого лишь требуется принимать пару строк текста от пользователя и возвращать результат (даю волю вашей фантазии!).&lt;br&gt;
&lt;i&gt;P.S.1:&lt;/i&gt; интересный факт, ранее Apple активно продвигал &lt;a href="http://www.apple.com/webapps"&gt;Apple WebApps&lt;/a&gt; — каталог web-приложений для iOS. Но видимо что-то пошло не так и каталоги прекратили пополняться.&lt;br&gt;
&lt;i&gt;P.S._the_last:&lt;/i&gt; побудили меня на творчество две статьи: &lt;a href="http://beyondplm.com/2012/01/23/plm-mobile-optimized-sites-vs-mobile-apps"&gt;раз&lt;/a&gt; и &lt;a href="http://niallohiggins.com/2011/09/23/3-pros-cons-mobile-apps-with-jquery-mobile-and-html5/"&gt;два&lt;/a&gt;. 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/mobiledev/137600/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/mobiledev/137600/</guid>
      <dc:creator>redcraft</dc:creator>
    </item>
    <item>
      <title>Биоинформатика / Практическая биоинформатика ч.5. Секвенирование ДНК</title>
      <link>http://habrahabr.ru/blogs/bioinformatics/137626/</link>
      <pubDate>Sun, 05 Feb 2012 08:01:45 GMT</pubDate>
      <description>
  	&lt;img src="http://habrastorage.org/storage2/b2d/3a8/e29/b2d3a8e290b637c3ecbcb423237059ac.jpg" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;В стремлении рассказать о самом сложном, как можно быстрее, очевидно, забываешь о самом простом. И, в моем случае, не только о простом, но и о важном связывающем звене. Причинно-следственная связь слегка нарушилась. В моих предыдущих статьях (&lt;a href="http://habrahabr.ru/blogs/bioinformatics/137069/"&gt;1&lt;/a&gt;, &lt;a href="http://habrahabr.ru/blogs/bioinformatics/137082/"&gt;2&lt;/a&gt;, &lt;a href="http://habrahabr.ru/blogs/bioinformatics/137267/"&gt;3&lt;/a&gt;, &lt;a href="http://habrahabr.ru/blogs/bioinformatics/137453/"&gt;4&lt;/a&gt;) описаны математический аспект и программирование, но в них практически нет биологии. Поэтому эта статья о том, какую именно часть молекулярной биологии пытаются раскрыть, предсказать, увидеть и решить описываемые мною программы и алгоритмы.&lt;br&gt;
&lt;a name="habracut"&gt;&lt;/a&gt;&lt;br clear="all"&gt;
&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Картинка с изображением яйцеклетки и сперматозоидов на поверхности символизирует пропущенный мною этап, когда все только зарождается. Интересный факт, что объединение двух клеток дает начало примерно 10 триллионам клеткам человеческого тела.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Начнем с небольшого экскурса в молекулярную биологию. Я постараюсь описать простыми словами сложные вещи, опуская детали. ДНК находится в клетке. Мы рассматриваем именно ДНК и процессы, которые протекают на ней, нас не очень интересует, где именно в клетке она расположена. Необходимо уточнить, что примеры будут приведены для клеток &lt;a href="http://en.wikipedia.org/wiki/Eukaryote"&gt;eukaryotic&lt;/a&gt;, с которыми я работаю, но скорее всего многие вещи подойдут и для &lt;a href="http://en.wikipedia.org/wiki/Prokaryote"&gt;prokaryotic&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Все процессы в клетке начинаются с ДНК, именно на ДНК находятся последовательности &lt;a href="http://en.wikipedia.org/wiki/Nucleotide"&gt;нуклеотидов&lt;/a&gt;, копирование которых в дальнейшем отвечает за реакции и преобразования в клетках. Нас интересует процесс копирования, называемый &lt;a href="http://en.wikipedia.org/wiki/Transcription_(genetics)"&gt;транскрипцией&lt;/a&gt;. Процесс копирования транскриптов и количество полученных конечных продуктов называется &lt;a href="http://en.wikipedia.org/wiki/Gene_expression"&gt;генной экспрессией.&lt;/a&gt; Но мы называем генной экспрессией и измеряем именно количество копирований транскрипта (вне зависимости от количества полученных конечных продуктов). &lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ниже приведена иллюстрация из учебника по биологии, называемая “четыре основных генетических процесса, происходящие в клетке” (см. Рис. 1). В данный момент я занимаюсь процессами, изображенными на картинке между номерами 1 и 2. Технологии, которые помогают их изучить, называются DNA-seq и RNA-seq. Эти технологии могут использоваться как по отдельности, так и совместно. В этой статье я более подробно остановлюсь на механизмах работы DNA-seq.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/b61/b51/a8b/b61b51a8b5e332a86e84cc0261ede874.png"&gt;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Рис. 1&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/9c2/ffd/43d/9c2ffd43d1c0b77467d43a4af1df3944.png" align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;В качестве частного случая DNA-seq рассмотрим “DNA-seq Pol II” (также см. в “&lt;a href="http://habrahabr.ru/blogs/bioinformatics/137453/"&gt;Готовимся работать с ZINBA&lt;/a&gt;”). В основе понимания полученного с ее помощью результата лежит процесс траскрипции. Важную роль в процессе траскрипции играет белок РНК-полимераза (&lt;a href="http://en.wikipedia.org/wiki/RNA_polymerase"&gt;RNA Polymerase&lt;/a&gt;). Полимераза закрепляется на специальном участке ДНК (см. Рис. 2.1), который называется промоутером. Пока проходят подготовительные операции процесса транскрипции (этап Initiation), полимераза остается закрепленной на промоутере. Полимераза начинает создавать копию верхней спирали от старт сайта (начало копируемой цепочки, на рисунке обозначено синей точкой). Потом, двигаясь со скоростью примерно 1000 оснований в минуту (при температуре 37C), она копирует участок ДНК до стоп сайта (конец копируемой цепочки, на рисунке обозначен красной точкой). Еще раз подчеркну, что в положении промоутера полимераза находится большую часть времени, а на каждом участке копируемой ДНК — меньшее. Для дальнейшего изучения ученых интересует промоутер и старт сайт, являющиеся необходимым условием начала транскрипции. Также в промоутере заложена информация о количестве копирований, что тоже является немаловажным объектом изучения. &lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Процесс DNA-seq Pol II с осаждением проходит в несколько этапов: 1. фиксируем текущее положение полимеразы химически или температурно (фиксирование полимеразы означает, что процессы остановились, полимераза не двигается более по ДНК); 2. произвольным способом (ультразвук, &lt;a href="http://en.wikipedia.org/wiki/Micrococcal_nuclease"&gt;MNase &lt;/a&gt;и т.д.) нарезаем ДНК (в большинстве случаев разрезаются незащищённые полимеразой участки ДНК); 3. с помощью иммунопреципитации хроматина (антитела, иммунного ко всем остальным белкам, кроме Pol II) выбираем те участки, которые содержат полимеразу. В результате получаем фрагменты около 150 оснований в длину, которые в дальнейшем отправим в секвенатор. Следует подчеркнуть, что нарезка полимеразы происходит не строго по краям. Таким образом процесс получается следующим: мы подготовили миллионы одной и той же ДНК из разных клеток, зафиксировали полимеразы, большая часть которых находится на промоутере, а часть случайным образом распределена по гену. Результат оцифровки описанного процесса мы наблюдаем на следующем рисунке, приведенном в одной из статей (см. Рис.3). Зелёным обведены риды, определяющие предполагаемый промоутер (риды с высокой плотностью), а за ним располагаются риды с низкой плотностью, соответствующие полимеразе в движении.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/a20/4c2/66b/a204c266b79679219700a145fd53e93b.png"&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Рис. 3&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Далее я кратко расскажу о некоторых других белках. В верхней части рисунка 4 можно увидеть, каким образом упакована ДНК (см. Рис. 4.1.), а в нижней части рисунка более детально изображен процесс транскрипции, о котором говорилось выше (см. Рис. 4.2.). Как видно на рисунке 4.1., упаковка ДНК очень плотная, двойная спираль намотана на нуклеосому, длина витка ДНК составляет примерно 146 оснований. Нуклеосома состоит из белков — гистонов. Гистоны могут иметь различные модификации, модификация гистонов — тема огромной отдельной статьи. Антитела разрабатываются на конкретную модификацию гистона, и именно участки ДНК, которые обмотаны вокруг этой модификации гистона, будут осаждены (отфильтрованы). Приведем пример обозначения модификации: H3K4Me3. Он будет читаться, как триметилирование лизина на четвертой позиции гистона H3. Таких модификаций гистонов может быть много, и все они раскиданы по ДНК, поэтому в статье “&lt;a href="http://habrahabr.ru/blogs/bioinformatics/137453/"&gt;Готовимся работать с ZINBA&lt;/a&gt;” на рисунке 2, где изображен ландшафт H3K27Me3 (триметилирование лизина 27 гистона 3), наблюдается такое частое нагромождение пиков.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Существуют технологии DNA-seq без осаждения, когда ДНК просто нарезается, например, при помощи DNase фермента, и мы получаем огромное количество фрагментов. В большинстве случаев фрагменты будут соответствовать виткам, которые обмотаны вокруг нуклеосом, поскольку DNase режет между ними. Получившиеся фрагменты отправляем в секвенатор. Считается, что при глубоком секвенировании (огромное количество фрагментов, около 100 миллионов ридов, идет в секвенатор, пока является дорогим удовольствием) по получившемуся ландшафту можно распознать, где именно находится белок. Причем ландшафт будет иметь вид, как у вулкана, небольшое углубление на вершине должно соответствовать белку. Чаще всего DNase метод используют, чтобы найти участки ДНК, чувствительные к этому ферменту, т.е. те участки, которые лучше всего режутся.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/6d7/d5e/2b2/6d7d5e2b247f0903dd316c9c4684d1eb.png"&gt;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Рис. 4&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;На нижней части рисунка мы видим РНК-полимеразу, а также разноцветные облака и овалы, размещенные в ней и на ДНК. Эти дополнительные элементы называют транскриптационными факторами, они играют важную роль в регуляции генной экспрессии. Транскриптационные факторы могут как увеличивать, так и уменьшать или просто блокировать возможность присоединения других транскипционных факторов, тем самым неявно приводя к регуляции экспресии. Они также являются белками. Как и ко всем остальным белкам, к ним разрабатываются антитела. В качестве примера транскриптационного фактора возьмем белок &lt;a href="http://en.wikipedia.org/wiki/CTCF"&gt;CTCF&lt;/a&gt;, одна из его ролей состоит в блокировании работы других транскриптационных факторов. DNA-seq эксперименты с ним описаны в статье “&lt;a href="http://habrahabr.ru/blogs/bioinformatics/137453/"&gt;Готовимся работать с ZINBA&lt;/a&gt;”, соответствующий CTCF иммунопреципитации хроматина ландшафт можно увидеть на следующей &lt;a href="http://habrastorage.org/storage2/a18/5f5/7bf/a185f57bf97a494a167b3d275c33abe0.png"&gt;картинке&lt;/a&gt;. Как видно, регионы, защищенные этим белком, небольшие, поэтому и разброс в окрестности невысокий, всего 150-200bp.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Примерная схема видов DNA-seq экспериментов:&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/a71/73e/434/a7173e434742f764f5b6d452db8b36a1.jpg"&gt;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Рис. 5&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Схему я разбил на четыре условных уровня. Первый уровень — фиксация, она может проводиться с формальдегидом или без. Второй уровень — способ нарезки ДНК. Третий уровень — фильтрация по размеру, в дополнении к этому фильтрация может проводиться с помощью иммунопреципитации хроматина. Четвертый уровень — способ секвенирования.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Таким образом, каждому виду проводимого эксперимента соответствует способ секвинирования. В зависимости от способа секвенирования создаются различные виды фрагментов. Рассмотрим те эксперименты, результатами которых являются фрагменты, содержащие в себе белок. Белок может быть размещен по центру кусочка или с одной из двух сторон кусочка. Секвенатор декодирует не весь отрезок, а только его небольшую часть со стороны 5’ конца спирали каждого фрагмента. Декодированные кусочки называются ридами. На рисунке 6 красными точками отмечены 5’ концы каждой спирали. Синей и красной стрелками отмечены начала ридов. Эти начала распределены случайным образом от 5’ конца каждой спирали до границы белка. &lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/5bd/bb7/220/5bdbb7220bed1b236c6085a9158fa0db.png"&gt;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Рис. 6&lt;br&gt;
 &lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;В эксперименте участвует множество исходных молекул, их ДНК нарезают в некоторой окрестности белка, когда множество ридов отображают на координатную ось (одного из белков), получается картинка, похожая на эту:&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/146/a7e/801/146a7e8011019dfd33f5fbca99dc446f.png"&gt;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Рис. 7&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Выше координатной оси (темно-синего цвета) отображены риды с верхней спирали («+» strand), а ниже оси (светло-синего цвета) отображены риды с нижней спирали («-» strand). Точно сказать, где был белок невозможно, предполагается, что центр связывания белка расположен между этими двумя пиками. &lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Полученная картинка напоминает сигнал, и поэтому к данным стали применять некоторые алгоритмы для анализа сигналов, один из которых описан в этой статье &lt;a href="http://habrahabr.ru/blogs/algorithm/135281/"&gt;habrahabr.ru/blogs/algorithm/135281/&lt;/a&gt; — “Что такое скрытые модели Маркова”.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Надеюсь, после этой статьи предмет стал более понятен, и дальнейшее изучение не будет вызывать легкий ужас. Если кто-то заинтересуется более подробным изложением материала, есть замечательная книжка Molecular Cell Biology под редакцией Lodish, в которой очень информативно и доступно изложены основы молекулярной биологии.&lt;br&gt;
Review is prepared by Andrey Kartashov, Cincinnati, OH, porter@porter.st. 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/bioinformatics/137626/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/bioinformatics/137626/</guid>
      <dc:creator>Portah</dc:creator>
    </item>
    <item>
      <title>Обработка изображений / Алгоритм ImageZero (IZ): быстрое сжатие без потери качества</title>
      <link>http://habrahabr.ru/blogs/image_processing/137624/</link>
      <pubDate>Sun, 05 Feb 2012 02:35:00 GMT</pubDate>
      <description>
  	JPEG является стандартом в области компрессии изображений и это один из самых быстрых алгоритмов, но у него одна проблема: JPEG сжимает с потерей качества. Если фотография подвергается многократной обработке, это неприемлемо, и в таких случаях приходится искать альтернативу. Хочется чего-нибудь быстрого и при этом с приемлемой степенью сжатия.&lt;br&gt;
&lt;br&gt;
Беглый взгляд на &lt;a href="http://www.imagecompression.info/gralic/LPCB.html"&gt;бенчмарки&lt;/a&gt; losless-алгоритмов на выборке фотографий не даёт оснований для радости: оказывается, PNG очень быстр на распаковке, но исключительно медленно работает на сжатии изображений. &lt;br&gt;
&lt;br&gt;
Есть ещё JPEG-LS, хороший на первый взгляд. Но на него патент у компании HP, так что без шансов на использование. Немецкий программист Кристоф Фек (Christoph Feck) решил исправить ситуацию и &lt;a href="http://encode.ru/threads/1471-iz-New-fast-lossless-RGB-photo-compression"&gt;выпустил свой алгоритм ImageZero&lt;/a&gt; сжатия фотографий без потери качества. Он примерно в 20 раз быстрее PNG, а по степени сжатия сравним с JPEG-LS. &lt;br&gt;
&lt;a name="habracut"&gt;&lt;/a&gt;&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/d91/9a6/8e9/d919a68e9173908c483956338574b99f.jpg"&gt;&lt;br&gt;
&lt;sup&gt; London Bridge (Tower Bridge): Reflection on the River Thames. Автор фотографии: &lt;a href="http://www.flickr.com/photos/anirudhkoul/"&gt;Anirudh Koul&lt;/a&gt;&lt;/sup&gt;&lt;br&gt;
&lt;br&gt;
Результаты обработки &lt;a href="http://www.flickr.com/photos/anirudhkoul/3499471010/sizes/o/in/photostream/"&gt;полноразмерной&lt;/a&gt; версии фотографии London Bridge (4507?3512 пикселей)&lt;br&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Метод&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Размер файла&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Сжатие&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Распаковка&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Без сжатия&lt;/td&gt;
&lt;td&gt;46380 КБ&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JLS&lt;/td&gt;
&lt;td&gt;14984 КБ&lt;/td&gt;
&lt;td&gt;6,6 с&lt;/td&gt;
&lt;td&gt;7,3 с&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PNG&lt;/td&gt;
&lt;td&gt;16256 КБ&lt;/td&gt;
&lt;td&gt;42,4 с&lt;/td&gt;
&lt;td&gt;2,4 с&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IZ&lt;/td&gt;
&lt;td&gt;15496 КБ&lt;/td&gt;
&lt;td&gt;1,2 с&lt;/td&gt;
&lt;td&gt;1,3 с&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;Судя по первым независимым тестам, IZ претендует на то, чтобы быть вообще самым быстрым lossless-алгоритмом для 24-битных фотографий, и по степени сжатия тоже хорошо выглядит. &lt;br&gt;
&lt;br&gt;
Автор алгоритма &lt;a href="https://kdepepo.wordpress.com/2012/01/30/fast-lossless-color-image-compression/"&gt;пишет&lt;/a&gt;, что IZ не предназначен для greyscale-изображений или синтетических изображений, но он может его приспособить для этих задач. Сейчас IZ лучше всего работает на полноцветных фотографиях и может использоваться в системах хранения, для генерации уменьшенных копий для предпросмотра, ну и как будущий формат для иконок.&lt;br&gt;
&lt;br&gt;
&lt;a href="https://gitorious.org/imagezero"&gt;Исходный код ImageZero&lt;/a&gt; (под лицензией BSD) 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/image_processing/137624/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/image_processing/137624/</guid>
      <dc:creator>alizar</dc:creator>
    </item>
    <item>
      <title>Arduino / Механический дисплей на Arduino — работа над ошибками</title>
      <link>http://habrahabr.ru/blogs/arduino/137444/</link>
      <pubDate>Sat, 04 Feb 2012 23:35:48 GMT</pubDate>
      <description>
  	&lt;a href="http://habrahabr.ru/blogs/arduino/135709/"&gt;Механический дисплей из лего и Arduino&lt;/a&gt;, о котором я писал в начале января оказался, по-моему, довольно неплох для конструкции собранной за вечер. Однако в комментариях справедливо указали на возможности его улучшения. Заодно, читая отзывы, я узнал что такое «POV», спасибо всем откликнувшимся!&lt;br&gt;
&lt;br&gt;
&lt;h4&gt;Выявленные недостатки&lt;/h4&gt;&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;Малый размер «экрана», недостаточный для написания слова «Хабрахабр»&lt;/li&gt;
&lt;li&gt;Монохромность&lt;/li&gt;
&lt;li&gt;Неравномерность шага пикселей, расчитанного простым делением времени цикла на разрешение&lt;/li&gt;
&lt;li&gt;Разочарование ожидавших увидеть видео хаброюзеров&lt;/li&gt;
&lt;li&gt;Необходимость вручную побитово кодировать изображение каждой буквы&lt;/li&gt;
&lt;li&gt;Общая нестабильность конструкции — «дисплей» при работе сильно раскачивается&lt;/li&gt;
&lt;li&gt;Холостой обратный ход планки со светодиодами. Они подсвечиваются только во время движения справа налево&lt;/li&gt;
&lt;/ul&gt;&lt;br&gt;
За прошедшие четыре недели конструкцию удалось доработать, и вот что получилось в результате:&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/f01/12d/1bb/f0112d1bb4309a1e299131029a9bf36a.jpg" alt="Улучшенная модель дисплея"&gt;&lt;br&gt;
&lt;a name="habracut"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;h4&gt;Работа над ошибками&lt;/h4&gt;&lt;br&gt;
&lt;h5&gt;Стабильность и размер&lt;/h5&gt;&lt;br&gt;
Улучшить механическую стабильность оказалось проще всего — у ребёнка были позаимствованы кубики Duplo (lego двойного размера совместимое со стандартным), и из них собрана прочная и тяжёлая платформа. После этого удлинил кривошип и нарастил качающуюся планку со светодиодами, тем самым увеличив горизонтальное разрешение. Сперва думал поставить более мощный мотор, но хватило замены батареек на стабилизированный блок питания и небольшого повышения напряжения. При 10,3 вольт моя конструкция делает ровно 6 полных колебаний в секунду.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/fb8/1d1/95b/fb81d195b04da6bce49094d183306715.jpg" alt="механика"&gt;&lt;br&gt;
&lt;br&gt;
На переднем плане видны две оптические пары — теперь можно ловить и начало обратного хода.&lt;br&gt;
&lt;br&gt;
&lt;h5&gt;Цвет&lt;/h5&gt;&lt;br&gt;
Сделать дисплей цветным казалось лёгкой задачей — достаточно заменить одноцветные светодиоды на RGB. Сказано — сделано. Общие аноды через ограничительные резисторы соединил с шиной данных, а катоды спаял вместе поцветно и подсоединил к выходам Arduino, ответственным за выбор цвета. Когда горят все восемь светодиодов, по каждому проводу выбора цвета стекает до 39 миллиампер, при том что Arduino может максимум 40. Для гарантии добавил три MOSFET транзистора IRF 540 — по одному на каждый цвет. Получилось примерно такая схема (показаны лишь три RGB светодиода):&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/676/bbb/ff2/676bbbff211b6377a03d03584b301566.jpg" alt="Схема включения светодиодов"&gt;&lt;br&gt;
&lt;br&gt;
Качающаяся планка соединяется с контроллером 8+3 тонкими проводами. Немало, но если их аккуратно проложить, то движению они не мешают.&lt;br&gt;
&lt;br&gt;
&lt;h6&gt;Грабли номер один&lt;/h6&gt;&lt;br&gt;
Подаём логическую единицу на нужный анод (D6-D13), единицей-же открываем ответственный за цвет транзистор(D0-D2) и светодиод зажигается. Если на управляющие цветом выходы подать 001, то загорается красный, 010 — зелёный, 011… снова красный, хотя ожидался жёлтый.&lt;br&gt;
&lt;br&gt;
Чтение даташита показало, что красный светодиод зажигается при напряжении в 2,0 Вольта, тогда как зелёному и синему нужны 3,2. В результате после открытия красного диода напряжение практически не растёт, только увеличивается ток, и зелёный с синим не открываются. Решения проблемы для приведёной схемы подключения с ограничивающими ток резисторами в цепи анода я так и не нашёл. Если подключить резисторы к катодам, то на каждом диоде будет падать своё, нужное ему напряжение, но резисторов понадобится 24 штуки, что для моей подвижной конструкции слишком тяжело. Гугль нашёл несколько микросхем драйверов матриц светодиодов, но у меня в хозяйстве их не было. В результате обошёл проблему программно, быстро зажигая цвета по очереди. При задержке в 50 микросекунд на цвет, за время показа одного пикселя элементарные цвета успевают смениться много раз и сливаются в один.&lt;br&gt;
&lt;br&gt;
&lt;h6&gt;Грабли номер два&lt;/h6&gt;&lt;br&gt;
В неподвижном положении устройство теперь показывает ожидаемые цвета, пора опробовать его в движении. Запускаю мотор, и обнаруживаю следующую проблему:&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/ed4/559/b11/ed4559b110721e8e7d722f84a2156661.jpg"&gt;&lt;br&gt;
&lt;br&gt;
В RGB cветодиоде красный и синий элементы находятся на противоположных сторонах корпуса, и в результате вместо сиреневого цвета получаем две хорошо различимые отдельные полоски — красную и синюю. На стыке красной и зелёной областей тоже хорошо видна разница в расположении светоизлучающих точек. Эту проблему удалось полностью решить заменой прозрачных светодиодов на матовые.&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/8fd/990/c86/8fd990c863b26a1afb58c01d1ddac666.jpg"&gt;&lt;br&gt;
&lt;br&gt;
&lt;h5&gt;Механическая развёртка&lt;/h5&gt;&lt;br&gt;
&lt;br&gt;
Удлинение планки и увеличение её размаха повысило теоретическое количество пикселей, однако нисколько не решило проблемы неравномерности движения. В крайнем правом положении около двух десятков миллисекунд светодиоды практически неподвижны, в то время как слева они мгновенно меняют направление движения на противоположное. Мотор неидеален и скорость вращения зависит от нагрузки. Гибкий пластик и люфты в соедиениях окончательно запутывают картину. Учебник по теоретической механике я в последний раз открывал лет пятнадцать назад, так что даже не пытался рассчитать динамику движения моего дисплея, и сразу решил измерять как он ведёт себя в реальности. Это оказалось не так уж трудно: впереди поставил маску с равномерно расположенными отверстиями, направил на неё свет яркой лампы, а на конце планки закрепил фоторезистор. &lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/d06/90a/30a/d0690a30a0612f199bb409504eeefdce.jpg"&gt;&lt;br&gt;
&lt;br&gt;
Осталось написать несложную программу, которая сперва делает несколько холостых циклов и усредняет для точности их период, а потом собирает через АЦП данные об освещённости фотодиода. Каждое измерение сопровождается вызовом функции micros, выдающей количество прошедших микросекунд. Массив с данными по последовательному порту перекачал в компьютер и проанализировал в Экселе.&lt;br&gt;
&lt;br&gt;
Вот как выглядит напряжение на фоторезисторе — отлично видно когда на него попадал свет сквозь отверстия в маске:&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/d94/0df/511/d940df51112eb9307974352b2e97566b.jpg"&gt;&lt;br&gt;
&lt;br&gt;
А вот нелинейность во всей своей красе, хорошо что не стал пытаться это смоделировать и рассчитать:&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/696/dde/ce1/696ddece1a1121d797c7d3e7cb950234.jpg"&gt;&lt;br&gt;
&lt;br&gt;
Эксель умеет аппроксимировать произвольные наборы данных полиномами до пятого порядка, так что через несколько минут в моих руках была заветная формула описывающая движение:&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/004/b1d/6fe/004b1d6fe006f46ffff01a5cf5611ff3.jpg"&gt;&lt;br&gt;
&lt;br&gt;
Здесь &lt;b&gt;y&lt;/b&gt; это задержка в микросекундах от начала цикла, &lt;b&gt;x&lt;/b&gt; — номер виртуального пикселя меняющийся от 1 до 20 (у меня в калибровочной маске было 20 отверстий). Давая x дробные значения, можно расчитать задержки для произвольного разрешения. Я остановился на 54 пикселях.&lt;br&gt;
&lt;br&gt;
&lt;h5&gt;Пиксели&lt;/h5&gt;&lt;br&gt;
Для проверки формулы написал простенькую программку, выводящую попеременно 0x55 и 0xAA для подсвечивания пикселей в шахматном порядке. &lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/861/dc0/f47/861dc0f4735d8650c70e92595050ba16.jpg"&gt;&lt;br&gt;
&lt;br&gt;
Экселевская математика не подвела, и к равномерности шага растра претензий нет, но вот сами пиксели получились вместо прямоугольных овальными. Не удивительно, ведь формула рассчитывает задержки для центра идеального пикселя, а реальный светодиод имеет 5 мм в диаметре, и засвечивает прилегающие области. Прямоугольные пиксели проще рисовать прямоугольными светодиодами, чего я и добился, наклеив по бокам непрозрачный скотч:&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/73a/9b2/859/73a9b2859452be04daf6a03427f0b9e8.jpg"&gt;&lt;br&gt;
&lt;br&gt;
Контрольная «шахматная доска» подтвердила, что так действительно намного лучше:&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/63d/f8b/e9f/63df8be9fb8fc0ea30b81582db70416d.jpg"&gt;&lt;br&gt;
&lt;br&gt;
&lt;h5&gt;Программирование&lt;/h5&gt;&lt;br&gt;
Алгоритм простой и сложностей не предвиделось, однако в определённый момент написания кода программа стала давать странные, непредсказуемые, результаты. Оказалось, что кончилась оперативная память, которой в Arduino UNO всего два килобайта. В микроконтроллере нет следящей за распределением памяти операционной системы, так что никаких ошибок он не замечает и о переполнении не сигнализирует. Я предполагал, что объявленные как const массивы хранятся в Flash-памяти, однако выяснилось, что это не так. Точнее говоря, они сперва лежат действительно в постоянной памяти, но при запуске копируются в RAM, хотя их и нельзя изменять. Чтобы этого избежать, переменные нужно объявлять через PROGMEM, про это &lt;a href="http://arduino.cc/en/Reference/PROGMEM"&gt;нашлась статья &lt;/a&gt; на сайте ардуино. В общем «читайте маны, они рулез».&lt;br&gt;
&lt;br&gt;
&lt;h6&gt;Руссификация&lt;/h6&gt;&lt;br&gt;
Рисовать буквы по-точкам неудобно, так что положил в тот же PROGMEM таблицу знакогенератора и написал функцию отрисовки букв. С английскими символами никаких проблем, а вот вместо русских выводилась белиберда. В качестве среды разработки использовался VisualStudio 2010 с плагином &lt;a href="http://www.visualmicro.com/"&gt;Visaul Micro Arduino&lt;/a&gt;. Несмотря на то, что файлы исходников сохранялись в кодировке Win1251 (один байт на символ), строка вида&lt;br&gt;
&lt;br&gt;
&lt;code&gt;char* text = &amp;quot;ХАБРАХАБР&amp;quot;;&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
объявляла массив длиной 27+1 байт, в котором каждая тройка имела одинаковое содержание, к исходному тексту никакого отношения не имеющее. Тот же код из-под среды Arduino UNO пишет по два байта на русский символ, скорей всего в UTF8. Проблему удалось обойти, закодировав строку посимвольно:&lt;br&gt;
&lt;br&gt;
&lt;code&gt;char russianText[] = {'Х', 'А', 'Б', 'Р', 'А', 'Х', 'А', 'Б', 'Р', '\0'};&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Теперь, как и ожидалось, получаем 9 байт текста плюс ещё один на завершающий ноль. Запускаем программу и видим… совсем другие символы. Исследование показало, что большая русская буква «А» компилируется в код 144, что никак не соответсвует ожидаемому для Win1251 коду 192. Не поленился и&lt;br&gt;
почитал в Интернете &lt;a href="http://aspell.net/charsets/cyrillic.html"&gt;про возможные кодировки русских букв&lt;/a&gt;, в том числе и весьма экзотические. Ни в одной из них А не транслируется в 144. Единственное приходящее в голову объяснение, это представление русских букв в юникоде, после чего из буквы А (U+0410) вырезается младший байт, к которому почему-то добавляется 128. Почему так — непонятно, но после добавления к коду букв нужной константы, они встали на свои места.&lt;br&gt;
&lt;br&gt;
Вот что получилось в итоге:&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/2bb/2b7/9c6/2bb2b79c669f306abb413d2604ff447b.jpg"&gt;&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/e7b/ab5/ea4/e7bab5ea4adf6a50f30e21d4f0848ee4.jpg"&gt;&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/51e/ad6/8ac/51ead68ac9458126f880c2598fd94492.jpg"&gt;&lt;br&gt;
&lt;br&gt;
&lt;h5&gt;Видео&lt;/h5&gt;&lt;br&gt;
А как же без него?&lt;br&gt;
&lt;iframe width="560" height="349" src="http://www.youtube.com/embed/y0etgiwv1nc" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;br&gt;
&lt;br&gt;
При длительности цикла в 170 миллисекунд получается почти точно шесть кадров в секунду. У камеры же — 30 кадров в секунду, и из-за кратности частот на видео заметно сильное мерцание. Если смотреть глазами, то картинка выглядит намного стабильней.&lt;br&gt;
&lt;br&gt;
&lt;h5&gt;Что дальше?&lt;/h5&gt;&lt;br&gt;
Вывод изображения при обратном ходе развёртки пока не запрограммировал. Это позволило бы удвоить частоту кадров, но усложнило бы программирование анимации и прокрутки текста. При рисовании только во время прямого хода у микроконтроллера есть целых 80 миллисекунд, чтобы неторопливо рассчитать следующий кадр. 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/arduino/137444/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/arduino/137444/</guid>
      <dc:creator>commanderxo</dc:creator>
    </item>
    <item>
      <title>Каскадные Таблицы Стилей / Красивые кнопки для Twitter Bootstrap</title>
      <link>http://habrahabr.ru/blogs/css/137620/</link>
      <pubDate>Sat, 04 Feb 2012 23:07:23 GMT</pubDate>
      <description>
  	Классное расширение для фреймворка Twitter Bootstrap v2.0 — &lt;a href="http://charliepark.org/bootstrap_buttons/"&gt;CSS-генератор кнопок&lt;/a&gt;. С помощью ползунков выбираете цвет, насыщенность, яркость и выпуклость кнопки.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://charliepark.org/bootstrap_buttons/"&gt;&lt;img src="http://habrastorage.org/storage2/bc4/51e/d5f/bc451ed5f05f2c9690246dd5857caf56.png"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Потом забираете CSS-код из соседнего окошка. И больше никогда не кодируйте цвет кнопок вручную! &lt;br&gt;
&lt;br&gt;
P.S. Ещё один генератор кнопок: &lt;a href="http://css-tricks.com/examples/ButtonMaker/"&gt;Button Maker&lt;/a&gt;, ну и вдобавок: &lt;a href="http://www.colorzilla.com/gradient-editor/"&gt;CSS генератор градиентов&lt;/a&gt;. 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/css/137620/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/css/137620/</guid>
      <dc:creator>alizar</dc:creator>
    </item>
    <item>
      <title>Анимация и 3D графика / Daz Productions раздает бесплатно лицензии на Bryce 7 Pro, Daz Studio и Hexagon</title>
      <link>http://habrahabr.ru/blogs/3d_graphics/137617/</link>
      <pubDate>Sat, 04 Feb 2012 21:14:44 GMT</pubDate>
      <description>
  	Отличная новость для любителей и профессионалов в области трехмерной графики и анимации! Компания &lt;a href="http://www.daz3d.com"&gt;Digital Art Zone&lt;/a&gt;, также известная как Daz Productions, в рамках ограниченной промо-акции раздает бесплатно лицензии на три своих флагманских продукта: Bryce 7 Pro, Daz Studio 4 и Hexagon 2. Общая стоимость лицензий на все три продукта превышает 800$, но сейчас в течении ограниченного времени мы можем получить полноценную лицензию на все три продукта совершенно бесплатно!&lt;br&gt;
&lt;br&gt;
Кому интересно, проходите под кат, присаживайтесь поудобнее.&lt;a name="habracut"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Данные продукты не является лидирующими на рынке, в среде специалистов по трехмерной графике и дизайнеров продукты относят к бюджетной категории. Тем не менее, эти продукты достаточно широко используются в индустрии, и весьма известны. Вероятно, компания таким образом хочет расширить свое комьюнити и тем самым также и свое присутствие на рынке.&lt;br&gt;
&lt;br&gt;
&lt;h4&gt;Вкратце о програмных пакетах&lt;/h4&gt;&lt;br&gt;
&lt;h5&gt;Bryce 7 Pro&lt;/h5&gt;&lt;br&gt;
Этот пакет, возможно, является едва ли не самым известным из всех трех, т. к. он был знаком не только профессионалам, но и любителям поиграться с трехмерной графикой на постсоветском пространстве еще с конца «лихих девяностых». Основное назначение его состоит в ландшафтном моделировании, но этим пакет не ограничивается. Достаточно удобный интерфейс дает возможность создавать относительно сложные ландшафтные сцены даже новичку, впервые пытающемуся оседлать Bryce.&lt;br&gt;
&lt;br&gt;
Последняя седьмая версия содержит ряд очень долгожданных – на момент ее выхода – новых функций, из которых особенно следует отметить наконец-то появившуюся возможность экспортирования растений (ранее экспортировать можно было только поверхности и камни), cистему частиц, модуль быстрого размещения объектов.&lt;br&gt;
&lt;br&gt;
Этот ролик содержит примеры работ, созданных в Bryce 7:&lt;br&gt;
&lt;br&gt;
&lt;iframe width="560" height="349" src="http://www.youtube.com/embed/cUbvi9d-7U8" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;br&gt;
&lt;br&gt;
Bryce является основным конкурентом известного пакета Vue xTreme от компании E-on Software, широко используемого на сегодняшний день в кинематографии и создании трехмерных мультфильмов, а также в создании графики для компьютерных и видео-игр. Считается, что Bryce, конечно, уже уступает Vue xTreme, однако, не все разделяют это мнение.&lt;br&gt;
&lt;br&gt;
&lt;h5&gt;Daz Studio 4&lt;/h5&gt;&lt;br&gt;
Также достаточно известный в своей нише пакет, основным направлением которого является создание и анимация персонажей. Широко используется в игровой индустрии. &lt;br&gt;
&lt;br&gt;
Относительно прост в обращении и позволяет создавать персонажей манипулируя над заготовками, поставляемыми вместе с пакетом или отдельно.&lt;br&gt;
&lt;br&gt;
Ниже вы можете посмотреть ролик, в котором показан процесс создания персонажа. &lt;br&gt;
&lt;br&gt;
&lt;iframe width="560" height="349" src="http://www.youtube.com/embed/TpxHLXXctrE#!" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;br&gt;
&lt;br&gt;
Словом, когда вам нужно создавать много подобных персонажей, этот инструмент очень и очень удобен.&lt;br&gt;
&lt;br&gt;
&lt;h5&gt;Hexagon 2&lt;/h5&gt;&lt;br&gt;
Интересный инструмент для моделирования, позволяющий работать как в традиционном режиме, так и в режиме „лепки”. Предназначен исключительно для моделирования, с анимацией и рендером сам по себе работать не позволяет. &lt;br&gt;
&lt;br&gt;
На &lt;a href="http://www.daz3d.com/i/products/hexagon/inaction?"&gt;этой странице&lt;/a&gt; вы можете посмотреть примеры работ, созданных в Hexagon.&lt;br&gt;
&lt;br&gt;
Из интересных возможностей также cтоит отметить экспорт в TGA-формате, позволяющем использовать плоды ваших трудов в Second Life.&lt;br&gt;
&lt;br&gt;
Все три инструмента вместе составляют вполне пригодную и доступную 3D-студию, которая может быть использована как в реальных проектах, так и просто для обучения, быстрого старта или ради удовольствия.&lt;br&gt;
&lt;br&gt;
&lt;h4&gt;Как получить лицензию?&lt;/h4&gt;&lt;br&gt;
Чтобы получить лицензию, необходимо зарегистрироваться как покупатель на &lt;a href="http://www.daz3d.com"&gt;сайте Daz Productions&lt;/a&gt;, зайти в магазин и «купить» лицензию на каждый из этих продуктов. Вводить данные вашего счета не нужно, достаточно предоставить только имя и адрес электронной почты. &lt;br&gt;
&lt;br&gt;
После «покупки» заходите в свой аккаунт. Из раздела 'Available Downloads' скачиваете установочные файлы, серийные номера доступны в разделе 'Available Serial Numbers'. Все три пакета доступны для систем Windows и Mac OS X. 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/3d_graphics/137617/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/3d_graphics/137617/</guid>
      <dc:creator>dimitrymd</dc:creator>
    </item>
    <item>
      <title>Википедия / Список списков списков</title>
      <link>http://habrahabr.ru/blogs/wikipedia/137616/</link>
      <pubDate>Sat, 04 Feb 2012 21:13:01 GMT</pubDate>
      <description>
  	Тематические списки — это легендарная особенность Википедии. Чего там только нет: &lt;a href="http://en.wikipedia.org/wiki/Lists_of_dragons"&gt;список драконов&lt;/a&gt; и &lt;a href="http://ru.wikipedia.org/wiki/Список_интегралов"&gt;список интегралов&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/List_of_scientist_pairs"&gt;список научных пар&lt;/a&gt; и &lt;a href="http://en.wikipedia.org/wiki/List_of_solar_eclipses_seen_from_Ukraine"&gt;список солнечных затмений, видимых с Украины&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
Этих списков тысячи, некоторые из них — даже списки других списков. Но сейчас Википедия вышла но новую степень просветления: в оглавлении появился &lt;a href="http://en.wikipedia.org/wiki/List_of_lists_of_lists"&gt;список списков списков&lt;/a&gt;. Что замечательно, он содержит не только разные списки списков, но также самого себя. &lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/f84/07f/adf/f8407fadf23cb8a2b4ea9443ea323b8d.png"&gt;&lt;br&gt;
&lt;br&gt;
(Отдельно ведётся список списков, которые не содержат самих себя). Похоже, ещё немного — и Википедия познает нирвану. 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/wikipedia/137616/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/wikipedia/137616/</guid>
      <dc:creator>alizar</dc:creator>
    </item>
    <item>
      <title>Git / Проблемы с производительностью Git на большом репозитории</title>
      <link>http://habrahabr.ru/blogs/Git/137615/</link>
      <pubDate>Sat, 04 Feb 2012 20:20:55 GMT</pubDate>
      <description>
  	Джошуа Редстоун (Joshua Redstone) &lt;a href="http://thread.gmane.org/gmane.comp.version-control.git/189776"&gt;пожаловался&lt;/a&gt; в листе рассылки Git на некоторые проблемы с производительностью, которые возникли у Facebook на большом репозитории. Они создали синтетический репозиторий и провели тесты.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Тестовый репозиторий&lt;/b&gt;&lt;br&gt;
4 млн коммитов, линейная история и около 1,3 млн файлов. Размер папки .git — около 15 ГБ, её упаковали командой repack:&lt;br&gt;
&lt;br&gt;
&lt;code&gt;git repack -a -d -f --max-pack-size=10g --depth=100 --window=250&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
Процесс занял около двух суток на хорошей машине (много памяти, SSD). Размер индексного файла составил 191 МБ. &lt;br&gt;
&lt;a name="habracut"&gt;&lt;/a&gt;&lt;br&gt;
Скорость работы Git в таком репозитории совсем не радует. Результаты выполнения команд на сервере с обычным HDD и &amp;gt;10 ГБ RAM (команды повторялись несколько раз, с «горячим» кэшем ОС они работают быстрее, чем в первый раз):&lt;br&gt;
&lt;br&gt;
&lt;code&gt;git status&lt;/code&gt;&lt;br&gt;
39 минут с «холодным» кэшем, 24 секунды с «горячим» кэшем;&lt;br&gt;
&lt;br&gt;
&lt;code&gt;git blame&lt;/code&gt;&lt;br&gt;
44 минуты и 11 минут;&lt;br&gt;
&lt;br&gt;
&lt;code&gt;git add&lt;/code&gt; (добавление пары символов в конце файла и добавление его)&lt;br&gt;
7 секунд и 5 секунд;&lt;br&gt;
&lt;br&gt;
&lt;code&gt;git commit -m &amp;quot;foo bar3&amp;quot; --no-verify --untracked-files=no –quiet --no-status&lt;/code&gt;&lt;br&gt;
41 минута и 20 секунд.&lt;br&gt;
&lt;br&gt;
Разработчики из Facebook говорят, что такие результаты им не подходят, и просят совета, как исправить ситуацию. Вероятно, под Git нужно выделять специализированные отдельные серверы, и как-то поддерживать на уровне файловой системы, чтобы ускорить отдельные операции (например, определять, какие файлы изменились). Придётся либо переписывать код Git для поддержки отдельных серверов, либо создавать надстройку со скриптами как своеобразный интерфейс доступа.&lt;br&gt;
&lt;br&gt;
Коллега Редстоуна &lt;a href="http://news.ycombinator.com/item?id=3549679"&gt;пояснил&lt;/a&gt;, что снижение производительности объясняются большим количеством структур O(n) в Git, что на больших размерах вызывает проблемы. Сам индексный файл полностью переписывается с нуля при малейшем изменении, а в большом проекте его размер превышает 100 МБ. Кроме того, Git использует &lt;code&gt;lstat&lt;/code&gt; для проверки изменения файлов, так что на миллионе файлов возникают тормоза с дисковыми операциями, особенно в холодном кэше.&lt;br&gt;
&lt;br&gt;
В общем, разработчики из Facebook намекают на то, что хорошо бы переписать Git для улучшения производительности. Разделить репозиторий на несколько частей они отказываются. 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/Git/137615/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/Git/137615/</guid>
      <dc:creator>alizar</dc:creator>
    </item>
    <item>
      <title>Железо / Как мы погрузили телефон в подсолнечное масло</title>
      <link>http://habrahabr.ru/blogs/hardware/137607/</link>
      <pubDate>Sat, 04 Feb 2012 19:58:09 GMT</pubDate>
      <description>
  	&lt;a href="http://habrahabr.ru/blogs/hardware/137607/"&gt;&lt;img src="http://img-fotki.yandex.ru/get/5503/123838762.2/0_7b745_d9375f84_XXL.jpg" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Как всем известно, подсолнечное масло является весьма неплохим диэлектриком. Масло можно даже использовать в системе охлаждения компьютера. И мы решили провести эксперимент с мобильным телефоном, погруженным в подсолнечное масло. &lt;br&gt;
&lt;br&gt;
Но для пущей убедительности мы установили ip-камеру прямо напротив дисплея телефона, что позволит любому желающему позвонить на погруженный мобильник и увидеть свой номер телефона. Пустячек, а приятно.&lt;br&gt;
&lt;br&gt;
По этой ссылке расположена &lt;b&gt;онлайн камера&lt;/b&gt;: &lt;a href="http://goldphone.tv/webcam/"&gt;телефон в масле&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Как начинался эксперимент&lt;/b&gt;, смотрите на этом видео:&lt;br&gt;
&lt;a name="habracut"&gt;&lt;/a&gt;&lt;br&gt;
&lt;iframe width="560" height="349" src="http://www.youtube.com/embed/ybDRjBcAnoE" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;br&gt;
&lt;br&gt;
А это &lt;b&gt;ролик с опытом&lt;/b&gt;, в котором мы выясняли — какая жидкость окажет самое пагубное влияние на телефон. Ну и после вдохновились на установку ip-камеры.&lt;br&gt;
&lt;br&gt;
&lt;iframe width="560" height="349" src="http://www.youtube.com/embed/AhAm8FJvrPc" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt; 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/hardware/137607/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/hardware/137607/</guid>
      <dc:creator>Bredun</dc:creator>
    </item>
    <item>
      <title>Блог компании Round Lake / Охота на Open Source</title>
      <link>http://habrahabr.ru/company/roundlake/blog/137611/</link>
      <pubDate>Sat, 04 Feb 2012 19:55:09 GMT</pubDate>
      <description>
	&lt;h2&gt;Вступление в охоту&lt;/h2&gt;&lt;br&gt;
Мы верим, что за Open-Source будущее, и стараемся всячески его &lt;a href="https://github.com/roundlake"&gt; приближать&lt;/a&gt;. И мы предлагаем вам присоединиться.&lt;br&gt;
&lt;br&gt;
Если взглянуть на Open-Source на западе, то за стройными колоннами технологий, которые все мы знаем и любим, будут проглядывать головы коммерческих компаний. Создавая что-то, вы облегчаете жизнь не только коллегам, но и нам. Мы экономим время (а значит деньги) и создаем прекрасное с использованием вашего труда. Мы обязаны уважать это и помогать всем, чем только можем. Мы присоединяемся к нашим западным коллегам и предлагаем гранты для открытых проектов.&lt;br&gt;
&lt;br&gt;
С Марта 2012 года мы открываем две программы:&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;Программа спонсирования OSS-проектов&lt;/li&gt;
&lt;li&gt;Проект “Охота на Open-Source”&lt;/li&gt;
&lt;/ol&gt;Программа спонсирования существующих проектов будет анонсирована отдельно, а сегодня мы хотим предложить вам поучаствовать в нашей охоте.&lt;br&gt;
&lt;a name="habracut"&gt;&lt;/a&gt;&lt;br&gt;
Очень часто в работе нам не хватает удобной реализации того или другого. Если у нас есть возможность исправить ситуацию, мы исправляем ее и раздаем результат сообществу. Но что делать, если в данный момент под рукой нет ресурсов? Тогда мы предлагаем сделать это вам!&lt;br&gt;
&lt;br&gt;
&lt;h2&gt;Как это работает?&lt;/h2&gt;&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;Мы открыто публикуем наши потребности – будь то конечные продукты или программные компоненты.&lt;/li&gt;
&lt;li&gt;Если у вас есть желание сделать что-то для людей, или вы видите и свою потребность в нашем списке – вы связываетесь с нами.&lt;/li&gt;
&lt;li&gt;Мы спонсируем работу над этим проектом, публикуя его код под открытой лиценцией (BSD/MIT) на ваш выбор. Авторство, разумеется, остается за вами. Единственное наше общее требование – размещение проекта на Github в рамках нашей организации.&lt;/li&gt;
&lt;li&gt;В разработке принимает участие наш представитель в качестве помощника и человека, который может точнее сформулировать наши потребности. Нашими потребностями, вы, разумеется, не ограничены. Но их реализация – часть данной программы :). Для настоящих джедаев это означает дополнительную голову, а для тех, кто только встал на путь силы – опытного наставника, который поможет сделать все правильно. &lt;/li&gt;
&lt;li&gt;Вместе мы доводим проект до первого релиза и дальше, в зависимости от обстоятельств:&lt;ul&gt;
&lt;li&gt;оставляем проект на поддержку сообщества&lt;/li&gt;
&lt;li&gt;продолжаем спонсирование дальнейшего развития проекта, переводя его в программу поддержки OSS&lt;/li&gt;
&lt;li&gt;забираем на самостоятельную поддержку, если автору проект больше не интересен&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br&gt;
&lt;h2&gt;Чем можно заняться прямо сейчас?&lt;/h2&gt;&lt;br&gt;
Прямо сейчас у нас есть две потребности, связанные с развитием RICH-приложений на JS. На наш взгляд, переход большей части разработки в браузер не за горами, настало время активно готовиться.&lt;br&gt;
&lt;br&gt;
&lt;h3&gt;Парсер inline-документации для CoffeeScript (a-la JavaDoc)&lt;/h3&gt;&lt;br&gt;
CoffeeScript достаточно быстро перерос из игрушки Jeremy в полноценный язык. И как бы он ни старался максимально оставаться JavaScript'ом, в нем есть существенные отличия. Эти отличия накладывают ограничения на использование с ним инструментов, предназначенных для JS. Какое-то время назад появился CoffeeLint, а следом за ним и CoffeeDoc. К сожалению последний пошел по пути docco и у Coffee так и не появилось строгого аналога JSDoc и YARD.&lt;br&gt;
&lt;br&gt;
С тех пор как Coffee поселился в Rails, он поселился и в наших сердцах. Больше того, наша практика показала, что количество производимого Coffee начинает обгонять все остальные языки. С таким его количеством строгий стандарт инлайн-документации – необходимость.&lt;br&gt;
&lt;br&gt;
&lt;h3&gt;Помощь в документировании нашего открытого JS-фреймворка&lt;/h3&gt;&lt;br&gt;
Конечно мы пробовали Backbone, Spine, ExtJS, Sproutcore (+Ember.JS). К сожалению, все они отдают приложение во власть разработчику, определяя только пяток модульных сущностей. И если на первый взгляд, свобода – это здорово, то на практике подход Conventions over Configurations доказал свою эффективность в тех же Rails.&lt;br&gt;
&lt;br&gt;
Его зовут Joosy и он живет с нами три месяца. За это время мы успели построить на его основе два крупных проекта, которые готовятся к запуску и продолжаем использовать для всех новых. Joosy позволяет максимально прозрачно перенести большую часть Rails-разработки (и следовательно исполнения) в браузер.&lt;br&gt;
&lt;br&gt;
Фреймворк взрослеет с невероятной скоростью, но с переходным возрастом пришли и проблемы. Тестов и человеческой памяти уже не хватает даже нам, а уж для релиза и вовсе понадобится не только сухая внутрення документация API, но и полноценный гайд с примерами.&lt;br&gt;
&lt;br&gt;
Мы хотим пригласить к участию в его разработке человека, готового с нашей постоянной помощью детально разобраться в проекте и скоординировать разработку его документации.&lt;br&gt;
&lt;br&gt;
&lt;h2&gt;Куда писать?&lt;/h2&gt;&lt;br&gt;
Вы можете связаться с нами, используя адрес &lt;a href="mailto:hello@roundlake.ru"&gt;hello@roundlake.ru&lt;/a&gt; или через личную почту хабрапользователей &lt;a href="http://habrahabr.ru/users/inossidabile/" class="user_link"&gt;inossidabile&lt;/a&gt; и &lt;a href="http://habrahabr.ru/users/xternal/" class="user_link"&gt;Xternal&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
Вопросы взаимодействия обсуждаются индивидуально и нацелены на то, чтобы оно было не только эффективным, но и комфортным для обеих сторон.&lt;br&gt;
&lt;br&gt;
И, конечно, с удовольствием обсудим «Охоту» в комментариях ниже.

	

	

	
&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/company/roundlake/blog/137611/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/company/roundlake/blog/137611/</guid>
      <dc:creator>Xternal</dc:creator>
    </item>
    <item>
      <title>Arduino / Обновляем скетч по воздуху</title>
      <link>http://habrahabr.ru/blogs/arduino/126539/</link>
      <pubDate>Sat, 04 Feb 2012 19:23:16 GMT</pubDate>
      <description>
  	&lt;img src="http://habrastorage.org/storage1/d962548c/c7f12310/fe01b0c0/370924ab.jpg" align="left"&gt; В процессе разработки кода для Arduino совместимых плат, очень часто возникает необходимость обновить прошивку в контроллере, очень часто сделать это проблематично, по той причине, что устройство уже собрано и дёргать туда-сюда шилдики и кучи проводов — утомляет и начинает раздражать. Моей первой Arduino стал комплект деталей (собери сам) Freeduino Through-Hole, комплект по приезду был сразу же спаян и опробован, но в этом аналоге Arduino Diecimila не хватало одной приятной детали… а именно автоматического переключателя источника питания, в моем случае предлагалось перетыкивать перемычку на плате, что еще больше осложняло обновления скетча для моей &lt;s&gt;мечты детства&lt;/s&gt; модели. &lt;br&gt;
&lt;br&gt;
В этом посте я опишу как за 5 минут работы паяльником модифицировать XBee Shield для обновления скетча через беспроводной канал связи. Спроецировать данные изменения можно также и на другие аналоги XBee Shield без особых сложностей.&lt;a name="habracut"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Начну с того, что у меня было два XBee Shield, различие было в том, что один из шилдиков имел разъем mini-usb и FTDI USB-Serial чип для прямого подключения XBee модуля к ПК, так что заморачиватся со сторонними USB-Serial шнурами мне не пришлось. Как оказалось работать с модулями через этот шилдик очень удобно, RTS и DTR пины были разведены куда надо, прошивка обновлялась, конфиги заливались. Внимание! Если вы попытаетесь обновить прошивку, не подключив пины, RTS и DTR то модуль брикнется, но это поправимо. Нужно лишь в настройках соединения X-CTU указать режим API работы с модулем и выполнить обновление firmware еще раз.&lt;br&gt;
&lt;br&gt;
И так приступим:&lt;br&gt;
&lt;br&gt;
&lt;h4&gt;1. Модификация передающего модуля&lt;/h4&gt;&lt;br&gt;
Начнём с железа. Передающий шилдик в моем случае подвергся незначительным и в тоже время &lt;s&gt;элегантным&lt;/s&gt; обратимым изменениям. Я использовал модули XBee не PRO версии и на моем шилдике остались не распаяны колодки под PRO модуль (он побольше процентов на 20), шаг между отверстиями этой колодки удачно совпадал с PLS разъёмом (это контакты типа «папа» втыкаймые в arduino), штырьки от которого уже давно пылились в коробке. Я откусил пару штырьков от основной «гребенки». Согласно &lt;a href="http://ftp1.digi.com/support/documentation/90000982_B.pdf"&gt;datasheet'у&lt;/a&gt; для XBee и XBee PRO выводы RTS и DIO3, располагаются на 16 и 17 пинах соответственно, что в нашей ситуации очень удобно. Впаиваем наши контакты в 16 и 17 отверстие на шилдике, а так же попутно выдёргиваем джампер (перемычку) из старого ненужно винта или материнской платы и замыкаем свежевпаянные контакты. Это позволит в случае чего оперативно удалить перемычку без последствий. На этом железная модификация передающего модуля завершена.&lt;br&gt;
&lt;br&gt;
Переходим к настройкам самого модуля. Если вы хотя бы раз использовали XBee модули в своих поделках то скорее всего уже знакомы с программой &lt;a href="http://www.digi.com/support/productdetl.jsp?pid=3352&amp;amp;osvid=57&amp;amp;s=316&amp;amp;tp=5&amp;amp;tp2=0"&gt;X-CTU&lt;/a&gt; и её возможностями. О настройке с её помощью дальше и пойдет речь.&lt;br&gt;
&lt;br&gt;
Первое, что нам нужно сделать, это подключить наш XBee модуль к компьютеру и проверить соединение. Если вы делаете это впервые то параметры будут следующими (COM порт разумеется следует выбрать свой):&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage1/fc959634/98d76b86/67d82e08/b04a7e6a.gif"&gt;&lt;br&gt;
&lt;br&gt;
После установки параметров нажимаем &amp;quot;&lt;b&gt;Test / Query&lt;/b&gt;&amp;quot; и через секунду в ответ должны получить сообщение с серийным номером и моделью модуля. &lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage1/328e0123/b678898b/83f0c56c/73465815.gif"&gt;&lt;br&gt;
&lt;br&gt;
Если этого не произошло — значит где то ошибка. Как вариант попробуйте поперебирать скорость порта (Baud).&lt;br&gt;
&lt;br&gt;
Переходим во вкладку &lt;b&gt;Modem Configuration&lt;/b&gt; и нажимаем Read для получения текущих настроек и версии прошивки модуля.&lt;br&gt;
&lt;br&gt;
Первое значение, что мы изменим PAN ID.&lt;br&gt;
PAN ID состоит из 4 цифр в формате HEX и определят ID сети в которой будет работать данный модуль. PAN ID должен быть одинаковый как на приёмнике так и на передатчике. Так же рекомендуется не настраивать больше никаких модулей на этот ID во избежание конфликтов.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage1/24b7e73f/62d00cb6/b9b0ceaa/b501e27b.gif"&gt;&lt;br&gt;
&lt;br&gt;
Следующим пунктом в настройках следует изменить скорость работы порта. Она должна соответствовать скорости необходимой для прошивки конкретной микросхемы ( так же есть альтернативные загрузчики повышающие скорость прошивки ). Для 168 чипа это 19200, а для 328p 57600. Примите во внимание, что для работы с модулем в дальнейшем в скетч нужно внести поправки ( например если раньше вы использовали стандартную скорость 9600 ), изменить скорость работы с портом.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage1/878400b1/4cedb795/761ade28/36d370cb.gif"&gt;&lt;br&gt;
&lt;br&gt;
Packetization Timeout — таймаут определяющий сколько ждать перед отправкой в эфир. Может потребоваться значение больше чем 10 — подбирается индивидуально исходя из размеров скетча, 10=10кб скетч.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/553/908/4e7/5539084e7b80dcabe50347b991d0a6ae.gif"&gt;&lt;br&gt;
&lt;br&gt;
Теперь устанавливаем пин D3 (Digital Input/Output) в положение 3-DI, что подразумевает что пин будет использоваться как цифровой вход.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/a9a/ce5/005/a9ace5005d11d7618d542479bebd7669.gif"&gt;&lt;br&gt;
&lt;br&gt;
Устанавливаем параметр Digital IO change detect в FF. Так же можно указать вместо FF, 0x08. Тогда мы конкретно укажем что изменения DI нужно слушать на D3 пине, но и так работает нормально.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/8b3/120/958/8b3120958f23c3d1f83accd18dc687fe.gif"&gt;&lt;br&gt;
&lt;br&gt;
Теперь трансмиттер (передатчик) настроен на пересылку текущего статуса D3 пина на любые модемы в зоне досягаемости. Запишем изменения в наш модуль нажатием кнопки Write на верхней панели.&lt;br&gt;
&lt;br&gt;
А так же стоит упомянуть о предсказуемых граблях пользователей Windows ( в MacOS и Linux это предусмотрено по умолчанию).&lt;br&gt;
&lt;br&gt;
Необходимо в настройках COM порта указать опцию Set RTS on close (в русской версии возможно другое название) &lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/5a2/693/970/5a2693970fa4a5239a2456f0a13cd5f2.jpg"&gt;&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/ec3/4ae/b45/ec34aeb45ff1d62dda70d4ba3f776fa7.jpg"&gt;&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/008/bfa/c20/008bfac200327e2f2d2ed3722f8cd06e.jpg"&gt;&lt;br&gt;
&lt;br&gt;
Убедимся что галочка установлена и применяем настройки.&lt;br&gt;
&lt;br&gt;
&lt;h4&gt;2. Модификация принимающего модуля&lt;/h4&gt;&lt;br&gt;
Модификацию по традиции начнём с железа, а именно спаяем в кучу ( пока что лучше на весу для дальнейшей отладки схемы) конденсатор, транзистор и резистор по следующей схеме:&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/0df/f37/dd6/0dff37dd64642f2bb96a5f11100a2b61.png"&gt;&lt;br&gt;
&lt;br&gt;
Reset signal from XBee — ведет напрямую к D3 пину. Reset to Arduino — напрямую к Reset пину на ардуине. &lt;br&gt;
&lt;br&gt;
Должно получится нечто похожее на это&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/fb5/8ce/cdc/fb58cecdc237ebc1ee4d97a056b8f9a8.jpg"&gt;&lt;br&gt;
&lt;br&gt;
Повторю на всякий случай, не забудьте откорректировать скорость обмена в вашем проекте.&lt;br&gt;
&lt;br&gt;
Теперь подключаем к компьютеру ресивер ( принимающий модуль ) и открываем уже знакомую X-CTU для установки следующих параметров&lt;br&gt;
&lt;br&gt;
PAN ID — Должен соответствовать передающему модулю&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage1/24b7e73f/62d00cb6/b9b0ceaa/b501e27b.gif"&gt;&lt;br&gt;
&lt;br&gt;
Interface Data Rate — Аналогично должен совпадать с передатчиком&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage1/878400b1/4cedb795/761ade28/36d370cb.gif"&gt;&lt;br&gt;
&lt;br&gt;
Packetization Timeout — тоже как я понял аналогично передатчику &lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/553/908/4e7/5539084e7b80dcabe50347b991d0a6ae.gif"&gt;&lt;br&gt;
&lt;br&gt;
Устанавливаем пин D3 нашего приёмника 5-DO HIGH ( Digital Out Default High)&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/aeb/c76/9ea/aebc769ea48720a2d60c967a42cfc9c3.gif"&gt;&lt;br&gt;
&lt;br&gt;
I/O Output В Disabled. Для предотвращения попадания статусных сообщений в serial порт&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/cf7/f8d/ce9/cf7f8dce9721d221b308e0b095dacc60.gif"&gt;&lt;br&gt;
&lt;br&gt;
И в заключении устанавливаем I/O input address в FFFF — для приема I/O сообщений от всех вещающих. Можно так же указать адрес передатчика.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/3df/bac/dab/3dfbacdabe26ed9033d2cda179d093ab.gif"&gt;&lt;br&gt;
&lt;br&gt;
&lt;img src="http://habrastorage.org/storage2/793/a09/604/793a09604f253a4cd5c1035c08604115.gif"&gt;&lt;br&gt;
&lt;br&gt;
Теперь запишем изменения в наш модуль нажатием кнопки Write.&lt;br&gt;
&lt;br&gt;
Рекомендую один раз настроить и сохранить профили для обоих модулей на своем компьютере во избежании путаницы в дальнейшем. Сверху Profile -&amp;gt; Save.&lt;br&gt;
&lt;br&gt;
Не забываем подключить все GND вместе и подключаем передающий модуль к компьютеру ( через переходник или шилдик ) и устанавливаем принимающий на целевую Arduino. Еще раз все проверяем, вдруг я ошибся или еще какая мелочь осталась где. Проверяем быстро все взглядом еще раз и можно пробовать! :)&lt;br&gt;
&lt;br&gt;
Грабли которые были у меня: Скетч отказывался заливаться, хотя Arduino иногда перезагружалась, это ввело меня в ступор, но вскоре стало понятно что если быстро &lt;b&gt;два раза&lt;/b&gt; нажать на Upload в IDE Arduino скетч успешно заливался хоть и не всегда ( виню Wifi и Blutooth коих вокруг очень много было ) По видимому копать стоит в сторону конденсатора (играться с объёмом ) Ну или на крайний случай править код IDE чтоб сама два раза RTS пин дёргала :) &lt;br&gt;
&lt;br&gt;
Прошу прощение за сумбур, начинал писать сататью почти год назад, многое уже забыл, но все что хотел сказать сказал. Предложения и пожелания приветствуются. Неточности в статье или ошибки по традиции пишите в личку, надеюсь статья оказалась вам полезной.&lt;br&gt;
&lt;br&gt;
Мою статью можно считать переводом &lt;a href="http://www.ladyada.net/make/xbee/arduino.html"&gt;этой&lt;/a&gt;&lt;br&gt;
я лишь немного дополнил и приукрасил где мог.&lt;br&gt;
&lt;br&gt;
Мой вопрос в Q&amp;A &lt;a href="http://habrahabr.ru/qa/6670/"&gt;тут&lt;/a&gt; и спасибо ответившему &lt;a href="http://habrahabr.ru/users/djmorgan/" class="user_link"&gt;djmorgan&lt;/a&gt; 
  	&lt;div class="clear"&gt;&lt;/div&gt; 	
  	&lt;p&gt;
                            &lt;sub&gt;
                                Источник: &lt;a href='http://habrahabr.ru/blogs/arduino/126539/'&gt;habrahabr.ru&lt;/a&gt;, 
                                получено с помощью &lt;a href='http://rss-farm.ru'&gt;rss-farm.ru&lt;/a&gt;
                            &lt;/sub&gt;
                        &lt;img src='http://c.statcounter.com/5485188/0/94140fb5/1/' alt='' border='0'&gt;
                     &lt;/p&gt;</description>
      <guid isPermaLink="true">http://habrahabr.ru/blogs/arduino/126539/</guid>
      <dc:creator>Hile</dc:creator>
    </item>
  </channel>
</rss>
