<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss1full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- generator="FeedCreator 1.7.2" --><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://a32.me/rss/full.php">
        <title>a32.blog by Constantin Bosneaga</title>
        <description>Its all about. IT and "stuff" :)</description>
        <link>http://a32.me/</link>
       <dc:date>2013-05-22T23:06:17+01:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://a32.me/ru/2013/05/ja-prochel-v-kim-chan-i-rene-moborn-strategija-golubogo-okeana/" />
                <rdf:li rdf:resource="http://a32.me/2013/05/discover-php-bottlenecks-with-xdebug-or-why-my-site-is-so-slow/" />
                <rdf:li rdf:resource="http://a32.me/2013/05/reading-directory-list-new-php5-way/" />
                <rdf:li rdf:resource="http://a32.me/ru/2013/05/ja-prochel-napoleon-hill-dumaj-i-bogatej/" />
                <rdf:li rdf:resource="http://a32.me/ru/2013/05/monreal-pervye-shagi/" />
                <rdf:li rdf:resource="http://a32.me/2013/04/tinydeal-blacklisted-do-not-buy-here-problem/" />
                <rdf:li rdf:resource="http://a32.me/ru/2013/03/ja-prochel-robert-kijosaki-kvadrant-denezhnogo-potoka/" />
                <rdf:li rdf:resource="http://a32.me/2013/03/dynamicly-load-google-maps-v3/" />
                <rdf:li rdf:resource="http://a32.me/ru/2013/03/kishinev-moskva-toronto-monreal/" />
                <rdf:li rdf:resource="http://a32.me/ru/2013/03/ne-dajte-astronavtam-arhitektury-vas/" />
                <rdf:li rdf:resource="http://a32.me/ru/2013/03/majkl-gerber-sozdanie-predprijatija-kotoroe-by-rabotalo/" />
                <rdf:li rdf:resource="http://a32.me/2013/03/how-to-connect-to-rare-databases-in-php-informix-oracle-db2/" />
                <rdf:li rdf:resource="http://a32.me/ru/2013/02/jenergonezavisimoe-reshenie/" />
                <rdf:li rdf:resource="http://a32.me/ru/2013/02/ruanda-nacionalnyj-muzej-v-butare/" />
                <rdf:li rdf:resource="http://a32.me/ru/2013/02/rwanda-kamiranzovu-waterfall/" />
                <rdf:li rdf:resource="http://a32.me/2013/02/php-html-css-javascript-editor-ide-codelobster-php-edition/" />
                <rdf:li rdf:resource="http://a32.me/2013/01/nosql-parody-say-no-no-and-no/" />
                <rdf:li rdf:resource="http://a32.me/2013/01/ubuntu-12-04-64bit-office-2010-with-wine-solved/" />
                <rdf:li rdf:resource="http://a32.me/2013/01/making-any-form-ajax-the-easy-way/" />
                <rdf:li rdf:resource="http://a32.me/2012/12/settings-link-in-wordpress-plugin/" />
            </rdf:Seq>
        </items>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rdf+xml" href="http://feeds.feedburner.com/a32" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="a32" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">a32</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname></channel>
    <item rdf:about="http://a32.me/ru/2013/05/ja-prochel-v-kim-chan-i-rene-moborn-strategija-golubogo-okeana/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-05-20T21:00:10+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>Я прочел: В. Ким Чан и Рене Моборн – “Стратегия голубого океана”</title>
        <link>http://a32.me/ru/2013/05/ja-prochel-v-kim-chan-i-rene-moborn-strategija-golubogo-okeana/</link>
        <description>&lt;p&gt;Вдумайтесь: все ниши уже заняты, все рынки переполнены конкурентными продуктами, все смартфоны выглядят одинаково, все авиа-компании предлагают одни и те же услуги, все знают примерный размер порции в фастфуде и даже высота стаканов с «колой» строго регламентирована. Конкуренция на таких рынках заключается только в том, как сделать «сильнее, выше, быстрее» свой продукт и при этом «пустить кровь» конкуренту. В этой маркетинговой «крови» захлебываются отделы продаж и топ-менеджеры больших корпораций, а малый бизнес занят только тем, что пытается слепо подражать своим крупным «собратьям» по рынку.&lt;/p&gt;
&lt;p&gt;Такая картина и получила название &lt;strong&gt;«алого океана»&lt;/strong&gt;: места, где все грызут друг другу глотки за место под солнцем, пытаясь бесконечно улучшать одинаковый продукт, только завернутый в 10 разных по цвету и форме упаковок.&lt;/p&gt;
&lt;p&gt;Но уже в начале 90-х годов ХХ века начинают появляться (а далее их становится всё больше) так называемые &lt;strong&gt;«голубые океаны»&lt;/strong&gt;. Это участки / сферы / сегменты бизнеса (и даже целые новые индустрии), в которых нет конкурентной «резни» по той простой причине, что и самих конкурентов в них… НЕТ.&lt;/p&gt;
&lt;p&gt;&lt;span id="more-3293"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;5 уроков «Стратегии голубого океана», которые я извлек после прочтения&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Современный бизнес может (и должен) быть «экологичным»&lt;/strong&gt;. Новым компаниям (даже маленьким) нет смысла вести войну и «загрязнять» рынок маркетинговой шелухой и копиями уже сделанных и всем приевшихся продуктов, если можно создать собственный продукт.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Идеи находятся вокруг вас&lt;/strong&gt; и подсказать вам их может даже незначительная особенность продукта / рынка/ услуги, на которую до вас обращали внимание клиенты / пользователи, но не сами компании-производители.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Деньги можно зарабатывать там, где другие предпочитают их терять&lt;/strong&gt; или вообще не ищут. Отказ от многих привычных технологий и бизнес-процессов может открыть для вашей компании новую нишу.&lt;/li&gt;
&lt;li&gt;Вместо того, чтобы запустить еще один СМИ-проект / еще один интернет-магазин / еще одну закусочную / еще один стартап «как фейсбук, только с инстаграммом», &lt;strong&gt;подумайте, чего вам самим не хватает на рынке&lt;/strong&gt;: этот товар или эта услуга и должны быть реализованы вами, если вы решили заняться бизнесом.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Схемы и наглядные расчеты помогут вам&lt;/strong&gt; оценить не только риски и издержки, но и спрогнозировать дальнейший путь вашей компании (и кто знает — может быть, даже помогут открыть ваш собственный «голубой океан»)7&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Кому рекомендую прочесть&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Бизнесменам&lt;/strong&gt; (особенно начинающим) — чтобы пока не поздно, избрать неизбитый путь развития.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Преподавателям экономических вузов&lt;/strong&gt; — чтобы не приводить своим студентам скучные и избитые примеры «крупных и успешных» (всё равно 9/10 ваших студентов не создадут корпораций масштаба Microsoft или Ford Motors, так перестаньте же их накачивать заведомо невыполнимыми целями и примерами бизнес-величия!)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Авторам стартапов&lt;/strong&gt; — чтобы не создавать очередной клон групона, фейсбука, твиттера или инстаграмма вместе взятых с претензией на мировое господство, а изучить понятие рыночной ниши и обратить внимание на насущные потребности, которые можно решить при помощи онлайн-технологий (помните, что покупать еду, следить за собой и выбирать вещи люди будут всегда, даже тогда, когда закончится мода на всеобщую «вебдванольность» и «лайки ради лайков»).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Маркетологам&lt;/strong&gt; — чтобы понять, что правила «больше бюджет — лучше продажи» больше не существует, а есть множество других куда более эффективных способов добиться успеха для компании ( и среди них — перестать плавать в «алом океане»).&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://a32.me/2013/05/discover-php-bottlenecks-with-xdebug-or-why-my-site-is-so-slow/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-05-13T21:00:59+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>Discover PHP bottlenecks with Xdebug or why my site is so slow</title>
        <link>http://a32.me/2013/05/discover-php-bottlenecks-with-xdebug-or-why-my-site-is-so-slow/</link>
        <description>&lt;p&gt;In this article you will learn about the possible use xdebug by system administrators of web-servers.&lt;/p&gt;
&lt;p&gt;If you administer a web-server,  often face problems that ordinary users of the site called "slow" or "dead-slow" Of course, this is a very important issue that could have serious financial consequences for the website owner. This formulation is sufficient to begin the investigation.&lt;/p&gt;
&lt;p&gt;&lt;span id="more-3868"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;!--more--&gt;Interestingly, the reasons for these problems may be hidden almost anywhere. And these causes can be several, but the problems themselves may be difficult to reproduce. The fact that ultimately the user classifies as a "slow" on the lower level can be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Delays in network access link to the site&lt;/li&gt;
&lt;li&gt;Hardware problems on the server&lt;/li&gt;
&lt;li&gt;Insufficient amount of server resources&lt;/li&gt;
&lt;li&gt;Not optimally tuned operating system&lt;/li&gt;
&lt;li&gt;Not optimally configured software&lt;/li&gt;
&lt;li&gt;Problems with access to outside resources, access to which is implemented synchronously&lt;/li&gt;
&lt;li&gt;Not optimally written code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The task of the administrator is to identify and, where possible, eliminate these problems. If they are, of course, are in his area of ​​responsibility.&lt;/p&gt;
&lt;p&gt;Lets talk about "Not optimally written code". Practice shows that this case is about 90% of all the problems associated with the slow work of the site. Sub-optimal code, poorly written SQL-statements, improper use of locks - all of which can lead to a slowing down of the site. And if at some point before the powerful hardware could handle the bad code, after some point «x», it is simply no longer cope with the load. You can increase the capacity and on, but first, they ever run out, and secondly - it's extra hardware costs. So first of all the problem should start with an analysis of the site code.&lt;/p&gt;
&lt;p&gt;It is worth to mention that there are cases where the acquisition of new hardware get more cost-effective than parsing and editing large amounts of code.&lt;br /&gt;
The main task of the administrator, oddly enough - server administration. He is not a developer and do not have the moral right to touch the code, even if that does not work. Therefore, for the most detailed diagnosis of this code and identify bottlenecks that cause a slowdown in the site, you need to use tools that do not require editing the code.&lt;br /&gt;
Yes, I forgot, we are talking about developing on PHP! That it is used and loved by the majority of web-programmers.&lt;/p&gt;
&lt;h2&gt;Xdebug&lt;/h2&gt;
&lt;p&gt;Xdebug is an extension to PHP, written by one of the developers of PHP, and designed to collect and analyze debug in php-code. It is important to note that this open-source project.&lt;/p&gt;
&lt;p&gt;We will consider xdebug through the lens of the system administrator, affecting only those features that do not require changes of the site code, and does not slow down the server.&lt;/p&gt;
&lt;p&gt;Obviously, any profiling or tracing introduces additional delay in the execution of code. Therefore, carrying out diagnosis should not affect the performance site.&lt;/p&gt;
&lt;h2&gt;Install xdebug&lt;/h2&gt;
&lt;p&gt;If you are using Centos / RHEL / Fedora easiest way to install xdebug will be installing from a repository EPEL:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;$ yum install php-pecl-xdebug&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you are using Ubuntu/Debian:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;$ apt-get install php5-xdebug&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Installation using the pecl:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;$ pecl install xdebug&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can also install xdebug from source, first download from the following address &lt;a href="http://xdebug.org/download.php"&gt;http://xdebug.org/download.php&lt;/a&gt; :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;$ tar xvzf xdebug-2.2.1.tgz&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;$ cd xdebug-2.2.1&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;$ phpize&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;$ ./configure --enable-xdebug&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;$ make &amp;amp;&amp;amp; make install&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Setup xdebug&lt;/h2&gt;
&lt;p&gt;Basic setup would be to simply connect the newly installed extensions in the file php.ini. This file is necessary to check for the string:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;zend_extension = /path/to/xdebug.so&lt;br /&gt;
xdebug.default_enable = 0&lt;br /&gt;
xdebug.overload_var_dump = 0&lt;br /&gt;
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If the string has not been added to the php.ini or in one of the header files, such as /etc/php.d/xdebug.ini, you must do it manually. Then restart the web server.&lt;/p&gt;
&lt;p&gt;After  webserver restart, site developers can use xdebug. The first two directives we specifically disable the advanced display of call stack when an error occurs and the redefinition of the standard function var_dump (). Despite the fact that this is a great functionality, helping to develop, it changes (even slightly) the behavior of the site code, which shouldn't happen.&lt;/p&gt;
&lt;h2&gt;Getting to the analysis: Trace function calls&lt;/h2&gt;
&lt;p&gt;The most important and useful method for the diagnosis of the site and identify problem areas - this trace function calls. If you access any chosen us page of the site will be launched statistics collection functions, namely:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The start and end of code execution&lt;/li&gt;
&lt;li&gt;The order of execution&lt;/li&gt;
&lt;li&gt;Execution time of each function&lt;/li&gt;
&lt;li&gt;The memory usage of each function&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This invaluable information will help to determine reliably the "slow" section of code. In addition, it will be possible to determine the amount of memory consumed by a particular function.&lt;/p&gt;
&lt;p&gt;Before you start tracing define some variables that will help us to monitor and gather information needed to collect more data during runtime.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;xdebug.collect_params&lt;/strong&gt; indicates how much detail you need to gather information about the arguments of functions. 0 - minimum, information is not collected. 1 - information is collected on the number and type of arguments. 3 - information on the value of the arguments. 4 - complete information: type, name, value of the argument at the time of the transfer. The more information we want - the longer it will be traced.&lt;br /&gt;
&lt;strong&gt;xdebug.show_mem_delta&lt;/strong&gt; defines show or not to show the difference in the consumption of memory in the final report for each function call.&lt;br /&gt;
&lt;strong&gt;xdebug.trace_enable_trigger&lt;/strong&gt; enables or disables the ability to run a trace on demand.&lt;br /&gt;
&lt;strong&gt;xdebug.auto_trace&lt;/strong&gt; enables or disables the automatic start tracing for each access to the site pages.&lt;br /&gt;
&lt;strong&gt;xdebug.collect_assignments&lt;/strong&gt; include or not include in the record information about assigning values ​​to variables.&lt;br /&gt;
&lt;strong&gt;xdebug.collect_includes&lt;/strong&gt; include or not include in the record information about attached files.&lt;br /&gt;
&lt;strong&gt;xdebug.collect_return&lt;/strong&gt; includes or does not include a report of information on the values ​​returned by the function.&lt;br /&gt;
&lt;strong&gt;xdebug.trace_output_dir&lt;/strong&gt; specifies the directory in which to chip in reports.&lt;br /&gt;
&lt;strong&gt;xdebug.trace_output_name&lt;/strong&gt; generates a file name for the report.&lt;/p&gt;
&lt;p&gt;The essence of the method would be to run a trace only when the administrator wants it. Enable tracing on a permanent basis is not acceptable as it leads to increased consumption of resources during the execution of the code, and creates a lot of unnecessary reports.&lt;/p&gt;
&lt;p&gt;To tell the server that the administrator wants to run a trace function at the time of the query, it is necessary to pass a parameter XDEBUG_TRACE a GET or POST request, or to set a cookie with the same name. The cookie method seems more preferable because POST-send request is not always possible. And when using the GET could be a problem related to the fact that the address bar is often handled on the server with mod_rewrite or more aliases to call PHP-code. Therefore, our variable can not just reach the destination.&lt;/p&gt;
&lt;p&gt;Will gather as much information about sent variables, connected files and the difference in memory consumption between function calls. Store reports to / var / tmp. The other settings are the default. In the end, append the following line in php.ini:&lt;/p&gt;
&lt;p&gt;xdebug.trace_enable_trigger=1&lt;br /&gt;
xdebug.auto_trace=0&lt;br /&gt;
xdebug.collect_params=4&lt;br /&gt;
xdebug.show_mem_delta=1&lt;br /&gt;
xdebug.trace_output_dir=/var/tmp&lt;/p&gt;
&lt;p&gt;And restart the web server. For the analysis lets take the following sample code:&lt;/p&gt;

&lt;div class="wp_syntax"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="code"&gt;&lt;pre class="php" style="font-family:monospace;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;?php&lt;/span&gt;
&lt;span style="color: #b1b100;"&gt;require&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;quot;config.inc&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&lt;span style="color: #b1b100;"&gt;require&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;quot;class/db.php&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #b1b100;"&gt;for&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$i&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; &lt;span style="color: #000088;"&gt;$i&lt;/span&gt; &lt;span style="color: #339933;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;6&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; &lt;span style="color: #000088;"&gt;$i&lt;/span&gt;&lt;span style="color: #339933;"&gt;++&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
        show_num&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$i&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #000088;"&gt;$v&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
alloc_array&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;1024&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #000088;"&gt;$db&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; DB&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #004000;"&gt;Get&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;mysql&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; HOST&lt;span style="color: #339933;"&gt;,&lt;/span&gt; USER&lt;span style="color: #339933;"&gt;,&lt;/span&gt; PASS&lt;span style="color: #339933;"&gt;,&lt;/span&gt; NAME&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&lt;span style="color: #000088;"&gt;$db&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;connect&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #b1b100;"&gt;echo&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;quot;finished&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt; show_num&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$i&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
        &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$i&lt;/span&gt; &lt;span style="color: #339933;"&gt;%&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;2&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; ? show_odd&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$i&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #339933;"&gt;:&lt;/span&gt; show_even&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$i&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt; show_odd&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$i&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
        &lt;span style="color: #b1b100;"&gt;echo&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;quot;odd: &lt;span style="color: #006699; font-weight: bold;"&gt;$i&lt;/span&gt;&amp;lt;br&amp;gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt; show_even&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$i&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
        &lt;span style="color: #b1b100;"&gt;echo&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;quot;even: &lt;span style="color: #006699; font-weight: bold;"&gt;$i&lt;/span&gt;&amp;lt;br&amp;gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        &lt;span style="color: #990000;"&gt;sleep&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt; alloc_array&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$size&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
        &lt;span style="color: #000000; font-weight: bold;"&gt;global&lt;/span&gt; &lt;span style="color: #000088;"&gt;$v&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span style="color: #b1b100;"&gt;for&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$i&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; &lt;span style="color: #000088;"&gt;$i&lt;/span&gt; &lt;span style="color: #339933;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: #000088;"&gt;$size&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; &lt;span style="color: #000088;"&gt;$i&lt;/span&gt;&lt;span style="color: #339933;"&gt;++&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
                &lt;span style="color: #000088;"&gt;$v&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000088;"&gt;$i&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
&lt;span style="color: #000000; font-weight: bold;"&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Imagine that a user tried to open the page in the browser, which is responsible for the code. Page loaded more than ten seconds, which is very long! Our goal is to understand why.&lt;/p&gt;
&lt;p&gt;As mentioned earlier, it is necessary to set a variable cookie XDEBUG_TRACE. Usually cookie variables for a particular domain set by the server to the client browser by passing HTTP-header Set-Cookie or are already installed on the client side script JavaScript.&lt;/p&gt;
&lt;p&gt;Copy this code to browser address line after you open site page. This will setup new cookin in context of loaded site:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;javascript:document.cookie=«XDEBUG_TRACE=1»&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Make a request to the page, and look forward to the end of the request. Next, look for the server in the directory /var/tmp for corresponding trace-file. Let's look at the results:&lt;/p&gt;
&lt;pre&gt;TRACE START [2012-09-25 11:19:54]
    0.0005     645152  +645152   -&amp;gt; {main}() /var/www/test.php:0
    0.0007     649296    +4144     -&amp;gt; require(/var/www/config.inc) /var/www/test.php:4
    0.0007     649504     +208       -&amp;gt; define('HOST', '10.1.1.1') /var/www/config.inc:3
    0.0008     649536      +32       -&amp;gt; define('NAME', 'db') /var/www/config.inc:4
    0.0008     649568      +32       -&amp;gt; define('USER', 'u0') /var/www/config.inc:5
    0.0008     649600      +32       -&amp;gt; define('PASS', 'ps') /var/www/config.inc:6
    0.0012     695728   +46128     -&amp;gt; require(/var/www/class/db.php) /var/www/test.php:5
    0.0013     694736     -992     -&amp;gt; show_num($i = 1) /var/www/test.php:8
    0.0013     694736       +0       -&amp;gt; show_odd($i = 1) /var/www/test.php:21
    0.0013     694864     +128     -&amp;gt; show_num($i = 2) /var/www/test.php:8
    0.0013     694864       +0       -&amp;gt; show_even($i = 2) /var/www/test.php:21
    0.0014     694960      +96         -&amp;gt; sleep(1) /var/www/test.php:30
    1.0033     694864      -96     -&amp;gt; show_num($i = 3) /var/www/test.php:8
    1.0034     694864       +0       -&amp;gt; show_odd($i = 3) /var/www/test.php:21
    1.0034     694864       +0     -&amp;gt; show_num($i = 4) /var/www/test.php:8
    1.0034     694864       +0       -&amp;gt; show_even($i = 4) /var/www/test.php:21
    1.0035     694960      +96         -&amp;gt; sleep(1) /var/www/test.php:30
    2.0047     694864      -96     -&amp;gt; show_num($i = 5) /var/www/test.php:8
    2.0048     694864       +0       -&amp;gt; show_odd($i = 5) /var/www/test.php:21
    2.0048     695224     +360     -&amp;gt; alloc_array($size = 1024) /var/www/test.php:13
    2.0057     843024  +147800     -&amp;gt; DB::Get($type = 'mysql', $host = '10.1.1.1', $user = 'u0', $pass = 'ps', $db = 'db') /var/www/test.php:15
    2.0057     843664     +640       -&amp;gt; absDB-&amp;gt;__construct($host = '10.1.1.1', $user = 'u0', $pass = 'ps', $db = 'db') /var/www/class/db.php:10
    2.0058     843664       +0         -&amp;gt; DB-&amp;gt;__construct($host = '10.1.1.1', $user = 'u0', $pass = 'ps', $db = 'db') /var/www/class/db.php:36
    2.0058     844000     +336           -&amp;gt; DB-&amp;gt;build() /var/www/class/db.php:19
    2.0058     844016      +16     -&amp;gt; absDB-&amp;gt;connect() /var/www/test.php:16
    2.0058     844368     +352       -&amp;gt; mysqli_connect('10.1.1.1', 'u0', 'ps', 'db') /var/www/class/db.php:47
   11.0164       8432
