<?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; Анонсы</title>
	<atom:link href="http://korchasa.ru/index.php/category/%d0%b0%d0%bd%d0%be%d0%bd%d1%81%d1%8b/feed/" rel="self" type="application/rss+xml" />
	<link>http://korchasa.ru</link>
	<description>Разработка, тестирование, запуск</description>
	<lastBuildDate>Mon, 24 May 2010 23:28:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Limb3 2010.1 RC</title>
		<link>http://korchasa.ru/index.php/2010/05/limb3-2010-1-rc/</link>
		<comments>http://korchasa.ru/index.php/2010/05/limb3-2010-1-rc/#comments</comments>
		<pubDate>Mon, 24 May 2010 18:41:12 +0000</pubDate>
		<dc:creator>korchasa</dc:creator>
				<category><![CDATA[Анонсы]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[limb]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[разработка]]></category>

		<guid isPermaLink="false">http://korchasa.ru/?p=303</guid>
		<description><![CDATA[Ну вот и RC!
С 2007 года мы жили на trunk-версии. Доколе! Хватит!
hg clone https://limb3.googlecode.com/hg/#RC-prepare limb2010.1
Список изменений настолько велик, что проще описать, что мы умеем:
Ядро &#8211; пакет CORE
Подключение классов и поддержка отложенной загрузки кода, работа с пакетами (lmb_package_*), работа с переменными окружения (lmb_env_*), проверка входных параметров (lmb_assert_*), коллекции и единичные контейнеры.
IoC  -пакет TOOLKIT
Пакет TOOLKIT &#8211; есть реализация паттерна Dynamic Service [...]]]></description>
			<content:encoded><![CDATA[<p>Ну вот и RC!</p>
<p>С 2007 года мы жили на trunk-версии. Доколе! Хватит!</p>
<p><code>hg clone https://limb3.googlecode.com/hg/#RC-prepare limb2010.1</code></p>
<p>Список изменений настолько велик, что проще описать, что мы умеем:</p>
<h3><span id="more-303"></span>Ядро &#8211; пакет CORE</h3>
<p>Подключение классов и поддержка отложенной загрузки кода, работа с пакетами (lmb_package_*), работа с переменными окружения (lmb_env_*), проверка входных параметров (lmb_assert_*), коллекции и единичные контейнеры.</p>
<h3>IoC  -пакет TOOLKIT</h3>
<p><a href="http://wiki.limb-project.com/doku.php?id=limb3:ru:packages:toolkit:usage">Пакет TOOLKIT</a> &#8211; есть реализация паттерна <strong>Dynamic Service Locator</strong>. Суть этого паттерна состоит в том, что есть некий легко доступный объект, который является общим местом для доступа ко всем популярным объектам (сервисам) и в том, что возможности этого объекта можно легко расширять. Основное отличие от большинства подобных решений в том, что инстанцирование описывается императивно.</p>
<h3>DBAL (Data Base Abstraction Layer) &#8211; пакет DBAL</h3>
<p>В данный момент поддерживаются: MySQL 4.1+, SQLite, Oracle (OCI8), PostgreSQL 8.2+, Linter</p>
<p>Архитектура <a href="http://wiki.limb-project.com/doku.php?id=limb3:ru:packages:dbal:intro">пакета DBAL</a> вполне стандартная:</p>
<ul>
<li>Driver	Драйвер (Driver) &#8211; базовые классы для работы с базами данных, которые абстрагируют доступ к базе данных. При помощи них осуществляются операции выборки и изменения состояния базы данных (select, update, insert, delete и т.д.).</li>
<li>Query  - группа классов, позволяющих тем или иным образом инкапсулировать SQL запросы.</li>
<li>Criteria  - группа классов, позволяющих строить условия для SQL запросов.</li>
<li>Dump  - группа классов, используемых для загрузки sql-дампов.</li>
</ul>
<h3>ORM (Object-Relation Mapping) &#8211; пакет ACTIVE_RECORD</h3>
<p>Первоначальная идея <a href="http://wiki.limb-project.com/doku.php?id=limb3:ru:packages:active_record:intro">пакета ACTIVE_RECORD</a> взята из фреймворка Ruby-On-Rails. RoR в данном случае выступали в качестве функционального ориентира, но мы не копировали полностью его API и функционал, а реализовывали только то, что было необходимо в текущий момент.</p>
<p>Основные характеристики:</p>
<ul>
<li> автоматическое определение наименований и типов полей таблицы</li>
<li>поддержка отношений один-к-одному, один-ко-многим и много-ко-многим</li>
<li>поддержка ValueObjects</li>
<li>поддержка наследования в рамках одной таблицы (Single Table Inheritance)</li>
<li>поддержка “отложенной загрузки” (LazyLoading) для коллекций</li>
<li>тесная интеграция с шаблонными системами WACT и MACRO</li>
<li>&#8220;жадные&#8221; операции  - attach и join</li>
<li>пользовательские коллекции</li>
</ul>
<h3>Шаблонизация &#8211; пакеты VIEW, WACT и MACRO</h3>
<p>limb3 следует парадигме MVC, как средству логичного разбиения кода, на относительно независимые куски. Пакет VIEW представляет одноименный слой MVC, и представляет из себя абстракцию от конкретного механизма шаблонизации. В данный момент основным шаблонизатором в limb3 является <a href="http://wiki.limb-project.com/doku.php?id=limb3:ru:packages:macro:intro">MACRO</a>, пришедший на смену <a href="http://wiki.limb-project.com/doku.php?id=limb3:ru:packages:wact">WACT&#8217;у</a>. Помимо них VIEW поддерживает Blitz, JSON и нативный PHP.</p>
<p>MACRO &#8211; это своего рода syntactic sugar для нативного РНР. Мы пошли не по пути хэлперов, а остались верны тегам и фильтрам. Кратко о нем:</p>
<ul>
<li>промежуточная компиляция в PHP-код</li>
<li>две области видимости переменных: глобальная и локальная (на уровне шаблона)</li>
<li>механизм фильтров</li>
<li>шаблоны комбинируются через <a href="http://wiki.limb-project.com/doku.php?id=limb3:ru:packages:macro:tags:core_tags:include_tag">include</a> (включение дочернего шаблона), <a href="http://wiki.limb-project.com/doku.php?id=limb3:ru:packages:macro:tags:core_tags:wrap_tag">wrap</a> (включение в родительский шаблон) и <a href="http://wiki.limb-project.com/doku.php?id=limb3:ru:packages:macro:tags:core_tags:template_tag">template+apply</a> (применение шаблона)</li>
<li>поддерживается концепция слотов</li>
<li>готовые теги для работы со списками, деревьями, пейджингом, формами и их полями, ссылками и интернационализацией</li>
<li>готовые фильтры для различного форматирования строк, чисел, дат и специальных форматов</li>
<li>расширяем через собственные теги и фильтры</li>
</ul>
<h3>Веб-приложение &#8211; пакет WEB_APP</h3>
<p><a href="http://wiki.limb-project.com/doku.php?id=limb3:ru:packages:web_app">Пакет WEB_APP</a> позволяет стоить веб-приложения, применяя парадигму MVC (Model-View-Controller). Сам WEB_APP пакет предоставляет классы для реализации только Controller составляющей. Выбор средства для реализации модели и отображения все равно лежит на конечном разработчике приложения, хотя пакет реализован таким образом чтобы максимально упростить работу с приложениями, где в качестве модели будут выбраны “родные” Limb3 пакеты DBAL и ACTIVE_RECORD, а в качестве отображения &#8211; пакет VIEW.</p>
<p>Limb3-приложения строятся обычно на основе цепочки фильтров, которая запускается из файла index.php. Цепочка фильтров стоится из набора типовых фильтров пакета WEB_APP или из тех, которые сочтет нужными реализовать конечный разработчик приложения.</p>
<h3>Тестирование &#8211; пакет TESTS_RUNNER</h3>
<p>TESTS_RUNNER &#8211; пакет для организации и запуска <a style="padding-top: 1px; padding-right: 0px; padding-bottom: 1px; padding-left: 16px; color: purple; text-decoration: underline; background-image: url(http://wiki.limb-project.com/lib/tpl/limb/images/link_icon.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: 0px 1px; background-repeat: no-repeat no-repeat; margin: 0px;" title="http://www.simpletest.org/" rel="nofollow" href="http://www.simpletest.org/">SimpleTest</a> тестов для приложений, которые содержат большие тестовые наборы. В поставку с пакетом входят классы, которые позволяют выполнять тесты в cli или web-режиме.</p>
<p>Данный пакет не содержит никаких зависимостей от других пакетов, входящих в Limb3, поэтому может использоваться полностью отдельно.</p>
<h3>Прочие пакеты</h3>
<p>Набор практически стандартен: ACL, деревья, кэширование, календарь, CLI-скрипты, админка, работа с конфигами, конвертация дат, интернационализация, обработка изображений, отправка почти и так далее. Полный список пакетов можно найти на <a href="http://wiki.limb-project.com/doku.php?id=limb3:ru:packages">соответствующей странице</a> в документации.</p>
<h3>Инкубатор</h3>
<p>Некоторое время назад мы ввели концепцию инкубатора. В него помещаются все &#8220;молодые&#8221; пакеты, которые еще не прошли испытание боем, недокументированные пакеты или пакеты не покрытые тестами. В данный момент в нем находятся:</p>
<ul>
<li>CONSTRUCTOR &#8211; генератор моделей, контроллеров, шаблонов на основе схемы БД</li>
<li>PROFILE &#8211; средство для профилирования кода, запросов к БД и кешам</li>
<li>CRON &#8211; базовая функциональность для крон-задач, с ведением лога в БД и административной страничкой просмотра этого дела</li>
</ul>
<h2>Текущие проблемы</h2>
<p>Самой большой, на мой взгляд, проблемой является не слишком удобная документация. В данный момент она разбита по пакетам. Опыт показал, что иногда новички испытывают проблему с поискам, ибо не знают где и как оно реализовано.</p>
<p>Помимо этого на версии RC проходят не все тесты, но это поправим до релиза.</p>
<h2>Итого</h2>
<p>Если вы матерый РНР-программист, и всякие ZF и Symfony вам жмут в плечах и не дают расправить крылья, то приходите к нам. Мы очень гибкие, честно-честно.</p>
<ul>
<li>Код: hg clone https://limb3.googlecode.com/hg/#RC-prepare limb2010.1</li>
<li><a href="http://wiki.limb-project.com/doku.php?id=limb3:ru">Документация</a></li>
<li><a href="http://wiki.limb-project.com/doku.php?id=limb3:ru:tutorials:basic">Чтобы въехать</a> (быстрый старт)</li>
<li><a href="http://forum.limb-project.com/">Форум поддержки</a></li>
<li><a href="http://tracker.korchasa.ru">Временный треккер</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://korchasa.ru/index.php/2010/05/limb3-2010-1-rc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Работа с UTF-8 в PHP</title>
		<link>http://korchasa.ru/index.php/2008/01/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-utf-8-%d0%b2-php/</link>
		<comments>http://korchasa.ru/index.php/2008/01/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-utf-8-%d0%b2-php/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 20:10:00 +0000</pubDate>
		<dc:creator>korchasa</dc:creator>
				<category><![CDATA[Анонсы]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://korchasa.ru/?p=39</guid>
		<description><![CDATA[Ребята из WACT собрали, упорядочили и выложили список &#8220;проблемных&#8221; мест в PHP, с точки зрения использования UFT-8:


The PCRE Extension


The String Extension


Array Extension


Mail Functions


Variables Handling


XML Extension (SAX)


XML DOM Extension


URL Functions


GD Extension


exif extension


Полную версию можно прочесть здесь.
]]></description>
			<content:encoded><![CDATA[<p>Ребята из WACT собрали, упорядочили и выложили список &#8220;проблемных&#8221; мест в PHP, с точки зрения использования UFT-8:</p>
<ul>
<li>
<div class="li"><span class="li"><a class="toc" href="http://www.phpwact.org/php/i18n/utf-8#the_pcre_extension">The PCRE Extension</a></span></div>
</li>
<li class="level3">
<div class="li"><span class="li"><a class="toc" href="http://www.phpwact.org/php/i18n/utf-8#the_string_extension">The String Extension</a></span></div>
</li>
<li class="level3">
<div class="li"><span class="li"><a class="toc" href="http://www.phpwact.org/php/i18n/utf-8#array_extension">Array Extension</a></span></div>
</li>
<li class="level3">
<div class="li"><span class="li"><a class="toc" href="http://www.phpwact.org/php/i18n/utf-8#mail_functions">Mail Functions</a></span></div>
</li>
<li class="level3">
<div class="li"><span class="li"><a class="toc" href="http://www.phpwact.org/php/i18n/utf-8#variables_handling">Variables Handling</a></span></div>
</li>
<li class="level3">
<div class="li"><span class="li"><a class="toc" href="http://www.phpwact.org/php/i18n/utf-8#xml_extension_sax">XML Extension (SAX)</a></span></div>
</li>
<li class="level3">
<div class="li"><span class="li"><a class="toc" href="http://www.phpwact.org/php/i18n/utf-8#xml_dom_extension">XML DOM Extension</a></span></div>
</li>
<li class="level3">
<div class="li"><span class="li"><a class="toc" href="http://www.phpwact.org/php/i18n/utf-8#url_functions">URL Functions</a></span></div>
</li>
<li class="level3">
<div class="li"><span class="li"><a class="toc" href="http://www.phpwact.org/php/i18n/utf-8#gd_extension">GD Extension</a></span></div>
</li>
<li class="level3">
<div class="li"><span class="li"><a class="toc" href="http://www.phpwact.org/php/i18n/utf-8#exif_extension">exif extension</a></span></div>
</li>
</ul>
<p>Полную версию можно прочесть <a href="http://www.phpwact.org/php/i18n/utf-8">здесь</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://korchasa.ru/index.php/2008/01/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-utf-8-%d0%b2-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>4 в 1 &#8211; простой комбайн для оптимизации статики</title>
		<link>http://korchasa.ru/index.php/2008/01/4-%d0%b2-1-%d0%bf%d1%80%d0%be%d1%81%d1%82%d0%be%d0%b9-%d0%ba%d0%be%d0%bc%d0%b1%d0%b0%d0%b9%d0%bd-%d0%b4%d0%bb%d1%8f-%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8-%d1%81%d1%82/</link>
		<comments>http://korchasa.ru/index.php/2008/01/4-%d0%b2-1-%d0%bf%d1%80%d0%be%d1%81%d1%82%d0%be%d0%b9-%d0%ba%d0%be%d0%bc%d0%b1%d0%b0%d0%b9%d0%bd-%d0%b4%d0%bb%d1%8f-%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8-%d1%81%d1%82/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 01:39:00 +0000</pubDate>
		<dc:creator>korchasa</dc:creator>
				<category><![CDATA[Анонсы]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[кэширование]]></category>
		<category><![CDATA[производительность]]></category>
		<category><![CDATA[разметка]]></category>
		<category><![CDATA[разработка]]></category>

		<guid isPermaLink="false">http://korchasa.ru/?p=38</guid>
		<description><![CDATA[Наткнулся на интересную библиотеку. Вот перевод интродакшена:

Как  уменьшить время загрузки сайта в 5 раз, тремя строчками кода.
Есть 4 относительно простых способа, с помощью которых вы можете уменьшить время  загрузки страницы:

делать меньше HTTP запросов
выставлять expires на далекое будущее
сжимать компоненты вашей страницы gzip&#8217;ом
обфускачивать ваши JavaScript и CSS файлы, а так же сам HTML-код

После моего поста [...]]]></description>
			<content:encoded><![CDATA[<p>Наткнулся на <a href="http://aciddrop.com/2008/01/21/boost-your-website-load-time-with-3-lines-of-code/">интересную библиотеку</a>. Вот перевод интродакшена:</p>
<blockquote>
<h3>Как  уменьшить время загрузки сайта в 5 раз, тремя строчками кода.</h3>
<p>Есть 4 относительно простых способа, с помощью которых вы можете уменьшить время  загрузки страницы:</p>
<ul>
<li>делать меньше HTTP запросов</li>
<li>выставлять expires на далекое будущее</li>
<li>сжимать компоненты вашей страницы gzip&#8217;ом</li>
<li>обфускачивать ваши JavaScript и CSS файлы, а так же сам HTML-код</li>
</ul>
<p>После моего поста об <a href="http://aciddrop.com/2008/01/03/automatically-join-your-javascript-and-css-into-a-single-file/">объединении CSS и JavaScript файлов</a>, я написал PHP-скрипт, который будет автоматически применять все вышеперечисленные способы. Все, что вам нужно сделать, это поместить следующий код в начало своего PHP-файла:</p>
<pre lang="php">require_once ( 'class.compressor.php' ) ;
$compressor = new compressor ( 'css,javascript,page' ) ;</pre>
<p>А этот код в конец:</p>
<pre lang="php">$compressor -&gt; finish ( ) ;</pre>
</blockquote>
<p><span id="more-38"></span><br />
Сравните:<br />
<img src="http://aciddrop.com/aciddrop/minify/uncompressed-small.gif" border="0" alt="Firebug before compression" /><br />
<img src="http://aciddrop.com/aciddrop/minify/compressed-small.gif" border="0" alt="Firebug before compression" /></p>
<p>Библиотека довольно интересная. Особенно для небольших сайтов, где еще можно отдавать весь js и css сразу. Да и в плане выставления правильных заголовков для заgzipенных данных есть чему поучиться.</p>
<p>Примеры <a href="http://aciddrop.com/aciddrop/minify/">с использованием gzip</a>, <a href="http://aciddrop.com/aciddrop/minify/compress_me.php?compress=no">без него</a>.</p>
<p>Скачать можно <a href="http://aciddrop.com/2008/01/23/site-speed-boost-script-updated/">тут</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://korchasa.ru/index.php/2008/01/4-%d0%b2-1-%d0%bf%d1%80%d0%be%d1%81%d1%82%d0%be%d0%b9-%d0%ba%d0%be%d0%bc%d0%b1%d0%b0%d0%b9%d0%bd-%d0%b4%d0%bb%d1%8f-%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8-%d1%81%d1%82/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Inclued. Профайлинг подключаемых файлов в PHP</title>
		<link>http://korchasa.ru/index.php/2008/01/inclued-%d0%bf%d1%80%d0%be%d1%84%d0%b0%d0%b9%d0%bb%d0%b8%d0%bd%d0%b3-%d0%bf%d0%be%d0%b4%d0%ba%d0%bb%d1%8e%d1%87%d0%b0%d0%b5%d0%bc%d1%8b%d1%85-%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%b2-%d0%b2-php/</link>
		<comments>http://korchasa.ru/index.php/2008/01/inclued-%d0%bf%d1%80%d0%be%d1%84%d0%b0%d0%b9%d0%bb%d0%b8%d0%bd%d0%b3-%d0%bf%d0%be%d0%b4%d0%ba%d0%bb%d1%8e%d1%87%d0%b0%d0%b5%d0%bc%d1%8b%d1%85-%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%b2-%d0%b2-php/#comments</comments>
		<pubDate>Sun, 20 Jan 2008 22:08:00 +0000</pubDate>
		<dc:creator>korchasa</dc:creator>
				<category><![CDATA[Анонсы]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[производительность]]></category>
		<category><![CDATA[разработка]]></category>

		<guid isPermaLink="false">http://korchasa.ru/?p=40</guid>
		<description><![CDATA[Не все знают, но существует удобная утилита для определения подключаемых (include, require) файлов в PHP. И зовется она — Inclued. В данный момент последней версией является 0.3 (inclued-0.3.tar.gz 7.5Кб).
Inclued представляет из себя PECL-пакет, со всеми вытекающими последствиями. Что бы не дублировать информацию в интернете (а на самом деле лень писать) вот ссылка на информацию об [...]]]></description>
			<content:encoded><![CDATA[<p>Не все знают, но существует удобная утилита для определения подключаемых (include, require) файлов в PHP. И зовется она — <a href="http://t3.dotgnu.info/blog/tags/inclued/">Inclued</a>. В данный момент последней версией является 0.3 (<a href="http://t3.dotgnu.info/code/inclued-0.3.tar.gz">inclued-0.3.tar.gz</a> 7.5Кб).</p>
<p><span id="more-40"></span>Inclued представляет из себя PECL-пакет, со всеми вытекающими последствиями. Что бы не дублировать информацию в интернете (а на самом деле лень писать) <a href="http://handy-notes.blogspot.com/2007/06/pecl-php.html">вот</a> ссылка на информацию об установке PECL&#8217;овских пакетов.</p>
<p>Inclued версии 0.3 в процессе работы строит дерево подключений и самостоятельно сохраняет его в файл, вида inclued.XXXXX.X в dumpdir, указанный в php.ini.<br />
Пример php.ini, для использования inclued:</p>
<pre lang="ini">...
inclued.enabled = On
inclued.dumpdir = /tmp/
...</pre>
<p>Создадим несколько файлов:<br />
<strong>a.php</strong></p>
<pre lang="php">';</pre>
<p><strong>b.php</strong></p>
<pre lang="php">';</pre>
<p><strong>c.php</strong></p>
<pre lang="php">';</pre>
<p><strong>d.php</strong></p>
<pre lang="php">';</pre>
<p><strong>index.php</strong></p>
<pre lang="php">';
var_dump(inclued_get_data());</pre>
<p>и посмотрим, что нам «выдаст» index.php. В моем случае (с включенным xdebug) это:</p>
<blockquote><p>a.php<br />
d.php<br />
c.php<br />
b.php<br />
index.php</p>
<pre><strong>array</strong>
'request' <span style="color: #888a85;">=&gt;</span>
<strong>array</strong>
'_REQUEST' <span style="color: #888a85;">=&gt;</span>
<strong>array</strong>
<span style="color: #888a85;"><em>empty</em></span>
'_COOKIE' <span style="color: #888a85;">=&gt;</span>
<strong>array</strong>
<span style="color: #888a85;"><em>empty</em></span>
'SCRIPT_FILENAME' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'/var/www/inclued/index.php'</span> <em>(length=26)</em>
'REQUEST_URI' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'/inclued/'</span> <em>(length=9)</em>
'REQUEST_TIME' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">int</span> <span style="color: #4e9a06;">1200852009</span>
'includes' <span style="color: #888a85;">=&gt;</span>
<strong>array</strong>
0 <span style="color: #888a85;">=&gt;</span>
<strong>array</strong>
    'operation' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'include'</span> <em>(length=7)</em>
    'op_type' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">int</span> <span style="color: #4e9a06;">2</span>
    'filename' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'a.php'</span> <em>(length=5)</em>
    'opened_path' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'/var/www/inclued/a.php'</span> <em>(length=22)</em>
    'fromfile' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'/var/www/inclued/index.php'</span> <em>(length=26)</em>
    'fromline' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">int</span> <span style="color: #4e9a06;">2</span>
1 <span style="color: #888a85;">=&gt;</span>
<strong>array</strong>
    'operation' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'include_once'</span> <em>(length=12)</em>
    'op_type' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">int</span> <span style="color: #4e9a06;">4</span>
    'filename' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'b.php'</span> <em>(length=5)</em>
    'opened_path' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'/var/www/inclued/b.php'</span> <em>(length=22)</em>
    'fromfile' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'/var/www/inclued/index.php'</span> <em>(length=26)</em>
    'fromline' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">int</span> <span style="color: #4e9a06;">3</span>
2 <span style="color: #888a85;">=&gt;</span>
<strong>array</strong>
    'operation' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'require'</span> <em>(length=7)</em>
    'op_type' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">int</span> <span style="color: #4e9a06;">8</span>
    'filename' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'c.php'</span> <em>(length=5)</em>
    'opened_path' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'/var/www/inclued/c.php'</span> <em>(length=22)</em>
    'fromfile' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'/var/www/inclued/b.php'</span> <em>(length=22)</em>
    'fromline' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">int</span> <span style="color: #4e9a06;">2</span>
3 <span style="color: #888a85;">=&gt;</span>
<strong>array</strong>
    'operation' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'require_once'</span> <em>(length=12)</em>
    'op_type' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">int</span> <span style="color: #4e9a06;">16</span>
    'filename' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'d.php'</span> <em>(length=5)</em>
    'opened_path' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'/var/www/inclued/d.php'</span> <em>(length=22)</em>
    'fromfile' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">string</span> <span style="color: #cc0000;">'/var/www/inclued/c.php'</span> <em>(length=22)</em>
    'fromline' <span style="color: #888a85;">=&gt;</span> <span style="font-size:85%;">int</span> <span style="color: #4e9a06;">2</span>
'inheritance' <span style="color: #888a85;">=&gt;</span>
<strong>array</strong>
<span style="color: #888a85;"><em>empty</em></span>
'classes' <span style="color: #888a85;">=&gt;</span>
<strong>array</strong>
<span style="color: #888a85;"><em>empty</em></span></pre>
</blockquote>
<p>Помимо того, что информацию можно получить с помошью inclued_get_data(), как уже было сказано выше, inclued сохраняет схему вызовов в отдельный файл, в формате JSON.</p>
<p>Сохраненный файл можно использовать для построения графиков вызовов. Для это в пакете присутствует скрипт gengraph.php, предназначенный для генерации описания графа на языке <a href="http://www.graphviz.org/doc/info/lang.html">DOT</a>, который потом можно визуализировать с помощью <a href="http://ru.wikipedia.org/wiki/Graphviz">Graphviz</a></p>
<p>Для имеющегося у нас набора файлов график будет выглядеть следующим образом:<br />
<a href="http://bp1.blogger.com/_sG5w5ttg_ig/R5OfGqCakJI/AAAAAAAAAZs/4twy2ak2CGc/s1600-h/inclued.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5157640934981800082" style="cursor: pointer;" src="http://bp1.blogger.com/_sG5w5ttg_ig/R5OfGqCakJI/AAAAAAAAAZs/4twy2ak2CGc/s400/inclued.png" border="0" alt="" /></a></p>
<p>В завершение <a href="http://korchasa.googlepages.com/gengraph.php">вот</a> моя интерпритация gengraph.php, для генерации графиков «в одно действие».</p>
<p>PS: Помимо графиков подключений файлов inclued умеет строить графики иерархий классов.  Но это позже, если кому то будет интересно.</p>
]]></content:encoded>
			<wfw:commentRss>http://korchasa.ru/index.php/2008/01/inclued-%d0%bf%d1%80%d0%be%d1%84%d0%b0%d0%b9%d0%bb%d0%b8%d0%bd%d0%b3-%d0%bf%d0%be%d0%b4%d0%ba%d0%bb%d1%8e%d1%87%d0%b0%d0%b5%d0%bc%d1%8b%d1%85-%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%b2-%d0%b2-php/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Google Chart API</title>
		<link>http://korchasa.ru/index.php/2007/12/google-chart-api/</link>
		<comments>http://korchasa.ru/index.php/2007/12/google-chart-api/#comments</comments>
		<pubDate>Fri, 07 Dec 2007 03:28:00 +0000</pubDate>
		<dc:creator>korchasa</dc:creator>
				<category><![CDATA[Анонсы]]></category>
		<category><![CDATA[производительность]]></category>
		<category><![CDATA[разработка]]></category>

		<guid isPermaLink="false">http://korchasa.ru/?p=41</guid>
		<description><![CDATA[Несколько дней назад компания Google выпустила новый сервис &#8211; Google Chart API.
Сервис как и все гениальное прост: теперь все, что необходимо для построение графиков это сформировать URL.
На сегодняшний день поддерживаются несколько типов диаграмм:

    
Поддерживаются все необходимые(на первое время) опции:

заголовок
легенда
набор цветов
заливка цветом диаграмм, фона и поверхностей
различные типы осей координат
сетка
вертикальные и горизонтальные маркеры
различные типы [...]]]></description>
			<content:encoded><![CDATA[<p>Несколько дней назад компания Google выпустила новый сервис &#8211; <a href="http://code.google.com/apis/chart/">Google Chart API</a>.</p>
<p>Сервис как и все гениальное прост: теперь все, что необходимо для построение графиков это сформировать URL.</p>
<p>На сегодняшний день поддерживаются несколько типов диаграмм:<br />
<a href="http://chart.apis.google.com/chart?cht=lc&amp;chco=ff0000,00ff00,0000ff&amp;chs=200x125&amp;chd=s:FOETHECat,lkjtf3asv,KATYPSNXJ&amp;chxt=x,y&amp;chxl=0:%7COct%7CNov%7CDec%7C1:%7C%7C20K%7C%7C60K%7C%7C100K"><br />
<img src="http://habrahabr.ru/pictures/00/00/00/92/60/picture_3.png" border="0" alt="" hspace="10" vspace="10" width="200" height="125" /></a> <a href="http://chart.apis.google.com/chart?cht=bhs&amp;chco=ff0000,00ff00,0000ff,&amp;chs=200x125&amp;chd=s:FOE,THE,Bar&amp;chxt=x,y&amp;chxl=1:%7CDec%7CNov%7COct%7C0:%7C%7C20K%7C%7C60K%7C%7C100K%7C"><img src="http://habrahabr.ru/pictures/00/00/00/92/60/picture_4.png" border="0" alt="" hspace="10" vspace="10" width="200" height="125" /></a> <a href="http://chart.apis.google.com/chart?cht=p3&amp;chs=200x90&amp;chd=s:Hellobla&amp;chl=May%7CJun%7CJul%7CAug%7CSep%7COct&amp;chco=0000ff"><img src="http://habrahabr.ru/pictures/00/00/00/92/60/picture_5.png" border="0" alt="" hspace="10" vspace="10" width="200" height="90" /></a> <a href="http://chart.apis.google.com/chart?cht=v&amp;chs=200x100&amp;chd=t:100,80,60,30,30,30,10"><img src="http://habrahabr.ru/pictures/00/00/00/92/60/picture_6.png" border="0" alt="" hspace="10" vspace="10" width="200" height="100" /></a> <a href="http://chart.apis.google.com/chart?cht=s&amp;chd=s:984sttvuvkQIBLKNCAIi,DEJPgq0uov17zwopQODS,AFLPTXaflptx159gsDrn&amp;chxt=x,y&amp;chxl=0:%7C0%7C2%7C3%7C4%7C5%7C6%7C7%7C8%7C9%7C10%7C1:%7C0%7C25%7C50%7C75%7C100&amp;chs=200x125"><img src="http://habrahabr.ru/pictures/00/00/00/92/60/picture_7.png" border="0" alt="" hspace="10" vspace="10" width="200" height="125" /></a></p>
<p>Поддерживаются все необходимые(на первое время) <a href="http://code.google.com/apis/chart/#required_params">опции</a>:</p>
<ul>
<li>заголовок</li>
<li>легенда</li>
<li>набор цветов</li>
<li>заливка цветом диаграмм, фона и поверхностей</li>
<li>различные типы осей координат</li>
<li>сетка</li>
<li>вертикальные и горизонтальные маркеры</li>
<li>различные типы линий</li>
<li>выносные метки, для круговых диаграмм</li>
</ul>
<p>Отличный способ разгрузить собственный сервер <img src='http://korchasa.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://korchasa.ru/index.php/2007/12/google-chart-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Вышел YUI 2.4.0</title>
		<link>http://korchasa.ru/index.php/2007/12/%d0%b2%d1%8b%d1%88%d0%b5%d0%bb-yui-240/</link>
		<comments>http://korchasa.ru/index.php/2007/12/%d0%b2%d1%8b%d1%88%d0%b5%d0%bb-yui-240/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 14:16:00 +0000</pubDate>
		<dc:creator>korchasa</dc:creator>
				<category><![CDATA[Анонсы]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[разработка]]></category>

		<guid isPermaLink="false">http://korchasa.ru/?p=43</guid>
		<description><![CDATA[Нежданно-негаданно вышел новый релиз YUI 2.4.0. Нежданно, потому что я за ним перестал следить сразу после превращения YUI.Ext в Ext JS. А обратил внимание на эту новость из-за некоторых &#8220;вкусных&#8221; фич, которые появились в новой версии. Но об этом позже, а пока список нововведений:
Доступ к DOM-элементам
Доступ к DOM-элементам теперь стал похож на JQuery. Поддерживаются три [...]]]></description>
			<content:encoded><![CDATA[<p>Нежданно-негаданно вышел <a href="http://developer.yahoo.com/yui/download/">новый релиз</a> YUI 2.4.0. Нежданно, потому что я за ним перестал следить сразу после превращения YUI.Ext в <a href="http://extjs.com/">Ext JS</a>. А обратил внимание на эту новость из-за некоторых &#8220;вкусных&#8221; фич, которые появились в новой версии. Но об этом позже, а пока список нововведений:</p>
<h3><a href="http://developer.yahoo.com/yui/selector/">Доступ к DOM-элементам</a></h3>
<p>Доступ к DOM-элементам теперь стал похож на JQuery. Поддерживаются три типа операций:</p>
<h4>Выборка (query)</h4>
<pre lang="javascript">var links = YAHOO.util.Selector.query('ul[class^=list] li:first-child a:not([href=#])');</pre>
<p>Вернет все ссылки, у которых хреф не #, из первого элемента списка, класс которого начинается с &#8220;list&#8221;.</p>
<h4>Фильтр (filter)</h4>
<pre lang="javascript">var nodes = document.getElementsByTagName('li');
nodes = YAHOO.util.Selector.filter(nodes, '.selected');</pre>
<p>Вернет все элементы с классом &#8220;selected&#8221;, из nodes.</p>
<h4>Проверка (test)</h4>
<pre lang="javascript">var nodes = document.getElementsByTagName('li');
var is_selected_list_items_exist = YAHOO.util.Selector.test(nodes, '.selected');</pre>
<p>Вернет true, если есть li-элементы с классом selected, ну и false в противном случае.</p>
<h3><a href="http://developer.yahoo.com/yui/get/#script">Подкачка скриптов и CSS-файлов</a></h3>
<p>Теперь YAHOO.util.Get умеет подкачивать скрипты (YAHOO.util.Get.script()) и CSS-файлы(YAHOO.util.Get.css()) после загрузки страницы. Соответственно если вам скрипты нужны не каждый раз, то можно их грузить по обстановке, за что вам пользователь и сервер спасибо скажут.</p>
<h3><a href="http://developer.yahoo.com/yui/profiler/">Профайлер</a></h3>
<p>Ура! Даешь много данных хороших и разных!<br />
*шепотом: А мы все равно будем использовать firebug&#8230;*</p>
<h3><a href="http://developer.yahoo.com/yui/json/">JSON-компонент</a></h3>
<p>Главная фича &#8211; умеет парсить json, и соответственно контролировать его правильность:</p>
<pre lang="javascript">try {
var prod = YAHOO.lang.JSON.parse(jsonString);
} catch (e) {
alert("Invalid product data");
}</pre>
<p>Самое вкусное &#8211; напоследок&#8230;</p>
<h3><a href="http://developer.yahoo.com/yui/charts/">Графики и диаграммы</a></h3>
<p>Вроде бы эта штука существовала отдельно и раньше, хотя с mootools путать. Теперь же есть в самом YUI, и очень даже ничего. Работает на Flash&#8217;е( версия 9.0.45), поэтому гладка и анимирована.</p>
<ul>
<li>виды нграфиков: обычные координатные графики(точками и линиями), бары, пироги, а так же их группы (серии)</li>
<li>формат данных &#8211; объект <span>YAHOO.util.DataSource, который можно получать откуда душе угодно. По ним, кстати, и таблицы строить удобно и легко, следовательно смена вида таблица/график по кнопке, делается за несколько минут<br />
</span></li>
<li><span>умеет перерисовываться по времени</span></li>
<li><span>умеет рисовать легенду</span></li>
</ul>
<p>Из остального &#8211; как обычно потрясающая документация. За одни только cheatsheet&#8217;ы на каждый раздел хочется пожать руку и угостить компотом.</p>
]]></content:encoded>
			<wfw:commentRss>http://korchasa.ru/index.php/2007/12/%d0%b2%d1%8b%d1%88%d0%b5%d0%bb-yui-240/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ext JS 2.0</title>
		<link>http://korchasa.ru/index.php/2007/12/ext-js-20/</link>
		<comments>http://korchasa.ru/index.php/2007/12/ext-js-20/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 12:43:00 +0000</pubDate>
		<dc:creator>korchasa</dc:creator>
				<category><![CDATA[Анонсы]]></category>
		<category><![CDATA[ExtJs]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://korchasa.ru/?p=44</guid>
		<description><![CDATA[Вчера вышел финальны релиз Ext JS 2.0. Из новых вкусностей (кратенько):
Группировка строк в гридах

Скроллинг списка табов

Тип столбца &#8211; дерево

Помимо этого обновлена документация, добавлено несколько примеров.

Новость на блоге Ext JS
]]></description>
			<content:encoded><![CDATA[<p>Вчера вышел финальны релиз Ext JS 2.0. Из новых вкусностей (кратенько):</p>
<h2>Группировка строк в гридах</h2>
<p><a href="http://extjs.com/deploy/dev/examples/grid/totals.html"><img src="http://extjs.com/playpen/screenshots/ext2.0/groups.gif" /></a></p>
<h2>Скроллинг списка табов</h2>
<p><a href="http://extjs.com/deploy/dev/examples/tabs/tabs-adv.html"><img src="http://extjs.com/playpen/screenshots/ext2.0/advtabs.gif" /></a></p>
<h2>Тип столбца &#8211; дерево</h2>
<p><a href="http://extjs.com/deploy/dev/examples/tree/column-tree.html"><img src="http://extjs.com/playpen/screenshots/ext2.0/treecolumns.gif" /></a></p>
<p>Помимо этого обновлена <a href="http://extjs.com/deploy/dev/docs/">документация</a>, добавлено несколько <a href="http://extjs.com/deploy/dev/examples/">примеров</a>.<br />
<a href="http://extjs.com/blog/2007/12/04/ext-20-final-released/"><br />
Новость на блоге Ext JS</a></p>
]]></content:encoded>
			<wfw:commentRss>http://korchasa.ru/index.php/2007/12/ext-js-20/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Строгая типизация в PHP</title>
		<link>http://korchasa.ru/index.php/2007/11/%d1%81%d1%82%d1%80%d0%be%d0%b3%d0%b0%d1%8f-%d1%82%d0%b8%d0%bf%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%b2-php/</link>
		<comments>http://korchasa.ru/index.php/2007/11/%d1%81%d1%82%d1%80%d0%be%d0%b3%d0%b0%d1%8f-%d1%82%d0%b8%d0%bf%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%b2-php/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 10:00:00 +0000</pubDate>
		<dc:creator>korchasa</dc:creator>
				<category><![CDATA[Анонсы]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[разработка]]></category>

		<guid isPermaLink="false">http://korchasa.ru/?p=49</guid>
		<description><![CDATA[Суровые сибирские мужики, как известно, на охоту ходят в наручниках и без ружья, ибо по другому не интересно.
Специально для таких любителей сотворить геморрой на пустом месте (а скорее не себе, а своему подчинённому), есть PECL&#8217;овское расширение SPL_Types, которое вводит строгую типизацию. Пример кода можно найти тут.
Вкратце:

getMessage();
}

]]></description>
			<content:encoded><![CDATA[<p>Суровые сибирские мужики, как известно, на охоту ходят в наручниках и без ружья, ибо по другому не интересно.</p>
<p>Специально для таких любителей сотворить геморрой на пустом месте (а скорее не себе, а своему подчинённому), есть <a href="http://pecl.php.net/">PECL&#8217;овское</a> расширение <a href="http://pecl.php.net/package/SPL_Types">SPL_Types</a>, которое вводит строгую типизацию. Пример кода можно найти <a href="http://blog.agoraproduction.com/index.php?/archives/56-PHPs-Strong-typing-SPL_Types-and-a-bit-of-ranting-about-winter...html">тут</a>.</p>
<p>Вкратце:</p>
<pre lang="php">
<?php
$int = new SplInt(3);
try {
    $int = 'string';
} catch (UnexpectedValueException $e) {
    echo $e-?>getMessage();
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://korchasa.ru/index.php/2007/11/%d1%81%d1%82%d1%80%d0%be%d0%b3%d0%b0%d1%8f-%d1%82%d0%b8%d0%bf%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%b2-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Документирование JavaScript. JSDoc</title>
		<link>http://korchasa.ru/index.php/2007/11/%d0%b4%d0%be%d0%ba%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-javascript-jsdoc/</link>
		<comments>http://korchasa.ru/index.php/2007/11/%d0%b4%d0%be%d0%ba%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-javascript-jsdoc/#comments</comments>
		<pubDate>Thu, 22 Nov 2007 17:20:00 +0000</pubDate>
		<dc:creator>korchasa</dc:creator>
				<category><![CDATA[Анонсы]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[разработка]]></category>

		<guid isPermaLink="false">http://korchasa.ru/?p=47</guid>
		<description><![CDATA[Спасибо, Idler&#8217;у подкинул ссылку на генератор документации для JavaScript &#8211; JSDoc.

умеет генерировать HTML (вот такой), XML и XMI (например для Umbrello).
резок, как понос, ибо на Perl&#8217;е написан
 поддерживает следующие Doc-кострукции:

@param
@argument
@return
@returns
@author
@deprecated
@see (связи с с методами, классами обрабатываются)                    [...]]]></description>
			<content:encoded><![CDATA[<p>Спасибо, <a href="http://instanceof.ru/">Idler&#8217;у</a> подкинул ссылку на генератор документации для JavaScript &#8211; <a href="http://jsdoc.sourceforge.net/">JSDoc</a>.</p>
<ul>
<li>умеет генерировать HTML (вот <a href="http://jsdoc.sourceforge.net/example/index.html">такой</a>), XML и XMI (например для <a href="http://uml.sourceforge.net/index.php">Umbrello</a>).</li>
<li>резок, как понос, ибо на Perl&#8217;е написан</li>
<li> поддерживает следующие Doc-кострукции:
<ul>
<li>@param</li>
<li>@argument</li>
<li>@return</li>
<li>@returns</li>
<li>@author</li>
<li>@deprecated</li>
<li>@see (связи с с методами, классами обрабатываются)                      </li>
<li>@version</li>
<li>@requires</li>
<li>@throws</li>
<li>@exception</li>
<li>@link</li>
<li>@fileoverview</li>
<li>@class</li>
<li>@constructor</li>
<li>@type</li>
<li>@extends</li>
<li>@private</li>
<li>@final</li>
<li>@member</li>
<li>@ignore</li>
<li>@base</li>
<li>@addon</li>
<li>@exec</li>
</ul>
</li>
</ul>
<p>Даешь документацию всего JS-кода!</p>
<p>UPDATE: Как оказалось JSDoc&#8217;и прекрасно понимает <a href="http://labs.adobe.com/technologies/jseclipse/">JSEclipse</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://korchasa.ru/index.php/2007/11/%d0%b4%d0%be%d0%ba%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-javascript-jsdoc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jqModal &#8211; модальные окна и jQuery</title>
		<link>http://korchasa.ru/index.php/2007/11/jqmodal-%d0%bc%d0%be%d0%b4%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d0%be%d0%ba%d0%bd%d0%b0-%d0%b8-jquery/</link>
		<comments>http://korchasa.ru/index.php/2007/11/jqmodal-%d0%bc%d0%be%d0%b4%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d0%be%d0%ba%d0%bd%d0%b0-%d0%b8-jquery/#comments</comments>
		<pubDate>Wed, 21 Nov 2007 17:03:00 +0000</pubDate>
		<dc:creator>korchasa</dc:creator>
				<category><![CDATA[Анонсы]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://korchasa.ru/?p=50</guid>
		<description><![CDATA[Потребовалось найти гибкое решение, для рисования модальных окон. Один из критериев &#8211; библиотека должна быть основана на jQuery, ибо она уже используется в системе. Damn!  .
ThickBox не устроил своей жесткостью, ибо рысканье по коду обнаружило нехватку настроек, а именно, невозможность навесить свой callback для AJAX-запросов.
Поискал немного, и наткнулся на jqModal, маленький и гибкый. Его [...]]]></description>
			<content:encoded><![CDATA[<p>Потребовалось найти гибкое решение, для рисования модальных окон. Один из критериев &#8211; библиотека должна быть основана на jQuery, ибо она уже используется в системе. Damn! <img src='http://korchasa.ru/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</p>
<p><a href="http://jquery.com/demo/thickbox/">ThickBox</a> не устроил своей жесткостью, ибо рысканье по коду обнаружило нехватку настроек, а именно, невозможность навесить свой callback для AJAX-запросов.</p>
<p>Поискал немного, и наткнулся на <a href="http://dev.iceburg.net/jquery/jqModal/">jqModal</a>, маленький и гибкый. Его хоть ковырять проще, ибо меньше он.</p>
]]></content:encoded>
			<wfw:commentRss>http://korchasa.ru/index.php/2007/11/jqmodal-%d0%bc%d0%be%d0%b4%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d0%be%d0%ba%d0%bd%d0%b0-%d0%b8-jquery/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
