<?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/tag/os/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>Обидно</title>
		<link>http://home.edstudio.net.ru/2009/06/pity/</link>
		<comments>http://home.edstudio.net.ru/2009/06/pity/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 17:55:24 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Ни о чём]]></category>
		<category><![CDATA[Проблемы]]></category>
		<category><![CDATA[phonon]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[shamangrad]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[аяхз?]]></category>
		<category><![CDATA[ненавижу]]></category>
		<category><![CDATA[ОСи]]></category>
		<category><![CDATA[разработка]]></category>

		<guid isPermaLink="false">http://home.edstudio.net.ru/?p=230</guid>
		<description><![CDATA[Как&#160;же я&#160;радовался, когда смог наконец собрать Phonon. Думал, вот, напишу программку, аналогичную StreamFM, написанную моим знакомым. Нет, у&#160;меня не&#160;было желания соперничать с&#160;ним. Просто его программка написана на&#160;Python и&#160;её&#160;достаточно сложно &#171;завести&#187; под Windows. Поскольку у&#160;меня было огромное желание изучать Qt,&#160;решил что на&#160;нём и&#160;стоит писать. Как раз набраться опыта и&#160;так далее&#8230; В&#160;Qt&#160;есть медиа-фрэймворк&#160;&#8212; Phonon, являющийся частью проекта [...]]]></description>
			<content:encoded><![CDATA[<p>Как&nbsp;же я&nbsp;радовался, когда смог наконец собрать Phonon. Думал, вот, напишу программку, аналогичную <a href="http://shamangrad.net/project.php?act=view&#038;prj=streamfm" target="_blank" title="Приложение для скробблинга музыки, проигрываемой потоковыми радиостанциями.">StreamFM</a>, написанную моим знакомым. Нет, у&nbsp;меня не&nbsp;было желания соперничать с&nbsp;ним. Просто его программка написана на&nbsp;<a href="http://www.python.ru/" target="_blank" title="Язык программирования Python">Python</a> и&nbsp;её&nbsp;достаточно сложно &laquo;завести&raquo; под Windows.</p>
<p>Поскольку у&nbsp;меня было огромное желание изучать Qt,&nbsp;решил что на&nbsp;нём и&nbsp;стоит писать. Как раз набраться опыта и&nbsp;так далее&#8230; В&nbsp;Qt&nbsp;есть медиа-фрэймворк&nbsp;&#8212; <a href="http://phonon.kde.org/" target="_blank">Phonon</a>, являющийся частью проекта <a href="http://kde.org" target="_blank">KDE</a>. Как раз его и&nbsp;предполагалось использовать в&nbsp;качестве основы всего проекта.</p>
<p>Сам по&nbsp;себе, Phonon является чем-то типа &laquo;моста&raquo; между разработчиком и&nbsp;медиа-движком. Он&nbsp;просто предоставляет удобные методы по&nbsp;работе с&nbsp;ним. На&nbsp;каждой платформе он&nbsp;использует разные &laquo;движки&raquo;: на&nbsp;Linux&nbsp;&#8212; GStreamer, на&nbsp;Windows&nbsp;&#8212; DirectX и&nbsp;DirectShow, на&nbsp;Mac OS&nbsp;X&nbsp;&#8212; QuickTime 7.</p>
<p>Вот как раз именно на&nbsp;этом моменте случилось самое плохое: Phonon не&nbsp;может нормально работать под Windows, в&nbsp;то&nbsp;время как на&nbsp;Linux (при использовании GStreamer) всё работает замечательно.</p>
<p>Короче, мою &laquo;хотелку&raquo; обломали на&nbsp;корню <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Сказать что я&nbsp;расстроен&nbsp;&#8212; не&nbsp;сказать ничего.</p>
<p><strong>UPD:</strong> Ах&nbsp;да,&nbsp;совсем забыл сказать, сейчас проект продолжает развиваться под Linux. Называется программка Qawaii и&nbsp;найти её&nbsp;можно <a href="http://shamangrad.net/Qawaii.prj" target="_blank" title="Qt-based streaming radio player">здесь</a>. О&nbsp;совместимости с&nbsp;Mac OS&nbsp;X:&nbsp;неизвестно.</p>
<p>Также проект Qawaii мне более не&nbsp;принадлежит. Главным и,&nbsp;скорее всего единственным (к&nbsp;сожалению), разработчиком теперь является <a href="http://the1st.net.ru" target="_blank">WST</a>.</p>
<p><strong>UPD2:</strong> Гавно.</p>
]]></content:encoded>
			<wfw:commentRss>http://home.edstudio.net.ru/2009/06/pity/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>Чем жертвовать?</title>
		<link>http://home.edstudio.net.ru/2009/01/than-toendow/</link>
		<comments>http://home.edstudio.net.ru/2009/01/than-toendow/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 20:13:36 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Проблемы]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[аяхз?]]></category>
		<category><![CDATA[ОСи]]></category>

		<guid isPermaLink="false">http://home.edstudio.net.ru/?p=3</guid>
		<description><![CDATA[Что выбрать? И&#160;кто виноват?.. А&#160;этого никто не&#160;знает. И&#160;опять я&#160;возвращаюсь к&#160;вопросу о&#160;выборе Операционной Системы. Первый вопрос: &#171;Чем жертвовать? Производительностью, свободным временем или ресурсами?&#187; Ну&#160;чтож, кому как. Наверно надо заметить, что сначало надо пожертвовать свободным временем и&#160;настроить всё так, чтобы ничего не&#160;тормозило Согласен Но,&#160;увы, не&#160;в&#160;этом случае. Если&#160;бы всё было так просто, то&#160;я&#160;бы не&#160;написалэто и&#160;сиделбы на&#160;кУбунте. Никого не&#160;трогал [...]]]></description>
			<content:encoded><![CDATA[<p><a href="null"><img class="alignright" title="Windows vs. Linux vs. Mac" src="http://img204.imageshack.us/img204/4108/applevswindowsvslinuxxm6.jpg" alt="Что выбрать?" width="206" height="191" /></a>Что выбрать? И&nbsp;кто виноват?.. А&nbsp;этого никто не&nbsp;знает.</p>
<p>И&nbsp;опять я&nbsp;возвращаюсь к&nbsp;вопросу о&nbsp;выборе Операционной Системы.</p>
<p>Первый вопрос: &laquo;Чем жертвовать? Производительностью, свободным временем или ресурсами?&raquo; Ну&nbsp;чтож, кому как. Наверно надо заметить, что сначало надо пожертвовать свободным временем и&nbsp;настроить всё так, чтобы ничего не&nbsp;тормозило <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' />  Но,&nbsp;увы, не&nbsp;в&nbsp;этом случае. Если&nbsp;бы всё было так просто, то&nbsp;я&nbsp;бы не&nbsp;написалэто и&nbsp;сиделбы на&nbsp;кУбунте. Никого не&nbsp;трогал и&nbsp;продолжал заниматся еблей с&nbsp;файлами конфигурации и&nbsp;др.&nbsp;не&nbsp;сильно этому возмущаясь, но&nbsp;часто прибегая к&nbsp;поддержке гугла.</p>
<p>Итак, приступим. Что мы&nbsp;имеем? А&nbsp;имеем мы&nbsp;на&nbsp;выбор:</p>
<ul>
<li>Microsoft Windows XP</li>
<li>Microsoft Windows Vista</li>
<li>Cononical GNU/Linux kUbuntu или другую</li>
<li>Apple Mac OS&nbsp;X&nbsp;Leopard.</li>
</ul>
<p>На&nbsp;вид все выглядят хорошо <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  А&nbsp;что в&nbsp;реальности?</p>
<p><span id="more-3"></span><br />
Начнём с&nbsp;<strong>Microsoft Windows XP</strong></p>
<p>Начнём с плюсов:</p>
<ul>
<li>быстрая</li>
<li>ест мало ресурсов</li>
<li>приятный и&nbsp;достаточно удобный интерфейс</li>
</ul>
<p>и&nbsp;безусловно</p>
<ul>
<li>на ней идёт Photoshop!</li>
</ul>
<p>Минусы:</p>
<ul>
<li>колосальное количиство заплаток</li>
<li>вирусы, траяны, кейлогеры, etc. это Windows <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> </li>
</ul>
<p>Хватит с&nbsp;неё. Проехали. Если ничего больше не&nbsp;подойдёт, то&nbsp;оставим её.<br />
Следующим посмотрим в&nbsp;сторону <strong>Microsoft Windows Vista.</strong></p>
<p>Ещё одно творение о&nbsp;Microsoft. Более новое.</p>
<p>Плюсы? Плюсы&#8230;</p>
<ul>
<li>На ней тоже идёт Photoshop <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>она более защищённая, нежели ХР</li>
</ul>
<p>Вот, наверное и&nbsp;всё. Я&nbsp;не&nbsp;геймер&nbsp;&#8212; производительность игр смотреть не&nbsp;буду.</p>
<p>Минусы. Здесь можно вдоволь отыграться на&nbsp;творчестве Microsoft.</p>
<ul>
<li>Съедает ресурсы на&nbsp;раз</li>
<li>на &laquo;не&nbsp;новейших&raquo; компьютерах тормозит</li>
<li>перегруженое оформление</li>
<li>вирусы, траяны, кейлогеры, etc. это Windows <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> </li>
</ul>
<p>Не&nbsp;вариант. Разве что если драйвера будет лень искать и&nbsp;устанавливать.<br />
3-ий гость моих размышлений&nbsp;&#8212; <strong>Cononical GNU/Linux kUbuntu</strong>.</p>
<p>Да,&nbsp;и&nbsp;именно она, так как именно её&nbsp;я&nbsp;щас использую.</p>
<p>Линукс&nbsp;&#8212; это классно. Просто классно <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  В&nbsp;общих чертах это&nbsp;&#8212; мой выбор. Но&nbsp;нет. Поезд ушёл, а&nbsp;точнее&nbsp;&#8212; ещё не&nbsp;пришёл. Я&nbsp;занимаюсь дизайном. А&nbsp;сюда великая и&nbsp;могучая фирма Adobe ещё не&nbsp;написала Photoshop. Не&nbsp;считают нужным.</p>
<p>Не&nbsp;важно вобщем. Линукс мне не&nbsp;подходит <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  Вот, кажется и&nbsp;нашли кто виноват&#8230;</p>
<p>Напишим плюсы и&nbsp;минусы, раз написал для винды.</p>
<p>Плюсы:</p>
<ul>
<li>UNIX-based системы =&gt; отсутствие вирусов, троянов, кейлогеров, etc. в&nbsp;таком обширном количестве, которое доступно пользователям Windows</li>
<li>Open Source</li>
<li>высокая надёжность и&nbsp;стабильность системы, её&nbsp;повидение и&nbsp;всё другое зависит только от&nbsp;вас</li>
<li>огромное количество настрое��: астроить можно почти всё или чуть&nbsp;ли не&nbsp;всё</li>
<li>выбор оконных сред (KDE, Gnome, etc.)</li>
</ul>
<p>Это, наверно, основное. Достаточно много. Особенно радуют высокая надёжность и&nbsp;защищённость.</p>
<p>Минусы с&nbsp;точки зрения простого пользователя: хоть система первоначально настроена достаточно хорошо, но:</p>
<ul>
<li>подавляющее большенство настроек надо править ручками</li>
<li>малая распространённость системы и&nbsp;как следствие отсутствие таких замечательных программ как Photoshop. Зато есть аналоги</li>
</ul>
<p>Минусов, вобщем мало. Или, для знающих людей (администраторов), вообще нет, либо поправимо <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
И&nbsp;завершает нашу процессию <strong>Apple MacOS X&nbsp;Leopard.</strong></p>
<p>Мне нечего сказать. Я&nbsp;его ещё не&nbsp;видел. Сейчас качается образ. Хакинтош. Да&nbsp;простят меня в&nbsp;Apple. Я&nbsp;чисто для теста <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Я&nbsp;удалю потом. Обещаю. Диск сломаю и&nbsp;выкину. Чесно.</p>
<p>Ладно. Это мы&nbsp;сейчас устоновим и&nbsp;посмотрим что из&nbsp;этого выйдет.</p>
<p>Кстати, сразу Mac’у плюс&nbsp;&#8212; он&nbsp;сертифицированая UNIX-система <img src='http://home.edstudio.net.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://home.edstudio.net.ru/2009/01/than-toendow/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
