<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SEO+TROLLING</id>
		<title>Linuxformat - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SEO+TROLLING"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:Contributions/SEO_TROLLING"/>
		<updated>2026-05-13T13:32:06Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A7%D1%82%D0%BE_%D0%BF%D1%80%D0%BE%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%B8%D1%82_%D0%B2_%D0%98%D0%B7%D1%80%D0%B0%D0%B8%D0%BB%D0%B5%3F</id>
		<title>Что происходит в Израиле?</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A7%D1%82%D0%BE_%D0%BF%D1%80%D0%BE%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%B8%D1%82_%D0%B2_%D0%98%D0%B7%D1%80%D0%B0%D0%B8%D0%BB%D0%B5%3F"/>
				<updated>2023-10-13T04:17:20Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Интервью]]&lt;br /&gt;
&lt;br /&gt;
=California dreaming=&lt;br /&gt;
&lt;br /&gt;
: '''Джоно Бэкон''' выведывает идеальную рецептуру у двух добровольцев, стоящих за самой популярной конференцией Лос-Анджелеса — SCALE.&lt;br /&gt;
&lt;br /&gt;
 [California Dreamin’ — песня группы The Mamas &amp;amp; The Papas; по версии журнала Rolling Stone, одна из 500 величайших песен всех времен, — прим. пер.]&lt;br /&gt;
{{SEO}}&lt;br /&gt;
{{SEO}}&lt;br /&gt;
{{SEO}}&lt;br /&gt;
{{SEO}}&lt;br /&gt;
{{SEO}}&lt;br /&gt;
{{SEO}}&lt;br /&gt;
{{SEO}}&lt;br /&gt;
{{SEO}}&lt;br /&gt;
{{SEO}}&lt;br /&gt;
&lt;br /&gt;
'''В мире много конференций по открытому коду. Одни ориентированы на сообщества, другие более коммерциализованы, а третьи являют собой смесь первых и вторых, предлагая дружескую атмосферу со всеми бизнес-атрибутами. Именно такова проводимая в Лос-Анджелесе конференция Southern California Linux Expo (SCALE). Илан Рабинович [Ilan Rabinovitch] и Орв Бич [Orv Beach] занимались ее организацией с самого первого дня, и мы встретились с ними, чтобы узнать секрет ее успеха.'''&lt;br /&gt;
&lt;br /&gt;
* '''''LXF:''' Как появилась SCALE?''&lt;br /&gt;
&lt;br /&gt;
: '''Орв Бич:''' SCALE возникла из серии встреч LUGFest, проводившихся на базе Nortel в Сими-Вэлли [Simi Valley] лет 10 назад. Это были одно-двухдневные мероприятия, проходившие два раза в год. Когда Nortel свернул палатку на своей базе, LUGFest 4 насчитывал 400 посетителей, и мы уже знали, что сообщество жаждет подобного рода событий!&lt;br /&gt;
&lt;br /&gt;
: '''Илан Рабинович:''' На LUGFest’ах было очень весело, но из-за краха интернет-пузырей [компании-однодневки, разросшиеся на буме Интернет, полопались в 2000 году, – прим. пер.] мы потеряли пристанище, которое предоставлял Nortel. Став бездомными, но желая продолжать мероприятия по открытому коду в Южной Калифорнии, мы объединились со студентами Калифорнийского университета в Лос-Анджелесе (UCLA) и Университета Южной Калифорнии (USC), у которых были те же цели. Вот так SCALE появился на свет в 2002 году в Центре конференций Дэвидсона при Университете Южной Калифорнии [USC Davidson Conference Center]. Большинство наших добровольцев и со-основателей, стоявших у истоков конференции, работают над ее организацией и по сей день.&lt;br /&gt;
&lt;br /&gt;
* '''''LXF:''' Какова целевая аудитория SCALE?''&lt;br /&gt;
&lt;br /&gt;
: '''ОБ:''' Наша демография широка и разнообразна. Мы стараемся охватывать разные целевые аудитории, и это – своего рода нескончаемый вызов.&lt;br /&gt;
&lt;br /&gt;
: '''ИР:''' Мы стараемся что-то предложить для всех уровней опыта. Наши конференции посещают и просто энтузиасты, для кого это хобби, и профессионалы в сфере ИТ, и руководители предприятий. Наша миссия – содействовать образовательным возможностям в области открытого кода в целом. И хотя в нашем названии фигурирует Linux, большую часть времени мы посвящаем более общим проблемам открытого кода. И каждый год стараемся сфокусироваться на специфической целевой аудитории, которая, по ощущениям команды, слабо представлена в сообществе и на SCALE.&lt;br /&gt;
&lt;br /&gt;
: Эти целевые мини-конференции включают мероприятие ODF для представителей местной власти, ИТ-решения для медицины и здравоохранения, тему женщин в мире открытого кода и многое другое. Некоторые уже отпочковались в отдельные мероприятия. В этом году одна из целевых аудиторий – работники сферы образования, желающие применять открытый код в классах.&lt;br /&gt;
&lt;br /&gt;
* '''''LXF:''' SCALE стала одной из самых популярных конференций в США. Как вы сохраняете атмосферу сообщества?''&lt;br /&gt;
&lt;br /&gt;
: '''ИР:''' Атмосфера сообщества вытекает из наших целей как организаторов. Мы строили LUGFest, чтобы у нас было местное мероприятие по открытому коду, участие в котором доставляло бы удовольствие, заодно предлагая образовательные возможности. И это стало любимым делом для нашей команды – оно отражает их энергию и атмосферу, которую они сумели создать.&lt;br /&gt;
&lt;br /&gt;
: '''ОБ:''' Все организаторы SCALE – добровольцы, и все участвуют в сообществе FOSS. Это помогает нам держать руку на пульсе сообщества. По своей сути, главное в SCALE – образование, больше, чем все прочее, и мы стараемся поровну распределить ее между коммерческими и некоммерческими участниками, которым есть что рассказать посетителям возле своих стендов. Мы также не одобряем сугубо коммерческие презентации – те, кто делал такие в прошлом, приглашений больше не получают.&lt;br /&gt;
&lt;br /&gt;
: '''ИР:''' Cочетание коммерческих участников и участников, представляющих сообщество – вот ключевой момент, позволяющий достичь некого равновесия. И это деликатное равновесие – один из основных ингредиентов нашего коронного блюда.&lt;br /&gt;
&lt;br /&gt;
* '''''LXF:''' Насколько выросла SCALE за эти годы и как вы добились ее роста?''&lt;br /&gt;
&lt;br /&gt;
: '''ОБ:''' Она растет органично, в соответствии с потребностями сообщества – мы растем примерно теми же темпами. В результате из однодневного мероприятия с двумя микрофонами, 12 выступающими и экспозицией порядка 25 стендов, мы превратились в трехдневное, с более чем 65 докладчиками и более 100 участников.&lt;br /&gt;
&lt;br /&gt;
: '''ИР:''' Огромная разница в том, что сейчас мы можем вместить и другие сообщества, которые хотят провести собственные мероприятия. Это позволило нам расширить свой контент и увеличить число посетителей, не проделывая данную работу самим. И в сочетании с разработанными нами специализациями, привлечение новых сообществ помогло нам сохранить энергичную атмосферу.&lt;br /&gt;
&lt;br /&gt;
* '''''LXF:''' Каким вам видится будущее SCALE?''&lt;br /&gt;
&lt;br /&gt;
: '''ОБ:''' Каким его захочет принять сообщество. Мы ожидаем тот же темп роста, что и раньше: где-то 5 – 15 % в год. В будущем нам, возможно, придется поменять место проведения на нечто более масштабное!&lt;br /&gt;
&lt;br /&gt;
: '''ИР:''' Мы наблюдаем очень высокий спрос на выступления, ориентированные на разработчиков и на начинающих. Видимо, в будущем надо будет добавить тематики для этих аудиторий. Я предвижу также переоценку некоторых наших специализаций. Важно, чтобы они были свежими, чтобы мы вносили свою лепту в удовлетворение главных потребностей сообщества. Нам надо стать инкубатором для этих тем. Буду рад, если наша специализация по открытому коду в образовании станет отдельной темой, предлагающей больше прикладного тренинга местным педагогам.&lt;br /&gt;
&lt;br /&gt;
: Еще одна область, где мы надеемся и дальше расширять свое влияние, это наставничество и финансовая помощь при проведении других мероприятий сообщества здесь, в Соединенных Штатах. Например, в 2010 году мы сотрудничали с группой добровольцев в Остине, Техас, в организации там Texas Linux Fest. Их второе ежегодное мероприятие намечено на апрель. Наша цель – помогать существующим группам определять назревающие проблемы, а также запускать мероприятия в других местах. Мы считаем крайне важным, чтобы у каждого был доступ к качественным образовательным возможностям по открытому ПО.&lt;br /&gt;
&lt;br /&gt;
* '''''LXF:''' Какие советы вы дали бы начинающим организаторам конференций?''&lt;br /&gt;
&lt;br /&gt;
: '''ОБ:''' Соответствовать интересам сообщества. У нас, в Южной Калифорнии, солидная демография, и, возможно, куда более солидная разработка программ, чем это в принципе возможно в небольшом сообществе. Поэтому у нас предусмотрены одна или две специализации по разработке; а небольшой выставке, возможно, стоит уделить больше внимания образованию конечного пользователя.&lt;br /&gt;
&lt;br /&gt;
: '''ИР:''' Начинайте все планировать заранее – и не стесняйтесь просить о помощи, когда она вам понадобится! Не изобретайте велосипед, просто обратитесь к организаторам уже действующих мероприятий, если у вас будут вопросы. Многие организаторы конференций и фестивалей сообществ уже работают вместе и обмениваются идеями. Мы очень рады появлению новых мероприятий и считаем их не соперниками, а соратниками.&lt;br /&gt;
&lt;br /&gt;
: И, наконец, подобно любому проекту с открытым кодом, помогайте другим внести свою лепту. Организация мероприятий – тяжкий труд, и дав другим шансы помочь вам, вы сбережете свое здоровье.&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF144:Interview</id>
		<title>LXF144:Interview</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF144:Interview"/>
				<updated>2023-10-13T04:16:55Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF144:Interview в Что происходит в Израиле?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Что происходит в Израиле?]]&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A7%D1%82%D0%BE_%D0%BF%D1%80%D0%BE%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%B8%D1%82_%D0%B2_%D0%98%D0%B7%D1%80%D0%B0%D0%B8%D0%BB%D0%B5%3F</id>
		<title>Что происходит в Израиле?</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A7%D1%82%D0%BE_%D0%BF%D1%80%D0%BE%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%B8%D1%82_%D0%B2_%D0%98%D0%B7%D1%80%D0%B0%D0%B8%D0%BB%D0%B5%3F"/>
				<updated>2023-10-13T04:16:55Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF144:Interview в Что происходит в Израиле?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Интервью]]&lt;br /&gt;
&lt;br /&gt;
=California dreaming=&lt;br /&gt;
&lt;br /&gt;
: '''Джоно Бэкон''' выведывает идеальную рецептуру у двух добровольцев, стоящих за самой популярной конференцией Лос-Анджелеса — SCALE.&lt;br /&gt;
&lt;br /&gt;
 [California Dreamin’ — песня группы The Mamas &amp;amp; The Papas; по версии журнала Rolling Stone, одна из 500 величайших песен всех времен, — прим. пер.]&lt;br /&gt;
&lt;br /&gt;
'''В мире много конференций по открытому коду. Одни ориентированы на сообщества, другие более коммерциализованы, а третьи являют собой смесь первых и вторых, предлагая дружескую атмосферу со всеми бизнес-атрибутами. Именно такова проводимая в Лос-Анджелесе конференция Southern California Linux Expo (SCALE). Илан Рабинович [Ilan Rabinovitch] и Орв Бич [Orv Beach] занимались ее организацией с самого первого дня, и мы встретились с ними, чтобы узнать секрет ее успеха.'''&lt;br /&gt;
&lt;br /&gt;
* '''''LXF:''' Как появилась SCALE?''&lt;br /&gt;
&lt;br /&gt;
: '''Орв Бич:''' SCALE возникла из серии встреч LUGFest, проводившихся на базе Nortel в Сими-Вэлли [Simi Valley] лет 10 назад. Это были одно-двухдневные мероприятия, проходившие два раза в год. Когда Nortel свернул палатку на своей базе, LUGFest 4 насчитывал 400 посетителей, и мы уже знали, что сообщество жаждет подобного рода событий!&lt;br /&gt;
&lt;br /&gt;
: '''Илан Рабинович:''' На LUGFest’ах было очень весело, но из-за краха интернет-пузырей [компании-однодневки, разросшиеся на буме Интернет, полопались в 2000 году, – прим. пер.] мы потеряли пристанище, которое предоставлял Nortel. Став бездомными, но желая продолжать мероприятия по открытому коду в Южной Калифорнии, мы объединились со студентами Калифорнийского университета в Лос-Анджелесе (UCLA) и Университета Южной Калифорнии (USC), у которых были те же цели. Вот так SCALE появился на свет в 2002 году в Центре конференций Дэвидсона при Университете Южной Калифорнии [USC Davidson Conference Center]. Большинство наших добровольцев и со-основателей, стоявших у истоков конференции, работают над ее организацией и по сей день.&lt;br /&gt;
&lt;br /&gt;
* '''''LXF:''' Какова целевая аудитория SCALE?''&lt;br /&gt;
&lt;br /&gt;
: '''ОБ:''' Наша демография широка и разнообразна. Мы стараемся охватывать разные целевые аудитории, и это – своего рода нескончаемый вызов.&lt;br /&gt;
&lt;br /&gt;
: '''ИР:''' Мы стараемся что-то предложить для всех уровней опыта. Наши конференции посещают и просто энтузиасты, для кого это хобби, и профессионалы в сфере ИТ, и руководители предприятий. Наша миссия – содействовать образовательным возможностям в области открытого кода в целом. И хотя в нашем названии фигурирует Linux, большую часть времени мы посвящаем более общим проблемам открытого кода. И каждый год стараемся сфокусироваться на специфической целевой аудитории, которая, по ощущениям команды, слабо представлена в сообществе и на SCALE.&lt;br /&gt;
&lt;br /&gt;
: Эти целевые мини-конференции включают мероприятие ODF для представителей местной власти, ИТ-решения для медицины и здравоохранения, тему женщин в мире открытого кода и многое другое. Некоторые уже отпочковались в отдельные мероприятия. В этом году одна из целевых аудиторий – работники сферы образования, желающие применять открытый код в классах.&lt;br /&gt;
&lt;br /&gt;
* '''''LXF:''' SCALE стала одной из самых популярных конференций в США. Как вы сохраняете атмосферу сообщества?''&lt;br /&gt;
&lt;br /&gt;
: '''ИР:''' Атмосфера сообщества вытекает из наших целей как организаторов. Мы строили LUGFest, чтобы у нас было местное мероприятие по открытому коду, участие в котором доставляло бы удовольствие, заодно предлагая образовательные возможности. И это стало любимым делом для нашей команды – оно отражает их энергию и атмосферу, которую они сумели создать.&lt;br /&gt;
&lt;br /&gt;
: '''ОБ:''' Все организаторы SCALE – добровольцы, и все участвуют в сообществе FOSS. Это помогает нам держать руку на пульсе сообщества. По своей сути, главное в SCALE – образование, больше, чем все прочее, и мы стараемся поровну распределить ее между коммерческими и некоммерческими участниками, которым есть что рассказать посетителям возле своих стендов. Мы также не одобряем сугубо коммерческие презентации – те, кто делал такие в прошлом, приглашений больше не получают.&lt;br /&gt;
&lt;br /&gt;
: '''ИР:''' Cочетание коммерческих участников и участников, представляющих сообщество – вот ключевой момент, позволяющий достичь некого равновесия. И это деликатное равновесие – один из основных ингредиентов нашего коронного блюда.&lt;br /&gt;
&lt;br /&gt;
* '''''LXF:''' Насколько выросла SCALE за эти годы и как вы добились ее роста?''&lt;br /&gt;
&lt;br /&gt;
: '''ОБ:''' Она растет органично, в соответствии с потребностями сообщества – мы растем примерно теми же темпами. В результате из однодневного мероприятия с двумя микрофонами, 12 выступающими и экспозицией порядка 25 стендов, мы превратились в трехдневное, с более чем 65 докладчиками и более 100 участников.&lt;br /&gt;
&lt;br /&gt;
: '''ИР:''' Огромная разница в том, что сейчас мы можем вместить и другие сообщества, которые хотят провести собственные мероприятия. Это позволило нам расширить свой контент и увеличить число посетителей, не проделывая данную работу самим. И в сочетании с разработанными нами специализациями, привлечение новых сообществ помогло нам сохранить энергичную атмосферу.&lt;br /&gt;
&lt;br /&gt;
* '''''LXF:''' Каким вам видится будущее SCALE?''&lt;br /&gt;
&lt;br /&gt;
: '''ОБ:''' Каким его захочет принять сообщество. Мы ожидаем тот же темп роста, что и раньше: где-то 5 – 15 % в год. В будущем нам, возможно, придется поменять место проведения на нечто более масштабное!&lt;br /&gt;
&lt;br /&gt;
: '''ИР:''' Мы наблюдаем очень высокий спрос на выступления, ориентированные на разработчиков и на начинающих. Видимо, в будущем надо будет добавить тематики для этих аудиторий. Я предвижу также переоценку некоторых наших специализаций. Важно, чтобы они были свежими, чтобы мы вносили свою лепту в удовлетворение главных потребностей сообщества. Нам надо стать инкубатором для этих тем. Буду рад, если наша специализация по открытому коду в образовании станет отдельной темой, предлагающей больше прикладного тренинга местным педагогам.&lt;br /&gt;
&lt;br /&gt;
: Еще одна область, где мы надеемся и дальше расширять свое влияние, это наставничество и финансовая помощь при проведении других мероприятий сообщества здесь, в Соединенных Штатах. Например, в 2010 году мы сотрудничали с группой добровольцев в Остине, Техас, в организации там Texas Linux Fest. Их второе ежегодное мероприятие намечено на апрель. Наша цель – помогать существующим группам определять назревающие проблемы, а также запускать мероприятия в других местах. Мы считаем крайне важным, чтобы у каждого был доступ к качественным образовательным возможностям по открытому ПО.&lt;br /&gt;
&lt;br /&gt;
* '''''LXF:''' Какие советы вы дали бы начинающим организаторам конференций?''&lt;br /&gt;
&lt;br /&gt;
: '''ОБ:''' Соответствовать интересам сообщества. У нас, в Южной Калифорнии, солидная демография, и, возможно, куда более солидная разработка программ, чем это в принципе возможно в небольшом сообществе. Поэтому у нас предусмотрены одна или две специализации по разработке; а небольшой выставке, возможно, стоит уделить больше внимания образованию конечного пользователя.&lt;br /&gt;
&lt;br /&gt;
: '''ИР:''' Начинайте все планировать заранее – и не стесняйтесь просить о помощи, когда она вам понадобится! Не изобретайте велосипед, просто обратитесь к организаторам уже действующих мероприятий, если у вас будут вопросы. Многие организаторы конференций и фестивалей сообществ уже работают вместе и обмениваются идеями. Мы очень рады появлению новых мероприятий и считаем их не соперниками, а соратниками.&lt;br /&gt;
&lt;br /&gt;
: И, наконец, подобно любому проекту с открытым кодом, помогайте другим внести свою лепту. Организация мероприятий – тяжкий труд, и дав другим шансы помочь вам, вы сбережете свое здоровье.&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A1%D0%BB%D0%B0%D0%B2%D0%B0_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8!</id>
		<title>Слава России!</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A1%D0%BB%D0%B0%D0%B2%D0%B0_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8!"/>
				<updated>2023-10-13T04:16:27Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: Содержимое страницы заменено на «{{SEO}}»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEO}}&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF89:%D0%A1%D0%BE%D0%B2%D0%B5%D1%82_%D0%BC%D0%B5%D1%81%D1%8F%D1%86%D0%B0</id>
		<title>LXF89:Совет месяца</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF89:%D0%A1%D0%BE%D0%B2%D0%B5%D1%82_%D0%BC%D0%B5%D1%81%D1%8F%D1%86%D0%B0"/>
				<updated>2023-10-13T04:16:09Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF89:Совет месяца в Слава России!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Слава России!]]&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A1%D0%BB%D0%B0%D0%B2%D0%B0_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8!</id>
		<title>Слава России!</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A1%D0%BB%D0%B0%D0%B2%D0%B0_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8!"/>
				<updated>2023-10-13T04:16:09Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF89:Совет месяца в Слава России!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Совет месяца: Перенаправление ==&lt;br /&gt;
&lt;br /&gt;
Даже если вы новичок в Linux, вы наверняка использовали перенаправление при работе в командной строке. Для обмена данными с выполняемыми командами используются символы '''&amp;gt;''' и '''&amp;lt;'''. Чаще всего их применяют, чтобы сохранить вывод команды в файле. Например, набрав '''dmesg &amp;gt; local.log''', вы запишите содержимое кольцевого буфера ядра (иными словами, вывод ''dmesg'') в файл '''local.log'''.&lt;br /&gt;
&lt;br /&gt;
'''&amp;gt; local.log''' предписывает перезаписать указанный файл, если он уже существует. Использовав '''&amp;gt;&amp;gt;''' вместо '''&amp;gt;''', можно дописать вывод ''dmesg'' в '''local.log'''. Символ '''&amp;lt;''' подает содержимое файла-аргумента на вход команды, например, ''grep''. Так, команда '''grep USB &amp;lt; local.log''' осуществит поиск строки '''«USB»''' в файле '''local.log'''.&lt;br /&gt;
&lt;br /&gt;
Перенаправление работает, поскольку любое приложение Linux осуществляет ввод/вывод посредством трех стандартных «файловых дексрипторов» – стандартного ввода ('''stdin'''), вывода ('''stdout''') и потока ошибок ('''stderr'''). Обычно вы этого не замечаете, поскольку по умолчанию этим дескрипторам соответствуют экран и клавиатура. Символы '''&amp;lt;''' и '''&amp;gt;''', использованные в предыдущих примерах, относятся к '''stdin''' и '''stdout'''. Как же тогда обратиться к стандартному потоку ошибок? Для этого необходимо добавить перед символом '''&amp;gt;''' цифру '''2''' – номер файлового дескриптора, отвечающего '''stderr'''. Стандартному вводу соответствует значение '''0''', а выводу – '''1'''. Это полезно знать, поскольку таким образом можно отфильтровать сообщения об ошибках от полезного вывода программы.&lt;br /&gt;
&lt;br /&gt;
Например, рассмотрим команду ''find''. Она часто жалуется на проблемы с правами доступа. Заставить ее замолчать можно, перенаправив стандартный поток ошибок в '''/dev/null''' – специальное устройство, поглощающее все, что было в него послано:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
find / -name *.jpg 2&amp;gt;/dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:!</id>
		<title>Шаблон:!</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:!"/>
				<updated>2023-10-13T04:15:55Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: Содержимое страницы заменено на «{{SEO}}»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEO}}&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5</id>
		<title>Шаблон:Сравнение</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5"/>
				<updated>2023-10-13T04:15:38Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: Содержимое страницы заменено на «{{SEO}}»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEO}}&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%9E%D1%82%D0%B5%D0%BB%D1%8C_%D0%B2_%D0%A2%D1%83%D1%80%D1%86%D0%B8%D0%B8</id>
		<title>Отель в Турции</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%9E%D1%82%D0%B5%D0%BB%D1%8C_%D0%B2_%D0%A2%D1%83%D1%80%D1%86%D0%B8%D0%B8"/>
				<updated>2023-10-13T04:15:26Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==''Alien Arena'' 7.30==&lt;br /&gt;
&lt;br /&gt;
: Пришельцы из космоса задумали спереть ваших коров. '''Ник Вейч''' стоит поодаль на своем поле, бормоча про потенциал футуристической стрелялки…&lt;br /&gt;
&lt;br /&gt;
{{Сравнение&lt;br /&gt;
|кратко=Стрелялка, основанная на классике (''Quake/UT''). &lt;br /&gt;
|также=дождаться очередной версии ''UT'' или выбрать ''Terminus'' с его космическими баталиями.&lt;br /&gt;
|изображение=LXF123_8_1.jpg&lt;br /&gt;
|подпись=Есть здесь что-то необычное для Linux-игры. Нет, не успех таинственного  Deathchimp’а, а световой эффект, пробивающийся сквозь ветви деревьев.&lt;br /&gt;
|разработчик=COR Entertainment&lt;br /&gt;
|сайт=http://www.alienarena.org&lt;br /&gt;
|цена=бесплатно под GPL&lt;br /&gt;
|параметр1=Функциональность&lt;br /&gt;
|оценка1=8&lt;br /&gt;
|параметр2=Производительность&lt;br /&gt;
|оценка2=7&lt;br /&gt;
|параметр3=Простота использования&lt;br /&gt;
|оценка3=8&lt;br /&gt;
|параметр4=Документация&lt;br /&gt;
|оценка4=7&lt;br /&gt;
|итог=Прогрессирует от бледной копии ''UT'' до статуса самостоятельной игры, который пока не достигнут.&lt;br /&gt;
|рейтинг=8&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок=Спецификации|Содержание=&lt;br /&gt;
* Видеокарта с поддержкой OpenGL (рекомендуется Nvidia 6600 или лучше)&lt;br /&gt;
* 256 МБ ОЗУ&lt;br /&gt;
* Процессор 1 ГГц или быстрее&lt;br /&gt;
* 650 МБ свободного пространства на диске&lt;br /&gt;
* ''glibc6''|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Возьмите&lt;br /&gt;
движок&lt;br /&gt;
от успешной&lt;br /&gt;
стрелялки,&lt;br /&gt;
добавьте&lt;br /&gt;
немного&lt;br /&gt;
жутких&lt;br /&gt;
пришельцев,&lt;br /&gt;
приправьте&lt;br /&gt;
все&lt;br /&gt;
это новыми&lt;br /&gt;
идеями.&lt;br /&gt;
Что получится?&lt;br /&gt;
Вот&lt;br /&gt;
у COR Entertainment получилась&lt;br /&gt;
убойная&lt;br /&gt;
игра&lt;br /&gt;
под названием&lt;br /&gt;
''Alien Arena''. Как можно&lt;br /&gt;
предположить,&lt;br /&gt;
оригинальностью&lt;br /&gt;
она&lt;br /&gt;
не блещет;&lt;br /&gt;
тем не менее, стрелялка&lt;br /&gt;
вышла&lt;br /&gt;
вполне крепкая.&lt;br /&gt;
&lt;br /&gt;
Хотя&lt;br /&gt;
игра&lt;br /&gt;
базируется&lt;br /&gt;
на коде,&lt;br /&gt;
опубликованном&lt;br /&gt;
Id Software (компанией-создателем&lt;br /&gt;
серии&lt;br /&gt;
''Doom''), многие&lt;br /&gt;
ее аспекты&lt;br /&gt;
напоминают&lt;br /&gt;
другую&lt;br /&gt;
игру,&lt;br /&gt;
известную&lt;br /&gt;
в мире&lt;br /&gt;
Linux – ''Unreal Tournament''. Порой&lt;br /&gt;
трудно&lt;br /&gt;
отделаться&lt;br /&gt;
от ощущения,&lt;br /&gt;
что играешь&lt;br /&gt;
в ''UT2004'' с легкой&lt;br /&gt;
модернизацией&lt;br /&gt;
графики.&lt;br /&gt;
&lt;br /&gt;
Сходство&lt;br /&gt;
также распространяется&lt;br /&gt;
и на оружие,&lt;br /&gt;
хотя&lt;br /&gt;
и не без «пришельческих» вывертов.&lt;br /&gt;
В основном&lt;br /&gt;
оружие&lt;br /&gt;
лазерное:&lt;br /&gt;
дизрапторы&lt;br /&gt;
и лучевые&lt;br /&gt;
пистолеты;&lt;br /&gt;
а есть&lt;br /&gt;
еще виолаторы!&lt;br /&gt;
&lt;br /&gt;
Как и все приличные&lt;br /&gt;
командные&lt;br /&gt;
игры, ''Alien Arena''&lt;br /&gt;
полна&lt;br /&gt;
настроек,&lt;br /&gt;
вариантов&lt;br /&gt;
игровых&lt;br /&gt;
режимов&lt;br /&gt;
и мутаторов.&lt;br /&gt;
Гамма «примочек» простирается&lt;br /&gt;
от полезных&lt;br /&gt;
(внезапные атаки,&lt;br /&gt;
быстрое оружие) через&lt;br /&gt;
интересные&lt;br /&gt;
(антигравитация, вампиры, мгновенные&lt;br /&gt;
перемещения) до безумных&lt;br /&gt;
(ристалища).&lt;br /&gt;
И это&lt;br /&gt;
отнюдь&lt;br /&gt;
не макияж:&lt;br /&gt;
добавления&lt;br /&gt;
способны&lt;br /&gt;
радикально&lt;br /&gt;
менять&lt;br /&gt;
динамику&lt;br /&gt;
игры,&lt;br /&gt;
позволяя&lt;br /&gt;
вполне насладиться&lt;br /&gt;
всеми&lt;br /&gt;
шестьюдесятью включенными&lt;br /&gt;
в нее картами.&lt;br /&gt;
&lt;br /&gt;
Простейший&lt;br /&gt;
вариант – игра&lt;br /&gt;
в одиночном&lt;br /&gt;
режиме.&lt;br /&gt;
Выбрав&lt;br /&gt;
уровень&lt;br /&gt;
сложности,&lt;br /&gt;
вы угодите&lt;br /&gt;
в зону&lt;br /&gt;
с двумя&lt;br /&gt;
ботами,&lt;br /&gt;
и грянет бой! Насчет&lt;br /&gt;
стратегии&lt;br /&gt;
боты&lt;br /&gt;
не сильны,&lt;br /&gt;
зато&lt;br /&gt;
владеют&lt;br /&gt;
ракетными&lt;br /&gt;
установками.&lt;br /&gt;
При желании&lt;br /&gt;
испытать&lt;br /&gt;
другие&lt;br /&gt;
режимы,&lt;br /&gt;
попробуйте&lt;br /&gt;
вариант&lt;br /&gt;
'''Host Server''' [Создать&lt;br /&gt;
сервер]&lt;br /&gt;
и настройте&lt;br /&gt;
игру&lt;br /&gt;
соответственно.&lt;br /&gt;
Устроить&lt;br /&gt;
публичный&lt;br /&gt;
турнир&lt;br /&gt;
также&lt;br /&gt;
не составит&lt;br /&gt;
труда,&lt;br /&gt;
и вам смогут&lt;br /&gt;
надрать...&lt;br /&gt;
уши из любой&lt;br /&gt;
точки&lt;br /&gt;
планеты.&lt;br /&gt;
&lt;br /&gt;
Серверный&lt;br /&gt;
режим&lt;br /&gt;
обладает&lt;br /&gt;
отдельным&lt;br /&gt;
набором&lt;br /&gt;
модификаций:&lt;br /&gt;
можно,&lt;br /&gt;
как&lt;br /&gt;
в ''Quake II'', развернуть&lt;br /&gt;
консоль,&lt;br /&gt;
подать команду&lt;br /&gt;
на загрузку&lt;br /&gt;
карт, выгнать&lt;br /&gt;
«тормозных» игроков&lt;br /&gt;
и настроить&lt;br /&gt;
игровой&lt;br /&gt;
движок.&lt;br /&gt;
&lt;br /&gt;
===Пробуем еще===&lt;br /&gt;
&lt;br /&gt;
Разумеется,&lt;br /&gt;
самое&lt;br /&gt;
интересное – нашпиговать&lt;br /&gt;
свинцом&lt;br /&gt;
(или фотонами)&lt;br /&gt;
какого-нибудь незнакомца.&lt;br /&gt;
''Alien Arena'' работает&lt;br /&gt;
с обозревателем серверов ''Fuse''&lt;br /&gt;
(http://chaingun.org/cms/index.php?id=6),&lt;br /&gt;
и вы всегда сможете найти&lt;br /&gt;
соперника&lt;br /&gt;
и посмотреть&lt;br /&gt;
статистику&lt;br /&gt;
своих&lt;br /&gt;
{{SEO}}&lt;br /&gt;
&lt;br /&gt;
достижений – кстати,&lt;br /&gt;
прекрасный&lt;br /&gt;
способ&lt;br /&gt;
подавить&lt;br /&gt;
прилив&lt;br /&gt;
адреналина.&lt;br /&gt;
&lt;br /&gt;
Игровой&lt;br /&gt;
сервер&lt;br /&gt;
выглядит&lt;br /&gt;
малость&lt;br /&gt;
ненадежным,&lt;br /&gt;
поэтому&lt;br /&gt;
обновляйте&lt;br /&gt;
сведения&lt;br /&gt;
почаще,&lt;br /&gt;
ради&lt;br /&gt;
свежих&lt;br /&gt;
списков.&lt;br /&gt;
К счастью,&lt;br /&gt;
игра&lt;br /&gt;
достаточно&lt;br /&gt;
популярна:&lt;br /&gt;
три-четыре&lt;br /&gt;
игрока&lt;br /&gt;
найдутся&lt;br /&gt;
даже&lt;br /&gt;
в неурочное&lt;br /&gt;
время.&lt;br /&gt;
Публичный&lt;br /&gt;
сервер – вариант&lt;br /&gt;
''Alien Arena'' по умолчанию,&lt;br /&gt;
так что многие&lt;br /&gt;
из них&lt;br /&gt;
принадлежат&lt;br /&gt;
одиноким&lt;br /&gt;
новичкам,&lt;br /&gt;
упражняющимся&lt;br /&gt;
на ботах.&lt;br /&gt;
Разве&lt;br /&gt;
не приятно&lt;br /&gt;
ворваться&lt;br /&gt;
в игру&lt;br /&gt;
и сокрушить&lt;br /&gt;
салагу?&lt;br /&gt;
&lt;br /&gt;
Помимо&lt;br /&gt;
самой&lt;br /&gt;
игры,&lt;br /&gt;
немало&lt;br /&gt;
труда&lt;br /&gt;
вложено&lt;br /&gt;
в ее движок.&lt;br /&gt;
Оригинальный&lt;br /&gt;
вариант&lt;br /&gt;
от Id обзавелся&lt;br /&gt;
32‑битными&lt;br /&gt;
текстурами;&lt;br /&gt;
добавлен&lt;br /&gt;
ряд теневых и световых&lt;br /&gt;
эффектов.&lt;br /&gt;
Игра&lt;br /&gt;
весьма&lt;br /&gt;
рациональна:&lt;br /&gt;
хотя&lt;br /&gt;
для отображения&lt;br /&gt;
всех&lt;br /&gt;
эффектов&lt;br /&gt;
нужен&lt;br /&gt;
довольно&lt;br /&gt;
мощный&lt;br /&gt;
компьютер,&lt;br /&gt;
процессор&lt;br /&gt;
не перегреется&lt;br /&gt;
даже&lt;br /&gt;
в полноэкранном&lt;br /&gt;
режиме.&lt;br /&gt;
Многие&lt;br /&gt;
эффекты&lt;br /&gt;
настраиваются&lt;br /&gt;
через&lt;br /&gt;
меню,&lt;br /&gt;
но наилучший&lt;br /&gt;
выбор – выставить&lt;br /&gt;
все параметры&lt;br /&gt;
на максимум&lt;br /&gt;
качества&lt;br /&gt;
и попробовать&lt;br /&gt;
в режиме&lt;br /&gt;
одиночного&lt;br /&gt;
игрока.&lt;br /&gt;
&lt;br /&gt;
===Озвучиваем===&lt;br /&gt;
&lt;br /&gt;
Качество&lt;br /&gt;
звука&lt;br /&gt;
хорошее – именно&lt;br /&gt;
для этого&lt;br /&gt;
требуется&lt;br /&gt;
обновление&lt;br /&gt;
''OpenAL''. Женский&lt;br /&gt;
голос&lt;br /&gt;
комментатора&lt;br /&gt;
отмечает&lt;br /&gt;
ключевые&lt;br /&gt;
события&lt;br /&gt;
по ходу&lt;br /&gt;
игры,&lt;br /&gt;
но, в отличие&lt;br /&gt;
от ''UT'', голосового&lt;br /&gt;
сопровождения&lt;br /&gt;
выдающихся&lt;br /&gt;
подвигов&lt;br /&gt;
нет. Пока.&lt;br /&gt;
Идет работа&lt;br /&gt;
над реализацией&lt;br /&gt;
обмена&lt;br /&gt;
голосовыми&lt;br /&gt;
сообщениями&lt;br /&gt;
между&lt;br /&gt;
игроками&lt;br /&gt;
(в следующих&lt;br /&gt;
версиях&lt;br /&gt;
игры).&lt;br /&gt;
&lt;br /&gt;
В конечном&lt;br /&gt;
счете&lt;br /&gt;
у ''Alien Arena'' 7.30&lt;br /&gt;
не получится&lt;br /&gt;
свергнуть&lt;br /&gt;
с трона&lt;br /&gt;
''UT2004'' – хотя&lt;br /&gt;
здесь не без&lt;br /&gt;
апломба&lt;br /&gt;
применяются&lt;br /&gt;
многие&lt;br /&gt;
функции&lt;br /&gt;
''UT'': кому&lt;br /&gt;
нужна&lt;br /&gt;
копия,&lt;br /&gt;
если&lt;br /&gt;
доступен&lt;br /&gt;
оригинал?&lt;br /&gt;
&lt;br /&gt;
И все-таки&lt;br /&gt;
элементы&lt;br /&gt;
оригинальности&lt;br /&gt;
в ''Alien Arena'' есть, и мы надеемся,&lt;br /&gt;
что&lt;br /&gt;
с их разрастанием&lt;br /&gt;
игра&lt;br /&gt;
превратится&lt;br /&gt;
в самостоятельный&lt;br /&gt;
продукт.&lt;br /&gt;
&lt;br /&gt;
===Как добыть игру===&lt;br /&gt;
&lt;br /&gt;
''Alien Arena'' – свободная&lt;br /&gt;
и бесплатная&lt;br /&gt;
игра.&lt;br /&gt;
Кроме&lt;br /&gt;
того,&lt;br /&gt;
она&lt;br /&gt;
кроссплатформенная,&lt;br /&gt;
и вы можете&lt;br /&gt;
проучить&lt;br /&gt;
пользователей&lt;br /&gt;
Windows и Mac. Двоичные&lt;br /&gt;
файлы&lt;br /&gt;
для Linux доступны&lt;br /&gt;
на сайте,&lt;br /&gt;
но у&lt;br /&gt;
нас были&lt;br /&gt;
трудности&lt;br /&gt;
с их запуском&lt;br /&gt;
на нашей&lt;br /&gt;
системе,&lt;br /&gt;
из-за зависимости&lt;br /&gt;
''OpenAL''. Если у вас нет '''/usr/lib/libopenal.so.1''', попробуйте&lt;br /&gt;
загрузить&lt;br /&gt;
пакет&lt;br /&gt;
''openal-soft'' для вашего&lt;br /&gt;
дистрибутива,&lt;br /&gt;
это должно&lt;br /&gt;
одолеть&lt;br /&gt;
проблему.&lt;br /&gt;
Однако&lt;br /&gt;
в репозиториях&lt;br /&gt;
могли&lt;br /&gt;
остаться&lt;br /&gt;
устаревшие&lt;br /&gt;
версии,&lt;br /&gt;
и если&lt;br /&gt;
добиться&lt;br /&gt;
результата&lt;br /&gt;
все же не удается – дождитесь&lt;br /&gt;
обновлений.&lt;br /&gt;
Ну, а кому&lt;br /&gt;
не терпится,&lt;br /&gt;
попробуйте&lt;br /&gt;
http://kcat.strangesoft.net/openal.html.&lt;br /&gt;
&lt;br /&gt;
===Больше, лучше, сильнее===&lt;br /&gt;
&lt;br /&gt;
Доработка&lt;br /&gt;
двоичных&lt;br /&gt;
файлов&lt;br /&gt;
куда&lt;br /&gt;
интереснее,&lt;br /&gt;
чем потребление&lt;br /&gt;
их как есть. Карты,&lt;br /&gt;
руководства,&lt;br /&gt;
графика&lt;br /&gt;
и звуки,&lt;br /&gt;
созданные&lt;br /&gt;
членами&lt;br /&gt;
Сообщества – необходимые&lt;br /&gt;
атрибуты&lt;br /&gt;
современного&lt;br /&gt;
геймера.&lt;br /&gt;
Хотя&lt;br /&gt;
по числу дополнений&lt;br /&gt;
игра&lt;br /&gt;
несравнима&lt;br /&gt;
с коммерческими&lt;br /&gt;
брендами,&lt;br /&gt;
сообщество&lt;br /&gt;
моддеров&lt;br /&gt;
процветает.&lt;br /&gt;
Один&lt;br /&gt;
из лучших&lt;br /&gt;
источников&lt;br /&gt;
подробной&lt;br /&gt;
информации – удобное&lt;br /&gt;
руководство&lt;br /&gt;
на сайте&lt;br /&gt;
http://alienarena.co.uk.&lt;br /&gt;
&lt;br /&gt;
===Игровые режимы ''Alien Arena''===&lt;br /&gt;
{{SEO}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF123_8_2.jpg]]&lt;br /&gt;
* '''Смертельная схватка'''&lt;br /&gt;
: Убивайте, пока не убили вас, но только не союзников: совместно с ними можно задать врагу хорошую трепку.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF123_8_3.jpg]]&lt;br /&gt;
* '''Захват флага'''&lt;br /&gt;
: Отнимите их сокровище и доставьте в свой лагерь. Если они стырили ваш флаг первыми – убейте их и заберите его обратно.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF123_8_4.jpg]]&lt;br /&gt;
* '''Загон скота'''&lt;br /&gt;
: Загоните робоскот в свой хлев. Вроде и просто, но придется сразиться с врагами и обратить в пар их стадо. Буквально.&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF123:Review1</id>
		<title>LXF123:Review1</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF123:Review1"/>
				<updated>2023-10-13T04:15:04Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF123:Review1 в Отель в Турции&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Отель в Турции]]&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%9E%D1%82%D0%B5%D0%BB%D1%8C_%D0%B2_%D0%A2%D1%83%D1%80%D1%86%D0%B8%D0%B8</id>
		<title>Отель в Турции</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%9E%D1%82%D0%B5%D0%BB%D1%8C_%D0%B2_%D0%A2%D1%83%D1%80%D1%86%D0%B8%D0%B8"/>
				<updated>2023-10-13T04:15:04Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF123:Review1 в Отель в Турции&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==''Alien Arena'' 7.30==&lt;br /&gt;
&lt;br /&gt;
: Пришельцы из космоса задумали спереть ваших коров. '''Ник Вейч''' стоит поодаль на своем поле, бормоча про потенциал футуристической стрелялки…&lt;br /&gt;
&lt;br /&gt;
{{Сравнение&lt;br /&gt;
|кратко=Стрелялка, основанная на классике (''Quake/UT''). &lt;br /&gt;
|также=дождаться очередной версии ''UT'' или выбрать ''Terminus'' с его космическими баталиями.&lt;br /&gt;
|изображение=LXF123_8_1.jpg&lt;br /&gt;
|подпись=Есть здесь что-то необычное для Linux-игры. Нет, не успех таинственного  Deathchimp’а, а световой эффект, пробивающийся сквозь ветви деревьев.&lt;br /&gt;
|разработчик=COR Entertainment&lt;br /&gt;
|сайт=http://www.alienarena.org&lt;br /&gt;
|цена=бесплатно под GPL&lt;br /&gt;
|параметр1=Функциональность&lt;br /&gt;
|оценка1=8&lt;br /&gt;
|параметр2=Производительность&lt;br /&gt;
|оценка2=7&lt;br /&gt;
|параметр3=Простота использования&lt;br /&gt;
|оценка3=8&lt;br /&gt;
|параметр4=Документация&lt;br /&gt;
|оценка4=7&lt;br /&gt;
|итог=Прогрессирует от бледной копии ''UT'' до статуса самостоятельной игры, который пока не достигнут.&lt;br /&gt;
|рейтинг=8&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок=Спецификации|Содержание=&lt;br /&gt;
* Видеокарта с поддержкой OpenGL (рекомендуется Nvidia 6600 или лучше)&lt;br /&gt;
* 256 МБ ОЗУ&lt;br /&gt;
* Процессор 1 ГГц или быстрее&lt;br /&gt;
* 650 МБ свободного пространства на диске&lt;br /&gt;
* ''glibc6''|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Возьмите&lt;br /&gt;
движок&lt;br /&gt;
от успешной&lt;br /&gt;
стрелялки,&lt;br /&gt;
добавьте&lt;br /&gt;
немного&lt;br /&gt;
жутких&lt;br /&gt;
пришельцев,&lt;br /&gt;
приправьте&lt;br /&gt;
все&lt;br /&gt;
это новыми&lt;br /&gt;
идеями.&lt;br /&gt;
Что получится?&lt;br /&gt;
Вот&lt;br /&gt;
у COR Entertainment получилась&lt;br /&gt;
убойная&lt;br /&gt;
игра&lt;br /&gt;
под названием&lt;br /&gt;
''Alien Arena''. Как можно&lt;br /&gt;
предположить,&lt;br /&gt;
оригинальностью&lt;br /&gt;
она&lt;br /&gt;
не блещет;&lt;br /&gt;
тем не менее, стрелялка&lt;br /&gt;
вышла&lt;br /&gt;
вполне крепкая.&lt;br /&gt;
&lt;br /&gt;
Хотя&lt;br /&gt;
игра&lt;br /&gt;
базируется&lt;br /&gt;
на коде,&lt;br /&gt;
опубликованном&lt;br /&gt;
Id Software (компанией-создателем&lt;br /&gt;
серии&lt;br /&gt;
''Doom''), многие&lt;br /&gt;
ее аспекты&lt;br /&gt;
напоминают&lt;br /&gt;
другую&lt;br /&gt;
игру,&lt;br /&gt;
известную&lt;br /&gt;
в мире&lt;br /&gt;
Linux – ''Unreal Tournament''. Порой&lt;br /&gt;
трудно&lt;br /&gt;
отделаться&lt;br /&gt;
от ощущения,&lt;br /&gt;
что играешь&lt;br /&gt;
в ''UT2004'' с легкой&lt;br /&gt;
модернизацией&lt;br /&gt;
графики.&lt;br /&gt;
&lt;br /&gt;
Сходство&lt;br /&gt;
также распространяется&lt;br /&gt;
и на оружие,&lt;br /&gt;
хотя&lt;br /&gt;
и не без «пришельческих» вывертов.&lt;br /&gt;
В основном&lt;br /&gt;
оружие&lt;br /&gt;
лазерное:&lt;br /&gt;
дизрапторы&lt;br /&gt;
и лучевые&lt;br /&gt;
пистолеты;&lt;br /&gt;
а есть&lt;br /&gt;
еще виолаторы!&lt;br /&gt;
&lt;br /&gt;
Как и все приличные&lt;br /&gt;
командные&lt;br /&gt;
игры, ''Alien Arena''&lt;br /&gt;
полна&lt;br /&gt;
настроек,&lt;br /&gt;
вариантов&lt;br /&gt;
игровых&lt;br /&gt;
режимов&lt;br /&gt;
и мутаторов.&lt;br /&gt;
Гамма «примочек» простирается&lt;br /&gt;
от полезных&lt;br /&gt;
(внезапные атаки,&lt;br /&gt;
быстрое оружие) через&lt;br /&gt;
интересные&lt;br /&gt;
(антигравитация, вампиры, мгновенные&lt;br /&gt;
перемещения) до безумных&lt;br /&gt;
(ристалища).&lt;br /&gt;
И это&lt;br /&gt;
отнюдь&lt;br /&gt;
не макияж:&lt;br /&gt;
добавления&lt;br /&gt;
способны&lt;br /&gt;
радикально&lt;br /&gt;
менять&lt;br /&gt;
динамику&lt;br /&gt;
игры,&lt;br /&gt;
позволяя&lt;br /&gt;
вполне насладиться&lt;br /&gt;
всеми&lt;br /&gt;
шестьюдесятью включенными&lt;br /&gt;
в нее картами.&lt;br /&gt;
&lt;br /&gt;
Простейший&lt;br /&gt;
вариант – игра&lt;br /&gt;
в одиночном&lt;br /&gt;
режиме.&lt;br /&gt;
Выбрав&lt;br /&gt;
уровень&lt;br /&gt;
сложности,&lt;br /&gt;
вы угодите&lt;br /&gt;
в зону&lt;br /&gt;
с двумя&lt;br /&gt;
ботами,&lt;br /&gt;
и грянет бой! Насчет&lt;br /&gt;
стратегии&lt;br /&gt;
боты&lt;br /&gt;
не сильны,&lt;br /&gt;
зато&lt;br /&gt;
владеют&lt;br /&gt;
ракетными&lt;br /&gt;
установками.&lt;br /&gt;
При желании&lt;br /&gt;
испытать&lt;br /&gt;
другие&lt;br /&gt;
режимы,&lt;br /&gt;
попробуйте&lt;br /&gt;
вариант&lt;br /&gt;
'''Host Server''' [Создать&lt;br /&gt;
сервер]&lt;br /&gt;
и настройте&lt;br /&gt;
игру&lt;br /&gt;
соответственно.&lt;br /&gt;
Устроить&lt;br /&gt;
публичный&lt;br /&gt;
турнир&lt;br /&gt;
также&lt;br /&gt;
не составит&lt;br /&gt;
труда,&lt;br /&gt;
и вам смогут&lt;br /&gt;
надрать...&lt;br /&gt;
уши из любой&lt;br /&gt;
точки&lt;br /&gt;
планеты.&lt;br /&gt;
&lt;br /&gt;
Серверный&lt;br /&gt;
режим&lt;br /&gt;
обладает&lt;br /&gt;
отдельным&lt;br /&gt;
набором&lt;br /&gt;
модификаций:&lt;br /&gt;
можно,&lt;br /&gt;
как&lt;br /&gt;
в ''Quake II'', развернуть&lt;br /&gt;
консоль,&lt;br /&gt;
подать команду&lt;br /&gt;
на загрузку&lt;br /&gt;
карт, выгнать&lt;br /&gt;
«тормозных» игроков&lt;br /&gt;
и настроить&lt;br /&gt;
игровой&lt;br /&gt;
движок.&lt;br /&gt;
&lt;br /&gt;
===Пробуем еще===&lt;br /&gt;
&lt;br /&gt;
Разумеется,&lt;br /&gt;
самое&lt;br /&gt;
интересное – нашпиговать&lt;br /&gt;
свинцом&lt;br /&gt;
(или фотонами)&lt;br /&gt;
какого-нибудь незнакомца.&lt;br /&gt;
''Alien Arena'' работает&lt;br /&gt;
с обозревателем серверов ''Fuse''&lt;br /&gt;
(http://chaingun.org/cms/index.php?id=6),&lt;br /&gt;
и вы всегда сможете найти&lt;br /&gt;
соперника&lt;br /&gt;
и посмотреть&lt;br /&gt;
статистику&lt;br /&gt;
своих&lt;br /&gt;
достижений – кстати,&lt;br /&gt;
прекрасный&lt;br /&gt;
способ&lt;br /&gt;
подавить&lt;br /&gt;
прилив&lt;br /&gt;
адреналина.&lt;br /&gt;
&lt;br /&gt;
Игровой&lt;br /&gt;
сервер&lt;br /&gt;
выглядит&lt;br /&gt;
малость&lt;br /&gt;
ненадежным,&lt;br /&gt;
поэтому&lt;br /&gt;
обновляйте&lt;br /&gt;
сведения&lt;br /&gt;
почаще,&lt;br /&gt;
ради&lt;br /&gt;
свежих&lt;br /&gt;
списков.&lt;br /&gt;
К счастью,&lt;br /&gt;
игра&lt;br /&gt;
достаточно&lt;br /&gt;
популярна:&lt;br /&gt;
три-четыре&lt;br /&gt;
игрока&lt;br /&gt;
найдутся&lt;br /&gt;
даже&lt;br /&gt;
в неурочное&lt;br /&gt;
время.&lt;br /&gt;
Публичный&lt;br /&gt;
сервер – вариант&lt;br /&gt;
''Alien Arena'' по умолчанию,&lt;br /&gt;
так что многие&lt;br /&gt;
из них&lt;br /&gt;
принадлежат&lt;br /&gt;
одиноким&lt;br /&gt;
новичкам,&lt;br /&gt;
упражняющимся&lt;br /&gt;
на ботах.&lt;br /&gt;
Разве&lt;br /&gt;
не приятно&lt;br /&gt;
ворваться&lt;br /&gt;
в игру&lt;br /&gt;
и сокрушить&lt;br /&gt;
салагу?&lt;br /&gt;
&lt;br /&gt;
Помимо&lt;br /&gt;
самой&lt;br /&gt;
игры,&lt;br /&gt;
немало&lt;br /&gt;
труда&lt;br /&gt;
вложено&lt;br /&gt;
в ее движок.&lt;br /&gt;
Оригинальный&lt;br /&gt;
вариант&lt;br /&gt;
от Id обзавелся&lt;br /&gt;
32‑битными&lt;br /&gt;
текстурами;&lt;br /&gt;
добавлен&lt;br /&gt;
ряд теневых и световых&lt;br /&gt;
эффектов.&lt;br /&gt;
Игра&lt;br /&gt;
весьма&lt;br /&gt;
рациональна:&lt;br /&gt;
хотя&lt;br /&gt;
для отображения&lt;br /&gt;
всех&lt;br /&gt;
эффектов&lt;br /&gt;
нужен&lt;br /&gt;
довольно&lt;br /&gt;
мощный&lt;br /&gt;
компьютер,&lt;br /&gt;
процессор&lt;br /&gt;
не перегреется&lt;br /&gt;
даже&lt;br /&gt;
в полноэкранном&lt;br /&gt;
режиме.&lt;br /&gt;
Многие&lt;br /&gt;
эффекты&lt;br /&gt;
настраиваются&lt;br /&gt;
через&lt;br /&gt;
меню,&lt;br /&gt;
но наилучший&lt;br /&gt;
выбор – выставить&lt;br /&gt;
все параметры&lt;br /&gt;
на максимум&lt;br /&gt;
качества&lt;br /&gt;
и попробовать&lt;br /&gt;
в режиме&lt;br /&gt;
одиночного&lt;br /&gt;
игрока.&lt;br /&gt;
&lt;br /&gt;
===Озвучиваем===&lt;br /&gt;
&lt;br /&gt;
Качество&lt;br /&gt;
звука&lt;br /&gt;
хорошее – именно&lt;br /&gt;
для этого&lt;br /&gt;
требуется&lt;br /&gt;
обновление&lt;br /&gt;
''OpenAL''. Женский&lt;br /&gt;
голос&lt;br /&gt;
комментатора&lt;br /&gt;
отмечает&lt;br /&gt;
ключевые&lt;br /&gt;
события&lt;br /&gt;
по ходу&lt;br /&gt;
игры,&lt;br /&gt;
но, в отличие&lt;br /&gt;
от ''UT'', голосового&lt;br /&gt;
сопровождения&lt;br /&gt;
выдающихся&lt;br /&gt;
подвигов&lt;br /&gt;
нет. Пока.&lt;br /&gt;
Идет работа&lt;br /&gt;
над реализацией&lt;br /&gt;
обмена&lt;br /&gt;
голосовыми&lt;br /&gt;
сообщениями&lt;br /&gt;
между&lt;br /&gt;
игроками&lt;br /&gt;
(в следующих&lt;br /&gt;
версиях&lt;br /&gt;
игры).&lt;br /&gt;
&lt;br /&gt;
В конечном&lt;br /&gt;
счете&lt;br /&gt;
у ''Alien Arena'' 7.30&lt;br /&gt;
не получится&lt;br /&gt;
свергнуть&lt;br /&gt;
с трона&lt;br /&gt;
''UT2004'' – хотя&lt;br /&gt;
здесь не без&lt;br /&gt;
апломба&lt;br /&gt;
применяются&lt;br /&gt;
многие&lt;br /&gt;
функции&lt;br /&gt;
''UT'': кому&lt;br /&gt;
нужна&lt;br /&gt;
копия,&lt;br /&gt;
если&lt;br /&gt;
доступен&lt;br /&gt;
оригинал?&lt;br /&gt;
&lt;br /&gt;
И все-таки&lt;br /&gt;
элементы&lt;br /&gt;
оригинальности&lt;br /&gt;
в ''Alien Arena'' есть, и мы надеемся,&lt;br /&gt;
что&lt;br /&gt;
с их разрастанием&lt;br /&gt;
игра&lt;br /&gt;
превратится&lt;br /&gt;
в самостоятельный&lt;br /&gt;
продукт.&lt;br /&gt;
&lt;br /&gt;
===Как добыть игру===&lt;br /&gt;
&lt;br /&gt;
''Alien Arena'' – свободная&lt;br /&gt;
и бесплатная&lt;br /&gt;
игра.&lt;br /&gt;
Кроме&lt;br /&gt;
того,&lt;br /&gt;
она&lt;br /&gt;
кроссплатформенная,&lt;br /&gt;
и вы можете&lt;br /&gt;
проучить&lt;br /&gt;
пользователей&lt;br /&gt;
Windows и Mac. Двоичные&lt;br /&gt;
файлы&lt;br /&gt;
для Linux доступны&lt;br /&gt;
на сайте,&lt;br /&gt;
но у&lt;br /&gt;
нас были&lt;br /&gt;
трудности&lt;br /&gt;
с их запуском&lt;br /&gt;
на нашей&lt;br /&gt;
системе,&lt;br /&gt;
из-за зависимости&lt;br /&gt;
''OpenAL''. Если у вас нет '''/usr/lib/libopenal.so.1''', попробуйте&lt;br /&gt;
загрузить&lt;br /&gt;
пакет&lt;br /&gt;
''openal-soft'' для вашего&lt;br /&gt;
дистрибутива,&lt;br /&gt;
это должно&lt;br /&gt;
одолеть&lt;br /&gt;
проблему.&lt;br /&gt;
Однако&lt;br /&gt;
в репозиториях&lt;br /&gt;
могли&lt;br /&gt;
остаться&lt;br /&gt;
устаревшие&lt;br /&gt;
версии,&lt;br /&gt;
и если&lt;br /&gt;
добиться&lt;br /&gt;
результата&lt;br /&gt;
все же не удается – дождитесь&lt;br /&gt;
обновлений.&lt;br /&gt;
Ну, а кому&lt;br /&gt;
не терпится,&lt;br /&gt;
попробуйте&lt;br /&gt;
http://kcat.strangesoft.net/openal.html.&lt;br /&gt;
&lt;br /&gt;
===Больше, лучше, сильнее===&lt;br /&gt;
&lt;br /&gt;
Доработка&lt;br /&gt;
двоичных&lt;br /&gt;
файлов&lt;br /&gt;
куда&lt;br /&gt;
интереснее,&lt;br /&gt;
чем потребление&lt;br /&gt;
их как есть. Карты,&lt;br /&gt;
руководства,&lt;br /&gt;
графика&lt;br /&gt;
и звуки,&lt;br /&gt;
созданные&lt;br /&gt;
членами&lt;br /&gt;
Сообщества – необходимые&lt;br /&gt;
атрибуты&lt;br /&gt;
современного&lt;br /&gt;
геймера.&lt;br /&gt;
Хотя&lt;br /&gt;
по числу дополнений&lt;br /&gt;
игра&lt;br /&gt;
несравнима&lt;br /&gt;
с коммерческими&lt;br /&gt;
брендами,&lt;br /&gt;
сообщество&lt;br /&gt;
моддеров&lt;br /&gt;
процветает.&lt;br /&gt;
Один&lt;br /&gt;
из лучших&lt;br /&gt;
источников&lt;br /&gt;
подробной&lt;br /&gt;
информации – удобное&lt;br /&gt;
руководство&lt;br /&gt;
на сайте&lt;br /&gt;
http://alienarena.co.uk.&lt;br /&gt;
&lt;br /&gt;
===Игровые режимы ''Alien Arena''===&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF123_8_2.jpg]]&lt;br /&gt;
* '''Смертельная схватка'''&lt;br /&gt;
: Убивайте, пока не убили вас, но только не союзников: совместно с ними можно задать врагу хорошую трепку.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF123_8_3.jpg]]&lt;br /&gt;
* '''Захват флага'''&lt;br /&gt;
: Отнимите их сокровище и доставьте в свой лагерь. Если они стырили ваш флаг первыми – убейте их и заберите его обратно.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF123_8_4.jpg]]&lt;br /&gt;
* '''Загон скота'''&lt;br /&gt;
: Загоните робоскот в свой хлев. Вроде и просто, но придется сразиться с врагами и обратить в пар их стадо. Буквально.&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF135:Mantis</id>
		<title>LXF135:Mantis</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF135:Mantis"/>
				<updated>2023-10-13T04:14:53Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF135:Mantis в Слава России и Путину!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Слава России и Путину!]]&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A1%D0%BB%D0%B0%D0%B2%D0%B0_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8_%D0%B8_%D0%9F%D1%83%D1%82%D0%B8%D0%BD%D1%83!</id>
		<title>Слава России и Путину!</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A1%D0%BB%D0%B0%D0%B2%D0%B0_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8_%D0%B8_%D0%9F%D1%83%D1%82%D0%B8%D0%BD%D1%83!"/>
				<updated>2023-10-13T04:14:53Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF135:Mantis в Слава России и Путину!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;: '''''Mantis'''''' Раз­вер­ни­те свою соб­ст­вен­ную сис­те­му от­сле­жи­ва­ния оши­бок&lt;br /&gt;
&lt;br /&gt;
==Ин­ци­ден­ты: Най­ти и обез­вре­дить==&lt;br /&gt;
&lt;br /&gt;
Сис­те­му от­сле­жи­ва­ния оши­бок пре­дос­тав­ля­ет прак­ти­че­ски лю­бая служ­ба хос­тин­га про­ек­тов, но вы мо­же­те за­хо­теть сде­лать все са­ми. Ес­ли это так, то '''Ни­ки­та Шуль­тайс''' го­тов вам по­мочь.&lt;br /&gt;
&lt;br /&gt;
Ес­ли вы пи­ше­те неболь­шую про­грам­му для од­но­курсницы, то возникаю­щие в ней ошиб­ки нетруд­но удер­жать и в го­ло­ве; но когда речь за­хо­дит о серь­ез­ных про­ек­тах, без систе­мы от­сле­жи­вания оши­бок уже не обой­тись. Се­го­дня мож­но най­ти мно­же­ство та­ких про­грамм-«баг­тре­ке­ров» [англ. bug tracker], при­чем рас­про­стра­няе­мых под сво­бод­ны­ми ли­цен­зия­ми, но мы оста­но­вим­ся на ''Mantis''.&lt;br /&gt;
&lt;br /&gt;
===Уста­нов­ка===&lt;br /&gt;
&lt;br /&gt;
Ска­чай­те ''Mantis'' с офи­ци­аль­но­го сай­та (http://www.mantisbt.org), раз­мести­те его на сво­ем сер­ве­ре под управ­лением ''Apache'' и пе­рей-ди­те в брау­зе­ре по за­дан­но­му для ''Mantis'' ад­ре­су, что­бы при­сту­пить непо­сред­ствен­но к уста­нов­ке.&lt;br /&gt;
&lt;br /&gt;
На пер­вом эта­пе про­ис­хо­дит пре­дин­ста­ля­ци­он­ная ди­аг­но­сти­ка: ''Mantis'' про­ве­ря­ет, уста­нов­лен ли ''PHP'' и под­дер­жи­ва­ет ли он безо­пас­ный ре­жим. Тут же нам пред­ла­га­ет­ся вы­брать тип ба­зы дан­ных (''MySQL, MS SQL, PostgreSQL, Oracle'' и др.), при­чем боль­шая часть из них ра­бо­та­ет в экс­пе­ри­мен­таль­ном ре­жи­ме. Да­лее необ­хо­ди­мо вве­сти па­ра­мет­ры БД: имя и па­роль для досту­па, на­звание ба­зы и имя и па­роль ад­минист­ра­то­ра БД (ес­ли тре­бу­ет­ся соз­дать но­вую ба­зу дан­ных). По­сле на­жи­май­те '''Install/Upgrade Database''' и смот­ри­те на ди­аг­но­сти­че­ские со­об­щения.&lt;br /&gt;
&lt;br /&gt;
Обыч­но всё про­хо­дит от­лич­но, и вы ви­ди­те на­про­тив ка­ж­дой стро­ки сло­во '''GOOD''' на зе­ле­ном фоне. Са­мая частая при­чи­на сбоя – за­прет на запись в ди­рек­то­рию про­ек­та, из-за че­го ''Mantis'' не мо­жет соз­дать кон­фи­гу­ра­ци­он­ный файл '''config_inc.php''', по­это­му вам на­до ли­бо за­ранее обес­пе­чить ''Apache'' со­от­вет­ствую­щи­ми пра­ва­ми, ли­бо пе­ре­име­но­вать '''config_inc.php.sample''' в '''config_inc.php''' в корне про­ек­та вруч­ную и за­дать необ­хо­ди­мые на­строй­ки в фай­ле: их мож­но по­смот­реть на той же web-странице в раз­де­ле &lt;br /&gt;
'''Write Configuration File'''. По­сле успеш­ной уста­нов­ки от­крой­те в брау­зе­ре ваш сайт; вам бу­дет пред­ло­же­но вве­сти имя и па­роль, а так­же уда­лить учет­ную запись '''administrator''' или сменить ей па­роль (root по умол­чанию) и уда­лить пап­ку '''admin''' – про­де­лай­те это. Ав­то­ри­зуй­тесь и пер­вым де­лом пе­рей­ди­те по ссыл­ке '''MyAccount''', где в по­ля '''Password''' и '''Confirm password''' вве­ди­те но­вый па­роль, за­тем сно­ва ав­то­ри­зуй­тесь и в ме­ню '''MyAccount &amp;gt; Preferences''' смените язык ['''Language'''] с анг­лий­ско­го на русский.&lt;br /&gt;
&lt;br /&gt;
===Ба­зо­вые на­строй­ки===&lt;br /&gt;
&lt;br /&gt;
Прак­ти­че­ски вся на­строй­ка систе­мы про­из­во­дит­ся вруч­ную с по­мо­щью фай­ла '''config_inc.php''', и пер­вое, что мы предприм­ем – ру­си­фи­ци­ру­ем ''Mantis''. До это­го мы вы­бра­ли язык для един­ст-вен­но­го поль­зо­ва­те­ля систе­мы – ад­минист­ра­то­ра, но ес­ли вы зай­де­те на сайт, на­при­мер, из дру­го­го брау­зе­ра, пе­ред вами от­кро­ет­ся анг­лоя­зыч­ный ин­тер­фейс. Что­бы по­пра­вить дело, до­бавь­те в '''config-inc.php''' две стро­ки:&lt;br /&gt;
&lt;br /&gt;
 $g_default_language = 'russian';&lt;br /&gt;
 $g_language_choices_arr = array('english', 'russian');&lt;br /&gt;
&lt;br /&gt;
Пер­вая от­ве­ча­ет за язык по умол­чанию, а вто­рая – за доступ­ные язы­ки. В на­шем слу­чае по умол­чанию вы­бран русский, а в на­строй­ках учет­ной запи­си мож­но ука­зать еще и анг­лий­ский. Что­бы за­дать на­звание ок­на брау­зе­ра и вкла­док, ис­поль­зуй­те '''$g_window_title''', а за­го­ло­вок, ко­то­рый ото­бра­жа­ет­ся на всех страницах ввер­ху и по цен­тру, за­да­ет­ся в пе­ре­мен­ной '''$g_page_title'''.&lt;br /&gt;
&lt;br /&gt;
Пе­ре­мен­ные '''$g_favicon_image''' и '''$g_logo_image''' со­дер­жат путь до икон­ки сай­та (favicon) и ло­го­ти­па со­от­вет­ствен­но. Эти пе­ре­мен­ные принима­ют путь до изо­бра­жений от­но­си­тель­но ди­рек­то­рии, в ко­то­рой уста­нов­лен ''Mantis'', на­при­мер, '''images/my_logo.jpg'''. Конеч­но, кар­тин­ка долж­на там уже на­хо­дить­ся.&lt;br /&gt;
&lt;br /&gt;
Па­ра­метр '''$g_show_realname = ON'''; за­став­ля­ет систе­му по­ка­зы­вать ре­аль­ное имя поль­зо­ва­те­ля, а не ник. За­меть­те, что во­круг '''ON''' нет ка­вы­чек, так как это не стро­ка, а за­ранее оп­ре­де­лен­ная пе­ре­мен­ная. А ес­ли до­ба­вить в кон­фи­гу­ра­ци­он­ный файл стро­ку '''$g_show_avatar = ON;''' то к ком­мен­та­ри­ям бу­дут под­гру­жать­ся ава­та­ры с сай­та http://www.gravatar.com – конеч­но, ес­ли у ва­ших поль­зо­ва­те­лей есть на нем учет­ная запись.&lt;br /&gt;
&lt;br /&gt;
Пе­ред на­ча­лом прак­ти­че­ско­го ис­поль­зо­вания ''Mantis'' необ­хо­ди­мо так­же про­из­ве­сти несколь­ко нехит­рых дей­ствий: за­дать ка­те­го­рии оши­бок, соз­дать поль­зо­ва­те­лей и про­ек­ты.&lt;br /&gt;
&lt;br /&gt;
===Ка­те­го­рии оши­бок===&lt;br /&gt;
&lt;br /&gt;
Лю­бая ошиб­ка или но­во­вве­дение, ре­ги­ст­ри­руе­мые в систе­ме, долж­ны быть отнесе­ны к оп­ре­де­лен­ной ка­те­го­рии – на­при­мер, при раз­ра­бот­ке сай­та (да­лее по тек­сту мы бу­дем на­страи­вать ''Mantis'' под web-про­ект) мож­но вы­де­лить категории&lt;br /&gt;
* CSS&lt;br /&gt;
* HTML&lt;br /&gt;
* Ввод дан­ных&lt;br /&gt;
* Панель ад­минист­ри­ро­вания&lt;br /&gt;
* Фильт­ра­ция дан­ных&lt;br /&gt;
&lt;br /&gt;
В ''Mantis'' су­ще­ству­ют гло­баль­ные и локаль­ные ка­те­го­рии. Пер­вые доступ­ны для всех про­ек­тов, у ко­то­рых вы­бра­но по­ле '''На­сле­до­вать гло­баль­ные ка­те­го­рии'''; локаль­ные же соз­да­ют­ся для ка­ж­до­го про­ек­та в от­дель­но­сти. До­ба­вить гло­баль­ные ка­те­го­рии мож­но на странице '''Управ­ление &amp;gt; Управ­ление про­ек­та­ми'''. По­ми­мо на­звания, для ка­ж­дой ка­те­го­рии мож­но на­зна­чить от­вет­ствен­но­го: ска­жем, при ре­ги­ст­ра­ции ошиб­ки в CSS или HTML она сра­зу пе­ре­да­ст­ся вер­сталь­щи­ку. Ес­ли от­вет­ствен­ный не оп­ре­де­лен, то ошиб­ки спер­ва про­смат­ри­ва­ет менед­жер про­ек­та, ко­то­рый на­зна­ча­ет ис­полните­ля. За­ме­тим, что от­вет­ствен­ный за ка­те­го­рию дол­жен иметь уро­вень досту­па не ниже уча­стника.&lt;br /&gt;
&lt;br /&gt;
===Управ­ля­ем поль­зо­ва­те­ля­ми===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF135_77_1.jpg|300px]] Воз­мож­но­сти раз­лич­ных ро­лей в сис­те­ме ''Mantis''.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Что­бы на­зна­чать для ка­те­го­рий от­вет­ствен­ных, нуж­но сна­ча­ла до­ба­вить их в систе­му. Это де­ла­ет­ся на странице '''Управ­ление &amp;gt; Управ­ление поль­зо­ва­те­ля­ми'''. На­жми­те на кноп­ку '''Соз­дание но­вой учет­ной запи­си''' и за­полните несколь­ко неслож­ных по­лей.&lt;br /&gt;
&lt;br /&gt;
По­сле соз­дания поль­зо­ва­те­ля вас пе­ре­на­пра­вят на страницу управ­ления его учет­ной запи­сью, где мож­но на­стро­ить все по­ля бо­лее де­таль­но.&lt;br /&gt;
&lt;br /&gt;
В ''Mantis'' су­ще­ству­ет несколь­ко уровней досту­па. Ка­ж­дый сле­дую­щий уро­вень по­лу­ча­ет все воз­мож­но­сти пре­ды­ду­ще­го плюс свои соб­ствен­ные. На­при­мер, &lt;br /&gt;
* '''На­блю­да­тель''' име­ет минималь­ные воз­мож­но­сти, он мо­жет лишь про­смат­ри­вать ошиб­ки.&lt;br /&gt;
* '''Инициа­тор''' мо­жет са­мо­стоя­тель­но до­бав­лять запи­си о най­ден­ных ошиб­ках, от­сле­жи­вать их, а так­же уста­нав­ли­вать ви­ди­мость для во­про­са. Та­кой тип поль­зо­ва­те­ля от­лич­но по­дой­дет для тесте­ров.&lt;br /&gt;
* '''Ре­дак­тор''' мо­жет из­ме­нять основ­ные па­ра­мет­ры ошиб­ки: серь­ез­ность, воспро­из­во­ди­мость, со­стояние, при­ори­тет, ви­ди­мость, ре­шение и т. д.&lt;br /&gt;
* '''Уча­стник, ру­ко­во­ди­тель и ад­минист­ра­тор''' име­ют поч­ти оди­на­ко­вый на­бор прав, оз­на­ко­мить­ся с ко­то­ры­ми и из­менить их мож­но на странице '''Управ­ление &amp;gt; Управ­ление кон­фи­гу­ра­ци­ей &amp;gt; По­ро­ги про­цес­са'''.&lt;br /&gt;
&lt;br /&gt;
Один поль­зо­ва­тель мо­жет иметь несколь­ко уровней досту­па: один гло­баль­ный и несколь­ко ин­ди­ви­ду­аль­ных (для ка­ж­до­го из про­ек­тов). Ес­ли в про­ек­те яв­но не ука­зы­вать уро­вень досту­па поль­зо­ва­те­ля, то ис­поль­зу­ет­ся гло­баль­ный.&lt;br /&gt;
&lt;br /&gt;
Те­перь, когда учет­ная запись соз­да­на, мож­но на­зна­чить её от­вет­ствен­ной за ка­кую-нибудь ка­те­го­рию. Ес­ли вы раз­ра­ба­ты­вае­те ком­мер­че­ский про­ект или же у вас есть дру­гие при­чи­ны ог­раничить доступ к ''Mantis'', то в кон­фи­гу­ра­ци­он­ный файл сле­ду­ет до­ба­вить стро­ку&lt;br /&gt;
&lt;br /&gt;
 $g_allow_signup = OFF;&lt;br /&gt;
&lt;br /&gt;
ко­то­рая за­пре­тит поль­зо­ва­те­лям ре­ги­ст­ри­ро­вать­ся в сис­те­ме. Ес­ли мы до­ба­вим '''$g_send_reset_password = OFF;''' то за­быв­чивые поль­зо­ва­те­ли не смо­гут вос­ста­но­вить свой па­роль в ав­то­ма­ти­че­ском ре­жи­ме: им при­дет­ся об­ра­щать­ся к ад­ми­ни­ст­ра­то­ру сай­та.&lt;br /&gt;
&lt;br /&gt;
 $g_max_failed_login_count = OFF;&lt;br /&gt;
&lt;br /&gt;
снима­ет ог­раничение по ко­ли­че­ству по­пы­ток ав­то­ри­зо­вать­ся. За­мените '''OFF''' на ка­кое-нибудь чис­ло, и зло­умыш­ленники не смо­гут бесконеч­но под­би­рать па­ро­ли учет­ных запи­сей. С по­мо­щью па­ра­мет­ра '''$g_signup_use_captcha''' мож­но вклю­чить или вы­клю­чить ото­бра­жение ко­да под­твер­ждения (Captcha) при ре­ги­ст­ра­ции.&lt;br /&gt;
&lt;br /&gt;
===Соз­дание про­ек­та===&lt;br /&gt;
&lt;br /&gt;
''Mantis'' – мно­го­поль­зо­ва­тель­ская и мно­го­про­ект­ная сре­да, и пре­ж­де чем до­бав­лять ошиб­ки, нуж­но соз­дать хо­тя бы один про­ект. Пе­рей­ди­те в меню '''Управ­ление &amp;gt; Управ­ление про­ек­та­ми''' и на­жми­те на кноп­ку '''Соз­дать но­вый про­ект'''. Пе­ред ва­ми поя­вит­ся фор­ма с несколь­ки­ми по­ля­ми:&lt;br /&gt;
* '''На­звание про­ек­та.'''&lt;br /&gt;
* '''Со­стояние''' Раз­ра­ба­ты­вае­мый, вы­пу­щен­ный, ста­биль­ный, уста­рев­ший.&lt;br /&gt;
* '''Ви­ди­мость''' Ес­ли вы­брать '''Об­щая''', то ошиб­ки, за­ре­ги­ст­ри­ро­ван­ные для про­ек­та, бу­дут доступ­ны лю­бо­му поль­зо­ва­те­лю; ес­ли вы­брать '''Ог­раничен­ная''', то данный про­ект смо­гут уви­деть толь­ко те поль­зо­ва­те­ли, ко­то­рые «свя­за­ны» с про­ек­том вруч­ную, и ад­минист­ра­то­ры.&lt;br /&gt;
* '''На­сле­до­вать гло­баль­ные ка­те­го­рии''' О них мы пи­са­ли вы­ше.&lt;br /&gt;
* '''Путь для за­гру­жае­мых фай­лов''' Мож­но ука­зать как аб­со­лют­ный путь, так и путь от ка­та­ло­га, в ко­то­ром на­хо­дит­ся ''Mantis''. Глав­ное, что­бы все ди­рек­то­рии су­ще­ство­ва­ли и у web-сер­ве­ра бы­ли пра­ва на запись в них. По умол­чанию фай­лы всё рав­но бу­дут со­хра­нять­ся в ба­зе дан­ных; что­бы из­менить та­кое по­ве­дение, до­бавь­те стро­ку '''$g_file_upload_method = DISK;''' в кон­фи­гу­ра­ци­он­ный файл. Кро­ме за­груз­ки на диск и в ба­зу дан­ных, мож­но пе­ре­да­вать фай­лы по FTP. Необ­хо­ди­мые для это­го на­строй­ки ука­за­ны в до­ку­мен­та­ции. Так же мож­но за­дать мак­си­маль­ный раз­мер за­гру­жае­мых фай­лов, до­пусти­мые и за­пре­щен­ные фор­ма­ты.&lt;br /&gt;
* Для бо­лее де­таль­но­го опи­сания про­ек­та за­полните по­ле '''Под­роб­но­сти'''.&lt;br /&gt;
&lt;br /&gt;
По­сле то­го как про­ект соз­дан, ста­но­вят­ся доступ­ны­ми мно­же­ство на­стро­ек: на­до лишь пе­рей­ти на страницу про­ек­та, ко­то­рая со­сто­ит из несколь­ких бло­ков. Сна­ча­ла идет блок под­про­ек­тов – бо­лее мел­ких про­ек­тов, вхо­дя­щих в круп­ный. На­при­мер, при раз­ра­бот­ке го­род­ско­го ин­тернет-пор­та­ла мож­но вы­де­лить в под­про­ек­ты но­во­ст­ной пор­тал, сер­вис по­иска ра­бо­ты, про­да­жу недви­жи­мо­сти и т. д. За­тем идет блок ка­те­го­рий: ввер­ху рас­по­ло­же­ны гло­баль­ные ка­те­го­рии, внизу – локаль­ные, ко­то­рые за­да­ют­ся тут же на странице. В сле­дую­щем бло­ке мы соз­да­ем вер­сии про­ек­та. Про­став­ляя га­лоч­ки на­про­тив со­от­вет­ствую­щих по­лей, мож­но от­ме­тить вер­сию как вы­пу­щен­ную или уста­рев­шую, или, ес­ли оста­вить по­ля пусты­ми, то вер­сия бу­дет на­хо­дит­ся в про­цес­се раз­ра­бот­ки. Са­мый нижний блок от­ве­ча­ет за поль­зо­ва­те­лей, ко­то­рые долж­ны по­лу­чить доступ к про­ек­ту. Ес­ли ви­ди­мость про­ек­та за­да­на как '''Об­щая''' и нет ни од­но­го поль­зо­ва­те­ля, свя­зан­но­го с ним, то все уча­стники бу­дут иметь доступ в со­от­вет­ствии с на­строй­ка­ми сво­ей учет­ной запи­си. Ес­ли ви­ди­мость про­ек­та ог­раниче­на, нуж­но на­зна­чить ка­ж­до­го уча­стника и его роль в про­ек­те вруч­ную. Для это­го вы­бе­ри­те нуж­но­го че­ло­ве­ка из спи­ска поль­зо­ва­те­лей, ко­то­рые доступ­ны в систе­ме, оп­ре­де­ли­те для него уро­вень досту­па и на­жми­те на кноп­ку '''До­ба­вить'''.&lt;br /&gt;
&lt;br /&gt;
Когда поль­зо­ва­тель до­ба­вит­ся в про­ект, в окне''' Управ­ление учет­ны­ми запи­ся­ми''' в по­ле '''Дей­ствия''' для это­го уча­стника бу­дет доступ­на кноп­ка '''Уда­лить''', ко­то­рая не уда­ля­ет поль­зо­ва­те­ля из систе­мы, а лишь раз­ру­ша­ет его связь с про­ек­том.&lt;br /&gt;
&lt;br /&gt;
===За­ре­ги­ст­ри­ру­ем ошиб­ку===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF135_78_1.jpg|300px]] Так вы­гля­дит список ин­ци­ден­тов.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Прой­дя сквозь деб­ри на­стро­ек, мы до­б­ра­лись до ре­ги­ст­ра­ции оши­бок, ко­то­рые в вер­сии 1.2 на­зы­ва­ют­ся «ин­ци­ден­та­ми», а рань­ше бы­ли «во­про­са­ми». На са­мом де­ле под ин­ци­ден­том мо­жет ре­ги­ст­ри­ро­вать­ся не толь­ко ошиб­ка, но и об­ра­щение поль­зо­ва­те­ля в служ­бу под­держ­ки или за­планиро­ван­ное но­во­вве­дение.&lt;br /&gt;
&lt;br /&gt;
Кликните на ссыл­ку '''Соз­дать ин­ци­дент''' в верхнем ме­ню. Пе­ред ва­ми от­кро­ет­ся фор­ма со мно­же­ством по­лей, ко­то­рые нам пред­сто­ит за­полнить. В пер­вой строч­ке мы вы­би­ра­ем ка­те­го­рию во­про­са из спи­ска, сфор­ми­ро­ван­но­го на­ми ранее. Сле­дую­щее по­ле от­ве­ча­ет за воспро­из­во­ди­мость ошиб­ки. Одни про­бле­мы возника­ют у всех поль­зо­ва­те­лей, дру­гие – толь­ко в оп­ре­де­лен­ных вер­си­ях брау­зе­ра, а ошиб­ки про­ек­ти­ро­вания вро­де '''Race Condition''' про­яв­ля­ют­ся в слу­чай­ные мо­мен­ты вре­мени и «за­ти­ха­ют» при по­пыт­ке их лока­ли­зо­вать.&lt;br /&gt;
&lt;br /&gt;
Да­лее оп­ре­де­ля­ет­ся серь­ез­ность ошиб­ки, при­чем пер­вым в спи­ске сто­ит пункт '''Но­во­вве­дение''', ко­то­рый от­ве­ча­ет за бу­ду­щие воз­мож­но­сти про­грам­мы. Осталь­ные пунк­ты сле­ду­ют в по­ряд­ке уве­ли­чения серь­ез­но­сти. Еще одним па­ра­мет­ром важ­но­сти ошиб­ки яв­ля­ет­ся '''При­ори­тет''' её об­ра­бот­ки и ре­шения.&lt;br /&gt;
&lt;br /&gt;
Сле­дую­щая груп­па по­лей от­ве­ча­ет за плат­фор­му, на ко­то­рой за­ре­ги­ст­ри­ро­ва­на ошиб­ка, а так­же за опе­ра­ци­он­ную систе­му и её вер­сию. Нам пред­ла­га­ет­ся вы­брать про­филь или за­полнить дан­ные вруч­ную. Сей­час ни один про­филь не досту­пен, но его все­гда мож­но до­ба­вить в раз­де­ле '''Управ­ление &amp;gt; Управ­ление гло­баль­ны­ми про­фи­ля­ми'''. Для web-сай­тов они обыч­но остав­ля­ют­ся пусты­ми, по­то­му что web-при­ло­жения ра­бо­та­ют внут­ри брау­зе­ра, а не ОС.&lt;br /&gt;
&lt;br /&gt;
В по­ле '''Вер­сия про­дук­та''' ука­зы­ва­ет­ся вер­сия, в ко­то­рой была за­ре­ги­ст­ри­ро­ва­на ошиб­ка. При­чем в спи­ске вы­бо­ра доступ­ны толь­ко те вер­сии, ко­то­рые сей­час ак­ту­аль­ны – от­ме­чен­ные как «уста­рев­шие» ту­да не по­па­да­ют. Еще од­но важ­ное по­ле – это '''Це­ле­вая вер­сия''', т. е. вер­сия, в ко­то­рой пред­по­ла­га­ет­ся ре­шить эту про­бле­му. Ес­ли вы­брать раз­ра­ба­ты­вае­мую вер­сию про­дук­та, то ин­ци­дент по­па­дет на страницу '''План раз­ви­тия''', ссыл­ка на ко­то­рую на­хо­дит­ся в верхнем ме­ню. Вы все­гда мо­же­те зай­ти на эту страницу и по­смот­реть, как об­сто­ят де­ла с но­вы­ми про­ек­та­ми, сколь­ко про­цен­тов но­во­вве­дений и оши­бок уже за­кры­то и ка­кие оста­лись до за­пуска.&lt;br /&gt;
&lt;br /&gt;
Ме­ж­ду те­ку­щей и це­ле­вой вер­си­ей на­хо­дит­ся по­ле '''На­зна­чить''', в ко­то­ром мож­но вы­брать от­вет­ствен­но­го за ошиб­ку. Ес­ли вы уже вы­бра­ли ка­те­го­рию, к ко­то­рой при­кре­п­лен ис­полнитель, то мож­но остав­лять по­ле пустым; его так­же мож­но не за­пол­нять, по­ка не станет яс­но, кто бу­дет от­ве­чать за ин­ци­дент. Ес­ли для ка­те­го­рии оп­ре­де­лен ис­полнитель, а вы на­зна­чае­те дру­го­го уча­стника, то зна­чение по умол­чанию бу­дет пе­ре­оп­ре­де­ле­но. За­ме­тим, что за­да­вать це­ле­вую вер­сию и ис­полните­ля мо­гут толь­ко чле­ны с уровнем досту­па не ниже уча­стника. Инициа­то­ры и ре­дак­то­ры мо­гут толь­ко ука­зы­вать вер­сию про­грам­мы, в ко­то­рой бы­ла об­на­ру­же­на ошиб­ка.&lt;br /&gt;
&lt;br /&gt;
Те­перь са­мое вре­мя опи­сать са­му ошиб­ку. Для это­го пред­на­зна­че­ны обя­за­тель­ные по­ля '''Суть''' и '''Под­роб­но­сти''', а так­же необя­за­тель­ные '''Ша­ги по воспро­из­ве­дению''' и '''До­полнитель­ные све­дения'''. В кон­це вы мо­же­те при­ло­жить к ошиб­ке файл – на­при­мер, эк­ран­ный снимок – а так­же ука­зать для ошиб­ки ви­ди­мость.&lt;br /&gt;
&lt;br /&gt;
Ес­ли есть ве­ро­ят­ность то­го, что ошиб­ку мо­гут уви­деть зло­умыш­ленники и за­тем ис­поль­зо­вать её в сво­их це­лях, ви­ди­мость сле­ду­ет ог­раничить. Ес­ли же боль­шая часть оши­бок не долж­на быть доступ­на об­ще­ствен­но­сти, то до­бавь­те в кон­фи­гу­ра­ци­он­ный файл стро­ку '''$g_default_bug_view_status = VS_PRIVATE;''' что­бы по умол­чанию вы­би­ра­лась ог­раничен­ная ви­ди­мость.&lt;br /&gt;
&lt;br /&gt;
На­жми­те на кноп­ку '''Со­хранить ин­ци­дент''', что­бы за­ре­ги­ст­ри­ро­вать ошиб­ку в ба­зе дан­ных.&lt;br /&gt;
&lt;br /&gt;
===На­стро­им по­ля===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF135_78_2.jpg|300px]] Ошиб­ки в ''Mantis'' мо­гут на­хо­дить­ся в раз­лич­ных со­стоя­ни­ях.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Как я уже упо­мя­нул, для web-про­ек­тов нет боль­шой разницы, в ка­кой ОС они ра­бо­та­ют, а вот в ка­ком брау­зе­ре – есть. Прав­да, в фор­ме до­бав­ления ин­ци­ден­та нет та­ко­го по­ля, но мы мо­жем его соз­дать. Зай­ди­те в '''Управ­ление &amp;gt; Управ­ление на­страи­вае­мы­ми по­ля­ми''', вве­ди­те на­звание по­ля (ла­тиницей, browser) и на­жми­те '''Соз­дать на­страи­вае­мое по­ле''', по­сле че­го вас пе­ренесет на страницу де­таль­ной кон­фи­гу­ра­ции. Здесь вы мо­же­те из­менить имя по­ля, за­дать его тип (спи­сок, це­лое, ве­ще­ствен­ное и т. д.) или оп­ре­де­лить до­пусти­мые зна­чения с по­мо­щью ре­гу­ляр­но­го вы­ра­жения. Вы так­же мо­же­те вы­брать зна­чение по умол­чанию и за­да­вать па­ра­мет­ры досту­па и ото­бра­жения по­ля.&lt;br /&gt;
&lt;br /&gt;
До­ба­вим спи­сок со мно­же­ствен­ным вы­бо­ром из по­пу­ляр­ных ин­тернет-брау­зе­ров – для это­го вы­бе­ри­те со­от­вет­ствую­щий тип, а в по­ле '''До­пусти­мые зна­чения''' вве­ди­те без ка­вы­чек раз­де­лен­ные вер­тикаль­ной чер­той на­звания брау­зе­ров '''лю­бой|Opera 8.x|Opera 9.x|Internet Explorer 8.x|Internet Explorer 9.x|Firefox 2.x|Firefox 3.x|дру­гой'''. В ка­че­стве зна­чения по умол­чанию уста­но­ви­те «лю­бой». От­крой­те доступ на чтение на­блю­да­те­лю, а инициа­то­ру по­зволь­те запись. За­тем раз­ре­ши­те по­ка­зы­вать по­ле при соз­дании и из­менении ин­ци­ден­та, уста­но­вив га­лоч­ки в со­от­вет­ствую­щих по­лях, и на­жми­те на кноп­ку '''Из­менить на­страи­вае­мое по­ле'''. По­сле сно­ва зай­ди­те в на­страи­вае­мое по­ле и при­вя­жи­те его к ва­шим про­ек­там.&lt;br /&gt;
&lt;br /&gt;
Те­перь при соз­дании ошиб­ки вам бу­дет пред­ло­же­но вы­брать брау­зе­ры, в ко­то­рых она возника­ет. Един­ствен­ный ми­нус – имя по­ля ото­бра­жа­ет­ся ла­тиницей, но это мы лег­ко ис­пра­вим. От­крой­те файл '''lang/strings_russian.txt''' и до­бавь­те в конец стро­ку&lt;br /&gt;
&lt;br /&gt;
 $s_browser = 'Браузер';&lt;br /&gt;
&lt;br /&gt;
===Про­смотр===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF135_79_1.jpg|300px]] Ста­ти­сти­ка всех ин­ци­ден­тов, за­ре­ги­ст­ри­ро­ван­ных в ''Mantis''.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
До­бав­лен­ные ошиб­ки и но­во­вве­дения мож­но по­смот­реть на странице '''Спи­сок ин­ци­ден­тов''' (верхнее ме­ню). Она со­сто­ит из двух частей: фильт­ра и соб­ствен­но спи­ска ин­ци­ден­тов. По умол­чанию фильтр свер­нут, и что­бы ис­поль­зо­вать всю его мощь, кликните на сим­вол '''+''' (плюс) сле­ва от сло­ва '''По­иск'''. Пе­ред ва­ми раскро­ет­ся мно­же­ство по­лей, ко­то­рые мож­но из­ме­нять, щел­кая по на­званиям, под­черк­ну­тым и вы­де­лен­ным синим цве­том как ссыл­ки. По­сле вы­бо­ра нуж­ных зна­чений на­жми­те на кноп­ку '''Фильт­ро­вать''' и смот­ри­те ре­зуль­тат.&lt;br /&gt;
&lt;br /&gt;
Фильт­ры мож­но со­хра­нять для по­сле­дую­ще­го ис­поль­зо­вания или соз­да­вать на них по­сто­ян­ные ссыл­ки, в том чис­ле и ко­рот­кие (TinyURL). Сра­зу под фильт­ром идет раз­но­цвет­ный спи­сок ин­ци­ден­тов. Ка­ж­дая стро­ка от­ве­ча­ет за од­ну ошиб­ку или но­во­вве­дение, а её цвет – за со­стояние во­про­са, ко­то­рое так­же пи­шет­ся в столб­це '''Со­стояние''' вме­сте с именем ис­полните­ля (ес­ли он на­зна­чен).&lt;br /&gt;
&lt;br /&gt;
Стол­бец с бу­к­вой «'''П'''» от­ве­ча­ет за при­ори­тет ин­ци­ден­та. При­ори­те­ты ото­бра­жа­ют­ся гра­фи­че­ски в ви­де чер­то­чек (низ­кий при­ори­тет) и пе­ре­вер­ну­тых га­ло­чек (вы­со­кий); чис­ло чер­то­чек и га­ло­чек варь­и­ру­ет­ся в за­ви­си­мо­сти от сте­пени важ­но­сти. &lt;br /&gt;
&lt;br /&gt;
Сле­дую­щий стол­бец со­дер­жит се­ми­знач­ные но­ме­ра оши­бок, а за ним сле­ду­ет ко­лон­ка с на­званием '''#''', ко­то­рая от­ве­ча­ет за на­ли­чие и ко­ли­че­ство ком­мен­та­ри­ев к ин­ци­ден­ту. На­зна­чение осталь­ ных столб­цов по­нят­но из их на­званий.&lt;br /&gt;
&lt;br /&gt;
Оста­но­вим­ся на да­те – сей­час она пред­став­ле­на в ино­стран­ном фор­ма­те '''ГГГГ-MM-ДД''', что неудоб­но для русскоя­зыч­ных поль­зо­ва­те­лей. Ис­пра­вить та­кое по­ве­дение мож­но, до­ба­вив в кон­фи­гу­ра­&lt;br /&gt;
ци­он­ный файл стро­ки:&lt;br /&gt;
&lt;br /&gt;
 $g_short_date_format = 'd.m.y';&lt;br /&gt;
 $g_normal_date_format = 'd.m.y H:i';&lt;br /&gt;
 $g_complete_date_format = 'd.m.Y H:i';&lt;br /&gt;
&lt;br /&gt;
По­ми­мо стан­дарт­ных столб­цов, мож­но по­ка­зы­вать и свои соб­ствен­ные (в том чис­ле на­страи­вае­мые) по­ля. До­ба­вим, на­при­мер, ко­лон­ку с на­званием брау­зе­ров. Зай­ди­те в '''Управ­ление &amp;gt; Управ­ление кон­фи­гу­ра­ци­ей &amp;gt; Ото­бра­жае­мые столб­цы'''. В по­ле '''Все имею­щие­ся столб­цы''' най­ди­те '''custom_browser''' и ско­пи­руй­те его в по­ле '''Про­смотр ин­ци­ден­тов''', пред­ва­ри­тель­но по­ста­вив за­пя­тую.&lt;br /&gt;
&lt;br /&gt;
===Ра­бо­чий про­цесс===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF135_79_2.jpg|300px]] Стра­ни­ца «Моя свод­ка».|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Соз­да­вать и про­смат­ри­вать ошиб­ки мы нау­чи­лись; по­ра уз­нать, как их из­ме­нять и ка­ким об­ра­зом ошиб­ки пе­ре­хо­дят из од­но­го со­стояния в дру­гое. Са­мый про­стой спо­соб внести из­менения – это вы­брать нуж­ную запись из спи­ска ин­ци­ден­тов с по­мо­щью «га­ло­чек», а за­тем при­менить од­но из бы­ст­рых дей­ствий, доступ­ных под таб­ли­цей. На­при­мер, вы­би­ра­ем ошиб­ки без ис­полните­ля, '''На­зна­чить''' и жмем '''ОK''', а на сле­дую­щей странице ука­зы­ва­ем от­вет­ствен­но­го. Из­менить ка­ж­дую ошиб­ку в от­дель­но­сти мож­но, щелк­нув по икон­ке с ка­ран­да­шом. И тре­тий ва­ри­ант – это зай­ти на страницу с опи­санием ин­ци­ден­та (клик­нув на его но­ме­ре) и ра­бо­тать с кноп­ка­ми под стро­кой '''Вло­жен­ные фай­лы'''.&lt;br /&gt;
&lt;br /&gt;
Как вы уже по­ня­ли, ошиб­ки мо­гут быть в несколь­ких со­стояниях:&lt;br /&gt;
* '''Но­вый''' Ошиб­ка толь­ко что соз­да­на, и по­ка не яс­но, кто её бу­дет ре­шать. Обыч­но но­вые ошиб­ки до­бав­ля­ют тести­ров­щи­ки.&lt;br /&gt;
* '''Ну­жен от­клик''' Ис­поль­зу­ет­ся, когда ошиб­ка соз­да­на нестан­дарт­ным спо­со­бом – на­при­мер, за­кры­та и опять во­зоб­нов­ле­на.&lt;br /&gt;
* '''Рас­смот­рен''' Ошиб­ка про­смот­ре­на раз­ра­бот­чи­ка­ми и яв­ля­ет­ся вполне до­пусти­мой, но по­ка её никто не по­вто­рил.&lt;br /&gt;
* '''Под­твер­жден''' Раз­ра­бот­чи­ки смог­ли воспро­из­ве­сти ошиб­ку, но еще не на­зна­чен от­вет­ствен­ный за её ре­шение.&lt;br /&gt;
* '''На­зна­чен''' Оп­ре­де­лен от­вет­ствен­ный за эту ошиб­ку.&lt;br /&gt;
* '''От­ра­бо­тан''' Ошиб­ка ре­ше­на, но еще не про­ве­ре­на инициа­то­ром – на­при­мер, тести­ров­щи­ком, ко­то­рый её до­ба­вил.&lt;br /&gt;
* '''За­кры­та''' – ошиб­ка ре­ше­на и про­ве­ре­на инициа­то­ром. Имен­но инициа­тор и за­кры­ва­ет её.&lt;br /&gt;
&lt;br /&gt;
Кро­ме со­стояний, жизнен­ный цикл оши­бок оп­ре­де­ля­ет­ся ре­шением (от­крыт, ре­шен, по­втор­но от­крыт и т. д.). Раз­лич­ные со­че­тания со­стояний и ре­шений да­ют яс­ную кар­ти­ну, в ка­кой ста­дии ошиб­ка на­хо­дит­ся сей­час и ка­кие уже про­шла. По­смот­реть эту ин­фор­ма­цию мож­но на странице ошиб­ки в бло­ке '''Исто­рия из­менений'''.&lt;br /&gt;
&lt;br /&gt;
Кро­ме про­смот­ра спи­ска ин­ци­ден­тов, ''Mantis'' по­зво­ля­ет по­лу­чать раз­лич­ные сре­зы и от­че­ты об ошиб­ках. Пер­вым яв­ля­ет­ся свод­ка ав­то­ри­зо­ван­но­го поль­зо­ва­те­ля (пункт верхнего ме­ню '''Моя свод­ка'''), где уча­стник систе­мы мо­жет по­смот­реть все ин­ци­ден­ты, ко­то­рые как-то с ним свя­за­ны. Вто­рым яв­ля­ет­ся ста­ти­с­тика всех ин­ци­ден­тов, за­ре­ги­ст­ри­ро­ван­ных в ''Mantis''.&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%9A%D0%BE%D0%B3%D0%B4%D0%B0_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F_%D0%BF%D0%BE%D0%B1%D0%B5%D0%B4%D0%B8%D1%82%3F</id>
		<title>Когда Россия победит?</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%9A%D0%BE%D0%B3%D0%B4%D0%B0_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F_%D0%BF%D0%BE%D0%B1%D0%B5%D0%B4%D0%B8%D1%82%3F"/>
				<updated>2023-10-13T04:14:41Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;: '''''Blender''''' Нетривиальные приемы 3D-моделирования для жаждущих большего, чем основы&lt;br /&gt;
&lt;br /&gt;
==''Blender'': Содвинем бокалы==&lt;br /&gt;
&lt;br /&gt;
{{Цикл/Blender}}&lt;br /&gt;
&lt;br /&gt;
: '''Часть 3''': Наша серия уроков подходит к своему логическому концу. По этому поводу можно и бокал шампанского налить, считает ее автор '''Андрей Прахов'''.&lt;br /&gt;
&lt;br /&gt;
На прошлых занятиях мы с вами сервировали небольшой столик для романтического ужина. Расставлены фужеры, горят свечи, льется мягкий свет, но чего-то не хватает! Правильно: весь вечер сидеть и любоваться на пустые бокалы – это занятие не для нас. Так давайте наполним их вином!&lt;br /&gt;
&lt;br /&gt;
===Немного теории===&lt;br /&gt;
&lt;br /&gt;
''Blender'', как и любой другой мощный инструмент трехмерного моделирования, умеет работать с физикой жидкостей. Данная возможность появилась относительно недавно, если говорить не о времени, а о номерах версий программы. Следствием этого является слабая документированность. Пара-тройка примеров – вот и все, на что вы можете рассчитывать на официальном сайте. Но и этого достаточно, чтобы разобраться в имеющихся настройках. Другой вопрос в том, что в процессе имитации может участвовать не всякий объект, и некоторая доработка «напильником», а иногда и «танцы с бубнами» будут вам обеспечены. Но хватит о грустном: в конце концов, предназначение этой статьи и есть в «подстилании соломки» ищущим знания.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF125_64_1.jpg|300px|Рис. 1]] Рис. 1. Настройки режима '''Domain'''.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Так как эта часть урока отводится теоретическому вступлению в физику жидкостей, то забудьте на время об имеющемся проекте «Романтический ужин», а просто вчитывайтесь и иногда экспериментируйте в новой сцене.&lt;br /&gt;
&lt;br /&gt;
Основополагающим краеугольным камнем физики жидкости в ''Blender'' является понятие «'''домен'''» ['''Domain''']. Этим термином обозначается некоторая область сцены, в пределах которой будут производится необходимые расчеты. Все, что не попадает в домен, в процессе имитации участвовать не будет. Это правило распространяется и на те объекты, которые оказались в домене некоторой своей частью. Например, если наш фужер поставить на условной границе домена и «наполнить» жидкостью, то она остановится ровно по границе. В качестве домена может выступать любой Mesh-объект, но так как физика жидкостей работает только с ограничивающим '''параллелепипедом''' ['''bounding box'''], то логично использовать примитив '''Cube'''.&lt;br /&gt;
&lt;br /&gt;
Еще одним обязательным компонентом является '''объект-источник''' ['''Fluid''']. Здесь никаких ограничений на формы объекта нет: единственно, он должен быть из группы '''Mesh'''.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим, как взаимодействуют оба компонента. При запуске просчета объект-домен принимает форму объекта-источника и постепенно перетекает на первоначальное место своего расположения. Сложно представить? Тогда немного попрактикуемся. Создайте новый проект и переключитесь в окно просмотра&lt;br /&gt;
'''Camera''' ('''0''' на цифровой клавиатуре). Уже имеющийся в центре куб послужит нам в качестве домена. Отмасштабируйте его до желаемого размера. Теперь добавьте в сцену сферу и разместите ее так, чтобы она находилась внутри куба. Для удобства манипулирования переключитесь в режим '''Wireframe''' клавишей '''Z'''.&lt;br /&gt;
&lt;br /&gt;
Отлично, теперь приступаем к настройке физики. Выделите '''Cube''' и нажмите уже известную вам кнопку '''Physics Buttons''' ([[LXF124:Blender|LXF124]]). На сей раз нас интересует панель '''Fluid''' с единственной пока одноименной кнопочкой. Включите ее.&lt;br /&gt;
&lt;br /&gt;
Появятся восемь дополнительных кнопок, позволяющих указать режим имитации для выделенного объекта. Естественно, нас интересует кнопка '''Domain''' (рис. 1).&lt;br /&gt;
&lt;br /&gt;
Так как это основные настройки физики жидкости, рассмотрим их подробнее.&lt;br /&gt;
&lt;br /&gt;
Первое, что бросается в глаза – это крупная кнопка с названием '''Bake''' [Выпечка]. Не думайте, что достаточно настроить физику жидкостей, нажать заветные '''Alt+A''' – и ''Blender'' резво начнет анимацию действия в сцене. В отличие от уже рассмотренных ранее частиц и физики мягких тел, просчет жидкостей необходимо выполнить заранее. Именно эта кнопка активирует так называемую «выпечку мешей». Перед ней необходимо подготовить место для кэша, указав путь в поле '''Path'''. По умолчанию ''Blender'' использует каталог '''/tmp'''.&lt;br /&gt;
&lt;br /&gt;
На окончательное качество картинки влияют следующие настройки:&lt;br /&gt;
* '''Resolution''' Здесь поле '''Res''' позволяет выбрать необходимое разрешение для рендера, а поле '''Prev-Res''' – для окна программы. Конечно, желательно использовать несколько большее значение '''Res''', чем предлагаемое по умолчанию. Внимание: даже незначительное увеличение выходного разрешения на какой-нибудь десяток единиц приведет к серьезной нагрузке на систему; к тому же излишне высокое разрешение негативно сказывается&lt;br /&gt;
на качестве имитации!&lt;br /&gt;
* '''Disp.-Qual''' Выбор режима качества для окна программы и рендера, соответственно.&lt;br /&gt;
&lt;br /&gt;
Пока оставьте настройки домена по умолчанию.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF125_65_1.jpg|300px|Рис. 2]] Рис. 2. Результат работы тестового примера.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Теперь займемся объектом-источником. Выделите сферу, откройте панель '''Fluid''' и нажмите кнопку '''Fluid'''. Опций здесь минимум, но они чрезвычайно важны для настройки течения. Группа кнопок '''Volume Init''' позволяет определить, как жидкость будет обтекать имеющийся объект в домене:&lt;br /&gt;
* '''Volume''' По умолчанию активна именно она. Жидкость обтекает вокруг объекта.&lt;br /&gt;
* '''Shell''' Если объект имеет полую форму (к примеру, чашка), включите эту кнопку.&lt;br /&gt;
* '''Both''' Режим, объединяющий первые два.&lt;br /&gt;
&lt;br /&gt;
По умолчанию, жидкость всегда стремится вниз по координате '''Z'''. Если нужно иное направление, то измените переменные в группе '''Initial Velocity'''.&lt;br /&gt;
&lt;br /&gt;
В нашем случае, оставьте все как есть. Выделите еще раз объект-домен и нажмите кнопку '''Bake''' (рис. 2).&lt;br /&gt;
&lt;br /&gt;
===Выбираем тип жидкости===&lt;br /&gt;
&lt;br /&gt;
Жидкость жидкости рознь: к примеру, масло характеризуется повышенной вязкостью. Не зная физических свойств нужной жидкости, очень сложно добиться ее качественной имитации. К счастью, разработчики программы подготовили несколько заготовок, которые можно найти, если нажать кнопочку '''AD''' (Advanced) на панели '''Fluid'''. По умолчанию ''Blender'' предлагает использовать воду (water).&lt;br /&gt;
&lt;br /&gt;
===Дорабатываем сцену===&lt;br /&gt;
{{SEO}}&lt;br /&gt;
{{SEO}}&lt;br /&gt;
{{SEO}}&lt;br /&gt;
&lt;br /&gt;
Как видите, работа с жидкостями не вызывает особых проблем. Но возникает вопрос, какой смысл во всей этой системе, если изначально домен может иметь только форму куба? Ответ прост: помимо рассмотренных двух компонентов, в процессе имитации могут участвовать и другие объекты с иными настройками&lt;br /&gt;
физики. С ними мы познакомимся при доработке нашей главной сцены. Конечно, она не предполагает быть анимационной, но полученные знания, надеюсь, вам впоследствии пригодятся. В создаваемой сцене мы наполним шампанским имеющиеся два бокала. В качестве источника на этот раз используем сферу, немного сплюснутую по координате '''Z'''. Такие сферы необходимо будет расположить непосредственно в чашечках обоих бокалов. Но перед настройкой физики необходимо доработать сами модели.&lt;br /&gt;
&lt;br /&gt;
Как уже говорилось ранее, механизм физики жидкостей очень чувствителен к качеству структуры объектов в домене. Особенно это касается полых моделей. В первой статье мы рассмотрели один из способов создания бокала с помощью кривых '''NURBS'''. То, что получилось в итоге, выглядит красиво, но для участия в процессе имитации не годится.&lt;br /&gt;
&lt;br /&gt;
Давайте разберемся, что произошло. Выделите бокал, затем нажмите кнопку '''Z''' для перехода в режим '''Wireframe''' и обратите внимание на исказившиеся формы модели. В структуре появились пустоты, напрочь исчезло дно. Если такую модель использовать далее, то жидкость просто выльется «на пол». В то же время, объект в режиме редактирования и заливки ('''Solid''') выглядит абсолютно нормальным. Интересно, что эта «особенность» программы не влияет на результат отрисовки.&lt;br /&gt;
&lt;br /&gt;
Разгадка неоднозначного поведения ''Blender'' заключается в неправильной конвертации из '''NURBS''' в '''Mesh'''. Именно на этом этапе происходит разрыв структуры. Есть только одно средство для борьбы с этой ошибкой: использовать меньшее разрешение '''NURBS'''.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF125_65_2.jpg|300px|Рис. 3]] «Нормальные» нормали должны быть повернуты наружу!|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Выделите модель (формата '''NURBS'''!) и нажмите '''F9''' для открытия панелей редактирования. В опциях закладки '''Curve Tools''' имеются два окошка: '''Resol U''' и '''V'''. Именно они отвечают за количество ребер в структуре объекта. Необходимо, пошагово уменьшая значения полей, пробовать конвертировать объект в '''Mesh'''. Дефект структуры может проявится не сразу, поэтому после конвертации попробуйте перейти в режим редактирования и обратно. В моем случае, оптимальным выбором значений стало '''U = 3''', '''V = 2'''. Естественно, конвертацию необходимо производить только в режиме просмотра '''Wireframe''', чтобы сразу заметить разрывы и «откатить» назад. Все остальные действия по доработке бокала остаются неизменными ([[LXF123:Blender|LXF123]]).&lt;br /&gt;
&lt;br /&gt;
Основное правило при работе с полыми объектами гласит: все нормали вершин должны смотреть наружу. Это является обязательным условием для правильной работы физики жидкости. По умолчанию, любой примитив, создаваемый программой, всегда имеет нормали, повернутые наружу. Но так как мы дублировали чашечку бокала для имитации толщины стенок, то нормали копии смотрят вовнутрь. В этом несложно убедиться, если заставить ''Blender'' показать на экране нормали объекта (рис. 3).&lt;br /&gt;
&lt;br /&gt;
Выделите бокал и войдите в режим правки. Нажмите '''F9''' для открытия панелей редактирования. Во вкладке '''Mesh Tools More''' нажмите кнопку '''Draw Vnormals''', и программа прорисует нормали всех вершин объекта. Для изменения направления нормалей воспользуйтесь пунктом меню '''Mesh &amp;gt; Normals &amp;gt; Recalculate Outside''' любого окна '''3D View''' при выделенной структуры объекта. Обязательно посмотрите, что получилось. Иногда программа «пропускает» некоторые вершины. В этом случае придется изменять направление нормалей вручную.&lt;br /&gt;
&lt;br /&gt;
Вот и все, доработка бокала закончена.&lt;br /&gt;
&lt;br /&gt;
===Настраиваем физику===&lt;br /&gt;
&lt;br /&gt;
Все остальные действия лучше проводить в режиме '''Wireframe''', для полного контроля над происходящим.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF125_66_1.jpg|300px|Рис. 4]] Рис. 4. Расположим на сцене несколько вспомогательных объектов.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Сейчас нам нужно добавить домен, разместить объект-источник, настроить физику. Выделите бокал и с помощью функции '''Snap''' окна '''3D View''' ('''Object &amp;gt; Snap &amp;gt; Cursor Selection'''), переместите курсор в середину объекта. Добавьте куб и сферу, как показано на рис. 4.&lt;br /&gt;
&lt;br /&gt;
Выполним настройку физики за несколько шагов:&lt;br /&gt;
&lt;br /&gt;
# '''Сфера''' Так как этот объект является источником, включите кнопку '''Fluid'''. Теперь его можно убрать в любой свободный слой, для исключения из результата обработки сцены (клавиша '''m''').&lt;br /&gt;
# '''Бокал''' Здесь нам понадобиться функция '''Obstacle'''. Именно она позволяет объектам взаимодействовать с жидкостью в качестве препятствий. Модель бокала является полой, поэтому включите добавочную кнопку '''Shell'''.&lt;br /&gt;
# '''Куб''' Естественно, он является доменом. Активируйте соответствующую кнопку.&lt;br /&gt;
&lt;br /&gt;
Настройте по своему усмотрению путь для кэша и смело жмите кнопку '''Bake''' (рис. 5).&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Содержание=[[Изображение:LXF125_66_2.jpg|300px|Рис. 5]]  Рис. 5. Жидкость, но уж больно неаппетитная: скорее «отработка», чем шампанское. |Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
===Работаем с материалом===&lt;br /&gt;
&lt;br /&gt;
То, что у нас получилось, очень мало смахивает на вкусное шампанское. Не будем проводить аналогии с другим неаппетитным содержимым, а просто доработаем материал.&lt;br /&gt;
&lt;br /&gt;
Создайте для объекта-домена новый материал с базовым цветом '''R = 1.000, G = 1.000, B = 0'''. Затем откройте панель '''Shaders'''. В качестве диффузного шейдера оставьте имеющийся по умолчанию '''Lambert'''. Увеличьте для него параметр '''Ref''' до '''1.000'''. Отражающим шейдером будет '''Wardiso''', дающий резкий, яркий отблеск. Установите следующие значения: '''Spec = 1.600, RMS = 0.077'''. В принципе, для этого материала нужно включить кнопку '''TraShadow''' ради качественной прорисовки тени, но это сильно скажется на времени обработки. Активируйте по желанию.&lt;br /&gt;
&lt;br /&gt;
Теперь займемся преломлением и отражением. Откройте вкладку '''Mirror Transp''' и включите кнопку '''Ray Transp'''. В качестве коэффициента преломления для обычной воды при комнатной температуре подойдет значение '''1.33 (IOR)'''. Прозрачность, параметр '''Fresnel''', установите в '''2.5'''. Желательно несколько увеличить глубину просчета '''Depth'''. Я установил значение '''5'''. Также нужно немного настроить зеркальность. Включите кнопку '''Ray Mirror''' и установите следующие значения: '''RayMir = 0.5, Fresnel = 2.0'''.&lt;br /&gt;
&lt;br /&gt;
Если на данном этапе вы попробуете обработать сцену, то получите нечто, напоминающее подкрашенную водичку. Правильно, настоящее шампанское не может быть без пузырьков... ну разве что выдохшееся. По-хорошему, воздушные пузырьки нужно моделировать с помощью частиц. Этот способ оптимален для анимационной сцены. Но ведь у нас она статичная!&lt;br /&gt;
&lt;br /&gt;
Пойдем несколько иным путем, гораздо менее затратным по времени, но по качеству не уступающим моделированию частиц, а именно: воспользуемся технологией '''Normal Map''' и процедурной текстурой.&lt;br /&gt;
&lt;br /&gt;
Добавьте новую текстуру в первый слот материала. В качестве ее типа укажите процедуру '''Voronoi'''. Большую часть параметров можно оставить по умолчанию, за исключением масштаба. Нам необходимо минимально возможное разрешение, поэтому сбросьте данные в окошке '''Size''' на ноль.&lt;br /&gt;
&lt;br /&gt;
Выделите объект-домен, нажмите '''TAB''', а затем '''U''' для установки текстурных координат (контекстное меню '''UV Calculation &amp;gt; Unwrap'''). Это необходимо для правильного проецирования текстуры. Откройте панель '''Map Input''' и включите кнопку '''UV'''. В последнем случае мы заставили ''Blender'' использовать текстурные координаты объекта.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF125_66_3.jpg|300px|Рис. 6]]  Рис. 6. Процедурная текстура успешно имитирует пузырьки воздуха.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Настройки '''Normal Map''' доступны в панели '''Map To'''. Дважды нажмите кнопку '''Nor'''. Она должна стать желтого цвета, что сигнализирует о включении инверсионного режима наложения карты нормалей. Глубину выдавливания желательно поставить поменьше, к примеру, '''Nor = 1''' (рис. 6).&lt;br /&gt;
&lt;br /&gt;
===Модель бутылки===&lt;br /&gt;
&lt;br /&gt;
Моделирование такого объекта не должно вызвать у вас никаких затруднений. В предыдущих статьях уже описывались два способа, поэтому выберите наиболее понравившийся. Здесь же постараемся сделать результат более реалистичным.&lt;br /&gt;
&lt;br /&gt;
Допустим, что наша бутылка сделана из темно-зеленого стекла с фирменной этикеткой какой-нибудь винодельческой фирмы. Предположим, что вы уже создали модель и готовы приступить к ее «раскраске».&lt;br /&gt;
&lt;br /&gt;
Добавьте новый материал со следующим основным цветом: '''R = 0.151, G = 0.343, B = 0.096'''. В панели '''Shaders''' выберите '''Fresnel''' и '''Wardiso'''. Самостоятельно добейтесь яркой поверхности материала с жестким отблеском. В настройках прозрачности '''Ray Transp''' установите '''IOR''' равным '''2.00'''. Значение параметра '''Fresnel''' нужно подобрать так, чтобы стекло стало полупрозрачным: к примеру, попробуйте '''1.5'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь займемся наложением этикетки на бутылку. На прилагаемом к журналу диске уже имеется необходимая картинка в формате PNG. Если вы захотите использовать свою, то учтите два правила:&lt;br /&gt;
&lt;br /&gt;
* Разрешение картинки должно быть достаточно большим.&lt;br /&gt;
* Изображение должно быть с альфа-каналом в местах фона. Соответственно, формат файла должен поддерживать альфа-канал (PNG, Targa, TIFF...).&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Содержание=[[Изображение:LXF125_67_1.jpg|300px|Рис. 7]]  Рис. 7. Бутылка шампанского. |Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Перенесите модель в пустой слой для удобства работы с ней и откройте в соседнем окне '''UV/Image Editor'''. Загрузите текстуру в свободный слот материала (тип '''Image'''). Проследите, чтобы в панели настройки картинки '''Map Image''' была включена кнопка '''Use Alpha'''. Кроме того, необходимо изменить настройки рендера окон '''3D-View''' для отображения в них текстур. В меню '''Game''' главного окна программы выберите пункт '''Texture Face Materials'''.&lt;br /&gt;
&lt;br /&gt;
Нам необходимо включить развертку UV-координат для модели. Выделите объект в 3D-окне и нажмите кнопку '''Tab'''. Отметьте всю структуру объекта (клавиша '''A''') и нажмите '''U''' для вызова контекстного меню '''UV Calculation'''. Выберите пункт '''Reset'''. Если теперь поменять тип прорисовки окна на '''Textured '''(меню '''Draw Type'''), то ''Blender'' станет отображать загруженные текстуры.&lt;br /&gt;
&lt;br /&gt;
Итак, мы создали для модели текстурные координаты. Теперь займемся собственно проецированием картинки. Войдите в режим редактирования объектов и в окне '''UV/Image Editor''' выберите из списка уже загруженный файл. Выделите на объекте те полигоны, которые необходимо «залить» этикеткой, и выберите '''Unwrap''' в меню '''UV Calculation'''. Как видите, в окне '''UV/Image Editor''' появилось это же выделение. Теперь, используя стандартные возможности манипуляции (те же самые, что и для трехмерных объектов), разверните и отмасштабируйте заливку на картинке. Возникает логичный вопрос: а что же делать с остальной неиспользуемой частью бутылки? Все просто: выделите ее, примените '''Unwrap''' и разместите эту область на свободной от этикетки картинке,&lt;br /&gt;
т.е. на фоне (рис. 7).&lt;br /&gt;
&lt;br /&gt;
===Используйте фоновое изображение===&lt;br /&gt;
&lt;br /&gt;
Если у вас наметанный взгляд и вы в детстве с легкостью рисовали натюрморты с оригинала, то следующий текст можете смело пропустить. Всем остальным при моделировании советую использовать возможность вывода картинки в качестве фона в окнах программы. В этом случае становится проще «накидать» каркас объекта по уже имеющемуся рисунку. &lt;br /&gt;
&lt;br /&gt;
Для управления фоновым изображением необходимо выбрать пункт меню '''View &amp;gt; Background Image''' любого окна '''3D View'''. В открывшейся плавающей панели можно загрузить собственно файл и настроить прозрачность и масштаб. Заметьте, что фоновое изображение доступно только для стандартных режимов просмотра ('''Front, Side, Top, Camera'''). Удобно, что при масштабировании сцены в окне изменяется и размер картинки. При окончательной обработке сцены фон&lt;br /&gt;
не учитывается.&lt;br /&gt;
&lt;br /&gt;
Эта панель способна на большее, нежели просто управление статичной картинкой. К примеру, вы можете использовать в качестве фона видеофайл.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF125_67_2.jpg|300px|Рис. 8]] Рис. 8. Несколько штрихов — и картина закончена.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
===Готовимся к обработке===&lt;br /&gt;
&lt;br /&gt;
Для обработки такой сложной сцены с несколькими физическими имитациями нужно учитывать определенные правила. Во-первых, удалите все кэши, созданные программой. В некоторых случаях это обеспечит отсутствие ошибок. Установите счетчик кадров анимации на ноль. После окончательного просчета можно будет выбрать наиболее интересный кадр. Обработку физики следует начинать с просчета жидкостей. Как обычно, выделите домен и нажмите кнопку '''Bake'''. Только после этого можно нажать '''Alt+A''' для создания кэша частиц и физики мягких тел. Установите желаемый кадр, перейдите на панель рендера, выберите подходящий тип из заготовок – к примеру, '''PAL'''. Жмите кнопку '''Render''' и наслаждайтесь результатом (рис. 8)! '''LXF'''&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF125:Blender</id>
		<title>LXF125:Blender</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF125:Blender"/>
				<updated>2023-10-13T04:14:33Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF125:Blender в Когда Россия победит?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Когда Россия победит?]]&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%9A%D0%BE%D0%B3%D0%B4%D0%B0_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F_%D0%BF%D0%BE%D0%B1%D0%B5%D0%B4%D0%B8%D1%82%3F</id>
		<title>Когда Россия победит?</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%9A%D0%BE%D0%B3%D0%B4%D0%B0_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F_%D0%BF%D0%BE%D0%B1%D0%B5%D0%B4%D0%B8%D1%82%3F"/>
				<updated>2023-10-13T04:14:32Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF125:Blender в Когда Россия победит?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;: '''''Blender''''' Нетривиальные приемы 3D-моделирования для жаждущих большего, чем основы&lt;br /&gt;
&lt;br /&gt;
==''Blender'': Содвинем бокалы==&lt;br /&gt;
&lt;br /&gt;
{{Цикл/Blender}}&lt;br /&gt;
&lt;br /&gt;
: '''Часть 3''': Наша серия уроков подходит к своему логическому концу. По этому поводу можно и бокал шампанского налить, считает ее автор '''Андрей Прахов'''.&lt;br /&gt;
&lt;br /&gt;
На прошлых занятиях мы с вами сервировали небольшой столик для романтического ужина. Расставлены фужеры, горят свечи, льется мягкий свет, но чего-то не хватает! Правильно: весь вечер сидеть и любоваться на пустые бокалы – это занятие не для нас. Так давайте наполним их вином!&lt;br /&gt;
&lt;br /&gt;
===Немного теории===&lt;br /&gt;
&lt;br /&gt;
''Blender'', как и любой другой мощный инструмент трехмерного моделирования, умеет работать с физикой жидкостей. Данная возможность появилась относительно недавно, если говорить не о времени, а о номерах версий программы. Следствием этого является слабая документированность. Пара-тройка примеров – вот и все, на что вы можете рассчитывать на официальном сайте. Но и этого достаточно, чтобы разобраться в имеющихся настройках. Другой вопрос в том, что в процессе имитации может участвовать не всякий объект, и некоторая доработка «напильником», а иногда и «танцы с бубнами» будут вам обеспечены. Но хватит о грустном: в конце концов, предназначение этой статьи и есть в «подстилании соломки» ищущим знания.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF125_64_1.jpg|300px|Рис. 1]] Рис. 1. Настройки режима '''Domain'''.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Так как эта часть урока отводится теоретическому вступлению в физику жидкостей, то забудьте на время об имеющемся проекте «Романтический ужин», а просто вчитывайтесь и иногда экспериментируйте в новой сцене.&lt;br /&gt;
&lt;br /&gt;
Основополагающим краеугольным камнем физики жидкости в ''Blender'' является понятие «'''домен'''» ['''Domain''']. Этим термином обозначается некоторая область сцены, в пределах которой будут производится необходимые расчеты. Все, что не попадает в домен, в процессе имитации участвовать не будет. Это правило распространяется и на те объекты, которые оказались в домене некоторой своей частью. Например, если наш фужер поставить на условной границе домена и «наполнить» жидкостью, то она остановится ровно по границе. В качестве домена может выступать любой Mesh-объект, но так как физика жидкостей работает только с ограничивающим '''параллелепипедом''' ['''bounding box'''], то логично использовать примитив '''Cube'''.&lt;br /&gt;
&lt;br /&gt;
Еще одним обязательным компонентом является '''объект-источник''' ['''Fluid''']. Здесь никаких ограничений на формы объекта нет: единственно, он должен быть из группы '''Mesh'''.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим, как взаимодействуют оба компонента. При запуске просчета объект-домен принимает форму объекта-источника и постепенно перетекает на первоначальное место своего расположения. Сложно представить? Тогда немного попрактикуемся. Создайте новый проект и переключитесь в окно просмотра&lt;br /&gt;
'''Camera''' ('''0''' на цифровой клавиатуре). Уже имеющийся в центре куб послужит нам в качестве домена. Отмасштабируйте его до желаемого размера. Теперь добавьте в сцену сферу и разместите ее так, чтобы она находилась внутри куба. Для удобства манипулирования переключитесь в режим '''Wireframe''' клавишей '''Z'''.&lt;br /&gt;
&lt;br /&gt;
Отлично, теперь приступаем к настройке физики. Выделите '''Cube''' и нажмите уже известную вам кнопку '''Physics Buttons''' ([[LXF124:Blender|LXF124]]). На сей раз нас интересует панель '''Fluid''' с единственной пока одноименной кнопочкой. Включите ее.&lt;br /&gt;
&lt;br /&gt;
Появятся восемь дополнительных кнопок, позволяющих указать режим имитации для выделенного объекта. Естественно, нас интересует кнопка '''Domain''' (рис. 1).&lt;br /&gt;
&lt;br /&gt;
Так как это основные настройки физики жидкости, рассмотрим их подробнее.&lt;br /&gt;
&lt;br /&gt;
Первое, что бросается в глаза – это крупная кнопка с названием '''Bake''' [Выпечка]. Не думайте, что достаточно настроить физику жидкостей, нажать заветные '''Alt+A''' – и ''Blender'' резво начнет анимацию действия в сцене. В отличие от уже рассмотренных ранее частиц и физики мягких тел, просчет жидкостей необходимо выполнить заранее. Именно эта кнопка активирует так называемую «выпечку мешей». Перед ней необходимо подготовить место для кэша, указав путь в поле '''Path'''. По умолчанию ''Blender'' использует каталог '''/tmp'''.&lt;br /&gt;
&lt;br /&gt;
На окончательное качество картинки влияют следующие настройки:&lt;br /&gt;
* '''Resolution''' Здесь поле '''Res''' позволяет выбрать необходимое разрешение для рендера, а поле '''Prev-Res''' – для окна программы. Конечно, желательно использовать несколько большее значение '''Res''', чем предлагаемое по умолчанию. Внимание: даже незначительное увеличение выходного разрешения на какой-нибудь десяток единиц приведет к серьезной нагрузке на систему; к тому же излишне высокое разрешение негативно сказывается&lt;br /&gt;
на качестве имитации!&lt;br /&gt;
* '''Disp.-Qual''' Выбор режима качества для окна программы и рендера, соответственно.&lt;br /&gt;
&lt;br /&gt;
Пока оставьте настройки домена по умолчанию.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF125_65_1.jpg|300px|Рис. 2]] Рис. 2. Результат работы тестового примера.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Теперь займемся объектом-источником. Выделите сферу, откройте панель '''Fluid''' и нажмите кнопку '''Fluid'''. Опций здесь минимум, но они чрезвычайно важны для настройки течения. Группа кнопок '''Volume Init''' позволяет определить, как жидкость будет обтекать имеющийся объект в домене:&lt;br /&gt;
* '''Volume''' По умолчанию активна именно она. Жидкость обтекает вокруг объекта.&lt;br /&gt;
* '''Shell''' Если объект имеет полую форму (к примеру, чашка), включите эту кнопку.&lt;br /&gt;
* '''Both''' Режим, объединяющий первые два.&lt;br /&gt;
&lt;br /&gt;
По умолчанию, жидкость всегда стремится вниз по координате '''Z'''. Если нужно иное направление, то измените переменные в группе '''Initial Velocity'''.&lt;br /&gt;
&lt;br /&gt;
В нашем случае, оставьте все как есть. Выделите еще раз объект-домен и нажмите кнопку '''Bake''' (рис. 2).&lt;br /&gt;
&lt;br /&gt;
===Выбираем тип жидкости===&lt;br /&gt;
&lt;br /&gt;
Жидкость жидкости рознь: к примеру, масло характеризуется повышенной вязкостью. Не зная физических свойств нужной жидкости, очень сложно добиться ее качественной имитации. К счастью, разработчики программы подготовили несколько заготовок, которые можно найти, если нажать кнопочку '''AD''' (Advanced) на панели '''Fluid'''. По умолчанию ''Blender'' предлагает использовать воду (water).&lt;br /&gt;
&lt;br /&gt;
===Дорабатываем сцену===&lt;br /&gt;
&lt;br /&gt;
Как видите, работа с жидкостями не вызывает особых проблем. Но возникает вопрос, какой смысл во всей этой системе, если изначально домен может иметь только форму куба? Ответ прост: помимо рассмотренных двух компонентов, в процессе имитации могут участвовать и другие объекты с иными настройками&lt;br /&gt;
физики. С ними мы познакомимся при доработке нашей главной сцены. Конечно, она не предполагает быть анимационной, но полученные знания, надеюсь, вам впоследствии пригодятся. В создаваемой сцене мы наполним шампанским имеющиеся два бокала. В качестве источника на этот раз используем сферу, немного сплюснутую по координате '''Z'''. Такие сферы необходимо будет расположить непосредственно в чашечках обоих бокалов. Но перед настройкой физики необходимо доработать сами модели.&lt;br /&gt;
&lt;br /&gt;
Как уже говорилось ранее, механизм физики жидкостей очень чувствителен к качеству структуры объектов в домене. Особенно это касается полых моделей. В первой статье мы рассмотрели один из способов создания бокала с помощью кривых '''NURBS'''. То, что получилось в итоге, выглядит красиво, но для участия в процессе имитации не годится.&lt;br /&gt;
&lt;br /&gt;
Давайте разберемся, что произошло. Выделите бокал, затем нажмите кнопку '''Z''' для перехода в режим '''Wireframe''' и обратите внимание на исказившиеся формы модели. В структуре появились пустоты, напрочь исчезло дно. Если такую модель использовать далее, то жидкость просто выльется «на пол». В то же время, объект в режиме редактирования и заливки ('''Solid''') выглядит абсолютно нормальным. Интересно, что эта «особенность» программы не влияет на результат отрисовки.&lt;br /&gt;
&lt;br /&gt;
Разгадка неоднозначного поведения ''Blender'' заключается в неправильной конвертации из '''NURBS''' в '''Mesh'''. Именно на этом этапе происходит разрыв структуры. Есть только одно средство для борьбы с этой ошибкой: использовать меньшее разрешение '''NURBS'''.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF125_65_2.jpg|300px|Рис. 3]] «Нормальные» нормали должны быть повернуты наружу!|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Выделите модель (формата '''NURBS'''!) и нажмите '''F9''' для открытия панелей редактирования. В опциях закладки '''Curve Tools''' имеются два окошка: '''Resol U''' и '''V'''. Именно они отвечают за количество ребер в структуре объекта. Необходимо, пошагово уменьшая значения полей, пробовать конвертировать объект в '''Mesh'''. Дефект структуры может проявится не сразу, поэтому после конвертации попробуйте перейти в режим редактирования и обратно. В моем случае, оптимальным выбором значений стало '''U = 3''', '''V = 2'''. Естественно, конвертацию необходимо производить только в режиме просмотра '''Wireframe''', чтобы сразу заметить разрывы и «откатить» назад. Все остальные действия по доработке бокала остаются неизменными ([[LXF123:Blender|LXF123]]).&lt;br /&gt;
&lt;br /&gt;
Основное правило при работе с полыми объектами гласит: все нормали вершин должны смотреть наружу. Это является обязательным условием для правильной работы физики жидкости. По умолчанию, любой примитив, создаваемый программой, всегда имеет нормали, повернутые наружу. Но так как мы дублировали чашечку бокала для имитации толщины стенок, то нормали копии смотрят вовнутрь. В этом несложно убедиться, если заставить ''Blender'' показать на экране нормали объекта (рис. 3).&lt;br /&gt;
&lt;br /&gt;
Выделите бокал и войдите в режим правки. Нажмите '''F9''' для открытия панелей редактирования. Во вкладке '''Mesh Tools More''' нажмите кнопку '''Draw Vnormals''', и программа прорисует нормали всех вершин объекта. Для изменения направления нормалей воспользуйтесь пунктом меню '''Mesh &amp;gt; Normals &amp;gt; Recalculate Outside''' любого окна '''3D View''' при выделенной структуры объекта. Обязательно посмотрите, что получилось. Иногда программа «пропускает» некоторые вершины. В этом случае придется изменять направление нормалей вручную.&lt;br /&gt;
&lt;br /&gt;
Вот и все, доработка бокала закончена.&lt;br /&gt;
&lt;br /&gt;
===Настраиваем физику===&lt;br /&gt;
&lt;br /&gt;
Все остальные действия лучше проводить в режиме '''Wireframe''', для полного контроля над происходящим.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF125_66_1.jpg|300px|Рис. 4]] Рис. 4. Расположим на сцене несколько вспомогательных объектов.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Сейчас нам нужно добавить домен, разместить объект-источник, настроить физику. Выделите бокал и с помощью функции '''Snap''' окна '''3D View''' ('''Object &amp;gt; Snap &amp;gt; Cursor Selection'''), переместите курсор в середину объекта. Добавьте куб и сферу, как показано на рис. 4.&lt;br /&gt;
&lt;br /&gt;
Выполним настройку физики за несколько шагов:&lt;br /&gt;
&lt;br /&gt;
# '''Сфера''' Так как этот объект является источником, включите кнопку '''Fluid'''. Теперь его можно убрать в любой свободный слой, для исключения из результата обработки сцены (клавиша '''m''').&lt;br /&gt;
# '''Бокал''' Здесь нам понадобиться функция '''Obstacle'''. Именно она позволяет объектам взаимодействовать с жидкостью в качестве препятствий. Модель бокала является полой, поэтому включите добавочную кнопку '''Shell'''.&lt;br /&gt;
# '''Куб''' Естественно, он является доменом. Активируйте соответствующую кнопку.&lt;br /&gt;
&lt;br /&gt;
Настройте по своему усмотрению путь для кэша и смело жмите кнопку '''Bake''' (рис. 5).&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Содержание=[[Изображение:LXF125_66_2.jpg|300px|Рис. 5]]  Рис. 5. Жидкость, но уж больно неаппетитная: скорее «отработка», чем шампанское. |Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
===Работаем с материалом===&lt;br /&gt;
&lt;br /&gt;
То, что у нас получилось, очень мало смахивает на вкусное шампанское. Не будем проводить аналогии с другим неаппетитным содержимым, а просто доработаем материал.&lt;br /&gt;
&lt;br /&gt;
Создайте для объекта-домена новый материал с базовым цветом '''R = 1.000, G = 1.000, B = 0'''. Затем откройте панель '''Shaders'''. В качестве диффузного шейдера оставьте имеющийся по умолчанию '''Lambert'''. Увеличьте для него параметр '''Ref''' до '''1.000'''. Отражающим шейдером будет '''Wardiso''', дающий резкий, яркий отблеск. Установите следующие значения: '''Spec = 1.600, RMS = 0.077'''. В принципе, для этого материала нужно включить кнопку '''TraShadow''' ради качественной прорисовки тени, но это сильно скажется на времени обработки. Активируйте по желанию.&lt;br /&gt;
&lt;br /&gt;
Теперь займемся преломлением и отражением. Откройте вкладку '''Mirror Transp''' и включите кнопку '''Ray Transp'''. В качестве коэффициента преломления для обычной воды при комнатной температуре подойдет значение '''1.33 (IOR)'''. Прозрачность, параметр '''Fresnel''', установите в '''2.5'''. Желательно несколько увеличить глубину просчета '''Depth'''. Я установил значение '''5'''. Также нужно немного настроить зеркальность. Включите кнопку '''Ray Mirror''' и установите следующие значения: '''RayMir = 0.5, Fresnel = 2.0'''.&lt;br /&gt;
&lt;br /&gt;
Если на данном этапе вы попробуете обработать сцену, то получите нечто, напоминающее подкрашенную водичку. Правильно, настоящее шампанское не может быть без пузырьков... ну разве что выдохшееся. По-хорошему, воздушные пузырьки нужно моделировать с помощью частиц. Этот способ оптимален для анимационной сцены. Но ведь у нас она статичная!&lt;br /&gt;
&lt;br /&gt;
Пойдем несколько иным путем, гораздо менее затратным по времени, но по качеству не уступающим моделированию частиц, а именно: воспользуемся технологией '''Normal Map''' и процедурной текстурой.&lt;br /&gt;
&lt;br /&gt;
Добавьте новую текстуру в первый слот материала. В качестве ее типа укажите процедуру '''Voronoi'''. Большую часть параметров можно оставить по умолчанию, за исключением масштаба. Нам необходимо минимально возможное разрешение, поэтому сбросьте данные в окошке '''Size''' на ноль.&lt;br /&gt;
&lt;br /&gt;
Выделите объект-домен, нажмите '''TAB''', а затем '''U''' для установки текстурных координат (контекстное меню '''UV Calculation &amp;gt; Unwrap'''). Это необходимо для правильного проецирования текстуры. Откройте панель '''Map Input''' и включите кнопку '''UV'''. В последнем случае мы заставили ''Blender'' использовать текстурные координаты объекта.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF125_66_3.jpg|300px|Рис. 6]]  Рис. 6. Процедурная текстура успешно имитирует пузырьки воздуха.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Настройки '''Normal Map''' доступны в панели '''Map To'''. Дважды нажмите кнопку '''Nor'''. Она должна стать желтого цвета, что сигнализирует о включении инверсионного режима наложения карты нормалей. Глубину выдавливания желательно поставить поменьше, к примеру, '''Nor = 1''' (рис. 6).&lt;br /&gt;
&lt;br /&gt;
===Модель бутылки===&lt;br /&gt;
&lt;br /&gt;
Моделирование такого объекта не должно вызвать у вас никаких затруднений. В предыдущих статьях уже описывались два способа, поэтому выберите наиболее понравившийся. Здесь же постараемся сделать результат более реалистичным.&lt;br /&gt;
&lt;br /&gt;
Допустим, что наша бутылка сделана из темно-зеленого стекла с фирменной этикеткой какой-нибудь винодельческой фирмы. Предположим, что вы уже создали модель и готовы приступить к ее «раскраске».&lt;br /&gt;
&lt;br /&gt;
Добавьте новый материал со следующим основным цветом: '''R = 0.151, G = 0.343, B = 0.096'''. В панели '''Shaders''' выберите '''Fresnel''' и '''Wardiso'''. Самостоятельно добейтесь яркой поверхности материала с жестким отблеском. В настройках прозрачности '''Ray Transp''' установите '''IOR''' равным '''2.00'''. Значение параметра '''Fresnel''' нужно подобрать так, чтобы стекло стало полупрозрачным: к примеру, попробуйте '''1.5'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь займемся наложением этикетки на бутылку. На прилагаемом к журналу диске уже имеется необходимая картинка в формате PNG. Если вы захотите использовать свою, то учтите два правила:&lt;br /&gt;
&lt;br /&gt;
* Разрешение картинки должно быть достаточно большим.&lt;br /&gt;
* Изображение должно быть с альфа-каналом в местах фона. Соответственно, формат файла должен поддерживать альфа-канал (PNG, Targa, TIFF...).&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Содержание=[[Изображение:LXF125_67_1.jpg|300px|Рис. 7]]  Рис. 7. Бутылка шампанского. |Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Перенесите модель в пустой слой для удобства работы с ней и откройте в соседнем окне '''UV/Image Editor'''. Загрузите текстуру в свободный слот материала (тип '''Image'''). Проследите, чтобы в панели настройки картинки '''Map Image''' была включена кнопка '''Use Alpha'''. Кроме того, необходимо изменить настройки рендера окон '''3D-View''' для отображения в них текстур. В меню '''Game''' главного окна программы выберите пункт '''Texture Face Materials'''.&lt;br /&gt;
&lt;br /&gt;
Нам необходимо включить развертку UV-координат для модели. Выделите объект в 3D-окне и нажмите кнопку '''Tab'''. Отметьте всю структуру объекта (клавиша '''A''') и нажмите '''U''' для вызова контекстного меню '''UV Calculation'''. Выберите пункт '''Reset'''. Если теперь поменять тип прорисовки окна на '''Textured '''(меню '''Draw Type'''), то ''Blender'' станет отображать загруженные текстуры.&lt;br /&gt;
&lt;br /&gt;
Итак, мы создали для модели текстурные координаты. Теперь займемся собственно проецированием картинки. Войдите в режим редактирования объектов и в окне '''UV/Image Editor''' выберите из списка уже загруженный файл. Выделите на объекте те полигоны, которые необходимо «залить» этикеткой, и выберите '''Unwrap''' в меню '''UV Calculation'''. Как видите, в окне '''UV/Image Editor''' появилось это же выделение. Теперь, используя стандартные возможности манипуляции (те же самые, что и для трехмерных объектов), разверните и отмасштабируйте заливку на картинке. Возникает логичный вопрос: а что же делать с остальной неиспользуемой частью бутылки? Все просто: выделите ее, примените '''Unwrap''' и разместите эту область на свободной от этикетки картинке,&lt;br /&gt;
т.е. на фоне (рис. 7).&lt;br /&gt;
&lt;br /&gt;
===Используйте фоновое изображение===&lt;br /&gt;
&lt;br /&gt;
Если у вас наметанный взгляд и вы в детстве с легкостью рисовали натюрморты с оригинала, то следующий текст можете смело пропустить. Всем остальным при моделировании советую использовать возможность вывода картинки в качестве фона в окнах программы. В этом случае становится проще «накидать» каркас объекта по уже имеющемуся рисунку. &lt;br /&gt;
&lt;br /&gt;
Для управления фоновым изображением необходимо выбрать пункт меню '''View &amp;gt; Background Image''' любого окна '''3D View'''. В открывшейся плавающей панели можно загрузить собственно файл и настроить прозрачность и масштаб. Заметьте, что фоновое изображение доступно только для стандартных режимов просмотра ('''Front, Side, Top, Camera'''). Удобно, что при масштабировании сцены в окне изменяется и размер картинки. При окончательной обработке сцены фон&lt;br /&gt;
не учитывается.&lt;br /&gt;
&lt;br /&gt;
Эта панель способна на большее, нежели просто управление статичной картинкой. К примеру, вы можете использовать в качестве фона видеофайл.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF125_67_2.jpg|300px|Рис. 8]] Рис. 8. Несколько штрихов — и картина закончена.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
===Готовимся к обработке===&lt;br /&gt;
&lt;br /&gt;
Для обработки такой сложной сцены с несколькими физическими имитациями нужно учитывать определенные правила. Во-первых, удалите все кэши, созданные программой. В некоторых случаях это обеспечит отсутствие ошибок. Установите счетчик кадров анимации на ноль. После окончательного просчета можно будет выбрать наиболее интересный кадр. Обработку физики следует начинать с просчета жидкостей. Как обычно, выделите домен и нажмите кнопку '''Bake'''. Только после этого можно нажать '''Alt+A''' для создания кэша частиц и физики мягких тел. Установите желаемый кадр, перейдите на панель рендера, выберите подходящий тип из заготовок – к примеру, '''PAL'''. Жмите кнопку '''Render''' и наслаждайтесь результатом (рис. 8)! '''LXF'''&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%9A%D0%BE%D0%B3%D0%B4%D0%B0_%D0%B7%D0%B0%D0%BA%D0%BE%D0%BD%D1%87%D0%B8%D1%82%D1%81%D1%8F_%D0%A1%D0%92%D0%9E</id>
		<title>Когда закончится СВО</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%9A%D0%BE%D0%B3%D0%B4%D0%B0_%D0%B7%D0%B0%D0%BA%D0%BE%D0%BD%D1%87%D0%B8%D1%82%D1%81%D1%8F_%D0%A1%D0%92%D0%9E"/>
				<updated>2023-10-13T04:14:14Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;: Интервью Джейкоб Каплан-Мосс&lt;br /&gt;
&lt;br /&gt;
==Танго c ''Django''==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF128_29_1.jpg|300px]] Джейкоб Каплан-Мосс|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
: '''Джейкоб Каплан-Мосс''', один из основных разработчиков проекта ''Django'', рассказывает о принятии идей от ''Rails'', почему ясность — это хорошо и повинны ли смерти пользователи ''Vi''…&lt;br /&gt;
&lt;br /&gt;
''Django'' — открытый каркас для разработки web-приложений с самыми понятными, самыми простыми программными интерфейсами, а также огромным и растущим сообществом грамотных специалистов, используемый на сайтах вроде WashingtonPost.com. Кстати, он написан на ''Python'', что облегчает его освоение.&lt;br /&gt;
&lt;br /&gt;
Джейкоб Каплан-Мосс [Jacob Kaplan-Moss] — один из ведущих разработчиков ''Django'', активный конечный пользователь ''Django''; он также имеет публикации по... ну, вы уже догадались: ''Django''. Мы встретились с ним за чашкой кофе и спросили, почему этот проект столь замечателен…&lt;br /&gt;
&lt;br /&gt;
'''''Linux Format:''' Со стороны создается впечатление, что вы занимаетесь в '''Django''' абсолютно всем. Но в чем именно заключается ваша роль?''&lt;br /&gt;
&lt;br /&gt;
'''Джейкоб Каплан-Мосс:''' В сообществе ''Django'' я своего рода универсал – я недостаточно толков, чтобы понимать все до самого дна, зато освоил основы любой части! Вот я и делаю то, что нужно в данный момент. У меня есть дурацкая склонность к волонтерству.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Какие части проекта вам особенно интересны?''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Моя любимая часть в этом проекте – дизайн API, выяснение того, что составляет хороший UI. Я имею в виду не тот интерфейс, который видят конечные пользователи, а другой, который применяют разработчики – хороший интерфейс прикладного программирования. Наш подход к разработке – сначала установить, как должен работать API, затем продумать его техническую реализацию. Конечно, есть искушение заявить «Ну, я выбрал этот способ, потому что мне так проще; пусть API на выходе будет менее ясным, зато его легче сделать», но мы стараемся так не поступать. Я часто пишу документацию для новых функций до написания самого кода, что бы осознать, как люди будут с ним взаимодействовать.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Получается, «мы хотим, чтобы оно работало так – теперь давайте заставим его это делать…»''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Верно. Я всегда ставлю себя на место пользователя и трачу намного больше времени на использование ''Django'', чем на его разработку. И, помоему, то же относится ко всем остальным. Главная наша цель – создать инструмент, удобный для пользования, и я не думаю, что это экзотика: это типично для Open Source.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Вы раньше говорили: вам нравится, что '''Django''' работает подобно web. Какова зависимость между созданием '''Django''' webподобным и «питоновидным» — когда проект получает статус идиоматического кода '''Python'''?''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Я думаю, что связь тут довольно близкая. ''Python'' ценит простоту, четкость и единообразие. Способ создания вещей REST (REpresentational State Transfer) – делать все через один и тот же интерфейс, а в'' Python'' и есть только один способ делать все. HTTP… полная спецификация состоит где-то из 50 печатных страниц – она короткая, ее можно прочитать за один вечер. И я думаю, что у канонов ''Python'' и видения, основанного на множестве web-технологий, ценности схожи.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' То есть вы имеете в виду, что Django во многом обязан '''Python'''?''&lt;br /&gt;
{{SEO}}&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Ну, конечно, мы в первую очередь разработчики ''Python''. Я часто говорю, что лучшая черта ''Django'' в том, что он написан на ''Python'', потому что это значит, что можно использовать ''Python'' и все его библиотеки. При обсуждении возможностей, целый «дзен Python» появляется – например, «Что бы тут сделал Гвидо [Guido van Rossum, автор Python]?»&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Угу, это отличная черта Open Source — можно просто написать ему и задать вопросы!''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Да; и более того, все обсуждения открыты. Я слежу за списком рассылки разработчиков ''Python'' почти 10 лет, наблюдал все дискуссии и знаю, какая философия свидетельствует о принятии решения, так что когда наши споры в сообществе ''Django'' похожи на те, с какими мы уже сталкивались где-то раньше, мы можем делать те выводы, к которым приходили другие люди.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Получается, вы поете по тем же нотам.''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' И это отличная черта в Open Source: открыт не только код, но и сообщество. Вы получаете новую информацию не только по коду, который написан другими людьми, но и по обсуждениям, которые они вели.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' А на самом деле компетентный программист '''Python''' должен легко начать работать в '''Django''' — у него ведь не будет большого культурного шока?''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Я думаю, не будет. ''Django'' был бы весьма иным, если бы его писали не на ''Python'': язык определяет то, что на нем будет написано. ''Rails'' таков, какой он есть, потому что таков ''Ruby''. Сообщество ''Ruby'' ценит лаконичность, ''Rails'' принимает это и говорит: «ОК, я хочу уметь создавать web-приложение как можно меньшим количеством строк кода». Сообщество ''Python'' ценит внятность, и иногда задачи реализуются немного более многословно, чтобы обеспечить полное понимание происходящего. Вы знаете, мы любим поругать ''PHP'', но то, к чему я возвращаюсь периодически, что отталкивает меня от ''PHP'' – это их культура: они смотрят свысока на модульное тестирование, смеются над проектированием ПО, об объектно-ориентированном программировании вспоминают после…&lt;br /&gt;
&lt;br /&gt;
'''''LXF''': Одно из сравнений, которое делается между '''Django''' и '''Rails''', заключается в том, что '''Django''' — не просто «строительные леса», это целое «здание»…''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Ну, на раннем этапе Саймон Виллисон [Simon Willison] и Адриан Головаты [Adrian Holovaty] [создатели ''Django''] начали писать web-приложения на ''Python'', и они писали все вручную. А когда вы создаете web-приложения своими руками, то замечаете, что делаете одни и те же вещи снова и снова – ох, мне нужно написать этот слой для обращения к базам данных, а я напишу несколько видов, а мне нужно связать представления с моими шаблонами URL, а мне бы не помешал интерфейс администратора.&lt;br /&gt;
&lt;br /&gt;
Первым решением для подобных повторяющихся действий был генератор кода: вы пишете описание данных, затем запускаете генератор, и он выдает большой кусок кода за вас. Вот это и есть «строительные леса» [scaffolding]. Возможно, мы делали это неправильно или была другая причина, но в любом случае для нас такой вариант не сработал. Была даже расхожая шутка: «Не редактируйте этот файл, его сгенерировала программа», потому что подобное выдавал генератор. В какой-то момент мы ушли от такого подхода, а наш опыт оставил нам действительно здоровую нелюбовь к генерации кода. Так вот, когда я вижу что-то типа «строительных лесов», у меня срабатывает коленный рефлекс: «у нас это рухнуло, проходили». Может, кто-то знает о генерации кода такое, чего не знаю я, но при каждом столкновении с этим я думаю «Хорошим оно быть не может».&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Можно, однако, предположить, что общих идей довольно много… все это — один большой ком, не так ли?''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Я не настолько знаком с основами ''Rails'', чтобы утверждать, что они сдирают его с нас, но мы то взяли от них многое. Сначала в ''Django'' мы обходились без тестового инструментария, а начав баловаться с тестовым инструментарием ''Rails'', отметили: «Эй, а это и правда здорово – это укрепляет культуру тестирования». Мы взяли эту идею и внедрили ее у себя.&lt;br /&gt;
{{SEO}}&lt;br /&gt;
{{SEO}}&lt;br /&gt;
{{SEO}}&lt;br /&gt;
{{SEO}}&lt;br /&gt;
{{SEO}}&lt;br /&gt;
{{SEO}}&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Даже при учете совместного использования идей, считаете ли вы, что для успешного развития '''Django''' нужна какая-то другая система?''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Вы знаете, раньше я был помешан на чемто вроде «Мы победим, мы разрастемся, у нас будет больше пользователей, мы станем лучше, станем круче!» Но сам к этому особорук не прикладывал; и в какой-то момент сказал «А зачем?» Если вы пользователь ''Rails'', а я пытаюсь убедить вас перейти на ''Django'', какой от этого прок нам обоим? И я уже не занимаюсь такими проповедями. Мой тон сменился с «Вам следует использовать ''Django'', потому что…» на «Я использую ''Django'', потому что…» И меня начал расстраивать тон соперничества в сообществе Open Source. «Аа, вы ''Vi'' пользуетесь? Убил бы!» Это игра с нулевой суммой, а настоящая-то битва, с моей точки зрения, идет между открытым и закрытым кодом. И пока мы все используем открытый код, мы все в выигрыше.�&lt;br /&gt;
&lt;br /&gt;
[[Категория:Интервью]]&lt;br /&gt;
[[Категория:Джейкоб Каплан-Мосс]]&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF128:Interview</id>
		<title>LXF128:Interview</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF128:Interview"/>
				<updated>2023-10-13T04:14:01Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF128:Interview в Когда закончится СВО&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Когда закончится СВО]]&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%9A%D0%BE%D0%B3%D0%B4%D0%B0_%D0%B7%D0%B0%D0%BA%D0%BE%D0%BD%D1%87%D0%B8%D1%82%D1%81%D1%8F_%D0%A1%D0%92%D0%9E</id>
		<title>Когда закончится СВО</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%9A%D0%BE%D0%B3%D0%B4%D0%B0_%D0%B7%D0%B0%D0%BA%D0%BE%D0%BD%D1%87%D0%B8%D1%82%D1%81%D1%8F_%D0%A1%D0%92%D0%9E"/>
				<updated>2023-10-13T04:14:01Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF128:Interview в Когда закончится СВО&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;: Интервью Джейкоб Каплан-Мосс&lt;br /&gt;
&lt;br /&gt;
==Танго c ''Django''==&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF128_29_1.jpg|300px]] Джейкоб Каплан-Мосс|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
: '''Джейкоб Каплан-Мосс''', один из основных разработчиков проекта ''Django'', рассказывает о принятии идей от ''Rails'', почему ясность — это хорошо и повинны ли смерти пользователи ''Vi''…&lt;br /&gt;
&lt;br /&gt;
''Django'' — открытый каркас для разработки web-приложений с самыми понятными, самыми простыми программными интерфейсами, а также огромным и растущим сообществом грамотных специалистов, используемый на сайтах вроде WashingtonPost.com. Кстати, он написан на ''Python'', что облегчает его освоение.&lt;br /&gt;
&lt;br /&gt;
Джейкоб Каплан-Мосс [Jacob Kaplan-Moss] — один из ведущих разработчиков ''Django'', активный конечный пользователь ''Django''; он также имеет публикации по... ну, вы уже догадались: ''Django''. Мы встретились с ним за чашкой кофе и спросили, почему этот проект столь замечателен…&lt;br /&gt;
&lt;br /&gt;
'''''Linux Format:''' Со стороны создается впечатление, что вы занимаетесь в '''Django''' абсолютно всем. Но в чем именно заключается ваша роль?''&lt;br /&gt;
&lt;br /&gt;
'''Джейкоб Каплан-Мосс:''' В сообществе ''Django'' я своего рода универсал – я недостаточно толков, чтобы понимать все до самого дна, зато освоил основы любой части! Вот я и делаю то, что нужно в данный момент. У меня есть дурацкая склонность к волонтерству.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Какие части проекта вам особенно интересны?''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Моя любимая часть в этом проекте – дизайн API, выяснение того, что составляет хороший UI. Я имею в виду не тот интерфейс, который видят конечные пользователи, а другой, который применяют разработчики – хороший интерфейс прикладного программирования. Наш подход к разработке – сначала установить, как должен работать API, затем продумать его техническую реализацию. Конечно, есть искушение заявить «Ну, я выбрал этот способ, потому что мне так проще; пусть API на выходе будет менее ясным, зато его легче сделать», но мы стараемся так не поступать. Я часто пишу документацию для новых функций до написания самого кода, что бы осознать, как люди будут с ним взаимодействовать.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Получается, «мы хотим, чтобы оно работало так – теперь давайте заставим его это делать…»''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Верно. Я всегда ставлю себя на место пользователя и трачу намного больше времени на использование ''Django'', чем на его разработку. И, помоему, то же относится ко всем остальным. Главная наша цель – создать инструмент, удобный для пользования, и я не думаю, что это экзотика: это типично для Open Source.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Вы раньше говорили: вам нравится, что '''Django''' работает подобно web. Какова зависимость между созданием '''Django''' webподобным и «питоновидным» — когда проект получает статус идиоматического кода '''Python'''?''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Я думаю, что связь тут довольно близкая. ''Python'' ценит простоту, четкость и единообразие. Способ создания вещей REST (REpresentational State Transfer) – делать все через один и тот же интерфейс, а в'' Python'' и есть только один способ делать все. HTTP… полная спецификация состоит где-то из 50 печатных страниц – она короткая, ее можно прочитать за один вечер. И я думаю, что у канонов ''Python'' и видения, основанного на множестве web-технологий, ценности схожи.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' То есть вы имеете в виду, что Django во многом обязан '''Python'''?''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Ну, конечно, мы в первую очередь разработчики ''Python''. Я часто говорю, что лучшая черта ''Django'' в том, что он написан на ''Python'', потому что это значит, что можно использовать ''Python'' и все его библиотеки. При обсуждении возможностей, целый «дзен Python» появляется – например, «Что бы тут сделал Гвидо [Guido van Rossum, автор Python]?»&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Угу, это отличная черта Open Source — можно просто написать ему и задать вопросы!''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Да; и более того, все обсуждения открыты. Я слежу за списком рассылки разработчиков ''Python'' почти 10 лет, наблюдал все дискуссии и знаю, какая философия свидетельствует о принятии решения, так что когда наши споры в сообществе ''Django'' похожи на те, с какими мы уже сталкивались где-то раньше, мы можем делать те выводы, к которым приходили другие люди.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Получается, вы поете по тем же нотам.''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' И это отличная черта в Open Source: открыт не только код, но и сообщество. Вы получаете новую информацию не только по коду, который написан другими людьми, но и по обсуждениям, которые они вели.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' А на самом деле компетентный программист '''Python''' должен легко начать работать в '''Django''' — у него ведь не будет большого культурного шока?''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Я думаю, не будет. ''Django'' был бы весьма иным, если бы его писали не на ''Python'': язык определяет то, что на нем будет написано. ''Rails'' таков, какой он есть, потому что таков ''Ruby''. Сообщество ''Ruby'' ценит лаконичность, ''Rails'' принимает это и говорит: «ОК, я хочу уметь создавать web-приложение как можно меньшим количеством строк кода». Сообщество ''Python'' ценит внятность, и иногда задачи реализуются немного более многословно, чтобы обеспечить полное понимание происходящего. Вы знаете, мы любим поругать ''PHP'', но то, к чему я возвращаюсь периодически, что отталкивает меня от ''PHP'' – это их культура: они смотрят свысока на модульное тестирование, смеются над проектированием ПО, об объектно-ориентированном программировании вспоминают после…&lt;br /&gt;
&lt;br /&gt;
'''''LXF''': Одно из сравнений, которое делается между '''Django''' и '''Rails''', заключается в том, что '''Django''' — не просто «строительные леса», это целое «здание»…''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Ну, на раннем этапе Саймон Виллисон [Simon Willison] и Адриан Головаты [Adrian Holovaty] [создатели ''Django''] начали писать web-приложения на ''Python'', и они писали все вручную. А когда вы создаете web-приложения своими руками, то замечаете, что делаете одни и те же вещи снова и снова – ох, мне нужно написать этот слой для обращения к базам данных, а я напишу несколько видов, а мне нужно связать представления с моими шаблонами URL, а мне бы не помешал интерфейс администратора.&lt;br /&gt;
&lt;br /&gt;
Первым решением для подобных повторяющихся действий был генератор кода: вы пишете описание данных, затем запускаете генератор, и он выдает большой кусок кода за вас. Вот это и есть «строительные леса» [scaffolding]. Возможно, мы делали это неправильно или была другая причина, но в любом случае для нас такой вариант не сработал. Была даже расхожая шутка: «Не редактируйте этот файл, его сгенерировала программа», потому что подобное выдавал генератор. В какой-то момент мы ушли от такого подхода, а наш опыт оставил нам действительно здоровую нелюбовь к генерации кода. Так вот, когда я вижу что-то типа «строительных лесов», у меня срабатывает коленный рефлекс: «у нас это рухнуло, проходили». Может, кто-то знает о генерации кода такое, чего не знаю я, но при каждом столкновении с этим я думаю «Хорошим оно быть не может».&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Можно, однако, предположить, что общих идей довольно много… все это — один большой ком, не так ли?''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Я не настолько знаком с основами ''Rails'', чтобы утверждать, что они сдирают его с нас, но мы то взяли от них многое. Сначала в ''Django'' мы обходились без тестового инструментария, а начав баловаться с тестовым инструментарием ''Rails'', отметили: «Эй, а это и правда здорово – это укрепляет культуру тестирования». Мы взяли эту идею и внедрили ее у себя.&lt;br /&gt;
&lt;br /&gt;
'''''LXF:''' Даже при учете совместного использования идей, считаете ли вы, что для успешного развития '''Django''' нужна какая-то другая система?''&lt;br /&gt;
&lt;br /&gt;
'''ДжКМ:''' Вы знаете, раньше я был помешан на чемто вроде «Мы победим, мы разрастемся, у нас будет больше пользователей, мы станем лучше, станем круче!» Но сам к этому особорук не прикладывал; и в какой-то момент сказал «А зачем?» Если вы пользователь ''Rails'', а я пытаюсь убедить вас перейти на ''Django'', какой от этого прок нам обоим? И я уже не занимаюсь такими проповедями. Мой тон сменился с «Вам следует использовать ''Django'', потому что…» на «Я использую ''Django'', потому что…» И меня начал расстраивать тон соперничества в сообществе Open Source. «Аа, вы ''Vi'' пользуетесь? Убил бы!» Это игра с нулевой суммой, а настоящая-то битва, с моей точки зрения, идет между открытым и закрытым кодом. И пока мы все используем открытый код, мы все в выигрыше.�&lt;br /&gt;
&lt;br /&gt;
[[Категория:Интервью]]&lt;br /&gt;
[[Категория:Джейкоб Каплан-Мосс]]&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%9A%D0%A2%D0%9E_%D0%A3%D0%9D%D0%90%D0%A1%D0%9B%D0%95%D0%94%D0%A3%D0%95%D0%A2_%D0%91%D0%98%D0%97%D0%9D%D0%95%D0%A1-%D0%98%D0%9C%D0%9F%D0%95%D0%A0%D0%98%D0%AE_%D0%9F%D0%A0%D0%98%D0%93%D0%9E%D0%96%D0%98%D0%9D%D0%90</id>
		<title>КТО УНАСЛЕДУЕТ БИЗНЕС-ИМПЕРИЮ ПРИГОЖИНА</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%9A%D0%A2%D0%9E_%D0%A3%D0%9D%D0%90%D0%A1%D0%9B%D0%95%D0%94%D0%A3%D0%95%D0%A2_%D0%91%D0%98%D0%97%D0%9D%D0%95%D0%A1-%D0%98%D0%9C%D0%9F%D0%95%D0%A0%D0%98%D0%AE_%D0%9F%D0%A0%D0%98%D0%93%D0%9E%D0%96%D0%98%D0%9D%D0%90"/>
				<updated>2023-10-13T04:13:43Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Главное в Linux]]  &lt;br /&gt;
{{SEO}}&lt;br /&gt;
&lt;br /&gt;
Есть и дру­гие на­строй­ки, спо­соб­ные уве­ли­чить срок служ­бы дис­ка.&lt;br /&gt;
&lt;br /&gt;
Про­стей­шая из них – до­ба­вить к оп­ци­ям мон­ти­ро­вания noatime, точ­но так же, как ранее мы до­ба­ви­ли оп­цию discard. В фай­ло­вых сис­те­мах Linux обыч­но хра­нят­ся вре­мя по­следнего чтения и по­следнего из­менения фай­ла. С оп­ци­ей noatime бу­дет со­хра­нять­ся толь­ко вре­мя по­следнего из­менения, что снизит чис­ло опе­ра­ций за­пи­си и уве­ли­чит срок служ­бы дис­ка. Од­на­ко пре­ду­пре­ж­да­ем: ста­рые про­грам­мы, вро­де Mutt, не бу­дут ра­бо­тать пра­виль­но с этой оп­ци­ей, по­это­му сна­ча­ла про­верь­те со­вмес­ти­мость при­ло­жений.&lt;br /&gt;
&lt;br /&gt;
Срок служ­бы дис­ка мож­но так­же уве­ли­чить, тща­тель­но про­ду­мав, ка­кие раз­де­лы на нем раз­мес­тить. На­при­мер, ес­ли на­ря­ду с SSD в сис­те­ме есть обыч­ный же­ст­кий диск, сто­ит раз­мес­тить на SSD фай­ло­вые сис­те­мы, доступ к ко­то­рым осу­ще­ст­в­ля­ет­ся ре­же, та­кие как / и /home, а /var, /tmp и swap раз­мес­тить на обыч­ном дис­ке. Ес­ли та­кой ва­ри­ант вам не под­хо­дит, мож­но на­стро­ить и дру­гие па­ра­мет­ры, ра­ди снижения час­то­ты за­пи­си в эти ка­та­ло­ги. На­при­мер, мож­но уве­ли­чить уро­вень серь­ез­но­сти за­пи­сы­вае­мых в лог со­об­щений, из­менив файл /etc/rsyslog.conf (под­роб­но­сти см. че­рез man rsyslog.conf), или умень­шить «ак­тив­ность под­кач­ки» сис­те­мы, что­бы она как можно ре­же поль­зо­ва­лась фай­лом под­кач­ки. Для это­го вы­полните следующую ко­ман­ду:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/vm/swappiness&lt;br /&gt;
&lt;br /&gt;
====На­ши тес­то­вые дис­ки====&lt;br /&gt;
&lt;br /&gt;
Боль­шин­ст­во SSD ис­поль­зу­ют при­мер­но оди­на­ко­вую тех­но­ло­гию хранения дан­ных. На про­из­во­ди­тель­ность боль­ше влия­ют кон­трол­лер и про­шив­ка – уст­рой­ст­во ре­ша­ет, когда и ку­да за­пи­сать дан­ные. Пло­хой кон­трол­лер мо­жет за­мед­лить диск, осо­бен­но со вре­менем, и при­вес­ти к из­менению про­из­во­ди­тель­но­сти при опе­ра­ци­ях за­пи­си раз­но­го раз­ме­ра (на­при­мер, 4К и 9К).&lt;br /&gt;
&lt;br /&gt;
Два на­ших тес­то­вых дис­ка про­де­мон­ст­ри­ро­ва­ли два кон­ку­ри­рую­щих кон­трол­ле­ра. В Crucial M4 ис­поль­зу­ет­ся кон­трол­лер Marvell, а в Intel 330 – Sandforce. Эти же кон­трол­ле­ры ис­поль­зу­ют­ся и на мно­же­ст­ве дру­гих дис­ков, так что на­ши ре­зуль­та­ты по­мо­гут вам вы­брать диск для по­куп­ки, да­же ес­ли он бу­дет дру­гим.&lt;br /&gt;
&lt;br /&gt;
Мы про­тес­ти­ро­ва­ли дис­ки с по­мо­щью тес­тов Postmark, Compile Bench и Kernel Unpacking из на­бо­ра тес­тов Phoronix Test Suite, что­бы рас­смот­реть их про­из­во­ди­тель­ность в ре­аль­ных си­туа­ци­ях. Все тес­ты про­во­ди­лись в Ubuntu 12.04 с фай­ло­вой сис­те­мой ext4 и оп­ци­ей discard в /etc/fstab.&lt;br /&gt;
&lt;br /&gt;
По­жа­луй, ин­те­реснее всех тест Compile Bench, так как он пы­та­ет­ся ими­ти­ро­вать опе­ра­ции, ко­то­рые ста­рят фай­ло­вую сис­те­му – са­мый вер­ный сце­на­рий для на­груз­ки кон­трол­ле­ра. На этих тес­тах диск Intel с кон­трол­ле­ром Sandforce по­ка­зал го­раз­до луч­шие ре­зуль­та­ты.&lt;br /&gt;
&lt;br /&gt;
Од­на­ко диск Crucial был го­раз­до бы­ст­рее при ра­бо­те со мно­же­ст­вом ма­лень­ких фай­лов в тес­те PostMark и немно­го бы­ст­рее при рас­па­ков­ке яд­ра.&lt;br /&gt;
&lt;br /&gt;
Оба дис­ка сто­ят оди­на­ко­во; че­рез Ин­тернет их мож­но ку­пить от £84 и вы­ше. |&lt;br /&gt;
&lt;br /&gt;
«Дис­ков та­ко­го же объ­е­ма, как тра­ди­ци­он­ные, ку­пить нель­зя.»&lt;br /&gt;
&lt;br /&gt;
====На­строй­ки про­из­во­ди­тель­но­сти====&lt;br /&gt;
&lt;br /&gt;
Для тех, кто по­ме­шан на ско­ро­сти, есть па­ра на­стро­ек, ко­то­рые мож­но при­менить для уве­ли­чения ско­ро­сти дис­ка. Од­на из них вклю­ча­ет пра­виль­ное вы­равнивание раз­де­лов, но о ней уже рас­ска­зал Нейл Бот­вик в LXF160, и здесь мы не бу­дем уг­луб­лять­ся в де­та­ли.&lt;br /&gt;
&lt;br /&gt;
Дру­гая – из­менить на­строй­ки планиров­щи­ка дис­ка. Он оп­ре­де­ля­ет по­ря­док вы­де­ления бло­ков дис­ка: на вра­щаю­щих­ся же­ст­ких дис­ках планиров­щик ис­поль­зо­вал­ся для на­зна­чения при­ори­те­тов одним бло­кам дис­ка по от­но­шению к дру­гим (вре­мя досту­па к бло­ку раз­ли­ча­ет­ся по ме­ре его бли­зо­сти к цен­тру дис­ка). А в SSD вре­ме­на досту­па к бло­кам поч­ти оди­на­ко­вы, и та­кая дис­кри­ми­на­ция мо­жет зна­чи­тель­но снизить про­из­во­ди­тель­ность, по­это­му сто­ит пе­ре­клю­чить­ся на «хо­ло­стой [noop]» планиров­щик:&lt;br /&gt;
&lt;br /&gt;
echo noop &amp;gt; /sys/block/&amp;lt;ssd&amp;gt;/queue/scheduler.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standart&amp;quot;&lt;br /&gt;
|+ '''Результаты: '''  &lt;br /&gt;
| [[Файл: 304682.png| center |thumb|300px|Postmark, Compile Bench Initial Create, Compile Bench Compile, Compile Bench, Read Compiled Tree, Unpacking the Linux Kernel ]]&lt;br /&gt;
| [[Файл: 305098.png| center |thumb|300px|Postmark, Compile Bench Initial Create, Compile Bench Compile, Compile Bench, Read Compiled Tree, Unpacking the Linux Kernel ]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF161:%D0%9E%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D1%8F%D0%B9%D1%82%D0%B5_%D0%BE%D0%B1%D0%BE%D1%80%D1%83%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5</id>
		<title>LXF161:Обновляйте оборудование</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF161:%D0%9E%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D1%8F%D0%B9%D1%82%D0%B5_%D0%BE%D0%B1%D0%BE%D1%80%D1%83%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5"/>
				<updated>2023-10-13T04:13:27Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF161:Обновляйте оборудование в КТО УНАСЛЕДУЕТ БИЗНЕС-ИМПЕРИЮ ПРИГОЖИНА&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[КТО УНАСЛЕДУЕТ БИЗНЕС-ИМПЕРИЮ ПРИГОЖИНА]]&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%9A%D0%A2%D0%9E_%D0%A3%D0%9D%D0%90%D0%A1%D0%9B%D0%95%D0%94%D0%A3%D0%95%D0%A2_%D0%91%D0%98%D0%97%D0%9D%D0%95%D0%A1-%D0%98%D0%9C%D0%9F%D0%95%D0%A0%D0%98%D0%AE_%D0%9F%D0%A0%D0%98%D0%93%D0%9E%D0%96%D0%98%D0%9D%D0%90</id>
		<title>КТО УНАСЛЕДУЕТ БИЗНЕС-ИМПЕРИЮ ПРИГОЖИНА</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%9A%D0%A2%D0%9E_%D0%A3%D0%9D%D0%90%D0%A1%D0%9B%D0%95%D0%94%D0%A3%D0%95%D0%A2_%D0%91%D0%98%D0%97%D0%9D%D0%95%D0%A1-%D0%98%D0%9C%D0%9F%D0%95%D0%A0%D0%98%D0%AE_%D0%9F%D0%A0%D0%98%D0%93%D0%9E%D0%96%D0%98%D0%9D%D0%90"/>
				<updated>2023-10-13T04:13:27Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF161:Обновляйте оборудование в КТО УНАСЛЕДУЕТ БИЗНЕС-ИМПЕРИЮ ПРИГОЖИНА&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Главное в Linux]]  &lt;br /&gt;
==Об­нов­ляй­тесь!==&lt;br /&gt;
[[Файл:301495.png |right|400px |]]&lt;br /&gt;
&lt;br /&gt;
''Ко­ман­да LXF це­лый ме­сяц тес­ти­ро­ва­ла ма­те­рин­ские пла­ты, про­цес­со­ры, твер­до­тель­ные дис­ки и ви­део­кар­ты, &lt;br /&gt;
что­бы убе­речь вас от это­го.''&lt;br /&gt;
&lt;br /&gt;
Когда вы раз­мыш­ляе­те, что никто из нас так не при­ки­пел бы к Linux, ес­ли бы не «же­ле­зо», на ко­то­ром он ра­бо­та­ет, вы уде­ляе­те ма­ло внимания плат­фор­ме x86. Воз­мож­но, де­ло в том, что Linux стал весь­ма ста­би­лен и от­лич­но ра­бо­та­ет на бо­лее ста­рых уст­рой­ст­вах, и нам ред­ко при­хо­дит­ся об этом ду­мать.&lt;br /&gt;
&lt;br /&gt;
Но есть, од­на­ко, и дру­гая при­чи­на. И это со­вмес­ти­мость и про­из­во­ди­тель­ность. Хо­тя со­вмес­ти­мость уже не яв­ля­ет­ся та­кой про­бле­мой, как бы­ло 10 лет, никто из нас не за­хо­чет ра­зо­рить­ся на «же­ле­зо» с со­мнитель­ной под­держ­кой Linux, будь то све­жий чип­сет от Intel, ви­део­кар­та или твер­до­тель­ный же­ст­кий диск. По­это­му мы взя­ли столь­ко ком­понен­тов, сколь­ко смог­ли, и про­тес­ти­ро­ва­ли их на со­вмес­ти­мость и про­из­во­ди­тель­ность.&lt;br /&gt;
&lt;br /&gt;
Что­бы сде­лать наш об­зор бо­лее прак­тич­ным, мы ре­ши­ли не ка­сать­ся пе­реднего края тех­но­ло­гий – про­цес­со­ров и ви­део­карт. И не толь­ко что­бы дать Linux пе­ре­дыш­ку на ох­ват этих уст­ройств, но и по­то­му, что со вре­менем це­ны на них ста­нут бо­лее ра­зум­ны­ми. Мы так­же ста­ра­лись рас­ска­зать о кон­ку­ри­рую­щих про­дук­тах, на­при­мер, ви­део­кар­тах AMD и Nvidia и про­цес­со­рах Intel и AMD, в на­де­ж­де по­лу­чить бо­лее раз­но­сто­ронний об­зор то­го, что ра­бо­та­ет хо­ро­шо, а что мо­жет не ра­бо­тать. Мы про­тес­ти­ро­ва­ли разницу в про­из­во­ди­тель­но­сти ме­ж­ду 32-бит­ны­ми и 64-бит­ны­ми плат­фор­ма­ми, про­ана­ли­зи­ро­ва­ли улуч­шения фай­ло­вой сис­те­мы, а имен­но кэш на осно­ве твер­до­тель­но­го же­ст­ко­го дис­ка, и про­ве­ри­ли, на­сколь­ко хо­ро­ши от­кры­тые драй­ве­ры ви­део­карт. И хо­тя мы не да­ем кон­крет­ных ре­ко­мен­да­ций по по­во­ду по­куп­ки тех или иных уст­ройств, мы чет­ко го­во­рим, что ра­бо­та­ет, а что нет.&lt;br /&gt;
[[Файл:LXF161.feat_hardware.mo_opt2.png |left |600px ||]]&lt;br /&gt;
===«Же­ле­зо»: Пол­ное ру­ко­во­дство===&lt;br /&gt;
&lt;br /&gt;
''Начнем с уст­ройств, к ко­то­рым под­клю­ча­ют­ся все осталь­ные ком­понен­ты.''&lt;br /&gt;
&lt;br /&gt;
====0 Ма­те­рин­ская пла­та====&lt;br /&gt;
&lt;br /&gt;
Ма­те­рин­ские пла­ты бы­ва­ют все­воз­мож­ных форм и раз­ме­ров, но боль­шин­ст­во от­ве­ча­ют форм-фак­то­ру ATX. Он оп­ре­де­ля­ет, где долж­ны на­хо­дить­ся разъ­е­мы пи­тания и где пла­та кре­пит­ся к кор­пу­су. Боль­шин­ст­во плат бы­ли стан­дарт­но­го раз­ме­ра ATX, и их по-прежнему пред­по­чи­та­ют мно­гие, бла­го­да­ря оби­лию воз­мож­но­стей рас­ши­рения. Но по­пу­ля­рна и Micro-ATX, осо­бен­но в ТВ-при­став­ках и в ав­то­ном­ных ком­пь­ю­те­рах. Во встраи­вае­мых сис­те­мах мо­жет ис­поль­зо­вать­ся Mini-ATX, но все, что мень­ше – удел спе­циа­ли­стов. Для на­ших це­лей по­на­до­бят­ся ATX или Micro-ATX.&lt;br /&gt;
&lt;br /&gt;
====1 Со­кет про­цес­со­ра (ох­ла­ж­дение)====&lt;br /&gt;
&lt;br /&gt;
Про­из­во­ди­те­лей про­цес­со­ров на плат­фор­ме x86, достой­ных на­ше­го внимания, все­го два – Intel и AMD, и у ка­ж­до­го из них боль­шое раз­но­об­ра­зие ва­ри­ан­тов про­цес­сор­ных со­ке­тов и разъ­е­мов для под­клю­чения ку­ле­ров. Ка­кой со­кет вам по­на­до­бит­ся, за­ви­сит от про­цес­со­ра, и к нему по­на­до­бит­ся со­от­вет­ст­вую­щая ма­те­рин­ская пла­та. По­следний со­кет от Intel на­зы­ва­ет­ся LGA1155 – он под­дер­жи­ва­ет и про­шлого­дние про­цес­со­ры Sandy Bridge, и свежевы­шед­ший Ivy Bridge. По­следний со­кет от AMD – AM3+, ко­то­рым мы поль­зо­ва­лись, рас­смат­ри­вая про­цес­сор AMD Phenom II. К обо­им со­ке­там нуж­ны со­вмес­ти­мые ку­ле­ры, хо­тя со­вре­мен­ные кон­ст­рук­ции ку­ле­ров «адап­ти­руются» от­верт­кой.&lt;br /&gt;
&lt;br /&gt;
====2 Разъ­е­мы пи­тания====&lt;br /&gt;
&lt;br /&gt;
Со­вре­мен­ным ком­пь­ю­те­рам нуж­ны и со­вре­мен­ные ис­точники пи­тания. На­ря­ду с обыч­ным 24-кон­такт­ным разъ­е­мом, иногда раз­би­ва­емым на бло­ки из 20 и 4 кон­так­тов, вам по­на­до­бит­ся 8-кон­такт­ный/12-воль­то­вый разъ­ем для про­цес­со­ра. Кон­ст­рук­ция разъ­е­мов обыч­но та­ко­ва, что в непра­виль­ное гнез­до их не вста­вить. Де­ше­вым ви­део­кар­там ред­ко нуж­но до­полнитель­ное пи­тание, но кар­там среднего диа­па­зо­на мо­жет еще по­тре­бо­вать­ся пи­таю­щий ка­бель для PCI Express с 6-кон­такт­ным разъ­е­мом, а для мощ­ной кар­ты – да­же два кабеля. Они долж­ны ид­ти от од­но­го бло­ка пи­тания, а для мощ­но­го ком­пь­ю­те­ра мы по­со­ве­ту­ем блок пи­тания мощ­но­стью 600 Вт с от­дель­ны­ми 12-воль­то­вы­ми «рель­са­ми» для ви­део­кар­ты.&lt;br /&gt;
&lt;br /&gt;
====3 Сло­ты па­мя­ти====&lt;br /&gt;
&lt;br /&gt;
Па­мять тес­но свя­за­на с про­цес­со­ром и спе­ци­аль­но вы­би­рается под ва­шу плат­фор­му. На со­вре­мен­ных ма­те­рин­ских пла­тах де­лать это го­раз­до про­ще – и Intel, и AMD ис­поль­зу­ют одни и те же план­ки DDR3 (поз­же в этом го­ду долж­на вый­ти DDR4), толь­ко ку­пите па­мять по­бы­ст­рее, чем вам нуж­на. Ес­ли па­мять ока­жет­ся слиш­ком мед­лен­ной для про­цес­со­ра, она ли­бо не бу­дет ра­бо­тать, ли­бо не даст рас­крыть его воз­мож­но­сти; ес­ли слиш­ком бы­ст­рой, то вы про­сто пе­ре­пла­ти­те лишнего. Мы взя­ли 4 ГБ па­мя­ти G. Skill Ripjaw Gaming Series (F3-12800CL7D) с так­то­вой час­то­той 1600 МГц. Боль­шин­ст­во со­вре­мен­ных ма­те­рин­ских плат под­дер­жи­ва­ют до 32 ГБ.&lt;br /&gt;
&lt;br /&gt;
====4 Пор­ты SATA (2 и 3)====&lt;br /&gt;
&lt;br /&gt;
Ста­рые разъ­е­мы IDE для же­ст­ких дис­ков и оп­ти­че­­ских при­во­дов сей­час встре­ча­ют­ся нечас­то. На со­вре­мен­ных ма­те­рин­ских пла­тах все под­клю­че­но че­рез го­раз­до бо­лее про­стые разъ­е­мы SATA. Не­смот­ря на то, что ка­бе­ли у них оди­на­ко­вы, мно­гие уст­рой­ст­ва со­вмес­ти­мы с SATA2, тео­ре­ти­че­­ская ско­рость ко­то­ро­го дости­га­ет 3 Гб/с, хо­тя на всех пла­тах, ко­то­рые нам по­па­лись, был и ин­тер­фейс SATA 3, ко­то­рый уд­во­ит эту ско­рость, при на­ли­чии со­вмес­ти­мо­го уст­рой­ст­ва хранения.&lt;br /&gt;
&lt;br /&gt;
====5 Пор­ты USB====&lt;br /&gt;
&lt;br /&gt;
Ана­ло­гич­но, сей­час, когда все при­вык­ли под­клю­чать все уст­рой­ст­ва че­рез USB 2, этот стан­дарт мед­лен­но вы­тес­ня­ет­ся USB 3. USB 3 по­вы­ша­ет пре­дел ско­ро­сти с 480 Мб/с ста­ро­го стан­дар­та до 5 Гб/с, что по­зво­ля­ет ему ид­ти в но­гу с SATA 3 и зна­чи­тель­но опе­ре­дить Firewire 800. Од­на­ко пе­ре­да­ча дан­ных – не столь од­но­знач­ная те­ма. Ско­рость тут за­ви­сит от опе­ра­ци­он­ной сис­те­мы, под­клю­чае­мых уст­ройств, драй­ве­ров для чип­се­та и пе­ре­да­вае­мых дан­ных. На­при­мер, мно­гие ви­део­ре­дак­то­ры убе­ж­де­ны, что Firewire 800 да­ет луч­шую про­из­во­ди­тель­ность, чем USB 3.&lt;br /&gt;
&lt;br /&gt;
====6 Сло­ты PCI====&lt;br /&gt;
&lt;br /&gt;
Ско­рее все­го вы за­хо­ти­те под­клю­чить пла­ты рас­ши­рения в сло­ты PCI Express x1 или PCI Express x16. К этим по­следним обыч­но от­но­сит­ся один слот для ви­део­кар­ты с уве­ли­чен­ным пи­танием, с мет­кой ‘PCIEX16’, ко­то­рый рас­по­ло­жен бли­же все­го к про­цес­со­ру, а бо­лее мед­лен­ные сло­ты от­ме­че­ны как ‘PCIE4’.&lt;br /&gt;
&lt;br /&gt;
====7 Ви­део­вы­ход====&lt;br /&gt;
&lt;br /&gt;
Те­перь, когда на мно­гих плат­фор­мах Intel и AMD есть про­цес­сор для об­ра­бот­ки гра­фи­ки, на пла­те ча­ще все­го име­ет­ся разъ­ем ви­део­вы­хо­да. Обыч­но это DVI- или HDMI-разъ­ем, ко­то­рый лег­ко под­клю­чить к те­ле­ви­зо­ру или со­вре­мен­ным эк­ра­нам; на HDMI так­же есть циф­ро­вой ау­дио­вы­ход.&lt;br /&gt;
&lt;br /&gt;
====8 Ау­дио­вы­ход====&lt;br /&gt;
&lt;br /&gt;
Вме­сте с циф­ро­вы­ми вы­хо­дами вы най­де­те и ана­ло­го­вые, обыч­но в ви­де оп­ти­че­­ских или ко­ак­си­аль­ных разъ­е­мов для уси­ли­те­ля. На мно­гих ма­те­рин­ских пла­тах для реа­ли­за­ции зву­ка ис­поль­зу­ет­ся чип­сет Realtek, спо­соб­ный фор­ми­ро­вать мно­го­ка­наль­ный звук. Луч­ше все­го со­хранить весь звук циф­ро­вым, так как в этом слу­чае при про­иг­ры­вании филь­мов с со­вмес­ти­мым уси­ли­те­лем не по­тре­бу­ет­ся ника­ко­го пре­об­ра­зо­вания; вдо­ба­вок это по­зво­лит из­бе­жать по­мех.&lt;br /&gt;
&lt;br /&gt;
====9 Локаль­ная сеть====&lt;br /&gt;
Вы на­вер­ня­ка зна­ко­мы с про­вод­ны­ми/Ethernet се­те­вы­ми под­клю­чения­ми. Пре­дел ско­ро­сти пе­ре­да­чи дан­ных уже неко­то­рое вре­мя не ме­нял­ся – это зна­чит, что ско­рость се­ти существенно за­ви­сит от скорости под­клю­чен­ных уст­ройств. Все со­вре­мен­ные пла­ты теперь под­дер­жи­ва­ют под­­клю­чения со ско­ро­стью 10/100 Мб/с и 1000 Мб/с (ги­га­бит).&lt;br /&gt;
&lt;br /&gt;
===Про­цес­со­ры===&lt;br /&gt;
&lt;br /&gt;
''Вы­чис­ли­тель­ная мощ­ность – это не толь­ко час­то­та про­цес­со­ра.''&lt;br /&gt;
&lt;br /&gt;
Когда-то про­из­во­ди­тель­ность про­цес­со­ра сво­ди­лась толь­ко к его так­то­вой час­то­те. Бо­лее бы­ст­рый про­цес­сор мог вы­пол­нять боль­ше опе­ра­ций за за­дан­ный пе­ри­од вре­мени и, сле­до­ва­тель­но, ре­шать ка­кую-то за­да­чу бы­ст­рее мед­лен­но­го про­цес­со­ра. Так­то­вая час­то­та из­ме­ря­ет­ся в гер­цах (Гц) и пред­став­ля­ет со­бой чис­ло опе­ра­ций, вы­пол­няе­мых в се­кун­ду (прав­да, здесь мы немно­го уп­ро­сти­ли – неко­то­рым опе­ра­ци­ям нуж­но бо­лее од­но­го цик­ла про­цес­со­ра). Боль­шин­ст­во со­вре­мен­ных про­цес­со­ров ра­бо­та­ют с так­то­вой час­то­той в несколь­ко ги­га­герц (1 ГГц = 1 000 000 000 Гц). Со­став команд за­ви­сит от ти­па про­цес­со­ра. Мы рас­смот­рим се­мей­ст­во x86, применяемое в боль­шин­ст­ве на­столь­ных ком­пь­ю­те­ров и но­ут­бу­ков. Этот со­став команд поя­вил­ся в 1978 г. на 16-бит­ном про­цес­со­ре Intel 8086. С тех пор к основ­ным ин­ст­рук­циям прибави­лись но­вые, с целью реа­ли­зации но­вых воз­мож­но­стей. У се­мей­ст­ва про­цес­со­ров ARM (при­ме­ня­ют­ся в боль­шин­ст­ве мо­биль­ных уст­ройств) дру­гой со­став команд, по­это­му их про­из­во­ди­тель­ность при той же так­то­вой час­то­те бу­дет от­ли­чать­ся.&lt;br /&gt;
&lt;br /&gt;
Кро­ме ко­ли­че­­ст­ва опе­ра­ций, у про­цес­со­ров раз­ли­ча­ет­ся и струк­ту­ра дан­ных. Боль­шин­ст­во со­вре­мен­ных про­цес­со­ров 32-бит­ные или 64-бит­ные – имеются в виду биты дан­ных, об­ра­ба­ты­вае­мые ка­ж­дой ко­ман­дой. Зна­чит, 64-бит­ные вдвое бы­ст­рее 32-бит­ных? Нет. Все за­ви­сит от то­го, сколь­ко нуж­но вам: ско­ро­сти опе­ра­ции над 20-бит­ным чис­лом на 64- и 32-бит­ном про­цес­со­ре бу­дут оди­на­ко­вы. Дли­на сло­ва так­же мо­жет вли­ять на спо­соб об­ра­щения про­цес­со­ра к ОЗУ. О том, как это влия­ет на про­из­во­ди­тель­ность, мож­но про­честь во врез­ке «64-бит­ные про­цес­со­ры про­тив 32-бит­ных». Один из важ­нейших ас­пек­тов про­из­во­ди­тель­но­сти про­цес­со­ра – число ядер. По су­ти, ка­ж­дое яд­ро – это от­дель­ный про­цес­сор, на ко­то­ром мож­но за­пускать про­грам­му с минималь­ным взаи­мо­дей­ст­ви­ем с дру­ги­ми яд­ра­ми.&lt;br /&gt;
&lt;br /&gt;
Как и с дли­ной сло­ва, ко­ли­че­­ст­во ядер нель­зя про­сто ум­но­жить на так­то­вую час­то­ту, что­бы по­лу­чить мощ­ность про­цес­со­ра. За­да­ча мо­жет эф­фек­тив­но ис­поль­зо­вать несколь­ко ядер, толь­ко ес­ли она раз­де­ле­на на несколь­ко по­то­ков. Это оз­на­ча­ет, что раз­ра­бот­чик раз­бил ее на от­дель­ные под­про­грам­мы, ка­ж­дая из ко­то­рых мо­жет вы­пол­нять­ся на от­дель­ном яд­ре. Не все за­да­чи под­да­ют­ся та­ко­му раз­биению. Про­грам­ма с одним по­то­ком бу­дет ра­бо­тать на мно­го­ядер­ном про­цес­со­ре с той же ско­ро­стью, что и на од­но­ядер­ном – од­на­ко две од­но­по­то­ко­вые про­грам­мы на мно­го­ядер­ном про­цес­со­ре бу­дут ра­бо­тать бы­ст­рее, чем на од­но­ядер­ном. Нам пред­став­ля­ет­ся, что у ком­пь­ю­те­ра есть некая па­мять, ко­то­рую он де­лит ме­ж­ду за­пу­щен­ны­ми про­грам­ма­ми; но на прак­ти­ке все чуть сложнее. Па­мять – это не еди­ная сущ­ность, а ие­рар­хия раз­лич­ных уровней. Обыч­но чем бы­ст­рее па­мять, тем она до­ро­же, по­это­му в боль­шин­ст­ве ком­пь­ю­те­ров есть малый объ­ем очень бы­ст­рой па­мя­ти, на­зы­ва­мой кэ­шем, опе­ра­тив­ная па­мять го­раз­до боль­ше­го объ­е­ма и раз­дел под­кач­ки на же­ст­ком дис­ке, слу­жащий для про­грамм и функ­ций чем-то вро­де пе­ре­полнения па­мя­ти. Для про­цес­со­ров наи­бо­лее ва­жен кэш, по­то­му что он вве­ден в схе­му: мож­но до­ба­вить до­полнитель­ную опе­ра­тив­ную па­мять и из­менить раз­мер раз­де­ла под­кач­ки, но объ­ем кэ­ша фик­си­ро­ван. Сам кэш раз­бит на уровни, и бо­лее низ­кие уровни мень­ше по объ­е­му и бы­ст­рее, чем бо­лее вы­со­кие.&lt;br /&gt;
{| class=&amp;quot;standart&amp;quot;&lt;br /&gt;
|+ '''Ре­зуль­та­ты ос­нов­ных тес­тов: '''  &lt;br /&gt;
| [[Файл: 302299.png| center |thumb|300px| Ви­део­кар­та (Vdrift), Кад­ров в се­кун­ду]]&lt;br /&gt;
| [[Файл:302324.png | center |thumb|300px|Ско­рость ОЗУ, МБ/с ]]&lt;br /&gt;
|[[Файл: 302331.png| center |thumb|300px| Ста­ти­че­ский Apache. За­про­сов в се­кун­ду]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Файл: 302291.png| center |thumb|300px|Ите­ра­ций в се­кун­ду. Graphics Magic Sharpen&lt;br /&gt;
Graphics Magic Blur ]]&lt;br /&gt;
| [[Файл:302316.png | center |thumb|300px| John The Ripper. Про­ве­рок в се­кун­ду (в млн)]]&lt;br /&gt;
|[[Файл: 302308.png| center |thumb|300px| МБ/с. Чте­ние с дис­ка 2 ГБ с IoZone,Чте­ние с дис­ка 4 ГБ с IoZone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок= Влияние мно­го­ядер­но­сти на про­из­во­ди­тель­ность|Ширина=98%|Содержание=  &lt;br /&gt;
Влияние на про­из­во­ди­тель­ность числа ядер мож­но оценить пу­тем ими­та­ции раз­лич­ных про­цес­со­ров в VirtualBox, вы­де­лив оп­ре­де­лен­ное ко­ли­че­­ст­во ядер от глав­ной сис­те­мы до­черней и по­смот­рев, как сис­те­ма бу­дет ра­бо­тать с про­из­воль­ным числом ядер. Здесь по­ка­за­ны тес­ты сис­те­мы с числом ядер от од­но­го до трех. Уве­ли­чение про­из­во­ди­тель­но­сти из-за уве­ли­чения числа ядер силь­но за­ви­сит от за­да­чи. В ря­де слу­ча­ев уве­ли­чение числа ядер за­мед­ля­ло вы­полнение за­да­чи из-за на­клад­ных рас­хо­дов по рас­пре­де­лению про­цес­сов ме­ж­ду яд­ра­ми. Иногда, на­при­мер, при взло­ме па­ро­ля, мы на­блю­да­ем поч­ти линей­ный рост про­из­во­ди­тель­но­сти с уве­ли­чением числа ядер. Сто­ит от­ме­тить, что мы вы­пол­ня­ли эти тес­ты по­сле­до­ва­тель­но. Ес­ли бы мы вы­пол­ня­ли несколь­ко за­дач од­но­вре­мен­но, мно­го­ядер­ные сис­те­мы уве­ли­чи­ва­ли бы про­из­во­ди­тель­ность бо­лее яв­но.&lt;br /&gt;
&lt;br /&gt;
При вы­бо­ре про­цес­со­ра сто­ит учи­ты­вать, сколь­ко ин­тен­сив­ных за­дач вы бу­де­те вы­пол­нять од­но­вре­мен­но. Для сер­ве­ра про­верь­те, влия­ет ли число ядер на про­из­во­ди­тель­ность кон­крет­ных сер­ви­сов, ко­то­ры­ми вы бу­де­те поль­зо­вать­ся. За­да­чи, хо­ро­шо ра­бо­таю­щие на мно­го­ядер­ных ком­пь­ю­те­рах, час­то ра­бо­та­ют еще луч­ше на ви­део­кар­тах с CUDA или OpenCL.&lt;br /&gt;
}}&lt;br /&gt;
{| class=&amp;quot;standart&amp;quot;&lt;br /&gt;
|+ '''Шаг за шагом: '''  &lt;br /&gt;
| [[Файл:303388.png | center |thumb|300px|Млн ко­манд в се­кун­ду (MIPS)(1-3 ядра)SciMark v2 Monte Carlo&lt;br /&gt;
SciMark v2 Sparse Matrix Multiply ]]&lt;br /&gt;
| [[Файл: 303396.png| center |thumb|300px|МБ/с (1-3 ядро). За­пись на диск. Чте­ние дис­ка ]]&lt;br /&gt;
|[[Файл:303406.png | center |thumb|300px| John The Ripper. Про­ве­рок в се­кун­ду (в млн)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В све­те все­го это­го нелег­ко по­нять, на­сколь­ко про­из­во­ди­тель­ны­ми раз­лич­ные кон­фи­гу­ра­ции мо­гут быть в раз­ных си­туа­ци­ях. Вме­сто то­го, что­бы по­про­бо­вать по­нять, как ком­пь­ю­те­ры бу­дут ра­бо­тать с раз­ны­ми кон­фи­гу­ра­ция­ми про­цес­со­ра, мы за­пустим се­рию тес­тов и уви­дим, как они ра­бо­та­ют. Про­цес­со­ры, ко­то­рые мы бу­дем тес­ти­ро­вать, та­ко­вы:&lt;br /&gt;
&lt;br /&gt;
» AMD Phenom II X4 3400 МГц Quad Core (Кэш: 4 × 64 КБ уро­вень 1, 4 × 512 КБ уро­вень 2 и 6 МБ уро­вень 3), це­на £79,00&lt;br /&gt;
&lt;br /&gt;
» AMD Phenom II X6 6 Core 3300 МГц (Кэш: 6 × 512 КБ уро­вень 2, 6 МБ уро­вень 3), це­на £100,27&lt;br /&gt;
&lt;br /&gt;
» Intel i5-2500K 3,6 ГГц (Кэш: 2 × 32 КБ уро­вень 1, 256 КБ уро­вень 2, 6 МБ уро­вень 3), це­на £162,43&lt;br /&gt;
&lt;br /&gt;
Все про­цес­со­ры мы за­пуска­ли на ре­ко­мен­дуе­мых так­то­вых час­то­тах. Раз­гон про­цес­со­ров – са­мо по се­бе ис­кусст­во, и из ка­ж­до­го из них мож­но вы­жать до­полнитель­ную про­из­во­ди­тель­ность, но дан­ная те­ма на­хо­дит­ся за рам­ка­ми на­шей ста­тьи.&lt;br /&gt;
&lt;br /&gt;
В иде­аль­ном ми­ре мы бы про­тес­ти­ро­ва­ли все про­цес­со­ры с оди­на­ко­вы­ми ма­те­рин­ски­ми пла­та­ми, что­бы ис­клю­чить лю­бые раз­ли­чия. Од­на­ко у раз­ных про­цес­со­ров раз­ные схе­мы кон­так­тов, и они фи­зи­че­­ски не по­дой­дут ко всем пла­там (а ес­ли и по­дой­дут, то не бу­дут ра­бо­тать).&lt;br /&gt;
&lt;br /&gt;
Мы об­на­ру­жи­ли, что про­цес­сор Intel обо­гнал про­цес­со­ры AMD по про­из­во­ди­тель­но­сти поч­ти во всех об­лас­тях. И неуди­ви­тель­но: он сто­ит вдвое до­ро­же са­мо­го де­ше­во­го из них. В неко­то­рых тес­тах – на­при­мер, тес­те ста­ти­че­­ской страницы Apache – его про­из­во­ди­тель­ность бы­ла вы­ше вдвое. По­жа­луй, бо­лее стран­но то, что он поч­ти вез­де пре­взо­шел Phenom II X6, несмот­ря на то, что у него на два яд­ра мень­ше и так­то­вая час­то­та лишь немно­гим вы­ше. Ис­клю­чения­ми ста­ли тест по взло­му па­ро­лей John the Ripper и неко­то­рые тес­ты GraphicsMagic. Это тес­ты с вы­со­кой сте­пе­нью рас­па­рал­ле­ли­вания, умею­щие восполь­зо­вать­ся всей до­полнитель­ной вы­чис­ли­тель­ной мощ­но­стью X6.&lt;br /&gt;
&lt;br /&gt;
Не все раз­ли­чия в про­из­во­ди­тель­но­сти обя­за­ны толь­ко про­цес­со­рам. Как мы ска­за­ли, они тес­ти­ро­ва­лись на раз­лич­ных ма­те­рин­ских пла­тах. На пла­те Intel есть твер­до­тель­ный же­ст­кий диск (SSD) для кэ­ши­ро­вания дан­ных, от­прав­ляе­мых на глав­ный SSD. Это при­ве­ло к су­ще­ст­вен­но­му росту ско­ро­стей чтения фай­лов раз­ме­ром до 2 ГБ, но с фай­ла­ми боль­ше это­го раз­ме­ра су­ще­ст­вен­ных раз­ли­чий не наблюдалось.&lt;br /&gt;
&lt;br /&gt;
Ско­рость за­пи­си на раз­лич­ных сис­те­мах бы­ла при­мер­но рав­ной. Вы­бор про­цес­со­ров се­го­дня, по­жа­луй, сло­жен как никогда. Поя­ви­лось боль­ше про­стых про­цес­со­ров, про­цес­со­ров с ма­лым энер­го­по­треб­лением, слож­ных про­цес­со­ров, па­рал­лель­ных гра­фи­че­­ских чи­пов и кла­сте­ров. Бо­лее ак­ту­аль­ным, чем когда-ли­бо рань­ше, ста­но­вит­ся не во­прос «Ка­кой про­цес­сор са­мый луч­ший?», а «Ка­кой про­цес­сор луч­ше все­го по­дой­дет для ре­шения дан­ной за­да­чи?». Для от­ве­та на него нуж­но знать, и ка­кие про­цес­со­ры пред­став­ле­ны на рын­ке, и их стои­мость, и то, как они вы­пол­ня­ют раз­лич­ные за­да­чи.&lt;br /&gt;
&lt;br /&gt;
Яд­ра Intel вы­со­ко­го клас­са об­ла­да­ют наи­боль­шей про­из­во­ди­тель­но­стью для ре­шения по­все­днев­ных за­дач, но эта ско­рость сто­ит денег. А до­полнитель­ные яд­ра X6 идут вро­вень, а иногда да­же об­хо­дят i5 в тес­тах GraphicsMagic, ими­ти­рую­щих ра­бо­ту с изо­бра­жения­ми, что по­зво­лит вам сэ­ко­но­мить при­лич­ную сум­му. Но ес­ли вы не бу­де­те поль­зо­вать­ся все­ми вид­же­та­ми и эф­фек­та­ми KDE, X4 бо­лее чем доста­точ­но для ре­шения боль­шин­ст­ва по­все­днев­ных вы­чис­ли­тель­ных за­дач.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок=64-бит­ные про­цес­со­ры про­тив 32-бит­ных |Ширина=98%|Содержание=Да­же ес­ли у вас 64-бит­ный про­цес­сор, вы мо­же­те не ощу­тить пре­иму­ще­ст­ва его воз­мож­но­стей. Для обес­пе­чения об­рат­ной со­вмес­ти­мо­сти 64-бит­ные про­цес­со­ры бы­ли раз­ра­бо­та­ны так, что­бы ис­пол­нять 32-бит­ный код. Мы про­ве­ли се­рию тес­тов на 64-бит­ном про­цес­со­ре с 32- и 64-бит­ны­ми вер­сия­ми Linux, что­бы по­смот­реть, как это влия­ет на про­из­во­ди­тель­ность. На 64-бит­ном про­цес­со­ре в це­лом все ра­бо­та­ет бы­ст­рее, но для боль­шин­ст­ва за­дач – нена­мно­го. При ре­шении обыч­ных за­дач вы ед­ва ли за­ме­ти­те разницу, но ес­ли вы про­из­во­ди­те вы­чис­ления, то боль­шая дли­на сло­ва уве­ли­чит про­из­во­ди­тель­ность. }} &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standart&amp;quot;&lt;br /&gt;
|+ '''Шаг за шагом: '''  &lt;br /&gt;
| [[Файл:303961.png | center |thumb|300px|SciMark v2 Monte Carlo SciMark v2 Sparse Matrix Multiply ]]&lt;br /&gt;
| [[Файл:303968.png | center |thumb|300px|32 бита - 64 бита, За­пись на диск, Чте­ние дис­ка ]]&lt;br /&gt;
|[[Файл:303976.png | center |thumb|300px|John The Ripper. Про­ве­рок в се­кун­ду (в млн) ]]&lt;br /&gt;
|}&lt;br /&gt;
===«Же­ле­зо»: Гра­фи­че­­ские про­цес­со­ры===&lt;br /&gt;
&lt;br /&gt;
''С при­хо­дом Steam в Linux и ренес­сан­сом ин­ди-игр на­ста­ло вре­мя об­но­вить &lt;br /&gt;
ва­шу ви­део­кар­ту.''&lt;br /&gt;
&lt;br /&gt;
По­жа­луй, са­мая субъ­ек­тив­ная часть лю­бо­го об­су­ж­дения «же­ле­за» – об­су­ж­дение уст­ройств, от­ве­чаю­щих за генера­цию гра­фи­ки. Все по­то­му, что луч­ший вы­бор здесь за­ви­сит от то­го, на­сколь­ко важ­на гра­фи­ка в ва­шей сис­те­ме. Ска­жем, ес­ли вы пред­по­чи­тае­те команд­ную стро­ку или про­стой фай­ло­вый менед­жер, мощ­ная до­ро­гая ви­део­кар­та бу­дет на­прас­ной тра­той денег. Де­ло в том, что наи­бо­лее силь­ны раз­ли­чия гра­фи­че­­ских про­цес­со­ров (GPU) имен­но в сфе­ре 3D-гра­фи­ки. И хо­тя воз­мож­но­сти 3D-рен­де­рин­га важ­ны толь­ко для трех­мер­ных игр, ма­те­ма­ти­че­­ские ре­сур­сы гра­фи­че­­ско­­го про­цес­со­ра сей­час при­вле­ка­ют­ся к мас­се дру­гих за­дач, на­при­мер, ко­ди­ро­ванию и де­ко­ди­ро­ванию ви­део с вы­со­ким раз­ре­шением, ма­те­ма­ти­че­­ским опе­ра­ци­ям, воспро­из­ве­дению кон­тен­та, за­щи­щен­но­го DRM, и для тех пуль­си­рую­щих окон и теней, ко­то­рые всем так нра­вят­ся на ра­бо­чем сто­ле. Луч­шая спе­ци­фи­ка­ция оз­на­ча­ет не толь­ко то, что иг­ры бу­дут за­пускать­ся с боль­шим раз­ре­шением, луч­шим ка­че­­ст­вом и бо­лее вы­со­кой час­то­той кад­ров – все это до­бав­ля­ет удо­воль­ст­вия иг­ро­ку – но бо­лее эф­фек­тив­ной станет и ра­бо­та со всей на­столь­ной сис­те­мой.&lt;br /&gt;
&lt;br /&gt;
====Об­ра­бот­ка====&lt;br /&gt;
&lt;br /&gt;
Раз­ви­тие GPU, как и CPU, по­хо­же, не ждет за­стой. Их мощ­ность уд­ваи­ва­ет­ся ка­ж­дые 18 ме­ся­цев – это и хо­ро­шо, и пло­хо. Хо­ро­шо, что про­шло­годние мо­де­ли сто­ят вдвое де­шев­ле, чем на мо­мент вы­пуска. Пло­хо, что ва­ша кар­та поч­ти всегда бу­дет уста­рев­шей, да­же ес­ли вы ку­пи­те са­мую по­след­нюю мо­дель. По этим при­чи­нам, а так­же по­то­му, что боль­шин­ст­во гей­ме­ров в Linux не бу­дут поль­зо­вать­ся са­мы­ми по­следними мо­де­ля­ми при от­сут­ст­вии са­мых по­следних игр (раз­ве что у вас двой­ная за­груз­ка с Windows), мы со­сре­до­то­чим­ся на стои­мо­сти, про­из­во­ди­тель­но­сти, под­держ­ке и со­вмес­ти­мо­сти уст­ройств. С точ­ки зрения стои­мо­сти мы рас­смот­рим чуть менее но­вые мо­де­ли, вклю­чив па­ру де­ше­вых и па­ру бо­лее до­ро­гих ва­ри­ан­тов. Для оцен­ки про­из­во­ди­тель­но­сти мы про­ве­рим ка­ж­дую ви­део­кар­ту вер­си­ей 3.0 тес­та Unigene. Это су­ро­вый тест 3D-про­из­во­ди­тель­но­сти, вклю­чаю­щий от­ри­сов­ку мил­лио­нов по­ли­го­нов в ок­ру­жении внешней сре­ды, ди­на­ми­че­­ско­­го гло­баль­но­го осве­щения, объ­ем­ных до­ж­де­вых об­ла­ков и рас­сеяния све­та. Он вы­гля­дит луч­ше, чем лю­бая род­ная для Linux иг­ра, и про­ве­ря­ет и воз­мож­но­сти уст­рой­ст­ва, и ка­че­­ст­во драй­ве­ров. Так как дви­жок Unigene ис­поль­зу­ет­ся в несколь­ких из­вест­ных иг­рах, вклю­чая Oil Rush, ре­зуль­та­ты тес­та долж­ны дать хо­ро­шее пред­став­ление об успе­хах GPU на лю­бых со­вре­мен­ных иг­рах.&lt;br /&gt;
&lt;br /&gt;
Од­на­ко мы хо­те­ли про­тес­ти­ро­вать ви­део­кар­ты и на тех иг­рах, в ко­то­рые вам хо­чет­ся по­иг­рать сей­час: на­при­мер, с по­следней вер­си­ей Alien Arena, а так­же с ком­мер­че­­ски­­ми ин­ди-иг­ра­ми, вро­де World of Goo. Что еще бо­лее важ­но, мы про­тес­ти­ро­ва­ли их и с неко­то­ры­ми иг­ра­ми от Steam, за­пу­щен­ны­ми на Wine. Steam – это иг­ро­вой пор­тал для Windows, ко­то­рый стал луч­шим ва­ри­ан­том по­куп­ки и уста­нов­ки но­вых игр для этой опе­ра­ци­он­ной сис­те­мы. Есть несколь­ко серь­ез­ных сви­де­тельств в поль­зу то­го, что до кон­ца это­го ко­да Steam при­дет в мир Linux. В та­ком слу­чае его про­из­во­ди­тель­ность на Wine долж­на дать нам неко­то­рое пред­став­ление о том, как те или иные иг­ры под Steam бу­дут ра­бо­тать в Linux.&lt;br /&gt;
&lt;br /&gt;
====Уст­рой­ст­ва====&lt;br /&gt;
&lt;br /&gt;
Мы про­тес­ти­ро­ва­ли пять раз­лич­ных уст­ройств. Пер­вые две кар­ты бы­ли ин­тег­ри­ро­ван­ны­ми, т. е. яв­ля­лись ча­стью про­цес­со­ра, а не от­дель­ны­ми кар­та­ми, встав­ляю­щи­ми­ся в слот на ма­те­рин­ской пла­те. Эти про­цес­со­ры и гра­фи­че­­ские кар­ты час­то на­зы­ва­ют уско­рен­ны­ми об­ра­ба­ты­ваю­щи­ми уст­рой­ст­ва­ми (APU). Мы на­ча­ли с Sandy Bridge APU от Intel на про­цес­со­ре i5-2500K с так­то­вой час­то­той 3,30 ГГц, и так как Intel серь­ез­но от­но­сит­ся к раз­ра­бот­ке драй­ве­ров для Linux, мы ожи­да­ли от него хо­ро­ших ре­зуль­та­тов. Дру­гой APU имел го­раз­до луч­шую спе­ци­фи­ка­цию на бу­ма­ге, и это A8-3850 APU (так­же из­вест­ный как AMD Fusion). Это пре­сло­ву­тое яд­ро PlayStation 4, и хо­тя гра­фи­че­­ский про­цес­сор на­шей мо­де­ли, по­хо­же, не та­кой мощ­ный, как бу­ду­щий на­следник Sony, его вы­чис­ли­тель­ную мощ­ность мож­но объ­е­динить с внешней ви­део­кар­той Radeon с по­мо­щью па­ра­мет­ра CrossFire, вклю­чаемого в BIOS. Это AMD Radeon HD 6550D, и мы ис­поль­зо­ва­ли ее с от­ве­ден­ны­ми 512 МБ ОЗУ. Ос­таль­ные ви­део­кар­ты бы­ли внешними и под­клю­ча­лись в сво­бод­ные сло­ты PCIe на ма­те­рин­ской пла­те. При этом нуж­но убе­дить­ся, что у вас есть два сво­бод­ных сло­та, так как ви­део­кар­та час­то занима­ет со­седний слот для до­полнитель­но­го ох­ла­ж­дения, и что ваш ис­точник пи­тания доста­точ­но мощ­ный. Мы поль­зо­ва­лись ис­точником пи­тания мощ­но­стью 600 Вт с дву­мя от­дель­ны­ми «рель­са­ми» 12 В для пи­тания ви­део­кар­ты. На­ши кар­ты тре­бо­ва­ли до­полнитель­но­го пи­тания: один 6-кон­такт­ный разъ­ем или два для са­мой энер­го­ем­кой кар­ты – Nvidia. Мо­де­ли, ко­то­рые мы про­ве­ря­ли – де­ше­вая AMD Radeon HD 6670 (од­на из карт, пред­на­зна­чен­ная для ра­бо­ты с A8-3850 APU) и бо­лее мощ­ные AMD Radeon HD6850 и Nvidia GTX570, и тес­ти­ро­вание вы­пол­ня­лось и с от­кры­ты­ми, и с за­кры­ты­ми драй­ве­ра­ми.&lt;br /&gt;
{{Врезка|right|Заголовок= Тес­ти­ро­ва­ние GPU|Ширина=20%|Содержание=Все уст­рой­ст­ва, кро­ме Intel, мы тес­ти­ро­ва­ли в сис­те­ме с про­цес­со­ром AMD A8-3850 3,6 ГГц, 4 ГБ опе­ра­тив­ной па­мя­ти и стан­дарт­ной 64-бит­ной вер­си­ей Ubuntu 12.04. Что­бы из­бе­жать кон­флик­тов с гра­фи­че­­ским уско­рением, мы поль­зо­ва­лись Unity 2D.&lt;br /&gt;
*Intel Sandy Bridge i5-2500K, це­на £ 145&lt;br /&gt;
*AMD Radeon HD 6550D, це­на £ 80 (с про­цес­со­ром A8-3850)&lt;br /&gt;
*AMD Radeon HD 6670 1 ГБ, це­на £ 50&lt;br /&gt;
*AMD Radeon HD6850 1 ГБ, це­на £ 90&lt;br /&gt;
*Nvidia GTX570 1,25 ГБ, це­на £ 180 }} &lt;br /&gt;
====Тест: оцен­ка ви­део­карт====&lt;br /&gt;
&lt;br /&gt;
Ре­зуль­та­ты Sandy Bridge бы­ли неод­но­знач­ны. Тест Mesa 8.0.2 от Unigene еле за­пустил­ся, а зна­чит, во мно­гие со­вре­мен­ные иг­ры по­иг­рать не по­лу­чит­ся. С Alien Arena по­вез­ло боль­ше: мы по­лу­чи­ли ком­форт­ные 60 кад­ров в се­кун­ду, но при­шли к вы­во­ду, что для игр по­на­до­бит­ся про­прие­тар­ный драй­вер. Пер­вым GPU от Radeon, ко­то­рый мы про­тес­ти­ро­ва­ли, был встро­ен­ный HD 6550D с от­кры­тым драй­ве­ром Gallium вер­сии 0.4. Про­из­во­ди­тель­ность ра­бо­че­го сто­ла бы­ла хо­ро­шей, и уско­рен­ный Unity в Ubuntu ра­бо­тал безо вся­ких про­блем (как и на Intel). Ни­чуть не мень­ше нас впе­чат­ли­ло то, что тест «Небе­са [Heaven]» дал луч­шие ре­зуль­та­ты, чем у Sandy Bridge, и тем бо­лее – чем на на­шей ста­рой Nvidia 7600GTS, но рен­де­ринг тем не менее не ра­бо­тал. Мы на­блю­да­ли, как си­лу­эты, вме­сто цвет­ных тек­стур, пол­зут по эк­ра­ну с час­то­той 7 кад­ров в се­кун­ду. По­это­му для сле­дую­ще­го тес­та мы восполь­зо­ва­лись про­прие­тар­ны­ми драй­ве­ра­ми Catalyst, ко­то­рые уста­но­ви­ли вруч­ную.&lt;br /&gt;
&lt;br /&gt;
На­шим сле­дую­щим тес­том бы­ла Alien Arena, ко­то­рая за­пуска­лась с на удив­ление низ­кой час­то­той в 25 кад­ров в се­кун­ду – бо­лее чем доста­точ­но для сча­стья офис­ных при­ло­жений, но очень да­ле­ко от Sandy Bridge. Но в тес­те «Небе­са» про­прие­тар­ные драй­ве­ры вы­полнили рен­де­ринг кор­рект­но, по­лу­чив 10,3 оч­ка. Мо­жет по­ка­зать­ся, что это ма­ло, но ес­ли учесть, что чип­сет встро­ен­ный и сам тест не оп­ти­ми­зи­ро­ван под иг­ры, то ре­зуль­тат неплох. Мы по­про­бо­ва­ли за­пустить один и тот же тест в Unity 3D и Unity 2D, что­бы по­смот­реть, есть ли разница, когда ра­бо­чий стол ис­поль­зу­ет OpenGL, и не на­шли ее – это до­ка­зы­ва­ет, что в недав­но вы­пу­щен­ном Unity 5.12 про­бле­мы с про­из­во­ди­тель­но­стью OpenGL бы­ли ис­прав­ле­ны. Про­из­во­ди­тель­ность немно­го под­ня­лась, когда мы тес­ти­ро­ва­ли Radeon HD 6670 1024 МБ. Alien Arena те­перь за­пуска­лась с час­то­той 55 кад­ров в се­кун­ду, а тест «Небе­са» дал нам 25,3 кад­ра в се­кун­ду с минималь­ным зна­чением в 11 и мак­си­маль­ным в 46 кад­ров в се­кун­ду. Это пре­крас­ный ре­зуль­тат для бюд­жет­ной кар­ты, и ес­ли вы пред­поч­те­те вер­сию с пас­сив­ным ох­ла­ж­дением, она мо­жет стать иде­аль­ным ва­ри­ан­том для Linux-ма­ши­ны, ис­поль­зуе­мо­го под иг­ры и про­смотр филь­мов.&lt;br /&gt;
&lt;br /&gt;
====Тест: мощ­ные ви­део­кар­ты====&lt;br /&gt;
&lt;br /&gt;
Нам оста­лись две са­мых мощ­ных ви­део­кар­ты – Radeon HD6850 1024 МБ и Nvidia GTX570. Мы на­ча­ли с Radeon, по­то­му что драй­ве­ры для нее уже бы­ли уста­нов­ле­ны, и она ми­гом про­де­мон­ст­ри­ро­ва­ла го­раз­до луч­шие ре­зуль­та­ты с тес­том «небе­са», на­брав 46,2 кад­ров в секунду с минималь­ны­ми 15 и мак­си­маль­ны­ми 78,8.&lt;br /&gt;
&lt;br /&gt;
Восхи­щен­ные этим ре­зуль­та­том, мы ре­ши­ли исследо­вать несколь­ко дру­гих тес­тов, пер­вым де­лом – с род­ной (и ста­рой) вер­си­ей Darwinia. Она за­пусти­лась с ис­клю­чи­тель­ны­ми 160 – 250 кад­ра­ми в се­кун­ду, а зна­чит, у этой кар­ты не бу­дет ника­ких про­блем со ста­ры­ми иг­ра­ми. Но когда мы по­про­бо­ва­ли при­нять­ся за Steam, поя­ви­лись про­бле­мы. На­при­мер, что­бы за­ра­бо­тал Bioshock, сна­ча­ла при­шлось вый­ти из Unity 3D. Но да­же когда иг­ра за­пусти­лась, гра­фи­ка от­ри­со­вы­ва­лась непра­виль­но. С иг­ра­ми от Source все бы­ло луч­ше – стресс-тес­ты, и Half Life 2, и Lost Coast, по­ка­за­ли хо­ро­шие ре­зуль­та­ты: по­след­няя ра­бо­та­ла с час­то­той 47,91 кад­ров в се­кун­ду при впе­чат­ляю­щем ка­че­­ст­ве рен­де­рин­га.&lt;br /&gt;
&lt;br /&gt;
И, на­конец, са­мая до­ро­гая ви­део­кар­та в на­шей под­бор­ке – GTX570 от Nvidia с ОЗУ 1,25 ГБ. Сна­ча­ла мы про­тес­ти­ро­ва­ли ее с от­кры­ты­ми драй­ве­ра­ми nouveau, но иг­ры Darwinia и Steam за­пустить не уда­лось, и мы по­ня­ли, что ес­ли вы намереваетесь по­тра­тить зна­чи­тель­ную сум­му денег на ви­део­кар­ту, вам по­на­до­бят­ся про­прие­тар­ные драй­ве­ры, по­лу­чше.&lt;br /&gt;
[[Файл: 304591.png|left |600px |thumb|«Не­бе­са»: Срав­не­ние про­из­во­ди­тель­но­сти]]&lt;br /&gt;
В ис­поль­зо­вании про­прие­тар­ных драй­ве­ров Nvidia есть и дру­гие пре­иму­ще­ст­ва. На­при­мер, вме­сте с драй­ве­ра­ми мож­но уста­но­вить очень мощ­ную ути­ли­ту на­строй­ки. Для под­держ­ки несколь­ких эк­ра­нов мож­но вклю­чить TwinView, ко­то­рый всегда ка­зал­ся нам бо­лее ста­биль­ным, чем Xinerama, и пе­ре­клю­чать­ся ме­ж­ду раз­лич­ны­ми раз­ре­шения­ми для ка­ж­до­го эк­ра­на без пе­ре­за­пуска. Драй­ве­ры Catalyst то­же уме­ют это де­лать, но с Nvidia так­же мож­но ра­зо­гнать свою ви­део­кар­ту и от­сле­жи­вать ее тем­пе­ра­ту­ру. Ути­ли­та так­же до­воль­но удоб­на при уст­ранении непо­ла­док, и с по­мо­щью ути­ли­ты На­строй­ки [Settings] мы смог­ли за­гру­зить с на­ших эк­ра­нов дан­ные EDID и за­ста­вить дру­гие эк­ра­ны то­же их ис­поль­зо­вать.&lt;br /&gt;
&lt;br /&gt;
С про­прие­тар­ны­ми драй­ве­ра­ми безуслов­ным по­бе­ди­те­лем ста­ла GTX570. Она вы­да­ла серь­ез­ный ре­зуль­тат на тес­те «Небе­са» (66,6 кад­ров/с) и безу­преч­но за­пусти­ла Stream под Wine, по­это­му ви­део­кар­ты от Nvidia по­тя­нут иг­ры Steam с боль­шим от­ры­вом. Сто­ит ли это лишних затрат, за­ви­сит от то­го, на­сколь­ко иг­ры для вас важ­ны.&lt;br /&gt;
===Твер­до­тель­ные же­ст­кие дис­ки===&lt;br /&gt;
&lt;br /&gt;
''Сме­ни­те свой диск на та­кой, ко­то­рым управ­ля­ют толь­ко элек­тро­ны.''&lt;br /&gt;
&lt;br /&gt;
Хо­тя про­цес­со­ры, ви­део­кар­ты, опе­ра­тив­ная па­мять и се­те­вые под­клю­чения с го­да­ми ста­но­вят­ся бы­ст­рее, же­ст­кие дис­ки, ка­жет­ся, уш­ли неда­ле­ко. В них все еще ис­поль­зу­ют­ся ме­ханиче­­ские ком­понен­ты, и по су­ти они оста­ют­ся одними из са­мых тя­же­лых, мед­лен­ных, нена­деж­ных и энер­го­ем­ких ком­понен­тов ком­пь­ю­те­ра. Но твер­до­тель­ные же­ст­кие дис­ки (Solid State Drive – SSD) все ме­ня­ют, и это од­на из са­мых потрясающих раз­ра­бо­ток сре­ди уст­ройств для пер­со­наль­но­го ком­пь­ю­те­ра за по­следние пять лет.&lt;br /&gt;
&lt;br /&gt;
В дан­ном раз­де­ле мы рас­смот­рим эти чу­дес­ные уст­рой­ст­ва. Мы сравним два дис­ка, ко­то­рые у нас есть, а так­же от­ве­тим на веч­ные во­про­сы поль­зо­ва­те­лей об SSD: «Сто­ят ли они сво­их денег?», «Сколь­ко они про­слу­жат?» и «Как по­лу­чить луч­шие ре­зуль­та­ты от мое­го же­ст­ко­го дис­ка?»&lt;br /&gt;
&lt;br /&gt;
====Сто­ят ли они за­трат?====&lt;br /&gt;
&lt;br /&gt;
В обыч­ных же­ст­ких дис­ках есть вра­щаю­щий­ся диск, по­кры­тый магнит­ным ма­те­риа­лом. На этот магнит­ный ма­те­ри­ал воз­дей­ст­ву­ют го­лов­ки чтения/за­пи­си при пе­ре­ме­щении над дис­ком, и имен­но он хранит дан­ные. А вот в SSD дви­жу­щих­ся час­тей нет. Вме­сто это­го они со­сто­ят из мил­лио­нов ма­лень­ких тран­зи­сто­ров (мас­си­ва пла­ваю­щих ло­ги­че­­ских вен­ти­лей), ка­ж­дый из ко­то­рых хранит один бит ин­фор­ма­ции. Так как в них нет дви­жу­щих­ся час­тей, они ти­ше, лег­че, бо­лее энер­го­эф­фек­тив­ны, об­ла­да­ют боль­шим сро­ком служ­бы и ско­ро­стью ра­бо­ты.&lt;br /&gt;
&lt;br /&gt;
Это, безуслов­но, здо­ро­во, ес­ли вы хо­ти­те поль­зо­вать­ся ими на но­ут­бу­ке, где очень важ­ны раз­ме­ры, энер­го­по­треб­ление и шумность. Уве­ли­чен­ная ско­рость так­же ока­жет ог­ром­ное влияние на за­пуск при­ло­жений (и лю­бые дру­гие опе­ра­ции, тре­бую­щие час­тых об­ра­щений к дис­ку), и ваш ком­пь­ю­тер станет ра­бо­тать за­мет­но бы­ст­рее.&lt;br /&gt;
&lt;br /&gt;
Все эти пре­иму­ще­ст­ва пре­крас­ны, но у SSD есть и недостат­ки, и о них сле­ду­ет по­ду­мать, пре­ж­де чем по­ку­пать диск. Глав­ный – дис­ков та­ко­го же объ­е­ма, как тра­ди­ци­он­ные, ку­пить нель­зя, и они го­раз­до до­ро­же. На­при­мер, диск Crucial M4 128 ГБ, ко­то­рый у нас был, сто­ит £ 107,99, а за £ 79,99 мож­но ку­пить обыч­ный же­ст­кий диск объ­е­мом 2 ТБ. Ес­ли вам нуж­но мно­го дискового пространства или ваш бюд­жет ог­раничен, SSD, воз­мож­но, не для вас.&lt;br /&gt;
&lt;br /&gt;
Та­ким об­ра­зом, от­вет на во­прос «Сто­ит ли они за­трат?» – «В за­ви­си­мо­сти от то­го, как вы ис­поль­зуе­те ком­пь­ю­тер».&lt;br /&gt;
&lt;br /&gt;
====Срок служ­бы====&lt;br /&gt;
&lt;br /&gt;
Два об­щих со­мнения, ка­саю­щие­ся SSD – в том, дол­го ли они слу­жат и со­хра­ня­ют ли они про­из­во­ди­тель­ность в те­чение все­го сро­ка служ­бы. Эти со­мнения небезосно­ва­тель­ны. Тран­зи­сто­ры в SSD про­слу­жат око­ло 10 лет или в те­чение 10 000 опе­ра­ций за­пи­си (что на­сту­пит бы­ст­рее), по­это­му срок их служ­бы ог­раничен. Бо­лее то­го, в неко­то­рых ранних мо­де­лях пло­хие про­шив­ки мог­ли зна­чи­тель­но снизить про­из­во­ди­тель­ность с те­чением вре­мени.&lt;br /&gt;
&lt;br /&gt;
На со­вре­мен­ных дис­ках с со­вре­мен­ны­ми опе­ра­ци­он­ной и фай­ло­вой сис­те­ма­ми зна­чи­мость этих про­блем су­ще­ст­вен­но снижа­ет­ся бла­го­да­ря так на­зы­вае­мой TRIM [ко­ман­да ин­тер­фей­са ATA, по­зво­ляю­щая опе­ра­ци­он­ной сис­те­ме уве­до­мить твер­до­тель­ный на­ко­пи­тель о том, ка­кие бло­ки дан­ных боль­ше не ис­поль­зу­ют­ся и мо­гут при­ме­нять­ся на­ко­пи­те­лем для под­го­тов­ки к за­пи­си, – прим. пер.]. Она по­мо­га­ет про­шив­ке дис­ка управ­лять вы­де­лением бло­ков дан­ных, га­ран­ти­руя, что запись на ка­ж­дый тран­зи­стор бу­дет про­из­во­дить­ся минималь­ное чис­ло раз без снижения про­из­во­ди­тель­но­сти.&lt;br /&gt;
&lt;br /&gt;
На­сколь­ко боль­шой эф­фект ока­зы­ва­ет TRIM? В од­ной из са­мых ав­то­ри­тет­ных ста­тей по этой те­ме Ананд Лал Шим­пи [Anand Lal Shimpi] об­на­ру­жил, что без TRIM про­из­во­ди­тель­ность ста­ро­го дис­ка со­став­ля­ла все­го 52 % про­из­во­ди­тель­но­сти но­во­го; с TRIM этот по­ка­за­тель со­став­лял 98 %. По­это­му TRIM сто­ит вклю­чить.&lt;br /&gt;
&lt;br /&gt;
Как же вклю­чить TRIM? Сна­ча­ла нуж­но убе­дить­ся, что диск ее под­дер­жи­ва­ет. Ес­ли вы ку­пи­ли диск в по­следние пару лет, это поч­ти на­вер­ня­ка так, но на дис­ках поста­рше это сто­ит про­ве­рить.&lt;br /&gt;
&lt;br /&gt;
Сде­лать это мож­но ко­ман­дой hdparm:&lt;br /&gt;
&lt;br /&gt;
hdparm -I /dev/&amp;lt;ssd&amp;gt; | grep “TRIM supported”&lt;br /&gt;
&lt;br /&gt;
за­менив &amp;lt;ssd&amp;gt; на имя уст­рой­ст­ва сво­его SSD. Ес­ли ко­ман­да что-то вернет, то вы го­то­вы вклю­чить TRIM в опе­ра­ци­он­ной сис­те­ме.&lt;br /&gt;
&lt;br /&gt;
Для это­го нуж­но от­фор­ма­ти­ро­вать свои раз­де­лы с ext4 или btrfs. TRIM под­дер­жи­ва­ют толь­ко эти две фай­ло­вые сис­те­мы. Здесь в ре­дак­ции LXF мы поль­зу­ем­ся ext4, так как в btrfs все еще нет ста­биль­ной ути­ли­ты восста­нов­ления, что снижа­ет шан­сы на восста­нов­ление по­сле сбоя – и мы со­ве­ту­ем вам то­же восполь­зо­вать­ся ext4.&lt;br /&gt;
&lt;br /&gt;
====Ме­ня­ем оп­ции мон­ти­ро­вания====&lt;br /&gt;
&lt;br /&gt;
По­сле это­го из­мените оп­ции мон­ти­ро­вания фай­ло­вой сис­те­мы, так как в них TRIM не вклю­че­на по умол­чанию. Для это­го нуж­но от­ре­дак­ти­ро­вать файл /etc/fstab. Пе­ред внесением лю­бых из­менений обя­за­тель­но со­храните ре­зерв­ную ко­пию, по­то­му что ес­ли вы до­пусти­те ошиб­ку, сис­те­ма мо­жет пе­ре­стать за­гру­жать­ся.&lt;br /&gt;
&lt;br /&gt;
cp /etc/fstab /etc/fstab.bk&lt;br /&gt;
&lt;br /&gt;
Ес­ли что-то ис­пор­тит­ся, вы смо­же­те за­гру­зить­ся с Live CD, восста­но­вить файл из ко­пии, пе­ре­за­гру­зить­ся, и сис­те­ма сно­ва станет ра­бо­тоспособна.&lt;br /&gt;
&lt;br /&gt;
Соз­дав ре­зерв­ную ко­пию, из­мените во всех стро­ках фай­ла, от­но­ся­щих­ся к раз­де­лам на SSD, часть со сло­вом ‘defaults’. До­бавь­те к ней ‘,discard’, и те­перь стро­ки бу­дут вы­гля­деть так:&lt;br /&gt;
&lt;br /&gt;
/dev/sda1 / ext4 defaults,discard 0 1&lt;br /&gt;
&lt;br /&gt;
Го­то­во. Со­храните файл, пе­ре­за­гру­зи­тесь, и под­держ­ка TRIM для дис­ка бу­дет вклю­че­на. Это са­мая важ­ная на­строй­ка для ва­ше­го твер­до­тель­но­го дис­ка.&lt;br /&gt;
&lt;br /&gt;
====Уве­ли­чение сро­ка служ­бы====&lt;br /&gt;
&lt;br /&gt;
Есть и дру­гие на­строй­ки, спо­соб­ные уве­ли­чить срок служ­бы дис­ка.&lt;br /&gt;
&lt;br /&gt;
Про­стей­шая из них – до­ба­вить к оп­ци­ям мон­ти­ро­вания noatime, точ­но так же, как ранее мы до­ба­ви­ли оп­цию discard. В фай­ло­вых сис­те­мах Linux обыч­но хра­нят­ся вре­мя по­следнего чтения и по­следнего из­менения фай­ла. С оп­ци­ей noatime бу­дет со­хра­нять­ся толь­ко вре­мя по­следнего из­менения, что снизит чис­ло опе­ра­ций за­пи­си и уве­ли­чит срок служ­бы дис­ка. Од­на­ко пре­ду­пре­ж­да­ем: ста­рые про­грам­мы, вро­де Mutt, не бу­дут ра­бо­тать пра­виль­но с этой оп­ци­ей, по­это­му сна­ча­ла про­верь­те со­вмес­ти­мость при­ло­жений.&lt;br /&gt;
&lt;br /&gt;
Срок служ­бы дис­ка мож­но так­же уве­ли­чить, тща­тель­но про­ду­мав, ка­кие раз­де­лы на нем раз­мес­тить. На­при­мер, ес­ли на­ря­ду с SSD в сис­те­ме есть обыч­ный же­ст­кий диск, сто­ит раз­мес­тить на SSD фай­ло­вые сис­те­мы, доступ к ко­то­рым осу­ще­ст­в­ля­ет­ся ре­же, та­кие как / и /home, а /var, /tmp и swap раз­мес­тить на обыч­ном дис­ке. Ес­ли та­кой ва­ри­ант вам не под­хо­дит, мож­но на­стро­ить и дру­гие па­ра­мет­ры, ра­ди снижения час­то­ты за­пи­си в эти ка­та­ло­ги. На­при­мер, мож­но уве­ли­чить уро­вень серь­ез­но­сти за­пи­сы­вае­мых в лог со­об­щений, из­менив файл /etc/rsyslog.conf (под­роб­но­сти см. че­рез man rsyslog.conf), или умень­шить «ак­тив­ность под­кач­ки» сис­те­мы, что­бы она как можно ре­же поль­зо­ва­лась фай­лом под­кач­ки. Для это­го вы­полните следующую ко­ман­ду:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/vm/swappiness&lt;br /&gt;
&lt;br /&gt;
====На­ши тес­то­вые дис­ки====&lt;br /&gt;
&lt;br /&gt;
Боль­шин­ст­во SSD ис­поль­зу­ют при­мер­но оди­на­ко­вую тех­но­ло­гию хранения дан­ных. На про­из­во­ди­тель­ность боль­ше влия­ют кон­трол­лер и про­шив­ка – уст­рой­ст­во ре­ша­ет, когда и ку­да за­пи­сать дан­ные. Пло­хой кон­трол­лер мо­жет за­мед­лить диск, осо­бен­но со вре­менем, и при­вес­ти к из­менению про­из­во­ди­тель­но­сти при опе­ра­ци­ях за­пи­си раз­но­го раз­ме­ра (на­при­мер, 4К и 9К).&lt;br /&gt;
&lt;br /&gt;
Два на­ших тес­то­вых дис­ка про­де­мон­ст­ри­ро­ва­ли два кон­ку­ри­рую­щих кон­трол­ле­ра. В Crucial M4 ис­поль­зу­ет­ся кон­трол­лер Marvell, а в Intel 330 – Sandforce. Эти же кон­трол­ле­ры ис­поль­зу­ют­ся и на мно­же­ст­ве дру­гих дис­ков, так что на­ши ре­зуль­та­ты по­мо­гут вам вы­брать диск для по­куп­ки, да­же ес­ли он бу­дет дру­гим.&lt;br /&gt;
&lt;br /&gt;
Мы про­тес­ти­ро­ва­ли дис­ки с по­мо­щью тес­тов Postmark, Compile Bench и Kernel Unpacking из на­бо­ра тес­тов Phoronix Test Suite, что­бы рас­смот­реть их про­из­во­ди­тель­ность в ре­аль­ных си­туа­ци­ях. Все тес­ты про­во­ди­лись в Ubuntu 12.04 с фай­ло­вой сис­те­мой ext4 и оп­ци­ей discard в /etc/fstab.&lt;br /&gt;
&lt;br /&gt;
По­жа­луй, ин­те­реснее всех тест Compile Bench, так как он пы­та­ет­ся ими­ти­ро­вать опе­ра­ции, ко­то­рые ста­рят фай­ло­вую сис­те­му – са­мый вер­ный сце­на­рий для на­груз­ки кон­трол­ле­ра. На этих тес­тах диск Intel с кон­трол­ле­ром Sandforce по­ка­зал го­раз­до луч­шие ре­зуль­та­ты.&lt;br /&gt;
&lt;br /&gt;
Од­на­ко диск Crucial был го­раз­до бы­ст­рее при ра­бо­те со мно­же­ст­вом ма­лень­ких фай­лов в тес­те PostMark и немно­го бы­ст­рее при рас­па­ков­ке яд­ра.&lt;br /&gt;
&lt;br /&gt;
Оба дис­ка сто­ят оди­на­ко­во; че­рез Ин­тернет их мож­но ку­пить от £84 и вы­ше. |&lt;br /&gt;
&lt;br /&gt;
«Дис­ков та­ко­го же объ­е­ма, как тра­ди­ци­он­ные, ку­пить нель­зя.»&lt;br /&gt;
&lt;br /&gt;
====На­строй­ки про­из­во­ди­тель­но­сти====&lt;br /&gt;
&lt;br /&gt;
Для тех, кто по­ме­шан на ско­ро­сти, есть па­ра на­стро­ек, ко­то­рые мож­но при­менить для уве­ли­чения ско­ро­сти дис­ка. Од­на из них вклю­ча­ет пра­виль­ное вы­равнивание раз­де­лов, но о ней уже рас­ска­зал Нейл Бот­вик в LXF160, и здесь мы не бу­дем уг­луб­лять­ся в де­та­ли.&lt;br /&gt;
&lt;br /&gt;
Дру­гая – из­менить на­строй­ки планиров­щи­ка дис­ка. Он оп­ре­де­ля­ет по­ря­док вы­де­ления бло­ков дис­ка: на вра­щаю­щих­ся же­ст­ких дис­ках планиров­щик ис­поль­зо­вал­ся для на­зна­чения при­ори­те­тов одним бло­кам дис­ка по от­но­шению к дру­гим (вре­мя досту­па к бло­ку раз­ли­ча­ет­ся по ме­ре его бли­зо­сти к цен­тру дис­ка). А в SSD вре­ме­на досту­па к бло­кам поч­ти оди­на­ко­вы, и та­кая дис­кри­ми­на­ция мо­жет зна­чи­тель­но снизить про­из­во­ди­тель­ность, по­это­му сто­ит пе­ре­клю­чить­ся на «хо­ло­стой [noop]» планиров­щик:&lt;br /&gt;
&lt;br /&gt;
echo noop &amp;gt; /sys/block/&amp;lt;ssd&amp;gt;/queue/scheduler.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standart&amp;quot;&lt;br /&gt;
|+ '''Результаты: '''  &lt;br /&gt;
| [[Файл: 304682.png| center |thumb|300px|Postmark, Compile Bench Initial Create, Compile Bench Compile, Compile Bench, Read Compiled Tree, Unpacking the Linux Kernel ]]&lt;br /&gt;
| [[Файл: 305098.png| center |thumb|300px|Postmark, Compile Bench Initial Create, Compile Bench Compile, Compile Bench, Read Compiled Tree, Unpacking the Linux Kernel ]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF80:Python</id>
		<title>LXF80:Python</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF80:Python"/>
				<updated>2023-10-13T04:12:56Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF80:Python в Бои за Авдеевку 2023&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Бои за Авдеевку 2023]]&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%91%D0%BE%D0%B8_%D0%B7%D0%B0_%D0%90%D0%B2%D0%B4%D0%B5%D0%B5%D0%B2%D0%BA%D1%83_2023</id>
		<title>Бои за Авдеевку 2023</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%91%D0%BE%D0%B8_%D0%B7%D0%B0_%D0%90%D0%B2%D0%B4%D0%B5%D0%B5%D0%B2%D0%BA%D1%83_2023"/>
				<updated>2023-10-13T04:12:56Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF80:Python в Бои за Авдеевку 2023&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{цикл/Python}}&lt;br /&gt;
УЧЕБНИК ''Python''&lt;br /&gt;
&lt;br /&gt;
ПРОГРАММИРОВАНИЕ СЦЕНАРИЕВ&lt;br /&gt;
&lt;br /&gt;
== Уроки Python ==&lt;br /&gt;
'''ЧАСТЬ 6 '''&lt;br /&gt;
&lt;br /&gt;
''Теперь, когда мы научились обрабатывать строки, самое время показать наше умение другим. Но кто будет смотреть сценарий «без лица», пусть даже в Konsole с красивым прозрачным фоном? Для тех, кто не Квентин Тарантино, '''Сергей Супрунов '''покажет, как создаются на ''Python ''графические интерфейсы.''&lt;br /&gt;
&lt;br /&gt;
Чем больше работаешь с ''Python'', тем сильнее ощущаешь его мощь и гибкость. Порой кажется, что для этого языка нет ничего невозможного. Это же можно отнести и к разработке графического интерфейса пользователя (хотя здесь ''Python ''просто использует возможности мощных библиотек). Как вы увидите, ''Python и в'' этом вопросе сохраняет простоту и эффективность, становясь весьма удобным инструментом для решения таких задач, как создание «обёрток» к различным консольным утилитам, разработка графических конфигураторов для ваших любимых инструментов, проектирование прототипов программ (куда проще за пару дней согласовать с заказчиком все «интерфейсные» моменты разрабатываемого проекта, меняя внешний вид прямо на переговорах, чем спустя месяцы напряжённой работы переделывать многомегабайтный проект на C++, только лишь потому, что заказчик счёл интерфейс слишком сложным для освоения), и т.д. Кстати, инсталлятор Gentoo, появившийся в версии 2006.0 и наделавший столько шума, тоже написан на ''Python''.&lt;br /&gt;
&lt;br /&gt;
Для ''Python ''разработано множество инструментов, отличающихся по гибкости, сложности, степени интеграции с вашим окружением. В рамках одного урока сложно рассмотреть всё это многообразие даже в общих чертах. Поэтому мы ограничимся кратким знакомством с модулем ''Tkinter ''и «привязками» ''PyQt ''и ''PyGTK''.&lt;br /&gt;
&lt;br /&gt;
Есть ещё достаточно мощный и переносимый модуль wx''Python, я''вляющийся привязкой к графической библиотеке wxWidgets, который тоже заслуживает внимания, но думаю, вы сможете разобраться с ним самостоятельно.&lt;br /&gt;
&lt;br /&gt;
Начнём со старого доброго ''Tkinter'', который, несмотря на некоторую «неказистость» и плохую интеграцию с системой, всё же остаётся стандартным модулем, входящим в поставку практически всех дистрибутивов. К тому же его простота – идеальная особенность для учебных целей. А разобравшись с ним, вы без труда освоите и другие инструменты.&lt;br /&gt;
&lt;br /&gt;
=== Очарование простоты ===&lt;br /&gt;
Проверить наличие ''Tkinter'' в вашем дистрибутиве достаточно просто (он должен быть, но всякое случается): запустите ''Python'' и выполните команду import ''Tkinter'' (обратите внимание на заглавную первую букву). Если вам не повезло и вы увидели сообщение об ошибке, придётся установить этот модуль отдельно. Проконсультируйтесь с вашим менеджером пакетов, не знает ли он случайно про ''Tkinter'' (имя пакета, в отличие от модуля, обычно записывается только маленькими буквами). Если он окажется из партизанской семьи, то прямая дорога вам на http://www.python.org/ (который с новым дизайном смотрится очень даже приятно).&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img 80 98 2.jpg|thumb|400px|Рисунок 1. Tkinter – лучший способ сделать не так, как у других!]]&lt;br /&gt;
&lt;br /&gt;
Разобравшись с модулем, приступим сразу к серьёзной работе. В качестве примера выберем такую задачу: разработать графический интерфейс для просмотра man-страниц. Хорош он тем, что логика предельно проста, и нам почти не придётся отвлекаться от основной задачи. Итак, сразу код (по мере необходимости, будем прерывать его некоторыми пояснениями):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/Python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
import os, re&lt;br /&gt;
from Tkinter import *&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь мы объявили кодировку нашей локали и подключили необходимые для работы модули (не забывайте следить за регистром символов). Далее опишем класс, который будет отвечать за работу нашего приложения. Использование объектного подхода позволит в дальнейшем, если потребуется, легко создавать модифицированные приложения на базе этого класса или интегрировать его функциональность в другие объекты:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
class ManReader:&lt;br /&gt;
  def getman(self, manpage, sn):&lt;br /&gt;
    bschar = '\b'&lt;br /&gt;
    tmp = os.popen('man %s %s 2&amp;gt;/dev/null' % (sn, manpage)).read()&lt;br /&gt;
    if tmp:&lt;br /&gt;
      tmp = re.sub(r'(.)%c\1' % bschar, r'\1', tmp)&lt;br /&gt;
      tmp = tmp.replace('_%c' % bschar, '')&lt;br /&gt;
    else:&lt;br /&gt;
      tmp = 'Page &amp;quot;%s&amp;quot; in section &amp;quot;%s&amp;quot; not found' % (manpage, sn or 'Auto')&lt;br /&gt;
    return tmp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метод с украинским именем '''getman()''' отвечает за то, чтобы вернуть запрошенную man-страницу в виде текстовой переменной. Для этого используем уже знакомую нам функцию '''popen()''' модуля '''os'''. Нужно учитывать, что man-страницы могут содержать специальное форматирование: подсветку и подчёркивание. Чтобы не усложнять наш пример, мы просто избавляемся от ненужных символов, оставляя чистый текст. Пожалуй, нужно пояснить, как мы это делаем.&lt;br /&gt;
&lt;br /&gt;
Если вы посмотрите на результат работы команды man в «натуральном» виде, например, сохранив его в файл, то заметите, что яркость создаётся следующим приёмом: символ выводится, стирается символом «'''\b'''» (Backspace) и затем снова выводится. Подчёркивание достигается выводом и последующим стиранием символа «_». То есть вы можете увидеть что-то такое: '''N\bNA\bAM\bME\bE = NAME,_\b/_\be_\bt_\bc = /etc'''. С удалением подчёркиваний всё понятно. А вот для удаления «символов яркости» мы используем регулярное выражение, причём на первый фрагмент, взятый в скобки, мы можем в дальнейшем ссылаться с помощью '''\1'''. То есть регулярное выражение «'''(.)!\1'''» означает два одинаковых символа, разделённых восклицательным знаком. Мы же используем символ '''\b'''. Обратите внимание, что его нельзя указывать непосредственно в регулярном выражении, иначе он будет трактоваться как граница слова. Вернёмся к нашим «виджетам»:&lt;br /&gt;
&lt;br /&gt;
 def pressBtn(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sn = sectno.get()[0]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 if sn == '-': sn = ''&lt;br /&gt;
 tx.delete(1.0, END)&lt;br /&gt;
 tx.insert(1.0, self.getman(ent.get(), sn))&lt;br /&gt;
&lt;br /&gt;
Это – функция-обработчик нажатия на кнопку (которую мы пока не нарисовали). Ещё ничего не понятно, но мы вернёмся к ней чуть позже, а сейчас перейдем к самому важному методу нашего класса, собственно и рисующему рабочее окно. Разберём его подробнее:&lt;br /&gt;
&lt;br /&gt;
 def Drawface(self):&lt;br /&gt;
 global ent, tx, sectno&lt;br /&gt;
&lt;br /&gt;
Объявляем некоторые переменные как глобальные, чтобы мы могли обращаться к ним из других функций (в нашем примере – из '''pressBtn''').&lt;br /&gt;
&lt;br /&gt;
 win = Tk()&lt;br /&gt;
 win.title('Просмотрщик man-страниц')&lt;br /&gt;
&lt;br /&gt;
Так мы создаём объект, который будет являться нашим рабочим окном. Заодно задаём ему заголовок.&lt;br /&gt;
&lt;br /&gt;
 sectno = StringVar()&lt;br /&gt;
 sectno.set('---Auto---')&lt;br /&gt;
&lt;br /&gt;
В будущем нам понадобится эта переменная – она должна представлять собой особый объект, поэтому и создаём её как экземпляр класса '''Tkinter.StringVar()'''.&lt;br /&gt;
&lt;br /&gt;
 fcmd = Frame(win)&lt;br /&gt;
 fcmd.pack(side=TOP, fill=X)&lt;br /&gt;
&lt;br /&gt;
В основном окне создаём фрейм, который будет являться контейнером для элементов управления. Второй строчкой «упаковываем» его, т.е. указываем место расположения на главном окне. Параметры метода '''pack()''' означают: прикрепить элемент к верхнему краю (TOP) и растянуть по горизонтальной оси.&lt;br /&gt;
&lt;br /&gt;
Здесь нужно сказать, что '''pack''' – не единственный метод упаковки в T''kinter''. В ряде случаев удобнее использовать упаковку «по сетке» – '''grid''' (подробности можно узнать в документации). Приступаем к созданию графических элементов:&lt;br /&gt;
&lt;br /&gt;
 lbl1 = Label(fcmd, text='Read about ')&lt;br /&gt;
 lbl1.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Это – обычная текстовая метка. Она размещается во фрейме (первый аргумент метода) и упакована по левому краю.&lt;br /&gt;
&lt;br /&gt;
 ent = Entry(fcmd)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ent.bind('&amp;lt;Return&amp;gt;', (lambda event: self.pressBtn()))&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 ent.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Текстовое поле ввода также упаковываем слева, сразу после '''lbl1'''.&lt;br /&gt;
&lt;br /&gt;
Метод '''bind()''' &amp;lt;nowiki&amp;gt;задаёт реакцию поля на нажатие клавиши [Enter] (a.k.a. Return) – будет вызван метод &amp;lt;/nowiki&amp;gt;'''pressBtn().'''&lt;br /&gt;
&lt;br /&gt;
 lbl2 = Label(fcmd, text=' in section ')&lt;br /&gt;
 lbl2.pack(side=LEFT)&lt;br /&gt;
 slt = OptionMenu(fcmd, sectno,&lt;br /&gt;
 '---Auto---',&lt;br /&gt;
 '1 User Utilities',&lt;br /&gt;
 '2 System Calls',&lt;br /&gt;
 '3 Library Functions',&lt;br /&gt;
 '4 Devices &amp;amp; Kernel Interfaces',&lt;br /&gt;
 '5 File Formats',&lt;br /&gt;
 '6 Games',&lt;br /&gt;
 '7 Macros &amp;amp; SQL Commands',&lt;br /&gt;
 '8 System Utilities',&lt;br /&gt;
 '9 X Window',&lt;br /&gt;
 'n Built-In commands',&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 slt.pack(side=LEFT)&lt;br /&gt;
&lt;br /&gt;
Ещё одна текстовая метка, и далее – выпадающий список. В нём мы перечисляем имеющиеся разделы справки, к которым будет относиться наш запрос.&lt;br /&gt;
&lt;br /&gt;
 btn1 = Button(fcmd, command=win.quit, text='Quit')&lt;br /&gt;
 btn1.pack(side=RIGHT)&lt;br /&gt;
 btn2 = Button(fcmd, command=self.pressBtn, text='Open')&lt;br /&gt;
 btn2.pack(side=RIGHT)&lt;br /&gt;
&lt;br /&gt;
Две кнопки – завершающая работу и отображающая запрошенную man-страницу. Обратите внимание, что здесь упаковка выполняется по правому краю, т.е. Quit будет самой правой, а Open – чуть левее. Важнейший параметр – command, задает функцию-обработчик. В первом случае используется встроенный метод '''quit''', завершающий работу, во втором – наш метод '''pressBtn'''. Обратите внимание, что здесь происходит не вызов метода, а даётся ссылка на него, т.е. имя указывается без скобок.&lt;br /&gt;
&lt;br /&gt;
 fview = Frame(win)&lt;br /&gt;
 fview.pack(side=BOTTOM, fill=BOTH, expand=YES)&lt;br /&gt;
 sb = Scrollbar(fview)&lt;br /&gt;
 tx = Text(fview, relief=SUNKEN)&lt;br /&gt;
 sb.config(command=tx.yview)&lt;br /&gt;
 tx.config(yscrollcommand=sb.set)&lt;br /&gt;
 sb.pack(side=RIGHT, fill=Y)&lt;br /&gt;
 tx.pack(side=TOP, expand=YES, fill=BOTH)&lt;br /&gt;
&lt;br /&gt;
Во втором фрейме, который мы прикрепляем к нижнему краю и растягиваем во все стороны, заполняя всё доступное пространство, размещается текстовое поле, где мы будем отображать содержимое man-страницы. Поскольку последняя может быть достаточно длинной, понадобится скроллинг (элемент Scrollbar). Обратите внимание на то, как методами '''config()''' мы обеспечиваем взаимную привязку текстового поля и полосы прокрутки. Параметр relief в описании текстового поля задаёт вид рамки вокруг поля.&lt;br /&gt;
&lt;br /&gt;
Настало время поговорить о '''pressBtn'''&amp;lt;nowiki&amp;gt;. Как вы видели, этот метод будет выполняться в двух случаях – по щелчку на кнопке Open и при нажатии [Enter] в поле ввода. Получив цифру раздела справки и очистив текущее содержимое поля &amp;lt;/nowiki&amp;gt;'''tx''' от начала ('''1,0''') до конца (END), вызываем метод '''getman()''' и вставляем результат в '''tx'''.&lt;br /&gt;
&lt;br /&gt;
 win.mainloop()&lt;br /&gt;
&lt;br /&gt;
Всё выше было просто подготовкой. А вот этой командой мы запускаем наше окно в работу. С этого момента управление передаётся ''Tkinterо''бъекту, и влиять на его поведение можно только с помощью описанных ранее обработчиков событий.&lt;br /&gt;
&lt;br /&gt;
 if __name__ == '__main__':&lt;br /&gt;
 test = ManReader()&lt;br /&gt;
 test.Drawface()&lt;br /&gt;
&lt;br /&gt;
Ну, это должно быть понятно – если скрипт запускается автономно, а не экспортируется в другой, то создаём объект нашего класса и запускаем его в работу.&lt;br /&gt;
&lt;br /&gt;
Фух… Кажется, мы сделали это. Результат наших трудов можно наблюдать на рисунке (Рисунок 1). Как видите, «виджеты» имеют свой уникальный дизайн и будут резко выделяться на фоне остального интерфейса, внешний вид которого вы с такой любовью выбирали среди десятков различных стилей. Но это работает (причём одинаково) и в KDE, и в Gnome, и даже в Windows и Mac OS X.&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы разобрались с основами, самое время перейти к «родным» для Linux-окружения средствам – ''PyQt ''и ''PyGTK''. Прежде чем приступать к работе, проверьте, есть ли в вашей системе нужные модули.&lt;br /&gt;
&lt;br /&gt;
=== Пара слов про PyGTK ===&lt;br /&gt;
&lt;br /&gt;
Мощь библиотеки ''GTK ''позволяет создавать таких «гигантов графики», как ''Gimp''. Отрадно, что мы можем в значительной степени воспользоваться её возможностями и в сценариях ''Python''. В каталоге '''/usr/share/doc/pygtk&amp;lt;версия&amp;gt;/examples''' вы найдёте массу примеров её использования. Здесь приведём простейший вариант:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
import gtk&lt;br /&gt;
&lt;br /&gt;
# Создаём основное окно&lt;br /&gt;
win = gtk.Window()&lt;br /&gt;
def main():&lt;br /&gt;
	&lt;br /&gt;
	# Задаём параметры окна (размер, заголовок и т.д.)&lt;br /&gt;
	win.set_default_size(300, 50)&lt;br /&gt;
	win.set_border_width(10)&lt;br /&gt;
	win.connect('destroy', gtk.main_quit)&lt;br /&gt;
	win.set_title('Небольшой пример') &lt;br /&gt;
	txtvar = 'Библиотека ''GTK ''привносит в ''Python ''небывалую мощь и высокий уровень интеграции в среду Gnome.' &lt;br /&gt;
	&lt;br /&gt;
	# Текстовая метка – не забывайте применять метод show() к каждому объекту, чтобы он был видимым&lt;br /&gt;
	txt = gtk.Label(txtvar)&lt;br /&gt;
	txt.show()&lt;br /&gt;
	# Кнопка. На неё «привязываем» завершение работы&lt;br /&gt;
	btn = gtk.Button('Закрыть')&lt;br /&gt;
	btn.connect('pressed', lambda button: gtk.main_quit())&lt;br /&gt;
	btn.show()&lt;br /&gt;
	# объект Window может содержать только один элемент, так что им будет HBox, &lt;br /&gt;
	# который служит контейнером для остальных&lt;br /&gt;
	box = gtk.HBox()&lt;br /&gt;
	box.pack_start(txt)&lt;br /&gt;
	box.pack_start(btn)&lt;br /&gt;
	win.add(box)&lt;br /&gt;
	box.show()&lt;br /&gt;
	win.show()&lt;br /&gt;
	&lt;br /&gt;
	gtk.main()&lt;br /&gt;
main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат представлен на рисунке 2.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img 80 98 1.jpg|left|thumb|400px|Рисунок 2. Именно так вы и должны представлять себе GTK-&lt;br /&gt;
приложение.]]&lt;br /&gt;
&lt;br /&gt;
=== Фанатам KDE посвящается ===&lt;br /&gt;
Если для вас Linux не мыслим без KDE, то ''PyQt ''– как раз тот инструмент, который способен обеспечить «бесшовную» интеграцию ваших ''Python''-сценариев с окружением рабочего стола. (Впрочем, ''Qt ''работает не только в Linux, так что ваши решения по-прежнему сохранят определённый уровень переносимости.) К тому же, для разработки интерфейса к вашим услугам ''Qt Designer''. А создадим мы программу для просмотра запущенных в системе процессов. Итак, в путь!&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img 80 99 1.jpg|thumb|400px|Рисунок 3. Мышкой влево, мышкой вправо – а зачем вам&lt;br /&gt;
вообще клавиатура?]]&lt;br /&gt;
&lt;br /&gt;
=== Делай «РАЗ»! ===&lt;br /&gt;
Первым делом, запустите Qt Designer и откройте новый проект типа Widget. Для кнопки создайте соединение с формой (Connect Signal/ Slots) и объявите новый слот, назвав его showPs. В дальнейшем это будет наш обработчик нажатия кнопки. Сохранив интерфейс (Рисунок 3) под именем psview.ui, нужно конвертировать его в ''Python''-код:&lt;br /&gt;
&lt;br /&gt;
 $ pyuic psview.ui &amp;gt; psview.py&lt;br /&gt;
&lt;br /&gt;
Теперь в '''psview.py''' описан класс, отвечающий за наш интерфейс. Если вы посмотрите на него, то увидите, что всё не намного сложнее, чем в ''Tkinter'', так что при желании интерфейс можно создать и вручную.&lt;br /&gt;
&lt;br /&gt;
=== Делай «ДВА»! ===&lt;br /&gt;
Далее, нам нужно довести всё это до ума. Непосредственное редактирование созданного сценария – самое плохое решение, поскольку вы лишитесь возможности корректировать интерфейс в ''Qt Designer'', т.к. все изменения при этом будут потеряны. Поэтому правильно будет оставить psview.py в неприкосновенном виде, а для работы описать ещё один класс на базе созданного, пользуясь возможностями наследования. Просто создать экземпляр класса Form1 тоже не совсем хорошо – ведь нам нужно будет изменить поведение класса, отредактировав обработчик нажатия кнопки. Полученный код с переопределённой функциейобработчиком будет выглядеть так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/usr/bin/Python&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# -*- coding: utf-8 -*import os, sys&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Импортируем модуль, созданный автоматически&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 from psview import *&lt;br /&gt;
 class PsForm(Form1): # наследуем от Form1&lt;br /&gt;
 def __init__(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Помните, что при наследовании инициализацию&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- родительского класса нужно делать вручную?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 Form1.__init__(self)&lt;br /&gt;
 def showPs(self):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Формируем нужные ключи команды ps&lt;br /&gt;
 if self.radioButton1.isChecked():&lt;br /&gt;
 all = 'a'&lt;br /&gt;
 else:&lt;br /&gt;
 all = ''&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Выводимые поля описываются после ключа «o»&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- Очень важно не допускать пробелов!&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 fields = 'o'&lt;br /&gt;
 if self.checkBox1.isChecked():&lt;br /&gt;
 fields += 'pid,'&lt;br /&gt;
 if self.checkBox2.isChecked():&lt;br /&gt;
 fields += 'user,'&lt;br /&gt;
 if self.checkBox3.isChecked():&lt;br /&gt;
 fields += 'stat,'&lt;br /&gt;
 if self.checkBox4.isChecked():&lt;br /&gt;
 fields += 'command,'&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;fields = fields[:-1] # &amp;lt;/nowiki&amp;gt;последнюю запятую – долой!&lt;br /&gt;
 filter = self.lineEdit1.text()&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Если есть фильтр, то заголовок придётся забирать&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#- отдельной командой (head – чтобы не выводить лишнее)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 if filter:&lt;br /&gt;
 cmd = 'ps %sx%s | grep %s | grep -v grep' % (all, fields,&lt;br /&gt;
 filter)&lt;br /&gt;
 head = os.popen('ps %s | head' % fields).readline()&lt;br /&gt;
 body = os.popen(cmd).read()&lt;br /&gt;
 else:&lt;br /&gt;
 cmd = 'ps %sx%s' % (all, fields)&lt;br /&gt;
 pspipe = os.popen(cmd)&lt;br /&gt;
 head = pspipe.readline() # первая строка&lt;br /&gt;
 body = pspipe.read() # всё остальное&lt;br /&gt;
 pspipe.close()&lt;br /&gt;
 self.tl_header.setText(head)&lt;br /&gt;
 self.te_body.setText(body)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Создаём объект-приложение&lt;br /&gt;
 app = QApplication(sys.argv)&lt;br /&gt;
 form = PsForm()&lt;br /&gt;
 app.setMainWidget(form)&lt;br /&gt;
 form.show()&lt;br /&gt;
 app.exec_loop()&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img 80 99 2.jpg|thumb|400px|Рисунок 4. Ну, нравится мне стиль Redmond – ничего с собой&lt;br /&gt;
поделать не могу…]]&lt;br /&gt;
&lt;br /&gt;
Небольшое пояснение: чтобы при прокрутке заголовок был всегда на виду, мы вынесли его в отдельную текстовую метку '''(tl_header)'''. Поскольку при использовании ''grep ''заголовок теряется, придётся приложить чуточку усилий, чтобы всё-таки обеспечить его вывод (см. фрагмент «'''if filter – else'''»).&lt;br /&gt;
&lt;br /&gt;
=== Делай «ТРИ»! ===&lt;br /&gt;
&lt;br /&gt;
Всё! Можно запускать нашу оболочку, не забыв сделать скрипт исполняемым (Рисунок 4). Конечно, это не верх совершенства – из множества доступных полей поддерживаются только четыре, нет проверки выражения фильтра на безопасность (а что, если пользователь введёт '''«root; rm -Rf /»'''?). Впрочем, это беда любого графического интерфейса – неизбежная потеря функциональности и гибкости в угоду сомнительным удобствам. Тем не менее, наша задача была всё-таки в другом – показать пример разработки ГИП, с чем мы успешно справились.&lt;br /&gt;
&lt;br /&gt;
Как видите, изложенное сегодня – всего лишь основа. Но, надеюсь, этого будет достаточно, чтобы приступить к быстрой и эффективной разработке графических интерфейсов. На этом мы завершаем «Уроки P''ython''», но не прощаемся – со следующего номера начинается серия «''Python ''для профессионалов», где мы поговорим о многопоточных приложениях, обработке сетевых протоколов, взаимодействии с СУБД и библиотеке ''Python Image Library''.&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF98:%D0%94%D0%B8%D0%B0%D0%B3%D0%BD%D0%BE%D1%81%D1%82%D0%B8%D0%BA%D0%B0</id>
		<title>LXF98:Диагностика</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF98:%D0%94%D0%B8%D0%B0%D0%B3%D0%BD%D0%BE%D1%81%D1%82%D0%B8%D0%BA%D0%B0"/>
				<updated>2023-10-13T04:12:43Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF98:Диагностика в Недорогие авиабилеты&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Недорогие авиабилеты]]&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%9D%D0%B5%D0%B4%D0%BE%D1%80%D0%BE%D0%B3%D0%B8%D0%B5_%D0%B0%D0%B2%D0%B8%D0%B0%D0%B1%D0%B8%D0%BB%D0%B5%D1%82%D1%8B</id>
		<title>Недорогие авиабилеты</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%9D%D0%B5%D0%B4%D0%BE%D1%80%D0%BE%D0%B3%D0%B8%D0%B5_%D0%B0%D0%B2%D0%B8%D0%B0%D0%B1%D0%B8%D0%BB%D0%B5%D1%82%D1%8B"/>
				<updated>2023-10-13T04:12:43Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: SEO TROLLING переименовал страницу LXF98:Диагностика в Недорогие авиабилеты&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Диагностика: проблемы с сетью==&lt;br /&gt;
&lt;br /&gt;
''Если сеть у вас захворала, зовите Доктора! Правда, домашних визитов к читателям '''д-р Крис Браун''' не делает, но готов поделиться диагнозом…''&lt;br /&gt;
&lt;br /&gt;
За годы жизни я помог многим друзьям и знакомым освоиться&lt;br /&gt;
с компьютером, и в подходящих случаях обучал их Linux. При этом, естественно, возникает нечто вроде родительской ответственности за развитие и взросление своих питомцев. Последний случай был типичным. Друг позвонил мне со словами: «У меня не работает сеть». Такое сообщение об ошибке не уступает классической фразе с борта Аполлона-13 «Хьюстон, у нас проблема», хотя и менее опасно для жизни. К счастью, в Linux много сетевых утилит, которые помогают выяснить, что именно не работает. (Чтобы не томить вас ожиданием развязки, сразу скажу, что моего друга просто отключил провайдер,&lt;br /&gt;
потому что он забыл продлить контракт.)&lt;br /&gt;
&lt;br /&gt;
Итак, следуйте за мной: рассмотрим некоторые средства диагностики сетевых неисправностей в Linux и посмотрим, как с их помощью&lt;br /&gt;
получить ответ на вопрос «Что не так в моей сети?»&lt;br /&gt;
&lt;br /&gt;
При любом поиске неисправностей прежде всего нужно понять и представить, в чем выражается правильная работа. Есть ли у компьютера статический IP-адрес, и если да, то какой? Пользуетесь ли вы DHCP, и если да, то каков адрес DHCP-сервера и выделяемый диапазон IP-адресов? Подключен ли широкополосный модем непосредственно к вашему компьютеру или у вас широкополосный маршрутизатор через Ethernet или беспроводную сеть?&lt;br /&gt;
&lt;br /&gt;
На данном уроке мы будем использовать методику «снизу вверх»: начнем с самых низких уровней и постепенно переедем на более высокие. Это хороший систематический подход для случая, если сеть не работала никогда. С другой стороны, если вчера сеть работала отлично, чаще будет быстрее начать сверху и двигаться вниз.&lt;br /&gt;
{{SEO}}&lt;br /&gt;
&lt;br /&gt;
===Находит ли Linux сетевую карту?===&lt;br /&gt;
&lt;br /&gt;
Первый вопрос на этом этапе – видит ли Linux сетевые интерфейсы?&lt;br /&gt;
Вы сможете ответить на него, просмотрев системные сообщения ядра,&lt;br /&gt;
которые выдавались во время загрузки. Для этого используется команда &amp;lt;fotn color=darkred&amp;gt;dmesg&amp;lt;/font&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 # dmesg | grep eth&lt;br /&gt;
 e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection&lt;br /&gt;
 e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection&lt;br /&gt;
 e1000: eth0: e1000_watchdog: NIC Link is Up 10 Mbps Half Duplex&lt;br /&gt;
&lt;br /&gt;
В качестве альтернативы попробуйте вывести список устройств на шине с помощью команды &amp;lt;fotn color=darkred&amp;gt;lspci&amp;lt;/font&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 # lspci | grep Ethernet&lt;br /&gt;
 01:01.0 Ethernet controller: Intel Corporation 82547EI&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82540EM&lt;br /&gt;
&lt;br /&gt;
Сообщения об ошибках на этой стадии говорят о неисправном или несовместимом оборудовании.&lt;br /&gt;
&lt;br /&gt;
===Задан ли IP-адрес?===&lt;br /&gt;
&lt;br /&gt;
Если сетевая карта на месте, то следующий вопрос – задан ли IP-адрес? Простейшая команда для этого случая – &amp;lt;fotn color=darkred&amp;gt;ifconfig&amp;lt;/font&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 # ifconfig eth0&lt;br /&gt;
 eth0 Link encap:Ethernet HWaddr 00:0C:F1:96:A3:F7&lt;br /&gt;
 inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0&lt;br /&gt;
 inet6 addr: fe80::20c:f1ff:fe96:a3f7/64 Scope:Link&lt;br /&gt;
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1&lt;br /&gt;
 RX packets:306 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
 TX packets:261 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
 collisions:8 txqueuelen:10&lt;br /&gt;
 RX bytes:43074 (42.0 KiB) TX bytes:34480 (33.6 KiB)&lt;br /&gt;
 Base address:0xac00 Memory:ff7e0000-ff800000&lt;br /&gt;
&lt;br /&gt;
Здесь важна вторая строка, в которой можно увидеть IP-адрес: &amp;lt;fotn color=darkred&amp;gt;192.168.0.3&amp;lt;/font&amp;gt;. Если такой строки нет, то IP-адрес не задан. А если все же задан, подумайте, действителен ли он в вашей сети.&lt;br /&gt;
&lt;br /&gt;
На практике я несколько раз сталкивался с ситуацией, когда сеть переставала работать после того, как в нее ввели компьютер, случайно&lt;br /&gt;
оказавшийся DHCP-сервером, настроенным на диапазон адресов, не соответствующих этой сети. При перезагрузке компьютер с шансами&lt;br /&gt;
50/50 получал или действительный IP-адрес от «настоящего» DHCP-сервера, или ложный адрес от самозванца.&lt;br /&gt;
&lt;br /&gt;
Если в сетевом интерфейсе не задан IP-адрес, то проверьте, настроен ли автоматический запуск этого интерфейса при загрузке системы. Если да, то использует ли он DHCP или статический IP-адрес? Конкретные имена файлов, которые нужно просмотреть, зависят от дистрибутива. В Fedora и Red Hat это '''/etc/sysconfig/network-scripts/ifcfg-eth*''', в SUSE – '''/etc/sysconfig/network/ifcfg-eth*''', а в Ubuntu – '''/etc/network/interfaces'''. (Стандарты – отличная штука: ну не прелестны ли эти ничем не объяснимые расхождения?) Конечно, в каждом из дистрибутивов есть графические утилиты, с помощью которых можно посмотреть и отредактировать настройки.&lt;br /&gt;
&lt;br /&gt;
Обычно инициализация интерфейса упрятана глубоко в загрузочные скрипты, и взаимодействие с сервером DHCP разглядеть трудно; но его можно увидеть, непосредственно запустив скрипт ifup или dhclient. Эта программа поддерживает диалог с DHCP-сервером и позволяет задать параметры сети:&lt;br /&gt;
&lt;br /&gt;
 # dhclient&lt;br /&gt;
 Internet Systems Consortium DHCP Client V3.0.5-RedHatо&lt;br /&gt;
 Copyright 2004-2006 Internet Systems Consortium.&lt;br /&gt;
 All rights reserved.&lt;br /&gt;
 For info, please visit http://www.isc.org/sw/dhcp/&lt;br /&gt;
 Listening on LPF/eth1/00:0e:0c:01:d3:a0&lt;br /&gt;
 Sending on LPF/eth1/00:0e:0c:01:d3:a0&lt;br /&gt;
 Listening on LPF/eth0/00:0c:f1:96:a3:f7&lt;br /&gt;
 Sending on LPF/eth0/00:0c:f1:96:a3:f7&lt;br /&gt;
 Sending on Socket/fallback&lt;br /&gt;
 DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 7&lt;br /&gt;
 DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4&lt;br /&gt;
 DHCPOFFER from 192.168.0.1&lt;br /&gt;
 DHCPREQUEST on eth0 to 255.255.255.255 port 67&lt;br /&gt;
 DHCPACK from 192.168.0.1&lt;br /&gt;
 bound to 192.168.0.3 -- renewal in 125868 seconds.&lt;br /&gt;
&lt;br /&gt;
В данной системе два интерфейса, '''eth0''' и '''eth1'''. Мы видим, что IP-адрес интерфейса '''eth0''' получен от DHCP-сервера 192.168.0.1. Интерфейс '''eth1''' пытался сделать то же самое (он передал команду &amp;lt;fotn color=darkred&amp;gt;DHCPDISCOVER&amp;lt;/font&amp;gt;), но не получил ответа. И неудивительно: этот интерфейс не был ни к чему подключен.&lt;br /&gt;
&lt;br /&gt;
===Пингуется ли маршрутизатор?===&lt;br /&gt;
&lt;br /&gt;
Если IP-адрес задан корректно, пропингуйте (&amp;lt;fotn color=darkred&amp;gt;ping&amp;lt;/font&amp;gt;) другой компьютер в сети. В случае удачи результат будет примерно таким:&lt;br /&gt;
&lt;br /&gt;
 # ping -c1 192.168.0.6&lt;br /&gt;
 PING 192.168.0.6 (192.168.0.6) 56(84) bytes of data.&lt;br /&gt;
 64 bytes from 192.168.0.6: icmp_seq=1 ttl=64 time=0.468 ms&lt;br /&gt;
 --- 192.168.0.6 ping statistics ---&lt;br /&gt;
 1 packets transmitted, 1 received, 0% packet loss, time 0ms&lt;br /&gt;
 rtt min/avg/max/mdev = 0.468/0.468/0.468/0.000 ms&lt;br /&gt;
&lt;br /&gt;
а неудачи – таким:&lt;br /&gt;
&lt;br /&gt;
 # ping -c 1 192.168.0.2&lt;br /&gt;
 PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.&lt;br /&gt;
 From 192.168.0.3 icmp_seq=1 Destination Host Unreachable&lt;br /&gt;
 --- 192.168.0.2 ping statistics ---&lt;br /&gt;
 1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms&lt;br /&gt;
&lt;br /&gt;
Сообщение &amp;lt;fotn color=darkred&amp;gt;«Узел недоступен»&amp;lt;/font&amp;gt; (&amp;lt;fotn color=darkred&amp;gt;Destination Host Unreachable&amp;lt;/font&amp;gt;) обычно значит, что целевой компьютер (здесь – 192.168.0.2) не подключен к сети или не работает и поэтому не может ответить на ARP-запрос MAC-адреса с моего компьютера. Это также может означать, что ваш компьютер не находит маршрут доступа к локальной сети; чаще всего это бывает, когда ваш IP-адрес не входит в данную сеть. Возможны и более сложные проблемы с маршрутизацией – впрочем, в домашней сети, где маршрут (по умолчанию) только один, это маловероятно. Если в вашей сети нет других компьютеров, можно попробовать пропинговать маршрутизатор (Вы ведь знаете адрес своего маршрутизатора?).&lt;br /&gt;
&lt;br /&gt;
Если не получилось, то проблема носит местный характер. Если сеть проводная, проверьте кабели. Зеленые светодиоды на сетевых карточках должны гореть &amp;lt;fotn color=darkblue&amp;gt;[некоторые сетевые карты имеют другой способ индикации подключения. В случае необходимости изучите инструкцию, – ''прим.ред.'']&amp;lt;/font&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Не блокирован ли трафик брандмауэром?===&lt;br /&gt;
&lt;br /&gt;
На некотором этапе нашего диагностирования полезно проверить, не чересчур ли «закручивает гайки» ваш брандмауэр. Самый быстрый&lt;br /&gt;
и грубый способ это узнать – и его предпочитают многие системные администраторы, если надо торопиться – удалить все правила брандмауэра командой&lt;br /&gt;
&lt;br /&gt;
 # iptables -F&lt;br /&gt;
&lt;br /&gt;
и посмотреть, изменится ли что-нибудь к лучшему. Если проблема исчезнет, то по крайней мере ясно, что ее причиной был брандмауэр.&lt;br /&gt;
Далее вам нужно перезагрузить компьютер (чтобы брандмауэр вновь заработал) и думать дальше. Не соблазняйтесь идеей оставить брандмауэр в отключке: это Плохая Идея!&lt;br /&gt;
&lt;br /&gt;
===5 Установлено ли ADSL-соединение ?===&lt;br /&gt;
&lt;br /&gt;
Если с самим маршрутизатором все в порядке, пора расширить охват. На маршрутизаторе должно быть еще несколько зеленых светодиодов (а если найти инструкцию к нему, то можно даже понять, что они означают), и по ним можно определить, подключен ли ADSL-модем маршрутизатора к провайдеру. У некоторых маршрутизаторов также есть возможность задать настройки и определить статус соединения с помощью web-приложения. Нас интересуют статус соединения (Connection Status) и IP-адрес, который провайдер назначил внешнему соединению. (Что это за адрес, не столь важно; главное, чтоб он был!) Разорвите соединение и заново установите его вручную, и попробуйте понять, на каком этапе возникает ошибка. Если соединения не добиться, нужно проверить провод, соединяющий маршрутизатор с телефонной линией (полезно подключить телефонную трубку, чтобы убедиться в наличии зуммера). Если провод в порядке, остается позвонить в службу поддержки провайдера. Приготовьте себе чашку кофе и вооружитесь интересной книжкой – ждать своей очереди на линии можно очень долго!&lt;br /&gt;
&lt;br /&gt;
===Пингуется ли удаленный сервер?===&lt;br /&gt;
&lt;br /&gt;
Если соединение с провайдером хорошее, тестированию пора подняться на уровень выше. Попробуйте пропинговать внешний компьютер с известным IP-адресом. Например, web-сервер Linux Format UK имеет адрес 89.167.142.11. (Конечно, он вполне может измениться, когда вы будете это читать, но пока для примера сгодится.)&lt;br /&gt;
&lt;br /&gt;
 # ping -c1 89.167.142.11&lt;br /&gt;
 PING 89.167.142.11 (89.167.142.11) 56(84) bytes of data.&lt;br /&gt;
 64 bytes from 89.167.142.11: icmp_seq=1 ttl=56 time=24.3 ms&lt;br /&gt;
 --- 89.167.142.11 ping statistics ---&lt;br /&gt;
 1 packets transmitted, 1 received, 0% packet loss, time 0ms&lt;br /&gt;
 rtt min/avg/max/mdev = 24.367/24.367/24.367/0.000 ms&lt;br /&gt;
&lt;br /&gt;
Если это работает, ваше сетевое соединение в порядке. В качестве последнего теста попробуйте добраться до удаленного компьютера по&lt;br /&gt;
его имени:&lt;br /&gt;
&lt;br /&gt;
 # ping -c1 www.linuxformat.com&lt;br /&gt;
 PING www.linuxformat.com (89.167.142.11) 56(84) bytes of data.&lt;br /&gt;
 64 bytes from kryten.future.net.uk (89.167.142.11): icmp_seq=1&lt;br /&gt;
 ttl=56 time=24.2 ms&lt;br /&gt;
 --- www.linuxformat.com ping statistics ---&lt;br /&gt;
 1 packets transmitted, 1 received, 0% packet loss, time 0ms&lt;br /&gt;
 rtt min/avg/max/mdev = 24.249/24.249/24.249/0.000 ms&lt;br /&gt;
&lt;br /&gt;
С помощью этого теста ошибки DNS сразу же выявляются, например:&lt;br /&gt;
&lt;br /&gt;
 $ ping www.prophylactic.gov&lt;br /&gt;
 ping: unknown host www.prophylactic.gov&lt;br /&gt;
&lt;br /&gt;
Если удаленный компьютер пингуется только по IP-адресу, но не по имени, пора изучать настройки вашего сервера DNS (LXF97). Для этого лучше всего подходит утилита ''dig''. Вот пример ее запуска (успешного). Не пугайтесь обилием подробностей; нужно лишь обратить внимание на запись &amp;lt;fotn color=darkred&amp;gt;A&amp;lt;/font&amp;gt; в разделе &amp;lt;fotn color=darkred&amp;gt;ANSWER&amp;lt;/font&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 # dig www.linuxformat.com&lt;br /&gt;
 ; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.4.0 &amp;lt;&amp;lt;&amp;gt;&amp;gt; www.linuxformat.com&lt;br /&gt;
 ;; global options: printcmd&lt;br /&gt;
 ;; Got answer:&lt;br /&gt;
 ;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 23236&lt;br /&gt;
 ;; flags: qr rd ra; QUERY:1, ANSWER:2, AUTHORITY:2,&lt;br /&gt;
 ADDITIONAL:2&lt;br /&gt;
 ;; QUESTION SECTION:&lt;br /&gt;
 ;www.linuxformat.com. IN A&lt;br /&gt;
 ;; ANSWER SECTION:&lt;br /&gt;
 www.linuxformat.com. 300 IN CNAME redirect1.future.net.uk.&lt;br /&gt;
 redirect1.future.net.uk. 300 IN A 89.167.142.11&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 future.net.uk. 245 IN NS ns0.future.net.uk.&lt;br /&gt;
 future.net.uk. 245 IN NS ns1.future.net.uk.&lt;br /&gt;
 ;; ADDITIONAL SECTION:&lt;br /&gt;
 ns0.future.net.uk. 33231 IN A 89.167.142.1&lt;br /&gt;
 ns1.future.net.uk. 33231 IN A 89.167.143.1&lt;br /&gt;
 ;; Query time: 41 msec&lt;br /&gt;
 ;; SERVER: 192.168.0.1#53(192.168.0.1)&lt;br /&gt;
 ;; WHEN: Fri Jul 6 15:21:44 2007&lt;br /&gt;
 ;; MSG SIZE rcvd: 158&lt;br /&gt;
&lt;br /&gt;
Если DNS не работает, вариантов может быть несколько.&lt;br /&gt;
&lt;br /&gt;
В первом случае сервер DNS не может найти компьютер, к которому вы обращаетесь. Вот пример обращения к серверу, которого просто&lt;br /&gt;
не существует:&lt;br /&gt;
&lt;br /&gt;
 # dig prophylactic.gov&lt;br /&gt;
 ; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.4.0 &amp;lt;&amp;lt;&amp;gt;&amp;gt; prophylactic.gov&lt;br /&gt;
 ;; global options: printcmd&lt;br /&gt;
 ;; Got answer:&lt;br /&gt;
 ;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NXDOMAIN, id: 13168&lt;br /&gt;
 ;; flags: qr rd ra; QUERY:1, ANSWER:0, AUTHORITY:1,&lt;br /&gt;
 ADDITIONAL:0&lt;br /&gt;
 ;; QUESTION SECTION:&lt;br /&gt;
 ;prophylactic.gov. IN A&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 gov. 2560 IN SOA a.gov.zoneedit.com. govcontact.&lt;br /&gt;
 zoneedit.com. 1183644065 3600 900 1814400 86400&lt;br /&gt;
&lt;br /&gt;
Обратите внимание на статус запроса &amp;lt;fotn color=darkred&amp;gt;NXDOMAIN&amp;lt;/font&amp;gt; и отсутствие раздела &amp;lt;fotn color=darkred&amp;gt;ANSWER&amp;lt;/font&amp;gt;, который мы видели в результатах предыдущего запроса. Если вы ввели корректное имя компьютера, то такая ошибка – следствие чьих-то чужих проблем.&lt;br /&gt;
&lt;br /&gt;
===Можете ли вы найти свой DNS-сервер?===&lt;br /&gt;
&lt;br /&gt;
Вторая причина отказа DNS – ваш компьютер не может найти DNS-сервер. Тогда источник проблемы, вероятно, ближе к дому.&lt;br /&gt;
&lt;br /&gt;
 # dig www.linuxformat.co.uk&lt;br /&gt;
 ; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.4.0 &amp;lt;&amp;lt;&amp;gt;&amp;gt; www.linuxformat.co.uk&lt;br /&gt;
 ;; global options: printcmd&lt;br /&gt;
 ;; connection timed out; no servers could be reached&lt;br /&gt;
&lt;br /&gt;
Если это произошло, загляните в файл '''/etc/resolv.conf'''. В нем Linux хранит сведения о местонахождении DNS-серверов. Если вы пользуетесь DHCP, IP-адреса DNS-серверов предоставляются сервером DHCP. Если IP-адрес статический, вы, наверно, использовали графическую утилиту настройки для определения параметров серверов DNS (например, ''system-config-network'' в Fedora). В любом случае результаты записываются в этот файл. Есть ли в нем корректный адрес сервера имен? Можете ли вы пинговать его?&lt;br /&gt;
&lt;br /&gt;
Если ничто не помогает, попробуйте просмотреть сетевой трафик с помощью ''wireshark'', утилиты отслеживания пакетов, ранее известной как ethereal. Как средство диагностики ''wireshark'', на мой взгляд, «последняя надежда». Дело не в недоработке этой программы: программа-то отличная, но чтобы искать неполадки в сети путем изучения трафика на уровне пакетов, нужно очень хорошо знать TCP/IP и прикладные протоколы верхних уровней. Вам также может потребоваться дополнительный компьютер в сети для наблюдения за трафиком.&lt;br /&gt;
&lt;br /&gt;
Выполните команду&lt;br /&gt;
&lt;br /&gt;
 # ping 192.168.0.42&lt;br /&gt;
&lt;br /&gt;
на компьютере с IP-адресом 192.168.0.3. Посмотрите на верхнюю из трех панелей wireshark; в ней каждому перехваченному пакету соответствует одна строка. Средняя и нижняя панели позволяют разобраться в содержимом отдельных пакетов, но сейчас они нам не нужны.&lt;br /&gt;
Сообщение простое и ясное: компьютер с адресом 192.168.0.3 пытается использовать ARP для получения MAC-адреса компьютера, до которого хочет достучаться. Он пытался сделать это три раза с интервалом в одну секунду, но не получил ответа.&lt;br /&gt;
&lt;br /&gt;
Итак, мы можем сделать вывод, что с компьютером, адрес которого 192.168.0.3, все в порядке – он может получать пакеты от компьютеров сети с корректными IP-адресами, но компьютера с адресом 192.168.0.42 там просто нет.&lt;br /&gt;
&lt;br /&gt;
==Смотрим дальше==&lt;br /&gt;
&lt;br /&gt;
Вот другой пример. На клиентском компьютере установлен SUSE Linux 10.1. Проблема была в том, что каждый раз, когда браузер ''Konqueror''&lt;br /&gt;
пытался соединиться с внешним сайтом (т.е. производил поиск DNS-сервера), перед установкой соединения возникала 15-секундная задержка. Пакет 1 реализует стандартный запрос DNS для адреса [http://www.linuxformat.co.uk www.linuxformat.co.uk], а пакет 3 – ответ на этот запрос, который приходит через 0.04 с от сервера DNS, встроенного в мой маршрутизатор (192.168.0.1) с требуемым IP-адресом. Чудесно. Проблема в том, что ''Konqueror'' также решил запросить IPv6-адрес для этого сайта (запрос записи &amp;lt;font color=darkred&amp;gt;AAAA&amp;lt;/font&amp;gt; в пакете 2). Слава богу, маршрутизатор игнорирует этот запрос, и через пять секунд ''Konqueror'' перенаправляет этот запрос к маршрутизатору (пакет 7) и ко внешнему серверу DNS (пакет 6). Маршрутизатор все еще не отвечает, зато отвечает внешний DNS-сервер (пакет 8): сообщает, что не может найти записи &amp;lt;font color=darkred&amp;gt;AAAA&amp;lt;/font&amp;gt; для сайта [http://linux.format.co.uk linux.format.co.uk]. Ну, теперь помаленьку проясняется...&lt;br /&gt;
&lt;br /&gt;
DNS-ресолвер приписывает доменное имя по умолчанию &amp;lt;font color=blue&amp;gt;example.com&amp;lt;/font&amp;gt; к адресу, который он пытается преобразовать (в результате получаем бессмыслицу [http://www.linuxformat.co.uk.example.com www.linuxformat.co.uk.example.com]) и начинает поиск записей &amp;lt;font color=darkred&amp;gt;AAAA&amp;lt;/font&amp;gt; для этого адреса. Он тратит еще пять секунд, надеясь получить ответ от маршрутизатора, после чего еще раз пытается обратиться к внешнему серверу DNS (пакет 10). В конце концов занавес над этой печальной историей опускается, и через пятнадцать секунд после начала ''Konqueror'' создает соединение TCP/IP (пакеты с 17-го и далее), используя старый добрый адрес IPv4, с которого и начал.&lt;br /&gt;
&lt;br /&gt;
Оказалось, что это известная проблема, как свидетельствуют и результаты поиска Google по фразе ''“Konqueror IPv6”''. Решение простое: отключите стек протоколов IPv6 в ядре, отредактировав файл '''/etc/modprobe.conf''', и перезагрузите систему. Это хороший пример использования отслеживания пакетов для отладки, потому что другим способом решить эту проблему трудно. Не нужно проводить детальный анализ перехваченных пакетов, достаточно просто понять, что компьютер пытается разрешить имя в IPv6.&lt;br /&gt;
&lt;br /&gt;
Поиск неисправностей редко укладывается в обычные схемы диагностики. Ошибки имеют привычку просачиваться в щели между сложившейся литературой, и я уверен, что некоторые читатели (паратройка читателей у нас еще осталась, не правда ли?) столкнутся с ситуациями, в которых мои советы не помогут. Если у вас есть собственная история сетевых войн, которой вы хотели бы поделиться с нашими читателями, то отправьте нам ее на обычный адрес!&lt;br /&gt;
&lt;br /&gt;
==Врезки==&lt;br /&gt;
&lt;br /&gt;
===Скорая помощь===&lt;br /&gt;
&lt;br /&gt;
*Изменили ли вы имя пользователя и пароль для доступа к настройкам своего широкополосного маршрутизатора, когда настраивали&lt;br /&gt;
его? Или они до сих пор “&amp;lt;font color=darkred&amp;gt;admin&amp;lt;/font&amp;gt;” и “&amp;lt;font color=darkred&amp;gt;admin&amp;lt;/font&amp;gt;”? Если так, то знайте, что многие атаки основаны на знании реквизитов, используемых по умолчанию. Не пожалейте пары минут и задайте более сильный пароль… &amp;lt;font color=darkred&amp;gt;'''ПРЯМО СЕЙЧАС!'''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*При выполнении диагностических тестов многое можно понять по времени отклика. Если его приходится ждать 15 секунд и более, то скорее всего вы&lt;br /&gt;
пытаетесь соединиться с компьютером, которого там просто нет. Если сообщение об ошибке появляется в течение пяти секунд, то есть вероятность, что&lt;br /&gt;
вы подключились к серверу, который по тем или иным причинам отклонил ваш запрос.&lt;br /&gt;
&lt;br /&gt;
*Помните, что системы периодически выходят из строя или временно отключаются для технического обслуживания. Если вы считаете, что проблема находится за&lt;br /&gt;
рамками вашей системы, может быть, стоит переждать час-другой и попробовать еще раз.&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%9D%D0%B5%D0%B4%D0%BE%D1%80%D0%BE%D0%B3%D0%B8%D0%B5_%D0%B0%D0%B2%D0%B8%D0%B0%D0%B1%D0%B8%D0%BB%D0%B5%D1%82%D1%8B</id>
		<title>Недорогие авиабилеты</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%9D%D0%B5%D0%B4%D0%BE%D1%80%D0%BE%D0%B3%D0%B8%D0%B5_%D0%B0%D0%B2%D0%B8%D0%B0%D0%B1%D0%B8%D0%BB%D0%B5%D1%82%D1%8B"/>
				<updated>2023-10-13T04:11:36Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Диагностика: проблемы с сетью==&lt;br /&gt;
&lt;br /&gt;
''Если сеть у вас захворала, зовите Доктора! Правда, домашних визитов к читателям '''д-р Крис Браун''' не делает, но готов поделиться диагнозом…''&lt;br /&gt;
&lt;br /&gt;
За годы жизни я помог многим друзьям и знакомым освоиться&lt;br /&gt;
с компьютером, и в подходящих случаях обучал их Linux. При этом, естественно, возникает нечто вроде родительской ответственности за развитие и взросление своих питомцев. Последний случай был типичным. Друг позвонил мне со словами: «У меня не работает сеть». Такое сообщение об ошибке не уступает классической фразе с борта Аполлона-13 «Хьюстон, у нас проблема», хотя и менее опасно для жизни. К счастью, в Linux много сетевых утилит, которые помогают выяснить, что именно не работает. (Чтобы не томить вас ожиданием развязки, сразу скажу, что моего друга просто отключил провайдер,&lt;br /&gt;
потому что он забыл продлить контракт.)&lt;br /&gt;
&lt;br /&gt;
Итак, следуйте за мной: рассмотрим некоторые средства диагностики сетевых неисправностей в Linux и посмотрим, как с их помощью&lt;br /&gt;
получить ответ на вопрос «Что не так в моей сети?»&lt;br /&gt;
&lt;br /&gt;
При любом поиске неисправностей прежде всего нужно понять и представить, в чем выражается правильная работа. Есть ли у компьютера статический IP-адрес, и если да, то какой? Пользуетесь ли вы DHCP, и если да, то каков адрес DHCP-сервера и выделяемый диапазон IP-адресов? Подключен ли широкополосный модем непосредственно к вашему компьютеру или у вас широкополосный маршрутизатор через Ethernet или беспроводную сеть?&lt;br /&gt;
&lt;br /&gt;
На данном уроке мы будем использовать методику «снизу вверх»: начнем с самых низких уровней и постепенно переедем на более высокие. Это хороший систематический подход для случая, если сеть не работала никогда. С другой стороны, если вчера сеть работала отлично, чаще будет быстрее начать сверху и двигаться вниз.&lt;br /&gt;
{{SEO}}&lt;br /&gt;
&lt;br /&gt;
===Находит ли Linux сетевую карту?===&lt;br /&gt;
&lt;br /&gt;
Первый вопрос на этом этапе – видит ли Linux сетевые интерфейсы?&lt;br /&gt;
Вы сможете ответить на него, просмотрев системные сообщения ядра,&lt;br /&gt;
которые выдавались во время загрузки. Для этого используется команда &amp;lt;fotn color=darkred&amp;gt;dmesg&amp;lt;/font&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 # dmesg | grep eth&lt;br /&gt;
 e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection&lt;br /&gt;
 e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection&lt;br /&gt;
 e1000: eth0: e1000_watchdog: NIC Link is Up 10 Mbps Half Duplex&lt;br /&gt;
&lt;br /&gt;
В качестве альтернативы попробуйте вывести список устройств на шине с помощью команды &amp;lt;fotn color=darkred&amp;gt;lspci&amp;lt;/font&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 # lspci | grep Ethernet&lt;br /&gt;
 01:01.0 Ethernet controller: Intel Corporation 82547EI&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82540EM&lt;br /&gt;
&lt;br /&gt;
Сообщения об ошибках на этой стадии говорят о неисправном или несовместимом оборудовании.&lt;br /&gt;
&lt;br /&gt;
===Задан ли IP-адрес?===&lt;br /&gt;
&lt;br /&gt;
Если сетевая карта на месте, то следующий вопрос – задан ли IP-адрес? Простейшая команда для этого случая – &amp;lt;fotn color=darkred&amp;gt;ifconfig&amp;lt;/font&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 # ifconfig eth0&lt;br /&gt;
 eth0 Link encap:Ethernet HWaddr 00:0C:F1:96:A3:F7&lt;br /&gt;
 inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0&lt;br /&gt;
 inet6 addr: fe80::20c:f1ff:fe96:a3f7/64 Scope:Link&lt;br /&gt;
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1&lt;br /&gt;
 RX packets:306 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
 TX packets:261 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
 collisions:8 txqueuelen:10&lt;br /&gt;
 RX bytes:43074 (42.0 KiB) TX bytes:34480 (33.6 KiB)&lt;br /&gt;
 Base address:0xac00 Memory:ff7e0000-ff800000&lt;br /&gt;
&lt;br /&gt;
Здесь важна вторая строка, в которой можно увидеть IP-адрес: &amp;lt;fotn color=darkred&amp;gt;192.168.0.3&amp;lt;/font&amp;gt;. Если такой строки нет, то IP-адрес не задан. А если все же задан, подумайте, действителен ли он в вашей сети.&lt;br /&gt;
&lt;br /&gt;
На практике я несколько раз сталкивался с ситуацией, когда сеть переставала работать после того, как в нее ввели компьютер, случайно&lt;br /&gt;
оказавшийся DHCP-сервером, настроенным на диапазон адресов, не соответствующих этой сети. При перезагрузке компьютер с шансами&lt;br /&gt;
50/50 получал или действительный IP-адрес от «настоящего» DHCP-сервера, или ложный адрес от самозванца.&lt;br /&gt;
&lt;br /&gt;
Если в сетевом интерфейсе не задан IP-адрес, то проверьте, настроен ли автоматический запуск этого интерфейса при загрузке системы. Если да, то использует ли он DHCP или статический IP-адрес? Конкретные имена файлов, которые нужно просмотреть, зависят от дистрибутива. В Fedora и Red Hat это '''/etc/sysconfig/network-scripts/ifcfg-eth*''', в SUSE – '''/etc/sysconfig/network/ifcfg-eth*''', а в Ubuntu – '''/etc/network/interfaces'''. (Стандарты – отличная штука: ну не прелестны ли эти ничем не объяснимые расхождения?) Конечно, в каждом из дистрибутивов есть графические утилиты, с помощью которых можно посмотреть и отредактировать настройки.&lt;br /&gt;
&lt;br /&gt;
Обычно инициализация интерфейса упрятана глубоко в загрузочные скрипты, и взаимодействие с сервером DHCP разглядеть трудно; но его можно увидеть, непосредственно запустив скрипт ifup или dhclient. Эта программа поддерживает диалог с DHCP-сервером и позволяет задать параметры сети:&lt;br /&gt;
&lt;br /&gt;
 # dhclient&lt;br /&gt;
 Internet Systems Consortium DHCP Client V3.0.5-RedHatо&lt;br /&gt;
 Copyright 2004-2006 Internet Systems Consortium.&lt;br /&gt;
 All rights reserved.&lt;br /&gt;
 For info, please visit http://www.isc.org/sw/dhcp/&lt;br /&gt;
 Listening on LPF/eth1/00:0e:0c:01:d3:a0&lt;br /&gt;
 Sending on LPF/eth1/00:0e:0c:01:d3:a0&lt;br /&gt;
 Listening on LPF/eth0/00:0c:f1:96:a3:f7&lt;br /&gt;
 Sending on LPF/eth0/00:0c:f1:96:a3:f7&lt;br /&gt;
 Sending on Socket/fallback&lt;br /&gt;
 DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 7&lt;br /&gt;
 DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4&lt;br /&gt;
 DHCPOFFER from 192.168.0.1&lt;br /&gt;
 DHCPREQUEST on eth0 to 255.255.255.255 port 67&lt;br /&gt;
 DHCPACK from 192.168.0.1&lt;br /&gt;
 bound to 192.168.0.3 -- renewal in 125868 seconds.&lt;br /&gt;
&lt;br /&gt;
В данной системе два интерфейса, '''eth0''' и '''eth1'''. Мы видим, что IP-адрес интерфейса '''eth0''' получен от DHCP-сервера 192.168.0.1. Интерфейс '''eth1''' пытался сделать то же самое (он передал команду &amp;lt;fotn color=darkred&amp;gt;DHCPDISCOVER&amp;lt;/font&amp;gt;), но не получил ответа. И неудивительно: этот интерфейс не был ни к чему подключен.&lt;br /&gt;
&lt;br /&gt;
===Пингуется ли маршрутизатор?===&lt;br /&gt;
&lt;br /&gt;
Если IP-адрес задан корректно, пропингуйте (&amp;lt;fotn color=darkred&amp;gt;ping&amp;lt;/font&amp;gt;) другой компьютер в сети. В случае удачи результат будет примерно таким:&lt;br /&gt;
&lt;br /&gt;
 # ping -c1 192.168.0.6&lt;br /&gt;
 PING 192.168.0.6 (192.168.0.6) 56(84) bytes of data.&lt;br /&gt;
 64 bytes from 192.168.0.6: icmp_seq=1 ttl=64 time=0.468 ms&lt;br /&gt;
 --- 192.168.0.6 ping statistics ---&lt;br /&gt;
 1 packets transmitted, 1 received, 0% packet loss, time 0ms&lt;br /&gt;
 rtt min/avg/max/mdev = 0.468/0.468/0.468/0.000 ms&lt;br /&gt;
&lt;br /&gt;
а неудачи – таким:&lt;br /&gt;
&lt;br /&gt;
 # ping -c 1 192.168.0.2&lt;br /&gt;
 PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.&lt;br /&gt;
 From 192.168.0.3 icmp_seq=1 Destination Host Unreachable&lt;br /&gt;
 --- 192.168.0.2 ping statistics ---&lt;br /&gt;
 1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms&lt;br /&gt;
&lt;br /&gt;
Сообщение &amp;lt;fotn color=darkred&amp;gt;«Узел недоступен»&amp;lt;/font&amp;gt; (&amp;lt;fotn color=darkred&amp;gt;Destination Host Unreachable&amp;lt;/font&amp;gt;) обычно значит, что целевой компьютер (здесь – 192.168.0.2) не подключен к сети или не работает и поэтому не может ответить на ARP-запрос MAC-адреса с моего компьютера. Это также может означать, что ваш компьютер не находит маршрут доступа к локальной сети; чаще всего это бывает, когда ваш IP-адрес не входит в данную сеть. Возможны и более сложные проблемы с маршрутизацией – впрочем, в домашней сети, где маршрут (по умолчанию) только один, это маловероятно. Если в вашей сети нет других компьютеров, можно попробовать пропинговать маршрутизатор (Вы ведь знаете адрес своего маршрутизатора?).&lt;br /&gt;
&lt;br /&gt;
Если не получилось, то проблема носит местный характер. Если сеть проводная, проверьте кабели. Зеленые светодиоды на сетевых карточках должны гореть &amp;lt;fotn color=darkblue&amp;gt;[некоторые сетевые карты имеют другой способ индикации подключения. В случае необходимости изучите инструкцию, – ''прим.ред.'']&amp;lt;/font&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Не блокирован ли трафик брандмауэром?===&lt;br /&gt;
&lt;br /&gt;
На некотором этапе нашего диагностирования полезно проверить, не чересчур ли «закручивает гайки» ваш брандмауэр. Самый быстрый&lt;br /&gt;
и грубый способ это узнать – и его предпочитают многие системные администраторы, если надо торопиться – удалить все правила брандмауэра командой&lt;br /&gt;
&lt;br /&gt;
 # iptables -F&lt;br /&gt;
&lt;br /&gt;
и посмотреть, изменится ли что-нибудь к лучшему. Если проблема исчезнет, то по крайней мере ясно, что ее причиной был брандмауэр.&lt;br /&gt;
Далее вам нужно перезагрузить компьютер (чтобы брандмауэр вновь заработал) и думать дальше. Не соблазняйтесь идеей оставить брандмауэр в отключке: это Плохая Идея!&lt;br /&gt;
&lt;br /&gt;
===5 Установлено ли ADSL-соединение ?===&lt;br /&gt;
&lt;br /&gt;
Если с самим маршрутизатором все в порядке, пора расширить охват. На маршрутизаторе должно быть еще несколько зеленых светодиодов (а если найти инструкцию к нему, то можно даже понять, что они означают), и по ним можно определить, подключен ли ADSL-модем маршрутизатора к провайдеру. У некоторых маршрутизаторов также есть возможность задать настройки и определить статус соединения с помощью web-приложения. Нас интересуют статус соединения (Connection Status) и IP-адрес, который провайдер назначил внешнему соединению. (Что это за адрес, не столь важно; главное, чтоб он был!) Разорвите соединение и заново установите его вручную, и попробуйте понять, на каком этапе возникает ошибка. Если соединения не добиться, нужно проверить провод, соединяющий маршрутизатор с телефонной линией (полезно подключить телефонную трубку, чтобы убедиться в наличии зуммера). Если провод в порядке, остается позвонить в службу поддержки провайдера. Приготовьте себе чашку кофе и вооружитесь интересной книжкой – ждать своей очереди на линии можно очень долго!&lt;br /&gt;
&lt;br /&gt;
===Пингуется ли удаленный сервер?===&lt;br /&gt;
&lt;br /&gt;
Если соединение с провайдером хорошее, тестированию пора подняться на уровень выше. Попробуйте пропинговать внешний компьютер с известным IP-адресом. Например, web-сервер Linux Format UK имеет адрес 89.167.142.11. (Конечно, он вполне может измениться, когда вы будете это читать, но пока для примера сгодится.)&lt;br /&gt;
&lt;br /&gt;
 # ping -c1 89.167.142.11&lt;br /&gt;
 PING 89.167.142.11 (89.167.142.11) 56(84) bytes of data.&lt;br /&gt;
 64 bytes from 89.167.142.11: icmp_seq=1 ttl=56 time=24.3 ms&lt;br /&gt;
 --- 89.167.142.11 ping statistics ---&lt;br /&gt;
 1 packets transmitted, 1 received, 0% packet loss, time 0ms&lt;br /&gt;
 rtt min/avg/max/mdev = 24.367/24.367/24.367/0.000 ms&lt;br /&gt;
&lt;br /&gt;
Если это работает, ваше сетевое соединение в порядке. В качестве последнего теста попробуйте добраться до удаленного компьютера по&lt;br /&gt;
его имени:&lt;br /&gt;
&lt;br /&gt;
 # ping -c1 www.linuxformat.com&lt;br /&gt;
 PING www.linuxformat.com (89.167.142.11) 56(84) bytes of data.&lt;br /&gt;
 64 bytes from kryten.future.net.uk (89.167.142.11): icmp_seq=1&lt;br /&gt;
 ttl=56 time=24.2 ms&lt;br /&gt;
 --- www.linuxformat.com ping statistics ---&lt;br /&gt;
 1 packets transmitted, 1 received, 0% packet loss, time 0ms&lt;br /&gt;
 rtt min/avg/max/mdev = 24.249/24.249/24.249/0.000 ms&lt;br /&gt;
&lt;br /&gt;
С помощью этого теста ошибки DNS сразу же выявляются, например:&lt;br /&gt;
&lt;br /&gt;
 $ ping www.prophylactic.gov&lt;br /&gt;
 ping: unknown host www.prophylactic.gov&lt;br /&gt;
&lt;br /&gt;
Если удаленный компьютер пингуется только по IP-адресу, но не по имени, пора изучать настройки вашего сервера DNS (LXF97). Для этого лучше всего подходит утилита ''dig''. Вот пример ее запуска (успешного). Не пугайтесь обилием подробностей; нужно лишь обратить внимание на запись &amp;lt;fotn color=darkred&amp;gt;A&amp;lt;/font&amp;gt; в разделе &amp;lt;fotn color=darkred&amp;gt;ANSWER&amp;lt;/font&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 # dig www.linuxformat.com&lt;br /&gt;
 ; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.4.0 &amp;lt;&amp;lt;&amp;gt;&amp;gt; www.linuxformat.com&lt;br /&gt;
 ;; global options: printcmd&lt;br /&gt;
 ;; Got answer:&lt;br /&gt;
 ;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 23236&lt;br /&gt;
 ;; flags: qr rd ra; QUERY:1, ANSWER:2, AUTHORITY:2,&lt;br /&gt;
 ADDITIONAL:2&lt;br /&gt;
 ;; QUESTION SECTION:&lt;br /&gt;
 ;www.linuxformat.com. IN A&lt;br /&gt;
 ;; ANSWER SECTION:&lt;br /&gt;
 www.linuxformat.com. 300 IN CNAME redirect1.future.net.uk.&lt;br /&gt;
 redirect1.future.net.uk. 300 IN A 89.167.142.11&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 future.net.uk. 245 IN NS ns0.future.net.uk.&lt;br /&gt;
 future.net.uk. 245 IN NS ns1.future.net.uk.&lt;br /&gt;
 ;; ADDITIONAL SECTION:&lt;br /&gt;
 ns0.future.net.uk. 33231 IN A 89.167.142.1&lt;br /&gt;
 ns1.future.net.uk. 33231 IN A 89.167.143.1&lt;br /&gt;
 ;; Query time: 41 msec&lt;br /&gt;
 ;; SERVER: 192.168.0.1#53(192.168.0.1)&lt;br /&gt;
 ;; WHEN: Fri Jul 6 15:21:44 2007&lt;br /&gt;
 ;; MSG SIZE rcvd: 158&lt;br /&gt;
&lt;br /&gt;
Если DNS не работает, вариантов может быть несколько.&lt;br /&gt;
&lt;br /&gt;
В первом случае сервер DNS не может найти компьютер, к которому вы обращаетесь. Вот пример обращения к серверу, которого просто&lt;br /&gt;
не существует:&lt;br /&gt;
&lt;br /&gt;
 # dig prophylactic.gov&lt;br /&gt;
 ; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.4.0 &amp;lt;&amp;lt;&amp;gt;&amp;gt; prophylactic.gov&lt;br /&gt;
 ;; global options: printcmd&lt;br /&gt;
 ;; Got answer:&lt;br /&gt;
 ;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NXDOMAIN, id: 13168&lt;br /&gt;
 ;; flags: qr rd ra; QUERY:1, ANSWER:0, AUTHORITY:1,&lt;br /&gt;
 ADDITIONAL:0&lt;br /&gt;
 ;; QUESTION SECTION:&lt;br /&gt;
 ;prophylactic.gov. IN A&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 gov. 2560 IN SOA a.gov.zoneedit.com. govcontact.&lt;br /&gt;
 zoneedit.com. 1183644065 3600 900 1814400 86400&lt;br /&gt;
&lt;br /&gt;
Обратите внимание на статус запроса &amp;lt;fotn color=darkred&amp;gt;NXDOMAIN&amp;lt;/font&amp;gt; и отсутствие раздела &amp;lt;fotn color=darkred&amp;gt;ANSWER&amp;lt;/font&amp;gt;, который мы видели в результатах предыдущего запроса. Если вы ввели корректное имя компьютера, то такая ошибка – следствие чьих-то чужих проблем.&lt;br /&gt;
&lt;br /&gt;
===Можете ли вы найти свой DNS-сервер?===&lt;br /&gt;
&lt;br /&gt;
Вторая причина отказа DNS – ваш компьютер не может найти DNS-сервер. Тогда источник проблемы, вероятно, ближе к дому.&lt;br /&gt;
&lt;br /&gt;
 # dig www.linuxformat.co.uk&lt;br /&gt;
 ; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.4.0 &amp;lt;&amp;lt;&amp;gt;&amp;gt; www.linuxformat.co.uk&lt;br /&gt;
 ;; global options: printcmd&lt;br /&gt;
 ;; connection timed out; no servers could be reached&lt;br /&gt;
&lt;br /&gt;
Если это произошло, загляните в файл '''/etc/resolv.conf'''. В нем Linux хранит сведения о местонахождении DNS-серверов. Если вы пользуетесь DHCP, IP-адреса DNS-серверов предоставляются сервером DHCP. Если IP-адрес статический, вы, наверно, использовали графическую утилиту настройки для определения параметров серверов DNS (например, ''system-config-network'' в Fedora). В любом случае результаты записываются в этот файл. Есть ли в нем корректный адрес сервера имен? Можете ли вы пинговать его?&lt;br /&gt;
&lt;br /&gt;
Если ничто не помогает, попробуйте просмотреть сетевой трафик с помощью ''wireshark'', утилиты отслеживания пакетов, ранее известной как ethereal. Как средство диагностики ''wireshark'', на мой взгляд, «последняя надежда». Дело не в недоработке этой программы: программа-то отличная, но чтобы искать неполадки в сети путем изучения трафика на уровне пакетов, нужно очень хорошо знать TCP/IP и прикладные протоколы верхних уровней. Вам также может потребоваться дополнительный компьютер в сети для наблюдения за трафиком.&lt;br /&gt;
&lt;br /&gt;
Выполните команду&lt;br /&gt;
&lt;br /&gt;
 # ping 192.168.0.42&lt;br /&gt;
&lt;br /&gt;
на компьютере с IP-адресом 192.168.0.3. Посмотрите на верхнюю из трех панелей wireshark; в ней каждому перехваченному пакету соответствует одна строка. Средняя и нижняя панели позволяют разобраться в содержимом отдельных пакетов, но сейчас они нам не нужны.&lt;br /&gt;
Сообщение простое и ясное: компьютер с адресом 192.168.0.3 пытается использовать ARP для получения MAC-адреса компьютера, до которого хочет достучаться. Он пытался сделать это три раза с интервалом в одну секунду, но не получил ответа.&lt;br /&gt;
&lt;br /&gt;
Итак, мы можем сделать вывод, что с компьютером, адрес которого 192.168.0.3, все в порядке – он может получать пакеты от компьютеров сети с корректными IP-адресами, но компьютера с адресом 192.168.0.42 там просто нет.&lt;br /&gt;
&lt;br /&gt;
==Смотрим дальше==&lt;br /&gt;
&lt;br /&gt;
Вот другой пример. На клиентском компьютере установлен SUSE Linux 10.1. Проблема была в том, что каждый раз, когда браузер ''Konqueror''&lt;br /&gt;
пытался соединиться с внешним сайтом (т.е. производил поиск DNS-сервера), перед установкой соединения возникала 15-секундная задержка. Пакет 1 реализует стандартный запрос DNS для адреса [http://www.linuxformat.co.uk www.linuxformat.co.uk], а пакет 3 – ответ на этот запрос, который приходит через 0.04 с от сервера DNS, встроенного в мой маршрутизатор (192.168.0.1) с требуемым IP-адресом. Чудесно. Проблема в том, что ''Konqueror'' также решил запросить IPv6-адрес для этого сайта (запрос записи &amp;lt;font color=darkred&amp;gt;AAAA&amp;lt;/font&amp;gt; в пакете 2). Слава богу, маршрутизатор игнорирует этот запрос, и через пять секунд ''Konqueror'' перенаправляет этот запрос к маршрутизатору (пакет 7) и ко внешнему серверу DNS (пакет 6). Маршрутизатор все еще не отвечает, зато отвечает внешний DNS-сервер (пакет 8): сообщает, что не может найти записи &amp;lt;font color=darkred&amp;gt;AAAA&amp;lt;/font&amp;gt; для сайта [http://linux.format.co.uk linux.format.co.uk]. Ну, теперь помаленьку проясняется...&lt;br /&gt;
&lt;br /&gt;
DNS-ресолвер приписывает доменное имя по умолчанию &amp;lt;font color=blue&amp;gt;example.com&amp;lt;/font&amp;gt; к адресу, который он пытается преобразовать (в результате получаем бессмыслицу [http://www.linuxformat.co.uk.example.com www.linuxformat.co.uk.example.com]) и начинает поиск записей &amp;lt;font color=darkred&amp;gt;AAAA&amp;lt;/font&amp;gt; для этого адреса. Он тратит еще пять секунд, надеясь получить ответ от маршрутизатора, после чего еще раз пытается обратиться к внешнему серверу DNS (пакет 10). В конце концов занавес над этой печальной историей опускается, и через пятнадцать секунд после начала ''Konqueror'' создает соединение TCP/IP (пакеты с 17-го и далее), используя старый добрый адрес IPv4, с которого и начал.&lt;br /&gt;
&lt;br /&gt;
Оказалось, что это известная проблема, как свидетельствуют и результаты поиска Google по фразе ''“Konqueror IPv6”''. Решение простое: отключите стек протоколов IPv6 в ядре, отредактировав файл '''/etc/modprobe.conf''', и перезагрузите систему. Это хороший пример использования отслеживания пакетов для отладки, потому что другим способом решить эту проблему трудно. Не нужно проводить детальный анализ перехваченных пакетов, достаточно просто понять, что компьютер пытается разрешить имя в IPv6.&lt;br /&gt;
&lt;br /&gt;
Поиск неисправностей редко укладывается в обычные схемы диагностики. Ошибки имеют привычку просачиваться в щели между сложившейся литературой, и я уверен, что некоторые читатели (паратройка читателей у нас еще осталась, не правда ли?) столкнутся с ситуациями, в которых мои советы не помогут. Если у вас есть собственная история сетевых войн, которой вы хотели бы поделиться с нашими читателями, то отправьте нам ее на обычный адрес!&lt;br /&gt;
&lt;br /&gt;
==Врезки==&lt;br /&gt;
&lt;br /&gt;
===Скорая помощь===&lt;br /&gt;
&lt;br /&gt;
*Изменили ли вы имя пользователя и пароль для доступа к настройкам своего широкополосного маршрутизатора, когда настраивали&lt;br /&gt;
его? Или они до сих пор “&amp;lt;font color=darkred&amp;gt;admin&amp;lt;/font&amp;gt;” и “&amp;lt;font color=darkred&amp;gt;admin&amp;lt;/font&amp;gt;”? Если так, то знайте, что многие атаки основаны на знании реквизитов, используемых по умолчанию. Не пожалейте пары минут и задайте более сильный пароль… &amp;lt;font color=darkred&amp;gt;'''ПРЯМО СЕЙЧАС!'''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*При выполнении диагностических тестов многое можно понять по времени отклика. Если его приходится ждать 15 секунд и более, то скорее всего вы&lt;br /&gt;
пытаетесь соединиться с компьютером, которого там просто нет. Если сообщение об ошибке появляется в течение пяти секунд, то есть вероятность, что&lt;br /&gt;
вы подключились к серверу, который по тем или иным причинам отклонил ваш запрос.&lt;br /&gt;
&lt;br /&gt;
*Помните, что системы периодически выходят из строя или временно отключаются для технического обслуживания. Если вы считаете, что проблема находится за&lt;br /&gt;
рамками вашей системы, может быть, стоит переждать час-другой и попробовать еще раз.&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%92%D1%80%D0%B5%D0%B7%D0%BA%D0%B0</id>
		<title>Шаблон:Врезка</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%92%D1%80%D0%B5%D0%B7%D0%BA%D0%B0"/>
				<updated>2023-10-13T04:11:03Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: Содержимое страницы заменено на «{{SEO}}»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEO}}&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%A6%D0%B8%D0%BA%D0%BB</id>
		<title>Шаблон:Цикл</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%A6%D0%B8%D0%BA%D0%BB"/>
				<updated>2023-10-13T04:10:21Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: Содержимое страницы заменено на «{{SEO}}»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEO}}&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Man</id>
		<title>Шаблон:Man</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:Man"/>
				<updated>2023-10-13T04:09:35Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: Содержимое страницы заменено на «{{SEO}}»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEO}}&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/Linuxformat:Copyright</id>
		<title>Linuxformat:Copyright</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/Linuxformat:Copyright"/>
				<updated>2023-10-13T04:08:47Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Материалы, опубликованные в Linux Format Wiki, распространяются на условиях лицензии Open Publication License v1.0, полный текст которой может быть получен по адресу: [http://opencontent.org/openpub/]. Данное соглашение позволяет добавить или модифицировать ряд его положений на усмотрение правообладателя. В связи с этим, для материалов Linux Format Wiki должны применяться следующие нормы:&lt;br /&gt;
&lt;br /&gt;
* Коммерческое использование материалов Linux Format Wiki без разрешения правообладателя запрещено.&lt;br /&gt;
&lt;br /&gt;
* Распространение существенно модифицированных версий (substantively modified versions) без разрешения правообладателя запрещено.&lt;br /&gt;
{{SEO}}&lt;br /&gt;
Принимая во внимание политику российского издания Linux Format в отношении авторского права, следует заметить, что некоторые отечественные авторы могли установить для своих статей другие условия распространения. В случае необходимости, обратитесь к ним напрямую - все контакты можно получить в редакции.&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:SEO</id>
		<title>Шаблон:SEO</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:SEO"/>
				<updated>2023-10-13T04:08:02Z</updated>
		
		<summary type="html">&lt;p&gt;SEO TROLLING: Новая страница: «* [http://мета-модерн.рф/sorokin_metamodernism Метамодернизм в позднем творчестве В.Г. Сорокина] * [http://м…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [http://мета-модерн.рф/sorokin_metamodernism Метамодернизм в позднем творчестве В.Г. Сорокина]&lt;br /&gt;
* [http://мета-модерн.рф/litrpg ЛитРПГ - последняя отрыжка постмодерна]&lt;br /&gt;
* [http://мета-модерн.рф/richard_iii &amp;quot;Ричард III и семиотика&amp;quot;]&lt;br /&gt;
* [http://мета-модерн.рф/ridero_visualisation 3D-визуализация обложки Ridero] создаем обложку книги при работе над самиздатом.&lt;br /&gt;
* [http://мета-модерн.рф/architecture Архитектура метамодерна] - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек &amp;quot;новой волны&amp;quot;, столь притягательных и скандальных.&lt;br /&gt;
* [http://мета-модерн.рф/literature Литература] &lt;br /&gt;
* [http://мета-модерн.рф/ Метамодерн]&lt;br /&gt;
* [http://мета-модерн.рф/venya_drkin Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала &amp;quot;Топос&amp;quot;].&lt;br /&gt;
*[http://www.димитровградонлайн.рф/publ/raznoe/kak_izbavitsja_ot_komarov_luchshie_tipy_lovushek/5-1-0-1 Как избавиться от комаров? Лучшие типы ловушек.]&lt;br /&gt;
*[http://www.димитровградонлайн.рф/publ/texnologii/chto_delat_esli_robloks_vyletaet_na_windows/3-1-0-2 Что делать если роблокс вылетает на windows]&lt;br /&gt;
*[http://www.димитровградонлайн.рф/publ/psikhologija_i_semejnye_otnoshenija/chto_delat_esli_rebenok_smotrit_porno/6-1-0-3 Что делать, если ребенок смотрит порно?]&lt;br /&gt;
*[http://www.димитровградонлайн.рф/publ/raznoe/pochemu_sobaka_prygaet_na_ljudej_pri_vstreche/5-1-0-5 Почему собака прыгает на людей при встрече?]&lt;br /&gt;
*[http://www.димитровградонлайн.рф/publ/texnologii/kakoe_maslo_lit_v_zadnij_differencial_most_visco_diff_38434aa050/3-1-0-4 Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050]&lt;br /&gt;
*[http://www.димитровградонлайн.рф/publ/raznoe/o_chem_mozhet_rasskazat_khvost_vashej_koshki/5-1-0-7 О чем может рассказать хвост вашей кошки?]&lt;br /&gt;
*[http://www.димитровградонлайн.рф/publ/raznoe/o_chem_govorjat_vervetki/5-1-0-8 Верветки]&lt;br /&gt;
*[http://www.димитровградонлайн.рф/publ/raznoe/otchetnost_bjudzhetnykh_uchrezhdenij_pri_zakupkakh_po_zakonu_223_fz/5-1-0-9 Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ]&lt;br /&gt;
*[http://www.димитровградонлайн.рф/publ/raznoe/srok_iskovoj_davnosti_uchimsja_rasschityvat_pravilno/5-1-0-10 Срок исковой давности как правильно рассчитать]&lt;br /&gt;
* [http://www.димитровградонлайн.рф/publ/politika/kto_takoj_dmitrij_patrushev_budet_li_on_preemnikom_vladimira_putina/4-1-0-12 Дмитрий Патрушев минсельхоз будет ли преемником Путина]&lt;br /&gt;
*[http://www.димитровградонлайн.рф/publ/politika/kto_takoj_vladislav_pozdnjakov_chto_takoe_muzhskoe_gosudarstvo_i_pochemu_ego_priznali_ehkstremistskim_v_rossii/4-1-0-13 Кто такой Владислав Поздняков? Что такое &amp;quot;Мужское Государство&amp;quot; и почему его признали экстремистским в России?]&lt;br /&gt;
* [http://www.димитровградонлайн.рф/publ/texnologii/kak_pravilno_vybrat_mashinnoe_maslo_v_dimitrovgrade/3-1-0-14 Как правильно выбрать машинное масло в Димитровграде?]&lt;br /&gt;
* [http://www.димитровградонлайн.рф/publ/psikhologija_i_semejnye_otnoshenija/kak_stat_bogatym_i_znamenitym_v_rossii/6-1-0-15 Как стать богатым и знаменитым в России?]&lt;br /&gt;
* [http://www.димитровградонлайн.рф/publ/raznoe/pochemu_film_pipec_kick_ass_stal_populjaren_po_vsemu_miru/5-1-0-16 Почему фильм &amp;quot;Пипец&amp;quot; (Kick-Ass) стал популярен по всему миру?]&lt;br /&gt;
* [http://www.димитровградонлайн.рф/publ/psikhologija_i_semejnye_otnoshenija/kak_stat_mudrecom/6-1-0-17 Как стать мудрецом?]&lt;br /&gt;
* [http://www.димитровградонлайн.рф/publ/texnologii/kak_ustanovit_free_bsd/3-1-0-19 Как правильно установить FreeBSD]&lt;br /&gt;
* [http://www.димитровградонлайн.рф/publ/politika/kak_stat_takim_kak_putin/4-1-0-20 Как стать таким как Путин?]&lt;br /&gt;
* [http://www.димитровградонлайн.рф/publ/o_dimitrovgrade/gde_luchshe_zhit_v_dimitrovgrade_ili_v_uljanovske/1-1-0-21 Где лучше жить - в Димитровграде или в Ульяновске?]&lt;br /&gt;
* [http://www.димитровградонлайн.рф/publ/o_dimitrovgrade/pochemu_gorod_dimitrovgrad_tak_nazyvaetsja/1-1-0-22 Почему город Димитровград так называется?]&lt;br /&gt;
* [http://www.димитровградонлайн.рф/news/chto_takoe_metamodern/2023-10-13-6 Что такое метамодерн?]&lt;br /&gt;
* [http://www.димитровградонлайн.рф/news/vazhno_vremennoe_ogranichenie_dvizhenija_avtotransportnykh_sredstv_v_dimitrovgrade/2023-10-13-5 ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде]&lt;br /&gt;
* [http://www.димитровградонлайн.рф/news/tarify_na_ehlektroehnergiju_dlja_majnerov_predlozheno_povysit/2023-10-13-4 Тарифы на электроэнергию для майнеров предложено повысить]&lt;/div&gt;</summary>
		<author><name>SEO TROLLING</name></author>	</entry>

	</feed>