TRACE END   [2012-09-25 11:20:05]&lt;/pre&gt;
&lt;p&gt;In the first and last line of the report displays the time and the beginning of the end of the query, respectively. From this data it follows that the code was executing 11 seconds. The report also displays the order of calls all the functions in the code with their nesting. The first column indicates the total run times in seconds at the time of the function call, the second column shows the memory usage in bytes and at the time of the function call. The third column - the difference in memory consumption caused by the previous function. The remaining columns show the function name, file name and line number in which it was called.&lt;/p&gt;
&lt;p&gt;Let's try to understand what causes slow performance of code. Above all in the eye catches a long work function &lt;strong&gt;mysqli_connect ()&lt;/strong&gt;, which executes for almost 9 seconds. Obviously, there are problems accessing the remote server. Note that this function is called through several layers of abstraction and classes. For many frameworks - this is a common thing. In addition, the delay is a function of the sleep (), which is called a user-defined function show_even ().&lt;/p&gt;
&lt;p&gt;As for memory consumption, we see a sharp jump over 140kb after calling UDF alloc_array (), as well as a large memory allocation at the beginning of code execution.&lt;/p&gt;
&lt;p&gt;We see all the information about the arguments passed to all functions, so the developer will be able to compare these reports with the source code.&lt;/p&gt;
&lt;h2&gt;Code profiling&lt;/h2&gt;
&lt;p&gt;It is worth mentioning another opportunity provided by xdebug to find bottlenecks in your code, and that the server administrator can use without modifying the code of the site. This is profiling.&lt;/p&gt;
&lt;p&gt;Profiling runs similar to the start the trace functions, the cookie variable name. Instead XDEBUG_TRACE used XDEBUG_PROFILE. As a result, we get the profiling data file, which can be recognized from the utility callgrind_annotate vallgrind, and can also be displayed graphically using a utility KCacheGrindpod WinCacheGrind or KDE on Windows. KCacheGrind among them - the richest in functionality.&lt;/p&gt;
&lt;p&gt;Configure the profiling on request to the directives of the same directives trace functions:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;xdebug.profiler_enable=0&lt;br /&gt;
xdebug.profiler_enable_trigger=1&lt;br /&gt;
xdebug.profiler_output_dir=/var/tmp&lt;/p&gt;&lt;/blockquote&gt;
</description>
    </item>
    <item rdf:about="http://a32.me/2013/05/reading-directory-list-new-php5-way/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-05-08T20:27:18+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>Reading directory list – new PHP5 way</title>
        <link>http://a32.me/2013/05/reading-directory-list-new-php5-way/</link>
        <description>&lt;p&gt;It has been long time for using &lt;strong&gt;opendir&lt;/strong&gt;, &lt;strong&gt;readdir&lt;/strong&gt; functions or even &lt;strong&gt;scandir&lt;/strong&gt; for reading directory listing from the disk.  Even myself still using it when in need.&lt;/p&gt;
&lt;p&gt;Its time to update your snipped library with &lt;strong&gt;new&lt;/strong&gt; PHP5 object oriented code. This is definitely not a new new thing, but still I want to make an article on it to attract more users to use this feature.&lt;/p&gt;
&lt;p&gt;&lt;span id="more-3856"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;Retrieve directory listing&lt;/h2&gt;
&lt;p&gt;Using new Iterator thing&lt;/p&gt;

&lt;div class="wp_syntax"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="code"&gt;&lt;pre class="php" style="font-family:monospace;"&gt;&lt;span style="color: #000088;"&gt;$directory&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; DirectoryIterator&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;/tmp/mystuff&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&lt;span style="color: #b1b100;"&gt;foreach&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$directory&lt;/span&gt; &lt;span style="color: #b1b100;"&gt;as&lt;/span&gt; &lt;span style="color: #000088;"&gt;$entry&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
   &lt;span style="color: #666666; font-style: italic;"&gt;// Do your stuff here&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The good thing here is that&lt;strong&gt; $entry&lt;/strong&gt; is an object and you can use some useful methods like&lt;/p&gt;

&lt;div class="wp_syntax"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="code"&gt;&lt;pre class="php" style="font-family:monospace;"&gt;&lt;span style="color: #666666; font-style: italic;"&gt;// Checks if entry is regular file, this way you skip '.' or '..' entries&lt;/span&gt;
&lt;span style="color: #000088;"&gt;$entry&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;isFile&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; 
&amp;nbsp;
&lt;span style="color: #666666; font-style: italic;"&gt;// Checks if entry is a directory&lt;/span&gt;
&lt;span style="color: #000088;"&gt;$entry&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;isDir&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;  
&amp;nbsp;
&lt;span style="color: #666666; font-style: italic;"&gt;// Get FULL path including filename, for passing to processing function&lt;/span&gt;
&lt;span style="color: #000088;"&gt;$entry&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #004000;"&gt;getPathname&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;As well as others like $entry-&amp;gt;getOwner(), getPerms, getSize, isWritable&lt;/p&gt;
&lt;h2&gt;Retrieve recursive directory listing&lt;/h2&gt;
&lt;p&gt;Another magic feature it is easy to convert code above to do recursive directory listing, look&lt;/p&gt;

&lt;div class="wp_syntax"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="code"&gt;&lt;pre class="php" style="font-family:monospace;"&gt;&lt;span style="color: #000088;"&gt;$directory&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; RecursiveDirectoryIterator&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;/tmp/mystuff&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&lt;span style="color: #b1b100;"&gt;foreach&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; RecursiveIteratorIterator&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$directory&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #b1b100;"&gt;as&lt;/span&gt; &lt;span style="color: #000088;"&gt;$entry&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
   &lt;span style="color: #666666; font-style: italic;"&gt;// Do your stuff here&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;See more docs on &lt;a href="http://www.php.net/manual/en/recursiveiteratoriterator.construct.php" target="_blank"&gt;RecursiveDirectoryIterator&lt;/a&gt;, it has second parameter to control what is included in final list.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://a32.me/ru/2013/05/ja-prochel-napoleon-hill-dumaj-i-bogatej/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-05-06T17:03:19+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>Я прочел: Наполеон Хилл – “Думай и богатей”</title>
        <link>http://a32.me/ru/2013/05/ja-prochel-napoleon-hill-dumaj-i-bogatej/</link>
        <description>&lt;p&gt;Точнее я ее прослушал в виде аудиокниги, не смог найти в формате fb2. Такой формат оказался даже полезным в моменты когда читать неудобно: дорога на работу, обед, прогулка. Жаль в аудиокниге невозможно выделить цитаты, многие отрывки я бы процитировал.&lt;/p&gt;
&lt;p&gt;Затрагиваются многие аспекты личного роста, отношений между людьми, самоорганизации, мотивации. В целом книга понравилась, рекомендуется к прочтению.&lt;/p&gt;
&lt;p&gt;&lt;span id="more-3839"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Аннотация&lt;/p&gt;
&lt;p&gt;Пожалуй, самая значимая и авторитетная книга в мире - руководство по обретению успеха, богатства, жизненной энергии преодоления и целеустремленности. На протяжении 70 лет "Думай и Богатей!" считается классическим учебником по созданию богатства. В каждой главе Наполеон Хилл раскрывает секреты добывания денег, пользуясь которыми тысячи людей приобрели, приумножили и продолжают приумножать свое состояние, одновременно развивая и обогащая свой личностный потенциал.Автор потратил на интервью с миллионерами 30 лет своей жизни и, досконально изучив вопрос, вывел формулу определенных правил успеха, благодаря которой вы можете понять и проработать свои слабые стороны и выйти на новый уровень жизни.&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://a32.me/ru/2013/05/monreal-pervye-shagi/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-05-04T23:05:39+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>Монреаль – первые шаги</title>
        <link>http://a32.me/ru/2013/05/monreal-pervye-shagi/</link>
        <description>&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2668.jpg"&gt;&lt;img class="alignleft" alt="IMG_2668" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2668-1024x768.jpg" width="198" height="148" /&gt;&lt;/a&gt;19 марта 2013 года, первое утро в Монреале. Я еще не полностью привык к новому времени и просыпаюсь в 4 утра, есть время написать в блог. За окном идет снег. Я оттягивал отъезд сколько мог, наделся что приедем уже в весне, не судьба.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span id="more-3584"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;На первый день запланирована куча дел. Зима зимой, а двигаться надо. После завтрака выбираемся наружу, снега сантиметров 30 см, и еще метет.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2668.jpg"&gt;&lt;img alt="IMG_2668" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2668-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Пробираемся между припаркованными машинами и идем в сторону улицы Sherbook.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2672.jpg"&gt;&lt;img alt="IMG_2672" src="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2672-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;На основных улицах снег  уже убран. Техники работает много, шныряет туда сюда. Трактора для дорого и  небольшие снегоуборщики размером с газонокосилку.&lt;/p&gt;
&lt;p&gt;Если неудачно припарковался, то придется откапывать свою машину после такого трактора. Многие возят лопаты и лопатки, как раз для таких случаев.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2675.jpg"&gt;&lt;img alt="IMG_2675" src="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2675-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Вообщем снег не мешает нам добраться до банка, который был в пешей близости.&lt;/p&gt;
&lt;h2&gt;Открытие счета&lt;/h2&gt;
&lt;p&gt;Почему важен счет? По нескольким причинам. Положить привезенную наличку в банк, так надежнее. Открыть карточки, опять же удобнее пользоваться.  Получить кредитку и начать кредитную историю. Реквизиты счета для подачи на детское пособие.&lt;/p&gt;
&lt;p&gt;Еще до приезда, прочитав форумы,  я выбрал TD (TorontoDominion Canada Trust Bank). Хорошие отзывы и  нормальный интернет банк.&lt;/p&gt;
&lt;p&gt;В банке нам повезло что был свободный финансовый консультант. Если бы он был занят, могли бы ждать час-два. Лучше записаться на встречу заранее по телефону и там же уточнить какие нужны документы.&lt;/p&gt;
&lt;p&gt;Вторая  проблема, для открытия счета надо подтверждение своего адреса. Так как мы вчера приехали, соответственно ничего у нас не было  Затем я вспомнил про подтверждение брони нашей квартиры с сайта roomorama.com. Сбегал в интернет кафешку, распечатал письмо с Gmail. И чудо, все прошло!&lt;/p&gt;
&lt;p&gt;Я открыл себе текущий счет(Value Plus), на который сразу дали Access Card.  Это такая дебетовая, безымянная Visa/Interac  карточка, которой сразу можно пользоваться для покупок или в банкомате. Также написал заявление на открытие кредитной карты, для этого необходимо заморозить  лимит на сберегательном счете, типа гарантия кредита.&lt;/p&gt;
&lt;p&gt;Еще дали аж 6 чеков. Я ими за квартиру плачу. Забавно выписывать чеки. Когда твой чек обналичивают, его видно через интернет банк в сканированном виде, технологии блин.&lt;/p&gt;
&lt;p&gt;Дела в Канаде быстро не делаются, все банковские дела заняли почти 2 часа!!! Плюс был в том, что я все время сидел в удобном кресле в кабинете, а все дела делал консультант &lt;img src='http://cdn4.a32.me/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /&gt;  Минус в том что Денис успел провертеть дырку в мозгу жены во время ожидания.&lt;/p&gt;
&lt;h2&gt;Получение SIN&lt;/h2&gt;
&lt;p&gt;В первый же день успели получить номер SIN или Social Insurance Number. Требуется много где, делается очень просто. Выбираете ближайший Canada Service по этому списку &lt;a href="http://www.servicecanada.gc.ca/cgi-bin/sc-srch.cgi?app=lst&amp;amp;pv=qc&amp;amp;ot=&amp;amp;ln=fra"&gt;http://www.servicecanada.gc.ca/cgi-bin/sc-srch.cgi?app=lst&amp;amp;pv=qc&amp;amp;ot=&amp;amp;ln=fra &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Мы поехали в тот который в даунтауне. Тут уже надо ехать на метро! Система простая, покупаем одноразовые билетики за $3 или сразу на две поездки за $5, на троих ~$15 в обе стороны. Расходы на транспорт были самой большой статьей в первую неделю.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Для детей до 12 лет: &lt;/strong&gt;В субботу, воскресенье и национальные праздники проезд бесплатен. В сопровождении взрослого конечно! &lt;a href="http://www.stm.info/English/info/a-famille.htm" target="_blank"&gt;Тут больше деталей&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;А вы знали что поезда метро в Монреале ездят на резиновых колесах?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/05/50546136_b729b4c9ca_z.jpg"&gt;&lt;img class=" wp-image-3870 alignnone" alt="50546136_b729b4c9ca_z" src="http://cdn3.a32.me/wp-content/uploads/2013/05/50546136_b729b4c9ca_z-300x225.jpg" width="550" /&gt;&lt;/a&gt; &lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/05/320238496_a2dd164d66_z.jpg"&gt;&lt;img alt="320238496_a2dd164d66_z" src="http://cdn1.a32.me/wp-content/uploads/2013/05/320238496_a2dd164d66_z-300x225.jpg" width="550" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Даунтаун впечатляет&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/05/IMG_2691.jpg"&gt;&lt;img alt="IMG_2691" src="http://cdn1.a32.me/wp-content/uploads/2013/05/IMG_2691-1024x767.jpg" width="550" height="411" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/05/IMG_2696.jpg"&gt;&lt;img alt="IMG_2696" src="http://cdn3.a32.me/wp-content/uploads/2013/05/IMG_2696-767x1024.jpg" width="550" height="734" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Быстро находим нужное здание и сам офис внутри, везде есть указатели. На ресепшене нас записывают в очередь и предлагают подождать в зале ожидания.&lt;/p&gt;
&lt;p&gt;Ждем минут 10. Молдоване в Канаде &lt;img src='http://cdn4.a32.me/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/05/IMG_2677.jpg"&gt;&lt;img alt="IMG_2677" src="http://cdn4.a32.me/wp-content/uploads/2013/05/IMG_2677-1024x767.jpg" width="550" height="411" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Затем приглашают по имени, еще за 10 минут девушка оформляет наши номера. Из документов нужны паспорта и confirmation of permanent resident. Сами карточки пришли через 2 недели. Однако сам SIN номер дают сразу и можно пользоваться.&lt;/p&gt;
&lt;p&gt;Возвращаясь обратно случайно наши подземный город. Оказывается почти под всем центром есть подземный этаж или два, который соединяет все здания, их вестибюли и метро. Везде магазины, бутики, кафешки итд.  Есть и такие залы&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/05/IMG_2683.jpg"&gt;&lt;img alt="IMG_2683" src="http://cdn4.a32.me/wp-content/uploads/2013/05/IMG_2683-767x1024.jpg" width="550" height="734" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;На выходе попадаем в первый супер маркет - IGA. Цена на буханку хлеба в $5 немного шокирует, все остальное примерно как и у нас в Молдове. Спешу успокоить, сейчас мы хлеб берем по $2 &lt;img src='http://cdn4.a32.me/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;h2&gt;Карты OPUS&lt;/h2&gt;
&lt;p&gt;На второй день купили проездные карты ОПУС, продаются на любой станции метро в кабинке. Сама карта стоит $6. Карты позволяет покупать абонементы. Так как была середина недели, вместо недельного купил на 10 поездок.&lt;/p&gt;
&lt;p&gt;На ребенка оформили специальную льготную карту OPUS с фотографий. На станции метро Berri-UQAM есть photo-service. Идти по указателям. Показываете паспорт ребенка, 2 минуты и карточка у вас. Тариф примерно вполовину от взрослого.&lt;/p&gt;
&lt;h2&gt;Сим карта&lt;/h2&gt;
&lt;p&gt;Продаются далеко не на каждом углу, как у нас, надо знать где искать.  Я нашел в подземном городе на метро McGill. На перекрестках стоят островки где можно купить карточки всех операторов.&lt;/p&gt;
&lt;p&gt;Самый выгодный получается Сhattr. Цена вопроса - $20 за симку, $25 в месяц за безлимитные звонки по Монреалю  Удобно, потому что звонить надо много. Реально дешевле я не видел, пакеты начинаются от $50 в мес и выше.&lt;/p&gt;
&lt;p&gt;На радостях зашли в BurgerKing. Нездоровая и вкусная еда поднимает настроение!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/05/IMG_2694.jpg"&gt;&lt;img alt="IMG_2694" src="http://cdn2.a32.me/wp-content/uploads/2013/05/IMG_2694-1024x767.jpg" width="550" height="411" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Медстраховка&lt;/h2&gt;
&lt;p&gt;Мед страховка начинает действовать через 3 месяца после приезда, считая по календарным месяцам. Так как мы приехали почти в конце Марта, значит ждать два месяца.&lt;/p&gt;
&lt;p&gt;Сам офис нашли быстро. Ориентироваться легко, на &lt;strong&gt;каждом&lt;/strong&gt; перекрестке, на столбе есть таблички с названием улиц. Номера написаны на домах. Не стоит пугаться тысячных номеров. Между 6600 домом и 7000 может быть 100 метров.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/05/IMG_2730.jpg"&gt;&lt;img alt="IMG_2730" src="http://cdn2.a32.me/wp-content/uploads/2013/05/IMG_2730-1024x767.jpg" width="550" height="411" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;На первом этаже на ресепшене записываемся в очередь и получаем квиток с номером. Затем вызывают на третий этаж, где дают другой билетик с номером очереди и табло показывает какой номер в какую кабинку идет.&lt;/p&gt;
&lt;p&gt;Оформляемся все за 15 минут. Задают вопрос, можно использовать ваши органы после смерти, так и не решили, вопрос неожиданный.&lt;/p&gt;
&lt;p&gt;Еще $20 за фотографирование, тут же на месте. На все  ушел час.&lt;/p&gt;
&lt;p&gt;Для страховки необходимо подтверждение своего адреса проживания. То есть наши документы приняли, но сказали отправить копию Lease (контракт на съем квартиры) до 4 мая. &lt;strong&gt;Иначе получение страховки затянется.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Домой пошли пешком, по дороге зашли в супер маркет, PA, цены сильно дешевле чем в IGA. Не все так плохо, но чек в 50 баксов все равно &lt;img src='http://cdn4.a32.me/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /&gt;  Про магазины напишу отдельный пост.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/05/IMG_2734.jpg"&gt;&lt;img alt="IMG_2734" src="http://cdn4.a32.me/wp-content/uploads/2013/05/IMG_2734-1024x695.jpg" width="550" height="373" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Школа&lt;/h2&gt;
&lt;p&gt;Как сняли квартиру, сразу пошли записывать Дениса в школу. Это делается в &lt;a href="http://www.csdm.qc.ca/"&gt;Commission scolaire de Montréal&lt;/a&gt; (3737 Sherbrook Est, Montréal, QC H1X 3B3).&lt;/p&gt;
&lt;p&gt;Приехали, все по стандартной схеме. Дают квиток и ожидаешь своей очереди. Через 20 минут приглашают на собеседование. Из доков понадобились: PR, лиз, и вроде еще паспорт. На все ушло 30 минут.&lt;/p&gt;
&lt;p&gt;Первый день в школе выпал на 10 апреля. Всю информацию о школе, классе, учителе прислали письмом через неделю.&lt;/p&gt;
&lt;h2&gt;Язык общения&lt;/h2&gt;
&lt;p&gt;Так как мой франсе оставляет желать лучшего, я общаюсь на английском. Я не испытываю вообще проблем или каких-то барьеров. В Монреале на английском говорят все и везде. Во всех службах, магазинах, сервисах, банках, обычные люди.&lt;/p&gt;
&lt;p&gt;В поисках квартиры я обзвонил наверное 50 номеров, англе без проблем.&lt;/p&gt;
&lt;p&gt;В районе где мы сейчас живем (Hampstead/NDG) на улице, в магазине, чаще слышна английская речь.&lt;/p&gt;
&lt;h2&gt;Поиск квартиры&lt;/h2&gt;
&lt;p&gt;Временную квартиру я снял на две недели, как я уже говорил через сайт http://roomorama.com. Думал что за две недели реально найти что-то постоянное, ну или если что продлить эту. Но вышло все иначе.&lt;/p&gt;
&lt;p&gt;Квартиру я начал искать только в конце первой недели в пятницу. Делая документы мы совсем забыли что нам надо найти где жить. Теперь я бы сделал наоборот, сначала квартира потом доки.&lt;/p&gt;
&lt;p&gt;Итак вооружившись сайтами kijiji.ca и craigslist.com начал поиск и обзвон.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Проблема номер один&lt;/strong&gt;, в Канаде все делают заранее. Если сдается квартира, то это может быть с Июня или с Мая, но никак не с Апреля (через 2 недели). Это типа срочно и таких объявлений очень мало.&lt;/p&gt;
&lt;p&gt;Съездили и посмотрели несколько вариантов в Cote-des-Naige в Saint-Laurent, NDG, Westmount и ничего не понравилось.  Или запахи малайзийской кухни, или комнаты уж совсем маленькие, или с транспортом проблема, или дорого &lt;img src='http://cdn4.a32.me/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Проблема номер два&lt;/strong&gt;, тут квартиры за один день не сдают. Приходишь смотришь квартиру, если нравиться, то заполняешь форму заявки (application form), где указываешь текущего лендлорда, два или три reference, разрешение на проверку вашей кредитной истории, итд. Вот такое заявление может рассматриваться &lt;strong&gt;неделю&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Если хотите снять квартиру в крутом кондо, то скорее всего вам, как вновь прибывшему откажут.&lt;/p&gt;
&lt;p&gt;Так как нет кредитной истории, то могут потребовать оплату за три месяца вперед, это незаконно. Также незаконно брать залог при подаче заявления. Но что делать, если квартира нравиться.&lt;/p&gt;
&lt;p&gt;Свою квартиру я нашел случайно. Поехал смотреть по объявлению - не понравилось. Когда шел обратно вижу на домах таблички - A LOUER с телефоном. Тут же звонишь, обычно интендант дома сразу покажет квартиру. Так можно в районе осмотреть 5-6 вариантов за час. Самый эффективный способ поиска.&lt;/p&gt;
&lt;p&gt;Выбор района непростая задача, чтение форумов не помогает, мнения сильно разнятся. Да и сами районы тоже, есть  ужасные места, а через 100 метров уже нормально.&lt;/p&gt;
&lt;p&gt;Лучше всего самому поехать, погулять, посмотреть какие люди живут. Хорошее подспорье это Google Maps в режиме StreetView, можно заранее глянуть что за район, сдаются ли квартиры (таблички прекрасно видно).&lt;/p&gt;
&lt;h2&gt;Жилье&lt;/h2&gt;
&lt;p&gt;Несколько фото разных домиков.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/05/IMG_2733.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3812" alt="IMG_2733" src="http://cdn3.a32.me/wp-content/uploads/2013/05/IMG_2733-1024x767.jpg" width="550" height="411" /&gt;&lt;/a&gt;   &lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/05/IMG_2774.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3815" alt="IMG_2774" src="http://cdn1.a32.me/wp-content/uploads/2013/05/IMG_2774-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/05/IMG_3435.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3874" alt="IMG_3435" src="http://cdn1.a32.me/wp-content/uploads/2013/05/IMG_3435-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt; &lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/05/IMG_2780.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3816" alt="IMG_2780" src="http://cdn3.a32.me/wp-content/uploads/2013/05/IMG_2780-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt; &lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/05/IMG_2781.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3817" alt="IMG_2781" src="http://cdn4.a32.me/wp-content/uploads/2013/05/IMG_2781-1024x528.jpg" width="550" height="283" /&gt;&lt;/a&gt; &lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/05/IMG_2783.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3818" alt="IMG_2783" src="http://cdn2.a32.me/wp-content/uploads/2013/05/IMG_2783-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Типичный домик в NDG, но в рент тут мало сдается.&lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/05/IMG_2784.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3819" alt="IMG_2784" src="http://cdn2.a32.me/wp-content/uploads/2013/05/IMG_2784-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Канадская технология. Заливают пеной, сверху обкладывают кирпичом или плиткой&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/05/IMG_2788.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3820" alt="IMG_2788" src="http://cdn1.a32.me/wp-content/uploads/2013/05/IMG_2788-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt; &lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/05/IMG_2789.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3821" alt="IMG_2789" src="http://cdn2.a32.me/wp-content/uploads/2013/05/IMG_2789-1024x757.jpg" width="550" height="406" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Хайвей&lt;br /&gt;
&lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/05/IMG_2794.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3822" alt="IMG_2794" src="http://cdn2.a32.me/wp-content/uploads/2013/05/IMG_2794-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Мебель&lt;/h2&gt;
&lt;p&gt;Мебель выставляется на улицу, можно неплохо обустроить квартиру. Чем лучше район, тем лучше то что выставляют &lt;img src='http://cdn4.a32.me/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn3.a32.me/wp-content/uploads/2013/05/IMG_2748.jpg"&gt;&lt;img alt="IMG_2748" src="http://cdn3.a32.me/wp-content/uploads/2013/05/IMG_2748-1024x736.jpg" width="550" height="395" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://a32.me/2013/04/tinydeal-blacklisted-do-not-buy-here-problem/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-04-02T01:21:55+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>Tinydeal – blacklisted, do not buy here</title>
        <link>http://a32.me/2013/04/tinydeal-blacklisted-do-not-buy-here-problem/</link>
        <description>&lt;p&gt;"The friend in need is friend indeed" which is so true what I am going to write about. In short, Tinydeal has bad client service and attitude.&lt;/p&gt;
