<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>proft.com.ua [Блог о Web, IT, life]</title>
	
	<link>http://www.proft.com.ua</link>
	<description>Храм моих мыслей о Web, IT, life.</description>
	<lastBuildDate>Sat, 17 Oct 2009 10:48:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/proft" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>PHP и украинская локаль</title>
		<link>http://www.proft.com.ua/php-i-ukrainskaya-lokal/</link>
		<comments>http://www.proft.com.ua/php-i-ukrainskaya-lokal/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 10:40:19 +0000</pubDate>
		<dc:creator>proft</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[locale]]></category>

		<guid isPermaLink="false">http://www.proft.com.ua/?p=681</guid>
		<description><![CDATA[Понадобилось мне отобразить названия месяцев на украинском языке, на локальном сервере все завелось нормально, а на боевом возникли проблемы &#8211; названия локалей были другие. Реализовывать список месяцев через обычный массив не очень хотелось, потому начал разбираться с локалью на сервере.
Для начала узнаем доступные локили на сервере с помощью функции:

system('locale -a')

На мое сервере было: uk_UA, uk_UA.koi8u, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-682" title="php_ua_locale" src="http://www.proft.com.ua/wp-content/uploads/2009/07/php_ua_locale.png" alt="" width="128" height="128" />Понадобилось мне отобразить названия месяцев на украинском языке, на локальном сервере все завелось нормально, а на боевом возникли проблемы &#8211; названия локалей были другие. Реализовывать список месяцев через обычный массив не очень хотелось, потому начал разбираться с локалью на сервере.</p>
<p>Для начала узнаем доступные локили на сервере с помощью функции:</p>
<pre class="brush: php;">
system('locale -a')
</pre>
<p>На мое сервере было: uk_UA, uk_UA.koi8u, uk_UA.utf8.</p>
<p>Далее мы устанавливаем локаль с помощью функции <a href="http://php.net/setlocale" target="_blank">setlocale</a>.</p>
<p>Дополнительное чтиво: <a href="http://anton-pribora.ru/articles/php/locales/" target="_blank">Локали и кодировки</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.proft.com.ua/php-i-ukrainskaya-lokal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Брюса Спрингстин – Born in the USA (live 1988)</title>
		<link>http://www.proft.com.ua/bryusa-springstin-born-in-the-usa-live-1988/</link>
		<comments>http://www.proft.com.ua/bryusa-springstin-born-in-the-usa-live-1988/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 09:58:14 +0000</pubDate>
		<dc:creator>proft</dc:creator>
				<category><![CDATA[Музыка]]></category>
		<category><![CDATA[rock]]></category>

		<guid isPermaLink="false">http://www.proft.com.ua/?p=679</guid>
		<description><![CDATA[Брюса Спрингстин &#8211; Born in the USA (live 1988)

Вот это энергетика! Брюс вылеживается на все 100%!!! Молодца   
Два бонуса  
Scorpions &#8211; Blackout

Derek And The Dominos &#8211; Layla (Live 1984)

]]></description>
			<content:encoded><![CDATA[<p><strong>Брюса Спрингстин &#8211; Born in the USA (live 1988)</strong></p>
<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/rL5Q31VvdUo&amp;rel=0&amp;color1=0xd6d6d6&amp;color2=0xf0f0f0"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/rL5Q31VvdUo&amp;rel=0&amp;color1=0xd6d6d6&amp;color2=0xf0f0f0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></object></p>
<p>Вот это энергетика! Брюс вылеживается на все 100%!!! Молодца <img src='http://www.proft.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p>Два бонуса <img src='http://www.proft.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Scorpions &#8211; Blackout</strong></p>
<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/CLtCBExPVDI&amp;rel=0&amp;color1=0xd6d6d6&amp;color2=0xf0f0f0"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/CLtCBExPVDI&amp;rel=0&amp;color1=0xd6d6d6&amp;color2=0xf0f0f0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></object></p>
<p><strong>Derek And The Dominos &#8211; Layla (Live 1984)</strong></p>
<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/UY4KGsotXPQ&amp;rel=0&amp;color1=0xd6d6d6&amp;color2=0xf0f0f0"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/UY4KGsotXPQ&amp;rel=0&amp;color1=0xd6d6d6&amp;color2=0xf0f0f0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.proft.com.ua/bryusa-springstin-born-in-the-usa-live-1988/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: Используем Google Analytics для своих нужд</title>
		<link>http://www.proft.com.ua/php-ispolzuem-google-analytics-dlya-svoix-nuzhd/</link>
		<comments>http://www.proft.com.ua/php-ispolzuem-google-analytics-dlya-svoix-nuzhd/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 09:44:42 +0000</pubDate>
		<dc:creator>proft</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Google Analytics]]></category>

		<guid isPermaLink="false">http://www.proft.com.ua/?p=677</guid>
		<description><![CDATA[После того, как Google открыл API для Google Analytics (GA) стало возможно использовать собранную статистику на своих сайтах для отображения каких либо данных для конечных пользователей или в других целях.
Для работы с Google Analytics нам понадобится: созданный аккаунт GA, ID профиля для отслеживаемого сайта, логин и пароль для доступа.
Для получения статистики на PHP можно воспользоваться [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-678" title="php_gaa" src="http://www.proft.com.ua/wp-content/uploads/2009/07/php_gaa.png" alt="" width="171" height="135" />После того, как Google открыл API для <a href="http://www.google.com/analytics/" target="_blank">Google Analytics (GA)</a> стало возможно использовать собранную статистику на своих сайтах для отображения каких либо данных для конечных пользователей или в других целях.</p>
<p>Для работы с Google Analytics нам понадобится: созданный аккаунт GA, ID профиля для отслеживаемого сайта, логин и пароль для доступа.</p>
<p>Для получения статистики на PHP можно воспользоваться классом <a href="http://www.askaboutphp.com/wp-post-images/63/googleanalytics.class.zip" target="_blank">googleanalytics.class.php</a> (для работы нужен <strong>curl</strong>), метод <strong>getReport </strong>которого принимает 4 входных параметра: <em>размерность </em>(dimensions),<em> метрику </em>(metrics), <em>фильтр </em>(filters), <em>порядок сортировки</em> (sort). На выходе мы получаем хеш, ключи которого содержат размерность, а значения &#8211; метрику, т.е. конкретные значение по запрошенной размерности.</p>
<p>Возможные варианты размерности и метрики можно посмотреть на <a href="http://code.google.com/intl/ru-RU/apis/analytics/docs/gdata/gdataReferenceDimensionsMetrics.html" target="_blank">Dimensions &amp; Metrics Reference</a>.</p>
<p>Пример использования:</p>
<pre class="brush: php;">
include &quot;googleanalytics.class.php&quot;;
try {
// создаем экземпляр класса GoogleAnalytics, в конструктор передаем {email} и {password}
$ga = new GoogleAnalytics('{email}','{password}');

// устанавливаем ID профиля для отслеживаемого сайта, формат- 'ga:123456';
$ga-&gt;setProfile('{GA Profile ID}');

// устанавливаем период, за какой нас интересует статистика, формат - YYYY-MM-DD
$ga-&gt;setDateRange('2009-05-01','2009-07-01');

// получаем статистику просмотра по годам и месяцам для страниц, url которых включает в себя /blog/
$report = $ga-&gt;getReport(
array('dimensions'=&gt;urlencode('ga:pagePath,ga:year,ga:month'),
'metrics'=&gt;urlencode('ga:pageviews'),
'filters'=&gt;urlencode('ga:pagePath=@/blog/'),
'sort'=&gt;'-ga:pagePath'
)
);

// просмотр хеша с результатом
print_r($report);

} catch (Exception $e) {
print 'Ошибка: ' . $e-&gt;getMessage();
}
</pre>
<p>ID профиля для отслеживаемого сайта можно посмотреть в самом аккаунте GA, в адресной строке браузера есть параметр &amp;id=123456 – это и есть то, что нам надо.</p>
<p>Еще одна реализация на PHP:<a href="http://www.electrictoolbox.com/google-analytics-api-and-php/" target="_blank"> The Google Analytics API and PHP: A series</a></p>
<p><a href="http://code.google.com/intl/ru-RU/apis/analytics/docs/gdata/gdataLibraries.html" target="_blank">Варианты реализации</a> на других языках, например, Python и Ruby.</p>
<p>Дополнительное чтиво:</p>
<ul>
<li><a href="http://www.askaboutphp.com/tutorials/63/google-analytics-api-class-for-php.html" target="_blank">Google Analytics API class for PHP</a></li>
<li><a href="http://code.google.com/intl/ru/apis/analytics/" target="_blank">Пользовательское отслеживание Google Analytics</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.proft.com.ua/php-ispolzuem-google-analytics-dlya-svoix-nuzhd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Мастерство катания на bike</title>
		<link>http://www.proft.com.ua/masterstvo-kataniya-na-bike/</link>
		<comments>http://www.proft.com.ua/masterstvo-kataniya-na-bike/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 22:27:14 +0000</pubDate>
		<dc:creator>proft</dc:creator>
				<category><![CDATA[Видео]]></category>
		<category><![CDATA[bike]]></category>

		<guid isPermaLink="false">http://www.proft.com.ua/?p=648</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/Z19zFlPah-o&amp;rel=0&amp;color1=0xd6d6d6&amp;color2=0xf0f0f0"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/Z19zFlPah-o&amp;rel=0&amp;color1=0xd6d6d6&amp;color2=0xf0f0f0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.proft.com.ua/masterstvo-kataniya-na-bike/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Регулярные выражения: поиск с инверсией</title>
		<link>http://www.proft.com.ua/regulyarnye-vyrazheniya-poisk-s-inversiej/</link>
		<comments>http://www.proft.com.ua/regulyarnye-vyrazheniya-poisk-s-inversiej/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 15:46:38 +0000</pubDate>
		<dc:creator>proft</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[regexp]]></category>

		<guid isPermaLink="false">http://www.proft.com.ua/?p=666</guid>
		<description><![CDATA[Понадобилось мне найти все слова в предложении, кроме определенных слов. Например, в предложении &#8216;Many modern computing systems provide wildcard characters in matching filenames from a file system.&#8216; найти все, кроме слов computing и matching.
Испытуемый текст: &#8216;Many modern computing systems provide wildcard characters in matching filenames from a file system.&#8216;
Регулярное выражение: &#8216;/\b(?!(?:computing&#124;matching)\b)\w+\b/&#8217;
Результат: перечень всех слов за [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-667" title="regexp" src="http://www.proft.com.ua/wp-content/uploads/2009/07/regexp.png" alt="" width="128" height="128" />Понадобилось мне найти все слова в предложении, кроме определенных слов. Например, в предложении &#8216;<em>Many modern computing systems provide wildcard characters in matching filenames from a file system.</em>&#8216; найти все, кроме слов computing и matching.</p>
<p>Испытуемый текст: &#8216;<em>Many modern computing systems provide wildcard characters in matching filenames from a file system.</em>&#8216;<br />
Регулярное выражение: <strong>&#8216;/\b(?!(?:computing|matching)\b)\w+\b/&#8217;</strong><br />
Результат: перечень всех слов за исключением computing и matching.</p>
<p>где,<br />
<strong> \b</strong> &#8211; граница слова<br />
<strong> \w</strong> &#8211; набор символов [A-Za-z0-9_]<br />
<strong> ?:</strong> &#8211; несохраняющие скобки, т.е. все что внутри группирующих скобок не будет включено в результат<br />
<strong> ?!</strong> &#8211; поиск с инверсией, т.е. то, что внутри будет исключено из совпадения</p>
<p>Вообще комбинация <strong>?!</strong> называется <em>негативная опережающая проверка</em> и относится к одному из четырех видов позиционных проверок:</p>
<table class="greentable" border="0">
<thead>
<tr>
<th>Тип</th>
<th>Регулярное выражение</th>
<th>Успешна, если подвыражение&#8230;</th>
</tr>
</thead>
<tbody>
<tr>
<td>Позитивная ретроспективная проверка</td>
<td>(?&lt;=..)</td>
<td>Может совпасть слева</td>
</tr>
<tr class="highlight">
<td>Негативная ретроспективная проверка</td>
<td>(?&lt;!&#8211;..)</td>
<td>Не может совпасть слева</td>
</tr>
<tr>
<td>Позитивная опережающая проверка</td>
<td>(?=..)</td>
<td>Может совпасть справа</td>
</tr>
<tr class="highlight">
<td>Негативная опережающая проверка</td>
<td>(?!..)</td>
<td>Не может совпасть справа</td>
</tr>
</tbody>
</table>
<p>Для проверки работы можно воспользоваться:</p>
<p><a href="http://gskinner.com/RegExr/" target="_blank">RegExr</a> &#8211; online инструмент для проверки регулярных выражений<br />
Расширением для FireFox <a href="https://addons.mozilla.org/en-US/firefox/addon/2077" target="_blank">Regular Expressions Tester</a></p>
<p>Полезный материл &#8211; <a href="http://regexadvice.com/forums/default.aspx" target="_blank">RegexAdvice Forums</a> &#8211; форум по регулярным выражениям.</p>
<p>Пока читал бестлер про регулярным выражениям &#8211; <a href="http://www.proft.com.ua/dzh-fridl-regulyarnye-vyrazheniya/" target="_blank">Дж. Фридл &#8211; Регулярные выражения</a> узнал две интересные вещи:</p>
<ul>
<li> по спецификации POSIX существует два диалекта регулярок BRE и ERE</li>
<li> две базовые технологии, на базе которых строится механизм регулярных выражений: НКА и ДКА</li>
</ul>
<p><strong>BRE</strong> (basic regular expressions) &#8211; базовые регулярные выражения<br />
<strong>ERE</strong> (extened regular expressions) &#8211; расширенные регулярные выражения</p>
<p><strong>НКА</strong> (недетерминированный конечный автомат) &#8211; механизм управляется регулярным выражением<br />
<strong>ДКА</strong> (детерминированный конечный автомат) &#8211; механизм управляется текстом</p>
<p>Поддержка диалектами разных метасимволов</p>
<table class="greentable" border="0">
<thead>
<tr>
<th>Метасимволы</th>
<th>BRE</th>
<th>ERE</th>
</tr>
</thead>
<tbody>
<tr>
<td>Точка, ^, $, [..], [^..]</td>
<td><img class="alignnone size-full wp-image-668" title="yes" src="http://www.proft.com.ua/wp-content/uploads/2009/07/yes.png" alt="" width="24" height="24" /></td>
<td><img class="alignnone size-full wp-image-668" title="yes" src="http://www.proft.com.ua/wp-content/uploads/2009/07/yes.png" alt="" width="24" height="24" /></td>
</tr>
<tr class="highlight">
<td>Произвольное число</td>
<td>*</td>
<td>*</td>
</tr>
<tr>
<td>Квантификаторы + и ?</td>
<td></td>
<td>+?</td>
</tr>
<tr class="highlight">
<td>Интервальный квантификатор</td>
<td>\{мин, макс\}</td>
<td>\{мин, макс\}</td>
</tr>
<tr>
<td>Группировка</td>
<td>\(..\)</td>
<td>(..)</td>
</tr>
<tr class="highlight">
<td>Применение квантификаторов к скобкам</td>
<td><img class="alignnone size-full wp-image-668" title="yes" src="http://www.proft.com.ua/wp-content/uploads/2009/07/yes.png" alt="" width="24" height="24" /></td>
<td><img class="alignnone size-full wp-image-668" title="yes" src="http://www.proft.com.ua/wp-content/uploads/2009/07/yes.png" alt="" width="24" height="24" /></td>
</tr>
<tr>
<td>Обратные ссылки</td>
<td>\1..\9</td>
<td></td>
</tr>
<tr class="highlight">
<td>Конструкция выбора</td>
<td></td>
<td><img class="alignnone size-full wp-image-668" title="yes" src="http://www.proft.com.ua/wp-content/uploads/2009/07/yes.png" alt="" width="24" height="24" /></td>
</tr>
</tbody>
</table>
<p>Краткая таблица сравнения ДКА и НКА</p>
<table class="greentable" border="0">
<thead>
<tr>
<th>параметры</th>
<th style="width: 70px;">ДКА</th>
<th style="width: 70px;">НКА</th>
</tr>
</thead>
<tbody>
<tr>
<td>поддержка обратных ссылок</td>
<td><img class="alignnone size-full wp-image-669" title="no" src="http://www.proft.com.ua/wp-content/uploads/2009/07/no.png" alt="" width="22" height="22" /></td>
<td><img class="alignnone size-full wp-image-668" title="yes" src="http://www.proft.com.ua/wp-content/uploads/2009/07/yes.png" alt="" width="24" height="24" /></td>
</tr>
<tr class="highlight">
<td>сохранение текста в круглых скобках</td>
<td><img class="alignnone size-full wp-image-669" title="no" src="http://www.proft.com.ua/wp-content/uploads/2009/07/no.png" alt="" width="22" height="22" /></td>
<td><img class="alignnone size-full wp-image-668" title="yes" src="http://www.proft.com.ua/wp-content/uploads/2009/07/yes.png" alt="" width="24" height="24" /></td>
</tr>
<tr>
<td>быстрый поиск совпадений</td>
<td><img class="alignnone size-full wp-image-668" title="yes" src="http://www.proft.com.ua/wp-content/uploads/2009/07/yes.png" alt="" width="24" height="24" /></td>
<td><img class="alignnone size-full wp-image-669" title="no" src="http://www.proft.com.ua/wp-content/uploads/2009/07/no.png" alt="" width="22" height="22" /></td>
</tr>
<tr>
<td>быстрая компиляция</td>
<td><img class="alignnone size-full wp-image-669" title="no" src="http://www.proft.com.ua/wp-content/uploads/2009/07/no.png" alt="" width="22" height="22" /></td>
<td><img class="alignnone size-full wp-image-668" title="yes" src="http://www.proft.com.ua/wp-content/uploads/2009/07/yes.png" alt="" width="24" height="24" /></td>
</tr>
<tr>
<td>меньшие затраты памяти</td>
<td><img class="alignnone size-full wp-image-669" title="no" src="http://www.proft.com.ua/wp-content/uploads/2009/07/no.png" alt="" width="22" height="22" /></td>
<td><img class="alignnone size-full wp-image-668" title="yes" src="http://www.proft.com.ua/wp-content/uploads/2009/07/yes.png" alt="" width="24" height="24" /></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.proft.com.ua/regulyarnye-vyrazheniya-poisk-s-inversiej/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL: Хранимые функции и процедуры</title>
		<link>http://www.proft.com.ua/mysql-xranimye-funkcii-i-procedury/</link>
		<comments>http://www.proft.com.ua/mysql-xranimye-funkcii-i-procedury/#comments</comments>
		<pubDate>Sun, 05 Jul 2009 10:46:23 +0000</pubDate>
		<dc:creator>proft</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.proft.com.ua/?p=659</guid>
		<description><![CDATA[Начиная с версии MySQL 5.0 были добавлены хранимые функции и процедуры &#8211; набор SQL команд, представляющие собой программную логику сохраняемую в БД, которую в последствии можно будет вызвать.
Преимущества использования:

облегчается программная часть разработки, т.к. часть простых действий совершает сама БД
написанные функции и процедуры могут быть предварительно скомпилированные, что ускоряет выполнение

Хранимые подпрограммы сохраняются внутри таблицы proc базы [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-437" title="mysql" src="http://www.proft.com.ua/wp-content/uploads/2008/12/mysql.png" alt="" width="180" height="94" />Начиная с версии MySQL 5.0 были добавлены хранимые функции и процедуры &#8211; набор SQL команд, представляющие собой программную логику сохраняемую в БД, которую в последствии можно будет вызвать.</p>
<p>Преимущества использования:</p>
<ul>
<li>облегчается программная часть разработки, т.к. часть простых действий совершает сама БД</li>
<li>написанные функции и процедуры могут быть предварительно скомпилированные, что ускоряет выполнение</li>
</ul>
<p>Хранимые подпрограммы сохраняются внутри таблицы <strong>proc </strong>базы <strong>mysql</strong>.</p>
<p>Для работы с хранимыми подпрограммами необходимы такие привилегии для пользователя: <em>CREATE ROUTINE</em>, <em>ALTER ROUTINE</em>, <em>EXECUTE.</em></p>
<p>Набор команд используемых вместе с хранимыми подпрограммами:</p>
<table class="greentable" border="0">
<thead>
<tr>
<th>Название</th>
<th>Описание</th>
</tr>
</thead>
<tbody>
<tr>
<td>CREATE PROCEDURE</td>
<td>создание процедуры</td>
</tr>
<tr class="highlight">
<td>CREATE FUNCTION</td>
<td>создание функции</td>
</tr>
<tr>
<td>ALTER PROCEDURE</td>
<td>изменение процедуры</td>
</tr>
<tr class="highlight">
<td>ALTER FUNCTION</td>
<td>изменение функции</td>
</tr>
<tr>
<td>DROP PROCEDURE</td>
<td>удаление процедуры</td>
</tr>
<tr class="highlight">
<td>DROP FUNCTION</td>
<td>удаление функции</td>
</tr>
<tr>
<td>SHOW CREATE PROCEDURE proc_name</td>
<td>показать текст процедуры proc_name</td>
</tr>
<tr class="highlight">
<td>SHOW CREATE FUNCTION func_name</td>
<td>показать текст функции func_name</td>
</tr>
<tr>
<td>SHOW PROCEDURE STATUS LIKE &#8216;proc_name&#8217;</td>
<td>показать характеристики процедуры proc_name</td>
</tr>
<tr class="highlight">
<td>SHOW FUNCTION STATUS LIKE &#8216;func_name&#8217;</td>
<td>показать характеристики функции func_name</td>
</tr>
<tr>
<td>CALL proc_name()</td>
<td>вызвать процедуру proc_name</td>
</tr>
<tr class="highlight">
<td>DECLARE</td>
<td>определение локальных переменных</td>
</tr>
<tr>
<td>SET</td>
<td>изменение значений локальных и глобальных переменных</td>
</tr>
<tr class="highlight">
<td>SELECT &#8230; INTO</td>
<td>сохранение значения указанного столбца в переменную</td>
</tr>
<tr>
<td>IF</td>
<td>условный оператор if-then-else-end</td>
</tr>
<tr class="highlight">
<td>CASE &#8230; WHEN</td>
<td>оператор выбора</td>
</tr>
<tr>
<td>LOOP,REPEAT,WHILE</td>
<td>циклы</td>
</tr>
<tr class="highlight">
<td>RETURNS</td>
<td>возвращение значения из функции</td>
</tr>
</tbody>
</table>
<p>Создание и изменение переменой:</p>
<pre class="brush: sql;">
DECLARE val INT DEFAULT 0;
SET val = 5;
</pre>
<p>Создание функции:</p>
<pre class="brush: sql;">
DELIMITER //
CREATE FUNCTION func() RETURNS INTEGER
BEGIN
DECLARE val INTEGER;
SELECT id INTO val FROM table;
RETURN IFNULL(val, 0);
END//
DELIMITER ;
</pre>
<p>DELIMITER указывает на символ-разделитель строки с командой, т.к. внутри CREATE FUNCTION есть набор вложенных команд, то для них мы оставляем стандартный разделитель ; а для указания завершения самой CREATE FUNCTION указываем //</p>
<p>Выполнение созданной функции:</p>
<pre class="brush: sql;">SELECT func();</pre>
<p>Удаление созданной функции:</p>
<pre class="brush: sql;">DROP FUNCTION IF EXISTS func;</pre>
<p>Просмотр хранимых подпрограмм в БД dbname</p>
<pre class="brush: sql;">SELECT ROUTINE_TYPE, ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA='dbname';</pre>
<p>Дополнительное чтиво:</p>
<ul>
<li>Описание <a href="http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html" target="_blank">синтаксиса CREATE PROCEDURE и CREATE FUNCTION</a> из официальной документации.</li>
<li> Про <a href="http://blog.kovshenin.com/archives/mysql-stored-procedures" target="_blank">MySQL хранимые процедуры</a> на blog.kovshenin.com</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.proft.com.ua/mysql-xranimye-funkcii-i-procedury/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Звездные войны ASCII вариант</title>
		<link>http://www.proft.com.ua/zvezdnye-vojny-ascii-variant/</link>
		<comments>http://www.proft.com.ua/zvezdnye-vojny-ascii-variant/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 22:38:37 +0000</pubDate>
		<dc:creator>proft</dc:creator>
				<category><![CDATA[Улыбнуло]]></category>
		<category><![CDATA[юмор]]></category>

		<guid isPermaLink="false">http://www.proft.com.ua/?p=651</guid>
		<description><![CDATA[
Смотрим telnet towel.blinkenlights.nl
PS: Для установки telnet под Windows 7 или Windows Vista выполняем в командной строке pkgmgr /iu:TelnetClient или юзаем Putty.
]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-652" title="star_wars_ascii" src="http://www.proft.com.ua/wp-content/uploads/2009/07/star_wars_ascii.png" alt="" width="300" height="133" /></p>
<p>Смотрим <strong>telnet towel.blinkenlights.nl</strong></p>
<p>PS: Для установки telnet под Windows 7 или Windows Vista выполняем в командной строке <em>pkgmgr /iu:TelnetClient</em> или юзаем <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" target="_blank">Putty</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.proft.com.ua/zvezdnye-vojny-ascii-variant/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Web Frameworks на Python</title>
		<link>http://www.proft.com.ua/web-frameworks-na-python/</link>
		<comments>http://www.proft.com.ua/web-frameworks-na-python/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 23:28:46 +0000</pubDate>
		<dc:creator>proft</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[django]]></category>

		<guid isPermaLink="false">http://www.proft.com.ua/?p=657</guid>
		<description><![CDATA[10+ Python Frameworks &#8211; обзор 10 фреймворков на Python: Django, web2py, Pylons, The Quixote Web Framework, Zope, TurboGears, Webware, CherryPY, Porcupine, Karrigell
В обзоре также есть упоминание о:

 Drupy &#8211; портированние CMS Drupal на Python
 Zine &#8211; блоговый движок

В статье Introducing Three Python Web Frameworks дается ознакомительный обзор с тремя наиболее популярными веб-фреймворками на Python: Django, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ajaxline.com/10-python-frameworks" target="_blank"><img class="alignright size-full wp-image-658" title="python_web_fw" src="http://www.proft.com.ua/wp-content/uploads/2009/07/python_web_fw.png" class="thickbox" alt="" width="160" height="74" />10+ Python Frameworks</a> &#8211; обзор 10 фреймворков на Python: Django, web2py, Pylons, The Quixote Web Framework, Zope, TurboGears, Webware, CherryPY, Porcupine, Karrigell</p>
<p>В обзоре также есть упоминание о:
<ul>
<li><a href="http://drupy.net/" target="_blank"> Drupy</a> &#8211; портированние CMS Drupal на Python</li>
<li><a href="http://zine.pocoo.org/" target="_blank"> Zine</a> &#8211; блоговый движок</li>
</ul>
<p>В статье <a href="http://www.linuxjournal.com/content/introducing-three-python-web-frameworks" target="_blank">Introducing Three Python Web Frameworks</a> дается ознакомительный обзор с тремя наиболее популярными веб-фреймворками на Python: Django, Pylons и TurboGears.</p>
<p>Offtop: Оказывается на Perl тоже есть веб-фреймворки: Maypole, Catalyst, Jifty, Gantry.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.proft.com.ua/web-frameworks-na-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Holovaty and Kaplan-Moss – The Definitive Guide to Django</title>
		<link>http://www.proft.com.ua/holovaty-and-kaplan-moss-the-definitive-guide-to-django/</link>
		<comments>http://www.proft.com.ua/holovaty-and-kaplan-moss-the-definitive-guide-to-django/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 23:08:07 +0000</pubDate>
		<dc:creator>proft</dc:creator>
				<category><![CDATA[Чтиво]]></category>
		<category><![CDATA[django]]></category>

		<guid isPermaLink="false">http://www.proft.com.ua/?p=655</guid>
		<description><![CDATA[Название: The Definitive Guide to Django: Web Development Done Right
Авторы: Adrian Holovaty и Jacob Kaplan-Moss
Дата издание: 2008
Страниц: 481
Содержание:
Part 1: Getting Started
CHAPTER 1 Introduction to Django
CHAPTER 2 Getting started
CHAPTER 3 The Basics of Dynamic Web Pages
CHAPTER 4 The Django template system
CHAPTER 5 Interacting with a Database: Models
CHAPTER 6 The Django administration site
CHAPTER 7 Form Processing
CHAPTER 8 [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-656" title="django_book" src="http://www.proft.com.ua/wp-content/uploads/2009/07/django_book.png" alt="" width="185" height="245" /><strong>Название:</strong> The Definitive Guide to Django: Web Development Done Right<br />
<strong>Авторы:</strong> Adrian Holovaty и Jacob Kaplan-Moss<br />
<strong>Дата издание:</strong> 2008<br />
<strong>Страниц:</strong> 481</p>
<p><strong>Содержание:</strong></p>
<p>Part 1: Getting Started<br />
CHAPTER 1 Introduction to Django<br />
CHAPTER 2 Getting started<br />
CHAPTER 3 The Basics of Dynamic Web Pages<br />
CHAPTER 4 The Django template system<br />
CHAPTER 5 Interacting with a Database: Models<br />
CHAPTER 6 The Django administration site<br />
CHAPTER 7 Form Processing<br />
CHAPTER 8 Advanced Views and URLconfs</p>
<p>Part 2: Django’s Subframeworks<br />
CHAPTER 9 Generic views<br />
CHAPTER 10 Extending the Template Engine<br />
CHAPTER 11 Generating Non-HTML Content<br />
CHAPTER 12 Sessions, Users, and Registration<br />
CHAPTER 13 Caching<br />
CHAPTER 14 other Contributes Subframeworks<br />
CHAPTER 15 Middleware<br />
CHAPTER 16 Integrating with Legacy Databases and Applications<br />
CHAPTER 17 Extending Django’s Admin Interface<br />
CHAPTER 18 Internationalization<br />
CHAPTER 19 Security<br />
CHAPTER 20 Deploying Django</p>
<p>Part 3: Appendixes<br />
APPENDIX A: Case studies<br />
APPENDIX B: Model Definition Reference<br />
APPENDIX C: Database API Reference<br />
APPENDIX D: Generic View Reference<br />
APPENDIX E: Settings<br />
APPENDIX F: Built-in Template Tags and Filters<br />
APPENDIX G: The django-admin Utility<br />
APPENDIX H: Request and response objects</p>
<p>Книжка написана для версии Django 0.96, а сейчас уже доступна 1.0.2 в которой некоторые моменты поменялись, потому свежую книгу можно найти на <a href="http://www.djangobook.com/en/2.0/" target="_blank">The Django Book</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.proft.com.ua/holovaty-and-kaplan-moss-the-definitive-guide-to-django/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Пачка полезностей для JavaScripts #1</title>
		<link>http://www.proft.com.ua/pachka-poleznostej-dlya-javascripts-1/</link>
		<comments>http://www.proft.com.ua/pachka-poleznostej-dlya-javascripts-1/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 22:05:54 +0000</pubDate>
		<dc:creator>proft</dc:creator>
				<category><![CDATA[Java Script]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mootools]]></category>

		<guid isPermaLink="false">http://www.proft.com.ua/?p=645</guid>
		<description><![CDATA[11 Syntax Highlighters To Beautify Code Presentation &#8211; небольшой обзор библиотек подсветки кода. Сами библиотеки украшения синтаксиса реализованы на разных языках JS, PHP, Python, Ruby.
70 New, Useful AJAX And JavaScript Techniques &#8211; подборка разных решений на JavaScript&#8217;е разбитое по группам: календари, навигация, подсказки, меню, ползунки, слайд-шоу, обрезка изображений, предпросмотр изображений, загрузка файлов, завершение слов, формы, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.webresourcesdepot.com/11-syntax-highlighters-to-beautify-code-presentation/" target="_blank"><img class="alignright size-full wp-image-647" title="box_js" src="http://www.proft.com.ua/wp-content/uploads/2009/07/box_js.png" class="thickbox" alt="" width="128" height="128" />11 Syntax Highlighters To Beautify Code Presentation</a> &#8211; небольшой обзор библиотек подсветки кода. Сами библиотеки украшения синтаксиса реализованы на разных языках JS, PHP, Python, Ruby.</p>
<p><a href="http://www.smashingmagazine.com/2009/03/08/70-new-useful-ajax-and-javascript-techniques/" target="_blank">70 New, Useful AJAX And JavaScript Techniques</a> &#8211; подборка разных решений на JavaScript&#8217;е разбитое по группам: календари, навигация, подсказки, меню, ползунки, слайд-шоу, обрезка изображений, предпросмотр изображений, загрузка файлов, завершение слов, формы, таблицы, ajax,</p>
<p><a href="http://www.ajaxline.com/best-javascript-tree-widgets" target="_blank">Best JavaScript Tree Widgets</a> &#8211; обзорчик 9 виджетов для реализации древовидной структуры. В список попали: ExtJS TreePanels, QooXdoo Tree Widget, jsTree, TreeView, Destroydrop, jQuery File Tree, jQuery Simple Tree, DHTML TreeView, Graphic JavaScript Tree with Layout</p>
<p>Creating pseudo 3D games with HTML 5 canvas and raycasting: <a href="http://dev.opera.com/articles/view/creating-pseudo-3d-games-with-html-5-can-1/" target="_blank">Часть 1</a> <a href="http://dev.opera.com/articles/view/3d-games-with-canvas-and-raycasting-part-2/" target="_blank">Часть 2</a> &#8211; создание псевдо 3D игры с использованием объекта canvas и <a href="http://ru.wikipedia.org/wiki/Ray_casting" target="_blank">рейкастинг</a>.</p>
<p style="padding-left: 25px"><a href="http://www.javascriptgaming.com/" target="_blank">JavaScript Gaming</a> &#8211; каталог игр написанных на JavaScript</p>
<p><a href="http://elliottkember.com/sexy_curls.html" target="_blank">The Sexy Curls jQuery Plugin</a> &#8211; реализация загибающегося уголка страницы, под которым видно, например, другую страницы.</p>
<p><a href="http://datatables.net/index" target="_blank">DataTables</a> &#8211; расширяем возможности таблиц: сортировка, фильтрация, загрузка данных через  AJAX, настройка отображения с помощью CSS и т.д.</p>
<p><a href="http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/comment-page-1/" target="_blank">A jQuery inline form validation, because validation is a mess</a> &#8211; симпатичные алерты для полей формы необходимых для заполнения</p>
<p><a href="http://orkans-tmp.22web.net/star_rating/index.html" target="_blank">Star Rating widget</a> &#8211; довольнатаки функциональные рейтинг на jQuery</p>
<p><a href="http://www.meiocodigo.com/projects/meiomask/" target="_blank">meioMask</a> &#8211; jQuery плагин для добавления маски ввода в поля input</p>
<p><a href="http://keith-wood.name/datepick.html" target="_blank">jQuery Datepicker</a> &#8211; удобный календарик для заполнения полей с датой</p>
<p><a href="http://stanlemon.net/projects/jgrowl.html" target="_blank">jGrowl</a> &#8211; всплывающий сообщения, наподобие Growl из OS X</p>
<p><a href="http://wayfarerweb.com/wtooltip.php" target="_blank">wTooltip</a> &#8211; легкие и гибкие подсказки (tooltip)</p>
<p><a href="http://www.clientcide.com/wiki/cnet-libraries" target="_blank">Clientcide Libraries for MooTools</a> &#8211; подборка расширений для MooTools, есть классы для работы с объектом Browser, элементами на странице, UI, слоями, формами, эффектами и т.д.</p>
<p><a href="http://www.unwrongest.com/projects/lazy/" target="_blank">Lazy</a> &#8211; загрузка jQuery плагинов по требованию (lazy load), понимает зависимости</p>
<p><a href="http://code.google.com/p/ie7-js/" target="_blank">ie7-js</a> &#8211; прививаем Internet Explorer&#8217;у поведение совместимое со стандартами. Обещают исправление многих HTML и CSS ошибок, в том числе прозрачность PNG.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.proft.com.ua/pachka-poleznostej-dlya-javascripts-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
