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

<channel>
	<title>Паутина фриланса &#187; web-разработки</title>
	<atom:link href="http://zlob.in/category/web-razrabotki/feed/" rel="self" type="application/rss+xml" />
	<link>http://zlob.in</link>
	<description>Information must be free</description>
	<lastBuildDate>Fri, 03 Sep 2010 04:29:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Хранимые процедуры в MySQL</title>
		<link>http://zlob.in/2010/xranimye-procedury-v-mysql/</link>
		<comments>http://zlob.in/2010/xranimye-procedury-v-mysql/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 07:08:59 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=853</guid>
		<description><![CDATA[Раньше мне как-то не приходилось работать с процедурами в MySQL. Решил заполнить этот пробел хоть каким-то практическим опытом. Хранимые процедуры появились в MySQL начиная с пятой версии. У меня дома как раз установлена версия 5.1. Хранимые процедуры представляют собой набор команд SQL, которые могут компилироваться и храниться на сервере. Таким образом, вместо того, чтобы хранить [...]]]></description>
			<content:encoded><![CDATA[<p>Раньше мне как-то не приходилось работать с процедурами в MySQL. Решил заполнить этот пробел хоть каким-то практическим опытом. Хранимые процедуры появились в MySQL начиная с пятой версии. У меня дома как раз установлена версия 5.1.</p>
<blockquote><p>Хранимые процедуры представляют собой набор команд SQL, которые могут компилироваться и храниться на сервере. Таким образом, вместо того, чтобы хранить часто используемый запрос, клиенты могут ссылаться на соответствующую хранимую процедуру. Это обеспечивает лучшую производительность, поскольку данный запрос должен анализироваться только однажды и уменьшается трафик между сервером и клиентом. Концептуальный уровень можно также повысить за счет создания на сервере библиотеки функций.</p></blockquote>
<p>Для примера приведу написанный мной код процедуры, которая заполняет таблицу</p>
<blockquote><p>· id: INT (AI)<br />
· name: VARCHAR (&laquo;тест&raquo;)<br />
· desc: LONGTEXT (&laquo;текст&raquo;)<br />
· uid: INT (рандом)</p></blockquote>
<p>случайными значениями:</p>
<pre><code>DELIMITER $$
DROP PROCEDURE IF EXISTS `p1`$$
CREATE PROCEDURE `p1`()
BEGIN
	DECLARE id INT;
	DECLARE my_name VARCHAR(255);
	DECLARE description LONGTEXT;
	DECLARE uid INT;
	SET id = 1;
	WHILE id &lt; 5 DO
		SET my_name = CONCAT_WS(' ', MD5( RAND() ), id);
		SET description = CONCAT_WS(' ', 'is desc', my_name);
		SET uid = FLOOR( 1 + RAND() * ( 250000 - 1 ));
		INSERT INTO my_table VALUES (id,my_name,description,uid);
		SET id = id + 1;
	END WHILE;
END$$
DELIMITER ;
</code></pre>
<p>Основная проблема с которой я столкнулся при написании &#8211; это то, что при добавлении вываливалась ошибка. Однако это всё было решено выставлением разделителя:</p>
<pre><code>DELIMITER $$</code></pre>
<p>Вот в <a href="http://www.zoonman.ru/library/mysql_sr_and_t.htm" target="_blank">этой</a> статьей очень подробно описано что такое хранимые процедуры и с чем их есть.<br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2010/optimizaciya/" rel="bookmark" title="8 января 2010">Оптимизация</a></li>
<li><a href="http://zlob.in/2010/konverter-sqlite-to-mysql/" rel="bookmark" title="28 июля 2010">Конвертер SQLite to Mysql</a></li>
<li><a href="http://zlob.in/2009/ustnovka-nginxeaccelerator-i-obnovlenie-phpmysqlapache-na-centos/" rel="bookmark" title="8 октября 2009">Установка nginx,eaccelerator и обновление php,mysql,apache на CentOS</a></li>
<li><a href="http://zlob.in/2009/centos/" rel="bookmark" title="22 сентября 2009">CentOS</a></li>
<li><a href="http://zlob.in/2010/v-prodolzhenie-o-serverax/" rel="bookmark" title="25 августа 2010">В продолжение о серверах</a></li>
</ul>
<p><!-- Similar Posts took 3.279 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2010/xranimye-procedury-v-mysql/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Конвертер SQLite to Mysql</title>
		<link>http://zlob.in/2010/konverter-sqlite-to-mysql/</link>
		<comments>http://zlob.in/2010/konverter-sqlite-to-mysql/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 06:18:11 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=857</guid>
		<description><![CDATA[Понадобилось мне конвертировать базу из SQLite в мускул. Начав искать инфу наткнулся на платный софт. На офф. сайте предлагается изменение через командную строку. Но зачем нам такие сложности? Есть решение намного проще, быстрее, а главное &#8211; бесплатно. Для этого нам понадобятся: браузер Firefox и сама база которую надо переконвертировать. Открываем Firefox &#8211; и устанавливаем дополнение [...]]]></description>
			<content:encoded><![CDATA[<p>Понадобилось мне конвертировать базу из SQLite в мускул. Начав искать инфу наткнулся на платный софт. На <a href="http://www.sqlite.org/sqlite.html" target="_blank">офф. сайте</a> предлагается изменение через командную строку. Но зачем нам такие сложности?</p>
<p>Есть решение намного проще, быстрее, а главное &#8211; бесплатно. Для этого нам понадобятся: браузер Firefox и сама база которую надо переконвертировать.</p>
<ul>
<li>Открываем Firefox &#8211; и устанавливаем дополнение &laquo;SQLite Manager&raquo;</li>
<li>После установки и перезапуска браузера переходим в меню &laquo;Инструменты -&gt; SQLite Manager&raquo;</li>
<li>Жмём значёк с открытой папкой &laquo;Connect Database&raquo; и выбираем нашу базу.</li>
<li>Выполняем пункт меню &laquo;Database -&gt; Export Database &laquo;. Утилита выдаст нам окно созрания *.sql файла.</li>
<li>Теперь нужно пройтись по файлу и провести конвертацию SQLite синтаксиса в Mysql, например  AUTOINCREMENT   заменяем на AUTO_INCREMENT.</li>
</ul>
<p>Бесплатная конвертация из SQLite в Mysql &#8211; это очень легко!<br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2009/centos/" rel="bookmark" title="22 сентября 2009">CentOS</a></li>
<li><a href="http://zlob.in/2010/optimizaciya/" rel="bookmark" title="8 января 2010">Оптимизация</a></li>
<li><a href="http://zlob.in/2008/podderzhi-rossiyu-progolosuj-za-rf/" rel="bookmark" title="28 мая 2008">Поддержи Россию, проголосуй за .РФ!</a></li>
<li><a href="http://zlob.in/2010/xranimye-procedury-v-mysql/" rel="bookmark" title="26 августа 2010">Хранимые процедуры в MySQL</a></li>
<li><a href="http://zlob.in/2008/poleznye-plaginy-dlya-wordpress/" rel="bookmark" title="5 мая 2008">Полезные плагины для WordPress</a></li>
</ul>
<p><!-- Similar Posts took 3.029 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2010/konverter-sqlite-to-mysql/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Говнокод</title>
		<link>http://zlob.in/2010/govnokod/</link>
		<comments>http://zlob.in/2010/govnokod/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 11:42:40 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=859</guid>
		<description><![CDATA[Совершенно случайно открыл для себя замечательный ресурс с КУЧАМИ&#8230; просто морем говнокода - линк. Для программистов зайти туда полистать код &#8211; как баш.орг почитать. Я там даже стих нашёл ) Растворился в похапе, как в океане-море Крыша едет и течет, чао, бомбино, сорри.. Каша кода и шаблонов, где найти энкодер? Разгребу за &#171;Доширак&#187;, я ведь быдлокодер!! [...]]]></description>
			<content:encoded><![CDATA[<p>Совершенно случайно открыл для себя замечательный ресурс с КУЧАМИ&#8230; просто морем говнокода - <a href="http://govnokod.ru" target="_blank">линк</a>.</p>
<p>Для программистов зайти туда полистать код &#8211; как баш.орг почитать. Я там даже стих нашёл )</p>
<blockquote><p>Растворился в похапе, как в океане-море<br />
Крыша едет и течет, чао, бомбино, сорри..<br />
Каша кода и шаблонов, где найти энкодер?<br />
Разгребу за &laquo;Доширак&raquo;, я ведь быдлокодер!!</p>
<p>Этот код писал индус, сука, злоебучий<br />
Буду все писать с нуля, я намного круче!<br />
Левой код пишу в блокноте, правой с телкой в аське..<br />
Называй меня теперь быдлокодер Вася!!</p></blockquote>
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">похожие записи не найдены
</ul>
<p><!-- Similar Posts took 0.800 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2010/govnokod/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Требуется FLASH-developer</title>
		<link>http://zlob.in/2010/trebuetsya-flash-developer/</link>
		<comments>http://zlob.in/2010/trebuetsya-flash-developer/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 03:44:52 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=845</guid>
		<description><![CDATA[На постоянную удалённую работу в международную компанию мы ищем Flash-разработчика. Предлагаем: Полный рабочий день; Дружный и профессиональный коллектив; 100% занятость в течении 8 часов по проектам компании; Зарплату в размере от 30.000 до 40.000 рублей ( ~180.000 тенге ) &#8211; по итогам собеседования для граждан РФ – официальное оформление по ТК, белая зп, отпуск; для [...]]]></description>
			<content:encoded><![CDATA[<p>На постоянную удалённую работу в международную компанию мы ищем Flash-разработчика.</p>
<p><strong>Предлагаем:</strong></p>
<ul>
<li><span style="font-size: small;">Полный рабочий день;</span></li>
<li><span style="font-size: small;">Дружный и профессиональный коллектив;</span></li>
<li><span style="font-size: small;">100% занятость в течении 8 часов по проектам компании;</span></li>
<li><span style="font-size: small;">Зарплату в размере от 30.000 до 40.000 рублей ( ~180.000 тенге ) &#8211; по итогам собеседования</span></li>
<li><span style="font-size: small;">для граждан РФ – официальное оформление по ТК, белая зп, отпуск;</span></li>
<li><span style="font-size: small;">для граждан из других стран – оформление оговаривается в индивидуальном порядке в зависимости от страны</span></li>
</ul>
<p><strong>Требования:</strong></p>
<ul>
<li><span style="font-size: small;">Отличное знание Action Script 3(2);</span></li>
<li><span style="font-size: small;">Flash UI;</span></li>
<li><span style="font-size: small;">создание анимации;</span></li>
<li><span style="font-size: small;">знание разговорного английского;</span></li>
<li><span style="font-size: small;">наличие skype;</span></li>
<li><span style="font-size: small;">большим плюсом будет знание всяческих API (Vkontakte, Facebook и т.д.);</span></li>
<li><span style="font-size: small;">приветствуется знание html, php, asp;</span></li>
<li><span style="font-size: small;"><span style="font-family: Verdana, sans-serif; vertical-align: top; outline-style: none; outline-width: initial; outline-color: initial; font-size: 14px; color: red; padding: 0px; margin: 0px;">Обязательно</span> наличие портфолио.</span></li>
</ul>
<p><strong>Контакты:</strong></p>
<p>skype: <a href="callto:creastar-group" target="_self">creastar-group</a></p>
<p><em><strong><span style="color: #c0c0c0;">Вакансия действительна в течении данной недели 13.07 &#8211; 16.07.</span></strong></em><br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2009/html-5-ne-za-gorami/" rel="bookmark" title="29 июля 2009">HTML 5 не за горами</a></li>
<li><a href="http://zlob.in/2009/desyatka-samyx-krasivyx-i-originalnyx-sajtov/" rel="bookmark" title="9 мая 2009">Десятка самых красивых и оригинальных сайтов (ч1)</a></li>
<li><a href="http://zlob.in/2009/podklyuchenie-po-ssh/" rel="bookmark" title="2 февраля 2009">Подключение по ssh</a></li>
<li><a href="http://zlob.in/2008/kreastar-na-award/" rel="bookmark" title="8 июня 2008">КреаСтар на Award</a></li>
<li><a href="http://zlob.in/2008/xss-sdox-dobem/" rel="bookmark" title="9 мая 2008">XSS сдох? Добьем!</a></li>
</ul>
<p><!-- Similar Posts took 2.952 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2010/trebuetsya-flash-developer/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>YouTube API &amp; JavaScript Upload</title>
		<link>http://zlob.in/2010/youtube-api-javascript-upload/</link>
		<comments>http://zlob.in/2010/youtube-api-javascript-upload/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 13:32:59 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=794</guid>
		<description><![CDATA[Задача: залить видео на ютуб при помощи браузера, html и JS и получить статус запроса и ID загруженного видео. Никаких серверных технологий не используется. Only native JS. Задача довольно не тривиальная. И поиск подобной реализации в сети не увенчался успехом. Создано по мотивам AJAX-транспорт Iframe, AjaxFileUpload и YouTube API. Основано на JQuery. Но при желании можно переделать [...]]]></description>
			<content:encoded><![CDATA[<p>Задача: <em>залить видео на ютуб при помощи браузера, html и JS и получить статус запроса и ID загруженного видео.</em></p>
<blockquote><p>Никаких серверных технологий не используется. Only native JS.</p></blockquote>
<p>Задача довольно не тривиальная. И поиск подобной реализации в сети не увенчался успехом. Создано по мотивам <a href="http://javascript.ru/ajax/transport/iframe" target="_blank">AJAX-транспорт Iframe</a>, <a href="http://www.phpletter.com/Our-Projects/AjaxFileUpload/" target="_blank">AjaxFileUpload</a> и <a href="http://code.google.com/intl/ru-RU/apis/youtube/2.0/developers_guide_protocol_audience.html" target="_blank">YouTube API</a>. Основано на JQuery. Но при желании можно переделать под любой другой фреймворк или вообще без использования оных.</p>
<p>Отмечу, что скрипт уже должен иметь TOKEN и  URL, о которых вы можете прочитать в API документации. В данном варианте скрипт разрабатывался для связки:<br />
FLEX(TOKEN, URL)-JS-YOU_TUBE-JS(ID,STATUS)-FLEX</p>
<p>Для начала создадим форму в которой необходимо выбрать файл и нажать кнопку &laquo;Загрузить&raquo;.</p>
<pre><code><span style="white-space: pre;"> </span>&lt;form name="form" id="form-send" action="" method="POST" enctype="multipart/form-data"&gt;
    <span style="white-space: pre;"> </span>&lt;input type="hidden" name="yttoken" id="yttoken" value=""&gt;
    <span style="font-family: monospace; ">     &lt;input type="hidden" name="yturl" id="yturl" value=""&gt;
    </span><span style="font-family: monospace; ">     &lt;input id="fileToUpload" type="file" size="15" name="fileToUpload" class="input"&gt;
     &lt;button class="button" id="buttonUpload"&gt;Залить&lt;/button&gt;
</span><span style="font-family: monospace;">&lt;/form&gt;</span>
</code></pre>
<p>И создаём функцию, которая будет всё это дело обрабатывать.</p>
<pre><code>      function ajaxFileUpload(YT_TOKEN, YT_URL) {
        $.ajaxFileUpload ({
            url:YT_URL,
            token:YT_TOKEN,
            secureuri:false,
            fileElementId:'fileToUpload',
            dataType: 'json',
            success: function (data, status) {
               if ( typeof(data.error) != 'undefined' ) {
                 if ( data.error != '' ) {
                   alert(data.error);
                 } else {
                   alert(data.msg);
                 }
               }
            },
            error: function (data, status, e) {
               // myloc = УРЛ редиректа
               myloc = myloc + '';
               var get_pos = myloc.lastIndexOf("?");
               myloc = myloc.substr(get_pos + 1);
               var status_pos = myloc.lastIndexOf("status=");
               var id_pos = myloc.lastIndexOf("id=");
               var err_pos = myloc.lastIndexOf("error=");

               ret_status = id_pos == -1 ?
               myloc.substr(7,err_pos-8) : myloc.substr(7,id_pos-8);
               ret_id = id_pos == -1 ?
               myloc.substr(err_pos+6) : myloc.substr(id_pos+3);
               alert(ret_status + ',' + ret_id);
            }
          }
        )
        return false;
      }
</code></pre>
<p>Навешиваем на кнопку загрузки выполнение вышеприведённой функции</p>
<pre><code>    $('#buttonUpload').click(function() {
        return ajaxFileUpload($('#yttoken').attr('value'),$('#yturl').attr('value'));
    });
</code></pre>
<p>Суть работы скрипта такова &#8211; юзер выбирает файл на своём компьютере, затем нажимает кнопку &laquo;загрузить&raquo;. И вызывается функция, приведенная выше. Которая выполняет следующие действия &#8211; создаётся iframe и форма при помощи которой мы будем отсылать данные на сервер YouTube</p>
<pre><code>  createUploadIframe: function(id, uri) {
      var frameId = 'jUploadFrame' + id;
      if ( window.ActiveXObject ) {
            var io = document.createElement('&lt;iframe id="' + frameId + '" name="' + frameId + '" /&gt;');
            if ( typeof uri== 'boolean' ){
                  io.src = 'javascript:false';
            } else if ( typeof uri == 'string' ) {
                  io.src = uri;
            }
      } else {
            var io = document.createElement('iframe');
            io.id = frameId;
            io.name = frameId;
      }

      io.style.position = 'absolute';
      io.style.top = '-1000px';
      io.style.left = '-1000px';
      document.body.appendChild(io);
      return io
},

createUploadForm: function(id, fileElementId, YT_URL, YT_TOKEN) {
      var formId = 'jUploadForm' + id;
      var fileId = 'jUploadFile' + id;
      var form = $('&lt;form  action="' + YT_URL + '" method="POST" name="' + formId +
      '" id="' + formId + '" enctype="multipart/form-data"&gt; &lt;input type="hidden"
      name="token" value="' + YT_TOKEN + '"/&gt;&lt;/form&gt;');
      var oldElement = $('#' + fileElementId);
      var newElement = $(oldElement).clone();
      $(oldElement).attr('id', fileId);
      $(oldElement).before(newElement);
      $(oldElement).appendTo(form);
      $(form).css('position', 'absolute');
      $(form).css('top', '-1200px');
      $(form).css('left', '-1200px');
      $(form).appendTo('body');
      return form;
},
</code></pre>
<p>Ну и соответственно функции, которые осуществляют Ajax транспорт и получают данные</p>
<pre><code>
ajaxFileUpload: function(s) {
    s = jQuery.extend({}, jQuery.ajaxSettings, s);
    var id = new Date().getTime()
    var form = jQuery.createUploadForm(id, s.fileElementId, s.url, s.token);
    var io = jQuery.createUploadIframe(id, s.secureuri);
    var frameId = 'jUploadFrame' + id;
    var formId = 'jUploadForm' + id;
    if ( s.global &amp;&amp; ! jQuery.active++ ) {
        jQuery.event.trigger( "ajaxStart" );
    }
    var requestDone = false;
    var xml = {}
    if ( s.global )
        jQuery.event.trigger("ajaxSend", [xml, s]);
    // Ждём ответа
    var uploadCallback = function(isTimeout) {
    var io = document.getElementById(frameId);
    try {
        if( io.contentWindow ) {
            xml.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;
            xml.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;
        } else if ( io.contentDocument ) {
            xml.responseText = io.contentDocument.document.body?io.contentDocument.document.body.innerHTML:null;
            xml.responseXML = io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document;
        }
    } catch(e) {
        myloc = window.frames[frameId].location;
        jQuery.handleError(s, xml, null, e);
        //alert('err1');
    }
    if ( xml || isTimeout == "timeout" ) {
        requestDone = true;
        var status;
        try {
            status = isTimeout != "timeout" ? "success" : "error";
            if ( status != "error" ) {
                var data = jQuery.uploadHttpData( xml, s.dataType );
                if ( s.success )
                    s.success( data, status );
                if( s.global )
                    jQuery.event.trigger( "ajaxSuccess", [xml, s] );
            } else {
                jQuery.handleError(s, xml, status);
            }
        } catch(e) {
        status = "error";
        myloc = window.frames[frameId].location;
        //alert('err3');
        jQuery.handleError(s, xml, status, e);
    }
    // Запрос завершен
    if( s.global ) {
        jQuery.event.trigger( "ajaxComplete", [xml, s] );
    }
    if ( s.global &amp;&amp; ! --jQuery.active ) {
        jQuery.event.trigger( "ajaxStop" );
    }
    // результаты
    if ( s.complete ) {
        s.complete(xml, status);
    }
    jQuery(io).unbind()
    setTimeout(function(){
       try {
            $(io).remove();
            $(form).remove();
        } catch(e) {
            myloc = window.frames[frameId].location;
            jQuery.handleError(s, xml, null, e);
            //alert('err4');
        }
    }, 100)
    xml = null
}}

if ( s.timeout &gt; 0 ) {
    setTimeout(function(){
        if( !requestDone ) uploadCallback( "timeout" );
    }, s.timeout);
}

try {
    // var io = $('#' + frameId);
    var form = $('#' + formId);
    $(form).attr('action', s.url);
    $(form).attr('method', 'POST');
    $(form).attr('target', frameId);
    if ( form.encoding ) {
        form.encoding = 'multipart/form-data';
    } else {
        form.enctype = 'multipart/form-data';
    }
    $(form).submit();
    } catch(e) {
        jQuery.handleError(s, xml, null, e);
    }
    if ( window.attachEvent ) {
        document.getElementById(frameId).attachEvent('onload', uploadCallback);
    } else {
        document.getElementById(frameId).addEventListener('load', uploadCallback, false);
    }
return {abort: function (){}};
},
uploadHttpData: function( r, type ) {
    var data = !type;
    data = type == "xml" || data ? r.responseXML : r.responseText;
    if ( type == "script" )
        jQuery.globalEval( data );
    if ( type == "json" )
        eval( "data = " + data );
    if ( type == "html" )
        jQuery("&lt;div&gt;").html(data).evalScripts();
    //alert($('param', data).each(function(){alert($(this).attr('value'));}));
    return data;
}
</code></pre>
<p>В итоге двое суток работы и задача решена <img src='http://zlob.in/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Ну и прикрепляю исходные коды скрипта. <a href="http://zlob.in/wp-content/uploads/2010/06/a.7z" target="_blank">Скачать</a><br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2008/uskoryaem-rabotu-skriptov-ch1/" rel="bookmark" title="16 мая 2008">Ускоряем работу скриптов ч.1</a></li>
<li><a href="http://zlob.in/2008/smm-ili-vkontakteru-v-dejstvii/" rel="bookmark" title="11 мая 2008">SMM или vkontakte.ru в действии</a></li>
<li><a href="http://zlob.in/2010/ustanavlivaem-mongodb-na-centos-2/" rel="bookmark" title="13 января 2010">Устанавливаем mongoDB на CentOS</a></li>
<li><a href="http://zlob.in/2010/ustanovka-ape-na-centos/" rel="bookmark" title="16 января 2010">Установка APE на CentOS</a></li>
<li><a href="http://zlob.in/2010/biznes-pexota/" rel="bookmark" title="12 февраля 2010">Бизнес-пехота</a></li>
</ul>
<p><!-- Similar Posts took 3.278 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2010/youtube-api-javascript-upload/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Текстовый редактор VI</title>
		<link>http://zlob.in/2010/tekstovyj-redaktor-vi/</link>
		<comments>http://zlob.in/2010/tekstovyj-redaktor-vi/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 03:33:05 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=739</guid>
		<description><![CDATA[В ОС Unix есть свой стандартный текстовый редактор, под названием vi. При работе с сервером очень пригодится знание основных команд. Запустить его просто vi /root/test.txt Существует два режима работы: Командный Режим редактирования По умолчанию запускается командный режим. Для перехода в режим редактирования нажимаем i. Редактируем файл и по окончанию редактирования нажимаем Esc, тем самым возвращаемся [...]]]></description>
			<content:encoded><![CDATA[<p>В ОС Unix есть свой стандартный текстовый редактор, под названием vi. При работе с сервером очень пригодится знание основных команд.</p>
<p>Запустить его просто vi /root/test.txt</p>
<p>Существует два режима работы:</p>
<ul>
<li>Командный</li>
<li>Режим редактирования</li>
</ul>
<p>По умолчанию запускается командный режим. Для перехода в режим редактирования нажимаем i. Редактируем файл и по окончанию редактирования нажимаем Esc, тем самым возвращаемся в командный режим.</p>
<p>Основные команды:<br />
:q — выход<br />
:q! — выход без сохранения файла<br />
:w — сохранить файл на диске<br />
:wq — выход с сохранением файла<br />
:e! — перезагрузить текущий файл<br />
:33 — перепрыгнуть на 33ю строку текстового файла<br />
i — перейти в режим редактирования<br />
u — отменить последнее действие<br />
x — удалить символ под курсором<br />
dd — удалить всю строку<br />
/qso — найти слово qso в тексте после курсора<br />
Esc > :wq > Enter — выйти из файла, сохранив его;<br />
Esc > :q! > Enter — выйти из файла, не сохранив его.</p>
<p>Постовые:</p>
<p>Химчистка дорогостоящих изделий <a href="http://evrohimchistka.ru/">здесь</a>. У нас вы получите отличный результат и превосходный уровень обслуживания.</p>
<p>Для жителей г. Воронеж и гостей города <a href="http://36on.ru/map">карта Воронежа со спутника</a>. Мы не дадим Вам заблудиться.<br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2009/podklyuchenie-po-ssh/" rel="bookmark" title="2 февраля 2009">Подключение по ssh</a></li>
<li><a href="http://zlob.in/2010/ustanavlivaem-mongodb-na-centos-2/" rel="bookmark" title="13 января 2010">Устанавливаем mongoDB на CentOS</a></li>
<li><a href="http://zlob.in/2009/zaparolennyj-vxod-na-sajt/" rel="bookmark" title="27 июля 2009">Запароленный вход на сайт</a></li>
<li><a href="http://zlob.in/2008/dedicated-vs-vds/" rel="bookmark" title="23 июня 2008">Dedicated vs VDS</a></li>
<li><a href="http://zlob.in/2008/smm-ili-vkontakteru-v-dejstvii/" rel="bookmark" title="11 мая 2008">SMM или vkontakte.ru в действии</a></li>
</ul>
<p><!-- Similar Posts took 2.921 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2010/tekstovyj-redaktor-vi/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Новый сервак</title>
		<link>http://zlob.in/2010/novyj-servak/</link>
		<comments>http://zlob.in/2010/novyj-servak/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 03:43:31 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=706</guid>
		<description><![CDATA[Не так давно было решено под один крупный проект взять свой сервер, благо, что в этом месяце обещают открыть ДЦ в Павлодаре. И вот наконец свершилось &#8211; Нам пришёл новый сервак. Долго думали, откуда и какой заказать в итоге выбор пал на SuperMicro, а доставку решили сделать из Алматы. Сначала думали взять HP, но они [...]]]></description>
			<content:encoded><![CDATA[<p>Не так давно было решено под один крупный проект взять свой сервер, благо, что в этом месяце обещают открыть ДЦ в Павлодаре. И вот наконец свершилось &#8211; Нам пришёл новый сервак.</p>
<p><a href="http://zlob.in/wp-content/uploads/2010/03/DSC01238.JPG"><img class="alignleft size-medium wp-image-711" style="padding:3px;margin:2px;border:1px solid #ccc;" title="распаковка" src="http://zlob.in/wp-content/uploads/2010/03/DSC01238-300x225.jpg" alt="распаковка" width="300" height="225" /></a></p>
<p>Долго думали, откуда и какой заказать в итоге выбор пал на SuperMicro, а доставку решили сделать из Алматы. Сначала думали взять HP, но они слишком уж дорогие. Решили, что по соотношению цена\конфигурация оптимальный вариант &#8211; SuperMicro.</p>
<p>Конфиг следующий:<br />
• 1U Rackmount (437 x 43 x 503mm)<br />
• Intel® Quad-Core Nehalem E5504 2,0 GHz 4MB FC-LGA8 S1366<br />
• Intel® X58 Express Chipset<br />
• 4Gb DDRIII-1333 ECC UnBuff. / Up to 24GB DDRIII 1333/1066/800MHz SDRAM in 6 DIMM sockets<br />
• 6 x Intel® ICH10R SATA controller RAID 0, 1, 5, 10 support<br />
• Dual Intel® 82574L Gigabit Ethernet Controller<br />
• 3 (x8) PCI-e 2.0 slots (1 using x16 slot)<br />
• 1 (x4) PCI-e slot (using x8 slot)<br />
• 2 x 32-bit 33MHz PCI slot<br />
• 2 х 250Gb SATAII 7200 RPM / 4 x 3.5&#8243; Hot-swap SAS/SATA drive bays<br />
• Integrated Graphics<br />
• DVD-RW<br />
• 520W AC to DC power supply w/ PFC<br />
• 4 x 4cm 12,500 RPM fans</p>
<p>Заказали его в Vista Systems (vss.kz)</p>
<p>Теперь буду ставить на него мой любимый CentOS )</p>
<p>До связи.</p>
<p><a href="http://zlob.in/wp-content/uploads/2010/03/DSC01249.JPG"><img class="alignleft size-medium wp-image-710" title="Вид спереди" src="http://zlob.in/wp-content/uploads/2010/03/DSC01249-300x225.jpg" alt="Вид спереди" width="300" height="225" /></a></p>
<p><a href="http://zlob.in/wp-content/uploads/2010/03/DSC01250.JPG"><img class="alignleft size-medium wp-image-709" title="Вид сверху" src="http://zlob.in/wp-content/uploads/2010/03/DSC01250-300x225.jpg" alt="Вид сверху" width="300" height="225" /></a><a href="http://zlob.in/wp-content/uploads/2010/03/DSC01252.JPG"><img class="alignleft size-medium wp-image-708" title="Вид сверху и сбоку" src="http://zlob.in/wp-content/uploads/2010/03/DSC01252-300x225.jpg" alt="Вид сверху и сбоку" width="300" height="225" /></a><a href="http://zlob.in/wp-content/uploads/2010/03/DSC01251.JPG"><img class="alignleft size-medium wp-image-707" title="Вид сзади" src="http://zlob.in/wp-content/uploads/2010/03/DSC01251-300x225.jpg" alt="Вид сзади" width="300" height="225" /></a></p>
<div style="clear:both;"></div>
<p>Постовые:</p>
<p>Зарабатывайте в интернете вместе с seozavr. <a href="http://seozavr.ru/news.php?newsId=53">Уаленная работа</a>, заработок в сети без вложений. Начинайте зарабатывать в интернете прямо сейчас.</p>
<p>Вам для работы необходимо пять лет учиться и потом писать диплом? Не беда &#8211; <a href="http://homeworkpro.ru/">диплом на заказ в Москве</a>. Быстро, качественно, недорого.</p>
<p>Хотите красивый рабочий стол на своём компьютере или ноутбуке? Тогда установите <a href="http://www.freeoboi.ru/">картинки на рабочий стол бесплатно</a>. Красота окружает нас везде )<br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2008/asus-m50vn/" rel="bookmark" title="23 ноября 2008">asus m50vn</a></li>
<li><a href="http://zlob.in/2009/centos/" rel="bookmark" title="22 сентября 2009">CentOS</a></li>
<li><a href="http://zlob.in/2008/google-nastupaet-po-vsem-frontam/" rel="bookmark" title="4 сентября 2008">Google наступает по всем фронтам</a></li>
<li><a href="http://zlob.in/2009/smena-dizajna/" rel="bookmark" title="21 февраля 2009">Смена дизайна</a></li>
<li><a href="http://zlob.in/2010/optimizaciya/" rel="bookmark" title="8 января 2010">Оптимизация</a></li>
</ul>
<p><!-- Similar Posts took 2.947 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2010/novyj-servak/feed/</wfw:commentRss>
		<slash:comments>61</slash:comments>
		</item>
		<item>
		<title>HipHop for PHP</title>
		<link>http://zlob.in/2010/hiphop-for-php/</link>
		<comments>http://zlob.in/2010/hiphop-for-php/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 05:04:39 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[web-разработки]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=642</guid>
		<description><![CDATA[Буквально на днях Facebook обнародовали свой проект HipHop for PHP. Почему такое название непонятно, видимо разработчики неровно дышат к ХипХопу ) И php превращается, превращается php в &#8230; C++ За счёт этого разработчикам из фейсбука удалось ускорить выполнение php-сценариев в два раза, что позволит сэкономить на покупке новых серверов и оборудования. Особенно порадовал тот факт, [...]]]></description>
			<content:encoded><![CDATA[<p>Буквально на днях Facebook обнародовали свой проект <strong>HipHop for PHP</strong>. Почему такое название непонятно, видимо разработчики неровно дышат к ХипХопу )</p>
<p>И php превращается, превращается php в &#8230; C++ За счёт этого разработчикам из фейсбука удалось ускорить выполнение php-сценариев в два раза, что позволит сэкономить на покупке новых серверов и оборудования.</p>
<p>Особенно порадовал тот факт, что всё исходные коды проекта HipHop выложены в свободный доступ и в разработке продукта могут принять участие все желающие.</p>
<p>В новостных лентах пишут о том, что разработка заняла два года и было написано 300 тыс. строк кода. А вот интересно сколько людей было занято в разработке. Кстати, вот в <a href="http://pro100pro.com/uskoryaem-php-s-hiphop" target="_blank">этом</a> блоге подробно расписано про этот самый HipHop.</p>
<p><em>HipHop PHP Yo!</em> )<br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2008/bud-proshhe/" rel="bookmark" title="25 ноября 2008">Будь проще</a></li>
<li><a href="http://zlob.in/2010/trebuetsya-flash-developer/" rel="bookmark" title="13 июля 2010">Требуется FLASH-developer</a></li>
<li><a href="http://zlob.in/2008/microsoft-vs-yahoo-kto-kogo/" rel="bookmark" title="6 мая 2008">Microsoft vs Yahoo кто кого?</a></li>
<li><a href="http://zlob.in/2008/uskoryaem-rabotu-skriptov-ch2-xaki-na-php/" rel="bookmark" title="18 мая 2008">Ускоряем работу скриптов ч.2 (хаки на PHP)</a></li>
<li><a href="http://zlob.in/2010/prostranstva-imyon-v-php/" rel="bookmark" title="28 января 2010">Пространства имён в PHP</a></li>
</ul>
<p><!-- Similar Posts took 21.917 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2010/hiphop-for-php/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Пространства имён в PHP</title>
		<link>http://zlob.in/2010/prostranstva-imyon-v-php/</link>
		<comments>http://zlob.in/2010/prostranstva-imyon-v-php/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 06:24:50 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=621</guid>
		<description><![CDATA[Что такое пространства имён? Пространства имён &#8211; некоторое абстрактное хранилище, которое позволяет группировать уникальные идентификаторы. Какие проблемы? Все определения классов в PHP глобальны, в связи с этим необходимо постоянно выбирать уникальные имена для классов. Это делается для того, чтобы не происходило конфликтов имён при работе с другими библиотеками. На данный момент различных &#171;соглашений&#187; о наименовании [...]]]></description>
			<content:encoded><![CDATA[<h3>Что такое пространства имён?</h3>
<p>Пространства имён &#8211; некоторое абстрактное хранилище, которое позволяет группировать уникальные идентификаторы.</p>
<h3>Какие проблемы?</h3>
<p>Все определения классов в PHP глобальны, в связи с этим необходимо постоянно выбирать уникальные имена для классов. Это делается для того, чтобы не происходило конфликтов имён при работе с другими библиотеками. На данный момент различных &laquo;соглашений&raquo; о наименовании достаточно для защиты классов от &laquo;наложений&raquo;, например PEAR.</p>
<h3>Зачем оно надо?</h3>
<p>Концепция пространства имен позволяет управлять зонами видимости имён и помогает избегать проблем, возникающих при определении классов с одинаковыми именами. Всё это избавляет от необходимости использовать длинные имена и префиксы в названии классов. Что соответсвенно служит повышению читабельности кода.</p>
<h3>Что теперь?</h3>
<p>На данный момент пространства имён уже реализовано в PHP начиная с версии 5.3.0.</p>
<h3>Примеры.</h3>
<p>Для объявления пространства имён используется ключевое слово <em>namespace</em>. Предположим у нас есть &laquo;пакет&raquo; коммерция. Пространства имён определяются на уровне файла, а само объявление должно быть первым оператором в файле:</p>
<pre><code>
&lt;?php
namespace commerce; // определим новое пространство имён

class shop {
// ...
}
?&gt;
</code></pre>
<p>Пространства имён можно импортировать при помощи оператора use:</p>
<pre><code>&lt;?php
use commerce;

require_once('lib.php');
?&gt;</code></pre>
<p>Можно импортировать от одного или несколько пространств имён. Помимо этого для пространста имён можно использовать псевдонимы, которые позволят создавать более короткие имена:</p>
<pre><code>&lt;?php
use commerce\shop\lib as CSL;
?&gt;</code></pre>
<p>Также существует константа<em> __NAMESPACE__</em> которая возвращает текущее простраство имён:</p>
<pre>
<code>&lt;?php
    namespace commerce\shop;
    echo __NAMESPACE__;  // выведет: commerce\shop
?&gt;</code></pre>
<p>Более подробно с правилами разбора имён можно ознакомится в <a href="http://docs.php.net/manual/ru/language.namespaces.rules.php" target="_blank">официальной документации</a>.</p>
<p><em>Постовые:</em><br />
Автомобильный портал от крупнейшей газеты объявлений &laquo;Из рук в руки&raquo;. Крупный <a href="http://auto.irr.ru/cars/catalog/" target="_blank">каталог автомобилей с фото</a>. Мы найдём авто и для тебя.</p>
<p>Объявления о недвижимости. <a href="http://irr.ru/magr/" target="_blank">Московские агентства недвижимости</a>. Продажа квартир. Частники и агентства недвижимости.<br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2008/uskoryaem-rabotu-skriptov-ch3/" rel="bookmark" title="22 мая 2008">Ускоряем работу скриптов ч.3</a></li>
<li><a href="http://zlob.in/2008/uskoryaem-rabotu-skriptov-ch1/" rel="bookmark" title="16 мая 2008">Ускоряем работу скриптов ч.1</a></li>
<li><a href="http://zlob.in/2008/krizis/" rel="bookmark" title="23 октября 2008">Кризис</a></li>
<li><a href="http://zlob.in/2010/ustanovka-ape-na-centos/" rel="bookmark" title="16 января 2010">Установка APE на CentOS</a></li>
<li><a href="http://zlob.in/2008/uskoryaem-rabotu-skriptov-ch2-xaki-na-php/" rel="bookmark" title="18 мая 2008">Ускоряем работу скриптов ч.2 (хаки на PHP)</a></li>
</ul>
<p><!-- Similar Posts took 3.914 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2010/prostranstva-imyon-v-php/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Установка APE на CentOS</title>
		<link>http://zlob.in/2010/ustanovka-ape-na-centos/</link>
		<comments>http://zlob.in/2010/ustanovka-ape-na-centos/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 08:30:04 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=586</guid>
		<description><![CDATA[Итак продолжаю цикл статей по CentOS. Давеча довелось нам ставить на CentOS легковесный open source push-сервер APE (офф. сайт). Более подробно с этой технологией можно ознакомится на хабре &#171;Двунаправленный асинхронный обмен данными в веб-приложениях&#171;. Основная причина выбора именно APE была дружба между ним и Jquery Итак, в подопытных у нас всё тот же CentOS 5.3 [...]]]></description>
			<content:encoded><![CDATA[<p>Итак продолжаю цикл статей по CentOS. Давеча довелось нам ставить на CentOS  легковесный open source push-сервер APE (<a href="http://www.ape-project.org/" target="_blank">офф. сайт</a>). Более подробно с этой технологией можно ознакомится на хабре &laquo;<a href="http://habrahabr.ru/blogs/webdev/80466/" target="_blank">Двунаправленный асинхронный обмен данными в веб-приложениях</a>&laquo;. Основная причина выбора именно APE была дружба между ним и Jquery <img src='http://zlob.in/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Итак, в подопытных у нас всё тот же CentOS 5.3 64 bit.</p>
<p>Для начала скачиваем ape-project себе на сервер, например через wget или просто через менеджер файлов, кому как удобнее. Далее распаковываем его:<br />
<em>tar xzf APE-Project_1.0.tar.gz<br />
cd APE-Project_1.0<br />
cd ape-server</em></p>
<p>чтобы определить где находится ape используем команду<br />
<em>whereis ape</em></p>
<p>в директории ape-server лежат следующие файлы:<br />
<em>APE_Server-1.0.OSX10.6.bin.tar.gz<br />
APE_Server-1.0.amd64.bin.tar.gz<br />
APE_Server-1.0.i386.bin.tar.gz<br />
APE_Server-1.0.src.tar.gz<br />
APE_Server-1.0.amd64.deb<br />
APE_Server-1.0.i386.deb<br />
APE_Server-1.0.i386.rpm<br />
APE_Server-1.0.x86_64.rpm</em></p>
<p>Определяем какой нужен для нашей операционки и ставим его. В нашем случае это<em> <em>APE_Server-1.0.x86_64.rpm</em></em></p>
<p>Устанавливаем его при помощи rpm<br />
<em><em><em>rpm -Uhv APE_Server-1.0.x86_64.rpm</em> </em></em></p>
<p>В /etc/ape у нас лежат конфиги. Займемся настройкой ape. Заходим в /etc/init.d/ создаем файл aped (файл создается при помощи команды touch). Теперь ставим этому файла следующие права доступа:<br />
chmod a=x /etc/init.d/aped</p>
<p>Сам файл aped наполняем следующим содержимым:</p>
<pre><code>
#! /bin/sh
# /etc/init.d/aped
#
# chkconfig: 2345 85 15
# description: APE Daemon
# processname: APE Daemon

#
# Install the service with chkconfig --add aped
#

# Define where ape is installed.
# The trailing slash is required ( Example : /my/path/bin/ )
APE_DIRECTORY=/etc/ape/

# Define the PID File
PIDFILE=/var/run/aped.pid

# Source function library.
. /etc/init.d/functions

DAEMON="/usr/bin/aped --cfg ${APE_DIRECTORY}ape.conf &gt; /dev/null"

start() {

    echo -n "Starting APE... "

    cd $APE_DIRECTORY;
    daemon $DAEMON
    RETVAL=$?
    echo
        [ $RETVAL = 0 ] &amp;&amp; touch /var/lock/subsys/aped
    return $RETVAL
}

stop() {
    echo "Stopping APE..."
    killall aped
    RETVAL=$?
    echo
        [ $RETVAL = 0 ] &amp;&amp; rm -f /var/lock/subsys/aped
}

case "$1" in
    start)
        start
    ;;
    stop)
        stop
    ;;
    restart)
        stop
        start
    ;;
    *)
        echo "Usage:  {start|stop|restart}"
        exit 1
    ;;
esac
exit $?
</code></pre>
<p>выполняем команду, для добавления службы:<br />
<em>chkconfig &#8211;add aped</em></p>
<p>Теперь выполним команду<br />
<em>/usr/sbin/ntsysv </em><br />
и поставим галочку напротив aped, если ее там нет.</p>
<p>Разберемся с настройкой апача. Открываем httpd.conf, который лежит в /etc/httpd/ Находим там virtual host, принадлежащий нашему доменному имени и дописываем туда альясы:</p>
<p><em><em>&lt;VirtualHost xxx.xxx.xxx.xxx:8080&gt;<br />
*<br />
</em></em><strong><em><em>ServerAlias ape.mydomen.com<br />
ServerAlias *.ape.<em><em>mydomen.com</em></em></em></em></strong><em><em><br />
*<br />
&lt;/VirtualHost&gt;<br />
</em></em><em><em>вместо mydomen.com &#8211; используем свой адрес. </em></em></p>
<p>Перезапускаем апач<br />
<em>service httpd restart</em><em> </em></p>
<p>Теперь запустим сам ape server. Заходим в диреторию /usr/bin/ и выполняем:<em><br />
</em><em>./aped &#8211;cfg /etc/ape/ape.conf</em></p>
<p>Также необходимо произвести некоторые манипуляции с DNS. Для нашего домена создаем записи типа А:<br />
ape.mydomen.com. A xxx.xxx.xxx.xxx<br />
*.ape.mydomen.com. A xxx.xxx.xxx.xxx<br />
где xxx.xxx.xxx.xxx &#8211; ваш IP-адрес, а mydomen.com &#8211; ваше доменное имя. Ждём пока обновятся днски.</p>
<p>При скачивании Ape-project в дирекотрии находилось ищё две папки одна для сервера, другая для клиента. Закачиваем ape-jsf на наш сайт и тестируем работоспособность APE. Переходим по адресу http://ваш сайт/ape-jsf/Demos/Chat/demo.html и наслаждаемся чатом по настоящему в режиме реального времени.</p>
<p>Воистину web за последнее время продвинулся ооочень сильно!<em><em></em></em><br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2009/ustnovka-nginxeaccelerator-i-obnovlenie-phpmysqlapache-na-centos/" rel="bookmark" title="8 октября 2009">Установка nginx,eaccelerator и обновление php,mysql,apache на CentOS</a></li>
<li><a href="http://zlob.in/2009/centos/" rel="bookmark" title="22 сентября 2009">CentOS</a></li>
<li><a href="http://zlob.in/2008/dedicated-vs-vds/" rel="bookmark" title="23 июня 2008">Dedicated vs VDS</a></li>
<li><a href="http://zlob.in/2010/ustanavlivaem-mongodb-na-centos-2/" rel="bookmark" title="13 января 2010">Устанавливаем mongoDB на CentOS</a></li>
<li><a href="http://zlob.in/2008/uskoryaem-rabotu-skriptov-ch3/" rel="bookmark" title="22 мая 2008">Ускоряем работу скриптов ч.3</a></li>
</ul>
<p><!-- Similar Posts took 2.871 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2010/ustanovka-ape-na-centos/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Устанавливаем mongoDB на CentOS</title>
		<link>http://zlob.in/2010/ustanavlivaem-mongodb-na-centos-2/</link>
		<comments>http://zlob.in/2010/ustanavlivaem-mongodb-na-centos-2/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 04:06:22 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=577</guid>
		<description><![CDATA[Судя по отзывам, довольно шустрая документо-ориентированная СУБД (офф. сайт), которая может перекрыть 80% всех требований. Из недостатков стоит выделить отсутствие fulltext индексирования. Зато большим преимуществом будет являться скорость работы. Как и в большинстве СУБД используется принцип B-TREE. Подробнее по тестам, графикам производительности можно почитать на хабре. Провозился пол дня, попутно консультируясь с другом по поводу [...]]]></description>
			<content:encoded><![CDATA[<p>Судя по отзывам, довольно шустрая документо-ориентированная СУБД (<a href="http://www.mongodb.org/" target="_blank">офф. сайт</a>), которая может перекрыть 80% всех требований. Из недостатков стоит выделить отсутствие fulltext индексирования. Зато большим преимуществом будет являться скорость работы. Как и в большинстве СУБД используется принцип B-TREE. Подробнее по тестам, графикам производительности можно <a href="http://habrahabr.ru/blogs/webdev/74683/" target="_blank">почитать на хабре</a>.</p>
<p>Провозился пол дня, попутно консультируясь с другом по поводу того как всё это ставить. И решил написать статью в блог, глядишь &#8211; кому и пригодится, да и сам могу спустя время кое-чего подзабыть, а так запись останется как подсказка. В качестве подопытного использовался CentOS 5.3 64bit.</p>
<p>Перейдем к установке. Качаем с гитхаба mongo driver, в моём случае это драйвер для php.<br />
<a href="http://github.com/mongodb/mongo-php-driver/tree/master" target="_blank">http://github.com/mongodb/mongo-php-driver/tree/master</a></p>
<p>Распаковываем и устанавливаем его:</p>
<p><em>tar zxvf mongodb-mongodb-php-driver-.tar.gz<br />
cd mongodb-mongodb-php-driver-<br />
phpize<br />
./configure<br />
sudo make install</em></p>
<p>если всё прошло успешно, то переносим в <em>php/modules</em>/ файл <em>mongo.so</em>, который лежит в директории, куда был распакован сам монго. Пропишем в настройках php конфиги монго. Определить где находятся настройки php можно через shell<br />
<em>whreis php</em><br />
обычно это <em>/etc/php.ini </em>прописываем там<br />
<em>extension=mongo.so</em></p>
<p>и</p>
<p><em>[mongo]<br />
mongo.auto_reconnect = Off<br />
mongo.allow_persistent = On<br />
mongo.max_persistent = -1<br />
mongo.max_connections = -1<br />
mongo.default_host = localhost<br />
mongo.default_port = 27017<br />
mongo.chunk_size = 262400</em></p>
<p>перезапускаем апач<br />
<em>service httpd restart</em></p>
<p>выводим инфу:</p>
<p><em>&lt;?php<br />
phpinfo();<br />
?&gt;</em></p>
<p>если всё прошло успешно, то должно появиться что-то наподобии этого</p>
<p><a href="http://zlob.in/wp-content/uploads/2010/01/phpinfo1.jpg"><img class="alignnone size-medium wp-image-579" title="mongo" src="http://zlob.in/wp-content/uploads/2010/01/phpinfo1-300x172.jpg" alt="mongo" width="300" height="172" /></a></p>
<p>Теперь разберемся с самим серваком mongo. Заходим снова в shell и прописываем там:</p>
<p><em># Директория по умолчанию для хранения БД<br />
$ mkdir -p /data/db<br />
# Используем курл, для получения<br />
$ curl -O http://downloads.mongodb.org/linux/mongodb-linux-x86_64-latest.tgz<br />
# распаковываем<br />
$ tar xzf mongodb-linux-x86_64-latest.tgz</em></p>
<p>Теперь заходим в директорию, куда установился mongo. В моём случае это:<br />
<em>/root/mongodb-linux-x86_64-2010-01-12/bin/</em></p>
<p>запускаем демона <em>./mongod</em> &#8211; он у нас будет обрабатывать все команды В другом терминале запускаем сам mongo <em>./mongo</em></p>
<p>Для теста напишем во втором терминале:<br />
<em>db.foo.save( { a : 1 } )</em></p>
<p>В певом терминале должно появиться что-то подобное этому:<br />
<em>Tue Jan 12 15:52:37 waiting for connections on port 27017<br />
Tue Jan 12 15:52:37 web admin interface listening on port 28017<br />
Tue Jan 12 15:57:20 allocating new datafile /data/db/test.ns, filling with zeroes&#8230;<br />
Tue Jan 12 15:57:20 done allocating datafile /data/db/test.ns, size: 16MB, took 0.135 secs<br />
Tue Jan 12 15:57:20 allocating new datafile /data/db/test.0, filling with zeroes&#8230;<br />
Tue Jan 12 15:57:21 done allocating datafile /data/db/test.0, size: 64MB, took 0.531 secs<br />
Tue Jan 12 15:57:21 building new index on { _id: ObjId(000000000000000000000000) } for test.foo&#8230;<br />
Tue Jan 12 15:57:21 Buildindex test.foo idxNo:0 { name: &laquo;_id_&raquo;, ns: &laquo;test.foo&raquo;, key: { _id: ObjId(000000000000000000000000) } }<br />
Tue Jan 12 15:57:21 done for 0 records 0.034secs<br />
Tue Jan 12 15:57:21 insert test.foo 704ms</em></p>
<p>Теперь давайте протестируем наш php драйвер. Создадим какой-нибудь php файл и пропишем в нем</p>
<p><em>&lt;?php<br />
$mongo = new Mongo (&#8217;127.0.0.1&#8242;, true, true);<br />
var_dump($mongo);<br />
?&gt;</em></p>
<p>На экране должно высветится:<em> </em></p>
<p><em>object(Mongo)#1 (5) {<br />
["connected"]=&gt;<br />
bool(true)<br />
["server":protected]=&gt;<br />
string(9) &laquo;127.0.0.1&#8243;<br />
["username":protected]=&gt;<br />
NULL<br />
["password":protected]=&gt;<br />
NULL<br />
["persistent":protected]=&gt;<br />
string(0) &laquo;&raquo;<br />
}</em></p>
<p>Вот и всё.<em> </em><br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2008/uskoryaem-rabotu-skriptov-ch1/" rel="bookmark" title="16 мая 2008">Ускоряем работу скриптов ч.1</a></li>
<li><a href="http://zlob.in/2010/youtube-api-javascript-upload/" rel="bookmark" title="26 июня 2010">YouTube API &#038; JavaScript Upload</a></li>
<li><a href="http://zlob.in/2009/s-novym-godom/" rel="bookmark" title="30 декабря 2009">С НОВЫМ ГОДОМ!</a></li>
<li><a href="http://zlob.in/2010/biznes-pexota/" rel="bookmark" title="12 февраля 2010">Бизнес-пехота</a></li>
<li><a href="http://zlob.in/2010/optimizaciya/" rel="bookmark" title="8 января 2010">Оптимизация</a></li>
</ul>
<p><!-- Similar Posts took 3.030 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2010/ustanavlivaem-mongodb-na-centos-2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Оптимизация</title>
		<link>http://zlob.in/2010/optimizaciya/</link>
		<comments>http://zlob.in/2010/optimizaciya/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 06:45:56 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=547</guid>
		<description><![CDATA[Сегодня мне хотелось бы затронуть тему оптимизации. Пройтись, так сказать, по основам, чтобы даже новичку было понятно в какую сторону копать. Необходимо, чтобы у вас был доступ к серверу через shell. Какое программное обеспечение будет затронуто: apache nginx mysql lighttpd php memcached CentOS &#8211; Статика-динамика Для начала давайте разберемся с web-серверами. Разделим все дело на [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://zlob.in/wp-content/uploads/2010/01/bot.jpg"><img class="alignleft size-medium wp-image-549" title="оптимизация" src="http://zlob.in/wp-content/uploads/2010/01/bot-262x300.jpg" alt="оптимизация" width="262" height="300" /></a>Сегодня мне хотелось бы затронуть тему оптимизации. Пройтись, так сказать, по основам, чтобы даже новичку было понятно в какую сторону копать. Необходимо, чтобы у вас был доступ к серверу через shell.</p>
<p>Какое программное обеспечение будет затронуто:</p>
<ul>
<li>apache</li>
<li>nginx</li>
<li>mysql</li>
<li>lighttpd</li>
<li>php</li>
<li>memcached</li>
<li>CentOS</li>
</ul>
<h3>&#8211; Статика-динамика</h3>
<p>Для начала давайте разберемся с web-серверами. Разделим все дело на так называемые front-end и back-end или в просторечье на статику-динамику. Статику (CSS, картинки, JS) у нас будет отдавать какой-нибудь легкий и быстрый сервер, например nginx или lighttpd. А вот динамикой (php) займется привычный большинству Apache. Либо же это может быть Apache-Tomkat(если используется Java).</p>
<blockquote><p>Преимущества подобной схемы можно понять на небольшом примере. Представьте себе, что к вашему web серверу apache необходимо обслужить порядка 1000 запросов одновременно, причем многие из этих клиентов подключены к медленным каналам связи. В случае использования apache мы получим 1000 процессов httpd на каждый из которых будет выделена оперативная память, и эта память не освободится до тех пор, пока клиент не получит запрошенный контент (в идеальном варианте конечно).</p>
<p>В случае схемы с применением front end/back end сервера получим значительную экономию системных ресурсов за счет того, что после того как пришел запрос клиента, nginx передает запрос apache и быстро получает ответ. В итоге apache после того как отдал ответ nginx освобождает память, далее с клиентом взаимодействует web сервер nginx, который как раз и написан для раздачи статического контента, большому количеству клиентов, при незначительном потреблении системных ресурсов.</p></blockquote>
<h3>&#8211; Нагрузка на сервер</h3>
<p>Нагрузку на сервер можно определять командой <em>top</em> (вводим в командную строку). Данная команда выводит на экран нагрузку сервера в режиме реального времени. Загрузка каждого из процессоров выводится в виде десятичного числа (Например, 0.94 или 15.3).</p>
<p>На экран будет выведено, что-нибудь подобное этому:</p>
<p><em>top &#8211; 20:55:26 up 50 days,  9:50,  3 users,  load average: 0.94, 0.76, 1.26<br />
Tasks:  69 total,   1 running,  68 sleeping,   0 stopped,   0 zombie<br />
Cpu(s):  0.9% us,  0.2% sy,  0.0% ni, 76.6% id, 22.4% wa,  0.0% hi,  0.0% si<br />
Mem:   1034692k total,   996636k used,    38056k free,    12484k buffers<br />
Swap:  3068372k total,      176k used,  3068196k free,   933656k cached</em></p>
<p>Для того, чтобы посмотреть список процессов вводим команду <em>ps</em>.</p>
<h3>&#8211; Нагрузка на MySQL</h3>
<p>Обычно основная нагрузка ложится именно на сервер базы данных. Поэтому этот пункт стоит отметить особо. И уделить внимание оптимизации mysql-сервера тоже нужно особое. Подробнее о том, как <a href="http://www.mysql.ru/docs/man/mysql.html" target="_blank">подключиться к mysql через командную строку</a>. Подробнее по оптимизации самого mysql можно почитать <a href="http://web-scalability.com/2008/05/30/mysql-тюнинг-настраиваем-по-взрослому/" target="_blank">на этом блоге</a>.</p>
<p>Зайдем через консоль в рабочую базу данных и пишем:<br />
<em>show full processlist;</em><br />
либо<br />
<em>show processlist;</em></p>
<p>Данный запрос покажет какие потоки запущены в настоящий момент.</p>
<blockquote><p>Эта команда очень полезна, если выдается сообщение об ошибке &#8216;too many connections&#8217; (слишком много соединений) и необходимо выяснить, что происходит. MySQL резервирует одно дополнительное соединение для клиента с привилегией SUPER, чтобы у вас всегда была возможность войти в систему и произвести проверку (предполагается, что вы не станете раздавать эту привилегию всем своим пользователям).</p></blockquote>
<p>* не забывайте ставить точку с запятой в конце каждой команды!</p>
<p>Также стоить обратить внимание на параметр конфигурации<br />
<em>-log-slow-queries</em><br />
Если используется этот параметр, в лог-журнал будут записываться все медленные запросы. Вам останется только сделать выводы и найти пути решения.</p>
<p>Теперь разберемся с запросами. Находим через <em>show processlist;</em> или <em>-log-slow-queries</em> &laquo;грузящие&raquo; процессы и приступаем к оптимизации. Вариантов несколько:</p>
<ol>
<li>упрощение запросов;</li>
<li>кэширование данных в оперативную память (например, memcached).</li>
</ol>
<p>Еще один немаловажный момент &#8211; частые вставки (INSERT). При существенных нагрузках запросы типа INSERT могут не успевать обрабатываться и они будут попросту сбрасываться. Как вариант можно использовать <em>INSERT DELAYED</em> (запрос будует ставится в очередь на выполнение и когда ресурсы освободятся &#8211; запрос будет выполнен). Однако стоит отметить, что INSERT DELAYED не поддерживается InnoDB. Как правило INSERT DELAYED стоит использовать в таблицах, где хранится статистическая информация и запросы на INSERT превышают запросы на SELECT.</p>
<h3>&#8211; Сессии</h3>
<p>Сессии являются файловым хранилищем, поэтому обращение к ним следует минимизировать. И по возможности хранить данные в cookie. Только не забывайте о мерах безопасности, т.к. пользовательские куки легко подделать. Как вариант хранить данные сессий в том же memcached.</p>
<p>p.s. здесь не были затронуты такие темы, как шардинг, партиционирование, репликация. Каждая из них заслуживает отдельного внимания и проработки.<br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2009/ustnovka-nginxeaccelerator-i-obnovlenie-phpmysqlapache-na-centos/" rel="bookmark" title="8 октября 2009">Установка nginx,eaccelerator и обновление php,mysql,apache на CentOS</a></li>
<li><a href="http://zlob.in/2010/v-prodolzhenie-o-serverax/" rel="bookmark" title="25 августа 2010">В продолжение о серверах</a></li>
<li><a href="http://zlob.in/2009/centos/" rel="bookmark" title="22 сентября 2009">CentOS</a></li>
<li><a href="http://zlob.in/2010/xranimye-procedury-v-mysql/" rel="bookmark" title="26 августа 2010">Хранимые процедуры в MySQL</a></li>
<li><a href="http://zlob.in/2010/konverter-sqlite-to-mysql/" rel="bookmark" title="28 июля 2010">Конвертер SQLite to Mysql</a></li>
</ul>
<p><!-- Similar Posts took 3.499 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2010/optimizaciya/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Обновился Sypex Dumper</title>
		<link>http://zlob.in/2009/obnovilsya-sypex-dumper/</link>
		<comments>http://zlob.in/2009/obnovilsya-sypex-dumper/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 08:43:43 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=460</guid>
		<description><![CDATA[После доооолго перерыва (почти три года) вышло обновление замечательной тулзы Sypex Dumper (создание и восстановление бэкапов баз данных). Я этот момент непростительно пропустил. По заявлениям разработчиков новая версия работает в 7-8 раз быстрее старой, чтож давайте протестируем. Основные нововведения: простой и понятный интерфейс с применением ajax; возможность сохранения заданий и запуска их познее, например по [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_461" class="wp-caption alignleft" style="width: 202px"><a href="http://zlob.in/wp-content/uploads/2009/10/sypex.png"><img class="size-full wp-image-461" title="sypex" src="http://zlob.in/wp-content/uploads/2009/10/sypex.png" alt="sypex" width="192" height="60" /></a><p class="wp-caption-text">sypex</p></div>
<p>После доооолго перерыва (почти три года) вышло обновление замечательной тулзы <a href="http://sypex.net/" target="_blank">Sypex Dumper</a> (создание и восстановление бэкапов баз данных).<br />
Я этот момент непростительно пропустил. По заявлениям разработчиков новая версия работает в 7-8 раз быстрее старой, чтож давайте протестируем.</p>
<p>Основные нововведения:</p>
<ul>
<li>простой и понятный интерфейс с применением ajax;</li>
<li>возможность сохранения заданий и запуска их познее, например по крону;</li>
<li>появился <a href="http://sypex.net/forum/" target="_blank">форум</a>, где можно обсудить проблемы и их решения;</li>
<li>добавлены сервисные функции &#8211; оптимизация, ремонт таблиц;</li>
<li>работа с таймаутами;</li>
<li>BSD лицензия;</li>
<li>&#8230;</li>
<li>и еще много всяких вкусностей.</li>
</ul>
<p>После апробирования можно сделать вывод, что утилита работает очень шустро, не требовательна к ресурсам, легка в настройке и управлении. Но не стоит забывать, что на данный момент она имеет версию &laquo;Beta&raquo;, т.ч. баги еще могут вылазить. Также, скрипт работает без проблем с базами данных очень большого объема и имеет мультиязычный интерфейс.</p>
<p><em>p.s. в связи с возможными вопросами. Данный скрипт устанавливается непосредственно на сервере (локальном или удаленном) и подключается соответственно к СУБД установленной на данном сервере.</em><br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2009/pervyj-opyt-s-ozonru/" rel="bookmark" title="7 мая 2009">Первый опыт с ozon.ru</a></li>
<li><a href="http://zlob.in/2009/utf-i-problema-s-russkimi-bukvami-i-sh/" rel="bookmark" title="21 января 2009">UTF и проблема с русскими буквами И, ш</a></li>
<li><a href="http://zlob.in/2010/youtube-api-javascript-upload/" rel="bookmark" title="26 июня 2010">YouTube API &#038; JavaScript Upload</a></li>
</ul>
<p><!-- Similar Posts took 22.273 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2009/obnovilsya-sypex-dumper/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Установка nginx,eaccelerator и обновление php,mysql,apache на CentOS</title>
		<link>http://zlob.in/2009/ustnovka-nginxeaccelerator-i-obnovlenie-phpmysqlapache-na-centos/</link>
		<comments>http://zlob.in/2009/ustnovka-nginxeaccelerator-i-obnovlenie-phpmysqlapache-na-centos/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 23:39:42 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=434</guid>
		<description><![CDATA[Данная публикация является логическим продолжением одной из предыдущих, в которой я описывал установку yum и ISPManager на CentOS. Зачем нам nginx? Если уж вы читаете статью о том, как установить nginx, то для себя наверняка решили зачем он вам. Более подробно о связке nginx + apache можно почитать в этой статье. Для начала установим отличный [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://zlob.in/wp-content/uploads/2009/10/123123.jpg"><img class="alignleft size-medium wp-image-439" title="nginx apache" src="http://zlob.in/wp-content/uploads/2009/10/123123-300x200.jpg" alt="nginx apache" width="300" height="200" /></a>Данная публикация является логическим продолжением одной из предыдущих, в которой я описывал <a href="http://zlob.in/2009/centos/" target="_blank">установку yum и ISPManager на CentOS</a>.</p>
<p>Зачем нам nginx? Если уж вы читаете статью о том, как установить nginx, то для себя наверняка решили зачем он вам. Более подробно о связке nginx + apache можно почитать в <a href="http://centos.alt.ru/?cat=9" target="_blank">этой</a> статье.</p>
<p>Для начала установим отличный репозиторий</p>
<p><em><code>rpm -ihv http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-3.noarch.rpm<br />
rpm -ihv http://centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm</code></em></p>
<p>Теперь займемся обновлением ПО. Удалим или обновим свой старый php</p>
<p><em>yum remove php</em></p>
<p>теперь установим новый</p>
<p><em>yum install php php-devel php-fpm php-mcrypt php-mssql php-gd php-mysql</em></p>
<p>Обновим mysql и apache</p>
<p><em>yum update mysql<br />
yum update httpd</em></p>
<p>Разберемся с установкой nginx. Первым делом зайдите в панель ISPManager, найдите там ссылку &laquo;Возможности&raquo; и перейдите по ней. Если в списке присутствует nginx, то просто устанавливаем его путем нажатия на &laquo;горящую&raquo; лампочку. Если же в списке nginx отсутствует, то действуем следующим образом:</p>
<p><em>yum install nginx</em></p>
<p>Для того, чтобы связать ISPManager и nginx очищаем кэш пакетов ISPManager</p>
<p><em>/usr/local/ispmgr/sbin/pkgctl -D cache</em></p>
<p>и рестартим ИСП</p>
<p><em>killall -9 -r ispmgr</em></p>
<p>Идем в пункт Возможности(Features) панели ISPManager и там устанавливаем Nginx. Теперь рестартуем nginx и apache</p>
<p><em>service httpd restart<br />
service nginx restart</em></p>
<p>p.s. хотя можно попробовать активировать его из шелла:</p>
<p><em>/usr/local/ispmgr/sbin/pkgctl activate nginx</em></p>
<h2>Установка mod_rpaf</h2>
<p>Теперь нам потребуется модуль mod_rpaf, т.к. по умолчанию связка nginx+apache для всех IP адресов получаемых через <em>$_SERVER['REMOTE_ADDR']</em> будет показывать адрес вашего сервера.</p>
<p>Для установки понадобятся пакеты gcc, rpm-build и httpd-devel.</p>
<p><em>yum install gcc rpm-build httpd-devel</em></p>
<p>Можно не извращаться и установить mod_rpaf напрямую из репозитория:</p>
<p><em>yum install mod_rpaf</em></p>
<p>Либо сделать все ручками. Перейдем к скачиванию и установке самого mod_rpaf</p>
<p><em>cd /usr/local/src<br />
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz<br />
tar xzf mod_rpaf-0.6.tar.gz<br />
cd mod_rpaf-0.6<br />
apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c</em></p>
<p>Проверяем создался ли в директории /etc/httpd/conf.d/ файл rpaf.conf. Если его там нет, то создаем и прописываем следующие строки:</p>
<p><em>LoadModule rpaf_module modules/mod_rpaf-2.0.so<br />
RPAFenable On<br />
RPAFproxy_ips 127.0.0.1 xx.xx.xx.xx</em></p>
<p>где xx.xx.xx.xx &#8211; IP адрес вашего сервера. Если на сервере несколько адресов, то прописываем их по аналогии через пробел. Перезапускаем Apache</p>
<p><em>service httpd restart</em></p>
<p>В nginx внутри блока http {} должны быть указаны строки:</p>
<p><em>proxy_set_header Host $host;<br />
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;</em></p>
<p>если вы изменяли nginx.conf, следует перезапустить nginx:</p>
<p><em>service nginx restart</em></p>
<p>Проверяем работособность. Создаем php файл со следующим содержимым и на экране у нас должен высветится реальный IP:</p>
<p><em>&lt;?<br />
echo $_SERVER['REMOTE_ADDR'];<br />
?&gt;</em></p>
<h2><strong>Установка Eaccelerator</strong></h2>
<p>Мы уже установили репозитозиторий с centalt, поэтому сразу прописываем</p>
<p><em>yum install php-eaccelerator</em></p>
<p>Теперь создаем директорию для кэша eaccelerator (если эта директория уже не создана) и назначаем ей права</p>
<p><em>mkdir /var/cache/php-eaccelerator<br />
chmod 777 /var/cache/php-eaccelerator</em></p>
<p>перезапускаем apache</p>
<p><em>service httpd restart</em></p>
<p>и проверяем eaccelerator на работоспособность</p>
<p><em>php -v</em></p>
<p>Должно высветиться что-то наподобии этого:</p>
<p>PHP 5.2.11 (cli) (built: Sep 29 2009 22:33:25)<br />
Copyright (c) 1997-2009 The PHP Group<br />
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies<br />
<strong>with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAccelerator</strong></p>
<h2>Скрываем версию php и nginx</h2>
<p>Теперь сделаем еще пару хитростей. В файле /etc/php.ini находим директиву expose_php и выставляем ей значение off  и таким образом скрываем версию php.</p>
<p><em>expose_php = Off</em></p>
<p>Для nginx поступаем следующим образом &#8211; в секции http прописываем строку</p>
<p><em>server_tokens off;</em></p>
<p>Все теперь версии nginx и php у нас скрыты.<br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2009/centos/" rel="bookmark" title="22 сентября 2009">CentOS</a></li>
<li><a href="http://zlob.in/2010/ustanovka-ape-na-centos/" rel="bookmark" title="16 января 2010">Установка APE на CentOS</a></li>
<li><a href="http://zlob.in/2010/optimizaciya/" rel="bookmark" title="8 января 2010">Оптимизация</a></li>
<li><a href="http://zlob.in/2010/xosting-za-12-rublej-v-mesyac/" rel="bookmark" title="7 февраля 2010">Хостинг за 12 рублей в месяц</a></li>
<li><a href="http://zlob.in/2010/ustanavlivaem-mongodb-na-centos-2/" rel="bookmark" title="13 января 2010">Устанавливаем mongoDB на CentOS</a></li>
</ul>
<p><!-- Similar Posts took 3.058 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2009/ustnovka-nginxeaccelerator-i-obnovlenie-phpmysqlapache-na-centos/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Kohana &#8211; php framework</title>
		<link>http://zlob.in/2009/kohana-php-framework/</link>
		<comments>http://zlob.in/2009/kohana-php-framework/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 04:33:17 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[web-разработки]]></category>
		<category><![CDATA[kohana]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=401</guid>
		<description><![CDATA[На данный момент я довольно плотно подсел на этот фреймворк (kohana). Кохана на начальном этапе представлял из себя лишь ответвление от другого фреймворка CodeIgniter. Основные их отличия заключались в отсутствии поддержки со стороны kohana php версии меньшее 5.2 и поддержка строгого ООП. Более подробно с историческими сведениями Вы можете ознакомится в википедии. Introduction. С чего [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://zlob.in/wp-content/uploads/2009/09/123321123.jpg"><img class="size-medium wp-image-405 alignright" title="php kohana" src="http://zlob.in/wp-content/uploads/2009/09/123321123-300x150.jpg" alt="php kohana" width="300" height="150" /></a>На данный момент я довольно плотно подсел на этот фреймворк (<em>kohana</em>). Кохана на начальном этапе представлял из себя лишь ответвление от другого фреймворка <em>CodeIgniter</em>. Основные их отличия заключались в отсутствии поддержки со стороны kohana php версии меньшее 5.2 и поддержка строгого ООП. Более подробно с историческими сведениями Вы можете ознакомится в <a href="http://ru.wikipedia.org/wiki/Kohana" target="_blank">википедии</a>.</p>
<h2>Introduction. С чего начать?</h2>
<p>Прежде всего нужно отметить, что на данный момент есть две очень сильно различающиеся версии коханы. Ветка 2.4 &#8211; логическое продолжение ветки 2.3 и ветка 3.x &#8211; полностью переписаная версия. В третьей версии поменялось все, кроме, пожалуй, скорости. Именно скоростью своей работы меня и пленил этот фреймворк. Если Вы хотите идти в ногу со временем, то стоит присматриваться именно к KO3, однако к нему нет еще полной документации и разрабатывать приходится на ощупь. Но в этом есть свои плюсы &#8211; приходится подробно просматривать исходники ядра.</p>
<h2>Какие плюсы?</h2>
<ul>
<li>Полная поддержка utf-8;</li>
<li>HMVC модель (в третьей версии);</li>
<li>строгая поддержка ООП;</li>
<li>экстремальная быстрота работы.</li>
</ul>
<h2>Где есть наши?</h2>
<p>К сожалению в рунете довольно мало информации о kohana. Блоги можно пересчитать по пальцам. Я приведу здесь ссылки на те блоги, которые мне удалось найти. Если Вы знаете хороший блог о Kohana, но его нет в этом списке &#8211; сообщите об этом в комментах.</p>
<ul>
<li>Прежде всего нужно отметить <a href="http://habrahabr.ru/blogs/kohanaphp/" target="_blank">блог на Хабре</a>. Туда всегда попадают самые интересные публикации;</li>
<li>блог<a href="http://brotkin.ru " target="_blank"> Броткина Ивана</a>. Именно с этого блога я начал изучение kohana 2.3.3;</li>
<li>блог <a href="http://kupreev.com/" target="_blank">Александра Купреева</a>. Помимо того, что автор пишет статьи на русском о Kohana, так еще и переводит их на английский;</li>
<li>еще один довольно интересный блог. Буквально сегодня <a href="http://progik.ru/blog/naskolko-bstree-Kohana3- " target="_blank">вышел пост</a> о сравнении скорости KO3 и KO2;</li>
<li>на <a href="http://kuzya.name/2009/05/28/начальный-практикум-в-kohana/" target="_blank">этом</a> блоге есть всего одна статья о kohana, но для начинающих очень сильно поможет. К сожалению, блог на данный момент не обновляется;</li>
<li>а вот <a href="http://lastage.ru/kohana_nginx.html" target="_blank">здесь</a> описывается настройка kohana и nginx.</li>
</ul>
<p>Ну и конечно же оффсайт <a href="http://www.kohanaphp.com/" target="_blank">http://www.kohanaphp.com</a>. Давайте вместе продвигать этот замечательный фреймворк в массы )<br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2009/ustnovka-nginxeaccelerator-i-obnovlenie-phpmysqlapache-na-centos/" rel="bookmark" title="8 октября 2009">Установка nginx,eaccelerator и обновление php,mysql,apache на CentOS</a></li>
<li><a href="http://zlob.in/2010/optimizaciya/" rel="bookmark" title="8 января 2010">Оптимизация</a></li>
<li><a href="http://zlob.in/2009/poleznye-internet-servisy/" rel="bookmark" title="30 апреля 2009">Полезные интернет-сервисы</a></li>
<li><a href="http://zlob.in/2010/v-prodolzhenie-o-serverax/" rel="bookmark" title="25 августа 2010">В продолжение о серверах</a></li>
<li><a href="http://zlob.in/2008/xss-sdox-dobem/" rel="bookmark" title="9 мая 2008">XSS сдох? Добьем!</a></li>
</ul>
<p><!-- Similar Posts took 3.979 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2009/kohana-php-framework/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>CentOS</title>
		<link>http://zlob.in/2009/centos/</link>
		<comments>http://zlob.in/2009/centos/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 15:49:07 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[ispmanager pro]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=391</guid>
		<description><![CDATA[Так уж исторически сложилось, что наиболее часто на серверах мне довелось работать именно с операционной системой CentOS. В этой публикации я постараюсь осветить некоторые проблемы и их решения, которые возникли при работе с CentOS. Сразу оговорюсь, что вы уже должны быть знакомы с тем, что такое SSH. Если вы не знакомы с этим понятием, рекомендую [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://zlob.in/wp-content/uploads/2009/09/123123.jpg"><img class="size-full wp-image-392 alignright" title="CentOS" src="http://zlob.in/wp-content/uploads/2009/09/123123.jpg" alt="CentOS" width="200" height="200" /></a>Так уж исторически сложилось, что наиболее часто на серверах мне довелось работать именно с операционной системой CentOS.</p>
<p>В этой публикации я постараюсь осветить некоторые проблемы и их решения, которые возникли при работе с CentOS. Сразу оговорюсь, что вы уже должны быть знакомы с тем, что такое SSH. Если вы не знакомы с этим понятием, рекомендую прочитать об этом в одной из моих публикаций &laquo;<a href="http://zlob.in/2009/podklyuchenie-po-ssh/" target="_blank">Подключение по SSH</a>&laquo;.</p>
<h2>Установка YUM на CentOS</h2>
<p>Начнем с азов. В одном из случаев мне встретилась ОС без предустановленного установщика yum (<a href="http://nastroi.info/?p=176" target="_blank">для чего нужен yum?</a>). Тут все оказалось не совсем просто на первый взгляд &#8211; для меня как полного новичка в этом деле, т.к. до этого я привык все манипуляции проводить именно через yum. Так вот, для установки нам необходимо найти его <a href="http://mirror.centos.org/centos/5/os/" target="_blank">здесь</a> (по ссылке вам сначала необходимо выбрать архитектуру вашего CentOS, я ставил для x86_64). Находим что-то типа &laquo;<em>yum-3.2.19-18.el5.centos.noarch.rpm</em>&laquo;. Далее через ssh вбиваем следующее <em>(адрес до yum rpm, например, </em><em></em></p>
<p><em>wget http://mirror.centos.org/centos/5/os/x86_64/CentOS/yum-3.2.19-18.el5.centos.noarch.rpm</em><em></em></p>
<p>и соответственно устанавливаем этот пакет</p>
<p><em>rpm -Uhv</em> <em>yum-3.2.19-18.el5.centos.noarch.rpm</em></p>
<p>Если установка у вас прошла успешно и не вывелось никаких errors, то все отлично. Если нет, то возможно у вас отсутсвует один из ниже приведенных пакетов:</p>
<p><em>m2crypto-0.16-6.el5.3.i386.rpm<br />
popt-1.10.2.3-9.el5.i386.rpm<br />
python-2.4.3-24.el5.i386.rpm<br />
python-elementtree-1.2.6-5.i386.rpm<br />
python-iniparse-0.2.3-4.el5.noarch.rpm<br />
python-sqlite-1.1.7-1.2.1.i386.rpm<br />
python-urlgrabber-3.1.0-5.el5.noarch.rpm<br />
rpm-4.4.2.3-9.el5.i386.rpm<br />
rpm-libs-4.4.2.3-9.el5.i386.rpm<br />
rpm-python-4.4.2.3-9.el5.i386.rpm<br />
yum-3.2.19-18.el5.centos.noarch.rpm<br />
yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm<br />
yum-metadata-parser-1.1.2-2.el5.i386.rpm</em></p>
<p>Их необходимо установить точно также, как и yum (сначала скачиваем пакеты через <em>wget</em>, затем инсталлим при помощи <em>rpm</em>).</p>
<h2>Установка ISPManager PRO на CentOS</h2>
<p>Теперь об установке ISPManager PRO на CentOS-5 x86_64. Первое, с чем пришлось столкнуться &#8211; непонятные ошибки при установке. Оказалось, что эту панельку лучше ставить на кристально чистую ОС, т.е. без установленного php, mysql, apache и пр. Очень желательно перед установкой ISPManager удалить имеющиеся пакеты, делается это следующим образом:</p>
<p><em>yum remove apache или yum remove httpd<br />
yum remove php<br />
yum remove phpmyadmin<br />
yum remove mysql-server<br />
yum remove php-mysql</em></p>
<p>ну и далее по списку того, что установлено именно у Вас. После удаления выполняем все согласно инструкции на официальном сайте: <a href="http://ru.ispdoc.com/index.php/Установка_ISPmanager_(ISPmanager)" target="_blank">Документация по установке ISPManager</a>. Качаем ISPManager<br />
<em>wget http://download.ispsystem.com/install.sh</em></p>
<p>затем устанавливаем его<br />
<em>sh install.sh</em>.</p>
<p>Для начала, достаточно. На полноту и максимальную эффективноть не претендую, в основном я эту информацию сохранил, чтобы самому не забыть <img src='http://zlob.in/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2009/ustnovka-nginxeaccelerator-i-obnovlenie-phpmysqlapache-na-centos/" rel="bookmark" title="8 октября 2009">Установка nginx,eaccelerator и обновление php,mysql,apache на CentOS</a></li>
<li><a href="http://zlob.in/2010/optimizaciya/" rel="bookmark" title="8 января 2010">Оптимизация</a></li>
<li><a href="http://zlob.in/2010/ustanovka-ape-na-centos/" rel="bookmark" title="16 января 2010">Установка APE на CentOS</a></li>
<li><a href="http://zlob.in/2010/v-prodolzhenie-o-serverax/" rel="bookmark" title="25 августа 2010">В продолжение о серверах</a></li>
<li><a href="http://zlob.in/2010/konverter-sqlite-to-mysql/" rel="bookmark" title="28 июля 2010">Конвертер SQLite to Mysql</a></li>
</ul>
<p><!-- Similar Posts took 22.243 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2009/centos/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>HTML 5 не за горами</title>
		<link>http://zlob.in/2009/html-5-ne-za-gorami/</link>
		<comments>http://zlob.in/2009/html-5-ne-za-gorami/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 05:12:28 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>
		<category><![CDATA[Верстка]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=364</guid>
		<description><![CDATA[Уже многие ждут выхода HTML пятой версии, которая будет большим эволюционным скачком в развитии веба. Разработка HTML 5 длится уже с 2005 года. Какие обновления нас ждут в новой версии? Появление новых элементов и атрибутов. Улучшение семантики &#8211; &#60;header&#62;, &#60;footer&#62;, &#60;nav&#62;, &#60;section&#62;, &#60;article&#62;. Думаю, что это отличное решение, ведь практически в любом шаблоне можно найти [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://zlob.in/wp-content/uploads/2009/07/gearshtml5.png"><img class="alignleft size-medium wp-image-373" style="margin: 3px; padding: 2px; border: 1px solid #ccc;" title="html5" src="http://zlob.in/wp-content/uploads/2009/07/gearshtml5-300x225.png" alt="html5" width="300" height="225" /></a>Уже многие ждут выхода HTML пятой версии, которая будет большим эволюционным скачком в развитии веба. Разработка HTML 5 длится уже с 2005 года.</p>
<h2 style="clear: both;">Какие обновления нас ждут в новой версии?</h2>
<p><em><strong><span style="color: #808080;">Появление новых элементов и атрибутов.</span></strong></em><br />
<em>Улучшение семантики</em> &#8211; <span style="color: #333333;">&lt;header&gt;, &lt;footer&gt;, &lt;nav&gt;, &lt;section&gt;, &lt;article&gt;</span>. Думаю, что это отличное решение, ведь практически в любом шаблоне можно найти <span style="color: #333333;">&lt;div id=&raquo;header&raquo;&gt;, &lt;div id=&raquo;footer&raquo;&gt;, &lt;div id=&raquo;nav&raquo;&gt;</span> и подобные. Семантика данных контейнеров будет идентична обычному диву.<br />
Добавление новых функциональных элементов:<br />
<span style="color: #333333;">&lt;audio&gt;<br />
&lt;video&gt;<br />
&lt;aside&gt;</span><br />
<span style="color: #333333;">&lt;progress&gt;</span> &#8211; индикатор хода выполнения операции<br />
<span style="color: #333333;">&lt;meter&gt;</span><br />
<span style="color: #333333;">&lt;time&gt;<br />
&lt;canvas&gt;</span><br />
официально включён элемент embed. Особо хочу отметить элемент <strong>canvas</strong>, который предоставляет область для рисования изображений «на лету» средствами JavaScript. Именно это нововведенение и может поставить под большой вопрос применение flash технологий.</p>
<p><em><strong><span style="color: #808080;">Удаление устаревших элементов</span></strong> </em><span style="color: #333333;">&lt;center&gt;, &lt;font&gt;, &lt;strike&gt;, &lt;acronym&gt;, &lt;applet&gt;, &lt;basefont&gt;, &lt;big&gt;, &lt;dir&gt;, &lt;isindex&gt;, &lt;s&gt;, &lt;tt&gt;, &lt;u&gt;</span>. Все правильно &#8211; возможности данных элементов все адекватные верстальщики реализовавают через css. <span style="color: #ff0000;">Напрочь убраны фреймы</span> (frame, frameset, noframes).</p>
<p><span style="color: #808080;"><em><strong>Отказ от формальной совместимости  с SGML</strong></em><strong>.</strong></span></p>
<p><span style="color: #808080;"><em><strong>Расширение DOM-модели</strong></em><strong>.</strong></span></p>
<p><span style="color: #808080;"><em><strong>Добавление нового API</strong></em>:</span><br />
Рисование 2D-картинок в реальном времени;<br />
Контроль над проигрыванием медиафайлов;<br />
Хранение данных в браузере;<br />
Редактирование;<br />
Drag-and-drop;<br />
Работа с сетью;<br />
MIME.</p>
<p><span style="color: #808080;"><em><strong>Значительно переработано представление форм</strong></em>.</span><br />
В HTML 5 появятся такие параметры, как: type=&raquo;number&raquo; — поле для ввода числа, input type=&raquo;range&raquo; &#8211; ползунок для регулирования громкости или чего-то похожего. Также аттрибуты min, max и step будут предоставлять возможность регулировать минимальные, максимальные значения и шаг. И ещё многое и многое другое.</p>
<h2>Кто разрабатывает HTML 5?</h2>
<p>Основная проблема была в том, что консорциум W3C изначально забросил разработку и дальнешую модификацию стандарта HTML и все силы были прошены на разработку XHTML 2.0. Однако разработчики из Opera, Apple, Mozilla учредили рабочую группу WHATWG и начали работу над HTML 5 (<a href="http://www.whatwg.org/specs/web-apps/current-work/" target="_blank">Черновой вариант</a>). И с 2007 года WHATWG и W3C разрабатывают этот стандарт парралельно. А совсем недавно W3C полностью отказался от пути развития <a href="http://habrahabr.ru/blogs/webstandards/63470/" target="_blank">XHTML 2</a>.</p>
<h2>Какие выводы можно сделать?</h2>
<p>Разработка HTML 5 определяет основную тенденцию развития Интернета. И если раньше сайты были лишь средствами по предоставлению текстовой информации, то сейчас веб-сайты все больше напоминают полноценные приложения, требующие функционального и юзабельного интерфейса.</p>
<p>Flash технология может стать второстепенной, т.к. основные возможности по работе с мультимедиа во flash можно будет осуществлять через обычный html. Видео и аудио можно будет вставлять также легко, как и картинки.</p>
<p>Обычные приложение все в большей и большей степени переходят в веб. Достойное тому подтверждение &#8211; google vawe, google docs, google maps и готовящаяся операционная система от гугла.</p>
<p>Полагаю, что не обойдется без проблем. Если за браузеры opera, mozilla, chrome, safari более-менее можно быть уверенными, то как поведет себя Internet Explorer трудно предсказать. Может быть именно этот браузер и станет основным &laquo;стопом&raquo; в развитии веба.</p>
<p>Полезные ссылки:<br />
<a href="http://dimox.name/hello-html5-goodbye-xhtml2/" target="_blank">О том, как применять HTML 5 уже сейчас</a><br />
<a href="http://habrahabr.ru/blogs/webdev/49734/" target="_blank">Семантика в HTML 5</a><br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2010/trebuetsya-flash-developer/" rel="bookmark" title="13 июля 2010">Требуется FLASH-developer</a></li>
<li><a href="http://zlob.in/2009/s-novym-godom/" rel="bookmark" title="30 декабря 2009">С НОВЫМ ГОДОМ!</a></li>
<li><a href="http://zlob.in/2010/youtube-api-javascript-upload/" rel="bookmark" title="26 июня 2010">YouTube API &#038; JavaScript Upload</a></li>
<li><a href="http://zlob.in/2008/smm-ili-vkontakteru-v-dejstvii/" rel="bookmark" title="11 мая 2008">SMM или vkontakte.ru в действии</a></li>
<li><a href="http://zlob.in/2009/desyatka-samyx-krasivyx-i-originalnyx-sajtov/" rel="bookmark" title="9 мая 2009">Десятка самых красивых и оригинальных сайтов (ч1)</a></li>
</ul>
<p><!-- Similar Posts took 4.568 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2009/html-5-ne-za-gorami/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>Запароленный вход на сайт</title>
		<link>http://zlob.in/2009/zaparolennyj-vxod-na-sajt/</link>
		<comments>http://zlob.in/2009/zaparolennyj-vxod-na-sajt/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 09:35:34 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=355</guid>
		<description><![CDATA[Отмечу, что пост предназначен исключительно для новичков и показывает как закрыть доступ к сайту средствами сервера Apache. Для начала скачайте утилиту htpasswd для генерации паролей. Далее запустите командую строку &#171;Пуск&#187;-&#62;&#187;Выполнить&#187;, введите в строку ввода cmd и нажмите ОК. Теперь переходите в директорию, где лежит скачанная и распакованная утилита htpasswd и вводите в командной строке: htpasswd [...]]]></description>
			<content:encoded><![CDATA[<p>Отмечу, что пост предназначен исключительно для новичков и показывает как закрыть доступ к сайту средствами сервера Apache.</p>
<p>Для начала скачайте утилиту <a href="http://www.softtime.ru/files/htpasswd.zip" target="_blank">htpasswd</a> для генерации паролей. Далее запустите командую строку  <em>&laquo;Пуск&raquo;-&gt;&raquo;Выполнить&raquo;</em>, введите в строку ввода cmd и нажмите ОК. Теперь переходите в директорию, где лежит скачанная и распакованная утилита <a href="http://www.softtime.ru/files/htpasswd.zip" target="_blank">htpasswd</a> и вводите в командной строке:</p>
<blockquote><p>htpasswd -cm .htpasswd admin</p></blockquote>
<p>Введите пароль и вуаля! Файл сгенерирован. Теперь пропишем все необходимые данные в <em>.htaccess</em> и получаем запароленный доступ к сайту на уровне сервера.</p>
<blockquote><p>AuthType Basic<br />
AuthName &laquo;Close. Enter password!&raquo;<br />
AuthUserFile  /home/www/mysite/.htpasswd<br />
require valid-user</p></blockquote>
<p>Замечу, что обязательно нужно указать абсолютный путь к файлу <em>.htpasswd</em>. Все очень просто!<br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2010/tekstovyj-redaktor-vi/" rel="bookmark" title="17 марта 2010">Текстовый редактор VI</a></li>
<li><a href="http://zlob.in/2008/104/" rel="bookmark" title="24 сентября 2008">WordPress 2.7</a></li>
<li><a href="http://zlob.in/2010/optimizaciya/" rel="bookmark" title="8 января 2010">Оптимизация</a></li>
<li><a href="http://zlob.in/2008/uskoryaem-rabotu-skriptov-ch3/" rel="bookmark" title="22 мая 2008">Ускоряем работу скриптов ч.3</a></li>
<li><a href="http://zlob.in/2010/xosting-za-12-rublej-v-mesyac/" rel="bookmark" title="7 февраля 2010">Хостинг за 12 рублей в месяц</a></li>
</ul>
<p><!-- Similar Posts took 3.041 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2009/zaparolennyj-vxod-na-sajt/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Системы веб-аналитики</title>
		<link>http://zlob.in/2009/sistema-veb-analitiki/</link>
		<comments>http://zlob.in/2009/sistema-veb-analitiki/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 13:00:54 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>
		<category><![CDATA[Маркетинг]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=317</guid>
		<description><![CDATA[Сегодня речь пойдет о системах аналитики для веб-сайтов. Для чего нужна система веб-аналитики? Создание любого сайта несет в себе решение определенных задач. Зачастую &#8211; это рост конверсии и увеличение объемов продаж. Система веб-аналитики устанавливается на сайт иногда для оптимизации целевых страниц, а иногда для увеличения конверсии сайтов. Некоторые индивиды устанавливают данный инструмент лишь для того, [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_343" class="wp-caption alignleft" style="width: 310px"><a href="http://zlob.in/wp-content/uploads/2009/07/leadgeneration5.gif"><img class="size-medium wp-image-343" title="web аналитика" src="http://zlob.in/wp-content/uploads/2009/07/leadgeneration5-300x162.gif" alt="web аналитика" width="300" height="162" /></a><p class="wp-caption-text">web аналитика</p></div>
<p>Сегодня речь пойдет о системах аналитики для веб-сайтов.</p>
<h2 style="font-size: 16px; border-bottom: 1px solid #ccc; text-align: center; clear: both; margin-top: 15px; display: block;"><span style="color: #999999;">Для чего нужна система веб-аналитики?</span></h2>
<p><span style="color: #000000;">Создание любого сайта несет в себе решение определенных задач. Зачастую &#8211; это <strong>рост конверсии</strong> и <strong>увеличение объемов продаж</strong>. Система веб-аналитики устанавливается на сайт иногда для оптимизации целевых страниц, а иногда для увеличения конверсии сайтов. Некоторые индивиды устанавливают данный инструмент лишь для того, чтобы быть в курсе того, сколько человек пришло сегодня на сайт, зачастую просто из любопытства.</span></p>
<p>Выходит, что практически у каждой компании появилась необходимость оценивать эффективность их сайтов, оптимизировать рекламные и маркетинговые кампании, оценивать лояльности посетителей и пр.  Перед аналитиками наиболее часто встают следующие вопросы:</p>
<ul>
<li>Что ищут люди, которые становятся вашими клиентами?</li>
<li>Какая реклама работает лучше?</li>
<li>Что подталкивает потенциального покупателя к покупке или что мешает ее совершить?</li>
<li>Какая стратегия имеет самый высокий показатель ROI?</li>
<li>Как пользователи попадают на сайт и что они там делают?</li>
</ul>
<h2 style="font-size: 16px; border-bottom: 1px solid #ccc; text-align: center;"><span style="color: #888888;">Какие наиболее популярные инструменты веб-аналитики существуют?</span></h2>
<p>Самые <strong>популярные системы web-аналитики</strong> в рамках СНГ &#8211; это, пожалуй,<a href="http://ru.wikipedia.org/wiki/Google_Analytics" target="_blank"> Google-analytics</a> и сравнительно недавно появившаяся <a href="http://ru.wikipedia.org/wiki/Яндекс.Метрика" target="_blank">Яндекс-метрика</a>. Довольно интересное сравнение этих систем проводилось на блоге <a href=" http://vremenno.net/seo/metrika-vs-google-analytics/" target="_blank">http://vremenno.net/</a>. На этом же сайте проводился <a href="http://vremenno.net/seo/user-tracking-services/" target="_blank">обзор сервисов для анализа действий пользователей на сайте</a>. Также довольно новый сервис, <a href="http://www.woopra.com/" target="_blank">Woopra</a>. Система, на мой взгляд, идеальна для небольших веб сайтов. И в отличии от гугл-аналитикс, woopra позволяет получать информацию в режиме реального времени. Помимо этого для просмотра статистики используется не web-интерфейс, а программа которую можно скачать для windows, linux и MacOS.</p>
<p>Также хотелось бы затронуть <strong>локальные системы веб-аналитики</strong>, которые можно установить на своем сервере. Есть замечательные аналоги google-analytics. Одной из таких систем является <a href="http://piwik.org/" target="_blank">piwik</a>, которая продолжает своё развитие от phpmyvisites. Система очень похожа на google-analytics вплоть до того, что на сайт устанавливается идентичный js-код. Но в отличии от той же системы аналитики гугла появляется возможность иметь <strong>полный доступ к собственной статистике</strong> и не зависить от стороннего сайта. Причем все <strong>данные</strong> будут храниться только<strong> на вашем сервере</strong>. Ибо некоторых людей очень сильно расстраивает тот факт, что, например, в гугле вся информация хранится непосредственно на серверах гугла и нет возможности скачать эти базы данных и перенести в другую систему аналитики.</p>
<p>При совмещении piwik и <a href="http://www.labsmedia.com/clickheat/index.html" target="_blank">heatmap</a> (тепловая карта) мы получаем очень <strong>мощную систему web-аналитики</strong>. Отмечу, что оба этих продукта распространяются по лицензии GPL и являются абсолютно бесплатными с открытым исходным кодом.</p>
<p>Теперь вы знакомы с основными системами для анализа статистических данных по сайтам. Даже если многое ещё не понятно, у вас появился маршрут, по которому можно двигаться. И  теперь можно проводить целенаправленные исследования. Отбрасывать в зависимости от задач бесполезные данные, анализировать текущую ситуацию и многое другое, но это уже тема для другой статьи.<br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2009/s-novym-godom/" rel="bookmark" title="30 декабря 2009">С НОВЫМ ГОДОМ!</a></li>
<li><a href="http://zlob.in/2008/google-nastupaet-po-vsem-frontam/" rel="bookmark" title="4 сентября 2008">Google наступает по всем фронтам</a></li>
<li><a href="http://zlob.in/2009/vpechatleniya-ot-windows-7/" rel="bookmark" title="31 октября 2009">Впечатления от Windows 7</a></li>
<li><a href="http://zlob.in/2009/novyj-algoritm-yandeksa/" rel="bookmark" title="26 апреля 2009">Новый алгоритм Яндекса</a></li>
<li><a href="http://zlob.in/2009/prodam-reklamu-na-sajte-g8-kz/" rel="bookmark" title="22 ноября 2009">Продам рекламу на сайте g8.kz</a></li>
</ul>
<p><!-- Similar Posts took 2.996 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2009/sistema-veb-analitiki/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Подключение по ssh</title>
		<link>http://zlob.in/2009/podklyuchenie-po-ssh/</link>
		<comments>http://zlob.in/2009/podklyuchenie-po-ssh/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 12:57:56 +0000</pubDate>
		<dc:creator>Евгений Злобин</dc:creator>
				<category><![CDATA[web-разработки]]></category>

		<guid isPermaLink="false">http://zlob.in/?p=167</guid>
		<description><![CDATA[Думаю, мои читатели уже заметили, что блог переехал на VPS, в связи с чем пришлось разбираться с протоколом ssh. SSH — это аббревиатура Secure Shell, удаленный доступ к командной оболочке Unix-серверов. Вы даете серверу команды в диалоговом режиме, а он исполняет их и показывает результаты, совершая при этом запрашиваемые вами действия. Для начала необходимо скачать [...]]]></description>
			<content:encoded><![CDATA[<p>Думаю, мои читатели уже заметили, что блог переехал на VPS, в связи с чем пришлось разбираться с протоколом ssh.</p>
<blockquote><p>SSH — это аббревиатура Secure Shell, удаленный доступ к командной оболочке Unix-серверов. Вы даете серверу команды в диалоговом режиме, а он исполняет их и показывает результаты, совершая при этом запрашиваемые вами действия.</p></blockquote>
<p>Для начала необходимо скачать программу, через которую мы будем подключаться к удаленному серверу по ssh протоколу. Я рекомендую использовать <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" target="_blank">Putty</a>. Программа довольна проста в использовании. Единственное, на чем вы можете сразу споткнуться &#8211; ввод пароля. После введения логина программа просит ввести пароль, однако при вводе символов с клавиатуры они никак не отображаются на экране. Это нормально. Просто введите пароль и нажмите Enter.</p>
<p>Теперь пройдемся по основным командам, которые пригодятся при работе с удаленным сервером *nix.</p>
<p>В частности мне необходимо было выяснить какая из директорий занимает больше всего места. Выполняется это таким образом: переходим в директорию и прописываем там <strong>du -ch | grep total</strong> и получаем объем текущего каталога. Если же необходимо не только определить сколько диского пространства занимает директория, но и вывести объем каждого файла в этой директории, то просто вводим команду <strong>du</strong>.</p>
<p>Также есть такая замечательная команда <strong>mc</strong>,  которая представляет собой файловый менеджер на подобии total commander для windows. Очень сильно облегчает жизнь <img src='http://zlob.in/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>// Информация о любой команде<br />
<strong>man</strong> pwd</p>
<p><strong>pwd </strong>— путь текущей директории<br />
<strong>mv</strong> — переименовать файл<br />
<strong>rm</strong> —удалить файл<strong><br />
</strong><strong>cp</strong> — копировать файл<strong><br />
</strong><strong><br />
ls </strong>— показывает список файлов в текущем каталоге<strong><br />
</strong><strong>ls -l</strong> — список файлов с подробностями (дата создания, размер,..)<br />
<strong>ls -l dir/</strong> — получить список файлов и каталогов в подкаталоге dir с подробностями</p>
<p><strong>cd</strong> —изменить текущую директорию</p>
<p><em>//Распаковать tar архив</em><br />
<strong>tar xf</strong> arhive.tar<br />
<em>//Распаковать tar архив со gzip сжатием</em><br />
<strong>tar</strong> <strong>xzf</strong> arhive.tar.gz<br />
<em>// Распаковать rar архив</em><br />
<strong>rar</strong> <strong>x</strong> arhive.rar</p>
<p><em>//Дамп выполняется при помощи mysqldump</em><br />
<strong>mysqldump</strong> -u root -p db &amp;gt; file.sql</p>
<p><strong>chmod</strong> 755 script.pl — изменить режим доступа к файлу script.pl на 755 (это нужный для скриптов режим доступа);<br />
<strong>chmod</strong> -R 755 cgi-bin/*.pl — изменить режим доступа на 755 для всех файлов с расширением *.pl в каталоге cgi-bin и во всех его подкаталогах;<br />
<strong>chmod</strong> 000 www/file.html — изменить режим доступа к файлу file.html в каталоге www на 000. При таком режиме доступа его никто не сможет открыть. Так можно быстро запретить доступ через веб к какому-то файлу.</p>
<p>Если этот небольшой мануал пригодится новичкам в этом деле, то я буду только рад.</p>
<p>Обучение в Украине. <a href="http://ukraine.ibr-network.com/">mba украина</a>. Курсы в Украине.<br />
<a href="http://nedvizhimost.slando.od.ua/odessa/3672_1.html">аренда квартир в Одессе</a>, а также продажа.<br />
<a href="http://voditel.info/">авто инструктор</a>. Мы научим вас правильно водить автомобиль.<br />
<h3>Может быть Вам это интересно?</h3>
<ul class="similar-posts">
<li><a href="http://zlob.in/2010/tekstovyj-redaktor-vi/" rel="bookmark" title="17 марта 2010">Текстовый редактор VI</a></li>
<li><a href="http://zlob.in/2010/optimizaciya/" rel="bookmark" title="8 января 2010">Оптимизация</a></li>
<li><a href="http://zlob.in/2009/vpechatleniya-ot-windows-7/" rel="bookmark" title="31 октября 2009">Впечатления от Windows 7</a></li>
<li><a href="http://zlob.in/2010/trebuetsya-flash-developer/" rel="bookmark" title="13 июля 2010">Требуется FLASH-developer</a></li>
<li><a href="http://zlob.in/2008/vsya-pravda-o-chmod/" rel="bookmark" title="26 июня 2008">Вся правда о chmod</a></li>
</ul>
<p><!-- Similar Posts took 2.917 ms --></p>
                <p>&copy; "<a href = "http://zlob.in" tilte = "фриланс, заработок в сети">Паутина фриланса</a>".</p>                        ]]></content:encoded>
			<wfw:commentRss>http://zlob.in/2009/podklyuchenie-po-ssh/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
	</channel>
</rss>
