<?xml version="1.0"?>
<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
      <title>Blogofamily</title>
      <description>Pipes Output</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=cjiTXMKH3RGjvMB8_w6H4A</link>
      <atom:link rel="next" href="http://pipes.yahoo.com/pipes/pipe.run?_id=cjiTXMKH3RGjvMB8_w6H4A&amp;_render=rss&amp;page=2"/>
      <pubDate>Thu, 01 Oct 2015 18:59:07 +0000</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <item>
         <title>В Китаї збудували висячий скляний міст над прірвою у 200 м</title>
         <link>http://feedproxy.google.com/~r/inspiredua/~3/TGcRanrnRj0/</link>
         <description>В китайській провінції Хунань відкрили &amp;#8220;міст хоробрості&amp;#8221;, який висить над прірвою понад 180 метрів висотою та повністю зроблений зі скла.  Місцеві жителі назвали міст Hanhao Qiao, або ж &amp;#8220;міст хороброї людини&amp;#8221;, і не дарма: мало хто наважиться пройти всю його довжину в 300 метрів, не відчувши притоку адреналіну. Хоча покриття мосту &amp;#8211; суперміцне скло, яке [&amp;#8230;]</description>
         <guid isPermaLink="false">http://inspired.com.ua/?p=30740</guid>
         <pubDate>Thu, 01 Oct 2015 08:00:32 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/10/rtx1s6sr.jpg"><img class="aligncenter size-medium wp-image-30741" src="http://inspired.com.ua/wp-content/uploads/2015/10/rtx1s6sr-640x425.jpg" alt="rtx1s6sr" width="640" height="425"/></a></p>
<p>В китайській провінції Хунань <a rel="nofollow" target="_blank" href="http://qz.com/514136/this-suspended-glass-bridge-in-china-is-stunning-if-you-dare-to-walk-on-it/">відкрили</a> &#8220;міст хоробрості&#8221;, який висить над прірвою понад 180 метрів висотою та повністю зроблений зі скла. <span id="more-30740"></span></p>
<p>Місцеві жителі назвали міст Hanhao Qiao, або ж &#8220;міст хороброї людини&#8221;, і не дарма: мало хто наважиться пройти всю його довжину в 300 метрів, не відчувши притоку адреналіну. Хоча покриття мосту &#8211; суперміцне скло, яке в 25 разів міцніше за звичайне, щоб перейти з одного боку урвища на інший, доведеться постаратись.</p>
<p>Новозбудований міст об&#8217;єднав дві скелі в Shiniuzhai National Geological Park. Адміністрація парку спочатку хотіла всього кілька секцій мосту з прозорим дном, але вони їм так сподобались, що було прийнято рішення зробити підвісний міст повністю скляним. Схожий прохід, де можна подивись на прірву під ногами, збудовано і в парку Гранд Каньйон в США.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/10/rtx1s6ss.jpg"><img class="aligncenter size-medium wp-image-30742" src="http://inspired.com.ua/wp-content/uploads/2015/10/rtx1s6ss-640x362.jpg" alt="rtx1s6ss" width="640" height="362"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/10/rtx1scyu.jpg"><img class="aligncenter size-medium wp-image-30743" src="http://inspired.com.ua/wp-content/uploads/2015/10/rtx1scyu-640x430.jpg" alt="rtx1scyu" width="640" height="430"/></a></p>
<blockquote class="instagram-media" style="background:#FFF;border:0;margin:1px;max-width:658px;padding:0;width:99.375%;"><div style="padding:8px;">
<div style="background:#F8F8F8;line-height:0;margin-top:40px;padding:50.0% 0;text-align:center;width:100%;">
<div style="display:block;height:44px;margin:0 auto;width:44px;"></div>
</div>
<p style="margin:8px 0 0 0;padding:0 4px;"> <a rel="nofollow" target="_blank" href="https://instagram.com/p/7nOU2PM8YM/" style="color:#000;font-family:Arial, sans-serif;font-size:14px;font-style:normal;font-weight:normal;line-height:17px;text-decoration:none;word-wrap:break-word;">A team of 11 workers are transforming a 300-meter-long wooden bridge into a glass drawbridge that is 180-meters high in the air, at a national park in Hunan Province. It will reportedly be the first fully transparent glass drawbridge in the world. #glassbridge #China #Hunan #bridge</a></p>
<p style="color:#c9c8cd;font-family:Arial, sans-serif;font-size:14px;line-height:17px;margin-bottom:0;margin-top:8px;overflow:hidden;padding:8px 0 7px;text-align:center;white-space:nowrap;">A photo posted by CCTVNEWS (@cctvnews) on Sep 14, 2015 at 6:34am PDT</p> 
</div>
</blockquote>
<img src="http://feeds.feedburner.com/~r/inspiredua/~4/TGcRanrnRj0" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>В Києві відкриють бізнес-інкубатор Bizclub для підприємців-початківців</title>
         <link>http://feedproxy.google.com/~r/inspiredua/~3/Bdpn1DqHvcg/</link>
         <description>5 жовтня у Києві відкривається бізнес-інкубатор Bizclub, який покликаний допомогти підприємцям-початківцям у старті власного бізнесу та розвитку уже існуючого проекту. Інкубатор з&amp;#8217;явився завдяки партнерству Київської-бізнес школи та Центру зайнятності вільних людей: в рамках Bizclub перед учасниками виступлять ментори та підприємці, що вже досягли успіху в різних галузях та хочуть поділитися набутими знаннями з новачками. 10-денний [&amp;#8230;]</description>
         <guid isPermaLink="false">http://inspired.com.ua/?p=30735</guid>
         <pubDate>Thu, 01 Oct 2015 00:21:24 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://bizclub.in.ua/"><img class="aligncenter wp-image-30736 size-medium" src="http://inspired.com.ua/wp-content/uploads/2015/10/bizclub-640x304.png" alt="bizclub" width="640" height="304"/></a></p>
<p><strong>5 жовтня</strong> у Києві відкривається бізнес-інкубатор <strong><a rel="nofollow" target="_blank" href="http://bizclub.in.ua/">Bizclub</a></strong>, який покликаний допомогти підприємцям-початківцям у старті власного бізнесу та розвитку уже існуючого проекту.<span id="more-30735"></span></p>
<p>Інкубатор з&#8217;явився завдяки партнерству Київської-бізнес школи та Центру зайнятності вільних людей: в рамках Bizclub перед учасниками виступлять ментори та підприємці, що вже досягли успіху в різних галузях та хочуть поділитися набутими знаннями з новачками. 10-денний освітній інтенсив передбачає мінімум теоретичних занять і максимум практики: організатори хочуть, щоб відвідувачі інкубатору отримали практичні знання, навички та інструменти та підтримку навіть після завершення навчального курсу.</p>
<p>Курс включає 10 навчальних модулів, 75 годин практичних занять , майстер-класи та повний менторський супровід від експертів міжнародного рівня. Основні milestones програми:</p>
<ul>
<li>краш &#8211; тест / валідація бізнес-ідеї</li>
<li>розуміння бізнес &#8211; процесів</li>
<li>освоєння ключових принципів фінансів, маркетингу та менеджменту</li>
<li>презентація проекту потенційним інвесторам</li>
<li>ресурси для подальшого успіху</li>
</ul>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/10/12065979_954315484640346_5376261267211649870_n.jpg"><img class="aligncenter size-medium wp-image-30738" src="http://inspired.com.ua/wp-content/uploads/2015/10/12065979_954315484640346_5376261267211649870_n-640x432.jpg" alt="12065979_954315484640346_5376261267211649870_n" width="640" height="432"/></a></p>
<p>Серед доповідачів та менторів:</p>
<ul>
<li>Маргарита Січкар, успішний ресторатор та засновниця «Счастье»</li>
<li>Наталія Березовська, керівник та засновник Denotate Ventures, голова наглядової ради UAngel</li>
<li>Євгеній Засуцький, власник архітектурного бюро</li>
<li>Ігор Фарберов, співвласник «Doba.ua», мережі хостелів «Dream Family» та DRUZI cafe</li>
<li>Олександр Тарченко, власник освітньої агенції DEC-Education</li>
<li>Святослав Амелін, власник ювелірного гіпермаркету Zlato.UA, інтернет-магазину
<p>&#8220;МебельОК&#8221;</li>
<li>Антон Рубан, власник ExtremePride, ексклюзивний дистриб’ютор GoPro в Україні</li>
</ul>
<p>Деталі програми, інформацію про вартість участі та реєстрацію можна дізнатись на <strong>офіційному сайті <a rel="nofollow" target="_blank" href="http://bizclub.in.ua/">bizclub.in.ua</a>,</strong> або у <a rel="nofollow" target="_blank" href="https://www.facebook.com/bizclubinua/timeline">Facebook-спільноті</a><strong>.</strong></p>
<img src="http://feeds.feedburner.com/~r/inspiredua/~4/Bdpn1DqHvcg" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Комп’ютерна академія «ШАГ» – День відкритих дверей</title>
         <link>http://molodi.in.ua/akademiya-shah/</link>
         <description>Хочу поділитись своїми враженнями від Дня відкритих дверей в Академії «ШАГ», який відбувся 26 вересня в м. Рівне, і трішки розповісти про неї. Зазвичай, мій інтерес до інформаційних технологій завжди був 50&amp;#92;50, можливо, трішки більше за 50. Тому я вирішив [...]&lt;div class='yarpp-related-rss'&gt;