&lt;p&gt;&lt;span id="more-3624"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt;I use internet shopping for a while and its very useful. When everything goes smooth: goods are in stock, mail delivers in time and in a whole - there is no place for worry.&lt;/p&gt;
&lt;p&gt;But in this business many things can go wrong and internet shops must be ready to handle this situation well, so customers are &lt;strong&gt;satisfied&lt;/strong&gt; and happy to shop again and again.&lt;/p&gt;
&lt;p&gt;This is definitely not a Tinydeal case.&lt;/p&gt;
&lt;p&gt;I ordered package for ~$33, &lt;b&gt;Order Date: &lt;/b&gt;11/12/2012, &lt;strong&gt;Status&lt;/strong&gt;: Shipped. Five (5) months passed and still no package. Standard response of support is: "let's wait for the news from post office" -  I received like 5 of them. Say goodbye to my money.&lt;/p&gt;
&lt;p&gt;Package was registered with tracking number which shows that it left Hong Kong but never arrived to country of destination.&lt;/p&gt;
&lt;p&gt;I &lt;strong&gt;do not trust&lt;/strong&gt; Tinydeal any more won't shop there and do not recommend it to anyone.&lt;/p&gt;
&lt;h2&gt;DX&lt;/h2&gt;
&lt;p&gt;Here is good example. I have exactly the same situation with &lt;a href="http://dx.com/" target="_blank"&gt;DX&lt;/a&gt; site, they lost my package around same time. After I contacted support I received two options below.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn3.a32.me/wp-content/uploads/2013/04/dx_good.png"&gt;&lt;img class="size-full wp-image-3626 alignnone" alt="dx_good" src="http://cdn3.a32.me/wp-content/uploads/2013/04/dx_good.png" width="697" height="274" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is &lt;strong&gt;service&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Sorry, TD.&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://a32.me/ru/2013/03/ja-prochel-robert-kijosaki-kvadrant-denezhnogo-potoka/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-26T06:32:04+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>Я прочел: Роберт Кийосаки – “Квадрант денежного потока”</title>
        <link>http://a32.me/ru/2013/03/ja-prochel-robert-kijosaki-kvadrant-denezhnogo-potoka/</link>
        <description>&lt;p&gt;Книга является скорее продолжением популярной книги &lt;a title="Я прочел: Роберт Кийосаки – “Богатый папа, Бедный папа”" href="http://a32.me/ru/2013/01/ja-prochel-robert-kijosaki-bogatyj-papa-bednyj-papa/"&gt;Богатый папа - бедный папа&lt;/a&gt;. Тут расширяется знание о том как стать богатым. На мой взгляд многовато воды и повторений, но встречаются очень правильные мысли.&lt;/p&gt;
