<?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>Блог Erik’а &#187; Решения</title>
	<atom:link href="http://home.edstudio.net.ru/category/decisions/feed/" rel="self" type="application/rss+xml" />
	<link>http://home.edstudio.net.ru</link>
	<description>Заметки ни о чём и обо всём</description>
	<lastBuildDate>Sun, 18 Apr 2010 16:32:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>«Ветвление» SVN-хранилища «для чайников» типа меня</title>
		<link>http://home.edstudio.net.ru/2010/01/branching-svn-repository-for-dummies-like-me/</link>
		<comments>http://home.edstudio.net.ru/2010/01/branching-svn-repository-for-dummies-like-me/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 16:31:09 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Решения]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[ветвление]]></category>
		<category><![CDATA[разработка]]></category>
		<category><![CDATA[репозиторий]]></category>

		<guid isPermaLink="false">http://home.edstudio.net.ru/?p=274</guid>
		<description><![CDATA[В&#160;этот статье я&#160;постараюсь объяснить как сделать &#171;ветвление&#187; SVN-хранилища. Правда, это больше не&#160;статья, а&#160;маленький HowTo:) На&#160;рассматриваемом примере проект располагается в&#160;корне хранилища и&#160;имеет примерно такую структуру: &#8230;а получить хочется такую (в&#160;связи с, скажем, расширением проекта): Итак, сразу оговорка: используется Linux. Собственно, для начала надо скачать содержимое хранилища (svn co&#8230;) и&#160;перейти в&#160;него (cd&#160;anywhere). Инструкция: Создадим папки trunk, tags [...]]]></description>
			<content:encoded><![CDATA[<p>В&nbsp;этот статье я&nbsp;постараюсь объяснить как сделать &laquo;ветвление&raquo; <nobr>SVN-хранилища</nobr>. Правда, это больше не&nbsp;статья, а&nbsp;маленький HowTo:) На&nbsp;рассматриваемом примере проект располагается в&nbsp;корне хранилища и&nbsp;имеет примерно такую структуру:</p>
<p><img src="http://home.edstudio.net.ru/wp-content/uploads/2010/01/1.png" alt="SVN Before" title="SVN Before" width="217" height="142" class="aligncenter size-full wp-image-275" /></p>
<p>&hellip;а получить хочется такую (в&nbsp;связи с, скажем, расширением проекта):</p>
<p><img src="http://home.edstudio.net.ru/wp-content/uploads/2010/01/2.png" alt="SVN Branching" title="SVN Branching" width="231" height="231" class="aligncenter size-full wp-image-276" /></p>
<p><span id="more-274"></span></p>
<p>Итак, сразу оговорка: используется Linux.</p>
<p>Собственно, для начала надо скачать содержимое хранилища (<em>svn co&hellip;</em>) и&nbsp;перейти в&nbsp;него (<em>cd&nbsp;anywhere</em>).</p>
<p>Инструкция:</p>
<ol>
<li>
<p>Создадим папки <strong>trunk</strong>, <strong>tags</strong> и&nbsp;<strong>branches</strong>:</p>
<blockquote><p><code>LIST=`ls`<br />
	svn mkdir trunk branches tags<br />
	for file in $LIST; do svn move $file trunk; done;</code></p></blockquote>
<p>	В&nbsp;начале создаётся переменная с&nbsp;текущим результатом вывода <em>ls</em>. Создаём папки и&nbsp;перемещаем каждую папку и&nbsp;файл из&nbsp;списка;</p>
</li>
<li>
<p>Если нужно скопировать содержимое <strong>trunk</strong> в&nbsp;скажем, <strong>tags/1.0</strong> (скажем, при релизе версии 1.0), то&nbsp;выполняем следующее:</p>
<blockquote><p><code>svn copy trunk tags/1.0</code></p></blockquote>
<p>	<img src="http://home.edstudio.net.ru/wp-content/uploads/2010/01/3.png" alt="SVN Merging" title="SVN Merging" width="237" height="259" class="aligncenter size-full wp-image-277" /></p>
</li>
<li>
<p>И&hellip; коммит:</p>
<blockquote><p><code>svn commit -m "Создание «ветвления» хранилища."</code></p></blockquote>
<p>	где флаг <em>-m</em> задаёт сообщение для лога.</p>
</li>
</ol>
<p>Стабильных Вам версий! <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>
<em>PS: Собственно, этот пост писался больше как памятка.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://home.edstudio.net.ru/2010/01/branching-svn-repository-for-dummies-like-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DC++ и Wi-Fi роутер</title>
		<link>http://home.edstudio.net.ru/2009/10/dc-and-wi-fi-router/</link>
		<comments>http://home.edstudio.net.ru/2009/10/dc-and-wi-fi-router/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 17:47:07 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Решения]]></category>
		<category><![CDATA[asus]]></category>
		<category><![CDATA[smile]]></category>
		<category><![CDATA[strongdc]]></category>
		<category><![CDATA[wl-500gP2]]></category>
		<category><![CDATA[оборудование]]></category>

		<guid isPermaLink="false">http://home.edstudio.net.ru/?p=254</guid>
		<description><![CDATA[Итак, в этой статье я расскажу как настроить роутер и ноутбук для работы с Direct-Connect (DC) сетями. Что мы имеем? А имеем мы провайдера «Corbina» (или она имеет нас?), Wi-Fi роутер Asus WL-500g Premium v2 и клиент StrongDC++ и все они непрочь работать, если их правильно настроить Задача Надо научить ноут качать через DC по [...]]]></description>
			<content:encoded><![CDATA[<p>Итак, в этой статье я расскажу как настроить роутер и ноутбук для работы с Direct-Connect (DC) сетями.</p>
<p><span id="more-254"></span></p>
<h2>Что мы имеем?</h2>
<p>А имеем мы провайдера «<a href="http://corbina.ru/" target="_blank" title="Corbina Telecom">Corbina</a>» (или она имеет нас?), Wi-Fi роутер <a href="http://ru.asus.com/product.aspx?P_ID=jTcQKIRXgNPLo54b&#038;templete=2" target="_blank" title="Мульти-функциональный беспроводной маршрутизатор Asus WL-500g Premium v2">Asus WL-500g Premium v2</a> и клиент <a href="http://strongdc.sourceforge.net/index.php?lang=eng" target="_blank" title="Клиент для DC-сетей StrongDC++">StrongDC++</a> и все они непрочь работать, если их правильно настроить <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Задача</h2>
<p>Надо научить ноут качать через DC по вафле.</p>
<h2>Приступим</h2>
<p>Первое, что надо сделать &mdash; это настроить StrongDC++ на ноутбуке. Настройки соединения:</p>
<div id="attachment_259" class="wp-caption aligncenter" style="width: 503px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/10/strongdc-connection.png" alt="StrongDC++: настройки соединения" title="StrongDC++: настройки соединения" width="493" height="510" class="size-full wp-image-259" /><p class="wp-caption-text">StrongDC++: настройки соединения</p></div>
<p>Выбор портов &mdash; произвольный. Вводятся только TCP и UPD (выбрал одинаковые номера, чтобы легче было). Интерфейс &mdash; 0.0.0.0, как и при «нормальном» (через кабель, напрямую) подключении. Настройки входящего соединения &mdash; Firewall с UPnP (там ниже адрес вводить не надо, StrongDC++ сам его туда добавит. Кстати, это Ваш адрес, выданный DHCP-сервером локальной сети).</p>
<p>Теперь настроим роутер. Первое &mdash; настроить маршруты для локальной сети. Для каждого провайдера будет разным. Для корбины <a href="http://help.corbina.net/internet/local/routhow/" target="_blank" titke="Роутинг и как его прописать?">написано</a>:</p>
<blockquote><p><strong>corbina.ru, help.corbina.ru, home.corbina.ru</strong><br />
route -p add 89.179.135.67 mask 255.255.255.255 шлюз</p></blockquote>
<p>Отсюда следует:</p>
<ol>
<li><strong>IP-адрес сети или хоста</strong> → 89.179.135.67</li>
<li><strong>Сетевая маска</strong> → 255.255.255.255</li>
<li><strong>шлюз</strong> → 10.0.0.0 (если в Вашем районе шлюз начинается с 10&#8230;)</li>
</ol>
<p>Теперь, собственно, настройка роутера. Заходим в админку, далее: «Дополнительные настройки» → «ЛВС» → «Маршрут» (для Asus WL-500gP V2) и видим такие (или аналогшичные) настройки DHCP-сервера роутера (значения я уже ввёл):</p>
<div id="attachment_271" class="wp-caption aligncenter" style="width: 549px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/10/router-dhcp.PNG" alt="Настройка DHCP-сервера роутера" title="Настройка DHCP-сервера роутера" width="539" height="313" class="size-full wp-image-271" /><p class="wp-caption-text">Настройка DHCP-сервера роутера</p></div>
<p>Интерфейс выбираем строго <strong>WAN</strong>.</p>
<p>Всё выбрали &mdash; добавляем и применяем.</p>
<p>Итак, последнее: настраиваем «перенаправление» (в роутере названо как «Виртуальный сервер» и находится в пункте «WAN» дополнительных настроек).</p>
<div id="attachment_267" class="wp-caption aligncenter" style="width: 717px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/10/virtual-server.PNG" alt="Настройка виртуального сервера роутера" title="Настройка виртуального сервера роутера" width="707" height="104" class="size-full wp-image-267" /><p class="wp-caption-text">Настройка виртуального сервера роутера</p></div>
<p>Здесь вводится «Имя службы» (какое нравится, «StrongDC» к примеру), «Диапазон портов» (вводим тот порт, который указывали в клиенте), «Локальный IP-адрес» (адрес нашего компьютера) и «Протокол» (если у Вас TCP и UPD имеют одинаковый номер портов, то ставим <strong>BOTH</strong>. Если номера разные &mdash; добавляем 2-е записи с указанием каждого порта и протокола). Поля «Локальный порт» и «Номер протокола» оставляем пустыми.</p>
<p>Добавляем всё что нужно и применяем настройки. Всё. Всем удачи! <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://home.edstudio.net.ru/2009/10/dc-and-wi-fi-router/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Компилирование библиотеки Qt под ОС Windows с поддержкой Phonon</title>
		<link>http://home.edstudio.net.ru/2009/06/compiling-qt-library-under-windows-os-with-support-for-phonon/</link>
		<comments>http://home.edstudio.net.ru/2009/06/compiling-qt-library-under-windows-os-with-support-for-phonon/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 11:32:37 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Решения]]></category>
		<category><![CDATA[phonon]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[ОСи]]></category>
		<category><![CDATA[разработка]]></category>
		<category><![CDATA[халява]]></category>

		<guid isPermaLink="false">http://home.edstudio.net.ru/?p=194</guid>
		<description><![CDATA[В этой статье я&#160;расскажу как скомпилировать Qt&#160;с&#160;поддержкой Phonon. Итак, давайте сначала разберёмся как всё это будет выглядеть. Библиотеки QtWebKit и&#160;Phonon не&#160;являются собственностью Qt.&#160;Они были включены в&#160;него под &#171;свободной лицензией&#187;. В&#160;связи с&#160;этим компилирование обоих этих библиотек возможно только в&#160;shared-версии. Из&#160;этого можно сделать вывод, что про необходимости использования любой из&#160;этих библиотек статичную сборку делать бесполезно. Также надо [...]]]></description>
			<content:encoded><![CDATA[<p>В этой статье я&nbsp;расскажу как скомпилировать <a href="http://qtsoftware.com" target="_blank" title="Qt — A cross-platform application and UI framework">Qt</a>&nbsp;с&nbsp;поддержкой Phonon.</p>
<p><span id="more-194"></span></p>
<p>Итак, давайте сначала разберёмся как всё это будет выглядеть. Библиотеки QtWebKit и&nbsp;Phonon не&nbsp;являются собственностью Qt.&nbsp;Они были включены в&nbsp;него под &laquo;свободной лицензией&raquo;. В&nbsp;связи с&nbsp;этим компилирование обоих этих библиотек возможно только в&nbsp;shared-версии. Из&nbsp;этого можно сделать вывод, что про необходимости использования любой из&nbsp;этих библиотек статичную сборку делать бесполезно.</p>
<p>Также надо заметить, что Phonon использует DirectShow, который поддерживает только свой, &laquo;родной&raquo; компилятор&nbsp;&#8212; nmake (поставляется с&nbsp;некоторыми SDK фирмы Microsoft и,&nbsp;естественно, с&nbsp;Microsoft Visual C++).</p>
<p>Итак, решено! Мы&nbsp;будем использовать nmake и&nbsp;делать shared-сборку <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><a name="orientation"></a><br />
<h2>Ориентируемся на&#8230;</h2>
<p>Скажем просто: на&nbsp;какие версии ОС&nbsp;мы&nbsp;собираемся ориентировать нашу программу (на&nbsp;release-стадии, конечно).</p>
<p>Для Windows Vista и&nbsp;ниже (XP&nbsp;например) отлично подойдёт MSVC2005 и&nbsp;Platform SDK для 2003-го сервера. Для самых новых (Vista, Se7en) предпочтительнее брать более новые продукты: MSVC2008 и&nbsp;Platform SDK для 2008-го сервера.</p>
<p>Исходя из&nbsp;этой информации необходимо принять решение о&nbsp;загрузке того или иного ПО&nbsp;из&nbsp;списка ниже.</p>
<p>Также настоятельно рекомендую прочитать &laquo;<a href="#depend">О&nbsp;зависимостях</a>&raquo;.</p>
<h2>А&nbsp;что нам, собственно, нужно?..</h2>
<p>Сначала скачаем всё, чтобы потом не&nbsp;отвлекаться во&nbsp;время установки на&nbsp;ожидание загрузки очередного очень нужного компонента.</p>
<ol>
<li>Для начала&nbsp;&#8212; сам Qt.&nbsp;Берём его <a href="http://get.qtsoftware.com/qt/source/" target="_blank" title="Хранилище Qt SoftWare, в котором можно найти много разных версий под разные ОС">здесь</a>, на&nbsp;официальном сайте. <span style="font-size: 75%; color: gray;">Я не&nbsp;даю прямую ссылку на&nbsp;файл, потому что может произойти так, что из-за меня кто-нибудь скачает древнюю версию, что не&nbsp;красиво. На&nbsp;момент написания статьи была использована версия 4.5.2. Выбираем zip-архив с&nbsp;именем <strong>qt-win-opensource-src-%версия%.zip</strong>, где %версия%&nbsp;&#8212; смотрим самую новую.</span></li>
<li>Ещё Microsoft Visual C++ <span style="font-size: 75%; color: gray;"><strong>Express Edition</strong>, чтоб было всё бесплатно %)</span>. Версию 2005&nbsp;года можно найти <a href="http://www.google.ru/search?hl=ru&#038;newwindow=1&#038;q=visual+c%2B%2B+2005+express+edition+%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C" target="_blank" title="Ищем MSVC2005 Express Edition на просторах сети Интернет">поиском</a>, а&nbsp;вот версия 2008&nbsp;года вполне доступна с&nbsp;<a href="http://www.microsoft.com/express/download/" targte="_blank" title="Microsoft Visual Studio 2008 Express Edition Downloads">сайта самой компании</a>. <span style="font-size: 75%; color: gray;">Самое интересное заключается в&nbsp;том, что абсолютно непонятно какая между ними разница, кроме, конечно, постепенно деградирующего интерфейса&#8230; Я&nbsp;использую MSVC версии 2005&nbsp;года и&nbsp;вполне ей&nbsp;доволен. Что касается более новых версий Windows (Windows Vista и&nbsp;Windows Se7en), то&nbsp;не&nbsp;могу однозначно сказать на&nbsp;сколько программа скомпилированная под MSVC2005&nbsp;будет там работоспособна. На&nbsp;Vista точно будет работать, а&nbsp;вот про Se7en: чего не&nbsp;знаю&nbsp;&#8212; того не&nbsp;знаю.</span></li>
<li>Также нам понадобиться Microsoft Platform SDK for Server. Здесь тоже много версий: <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E15438AC-60BE-41BD-AA14-7F1E0F19CA0D&#038;displaylang=en" target="_blank" title="Windows Server 2003 R2 Platform SDK ISO Download">Windows Server <strong>2003</strong>&nbsp;R2&nbsp;Platform SDK ISO Download</a> и&nbsp;<a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF&#038;displaylang=en" target="_blank" title="Windows SDK for Windows Server 2008 and .NET Framework 3.5">Windows SDK for Windows Server <strong>2008</strong>&nbsp;and .NET Framework 3.5</a>. <span style="font-size: 75%; color: gray;">Здесь история аналогичная Microsoft Visual C++. У&nbsp;меня версия опять древняя&nbsp;&#8212; 2003&nbsp;года.</span></li>
</ol>
<p>На этом минимальный набор всякого снаряжения подошёл к&nbsp;концу. Но,&nbsp;лично я&nbsp;хочу рассмотреть компиляцию с&nbsp;поддержкой шифрования (OpenSSL) и&nbsp;хочу его собрать сам. Здесь происходит самое интересное: сборка OpenSSL под Windows, которую можно найти по&nbsp;запросу <a href="http://www.google.ru/search?hl=ru&#038;newwindow=1&#038;q=openssl+windows" target="_blank" title="Результаты поиска opensll windows в google">openssl windows</a>, сделана как раз с&nbsp;зависимостью от&nbsp;этого пакета. Чтож, пересоберём как нам надо! <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Итак, дополнительный список вооружения:</p>
<ol>
<li>Сами исходные коды OpenSSL берём <a href="http://www.openssl.org/source/" target="_blank" title="Cryptography and SSL/TLS Toolkit">здесь</a>. <span style="font-size: 75%; color: gray;">Как всегда советую брать новейшую версию. На&nbsp;момент написания последней стабильной версией была 0.9.8k.</span></li>
<li>Microsoft Macro Assembler (MASM), доступный на&nbsp;<a href="http://www.microsoft.com/downloads/details.aspx?familyid=7A1C9DA0-0510-44A2-B042-7EF370530C64&#038;displaylang=en" target="_blank" title="Microsoft Macro Assembler 8.0 (MASM) Package (x86)">официальном сайте (8-ая версия)</a>. <span style="font-size: 75%; color: gray;">Этот пакет необходим для сборки OpenSSL. Здесь также необходимо выбирать версию, соответствующую вашей Visual C++. Но&nbsp;вот 9-ой версии (для MSVC2008) что-то я&nbsp;у&nbsp;них не&nbsp;нашёл.</span></li>
<li>ActivePerl берём <a href="http://www.activestate.com/activeperl/" target="_blank" title="ActivePerl - Complete and Ready-to-Install">тут</a>. <span style="font-size: 75%; color: gray;">Он также необходим для компилирования OpenSSL.</span></li>
</ol>
<p>Вроде, ничего не&nbsp;забыли <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>О&nbsp;том, куда устанавливать</h2>
<p>Иногда случаются такие ситуации, когда надо что-то найти, а&nbsp;никто не&nbsp;знает где это лежит. Для этого я&nbsp;считаю очень удобным, чтобы всё ПО&nbsp;какой-то определённой тематики (особенно, если его так много как здесь) валялось в&nbsp;одной папке. Для себя я&nbsp;определился, что этой самой папочкой станет <i>C:\Development</i> для всяких SDK и&nbsp;папочка <i>C:\Qt\%версия%</i> для всяких Qt&nbsp;(у&nbsp;меня это выглядит так: <i>C:\Qt\4.5.2</i>).</p>
<p>Удобно, не&nbsp;правда&nbsp;ли? <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Установка Windows Server 2003&nbsp;R2&nbsp;Platform SDK</h2>
<p>В связи с&nbsp;&laquo;О&nbsp;том, куда устанавливать&raquo; устанавливаем в&nbsp;<i>C:\Development\Microsoft Platform SDK for Windows Server 2003&nbsp;R2</i>.</p>
<p>Поскольку мало кто полезет читать документацию к&nbsp;этому SDK или&nbsp;же кто захочет поглазеть на&nbsp;примеры исходных кодов, то&nbsp;они нам не&nbsp;нужны и&nbsp;мы&nbsp;их&nbsp;выкидываем (также выкидываем всевозможные тулзы и&nbsp;снаряжения для ненужных процессоров).</p>
<div id="attachment_214" class="wp-caption aligncenter" style="width: 616px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/platform-sdk-0.png" alt="Установка Platform SDK" title="Установка Platform SDK" width="606" height="465" class="size-full wp-image-214" /><p class="wp-caption-text">Установка Platform SDK</p></div>
<p>Всё, устанавливаем.</p>
<h2>Установка ActivePerl</h2>
<p>Здесь не&nbsp;важно куда и&nbsp;как вы&nbsp;его установите. Главное галочку напротив вопроса о&nbsp;добавлении в&nbsp;%PATH% не&nbsp;убирайте <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Установка DirectX SDK</h2>
<p>Здесь всё аналогично установке Platform SDK. Адрес установки: <i>C:\Development\Microsoft DirectX SDK (March 2009)</i>.</p>
<div id="attachment_211" class="wp-caption aligncenter" style="width: 513px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/directx-0.png" alt="Установка DirectX SDK" title="Установка DirectX SDK" width="503" height="393" class="size-full wp-image-211" /><p class="wp-caption-text">Установка DirectX SDK</p></div>
<h2>Установка Visual C++ 2005&nbsp;Express Edition</h2>
<p>Здесь следует помнить, что Express Edition&nbsp;&#8212; единственный бесплатный вариант. Чтобы избежать всевозможных проблем следует устанавливать именно её.</p>
<p>Из этого пакета нам однозначно не&nbsp;нужна справочная библиотека MSDN и&nbsp;SQL Server. Выкидываем их.</p>
<p>Компонент Graphical IDE мы&nbsp;оставляем. Нет, ничего писать в&nbsp;нём мы&nbsp;не&nbsp;собираемся, просто есть маленькая программка (<strong>mt.exe</strong> кажется), без которой компилятор будет плакать как маленький.</p>
<div id="attachment_213" class="wp-caption aligncenter" style="width: 516px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/msvc2005-0.png" alt="Установка Visual C++ 2005 Express Edition" title="Установка Visual C++ 2005 Express Edition" width="506" height="458" class="size-full wp-image-213" /><p class="wp-caption-text">Установка Visual C++ 2005 Express Edition</p></div>
<p>Будут установлены следующие компоненты: MSVC2005 и&nbsp;.Net Framework v2.0&nbsp;(он,&nbsp;кстати, тоже крайне необходим). Адрес установки, для удобства, я&nbsp;назначил <i>C:\Development\VC</i>.</p>
<p>Обновлять всё это дело до&nbsp;SP1&nbsp;не&nbsp;рекомендую. Я&nbsp;долго шарился по&nbsp;интернету в&nbsp;поисках решений своих ошибок при первых попытках скомпилировать Phonon и&nbsp;прочитал, что с&nbsp;SP1&nbsp;может возникнуть конфликт при сборке Qt.&nbsp;Хотя, это было уже достаточно давно, может уже исправили.</p>
<h2>Установка Microsoft Macro Assembler</h2>
<p>Здесь вообще не&nbsp;предлагается никакая свобода выбора. Просят только принять лицензию. Для любопытных умов: он&nbsp;установился в&nbsp;папку к&nbsp;VC&nbsp;и&nbsp;называется <strong>ml.exe</strong>.</p>
<h2>Компилирование и&nbsp;установка OpenSSL</h2>
<p>Вот, мы&nbsp;уже близки к&nbsp;завершению подготовки перед компиляцией Qt&nbsp;:)</p>
<p>Сначала распакуем архив с&nbsp;OpenSSL куда-нибудь, например в&nbsp;<i>C:\openssl-0.9.8k</i>, запустим скрипт, устанавливающий окружение MSVC (<i>Пуск -> Все программы -> Microsoft C++ 2005&nbsp;Express Edition -> Visual Studio Tools -> Visual Studio 2005&nbsp;Command Prompt</i> или аналогичный, в&nbsp;зависимости от&nbsp;версии) и&nbsp;перейдём с&nbsp;помощью команды <strong><u>cd</u>&nbsp;C:\openssl-0.9.8k</strong> в&nbsp;каталог с&nbsp;исходными кодами OpenSSL.</p>
<p>Вот сейчас нам как раз понадобится Perl, MASM и&nbsp;nmake все сразу. Начнём.</p>
<p>Конфигурируем OpenSSL, выполнив следующую команду в&nbsp;командной строке:</p>
<p><code><br />
<blockquote>perl Configure VC-WIN32 --prefix=C:/Development/OpenSSL</p></blockquote>
<p></code></p>
<p>Естественно, значение параметра <strong>-prefix=</strong> в&nbsp;соответствии нуждам. Также стоит обратить внимание на&nbsp;то,&nbsp;что используется слеш (а&nbsp;не&nbsp;обратный слеш как во&nbsp;всех других местах). Невыполнение этого правила приведёт к&nbsp;краху сборки.</p>
<p>Теперь выполняем команду</p>
<p><code><br />
<blockquote>ms\do_masm</p></blockquote>
<p></code></p>
<p>и</p>
<p><code><br />
<blockquote>nmake -f ms\ntdll.mak</p></blockquote>
<p></code></p>
<p>Началась сборка библиотек OpenSSL, по&nbsp;окончанию которых можно проверить их&nbsp;работоспособность выполнив команду</p>
<p><code><br />
<blockquote>nmake -f ms\ntdll.mak test</p></blockquote>
<p></code></p>
<p>По окончании проверки в&nbsp;консоль будет выведена информации об&nbsp;успешном (или не&nbsp;успешном) завершении проверки работоспособности библиотек.</p>
<p>Всё, устанавливаем (фактически копируем) необходимые файлы (в&nbsp;папку указанную при конфигурировании в&nbsp;<strong>-prefix=</strong>), выполнив в&nbsp;консоли команду:</p>
<p><code><br />
<blockquote>nmake -f ms\ntdll.mak install</p></blockquote>
<p></code></p>
<p>Всё. Теперь нам больше не&nbsp;понадобится ни&nbsp;MASM, ни&nbsp;ActivePerl, ни&nbsp;даже папка в&nbsp;которой мы&nbsp;сейчас находимся вместе с&nbsp;архивом с&nbsp;исходниками OpenSSL.</p>
<h2>Создание файла настроек окружения</h2>
<p>Делается это просто: методом создания файла командной строки.</p>
<p>Создадим файл <i>C:\Development\SetEnv.cmd</i>.</p>
<p>Теперь напишем скрипт установки всех частей окружения вручную, с&nbsp;нуля. Мой вариант:</p>
<blockquote><p><code>@ECHO OFF</p>
<p>@set DEV=C:\Development<br />
@set PATH=%SystemRoot%;%SystemRoot%\system32<br />
@set QTDIR=C:\Qt\4.5.2</p>
<p>@echo Setting OpenSSL Env.<br />
@set PATH=%DEV%\OpenSSL\bin;%PATH%<br />
@set LIB=%DEV%\OpenSSL\lib<br />
@set INCLUDE=%DEV%\OpenSSL\include</p>
<p>@echo Setting DirectX Env.<br />
@set LIB=%DEV%\Microsoft DirectX SDK (March 2009)\Lib\x86;%LIB%<br />
@set INCLUDE=%DEV%\Microsoft DirectX SDK (March 2009)\Include;%INCLUDE%</p>
<p>@echo Setting Windows SDK Env.<br />
@set LIB=%DEV%\Microsoft Platform SDK for Windows Server 2003 R2\Lib;%LIB%<br />
@set INCLUDE=%DEV%\Microsoft Platform SDK for Windows Server 2003 R2\Include;%INCLUDE%<br />
@set CPU=i386<br />
@set NODEBUG=1</p>
<p>@echo Setting MSVC2005 Env.<br />
@set PATH=%DEV%\VC\VC\bin;%DEV%\VC\Common7\Tools;%DEV%\VC\Common7\IDE;%DEV%\VC\VC\VCPackages;%PATH%<br />
@set INCLUDE=%DEV%\VC\VC\INCLUDE;%INCLUDE%<br />
@set LIB=%DEV%\VC\VC\LIB;%LIB%</p>
<p>@echo Setting Framework Env.<br />
@set FrameworkVersion=v2.0.50727<br />
@set FrameworkDir=%SystemRoot%\Microsoft.NET\Framework<br />
@set PATH=%DEV%\VC\SDK\v2.0\Bin;%PATH%<br />
@set LIB=%DEV%\VC\SDK\v2.0\Lib;%LIB%<br />
@set LIBPATH=%FrameworkDir%\%FrameworkVersion%<br />
@set PATH=%LIBPATH%;%PATH%</p>
<p>@echo Setting Qt Env.<br />
@set PATH=%QTDIR%\bin;%PATH%</p>
<p>@title Qt Framework 4.5.2 Development Kit.</p>
<p>cd %QTDIR%</code></p></blockquote>
<p>Здесь применены временный переменные, к&nbsp;примеру <strong>%DEV%</strong> чтобы сократить остальную писанину.</p>
<p>Объяснять что здесь что я&nbsp;не&nbsp;буду. Хочу лишь обратить внимание на&nbsp;установку снаряжения Windows SDK и&nbsp;Framework.</p>
<p>В Windows SDK есть переменные <strong>CPU</strong> и&nbsp;<strong>NODEBUG</strong>, отвечающие за&nbsp;Retail и&nbsp;Debug сборку, а&nbsp;также за&nbsp;архитектуру.</p>
<p>В Framework необходимо проверить правильность всех этих переменных в&nbsp;соответствии окружению. У&nbsp;меня, при использовании MSVC2005&nbsp;они такие, как написано. Если при компиляции возникнет ошибка, что не&nbsp;найден файл с&nbsp;именем <strong>mscoree</strong>, то&nbsp;ошибку следует искать именно здесь.</p>
<p>Чтобы легко использовать это окружение, можно создать на&nbsp;него ярлык. Здесь стоит заметить, что ярлык должен быть &laquo;особенным&raquo;, так как при простом запуске этого файла он&nbsp;выполнится, после чего окно просто закроется. Чтобы этого не&nbsp;случилось делаем так: создаём ярлык в&nbsp;удобном нам месте (правой кнопкой мышки -> Создать -> Ярлык&#8230;), выбираем путь к&nbsp;файлу и&nbsp;приписываем к&nbsp;нему слево <strong>%comspec% /k</strong>. Получится примерно так: <strong>%comspec% /k C:\Development\SetEnv.Cmd</strong>.</p>
<div id="attachment_215" class="wp-caption aligncenter" style="width: 457px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/shortcut-0.png" alt="Создания ярлыка" title="Создания ярлыка" width="447" height="334" class="size-full wp-image-215" /><p class="wp-caption-text">Создания ярлыка</p></div>
<p>Последний этап подготовки перед компилированием Qt&nbsp;завершён.</p>
<h2>Сборка Qt</h2>
<p>Вот и&nbsp;всё, всё снаряжение готово к&nbsp;бою <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Итак, первым делом следует распаковать Qt&nbsp;из&nbsp;скачанного архива в&nbsp;необходимую папку (<i>C:\Qt\4.5.2</i>&nbsp;в&nbsp;моём случае) и&nbsp;произвести предварительные настройки для компилятора.</p>
<p>Чтобы произвести настройку компилятора, надо отредактировать файл конфигурации <strong>qmake.txt</strong>, расположенный в&nbsp;папке <i>mkspecs\%компилятор%</i>, где %компилятор%&nbsp;&#8212; версия нашего компилятора (для MSVC2005&nbsp;оно равно <strong>win32-msvc2005</strong>, а&nbsp;для MSVC2008&nbsp;&#8212; <strong>win32-msvc2008</strong>). Открываем этот документ в&nbsp;текстовом редакторе и&nbsp;ищем следующие строчки (они могут немного отличаться):</p>
<p><code><br />
<blockquote>QMAKE_CFLAGS_RELEASE    = -O2 -MD<br />
QMAKE_CFLAGS_DEBUG      = -Zi -MDd</p></blockquote>
<p></code></p>
<p>Если обладаем многоядерным процессором, то можно компилировать в несколько потоков. Для этого используется флаг <strong>-MPi</strong>, где <strong>i</strong> &#8211; количество процессоров (для 2-х-ядерного процессора это будет выглядеть так: <strong>-MP2</strong>). Этот флаг можно добавить и в release, и в debug флаги.</p>
<p><span style="font-size: 75%; color: gray;">Примечание: если файл конфигурации содержит флаг <strong>-GL</strong> (оптимизация всей программы), то&nbsp;<strong>удалите</strong> его. Этот флаг потенциально может создать конфликт при компиляции <strong>QtWebKit</strong>.</span></p>
<p>После всех наших преобразований эти строки будут выглядеть примерно так:</p>
<p><code><br />
<blockquote>QMAKE_CFLAGS_RELEASE    = -O2 -MD -MP2<br />
QMAKE_CFLAGS_DEBUG      = -Zi -MDd -MP2</p></blockquote>
<p></code></p>
<p>Некоторые из&nbsp;вас могут спросить, мол, а&nbsp;не&nbsp;лучше&nbsp;ли заменить флаг <strong>-O2</strong>&nbsp;на,&nbsp;к&nbsp;примеру, <strong>-Os</strong> (по&nbsp;аналогии с&nbsp;компилятором <i>g++</i>)? Отвечу: нет, не&nbsp;лучше. Для компилятора <i>nmake</i> этот флаг эквивалентен флагу <strong>-O1</strong>. Подробнее об&nbsp;этом можно почитать <a href="http://msdn.microsoft.com/ru-ru/library/8f8h5cxt.aspx" target="_blank" title="/O1, /O2 (минимизировать размер, максимизировать скорость)">тут, на&nbsp;сайте MSDN</a>.</p>
<p>Распинаться на&nbsp;тему того, какие флаги использовать при конфигурировании Qt&nbsp;я&nbsp;не&nbsp;буду. Просто скажу, что бывают случаи, когда конфигуратор по&nbsp;каким-то причинам не&nbsp;видит возможности использовать тот или иной флаг. Поэтому следует указать все. Здесь приведу свой набор флагов:</p>
<p><code><br />
<blockquote>configure -debug-and-release -shared -exceptions -accessibility -stl -plugin-sql-sqlite -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -no-dsp -no-vcproj -mmx -3dnow -sse -sse2 -direct3d -openssl -no-dbus -phonon -phonon-backend -webkit -scripttools -qt-style-windows -qt-style-windowsxp -qt-style-windowsvista -no-style-plastique -no-style-cleanlooks -no-style-motif -no-style-cde</p></blockquote>
<p></code></p>
<p>Итак, можно начинать конфигурирование и&nbsp;компилирование <strong>qmake.exe</strong>. Для этого запустим наш скрипт <strong>SetEnv.cmd</strong> через ярлык и&nbsp;вставим туда команду, написанную выше.</p>
<div id="attachment_210" class="wp-caption aligncenter" style="width: 679px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/configure-0.png" alt="Выполнение конфигурирования" title="Выполнение конфигурирования" width="669" height="338" class="size-full wp-image-210" /><p class="wp-caption-text">Выполнение конфигурирования</p></div>
<p>После компилирования <strong>qmake.exe</strong> с&nbsp;его помощью будут созданы make-файлы для всех проектов (начиная от&nbsp;самой библиотеки Qt&nbsp;и&nbsp;заканчивая простейшими примерами). Здесь существует вероятность, что нет необходимости компилировать вообще всё подряд. К&nbsp;примеру нужна просто release-версия библиотеки для компилирования release-версий каких-либо программ. То&nbsp;есть не&nbsp;для разработки.</p>
<p>Если есть какая-то необходимость компилировать не&nbsp;весь Qt,&nbsp;а&nbsp;по&nbsp;частям, то&nbsp;используются специальные &laquo;флаги&raquo;, определённые в&nbsp;основном файле проекта Qt.&nbsp;Вот 2&nbsp;основных из&nbsp;них:</p>
<ol>
<li><strong>nmake sub-src</strong>&nbsp;&#8212; для компилирования только библиотек;</li>
<li><strong>nmake sub-tools</strong>&nbsp;&#8212; для компилирования всевозможных утилит (Designer, Linguist, Assistant, etc.).</li>
</ol>
<p>По завершению конфигурирования, создания <strong>qmake.exe</strong> и&nbsp;make-файлов для проекта, Qt&nbsp;скажет, что &laquo;Qt&nbsp;is&nbsp;now configured for building. Just run nmake. To&nbsp;reconfigure, run nmake confclean and configure&raquo;. Можно приступать к&nbsp;сборке <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Для того, чтобы начать компилирование просто введите <strong>nmake</strong> (или <strong>nmake sub-src</strong> и&nbsp;потом, если надо, <strong>nmake sub-tools</strong>) в&nbsp;зависимости от&nbsp;необходимого результата.</p>
<p>Если интересно, то&nbsp;я&nbsp;выполнил поочерёдно команды <strong>nmake sub-src</strong> и&nbsp;<strong>nmake sub-tools</strong> чтобы получить библиотеку с&nbsp;тулзами, но&nbsp;без ненужных примеров.</p>
<p><span style="font-size: 75%; color: gray;">&#8230;Прошло n-ое время, затраченное на&nbsp;компилирование нужных компонентов&#8230;</span></p>
<p>По завершению операций консоль не&nbsp;закрываем.</p>
<h2>Проверка работоспособности библиотеки</h2>
<p>Здесь всё просто. Раз мы&nbsp;собирали Qt&nbsp;в&nbsp;основном из-за модуля Phonon, то&nbsp;его и&nbsp;будем проверять.</p>
<p>Для этого выполним следующую команду, по&nbsp;завершении которой скомпилируется и&nbsp;запустится демо-приложение, использующее Phonon:</p>
<p><code><br />
<blockquote>cd demos/mediaplayer &#038;&#038; qmake &#038;&#038; nmake release &#038;&#038; cd release &#038;&#038; mediaplayer</p></blockquote>
<p></code></p>
<p>Через несколько секунд после завершения выполнения этого набора команд запуститься приложение. Откроем в&nbsp;нём какой-нибудь аудио файл, например: любимую песню <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  На&nbsp;этом моменте все поймут, работает Phonon или нет.</p>
<p><div id="attachment_212" class="wp-caption aligncenter" style="width: 334px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/mediaplayer-0.png" alt="Демо-приложение: Media Player" title="Демо-приложение: Media Player" width="324" height="181" class="size-full wp-image-212" /><p class="wp-caption-text">Демо-приложение: Media Player</p></div><br />
<a name="notes"></a><br />
<h2>Оговорки</h2>
<ul>
<li>В &laquo;Проверке работоспособности библиотеки&raquo; запуск приложения выполнен через консоль. Если попытаться запустить скомпилированную программу через проводник (при условии, что она находится <strong>не</strong>&nbsp;в&nbsp;директории <i>bin</i> Qt), то&nbsp;ничего не&nbsp;получится. Чтобы это исправить, необходимо перенести все переменные окружения из&nbsp;<strong>SetEnv.cmd</strong> в&nbsp;глобальное окружение ОС&nbsp;(Пуск -> Панель управления -> Система -> вкладка &laquo;Дополнительно&raquo; -> Переменные среды).</li>
<li>В случае возникновения ошибки при проверки работоспособности Phonon не&nbsp;следует огорчатся. Иногда так случается, что по&nbsp;каким-то причинам воспроизведение невозможно. Не&nbsp;знаю почему. просто попробуйте воспроизвести другой файл.</li>
</ul>
<p><a name="depend"></a><br />
<h2>О&nbsp;зависимостях</h2>
<p>Чтобы убрать зависимости от&nbsp;redistributable-пакетов необходимо заменить флаг <strong>-MD</strong> (<strong>-MDd</strong>) на&nbsp;<strong>-MT</strong> (<strong>-MTd</strong>).</p>
<p>Тут некоторые задумались на&nbsp;тему того, почему этот вопрос был вынесен из&nbsp;самой &laquo;инструкции&raquo; и&nbsp;являет собой нечто, похожее на&nbsp;дополнение. А&nbsp;кто-то, пропустив ссылку сюда сильно расстроен. Чтож, объясняю.</p>
<p>Использование флага <strong>-MT</strong> подразумевает собой &laquo;вшивание&raquo; кода runtime-библиотеки в&nbsp;конечный продукт (и&nbsp;в&nbsp;библиотеки, и&nbsp;в&nbsp;программы). Но&nbsp;при этом возникает обидная неожиданность: очень часто программы не&nbsp;работают. У&nbsp;меня лично хронически не&nbsp;запускался QtDesigner и&nbsp;lrelease (может что-нибудь ещё, а&nbsp;я&nbsp;просто не&nbsp;в&nbsp;курсе).</p>
<p>Именно по-этому я&nbsp;вынес этот вопрос сюда. В&nbsp;принципе, никто не&nbsp;мешает попытаться сделать <strong>-MT</strong> на&nbsp;более свежих версиях. У&nbsp;меня вот не&nbsp;срослось. Кстати, если надумали делать, то&nbsp;в&nbsp;OpenSSL тоже придётся внести небольшие изменения: в&nbsp;файле <em>ms\ntdll.mak</em> исправить <strong>/MD</strong> на&nbsp;<strong>/MT</strong>. Делать это необходимо после выполнения команды</p>
<blockquote><p><code>ms\do_masm</code></p></blockquote>
<p>О зависимостях готовых приложений можно почитать <a href="http://doc.qtsoftware.com/4.5/deployment-windows.html" target="_blank" title="Deploying an Application on Windows">тут [на англ.]</a>.</p>
<p><a href="#orientation">Вернуться вверх, к&nbsp;&laquo;Ориентируемся на&#8230;&raquo;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://home.edstudio.net.ru/2009/06/compiling-qt-library-under-windows-os-with-support-for-phonon/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Халява от Canonical</title>
		<link>http://home.edstudio.net.ru/2009/06/free-from-canonical/</link>
		<comments>http://home.edstudio.net.ru/2009/06/free-from-canonical/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 12:23:47 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Решения]]></category>
		<category><![CDATA[*ubuntu]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ОСи]]></category>
		<category><![CDATA[халява]]></category>

		<guid isPermaLink="false">http://home.edstudio.net.ru/?p=178</guid>
		<description><![CDATA[Вот, ко&#160;мне пришёл 2-ой пакет с&#160;Свободным Программным Обеспечением от&#160;Canonical. В первом пакете я&#160;заказал kUbuntu&#160;&#8212; дистрибутив linux с&#160;оконным менеджером KDE4. Вторым пакетом мою коллекцию пополнили дистрибутивы Ubuntu&#160;&#8212; дистрибутив linux с&#160;оконным менеджером GNOME и&#160;Ubuntu Server&#160;&#8212; дистрибутив linux для серверных станций. Впринципе, можно не&#160;говорить, что каждая из&#160;этих операционных систем абсолютно бесплатная, и&#160;что Вы&#160;можете её&#160;скачать на&#160;сайте или закачать по&#160;почте [...]]]></description>
			<content:encoded><![CDATA[<p>Вот, ко&nbsp;мне пришёл 2-ой пакет с&nbsp;Свободным Программным Обеспечением от&nbsp;<a href="http://www.canonical.com/" title="Canonical Ltd." target="_blank">Canonical</a>.</p>
<p>В первом пакете я&nbsp;заказал <a href="http://www.kubuntu.org/" title="kUbuntu" tearget="_blank">kUbuntu</a>&nbsp;&#8212; дистрибутив linux с&nbsp;оконным менеджером <a href="http://www.kde.org/" title="K Desktop Envirement" target="_blank">KDE4</a>.</p>
<p>Вторым пакетом мою коллекцию пополнили дистрибутивы <a href="http://www.ubuntu.com/products/WhatIsUbuntu/desktopedition" title="Ubuntu Desktop Edition" target="_blank">Ubuntu</a>&nbsp;&#8212; дистрибутив linux с&nbsp;оконным менеджером <a href="http://www.gnome.org/" title="GNOME: The Free Software Desktop Project" target="_blank">GNOME</a> и&nbsp;<a href="http://www.ubuntu.com/products/WhatIsUbuntu/serveredition" title="Ubuntu Server Edition" target="_blank">Ubuntu Server</a>&nbsp;&#8212; дистрибутив linux для серверных станций.</p>
<p><span id="more-178"></span></p>
<p>Впринципе, можно не&nbsp;говорить, что каждая из&nbsp;этих операционных систем абсолютно бесплатная, и&nbsp;что Вы&nbsp;можете её&nbsp;скачать на&nbsp;сайте или закачать по&nbsp;почте с&nbsp;помощью бесплатной услуги ShipIt (ссылки на&nbsp;страницы проекта я&nbsp;давать не&nbsp;буду, Вы&nbsp;сможете и&nbsp;так легко найти их&nbsp;на&nbsp;сайте интересующего Вас дистрибутива).</p>
<p>Сами диски:</p>

<a href='http://home.edstudio.net.ru/2009/06/free-from-canonical/ubuntu-cover/' title='Ubuntu Desktop Edition: Обложка'><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/ubuntu-cover.jpg" class="attachment-thumbnail" alt="Ubuntu Desktop Edition: Обложка" title="Ubuntu Desktop Edition: Обложка" /></a>
<a href='http://home.edstudio.net.ru/2009/06/free-from-canonical/ubuntu-inside/' title='Ubuntu Desktop Edition: Разворот'><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/ubuntu-inside.jpg" class="attachment-thumbnail" alt="Ubuntu Desktop Edition: Разворот" title="Ubuntu Desktop Edition: Разворот" /></a>
<a href='http://home.edstudio.net.ru/2009/06/free-from-canonical/ubuntu-cd/' title='Ubuntu Desktop Edition: Диск'><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/ubuntu-cd.jpg" class="attachment-thumbnail" alt="Ubuntu Desktop Edition: Диск" title="Ubuntu Desktop Edition: Диск" /></a>
<a href='http://home.edstudio.net.ru/2009/06/free-from-canonical/ubuntu-server-cover/' title='Ubuntu Server Edition: Обложка'><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/ubuntu-server-cover.jpg" class="attachment-thumbnail" alt="Ubuntu Server Edition: Обложка" title="Ubuntu Server Edition: Обложка" /></a>
<a href='http://home.edstudio.net.ru/2009/06/free-from-canonical/ubuntu-server-inside/' title='Ubuntu Server Edition: Разворот'><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/ubuntu-server-inside.jpg" class="attachment-thumbnail" alt="Ubuntu Server Edition: Разворот" title="Ubuntu Server Edition: Разворот" /></a>
<a href='http://home.edstudio.net.ru/2009/06/free-from-canonical/ubuntu-server-cd/' title='Ubuntu Server Edition: Диск'><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/ubuntu-server-cd.jpg" class="attachment-thumbnail" alt="Ubuntu Server Edition: Диск" title="Ubuntu Server Edition: Диск" /></a>
<a href='http://home.edstudio.net.ru/2009/06/free-from-canonical/kubuntu-cover/' title='kUbuntu: Обложка'><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/kubuntu-cover.jpg" class="attachment-thumbnail" alt="kUbuntu: Обложка" title="kUbuntu: Обложка" /></a>
<a href='http://home.edstudio.net.ru/2009/06/free-from-canonical/kubuntu-inside/' title='kUbuntu: Разворот'><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/kubuntu-inside.jpg" class="attachment-thumbnail" alt="kUbuntu: Разворот" title="kUbuntu: Разворот" /></a>
<a href='http://home.edstudio.net.ru/2009/06/free-from-canonical/kubuntu-cd/' title='kUbuntu: Диск'><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/kubuntu-cd.jpg" class="attachment-thumbnail" alt="kUbuntu: Диск" title="kUbuntu: Диск" /></a>
<a href='http://home.edstudio.net.ru/2009/06/free-from-canonical/bonus/' title='Бонусы: наклейки с логотипом Ubuntu (4 штуки)'><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/bonus.jpg" class="attachment-thumbnail" alt="Бонусы: наклейки с логотипом Ubuntu (4 штуки)" title="Бонусы: наклейки с логотипом Ubuntu (4 штуки)" /></a>

<p>P.S.: собственно, я&nbsp;и&nbsp;пост создал чтобы обложки показать. На&nbsp;мой взгляд они достаточно красивые <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://home.edstudio.net.ru/2009/06/free-from-canonical/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Web сервер на Windows</title>
		<link>http://home.edstudio.net.ru/2009/06/web-server-on-windows/</link>
		<comments>http://home.edstudio.net.ru/2009/06/web-server-on-windows/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 13:46:16 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Решения]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[ОСи]]></category>
		<category><![CDATA[разработка]]></category>

		<guid isPermaLink="false">http://home.edstudio.net.ru/?p=114</guid>
		<description><![CDATA[Поставить web сервер на&#160;винду дома может понадобиться в&#160;разных случаях. Например Вы&#160;захотели устроить дома импровизированный Дата Центр. Мало вероятно, но&#160;возможно. Правда, личто я&#160;бы доверил такой сервер UNIX-системе. Или&#160;же Вам понадобился сервер для разработки чего-либо. Чтож, в&#160;этой статье я&#160;опишу процесс установки связки Apache + PHP + MySQL Приготовления Чтобы что-то установить, необходимо сначало скачать это что-то. Приступим. [...]]]></description>
			<content:encoded><![CDATA[<p>Поставить web сервер на&nbsp;винду дома может понадобиться в&nbsp;разных случаях. Например Вы&nbsp;захотели устроить дома импровизированный Дата Центр. Мало вероятно, но&nbsp;возможно. Правда, личто я&nbsp;бы доверил такой сервер UNIX-системе.</p>
<p>Или&nbsp;же Вам понадобился сервер для разработки чего-либо.</p>
<p>Чтож, в&nbsp;этой статье я&nbsp;опишу процесс установки связки Apache + PHP + MySQL</p>
<p><span id="more-114"></span></p>
<h2>Приготовления</h2>
<p>Чтобы что-то установить, необходимо сначало скачать это что-то. Приступим.</p>
<ol>
<li>Apache версии 2.2&nbsp;с&nbsp;поддержкой шифрования я&nbsp;возьму <a href="http://httpd.apache.org/download.cgi" title="Apache HTTP Server" target="_blank">здесь</a>. <span style="font-size: 75%; color: gray;">Win32&nbsp;Binary including OpenSSL 0.9.8i (MSI Installer)</span></li>
<li>PHP версии 5.2.9&nbsp;возьмём <a href="http://www.php.net/downloads.php" title="PHP 5.2.9" target="_blank">здесь</a>. <span style="font-size: 75%; color: gray;">Windows Binaries Installer</span></li>
<li>MySQL версии 5.1.35&nbsp;взяли <a href="http://dev.mysql.com/downloads/mysql/5.1.html#win32" title="MySQL Community Server" target="_blank">тут</a>. <span style="font-size: 75%; color: gray;">Windows Essentials (x86)</span></li>
</ol>
<p>Вроде больше ничего нам не&nbsp;нужно.</p>
<h2>Установка Apache HTTP Server</h2>
<p>Как всегда, первыми окнами визарда установки видим приветствие оного визарда и&nbsp;лицензионное соглашение&#8230;</p>
<p>Далее идёт страница настройки домена, сервера, и&nbsp;адреса электронной почты администратора.</p>
<p>Для &laquo;домашнего&raquo; использования логично вписать доменное имя и&nbsp;имя сервера как <strong>localhost</strong>. Адрес почты администратора&nbsp;&#8212; как хотите, я&nbsp;указал свой <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Также предлогается выбрать режим работы сервера и&nbsp;порт для подключения: для всех пользователей (с&nbsp;<strong>80-ым портом</strong>) и&nbsp;добавлением в&nbsp;системные службы (с&nbsp;<strong>автоматическим запуском</strong> при загрузке системы) или только для текущего пользователя (с&nbsp;<strong>8080-ым портом</strong>) и&nbsp;<strong>ручным запуском</strong>.</p>
<div id="attachment_133" class="wp-caption aligncenter" style="width: 514px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/apache-0.png" alt="Apache HTTP Server: имя домена и сервера, адрес админа" title="Apache HTTP Server: имя домена и сервера, адрес админа" width="504" height="388" class="size-full wp-image-133" /><p class="wp-caption-text">Apache HTTP Server: имя домена и сервера, адрес админа</p></div>
<p>Далее предлогается выбрать тип устоновки: полный или пользовательский (собственно, ничего интерестного. Я&nbsp;взял пользовательскую устновку только чтобы выкинуть оттуда документацию).</p>
<p>Если брать пользовательскую установку, то&nbsp;менять адрес установки надо на&nbsp;странице с&nbsp;выбором компонентов. Для полной установки&nbsp;&#8212; появится отдельная страничка визарда.</p>
<p>Мне удобно чтобы всё было в&nbsp;одном месте. Для этого я&nbsp;установил адрес установки Apache <em>C:\Web-Server\Apache2.2\</em></p>
<p>Всё, теперь далее, далее, далее&#8230; и&nbsp;готово. После установщик сам запустит сервер.</p>
<p>Проверить его работу можно, введя в&nbsp;адресной строке браузера <a href="http://localhost/" target="_black" title="«Домашний» сервер">localhost</a>. Если всё хорошо&nbsp;&#8212; увидем надпись &laquo;It&nbsp;works!&raquo;</p>
<p>Также, в&nbsp;трее появился значёк приложения &laquo;Apache Service Monitor&raquo;. С&nbsp;его помощью можно управлять сервером: запускать, останавливать, перезапускать и&nbsp;др.</p>
<div id="attachment_141" class="wp-caption aligncenter" style="width: 442px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/apache-1.png" alt="Apache Service Monitor: иконка в трее." title="Apache Service Monitor: иконка в трее." width="432" height="59" class="size-full wp-image-141" /><p class="wp-caption-text">Apache Service Monitor: иконка в трее.</p></div><br />
<div id="attachment_139" class="wp-caption aligncenter" style="width: 541px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/apache-2.png" alt="Apache Service Monitor: окно приложения." title="Apache Service Monitor: окно приложения." width="531" height="338" class="size-full wp-image-139" /><p class="wp-caption-text">Apache Service Monitor: окно приложения.</p></div>
<p>Файл конфигурации находится по&nbsp;адресу <em>path\to\Apache2.2\conf\httpd.conf</em>, где <em>path\to\Apache2.2</em>&nbsp;&#8212; папка Apache.</p>
<p>Если хотите хранить файлы сервера (скрипты движков и&nbsp;т.&nbsp;д.) в&nbsp;другом месте, то&nbsp;нужно изменить значение переменной <strong>DocumentRoot</strong>, указав полный новый адрес.</p>
<h2>Установка PHP5</h2>
<p>Перед установкой PHP5&nbsp;следует остановить сервис Apache, что можно сделать через уже знакомый Apache Service Monitor.</p>
<p>Установщик PHP5&nbsp;также, как и&nbsp;установщик Apache, приветсвует нас, показывает лицензионное соглашение с&nbsp;просьбой принять его и&nbsp;даёт возможность изменить папку установки (я&nbsp;отправил его в&nbsp;<em>C:\Web-Server\PHP5</em>).</p>
<p>Следующая страничка визорда&nbsp;&#8212; страничка выбора модуля для спаривания PHP5&nbsp;с&nbsp;web-сервером. Поскольку устанавливали Apache версии 2.2, то&nbsp;выбираем соответствующий модуль: <strong>Apache 2.2.x Module</strong>.</p>
<div id="attachment_147" class="wp-caption aligncenter" style="width: 509px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/php-0.png" alt="Установка PHP5: выбор модуля для web-сервера." title="Установка PHP5: выбор модуля для web-сервера." width="499" height="392" class="size-full wp-image-147" /><p class="wp-caption-text">Установка PHP5: выбор модуля для web-сервера.</p></div>
<p>Далее&nbsp;&#8212; просят ввести адрес до&nbsp;файла конфигурации Apache (чтобы установщик сам спарил их). Вводим что-то типа <em>path\to\Apache2.2\conf\</em>, где, естественно, <em>path\to\Apache2.2</em>&nbsp;&#8212; папка Apache.</p>
<div id="attachment_150" class="wp-caption aligncenter" style="width: 509px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/php-1.png" alt="Установка PHP5: выбор адреса папки конфигурации Apache." title="Установка PHP5: выбор адреса папки конфигурации Apache." width="499" height="392" class="size-full wp-image-150" /><p class="wp-caption-text">Установка PHP5: выбор адреса папки конфигурации Apache.</p></div>
<p>Далее&nbsp;&#8212; самое нужное: выбор конмпонентов установки. Тут, наверно стоит отметить, что надо выбрать модуль расширения для MySQL. Остальные&nbsp;&#8212; что необходимо.</p>
<div id="attachment_152" class="wp-caption aligncenter" style="width: 509px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/php-2.png" alt="Установка PHP5: выбор дополнительных модулей." title="Установка PHP5: выбор дополнительных модулей." width="499" height="392" class="size-full wp-image-152" /><p class="wp-caption-text">Установка PHP5: выбор дополнительных модулей.</p></div>
<p>Всё, далее&#8230; готово!</p>
<p>Установщий PHP5&nbsp;вписал в&nbsp;файл конфигурации Apache информацию, что PHP5&nbsp;тоже имеет место быть. Найти эти строки можно в&nbsp;самом конце файла. Увидите что-то типа:</p>
<blockquote><p><code>#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL<br />
PHPIniDir "C:/Web-Server/PHP5/"<br />
LoadModule php5_module "C:/Web-Server/PHP5/php5apache2_2.dll"<br />
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL</code></p></blockquote>
<p>Теперь надо добавить <em>index.php</em> в&nbsp;файл конфигурации Apache в&nbsp;секции <em>IfModule dir_module</em> чтобы файлы <em>index.php</em> считались &laquo;главными&raquo; в&nbsp;папке и&nbsp;их&nbsp;результат выдавался при обращении к&nbsp;папке. Извените за&nbsp;мой французский. (чтобы при обращении к,&nbsp;скажем, http://localhost/anywhere/ выдовался результат выполнения <em>index.php</em>, размещённого в&nbsp;этом каталоге, а&nbsp;не&nbsp;список файлов и&nbsp;папок этого каталога)</p>
<p>Перезапускаем Apache.</p>
<p>Если что&nbsp;&#8212; файл конфигурации PHP5&nbsp;находится в&nbsp;корне папки и&nbsp;имеет имя <em>php.ini</em>.</p>
<p>Теперь наверно стоит проверить, а&nbsp;работает&nbsp;ли PHP? Для этого нужно выполнить какой-нибудь php&#8217;шный скрипт. Например&nbsp;&#8212; php info. Создадим файл <em>info.php</em> в&nbsp;каталоге документов сайта (по&nbsp;умолчанию, если не&nbsp;меняли,&nbsp;&#8212; это <em>path\to\Apache2.2\htdocs\</em>) с&nbsp;1&nbsp;строкой содержимого:</p>
<blockquote><p><code>&lt;?php phpinfo(); ?></code></p></blockquote>
<p>Не забудем запустить сервер Apache.</p>
<p>Теперь попытаемся выполнить наш скрипт <em>info.php</em>, перейдя в&nbsp;браузере по&nbsp;адресу <a href="http://localhost/info.php" target="_blank">http://localhost/info.php</a>. Тут очевидно работает PHP или нет <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Установка MySQL 5.1</h2>
<p>Установщик приветствует, но&nbsp;лицензию не&nbsp;показывает <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Сдесь сразу предлогают выбрать тип установки: полная, совсем полная (вообще всё, что впихнули в&nbsp;инсталлер) или пользовательская. Выбиру пользовательскую, чтобы иметь шанс изменить адрес устновки.</p>
<p>Самое интерестное&nbsp;&#8212; можно выбрать папку, в&nbsp;которой будут храниться сами базы данных <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Главное&nbsp;&#8212; не&nbsp;прошляпить этот момен. На&nbsp;странице выбора компонентов надо ткнуть MySQL Server Datafiles и&nbsp;тогда в&nbsp;нижней части окна появится возможность изменить адрес файлов баз. Для выбора адреса установки самого сервера&nbsp;&#8212; ткнуть в&nbsp;MySQL Server.</p>
<div id="attachment_159" class="wp-caption aligncenter" style="width: 514px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/mysql-0.png" alt="Установка MySQL: выбор директории файлов БД." title="Установка MySQL: выбор директории файлов БД." width="504" height="386" class="size-full wp-image-159" /><p class="wp-caption-text">Установка MySQL: выбор директории файлов БД.</p></div>
<p>Теперь далее.. готово. Теперь установщик что-то рекламирует. Жмём опять далее и&nbsp;видим другие параметры конфигурации. Он&nbsp;предлогает настроить сервер сейчас и&nbsp;добавить его в&nbsp;системные службы. Не&nbsp;вижу причин ему мешать, ок&nbsp;:)</p>
<p>Давайте детльную настройку&#8230; Визард предлогает выполнить настройку сервера под разные нужды: для разработчика, для сервера (как домашний Дата Центр) и&nbsp;для выделенного сервера (имеется ввиду, что на&nbsp;этой машине больше никто и&nbsp;ничего делать не&nbsp;будет. Будет только этот сервер баз данных, что позволит ему захавать все имеющиеся ресурсы компьютера. При неодходимости, естественно). Здесь выбор за&nbsp;вами.</p>
<div id="attachment_161" class="wp-caption aligncenter" style="width: 514px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/mysql-1.png" alt="Настройка MySQL: выбор конфигурации." title="Настройка MySQL: выбор конфигурации." width="504" height="386" class="size-full wp-image-161" /><p class="wp-caption-text">Настройка MySQL: выбор конфигурации.</p></div>
<p>Теперь предлогают выбрать движок баз данных. Этот выбор тоже предстоит сделать вам, так как я&nbsp;не&nbsp;знаю что от&nbsp;него хотят <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div id="attachment_162" class="wp-caption aligncenter" style="width: 514px"><img src="http://home.edstudio.net.ru/wp-content/uploads/2009/06/mysql-2.png" alt="Настройка MySQL: выбор движка БД." title="Настройка MySQL: выбор движка БД." width="504" height="386" class="size-full wp-image-162" /><p class="wp-caption-text">Настройка MySQL: выбор движка БД.</p></div>
<p>Теперь надо сделать ещё немного настроек, в&nbsp;том чиле установить максимальное количество активных запросов на&nbsp;сервер БД,&nbsp;настройки кодировок, настройка запуска сервера (автоматически запускаться с&nbsp;системой или нет) и&nbsp;наверно самое главное: ввести пароль пользователя <strong>root</strong> базы данных! Всё, Execute! Теперь установщик настроет и&nbsp;запустит сервер.</p>
<p>Для правильного &laquo;спаривания&raquo; PHP и&nbsp;MySQL необходимо скопировать библиотеку <em>libmysql.dll</em> из&nbsp;каталога PHP в&nbsp;папку <em>C:\WINDOWS</em>.</p>
<p>Перезапускаем Apache.</p>
<p>Для проверки работы сервера Баз Данных нужно создать проверочный скрипт с&nbsp;таким содержимым:</p>
<blockquote><p><code>&lt;?php<br />
  $dblocation = "127.0.0.1";<br />
  $dbname = "test";<br />
  $dbuser = "root";<br />
  $dbpasswd = "< ваш_пароль_пользователя_root>";</p>
<p>  $dbcnx = @mysql_connect($dblocation, $dbuser, $dbpasswd);<br />
  if (!$dbcnx) {<br />
    echo "К сожалению, сервер MySQL не доступен";<br />
    exit();<br />
  }<br />
  if (!@mysql_select_db($dbname,$dbcnx) ) {<br />
    echo "К сожалению, база данных не доступна";<br />
    exit();<br />
  }<br />
  $ver = mysql_query("SELECT VERSION()");<br />
  if(!$ver) {<br />
    echo "Ошибка в запросе";<br />
    exit();<br />
  }<br />
  echo mysql_result($ver, 0);<br />
?></code></p></blockquote>
<p>Вроде теперь всё. Пользуйтесь на&nbsp;здоровье <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://home.edstudio.net.ru/2009/06/web-server-on-windows/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Графический планшет Genius G-Pen 450 vs. Kubuntu 8.10</title>
		<link>http://home.edstudio.net.ru/2009/01/genius-g-pen-450-vs-kubuntu-810/</link>
		<comments>http://home.edstudio.net.ru/2009/01/genius-g-pen-450-vs-kubuntu-810/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 18:43:28 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Решения]]></category>
		<category><![CDATA[*ubuntu]]></category>
		<category><![CDATA[оборудование]]></category>

		<guid isPermaLink="false">http://home.edstudio.net.ru/?p=25</guid>
		<description><![CDATA[Итак, наверное, раз вы это читаете, то столкнулись с такой же проблемой, как и я. У вас на линуксе (мы будем рассматривать конкретно Kubuntu 8.10 Intrepid Ibex) не хочет работать графический планшет Genius G-Pen 450. Были перерыты тонны электронных страниц в поисках способа, который поможет решить эту проблемы. Долго-долго искав, вы не могли не наткнутся на драйвер wizardpen. Но он у вас работать не стал. Обидно однако. Планшет — это не дёшево, а вот поработать все же хочется. Ну что же, [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="Genius G-Pen 450" src="http://img.4pk.ru/196642.jpg" title="Genius G-Pen 450" width="200" height="150" align="right" />Итак, наверное, раз вы это читаете, то столкнулись с такой же проблемой, как и я. У вас на линуксе (мы будем рассматривать конкретно Kubuntu 8.10 Intrepid Ibex) не хочет работать графический планшет Genius G-Pen 450. Были перерыты тонны электронных страниц в поисках способа, который поможет решить эту проблемы. Долго-долго искав, вы не могли не наткнутся на драйвер wizardpen. Но он у вас работать не стал. Обидно однако. Планшет — это не дёшево, а вот поработать все же хочется.</p>
<p>Ну что же, я тоже долго мучился и всё-таки у меня получилось настроить его <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  И я этому очень сильно рад <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Я расскажу вам как это сделать.</p>
<p><span id="more-25"></span></p>
<p>Драйвер wizardpen, как выяснилось, работает. Его просто надо настроить немного по-другому, не через конфиг /etc/X11/xorg.conf, как я пытался сначало. Так не получится. Тогда я решил не читать все эти неадыкватные мануалы, которыми меня кормили гугл и остальные поисковики, и почитать лучше «ридмишки» и, при возможности «маны». На базе всего прочтённого я смог составить пошаговую инструкцию по установке и настройке планшета в Kubuntu. Итак, вот он, встречайте <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Установка графического планшета Genius G-Pen 450 в операционной системе Kubuntu Linux 8.10 Intrepid Ibex.</strong></p>
<ol>
<li>Нам понадобятся исходные коды драйвера wizardpen, которые мы будем бережно и аккуратно собирать. Так что нам нужно скачать их из репозитория. Мы устанавливаем системы subversion (если таковой ещё в системе не имеется) и скачиваем исходники:<br />
<blockquote><p>sudo apt-get install subversion<br />
svn co http://svn.xp-dev.com/svn/felixleong_wizardpendrv/trunk/ wizardpen</p></blockquote>
</li>
<li>Для сборки необходимы dev-библиотеки X-сервера, которые мы тоже устанавливаем (ещё, если отстутсятвует, нужно установить g++):<br />
<blockquote><p>sudo apt-get install xutils libx11-dev libxext-dev build-essential xautomation xinput xserver-xorg-dev</p></blockquote>
</li>
<li>Теперь можно начинать сборку <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Здесь нам понадобится дополнительный флаг, про который рассказано в файле INSTALL, находящимся в папке, скаченной из репозитория. Собираем и устанавливаем:<br />
<blockquote><p>cd wizardpen<br />
./configure -with-xorg-module-dir=/usr/lib/xorg/modules<br />
make<br />
sudo make install</p></blockquote>
</li>
<li>Проверяем, установились ли драйвера:<br />
<blockquote><p>ls /usr/lib/xorg/modules/input/wizardpen_drv.*</p></blockquote>
<p>Если всё хорошо, то ls вернёт нам такое:</p>
<blockquote><p>/usr/lib/xorg/modules/input/wizardpen_drv.la /usr/lib/xorg/modules/input/wizardpen_drv.so</p></blockquote>
</li>
<li>Создаём файлик<br />
<blockquote><p>/etc/hal/fdi/policy/99-x11-wizardpen.fdi</p></blockquote>
<p>с таким содержанием (это конфиг, который сделал я на базе примера из файла README-XOrgConfig, лежащим рядом с файлом INSTALL):</p>
<blockquote><p><code>&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;<br />
&lt;deviceinfo version="0.2"&gt;<br />
&lt;device&gt;<br />
&lt;!-- Имя устройства (здесь - для Genius G-Pen 450) --&gt;<br />
&lt;match key="info.product" contains="UC-LOGIC Tablet WP5540U"&gt;<br />
&lt;!-- Имя драйвера. Не трогать. --&gt;<br />
&lt;merge key="input.x11_driver" type="string"&gt;wizardpen&lt;/merge&gt;<br />
&lt;!-- В моём понимании - это что-то типа активазии отклика системы на действия --&gt;<br />
&lt;!-- с планшетом (докоснулись пером, провели им, кнопку нажали, etc.) --&gt;<br />
&lt;!-- Короче руками и другими частями тела не лапать --&gt;<br />
&lt;merge key="input.x11_options.SendCoreEvents" type="string"&gt;true&lt;/merge&gt;</p>
<p>&lt;!-- Настройки планшета --&gt;<br />
&lt;merge key="input.x11_options.TopX" type="string"&gt;1&lt;/merge&gt;<br />
&lt;merge key="input.x11_options.TopY" type="string"&gt;1&lt;/merge&gt;<br />
&lt;merge key="input.x11_options.BottomX" type="string"&gt;32768&lt;/merge&gt;<br />
&lt;merge key="input.x11_options.BottomY" type="string"&gt;32768&lt;/merge&gt;<br />
&lt;merge key="input.x11_options.MaxX" type="string"&gt;32768&lt;/merge&gt;<br />
&lt;merge key="input.x11_options.MaxY" type="string"&gt;32768&lt;/merge&gt;</p>
<p>&lt;!-- Чувствительность к силе нажатия пера --&gt;<br />
&lt;merge key="input.x11_options.TopZ" type="string"&gt;60&lt;/merge&gt;<br />
&lt;merge key="input.x11_options.BottomZ" type="string"&gt;1023&lt;/merge&gt;<br />
&lt;/match&gt;<br />
&lt;/device&gt;<br />
&lt;/deviceinfo&gt;</code></p></blockquote>
<p>Здесь, хоть и не очень полезные, но мои комментарии <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Настоятельно рекомендую не трогать секцию, помеченную у меня как «Настройки планшета». При моей конфигурации курсор никуда не пропадает и задействуется вся рабочая область планшета.<br />
PS я создал этот файл через nano, открыв его (он тогда ещё не существовал) и сохранив в него этот конфиг.</li>
<li>Вроде всё. Перезагружаемся. Всё должно работать.</li>
</ol>
<p>Прошу не тырить отсюда это руководство. Просто гораздо удобнее, когда всё в одном месте и комменты и поправки не приходится собирать по всему интернету.</p>
<p>А если всё-таки стырите — ссылка обязательна.</p>
]]></content:encoded>
			<wfw:commentRss>http://home.edstudio.net.ru/2009/01/genius-g-pen-450-vs-kubuntu-810/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Установка Psi из GIT (*Ubuntu)</title>
		<link>http://home.edstudio.net.ru/2009/01/install-psi-from-git-ubuntu/</link>
		<comments>http://home.edstudio.net.ru/2009/01/install-psi-from-git-ubuntu/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 17:54:26 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Решения]]></category>
		<category><![CDATA[*ubuntu]]></category>
		<category><![CDATA[jabber]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://home.edstudio.net.ru/?p=11</guid>
		<description><![CDATA[Psi&#160;&#8212; программа для мгновенного обмена сообщениями посредством сети Интернет по&#160;протоколу Jabber. Программа разрабатывается с&#160;использованием открытых исходных кодов и&#160;распространяется под лицензией GPL. Использует библиотеку Qt4&#160;(версия 0.10&#160;более раннюю Qt3), благодаря чему доступна для разных операционных систем. Материал из&#160;Wikipedia. Инструкция по&#160;установке Psi: Устанавливаем GIT sudo apt-get install git-core Скачиваем Psi из&#160;репозитория git clone git://git.psi-im.org/psi.git cd&#160;psi git submodule init [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Psi IM" href="http://psi-im.org" target="_blank"><em><img class="alignright" title="Psi IM" src="http://forum.psi-im.org/unb_lib/designs/psi1/img/psi-logo.png" alt="Psi IM" width="153" height="153" />Psi</em></a>&nbsp;&#8212; программа для мгновенного обмена сообщениями посредством сети Интернет по&nbsp;протоколу Jabber.</p>
<p>Программа разрабатывается с&nbsp;использованием открытых исходных кодов и&nbsp;распространяется под лицензией GPL. Использует библиотеку <a title="Nokia Qt Software" href="http://trolltech.com" target="_blank">Qt4</a>&nbsp;(версия 0.10&nbsp;более раннюю Qt3), благодаря чему доступна для разных операционных систем.</p>
<p>Материал из&nbsp;<a title="Wikipedia — Psi" href="http://ru.wikipedia.org/wiki/Psi" target="_blank">Wikipedia</a>.</p>
<p><span id="more-11"></span><strong>Инструкция по&nbsp;установке Psi:</strong></p>
<ol>
<li>Устанавливаем GIT
<pre class="code">sudo apt-get install git-core</pre>
</li>
<li>Скачиваем Psi из&nbsp;репозитория
<pre class="code">git clone git://git.psi-im.org/psi.git
cd&nbsp;psi
git submodule init
git submodule update</pre>
</li>
<li>Устанавливаем необходимые для сборки программы библиотеки
<pre class="code">sudo apt-get install libqt4-dev libqca2&nbsp;libqca2-dev libqca2-plugin-ossl g++</pre>
</li>
<li>Если требуется поддержка проверки орфографии&nbsp;&#8212; устанавливаем Aspell (не&nbsp;обязательно)
<pre class="code">sudo apt-get install aspell libaspell-dev aspell-ru</pre>
</li>
<li>Собираем и&nbsp;устанавливаем Psi
<pre class="code">./configure
make
sudo make install</pre>
</li>
</ol>
<p><strong>Инструкция по&nbsp;обновлению Psi:</strong></p>
<ol>
<li>Переходим в&nbsp;каталог Psi и&nbsp;очищаем предыдущую сборку
<pre class="code">cd psi
make distclean</pre>
</li>
<li>Обновляем репозиторий и&nbsp;модули
<pre class="code">git pull
git submodule update</pre>
</li>
<li>Пересобираем и&nbsp;устанавливаем
<pre class="code">./configure
make
sudo make install</pre>
</li>
</ol>
<p>Приятной работы <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://home.edstudio.net.ru/2009/01/install-psi-from-git-ubuntu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