Також читайте:&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/osvita-slovyanskyh/' title='&amp;#x000412;&amp;#x00043d;&amp;#x000435;&amp;#x000441;&amp;#x00043e;&amp;#x00043a; &amp;#x000443;&amp;#x00043a;&amp;#x000440;&amp;#x000430;&amp;#x000457;&amp;#x00043d;&amp;#x000441;&amp;#x00044c;&amp;#x00043a;&amp;#x000438;&amp;#x000445; &amp;#x00043a;&amp;#x000443;&amp;#x00043b;&amp;#x00044c;&amp;#x000442;&amp;#x000443;&amp;#x000440;&amp;#x00043d;&amp;#x000438;&amp;#x000445; &amp;#x000434;&amp;#x000456;&amp;#x00044f;&amp;#x000447;&amp;#x000456;&amp;#x000432; &amp;#x000443; &amp;#x000440;&amp;#x00043e;&amp;#x000437;&amp;#x000432;&amp;#x000438;&amp;#x000442;&amp;#x00043e;&amp;#x00043a; &amp;#x00043e;&amp;#x000441;&amp;#x000432;&amp;#x000456;&amp;#x000442;&amp;#x000438; &amp;#x000441;&amp;#x00043b;&amp;#x00043e;&amp;#x000432;&amp;#x002019;&amp;#x00044f;&amp;#x00043d;&amp;#x000441;&amp;#x00044c;&amp;#x00043a;&amp;#x000438;&amp;#x000445; &amp;#x00043d;&amp;#x000430;&amp;#x000440;&amp;#x00043e;&amp;#x000434;&amp;#x000456;&amp;#x000432;'&gt;Внесок українських культурних діячів у розвиток освіти слов’янських народів&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/ekonomichna-shkola/' title='&amp;#x00041f;&amp;#x000435;&amp;#x000440;&amp;#x000448;&amp;#x000430; &amp;#x00041b;&amp;#x000456;&amp;#x000442;&amp;#x00043d;&amp;#x00044f; &amp;#x000415;&amp;#x00043a;&amp;#x00043e;&amp;#x00043d;&amp;#x00043e;&amp;#x00043c;&amp;#x000456;&amp;#x000447;&amp;#x00043d;&amp;#x000430; &amp;#x000428;&amp;#x00043a;&amp;#x00043e;&amp;#x00043b;&amp;#x000430;'&gt;Перша Літня Економічна Школа&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/krok-doliderstva2015/' title='&amp;#x00041e;&amp;#x000441;&amp;#x000432;&amp;#x000456;&amp;#x000442;&amp;#x00043d;&amp;#x00044c;&amp;#x00043e;-&amp;#x00043c;&amp;#x00043e;&amp;#x000442;&amp;#x000438;&amp;#x000432;&amp;#x000430;&amp;#x000446;&amp;#x000456;&amp;#x000439;&amp;#x00043d;&amp;#x000438;&amp;#x000439; &amp;#x000442;&amp;#x000430;&amp;#x000431;&amp;#x000456;&amp;#x000440; &amp;#xab;&amp;#x00041a;&amp;#x000440;&amp;#x00043e;&amp;#x00043a; &amp;#x000434;&amp;#x00043e; &amp;#x00041b;&amp;#x000456;&amp;#x000434;&amp;#x000435;&amp;#x000440;&amp;#x000441;&amp;#x000442;&amp;#x000432;&amp;#x000430; 2015&amp;#xbb;'&gt;Освітньо-мотиваційний табір «Крок до Лідерства 2015»&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/in/AyQk/~4/anXRJrbwxYM&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://molodi.in.ua/?p=38949</guid>
         <pubDate>Wed, 30 Sep 2015 23:52:56 +0000</pubDate>
      </item>
      <item>
         <title>Tesla презентувала свій новий автомобіль – Model X</title>
         <link>http://feedproxy.google.com/~r/inspiredua/~3/PXRI-Icpc_I/</link>
         <description>Ілон Маск презентував довгоочікуваний електромобіль Tesla Model X, випуск якого відкладали кілька разів. Вартість новинки починається від $130 000, і машина позиціонується як сімейна: в ній зможуть вміститись до семи пасажирів. Tesla Model X може проїхати на одному заряді близько 400 кілометрів. Однією з ключових особливостей автомобіля є задні двері, які складаються з декількох сегментів [&amp;#8230;]</description>
         <guid isPermaLink="false">http://inspired.com.ua/?p=30729</guid>
         <pubDate>Wed, 30 Sep 2015 13:13:14 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/3981415.jpg"><img src="http://inspired.com.ua/wp-content/uploads/2015/09/3981415-640x427.jpg" alt="3981415" width="640" height="427" class="aligncenter size-medium wp-image-30730"/></a></p>
<p>Ілон Маск презентував довгоочікуваний електромобіль<strong> Tesla Model X</strong>, випуск якого відкладали кілька разів. Вартість новинки починається від $130 000, і машина позиціонується як сімейна: в ній зможуть вміститись до семи пасажирів.<span id="more-30729"></span></p>
<p>Tesla Model X може проїхати на одному заряді близько 400 кілометрів. Однією з ключових особливостей автомобіля є задні двері, які складаються з декількох сегментів і відкриваються вгору. При цьому спеціальні датчики оцінюють простір між Model X та іншими машинами на парковці і регулюють процес підняття дверей таким чином, щоб не зачепити сусідні автомобілі.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/CTy0DFApyD-ZLgdWmTi4PA.jpg"><img src="http://inspired.com.ua/wp-content/uploads/2015/09/CTy0DFApyD-ZLgdWmTi4PA-640x278.jpg" alt="CTy0DFApyD-ZLgdWmTi4PA" width="640" height="278" class="aligncenter size-medium wp-image-30731"/></a></p>
<p></p> 
<p>Технічно Model X практично ідентична седану Tesla Model S. Максимальна швидкість автомобіля &#8211; 250 кілометрів на годину, до 100 кілометрів він розганяється за 3.2-3.8 секунди залежно від модифікації двигуна. У Model X з більш потужним двигуном P90D є режим, названий інженерами Tesla «абсурдним» (ludicrous mode), що підвищує швидкісні характеристики автомобіля.</p>
<p>До кінця наступного року Tesla запланувала розширення мережі заправних станцій для електромобілів Supercharger, <a rel="nofollow" target="_blank" href="http://inspired.com.ua/news/tesla-in-ukraine/">кілька з яких з&#8217;являться і в Україні</a>.</p>
<img src="http://feeds.feedburner.com/~r/inspiredua/~4/PXRI-Icpc_I" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Warner Bros проведе різдвяну вечерю в залі, де знімали Гаррі Поттера</title>
         <link>http://feedproxy.google.com/~r/inspiredua/~3/BODHfJLrOwI/</link>
         <description>Кінокомпанія Warner Bros приготувала справжній різдвяний сюрприз для тих, хто залишається вірним шанувальником саги про Гаррі Поттера. Цього сезону, окрім традиційних екскурсій по кіностудіям, де знімали фільми про хлопчика-чарівника, буде організовано святкову вечерю: саме в тій залі, яка грала роль замку Гоґвортс. Подія анонсована на 3 грудня, і відбудеться всього раз. Напевно, саме тому ціна [&amp;#8230;]</description>
         <guid isPermaLink="false">http://inspired.com.ua/?p=30725</guid>
         <pubDate>Wed, 30 Sep 2015 08:26:34 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/Hogwarts-Great-Hall-Christmas.jpg"><img class="aligncenter size-medium wp-image-30726" src="http://inspired.com.ua/wp-content/uploads/2015/09/Hogwarts-Great-Hall-Christmas-640x360.jpg" alt="Hogwarts-Great-Hall-Christmas" width="640" height="360"/></a></p>
<p>Кінокомпанія Warner Bros приготувала справжній різдвяний сюрприз для тих, хто залишається вірним шанувальником саги про <strong>Гаррі Поттера</strong>. Цього сезону, окрім традиційних екскурсій по кіностудіям, де знімали фільми про хлопчика-чарівника, буде організовано святкову вечерю: саме в тій залі, яка грала роль замку Гоґвортс.<span id="more-30725"></span></p>
<p>Подія анонсована на 3 грудня, і відбудеться всього раз. Напевно, саме тому ціна участі в такій вечірці немала: фанам Гаррі Поттера доведеться <a rel="nofollow" target="_blank" href="https://www.wbstudiotour.co.uk/dinner">викласти $349</a> за квиток, який включатиме вечерю, бутерброди, маслопиво, десерти та чарівну паличку в подарунок. Вечеря триватиме з шостої вечора до півночі, і протягом цього часу гості зможуть відчути себе справжніми чарівниками.</p>
<p>Не зважаючи на те, що остання книга з циклу Гаррі Поттера, написана Джоан Роулінг, вийшла ще в 2007 році, а фільм &#8211; в 2011 році, популярність саги не зменшилась. Цього року очікується вихід перевидання книг про чарівника, і <a rel="nofollow" target="_blank" href="http://inspired.com.ua/news/harry-potter-new-illustrations/">британське видавництво анонсувало нові ілюстрації</a>, що супроводжуватимуть книги.</p>
<p>Минулого року ми писали про польський середньовічний замок у місті Czocha, який <a rel="nofollow" target="_blank" href="http://inspired.com.ua/news/poland-hogwarts/">перетворили на аналог школи магії з Гаррі Поттера</a> і почали водити туди туристів.</p>
<img src="http://feeds.feedburner.com/~r/inspiredua/~4/BODHfJLrOwI" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Непал заборонить підніматись на Еверест непідготовленим туристам</title>
         <link>http://feedproxy.google.com/~r/inspiredua/~3/-tmHnq7UirY/</link>
         <description>Влада Непалу має намір заборонити сходження на Еверест непідготовленим, занадто старим та занадто молодим туристам, повідомляє The Guardian. За словами офіційних представників влади Непалу, яка видає дозволи на сходження на найвищу вершину планети, нові правила заборонять підйом тим альпіністам, які досі не мали досвіду сходження на вершини понад 6500 м, а також людям похилого віку [&amp;#8230;]</description>
         <guid isPermaLink="false">http://inspired.com.ua/?p=30720</guid>
         <pubDate>Tue, 29 Sep 2015 15:03:17 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/c-Dave-Rodney-The-final-steps-to-the-Summit-of-Mt.-Everest.jpg"><img class="aligncenter wp-image-30721 size-medium" src="http://inspired.com.ua/wp-content/uploads/2015/09/c-Dave-Rodney-The-final-steps-to-the-Summit-of-Mt.-Everest-640x458.jpg" alt="5.0.2" width="640" height="458"/></a></p>
<p>Влада <strong>Непалу</strong> має намір заборонити сходження на <strong>Еверест</strong> непідготовленим, занадто старим та занадто молодим туристам, повідомляє <a rel="nofollow" target="_blank" href="http://www.theguardian.com/world/2015/sep/28/mount-everest-to-be-declared-off-limits-to-inexperienced-climbers">The Guardian</a>.<span id="more-30720"></span></p>
<p>За словами офіційних представників влади Непалу, яка видає дозволи на сходження на найвищу вершину планети, нові правила заборонять підйом тим альпіністам, які досі не мали досвіду сходження на вершини понад 6500 м, а також людям похилого віку та неповнолітнім. Для того, щоб отримати дозвіл на сходження, потрібно буде документально підтвердити свій досвід сходження на гори такого типу.</p>
<p>Таке рішення було прийняте внаслідок почастішання нещасних випадків на схилах Евересту: у 2014 році загинули одразу 16 місцевих гідів-шерпів, а в 2015 лавина після потужного Непальського землетрусу накрила 18 людей.</p>
<p>Як заявив голова Міністерства туризму Непалу Говінда Каркі, &#8220;Сходження на Еверест &#8211; це не жарти. Ми не дозволимо підніматись туди людям, які не мають руки або ноги, і це не питання дискримінації. Як ти зможеш залізти на цю гору без ніг?&#8221;.</p>
<p>В останні роки у високий сезон (квітень-травень) на підходах до вершини Евересту почали утворюватись затори із туристичних груп, які бажали пошвидше почати сходження. Це ставало причиною нещасних випадків та порушення правил гірської безпеки. Окрім того, на Джомолунгму зачастили різні групи людей: починаючи від інвалідів до підлітків. Наймолодшому хлопцю, який зійшов на Еверест &#8211; всього 13 років, найстаршому альпіністу &#8211; 80.</p>
<p>Цього місяця в український прокат вийшов фільм &#8220;Еверест&#8221;, який розповідає про трагедію 1996 року, коли дві групи альпіністів потрапили під снігову бурю на схилах однойменної гори.</p>
<p></p> 
<img src="http://feeds.feedburner.com/~r/inspiredua/~4/-tmHnq7UirY" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>У Львові встановили перші пункти міського велопрокату від Nextbike</title>
         <link>http://feedproxy.google.com/~r/inspiredua/~3/HeIpIc_29b4/</link>
         <description>У Львові почали встановлювати пункти міського велопрокату компанії Nextbike. Перші точки, де можна взяти в оренду велосипед, будуть розташовані на вулиці Федьковича поблизу Технопарку, на площі Ринок, біля університетів ЛНУ та Політехніки та аквапарку на вул. Княгині Ольги. Сервіси оренди велосипедів дозволяють за певну плату брати велосипед в одній точці прокату, розплатившись за допомогою готівки, картки [&amp;#8230;]</description>
         <guid isPermaLink="false">http://inspired.com.ua/?p=30717</guid>
         <pubDate>Tue, 29 Sep 2015 13:59:47 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/pNlb4EO-n3g.jpg"><img src="http://inspired.com.ua/wp-content/uploads/2015/09/pNlb4EO-n3g-640x480.jpg" alt="pNlb4EO-n3g" width="640" height="480" class="aligncenter size-medium wp-image-30718"/></a></p>
<p>У Львові почали встановлювати пункти міського велопрокату компанії Nextbike. Перші точки, де можна взяти в оренду велосипед, будуть розташовані на вулиці Федьковича поблизу Технопарку, на площі Ринок, біля університетів ЛНУ та Політехніки та аквапарку на вул. Княгині Ольги.<span id="more-30717"></span></p>
<p>Сервіси оренди велосипедів дозволяють за певну плату брати велосипед в одній точці прокату, розплатившись за допомогою готівки, картки або sms, та повертати велосипед в іншій точці прокату, не турбуючись при цьому за його зберігання та володіння. Це поширена практика для популярних туристичних міст світу, яка цього року прийде і в Україну.</p>
<div id="fb-root"></div>
<p> 
<div class="fb-post">
<div class="fb-xfbml-parse-ignore">
<blockquote cite="https://www.facebook.com/nextbike.ukraine/posts/968149943256297">
<p>&#x414;&#x440;&#x443;&#x433;&#x430; &#x441;&#x442;&#x430;&#x43d;&#x446;&#x456;&#x44f; &#x437;&#x43c;&#x43e;&#x43d;&#x442;&#x43e;&#x432;&#x430;&#x43d;&#x430;. &#x41f;&#x43b;&#x43e;&#x449;&#x430; &#x420;&#x438;&#x43d;&#x43e;&#x43a;, &#x431;&#x456;&#x43b;&#x44f; &#x43c;&#x456;&#x441;&#x44c;&#x43a;&#x43e;&#x457; &#x440;&#x430;&#x442;&#x443;&#x448;&#x456;.&#x41b;&#x44c;&#x432;&#x456;&#x432;.  &#x425;&#x43b;&#x43e;&#x43f;&#x446;&#x456;-&#x43c;&#x43e;&#x43d;&#x442;&#x430;&#x436;&#x43d;&#x438;&#x43a;&#x438; &#x432;&#x438;&#x441;&#x43d;&#x430;&#x436;&#x435;&#x43d;&#x456;, &#x430;&#x43b;&#x435; &#x449;&#x430;&#x441;&#x43b;&#x438;&#x432;&#x456;. &#x41c;&#x430;&#x454;&#x43c;&#x43e; &#x43d;&#x430;&#x434;&#x456;&#8230;</p>
<p>Posted by <a rel="nofollow" target="_blank" href="https://www.facebook.com/nextbike.ukraine">NextbikeUkraine / Некстбайк Україна</a> on&nbsp;<a rel="nofollow" target="_blank" href="https://www.facebook.com/nextbike.ukraine/posts/968149943256297">Monday, September 28, 2015</a></p></blockquote>
</div>
</div>
<div id="vk_post_13081342_9267"></div>
<p></p> 
<p>Вперше про запуск муніципального велопрокату <a rel="nofollow" target="_blank" href="http://inspired.com.ua/news/nextbike-lviv/">заговорили на початку цього року</a>. Після того стало відомо, що виконавцем проекту стане компанія Nextbike, яка реалізувала подібні сервіси у Великобританії, Польщі, Угорщині, Швейцарії, Австрії, Індії та багатьох інших країнах світу.</p>
<p>У планах Nextbike &#8211; близько трьох десятків пунктів велопрокату у Львові, з картою яких <a rel="nofollow" target="_blank" href="http://inspired.com.ua/news/lviv-nextbike/">можна ознайомитись тут</a>.</p>
<img src="http://feeds.feedburner.com/~r/inspiredua/~4/HeIpIc_29b4" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>В Чернівцях встановлять вуличні ліхтарі на сонячній енергії</title>
         <link>http://feedproxy.google.com/~r/inspiredua/~3/xq_2Z4NyUo0/</link>
         <description>В Чернівцях встановили перші 2 вуличні LED-ліхтарі, які працюють на сонячній енергії. У планах міської влади &amp;#8211; встановлення 30-ти таких ліхтарів на вулицях міста. Це стало можливим завдяки участі Чернівців у програмі Німецького товариства з міжнародного співробітництва (GIZ) «Енергоефективність у громадах». Нові світильники, що працюють на сонячних батареях, буде встановлено в громадських місцях, біля дитячих [&amp;#8230;]</description>
         <guid isPermaLink="false">http://inspired.com.ua/?p=30712</guid>
         <pubDate>Tue, 29 Sep 2015 08:19:47 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/1551e7ef858de1.jpg"><img class="aligncenter size-medium wp-image-30713" src="http://inspired.com.ua/wp-content/uploads/2015/09/1551e7ef858de1-640x427.jpg" alt="1551e7ef858de1" width="640" height="427"/></a></p>
<p>В <strong>Чернівцях</strong> встановили перші 2 вуличні LED-ліхтарі, які працюють на сонячній енергії. У планах міської влади &#8211; встановлення 30-ти таких ліхтарів на вулицях міста.<span id="more-30712"></span></p>
<p>Це стало можливим завдяки участі Чернівців у програмі Німецького товариства з міжнародного співробітництва (GIZ) «Енергоефективність у громадах». Нові світильники, що працюють на сонячних батареях, буде встановлено в громадських місцях, біля дитячих майданчиків. Загальна вартість проекту 776, 5 тис .грн., з них внесок GIZ – 326,5 тис. грн., міського бюджету – 450 тис. грн.</p>
<p>Окрім того, в рамках проекту з капітального ремонту мережі вуличного освітлення буде демонтовано світильники з натрієвими лампами та на їх місці встановлено 1200 світлодіодних. На це піде понад 4 мільйона гривень , з яких 3,6 млн. грн. – це залучені кошти НЕФКО, 400 тис. грн. – кошти міського бюджету. Нові світлодіодні ліхтарі будуть також на вулиці Богдана Хмельницького, де вже встановлюють опори і незабаром розпочнуть монтаж мережі зовнішнього освітлення.</p>
<p>«Результатом впровадження економних світильників, що використовують альтернативні джерела енергії, стане не лише зниження споживання електроенергії в мережі зовнішнього освітлення міста, а й створення більш комфортних умов для чернівчан та туристів», – зазначив міський голова Олексій Каспрук.</p>
<p>У січні 2015 року ми <a rel="nofollow" target="_blank" href="http://inspired.com.ua/news/kyiv-street-led-lamps/">писали про аналогічні плани Києва</a>: партнером з встановлення LED-ліхтарів мала стати компанія Philips. В 2011 році Чернівці <a rel="nofollow" target="_blank" href="http://inspired.com.ua/news/chernivtsi-unesco/">потрапили до списку об&#8217;єктів</a> Всесвітньої спадщини ЮНЕСКО.</p>
<img src="http://feeds.feedburner.com/~r/inspiredua/~4/xq_2Z4NyUo0" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>На вихідних у Києві відбувся Мегамарш вишиванок</title>
         <link>http://molodi.in.ua/mehamarsh16-vidbuvsya/</link>
         <description>Тисячі людей у вишитих сорочках прийшли на 16-й Мегамарш у вишиванках. 26 вересня у Києві відбулася хода, яка розпочалась від «Золотих Воріт». Дякуючи спільні акції «Подарунок солдату» організаторам вдалося зібрати 91 коробку подарунків з медикаментами, пряниками та іншими корисними речами [...]&lt;div class='yarpp-related-rss'&gt;

Також читайте:&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/bahatomiljonnyj-proekt/' title='&amp;#x000410;&amp;#x000440;&amp;#x000442;-&amp;#x00043f;&amp;#x000456;&amp;#x00043a;&amp;#x00043d;&amp;#x000456;&amp;#x00043a; &amp;#x000421;&amp;#x00043b;&amp;#x000430;&amp;#x000432;&amp;#x000438; &amp;#x000424;&amp;#x000440;&amp;#x00043e;&amp;#x00043b;&amp;#x00043e;&amp;#x000432;&amp;#x00043e;&amp;#x000457; &amp;#x002013; &amp;#x000431;&amp;#x000430;&amp;#x000433;&amp;#x000430;&amp;#x000442;&amp;#x00043e;&amp;#x00043c;&amp;#x000456;&amp;#x00043b;&amp;#x00044c;&amp;#x000439;&amp;#x00043e;&amp;#x00043d;&amp;#x00043d;&amp;#x000438;&amp;#x000439; &amp;#x00043f;&amp;#x000440;&amp;#x00043e;&amp;#x000435;&amp;#x00043a;&amp;#x000442;'&gt;Арт-пікнік Слави Фролової – багатомільйонний проект&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/rezultaty-shefest/' title='&amp;#x000420;&amp;#x000435;&amp;#x000437;&amp;#x000443;&amp;#x00043b;&amp;#x00044c;&amp;#x000442;&amp;#x000430;&amp;#x000442;&amp;#x000438; &amp;#x00043f;&amp;#x000435;&amp;#x000440;&amp;#x000448;&amp;#x00043e;&amp;#x000433;&amp;#x00043e; &amp;#x000432;&amp;#x000441;&amp;#x000435;&amp;#x000443;&amp;#x00043a;&amp;#x000440;&amp;#x000430;&amp;#x000457;&amp;#x00043d;&amp;#x000441;&amp;#x00044c;&amp;#x00043a;&amp;#x00043e;&amp;#x000433;&amp;#x00043e; &amp;#x000444;&amp;#x000435;&amp;#x000441;&amp;#x000442;&amp;#x000438;&amp;#x000432;&amp;#x000430;&amp;#x00043b;&amp;#x00044e; &amp;#xab;&amp;#x000428;&amp;#x000435;.Fest&amp;#xbb;'&gt;Результати першого всеукраїнського фестивалю «Ше.Fest»&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/shefest15post/' title='&amp;#x000423; &amp;#x000434;&amp;#x000435;&amp;#x00043d;&amp;#x00044c; &amp;#x00043d;&amp;#x000430;&amp;#x000440;&amp;#x00043e;&amp;#x000434;&amp;#x000436;&amp;#x000435;&amp;#x00043d;&amp;#x00043d;&amp;#x00044f; &amp;#x00041a;&amp;#x00043e;&amp;#x000431;&amp;#x000437;&amp;#x000430;&amp;#x000440;&amp;#x00044f; &amp;#xab;&amp;#x000428;&amp;#x000435;.Fest&amp;#xbb; &amp;#x000437;&amp;#x000456;&amp;#x000431;&amp;#x000440;&amp;#x000430;&amp;#x000432; &amp;#x000433;&amp;#x000440;&amp;#x00043e;&amp;#x000448;&amp;#x000456; &amp;#x00043d;&amp;#x000430; &amp;#x000432;&amp;#x000456;&amp;#x000439;&amp;#x000441;&amp;#x00044c;&amp;#x00043a;&amp;#x00043e;&amp;#x000432;&amp;#x000438;&amp;#x000445;'&gt;У день народження Кобзаря «Ше.Fest» зібрав гроші на військових&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/in/AyQk/~4/qnC1OUiuu4w&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://molodi.in.ua/?p=38922</guid>
         <pubDate>Mon, 28 Sep 2015 20:55:21 +0000</pubDate>
      </item>
      <item>
         <title>В нідерландському місті запустять перші в Європі автобуси без водіїв</title>
         <link>http://feedproxy.google.com/~r/inspiredua/~3/VAuC24t9PWk/</link>
         <description>Цієї осені нідерландське місто Вагенінген стане першим містом в світі, в якому вулицями будуть їздити автономні автобуси без водіїв. Нові автобуси називаються WEpod, і в них з комфортом можуть розміститися тільки шість чоловік. Це проект міста Вагенінген, що знаходиться в центральній частині Нідерландів. Автобуси курсуватимуть між двома містами, Еде і Вагенінген (це приблизно 17 хвилин шляху), а [&amp;#8230;]</description>
         <guid isPermaLink="false">http://inspired.com.ua/?p=30709</guid>
         <pubDate>Mon, 28 Sep 2015 09:51:22 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/8c7d1ddf181069a5b1f9af27d73d9fa9.jpg"><img class="aligncenter size-medium wp-image-30710" src="http://inspired.com.ua/wp-content/uploads/2015/09/8c7d1ddf181069a5b1f9af27d73d9fa9-640x480.jpg" alt="8c7d1ddf181069a5b1f9af27d73d9fa9" width="640" height="480"/></a></p>
<p>Цієї осені нідерландське місто <strong>Вагенінген</strong> стане першим містом в світі, в якому вулицями будуть їздити автономні автобуси без водіїв.<span id="more-30709"></span></p>
<p>Нові автобуси називаються WEpod, і в них з комфортом можуть розміститися тільки шість чоловік. Це проект міста Вагенінген, що знаходиться в центральній частині Нідерландів. Автобуси курсуватимуть між двома містами, Еде і Вагенінген (це приблизно 17 хвилин шляху), а також навколо університету, місцевого центру агродосліджень.</p>
<p>Автобуси &#8211; модернізована версія автомобілів, створених швейцарською компанією <a rel="nofollow" target="_blank" href="http://www.popmech.ru/go.php?url=http%3A%2F%2Feasymile.com">EasyMile</a> і вже протестованих в кількох приватних проектах &#8211; будуть рухатися досить повільно, з максимальною швидкістю близько 24 км/год. Вони також не будуть їхати далеко, а диспетчери будуть постійно стежити за транспортом на випадок, якщо щось піде не так. Тим не менш, це все одно цікавий проект, оскільки це перший досвід регулярного використання автономних автобусів на громадських дорогах.</p>
<p></p> 
<p>Автобуси, зрозуміло, використовують дані GPS, але комп&#8217;ютер автобуса також може сам отримувати інформацію того, куди прямує автобус. Один з розробників проекту, Йоріс Ійссельмуйден, пояснює: «Якщо точність системи GPS знижується, наприклад, із-за дерев вздовж дороги, то автобус починає орієнтуватися по розпізнаванню об&#8217;єктів на місцевості. Камери засікають об&#8217;єкти і порівнюють їх з уже відомими об&#8217;єктами з ранніх записів. Так як їх позиція вже відома, то машина може вирахувати, де вона в даний момент знаходиться». По суті автобус вчиться прямо на ходу, нехай і зі швидкістю 24 км/год.</p>
<p><em>via <a rel="nofollow" target="_blank" href="http://www.popmech.ru/go.php?url=http%3A%2F%2Fgizmodo.com%2Fan-autonomous-shuttle-is-using-public-streets-for-the-f-1733100171">Gizmodo</a></em></p>
<img src="http://feeds.feedburner.com/~r/inspiredua/~4/VAuC24t9PWk" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Італійська область Абруццо запровадила безкоштовний Open Day, щоб привабити туристів</title>
         <link>http://feedproxy.google.com/~r/inspiredua/~3/oJc4Dyrzzgw/</link>
         <description>Італійська область Абруццо, яка користується меншою популярністю серед туристів порівняно з іншими регіонами Італії, вирішила виправити своє положення в рейтингу і запроваджує безкоштовний Open Day. Влада регіону придумала спеціальне свято під назвою Abruzzo Open Day, який планується проводити раз на рік, і протягом якого всі міста й райони Абруццо вітатимуть гостей безліччю цікавих ініціатив – історичних, культурних, [&amp;#8230;]</description>
         <guid isPermaLink="false">http://inspired.com.ua/?p=30705</guid>
         <pubDate>Mon, 28 Sep 2015 09:29:54 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/e339ac72875a4a2115d87fd6f4cd899a.jpg"><img class="aligncenter size-medium wp-image-30706" src="http://inspired.com.ua/wp-content/uploads/2015/09/e339ac72875a4a2115d87fd6f4cd899a-640x427.jpg" alt="e339ac72875a4a2115d87fd6f4cd899a" width="640" height="427"/></a></p>
<p>Італійська область <strong>Абруццо</strong>, яка користується меншою популярністю серед туристів порівняно з іншими регіонами Італії, вирішила виправити своє положення в рейтингу і запроваджує безкоштовний Open Day.<span id="more-30705"></span></p>
<p>Влада регіону придумала спеціальне свято під назвою Abruzzo Open Day, який планується проводити раз на рік, і протягом якого всі міста й райони Абруццо вітатимуть гостей безліччю цікавих ініціатив – історичних, культурних, гастрономічних – і все це абсолютно безкоштовно.</p>
<p>&#8220;Ми плануємо організовувати День відкритих дверей щорічно протягом 10 найближчих років, аби продемонструвати туристам унікальну красу та гостинність нашого регіону&#8221;, &#8211; <a rel="nofollow" target="_blank" href="http://www.ansa.it/abruzzo/notizie/2015/09/17/abruzzo-lancia-open-day-1-giorno-gratis_f6eec155-d9c1-4902-b079-e6a5207ca312.html">сказав</a> губернатор Абруццо, Лучано Д’Альфонсо. Губернатор розраховує, що проект зробить Абруццо значно популярнішим серед туристів і це призведе до збільшення обласного ВВП на 2%.</p>
<p>Область, розташована на схід від Риму, оточена горами з одного боку та Адріатичним морем з іншого, пережила руйнівний землетрус 2009 року, який завдав сильних руйнувань столиці краю, місті Д&#8217;Аквіла.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/abruzzo-map.gif"><img class="aligncenter size-full wp-image-30707" src="http://inspired.com.ua/wp-content/uploads/2015/09/abruzzo-map.gif" alt="abruzzo-map" width="600" height="441"/></a></p>
<p>Фото: <a rel="nofollow" target="_blank" href="https://500px.com/photo/88730473/santa-maria-della-piet%C3%A0-rocca-calascio-by-massimo-conti">Massimo Konti</a></p>
<img src="http://feeds.feedburner.com/~r/inspiredua/~4/oJc4Dyrzzgw" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>20 неймовірних готелів, в яких ви захочете залишитись</title>
         <link>http://feedproxy.google.com/~r/inspiredua/~3/q5xFv4Wpp4A/</link>
         <description>Перша асоціація, яка виникає в голові при слові &amp;#8220;готель&amp;#8221; &amp;#8211; це стандартний набір послуг. Дівчата на ресепшні, ліфтом нагору, відкрити двері карткою і зайти у свій номер з аскетичними меблями. Тим не менш, у світі є чимало місць, власники яких вирішили запропонувати своїм гостям щось набагато більше і крутіше, ніж просто кімнату для ночівлі &amp;#8211; [&amp;#8230;]</description>
         <guid isPermaLink="false">http://inspired.com.ua/?p=30647</guid>
         <pubDate>Fri, 25 Sep 2015 15:47:43 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/20-hotels.png"><img src="http://inspired.com.ua/wp-content/uploads/2015/09/20-hotels-640x439.png" alt="20-hotels" width="640" height="439" class="aligncenter size-medium wp-image-30702"/></a></p>
<p>Перша асоціація, яка виникає в голові при слові &#8220;<strong>готель</strong>&#8221; &#8211; це стандартний набір послуг. Дівчата на ресепшні, ліфтом нагору, відкрити двері карткою і зайти у свій номер з аскетичними меблями. Тим не менш, у світі є чимало місць, власники яких вирішили запропонувати своїм гостям щось набагато більше і крутіше, ніж просто кімнату для ночівлі &#8211; незабутні враження. Ми зібрали два десятки <a rel="nofollow" target="_blank" href="https://hotelscan.com/uk">готелів</a>, які стараються бути неймовірними, і в них це непогано виходить.<span id="more-30647"></span></p>
<h3><strong>Kakslauttanen, Фінляндія</strong></h3>
<p>Заснути посеред скандинавської природи, споглядаючи через стелю полярне сяйво? Так, і таке можливо.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-2-1__880.jpg"><img class="aligncenter size-medium wp-image-30648" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-2-1__880-640x425.jpg" alt="unusual-themed-hotels-2-1__880" width="640" height="425"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-2-2.jpg"><img class="aligncenter size-medium wp-image-30649" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-2-2-640x428.jpg" alt="unusual-themed-hotels-2-2" width="640" height="428"/></a></p>
<p>&nbsp;</p>
<h3><strong>Glass Floor Udang House, острів Балі, Індонезія</strong></h3>
<p>Або навпаки, ступати по скляній підлозі і бачити під ногами акваріум? І таке буває.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-13__880.jpg"><img class="aligncenter size-medium wp-image-30650" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-13__880-640x426.jpg" alt="unusual-themed-hotels-13__880" width="640" height="426"/></a></p>
<p>&nbsp;</p>
<h3><strong>Плавучий готель у Занзібарі</strong></h3>
<p>Коли навколо &#8211; ні душі. І лише тропічне море та безкрайні простори океану.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-1-4.jpg"><img class="aligncenter size-medium wp-image-30651" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-1-4-640x480.jpg" alt="unusual-themed-hotels-1-4" width="640" height="480"/></a></p>
<p>&nbsp;</p>
<h3><strong>Äscher Cliff, Швейцарія</strong></h3>
<p>Хатинка над прірвою, оточена альпійськими лугами.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-25__880-1.jpg"><img class="aligncenter size-medium wp-image-30652" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-25__880-1-602x480.jpg" alt="unusual-themed-hotels-25__880 (1)" width="602" height="480"/></a></p>
<p>&nbsp;</p>
<h3><strong>Giraffe Manor, Кенія</strong></h3>
<p>А що було б, якби клієнти могли вітатись щоранку із жирафами? Власники готелю в Кенії вирішили втілити це запитання у реальність.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-6-1__880.jpg"><img class="aligncenter size-medium wp-image-30653" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-6-1__880-640x427.jpg" alt="unusual-themed-hotels-6-1__880" width="640" height="427"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-6-2.jpg"><img class="aligncenter size-medium wp-image-30654" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-6-2-640x425.jpg" alt="unusual-themed-hotels-6-2" width="640" height="425"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-6-3.jpg"><img class="aligncenter size-medium wp-image-30655" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-6-3-640x480.jpg" alt="unusual-themed-hotels-6-3" width="640" height="480"/></a></p>
<p>&nbsp;</p>
<h3><strong>Fairy Chimney Hotel, Туреччина</strong></h3>
<p>Номери цього готелю, видлубані у скелях Туреччини, нагадають щось середнє між поселеннями печерних людей та чудернацькими творіннями Гауді.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-21-1__880.jpg"><img class="aligncenter size-medium wp-image-30656" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-21-1__880-640x424.jpg" alt="unusual-themed-hotels-21-1__880" width="640" height="424"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-21-2.jpg"><img class="aligncenter size-medium wp-image-30657" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-21-2-640x425.jpg" alt="unusual-themed-hotels-21-2" width="640" height="425"/></a></p>
<p>&nbsp;</p>
<h3><strong>Conrad Maldives, острів Рангалі</strong></h3>
<p>Вечеря у компанії рибок та ліжко, оточене водою. Кому екстріму?</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-3-1__880.jpg"><img class="aligncenter size-medium wp-image-30658" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-3-1__880-640x417.jpg" alt="unusual-themed-hotels-3-1__880" width="640" height="417"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-3-2.jpg"><img class="aligncenter size-medium wp-image-30659" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-3-2-640x400.jpg" alt="unusual-themed-hotels-3-2" width="640" height="400"/></a></p>
<p>&nbsp;</p>
<h3><strong>Montana Magica Lodge, Чилі</strong></h3>
<p>Чи то будинок, чи то гора, заросла плющем, до якої можна дійти на підвісних мотузках, і з вершини якої тече водоспад.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-11__880.jpg"><img class="aligncenter size-medium wp-image-30660" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-11__880-640x426.jpg" alt="unusual-themed-hotels-11__880" width="640" height="426"/></a></p>
<p>&nbsp;</p>
<h3><strong>Free Spirit Spheres, Канада</strong></h3>
<p>Дитячі мрії іноді стають реальністю: хто б не захотів заночувати в такому &#8220;будиночку на дереві&#8221;.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-18-2__880.jpg"><img class="aligncenter size-medium wp-image-30661" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-18-2__880-640x480.jpg" alt="unusual-themed-hotels-18-2__880" width="640" height="480"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-18-1.jpg"><img class="aligncenter size-medium wp-image-30662" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-18-1-640x425.jpg" alt="unusual-themed-hotels-18-1" width="640" height="425"/></a></p>
<p>&nbsp;</p>
<h3><strong>Льодовий готель в Jukkasjarvi, Швеція</strong></h3>
<p>Десь за стіною, напевно, покої Снігової Королеви.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-5-1__880.jpg"><img class="aligncenter size-medium wp-image-30663" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-5-1__880-640x480.jpg" alt="unusual-themed-hotels-5-1__880" width="640" height="480"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-5-2.jpg"><img class="aligncenter  wp-image-30664" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-5-2-480x480.jpg" alt="unusual-themed-hotels-5-2" width="632" height="632"/></a></p>
<p>&nbsp;</p>
<h3><strong>Дзеркальний куб-готель, Швеція</strong></h3>
<p>Архітектурний фурор останніх років, цей готель здається повністю прозорим і виглядає як фантастичне новоутворення прямо посеред лісу.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-16__880.jpg"><img class="aligncenter  wp-image-30665" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-16__880-470x480.jpg" alt="unusual-themed-hotels-16__880" width="635" height="649"/></a></p>
<p>&nbsp;</p>
<h3><strong>Amsterdam Zaandam Inntel Hotel, Нідерланди</strong></h3>
<p>Сцена з фільму Inception: традиційна нідерландська архітектура у прогресії &#8211; вгору та вбік</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-17__880.jpg"><img class="aligncenter  wp-image-30666" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-17__880-683x1024.jpg" alt="unusual-themed-hotels-17__880" width="637" height="955"/></a></p>
<p>&nbsp;</p>
<h3><strong>Martin’s Patershof Church Hotel, Мехелен, Бельгія</strong></h3>
<p>Готелі і бібліотеки в церквах Західної Європи &#8211; не богохульство, а цілком логічне використання церков, кількість прихожан яких невпинно зменшується.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-23-1__880.jpg"><img class="aligncenter  wp-image-30667" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-23-1__880-826x1024.jpg" alt="unusual-themed-hotels-23-1__880" width="638" height="791"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-23-2.jpg"><img class="aligncenter  wp-image-30668" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-23-2.jpg" alt="unusual-themed-hotels-23-2" width="638" height="425"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-23-3.jpg"><img class="aligncenter  wp-image-30669" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-23-3.jpg" alt="unusual-themed-hotels-23-3" width="637" height="425"/></a></p>
<p>&nbsp;</p>
<h3><strong>Harry Potter Hotel, Лондон</strong></h3>
<p>Фанати саги про хлопчика-чарівника будуть в захваті: кімнати в цьому готелі виконані в стилі знаменитих книжок Джоан Роулінг. І, здається, біснувата книга з пазурями знову вискочить з-під ліжка.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-7-1__880.jpg"><img class="aligncenter  wp-image-30670" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-7-1__880.jpg" alt="unusual-themed-hotels-7-1__880" width="636" height="715"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-7-3.jpg"><img class="aligncenter size-medium wp-image-30671" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-7-3-640x480.jpg" alt="unusual-themed-hotels-7-3" width="640" height="480"/></a></p>
<p>&nbsp;</p>
<h3><strong>Kolarbyn Ecolodge, Швеція</strong></h3>
<p>Органічні продукти, натуральні матеріали та повернення до витоків &#8211; такі основні мотиви цього готелю. Любителі природи оцінять по достоїнству таке місце для ночівлі.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/amazing-hotels-world-theme-4__880.jpg"><img class="aligncenter size-medium wp-image-30673" src="http://inspired.com.ua/wp-content/uploads/2015/09/amazing-hotels-world-theme-4__880-619x480.jpg" alt="amazing-hotels-world-theme-4__880" width="619" height="480"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/amazing-hotels-world-theme-8.jpg"><img class="aligncenter size-medium wp-image-30674" src="http://inspired.com.ua/wp-content/uploads/2015/09/amazing-hotels-world-theme-8-640x428.jpg" alt="amazing-hotels-world-theme-8" width="640" height="428"/></a></p>
<p>&nbsp;</p>
<h3><strong>Attrap Reves Hotel, Франція</strong></h3>
<p>Тут буде нелегко тим, хто звик жити за двома шарами фіранок. А любителям завжди бути на виду сподобається!</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-4-1__880.jpg"><img class="aligncenter size-medium wp-image-30675" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-4-1__880-640x480.jpg" alt="unusual-themed-hotels-4-1__880" width="640" height="480"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-4-2.jpg"><img class="aligncenter size-medium wp-image-30676" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-4-2-640x480.jpg" alt="unusual-themed-hotels-4-2" width="640" height="480"/></a></p>
<p>&nbsp;</p>
<h3><strong>Готель-літак, Коста-Рика</strong></h3>
<p>Зовні &#8211; звичайний літак, що невдало приземлився в комедійному фільмі, всередині &#8211; він вишуканий готель з дерев&#8217;яним оздобленням.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-14-1__880.jpg"><img class="aligncenter size-medium wp-image-30677" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-14-1__880-640x480.jpg" alt="unusual-themed-hotels-14-1__880" width="640" height="480"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-14-2.jpg"><img class="aligncenter size-medium wp-image-30678" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-14-2-640x425.jpg" alt="unusual-themed-hotels-14-2" width="640" height="425"/></a></p>
<p>&nbsp;</p>
<h3><strong>Sala Silvermine, Швеція</strong></h3>
<p>Колишня срібна копальня відтворить для вас антураж, притаманний хіба що &#8220;Іграм престолів&#8221;.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-20-1__880.jpg"><img class="aligncenter size-medium wp-image-30679" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-20-1__880-581x480.jpg" alt="unusual-themed-hotels-20-1__880" width="581" height="480"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-20-2.jpg"><img class="aligncenter size-medium wp-image-30680" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-20-2-640x427.jpg" alt="unusual-themed-hotels-20-2" width="640" height="427"/></a></p>
<p>&nbsp;</p>
<h3><strong>The Southern Ocean Lodge, острів Кенгуру, Австралія</strong></h3>
<p>Пити чай під ковдрою і вдивлятись у далечінь океану.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/beautiful-living-space-16__880.jpg"><img class="aligncenter size-medium wp-image-30681" src="http://inspired.com.ua/wp-content/uploads/2015/09/beautiful-living-space-16__880-640x426.jpg" alt="beautiful-living-space-16__880" width="640" height="426"/></a></p>
<p>&nbsp;</p>
<h3><strong>V8 Hotel, Штутгарт</strong></h3>
<p>&#8220;Спали у машині&#8221; набуває іншого значення, якщо ви потрапляєте у цей незабутній готель у Штутгарті. Новий номер &#8211; новий автомобіль.</p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-24-1__880.jpg"><img class="aligncenter size-medium wp-image-30682" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-24-1__880-640x448.jpg" alt="unusual-themed-hotels-24-1__880" width="640" height="448"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-24-2.jpg"><img class="aligncenter size-medium wp-image-30683" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-24-2-640x480.jpg" alt="unusual-themed-hotels-24-2" width="640" height="480"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-24-3.jpg"><img class="aligncenter  wp-image-30684" src="http://inspired.com.ua/wp-content/uploads/2015/09/unusual-themed-hotels-24-3-497x480.jpg" alt="unusual-themed-hotels-24-3" width="637" height="615"/></a></p>
<p>На початку цього року популярний туристичний сервіс TripAdvisor опублікував <a rel="nofollow" target="_blank" href="http://inspired.com.ua/news/tripadvisor-best-ua-hotels/">рейтинг найкращих готелів України</a>, який був сформований на основі відгуків користувачів.</p>
<p>Якщо ви зібрались у подорож, але досі не знайшли готель &#8211; саме час зробити це за допомогою безкоштовного сервісу пошуку <a rel="nofollow" target="_blank" href="https://hotelscan.com/uk">Hotelscan</a>, в базі якого уже більше 700 000 готелів.</p>
<img src="http://feeds.feedburner.com/~r/inspiredua/~4/q5xFv4Wpp4A" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Олександр Дмитровський: “Зло поруч”</title>
         <link>http://molodi.in.ua/zlo-poruch/</link>
         <description>Сьогодні ми візьмемо бліц-інтерв’ю з Олександром Дмитровським, письменником, членом Клубу любителів україномовної фантастики та куратором збірки містичних оповідань “Світильник Джека”, яка має от-от вийти у світ. -  Доброго вечора! Розкажіть трохи про збірку “Світильник Джека” і чому містика? - Добрий [...]&lt;div class='yarpp-related-rss'&gt;

Також читайте:&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/mariya-maslij/' title='&amp;#x00041c;&amp;#x000430;&amp;#x000440;&amp;#x000456;&amp;#x00044f; &amp;#x00041c;&amp;#x000430;&amp;#x000441;&amp;#x00043b;&amp;#x000456;&amp;#x000439;: &amp;#xab;&amp;#x000426;&amp;#x000435; &amp;#x00043f;&amp;#x000440;&amp;#x00043e;&amp;#x000441;&amp;#x000442;&amp;#x00043e; &amp;#x000442;&amp;#x000435;, &amp;#x000449;&amp;#x00043e; &amp;#x00044f; &amp;#x00043d;&amp;#x000435; &amp;#x00043c;&amp;#x00043e;&amp;#x000436;&amp;#x000443; &amp;#x00043d;&amp;#x000435; &amp;#x000440;&amp;#x00043e;&amp;#x000431;&amp;#x000438;&amp;#x000442;&amp;#x000438;&amp;#xbb;'&gt;Марія Маслій: «Це просто те, що я не можу не робити»&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/pochytaty-vlitku/' title='&amp;#x000429;&amp;#x00043e; &amp;#x00043f;&amp;#x00043e;&amp;#x000447;&amp;#x000438;&amp;#x000442;&amp;#x000430;&amp;#x000442;&amp;#x000438; &amp;#x000432;&amp;#x00043b;&amp;#x000456;&amp;#x000442;&amp;#x00043a;&amp;#x000443;?'&gt;Що почитати влітку?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/marta-kalynyak/' title='&amp;#x000412;&amp;#x000456;&amp;#x000434; &amp;#x000436;&amp;#x000438;&amp;#x000442;&amp;#x000442;&amp;#x00044f; &amp;#x000434;&amp;#x00043e; &amp;#x00043f;&amp;#x000440;&amp;#x00043e;&amp;#x000435;&amp;#x00043a;&amp;#x000442;&amp;#x000443;, &amp;#x000432;&amp;#x000456;&amp;#x000434; &amp;#x00043f;&amp;#x000440;&amp;#x00043e;&amp;#x000435;&amp;#x00043a;&amp;#x000442;&amp;#x000443; &amp;#x000434;&amp;#x00043e; &amp;#x000436;&amp;#x000438;&amp;#x000442;&amp;#x000442;&amp;#x00044f;'&gt;Від життя до проекту, від проекту до життя&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/in/AyQk/~4/v9AEG-47Lgs&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://molodi.in.ua/?p=38915</guid>
         <pubDate>Wed, 23 Sep 2015 12:52:29 +0000</pubDate>
      </item>
      <item>
         <title>Клуб Практичної Психології відкриває двері!</title>
         <link>http://molodi.in.ua/klub-psyholohiji/</link>
         <description>Саморозвиток тебе манить, але щоразу після старту проведення медитацій щодня чи якихось методик уже на третій-п&amp;#8217;ятий день втрачаєш ентузіазм? Можливо, тобі допоможе команда КПП? Київська ФРІ запрошує тебе приєднатися до Клубу Практичної Психології, який стартує 2 жовтня о 19.00. 10 тижнів КПП активно працюватиме [...]&lt;div class='yarpp-related-rss'&gt;

Також читайте:&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/habarnytstvo-universytetiv/' title='&amp;#x00041f;&amp;#x00043e;&amp;#x00043a;&amp;#x000430;&amp;#x000436;&amp;#x000435;&amp;#x00043c;&amp;#x00043e; &amp;#x000445;&amp;#x000430;&amp;#x000431;&amp;#x000430;&amp;#x000440;&amp;#x00043d;&amp;#x000438;&amp;#x000446;&amp;#x000442;&amp;#x000432;&amp;#x00043e; &amp;#x000443;&amp;#x00043d;&amp;#x000456;&amp;#x000432;&amp;#x000435;&amp;#x000440;&amp;#x000441;&amp;#x000438;&amp;#x000442;&amp;#x000435;&amp;#x000442;&amp;#x000456;&amp;#x000432;?!'&gt;Покажемо хабарництво університетів?!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/psyholohiya-byznesu/' title='&amp;#x000422;&amp;#x000440;&amp;#x000435;&amp;#x00043d;&amp;#x000456;&amp;#x00043d;&amp;#x000433; &amp;#8220;&amp;#x00041f;&amp;#x000441;&amp;#x000438;&amp;#x000445;&amp;#x00043e;&amp;#x00043b;&amp;#x00043e;&amp;#x000433;&amp;#x000456;&amp;#x00044f; &amp;#x000411;&amp;#x000438;&amp;#x000437;&amp;#x00043d;&amp;#x000435;&amp;#x000441;&amp;#x000443;&amp;#8221; &amp;#x000432;&amp;#x000456;&amp;#x000434; Smart Group 18 &amp;#x00043a;&amp;#x000432;&amp;#x000456;&amp;#x000442;&amp;#x00043d;&amp;#x00044f;'&gt;Тренінг &amp;#8220;Психологія Бизнесу&amp;#8221; від Smart Group 18 квітня&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/language-school-summer15/' title='&amp;#x00041e;&amp;#x000441;&amp;#x000432;&amp;#x000456;&amp;#x000442;&amp;#x00043d;&amp;#x000456;&amp;#x000439; &amp;#x00043f;&amp;#x000440;&amp;#x00043e;&amp;#x000435;&amp;#x00043a;&amp;#x000442; Language School Summer`15'&gt;Освітній проект Language School Summer`15&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/in/AyQk/~4/N8vAaiwCE28&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://molodi.in.ua/?p=38905</guid>
         <pubDate>Wed, 23 Sep 2015 12:40:15 +0000</pubDate>
      </item>
      <item>
         <title>Які продукти шкідливі для зубів?</title>
         <link>http://blogoreader.org.ua/2015/09/23/shkoda-dlya-zubuv/</link>
         <description>Як відомо, при вживанні їжі мікрофлора, яка знаходиться у роті, активно розмножується і харчується тими ж корисними речовинами, що і організм в цілому. Бактерії активно вживають глюкозу, яка міститься в цукрі та інших солодких продуктах – відповідно, чим більше вживається &lt;a rel=&quot;nofollow&quot; class=&quot;more-link&quot; target=&quot;_blank&quot; href=&quot;http://blogoreader.org.ua/2015/09/23/shkoda-dlya-zubuv/&quot;&gt;Читати далі&lt;/a&gt;</description>
         <guid isPermaLink="false">http://blogoreader.org.ua/?p=1874</guid>
         <pubDate>Wed, 23 Sep 2015 07:59:27 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/09/zub.jpg"><img class="size-full wp-image-1876 aligncenter" src="http://blogoreader.org.ua/wp-content/uploads/2015/09/zub.jpg" alt="&#x00042f;&#x00043a;&#x000456; &#x00043f;&#x000440;&#x00043e;&#x000434;&#x000443;&#x00043a;&#x000442;&#x000438; &#x000448;&#x00043a;&#x000456;&#x000434;&#x00043b;&#x000438;&#x000432;&#x000456; &#x000434;&#x00043b;&#x00044f; &#x000437;&#x000443;&#x000431;&#x000456;&#x000432;" width="500" height="332"/></a>Як відомо, при вживанні їжі мікрофлора, яка знаходиться у роті, активно розмножується і харчується тими ж корисними речовинами, що і організм в цілому. Бактерії активно вживають глюкозу, яка міститься в цукрі та інших солодких продуктах – відповідно, чим більше вживається їжі багатої на глюкозу, тим більше бактерій знаходиться в роті. Також варто відзначити, що продукти, які збагачені крохмалем, стають їжею для мікроорганізмів і стимулюють їх зростання. 




 
</p> 
<p>Щоб зберегти цілісність зубів в першу чергу потрібно скоротити вживання продуктів, які містять велику кількість цукру. Люди, які сильно непокояться за своє здоров’я і стежать за ним, зазвичай знають, скільки і чого можна вжити, щоб не нашкодити своїм зубам. Активне зростання бактерій в цілому спостерігається при вживанні цукрового рафінаду – такий цукор міститься в кондитерських виробах, шоколаді, а також здобних виробах. Всі ці продукти сприяють виникненню карієсу, неприємного запаху з рота, а також зубного нальоту і каменю. Для усунення всіх цих небажаних наслідків однозначно доведеться звертатися за послугами до фахівця, наприклад, хороший дантист легко і швидко виправить ушкодження зубів як на початкових стадіях руйнування, так і на більш глибоких.</p>
<p>Також варто не забувати вживати в їжу тверді продукти, тому що, як показують дослідження, якщо зуби не навантажувати вони також сильно страждають і починають руйнуватися. Відсутність жувального навантаження привертає людину до формування неправильного прикусу. Однозначно відмовлятися від солодощів немає необхідності, просто варто знати міру в їх вживанні. Якщо ж не вдалося уникнути пошкодження зубів, то потрібно звернутися і записатися на прийом до лікаря-стоматолога. 




 
</p> 
<p>Їжа, руйнує яка емаль? Існує довгий ряд продуктів харчування, які в своєму складі мають кислоту, що згубно позначається на емалі. Особливо сильно руйнують емаль газовані води, які в останні роки стали дуже популярні. Кислотність такого напою в ряді випадків досягає майже 3,0 одиниць за шкалою рН. Через частого вживання даного продукту зуби руйнуються в рекордно короткі терміни. Також небезпечні для зубів і фруктові соки, які містять велику кількість кислоти.</p>
<div class="facebook" title="Share link on Facebook">Facebook</div><div class="twitter" title="Share link on Twitter">Twitter</div><div class="plusone" title="Share link on Google+">Google+</div><div class="livejournal" title="Share link on LiveJournal">LiveJournal</div><form target="_blank" style="display:none;" class="sociallikes-livejournal-form"></form><div class="feedflare">
<a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=WJGcMKMlibg:bm74eVR6hcc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=WJGcMKMlibg:bm74eVR6hcc:D7DqB2pKExk" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=WJGcMKMlibg:bm74eVR6hcc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=WJGcMKMlibg:bm74eVR6hcc:F7zBnMyn0Lo" border="0"></a>
</div><img src="http://feeds.feedburner.com/~r/Blogoreader/~4/WJGcMKMlibg" height="1" width="1" alt=""/>]]></content:encoded>
         <category>Поради</category>
      </item>
      <item>
         <title>Національне антикорупційне бюро України</title>
         <link>http://molodi.in.ua/antykoruptsijne-byuro/</link>
         <description>Ми всі живемо в очікуванні реформ. Наша держава має гарний потенціал, але, на жаль, цей потенціал в силу об’єктивних і, найстрашніше, суб’єктивних причин, не використовується повною мірою. Країна потонула в корупції. Якщо вірити результатам глобального індексу сприйняття корупції &amp;#8211; 2014, [...]&lt;div class='yarpp-related-rss'&gt;

Також читайте:&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/vidvidaty-lviv/' title='5 &amp;#x00043f;&amp;#x000440;&amp;#x000438;&amp;#x000447;&amp;#x000438;&amp;#x00043d;, &amp;#x000447;&amp;#x000435;&amp;#x000440;&amp;#x000435;&amp;#x000437; &amp;#x00044f;&amp;#x00043a;&amp;#x000456; &amp;#x000432;&amp;#x000430;&amp;#x000440;&amp;#x000442;&amp;#x00043e; &amp;#x000432;&amp;#x000456;&amp;#x000434;&amp;#x000432;&amp;#x000456;&amp;#x000434;&amp;#x000430;&amp;#x000442;&amp;#x000438; &amp;#x00041b;&amp;#x00044c;&amp;#x000432;&amp;#x000456;&amp;#x000432;'&gt;5 причин, через які варто відвідати Львів&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/vplyv-ukrajinskoho/' title='&amp;#x000412;&amp;#x00043f;&amp;#x00043b;&amp;#x000438;&amp;#x000432; &amp;#x000443;&amp;#x00043a;&amp;#x000440;&amp;#x000430;&amp;#x000457;&amp;#x00043d;&amp;#x000441;&amp;#x00044c;&amp;#x00043a;&amp;#x00043e;&amp;#x000457; &amp;#x00043c;&amp;#x000443;&amp;#x000437;&amp;#x000438;&amp;#x00043a;&amp;#x000438;, &amp;#x000442;&amp;#x000435;&amp;#x000430;&amp;#x000442;&amp;#x000440;&amp;#x000443;, &amp;#x000436;&amp;#x000438;&amp;#x000432;&amp;#x00043e;&amp;#x00043f;&amp;#x000438;&amp;#x000441;&amp;#x000443; &amp;#x00043d;&amp;#x000430; &amp;#x000440;&amp;#x00043e;&amp;#x000437;&amp;#x000432;&amp;#x000438;&amp;#x000442;&amp;#x00043e;&amp;#x00043a; &amp;#x00043c;&amp;#x000438;&amp;#x000441;&amp;#x000442;&amp;#x000435;&amp;#x000446;&amp;#x000442;&amp;#x000432;&amp;#x000430; &amp;#x000420;&amp;#x00043e;&amp;#x000441;&amp;#x000456;&amp;#x000457;'&gt;Вплив української музики, театру, живопису на розвиток мистецтва Росії&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/tsentry-posluh/' title='&amp;#x000426;&amp;#x000435;&amp;#x00043d;&amp;#x000442;&amp;#x000440;&amp;#x000438; &amp;#x00043d;&amp;#x000430;&amp;#x000434;&amp;#x000430;&amp;#x00043d;&amp;#x00043d;&amp;#x00044f; &amp;#x000430;&amp;#x000434;&amp;#x00043c;&amp;#x000456;&amp;#x00043d;&amp;#x000456;&amp;#x000441;&amp;#x000442;&amp;#x000440;&amp;#x000430;&amp;#x000442;&amp;#x000438;&amp;#x000432;&amp;#x00043d;&amp;#x000438;&amp;#x000445; &amp;#x00043f;&amp;#x00043e;&amp;#x000441;&amp;#x00043b;&amp;#x000443;&amp;#x000433; &amp;#8211; &amp;#x000446;&amp;#x000435;&amp;#x00043d;&amp;#x000442;&amp;#x000440;&amp;#x000438; &amp;#x00043c;&amp;#x000430;&amp;#x000439;&amp;#x000431;&amp;#x000443;&amp;#x000442;&amp;#x00043d;&amp;#x00044c;&amp;#x00043e;&amp;#x000433;&amp;#x00043e; &amp;#x000423;&amp;#x00043a;&amp;#x000440;&amp;#x000430;&amp;#x000438;&amp;#x000457;&amp;#x00043d;&amp;#x000438;'&gt;Центри надання адміністративних послуг &amp;#8211; центри майбутнього Украиїни&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/in/AyQk/~4/VD-8M9lFlck&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://molodi.in.ua/?p=38889</guid>
         <pubDate>Tue, 22 Sep 2015 11:48:16 +0000</pubDate>
      </item>
      <item>
         <title>26 вересня у Києві пройде 16-й Мегамарш у вишиванках</title>
         <link>http://molodi.in.ua/mehamarsh16/</link>
         <description>Мегамарш вишиванок збиратиме подарунки для військових. 26 вересня у Києві пройде 16-й Мегамарш у вишиванках. Збір учасників о 14:00 біля станції метро «Золоті Ворота». В рамках маршу відбудеться благодійна акція «Подарунок солдату». Організатори закликають брати із собою харчі тривалого зберігання, [...]&lt;div class='yarpp-related-rss'&gt;

Також читайте:&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/nichna-ekskursiya-kyjevom/' title='&amp;#x00041d;&amp;#x000456;&amp;#x000447;&amp;#x00043d;&amp;#x000430; &amp;#x000435;&amp;#x00043a;&amp;#x000441;&amp;#x00043a;&amp;#x000443;&amp;#x000440;&amp;#x000441;&amp;#x000456;&amp;#x00044f; &amp;#x00041a;&amp;#x000438;&amp;#x000454;&amp;#x000432;&amp;#x00043e;&amp;#x00043c; (12.07)'&gt;Нічна екскурсія Києвом (12.07)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/marafon-dobryh-sprav/' title='&amp;#x000411;&amp;#x00043b;&amp;#x000430;&amp;#x000433;&amp;#x00043e;&amp;#x000434;&amp;#x000456;&amp;#x000439;&amp;#x00043d;&amp;#x000430; &amp;#x000430;&amp;#x00043a;&amp;#x000446;&amp;#x000456;&amp;#x00044f; &amp;#8220;&amp;#x00041c;&amp;#x000430;&amp;#x000440;&amp;#x000430;&amp;#x000444;&amp;#x00043e;&amp;#x00043d; &amp;#x000434;&amp;#x00043e;&amp;#x000431;&amp;#x000440;&amp;#x000438;&amp;#x000445; &amp;#x000441;&amp;#x00043f;&amp;#x000440;&amp;#x000430;&amp;#x000432;&amp;#8221;'&gt;Благодійна акція &amp;#8220;Марафон добрих справ&amp;#8221;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/zustrichajemo-vesnu/' title='&amp;#x000417;&amp;#x000443;&amp;#x000441;&amp;#x000442;&amp;#x000440;&amp;#x000456;&amp;#x000447;&amp;#x000430;&amp;#x000454;&amp;#x00043c;&amp;#x00043e; &amp;#x000432;&amp;#x000435;&amp;#x000441;&amp;#x00043d;&amp;#x000443; &amp;#x000440;&amp;#x000430;&amp;#x000437;&amp;#x00043e;&amp;#x00043c;'&gt;Зустрічаємо весну разом&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/in/AyQk/~4/lNolyCGYPOQ&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://molodi.in.ua/?p=38897</guid>
         <pubDate>Tue, 22 Sep 2015 11:44:42 +0000</pubDate>
      </item>
      <item>
         <title>Центри надання адміністративних послуг – центри майбутнього Украиїни</title>
         <link>http://molodi.in.ua/tsentry-posluh/</link>
         <description>Кожному з нас неодмінно доводиться брати  якісь довідки, документи для вирішення певних особистих проблем.  Раніше ця процедура забирала багато часу, за довідки потрібно було платити, що створювало певні незручності. Сьогодні ситуація змінюється, оскільки створюються нові установи під назвою «Центри надання [...]&lt;div class='yarpp-related-rss'&gt;

Також читайте:&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/vidvidaty-lviv/' title='5 &amp;#x00043f;&amp;#x000440;&amp;#x000438;&amp;#x000447;&amp;#x000438;&amp;#x00043d;, &amp;#x000447;&amp;#x000435;&amp;#x000440;&amp;#x000435;&amp;#x000437; &amp;#x00044f;&amp;#x00043a;&amp;#x000456; &amp;#x000432;&amp;#x000430;&amp;#x000440;&amp;#x000442;&amp;#x00043e; &amp;#x000432;&amp;#x000456;&amp;#x000434;&amp;#x000432;&amp;#x000456;&amp;#x000434;&amp;#x000430;&amp;#x000442;&amp;#x000438; &amp;#x00041b;&amp;#x00044c;&amp;#x000432;&amp;#x000456;&amp;#x000432;'&gt;5 причин, через які варто відвідати Львів&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/muzej-nebesnoji-sotni/' title='&amp;#x000412; &amp;#x000406;&amp;#x000432;&amp;#x000430;&amp;#x00043d;&amp;#x00043e;-&amp;#x000424;&amp;#x000440;&amp;#x000430;&amp;#x00043d;&amp;#x00043a;&amp;#x000456;&amp;#x000432;&amp;#x000441;&amp;#x00044c;&amp;#x00043a;&amp;#x000443; &amp;#x000437;`&amp;#x00044f;&amp;#x000432;&amp;#x000438;&amp;#x000442;&amp;#x00044c;&amp;#x000441;&amp;#x00044f; &amp;#x00043f;&amp;#x000435;&amp;#x000440;&amp;#x000448;&amp;#x000438;&amp;#x000439; &amp;#x000432; &amp;#x000423;&amp;#x00043a;&amp;#x000440;&amp;#x000430;&amp;#x000457;&amp;#x00043d;&amp;#x000456; &amp;#x00043c;&amp;#x000443;&amp;#x000437;&amp;#x000435;&amp;#x000439; &amp;#x00041d;&amp;#x000435;&amp;#x000431;&amp;#x000435;&amp;#x000441;&amp;#x00043d;&amp;#x00043e;&amp;#x000457; &amp;#x000421;&amp;#x00043e;&amp;#x000442;&amp;#x00043d;&amp;#x000456;'&gt;В Івано-Франківську з`явиться перший в Україні музей Небесної Сотні&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/vplynuty-navladu/' title='&amp;#x00042f;&amp;#x00043a; &amp;#x000432;&amp;#x00043f;&amp;#x00043b;&amp;#x000438;&amp;#x00043d;&amp;#x000443;&amp;#x000442;&amp;#x000438; &amp;#x00043d;&amp;#x000430; &amp;#x000432;&amp;#x00043b;&amp;#x000430;&amp;#x000434;&amp;#x000443;, &amp;#x00043e;&amp;#x00043a;&amp;#x000440;&amp;#x000456;&amp;#x00043c; &amp;#x000448;&amp;#x000438;&amp;#x00043d;&amp;#x000430;&amp;#x00043c;&amp;#x000438; &amp;#x000442;&amp;#x000430; &amp;#x000431;&amp;#x000440;&amp;#x000443;&amp;#x00043a;&amp;#x000456;&amp;#x000432;&amp;#x00043a;&amp;#x00043e;&amp;#x00044e;?'&gt;Як вплинути на владу, окрім шинами та бруківкою?&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/in/AyQk/~4/19vpRyRxwwA&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://molodi.in.ua/?p=38878</guid>
         <pubDate>Thu, 17 Sep 2015 17:31:28 +0000</pubDate>
      </item>
      <item>
         <title>Travel Academy – навчить тонкощам подорожей</title>
         <link>http://molodi.in.ua/travel-academy-navchyt-tonkoscham-podorozhej/</link>
         <description>Давно мрієш про тревел-лайфстайл? Знову хочеш в Париж &amp;#8230; чи на Кубу? Але усе це немає грошей або мало знань? Є страх що не відкриють візу або ви загубишся десь по дорозі? Є рішення усіх цих проблем! Тепер є місце, [...]&lt;div class='yarpp-related-rss'&gt;

Також читайте:&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/krok-doliderstva2015/' title='&amp;#x00041e;&amp;#x000441;&amp;#x000432;&amp;#x000456;&amp;#x000442;&amp;#x00043d;&amp;#x00044c;&amp;#x00043e;-&amp;#x00043c;&amp;#x00043e;&amp;#x000442;&amp;#x000438;&amp;#x000432;&amp;#x000430;&amp;#x000446;&amp;#x000456;&amp;#x000439;&amp;#x00043d;&amp;#x000438;&amp;#x000439; &amp;#x000442;&amp;#x000430;&amp;#x000431;&amp;#x000456;&amp;#x000440; &amp;#xab;&amp;#x00041a;&amp;#x000440;&amp;#x00043e;&amp;#x00043a; &amp;#x000434;&amp;#x00043e; &amp;#x00041b;&amp;#x000456;&amp;#x000434;&amp;#x000435;&amp;#x000440;&amp;#x000441;&amp;#x000442;&amp;#x000432;&amp;#x000430; 2015&amp;#xbb;'&gt;Освітньо-мотиваційний табір «Крок до Лідерства 2015»&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/pryjihaly-navchylys/' title='&amp;#x00041f;&amp;#x000440;&amp;#x000438;&amp;#x000457;&amp;#x000445;&amp;#x000430;&amp;#x00043b;&amp;#x000438;, &amp;#x00043d;&amp;#x000430;&amp;#x000432;&amp;#x000447;&amp;#x000438;&amp;#x00043b;&amp;#x000438;&amp;#x000441;&amp;#x00044c;, &amp;#x000440;&amp;#x000435;&amp;#x000430;&amp;#x00043b;&amp;#x000456;&amp;#x000437;&amp;#x000443;&amp;#x000454;&amp;#x00043c;&amp;#x00043e;!'&gt;Приїхали, навчились, реалізуємо!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/indoneziya-vyrushajemo-v-podorozh-za-ekzotykoyu/' title='&amp;#x000406;&amp;#x00043d;&amp;#x000434;&amp;#x00043e;&amp;#x00043d;&amp;#x000435;&amp;#x000437;&amp;#x000456;&amp;#x00044f;: &amp;#x000432;&amp;#x000438;&amp;#x000440;&amp;#x000443;&amp;#x000448;&amp;#x000430;&amp;#x000454;&amp;#x00043c;&amp;#x00043e; &amp;#x000432; &amp;#x00043f;&amp;#x00043e;&amp;#x000434;&amp;#x00043e;&amp;#x000440;&amp;#x00043e;&amp;#x000436; &amp;#x000437;&amp;#x000430; &amp;#x000435;&amp;#x00043a;&amp;#x000437;&amp;#x00043e;&amp;#x000442;&amp;#x000438;&amp;#x00043a;&amp;#x00043e;&amp;#x00044e;!'&gt;Індонезія: вирушаємо в подорож за екзотикою!&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/in/AyQk/~4/PoBA-fil_BI&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://molodi.in.ua/?p=38848</guid>
         <pubDate>Mon, 14 Sep 2015 11:08:15 +0000</pubDate>
      </item>
      <item>
         <title>З’явився ще одии спосіб безкоштовно вивчати польську мову</title>
         <link>http://molodi.in.ua/vyvchaty-polsku/</link>
         <description>Українець Максим Дибарський зі Слобожанщини створив безкоштовний додаток для осіб, котрі вивчають польську мову та поляків, які вивчають українську. Аплікація створена під систему Андроїд і її можна стягнути безкоштовно за цим посиланням. Вона створена як доповнення до безкоштовного е-курсу польської [...]&lt;div class='yarpp-related-rss'&gt;

Також читайте:&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/kursy-polskoji/' title='&amp;#x000411;&amp;#x000435;&amp;#x000437;&amp;#x00043a;&amp;#x00043e;&amp;#x000448;&amp;#x000442;&amp;#x00043e;&amp;#x000432;&amp;#x00043d;&amp;#x000456; &amp;#x00043e;&amp;#x00043d;&amp;#x00043b;&amp;#x000430;&amp;#x000439;&amp;#x00043d;-&amp;#x00043a;&amp;#x000443;&amp;#x000440;&amp;#x000441;&amp;#x000438; &amp;#x00043f;&amp;#x00043e;&amp;#x00043b;&amp;#x00044c;&amp;#x000441;&amp;#x00044c;&amp;#x00043a;&amp;#x00043e;&amp;#x000457; &amp;#x00043c;&amp;#x00043e;&amp;#x000432;&amp;#x000438; &amp;#x000434;&amp;#x00043b;&amp;#x00044f; &amp;#x000443;&amp;#x00043a;&amp;#x000440;&amp;#x000430;&amp;#x000457;&amp;#x00043d;&amp;#x000446;&amp;#x000456;&amp;#x000432; &amp;#x000442;&amp;#x000430; &amp;#x000443;&amp;#x00043a;&amp;#x000440;&amp;#x000430;&amp;#x000457;&amp;#x00043d;&amp;#x000441;&amp;#x00044c;&amp;#x00043a;&amp;#x00043e;&amp;#x000457; &amp;#x000434;&amp;#x00043b;&amp;#x00044f; &amp;#x00043f;&amp;#x00043e;&amp;#x00043b;&amp;#x00044f;&amp;#x00043a;&amp;#x000456;&amp;#x000432;'&gt;Безкоштовні онлайн-курси польської мови для українців та української для поляків&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/praktyky-biznesu/' title='&amp;#x00041f;&amp;#x000440;&amp;#x000430;&amp;#x00043a;&amp;#x000442;&amp;#x000438;&amp;#x00043a;&amp;#x000438; &amp;#x000437; &amp;#x000431;&amp;#x000456;&amp;#x000437;&amp;#x00043d;&amp;#x000435;&amp;#x000441;&amp;#x000443; &amp;#x00043d;&amp;#x000430;&amp;#x000432;&amp;#x000447;&amp;#x000430;&amp;#x000442;&amp;#x00044c; &amp;#x00043c;&amp;#x000430;&amp;#x000439;&amp;#x000431;&amp;#x000443;&amp;#x000442;&amp;#x00043d;&amp;#x000456;&amp;#x000445; &amp;#x000456;&amp;#x00043d;&amp;#x000436;&amp;#x000435;&amp;#x00043d;&amp;#x000435;&amp;#x000440;&amp;#x000456;&amp;#x000432; &amp;#x00043c;&amp;#x000430;&amp;#x000440;&amp;#x00043a;&amp;#x000435;&amp;#x000442;&amp;#x000438;&amp;#x00043d;&amp;#x000433;&amp;#x000443; &amp;#x000442;&amp;#x000430; &amp;#x00043c;&amp;#x000435;&amp;#x00043d;&amp;#x000435;&amp;#x000434;&amp;#x000436;&amp;#x00043c;&amp;#x000435;&amp;#x00043d;&amp;#x000442;&amp;#x000443;'&gt;Практики з бізнесу навчать майбутніх інженерів маркетингу та менеджменту&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/language-school-summer15/' title='&amp;#x00041e;&amp;#x000441;&amp;#x000432;&amp;#x000456;&amp;#x000442;&amp;#x00043d;&amp;#x000456;&amp;#x000439; &amp;#x00043f;&amp;#x000440;&amp;#x00043e;&amp;#x000435;&amp;#x00043a;&amp;#x000442; Language School Summer`15'&gt;Освітній проект Language School Summer`15&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/in/AyQk/~4/i305T0cMq9I&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://molodi.in.ua/?p=38842</guid>
         <pubDate>Sun, 13 Sep 2015 10:11:49 +0000</pubDate>
      </item>
      <item>
         <title>На українських вокзалах можуть з’явитися білоруськомовні повідомлення</title>
         <link>http://molodi.in.ua/biloruskomovni-povidomlennya/</link>
         <description>Україна повинна використовувати в контактах з Республікою Білорусь не російську, але білоруську мову – петицію такого змісту оприлюднили на сайті Президента України. Зокрема, автори звернення пропонують, щоб білоруською мовою сповіщали потяги, які прямують до і з Білорусі принаймні на львівському, [...]&lt;div class='yarpp-related-rss'&gt;

Також читайте:&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href='http://molodi.in.ua/muzej-nebesnoji-sotni/' title='&amp;#x000412; &amp;#x000406;&amp;#x000432;&amp;#x000430;&amp;#x00043d;&amp;#x00043e;-&amp;#x000424;&amp;#x000440;&amp;#x000430;&amp;#x00043d;&amp;#x00043a;&amp;#x000456;&amp;#x000432;&amp;#x000441;&amp;#x00044c;&amp;#x00043a;&amp;#x000443; &amp;#x000437;`&amp;#x00044f;&amp;#x000432;&amp;#x000438;&amp;#x000442;&amp;#x00044c;&amp;#x000441;&amp;#x00044f; &amp;#x00043f;&amp;#x000435;&amp;#x000440;&amp;#x000448;&amp;#x000438;&amp;#x000439; &amp;#x000432; &amp;#x000423;&amp;#x00043a;&amp;#x000440;&amp;#x000430;&amp;#x000457;&amp;#x00043d;&amp;#x000456; &amp;#x00043c;&amp;#x000443;&amp;#x000437;&amp;#x000435;&amp;#x000439; &amp;#x00041d;&amp;#x000435;&amp;#x000431;&amp;#x000435;&amp;#x000441;&amp;#x00043d;&amp;#x00043e;&amp;#x000457; &amp;#x000421;&amp;#x00043e;&amp;#x000442;&amp;#x00043d;&amp;#x000456;'&gt;В Івано-Франківську з`явиться перший в Україні музей Небесної Сотні&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/in/AyQk/~4/u_SEZwlRq8Q&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">http://molodi.in.ua/?p=38832</guid>
         <pubDate>Wed, 09 Sep 2015 10:11:22 +0000</pubDate>
      </item>
      <item>
         <title>Атака на архіватори. Ховаємо файли в одному архіві від трьох програм</title>
         <link>http://blogoreader.org.ua/2015/08/19/archivators/</link>
         <description>Стаття показує, як можна обдурити уважного користувача, знайомого з основами соціальної інженерії, стежить навіть за розширеннями файлів і жодною мірою не закликає до використання даної інформації в незаконних цілях. Мета – запустити виконуваний файл, видавши його за текстовий документ в &lt;a rel=&quot;nofollow&quot; class=&quot;more-link&quot; target=&quot;_blank&quot; href=&quot;http://blogoreader.org.ua/2015/08/19/archivators/&quot;&gt;Читати далі&lt;/a&gt;</description>
         <guid isPermaLink="false">http://blogoreader.org.ua/?p=1803</guid>
         <pubDate>Wed, 19 Aug 2015 11:37:01 +0000</pubDate>
         <content:encoded><![CDATA[<p>Стаття показує, як можна обдурити уважного користувача, знайомого з основами соціальної інженерії, стежить навіть за розширеннями файлів і жодною мірою не закликає до використання даної інформації в незаконних цілях. Мета – запустити виконуваний файл, видавши його за текстовий документ в zip-архіві, а якщо запустити навряд чи вийде, то не дати розпакувати або приховати файл.</p>
<p>На хабрі вже є стаття про можливості зміни порядку читання Unicode-символів за допомогою байта <span style="color:#3366ff;">RLO</span>. У ній розповідається, що, користуючись стандартним провідником Windows, складно помітити підміну (спуффинг) імені файлу. В ній йде мова про укритті реального розширення файлу. Також є стаття про фичах вбудованого в Провідник архіватора.</p>
<p>Мені, як людині, завжди стежить за розширеннями відкритих файлів, стало цікаво, а чи є програми, що попереджають про це? Зокрема, захищені архіватори? І що можуть зробити зловмисники, щоб обійти захист.</p>
<p>В якості піддослідного візьмемо виконуваний файл з розширенням exe, назвемо його «Об усп<i>txt.exe</i>».</p>
<p>Після літери «п» у режимі редагування імені файлу в контекстному меню провідника виберемо «Вставити керуючий символ Юнікоду» і виберемо <span style="color:#3366ff;">RLO</span>. В результаті коротке ім’я файлу зміниться на «Об успexe.txt».</p>
<p>Далі заархівуєм його. Я використовував найпопулярніший спосіб стиснення – Zip. І почнемо відкривати в різних архіваторах.</p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/7z.png"><img class="aligncenter size-full wp-image-1805" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/7z.png" alt="" width="594" height="343"/></a><br />
<i>7-Zip 9.20/15.06</i></p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/winrar.png"><img class="aligncenter size-full wp-image-1806" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/winrar.png" alt="" width="665" height="364"/></a><br />
<i>WinRAR 5.3</i></p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/explorer.png"><img class="aligncenter size-full wp-image-1807" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/explorer.png" alt="" width="611" height="274"/></a><br />
<i>Вбудований в провідник Windows</i></p>
<p>Як видно, 7-zip відразу здався, WinRAR порадував стрілочкою, а вбудований в провідник архіватор не підтримує RLO. Тепер думаємо, а чи можна якось і останніми двома архіваторами здійснити спуффинг? Для цього відкриваємо заархівований файл в HEX-редакторі, одночасно читаючи специфікацію формату ZIP.</p>
<p>При стиску файлу zip ім’я файлу дублюється 2 рази.</p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/zip1.png"><img class="aligncenter size-full wp-image-1808" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/zip1.png" alt="" width="631" height="144"/></a><br />
<i>Перше входження</i></p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/zip2.png"><img class="aligncenter size-full wp-image-1809" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/zip2.png" alt="" width="624" height="108"/></a><br />
<i>Друге входження</i></p>
<p>І ось тут є велике поле для творчості.</p>
<p>По-перше, можна у другому входження затерти символи байти RLO. Тоді WinRAR відображає ім’я файлу «Про успexe.txt» і відкриє його як текстовий документ. Проте ж якщо піти далі змінити розширення .txt .jpg, то аж до версії WinRAR 4.20 ця псевдокартинка буде запущена як додаток. У WinRAR 5.3b2 даної уразливості вже немає.</p>
<p>Відкривши файл з затертим у другому входження RLO у вбудованому в провідник Windows архіваторі, можна спостерігати, що ім’я файлу стало майже читаним – не читаються тільки російські букви. Щоб ім’я стало читаним, замінимо їх кодування або напишемо латинські. Проте, нам не треба, щоб користувач відкрив програму як текстовий документ.</p>
<p>Щоб архіватор Провідника перестав бачити файл, достатньо в імені файлу вказати один із зарезервованих файловою системою NTFS символів (наприклад, &lt;). Однак, це не врятує від перегляду архіву WinRAR-му. Що ж робити? Додати null-байт початок в імені файлу!</p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/zip3.png"><img class="aligncenter size-full wp-image-1810" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/zip3.png" alt="" width="626" height="114"/></a></p>
<p>Тоді станеться маленьке диво: WinRAR 5.3 b відобразить файл як папку «Локальний диск», перейшовши в яку всередині архіватора, WinRAR автоматично розпакує наш файл з RLO символом в імені (ім’я для розпакування бере з першого входження!) в директорію «Temp&#92; Rar$*» і дбайливо покаже в провіднику виконуваний файл текстовий документ! Зауважте, що після закриття архіватор дбайливо спробує видалити цей файл як будь-який інший розпакований в тимчасовий каталог.</p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/rar.png"><img class="aligncenter size-full wp-image-1811" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/rar.png" alt="" width="661" height="580"/></a></p>
<p>Можна одночасно зробити його таким, щоб він відкривався архіватором Провідника. Тоді замість null треба прописати інший недрукований символ.</p>
<h5>Резюме</h5>
<ul>
<li>7-Zip 15.06 відображає ім’я файлу з першого входження (з RLO символом). Виконуваний файл представлений як текстовий документ. Навіть якщо у вас включено відображення розширень зареєстрованих типів файлів. Подвійний клік у вікні архіватора запустить виконуваний файл.</li>
<li>Внутрішній архіватор Windows не бачить даного конкретного файлу. Інші файли бачить.</li>
<li>WinRAR 5.3 b відображає файл як папку «Локальний диск», перейшовши в яку всередині архіватора, WinRAR автоматично розпаковує наш файл з підмінним ім’ям (з RLO символом) – ім’я для розпакування бере з першого входження в директорію «Temp» і дбайливо показує в провіднику виконуваний файл текстовий документ!</li>
</ul>
<p>Але не все так сумно. 7-Zip, наприклад, аж до версії 9.20 відображає ім’я файлу з іншого входження. Однак, якщо ім’я файлу у другому входження не міняти і зробити не Zip-архів, а якийсь рідкісний, з цих трьох архіваторів відкривається тільки 7-Zip, і покласти його в наш Zip-архів (не знаходите знайомий шаблон – реліз зламаною програми, куди кладеться зазвичай купа архівів з файлами readme.txt?), тоді атака вийде і на нього. Більше того, версія 9.20 також некоректно відображає ім’я файлу, що починається з null, і не дасть його ні прочитати, ні розпакувати.</p>
<p>Також в огляді не вказано архіватор WinZip. Якщо чесно, він мені не сподобався розміром, зовнішнім виглядом і рекламою в незареєстрованої версії. Проте в плані попередження користувача про виконуваних файлів і файлів з неправильними іменами він витримав всі перевірки.</p>
<p>Файл <a rel="nofollow" target="_blank" href="https://yadi.sk/d/lwq2a5XJiXCQL">sample.zip</a> – приклад створення такого архіву. Всередині – програма з іконкою блокнота, що запускає блокнот. Більше нічого не робить.</p>
<p><em>Джерело: Хабрахабр</em></p>
<div class="facebook" title="Share link on Facebook">Facebook</div><div class="twitter" title="Share link on Twitter">Twitter</div><div class="plusone" title="Share link on Google+">Google+</div><div class="livejournal" title="Share link on LiveJournal">LiveJournal</div><form target="_blank" style="display:none;" class="sociallikes-livejournal-form"></form><div class="feedflare">
<a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=qWAOA1snwUU:rk8XQPRHdkg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=qWAOA1snwUU:rk8XQPRHdkg:D7DqB2pKExk" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=qWAOA1snwUU:rk8XQPRHdkg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=qWAOA1snwUU:rk8XQPRHdkg:F7zBnMyn0Lo" border="0"></a>
</div><img src="http://feeds.feedburner.com/~r/Blogoreader/~4/qWAOA1snwUU" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>7 порад, як поліпшити роботу вашого сайту Microsoft Edge та інших сучасних браузерах</title>
         <link>http://blogoreader.org.ua/2015/08/19/microsoft-edge-advises/</link>
         <description>Коротка довідка: Microsoft Edge – це новий дефолтний браузер Windows 10, що прийшов на зміну Internet Explorer. Крім нового свіжого інтерфейсу, під капотом браузера також знаходяться і оновлені движки EdgeHTML (спочатку — форк движка IE11) і Chakra (для JS). Якийсь &lt;a rel=&quot;nofollow&quot; class=&quot;more-link&quot; target=&quot;_blank&quot; href=&quot;http://blogoreader.org.ua/2015/08/19/microsoft-edge-advises/&quot;&gt;Читати далі&lt;/a&gt;</description>
         <guid isPermaLink="false">http://blogoreader.org.ua/?p=1789</guid>
         <pubDate>Wed, 19 Aug 2015 11:09:36 +0000</pubDate>
         <content:encoded><![CDATA[<p><i><img class="aligncenter size-full wp-image-1791" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/bing.jpg" alt="&#x00043a;&#x000430;&#x00043a; &#x000443;&#x00043b;&#x000443;&#x000447;&#x000448;&#x000438;&#x000442;&#x00044c; &#x000440;&#x000430;&#x000431;&#x00043e;&#x000442;&#x000443; &#x000432;&#x000430;&#x000448;&#x000435;&#x000433;&#x00043e; &#x000441;&#x000430;&#x000439;&#x000442;&#x000430;" width="1200" height="828"/>Коротка довідка: <span style="color:#3366ff;">Microsoft Edge</span> – це новий дефолтний браузер Windows 10, що прийшов на зміну Internet Explorer. Крім нового свіжого інтерфейсу, під капотом браузера також знаходяться і оновлені движки EdgeHTML (спочатку — форк движка IE11) і Chakra (для JS). Якийсь час браузер був відомий під тимчасовою назвою «Project Spartan». </i></p>
<p>Разом із зростанням Windows 10 ви, напевно, могли помітити на своїх сайтах і зростання числа користувачів Microsoft Edge. Тому саме час зробити кілька рухів, щоб ваші сайти працювали в Edge ще краще.</p>
<p>Поради, які я наводжу нижче, в основному, мають узагальнену природу. Іншими словами, від їх реалізації користь отримають не тільки користувачі Edge, але і інших браузерів.</p>
<p>Уникайте визначення браузера – визначайте наявність функціональності<br />
Колись давним-давно в <a rel="nofollow" target="_blank" href="http://tools.ietf.org/html/rfc7231#section-5.5.3">специфікації HTTP/1.1</a> і, відповідно, <a rel="nofollow" target="_blank" href="http://www.w3.org/html/wg/drafts/html/master/webappapis.html#the-navigator-object">специфікації HTML</a> було введено поняття User Agent, який повинен ідентифікувати браузер (або будь-який інший клієнт), який звертається до сервера. Ця функція, у багатьох випадках корисна і важко замінна (наприклад, для збору статистики), у реальному житті також здобула погану славу утилізації в цілях поділу браузерів на «погані» і «хороші».</p>
<p>Не вдаючись у перипетії браузерних баталій, зазначу лише, що були часи, коли розробники, спираючись на значення рядка UA, одним браузерам віддавали одну верстку, а іншим іншу. Чому було багато смутку у користувачів і болю у розробників браузерів. Останні, намагалися обдурити долю інтернет-роздачі і ховалися за чужими UA в надії на світле майбутнє.</p>
<p>За сучасними рядками UA популярних браузерів можна вивчати історію вебу:</p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/user-agent.png"><img class="aligncenter size-full wp-image-1792" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/user-agent.png" alt="" width="700" height="385"/></a></p>
<p>(Ви ж в курсі, що згідно специфікації HTML5, navigator.appCodeName завжди дорівнює «Mozilla», а navigator.product – завжди «Gecko»? Все заради сумісності.)</p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/navigator.jpg"><img class="aligncenter size-full wp-image-1793" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/navigator.jpg" alt="navigator" width="800" height="383"/></a></p>
<p>В ідеальному світі, звичайно, хочеться вірити, що часи баталій давно пройшли, але статистика, на жаль, говорить зворотне. В сучасному інтернеті все ще величезна кількість сайтів, які в тій чи іншій мірі використовують детектування браузера для того, щоб віддавати йому ту чи іншу верстку або реалізовувати ту або іншу логіку на JavaScript.</p>
<p>Як кажуть джедаї, які стали на світлу сторону, правильний код дивиться на можливості браузера, а не судить за його User Agent String. Цьому підходу було дано ім’я Feature Detection, про що написано багато статей і сказано багато слів.</p>
<blockquote><p>Порада №1: застосовуйте гнучкі рішення в коді, спираючись на доступну в браузері функціональність, а не версію або ім’я браузера.<br />
Бібліотеки зразок <span style="color:#3366ff;">Modernizr </span>можуть вам в цьому допомогти.</p></blockquote>
<p>Як би там не було, нова рядок User Agent в Microsoft Edge виглядає так: <i>«Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240»</i>. Вона навмисно дуже схожа на рядок Chrome, хоча і має в кінці відмітний ідентифікатор Edge.</p>
<p>Команда Edge цілеспрямовано працює над тим, щоб забезпечити сумісність не тільки з веб-стандартами, але їх реалізацією в інших браузерах, зокрема, Chrome і Firefox. Тому в більшості випадків «верстка для Chrome сучасного вебу повинна просто працювати».</p>
<p>Тонкість тут в тому, що якщо на вашому публічному сайті ви детектируете Chrome, щоб використовувати функціональність, доступну тільки в ньому, і ця функціональність критична для UX, то люди з Edge будуть засмучені непрацюючим сайтом.</p>
<p>Якщо вам потрібно визначити платформу, робіть це правильно<br />
Впевнено рухаючись до світлого майбутнього сумісності на десктопі, як ви знаєте, веб пропустив потужний удар в мобільному світі. Ми про це поговоримо трохи пізніше саме в контексті сумісності, а зараз продовжимо розбиратися з детектуванням браузера.</p>
<p>Автори багатьох сайтів та веб-додатків (не всі, звичайно) у мобільну епоху задумалися не тільки про те, щоб додати своїм ресурсів мобільний «look and feel», але також і про те, щоб обзавестися мобільними додатками під різні платформи.</p>
<p>Потім вони почали думати, як розповісти користувачам сайту з мобільних пристроїв, що їм тепер треба користуватися мобільними додатками. І тут вони знову згадали про рядок юзер-агента… і понеслася.</p>
<p>Загалом, як тільки IE зник, а на його місце прийшов Edge, який прикидається Chrome, який прикидається Safari, який прикидається Gecko і KHTML, які все прикидаються Mozilla… Edge користувачі Windows 10 Mobile раптом замість рідних додатків почали отримувати рекомендації поставити додаток під Android.</p>
<p>Часто це робить самописний код, часто скопійований з чергового блог-посту або StackOverflow, часто готові бібліотеки, наприклад, jQuery Smart Banner…</p>
<p>Як лірико-практичного відступу: я тут якось відкрив на одному російському новинному сайті js-код в налагоджувач і жахнувся бібліотеці 2012 року (час виходу iOS6 і Windows 8). Рік-два вона справно працювала, але тут спочатку вийшло оновлення WP8.1, а потім і мобільна версія Edge – і «все зламалося».</p>
<p>User Agent в мобільній версії Edge виглядає так: <i>«Mozilla/5.0 (Windows Phone 10.0; <b>Android 4.2.1</b>; Nokia; Lumia 520) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/12.10130»</i>.</p>
<p>Як ви можете здогадатися, десь у нетрях бібліотеки, згаданої вище і використовуваної на сайті, всі це розбирається приблизно таким кодом:</p>
<pre class="prettyprint"><code><span class="kwd">if</span> <span class="pun">(</span><span class="pln">UA</span><span class="pun">.</span><span class="pln">match</span><span class="pun">(</span><span class="str">/Android/</span><span class="pln">i</span><span class="pun">)</span> <span class="pun">!=</span> <span class="kwd">null</span><span class="pun">)</span> <span class="pun">{</span>
<span class="kwd">this</span><span class="pun">.</span><span class="pln">type </span><span class="pun">=</span> <span class="str">'android'</span>
<span class="pun">}</span> <span class="kwd">else</span> <span class="kwd">if</span> <span class="pun">(</span><span class="pln">UA</span><span class="pun">.</span><span class="pln">match</span><span class="pun">(</span><span class="str">/Windows NT 6.2/</span><span class="pln">i</span><span class="pun">)</span> <span class="pun">!=</span> <span class="kwd">null</span> <span class="pun">&&</span><span class="pln"> UA</span><span class="pun">.</span><span class="pln">match</span><span class="pun">(</span><span class="str">/Touch/</span><span class="pln">i</span><span class="pun">)</span> <span class="pun">!==</span> <span class="kwd">null</span><span class="pun">)</span> <span class="pun">{</span>
<span class="kwd">this</span><span class="pun">.</span><span class="pln">type </span><span class="pun">=</span> <span class="str">'windows'</span>
<span class="pun">}</span></code></pre>
<p>І, очевидно, у разі мобільної версії Edge відпрацьовує перша гілка. В результаті благий намір розробників сайту перетворюється в микроад для користувача. Не кажучи вже про те, що тут знову граблі версійності: Windows 10 версія платформи NT – 10, а не 6.2, причому в Windows 8.1 вже була версія 6.3. Втім, розробник, навряд чи міг про це здогадуватися в 2012 році.</p>
<p>Що ж робити? Виявляється, навіть UA-рядок, повна жодних «цікавих подробиць, повинна, згідно специфікації, слідувати простому правилу: всі перераховані продукти повинні розташовуватися в порядку пріоритетів, як їх бачить розробник клієнта (браузера).</p>
<blockquote><p>Порада №2: розбираючи UA-рядок, враховуйте порядок входжень, а не тільки наявність ключових слів.<br />
Якщо браузер каже, що він, в першу чергу, Windows Phone, і лише по-друге хоче отримувати контент для Android, то, напевно, він хоче, щоб ви в якості ОС сприймали саме WP.</p></blockquote>
<p>Відносно невелика зміна в коді на сайті може принести вам нових щасливих користувачів мобільного додатку.</p>
<p>Оновлюйте бібліотеки до свіжих версій<br />
Ми трошки поисследовали веб і з’ясували, що більше половини найпопулярніших 20000 сайтів використовують JavaScript-бібліотеки, які мають відомі проблеми, які усуваються в більш свіжих версій.</p>
<p>Ми зробили сканер для сайтів, який дозволяє перевірити:</p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/jquery.png"><img class="aligncenter size-full wp-image-1794" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/jquery.png" alt="" width="800" height="100"/></a></p>
<p>До речі, вихідний код сканера доступний на GitHub. Якщо ви виявите баг, повідомте нам в репозитарії.</p>
<p>Проблема з застарілими бібліотеками має деколи дуже специфічну природу, сильно перекликающуюся з самою динамікою веба і реалізацією веб-стандартів, зокрема. Тут і копипастный код, і вендроные особливості і фішки, і стандарти, що змінюються в процесі стабілізації, і погані практики програмування. Повний букет.</p>
<p>На що варто звернути увагу при виборі бібліотек:</p>
<ol>
<li>Мінімальні вимоги до браузерів і їх движка. Повинно відповідати вашим мінімальним вимогам щодо підтримки браузерів.</li>
<li>Відсутність посилань у коді на версії браузерів і в цілому детектування браузерів. Хороша бібліотека повинна дивитися в майбутнє і бути нейтральною, а не чіплятися за певний поточний зріз.</li>
<li>Використання стабільних крос-браузерних API, а при використанні нових і, як правило, експериментальних API — наявність fallback-гілок на випадок відсутності їх підтримки в тому чи іншому браузері.</li>
<li>Мінімізація використання вендорних API (як правило, з префіксами), краще – відсутність таких викликів і відсилань, а за наявності – обов’язковий fallback до стандартних «безпрефиксных» API. Іншими словами, бібліотека повинна надавати перевагу стандартизованим API.</li>
<li>Стабільність версії і динаміка розвитку. Це завжди пошук правильного балансу. Стабільна бібліотека повинна забезпечувати середньострокову надійність, а динаміка розвитку повинна показувати, що це не мертвонароджений проект не цікавий більше своїм авторам.</li>
</ol>
<p> </p>
<blockquote><p>Порада №3: використовуйте свіжі і браузеро-нейтральні бібліотеки зі стабільним кодом.<br />
Наприклад, якщо у бібліотеки є офіційний репозиторій на GitHub не полінуйтеся перевірити, скільки в ній є відомих проблем і як часто вона оновлюється.</p></blockquote>
<p>Уважний читач помітить, що в цьому розділі я ні разу не сказав, що мова йде тільки про JavaScript. І, дійсно, все це стосується не тільки JS (і відповідних API), але і будь-яких CSS-фреймворків і, зокрема, прекрасних експериментів, як зробити що-небудь прекрасне засобами нових фішок CSS, описаних в чернетці чергового стандарту або документації одного з виробників браузерів.</p>
<p>Слідкуйте за помилками, збирати статистику<br />
Історія з бібліотеками підказує, що важливо не тільки грамотно підходити до написання свого коду та інтеграції чужого, але і відстежувати зміни в навколишньому середовищі, то й справа трапляються у світі інтернету. Десь стандарт змінився, десь браузери вимкнули підтримку експериментальної функціональності (наприклад, в префиксном вигляді, який ви використовували), де-то в новій версії стався баг реалізації, десь бібліотеки перестали стикуватися один з одним…</p>
<p>Загалом питання в тому, що, розробляючи деяке рішення, важливо не тільки переконатися в його працездатності в моменти самої розробки і безпосередньо впровадження, але і в ході подальшої експлуатації.</p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/development.png"><img class="aligncenter size-full wp-image-1795" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/development.png" alt="" width="1031" height="289"/></a></p>
<p>І якщо на першому етапі ви готові витратити помітні зусилля на те, щоб перевірити, як поводиться ваш веб-додаток в актуальних браузерах, то далі, якщо тільки мова не йде про постійно розробляється і динамічним проекті (а більшість сайтів не такі!), перевірки трапляються рідко або не трапляються зовсім.</p>
<p>А реакція і виправлення проблем, як правило, відбуваються в реакційному режимі, коли знаходиться якийсь черговий користувач з проблемою, про яку він знаходить сміливість і бажання розповісти.</p>
<p>У такій ситуації розумним виходом є впровадження збору статистики і її наступний аналіз. Іншими словами, ваш код повинен вміти «у разі непередбаченого», тобто у разі виникнення виняткових ситуацій, генерувати події і відправляти мета-дані в певний сервіс збору інформації. А, з іншого боку, ви або замовники сайту повинні мати можливість розуміти, що і як відбувається з сайтом в поточних історичних реаліях. Причому не тільки з точки зору маркетингу і продажів, але і з технологічної точки зору.</p>
<blockquote><p>Порада №4. Впроваджуйте аналітику і відстежуйте непрацюючу функціональність або некоректну поведінку сайту.<br />
У довгостроковій перспективі це, як мінімум, може допомогти бути обізнаним про проблеми сумісності.</p></blockquote>
<p>«Хвилина реклами». Як ви, напевно, вже чули, у нас є спеціальний хмарний сервіс для розробників, зроблений для таких цілей – Application Insights Microsoft Azure. (Для студентів сервіс доступний в програму DreamSpark.) Крім відстеження загальних подій, начебто відвіданих сторінок, він також дозволяє вам вводити власні події і метрики, які ви можете відправляти в аналітику в потрібний момент часу свого коду:</p>
<pre class="prettyprint"><code><span class="pln">appInsights</span><span class="pun">.</span><span class="pln">trackEvent </span><span class="com">// or trackPageView, trackMetric, ...</span>
<span class="pun">(</span><span class="str">"WinGame"</span><span class="pun">,</span>
<span class="com">// String properties:</span>
<span class="pun">{</span><span class="typ">Game</span><span class="pun">:</span><span class="pln"> currentGame</span><span class="pun">.</span><span class="pln">name</span><span class="pun">,</span> <span class="typ">Difficulty</span><span class="pun">:</span><span class="pln"> currentGame</span><span class="pun">.</span><span class="pln">difficulty</span><span class="pun">},</span>
<span class="com">// Numeric metrics:</span>
<span class="pun">{</span><span class="typ">Score</span><span class="pun">:</span><span class="pln"> currentGame</span><span class="pun">.</span><span class="pln">score</span><span class="pun">,</span> <span class="typ">Opponents</span><span class="pun">:</span><span class="pln"> currentGame</span><span class="pun">.</span><span class="pln">opponentCount</span><span class="pun">}</span>
<span class="pun">);</span></code></pre>
<p>Тепер давайте повернемося до CSS.</p>
<p>Уникайте префиксных властивостей CSS, використовуйте стандартні властивості<br />
Колись здавалося, що впровадження виробниками браузерів експериментальних CSS-властивостей з вендорным префіксами – це відмінна ідея, що дозволяє і поекспериментувати, і «ніби» не забруднювати інтернет.</p>
<p>Виявилося, що це не так. Добра ідея, як це зазвичай буває, зіткнулася з суворою реальністю життя, в якій зачаровані красою багато веб-розробники почали експлуатувати нестандартні реалізації в живих проектах.</p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/win-phone-8.1.jpg"><img class="aligncenter size-full wp-image-1796" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/win-phone-8.1.jpg" alt="" width="750" height="577"/></a></p>
<p>Ви, напевно, пам’ятаєте всі ці історії про драматичні зміни синтаксису градієнтів, що відбулися між початковою реалізацією в движку Webkit (Safari) і фінальною версією у відповідному веб-стандарті.</p>
<p>Ви також, напевно, уявляєте і як код з подібними фішками потрапляє в розмітку багатьох сайтів, будучи банально скопійованим з чергової красивої статті. Проблема в тому, що часто такий код написаний саме в демонстраційних цілях, а тому для спрощення або виходячи з міркувань компактності (або за яким-небудь ще непорозуміння), не містить повної історії. Тобто не розповідає, як його варто (і чи варто взагалі) застосовувати в експлуатації на реальних сайтах.</p>
<p>Останнє на практиці означає, що потрібно 1) перерахувати всі варіанти для різних браузерів і 2) не забути вказати версію коду, відповідну стандарту (можливо, проектованому).</p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/ie11.jpg"><img class="aligncenter size-full wp-image-1797" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/ie11.jpg" alt="" width="800" height="283"/></a></p>
<p>Некоректне використання експериментальних і нестандартних можливостей може призводити банально до того, що сайт не просто виглядає менш красиво», але й банально перестає реалізовувати свою ключову функціональність. У наведеному вище прикладі застосування –webkit-transition без згадки альтернатив і стандартної версії призводить до того, що меню сайту перестає відкриватися в не-webkit браузерах. І це сумно.</p>
<blockquote><p>Порада №5. Мінімізуйте використання вендорних префіксів і завжди додавайте як мінімум стандартну альтернативу.</p></blockquote>
<p>Повторю, це стосується як коду, який ви пишете самі, так і копируемого коду і коду підключаються бібліотек. В якості прикладу візьмемо досить популярну бібліотеку normalize.css, яка має, як випливає з назви і опису, приводити відображення різних елементів в різних браузерах у більш-менш однаковий вигляд. Нижче приклад коду з бібліотеки:</p>
<pre class="prettyprint"><code><span class="pln">html </span><span class="pun">{</span><span class="pln">
font</span><span class="pun">-</span><span class="pln">family</span><span class="pun">:</span><span class="pln"> sans</span><span class="pun">-</span><span class="pln">serif</span><span class="pun">;</span><span class="com">/* 1 */</span>
<span class="pun">-</span><span class="pln">ms</span><span class="pun">-</span><span class="pln">text</span><span class="pun">-</span><span class="pln">size</span><span class="pun">-</span><span class="pln">adjust</span><span class="pun">:</span> <span class="lit">100</span><span class="pun">%;</span><span class="com">/* 2 */</span>
<span class="pun">-</span><span class="pln">webkit</span><span class="pun">-</span><span class="pln">text</span><span class="pun">-</span><span class="pln">size</span><span class="pun">-</span><span class="pln">adjust</span><span class="pun">:</span> <span class="lit">100</span><span class="pun">%;</span><span class="com">/* 2 */</span>
<span class="pun">}</span></code></pre>
<p>Як легко помітити, тут явно чогось не вистачає. Наприклад, властивості –moz — префіксом і версії, сумісної з розробляються стандартом. До слова, сканер, який я згадував вище, вміє такі речі визначати.</p>
<p>Виробники браузерів, зі свого боку, намагаються з цим боротися: розробникам сайтів ми розповідаємо, що так робити недобре, а ось для кінцевих користувачів нам доводиться реалізовувати в браузерах підтримку «чужих» префиксных API.</p>
<p>Просто для орієнтиру: Microsoft Edge підтримуваних –webkit — префіксів вже більше, ніж власних префіксів –ms-. (Не те, щоб нам це дуже подобалося… але потрібно.)</p>
<p>Обходитеся без плагінів там, де це можливо<br />
Плагіни в браузерах – це довга історія багатьох цікавих рішень, прекрасних для свого часу, технологій та довгих і не дуже сумних падінь. Коротка версія стану справ на сьогодні: браузери рухаються до моделі без бінарних розширень.<br />
Наприклад, це робить Chrome з відмовою від NPAPI і це робить Microsoft Edge з відмовою від ActiveX. Для всього цього є три прості і зрозумілі причини:</p>
<ol>
<li>Заміщення веб-стандартами (єдиними і стерпним)</li>
<li>Зменшення поверхні для атак і потенційних дірок безпеки (а, як правило, мова йде про інтеграцію в браузер сторонніх мало контрольованих плагінів)</li>
<li>Спрощення внутрішньої архітектури браузерів на користь використання тих же технологій, що і на веб-сайтах, які вони відображають (HTML, CSS, JavaScript).</li>
</ol>
<p>Якщо ви робите рішення для мобільного веба, тв-веба і будь-яких інших недесктопных платформ, майже напевно, у відповідному браузері не будуть підтримуватися популярні на десктопі плагіни. Тому історія з бесплагинным вебом вам добре знайома.</p>
<p>Якщо ви робите рішення виключно для десктопа, то і ви обов’язково вже повинні бути в курсі всіх сучасних тенденцій на послідовне заміщення тієї чи іншої функціональності плагінів (наприклад, Flash і Silverlight) аналогічними або альтернативними можливостями.</p>
<p>Графіка, 3d-графіка, анімація, управління звуком – все це вже можна робити в сучасних браузерах, використовуючи такі технології, як SVG, Canvas, WebGL, CSS-анімації, WebAudio – все це в зв’язці з JavaScript. Наприклад, Unity вже дозволяє використовувати цей стек для ігор у браузері.</p>
<p>Одна з ключових ніш використання плагінів на сайтах – це програвання аудіо — і відео-контенту, в тому числі із захистом авторських прав.</p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/browser-website.png"><img class="aligncenter size-full wp-image-1798" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/browser-website.png" alt="browser website" width="800" height="274"/></a></p>
<p>HTML5 Audio/Video в поєднанні з DASH/CENC/MSE/EME і реалізацією DRM на апаратному або софтверному рівні цілком дозволяють замінити собою плагіни.</p>
<blockquote><p>Рада №6: скрізь, де можна, намагайтеся замінити використання плагінів на сучасні веб-стандарти.<br />
Як мінімум, для сучасних браузерів.</p></blockquote>
<p>З впровадженням таких технологій, як WebRTC (ORTC), бесплагинный світ буде відкритий і для відео — та аудіо-комунікацій у браузері. Думаю, що впровадження веб-компонентів також дозволить істотно зменшити частку використання Flash в рекламному сегменті.</p>
<p>Звичайно, реальне впровадження технологій займає час і майбутнє без плагінів, яке ми чекаємо вже кілька років як, все ще ніяк не настане, але особисто я продовжую вірити, що «якщо не завтра, то коли-небудь вже точно».</p>
<p>Стежити за статусом впровадження тієї чи іншої функціональності можна на сайтах: Microsoft Edge, Webkit (Safari), Blink(Chrome і ін) – чи відстежувати загальну динаміку через <span style="text-decoration:underline;"><span style="color:#3366ff;text-decoration:underline;">caniuse.com</span></span>.</p>
<p>Тестуйте сайти Microsoft Edge: безпосередньо або віддалено<br />
І остання порція рекомендацій про те, як тестувати сайти безпосередньо в Microsoft Edge.</p>
<p>Перше, що потрібно розуміти: для роботи Edge потрібна Windows 10. Якщо у вас немає Windows 10 (нагадаю, що оновитися до Windows 7/8/8.1 можна безкоштовно), то ви можете поставити собі віртуальну машину з Windows 10 і новим браузером.</p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/vmachine.png"><img class="aligncenter size-full wp-image-1799" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/vmachine.png" alt="" width="800" height="351"/></a></p>
<p>Ми постаралися підготувати образи для всіх популярних операційних систем (Windows, Mac OSX, Linux) і платформ для віртуалізації (HyperV, VirtualBox, VMWare, Parallels).</p>
<p>Друге: для налагодження сайтів ви можете використовувати різні інструменти. Це можуть бути як оновлені інструменти розробника F12 tools, вбудовані в браузер, так і віддалені кошти, наприклад, <span style="color:#3366ff;">Vorlon.js</span>. Ви також можете використовувати WebDriver для автоматизації тестування.</p>
<p> </p>
<p>І третє: як ви, напевно, чули, з Microsoft Edge порівняно з Internet Explorer зникло багато застарілих і нестандартних речей. Тому, якщо ви на них покладалися в IE, не сподівайтеся їх використовувати Edge – ми всі випиляли.</p>
<blockquote><p>Порада №7: додайте Microsoft Edge в список браузерів, в яких ви перевіряєте ваші сайти.<br />
Якщо ви виявили проблеми в самому браузері (наприклад, відхилення від стандарту або відмінність з реалізацією в інших браузераз), повідомте нам через Connectу веб-переглядачі функцію «Send feedback» або в твіттері <span style="color:#3366ff;">@msedgedev</span>.</p></blockquote>
<p>Підсумки<br />
Нарешті, спробую зібрати всі поради разом:</p>
<ol>
<li>Застосовуйте гнучкі рішення в коді, спираючись на доступну в браузері функціональність, а не версію або ім’я браузера. (Feature Detection)</li>
<li>Якщо вам потрібно визначити платформу, розбираючи рядок UA, враховуйте пріоритезацію.</li>
<li>Оновіть бібліотеки до свіжих версій, вибирайте бібліотеки, нейтральні до браузерів.</li>
<li>Впроваджуйте статистику на сайті не тільки для знімання маркетингових показників, але і для обліку технічної телеметрії.</li>
<li>Використовуєте стандартні властивості CSS, мінімізуйте використання префіксів, а якщо додаєте їх, то робіть це для всіх браузерів.</li>
<li>У міру можливостей замінюйте плагіни на технології, що мають в основі веб-стандарти.</li>
<li>Слідкуйте за динамікою користувачів і додайте Microsoft Edge в список протестованих браузерів.</li>
</ol>
<p><em>Джерело: Хабрахабр</em></p>
<div class="facebook" title="Share link on Facebook">Facebook</div><div class="twitter" title="Share link on Twitter">Twitter</div><div class="plusone" title="Share link on Google+">Google+</div><div class="livejournal" title="Share link on LiveJournal">LiveJournal</div><form target="_blank" style="display:none;" class="sociallikes-livejournal-form"></form><div class="feedflare">
<a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=FnbzGDIzad8:gnfOAqwRZ5g:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=FnbzGDIzad8:gnfOAqwRZ5g:D7DqB2pKExk" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=FnbzGDIzad8:gnfOAqwRZ5g:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=FnbzGDIzad8:gnfOAqwRZ5g:F7zBnMyn0Lo" border="0"></a>
</div><img src="http://feeds.feedburner.com/~r/Blogoreader/~4/FnbzGDIzad8" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Світлофори теж можна зламати</title>
         <link>http://blogoreader.org.ua/2015/08/19/%d1%81%d0%b2%d1%96%d1%82%d0%bb%d0%be%d1%84%d0%be%d1%80%d0%b8-%d1%82%d0%b5%d0%b6-%d0%bc%d0%be%d0%b6%d0%bd%d0%b0-%d0%b7%d0%bb%d0%b0%d0%bc%d0%b0%d1%82%d0%b8/</link>
         <description>Останні кілька років все частіше і частіше почали з’являтися статті і замітки про зломи сучасних систем, встановлених в автомобілях. Завдяки тому, що ці системи з кожним роком стають все складніше і містять все більше точок дотику із зовнішнім світом — &lt;a rel=&quot;nofollow&quot; class=&quot;more-link&quot; target=&quot;_blank&quot; href=&quot;http://blogoreader.org.ua/2015/08/19/%d1%81%d0%b2%d1%96%d1%82%d0%bb%d0%be%d1%84%d0%be%d1%80%d0%b8-%d1%82%d0%b5%d0%b6-%d0%bc%d0%be%d0%b6%d0%bd%d0%b0-%d0%b7%d0%bb%d0%b0%d0%bc%d0%b0%d1%82%d0%b8/&quot;&gt;Читати далі&lt;/a&gt;</description>
         <guid isPermaLink="false">http://blogoreader.org.ua/?p=1765</guid>
         <pubDate>Wed, 19 Aug 2015 05:37:49 +0000</pubDate>
         <content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1767" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/svitlofor.png" alt="&#x000441;&#x000432;&#x000456;&#x000442;&#x00043b;&#x00043e;&#x000444;&#x00043e;&#x000440;&#x000438;" width="1024" height="336"/>Останні кілька років все частіше і частіше почали з’являтися статті і замітки про зломи сучасних систем, встановлених в автомобілях. Завдяки тому, що ці системи з кожним роком стають все складніше і містять все більше точок дотику із зовнішнім світом — вони залучають все більшу і більшу увагу фахівців. Тим не менш, існує можливість пасивно впливати на рух автомобіля, наприклад, за допомогою регулювання сигналів світлофорів. Тим більше, що цієї «вразливості» схильні і «аналогові» автомобілі. <a rel="nofollow" name="cut"></a></p>
<p><strong>Червоний. Червоний? Червоний!!!</strong><br />
Можливість неконтрольованого маніпулювання системами сигналізації (світлофорів) крім внесення хаосу на дорогах і створення аварійних ситуацій може пасивно впливати і на системи в сучасних автомобілях. Наприклад система Audi Travolution, взаємодіє зі світлофорами: під’їжджає автомобіль може самостійно додати газу, якщо не потрапляє в «зелену хвилю», або, навпаки, сигналізувати водієві про швидку зміну сигналу (візуальним або акустичним сигналом або короткочасним відключенням педалі газу). При продуманої і вивіреної атаці можна спровокувати численні ДТП, впливаючи ззовні на внутрішню систему оцінки дорожньої обстановки.</p>
<p>Це підтверджує і опублікований Алексом Халдерманом доповідь: йому вдалося за допомогою ноутбука і радіо-трансмітера впливати більш ніж на сотню світлофорів у Мічигані. Важливо зауважити, що це був «етичний злом». Перед проведенням свого експерименту він отримав дозвіл від дорожнього агентства, і запевнив, що не було ніякої небезпеки для водіїв. Метою експерименту було довести, наскільки легко може бути порушена інфраструктура управління рухом.</p>
<p><strong>Як це працює</strong><br />
В США використовуються радичастоты 900 МГц або 5,8 ГГц, це так званий ISM-діапазон. Устаткування, що працює на цих частотах, задіяно медичної, наукової та промислової областях.</p>
<p>Частотний діапазон ISM є тією частиною радіочастотного спектру загального призначення, яка може бути використана без ліцензування. Єдина вимога для розроблюваних продуктів в ISM-діапазоні — це відповідність з нормами, які встановлюються регулюючими органами для даної частини частотного спектру. Ці правила розрізняються в різних країнах. У США норми встановлює Федеральна комісія зі зв’язку (Federal Communication Commission, FCC), а в Європі — Європейський інститут стандартів по телекомунікаціях (European Telecommunication Standards Institute ETSI). В цій смузі частот функціонують різні бездротові системи, такі як Bluetooth, Wi-Fi, 802.15.4, Zigbee.</p>
<p>Це означає, що дослідники (і будь-який бажаючий) можуть вільно придбати бездротове обладнання для зв’язку з пристроями.</p>
<p>Дослідники виявили слабке використання рекомендацій по безпечному використанню бездротового обладнання — відкриті і не зашифровані радіосигнали. Це дозволяє потенційним зловмисникам прослуховувати мережевий трафік, що передається з допомогою радіосигналів від контролера до світлофора. Таким чином вони змогли отримати використовуються облікові записи і паролі. Більш того, багато використовувані паролі були встановлені за заводських налаштувань, які можна легко знайти в Інтернеті. Контролери також мали фізичний порт для налагодження, що знаходиться на вулиці, до якого досить легко отримати доступ і скомпрометувати.<img class="aligncenter wp-image-1768 size-full" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/shema.jpg" alt=" &#x000441;&#x000445;&#x000435;&#x00043c;&#x000430; &#x000442;&#x000438;&#x00043f;&#x00043e;&#x000432;&#x00043e;&#x000457; &#x000441;&#x000432;&#x000456;&#x000442;&#x00043b;&#x00043e;&#x000432;&#x000438;&#x000439; &#x000434;&#x00043e;&#x000440;&#x00043e;&#x000436;&#x00043d;&#x00044c;&#x00043e;&#x000457; &#x000441;&#x000438;&#x000433;&#x00043d;&#x000430;&#x00043b;&#x000456;&#x000437;&#x000430;&#x000446;&#x000456;&#x000457;" width="500" height="333"/></p>
<p>На представленому зображенні схема типової світловий дорожньої сигналізації, яка складається з: WiFi приймача, камери, світлофора, комутатора, контролера, процесора MMU (malfunction management units) і індукційної петлі.</p>
<p>WiFi підключається до комутатора і передає діагностичні дані, відео потік з камери та іншу інформацію в дорожнє агентство. Блок управління несправностями знаходиться між контролером і світлофором і регулює фази перемикання, засновані на даних з індукційної петлі. Цей блок створений для регулювання несправностей (якщо на перехресті всі сигнали стануть зеленими, система примусово переведе управління і включить червоні сигналу світлофора), але за іронією долі саме вплив на блок MMU і дозволило дослідникам маніпулювати системою управління дорожнім рухом. Найстрашніше полягає в тому, що дослідникам вдалося скомпрометувати всю систему, отримавши доступ лише до однієї точки доступу.</p>
<p>Інший дослідник, Цезар Церрудо, виявив вектор атаки на спеціальні сенсори, що дозволяють контролювати потік трафіку і впливати на систему світлофорів:<img class="aligncenter size-full wp-image-1769" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/traffic.png" alt="&#x00043f;&#x00043e;&#x000442;&#x000456;&#x00043a; &#x000442;&#x000440;&#x000430;&#x000444;&#x000456;&#x00043a;&#x000443;" width="587" height="350"/>Системи виявлення транспортного засобу, що складаються з магнітних датчиків, прихованих в дорожньому покритті, які збирають інформацію про потік трафіку і за допомогою бездротового зв’язку передають його через власний протокол <span style="color:#3366ff;">Sensys NANOPOWER</span>. Сигнал посилюється з допомогою репітерів, що передають дані в контролери дорожніх сигналів.</p>
<p><img class=" size-full wp-image-1770 alignleft" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/sensor.gif" alt="&#x000441;&#x000435;&#x00043d;&#x000441;&#x00043e;&#x000440;" width="214" height="154"/>Протокол, який використовується для передачі даних не містить механізмів автентифікації, передані дані зашифровані. Теоретично, зловмисник може прослуховувати трафік і видозмінювати його на свій розсуд.</p>
<p>Для такого роду атак (взаємодії з вразливим протоколом) необхідно обладнання, вартістю близько $4000. Справедливості заради варто відзначити, що воно не доступно для покупки усіма бажаючими, дослідники отримали його для легального тестування на проникнення від виробника. Тим не менш, дослідник зазначив, що теоретично можна отримати доступ і без використання спеціалізованого обладнання.</p>
<p><img class="aligncenter size-full wp-image-1771" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/oborudovanie.jpg" alt="&#x00043e;&#x000431;&#x00043b;&#x000430;&#x000434;&#x00043d;&#x000430;&#x00043d;&#x00043d;&#x00044f;" width="609" height="406"/><br />
<strong>Чим це загрожує?</strong><br />
Такі атаки містять як пряму небезпеку для життя людей (провокування ДТП), так і економічну (затримки в дорозі, витрата бензину) і екологічну (вихлопи).</p>
<ul>
<li>Атака на відмову в обслуговуванні (DoS) контрольованих перехресть, яка може призвести до величезних пробок. Нападники можуть встановити всі вогні світлофорів на червоний або задіяти MMU. У цьому випадку необхідно фізичне втручання персоналу для відновлення нормальної дорожньої ситуації.</li>
<li>Маніпулювання таймінгами перемикання по відношенню до інших перехресть створить резонанс для всієї транспортної інфраструктури.</li>
<li>Управління системою світлофорів для створення пріоритетною зеленої хвилі для автотранспорту зловмисників.</li>
</ul>
<p></p> 
<p><strong>А як у нас?</strong><br />
Інформація досить мізерна, хоча «розумні світлофори» у нас з’являються з кожним днем.</p>
<blockquote><p>Компанія «ПетерСтар» організовує підключення світлофорів до міської системи автоматичного керування дорожнім рухом (АСКДР) у Великому Новгороді через мережу інтернет.</p>
<p>Роботи проводяться в рамках реалізації відомчої програми «Безпечне місто», яку проводить адміністрація міста.</p>
<p>В даний час завершено перший етап проекту: світлофори підключені по існуючій інфраструктурі компанії «ПетерСтар» до мережі інтернет, що в подальшому дозволить здійснювати автоматичне керування світлофорами з допомогою системи АСУУД з метою оптимальної організації дорожнього руху. Згодом на базі організованих зв’язків планується забезпечити відеоспостереження на дорогах міста.</p></blockquote>
<p>У РФ світлофори поки начебто ніхто не ламав, зате ламали рекламні щити і системи видеофиксаций порушень швидкісного режиму.</p>
<p><strong>Переломленная стріла</strong><br />
У січні 2014 року була заражена вірусами система комплексів «Стрілка-СТ»:</p>
<p><img class="aligncenter size-full wp-image-1772" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/strela.png" alt="" width="500" height="366"/>У Підмосков’ї вийшли з ладу всі комплекси фото — і відеофіксації порушень правил дорожнього руху. В даний час контроль за дорожнім рухом здійснюється з допомогою мобільних комплексів фіксації порушень ПДР.<br />
Як повідомили ІТАР-ТАСС в прес-службі Державтоінспекції Московської області, стаціонарні комплекси фото — і відеофіксації на даний момент з невстановленої причини знаходяться в неробочому стані. Управління ДІБДР поінформувало власника камер «ЦКУ ЦБДР МО» про необхідність відновлення працездатності камер.</p>
<blockquote><p>Після поглибленої діагностики термостатованих комп’ютерів комплексу «Стрілка-СТ» було встановлено:</p>
<p>— в результаті навмисного злому системи була пошкоджена файлова система блоків обробки і управління комплексів «Стрілка-СТ», що унеможливлює запуск операційної системи Windows XP і спеціалізованого програмного забезпечення комплексів;<br />
— пошкоджені системні журнали операційної системи; на системному диску С:<br />
— знайдений чужорідний шкідливий пакетний файл 222.bat, налаштований для автоматичної зміни паролю операційної системи і запуску виконуваного файлу 1.exe;<br />
— змінені паролі на доступ в операційну систему з правами адміністратора.</p>
<p>Причиною непрацездатності комплексів є умисний злом операційної системи невідомими особами.</p></blockquote>
<p>Люба, я <s>порн</s>, тобто в пробці.<br />
Пробку може спровокувати і відволікаючу подія:</p>
<p><img class="aligncenter size-full wp-image-1773" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/probka.jpg" alt="&#x00043f;&#x000440;&#x00043e;&#x000431;&#x00043a;&#x000430;" width="464" height="348"/>Увечері 14 січня на Садовому кільці в районі Серпуховського тунелю на відеоекрані серед рекламних роликів був продемонстрований порнографічний кліп.</p>
<p>В результаті на дорозі утворилася пробка з водіїв, які намагалися сфотографувати те, що відбувається, пише <span style="color:#3366ff;">Lenta.ru</span></p>
<blockquote><p>— Я сидів удома, сканував порти, безцільно шукав що-небудь у Мережі, — розповів Ігор Life News. — Знайшов штук 50 вразливих комп’ютерів, в які міг без проблем увійти. Серед них були і приватні компи, і номери компаній. Випадково побачив серед них один московський сервер. Це було 10 січня. Я зайшов на сервер і побачив, як крутяться рекламні відеоролики. Зберіг його, запам’ятав паролі, потім ще раз зайшов, подивився. Вирішив закачати туди порноролик. Заради приколу!</p></blockquote>
<p><strong>Додатково</strong><br />
АСКДР — Автоматизована Система Управління Дорожнім Рухом. Це комплекс технічних, програмних та організаційних заходів, що забезпечують збір та обробку інформації про параметри транспортних потоків і на основі цього оптимізують управління рухом.</p>
<p><em>Джерело: Хабрахабр</em></p>
<div class="facebook" title="Share link on Facebook">Facebook</div><div class="twitter" title="Share link on Twitter">Twitter</div><div class="plusone" title="Share link on Google+">Google+</div><div class="livejournal" title="Share link on LiveJournal">LiveJournal</div><form target="_blank" style="display:none;" class="sociallikes-livejournal-form"></form><div class="feedflare">
<a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=9GlVNhEhmSs:IFdeiamE7b8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=9GlVNhEhmSs:IFdeiamE7b8:D7DqB2pKExk" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=9GlVNhEhmSs:IFdeiamE7b8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=9GlVNhEhmSs:IFdeiamE7b8:F7zBnMyn0Lo" border="0"></a>
</div><img src="http://feeds.feedburner.com/~r/Blogoreader/~4/9GlVNhEhmSs" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Dojo 2</title>
         <link>http://blogoreader.org.ua/2015/08/19/dojo-2/</link>
         <description>Dojo 2 уточнює і розширює оригінальні інтерфейси Dojo, видаляючи застарілі функції та узгоджуючи термінологію згідно з доповненнями, внесеними ECMAScript з моменту первинного випуску Dojo в 2004 році. Мета Dojo 2 це підтримка тільки ECMAScript 5+. Так, особливості, які були в &lt;a rel=&quot;nofollow&quot; class=&quot;more-link&quot; target=&quot;_blank&quot; href=&quot;http://blogoreader.org.ua/2015/08/19/dojo-2/&quot;&gt;Читати далі&lt;/a&gt;</description>
         <guid isPermaLink="false">http://blogoreader.org.ua/?p=1760</guid>
         <pubDate>Tue, 18 Aug 2015 21:08:47 +0000</pubDate>
         <content:encoded><![CDATA[<p>Dojo 2 уточнює і розширює оригінальні інтерфейси Dojo, видаляючи застарілі функції та узгоджуючи термінологію згідно з доповненнями, внесеними ECMAScript з моменту первинного випуску Dojo в 2004 році. Мета Dojo 2 це підтримка тільки ECMAScript 5+. Так, особливості, які були в Dojo 1 і які стали частиною специфікації ECMAScript, були видалені з фреймворка.</p>
<p>Dojo 2 написаний на TypeScript. Це дозволяє користувачам Dojo скористатися перевагами додаткової статичної типізації і дозволяє Dojo бути опублікованими в AMD, CommonJS і ES6 форматі модулів для використання з нативними модульними системами в будь-якому сучасному оточенні.<br />
<a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/dojo.png"><img class="aligncenter size-full wp-image-1762" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/dojo.png" alt="Dojo 2" width="1033" height="539"/></a><a rel="nofollow" name="cut"></a><br />
Загальний підхід Dojo 2<br />
Dojo Toolkit почав створюватися в 2004 році групою однодумців розробляють JavaScript, які втомилися винаходити колесо і створювати милиці навколо невідповідності браузерів.</p>
<p>Місія Dojo Toolkit в тому, щоб забезпечити цілісність і простоту у використанні функцій API, які дозволяють розробникам створювати простіше підтримувані веб-додатки і не турбується про невідповідності і примхи кожного браузера.</p>
<p>Ми випустили Dojo 1.0 в 2007 році і продовжували його безперервно розвивати, вводячи поняття, які в даний час стали основними у розвитку JavaScript. В той час, використання модулів JavaScript, promises/deferreds, MVC, CSS препроцесора і системи збирання було сприйнято багатьма як складне і непотрібне. Як ми знаємо, ці речі стали частиною розвитку JavaScript сьогодні, і ми дуже раді, що більшість розробників JavaScript в даний час прагне до розвитку в цьому напрямку.</p>
<h5>Основні принципи</h5>
<p>Ми витратили багато часу, думаючи про те, що повинен вміти JavaScript фреймворк наступного покоління. Недостатньо просто додати нові функції, збільшити номер версії і назвати його «Dojo 2». У ньому повинен бути набір основних принципів, що визначають майбутній розвиток. Світ JavaScript значно змінився з часів народження Dojo. Місія фреймворку залишається такою ж, але те, як це зроблено, буде сильно відрізнятися.</p>
<h5>Модульність</h5>
<p>В даний час (принаймні на цьому тижні) у світі JavaScript вважають, що все, що може бути розділене на окремі пакети, має бути розділене. Наприклад, якщо все що вам потрібно це основні маніпуляції DOM і обробка подій, то ви можете взяти пакет, який робить тільки це.</p>
<p>Це здорово працює для невеликих проектів, але, коли вимоги ростуть і складність зростає, все більше пакетів з декількох джерел додаються до проекту. Ідея, що ви можете просто змінити пакет на інший пізніше — утопія. При створенні програмного забезпечення для великих корпорацій, часто неможливо працювати таким чином, т. к. їх юридичні відділи вимагають чистої інтелектуальної власності — код розглядається і юридично приймається перед використанням.</p>
<p>Наш підхід з Dojo 2 полягає в золотій середині між окремими пакетами і єдиним Dojo Toolkit. Ми будемо розробляти, збирати і випускати функціональність ядра Dojo разом з такими пакетами, як dgrid, dstore і Intern. Розробники будуть вільно використовувати і самостійно модернізувати частини, які їм потрібні, або використовувати зібраний випуск Dojo Toolkit. Поділ Dojo дозволить іншим внести свій вклад більш легко і випуски будуть відбуватися набагато швидше і менш болісно.</p>
<h5>Використання існуючої екосистеми</h5>
<p>Dojo, можливо, у багатьох напрямках був першим, але, враховуючи поширення JavaScript мікро-бібліотек і інструментів, у нас часто немає підстав, щоб підтримувати власне рішення тільки тому, що воно наше. Там, де є порівнянна або найкраща реалізація, ми будемо думати над тим, щоб використовувати її. Наприклад, ми будемо документувати наш код з допомогою JSDoc, а не DojoDoc як ми робили в часи розробки Dojo 1.x.</p>
<h5>Покращена документація</h5>
<p>До речі про документації: ми старанно працювали над поліпшенням документації для Dojo 1.х, але наші вимоги до документації Dojo2 ще вище. Багато в чому проблеми з документацією були викликані відсутністю інструментів. Використовуючи сучасні рішення, такі як JSDoc, Markdown і GitHub, ми можемо збільшити якість документації і швидкість додавання та оновлення документів.</p>
<h5>Продовження просування JavaScript</h5>
<p>По-перше, Dojo 2 буде написаний на TypeScript. В той час, як ES6 / ES2015 приніс багато необхідних поліпшень, є багато незакінчених речей. Такі мови, як TypeScript, дозволяють додавати поліпшення перш, ніж вони будуть додані до мови. Тоді ми можемо легко скласти транспайлер в AMD, CJS або ES6 модулі. Це дозволяє поліпшити сама мова, але що ще більш важливо, полегшити життя розробникам.</p>
<h5>Сучасні оточення</h5>
<p>На додаток до десктопних браузерам, метою Dojo 2 є підтримка максимально можливого кількості сучасних JavaScript оточень. Це означає підтримку мобільних телефонів, планшетів, Node.js / io.js, VR гарнітури і багато іншого.</p>
<h5>Віджети</h5>
<p>Віджети були однією з основних особливостей Dojo 1.x, але багато чого змінилося після того, як ми представили Dijit. Ми все ще думаємо який підхід обрати Dojo 2 — Dijit, нативні віджети, веб-компоненти або щось зовсім нове. Наш початковий акцент робиться на визначенні основної функціональності для Dojo 2, після цього ми почнемо визначати загальний підхід для віджетів.</p>
<h5>План</h5>
<p>Ми працюємо над кожною частиною Dojo 2 в кілька кроків.<br />
Дизайн. Визначити основну функціональність і API, щоб створити високий рівень «специфікації» для кожного Dojo 2 пакета.<br />
Розробка. Використовуючи специфікацію створену на першому кроці, розробити і задокументувати функціональність. Після чого використовувати Intern щоб перевірити, що це працює.<br />
Випуск. Dojo 2 буде упакований як набір різних модулів. Із завершенням кожного модуля ми ближче до Dojo версії 2.0.</p>
<p><em>Джерело: Хабрахабр</em></p>
<div class="facebook" title="Share link on Facebook">Facebook</div><div class="twitter" title="Share link on Twitter">Twitter</div><div class="plusone" title="Share link on Google+">Google+</div><div class="livejournal" title="Share link on LiveJournal">LiveJournal</div><form target="_blank" style="display:none;" class="sociallikes-livejournal-form"></form><div class="feedflare">
<a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=ISaZ8CVo1mg:dU3Xzj1XPjo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=ISaZ8CVo1mg:dU3Xzj1XPjo:D7DqB2pKExk" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=ISaZ8CVo1mg:dU3Xzj1XPjo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=ISaZ8CVo1mg:dU3Xzj1XPjo:F7zBnMyn0Lo" border="0"></a>
</div><img src="http://feeds.feedburner.com/~r/Blogoreader/~4/ISaZ8CVo1mg" height="1" width="1" alt=""/>]]></content:encoded>
         <category>Програми</category>
      </item>
      <item>
         <title>How-to: Техніки створення інтерактивних email-повідомлень за допомогою CSS</title>
         <link>http://blogoreader.org.ua/2015/08/18/how-to-css-email/</link>
         <description>У нашому блозі ми вже розповідали про те, як реалізувати у листі пагінацію, проте це далеко не єдиний варіант інтерактивності email-розсилки. У деяких випадках привабливі листи можна створити з допомогою hover-ефекту, коли контент змінюється при наведенні на нього курсору. Сьогодні ми &lt;a rel=&quot;nofollow&quot; class=&quot;more-link&quot; target=&quot;_blank&quot; href=&quot;http://blogoreader.org.ua/2015/08/18/how-to-css-email/&quot;&gt;Читати далі&lt;/a&gt;</description>
         <guid isPermaLink="false">http://blogoreader.org.ua/?p=1754</guid>
         <pubDate>Tue, 18 Aug 2015 18:43:29 +0000</pubDate>
         <content:encoded><![CDATA[<p>У нашому блозі ми вже розповідали про те, як реалізувати у листі пагінацію, проте це далеко не єдиний варіант інтерактивності email-розсилки. У деяких випадках привабливі листи можна створити з допомогою hover-ефекту, коли контент змінюється при наведенні на нього курсору.</p>
<p><img class=" aligncenter" src="https://habrastorage.org/files/74a/1d0/a81/74a1d0a81dc14368b80c4f29f4fdc1eb.gif" alt=""/></p>
<p>Сьогодні ми представляємо вашій увазі витяги з статей блогу <span style="color:#3366ff;">FreshInbox</span> про те, як створити інтерактивне email-лист. <a rel="nofollow" name="cut"></a></p>
<p>Перший спосіб включає три простих кроки.</p>
<h4>1 крок: таблиця і фонове зображення</h4>
<p>Спочатку потрібно створити таблицю, яка буде містити одну комірку із зображенням в якості фону:</p>
<pre class="prettyprint"><code><span class="pun">&lt;</span><span class="tag">table</span> <span class="atn">cellpadding</span><span class="pun">=</span><span class="atv">0</span> <span class="atn">cellspacing</span><span class="pun">=</span><span class="atv">0</span> <span class="atn">border</span><span class="pun">=</span><span class="atv">0</span><span class="pun">&gt;&lt;</span><span class="tag">tr</span><span class="pun">&gt;</span>
<span class="pun">&lt;</span><span class="tag">td</span> <span class="atn">width</span><span class="pun">=</span><span class="atv">240</span> <span class="atn">background</span><span class="pun">=</span><span class="atv">"http://.../alternate-image.jpg"</span><span class="pun">&gt;</span>
<span class="pun">&lt;/</span><span class="tag">td</span><span class="pun">&gt;&lt;/</span><span class="tag">tr</span><span class="pun">&gt;&lt;/</span><span class="tag">table</span><span class="pun">&gt;</span>
</code></pre>
<p> </p>
<h4>2 крок: посилання і зображення</h4>
<p>Для hover-ефекту потрібно два зображення — одне показується спочатку, а інше з’являється при наведенні. На другому кроці потрібно вибрати головне зображення, яке буде «обгорнуте» посиланням. Також до ссылке додається клас «img-swap», а до зображення застосовується властивість</p>
<pre class="prettyprint"><code><span class="pln">display</span><span class="pun">:</span><span class="pln">block</span></code></pre>
<p>.</p>
<pre class="prettyprint"><code><span class="pun">&lt;</span><span class="tag">table</span> <span class="atn">cellpadding</span><span class="pun">=</span><span class="atv">0</span> <span class="atn">cellspacing</span><span class="pun">=</span><span class="atv">0</span> <span class="atn">border</span><span class="pun">=</span><span class="atv">0</span><span class="pun">&gt;&lt;</span><span class="tag">tr</span><span class="pun">&gt;</span>
<span class="pun">&lt;</span><span class="tag">td</span> <span class="atn">width</span><span class="pun">=</span><span class="atv">240</span> <span class="atn">background</span><span class="pun">=</span><span class="atv">"http://../alternate-image.jpg"</span><span class="pun">&gt;</span>
<span class="pun">&lt;</span><span class="tag">a</span> <span class="atn">class</span><span class="pun">=</span><span class="atv">"img-swap"</span> <span class="atn">href</span><span class="pun">=</span><span class="atv">"http://../link"</span><span class="pun">&gt;&lt;</span><span class="tag">img</span> <span class="atn">src</span><span class="pun">=</span><span class="atv">"http://../primary-image.jpg"</span> <span class="atn">width</span><span class="pun">=</span><span class="atv">"240"</span> <span class="atn">height</span><span class="pun">=</span><span class="atv">"170"</span> <span class="atn">border</span><span class="pun">=</span><span class="atv">"0"</span> <span class="atn">style</span><span class="pun">=</span><span class="atv">"</span><span class="str">display:block;</span><span class="atv">"</span> <span class="atn">alt</span><span class="pun">=</span><span class="atv">"the product"</span><span class="pun">&gt;&lt;/</span><span class="tag">a</span><span class="pun">&gt;</span>
<span class="pun">&lt;/</span><span class="tag">td</span><span class="pun">&gt;&lt;/</span><span class="tag">tr</span><span class="pun">&gt;&lt;/</span><span class="tag">table</span><span class="pun">&gt;</span>
</code></pre>
<p> </p>
<h4>3 крок: стиль і ховер</h4>
<p>Завершальним етапом є додавання до ссылке стилів і налаштування для неї псевдокласу</p>
<pre class="prettyprint"><code><span class="pun">:</span><span class="pln">hover</span></code></pre>
<p>, «націленого на зображення. Встановивши висоту зображення на 0px в тому випадку, коли курсор знаходиться на посилання, можна приховати зображення, що «фонове зображення з осередку. Стиль display встановлений в</p>
<pre class="prettyprint"><code><span class="pun">:</span><span class="pln">block</span></code></pre>
<p>, щоб посилання зберігало ширину і висоту навіть у тому випадку, якщо укладена в ній зображення приховано.</p>
<pre class="prettyprint"><code><span class="pun">&lt;</span><span class="tag">style</span><span class="pun">&gt;</span>
<span class="pun">.</span><span class="pln">img</span><span class="pun">-</span><span class="pln">swap </span><span class="pun">{</span><span class="pln">
display</span><span class="pun">:</span><span class="pln"> block</span><span class="pun">;</span><span class="pln">
width</span><span class="pun">:</span> <span class="lit">240px</span><span class="pun">;</span><span class="pln">
height</span><span class="pun">:</span> <span class="lit">170px</span><span class="pun">;</span>
<span class="pun">}</span>

<span class="pun">.</span><span class="pln">img</span><span class="pun">-</span><span class="pln">swap</span><span class="pun">:</span><span class="pln">hover img </span><span class="pun">{</span><span class="pln">
height</span><span class="pun">:</span> <span class="lit">0px</span><span class="pun">;</span>
<span class="pun">}</span>
<span class="pun">&lt;/</span><span class="tag">style</span><span class="pun">&gt;</span>
</code></pre>
<p><img class="aligncenter size-full wp-image-1757" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/shoe.gif" alt="" width="240" height="170"/><br />
Даний спосіб підтримується в Yahoo! Mail, Outlook.com (і Outlook 2003). Існує і модифікація для Gmail, яку ми докладно розглядали в одній з минулих статей.</p>
<h4>Натисни і побачиш сюрприз</h4>
<p>Ще одна техніка дозволяє створювати інтерактивні листи з допомогою hover-ефекту, а для мобільних користувачів показувати «сюрприз» після кліка на картинці.</p>
<p>Цей спосіб схожий на описаний вище, однак він відрізняється тим, що спочатку для непідтримуваних клієнтів показується не первісне зображення, а з’являється картинка. Це дозволить користувачам з непідтримуваними поштовими програмами не упустити сам зміст листа (хоча і вся інтерактивність їм буде недоступна).</p>
<p><b>Підтримувані клієнти</b>: iOS Mail, Android 4.x Mail, Yahoo! Mail, Outlook.com і Gmail.com (з описаним за посиланням вище хаком з селекторами атрибутів).</p>
<p><b>Непідтримувані клієнти</b>: десктопний Outlook, мобільні додатки Gmail і Gmail for business</p>
<h4>У чому відмінність від попереднього методу</h4>
<p>Щоб зробити можливим відображення відкривається зображення, потрібно здійснити невеликі зміни в порівнянні з попередньою версією техніки. Замість використання зображення обкладинки в якості оверлея, а відкривається зображення в якості фону, потрібно зробити все навпаки:</p>
<pre class="prettyprint"><code><span class="pun">&lt;</span><span class="tag">table</span> <span class="atn">border</span><span class="pun">=</span><span class="atv">1</span> <span class="atn">cellpadding</span><span class="pun">=</span><span class="atv">0</span> <span class="atn">cellspacing</span><span class="pun">=</span><span class="atv">0</span> <span class="atn">background</span><span class="pun">=</span><span class="atv">"http://freshinbox.com/examples/rollover-reveal-simple/images/reveal-close-l.jpg"</span><span class="pun">&gt;</span>
<span class="pun">&lt;</span><span class="tag">tr</span><span class="pun">&gt;&lt;</span><span class="tag">td</span><span class="pun">&gt;</span>
<span class="pun">&lt;</span><span class="tag">a</span> <span class="atn">class</span><span class="pun">=</span><span class="atv">"reveal"</span> <span class="atn">lang</span><span class="pun">=</span><span class="atv">"x-reveal"</span> <span class="atn">style</span><span class="pun">=</span><span class="atv">"</span><span class="str">display:block;width:500px;height:400px;</span><span class="atv">"</span> 
<span class="atn">href</span><span class="pun">=</span><span class="atv">"#"</span><span class="pun">&gt;</span>
<span class="pun">&lt;</span><span class="tag">img</span> <span class="atn">src</span><span class="pun">=</span><span class="atv">"http://freshinbox.com/examples/rollover-reveal-simple/images/reveal-open-l.jpg"</span> 
<span class="atn">style</span><span class="pun">=</span><span class="atv">"</span><span class="str">display:block;</span><span class="atv">"</span> <span class="atn">height</span><span class="pun">=</span><span class="atv">400</span> <span class="atn">width</span><span class="pun">=</span><span class="atv">500</span> <span class="atn">alt</span><span class="pun">=</span><span class="atv">"A surprise!"</span> <span class="atn">border</span><span class="pun">=</span><span class="atv">0</span><span class="pun">&gt;</span>
<span class="pun">&lt;/</span><span class="tag">a</span><span class="pun">&gt;</span>
<span class="pun">&lt;/</span><span class="tag">td</span><span class="pun">&gt;&lt;/</span><span class="tag">tr</span><span class="pun">&gt;&lt;/</span><span class="tag">table</span><span class="pun">&gt;</span>
</code></pre>
<p>Відкривається зображення буде основним, а первісна «обкладинка» стане фоном. Потім на підтримуваних поштових клієнтів ми сховаємо оверлей, показуючи тільки обкладинку (тобто фон). Коли користувач наведе курсор на зображення, йому вже буде показано приховане зображення.</p>
<p><img class="aligncenter size-full wp-image-1756" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/letter.gif" alt="" width="406" height="282"/><br />
Тому, замість:</p>
<pre class="prettyprint"><code><span class="pln">rollover</span><span class="pun">:</span><span class="pln">hover img</span><span class="pun">{</span><span class="pln">
max</span><span class="pun">-</span><span class="pln">height</span><span class="pun">:</span> <span class="lit">0px</span><span class="pun">;</span><span class="pln">
height</span><span class="pun">:</span><span class="lit">0px</span><span class="pun">;</span>
<span class="pun">}</span>
</code></pre>
<p>Код буде виглядати так:</p>
<pre class="prettyprint"><code><span class="pun">.</span><span class="pln">reveal img</span><span class="pun">{</span><span class="pln">
max</span><span class="pun">-</span><span class="pln">height</span><span class="pun">:</span> <span class="lit">0px</span><span class="pun">;</span><span class="pln">
height</span><span class="pun">:</span><span class="lit">0px</span><span class="pun">;</span>
<span class="pun">}</span>
<span class="pun">.</span><span class="pln">reveal</span><span class="pun">:</span><span class="pln">hover img</span><span class="pun">{</span><span class="pln">
max</span><span class="pun">-</span><span class="pln">height</span><span class="pun">:</span><span class="pln"> none</span><span class="pun">;</span><span class="pln">
height</span><span class="pun">:</span> <span class="kwd">auto</span><span class="pun">;</span>
<span class="pun">}</span>
</code></pre>
<p>Таким чином, якщо поштова програма не підтримує інтерактивність, користувач побачить те зображення, яке в результаті відкривається за ховеру. В цьому випадку втрачається wow-ефект, але зберігається сенс послання.</p>
<p>Крім того, зображення загорнуте в «мертву посилання» — це потрібно для того, щоб спрацьовував ефект по тапу на iOS і Android. Посилання може бути активною, але тоді в Android користувачі будуть перенаправлятися на неї. В принципі, інтерактивність на мобільних пристроях можна взагалі відключити за допомогою спеціального медиазапроса:</p>
<pre class="prettyprint"><code><span class="pln">@media screen </span><span class="kwd">and</span> <span class="pun">(</span><span class="pln">max</span><span class="pun">-</span><span class="pln">device</span><span class="pun">-</span><span class="pln">width</span><span class="pun">:</span> <span class="lit">1024px</span><span class="pun">){</span>
<span class="pun">.</span><span class="pln">reveal img</span><span class="pun">{</span><span class="pln">
max</span><span class="pun">-</span><span class="pln">height</span><span class="pun">:</span><span class="pln"> none </span><span class="pun">!</span><span class="pln">important</span><span class="pun">;</span><span class="pln">
height</span><span class="pun">:</span> <span class="kwd">auto</span> <span class="pun">!</span><span class="pln">important</span><span class="pun">;</span>
<span class="pun">}</span> 
<span class="pun">}</span> 
</code></pre>
<p>Під спойлером представлений повний код прикладу (попрацювати з ним також можна <span style="color:#3366ff;">Codepen</span>):</p>
<p><b>Код прикладу</b></p>
<pre class="prettyprint"><code><span class="dec"></span>
<span class="pun">&lt;</span><span class="tag">html</span> <span class="atn">xmlns</span><span class="pun">=</span><span class="atv">"http://www.w3.org/1999/xhtml"</span><span class="pun">&gt;</span>
<span class="pun">&lt;</span><span class="tag">head</span><span class="pun">&gt;</span>
<span class="pun">&lt;</span><span class="tag">meta</span> <span class="atn">http-equiv</span><span class="pun">=</span><span class="atv">"Content-Type"</span> <span class="atn">content</span><span class="pun">=</span><span class="atv">"text/html; charset=UTF-8"</span> <span class="pun">/&gt;</span>
<span class="pun">&lt;</span><span class="tag">meta</span> <span class="atn">http-equiv</span><span class="pun">=</span><span class="atv">"X-UA-Compatible"</span> <span class="atn">content</span><span class="pun">=</span><span class="atv">"IE=EDGE"</span> <span class="pun">/&gt;</span>
<span class="pun">&lt;</span><span class="tag">meta</span> <span class="atn">name</span><span class="pun">=</span><span class="atv">"viewport"</span> <span class="atn">content</span><span class="pun">=</span><span class="atv">"width=device-width, initial-scale=1.0"</span><span class="pun">/&gt;</span>
<span class="pun">&lt;</span><span class="tag">title</span><span class="pun">&gt;</span><span class="pln">Rollover to Reveal</span><span class="pun">&lt;/</span><span class="tag">title</span><span class="pun">&gt;</span>
<span class="com"></span>
<span class="pun">&lt;</span><span class="tag">style</span><span class="pun">&gt;</span>

<span class="com">/* wrapping in media query prevents styles from activating in OWA */</span>
<span class="pun">.</span><span class="pln">yfix</span><span class="pun">{}</span><span class="pln">

@media screen </span><span class="kwd">and</span> <span class="pun">(</span><span class="pln">max</span><span class="pun">-</span><span class="pln">width</span><span class="pun">:</span><span class="lit">9999px</span><span class="pun">)</span> <span class="pun">{</span>
<span class="pun">.</span><span class="pln">reveal img</span><span class="pun">{</span><span class="pln">
max</span><span class="pun">-</span><span class="pln">height</span><span class="pun">:</span> <span class="lit">0px</span><span class="pun">;</span><span class="pln">
height</span><span class="pun">:</span><span class="lit">0px</span><span class="pun">;</span>
<span class="pun">}</span>
<span class="pun">.</span><span class="pln">reveal</span><span class="pun">:</span><span class="pln">hover img</span><span class="pun">{</span><span class="pln">
max</span><span class="pun">-</span><span class="pln">height</span><span class="pun">:</span><span class="pln"> none</span><span class="pun">;</span><span class="pln">
height</span><span class="pun">:</span> <span class="kwd">auto</span><span class="pun">;</span>
<span class="pun">}</span> 

<span class="pun">*</span> <span class="pun">[</span><span class="pln">lang</span><span class="pun">=</span><span class="pln">x</span><span class="pun">-</span><span class="pln">reveal</span><span class="pun">]</span><span class="pln"> img</span><span class="pun">{</span><span class="pln">
max</span><span class="pun">-</span><span class="pln">height</span><span class="pun">:</span> <span class="lit">0px</span><span class="pun">;</span><span class="pln">
height</span><span class="pun">:</span><span class="lit">0px</span><span class="pun">;</span>
<span class="pun">}</span>
<span class="pun">*</span> <span class="pun">[</span><span class="pln">lang</span><span class="pun">=</span><span class="pln">x</span><span class="pun">-</span><span class="pln">reveal</span><span class="pun">]:</span><span class="pln">hover img</span><span class="pun">{</span><span class="pln">
max</span><span class="pun">-</span><span class="pln">height</span><span class="pun">:</span><span class="pln"> none</span><span class="pun">;</span><span class="pln">
height</span><span class="pun">:</span> <span class="kwd">auto</span><span class="pun">;</span>
<span class="pun">}</span>
<span class="pun">}</span>

<span class="pun">&lt;/</span><span class="tag">style</span><span class="pun">&gt;</span>
<span class="pun">&lt;/</span><span class="tag">head</span><span class="pun">&gt;</span>
<span class="pun">&lt;</span><span class="tag">body</span> <span class="atn">style</span><span class="pun">=</span><span class="atv">"</span><span class="str">margin:0px; padding:0px;</span><span class="atv">"</span><span class="pun">&gt;</span><span class="pln">

&lt; table border=1 cellpadding=0 cellspacing=0 background="http://freshinbox.com/examples/rollover-reveal-simple/images/reveal-close-l.jpg"&gt;</span><span class="pun">&lt;</span><span class="tag">tr</span><span class="pun">&gt;</span>
<span class="pun">&lt;</span><span class="tag">td</span><span class="pun">&gt;&lt;</span><span class="tag">a</span> <span class="atn">class</span><span class="pun">=</span><span class="atv">"reveal"</span> <span class="atn">lang</span><span class="pun">=</span><span class="atv">"x-reveal"</span> <span class="atn">style</span><span class="pun">=</span><span class="atv">"</span><span class="str">display:block;width:500px;height:400px;</span><span class="atv">"</span> <span class="atn">href</span><span class="pun">=</span><span class="atv">"#"</span><span class="pun">&gt;&lt;</span><span class="tag">img</span> <span class="atn">src</span><span class="pun">=</span><span class="atv">"http://freshinbox.com/examples/rollover-reveal-simple/images/reveal-open-l.jpg"</span> <span class="atn">style</span><span class="pun">=</span><span class="atv">"</span><span class="str">display:block;</span><span class="atv">"</span> <span class="atn">height</span><span class="pun">=</span><span class="atv">400</span> <span class="atn">width</span><span class="pun">=</span><span class="atv">500</span> <span class="atn">alt</span><span class="pun">=</span><span class="atv">"A surprise!"</span> <span class="atn">border</span><span class="pun">=</span><span class="atv">0</span><span class="pun">&gt;&lt;/</span><span class="tag">a</span><span class="pun">&gt;&lt;/</span><span class="tag">td</span><span class="pun">&gt;</span>
<span class="pun">&lt;/</span><span class="tag">tr</span><span class="pun">&gt;&lt;/</span><span class="tag">table</span><span class="pun">&gt;</span>

<span class="pun">&lt;/</span><span class="tag">body</span><span class="pun">&gt;</span>
</code></pre>
<p><em>Джерело: habrahabr.ru</em></p>
<div class="facebook" title="Share link on Facebook">Facebook</div><div class="twitter" title="Share link on Twitter">Twitter</div><div class="plusone" title="Share link on Google+">Google+</div><div class="livejournal" title="Share link on LiveJournal">LiveJournal</div><form target="_blank" style="display:none;" class="sociallikes-livejournal-form"></form><div class="feedflare">
<a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=O2_mv9hFId4:m3Cjz0eAdRw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=O2_mv9hFId4:m3Cjz0eAdRw:D7DqB2pKExk" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=O2_mv9hFId4:m3Cjz0eAdRw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=O2_mv9hFId4:m3Cjz0eAdRw:F7zBnMyn0Lo" border="0"></a>
</div><img src="http://feeds.feedburner.com/~r/Blogoreader/~4/O2_mv9hFId4" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Інтервали в С++, частина 3: представляємо інкрементори (Iterable)</title>
         <link>http://blogoreader.org.ua/2015/08/18/iterable-cpp/</link>
         <description>У попередніх постах я описав проблеми, з якими зіткнувся при створенні бібліотеки для роботи з інтервалами. Зараз я опишу вам моє рішення: покращення концепції інтервалів, які дозволяють створювати інтервали з обмежувачами і нескінченні інтервали, що чудово вписуються в ієрархію стандартної &lt;a rel=&quot;nofollow&quot; class=&quot;more-link&quot; target=&quot;_blank&quot; href=&quot;http://blogoreader.org.ua/2015/08/18/iterable-cpp/&quot;&gt;Читати далі&lt;/a&gt;</description>
         <guid isPermaLink="false">http://blogoreader.org.ua/?p=1745</guid>
         <pubDate>Tue, 18 Aug 2015 17:58:24 +0000</pubDate>
         <content:encoded><![CDATA[<p>У попередніх постах я описав проблеми, з якими зіткнувся при створенні бібліотеки для роботи з інтервалами. Зараз я опишу вам моє рішення: покращення концепції інтервалів, які дозволяють створювати інтервали з обмежувачами і нескінченні інтервали, що чудово вписуються в ієрархію стандартної бібліотеки без втрати продуктивності.</p>
<p>У кінці попереднього поста я підсумував недоліки існуючих інтервалів:</p>
<p>інтервали з обмежувачами і нескінченні інтервали генерує поганий код<br />
їм доводиться моделювати більш слабкі концепції, ніж вони могли б<br />
легко можна передати нескінченний інтервал в алгоритм, який його не перетравить<br />
їх важко використовувати<br />
інтервали, які можуть бути нескінченними або дуже великими, можуть викликати переповнення в difference_type<br />
Перша проблема особливо важка, тому почнемо з неї.</p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/ierarh.png"><br />
</a><strong>Концепція інтервалів</strong><br />
Для початку, давайте суворо визначимо поняття інтервалу. У стандарті C++ це слово використовується всюди, але ніде не визначається. Можна зрозуміти, що інтервал – це щось, з чого можна отримати begin і end, пару ітераторів, які влаштовані так, що до end можна дістатися, почавши з begin. У термінах моєї пропозиції формалізувати цю концепцію можна так:<br />
<a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/ierarh.png"><br />
</a></p>
<pre class="prettyprint"><code><span class="kwd">using</span><span class="pln"> std</span><span class="pun">::</span><span class="kwd">begin</span><span class="pun">;</span>
<span class="kwd">using</span><span class="pln"> std</span><span class="pun">::</span><span class="kwd">end</span><span class="pun">;</span>

<span class="kwd">template</span> <span class="pun">&lt;</span> <span class="kwd">typename</span><span class="pln"> T</span><span class="pun">&gt;</span>
<span class="kwd">using</span><span class="pln"> Iterator_type </span><span class="pun">=</span>
<span class="kwd">decltype</span><span class="pun">(</span><span class="kwd">begin</span><span class="pun">(</span><span class="pln">std</span><span class="pun">::</span><span class="pln">declval</span><span class="pun">&lt;</span><span class="pln">T</span><span class="pun">&gt;()));</span>

<span class="kwd">template</span> <span class="pun">&lt;</span> <span class="kwd">typename</span><span class="pln"> T</span><span class="pun">&gt;</span>
<span class="kwd">concept</span> <span class="kwd">bool</span> <span class="typ">Range</span> <span class="pun">=</span><span class="pln">
requires</span><span class="pun">(</span><span class="pln">T range</span><span class="pun">)</span> <span class="pun">{</span>
<span class="pun">{</span> <span class="kwd">begin</span><span class="pun">(</span><span class="pln">range</span><span class="pun">)</span> <span class="pun">}</span> <span class="pun">-&gt;</span><span class="pln"> Iterator_type</span><span class="pun">&lt;</span><span class="pln">T</span><span class="pun">&gt;;</span>
<span class="pun">{</span> <span class="kwd">end</span><span class="pun">(</span><span class="pln">range</span><span class="pun">)</span> <span class="pun">}</span> <span class="pun">-&gt;</span><span class="pln"> Iterator_type</span><span class="pun">&lt;</span><span class="pln">T</span><span class="pun">&gt;;</span><span class="pln">
requires </span><span class="typ">Iterator</span><span class="pun">&lt;</span><span class="pln">Iterator_type</span><span class="pun">&lt;</span><span class="pln">T</span><span class="pun">&gt;&gt;;</span>
<span class="pun">};</span>
</code></pre>
<p> </p>
<p>Також є поліпшення концепції інтервалу Range, які називаються InputRange, ForwardRange, і т. д. На ділі вони просто більше вимагають від своїх ітераторів. Нижче показана вся ця ієрархія.<img class="aligncenter size-full wp-image-1747" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/ierarh.png" alt="" width="239" height="513"/></p>
<p>Ці концепції є основою для бібліотек Boost.Range (http://www.boost.org/libs/range)</p>
<p><strong>Проблема 1: Генерація поганого коду</strong><br />
Якщо пам’ятаєте, для реалізації інтервалів як з обмежувачем, так і нескінченних, у вигляді пари ітераторів, ітератор end повинен бути особливим. І такий ітератор являє собою більше <i>концепцію</i>, ніж фізичне положення елемента в послідовності. Можна представляти його, як елемент з позицією «останній + 1» – різниця лише в тому, що ви не дізнаєтеся, де його позиція, поки не досягнете її. Оскільки тип сигнального ітератора такою ж, як у звичайного, потрібна перевірка на етапі виконання програми, щоб визначити, чи є даний ітератор сигнальним. Це призводить до повільного порівнянні ітераторів і незручним реалізаціями методів.</p>
<p>Концепція инкременторов(Iterable)<br />
Для чого потрібні ітератори? Ми збільшуємо їх, разыменовываем і порівнюємо, так адже? А що можна зробити з сигнальним ітератором? Не особливо багато чого. Його позиція не змінюється, його можна разыменовать, оскільки його позиція завжди «останній + 1». Але його порівняти з ітератором. Виходить, що сигнальний ітератор – слабкий ітератор.</p>
<p>Проблема з інтервалами в тому, що ми намагаємося перетворити сигнальний ітератор в звичайний. Але він ним не є. Так і не будемо це робити – <i>нехай вони будуть іншого типу</i>.</p>
<p>Концепція Range вимагає, щоб begin і end були одного типу. Якщо можна їх зробити різними, це вже буде більш слабка концепція – концепція Iterable. Инкременторы – вони як ітератори, тільки у begin і end різні типи. Концепція:</p>
<pre class="prettyprint"><code><span class="kwd">template</span><span class="pun">&lt;</span><span class="kwd">typename</span><span class="pln"> T</span><span class="pun">&gt;</span>
<span class="kwd">using</span><span class="pln"> Sentinel_type </span><span class="pun">=</span>
<span class="kwd">decltype</span><span class="pun">(</span><span class="kwd">end</span><span class="pun">(</span><span class="pln">std</span><span class="pun">::</span><span class="pln">declval</span><span class="pun">&lt;</span><span class="pln">T</span><span class="pun">&gt;()));</span>

<span class="kwd">template</span> <span class="pun">&lt;</span> <span class="kwd">typename</span><span class="pln"> T</span><span class="pun">&gt;</span>
<span class="kwd">concept</span> <span class="kwd">bool</span> <span class="typ">Iterable</span> <span class="pun">=</span><span class="pln">
requires</span><span class="pun">(</span><span class="pln">T range</span><span class="pun">)</span> <span class="pun">{</span>
<span class="pun">{</span> <span class="kwd">begin</span><span class="pun">(</span><span class="pln">range</span><span class="pun">)</span> <span class="pun">}</span> <span class="pun">-&gt;</span><span class="pln"> Iterator_type</span><span class="pun">&lt;</span><span class="pln">T</span><span class="pun">&gt;;</span>
<span class="pun">{</span> <span class="kwd">end</span><span class="pun">(</span><span class="pln">range</span><span class="pun">)</span> <span class="pun">}</span> <span class="pun">-&gt;</span><span class="pln"> Sentinel_type</span><span class="pun">&lt;</span><span class="pln">T</span><span class="pun">&gt;;</span><span class="pln">
requires </span><span class="typ">Iterator</span><span class="pun">&lt;</span><span class="pln">Iterator_type</span><span class="pun">&lt;</span><span class="pln">T</span><span class="pun">&gt;&gt;;</span><span class="pln">
requires </span><span class="typ">EqualityComparable</span><span class="pun">&lt;</span><span class="pln">
Iterator_type</span><span class="pun">&lt;</span><span class="pln">T</span><span class="pun">&gt;,</span><span class="pln"> Sentinel_type</span><span class="pun">&lt;</span><span class="pln">T</span><span class="pun">&gt;&gt;;</span>
<span class="pun">};</span>

<span class="kwd">template</span> <span class="pun">&lt;</span> <span class="kwd">typename</span><span class="pln"> T</span><span class="pun">&gt;</span>
<span class="kwd">concept</span> <span class="kwd">bool</span> <span class="typ">Range</span> <span class="pun">=</span>
<span class="typ">Iteratable</span><span class="pun">&lt;</span><span class="pln">T</span><span class="pun">&gt;</span> <span class="pun">&&</span>
<span class="typ">Same</span><span class="pun">&lt;</span><span class="pln">Iterator_type</span><span class="pun">&lt;</span><span class="pln">T</span><span class="pun">&gt;,</span><span class="pln"> Sentinel_type</span><span class="pun">&lt;</span><span class="pln">T</span><span class="pun">&gt;&gt;;</span>
</code></pre>
<p>Природно, концепція Range входить в концепцію Iterable. Вона просто уточнює її, додаючи обмеження на рівність типів begin і end.</p>
<p><img class="aligncenter size-full wp-image-1748" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/iterable.png" alt="" width="443" height="609"/></p>
<p>Так виглядає ієрархія, якщо ми розглядаємо інтервали, инкременторы і ітератори, але зовсім не обов’язково саме так визначати їх у програмі. Зауважте, що «интервальность» – тобто, схожість типів begin і end, ортогональна силі ітератора begin. Коли нам треба включати в код моделювання RandomAccessRange, ми можемо сказати requires RandomAccessIterable && Range і просто змінити всю концепцію.</p>
<p>Різниця між, наприклад, BidirectionalIterable і ForwardIterable в концепції, моделюється ітератором begin з Iterable.</p>
<p><strong>Iterable і алгоритми STL</strong><br />
Але постійте – адже алгоритми STL не будуть працювати з инкременторами, тому що їм потрібно, щоб у begin і end було один тип. Так і є. Тому я прошерстил весь STL, щоб перевірити, що можна переписати. Наприклад, std::find</p>
<pre class="prettyprint"><code><span class="kwd">template</span><span class="pun">&lt;</span><span class="kwd">class</span> <span class="typ">InputIterator</span><span class="pun">,</span> <span class="kwd">class</span> <span class="typ">Value</span><span class="pun">&gt;</span>
<span class="typ">InputIterator</span><span class="pln">
find</span><span class="pun">(</span><span class="typ">InputIterator</span><span class="pln"> first</span><span class="pun">,</span> <span class="typ">InputIterator</span> <span class="kwd">last</span><span class="pun">,</span>
<span class="typ">Value</span> <span class="kwd">const</span> <span class="pun">&</span><span class="pln"> value</span><span class="pun">)</span>
<span class="pun">{</span>
<span class="kwd">for</span> <span class="pun">(;</span><span class="pln"> first </span><span class="pun">!=</span> <span class="kwd">last</span><span class="pun">;</span> <span class="pun">++</span><span class="pln">first</span><span class="pun">)</span>
<span class="kwd">if</span> <span class="pun">(*</span><span class="pln">first </span><span class="pun">==</span><span class="pln"> value</span><span class="pun">)</span>
<span class="kwd">break</span><span class="pun">;</span>
<span class="kwd">return</span><span class="pln"> first</span><span class="pun">;</span>
<span class="pun">}</span>
</code></pre>
<p>Зараз std::find використовує Ranges. Але зауважте, що алгоритм не намагається поміняти позицію ітератора end. Алгоритм пошуку можна легко змінити так, щоб він працював з Iterables замість Ranges:</p>
<pre class="prettyprint"><code><span class="kwd">template</span><span class="pun">&lt;</span><span class="kwd">class</span> <span class="typ">InputIterator</span><span class="pun">,</span> <span class="kwd">class</span> <span class="typ">Sentinel</span><span class="pun">,</span> <span class="kwd">class</span> <span class="typ">Value</span><span class="pun">&gt;</span>
<span class="typ">InputIterator</span><span class="pln">
find</span><span class="pun">(</span><span class="typ">InputIterator</span><span class="pln"> first</span><span class="pun">,</span> <span class="typ">Sentinel</span> <span class="kwd">last</span><span class="pun">,</span>
<span class="typ">Value</span> <span class="kwd">const</span> <span class="pun">&</span><span class="pln"> value</span><span class="pun">)</span>
<span class="pun">{</span>
<span class="kwd">for</span> <span class="pun">(;</span><span class="pln"> first </span><span class="pun">!=</span> <span class="kwd">last</span><span class="pun">;</span> <span class="pun">++</span><span class="pln">first</span><span class="pun">)</span>
<span class="kwd">if</span> <span class="pun">(*</span><span class="pln">first </span><span class="pun">==</span><span class="pln"> value</span><span class="pun">)</span>
<span class="kwd">break</span><span class="pun">;</span>
<span class="kwd">return</span><span class="pln"> first</span><span class="pun">;</span>
<span class="pun">}</span>
</code></pre>
<p>Ось і все – зміна настільки мале, що його навіть важко помітити.</p>
<p>Так які алгоритми C++98 можна пристосувати до роботи з Iterables замість Ranges? Виявляється, майже всі. Легше перерахувати ті, які не піддаються. Це:</p>
<ul>
<li>copy_backward</li>
<li>алгоритми роботи з множинами і пірамідами (push_heap, pop_heap, make_heap, sort_heap)</li>
<li>inplace_merge</li>
<li>nth_element</li>
<li>partial_sort і partial_sort_copy</li>
<li>next_permutation і prev_permutation</li>
<li>random_shuffle</li>
<li>reverse і reverse_copy</li>
<li>sort і stable_sort</li>
<li>stable_partition</li>
</ul>
<p>Інші півсотні вимагають чисто механічного зміни в коді. Визначивши концепцію Iterable так, як вона визначається в Range, ми даємо будь-якого алгоритму, що працює з Iterable, можливість точно так само працювати і з Ranges. Це корисно і важливо – для ітераторів написано дуже багато коду, щоб робити для них якусь несумісну абстракцію.</p>
<p><strong>Доказ у Perf</strong></p>
<p>І що ми отримаємо? Повернемося до наших З-рядками. Я описав клас c_string_range і знайшов, що перебір символів генерує поганий код. Почнемо знову, тільки за допомогою range_facade, щоб побудувати Iterable замість Range.</p>
<pre class="prettyprint"><code><span class="kwd">using</span> <span class="kwd">namespace</span><span class="pln"> ranges</span><span class="pun">;</span>
<span class="kwd">struct</span><span class="pln"> c_string_iterable
</span><span class="pun">:</span><span class="pln"> range_facade</span><span class="pun">&lt;</span><span class="pln">c_string_iterable</span><span class="pun">&gt;</span>
<span class="pun">{</span>
<span class="kwd">private</span><span class="pun">:</span>
<span class="kwd">friend</span><span class="pln"> range_core_access</span><span class="pun">;</span>
<span class="kwd">const</span> <span class="kwd">char</span> <span class="pun">*</span><span class="pln">sz_</span><span class="pun">;</span>
<span class="kwd">const</span> <span class="kwd">char</span> <span class="pun">&</span><span class="pln"> current</span><span class="pun">()</span> <span class="kwd">const</span> <span class="pun">{</span> <span class="kwd">return</span> <span class="pun">*</span><span class="pln">sz_</span><span class="pun">;</span> <span class="pun">}</span>
<span class="kwd">void</span> <span class="kwd">next</span><span class="pun">()</span> <span class="pun">{</span> <span class="pun">++</span><span class="pln">sz_</span><span class="pun">;</span> <span class="pun">}</span>
<span class="kwd">bool</span> <span class="kwd">done</span><span class="pun">()</span> <span class="kwd">const</span> <span class="pun">{</span> <span class="kwd">return</span> <span class="pun">*</span><span class="pln">sz_ </span><span class="pun">==</span> <span class="lit">0</span><span class="pun">;</span> <span class="pun">}</span>
<span class="kwd">bool</span><span class="pln"> equal</span><span class="pun">(</span><span class="pln">c_string_iterable </span><span class="kwd">const</span> <span class="pun">&</span><span class="pln">that</span><span class="pun">)</span> <span class="kwd">const</span>
<span class="pun">{</span> <span class="kwd">return</span><span class="pln"> sz_ </span><span class="pun">==</span><span class="pln"> that</span><span class="pun">.</span><span class="pln">sz_</span><span class="pun">;</span> <span class="pun">}</span>
<span class="kwd">public</span><span class="pun">:</span><span class="pln">
c_string_iterable</span><span class="pun">(</span><span class="kwd">const</span> <span class="kwd">char</span> <span class="pun">*</span><span class="pln">s</span><span class="pun">)</span>
<span class="pun">:</span><span class="pln"> sz_</span><span class="pun">(</span><span class="pln">sz</span><span class="pun">)</span> <span class="pun">{}</span>
<span class="pun">};</span>
</code></pre>
<p>Код вийшов набагато простіше, ніж старий. Всю роботу робить range_facade. Ітератор і сигнальний ітератор реалізовані у вигляді примітивів. Щоб перевірити його, я згенерувати оптимізований машинний код для наступних функцій, одна з яких використовує старий клас c_string_range, а інша – новий c_string_iterable:</p>
<pre class="prettyprint"><code><span class="com">// Range-based</span>
<span class="kwd">int</span><span class="pln"> range_strlen</span><span class="pun">(</span><span class="pln">
c_string_range</span><span class="pun">::</span><span class="pln">iterator </span><span class="kwd">begin</span><span class="pun">,</span><span class="pln">
c_string_range</span><span class="pun">::</span><span class="pln">iterator </span><span class="kwd">end</span><span class="pun">)</span>
<span class="pun">{</span>
<span class="kwd">int</span><span class="pln"> i </span><span class="pun">=</span> <span class="lit">0</span><span class="pun">;</span>
<span class="kwd">for</span><span class="pun">(;</span> <span class="kwd">begin</span> <span class="pun">!=</span> <span class="kwd">end</span><span class="pun">;</span> <span class="pun">++</span><span class="kwd">begin</span><span class="pun">)</span>
<span class="pun">++</span><span class="pln">i</span><span class="pun">;</span>
<span class="kwd">return</span><span class="pln"> i</span><span class="pun">;</span>
<span class="pun">}</span>

<span class="com">// Iterable-based</span>
<span class="kwd">int</span><span class="pln"> iterable_strlen</span><span class="pun">(</span><span class="pln">
range_iterator_t</span><span class="pun">&lt;</span><span class="pln">c_string_iterable</span><span class="pun">&gt;</span> <span class="kwd">begin</span><span class="pun">,</span><span class="pln">
range_sentinel_t</span><span class="pun">&lt;</span><span class="pln">c_string_iterable</span><span class="pun">&gt;</span> <span class="kwd">end</span><span class="pun">)</span>
<span class="pun">{</span>
<span class="kwd">int</span><span class="pln"> i </span><span class="pun">=</span> <span class="lit">0</span><span class="pun">;</span>
<span class="kwd">for</span><span class="pun">(;</span> <span class="kwd">begin</span> <span class="pun">!=</span> <span class="kwd">end</span><span class="pun">;</span> <span class="pun">++</span><span class="kwd">begin</span><span class="pun">)</span>
<span class="pun">++</span><span class="pln">i</span><span class="pun">;</span>
<span class="kwd">return</span><span class="pln"> i</span><span class="pun">;</span>
<span class="pun">}</span>
</code></pre>
<p>Навіть не знаючи асемблера, можна зрозуміти різницю.</p>
<table>
<tbody>
<tr>
<td>
<pre class="prettyprint"><code><span class="pun">;</span><span class="typ">Range</span><span class="pun">-</span><span class="pln">based strlen
pushl </span><span class="pun">%</span><span class="pln">ebp
movl </span><span class="pun">%</span><span class="pln">esp</span><span class="pun">,</span> <span class="pun">%</span><span class="pln">ebp
pushl </span><span class="pun">%</span><span class="pln">esi
leal </span><span class="lit">8</span><span class="pun">(%</span><span class="pln">ebp</span><span class="pun">),</span> <span class="pun">%</span><span class="pln">ecx
movl </span><span class="lit">12</span><span class="pun">(%</span><span class="pln">ebp</span><span class="pun">),</span> <span class="pun">%</span><span class="pln">esi
xorl </span><span class="pun">%</span><span class="pln">eax</span><span class="pun">,</span> <span class="pun">%</span><span class="pln">eax
testl </span><span class="pun">%</span><span class="pln">esi</span><span class="pun">,</span> <span class="pun">%</span><span class="pln">esi
movl </span><span class="lit">8</span><span class="pun">(%</span><span class="pln">ebp</span><span class="pun">),</span> <span class="pun">%</span><span class="pln">edx
jne LBB2_4
jmp LBB2_1
</span><span class="pun">.</span><span class="pln">align </span><span class="lit">16</span><span class="pun">,</span> <span class="lit">0x90</span><span class="pln">
LBB2_8</span><span class="pun">:</span><span class="pln">
incl </span><span class="pun">%</span><span class="pln">eax
incl </span><span class="pun">%</span><span class="pln">edx
movl </span><span class="pun">%</span><span class="pln">edx</span><span class="pun">,</span> <span class="pun">(%</span><span class="pln">ecx</span><span class="pun">)</span><span class="pln">
LBB2_4</span><span class="pun">:</span><span class="pln">
testl </span><span class="pun">%</span><span class="pln">edx</span><span class="pun">,</span> <span class="pun">%</span><span class="pln">edx
jne LBB2_5
cmpb $0</span><span class="pun">,</span> <span class="pun">(%</span><span class="pln">esi</span><span class="pun">)</span><span class="pln">
jne LBB2_8
jmp LBB2_6
</span><span class="pun">.</span><span class="pln">align </span><span class="lit">16</span><span class="pun">,</span> <span class="lit">0x90</span><span class="pln">
LBB2_5</span><span class="pun">:</span><span class="pln">
cmpl </span><span class="pun">%</span><span class="pln">edx</span><span class="pun">,</span> <span class="pun">%</span><span class="pln">esi
jne LBB2_8
jmp LBB2_6
</span><span class="pun">.</span><span class="pln">align </span><span class="lit">16</span><span class="pun">,</span> <span class="lit">0x90</span><span class="pln">
LBB2_3</span><span class="pun">:</span><span class="pln">
leal </span><span class="lit">1</span><span class="pun">(%</span><span class="pln">edx</span><span class="pun">,%</span><span class="pln">eax</span><span class="pun">),</span> <span class="pun">%</span><span class="pln">esi
incl </span><span class="pun">%</span><span class="pln">eax
movl </span><span class="pun">%</span><span class="pln">esi</span><span class="pun">,</span> <span class="pun">(%</span><span class="pln">ecx</span><span class="pun">)</span><span class="pln">
LBB2_1</span><span class="pun">:</span><span class="pln">
movl </span><span class="pun">%</span><span class="pln">edx</span><span class="pun">,</span> <span class="pun">%</span><span class="pln">esi
addl </span><span class="pun">%</span><span class="pln">eax</span><span class="pun">,</span> <span class="pun">%</span><span class="pln">esi
je LBB2_6
cmpb $0</span><span class="pun">,</span> <span class="pun">(%</span><span class="pln">esi</span><span class="pun">)</span><span class="pln">
jne LBB2_3
LBB2_6</span><span class="pun">:</span><span class="pln">
popl </span><span class="pun">%</span><span class="pln">esi
popl </span><span class="pun">%</span><span class="pln">ebp
ret
</span></code></pre>
</td>
<td>
<pre class="prettyprint"><code><span class="pun">;</span><span class="typ">Iterable</span><span class="pun">-</span><span class="pln">based strlen
pushl </span><span class="pun">%</span><span class="pln">ebp
movl </span><span class="pun">%</span><span class="pln">esp</span><span class="pun">,</span> <span class="pun">%</span><span class="pln">ebp
movl </span><span class="lit">8</span><span class="pun">(%</span><span class="pln">ebp</span><span class="pun">),</span> <span class="pun">%</span><span class="pln">ecx
xorl </span><span class="pun">%</span><span class="pln">eax</span><span class="pun">,</span> <span class="pun">%</span><span class="pln">eax
cmpb $0</span><span class="pun">,</span> <span class="pun">(%</span><span class="pln">ecx</span><span class="pun">)</span><span class="pln">
je LBB1_4
leal </span><span class="lit">8</span><span class="pun">(%</span><span class="pln">ebp</span><span class="pun">),</span> <span class="pun">%</span><span class="pln">edx
</span><span class="pun">.</span><span class="pln">align </span><span class="lit">16</span><span class="pun">,</span> <span class="lit">0x90</span><span class="pln">
LBB1_2</span><span class="pun">:</span><span class="pln">
cmpb $0</span><span class="pun">,</span> <span class="lit">1</span><span class="pun">(%</span><span class="pln">ecx</span><span class="pun">,%</span><span class="pln">eax</span><span class="pun">)</span><span class="pln">
leal </span><span class="lit">1</span><span class="pun">(%</span><span class="pln">eax</span><span class="pun">),</span> <span class="pun">%</span><span class="pln">eax
jne LBB1_2
addl </span><span class="pun">%</span><span class="pln">eax</span><span class="pun">,</span> <span class="pun">%</span><span class="pln">ecx
movl </span><span class="pun">%</span><span class="pln">ecx</span><span class="pun">,</span> <span class="pun">(%</span><span class="pln">edx</span><span class="pun">)</span><span class="pln">
LBB1_4</span><span class="pun">:</span><span class="pln">
popl </span><span class="pun">%</span><span class="pln">ebp
ret
</span></code></pre>
</td>
</tr>
</tbody>
</table>
<p>Код з инкременторами набагато крутіше. І він практично ідентичний з ассемблером, отриманим ітераторів «голого».</p>
<p><strong>Ітератори, сигнальні ітератори і паритетність</strong></p>
<p>Але що означає порівняння двох об’єктів різних типів на еквівалентність?</p>
<p>Трохи для непосвячених: N3351 визначає, в яких випадках припустимі порівняння різних типів. Недостатньо, щоб синтаксис «x==y» був припустимо і видавав булевское значення. Якщо у х і в будуть різні типи, то ці типи повинні бути самі по собі EqualityComparable, і у них має бути <i>загальний</i> тип, до якого їх можна перетворити, і він також повинен бути EqualityComparable. Припустимо, ми порівнюємо char і short. Це можливо, оскільки вони EqualityComparable, і їх можна перетворити в int, який теж EqualityComparable.</p>
<p>Ітератори можна порівнювати, а сигнальні ітератори порівнюються тривіальним чином. Складність в тому, щоб знайти для них загальний тип. Взагалі, у кожного ітератора і сигнального є загальний тип, який можна створити так: припустимо існування нового типу ітератора I, який представляє собою тип-суму, і містить або ітератор, або сигнальний ітератор. Коли їх порівнюють, він веде себе семантично так, ніби їх обох спочатку перетворили в два об’єкти типу I, назвемо їх lhs і rhs, і потім порівняли по наступній табличці:</p>
<table width="639" cellpadding="7">
<tbody>
<tr>
<td width="198">lhs сигнальный итератор?</td>
<td width="199">rhs сигнальный итератор?</td>
<td width="198">lhs == rhs?</td>
</tr>
<tr>
<td width="198">true</td>
<td width="199">true</td>
<td width="198">true</td>
</tr>
<tr>
<td width="198">true</td>
<td width="199">false</td>
<td width="198">done(rhs.iter)</td>
</tr>
<tr>
<td width="198">false</td>
<td width="199">true</td>
<td width="198">done(lhs.iter)</td>
</tr>
<tr>
<td width="198">false</td>
<td width="199">false</td>
<td width="198">lhs.iter == rhs.iter</td>
</tr>
</tbody>
</table>
<p>Ця табличка нагадує ту, яка вийшла при аналізі поведінки оператора порівняння <span style="color:#3366ff;">c_string_range::iterator</span>. Це не випадково – то був особливий випадок цієї, більш загальної, схеми. Вона підтверджує інтуїтивне висновок, який ви вже можете помітити, переглянувши два моїх класу, c_string_range і c_string_iterable. Один – пара ітераторів, інший – пара ітератор/сигнальний, але їх схема роботи схожі. Ми відчуваємо, що можливо побудувати еквівалентний Range будь Iterable, якщо пожертвувати дещицею швидкодії. І тепер ми знайшли підтвердження цьому.</p>
<p>Можливість порівнювати ітератори і сигнальні ітератори безпосередньо дозволяє нам використовувати систему типів C++ для оптимізації великий категорії ітерацій, прибираючи розгалуження в операторі порівняння паритетності.</p>
<p><strong>Заперечення</strong></p>
<p>Ідея дати різні типи begin і end не нова, і придумав її не я. Я дізнався про неї від Дейва Абрахамса (Dave Abrahams) багато років тому. Нещодавно подібну ідею подав Дітмар Кюэль (Dietmar Kuehl) у списку розсилки Ranges, а у відповідь на його лист Шон Пэрент (Sean Parent) висловив наступне заперечення:</p>
<blockquote><p>Мені здається, ми покладаємо на ітератори занадто багато. Алгоритми, що працюють з закінченням на підставі перевірки сигнального ітератора або на підставі підрахунку – це різні сутності. См. copy_n() і copy_sentinel()</p>
<p><span style="text-decoration:underline;"><span style="color:#3366ff;text-decoration:underline;">stlab.adobe.com/copy_8hpp.html</span></span></p>
<p>Щодо інтервалів – я впевнений, що можна побудувати його за допомогою:</p>
<ol>
<li>пари ітераторів</li>
<li>ітератора і кількість</li>
<li>ітератора і сигналу</li>
</ol>
<p>І в цьому випадку copy(r, out) може видати потрібний алгоритм.</p></blockquote>
<p>Якщо я правильно його зрозумів, він говорить про існування трьох паралельних концепцій інтервалів: IteratorRange, CountedRange і SentinelRange. І ці ієрархії не потрібно намагатися зв’язати між собою. Алгоритм копіювання повинен містити три різні реалізації, по одній на кожну концепцію. Тоді доведеться потроїти близько 50 алгоритмів – і це надто багато повторення в коді.</p>
<p>Гірше того, деякі алгоритми засновані на уточнених концепціях. Наприклад, libc++ алгоритм rotate обирає одну з трьох реалізацій, в залежності від того, ви передаєте йому прямі, двосторонні або ітератори довільного доступу. А для включення трьох різних реалізацій Iterator, Counted і SentinelRanges знадобилося б 9 алгоритмів rotate! При всій повазі, це божевілля.</p>
<p><strong>Підсумки</strong></p>
<p>На початку посту я навів список проблем, пов’язаних з інтервалами з парними итераторами. Я показав нову концепцію, Iterable, яка займається питаннями швидкодії і порушив питання складнощів реалізації інтервалів. Поки я не описав, як ця концепція працює з нескінченними інтервалами, про що ми поговоримо в четвертому, фінальному пості.</p>
<p>Весь код можна знайти у сховищі на <span style="color:#3366ff;">github</span>.</p>
<p><em>Джерело: Хабрахабр</em></p>
<div class="facebook" title="Share link on Facebook">Facebook</div><div class="twitter" title="Share link on Twitter">Twitter</div><div class="plusone" title="Share link on Google+">Google+</div><div class="livejournal" title="Share link on LiveJournal">LiveJournal</div><form target="_blank" style="display:none;" class="sociallikes-livejournal-form"></form><div class="feedflare">
<a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=7njaUVQNPak:Uw8fKjKkyoE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=7njaUVQNPak:Uw8fKjKkyoE:D7DqB2pKExk" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=7njaUVQNPak:Uw8fKjKkyoE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=7njaUVQNPak:Uw8fKjKkyoE:F7zBnMyn0Lo" border="0"></a>
</div><img src="http://feeds.feedburner.com/~r/Blogoreader/~4/7njaUVQNPak" height="1" width="1" alt=""/>]]></content:encoded>
      </item>
      <item>
         <title>Налагоджуємо комунікацію між клієнтом і UX: як уникнути зіпсованого телефону</title>
         <link>http://blogoreader.org.ua/2015/08/18/client-ux/</link>
         <description>Аналітик — арбітр між бізнесом, проектуванням і розробкою, який періодично зміщується в ту чи іншу сторону, але при цьому утримує процес створення мобільного продукту в поле здорового глузду. Він забезпечує комунікацію між всіма учасниками процесу, транслюючи знання від однієї групи &lt;a rel=&quot;nofollow&quot; class=&quot;more-link&quot; target=&quot;_blank&quot; href=&quot;http://blogoreader.org.ua/2015/08/18/client-ux/&quot;&gt;Читати далі&lt;/a&gt;</description>
         <guid isPermaLink="false">http://blogoreader.org.ua/?p=1739</guid>
         <pubDate>Tue, 18 Aug 2015 16:45:46 +0000</pubDate>
         <content:encoded><![CDATA[<div class="facebook" title="Share link on Facebook">Facebook</div><div class="twitter" title="Share link on Twitter">Twitter</div><div class="plusone" title="Share link on Google+">Google+</div><div class="livejournal" title="Share link on LiveJournal">LiveJournal</div><form target="_blank" style="display:none;" class="sociallikes-livejournal-form"></form><div class="feedflare">
<a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=0jsG5BFmFj0:h0gHYsNMkg8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=0jsG5BFmFj0:h0gHYsNMkg8:D7DqB2pKExk" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=0jsG5BFmFj0:h0gHYsNMkg8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=0jsG5BFmFj0:h0gHYsNMkg8:F7zBnMyn0Lo" border="0"></a>
</div><img src="http://feeds.feedburner.com/~r/Blogoreader/~4/0jsG5BFmFj0" height="1" width="1" alt=""/>]]></content:encoded>
         <category>IT-новини</category>
      </item>
      <item>
         <title>Як Windows 10 збирає дані про користувачів</title>
         <link>http://blogoreader.org.ua/2015/08/18/windows-10-spy/</link>
         <description>Інформація про те, що Windows 10 збирає дані про користувачів, не нова. Ще в 2014 році компанія Microsoft опублікувала заяву про конфіденційність, з якої випливає, що на її сервери може передаватись інформація про використання програм, пристроїв та мережі, в яких &lt;a rel=&quot;nofollow&quot; class=&quot;more-link&quot; target=&quot;_blank&quot; href=&quot;http://blogoreader.org.ua/2015/08/18/windows-10-spy/&quot;&gt;Читати далі&lt;/a&gt;</description>
         <guid isPermaLink="false">http://blogoreader.org.ua/?p=1730</guid>
         <pubDate>Tue, 18 Aug 2015 16:33:23 +0000</pubDate>
         <content:encoded><![CDATA[<p>Інформація про те, що Windows 10 збирає дані про користувачів, не нова. Ще в 2014 році компанія Microsoft опублікувала заяву про конфіденційність, з якої випливає, що на її сервери може передаватись інформація про використання програм, пристроїв та мережі, в яких вони працюють. Ці дані можуть закріплюватись за певним ідентифікатором користувача (обліковий запис Microsoft), а також до цих даних додається інфо про адресу електронної пошти, переваги, інтереси, місцезнаходження, і багато іншого.</p>
<p><img class="aligncenter size-full wp-image-1733" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/windows10.jpg" alt="Windows 10 &#x000437;&#x000431;&#x000438;&#x000440;&#x000430;&#x000454; &#x000434;&#x000430;&#x00043d;&#x000456; &#x00043f;&#x000440;&#x00043e; &#x00043a;&#x00043e;&#x000440;&#x000438;&#x000441;&#x000442;&#x000443;&#x000432;&#x000430;&#x000447;&#x000456;&#x000432;" width="600" height="340"/>Чеське видання <span style="text-decoration:underline;"><span style="color:#3366ff;text-decoration:underline;">Aeronet.cz</span></span> опублікувало розслідування невідомого ІТ-фахівця, який вирішив відстежити активність Windows 10 по збору даних. У ході дослідження використовувалися такі інструменти: програма Destroy Windows 10 Spying, що блокує передачу даних на сервери Microsoft, PRTG Network Monitor, Windows Resource Monitor и Wireshark. На думку дослідника, Windows 10 – більше схожа на термінал по збору даних, ніж на класичну операційну систему.</p>
<p><strong>Cortana хоче знати про користувача все</strong></p>
<p>Найбільш активним «збирачем» даних в новій ОС є голосовий помічник Cortana. Експеримент чеського дослідника показав, що всі голосові запити, передані в динамік пристрою, Windows 10 відправляє на такі сервери:<br />
<span style="text-decoration:underline;color:#3366ff;">vortex.data.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> vortex-win.data.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> telecommand.telemetry.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> telecommand.telemetry.microsoft.com.nsatc.net</span><br />
<span style="text-decoration:underline;color:#3366ff;"> oca.telemetry.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> oca.telemetry.microsoft.com.nsatc.net</span><br />
<span style="text-decoration:underline;color:#3366ff;"> sqm.telemetry.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> sqm.telemetry.microsoft.com.nsatc.net</span><br />
<span style="text-decoration:underline;color:#3366ff;"> watson.telemetry.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> watson.telemetry.microsoft.com.nsatc.net</span><br />
<span style="text-decoration:underline;color:#3366ff;"> redir.metaservices.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> choice.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> choice.microsoft.com.nsatc.net</span><br />
<span style="text-decoration:underline;color:#3366ff;"> df.telemetry.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> reports.wes.df.telemetry.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> wes.df.telemetry.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> services.wes.df.telemetry.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> sqm.df.telemetry.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> telemetry.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> watson.ppe.telemetry.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> telemetry.appex.bing.net</span><br />
<span style="text-decoration:underline;color:#3366ff;"> telemetry.urs.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> telemetry.appex.bing.net:443</span><br />
<span style="text-decoration:underline;color:#3366ff;"> settings-sandbox.data.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> vortex-sandbox.data.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> survey.watson.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> watson.live.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> watson.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> statsfe2.ws.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> corpext.msitadfs.glbdns2.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> compatexchange.cloudapp.net</span><br />
<span style="text-decoration:underline;color:#3366ff;"> cs1.wpc.v0cdn.net</span><br />
<span style="text-decoration:underline;color:#3366ff;"> a-0001.a-msedge.net</span><br />
<span style="text-decoration:underline;color:#3366ff;"> statsfe2.update.microsoft.com.akadns.net</span><br />
<span style="text-decoration:underline;color:#3366ff;"> sls.update.microsoft.com.akadns.net</span><br />
<span style="text-decoration:underline;color:#3366ff;"> fe2.update.microsoft.com.akadns.net</span><br />
<span style="text-decoration:underline;color:#3366ff;"> diagnostics.support.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> corp.sts.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> statsfe1.ws.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> pre.footprintpredict.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> i1.services.social.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> i1.services.social.microsoft.com.nsatc.net</span><br />
<span style="text-decoration:underline;color:#3366ff;"> feedback.windows.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> feedback.microsoft-hohm.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> feedback.search.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> rad.msn.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> preview.msn.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> ad.doubleclick.net</span><br />
<span style="text-decoration:underline;color:#3366ff;"> ads.msn.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> ads1.msads.net</span><br />
<span style="text-decoration:underline;color:#3366ff;"> ads1.msn.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> a.ads1.msn.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> a.ads2.msn.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> adnexus.net</span><br />
<span style="text-decoration:underline;color:#3366ff;"> adnxs.com</span><br />
<span style="text-decoration:underline;color:#3366ff;"> az361816.vo.msecnd.net</span><br />
<span style="text-decoration:underline;color:#3366ff;"> az512334.vo.msecnd.net</span></p>
<p><span style="color:#000000;">При цьому, дослідник зауважив, що інформація відправляється на сервери один раз в 15 хвилин (порціями приблизно по 80 мегабайт). Це занадто багато для метаданих, тому він припустив, що спочатку Cortana перетворює голосові записи в текст, а вже потім відправляє на сервери Microsoft ще й WAV-файли з голосом (включаючи записи розмов через SIP). Зібрана текстова інформація зберігається всередині вбудованого в Cortana блокноту.</span></p>
<p><img class="aligncenter size-full wp-image-1734" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/Cortana.jpg" alt="" width="553" height="369"/></p>
<p>Якщо заборонити комунікацію з серверами з вищевказаного списку через файл хостів, то надалі програма буде видавати помилки.</p>
<p>Крім того, деякі користувачі вже встигли поскаржитися на те, що Cortana продовжує працювати у фоновому режимі, навіть якщо її відключити в налаштуваннях.</p>
<p>Крім того, як з’ясували журналісти видання <span style="color:#3366ff;">Ars Technica</span>, якщо користувач відключить функцію пошуку в інтернеті з меню «Пуск», здійснення такого пошуку все одно призведе до відправки запиту на сервер Bing, який поверне файл <span style="color:#3366ff;">threshold.appcache</span>, в якому також міститься певна інформація Cortana, включаючи ID-пристроїв, що зберігається при перезавантаженні.</p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/info.png"><img class="aligncenter size-full wp-image-1736" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/info.png" alt="&#x000429;&#x00043e; &#x000441;&#x000430;&#x00043c;&#x000435; &#x00043a;&#x000440;&#x000430;&#x000434;&#x000435; &#x000443; &#x00043a;&#x00043e;&#x000440;&#x000438;&#x000441;&#x000442;&#x000443;&#x000432;&#x000430;&#x000447;&#x000430; Windows 10" width="1280" height="773"/></a></p>
<p> </p>
<p>На даний момент віртуальний помічник розуміє тільки англійську мову, а Microsoft запевняє, що вся зібрана ним інформація надійно захищена. Однак компанія з Редмонда також заявляє, що за запитом відповідних державних органів, дані можуть бути передані їм.</p>
<p>Для того, щоб передавати менше персональних даних, користувач може не пов’язувати Windows 10 з обліковим записом Microsoft. У такому випадку Cortana не працюватиме, але пошук буде функціонувати.</p>
<p><strong>Навіть чати з шифруванням не захищають текст</strong></p>
<p>Також ОС відстежує пошукові запити користувача, аналізує поштове листування, щоб дізнатися переваги і розклад власника комп’ютера. Крім того, дані також передаються і пошуковій системі Bing.</p>
<p>Як з’ясував той же чеський дослідник, зібрана текстова інформація зберігається в тимчасових файлах, які один раз на 30 хвилин передаються на такі сервери:</p>
<p><span style="text-decoration:underline;color:#3366ff;">oca.telemetry.microsoft.com.nsatc.net</span><br />
<span style="text-decoration:underline;color:#3366ff;">pre.footprintpredict.com</span><br />
<span style="text-decoration:underline;color:#3366ff;">reports.wes.df.telemetry.microsoft.com</span></p>
<p>Сервер телеметрії збирає інформацію про географічне положення, IP-адресу, Footprintpredict далі передає дані пошуковій системі Bing. При цьому використовується не тільки інформація, введена безпосередньо в браузері, але і, наприклад, взята з чатів – Windows 10 може «перехоплювати» введення даних з будь-якого встановленого додатка. Таким чином, якщо користувач в розмові в месенджері згадає про те, що збирається у відпустку, після в браузері Edge йому буде показуватися відповідна реклама. Оскільки перехоплюється введення з клавіатури, то навіть при спілкуванні через захищені месенджери, ОС може бачити, що вводить користувач (але не бачить, що йому прислали у відповідь).</p>
<p>За заявою дослідника, йому вдалося виявити ще одну цікаву особливість Windows 10 – якщо де-небудь в ОС надрукувати назву відомого американського фільму, то система здійснює відповідний пошук на жорсткому диску і індексує мультимедійні дані. Індексний файл потім відправляється на сервери Microsoft:</p>
<p><span style="text-decoration:underline;color:#3366ff;">df.telemetry.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;">reports.wes.df.telemetry.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;">cs1.wpc.v0cdn.net</span><br />
<span style="text-decoration:underline;color:#3366ff;">vortex-sandbox.data.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;">pre.footprintpredict.com</span></p>
<p>При цьому, назви іноземних фільмів (наприклад, чеських) не приводили до подібної активності ОС, також система не вивчає вміст файлів, тому якщо назвати файл з фільмом будь-яким іншим словом, то він не буде проіндексований. Дослідник у своїй статті припустив, що ця функціональність в майбутньому може бути використана для пошуку контрафактного контенту або створення націлених рекламних оголошень про покупку фільмів.</p>
<p><strong>Веб-камера теж передає дані</strong></p>
<p>Після активації ОС Windows 10 і після першого запуску веб-камери вона відправляє близько 35 мегабайт даних на такі сервери:</p>
<p><span style="text-decoration:underline;color:#3366ff;">ca.telemetry.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;">oca.telemetry.microsoft.com.nsatc.net</span><br />
<span style="text-decoration:underline;color:#3366ff;">vortex-sandbox.data.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;">i1.services.social.microsoft.com</span><br />
<span style="text-decoration:underline;color:#3366ff;">i1.services.social.microsoft.com.nsatc.net</span></p>
<p>Дослідник помітив тільки один випадок відправки даних веб-камерою, але припускає, що можливо вона відправляє інформацію з довгим інтервалом (дні або тижні). У своєму матеріалі він заявляє про те, що не знає, для чого конкретно може використовуватись інформація з веб-камери, але враховуючи, що ОС Windows – це система, що застосовується в багатьох навіть найбільших міжнародних компаніях, подібна функціональність потенційно може призводити до витоку важливих даних.</p>
<p>Усі дані, що передаються на сервери Microsoft, зашифровані, тому зрозуміти, що конкретно відправляє система без взлому шифрування, просто неможливо.</p>
<p><a rel="nofollow" target="_blank" href="http://blogoreader.org.ua/wp-content/uploads/2015/08/cryptoinfo.png"><img class="aligncenter size-full wp-image-1737" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/cryptoinfo.png" alt="&#x000412;&#x000441;&#x000456; &#x000434;&#x000430;&#x00043d;&#x000456;, &#x000449;&#x00043e; &#x00043f;&#x000435;&#x000440;&#x000435;&#x000434;&#x000430;&#x00044e;&#x000442;&#x00044c;&#x000441;&#x00044f; &#x00043d;&#x000430; &#x000441;&#x000435;&#x000440;&#x000432;&#x000435;&#x000440;&#x000438; Microsoft &#x000437;&#x000430;&#x000448;&#x000438;&#x000444;&#x000440;&#x00043e;&#x000432;&#x000430;&#x00043d;&#x000456;" width="1920" height="1160"/></a></p>
<p> </p>
<p>Журналісти <span style="color:#3366ff;">Ars Technica</span> відключили передачу телеметрії за допомогою групових політик, але система все одно періодично посилала інформацію на сервер <span style="text-decoration:underline;color:#3366ff;">ssw.live.com</span></p>
<p>Представники Windows заявили виданню, що Windows 10 збирає тільки інформацію, яка допоможе в майбутньому поліпшити надані користувачам сервіси. Тим не менше, не всі користувачі раді тому, що система продовжує щось відправляти на сервери Microsoft, навіть якщо їй заборонити це робити, і намагаються вирішити цю проблему самостійно, створивши відповідні інструменти. Так на <span style="color:#3366ff;">GitHub</span> викладений код програми <span style="color:#3366ff;">DisableWinTracking</span>, яка «використовує деякі відомі способи відключення стеження в Windows 10».</p>
<p> </p>
<div class="facebook" title="Share link on Facebook">Facebook</div><div class="twitter" title="Share link on Twitter">Twitter</div><div class="plusone" title="Share link on Google+">Google+</div><div class="livejournal" title="Share link on LiveJournal">LiveJournal</div><form target="_blank" style="display:none;" class="sociallikes-livejournal-form"></form><div class="feedflare">
<a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=YyQMQUznV4w:7hQYNEhhB7s:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=YyQMQUznV4w:7hQYNEhhB7s:D7DqB2pKExk" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=YyQMQUznV4w:7hQYNEhhB7s:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=YyQMQUznV4w:7hQYNEhhB7s:F7zBnMyn0Lo" border="0"></a>
</div><img src="http://feeds.feedburner.com/~r/Blogoreader/~4/YyQMQUznV4w" height="1" width="1" alt=""/>]]></content:encoded>
         <category>IT-новини</category>
      </item>
      <item>
         <title>Бурштинова кислота для схуднення</title>
         <link>http://blogoreader.org.ua/2015/08/14/burshtynova-kislota/</link>
         <description>Кращі дієтологи світу десятиліттями намагаються створити універсальне і безпечний засіб для схуднення, яке однаково добре «працювало» б кардинально при різних вихідних складових. Тобто, щоб прийом був виправданий і для відносно товстих людей, які бажають скинути чотири-п’ять кілограм, і для тих, &lt;a rel=&quot;nofollow&quot; class=&quot;more-link&quot; target=&quot;_blank&quot; href=&quot;http://blogoreader.org.ua/2015/08/14/burshtynova-kislota/&quot;&gt;Читати далі&lt;/a&gt;</description>
         <guid isPermaLink="false">http://blogoreader.org.ua/?p=1498</guid>
         <pubDate>Fri, 14 Aug 2015 06:05:03 +0000</pubDate>
         <content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1500" src="http://blogoreader.org.ua/wp-content/uploads/2015/08/yantarnaya.jpg" alt="&#x000411;&#x000443;&#x000440;&#x000448;&#x000442;&#x000438;&#x00043d;&#x00043e;&#x000432;&#x000430; &#x00043a;&#x000438;&#x000441;&#x00043b;&#x00043e;&#x000442;&#x000430;" width="450" height="253"/>Кращі дієтологи світу десятиліттями намагаються створити універсальне і безпечний засіб для схуднення, яке однаково добре «працювало» б кардинально при різних вихідних складових. Тобто, щоб прийом був виправданий і для відносно товстих людей, які бажають скинути чотири-п’ять кілограм, і для тих, хто за довгі роки переїдання і стресів накопичив у десятки разів більше.</p>
<p>А все це час чудодійний рецепт для тонкої талії і підтягнутих ніг був зовсім поруч. Можна сказати, «ховався» в нашому організмі. «Хто це?», — ви задумаєтеся. Зустрічайте: загадкова, але вкрай ефективна бурштинова кислота!</p>
<p><strong>Бурштин хороший не тільки в браслетах</strong></p>
<p>Крім прикрас, з нього виготовляють корисну бурштинову кислоту. За смаком і зовнішнім характеристикам вона має багато спільного з лимонною кислотою: такий же білий порошок з характерним кислуватим смаком. А ось по впливу на тіло людини з янтарною кислотою не зрівняється жодна інша речовина.</p>
<p>Вона дивним чином «перебудовує» роботу всього організму, внаслідок чого налагоджується правильний обмін речовин, нівелюються наслідки стресів. Це сприяє природному схудненню, в ході якого організм не отримує «сигналів тривоги» про втрачені кілограми, і не починає накопичувати жирові відкладення з подвоєною силою.</p>
<p><strong>Як діє бурштинова кислота:</strong></p>
<p>Бере участь у внутрішньоклітинних реакціях, підвищуючи енергетичний обмін всього організму і сприяє зменшенню розмірів жирових клітин.<br />
Знижує рівень холестерину. Прискорює кровотік, завдяки чому виводяться токсини, очищаються судини.<br />
Позитивно впливає на роботу нирок і печінки, що забезпечує м’яке усунення набряків, виведення шлаків та інших відходів», які уповільнюють процес схуднення.<br />
Посилює споживання клітинами кисню, який виступає головним окислювачем у процесі спалювання жирової тканини.<br />
Прибирає почуття втоми, забезпечує швидке відновлення організму в період великих навантажень (наприклад, після активного тренування в спортзалі).<br />
Регулює роботу підшлункової залози. Це допомагає стабілізувати вироблення інсуліну, а також знизити рівень глюкози, яка в разі свого надлишку перетворюється в жир.<br />
Для людського організму янтарна кислота не є чимось чужорідним, так як він сам «вміє» її виробляти. Причому, виробляти досить багато – близько 200 грамів на добу. Саме стільки потрібно людині, щоб усі життєві цикли в організмі проходили без збоїв, а зайві вуглеводи не відкладалися на боках у вигляді некрасивою жирового прошарку.</p>
<p><strong>Бурштинова кислота допомагає худнути</strong></p>
<p>Здорова людина, яка стежить за своїм харчуванням і регулярно займається фізичними навантаженнями, не відчуває нестачі в янтарної кислоти: його організм обходиться тієї, яку сам виробляє. Однак в умовах постійних стресів і недосипів, нерегулярного харчування і практично повної відсутності нормальних фізичних навантажень, вироблення бурштинової кислоти скорочується. А організм починає моментально мстити: чарівним чином створювати зайві кілограми навіть з капустяного листя.</p>
<p>У таких випадках буде правильним ввести в раціон бурштинову кислоту у вигляді спеціальної біодобавки. Вона матиме позитивний вплив на метаболізм, «розганяючи» його до необхідного рівня, і прискорить процеси жіросжіганія, які організм припинив виконувати внаслідок нестачі основного «палива». А за умови дотримання мінімальних правил здорового харчування і хоча б періодичних фізичних навантажень, є всі шанси «запустити» за допомогою аптечної бурштинової кислоти вироблення власної. Отже, організм відновить здатність самостійно боротися із зайвими жировими накопиченнями.</p>
<p><strong>Коли краще утриматися від прийому?</strong></p>
<p>В аптеках бурштинову кислоту відпускають без рецепта, однак до її вживання все ж існують деякі протипоказання. Препарат не рекомендують приймати тим, хто хворіє на гіпертонію, ішемічну хворобу або глаукомою. Потужну тонізуючу дію кислоти може спровокувати скачки тиску, надмірно прискорити струм крові або викликати тахікардію. Виразка шлунка – ще одне суттєве протипоказання. Янтарна кислота підвищує кислотність шлункового соку, що може бути загрожує запаленням слизових і загостренням неприємного захворювання.</p>
<p>Природне походження бурштинової кислоти зводить нанівець ризик виникнення алергій. Проте в цілях обережності фахівці радять починати лікування з невеликих доз, і уважно спостерігати за реакцією організму. Якщо ніяких видимих проявів індивідуальної непереносимості не виникло протягом перших 24 годин – бурштинову кислоту можна сміливо вживати в терапевтичних дозах.</p>
<div class="facebook" title="Share link on Facebook">Facebook</div><div class="twitter" title="Share link on Twitter">Twitter</div><div class="plusone" title="Share link on Google+">Google+</div><div class="livejournal" title="Share link on LiveJournal">LiveJournal</div><form target="_blank" style="display:none;" class="sociallikes-livejournal-form"></form><div class="feedflare">
<a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=52OkFbohwJU:PvJy2AczgeM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=52OkFbohwJU:PvJy2AczgeM:D7DqB2pKExk" border="0"></a> <a rel="nofollow" target="_blank" href="http://feeds.feedburner.com/~ff/Blogoreader?a=52OkFbohwJU:PvJy2AczgeM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Blogoreader?i=52OkFbohwJU:PvJy2AczgeM:F7zBnMyn0Lo" border="0"></a>
</div><img src="http://feeds.feedburner.com/~r/Blogoreader/~4/52OkFbohwJU" height="1" width="1" alt=""/>]]></content:encoded>
         <category>Поради</category>
      </item>
   </channel>
</rss>
<!-- fe4.yql.bf1.yahoo.com compressed/chunked Thu Oct  1 18:59:07 UTC 2015 -->