&lt;p&gt;Рекомендуется к прочтению. Под катом сборник цитат, которые мне понравились.&lt;/p&gt;
&lt;p&gt;&lt;span id="more-3491"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Он считал, что глупо тратить свою жизнь, работая за деньги и притворяться, что деньги не важны&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Потому что у людей отличаются технические навыки и навыки быть успешным в каждом секторе. Вы должны изучить и способ мышления, требуемые сектором, чтобы добиться там истинного успеха.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Проблема состоит в том, что, если дантист имеет отпуск, то его доход – также. «В», владельцы бизнеса, могут уйти в отпуск навсегда, потому что они имеют систему, не работу.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Существует различие между богатыми и состоятельными людьми. Определение состоятельности: «Количество дней, которое Вы можете прожить, не работая физически, и продолжать поддерживать свой высокий уровень жизни».&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Чтобы получить большую финансовую безопасность, я предлагаю в дополнение к выполнению основной работы в секторах «Е» или «S», получать образование в секторах «В» или «I».&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Во времена больших экономических изменений всегда случаются большие перемещения богатства. Даже если Вы не имеете много денег, важно вложить свой капитал в свое образование... для того чтобы во время изменений Вы были бы лучше подготовлены к ним. Не позволяйте изменениям застать Вас врасплох.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Действительно работа Вашего босса не в том, чтобы делать Вас богатыми. Обязанность Вашего босса удостовериться, что Вы получаете зарплату. А ваша работа: чтобы стать богатым, если Вы хотите.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Единственное различие между богатым человеком и бедным человеком в том, что они делают в свое свободное время&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Если Вы сначала добились успеха как «В», то будете иметь лучший шанс развития в секторе «I».&lt;br /&gt;
«I» вкладывает капитал в «В». Если Вы сначала поймете смысл бизнеса, то сможете стать лучшим инвестором.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Ты можешь потерять две или три компании, прежде чем построишь одну успешную, которая останется и будет продолжать работать&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;«Успех – плохой учитель», – всегда говорил богатый папа, учимся лучше всего, когда проигрываем, так что не бойтесь неудачи. Неудача – часть процесса успеха. Вы не можете достичь успеха без неудачи. Так что неудачные люди – те, кто никогда не терпит неудачу.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Что Вы думаете обо мне – не мое дело. Самое важное – то, что я сам думаю о себе&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Вместо попытки экономить пенни, они могли бы потратить это время на изучение, как вложить капитал.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Проблема в том, что они покупают эти акции слишком поздно, потому что..., ли Вы получаете новости из газеты, то это слишком поздно.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Перестаньте ждать, когда появится «большое дело». Войдите в «игру» с «маленькими» делами. Не волнуйтесь, просто начните. Вы научитесь намного больше, как только пустите некоторые деньги в оборот..., хотя бы немного, чтобы начать.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;В хорошие экономические времена, настоящие капиталисты преуспевают. В плохие экономические времена, истинные капиталисты становятся даже более богатыми. Капиталисты знают, что экономический хаос означает новые возможности. Чаще других, они с самого начала принимают участие в поддержке проекта, изделия, компании или страны. Когда Вы читаете в газете, что в какой-то стране неприятности, война или бедствие, можете быть уверены, что истинный капиталист скоро там будет, или может быть уже там.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Средний человек – 95% покупает глазами и только 5 % умом, когда решает, куда вкладывать капитал.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Когда люди говорят мне, что вложение капитала опасно, я возражаю: «Вложение капитала не опасно. Быть необразованным опасно».&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Твоя прибыль создается не тогда, когда ты продаешь… а тогда, когда ты покупаешь&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Не в диете дело. Не она Вами руководит. Вами руководит тот, кем Вы хотите стать, придерживаясь этой диеты. Все же каждый год миллионы людей ищут совершенную диету, чтобы похудеть. Они сосредотачиваются на том, что они должны делать, а не на том, кем они должны быть. Диета не поможет, если не изменятся Ваши мысли&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Если Вы хотите быть богатыми, Вы должны «думать». Думай больше, чем другие люди из толпы. Если Вы делаете то, что каждый делает, то Вы закончите тем, что каждый имеет.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Плохой игрок в гольф с новым набором для игры в гольф – все еще плохой игрок в гольф.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;А быть взрослым – это значит делать то, что Вы должны, даже тогда, когда Вы не испытываете желание это делать.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Чтобы быть успешным как инвестор или владелец бизнеса, Вы должны быть эмоционально нейтральны как к победе, так и к потерям. Тогда у Вас не будут возникать эмоционально управляемые мысли, такие как опасение и жадность, формирующие Ваше мышление. Победы и потери – только часть игры.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Две инструкции берегли меня в это трудное время. Одной из них были слова моего богатого отца, которые он сказал, когда я был на краю срыва, почти готов все бросить и вернуться к прошлому: «Вы же всегда можете выйти..., так почему выходить сейчас?»&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Другая инструкция, которая часто оберегала меня во время продвижения, была такая: «Гиганты часто путешествуют и падают. Но червяки не падают, потому, что они только роют и ползают».&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Многие люди ищут кого-то, кого бы обвинить за свое тяжелое финансовое положение. Эти люди часто хотят обвинить богатых за собственные финансовые проблемы, не желая понимать, что это – часто их собственный недостаток информации касательно денег, которые являются основной причиной их тяжелого положения.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Для тех, кто думает над тем, чтобы перейти к «В» или «I» квадрантам, я рекомендую начать малый бизнес..., и вкладывать свое время. Можно браться за большее дело только тогда, когда Ваша уверенность и опыт будут гораздо выше в том деле. Помните, что единственное различие между делом на $80.000 и делом на $800.000 – это нуль.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;На первый взгляд, кажется, будто существуют законы для богатых и, отдельно, для обыкновенных людей. Но в действительности, законы – те же самые. Единственное различие – богатые используют законы для своего преимущества, в то время как бедные и средний класс не используют.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Слишком много людей зафиксированы на жизненной философии «разбогатей быстро». Этим людям я желаю удачи, потому что удача – это то, в чем они нуждаются.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Одной из целей Вашей собственной жизни может быть такая: учиться, чтобы быть более умным и сообразительным, чем большинство людей, даже, чем Ваш банкир.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Люди, которые не могут контролировать наличные деньги, работают на тех, кто может.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Посещайте финансовые семинары и занятия. (Я приписываю большую часть моего успеха курсу по торговле недвижимостью, который я прослушал, когда был молодым. Это мне стоило 385 долларов. Поскольку я действовал, это принесло мне прибыль в миллионы долларов за эти годы.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Подпишитесь на инвестиционные издания и изучайте их.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Выбирайте себе наставников мудро. Обращайте внимание на то, кто дает Вам советы. Если Вы хотите куда-то попасть, найдите кого-нибудь, кто там уже был.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Если Вы готовитесь, чтобы начать своё путешествие в поисках собственной прочной финансовой дорожки, я хотел бы предложить Вам те же самые слова поддержки, которые сказал мне богатый папа, когда я учился чему-то новому: «&lt;strong&gt;Будь готов к разочарованию&lt;/strong&gt;».&lt;/p&gt;
&lt;hr /&gt;
</description>
    </item>
    <item rdf:about="http://a32.me/2013/03/dynamicly-load-google-maps-v3/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-19T06:00:30+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>Dynamicly load Google Maps v3</title>
        <link>http://a32.me/2013/03/dynamicly-load-google-maps-v3/</link>
        <description>&lt;p&gt;Quite often pages are overloaded with 3rd party APIs or widgets and page loading time becomes a bottleneck in user experience. In my project I need google maps support, but only if user selects one particular tab.&lt;/p&gt;
&lt;p&gt;So how to load Google Maps V3 dynamicly, on button click or tab select&lt;/p&gt;
&lt;p&gt;&lt;span id="more-3327"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Main steps here are load maps API, wait for load, create map and wait for tiles to load.&lt;/p&gt;
&lt;h2&gt;Load maps API&lt;/h2&gt;
&lt;p&gt;First step is to load javascript API. One important thing here is &lt;strong&gt;callback&lt;/strong&gt; parameter. That function will be executed after API is fully loaded.&lt;/p&gt;

&lt;div class="wp_syntax"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="code"&gt;&lt;pre class="javascript" style="font-family:monospace;"&gt;$.&lt;span style="color: #660066;"&gt;ajax&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
   url&lt;span style="color: #339933;"&gt;:&lt;/span&gt; &lt;span style="color: #3366CC;"&gt;&amp;quot;http://maps.googleapis.com/maps/api/js?sensor=false&amp;amp;callback=MapApiLoaded&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;
   dataType&lt;span style="color: #339933;"&gt;:&lt;/span&gt; &lt;span style="color: #3366CC;"&gt;&amp;quot;script&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;
   timeout&lt;span style="color: #339933;"&gt;:&lt;/span&gt;&lt;span style="color: #CC0000;"&gt;8000&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;
   error&lt;span style="color: #339933;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;function&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
      &lt;span style="color: #006600; font-style: italic;"&gt;// Handle error here&lt;/span&gt;
   &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;Create map object and wait for full load&lt;/h2&gt;
&lt;p&gt;Next, define function &lt;strong&gt;MapApiLoaded&lt;/strong&gt;, good place to create map object and setup.&lt;/p&gt;

&lt;div class="wp_syntax"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="code"&gt;&lt;pre class="javascript" style="font-family:monospace;"&gt;&lt;span style="color: #000066; font-weight: bold;"&gt;function&lt;/span&gt; MapApiLoaded&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
   &lt;span style="color: #006600; font-style: italic;"&gt;// Create google map&lt;/span&gt;
   map &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;new&lt;/span&gt; google.&lt;span style="color: #660066;"&gt;maps&lt;/span&gt;.&lt;span style="color: #660066;"&gt;Map&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;$&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #3366CC;"&gt;'#gmap'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #CC0000;"&gt;0&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
      zoom&lt;span style="color: #339933;"&gt;:&lt;/span&gt;&lt;span style="color: #CC0000;"&gt;8&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;
      mapTypeId&lt;span style="color: #339933;"&gt;:&lt;/span&gt;google.&lt;span style="color: #660066;"&gt;maps&lt;/span&gt;.&lt;span style="color: #660066;"&gt;MapTypeId&lt;/span&gt;.&lt;span style="color: #660066;"&gt;ROADMAP&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;
      panControl&lt;span style="color: #339933;"&gt;:&lt;/span&gt;&lt;span style="color: #003366; font-weight: bold;"&gt;false&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;
      streetViewControl&lt;span style="color: #339933;"&gt;:&lt;/span&gt;&lt;span style="color: #003366; font-weight: bold;"&gt;false&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;
      mapTypeControl&lt;span style="color: #339933;"&gt;:&lt;/span&gt;&lt;span style="color: #003366; font-weight: bold;"&gt;true&lt;/span&gt;
   &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
   map.&lt;span style="color: #660066;"&gt;setCenter&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000066; font-weight: bold;"&gt;new&lt;/span&gt; google.&lt;span style="color: #660066;"&gt;maps&lt;/span&gt;.&lt;span style="color: #660066;"&gt;LatLng&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #339933;"&gt;-&lt;/span&gt;&lt;span style="color: #CC0000;"&gt;1.950106&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #CC0000;"&gt;29.873887999999965&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
   &lt;span style="color: #006600; font-style: italic;"&gt;// Add marker&lt;/span&gt;
&amp;nbsp;
   &lt;span style="color: #006600; font-style: italic;"&gt;// Trigger resize to correctly display the map&lt;/span&gt;
   google.&lt;span style="color: #660066;"&gt;maps&lt;/span&gt;.&lt;span style="color: #660066;"&gt;event&lt;/span&gt;.&lt;span style="color: #660066;"&gt;trigger&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;map&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #3366CC;"&gt;&amp;quot;resize&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
   &lt;span style="color: #006600; font-style: italic;"&gt;// Map loaded trigger&lt;/span&gt;
   google.&lt;span style="color: #660066;"&gt;maps&lt;/span&gt;.&lt;span style="color: #660066;"&gt;event&lt;/span&gt;.&lt;span style="color: #660066;"&gt;addListenerOnce&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;map&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #3366CC;"&gt;'idle'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;function&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
      &lt;span style="color: #006600; font-style: italic;"&gt;// Fire when map tiles are completly loaded&lt;/span&gt;
   &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

</description>
    </item>
    <item rdf:about="http://a32.me/ru/2013/03/kishinev-moskva-toronto-monreal/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-18T20:34:36+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>Кишинев  – Москва – Торонто – Монреаль: Я уехал</title>
        <link>http://a32.me/ru/2013/03/kishinev-moskva-toronto-monreal/</link>
        <description>&lt;p&gt;Оглядываясь назад, не знаю каким место я думал про такой маршрут. Слишком много потенциально не стыковочных мест могли превратить простой переезд в полный кошмар. А все желание сэкономить! Но все обошлось и получилось очень даже весело.&lt;/p&gt;
&lt;p&gt;Итак полетели..&lt;/p&gt;
&lt;p&gt;&lt;span id="more-3537"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Подъем в 03:30 утра и такси в аэропорт. Регистрируемся, багаж оформляют сразу до Торонто! Прощаемся с родными, надемся что не надолго. Проходим таможню и  паспортный контроль, внутренне ожидая какой-то пакости от родного государства - не отпустим вас, здесь будете всю жизнь мучаться ;)&lt;/p&gt;
&lt;p&gt;Погода хорошая, летная, посадка в Airbus компании AirMoldova проходит вовремя и быстро, практически сразу взлетаем.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://cdn3.a32.me/wp-content/uploads/2013/04/1.jpg"&gt;&lt;img class="aligncenter  wp-image-3792" alt="1" src="http://cdn3.a32.me/wp-content/uploads/2013/04/1.jpg" width="720" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;На завтрак компания AirMoldova кормит как на убой, супер булочками с сыром, вроде 2 лея такая стоит??&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn3.a32.me/wp-content/uploads/2013/04/301.png"&gt;&lt;img class="aligncenter size-full wp-image-3766" alt="301" src="http://cdn3.a32.me/wp-content/uploads/2013/04/301.png" width="350" height="350" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ну и ладно. Денис балдеет от полета, первый раз все таки. Он еще не в курсе что всего лететь  около 11 часов :)&lt;/p&gt;
&lt;p&gt;До Москвы добираемся нормально, проходим транзитный контроль и через 15 минут уже в зале вылета.  Сам аэропорт Домодедово явно не справляется с нагрузкой, негде присесть, с детьми все еще сложнее, места мало, все забито, надо проталкиваться. УЖОС.&lt;/p&gt;
&lt;p&gt;Погуляв и перекусив взятых с собой сандвичей (да-да, перекус надо брать с собой), двинулись на посадку. Еще с командировок, я всегда беру с собой пару батончиков сникерс. Очень калорийно и может спасти в непредвиденном случае.&lt;/p&gt;
&lt;p&gt;Садимся в наш Boeing 777 компании ТрансАэро. Самолет большой, у каждого свое кресло с телевизором и стерео системой, постоянно носят шампанское, ну как на картинке&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn3.a32.me/wp-content/uploads/2013/04/art-Qatar-Airways-Business-Class-620x349.jpg"&gt;&lt;img class="aligncenter size-full wp-image-3768" alt="art-Qatar-Airways-Business-Class-620x349" src="http://cdn3.a32.me/wp-content/uploads/2013/04/art-Qatar-Airways-Business-Class-620x349.jpg" width="620" height="349" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Классно? Но не в этот раз :)&lt;/p&gt;
&lt;p&gt;Компоновка кресел 2+5+2, Оля с Денисом где-то в середине у окна, я оказался в самом конце второго салона.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/04/6516512601_216727ed57_z.jpg"&gt;&lt;img class="aligncenter size-full wp-image-3769" alt="6516512601_216727ed57_z" src="http://cdn1.a32.me/wp-content/uploads/2013/04/6516512601_216727ed57_z.jpg" width="640" height="427" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Кормили неплохо, первый раз горячий обед, второй тоже горячий - ужин. Хотя по времени ужин получился тоже как обед. Вылет в 12:40, прилет в 15:40 в пути 9 часов ;)&lt;/p&gt;
&lt;p&gt;Обслуживание хреновое. Сервису по русски еще есть куда расти. Мой диалог со стюардессой:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(Разговариваю с женой, а сын спит головой между креслами, проходит стюардесса)&lt;/em&gt;&lt;br /&gt;
- Вы не могли бы дать подушку ребенку?&lt;br /&gt;
- Вы подождите, скоро будут всем раздавать.&lt;br /&gt;
(Через час ситуация повторяется, опять стою разговариваем, малый так и спит)&lt;br /&gt;
- Девушка, подскажите вы обещали подушки.&lt;br /&gt;
&lt;em&gt;(Стюардесса разворачивается и начинает от меня удаляться. Может не услышала. Я касаюсь ее плеча)&lt;/em&gt;&lt;br /&gt;
- Молодой человек, зачем вы меня трогаете??? Ааа, подушки, так они уже закончились.&lt;/p&gt;
&lt;p&gt;Сам самолет замученный и старый,  ЖК экраны в спинках кресла работали в случайном порядке и показывали только направление полета.&lt;/p&gt;
&lt;p&gt;Длительность полёта 9 часов, пролетали над Исландией, Гренландией. Так как была ранняя весна, внизу все было белое и замерзшее. Сама Канада напомнила мне полет в Хабаровск над русской Сибирью.&lt;/p&gt;
&lt;p&gt;Наверное как-то так мы смотрелись с земли&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/FlyopmaalingGroenland.jpg"&gt;&lt;img class="aligncenter size-full wp-image-3771" alt="FlyopmaalingGroenland" src="http://cdn4.a32.me/wp-content/uploads/2013/04/FlyopmaalingGroenland.jpg" width="442" height="326" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;В Торонто отличная погода, ясно,  очень солнечно, хотя и немного морозно.&lt;/p&gt;
&lt;h2&gt;Лендинг&lt;/h2&gt;
&lt;p&gt;Сразу при выходе из самолета в терминал проверка паспортов. Я говорю эмигрант - Upstaris please. Затем длинные коридоры  в которых есть опасные двери которые работают только в одну сторону.&lt;/p&gt;
&lt;p&gt;Далее паспортный контроль, становимся в очередь как и все. Паспорта у нас проверяет настоящий индеец, как в американских фильмах, очень колоритный чувак.  Показываем паспорта с визами и карточку визитера заполненную еще  в самолете.&lt;/p&gt;
&lt;p&gt;После контроля становимся в очередь таких же нувоз ариван на процесс лендинга. Все стоят и держат папочки с заветными документами, на которые было потрачено там много сил. Путевками в новую жизнь и надеждами найти лучшую родину.&lt;/p&gt;
&lt;p&gt;Офицер четко следит что-бы всем было понятно куда становиться, мамам с детьми предлагает присесть в зале ожидания.&lt;/p&gt;
&lt;p&gt;Всего в очереди стоит минут 30, попадаем к мадам, она просит документы (confirmation of permanent resident, паспорта, CSQ) и подождать минут 10 в зале.  Далее спрашивает адрес куда выслать карточку ПР. Через 5 минут расписываемся  и все лендинг пройден ;)&lt;/p&gt;
&lt;p&gt;Самая главная бумага с этого момента confirmation of permanent resident с подписью офицера. Печатей здесь нет, они не нужны, подпись является самым важным гарантом, во как ;)&lt;/p&gt;
&lt;p&gt;На вопросы из зала отвечаю: никого не интересовало где мы собираемся жить, можно было остаться и в Торонто. CSQ спросили потому что мы ехали в Монреаль.&lt;/p&gt;
&lt;h2&gt;Welcome to Canada!&lt;/h2&gt;
&lt;p&gt;В небольшой комнатке выдают сумочку с буклетами и брошюрами по первым шагам на новом месте.&lt;/p&gt;
&lt;p&gt;Сразу выходим в зал получения багажа, тут то многие и офигевают куда идти. Я как матерый путешественник, не теряюсь. Первое смотрю на табло где наш рейс и где выдача багажа. Затем подхожу к автомату с тележками, &lt;strong&gt;вот где и нужна монета в 2 канадских доллара&lt;/strong&gt;, и беру тележку.&lt;/p&gt;
&lt;p&gt;Пока мы лендились багаж уже давно был снят с ленты, грузим на тележку и двигаем к выходу. Кто-то спрашивает, это все ваши вещи и ничего за вами не следует, я говорю - да. И все, выходим из аэропорта. Тут то я и вспомнил про заполненные с такими муками таможенные декларации, которые вообщем и не пригодились.&lt;/p&gt;
&lt;p&gt;Выходим в фойе, карточка VISA обязательно с собой, покупаю нам водичку ;) Первая покупка в Канаде. В аэропорту Торонто бесплатный wifi, активирую свой канадский номер SIP и  звоню другу, который приехал нас встречать.&lt;/p&gt;
&lt;p&gt;Какие огромные тачки! Как будто взяли и поставили зум на 150% от обычного. Миниваны как танки, такси с БТР размером.&lt;/p&gt;
&lt;p&gt;Садимся и едим по Торонто, на самом деле по Мисиссаге. Мозг отказывается воспринимать реальность и понимать где-мы. Ну и 20 часов в пути добавляют тумана.&lt;/p&gt;
&lt;p&gt;На сегодня путешествие закончилось, отдых. Вечерком проехались по даунтауну в Тороното, красиво. Вблизи совсем другие ощущения чем через GMAPS.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_2477.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3773" alt="IMG_2477" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2477-1024x767.jpg" width="550" height="411" /&gt;&lt;/a&gt; &lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2479.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3774" alt="IMG_2479" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2479-1024x767.jpg" width="550" height="411" /&gt;&lt;/a&gt; &lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2515.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3775" alt="IMG_2515" src="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_2515-1024x767.jpg" width="550" height="411" /&gt;&lt;/a&gt; &lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_2548.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3776" alt="IMG_2548" src="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_2548-1024x767.jpg" width="550" height="411" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Сейчас на часах 04:35 утра, набираю этот пост, jet-lag еще никто не отменял ;)&lt;/p&gt;
&lt;h2&gt;Далее дорога на Монреаль!&lt;/h2&gt;
&lt;p&gt;Нс следующий день у нас в 13:30 автобус на Монреаль. Спешить некуда, утром выспались и хорошо позавтракали.&lt;/p&gt;
&lt;p&gt;Спасибо Питону, он подвез нас в даунтаун на терминус стайшн. То что это автовокзал даже совсем и непонятно. В одном месте автобусы разгружаются. Затем подъезжают до причала, где стоит очередь, водитель загружает багаж, все садятся автобус  и он отъезжает.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2585.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3777" alt="IMG_2585" src="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_2585-1024x767.jpg" width="550" height="411" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Что все еще почему-то удивляет, что я сидя в Кишиневе  забронировал и оплатил места за 3 недели на какой-то там автобус в Канаде.  Затем пропутешествовав 8000 км километров, через кучу пересадок я приезжаю на автостанцию во время отправления, показываю свою бронь, водитель находит ее в своем списке и ставит галочку.  Приятно, или так и должно быть??&lt;/p&gt;
&lt;p&gt;Наш автобус красивенький, двух этажный megabus.  Внутри чисто, все кресла раскладываются, большие окна. В автобусе есть wi-fi, чем я воспользовался и давай названивать родным по скайпу. Также оборудован туалетом.&lt;/p&gt;
&lt;p&gt;Через несколько кварталов автобус выехал на хайвей и набрал крейсерскую скорость 110км/ч. Особенность хайвея в том, что там нет поворотов и пересечений с другим дорогами, то есть вся наша средняя скорость равнялась максимальной на всем пути. 600км за 5 с половиной часов.&lt;/p&gt;
&lt;p&gt;Весна только наступает, никакой зелени не было и пейзаж скучноват.&lt;/p&gt;
&lt;p&gt;Фоткал траки, их тут много и они большие.&lt;a href="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_2610.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3778" alt="IMG_2610" src="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2610-1024x389.jpg" width="550" height="208" /&gt;&lt;/a&gt; &lt;a href="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_2612.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3779" alt="IMG_2612" src="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2612-1024x453.jpg" width="550" height="243" /&gt;&lt;/a&gt; &lt;a href="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_2613.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3780" alt="IMG_2613" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2613-1024x288.jpg" width="550" height="154" /&gt;&lt;/a&gt; &lt;a href="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_2615.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3781" alt="IMG_2615" src="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2615-1024x286.jpg" width="550" height="153" /&gt;&lt;/a&gt; &lt;a href="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_2617.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3782" alt="IMG_2617" src="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_2617-1024x345.jpg" width="550" height="185" /&gt;&lt;/a&gt; &lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2619.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3783" alt="IMG_2619" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2619-1024x325.jpg" width="550" height="174" /&gt;&lt;/a&gt; &lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2627.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3784" alt="IMG_2627" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2627-1024x332.jpg" width="550" height="178" /&gt;&lt;/a&gt; &lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_2632.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3785" alt="IMG_2632" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2632-1024x410.jpg" width="550" height="220" /&gt;&lt;/a&gt; &lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_2637.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3786" alt="IMG_2637" src="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_2637-1024x273.jpg" width="550" height="146" /&gt;&lt;/a&gt; &lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2649.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3787" alt="IMG_2649" src="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_2649-1024x332.jpg" width="550" height="178" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ну вот уже и граница Квебека, дальше все надписи на французком. Заезжаем на остров Монреаль, город очень похож на Торонто, тот же даунтаун.&lt;/p&gt;
&lt;p&gt;Встречают нас наши друзья, которые тут уже 6 месяцев и обзавелись машиной! Добираемся до нашей квартиры, которую я тоже нашел и оплатил из Кишинева через сайт roomorama.com.&lt;/p&gt;
&lt;p&gt;Квартира оказалась даже лучше чем на фото, чисто, все обновлено, интернет, телек. Размером типа большой студии, цена $250 в неделю. Очень добродушная хозяйка, подобрала DVD с мультиками для Дениса, а в холодильнике продукты на завтрак. Для первых двух неделбь очень неплохо.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2655.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3788" alt="IMG_2655" src="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2655-1024x767.jpg" width="550" height="411" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Конечно приезд надо было срочно отметить ;) Выхожу на улицу и сосредотачиваюсь на банке пива, выбираю улицу наугад. И что бы вы думали, через 1 квартал вижу заправку и магазин и холодильнег с пивом ;) Банка со странной емкостью 1.18 литра стоит 5 баксов.&lt;/p&gt;
&lt;p&gt;Вот так, 10 минут и я уже дома, с пивом, которое Эль.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2656.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3789" alt="IMG_2656" src="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_2656-1024x884.jpg" width="550" height="474" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;А дальше?&lt;/h2&gt;
&lt;p&gt;Первые шаги в Монреале, скоро...&lt;/p&gt;
&lt;p&gt;Сейчас 5:15 19 Марта, пишу пост, все еще не привык ко времени. А на улице идет снег ;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://a32.me/ru/2013/03/ne-dajte-astronavtam-arhitektury-vas/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-15T05:00:51+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>Не дайте Астронавтам Архитектуры вас запугать</title>
        <link>http://a32.me/ru/2013/03/ne-dajte-astronavtam-arhitektury-vas/</link>
        <description>&lt;p&gt;&lt;span style="color: #808080; font-size: small;"&gt;Автор: Джоэл Спольски&lt;br /&gt;
В оригинале статья называлась &lt;a href="http://www.joelonsoftware.com/articles/fog0000000018.html" rel="nofollow"&gt;Don't Let Architecture Astronauts Scare You&lt;/a&gt; и была написана 21 апреля 2001&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Когда великие мыслители думают о проблемах, они начинают видеть шаблоны. Они видят людей, посылающих друг другу документы текстового процессора, и затем они видят людей, посылающих друг другу электронные таблицы, и они понимают, что есть общий образец: отправка файлов. Это - первый уровень абстракции. Далее они поднимаются на следующий уровень: люди посылают файлы, но web-браузеры также "посылают" запросы на получение web-страниц. И если немного подумать, вызов метода у объекта походит на отправку сообщения объекту! Это - снова то же самое! Все вышеперечисленное - это операции отправки, так что наш умный мыслитель изобретает новую, более высокую, более широкую абстракцию, называемую messaging, но сейчас она становится действительно неопределенной, и никто на самом деле уже не знает о чем идёт речь. Ерунда.&lt;/p&gt;
&lt;p&gt;&lt;span id="more-3330"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&lt;a href="http://local.joelonsoftware.com/wiki/File:Charles_River.jpg"&gt;&lt;img class="alignleft" alt="Charles River.jpg" src="http://local.joelonsoftware.com/mediawiki/images/5/51/Charles_River.jpg" width="200" height="134" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Когда вы поднимаетесь слишком высоко, наполненный абстракциями, вы задыхаетесь из-за отсутствия кислорода. Иногда мыслители просто не знают, когда остановиться, и они создают абсурдные, всеобъемлющие, высокоуровневые картины устройства вселенной, которые являются хорошими и изящными, но фактически не означают вообще ничего.&lt;/p&gt;
&lt;p&gt;Это - люди, которых я называю Астронавтами Архитектуры. Очень трудно заставить их писать код или проектировать программы, потому что они не перестают думать об Архитектуре. Они астронавты, потому что они находятся выше уровня кислорода, и я не понимаю, как они дышат. Они, как правило, работают в действительно больших компаниях, которые могут позволить себе иметь много непроизводительных людей с действительно большими учеными степенями, но, по сути, не вносящими вклада в результат.&lt;/p&gt;
&lt;p&gt;Недавний пример это иллюстрирует. Типичный астронавт архитектуры возьмёт факт вроде "Napster - это пиринговый сервис для скачивания музыки" и проигнорирует всё, кроме архитектуры, думая, что он интересен, потому что он является peer to peer, полностью упуская из вида тот факт, что можно ввести название песни и прослушать её сразу же.&lt;/p&gt;
&lt;p&gt;Всё, о чём они будут говорить - peer-to-peer это, то и вон то. Внезапно вы обнаружите peer-to-peer конференции, венчурные фонды peer-to-peer, и даже враждебную реакцию от слабоумных бизнес журналистов, истекающих злорадством в формате peer-to-peer, потому что они копируют истории друг у друга: "Peer-to-peer: умер!".&lt;/p&gt;
&lt;div&gt;&lt;a href="http://local.joelonsoftware.com/wiki/File:Harvard_Message_Board.jpg"&gt;&lt;img class="alignright" alt="Harvard Message Board.jpg" src="http://local.joelonsoftware.com/mediawiki/images/5/56/Harvard_Message_Board.jpg" width="200" height="286" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Астронавты Архитектуры скажут: "Представьте себе программу вроде Napster, но с возможностью загрузить что угодно, не только песни?". Далее они начнут разрабатывать приложения вроде Groove, которые как они думают, являются более общими, чем Napster, но которые, похоже, пренебрегают той крошечной маленькой особенностью, что можно напечатать название песни и послушать её. А это именно та особенность, которую мы хотели получить с самого начала. Речь о том, что главное упущено. Если бы Napster не был peer-to-peer приложением, но действительно позволял бы напечатать название песни и послушать её, он был бы столь же популярным.&lt;/p&gt;
&lt;p&gt;Другая вещь, которую любят делать Астронавты Архитектуры - это изобретать какую-то новую архитектуру и утверждать, что она что-то там решает. Java, XML, Soap, XmlRpc, Hailstorm, .NET, Jini, о господи, я не выдержу. И это только за последние 12 месяцев!&lt;/p&gt;
&lt;p&gt;Я не говорю, что с этими архитектурами что-то не так... ни в коем случае. Это довольно хорошие архитектуры. Что меня раздражает, так это громадное количество очковтирательства, которое их окружает. Помните обзор Microsoft Dot Net?&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Следующее поколение платформы Windows для десктопов, Windows .NET, поддерживает высокую продуктивность, творческий потенциал, развлечения и многое другое, и она разработана, чтобы дать пользователям возможность контролировать их цифровую жизнь.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Это было 9 месяцев назад. В прошлом месяце мы получили Microsoft Hailstorm. В обзоре сказано:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Люди не контролируют технологию, которая их окружает... Hailstorm заставляет технологию в вашей жизни работать по вашему поручению и под вашим контролем.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;О, хорошо, теперь высокотехнологичный галогенный свет в моей квартире перестанет мигать.&lt;/p&gt;
&lt;p&gt;Microsoft - не одни такие. Вот - цитата из &lt;a href="http://www.sun.com/jini/whitepapers/whyjininow.html%7C" rel="nofollow"&gt;обзора Sun Jini&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Эти три факта (вы - новый администратор, компьютеров нигде нет, один компьютер есть везде), должны объединиться, чтобы улучшить мир использования компьютеров, заставляя границы компьютеров исчезать, заставляя компьютер быть всюду, и делая детали работы с компьютером столь же простыми как вставка DVD в лоток домашнего кинотеатра.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;И даже не напоминайте мне об удобрении, которое Джордж Джилдер распространяет о Java:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Фундаментальный прорыв в истории технологии...&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Уверенное подтверждение факта, что на Вас нападает Астронавт Архитектуры: невероятное количество напыщенности; героическая, утопическая высокопарность; хвастовство; полный недостаток чувства действительности. И люди покупают это! Деловая пресса сходит с ума!&lt;/p&gt;
&lt;p&gt;Какого черта люди столь увлекаются скучной архитектурой, которая часто представляет собой не что иное, как новый формат передачи для RPC, или новую виртуальную машину? Эти вещи могли бы быть хорошей архитектурой, они, конечно, принесут пользу разработчикам, которые используют их, но они - не являются, я повторяюсь, не являются, хорошей заменой мессии, въезжающему на белом осле в Иерусалим, или миру во всем мире. Нет, Microsoft, компьютеры внезапно не собираются начинать читать наши мысли и делать то, что мы хотим автоматически только потому, что каждый в мире должен иметь Passport. Нет, Sun, мы не будем способны анализировать наши корпоративные коммерческие данные "так просто как вставка DVD в лоток домашнего кинотеатра".&lt;/p&gt;
&lt;div&gt;&lt;a href="http://local.joelonsoftware.com/wiki/File:Harvard_Science_Center.jpg"&gt;&lt;img class="alignleft" alt="Harvard Science Center.jpg" src="http://local.joelonsoftware.com/mediawiki/images/2/2b/Harvard_Science_Center.jpg" width="250" height="156" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Помните, что люди архитектуры решают проблемы, которые, как они думают, они могут решить, а не те проблемы, которые полезно решать. Soap + WSDL - это возможно новая горячая штучка, но она на самом деле не позволяет делать что-то, что вы не могли делать ранее с помощью других технологий, если испытывали такую потребность. Вся та нирвана распределённых сервисов, о которой болтают астронавты, уже была обещана в прошлом, если мы использовали DCOM, или JavaBeans, или OSF DCE, или CORBA.&lt;/p&gt;
&lt;p&gt;Прекрасно, что мы теперь можем использовать XML для формата данных в сети. Вот это да. Но мне это примерно так же интересно, как и то, что мой супермаркет использует грузовики, чтобы привозить товары со склада. Зевок. Это интересно. Скажите мне что-нибудь новое, чего я не мог делать раньше, о, Астронавты, или оставайтесь там, в космосе и не тратьте больше моё время.&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://a32.me/ru/2013/03/majkl-gerber-sozdanie-predprijatija-kotoroe-by-rabotalo/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-12T06:00:23+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>Я прочел: Майкл Гербер – “Создание предприятия которое бы работало”</title>
        <link>http://a32.me/ru/2013/03/majkl-gerber-sozdanie-predprijatija-kotoroe-by-rabotalo/</link>
        <description>&lt;p&gt;На примере общения с бизнесменом автор рассказывает о типичных засадах в бизнесе и как из избегать. Сара - вымышленный бизнесвумен, которая мечтала открыть свою пекарню, потому что ей очень нравилось печь пироги. Майкл находит её и бизнес  в плачевном состоянии, когда есть одно желание - все закрыть, продать и забыть. В книге анализируются причины такого исхода и варианты выхода.&lt;/p&gt;
