<?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>Web-мастеркая &#187; admin</title>
	<atom:link href="http://mamishev.ru/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://mamishev.ru</link>
	<description>полезные заметки в помощь сайтостроителю</description>
	<lastBuildDate>Thu, 29 Sep 2011 10:43:45 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Инструкция по установке WordPress на VDS/VPS сервер</title>
		<link>http://mamishev.ru/wordpress-on-vds/</link>
		<comments>http://mamishev.ru/wordpress-on-vds/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 10:43:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Пошаговые инструкции]]></category>

		<guid isPermaLink="false">http://mamishev.ru/?p=562</guid>
		<description><![CDATA[Подключаемся по ssh к серверу Переходим в папку проекта: cd /путь/к_папке_проекта Скачиваем .tar.gz архив с русским дистрибутивом WordPress: wget http://ru.wordpress.org/wordpress-3.2.1-ru_RU.tar.gz Обратите внимание, ссылка на дистрибутив по мере выхода новых версий WordPress будет меняться. Скопировать адрес ссылки можно здесь: http://ru.wordpress.org/ Распаковываем скачанный дистрибутив: tar xvfz wordpress-3.2.1-ru_RU.tar.gz В результате в текущей папке должна появиться папка wordpress. Теперь [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>Подключаемся по ssh к серверу</li>
<li>Переходим в папку проекта:<br />
	<code>cd /путь/к_папке_проекта </code>
	</li>
<p><span id="more-562"></span></p>
<li>Скачиваем .tar.gz архив с русским дистрибутивом WordPress:<br />
	<code>wget http://ru.wordpress.org/wordpress-3.2.1-ru_RU.tar.gz</code><br />
	Обратите внимание, ссылка на дистрибутив по мере выхода новых версий WordPress будет меняться. Скопировать адрес ссылки можно здесь:<br />
	<a href="http://ru.wordpress.org/">http://ru.wordpress.org/</a>
	</li>
<li>Распаковываем скачанный дистрибутив:<br />
	<code>tar xvfz wordpress-3.2.1-ru_RU.tar.gz </code><br />
	В результате в текущей папке должна появиться папка <b>wordpress</b>.
	</li>
<li>Теперь нужно все содержимое папки <b>wordpress</b> скопировать в текущую папку. Для этого выполняем команду:<br />
	<code>cp -R /home/папка_проекта/wordpress/* /home/папка_проекта/</code>
	</li>
<li>Удаляем папку <b>wordpress</b>:<br />
	<code>rm -rf wordpress</code><br />
	ВНИМАНИЕ! Проявите особую бдительность при использовании команды <code><b>rm -rf</b></code>, так как она запускает рекурсивное удаление всех файлов и папок внутри указанной папки без каких-либо доболнительных предупреждений или вопросов. И действие это необратимо. Восстановить удаленные данные будет практически невозможно. Если подключение к серверу происходит от лица суперпользователя, то &laquo;под нож&raquo; могут попасть и системные файлы/папки, что повлечет за собой необходимость переустановки серверной ОС!
	</li>
<li>Рекурсивно меняем владельца файлов и папок в папке проекта на пользователя, от имени которого работает веб-сервер:<br />
	<code>chown -R apache:apache /home/папка_проекта</code>
	</li>
<li>Идем в админку хостера и создаем БД и ее пользователя. Пароль для пользователя генерим автоматически с помощью интерфейса панели управления. Этот пароль вместе с именем БД и именем пользователя копируем и сохраняем в надежном, интимном месте ))))
	</li>
<li>Запускаем скрипт установки WordPress, перейдя по адресу проекта в браузере: http://имя_проекта.ru
	</li>
<li>Загружаем на сервер WordPress-тему проекта.</li>
<li>Подключаем и настраиваем необходимыые плагины WordPress.</li>
<li>WordPress готов для наполнения его контентом.</li>
<ol>
]]></content:encoded>
			<wfw:commentRss>http://mamishev.ru/wordpress-on-vds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Установка приложений для работы в Ubuntu 10.10</title>
		<link>http://mamishev.ru/software-update/</link>
		<comments>http://mamishev.ru/software-update/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 08:38:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Пошаговые инструкции]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[mod_wsgi]]></category>
		<category><![CDATA[Ubuntu 10.10]]></category>

		<guid isPermaLink="false">http://mamishev.ru/?p=546</guid>
		<description><![CDATA[После установки или переустановки новой ОС ваши мысли могут разбежаться в разные стороны при попытке вспомнить весь набор программ которые предстоит установить для дальнейшей работы. Эта заметка должна помочь и вам и мне собрать их в кучу и начать действовать. Описанный набор устанавливаемого ПО нужен для разработки Django-проектов. Сразу после первой загрузки должен запуститься менеджер [...]]]></description>
			<content:encoded><![CDATA[<p>После установки или переустановки новой ОС ваши мысли могут разбежаться в разные стороны при попытке вспомнить весь набор программ которые предстоит установить для дальнейшей работы. Эта заметка должна помочь и вам и мне собрать их в кучу и начать действовать. Описанный набор устанавливаемого ПО нужен для разработки Django-проектов. <span id="more-546"></span></p>
<ol>
<li>Сразу после первой загрузки должен запуститься менеджер обновлений. Если этого не произошло, то запускаем его сами (<strong>Система > Администрирование > Менеджер обновлений</strong>). В окошке менеджера обновлений нажимаем кнопку &laquo;Установить обновления&raquo;. Менеджер обновлений начнет загрузку и установку всех доступных для обновления приложений. В зависимости от скорости вашего интернет-соединения, этот процесс может занять от 5 до 60 и более минут. При скорости входящего канала 4Мбита/сек занимает около 10-15 мин. После того как менеджер обновлений закончит установку обновлений, в верхней части его окошка появится кнопка &laquo;Перезагрузить компьютер&raquo;. Нажимаем на эту кнопочку и перезагружаемся.
</li>
<li>После перезагрузки кликаем правой клавишей мыши на обоях рабочего стола и в открывшемся контекстном меню выбираем &laquo;Изменить фон рабочего стола&raquo;, выбираем вкладку &laquo;Визуальные эффекты&raquo; и переключаем &laquo;радио&raquo; в нижнее положение, туда где написано &laquo;<strong>Экстра:</strong> обеспечивает наиболее привлекательный набор эффектов&raquo;. После этого Ubuntu попытается отыскать драйвер для вашей видеокарты. Если драйвер найден, то вы увидите соответствующее сообщение системы с предложением его активировать. Нажимайте &laquo;Активировать&raquo; и перезагружайтесь. После перезагрузки возвращаемся в то же окно и жмём на &laquo;Экстра: обеспечивает наиболее привлекательный набор эффектов&raquo;. На этот раз все должно включиться без проблем.
</li>
<li>Изменим теперь комбинацию клавиш для смены раскладки на более удобную и привычную. Для этого идем <strong>Система > Параметры > Клавиатура</strong>, выбираем вкладку Раскладки, жмем кнопку &laquo;Параметры&#8230;&raquo;, жмем на выделенную жирным шрифтом надпись <strong>&laquo;Клавиша(ы) для смены раскладки&raquo;</strong> и в открывшемся списке клавиатурных комбинаций выбираем наиболее для себя удобную. Лично я предпочитаю переключать раскладку левой клавишей с логотипом Windows. Этот вариант в списке обозначен как &laquo;Левая клавиша Win&raquo;. Можно выбрать несколько вариантов на случай если вы забудете одно сочетание, то сработает другое. Отметьте галочкой сочетания, которые вам больше понравятся.</li>
<li>Идем <strong>Система > Параметры > Хранитель экрана</strong> и в нижней части открывшегося окошка снимаем галочку с &laquo;Блокировать экран при активном хранителе экрана&raquo;. Это нужно чтобы вам не приходилось каждый раз вводить пароль когда вы отходите от компьютера больше чем на 5 мин. </li>
<li>Настраиваем почтовый клиент Evolution</li>
<li>Настраиваем Empathy</li>
<li>Устанавливаем <a href="http://www.skype.com/intl/ru/get-skype/on-your-computer/linux/">Skype</a></li>
<li>Устанавливаем <a href="http://aptana.com/products/studio2/download">Aptana</a></li>
<li>Устанавливаем Apache и пакет libapache2-mod-wsgi</li>
<li>Устанавливаем и <a href="http://www.burdin.interwood.ru/2009/12/django-%E2%80%93-sreda-obitaniya-chast-5-nastrojka-postgresql/">настраиваем</a> <a href="http://www.postgresql.org/">Postgres</a> и пакет python-psycopg2</li>
<li>Устанавливаем <a href="http://www.pgadmin.org/">PGAdmin3</a> — графический клиент для СУБД PostgreSQL</li>
<li>Устанавливаем <a href="http://subversion.tigris.org/">Subversion</a> — свободная централизованная система управления версиями</li>
<li>Устанавливаем пакет <a href="http://pypi.python.org/pypi/setuptools">python-setuptools</a>. Проще всего это сделать командой
<pre lang="bash">sudo apt-get install python-setuptools</pre>
<p>Но можно и через <strong>Приложения > Центр приложений Ubuntu</strong>. Идем туда и в строке поиска пишем <strong>python-setuptools</strong>, нажимаем кнопку <strong>Установить</strong>.</p>
<li>Устанавливаем <a href="http://sphinx.pocoo.org/">Sphinx</a> — свободный генератор документации, написанный на языке Python.
<pre lang="bash">sudo apt-get install python-sphinx</pre>
</li>
<li>Устанавливаем пакеты <strong>python-django</strong>, <strong>python-django-tagging</strong>, <strong>python-django-extensions</strong>, <strong>python-django-tinymce</strong>, <strong>python-django-markupfield</strong>:
<pre lang="bash">sudo apt-get install python-django python-django-tagging python-django-extensions python-django-tinymce python-django-markupfield</pre>
</li>
<li>Создаем Django-проект, создаем для него БД, настраиваем WSGI и виртуальные хосты Apache</li>
</ol>
<p>В этот текст будет вноситься правка для более подробного описания последовательности действий по каждому из перечисленных пунктов. По некоторым из них имеет смысл написать отдельный пост. Так что, фактически, это пока черновик.</p>
]]></content:encoded>
			<wfw:commentRss>http://mamishev.ru/software-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Форма для загрузки файлов на вашем сайте</title>
		<link>http://mamishev.ru/upload_form/</link>
		<comments>http://mamishev.ru/upload_form/#comments</comments>
		<pubDate>Sun, 14 Nov 2010 22:46:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Пошаговые инструкции]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[формы]]></category>

		<guid isPermaLink="false">http://mamishev.ru/?p=524</guid>
		<description><![CDATA[Для реализации возможности загрузки файлов на сервер можно использовать простую форму: Этот код выводит в браузер элемент input с кнопкой &#171;Обзор&#187; и кнопку &#171;Загрузить&#187;. По нажатию на эту кнопку происходит обращение к файлу upload.php, который содержит следующий код:]]></description>
			<content:encoded><![CDATA[<p>Для реализации возможности загрузки файлов на сервер можно использовать простую форму:</p>
<pre lang="html">
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="filename"> 
<input type="submit" value="Загрузить">
</form>
</pre>
<p>Этот код выводит в браузер элемент <code>input</code> с кнопкой &laquo;Обзор&raquo; и кнопку &laquo;Загрузить&raquo;.<span id="more-524"></span> По нажатию на эту кнопку происходит обращение к файлу upload.php, который содержит следующий код:</p>
<pre lang="php"><?php
   if($_FILES["filename"]["size"] > 1024*5*1024)
   {
     echo ("Размер файла превышает пять мегабайт");
     exit;
   }
   if(copy($_FILES["filename"]["tmp_name"],
     "../upload/".$_FILES["filename"]["name"]))
   {
     echo("<b style='color:green;'>Файл успешно загружен </b> ");
     echo("Характеристики файла: ");
	 $file_name = $_FILES["filename"]["name"];
     echo("Имя файла: ");
     echo($_FILES["filename"]["name"]);
     echo("Размер файла: ");
     echo($_FILES["filename"]["size"]);
   } else {
      echo("Ошибка загрузки файла");
   }
?></pre>
<p>При успешном выполнении этого кода загруженный пользователем файл попадает в папку <code>../upload/</code>. Обратите внимание, необходимо заранее позаботиться о том, чтобы на папку в которую происходит загрузка файлов были выставлены права, позволяющие производить в нее запись.</p>
]]></content:encoded>
			<wfw:commentRss>http://mamishev.ru/upload_form/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Я вернулся</title>
		<link>http://mamishev.ru/ya-vernulsya/</link>
		<comments>http://mamishev.ru/ya-vernulsya/#comments</comments>
		<pubDate>Tue, 09 Nov 2010 13:44:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://mamishev.ru/?p=514</guid>
		<description><![CDATA[Ура, я вернулся в интернет. Правда, теперь скорость несколько скромнее чем раньше (20Мбит/сек), но вполне приемлемая для комфортной работы: Speedtest.net как всегда привирает в большую сторону:]]></description>
			<content:encoded><![CDATA[<p>Ура, я вернулся в интернет. Правда, теперь скорость несколько скромнее чем раньше (20Мбит/сек), но вполне приемлемая для комфортной работы:</p>
<div style="text-align:center"><a href="http://internet.yandex.ru/"><img src="http://internet.yandex.ru/informer/horizontal/3919/922/" border="0" /></a></div>
<p>Speedtest.net как всегда привирает в большую сторону:</p>
<div style="text-align:center"><a href="http://speedtest.net/"><img src="http://www.speedtest.net/result/1023315703.png"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://mamishev.ru/ya-vernulsya/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Требования к PSD-макетам, предоставляемым  для HTML-верстки</title>
		<link>http://mamishev.ru/requirements/</link>
		<comments>http://mamishev.ru/requirements/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 00:55:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Рецепты]]></category>
		<category><![CDATA[верстка]]></category>

		<guid isPermaLink="false">http://mamishev.ru/?p=478</guid>
		<description><![CDATA[Минимальная ширина макета — 1000px. Дизайн должен учитывать возможность комфортного просмотра сайта при разрешении от 1024х768 пикс. с возможностью доступа пользователя ко всем элементам навигации. Для обеспечения корректного масштабирования блоков сайта на мониторах с разным разрешением, не желательно использование крупных фоновых изображений, суммарная ширина которых будет превышать 1000px. Разумеется, если фоновое изображение можно без видимых [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>Минимальная ширина макета — 1000px. Дизайн должен учитывать возможность комфортного просмотра сайта при разрешении от 1024х768 пикс. с возможностью доступа пользователя ко всем элементам навигации.</li>
<p><span id="more-478"></span></p>
<li>Для обеспечения корректного масштабирования блоков сайта на мониторах с разным разрешением, не желательно использование крупных фоновых изображений, суммарная ширина которых будет превышать 1000px. Разумеется, если фоновое изображение можно без видимых искажений размножить (repeat-x, repeat-y), то это ограничение не действует.</li>
<li>При создании макета не следует злоупотреблять рукописными, готическими и другими экзотическими шрифтами. Любые не системные шрифты, использованные в макете должны пересылаться верстальщику вместе с файлом самого psd-макета и, при необходимости, пояснительной запиской.</li>
<li>Использование экзотических, художественных шрифтов автоматически влечет растеризацию этого шрифта, превращение его в статическую картинку. Поэтому такие шрифты следует использовать только для статического, не меняющего текста: логотип, не меняющиеся названия разделов сайта.</li>
<li>Необходимо также обеспечить возможность корректного (без ущерба для дизайна сайта) отображения интерактивного контента сайта любым из системных шрифтов внутри указанного для этого контента семейства (serif, sans-serif, monospace).</li>
<li>Элементы дизайна и/или функциональные блоки сайта, перекрываемые другими элементами, текстом или динамически меняющимся контентом должны быть выполнены на отдельных слоях (layers).</li>
<li>Именование слоев должно быть логичным и отражать суть содержащегося на слое изображения. Слои желательно называть английскими словами или транслитерацией русских слов латинскими символами.</li>
<li>Слои с объектами, представляющими собой части одного функционала, блока, или объединенные по иному признаку, желательно объединять в папки. Прицип именования папок тот же, что и для слоёв.</li>
<li>Воизбежание дробления psd-макета на многие десятки слоёв (такие прецеденты были), не следует помещать каждый объект в отдельный слой, если не меняется его контекст (окружение, фон) на сайте.</li>
<li>Направляющие (guides) необходимо использовать:
<ul>
<li>для обозначения выравнивания нескольких элементов по одной линии или для акцентирования других особенностей их взаимного положения;</li>
<li>для обозначения полей (margins) и отступов (paddings ) элементов оформления и/или контента сайта;</li>
</ul>
</li>
<li>Не следует оставлять в макете невидимых слоёв, которые использовались в процессе разработки макета, но не были включены в его финальный вариант. Если в макете есть невидимый слой, то предполагается, что его содержимое будет так или иначе задействовано на сайте. При необходимости, использование этого слоя можно описать в пояснительной записке.</li>
<li>Корректирующие слои также не желательны, так как не имеют самостоятельного значения. Их следует объединять с основными слоями.</li>
<li>К макету  прилагается пояснительная записка, в которой содержится следующая информация:
<ul>
<li>тип верстки сайта (резиновый, фиксированный, смешанный) с указанием абсолютных и/или относительных размеров функциональных блоков сайта;</li>
<li>желательность или нежелательность скроллинга (полосы прокрутки) для случая если объем контента не будет умещаться в отведенную ему область. (т. е. скрыть неуместившийся контент либо добавить скроллинг);</li>
<li>поведение динамических элементов и элементов управления контентом с отсылкой на соответствующие слои psd-макета. В том числе вид ссылок и интерактивных кнопок для различных  состояний (hover, active, visited);</li>
<li>любая иная информация, не очевидная из самого psd-макета.</li>
</ul>
</li>
<li>В случае затруднений, пояснительная записка может быть составлена верстальщиком в ходе его беседы с дизайнером &#8211; автором макета или иным представителем заказчика.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://mamishev.ru/requirements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Новые галереи с помощью плагина Lightbox</title>
		<link>http://mamishev.ru/new_gallery/</link>
		<comments>http://mamishev.ru/new_gallery/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 22:25:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Пошаговые инструкции]]></category>
		<category><![CDATA[lightbox]]></category>

		<guid isPermaLink="false">http://mamishev.ru/?p=367</guid>
		<description><![CDATA[Настоящая инструкция описывает порядок действий для публикации галерей с помощью плагина lightbox. В приведенном ниже примере я исходил из того, что все изображения галереи загружены на сервер в папку /img/papka/, а превьюшки вложены в папку /img/papka/thmb/; вы установили плагин lightbox 2; в настройках &#171;[tippy title="постоянных ссылок" header="off"][/tippy]&#187; прописано /%postname%/. Для блока с галереей установлены следующие [...]]]></description>
			<content:encoded><![CDATA[<p>Настоящая инструкция описывает порядок действий для публикации галерей с помощью плагина lightbox.<br />
<span id="more-367"></span><br />
В приведенном ниже примере я исходил из того, что</p>
<ul>
<li>все изображения галереи загружены на сервер в папку /img/papka/, а превьюшки вложены в папку /img/papka/thmb/;</li>
<li>вы установили плагин <a href="http://wordpress.org/extend/plugins/lightbox-2/">lightbox 2</a>;</li>
<li>в настройках &laquo;[tippy title="постоянных ссылок" header="off"]<img src="/img/screens/links.png" alt="" />[/tippy]&raquo; прописано <strong>/%postname%/</strong>.
</li>
<li>Для блока с галереей установлены следующие стили:<br />
<br/></p>
<pre lang="css" line="1">
.gall {
        text-align:center;
        padding-top:20px;
        float:right;
        margin:0;
        padding:0;
        }
.gall ul li {
        float:left;
        display:inline;
        padding:0 25px;
        margin:0;
        }
</pre>
</li>
</ul>
<ol>
<li>Итак, в первую очередь убедитесь, что все изображения и их превьюшки загружены куда надо и мирно лежат на своих законных местах. Убедились. Действительно лежат. Еще проверьте, не затесались ли среди превьюшек  большие картинки, а среди больших картинок &#8211; превьюшки. В Windows проще всего это сделать, выбрав вид отображения файлов &laquo;Таблица&raquo;. </li>
<li>Откройте любой текстовый редактор с функцией поиска/замены текста (рекомендую <a href="http://notepad-plus.sourceforge.net/ru/download.php?lang=ru">Notepad++</a>) и вставьте туда приведенный ниже код:<br />
<br/></p>
<pre lang="xml" line="1">
<center>
<div class="gall">

Название галереи <!-- Будет выведено над превьюшками -->
<ul>
<li><a href="/img/papka/001.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/001.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/002.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/002.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/003.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/003.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/004.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/004.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/005.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/005.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/006.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/006.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/007.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/007.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/008.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/008.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/009.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/009.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/010.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/010.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/011.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/011.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/012.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/012.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/013.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/013.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/014.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/014.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/015.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/015.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/016.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/016.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/017.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/017.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/018.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/018.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/019.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/019.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/020.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/020.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/021.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/021.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/022.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/022.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/023.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/023.jpg" style="border:1px solid #fff;"></a></li>
<li><a href="/img/papka/024.jpg" rel="lightbox[roadtrip1]"><img src="/img/papka/thmb/024.jpg" style="border:1px solid #fff;"></a></li>
</ul>
</div>

</center>
</pre>
</li>
<li>Добавьте или удалите строки в соответствии с количеством изображений в вашей галерее, а затем воспользуйтесь функцией поиска/замены текста чтобы редактор автоматически заменил в этом коде все <strong>papka</strong>-и на ваши.</li>
<li>Скопируйте получившийся текст.</li>
<li>Войдите в WordPress-овскую панель управления (<a href="/wp-admin/">/wp-admin/</a>).</li>
<li>В вертикальном меню слева перейдите по ссылке &laquo;Добавить страницу&raquo; из раздела &laquo;Страницы&raquo;.</li>
<li>Введите название галереи, а в большое поле ниже &#8211; скопированный из текстового редактора код.</li>
<li>Отредактируйте вид постоянной ссылки на страницу. Желательно чтобы ссылка была простой, краткой и адекватной тому контенту, который на ней размещен. На приведенном ниже скриншоте уместно было бы исправить ссылку на /new_gallery/ или /gallery1/ или нечто подобное вместо длинной неуклюжей надписи /moya-novaya-galereya/:<br />
<img src="/img/screens/new_page.png" alt="Редактирование постоянной ссылки на страницу" />
</li>
<li>Теперь обратите внимание на вертикальную колонку в правой части страницы. Там расположены настройки, которые определяют очень важные параметры публикуемой страницы. Если вы хотите чтобы страница была общедоступна и опубликована сразу же, то ничего менять не нужно. Просто нажмите &laquo;опубликовать&raquo;. Если желаете предоставлять доступ к этой странице только по паролю или вовсе скрыть ее от посторонних глаз &#8211; выберите соответствующие пункты в списке, выезжающем по нажатию на ссылку &laquo;Редактировать&raquo; рядом с опцией &laquo;Видимость&raquo;:<br />
<img src="/img/screens/new_page1.png" alt="Настройка дополнительных параметров публикуемой страницы" /><br />
Здесь же можно когда указать дату, когда страница будет автоматически опубликована. Эта возможность будет интересна тем кто хотел бы приурочить публикацию своего контента к некоторой особой дате, праздничной, памятной, траурной &#8211; не важно. Ниже в этой же колонке можно прописать или выбрать из уже имеющихся метки и рубрики для нашей страницы.
</li>
<li>По-моему, это всё. Жмем &laquo;Опубликовать&raquo;.<br />
Если по статье есть вопросы &#8211; пишите в комментах, постараюсь помочь.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://mamishev.ru/new_gallery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Синтаксис INSERT &#8230; SELECT</title>
		<link>http://mamishev.ru/insert-select/</link>
		<comments>http://mamishev.ru/insert-select/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 13:37:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Рецепты]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[вложенный запрос]]></category>

		<guid isPermaLink="false">http://mamishev.ru/?p=306</guid>
		<description><![CDATA[INSERT [LOW_PRIORITY] [IGNORE] [INTO] имя_таблицы [(списокстолбцов)] SELECT &#8230; С помощью INSERT &#8230; SELECT можно быстро вставить множество строк в одну таб­лицу из другой или других. Например: INSERT INTO tbl temp2 (fld__ id) SELECT tbl_templ.fld_order_id FROM tbl_templ WHERE tbl_templ. fld_order__id &#62; 100; В отношении оператора INSERT&#8230; SELECT соблюдаются следующие условия: 1. До версии MySQL 4.0.1 INSERT.. [...]]]></description>
			<content:encoded><![CDATA[<p>INSERT [LOW_PRIORITY] [IGNORE] [INTO] имя_таблицы [(списокстолбцов)]<br />
SELECT &#8230;<br />
С помощью INSERT &#8230; SELECT можно быстро вставить множество строк в одну таб­лицу из другой или других. Например:<br />
INSERT INTO tbl temp2 (fld__ id) SELECT tbl_templ.fld_order_id<br />
FROM tbl_templ WHERE tbl_templ. fld_order__id &gt; 100;<br />
В отношении оператора INSERT&#8230; SELECT соблюдаются следующие условия:<span id="more-306"></span></p>
<div class="copypaste">
1. До версии MySQL 4.0.1 INSERT.. .SELECT неявно работал в режиме IGNORE. Начиная с MySQL 4.0.1, следует явно указывать IGNORE, чтобы игнорировать строки, которые нарушают условия уникальности ключей.<br />
2. Не ИСПОЛЬЗОВать DELAYED С INSERT. . . SELECT.<br />
3. До MySQL 4.0.14 целевая таблица оператора INSERT не могла встречаться в конструкции FROM части SELECT. Это ограничение снято в версии 4.0.14.<br />
4. Столбцы AUTO_INCREMENT работают как обычно.</p>
<p>а Чтобы гарантировать, что бинарный журнал сможет быть использован для пересоздания оригинальных таблиц, MySQL не разрешает параллельные вставки во время выполнения INSERT.. .SELECT.<br />
Вы можете использовать REPLACE вместо INSERT, чтобы перезаписывать старые стро­ки. REPLACE &#8211; это дополнение к INSERT IGNORE при обработке новых строк, которые со­держат значения уникальных ключей, дублирующих старые строки. Новые строки ис­пользуются для замены старых вместо того, чтобы просто отвергаться.
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://mamishev.ru/insert-select/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Поддерживает ли ваш браузер СSS3 &#8230;</title>
		<link>http://mamishev.ru/css3/</link>
		<comments>http://mamishev.ru/css3/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 09:04:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://mamishev.ru/?p=245</guid>
		<description><![CDATA[Нашел замечательный сервис, позволяющий проверить какие именно свойства CSS поддерживает ваш браузер. Вот ссылка: http://www.css3.info/selectors-test/test.html]]></description>
			<content:encoded><![CDATA[<p>Нашел замечательный сервис, позволяющий проверить какие именно свойства CSS поддерживает ваш браузер. Вот ссылка:<br />
<a href="http://tools.css3.info/selectors-test/test.html">http://www.css3.info/selectors-test/test.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mamishev.ru/css3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Установка PostgreSQL и pgAdmin III на Ubuntu</title>
		<link>http://mamishev.ru/postgresql-install/</link>
		<comments>http://mamishev.ru/postgresql-install/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 12:58:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Пошаговые инструкции]]></category>
		<category><![CDATA[pgAdmin III]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://mamishev.ru/?p=233</guid>
		<description><![CDATA[Идем Система &#62; Администрирование &#62; Менеджер пакетов Synaptic Устанавливаем следующие пакеты: postgresql pgadmin3 python-psycopg2 В терминале вводим: sudo su postgres -c psql postgres Появляется такое приглашение: postgres=# Вводим: ALTER USER postgres WITH PASSWORD 'password'; где вместо password указываем свой пароль. Идем Приложения Программирование и запускаем pgAdmin III]]></description>
			<content:encoded><![CDATA[<ol>
<li>Идем Система &gt; Администрирование &gt; Менеджер пакетов Synaptic</li>
<li>Устанавливаем следующие пакеты:<br />
<span id="more-233"></span></p>
<ul>
<li>postgresql</li>
<li>pgadmin3</li>
<li>python-psycopg2</li>
</ul>
</li>
<li> В терминале вводим:<br />
<code>sudo su postgres -c psql postgres</code><br />
Появляется такое приглашение:<br />
<code>postgres=# </code><br />
Вводим:<br />
<code>ALTER USER postgres WITH PASSWORD 'password';</code><br />
где вместо password указываем свой пароль.</li>
<li>Идем Приложения  Программирование и запускаем pgAdmin III</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://mamishev.ru/postgresql-install/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Установка Django на Ubuntu 9.10</title>
		<link>http://mamishev.ru/django-deploy/</link>
		<comments>http://mamishev.ru/django-deploy/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 20:56:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Пошаговые инструкции]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://mamishev.ru/?p=161</guid>
		<description><![CDATA[Устанавливаем Subversion: sudo apt-get install subversion Загружаем из репозитория последний официальный дистрибутив Django для разработчиков: svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk Прописываем Django в питоне. Для этого, во-первых, выясним значение переменной SITE-PACKAGES-DIR: python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()" Полученное значение SITE-PACKAGES-DIR вместе с вашим именем пользователя user_name подставим в следующую команду: sudo ln -s /home/user_name/django-trunk/django [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>Устанавливаем Subversion:
<pre lang="bash">
sudo apt-get install subversion
</pre>
</li>
<li>Загружаем из репозитория последний официальный дистрибутив Django для разработчиков:
<pre lang="bash">
svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk
</pre>
</li>
<p><span id="more-161"></span></p>
<li>Прописываем Django в питоне. Для этого, во-первых, выясним значение переменной <strong>SITE-PACKAGES-DIR</strong>:
<pre lang="bash">
python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
</pre>
<p>Полученное значение <strong>SITE-PACKAGES-DIR</strong> вместе с вашим именем пользователя <strong>user_name</strong> подставим в следующую команду:</p>
<pre lang="bash">
sudo ln -s /home/user_name/django-trunk/django SITE-PACKAGES-DIR/django
</pre>
<p>Эта команда создаст в папке SITE-PACKAGES-DIR символическую ссылку на папку в которую Вы скачали дистрибутив Django. Не забудьте подставить в эту команду вместо <strong>user_name</strong> и <strong>SITE-PACKAGES-DIR</strong> их настоящие значения! Для меня эта команда имеет такой вот вид:<br />
<code>sudo ln -s /home/mamishev/django-trunk/django /usr/lib/python2.6/dist-packages/django</code>
</li>
<li>Проверяем, установлена ли Django корректно. Для этого в терминале пишем команду:
<pre lang="bash">
python
</pre>
<p>После ввода предыдущей команды появляется приглашение командной строки питона в виде трех символов:<br />
<strong>>>></strong><br />
тут же пишем:</p>
<pre lang="python">
import django
</pre>
<p>Если после ввода этой команды &laquo;ничего не произошло&raquo;, то значит Django установлена корректно. Если питон ругается (ImportError: No module named django), то Вы что-то сделали не так. Удалите символическую ссылку на папку с дистрибутивом джанги, переместившись в папку SITE-PACKAGES-DIR. У меня это <strong>/usr/lib/python2.6/dist-packages</strong>, поэтому команда перехода в папку SITE-PACKAGES-DIR выглядит как </p>
<pre lang="bash">cd /usr/lib/python2.6/dist-packages</pre>
<p>И затем удаляем симлинк на папку с джангой:</p>
<pre lang="bash">sudo rm django</pre>
<p>Еще раз обращаю ваше внимание. Последние две команды нужно выполнять только если произошла ошибка при выполнении команды <strong>import django</strong>.
</li>
<li>Проверяем доступность MySQL-сервера. В командной строке пишем:
<pre lang="bash">mysql -u root -p</pre>
<p>Если появилось приглашение mysql> , то все хорошо. Если нет &#8211; идем в Система > Администрирование > Менеджер пакетов Synaptic, в поле &laquo;Быстрый поиск&raquo; пишем <strong>mysql</strong>, выбираем пакет <strong>mysql-server</strong> (правой клавишей на строку с mysql-server и в открывшемся контекстном меню кликаем левой клавишей на &laquo;отметить для установки&raquo;) и жмем на кнопку с зеленой галочкой &laquo;Применить&raquo;. В процессе установки нужно будет дважды ввести пароль для суперпользователя <strong>root</strong>.<br />
После установки снова пытаемся запустить MySQL:</p>
<pre lang="bash">mysql -u root -p</pre>
<p>После ввода команды должно появиться приглашение <strong>Enter password:</strong>. Вводим пароль, который мы задали для пользователя root в процессе установки MySQL. При вводе пароля символы не будут отображаться, но не пугайтесь, все именно так и должно быть. Появится приглашение MySQL:</p>
<div style="overflow:auto; background:#E0E0E0; padding:3px 10px;">
Welcome to the MySQL monitor.  Commands end with ; or g.<br />
Your MySQL connection id is 41<br />
Server version: 5.1.37-1ubuntu5 (Ubuntu)<br />
Type &#8216;help;&#8217; or &#8216;h&#8217; for help. Type &#8216;c&#8217; to clear the current input statement.<br />
mysql>
</div>
<p>Проверим какие базы данных у нас установлены:</p>
<pre lang="mysql"> show databases;</pre>
<p>Жмем Enter и получаем такой вот ответ:</p>
<pre lang="mysql">
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
+--------------------+
2 rows in set (0,00 sec)
</pre>
</li>
<li>Создаем новую БД для нашего проекта (на примере <a href="http://neoseller.ru">neoseller.ru</a>):
<pre lang="bash">
CREATE DATABASE neoseller DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
</pre>
<p>Получаем такой ответ:</p>
<pre lang="mysql">
Query OK, 1 row affected (0,01 sec)
</pre>
<p>Это означает что наша БД успешно создана. Можем в этом убедиться, запросив:</p>
<pre lang="mysql">show databases;</pre>
</li>
<li>Устанавливаем модуль <strong>python-mysqldb</strong> для подключения питона к MySQL. Для этого идем в менеджер пакетов Synaptic и пишем в строке быстрого поиска <strong>mysqldb</strong>. В отобразившемся списке кликаем на <strong>python-mysqldb</strong> и выбираем &laquo;отметить для установки&raquo;. Нажимаем кнопку с зеленой галочкой &laquo;Применить&raquo; и еще раз подтверждаем установку пакета.
</li>
<li>
Идем в папку с джангой (у меня это /home/mamishev/django-trunk/django/bin/. Чтобы убедиться что это та самая папка &#8211; проверьте, в ней должен лежать файл django-admin.py) и создаем новый проект вот такой командой:</p>
<pre lang="bash">python django-admin.py startproject neoseller</pre>
<p><em>Здесь и далее вместо neoseller следует писать имя вашего проекта.</em><br />
Эта команда создет в папке bin папку с именем нового проекта. Внутри этой папки 4 файла:</p>
<div style="overflow:auto; background:#E0E0E0; padding:3px 10px;">
<code><br />
    __init__.py<br />
    manage.py<br />
    settings.py<br />
    urls.py<br />
</code>
</div>
</li>
<li>
Редактируем свежесозданный файл settings.py:</p>
<pre lang="python">
DATABASE_ENGINE = 'mysql'           # Здесь указываем тип нашей СУБД (еще бывают 'postgresql', 'sqlite3', 'oracle')
DATABASE_NAME = 'neoseller'             # Здесь указываем название нашей БД
DATABASE_USER = 'root'             # Имя пользователя БД
DATABASE_PASSWORD = 'zdes_pishem_parol'         # Пароль пользователя БД
DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.
</pre>
</li>
<li>
Переходим в папку нашего проекта</p>
<pre lang="bash">
cd /home/mamishev/django-trunk/django/bin/neoseller
</pre>
<p> и запускаем сервер:</p>
<pre lang="bash">
python manage.py runserver
</pre>
<p>После запуска сервера должно появиться примерно вот такое сообщение в терминале:</p>
<div style="overflow:auto; background:#E0E0E0; padding:3px 10px;">
<code><br />
Django version 1.2 pre-alpha SVN-11642, using settings 'neoseller.settings'<br />
Development server is running at http://127.0.0.1:8000/<br />
Quit the server with CONTROL-C.<br />
[25/Oct/2009 19:35:13] "GET / HTTP/1.1" 200 2059<br />
</code></div>
<p>Чтобы убедиться что сервер действительно запущен, откройте в браузере ссылку<br />
<a href="http://127.0.0.1:8000/">http://127.0.0.1:8000/</a><br />
Если вы все сделали правильно, то увидите такую картинку:</p>
<p>
<img src="http://mamishev.ru/wp-content/uploads/01.10.png" alt="Django успешно установлена." title="Django успешно установлена" class="size-full wp-image-149" />
</p>
</li>
<li>
Откроем в терминале новую вкладку (Файл > Открыть вкладку) и выполним такую команду:</p>
<pre lang="bash">
python manage.py syncdb
</pre>
<p>Эта команда создаст в нашей базе данных таблицы для работы встроенных (системных) приложений джанги. Чтобы посмотреть какие таблицы были созданы, откройте в терминале еще одну вкладку и введите</p>
<pre lang="bash">mysql -u root -p</pre>
<p>После ввода пароля увидите приглашение mysql ><br />
далее вводите </p>
<pre lang="mysql">show tables in neoseller;</pre>
<p><em>вместо neoseller, конечно, нужно указать имя вашего проекта</em><br />
Эта команда (а точнее &#8211; SQL-запрос) выведет стисок всех таблиц в базе нашего проекта:</p>
<pre lang="mysql"> show tables in neoseller;
+----------------------------+
| Tables_in_neoseller        |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_message               |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_content_type        |
| django_session             |
| django_site                |
+----------------------------+
10 rows in set (0,01 sec)
</pre>
<p>Эти таблицы были автоматически созданы на основании перечня приложений в разделе <strong>INSTALLED_APPS</strong> файла settings.py нашего проекта:</p>
<pre lang="python">
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
)
</pre>
</li>
<li>Теперь создадим первое веб-приложение для нашей джанги. Следуя логике официального джангового <a href="http://docs.djangoproject.com/en/dev/">туториала</a>, создадим приложение polls для системы голосования на нашем сайте. Помните, все команды, в том числе и эту надо выполнять из папки нашего проекта (<strong>/home/имя_пользователя/django-trunk/django/bin/имя_проекта</strong>). Итак, из папки проекта вводим в терминале команду:
<pre lang="bash">
python manage.py startapp polls
</pre>
<p>Эта команда внутри папки проекта создаст папку <strong>polls</strong> с четырьмя файлами внутри:</p>
<div style="overflow:auto; background:#E0E0E0; padding:3px 10px;">
<code><br />
    __init__.py<br />
    models.py<br />
    tests.py<br />
    views.py<br />
</code></div>
<p>Этими файлами управляется работа приложения polls.<br />
(Продолжение следует&#8230;)
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://mamishev.ru/django-deploy/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

