<?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>I wanna be developer</title>
	<atom:link href="http://iwannabedeveloper.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://iwannabedeveloper.com</link>
	<description>Как стать разработчиком с большой буквы Р</description>
	<lastBuildDate>Wed, 29 Dec 2010 12:51:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Что такое массив</title>
		<link>http://iwannabedeveloper.com/2010/10/chto-takoe-massiv/</link>
		<comments>http://iwannabedeveloper.com/2010/10/chto-takoe-massiv/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 14:56:41 +0000</pubDate>
		<dc:creator>Скакунов Александр</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[учеба]]></category>

		<guid isPermaLink="false">http://iwannabedeveloper.com/?p=166</guid>
		<description><![CDATA[Сегодня вы узнаете, что такое массив. Массив (или массив данных) &#8211; это набор однородных элементов, к которым можно достучаться (обратиться) по их порядковому номеру (индексу). Ваш список студентов в группе (ФИО) можно представить в виде массива. У массива есть элементы, из которых он состоит. Каждый элемент имеет индекс (свой порядковый номер. Ещё это можно рассматривать [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня вы узнаете, что такое массив.</p>
<p><strong>Массив</strong> (или массив данных) &#8211; это набор однородных элементов, к которым можно достучаться (обратиться) по их порядковому номеру (индексу).</p>
<p>Ваш список студентов в группе (ФИО) можно представить в виде массива.</p>
<p>У массива есть элементы, из которых он состоит.<br />
Каждый элемент имеет индекс (свой порядковый номер. Ещё это можно рассматривать как адрес элемента в массиве) и значение.</p>
<p>Порядковый номер в журнале группы &#8211; это индекс. Если твоя фамилия &#8220;Аксёнов&#8221;, то в массиве учеников у тебя индекс &#8220;1&#8243; или &#8220;2&#8243; (в начале в общем).</p>
<p>Твоё &#8220;значение&#8221; разумеется &#8211; &#8220;Аксёнов А.Б.&#8221;</p>
<p>В некоторых языках программирования есть свои фокусы: индексом может не только число, но и любая букво-цифровая последовательность. По стандарту это всё же число, причём по порядку, без разрывов.</p>
<p>Значением может быть любой скаляр (число, строка, булево значение) либо другой массив. На счёт можно ли в массиве хранить объекты в качестве элементов &mdash; не скажу на счёт Си, в РНР можно.</p>
<p>Жильцы в подъезде &mdash; тоже массив. Индексом служит номер квартиры. Каждый элемент &#8211; другой массив, массив жильцов данной квартиры. В квартире №1 &mdash; 5 жильцов, в квартире №2 никто не живёт, в квартире №3 одинокая бабулька &mdash; получается что это можно выразить или как</p>
<ul>
<li>[5, 0, 1] &#8211; одномерный массив (каждый элемент &#8211; скалярное значение)</li>
<li>или [ [1,1,1,1,1], [], [1]] &#8211; двумерный массив</li>
<li>или [ ['мама', 'папа', 'сын', 'дочка', 'бабушка'], [], [ 'бабушка']] &#8211; тоже двумерный массив</li>
</ul>
<p>Массив можно выразить в виде таблички.<br />
Одномерный массив &#8211; это &#8220;вырожденная&#8221; табличка, состоящая из одной строчки или столбца: [1,1,2,3,5,8]<br />
Двумерный массив &#8211; это одна обычная таблица (например, Пифагора)</p>
<pre><code>[[2,2,4],
[2,3,6],
[2,4,8]]</code></pre>
<p><noindex>Вот почитай ещё это &mdash; <a rel="nofollow" href="http://ru.wikipedia.org/wiki/Индексный_массив">Индексный_массив</a></noindex></p>
]]></content:encoded>
			<wfw:commentRss>http://iwannabedeveloper.com/2010/10/chto-takoe-massiv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>От задумки до готового сайта: HTML-верстка</title>
		<link>http://iwannabedeveloper.com/2010/09/154/</link>
		<comments>http://iwannabedeveloper.com/2010/09/154/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 16:21:09 +0000</pubDate>
		<dc:creator>Родион Быков</dc:creator>
				<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://iwannabedeveloper.com/?p=154</guid>
		<description><![CDATA[Современный веб-сайт – это сложная структура. Каждая страница состоит из программного кода и графических элементов, которые собираются в единое целое и отображаются браузером. Верстка &#8211; связующее звено в процессе превращения графического дизайна сайта в программный код. Возможно, это не самый захватывающий процесс, но без верстки, нарисованный дизайнером макет не сможет превратится в HTML-код, понятный браузеру. [...]]]></description>
			<content:encoded><![CDATA[<p>Современный веб-сайт – это сложная структура. Каждая страница состоит из программного кода и графических элементов, которые собираются в единое целое и отображаются браузером. Верстка &#8211; связующее звено в процессе превращения графического дизайна сайта в программный код. Возможно, это не самый захватывающий процесс, но без верстки, нарисованный дизайнером макет не сможет превратится в HTML-код, понятный браузеру.</p>
<p><strong>Процесс</strong></p>
<p>Заказчик или начальник или директор, одним словом Босс, желая создать веб-сайт, обычно руководствуется своим представлением о веб-дизайне. Босс может посмотреть на похожие сайты, чтобы “сделать как у них”, может изложить пару идей и найти десяток картинок или фотографий, которые “обязательно должны быть на сайте”. Крайне редко Босс может структурно изложить свои мысли в виде письменного документа. </p>
<p>Получив от Босса наброски сайта “на салфетке”, картинки и ссылки на похожие сайты, Дизайнер открывает Photoshop и начинает создавать макет. В макете Дизайнер не только подбирает цвета, шрифты и стиль, но также разрабатывает элементы управления (кнопки, меню, таблицы). </p>
<p>С первой версией макета Дизайнер идет к Боссу. После фразы “мне все нравится, но давай переделаем несколько вещей” Босс обычно не оставляет камня на камне от разработанного дизайна. Не слишком довольный Дизайнер возвращается за свой Photoshop исправлять дизайн согласно пожеланиям Босса. Затем уже с исправленным дизайном, Дизайнер снова идет к Боссу. Этот процесс может повторятся не один и не два раза. На встречи с Боссом полезно взять Программиста, которому придется писать функциональность сайта. За каждой формой ведь стоит база данных, за каждой кнопкой логина стоит целая система аутентификации и контроля доступа. Программист должен соотносить программные компоненты с нарисованым интерфейсом и участвовать в процессе разработки дизайна.</p>
<p>Когда дизайн  основных страниц сайта более-менее утрясен, Дизайнер передает результат своей работы (чаще всего – PSD-файлы, реже PNG) и заметки Верстальщику. Верстальщик, так же как и Дизайнер, открывает Photoshop (или Fireworks, если предпочитает PNG) и начинает прикидывать, как будет лучше расположить элементы HTML, чтобы нарисованый дизайн корректно отображался. Файл PSD “нарезается” на мелкие картинки, фоны, для текстов подбираются шрифты. Конечным результатом работы Верстальщика будет HTML и CSS код, а также мелкие картинки, файлы шрифтов и др. HTML-код описывает какие элементы будут располагаться на экране, а CSS-код будет описывать их взаимное положение, цвета, стили, шрифты текстов и так далее.</p>
<p><strong>Нарезка</strong></p>
<p>Процесс “нарезки” картинки верстальщиком в какой-то мере творческий, неформализуемый. С другой стороны, грамотный дизайнер позаботится о правильном расположении элементов по слоям в PSD/PNG, чтобы верстальщику не пришлось слишком потеть, вычленяя нужный элемент из общего рисунка. Например лого, или маленькая иконка в списке или менюшке – дизайнер с большой вероятностью вынесет их на отдельный слой и их будет легко подхватить верстальщику. Многие картинки придется вырезать с точностью до пикселя, чтобы избежать “мохнатых” кнопок, или чтобы заставить элементы правильно сопрягатся друг с другом. Вероятно иногда придется вырезать кусочек фона или длинные полоски толщиной в 1 пиксель – для различных фоновых градиентов или “распорок”.</p>
<p><strong>Кодирование</strong></p>
<p>В зависимости от выбранной стратегии, верстальщик может верстать либо “табличной” версткой, либо “блочной”. Табличная верстка сейчас применяется реже, и можно сказать, что она устарела, однако у нее есть свои положительные черты. Главное – это то, что каждый элемент можно легко позиционировать относительно верхнего левого угла ячейки таблицы, и он оттуда уже никуда не денется. На табличной верстке легче сделать “резиновый” дизайн, размеры которого изменяются в зависимости от ширины окна браузера. Разные браузеры более-менее одинаково отрисовывают таблицы, т.е. проблем с отображением сайта на разных платформах и браузерах будет меньше. Если не планируется переделывать дизайн в дальнейшем, то таблица может быть более удачным выбором.</p>
<p>Блочная верстка хороша при необходимости быстро сменить дизайн сайта или подстроить его под отображение скажем на мобильном устройстве. Блочная структура легче поддается распознаванию не-визуальными браузерами и “ботами” поисковых систем. В блочной верстке важно установить иерархию блоков (кто чей контейнер) и затем уже накладывать CSS-стили. Пример:</p>
<pre><code class="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
  &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
  &lt;head&gt;
  &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
  &lt;title&gt;Untitled Document&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;header&quot;&gt;
    &lt;div id=&quot;logo&quot;&gt;

    &lt;/div&gt;
    &lt;div id=&quot;tagline&quot;&gt;

    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div id=&quot;menu&quot;&gt;

  &lt;/div&gt;
  &lt;div id=&quot;content&quot;&gt;

  &lt;/div&gt;
  &lt;div id=&quot;sidebar&quot;&gt;

  &lt;/div&gt;
  &lt;/body&gt;
&lt;/html&gt;
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://iwannabedeveloper.com/2010/09/154/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Введение в CSS</title>
		<link>http://iwannabedeveloper.com/2010/08/vvedenie-v-css/</link>
		<comments>http://iwannabedeveloper.com/2010/08/vvedenie-v-css/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 21:19:52 +0000</pubDate>
		<dc:creator>Родион Быков</dc:creator>
				<category><![CDATA[за жизнь]]></category>

		<guid isPermaLink="false">http://iwannabedeveloper.com/?p=148</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><object height="388" width="500"><param name="movie" value="http://slidesix.com/viewer/SlideSixViewer.swf?alias=Cascading-Style-Sheets---" /><param name="menu" value="false"/><param name="scale" value="noScale"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always" /><param value="transparent" name="wmode" /><param value="quality" name="best" /><embed src="http://slidesix.com/viewer/SlideSixViewer.swf?alias=Cascading-Style-Sheets---" allowscriptaccess="always" allowFullScreen="true" height="388" width="500" type="application/x-shockwave-flash" wmode="transparent" quality="best" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://iwannabedeveloper.com/2010/08/vvedenie-v-css/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Введение в HTML</title>
		<link>http://iwannabedeveloper.com/2010/08/vvedenie-v-html/</link>
		<comments>http://iwannabedeveloper.com/2010/08/vvedenie-v-html/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 15:03:25 +0000</pubDate>
		<dc:creator>Родион Быков</dc:creator>
				<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://iwannabedeveloper.com/?p=142</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><object height="388" width="500"><param name="movie" value="http://slidesix.com/viewer/SlideSixViewer.swf?alias=-HTML---" /><param name="menu" value="false"/><param name="scale" value="noScale"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always" /><param value="transparent" name="wmode" /><param value="quality" name="best" /><embed src="http://slidesix.com/viewer/SlideSixViewer.swf?alias=-HTML---" allowscriptaccess="always" allowFullScreen="true" height="388" width="500" type="application/x-shockwave-flash" wmode="transparent" quality="best" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://iwannabedeveloper.com/2010/08/vvedenie-v-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Движок Federated в MySQL &#8211; симлинк в базе данных</title>
		<link>http://iwannabedeveloper.com/2010/03/federated-mysql-engine/</link>
		<comments>http://iwannabedeveloper.com/2010/03/federated-mysql-engine/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 14:48:59 +0000</pubDate>
		<dc:creator>Скакунов Александр</dc:creator>
				<category><![CDATA[database]]></category>

		<guid isPermaLink="false">http://iwannabedeveloper.com/?p=135</guid>
		<description><![CDATA[Знаете ли вы, что в MySQL, помимо MyISAM и InnoDB, есть движок под названием Federated? Он позволяет создать таблицу, которая получает данные из другой таблицы, даже если последняя находится на удалённом сервере. Структура таблиц должна быть одинаковой. Её можно использоваться для следующих целей: Каждый раз при собирании БД большого проекта приходится ждать по 15-20 минут, [...]]]></description>
			<content:encoded><![CDATA[<p>Знаете ли вы, что в MySQL, помимо MyISAM и InnoDB, есть движок под названием <noindex><a rel="nofollow" href="http://dev.mysql.com/doc/refman/5.1/en/federated-storage-engine.html">Federated</a></noindex>?</p>
<p>Он позволяет создать таблицу, которая получает данные из другой таблицы, даже если последняя находится на удалённом сервере. Структура таблиц должна быть одинаковой.</p>
<p>Её можно использоваться для следующих целей:</p>
<ol>
<li>Каждый раз при собирании БД большого проекта приходится ждать по 15-20 минут, пока загрузится какая-то большая справочная таблица, например, города мира, список аэропортов мира или БД мест развлечений и отдыха. При использовании Federated вам нужно только задать CREATE TABLE &mdash; и данные будут сразу доступны из другой базы данных;</li>
<li>Эти справочные таблицы могут использоваться несколькими окружениями вашего проекта &mdash; например, на тестовом сайте и на продакш-версии.</li>
</ol>
<p>Чтобы узнать, поддерживает ли ваш сервер данный движок, воспользуйтесь простейшим PHPMyAdmin &mdash; нажмите ссылку Домой (с домиком), затем &#8220;Типы таблиц&#8221;.</p>
<p>Если он недоступен, то зайдите в ваш my.ini файл, найдите блок &#8220;<em>[mysqld]</em>&#8221; и вставьте строку &#8220;<em>federated</em>&#8221; сразу после:</p>
<pre><code>[mysqld]
federated</code></pre>
<p>P.S. Если вы ошиблись в структуре созданной таблицы, PHPMyAdmin покажет вашу БД как пустую <img src='http://iwannabedeveloper.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Чтобы исправить это, дропните эту таблицу SQL-запросом &mdash; и пересоздайте правильно.</p>
]]></content:encoded>
			<wfw:commentRss>http://iwannabedeveloper.com/2010/03/federated-mysql-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Базы данных в реальном мире</title>
		<link>http://iwannabedeveloper.com/2010/01/bazy-dannyx-v-realnom-mire/</link>
		<comments>http://iwannabedeveloper.com/2010/01/bazy-dannyx-v-realnom-mire/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 13:42:04 +0000</pubDate>
		<dc:creator>Родион Быков</dc:creator>
				<category><![CDATA[database]]></category>

		<guid isPermaLink="false">http://iwannabedeveloper.com/?p=130</guid>
		<description><![CDATA[Что будет если студенту дать спроектировать базу данных интернет-магазина ? Пусть студент будет сферический в вакууме, дабы никого не обидеть, но пример абсолютно жизненный. Студент будучи хорошим учеником, спроектирует что-то вроде такой схемы: products (id, name, price, quantity) -- для хранения товаров и остатков users (id, name) -- для хранения пользователей orders (id, date, sum) [...]]]></description>
			<content:encoded><![CDATA[<p>Что будет если студенту дать спроектировать базу данных интернет-магазина ? Пусть студент будет сферический в вакууме, дабы никого не обидеть, но пример абсолютно жизненный.</p>
<p>Студент будучи хорошим учеником, спроектирует что-то вроде такой схемы:</p>
<p><code>products (id, name, price, quantity) -- для хранения товаров и остатков<br />
users (id, name) -- для хранения пользователей<br />
orders (id, date, sum) -- для хранения заказов</code></p>
<p>Потом студент свяжет эти таблицы, и будет прав, теория на его стороне:</p>
<p><code>users_orders (id_user, id_order)<br />
orders_products (id_order, id_product)</code></p>
<p>Если студент был не просто хорош, а очень хорош, он навесит индексы, и foreign-keys. </p>
<p>Магазин начал работу, товары вносятся в базу, появились клиенты, пошл продажи. Все хорошо, убрали позиции старого ассортимента, добавили новые, пара клиентов забыли свои пароли и создали новые аккаунты. Тут начались чудеса &#8211; звонит клиент и просит найти старый заказ, а его нет. А если есть заказ, он оказывается пуст&#8230; В чем же ошибка ?</p>
<p>Ошибка в том что в эту сферически-вакуумную базу не были внесены некоторые неидеальности, чтобы учесть неидеальность реальности.</p>
<p>Заказ в интернет-магазине &#8211; это не просто список, это факт. Это &#8211; снимок реальности в каком то моменте времени. Поэтому таблица должна была выглядеть так:<br />
<code>orders_products (id_order, product_name, product_price, quantity, sum)</code></p>
<p>Да, можно сказать что в базе появляется избыточность, денормализация. Но это &#8211; правильная денормализация. Система теперь отражает реальность правильно &#8211; когда и почем был продан конкретный товар. Имея только ссылку на товар, невозможно восстановить события в прошлом &#8211; например удаление товара из каталога, переоценка товара и прочие изменения. </p>
<p>С foreign keys и каскадным удалением тоже шутить не надо &#8211; удаление плохого пользователя из таблицы users не должно удалять его заказы. Заказ &#8211; это факт свершенный, отрицать его или выкинуть ради красоты теории будет неверным.</p>
]]></content:encoded>
			<wfw:commentRss>http://iwannabedeveloper.com/2010/01/bazy-dannyx-v-realnom-mire/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Анимированные алгоритмы сортировки</title>
		<link>http://iwannabedeveloper.com/2009/04/animirovannye-algoritmy-sortirovki/</link>
		<comments>http://iwannabedeveloper.com/2009/04/animirovannye-algoritmy-sortirovki/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 10:01:57 +0000</pubDate>
		<dc:creator>Скакунов Александр</dc:creator>
				<category><![CDATA[учеба]]></category>

		<guid isPermaLink="false">http://iwannabedeveloper.com/?p=116</guid>
		<description><![CDATA[Для лучшего понимания алгоритмов сортировки можно посмотреть анимацию их работы&#1076;&#1080;&#1074;&#1072;&#1085;&#1080;distributed raman amplifier &#8212; нужно только кликнуть на нужный вид.]]></description>
			<content:encoded><![CDATA[<p>Для лучшего понимания алгоритмов сортировки можно посмотреть <noindex><a rel="nofollow" href="http://www.sorting-algorithms.com/">анимацию их работы</a><font style="position: absolute;overflow: hidden;height: 0;width: 0"><a href="http://www.videnov.com/">&#1076;&#1080;&#1074;&#1072;&#1085;&#1080;</a></font><font style="position: absolute;overflow: hidden;height: 0;width: 0"><a href="http://vtsc.info/en/publication/">distributed raman amplifier</a></font></noindex> &mdash; нужно только кликнуть на нужный вид.</p>
]]></content:encoded>
			<wfw:commentRss>http://iwannabedeveloper.com/2009/04/animirovannye-algoritmy-sortirovki/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Добавим немного интерактива</title>
		<link>http://iwannabedeveloper.com/2009/02/javascript-interactive/</link>
		<comments>http://iwannabedeveloper.com/2009/02/javascript-interactive/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 13:55:32 +0000</pubDate>
		<dc:creator>Скакунов Александр</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[учеба]]></category>

		<guid isPermaLink="false">http://iwannabedeveloper.com/?p=98</guid>
		<description><![CDATA[Добавим немного интерактива с помощью JavaScript. Для начала давайте не субмитить форму, если пользователь ничего не ввёл в поле ввода. Для этого сначала нужно добавить полю ввода идентификатор, по которому можно к этому полю обращаться и с ним работать, в этой строке приписываем атрибут id: &#60;input id="server" name="server" style="width:300px" value="&#60;?=$_GET["server"]?&#62;"/&#62; Теперь мы можем обращаться с [...]]]></description>
			<content:encoded><![CDATA[<p>Добавим немного интерактива с помощью JavaScript.</p>
<p>Для начала давайте не субмитить форму, если пользователь ничего не ввёл в поле ввода.</p>
<p>Для этого сначала нужно добавить полю ввода идентификатор, по которому можно к этому полю обращаться и с ним работать, в этой строке приписываем атрибут id:</p>
<pre><code class="html">&lt;input <strong>id="server"</strong> name="server" style="width:300px"
value="&lt;?=$_GET["server"]?&gt;"/&gt;</code></pre>
<p>Теперь мы можем обращаться с этим полем ввода как с объектом, находя его по ID:</p>
<pre><code>var inp = document.getElementById('server');</code></pre>
<p>Вот теперь можно по нажатию кнопки проверять наличие текста в этой строке ввода:</p>
<pre><code class="html">&lt;input name="submit" type="Submit" value="Submit"
<strong>onclick="var inp = document.getElementById('server');
if(!inp.value) {alert('Введите адрес сервера.'); return false;}"</strong>/&gt;</code></pre>
<p>Вообще, если кнопки типа submit в обработчике нажатия возвращает FALSE, то субмита формы не происходит &mdash; этим мы и воспользовались.</p>
<p>В следующий раз мы сделаем так, чтобы результат показывался на странице без обновления страницы, а сразу &mdash; для этого мы воспользуемся такой штукой как AJAX.</p>
]]></content:encoded>
			<wfw:commentRss>http://iwannabedeveloper.com/2009/02/javascript-interactive/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Пробуем силы на PHP</title>
		<link>http://iwannabedeveloper.com/2009/02/probuem-sily-na-php/</link>
		<comments>http://iwannabedeveloper.com/2009/02/probuem-sily-na-php/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 00:25:52 +0000</pubDate>
		<dc:creator>Скакунов Александр</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[учеба]]></category>

		<guid isPermaLink="false">http://iwannabedeveloper.com/?p=83</guid>
		<description><![CDATA[Итак, у вас уже есть установленный веб-сервер. Давайте теперь напишем, наконец, немного кода. Стоит отметить, что в чистом виде РНР-скрипты (без примесей HTML) встречаются только в особенных случаях: на чистом РНР оформляются отдельные классы (эдакие готовые подпрограммы) &#8212; так повышается степень их повторного использования: скопировал в новый проект и используешь консольные приложения &#8212; бывает надо [...]]]></description>
			<content:encoded><![CDATA[<p>Итак, <noindex><a rel="nofollow" href="/2009/02/14/ustanovka-servera/">у вас уже есть установленный</a></noindex> веб-сервер. Давайте теперь напишем, наконец, немного кода.</p>
<p>Стоит отметить, что в чистом виде РНР-скрипты (без примесей HTML) встречаются только в особенных случаях:</p>
<ul>
<li>на чистом РНР оформляются отдельные классы (эдакие готовые подпрограммы) &mdash; так повышается степень их повторного использования: скопировал в новый проект и используешь</li>
<li>консольные приложения &mdash; бывает надо пройтись по дереву папок и что-то по ним посчитать, тогда запуск из браузера необязателен, можно пускать скрипт прямо из консоли, а там HTML не нужен</li>
<li>в современных фреймворках используется паттерн MVC (Model &#8211; View &#8211; Controller) &mdash; так разделяется бизнес-логика (как вообще работает приложение, на высоком уровне), представление (как данные отображаются) и контроллер (обработчик действий пользователя, связующий бизнес-логику и представление). Так вот там HTML используется только в представлении, и то не всегда.</li>
</ul>
<p>Но мы доберёмся до всего этого немного позже. Сегодня у нас два примера на РНР &mdash; детсадовский и для детей постарше.</p>
<p><strong>Скрипт №1</strong>. Создаём на нашем локальном сервере файл 1.php и пишем в него следующий код:</p>
<pre><code class="php">&lt;?
echo 'Let\'s count: ' . (2 + 2);</code></pre>
<p>Запускаем скрипт через браузер (заходим на наш локальный сервер и дописываем имя файла <code>1.php</code>), в итоге в броузере появится фраза:</p>
<pre><code class="php">Let's count: 4</code></pre>
<p>Что видно из этого примера:</p>
<ol>
<li>PHP-код начинается с тэга <code>&lt;?</code> &mdash; если не сработает, попробуйте <code>&lt;?php</code> , это потом можно будет настроить в конфиге <code>php.ini</code></li>
<li>Для вывода текста используется команда echo</li>
<li>Экранированием кавычки является обратный слэш</li>
<li>Конкатенация строк (склеивание) происходит через точку (не сильно привычно, понимаю)</li>
<li>Сложение как было, так и осталось &mdash; хоть какое-то постоянство в мире</li>
<li>Закрывающий тэг иногда можно не закрывать  &mdash;  вот как в нашем случае</li>
</ol>
<p><strong>Скрипт №2</strong>. Пишем веб-форму, которая будет возращать IP-адрес для указанного доменного имени.</p>
<pre><code class="html php">&lt;html&gt;
&lt;head&gt;
  &lt;title&gt;gethostbyname&lt;/title&gt;
&lt;/head&gt;

&lt;body bgcolor=&quot;#eeeeee&quot;&gt;
  &lt;form method=&quot;get&quot;&gt;
    &lt;input name=&quot;server&quot; style=&quot;width:300px&quot; value=&quot;&lt;?=$_GET[&quot;server&quot;]?&gt;&quot;/&gt;
    &lt;input name=&quot;submit&quot; type=&quot;Submit&quot; value=&quot;Submit&quot;/&gt;
  &lt;/form&gt;
&lt;?
if($_GET[&quot;server&quot;]!=&quot;&quot;)
  echo &quot;&lt;hr/&gt;&quot;.$_GET[&quot;server&quot;].&quot; : &quot;.gethostbyname($_GET[&quot;server&quot;])
?&gt;

&lt;/body&gt;
&lt;/html&gt;</code></pre>
<p>Поиграйтесь с ним. </p>
<p><img src="http://iwannabedeveloper.com/wp-content/uploads/2009/02/gethostbyname.png" alt="" title="gethostbyname" width="428" height="196" class="aligncenter size-full wp-image-91" /></p>
<p>Введите <code>iwannabedeveloper.com</code> &mdash; чтобы получить <code>208.77.209.127</code>. Обратите внимание, как быстры повторные запросы  &mdash; это помогает кэш DNS.</p>
<p>У вас в руках мощное оружие. Будем учиться использовать его оптимально.</p>
]]></content:encoded>
			<wfw:commentRss>http://iwannabedeveloper.com/2009/02/probuem-sily-na-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Установка сервера</title>
		<link>http://iwannabedeveloper.com/2009/02/ustanovka-servera/</link>
		<comments>http://iwannabedeveloper.com/2009/02/ustanovka-servera/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 00:50:44 +0000</pubDate>
		<dc:creator>Скакунов Александр</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[учеба]]></category>

		<guid isPermaLink="false">http://iwannabedeveloper.com/?p=77</guid>
		<description><![CDATA[Короткий, но ёмкий пост: чтобы установить сервер для дальнейшей работы, вам нужно прочитать два ранее опубликованных здесь поста, написанные моим коллегой Родионом Быковым. Тогда вы сможете ставить веб-эксперименты прямо на своей рабочей машине. Итак, читаем по порядку: Знакомство с Apache &#8212; начинаем с установки веб-сервера, собственно обрабатывающего запросы, например, от вашего браузера. Установка PHP как [...]]]></description>
			<content:encoded><![CDATA[<p>Короткий, но ёмкий пост: чтобы установить сервер для дальнейшей работы, вам нужно прочитать два ранее опубликованных здесь поста, написанные моим коллегой Родионом Быковым. Тогда вы сможете ставить веб-эксперименты прямо на своей рабочей машине.</p>
<p>Итак, читаем по порядку:</p>
<ul>
<li><noindex><a rel="nofollow" href="/2007/05/20/znakomstvo-s-apache/">Знакомство с Apache</a></noindex> &mdash; начинаем с установки веб-сервера, собственно обрабатывающего запросы, например, от вашего браузера.</li>
<li><noindex><a rel="nofollow" href="/2007/06/10/php-setup-as-apache-module/">Установка PHP как модуль Apache</a></noindex> &mdash; если вам нужно что-то посложнее раздачи статических страничек (динамика), то без PHP не обойтись. Учимся инсталлировать.</li>
</ul>
<p>Эти шаги надо сделать всего один раз, так что потерпите.</p>
]]></content:encoded>
			<wfw:commentRss>http://iwannabedeveloper.com/2009/02/ustanovka-servera/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