&lt;p&gt;Каждый мечтает создать свой бизнес, что-бы он приносил больший доход за меньшие усилия  Но реальность диктует свои условия, и обычно все заканчивается 16 часовым рабочим днем без выходных.&lt;/p&gt;
&lt;p&gt;Книга понравилась, читается легко. Под катом, как обычно, цитаты которые мне понравились.&lt;/p&gt;
&lt;p&gt;&lt;span id="more-3287"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Фатальное представление состоит в следующем: если вы понимаете техническую работу бизнеса, вы понимаете бизнес, благодаря которому выполняется техническая работа. Причина фатальности состоит в том, что это представление &lt;strong&gt;не верно&lt;/strong&gt;. Техническая работа бизнеса и бизнес, выполняющий техническую работу - это совершенно различные вещи! Однако специалист, начинающий бизнес, упускает это из виду.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Вам в голову неожиданно приходит мысль о том, что ваш бизнес стал вашим Начальником, от которого, как вы считали, вам удалось избавиться. От начальника невозможно избавиться!&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Непозволительно быть специалистом и владельцем бизнеса одновременно! Потому что специалист смотрит на мир снизу вверх, хотя должен смотреть сверху вниз. Специалист видит работу, которую необходимо сделать и сразу же берется за эту работу!&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;«Быть хорошим специалистом - это еще не все, что нужно для построения успешного малого бизнеса.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Если твой бизнес полностью зависит от тебя, то ты имеешь не бизнес, ты имеешь работу. И это худшая работа на свете, поскольку ты работаешь на безумца!&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Главный вопрос не в том, насколько маленьким должен быть бизнес, а в том, насколько большим он должен быть&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Большинство предпринимателей малого бизнеса имеют модель выполнения работы, а не модель успешного бизнеса&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Когда предприниматель создает модель, он смотрит вокруг себя, и спрашивает: «Какие существуют возможности?» Определив их, он берет бумагу, карандаш и придумывает, как удовлетворить запросы, возникшие в определенной группе потребителей. Решение получается в форме бизнеса, который выглядит и функционирует так, как это нужно потребителям, а не предпринимателю.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Таким образом, предпринимательская модель начинается не с картины бизнеса, который требуется создать, а с картины потребителя, для которого этот бизнес создается.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Главная идея в том, что ваш бизнес и ваша жизнь - не одно и то же. Как только вы начинаете понимать, что обслуживание бизнеса не является целью вашей жизни, а наоборот, главная цель вашего бизнеса - обслуживать вашу жизнь, тогда вы можете начать работать над своим бизнесом, а не в нем.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Вам нужно постоянно искать ответ на вопрос: как я могу давать потребителю желаемый результат систематически, а не случайно? Можно сказать по-другому: как я могу создать бизнес, результаты которого будут зависеть от системы, а не от отдельных людей?&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Типичный владелец малого бизнеса предпочитает высокопрофессиональных людей, потому что хочет облегчить себе работу - он может просто положиться на них. То есть, типичный владелец малого предприятия предпочитает менеджмент отречения менеджменту делегирования. К сожалению, подобный подход неизбежно приводит к зависимости бизнеса от настроений и капризов людей. Если они в настроении, работа делается, если нет - не делается.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Модель должна обеспечивать потребителя стандартным качественным сервисом.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Еще ты говоришь, что это отождествление является причиной всей той боли, которую я чувствую, разочарования, которое я испытываю, когда иду на работу. Я верю, что если я достаточно много работаю, мой бизнес будет процветать, что если я буду затрагивать каждую деталь лично, то ничего плохого не может случиться.&lt;br /&gt;
И ты говоришь, что для преодоления разочарования, для настоящего контроля над моим бизнесом, мне нужно перестать отождествлять себя со своим бизнесом. Мне нужно воспринимать свой бизнес совсем не так, как я привыкла. Мне нужно смотреть на свой бизнес, как на продукт. Точно также как мои пироги являются продуктом, мой бизнес тоже является продуктом. И если бы я заняла такую позицию, я бы не могла не задаться вопросом: как должен работать мой бизнес-продукт, чтобы успешно привлекать не только клиентов, но и работников?&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Прежде чем организовывать свой бизнес, задайте себе следующие вопросы:&lt;br /&gt;
Как я хочу, чтобы выглядела моя жизнь? Какой должна быть моя каждодневная жизнь? Что бы я хотел узнать больше всего о своей жизни и в своей жизни? Каким я хотел бы быть с другими людьми в своей жизни - с членами семьи, друзьями, партнерами по бизнесу, клиентами, сотрудниками? Как бы я хотел, чтобы люди думали обо мне? Чем я хочу заниматься через два года? Через десять лет? Через двадцать лет? В конце жизни? Чему именно я хочу научиться в своей жизни - духовно, физически, финансово, технически, интеллектуально? Сколько денег мне понадобится, чтобы сделать эти вещи? К какому сроку они понадобятся?&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Когда мы спрашиваем человека, каким бизнесом он занимается, он инстинктивно называет продаваемый им товар. «Мы занимаемся компьютерами». Или: «Мы занимаемся ванными». Люди всегда называют товар, а не продукт.&lt;br /&gt;
В чем именно разница?&lt;br /&gt;
Товар - это та вещь, с которой клиент выходит из вашего магазина.&lt;br /&gt;
Продукт - это то, что клиент чувствует, когда он уходит от вас.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Почему люди должны принимать игру всерьез, если лидер не следует правилам? Именно для этого нужна организация.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Развивая стратегию маркетинга, очень важно забыть о своих мечтах, забыть о своем видении, о своих интересах - забыть обо всем, кроме вашего потребителя! Когда дело доходит до маркетинга, ваши желания не имеют никакого значения. Важно, чего хочет ваш клиент. А хочет клиент, скорее всего, вовсе &lt;strong&gt;не того&lt;/strong&gt;, что вы думаете.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;старинная китайская поговорка:&lt;/p&gt;
&lt;p&gt;Когда вы слышите что-то, вы забываете это.&lt;br /&gt;
Когда вы видите что-то, вы запоминаете это.&lt;br /&gt;
Но только когда вы начинаете делать это, вы начинаете понимать это.&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://a32.me/2013/03/how-to-connect-to-rare-databases-in-php-informix-oracle-db2/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T06:00:21+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>How to connect to rare databases in PHP (informix, oracle, db2)</title>
        <link>http://a32.me/2013/03/how-to-connect-to-rare-databases-in-php-informix-oracle-db2/</link>
        <description>&lt;p&gt;Recently I took part in integration project and faced interesting problem. PHP application that I deploy must communicate with Informix database for data selecte. This php application aims to corporate market, so its not a extraordinary case. I see that it may require connecto to Oracle or DB2 in near future.&lt;/p&gt;
&lt;p&gt;Yes, PHP itself has &lt;a href="http://php.net/manual/en/refs.database.php" target="_blank"&gt;wide choose of database connectors&lt;/a&gt;, which is a good option to have native database support. The only problem is that most of them are used so rare that are usualy not compiled in all modern Linux destributos. For example in Ubuntu server 12.04 there are five most pupular php5-sybase php5-interbase php5-mssql php5-mysql php5-pgsql.&lt;/p&gt;
&lt;p&gt;Thinking of it, I found one interesting solution.&lt;/p&gt;
&lt;p&gt;&lt;span id="more-3443"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;The right way&lt;/h2&gt;
&lt;p&gt;The right way seems to compile extention you need for PHP and live happilly. Yes it will work, but has some drawbacks I do not like:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;You have to make a build environment for PHP - which takes time&lt;/li&gt;
&lt;li&gt;Include in build all extension PHP already has - install all needed library in -dev versions&lt;/li&gt;
&lt;li&gt;Download SDK from database vendor, install it and tell PHP where to look for files - time consuming.&lt;/li&gt;
&lt;li&gt;Build PHP install it and manually add to apache, check and rebuild again to add missing extentions&lt;/li&gt;
&lt;li&gt;Keep upgrading PHP manually after security patched are out&lt;/li&gt;
&lt;li&gt;Document all work done, so somebody later can do this on another server to match your application specification&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You see, it does not look so simple after analysis. So what is another way?&lt;/p&gt;
&lt;h2&gt;JDBC - &lt;span style="color: #ff0000;"&gt;J&lt;/span&gt;ava &lt;span style="color: #ff0000;"&gt;D&lt;/span&gt;ata&lt;span style="color: #ff0000;"&gt;B&lt;/span&gt;ase &lt;span style="color: #ff0000;"&gt;C&lt;/span&gt;onnectivity&lt;/h2&gt;
&lt;p&gt;Some years ago I was quite deep in Java world. One thing I like the best is that how Java works with databases though JDBC. You only need one *.jar file with database driver written by the vendor. This file is usually small in size and has no other dependency.&lt;/p&gt;
&lt;p&gt;In my case, for Informix, I found &lt;strong&gt;ifxjdbc.jar&lt;/strong&gt;, which is 800Kb in size and that was all I need.&lt;/p&gt;
&lt;p&gt;I imagine next setup:&lt;/p&gt;
&lt;p&gt;PHP  (calls----&amp;gt;) JAVA program (DB exchange)  -----&amp;gt;  PHP (receive results)&lt;/p&gt;
&lt;p&gt;Java program will be a very simple program to get query on input, connect to database, execute the query and pass results to PHP.&lt;/p&gt;
&lt;p&gt;Looks like not a right way, but has almost no negative side effects:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="line-height: 13px;"&gt;Java is easy to install on every linux distribution, just type apt-get install java, or yum install java and you are done&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Any Java version will work, since task is very simple (openjdk, jdk, icetea, etc..)&lt;/li&gt;
&lt;li&gt;Java program can be distributed with your PHP application&lt;/li&gt;
&lt;li&gt;JDBC driver in sinlge .jar file and  as well, can be distributed with PHP application&lt;/li&gt;
&lt;li&gt;Simple to support&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;So why I love JSON?&lt;/h2&gt;
&lt;p&gt;Next step is communication with Java program. There is need to pass something and get something back.&lt;/p&gt;
&lt;p&gt;First that comes to mind is to re-invent the wheel, like this:&lt;/p&gt;
&lt;pre&gt;java Program --query "query here" --db-server "server" etc&lt;/pre&gt;
&lt;p&gt;output result like this&lt;/p&gt;
&lt;pre&gt;Field1|Field2|Field3
 data1|data1|data1&lt;/pre&gt;
&lt;p&gt;That means parsing, parsing and catch unpredictable errors. Not good.&lt;/p&gt;
&lt;p&gt;What PHP and Java can do well? Yes, its JSON serialization/deserialization. Lets use it, php will run external java program and pass json data on standard input. Java will do it's work and pass json on standard output, were PHP will catch it.&lt;/p&gt;
&lt;p&gt;For PHP its simple json_encode/json_decode&lt;/p&gt;
&lt;p&gt;For Java I used &lt;a href="https://code.google.com/p/json-simple/"&gt;json-simple-1.1.1.jar&lt;/a&gt; library (20KB).&lt;/p&gt;
&lt;p&gt;Below are sources that can give you an idea how it works.&lt;/p&gt;
&lt;h2&gt;PHP Source&lt;/h2&gt;

&lt;div class="wp_syntax"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="code"&gt;&lt;pre class="php" style="font-family:monospace;"&gt;&lt;span style="color: #666666; font-style: italic;"&gt;// Put in classpath all needed librararies&lt;/span&gt;
&lt;span style="color: #000088;"&gt;$classpath&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #990000;"&gt;join&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;PATH_SEPARATOR&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;
   &lt;span style="color: #990000;"&gt;dirname&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;__FILE__&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;.&lt;/span&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;DIRECTORY_SEPARATOR&lt;/span&gt;&lt;span style="color: #339933;"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'.'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;
   &lt;span style="color: #990000;"&gt;dirname&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;__FILE__&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;.&lt;/span&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;DIRECTORY_SEPARATOR&lt;/span&gt;&lt;span style="color: #339933;"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'ifxjdbc.jar'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #666666; font-style: italic;"&gt;// JDBC driver&lt;/span&gt;
   &lt;span style="color: #990000;"&gt;dirname&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;__FILE__&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;.&lt;/span&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;DIRECTORY_SEPARATOR&lt;/span&gt;&lt;span style="color: #339933;"&gt;.&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'json-simple-1.1.1.jar'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #666666; font-style: italic;"&gt;// Prepare command to run (SimpleSelect is java program name)&lt;/span&gt;
&lt;span style="color: #000088;"&gt;$cmd&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #990000;"&gt;sprintf&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;java -cp '&lt;span style="color: #009933; font-weight: bold;"&gt;%s&lt;/span&gt;' SimpleSelect&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$classpath&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #000088;"&gt;$descriptorspec&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;
   &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;pipe&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;quot;r&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;
   &lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;pipe&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;quot;w&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;
   &lt;span style="color: #cc66cc;"&gt;2&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;file&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;quot;/tmp/error-output.txt&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;quot;a&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #000088;"&gt;$process&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #990000;"&gt;proc_open&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$cmd&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$descriptorspec&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$pipes&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&lt;span style="color: #b1b100;"&gt;if&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #990000;"&gt;is_resource&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$process&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
   &lt;span style="color: #666666; font-style: italic;"&gt;// $pipes now looks like this:&lt;/span&gt;
   &lt;span style="color: #666666; font-style: italic;"&gt;// 0 =&amp;gt; writeable handle connected to child stdin&lt;/span&gt;
   &lt;span style="color: #666666; font-style: italic;"&gt;// 1 =&amp;gt; readable handle connected to child stdout&lt;/span&gt;
&amp;nbsp;
   &lt;span style="color: #666666; font-style: italic;"&gt;// Send query to Java program&lt;/span&gt;
   &lt;span style="color: #000088;"&gt;$command&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;
      &lt;span style="color: #0000ff;"&gt;'dsn'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'jdbc:informix-sqli://10.0.0.1:1526/database;username=xxx;password=yyyy'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;
      &lt;span style="color: #0000ff;"&gt;'query'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'select * from table WHERE id = ?'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;
      &lt;span style="color: #0000ff;"&gt;'param'&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;
   &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
   &lt;span style="color: #990000;"&gt;fwrite&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$pipes&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #990000;"&gt;json_encode&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$command&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
   &lt;span style="color: #990000;"&gt;fclose&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$pipes&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
   &lt;span style="color: #000088;"&gt;$output&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #990000;"&gt;stream_get_contents&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$pipes&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
   &lt;span style="color: #990000;"&gt;fclose&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$pipes&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
   &lt;span style="color: #000088;"&gt;$return_value&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #990000;"&gt;proc_close&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$process&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
   &lt;span style="color: #666666; font-style: italic;"&gt;// Decode output&lt;/span&gt;
   &lt;span style="color: #000088;"&gt;$res&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #990000;"&gt;json_decode&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$output&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #009900; font-weight: bold;"&gt;true&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
   &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #339933;"&gt;!&lt;/span&gt;&lt;span style="color: #990000;"&gt;empty&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$res&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'error'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #b1b100;"&gt;throw&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; Exception&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$res&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'error'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
   &lt;span style="color: #b1b100;"&gt;return&lt;/span&gt; &lt;span style="color: #000088;"&gt;$res&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;JAVA Source&lt;/h2&gt;
&lt;p&gt;To make it better, I would add passing JDBC driver name as a parameter as well as connection timeout. May be add support for INSERT, UPDATE, DELETE&lt;/p&gt;

&lt;div class="wp_syntax"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="code"&gt;&lt;pre class="java" style="font-family:monospace;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: #006699;"&gt;java.io.*&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&lt;span style="color: #000000; font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: #006699;"&gt;java.sql.*&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&lt;span style="color: #000000; font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: #006699;"&gt;java.util.*&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #000000; font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: #006699;"&gt;org.json.simple.*&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;class&lt;/span&gt; SimpleSelect &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
    &lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;static&lt;/span&gt; &lt;span style="color: #003399;"&gt;Connection&lt;/span&gt; conn &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;null&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
    &lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;static&lt;/span&gt; JSONObject output&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;static&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;void&lt;/span&gt; main&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #003399;"&gt;String&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt; args&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;throws&lt;/span&gt; &lt;span style="color: #003399;"&gt;Exception&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
        &lt;span style="color: #003399;"&gt;Statement&lt;/span&gt;  stmt &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;null&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
        output &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; JSONObject&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span style="color: #666666; font-style: italic;"&gt;// Decode jSON&lt;/span&gt;
        &lt;span style="color: #666666; font-style: italic;"&gt;// http://code.google.com/p/json-simple/wiki/DecodingExamples&lt;/span&gt;
        &lt;span style="color: #003399;"&gt;BufferedReader&lt;/span&gt; br &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; &lt;span style="color: #003399;"&gt;BufferedReader&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; &lt;span style="color: #003399;"&gt;InputStreamReader&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #003399;"&gt;System&lt;/span&gt;.&lt;span style="color: #006633;"&gt;in&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        &lt;span style="color: #000000; font-weight: bold;"&gt;final&lt;/span&gt; JSONObject input &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;JSONObject&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;JSONValue.&lt;span style="color: #006633;"&gt;parse&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;br.&lt;span style="color: #006633;"&gt;readLine&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        JSONArray param &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;JSONArray&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;input.&lt;span style="color: #006633;"&gt;get&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;param&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
        output.&lt;span style="color: #006633;"&gt;put&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;error&amp;quot;&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span style="color: #000000; font-weight: bold;"&gt;try&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
            &lt;span style="color: #000000; font-weight: bold;"&gt;Class&lt;/span&gt;.&lt;span style="color: #006633;"&gt;forName&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;com.informix.jdbc.IfxDriver&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;catch&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #003399;"&gt;Exception&lt;/span&gt; e&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
            SimpleSelect.&lt;span style="color: #006633;"&gt;fatal_error&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;FAILED: failed to load Informix JDBC driver.&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span style="color: #666666; font-style: italic;"&gt;//  Connect though the thread to handle connection timeout&lt;/span&gt;
        &lt;span style="color: #003399;"&gt;Thread&lt;/span&gt; tc &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; &lt;span style="color: #003399;"&gt;Thread&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; &lt;span style="color: #003399;"&gt;Runnable&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
           &lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;void&lt;/span&gt; run&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
                &lt;span style="color: #000000; font-weight: bold;"&gt;try&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
                    SimpleSelect.&lt;span style="color: #006633;"&gt;conn&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #003399;"&gt;DriverManager&lt;/span&gt;.&lt;span style="color: #006633;"&gt;getConnection&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #003399;"&gt;String&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;input.&lt;span style="color: #006633;"&gt;get&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;dsn&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
                &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;catch&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #003399;"&gt;SQLException&lt;/span&gt; e&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
                    SimpleSelect.&lt;span style="color: #006633;"&gt;fatal_error&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;FAILED: failed to connect to Informix!&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
                &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
           &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
        &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        tc.&lt;span style="color: #006633;"&gt;setDaemon&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000066; font-weight: bold;"&gt;true&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        tc.&lt;span style="color: #006633;"&gt;start&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span style="color: #666666; font-style: italic;"&gt;// Wait 5 sec for connection&lt;/span&gt;
        &lt;span style="color: #000000; font-weight: bold;"&gt;for&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000066; font-weight: bold;"&gt;int&lt;/span&gt; i &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt; &lt;span style="color: #339933;"&gt;;&lt;/span&gt; i &lt;span style="color: #339933;"&gt;&amp;lt;=&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;500&lt;/span&gt; &lt;span style="color: #339933;"&gt;;&lt;/span&gt; i&lt;span style="color: #339933;"&gt;++&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
           &lt;span style="color: #000000; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;conn &lt;span style="color: #339933;"&gt;!=&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;null&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;break&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
           &lt;span style="color: #000000; font-weight: bold;"&gt;try&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;span style="color: #003399;"&gt;Thread&lt;/span&gt;.&lt;span style="color: #006633;"&gt;sleep&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;10&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;catch&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #003399;"&gt;InterruptedException&lt;/span&gt; ex&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
        &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
        &lt;span style="color: #000000; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;conn &lt;span style="color: #339933;"&gt;==&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;null&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
            SimpleSelect.&lt;span style="color: #006633;"&gt;fatal_error&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;FAILED: timeout connect to Informix!&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span style="color: #000000; font-weight: bold;"&gt;try&lt;/span&gt;  &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
               &lt;span style="color: #003399;"&gt;PreparedStatement&lt;/span&gt; pstmt &lt;span style="color: #339933;"&gt;=&lt;/span&gt; conn.&lt;span style="color: #006633;"&gt;prepareStatement&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #003399;"&gt;String&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;input.&lt;span style="color: #006633;"&gt;get&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;query&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
               pstmt.&lt;span style="color: #006633;"&gt;setQueryTimeout&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;10&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
                &lt;span style="color: #000000; font-weight: bold;"&gt;for&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000066; font-weight: bold;"&gt;int&lt;/span&gt; i &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt; &lt;span style="color: #339933;"&gt;;&lt;/span&gt; i &lt;span style="color: #339933;"&gt;&amp;lt;&lt;/span&gt; param.&lt;span style="color: #006633;"&gt;size&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #339933;"&gt;;&lt;/span&gt; i&lt;span style="color: #339933;"&gt;++&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;
                    pstmt.&lt;span style="color: #006633;"&gt;setString&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;i&lt;span style="color: #339933;"&gt;+&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;, &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #003399;"&gt;String&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;param.&lt;span style="color: #006633;"&gt;get&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;i&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
                &lt;span style="color: #003399;"&gt;ResultSet&lt;/span&gt; rs &lt;span style="color: #339933;"&gt;=&lt;/span&gt; pstmt.&lt;span style="color: #006633;"&gt;executeQuery&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
                &lt;span style="color: #666666; font-style: italic;"&gt;// Get column name&lt;/span&gt;
                JSONArray jsColumn &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; JSONArray&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
                &lt;span style="color: #003399;"&gt;ResultSetMetaData&lt;/span&gt; rsmd &lt;span style="color: #339933;"&gt;=&lt;/span&gt; rs.&lt;span style="color: #006633;"&gt;getMetaData&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
                &lt;span style="color: #000000; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000066; font-weight: bold;"&gt;int&lt;/span&gt; i &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; i &lt;span style="color: #339933;"&gt;&amp;lt;&lt;/span&gt; rsmd.&lt;span style="color: #006633;"&gt;getColumnCount&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; i&lt;span style="color: #339933;"&gt;++&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
                    jsColumn.&lt;span style="color: #006633;"&gt;add&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #003399;"&gt;String&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;rsmd.&lt;span style="color: #006633;"&gt;getColumnName&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;i&lt;span style="color: #339933;"&gt;+&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
                &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
                output.&lt;span style="color: #006633;"&gt;put&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;column&amp;quot;&lt;/span&gt;, jsColumn&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
                &lt;span style="color: #666666; font-style: italic;"&gt;// Get the data&lt;/span&gt;
                JSONArray jsData &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; JSONArray&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
                &lt;span style="color: #000000; font-weight: bold;"&gt;while&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;rs.&lt;span style="color: #006633;"&gt;next&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
                    JSONArray jsRow &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;new&lt;/span&gt; JSONArray&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
                    &lt;span style="color: #000000; font-weight: bold;"&gt;for&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000066; font-weight: bold;"&gt;int&lt;/span&gt; i &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; i &lt;span style="color: #339933;"&gt;&amp;lt;&lt;/span&gt; rsmd.&lt;span style="color: #006633;"&gt;getColumnCount&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; i&lt;span style="color: #339933;"&gt;++&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
                        jsRow.&lt;span style="color: #006633;"&gt;add&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;rs.&lt;span style="color: #006633;"&gt;getString&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;i&lt;span style="color: #339933;"&gt;+&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
                    &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
                    jsData.&lt;span style="color: #006633;"&gt;add&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;jsRow&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
                &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
                rs.&lt;span style="color: #006633;"&gt;close&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
                pstmt.&lt;span style="color: #006633;"&gt;close&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
                output.&lt;span style="color: #006633;"&gt;put&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;data&amp;quot;&lt;/span&gt;, jsData&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;catch&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #003399;"&gt;SQLException&lt;/span&gt; e&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
            SimpleSelect.&lt;span style="color: #006633;"&gt;fatal_error&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;FAILED: Fetch statement failed: &amp;quot;&lt;/span&gt; &lt;span style="color: #339933;"&gt;+&lt;/span&gt; e.&lt;span style="color: #006633;"&gt;getMessage&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span style="color: #000000; font-weight: bold;"&gt;try&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
            conn.&lt;span style="color: #006633;"&gt;close&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;catch&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #003399;"&gt;SQLException&lt;/span&gt; e&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
            SimpleSelect.&lt;span style="color: #006633;"&gt;fatal_error&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;FAILED: failed to close the connection!&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
        &lt;span style="color: #003399;"&gt;System&lt;/span&gt;.&lt;span style="color: #006633;"&gt;out&lt;/span&gt;.&lt;span style="color: #006633;"&gt;print&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;output&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
    &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style="color: #000000; font-weight: bold;"&gt;static&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;void&lt;/span&gt; fatal_error&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #003399;"&gt;String&lt;/span&gt; str&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
        output.&lt;span style="color: #006633;"&gt;put&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;error&amp;quot;&lt;/span&gt;, str&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        &lt;span style="color: #003399;"&gt;System&lt;/span&gt;.&lt;span style="color: #006633;"&gt;out&lt;/span&gt;.&lt;span style="color: #006633;"&gt;print&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;output&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        &lt;span style="color: #003399;"&gt;System&lt;/span&gt;.&lt;span style="color: #006633;"&gt;exit&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
    &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

</description>
    </item>
    <item rdf:about="http://a32.me/ru/2013/02/jenergonezavisimoe-reshenie/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-02-22T06:00:54+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>Энергонезависимое решение</title>
        <link>http://a32.me/ru/2013/02/jenergonezavisimoe-reshenie/</link>
        <description>&lt;h1&gt;&lt;img class="alignleft" style="font-size: 13px" alt="" src="http://habrastorage.org/storage2/9cd/1dc/4d2/9cd1dc4d2de787b2bd9d42f807239498.jpeg" width="218" height="306" /&gt;&lt;/h1&gt;
&lt;div&gt;
&lt;h2&gt;Понедельник. Постановка задачи&lt;/h2&gt;
&lt;p&gt;Девять часов тридцать одна минута утра — я на работе. Вообще-то мы работаем с десяти до семи, но по понедельникам я предпочитаю приходить пораньше — мне нравится наш офис, пока в нём нет людей. Я медленно иду мимо столов — одни завалены распечатками спецификаций и каких-то диаграмм, другие совсем пустые. На одних столах стоят компьютеры, другие пустые. Под некоторыми столами стоит сменная обувь, перед другими нет даже кресла. Да, у нас больше половины столов пустые — это на случай приёма новых сотрудников, или командировки кого-то из других городов и стран. Ведь у нас крупная международная компания с офисами разработки в Омске и Калачинске и головным офисом на Кипре. Мы занимаем четыре этажа в современном офисном центре. Правда, сразу за нашим зданием начинаются руины какого-то авиационного завода, и в день зарплаты мы стараемся там не ходить.&lt;a name="habracut"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;&lt;span id="more-3352"&gt;&lt;/span&gt;Мой стол стоит в углу, между пластиковой перегородкой и стеной. Прямо надо мной висит кондиционер, и, когда на улице делается совсем жарко, мне приходится приносить из дома свитер, чтобы не замёрзнуть. На мой взгляд, лучший кондиционер — это простое открытое окно, но у нас в офисе окна не открываются. Я думаю, архитекторы этого здания слышали о нервном истощении среди офисных работников, и решили минимизировать число суицидов. Зато вид с нашего двенадцатого этажа открывается шикарный. Жаль, большую часть времени окна закрываю жалюзи — чтобы солнечный свет не бликовал на мониторах и не слепил глаза. Поэтому у нас всегда включены лампы дневного света.Какой-то парень поздоровался со мной за руку и уселся за соседний стол. Он сел здесь в прошлый понедельник, неделю назад, но я до сих пор не знаю, как его зовут — мы работаем над разными проектами. Да, кстати, я работаю над проектом под названием Комплексное Корпоративное Решение — сокращённо КОКОРЕШ. Это очень сложная система, состоящая из множества модулей, десятков слоёв и сотен тысяч файлов с исходным кодом. Система такая большая, что никто не знает, что же она делает.&lt;/p&gt;
&lt;p&gt;Подёргав мышку, я вывел компьютер из спящего режима и запустил браузер. В минувшую пятницу руководитель нашего проекта, Егор, уехал к потенциальным заказчикам в Демократическую Республику Конго. Сегодня должен состояться митинг по скайпу, в котором, по традиции, примет участие весь наш отдел. Само собой, говорить там будет только Егор и руководитель группы — Костя. Все остальные десять участников выключат микрофоны своих гарнитур и будут лениво читать твиттер и контакт.&lt;/p&gt;
&lt;p&gt;Ближе к полудню подошли остальные сотрудники нашего отдела. Пока все здоровались и рассказывали о том, как внезапно пятница сменилась понедельником, неожиданно настало время обеда.&lt;/p&gt;
&lt;p&gt;После обеда я получил письмо с приглашением на статус-митинг сегодня в 4 часа. Это означает, у меня есть два часа, чтобы смотреть ролики на Ютубе, ведь во время митинга Ютуб невозможно смотреть — скайп занимает практически весь канал.&lt;/p&gt;
&lt;p&gt;В половине пятого запиликал входящий вызов. Я быстро надел гарнитуру, нажал зелёную кнопку ответа на звонок и выключил микрофон. Проджект-меденжера было слышно плохо. Из трубки что-то постоянно бухало, казалось, что где-то недалеко от него бьют барабаны.&lt;/p&gt;
&lt;p&gt;— Добрый день, коллеги! — начал он, — Сразу скажу, что здесь у нас нет электричества, и аккумулятор моего ноутбука почти сел. Наши партнёры из Демократической республики Конго, они очень… они крайне дружелюбно настроены, я уверен, и у нашей крупной международной компании тут неплохие перспективы. Нам следует быть настойчивыми, и непрерывно двигаться вперёд. Воля к победе — вот главное, и вместе мы добьёмся много, ведь наше будущее, и значит будущее нашей крупной международной компании, зависит от каждого из нас. Мы должны стремиться к успеху, и, постоянно совершенствуясь, добиваться невозмож…&lt;/p&gt;
&lt;p&gt;Тут связь разорвалось. Повисла неловкая тишина.&lt;/p&gt;
&lt;p&gt;Я подумал, что Конго — одна из последних стран, где сохранился каннибализм, и что там сейчас как раз время к обеду. Но решил не подрывать корпоративный дух.&lt;/p&gt;
&lt;p&gt;Первым заговорил Костя:&lt;br /&gt;
— Итак, выяснилось, что в Конго нет электричества. Но это не помешает нам внедрить у них наше Комплексное Корпоративное Решение. Наша задача — разработать энергонезависимый модуль для нашей системы. Наш архитектор Гриша подготовит архитектуру. Так ведь, Гриша?&lt;br /&gt;
Гриша заулыбался. Слегка скошенный нос придавал его улыбке неповторимый шарм. Когда-то в молодости он занимался дзюдо и был неплохо сложён, но сейчас практически вся его мышечная масса перешла в жировую.&lt;br /&gt;
— Беру на себя обязательство к завтрашнему утру подготовить архитектуру энергонезависимого КОКОРЕШа, — торжественно произнёс он и ещё раз улыбнулся, для закрепления эффекта.&lt;br /&gt;
— Отлично, — Костя хлопнул в ладоши, — завтра давайте придём все пораньше, потому что времени на проект у нас мало — до конца недели.&lt;br /&gt;
— Я вот подумал, в такой ситуации можно им всем счёты раздать, — неловко пошутил я. Все дружно засмеялись.&lt;/p&gt;
&lt;p&gt;Остаток дня мы рисовали на маркерной доске наших африканских партнёров. К сожалению, чёрный маркер кто-то стащил, поэтому мы рисовали их зелёным. Неожиданно рабочий день закончился.&lt;/p&gt;
&lt;h2&gt;Вторник. Архитектура&lt;/h2&gt;
&lt;p&gt;В девять я уже сидел за рабочим компьютером и читал новости. Конечно, до одиннадцати никого из нашего отдела в офисе не было.&lt;/p&gt;
&lt;p&gt;Ближе к полудню пришёл архитектор Гриша со свёрнутыми плакатами под мышкой. Пока он со всеми здоровался и рассказывал, как он стоял в пробке, неожиданно подошло время обеда.&lt;/p&gt;
&lt;p&gt;После обеда Костя позвал всех в комнату для совещаний.&lt;br /&gt;
— Итак, архитектура решения готова, — с этими словами Гриша развернул и повесил на доске два плаката.&lt;br /&gt;
Я посмотрел на них и тяжело вздохнул, закрыв лицо ладонью.&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://habrastorage.org/storage2/458/258/e0c/458258e0cf023a7f086fcdacd319ca05.png" /&gt;&lt;/p&gt;
&lt;p&gt;На первом плакате, озаглавленном «КОКОРЕШ», было изображён синий прямоугольник, а рядом с ним — батарейка. На втором плакате, подписанном «ЭНЕКОКОРЕШ», был изображён один только синий прямоугольник.&lt;br /&gt;
— На первом плакате вы видите архитектуру существующего, энергозависимого решения. На втором — архитектура энергонезависимого решения, — радостно сообщил Гриша и, повернувшись к нам, заулыбался так, как будто не понимал бессмысленности собственной работы.&lt;br /&gt;
— Отлично, Григорий! Молодец! — похвалил его Костя — Как тебе в столь сжатые сроки удалось создать такую архитектуру?&lt;br /&gt;
— Ну как, — смутился Гриша, — нормально, Константин.&lt;br /&gt;
— Ну ладно, — улыбнулся Костя, — теперь дело за малым — осталось реализовать эту архитектуру.&lt;br /&gt;
— Кость, постой… — заговорил я, — компьютеры же без электричества работать не будут…&lt;br /&gt;
— Слушай, я тебя, конечно, ценю как специалиста, — нахмурив брови, ответил мне Костя, — но твоё дело — реализация, а архитектура, вот она, — он показал рукой на плакаты, — готова уже. Ну и чего здесь сложного? Написать программу, и всё. Говоришь, без электричества работать не будет. А ты что, пробовал уже?&lt;br /&gt;
Честно говоря, я ни разу не пробовал включать компьютер без электричества, но базовые познания в его устройстве подсказывали мне, что он не заработает.&lt;br /&gt;
— Нет, не пробовал… — ответил я.&lt;br /&gt;
— Ну вот видишь — рассмеялся Костя. И все тоже засмеялись, кроме меня.&lt;br /&gt;
Когда митинг закончился, было уже пять часов.&lt;/p&gt;
&lt;p&gt;Сразу после митинга Гриша и Костя ушли куда, ни с кем не попрощавшись. Я сидел за своим компьютером и задумчиво листал Контактик. За перегородкой Сергей что-то отчаянно набирал на клавиатуре.&lt;br /&gt;
— И всё таки, им нужны счёты, — задумчиво произнёс я. Сергей перестал стучать по клавиатуре, сдавленно хрюкнул за своей перегородкой, и, кажется, обрызгал её слюной.&lt;br /&gt;
— Слушай, а что ты там делаешь целыми днями? — спросил я Сергея.&lt;br /&gt;
— Я фильмы смотрю, — честно ответил он.&lt;br /&gt;
— Как же так, ты же целыми днями что-то набираешь на клавиатуре. Я думал, ты код пишешь, — удивился я.&lt;br /&gt;
— Я специально клаву отключаю. А по клавишам стучу просто так, для поддержания рабочей атмосферы в офисе.&lt;/p&gt;
&lt;p&gt;Неожиданно рабочий день закончился.&lt;/p&gt;
&lt;h2&gt;Среда. Разработка&lt;/h2&gt;
&lt;p&gt;Я пришёл на работу в девять сорок две и начал читать свежие твиты. Я специально читаю почти тысячу человек — к моменту, когда я прочту свежую порцию твитов, уже появляются новые. Примерно в половине одиннадцатого пришёл Сергей. Я успел заметить момент, как он, надев наушники, отключил клавиатуру и принялся стучать по клавишам.&lt;/p&gt;
&lt;p&gt;Поздним утром, около двенадцати часов, ко мне подошёл Костя, и, наклонившись, тихо сказал:&lt;br /&gt;
— Слушай, это… С твоим опытом, с твоими знаниями, я хочу, что бы ты был за старшего. Возьми шефство над Сергеем в этом проекте. Тем более что вы только вдвоём будете работать над ним. И я тебя очень прошу, завершите его в срок.&lt;br /&gt;
Я только вздохнул. Ну как мне ему объяснить, что проект в принципе не реализуем? Что архитектор Гриша — дурак со справкой, и поэтому так улыбается? Что руководителя проектов, возможно, уже съели жители республики Конго? Что, в конце-концов, без электричества ни одно электронное устройство работать не может?&lt;br /&gt;
— Я считаю, без электричества компьютеры работать не будут. Аборигенам из Конго нужны счёты, — сказал я, нарочно громко и чётко. Повисла напряжённая тишина. Стало особенно чётко слышно, что Сергей за перегородкой почти не нажимает на пробел.&lt;br /&gt;
Наконец Костя нарушил молчание:&lt;br /&gt;
— Ну давай, работай, не буду тебе мешать — и быстро ушел куда-то, позвав с собой Гришу.&lt;/p&gt;
&lt;p&gt;Неожиданно наступило время обеда.&lt;/p&gt;
&lt;p&gt;После обеда я решил всё-таки взяться за работу.&lt;br /&gt;
— Серёг, — сказал я своему соседу из-за перегородки, — давай найдём место в коде, которое потребляет больше всего электричества?&lt;br /&gt;
— Понимаешь, это мы уже делали, — сказал Сергей. На звуке «п» в слове «понимаешь» из его рта вылетела слюна и ударилась о перегородку. Всё-таки хорошо, что они здесь стоят.&lt;br /&gt;
— Ну а когда это делали, ты помнишь, номер таски? Коммит в свн?&lt;br /&gt;
— Сейчас… — Сергей помедлил, — это была таска KOKORESH-4920.&lt;br /&gt;
Я попытался открыть задачу с таким номером в багтрекере, но получил сообщение, что у меня нет прав. Поскольку Кости в зоне видимости не было, я написал тикет в хелпдеск, чтобы мне дали права.&lt;br /&gt;
Спустя один час и двадцать минут мне ответили, что права могут дать только в случае подтверждения заявки от менеджера проекта. Я было хотел ответить, что его скорее всего уже съели, но потом подумал, что не так уж и нужна мне эта таска.&lt;/p&gt;
&lt;p&gt;Вместо этого я решил написать письмо всем заинтересованным в проекте лицам с целью поставить их в известность, что без электричества компьютеры не работают. Я нажал кнопку «написать письмо», но тут появилось стандартное сообщение об ошибке: «Outlook выполнил недопустимую операцию и будет закрыт». «Ладно, не судьба. Попробую завтра» — решил я, и, выключил компьютер.&lt;/p&gt;
&lt;p&gt;Неожиданно рабочий день закончился.&lt;/p&gt;
&lt;h2&gt;Четверг. Ещё раз разработка&lt;/h2&gt;
&lt;p&gt;Придя в офис, я первым делом написал письмо.&lt;br /&gt;
«Добрый день, коллеги!» — начал я своё письмо, — «Я предлагаю упростить задачу с разработки энергонезависимой реализации КОКОРЕШа до поставки готового решения в виде деревянных счёт. Главный довод в пользу этого решения состоит в том, что у наших заказчиков нет электричества. В отсутствии электричества ни одни программно-аппаратный комплекс работать не может. Кроме того, я выражаю своё сомнение в том, что у пользователей, никогда не видевших компьютера, хватит квалификации для работы с КОКОРЕШом.» Я несколько раз перечитал набранный текст, добавил подпись и получателей — руководителя группы Костю, архитектора Гришу и проджет-менеджера Егора. Хотя, положа руку на сердце, я не думаю, что Егор ещё в состоянии что-либо прочесть. Вздохнув, я, для верности, добавил в копию регионального менеджера, Андрэ Эдуардовича Белокрылого, и нажал кнопку «Отправить».&lt;/p&gt;
&lt;p&gt;Кстати, после одного неприятного случая на моей предыдущей работе, я всегда сначала пишу письмо, а уже потом добавляю адресатов. Тогда один из множества моих начальнивов спросил меня, как скоро я смогу закончить работу, и требуется ли мне ждать выгрузку данных из коллешена. Я хотел написать «да, мне похоже, придётся дождаться выгрузки данных», но письмо отправилось ровно на середине слова «похоже». В общем, мне пришлось срочно искать работу, да ещё и самыми плохими рекомендациями с предыдущего места. Кроме как в крупную международную компанию, меня никуда не брали. И вот теперь я здесь, вынужден писать программу, которой не требуется электроэнергия.&lt;/p&gt;
&lt;p&gt;Неожиданно настало время обеда.&lt;/p&gt;
&lt;p&gt;После обеда Костя подозвал меня к себе.&lt;br /&gt;
— Знаешь, твоё решение насчёт счёт было не таким уж и плохим, — тихо произнёс он.&lt;br /&gt;
— Так значит мы всё-таки внедрим папуасам счёты? — удивился я. Невероятно, чтобы моё письмо могло изменить уже прянтое решение!&lt;br /&gt;
— Тише, тише, дослушай. К сожалению, на проработку энергонезависимого КОКОРЕША уже потрачены ресурсы, значительно превышающие стоимость твоего решение со счётами. Так что сам понимаешь, в твоих интересах больше никому про счёты не говорить, иначе получится, что мы зря ресурсы тратили. Ты же умный парень, улавливаешь? А энергонезависимое решение уже практически готово. По моим прикидкам, мы его должны закончить уже сегодня. Поэтому, если сегодня не получится, придётся завтра плотно поработать, и на выходные ничего не планируй. Ну вы должны уложиться, там же немного по сути осталось.&lt;br /&gt;
Костя немного помолчал, и, наверное, чтобы приободрить меня, добавил:&lt;br /&gt;
-Знаешь, я ведь сам когда-то программировал. Там же всего пару строчек кода написать нужно, неужели не справишься?&lt;/p&gt;
&lt;p&gt;Вечером пришёл ответ от самого Андрэ Эдуардовича. Содержательная часть состояла из одной строки: «Я считаю ситуацию, когда рядовые разработчики занимаются вопросами архитектуры, недопустимой. В дальнейшем обсуждении вопроса смысла не вижу.» И далее подпись длинною в восемь строк.&lt;/p&gt;
&lt;p&gt;Я подошёл к окну. По небу ползли низкие серые облака, а из них на землю падала неопределённая субстанция. Где-то на горизонте виднелись огромные трубы и радиовышки. «Интересно, сейчас лето или зима?» — пронеслось в моей голове. Для нас, офисных работников, смена времён года имеет чисто формальное значение. Лето отличается от зимы только тем, что летом мы носим свитера в офисе, чтобы не мёрзнуть под кондиционером, а зимой — чтобы добежать от подъезда до своего Форд Фокуса. Мы стараемся, работаем каждый день, хотя ничего и не производим. Наша деятельность не оставляет никаких следов в окружающем мире, хотя это, наверное, и к лучше — ведь всё, что мы делаем — мы делаем плохо. Так что же мы делаем здесь? Ответ прост — мы делаем карьеру.&lt;/p&gt;
&lt;p&gt;Многие ошибочно полагают, что русское слово «карьера» происходит от английского «career» — «профессия». Но это не так, какая же профессия может быть у офисного работника? Профессия может быть только у тех, кто что-то производит. Офисный работник же занят исключительно ментальным уничтожением себя. Слово «карьера» происходить от итальянского «cariare», что означает «вызывать гниение». С этим может не согласиться лишь тот, кто никогда не видел, как здоровый юноша или красивая молодая девушка, попав о офис, через пять-шесть лет превращается в безвольное существо с пустыми глазами, двойным подбородком и дряблыми мышцами.&lt;/p&gt;
&lt;p&gt;Меня вдруг взяла злость. Нет, даже гнев. Мне захотелось, подобно герою Майкла Дугласа из «Falling down», взять пистолет и убивать. Перестрелять всех бюрократов, всех капиталистов, всех менеджеров среднего и высшего звена, специалистов по поисковой оптимизации, и, конечно же, сотрудников отдела кадров. Я почувствовал, как кровь прилила к голове, а тонкие пальцы сами собой сжались в кулаки. Но потом я вспомнил про свои невыплаченные кредиты, и гнев сменился апатией. Какая, в конце концов, мне разница, возможно ли выполнить полученную мне работу, или нет? Мне платят деньги не за результат, а за время, которое я провожу здесь. Моя деятельность сродни проституции. Вот кстати интересно, получают ли линейные менеджеры удовольствие после общения со своими подчинёнными?..&lt;/p&gt;
&lt;p&gt;И тут я понял, что мне следует сделать. Завтра с утра я сделаю свою работу наилучшим из возможных способов.&lt;/p&gt;
&lt;p&gt;Неожиданно я ушёл за десять минут до конца рабочего дня, не сказав никому ни слова.&lt;/p&gt;
&lt;h2&gt;Пятница. Релиз&lt;/h2&gt;
&lt;p&gt;Костя пришёл на работу ранним утром, примерно в половине одиннадцатого, и первым делом подошёл ко мне.&lt;br /&gt;
— Ну, каков статус проекта? — спросил он сурово.&lt;br /&gt;
— Готов, — спокойно ответил я.&lt;br /&gt;
— А покажи, — всё так же сурово попросил Костя.&lt;br /&gt;
— Конечно. Вот смотри, — и я открыл папку, в которой лежал один экзешник, и дважды ткнул по нему мышкой. На секунду курсор превратился в песочные часы, и на экране появилось диалоговое окно с сообщением «Энергонезависимый КОКОРЕШ не может быть запущен в энергозависимом окружении»&lt;br /&gt;
Лицо Коли расплылось в довольной улыбке:&lt;br /&gt;
— Молодец! Это как раз то, что требуется. А энергонезависимое окружение закажем у отдела снабжения, пока они его закупят… Если закупят вообще… Слушай, а точно оно работает без электричества?&lt;br /&gt;
— Обижаешь, я же профессионал! — улыбнувшись, ответил я.&lt;/p&gt;
&lt;p&gt;За чтением фишек-нет рабочий день закончился, как всегда, неожиданно.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Этот рассказ, вместе со многими другими, можно прочесть в книге &lt;a href="http://it-as-is.ru/"&gt;IT AS IS&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;/div&gt;
</description>
    </item>
    <item rdf:about="http://a32.me/ru/2013/02/ruanda-nacionalnyj-muzej-v-butare/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-02-22T01:50:35+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>Руанда  – Национальный музей в Бутаре</title>
        <link>http://a32.me/ru/2013/02/ruanda-nacionalnyj-muzej-v-butare/</link>
        <description>&lt;p&gt;&lt;em&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2036.jpg"&gt;&lt;img class="alignleft" alt="IMG_2036" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2036-1024x841.jpg" width="198" height="163" /&gt;&lt;/a&gt;22 Февраля 2013&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Вот и настал последний день в Африке. Проснулся я в далекой Гисакуре, но спешить особо было некуда. В планах был только музей в Бутаре.&lt;/p&gt;
&lt;p&gt;&lt;span id="more-3712"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Утречком после завтрака выхожу на автобусную остановку, покупаю билет и жду автобуса. Даже в самой отдаленной деревне с транспортом без проблем. Через полчаса уже еду в автобусе в город Бутаре. Хотя сейчас он называется Huye, очень страшное название в русской транскрипции.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_1624.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3739 bigpic" alt="IMG_1624" src="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_1624-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Из такого разнообразия  старых и новых названий, употребления названия районов вместо городов,  возникает большая путаница в голове.&lt;/p&gt;
&lt;p&gt;В Бутаре (Хуйе) заправка является по совместительсву автовокзалом, мойкой, магазином, столовой и автомастерской. Сюда я и прехал.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2060-001.jpg"&gt;&lt;img class="bigpic" alt="IMG_2060-001" src="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2060-001-1024x695.jpg" width="550" height="373" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Сам музей находился недалеко, спасибо GPS прошелся пешком.&lt;/p&gt;
&lt;p&gt;Выглядит солидно. Большой двор, и ухоженный парк.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_2021.jpg"&gt;&lt;img class="bigpic" alt="IMG_2021" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2021-1024x738.jpg" width="550" height="396" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2016.jpg"&gt;&lt;img class="bigpic" alt="IMG_2016" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2016-1024x857.jpg" width="550" height="460" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Вход стоил что-то около 6000FRW, так как я уже избавлялся от денег, то жаба молчала. Фотографировать категорически запретили, ну нельзя так нельзя, подумал я &lt;img src='http://cdn4.a32.me/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_1996.jpg"&gt;&lt;br /&gt;
&lt;/a&gt; &lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_2002.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3718 bigpic" alt="IMG_2002" src="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_2002-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_2004.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3719 bigpic" alt="IMG_2004" src="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2004-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2008.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3720 bigpic" alt="IMG_2008" src="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_2008-1024x541.jpg" width="550" height="290" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2010.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3721 bigpic" alt="IMG_2010" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2010-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Парк позади музея.&lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2016.jpg"&gt;&lt;br /&gt;
&lt;/a&gt; &lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2033.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3724 bigpic" alt="IMG_2033" src="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2033-1024x767.jpg" width="550" height="411" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Только местные могут как ни в чем не бывало спать не солнце &lt;img src='http://cdn4.a32.me/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2034.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3725 bigpic" alt="IMG_2034" src="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2034-1024x767.jpg" width="550" height="411" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Это национальные жилища.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2036.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3726 bigpic" alt="IMG_2036" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_2036-1024x841.jpg" width="550" height="451" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Внутри сидят национальные девушки и делают национальные изделия. Говорят на франсе и хихикают.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2041.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3727 bigpic" alt="IMG_2041" src="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_2041-768x1024.jpg" width="550" height="733" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Не сказать что я большой любитель музеев, прогулка понравилась. Еще надо исходить из общего количества достопримечательностей в Руанде. Более половины это музеи геноцида, на любителя. Все такие здесь надо смотреть природу.&lt;/p&gt;
&lt;p&gt;Через два часа я уже ехал в Кигали, куда и добрался под вечер.&lt;/p&gt;
&lt;p&gt;Перепаковал свои вещи, и собрался в аэропорт, где дождался регистрации и вылета. Забавный был выход на посадку, вроде солидный гейт, с корридором, а за ним сразу летное поле. Для посадки пассажиры шли пешком через все взлетное поле, самолет надо было выбрать методом тыка &lt;img src='http://cdn4.a32.me/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;p&gt;Все-таки рейс Стамбул-Кигали-Кампала немного странный. Садимся мы в салон, там уже все сидят. Летим полчаса до Кампалы  столица Уганды. Там почти все выходят. Самолет убирают, пылесосят, через час заходят другие пассажиры и мы летим домой &lt;img src='http://cdn4.a32.me/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;p&gt;Вот такие вот приключения &lt;img src='http://cdn4.a32.me/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /&gt;  Итак все выходные успешно освоены!&lt;/p&gt;
&lt;p&gt;Последний такой &lt;a title="Путешествие по Грузии: Тбилиси" href="http://a32.me/ru/2011/08/puteshestvie-po-gruzii-tbilisi/"&gt;вояж у меня был в Грузии&lt;/a&gt;, рекомендую к прочтению.&lt;/p&gt;
&lt;h2&gt;А дальше?&lt;/h2&gt;
&lt;p&gt;&lt;a title="Руанда – Кигали – Как все начиналось" href="http://a32.me/ru/2013/02/rwanda-kigali-kak-vse-nachinalos/"&gt;Руанда - Кигали - Как все начиналось&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Руанда – Кибуйе (Kibuye)" href="http://a32.me/ru/2013/03/rwanda-kibuye/"&gt;Руанда - Кибуйе (Kibuye)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Руанда – Гисени (Giseniy)" href="http://a32.me/ru/2013/03/rwanda-trevel-giseniy/"&gt;Руанда - Гисени (Giseniy)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Руанда: Акагера – национальный парк" href="http://a32.me/ru/2013/03/rwanda-akagera-national-park/"&gt;Руанда - национальный парк Акагера&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Руанда – парк Nyungwe – Uwinka" href="http://a32.me/ru/2013/04/rwanda-nyungwe-uwinka/"&gt;Руанда - нац. парк Nyungwe - Uwinka&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Руанда – Kamiranzovu Waterfall" href="http://a32.me/ru/2013/04/rwanda-kamiranzovu-waterfall/"&gt;Руанда - Kamiranzovu Waterfall&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Руанда  – Национальный музей в Бутаре" href="http://a32.me/ru/2013/04/ruanda-nacionalnyj-muzej-v-butare/"&gt;Руанда - Национальный музей в Бутаре&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://a32.me/ru/2013/02/rwanda-kamiranzovu-waterfall/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-02-21T18:02:03+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>Руанда – Kamiranzovu Waterfall</title>
        <link>http://a32.me/ru/2013/02/rwanda-kamiranzovu-waterfall/</link>
        <description>&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_1837.jpg"&gt;&lt;img class="alignleft" alt="IMG_1837" src="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_1837-1024x768.jpg" width="198" height="148" /&gt;&lt;/a&gt;На второй день в Nyungwe парке я запланировал сходить на водопад. Одна проблема, у меня небыло достаточно наличности USD для оплаты, надежда была на карточку Visa. Когда пришел на ресепшн, оказалось нет электричества, но апаратик оказался с батарейкой и моя транзакция прошла успешно! Это был опредленно мой день!&lt;/p&gt;
&lt;p&gt;&lt;span id="more-3399"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Утром на ресепшене.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_1623.jpg"&gt;&lt;img alt="IMG_1623" src="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_1623.jpg" width="570" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;В группе я оказался опять один.  Познакомился со своим гидом, Кристианом. Он хорошо разбирался во всех местных видах флоры и фауны и был просто интересным собеседником. Двинулись в путь около 9.00, весь маршрут занимает примерно 4-5 часов.&lt;/p&gt;
&lt;p&gt;Так, ведя неспешные беседы и пересекая чайные плантации,  мы продвигались к настоящему дождевому лесу.  Плантации здесь выполняют роль своеобразной буферной зоны для животных и как защита от браконьеров.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_17341.jpg"&gt;&lt;img alt="IMG_1734" src="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_17341-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Муравьи, специально снял с большой выдержкой, бегали ну очень быстро!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_1707.jpg"&gt;&lt;img alt="IMG_1707" src="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_1707-1024x792.jpg" width="550" height="425" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;В нашей Молдавии тут наверняка бы рос виноград.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_1722.jpg"&gt;&lt;img alt="IMG_1722" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_1722-1024x761.jpg" width="550" height="408" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Дорога через дождевой лес очень насыщена и интересна. Количество живности поражает. Все влажное и обросло мхом.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_1765.jpg"&gt;&lt;img alt="IMG_1765" src="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_1765-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Я спокойно передвигался в футболке, ничего не летало и не кусало.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_1764.jpg"&gt;&lt;img alt="IMG_1764" src="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_1764-1024x844.jpg" width="550" height="453" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_1791.jpg"&gt;&lt;img alt="IMG_1791" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_1791-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_1873.jpg"&gt;&lt;img class="size-large wp-image-3736 aligncenter" alt="IMG_1873" src="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_1873-1024x727.jpg" width="550" height="390" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Есть и грибы, но местные в них не разбираются и в пищу не употребляют.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_1914.jpg"&gt;&lt;img class="aligncenter size-large wp-image-3737" alt="IMG_1914" src="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_1914-1024x1006.jpg" width="550" height="540" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Вот так идёшь и вдруг за поворотом сидит птица:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_1895.jpg"&gt;&lt;img alt="IMG_1895" src="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_1895-1024x845.jpg" width="550" height="453" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Или упало что-то на голову, а там, наверху blue monkey.&lt;/p&gt;
&lt;p&gt;Оказывается шимпанзе каждую ночь себе строят гнездо для ночлега, кажоый раз новое. Гнездо выглядит внушительно.&lt;/p&gt;
&lt;h2&gt;Водопад Kamiranzovu waterfall&lt;/h2&gt;
&lt;p&gt;Грохот водапада начинаешь слышать издалека, потом карабкаешся по камняь вдоль речки.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_1804.jpg"&gt;&lt;img alt="IMG_1804" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_1804-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_1841.jpg"&gt;&lt;img alt="IMG_1841" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_1841-1024x631.jpg" width="550" height="338" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Сам водапад может не такой высокий, но мощь с которой падает вода и то как близко можно подойти создает сильное впечатление!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_1837.jpg"&gt;&lt;img alt="IMG_1837" src="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_1837-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Обратно пошли другой дорогой, также через лес. В беседе моего гида поразил тот факт, что мы вырашивает цветы дома в горшках. Все не мог понять, почему в горшках, а не на улице. Дети вечного лета &lt;img src='http://cdn4.a32.me/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;p&gt;Просто большое дерево. Интерсный факт, в климате в Руанде, эвкалипты тут растут как на дрожжах, типа как сорняки. Большое дерево которое у нас вырастает за 15-20 лет, тут растет 5-6. Так что с дровами проблем тоже нет.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_1927.jpg"&gt;&lt;img alt="IMG_1927" src="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_1927-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_1841.jpg"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;После 4-х часов на ногах, было только одно желание, побыстрее домой - отдыхать. НО, гид рассказал мне про чайную фабрику неподалеку, и решил я туда заскочить. Если вы вернулся в отель, точно бы не сдвинулся с места.&lt;/p&gt;
&lt;h2&gt;Чайная фабрика&lt;/h2&gt;
&lt;p&gt;Фабрику нашел быстро.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_1934.jpg"&gt;&lt;img alt="IMG_1934" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_1934-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Пришел, спросил охранника, что хочу посмотреь как делают чай. Он быстро нашел шефа и он мне организовал 15 минутный променад. Итак основные шаги.&lt;/p&gt;
&lt;p&gt;Чай растет вот так. На вкус как обычный лист, кислый и противный. Собирают ТОЛЬКО верхние 3 листочка, вручную.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_1972.jpg"&gt;&lt;img alt="IMG_1972" src="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_1972-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Свеже собранный чай привозят на таких грузовичках и выгружают в сушилки.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_1938.jpg"&gt;&lt;img alt="IMG_1938" src="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_1938-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Сушат около 8 часов, затем перегружают в такие же сушилки на втором этаже и досушивают еще часов 10.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_1940.jpg"&gt;&lt;img alt="IMG_1940" src="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_1940-1024x791.jpg" width="550" height="424" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Все еще зеленые и подсушение(вялые) листья измельчают. Здесь уже чуствуется чайный аромат, да КАКООООЙ!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_1943.jpg"&gt;&lt;img alt="IMG_1943" src="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_1943-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Измельчают все мельче и мельче. Затем чай попадает на конвеер,  где движется очень медленно, около 2х часов.&lt;/p&gt;
&lt;p&gt;Здесь и происходит естественная ферментация под действием кислорода, видно что был зеленый, а становиться коричевный.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/04/IMG_1945.jpg"&gt;&lt;img alt="IMG_1945" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_1945-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Затем эта каша попадает в гигантскую сушилку. После сушки чай сортируют через многочисленные сита. Получается все от полной соломы до высших сортов чая.&lt;/p&gt;
&lt;p&gt;Высший сорт этот тот который самый крупный.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn3.a32.me/wp-content/uploads/2013/04/IMG_1957.jpg"&gt;&lt;img alt="IMG_1957" src="http://cdn2.a32.me/wp-content/uploads/2013/04/IMG_1957-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Все это потребляет немерянное количество дров!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_1967.jpg"&gt;&lt;img alt="IMG_1967" src="http://cdn1.a32.me/wp-content/uploads/2013/04/IMG_1967-1024x768.jpg" width="550" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Экскурсия меня вымотала окончательно, теперь в отель, ужинать и спать. Устал я зверски.&lt;/p&gt;
&lt;p&gt;А завтра остался еще один день отпуска.&lt;/p&gt;
&lt;h2&gt;А дальше?&lt;/h2&gt;
&lt;p&gt;&lt;a title="Руанда – Кигали – Как все начиналось" href="http://a32.me/ru/2013/02/rwanda-kigali-kak-vse-nachinalos/"&gt;Руанда - Кигали - Как все начиналось&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Руанда – Кибуйе (Kibuye)" href="http://a32.me/ru/2013/03/rwanda-kibuye/"&gt;Руанда - Кибуйе (Kibuye)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Руанда – Гисени (Giseniy)" href="http://a32.me/ru/2013/03/rwanda-trevel-giseniy/"&gt;Руанда - Гисени (Giseniy)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Руанда: Акагера – национальный парк" href="http://a32.me/ru/2013/03/rwanda-akagera-national-park/"&gt;Руанда - национальный парк Акагера&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Руанда – парк Nyungwe – Uwinka" href="http://a32.me/ru/2013/04/rwanda-nyungwe-uwinka/"&gt;Руанда - нац. парк Nyungwe - Uwinka&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Руанда – Kamiranzovu Waterfall" href="http://a32.me/ru/2013/04/rwanda-kamiranzovu-waterfall/"&gt;Руанда - Kamiranzovu Waterfall&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Руанда  – Национальный музей в Бутаре" href="http://a32.me/ru/2013/04/ruanda-nacionalnyj-muzej-v-butare/"&gt;Руанда - Национальный музей в Бутаре&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://a32.me/2013/02/php-html-css-javascript-editor-ide-codelobster-php-edition/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-02-12T06:00:25+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>PHP, HTML, CSS, JavaScript editor (IDE) – Codelobster PHP Edition</title>
        <link>http://a32.me/2013/02/php-html-css-javascript-editor-ide-codelobster-php-edition/</link>
        <description>&lt;h2&gt;This is advertising post&lt;/h2&gt;
&lt;div align="center"&gt;&lt;img title="Free PHP, HTML, CSS, JavaScript editor (IDE) - Codelobster PHP Edition" alt="Free PHP, HTML, CSS, JavaScript editor (IDE) - Codelobster PHP Edition" src="http://www.codelobster.com/images/clphped.gif" width="582" height="420" /&gt;&lt;/div&gt;
&lt;div align="center"&gt;&lt;span id="more-3308"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p align="left"&gt;For valuable work on creation of sites you need a good comfortable editor necessarily. There are many requiring paid products for this purpose, but we would like to select free of charge very functional and at the same time of simple in the use editor - &lt;strong&gt;&lt;a href="http://www.codelobster.com/"&gt;Codelobster PHP Edition&lt;/a&gt;&lt;/strong&gt; .&lt;/p&gt;
&lt;ul&gt;Let us consider some important possibilities and advantages of this program:&lt;/p&gt;
&lt;li&gt;All &lt;strong&gt;code highlights&lt;/strong&gt; depending on a type, the also mixed code is thus supported,&lt;br /&gt;
so the area of HTML will be highlighted as HTML, PHP as PHP, and Javascript as Javascript in a the same file.&lt;br /&gt;
Thre is possibility of choice from color schemes, including popular IDEs.&lt;/li&gt;
&lt;li&gt;Powerful &lt;strong&gt;autocompletion for HTML, PHP, CSS and Javascript&lt;/strong&gt;, including HTML5 and CSS3.&lt;br /&gt;
For PHP the structure of project is fully recognized, and the complete list of methods falls out in the proper places.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTML/CSS&lt;/strong&gt; inspector on the type of Firebug, which allows easily to correlate the selected elements of&lt;br /&gt;
page with a code and proper style.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Context help&lt;/strong&gt; on all supported languages. By pressing F1 key the page with detailed description for current tag, attribute or function will be opened.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PHP debugger&lt;/strong&gt;. PHP debugger allows to execute PHP scripts incrementally, watching the values of all&lt;br /&gt;
variables in every line.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQL manager&lt;/strong&gt; allows to produce all necessary actions with a database - to add, delete, edit a structure&lt;br /&gt;
and records in tables, to export data, execute SQL queries. Highlighting and autocompletion works for SQL files also.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Support of FTP&lt;/strong&gt; allows to work straight with a remote server and to do all necessary changes with files;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The portable option&lt;/strong&gt; allows to use editor without the preliminary installation.&lt;/li&gt;
&lt;li&gt;Other useful utilities: pair highlighting, possibility of blocks selection, collapsing,&lt;br /&gt;
tooltips, navigation on descriptions of functions and included files at withholding of the key of CTRL,&lt;br /&gt;
viewing of structure of files and project, preview in a browser, book-marks, and all other standard&lt;br /&gt;
possibilities for work with a code.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Also there are special plugins for work with&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;CMS: &lt;strong&gt;Drupal, Joomla&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;PHP frameworks: &lt;strong&gt;CakePHP, CodeIgniter, Symfony, Yii&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;JavaScript libraly: &lt;strong&gt;JQuery&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WordPress&lt;/strong&gt; blogging engine&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Smarty&lt;/strong&gt; template engine&lt;/li&gt;
&lt;/ul&gt;
&lt;table id="Table2" width="100%"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Developer&lt;/td&gt;
&lt;td&gt;Codelobster Software&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web Site&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.codelobster.com/"&gt;http://www.codelobster.com/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Language&lt;/td&gt;
&lt;td&gt;English, Russian, German, Spanish, French, Portuguese&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Supported OS&lt;/td&gt;
&lt;td&gt;Windows 2000, Windows XP, Windows Vista, Windows 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="2"&gt;&lt;b&gt;Try free version:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a onclick="window.open('https://www.regnow.com/checkout/cart/add/12347-11?affiliate_id=605768','_blank');return true;" href="http://www.codelobster.com/download/CodelobsterPHPEditionSetup.exe"&gt;Free PHP, HTML, CSS, JavaScript editor (IDE) - Codelobster PHP Edition&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</description>
    </item>
    <item rdf:about="http://a32.me/2013/01/nosql-parody-say-no-no-and-no/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-01-25T07:21:26+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>NoSQL Parody :)</title>
        <link>http://a32.me/2013/01/nosql-parody-say-no-no-and-no/</link>
        <description>&lt;p&gt;While certainly not in the same class as &lt;a href="http://highscalability.com/blog/2010/9/5/hilarious-video-relational-database-vs-nosql-fanbois.html"&gt;Hilarious Video: Relational Database vs NoSQL Fanbois&lt;/a&gt; or &lt;a href="http://highscalability.com/blog/2009/7/31/nsfw-hilarious-fault-tolerance-cartoon.html"&gt;NSFW: Hilarious Fault-Tolerance Cartoon&lt;/a&gt;, this parody does have some really good moments:&lt;/p&gt;
&lt;p&gt;&lt;iframe width="550" height="309" src="http://www.youtube.com/embed/fXc-QDJBXpw?feature=oembed" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://a32.me/2013/01/ubuntu-12-04-64bit-office-2010-with-wine-solved/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-01-22T06:00:09+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>Ubuntu 12.04 64bit – Office 2010 with Wine [SOLVED]</title>
        <link>http://a32.me/2013/01/ubuntu-12-04-64bit-office-2010-with-wine-solved/</link>
        <description>&lt;p&gt;It works!!! It took me several hours to make it, but I do not regret time spent, I was so sick of running VirtualBox for MS Office.&lt;/p&gt;
&lt;p&gt;&lt;span id="more-3226"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;You need&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ubuntu 12.04 64-bit - which is quite common for desktops.&lt;/p&gt;
&lt;p&gt;MS Office 2010 &lt;strong&gt;32-bit&lt;/strong&gt;, 64bit wont work, it has some issues with msxml.&lt;/p&gt;
&lt;h2&gt;Step1: Install recent wine&lt;/h2&gt;
&lt;pre&gt;&lt;em&gt;sudo add-apt-repository ppa:ubuntu-wine/ppa&lt;/em&gt;
&lt;em&gt;sudo apt-get update&lt;/em&gt;
&lt;em&gt;sudo apt-get install wine1.5&lt;/em&gt;&lt;/pre&gt;
&lt;p&gt;More info on this page &lt;a href="http://www.winehq.org/download/ubuntu"&gt;http://www.winehq.org/download/ubuntu&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Step2: Install Office 32-bit&lt;/h2&gt;
&lt;p&gt;By default on 64bit host system wine emulates Windows 64bit , so before installing MS Office new wine root needs to be created, issue this command from CLI:&lt;/p&gt;
&lt;pre&gt;&lt;em&gt;WINEPREFIX=~/.wine32 WINEARCH=win32 wine setup.exe&lt;/em&gt;&lt;/pre&gt;
&lt;h2&gt;Step3: Unity taskbar icon&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2013/01/wine-unity-icon.png"&gt;&lt;img class="size-full wp-image-3228 alignleft" alt="wine-unity-icon" src="http://cdn4.a32.me/wp-content/uploads/2013/01/wine-unity-icon.png" width="84" height="142" /&gt;&lt;/a&gt;To make icon looks like native application instead of glass of wine do the following:&lt;/p&gt;
&lt;p&gt;1. This is where you will find your icons or place your custom icons in here:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ cd ~/.local/share/icons/hicolor/256x256/apps/
$ ls
1DF1_PicasaPhotoViewer.0.png
.
.
.
29F5_WINWORD.0.png
850A_EXCEL.0.png
AA79_POWERPNT.0.png&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;2. Go to the following directory:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ cd ~/.local/share/applications/wine/Programs/Microsoft\ Office
$ ls
Microsoft Excel 2010.desktop\
Microsoft Office 2010 Tools\
Microsoft PowerPoint 2010.desktop\
Microsoft Word 2010.desktop\
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;3. Edit .desktop files:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ sudo nano Microsoft\ Word\ 2010.desktop
[Desktop Entry]
Name=Microsoft Word 2010
.
.
.
Icon=29F5_WINWORD.0.png (or name of icon as in above folder)
StartupWMClass=WINWORD.EXE&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;4. You are done!&lt;/p&gt;
&lt;h2&gt;Links&lt;/h2&gt;
&lt;p&gt;http://askubuntu.com/questions/39394/change-icon-of-wine-application-in-unity-launcher&lt;/p&gt;
&lt;p&gt;http://www.liberiangeek.net/2012/06/how-to-install-microsoft-office-suite-2010-in-ubuntu-12-04-using-wine-1-5/&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://a32.me/2013/01/making-any-form-ajax-the-easy-way/">
        <dc:format>text/html</dc:format>
        <dc:date>2013-01-08T07:39:33+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>Making any form AJAX – The easy way</title>
        <link>http://a32.me/2013/01/making-any-form-ajax-the-easy-way/</link>
        <description>&lt;p&gt;Forms, forms, forms... This is essential part of the Web and probably main reason why servers-side technology like Perl, PHP appeared. But things didn't change much from the time I wrote my first Form handler using PHP3.0.18.&lt;/p&gt;
&lt;p&gt;In this post I want to share some of my tricks of handling forms. Yes, it requires JavaScript enabled, which, truly speaking, is already a must have for 9.999% of sites for a long time.&lt;/p&gt;
&lt;p&gt;Big advantages is that it really simplifies things on client and server side. Welcome reading...&lt;/p&gt;
&lt;p&gt;&lt;span id="more-2789"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;Making form AJAX&lt;/h2&gt;
&lt;p&gt;AJAX form has several good advantages. Page does not reload - no need to regenerate form values or other elements. User clearly see that something happens after submit is clicked via progress indicator.&lt;/p&gt;
&lt;p&gt;For sure, today, its waste of time trying to use one of the following things: XMLHTTPRequest, readyState, etc.. Its framework time, so welcome &lt;strong&gt;jQuery Form Plugin&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;See the beaaty of this soultion, one call and any form turns into AJAX form.&lt;/p&gt;

&lt;div class="wp_syntax"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="code"&gt;&lt;pre class="php" style="font-family:monospace;"&gt;&lt;span style="color: #339933;"&gt;&amp;lt;&lt;/span&gt;form action&lt;span style="color: #339933;"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;comment.php&amp;quot;&lt;/span&gt; method&lt;span style="color: #339933;"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;post&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;&amp;gt;&lt;/span&gt;       
   Name&lt;span style="color: #339933;"&gt;:&lt;/span&gt; &lt;span style="color: #339933;"&gt;&amp;lt;&lt;/span&gt;input type&lt;span style="color: #339933;"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt; name&lt;span style="color: #339933;"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;name&amp;quot;&lt;/span&gt; &lt;span style="color: #339933;"&gt;/&amp;gt;&lt;/span&gt;      
   Comment&lt;span style="color: #339933;"&gt;:&lt;/span&gt; &lt;span style="color: #339933;"&gt;&amp;lt;&lt;/span&gt;textarea name&lt;span style="color: #339933;"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;comment&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;textarea&lt;span style="color: #339933;"&gt;&amp;gt;&lt;/span&gt;      
   &lt;span style="color: #339933;"&gt;&amp;lt;&lt;/span&gt;input type&lt;span style="color: #339933;"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;submit&amp;quot;&lt;/span&gt; value&lt;span style="color: #339933;"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;Submit Comment&amp;quot;&lt;/span&gt; &lt;span style="color: #339933;"&gt;/&amp;gt;&lt;/span&gt;  
&lt;span style="color: #339933;"&gt;&amp;lt;/&lt;/span&gt;form&lt;span style="color: #339933;"&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #339933;"&gt;&amp;lt;&lt;/span&gt;script&lt;span style="color: #339933;"&gt;&amp;gt;&lt;/span&gt;  
$&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'form'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;.&lt;/span&gt;ajaxForm&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;       
   alert&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;Thank you for your comment!&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;     
&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;  
&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Form data is submitted via AJAX and handler is called after success call.&lt;/p&gt;
&lt;h2&gt;Data validation in Forms&lt;/h2&gt;
&lt;p&gt;Why should I call form validation tricky? Good UI immediately shows any error to the user, allowing to fix them before form submit, this requires JavaScript or &lt;strong&gt;client-side data validation&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;However &lt;strong&gt;clinet-side only &lt;/strong&gt; is a very &lt;strong&gt;bad&lt;/strong&gt; idea. Wrong data can still be submitted using other ways like data tamper, javascript debugger, etc.. and it may have a very negative effect on data consistency or data security. So server side validation is a must.&lt;/p&gt;
&lt;p&gt;Implementing two sets of validation rules on client and on the server is time consuming, considering different languages are used.&lt;/p&gt;
&lt;p&gt;Solution?  AJAX submitted form with server-side validation and client-side UI.&lt;/p&gt;
&lt;p&gt;Simplified solution below:&lt;/p&gt;

&lt;div class="wp_syntax"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="code"&gt;&lt;pre class="javascript" style="font-family:monospace;"&gt;$&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #3366CC;"&gt;'form'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;.&lt;span style="color: #660066;"&gt;ajaxForm&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000066; font-weight: bold;"&gt;function&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;data&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;      
   &lt;span style="color: #000066; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;data.&lt;span style="color: #660066;"&gt;error&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
      alert&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #3366CC;"&gt;&amp;quot;Please coorect error: &amp;quot;&lt;/span&gt; &lt;span style="color: #339933;"&gt;+&lt;/span&gt; data.&lt;span style="color: #660066;"&gt;error&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;     
   &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;else&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
      alert&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #3366CC;"&gt;&amp;quot;Thank you for your coment&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
      location.&lt;span style="color: #660066;"&gt;href&lt;/span&gt;&lt;span style="color: #339933;"&gt;=&lt;/span&gt;&lt;span style="color: #3366CC;"&gt;&amp;quot;/comments/list&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
   &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This way I implement only server-side validation, so its impossible to submit wrong data and still it works without page reload and has good user experience.&lt;/p&gt;
&lt;p&gt;Yes, it is very easy to extend it to make UI fancier, like highlighting input boxes with errors or displying additional text messages.&lt;/p&gt;
&lt;h2&gt;Easy edit form - JSON deserialize&lt;/h2&gt;
&lt;p&gt;When editing some data, users expects data-edit-form to be pre-filled with OLD values, that is obvious. What is not good is to write code for this. Its easy for text inputs:&lt;/p&gt;
&lt;p&gt;&amp;lt;input type="text" name="company" value="&amp;lt;?php echo $company?&amp;gt;" /&amp;gt;&lt;/p&gt;
&lt;p&gt;or for those who has security in mind&lt;/p&gt;
&lt;p&gt;&amp;lt;input type="text" name="company" value="&amp;lt;?php echo htmlspecialchars($company)?&amp;gt;" /&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;But not so clear for &amp;lt;select&amp;gt; element.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;My solution is&lt;/strong&gt;: meet the jquery deserialize plugin. Now fill your form is easy:&lt;/p&gt;

&lt;div class="wp_syntax"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="code"&gt;&lt;pre class="php" style="font-family:monospace;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;?php&lt;/span&gt;
&lt;span style="color: #000088;"&gt;$data&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #990000;"&gt;array&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;
  &lt;span style="color: #0000ff;"&gt;&amp;quot;company&amp;quot;&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'Corporation Inc'&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt; 
&lt;span style="color: #000000; font-weight: bold;"&gt;?&amp;gt;&lt;/span&gt;
&amp;nbsp;
&amp;lt;form action=&amp;quot;edit.php&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;       
   Company: &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;company&amp;quot; /&amp;gt;      
   &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Submit Comment&amp;quot; /&amp;gt;  
&amp;lt;/form&amp;gt;
&amp;nbsp;
&amp;lt;script&amp;gt;  
   $('form').deserialize(&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;?=&lt;/span&gt; &lt;span style="color: #990000;"&gt;json_encode&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$data&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;?&amp;gt;&lt;/span&gt;);
&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Combining these three tricks greatly simplifies handling forms using PHP/Javascript.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://malsup.com/jquery/form/" target="_blank"&gt;jQuery ajax form plugin&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/dejw/jquery.deserialize" target="_blank"&gt;jQuery deserialize plugin&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://a32.me/2012/12/settings-link-in-wordpress-plugin/">
        <dc:format>text/html</dc:format>
        <dc:date>2012-12-11T07:35:35+01:00</dc:date>
        <dc:source>http://a32.me/</dc:source>
        <dc:creator>Constantin Bosneaga</dc:creator>
        <title>Settings link in WordPress plugin</title>
        <link>http://a32.me/2012/12/settings-link-in-wordpress-plugin/</link>
        <description>&lt;p&gt;To be clear what I am talking about see the image below. It has nice Settings link which leads to plugin settings  from plugin list.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn4.a32.me/wp-content/uploads/2012/12/plugin_settings.png"&gt;&lt;img class="aligncenter size-full wp-image-3092" title="plugin_settings" src="http://cdn4.a32.me/wp-content/uploads/2012/12/plugin_settings.png" alt="" width="553" height="50" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Why I think this is important? Usually plugin creates new submenu in Settings, but sometimes it uses different name and it is not easy to find one. In case 20+ plugins are installed, which is a real case, it is not easy to remember where all these settings are stored.&lt;/p&gt;
&lt;p&gt;I consider &lt;strong&gt;Settings link  as a must have thing&lt;/strong&gt; when developing plugin and its pretty easy to add it, see below&lt;/p&gt;
&lt;p&gt;&lt;span id="more-3091"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Probably in your plugin you already added setup page through &lt;strong&gt;add_submenu_page&lt;/strong&gt; function.&lt;/p&gt;
&lt;p&gt;Next thing is to add Settings menu to plugin page:&lt;/p&gt;

&lt;div class="wp_syntax"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="code"&gt;&lt;pre class="php" style="font-family:monospace;"&gt;add_filter&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;
   &lt;span style="color: #0000ff;"&gt;'plugin_action_links_'&lt;/span&gt; &lt;span style="color: #339933;"&gt;.&lt;/span&gt; plugin_basename&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;__FILE__&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;  
   &lt;span style="color: #0000ff;"&gt;'wp_action_links'&lt;/span&gt; 
&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;


&lt;div class="wp_syntax"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="code"&gt;&lt;pre class="php" style="font-family:monospace;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;function&lt;/span&gt; wp_action_links&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$links&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
   &lt;span style="color: #000088;"&gt;$settings_link&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'&amp;lt;a href=&amp;quot;'&lt;/span&gt; &lt;span style="color: #339933;"&gt;.&lt;/span&gt; menu_page_url&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'plugin_setup'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #009900; font-weight: bold;"&gt;false&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #339933;"&gt;.&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'&amp;quot;&amp;gt;'&lt;/span&gt;&lt;span style="color: #339933;"&gt;.&lt;/span&gt; esc_html&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;__&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'Settings'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #339933;"&gt;.&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;'&amp;lt;/a&amp;gt;'&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
   &lt;span style="color: #990000;"&gt;array_unshift&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000088;"&gt;$links&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #000088;"&gt;$settings_link&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
   &lt;span style="color: #b1b100;"&gt;return&lt;/span&gt; &lt;span style="color: #000088;"&gt;$links&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Voila!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
    </item>
</rdf:RDF>
