<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-3049622665299352641</atom:id><lastBuildDate>Mon, 08 Aug 2011 15:17:19 +0000</lastBuildDate><category>переводы</category><category>linux</category><category>asus eeepc 1000h</category><category>firefox</category><category>OpenSolaris</category><category>vimperator</category><category>lighttpd</category><category>Windows Vista</category><category>Microsoft</category><category>dns</category><category>свободное ПО</category><category>python</category><category>С++</category><category>mcabber</category><category>VirtualBox</category><category>rtorrent</category><category>freebsd</category><category>dhcp</category><category>acer aspire 1683</category><category>ubuntu</category><category>wtorrent</category><category>Sony Vaio</category><category>возврат денег</category><category>программирование</category><title>Заметки о работе в linux</title><description>Заметки о том, с чем я встречаюсь при работе с ОС GNU/Linux</description><link>http://passshok.blogspot.com/</link><managingEditor>noreply@blogger.com (passshok)</managingEditor><generator>Blogger</generator><openSearch:totalResults>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/PassshokLinuxNotes" /><feedburner:info uri="passshoklinuxnotes" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-4382506157990136836</guid><pubDate>Thu, 10 Dec 2009 17:23:00 +0000</pubDate><atom:updated>2009-12-10T20:24:15.641+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">Microsoft</category><title>Если бы «эта» компания строила и продавала дома</title><description>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;span style='font-weight: bold;'&gt;Часть первая. Окна открываются в полночь.&lt;/span&gt;&lt;br/&gt;Вы купили новый дом/квартиру/коттедж и живете там уже пару лет. Однажды ночью, по непонятным причинам, в одной из комнат открывается &lt;a target='_blank' href='http://www.computerworld.com/s/article/9036058/Microsoft_changes_Windows_files_on_user_PCs_without_permission_researchers_say'&gt;окно, которое никогда не открывалось&lt;/a&gt;. Через него заходят неизвестные люди, что-то меняют во всем доме/квартире/коттедже, ничего не трогая из ваших вещей, и также тихо уходят. Сутра вы просыпаетесь и, слушая свежий выпуск новостей, узнаете что во всех домах, которые продала «эта» компания, в том числе и в вашем, были замечены такие вторжения.&lt;br/&gt;&lt;br/&gt;Каковы ваши действия? Вы возмущены до предела или, возможно, находитесь в смятении. Дослушав выпуск новостей до конца, вы узнаете, что «эта» компания занимает 95% рынка по продаже домов и является монополистом в своей области. Долго размышляя, вы приходите к неутешительному выводу о том, что деваться практически некуда.&lt;br/&gt;&lt;br/&gt;Хотя... Мельком вы где-то слышали, что существует малоизвестная компания, которая также делает дома, но все о ней отзываются очень странно и неоднозначно. Говорят, что их дома очень безопасные, но совершенно не похожи на дома «этой» компании, а технологии строительства совершенно другие. Также ходят слухи, что как таковой, компании вообще не существует, а строители — это добровольцы, которые порой работают без зарплаты.&lt;br/&gt;&lt;br/&gt;Так или иначе, вы не решаетесь воспользоваться услугами малоизвестной компании, потому что: а) никто из соседей так еще не делал, б) вы решаете, что вам тяжело будет привыкнуть к новой планировке и иному подходу «другой» компании, в) вообще не понимаете, что это за странные люди, которые работаю за дорма. Вы ничего не можете с этим поделать и смиряетесь.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style='font-weight: bold;'&gt;Часть вторая. Безопасность любой ценой.&lt;/span&gt;&lt;br/&gt;Однажды утром, проходя по коридору вашего замечательного дома, вы краем уха слышите сводку новостей. В ней говорится, что &lt;a target='_blank' href='http://www.computerworld.com/s/article/9141105/NSA_helped_with_Windows_7_development'&gt;при проектировании домов «этой» компании были учтены требования некой службы безопасности этой страны&lt;/a&gt;. Вы начинаете искать информацию о том, как именно были учтены эти требования и что это означает. Информация по этому поводу оказывается крайне скудна, но, в общем, удается понять, что за домом кто-то периодически может следить.&lt;br/&gt;&lt;br/&gt;Вы проходите по всему дому и отсматриваете все уголки, чтобы найти что-то подозрительное. Постепенно, вы приходите к выводу, что в стенах и перекрытиях может быть что угодно. В службе поддержки «этой» компании вы узнаете, что она не предоставляет чертежей дома и не раскрывает материалы и составы, использованные при строительстве.&lt;br/&gt;&lt;br/&gt;Вы идете к вашим соседям и они рассказывают вам о тех же слухах. Внезапно, вам попадается рекламная листовка «другой» компании, о которой вы слышали и раньше, но вы выбрасываете ее, так как начисто отмели этот вариант ранее. Уставший ото всех этих событий, смирившись с поражением, вы удаляетесь в свой «любимый» дом.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-4382506157990136836?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/Ou803bip1-4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/Ou803bip1-4/blog-post.html</link><author>noreply@blogger.com (passshok)</author><thr:total>5</thr:total><feedburner:origLink>http://passshok.blogspot.com/2009/12/blog-post.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-1931957458729920687</guid><pubDate>Sun, 06 Dec 2009 21:20:00 +0000</pubDate><atom:updated>2010-05-07T00:07:43.743+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">firefox</category><category domain="http://www.blogger.com/atom/ns#">vimperator</category><title>Vimperator и макросы: перевод выделенного слова</title><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;img src="http://lh6.ggpht.com/_I4wjZyyQJOU/SxwDlNThK_I/AAAAAAAAAMs/jU6irUc1Mz8/%5BUNSET%5D.png?imgmax=800" style="max-width: 800px; float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;" /&gt;Заметка посвящается любителям навигации по страницам в стиле &lt;a href="http://www.vim.org/" target="_blank"&gt;редактора текстов VIM&lt;/a&gt;. Если вы еще не стали таковым, то никогда не поздно установить замечательное дополнение для Firefox — Vimperator. Vimperator доступен для загрузки как на &lt;a href="http://www.vimperator.org/vimperator" target="_blank"&gt;официальном сайте&lt;/a&gt;, так и &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4891" target="_blank"&gt;на странице дополнений для Firefox&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Если вы еще не знакомы с синтаксисом команд, а в частности, команд для работы с макросами, то ознакомиться с ними можно в разделе справки Repeating commands&lt;a href="chrome://liberator/locale/repeat.html" target="_blank"&gt;&lt;/a&gt;. Справку можно вызвать командой :help.&lt;br /&gt;&lt;br /&gt;Для того чтобы оценить практическую пользу от использования макросов, рассмотрим простой жизненный пример. При чтении англоязычных (и не только) ресурсов, необходимо иметь возможность быстро перевести выделенное слово. Реализовать это в Vimperator очень просто:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Нажать «t», затем «Tab» (появится список поисковых дополнений, как показано на рисунке ниже).&lt;br /&gt;&lt;img src="http://lh5.ggpht.com/_I4wjZyyQJOU/SxwXGDIA68I/AAAAAAAAAMw/bIb0XCaw448/%5BUNSET%5D.png?imgmax=800" alt="vimperator search engines" style="max-width: 800px;" /&gt;&lt;/li&gt;&lt;li&gt;Запомнить сокращение поисковой машины и нажать клавишу Esc (в моем случае это «dict», что соответствует Яндекс.Словарям).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;В обычном режиме нажать клавиши «q», затем «d» (это начнет запись макроса, назначенного на клавишу «d»).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Выделить двойным щелчком слово на странице, которое необходимо перевести.&lt;/li&gt;&lt;li&gt;Ввести такую последовательность символов: «Y» (скопировать выделенное слово), «t» (открыть новую вкладку), «dict» (сокращенное название поискового плагина), пробел. Затем нажать Shift + Insert (вставка выделенного ранее слова). Нажать клавишу Enter (после этого произойдет открытие нового таба с переводом слова).&lt;/li&gt;&lt;li&gt;Ввести «q» (окончание записи макроса).&lt;/li&gt;&lt;/ol&gt;Проверить, все ли правильно, можно с помощью команды :macros. Макрос «d» должен быть похож на:&lt;br /&gt;&lt;pre&gt;Ytdict&amp;lt;Space&amp;gt;&amp;lt;S-Insert&amp;gt;&amp;lt;Return&amp;gt;&lt;/pre&gt;&lt;br /&gt;Использовать очень просто: выделить слово двойным щелчком и нажать «@d». Удобство заключается в том, что слово выделяется мышью, правой рукой, а запуск макроса выполняется — левой рукой, что значительно повышет скорость работы. Отмечу также, что после завершения работы Firefox макросы сохраняются, в отличие от таковых в VIM.&lt;br /&gt;&lt;br /&gt;В заключение, добавлю, что возможности макросов достаточно велики. Вы сможете автоматизировать выполнение рутинных ежедневных действий в зависимости от ваших потребностей и наклонностей :)&lt;br /&gt;&lt;br /&gt;Ссылки по теме:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://habrahabr.ru/blogs/firefox/38298/" target="_blank"&gt;VImperator&lt;/a&gt; (общий обзор vimperator)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.xgu.ru/wiki/Vimperator" target="_blank"&gt;Советы по работе с Vimperator и решение некоторых проблем&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://sheet.shiar.nl/vimperator" target="_blank"&gt;Шпаргалка по клавишам&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://simplicityroad.livejournal.com/1938.html" target="_blank"&gt;Еще одна шпаргалка по клавишам&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Обзоры vimperator:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://the-bosha.ru/2009/11/07/vimperator/"&gt;Vim + Firefox = Vimperator&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-1931957458729920687?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/NlvI2kB5gtk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/NlvI2kB5gtk/vimperator.html</link><author>noreply@blogger.com (passshok)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_I4wjZyyQJOU/SxwDlNThK_I/AAAAAAAAAMs/jU6irUc1Mz8/s72-c/%5BUNSET%5D.png?imgmax=800" height="72" width="72" /><thr:total>5</thr:total><feedburner:origLink>http://passshok.blogspot.com/2009/12/vimperator.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-2959629128855758715</guid><pubDate>Mon, 16 Nov 2009 16:09:00 +0000</pubDate><atom:updated>2009-11-16T21:02:00.993+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Windows Vista</category><category domain="http://www.blogger.com/atom/ns#">Sony Vaio</category><category domain="http://www.blogger.com/atom/ns#">возврат денег</category><category domain="http://www.blogger.com/atom/ns#">Microsoft</category><title>Возврат денег за Windows Vista на Sony Vaio</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_I4wjZyyQJOU/SwGPj1-px2I/AAAAAAAAAMk/Sh_kS7kMc0c/s1600/vista_1200.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 239px; height: 217px;" src="http://4.bp.blogspot.com/_I4wjZyyQJOU/SwGPj1-px2I/AAAAAAAAAMk/Sh_kS7kMc0c/s400/vista_1200.png" alt="" id="BLOGGER_PHOTO_ID_5404758873769363298" border="0" /&gt;&lt;/a&gt;Сегодня замечательный день, товарищи. Случилось очень приятное для меня событие: наконец-то я вернул денги за Windows Vista Home Premium, которая была предустановлена на недавно купленном ноутбуке Sony Vaio. Возможно, вы спросите, как это относится к тематике блога и причем тут Linux? Все дело в том, что для меня, как для пользователя Linux, важно иметь свободу выбора ОС и не платить лишних денег за то, что мне не нужно. Но, обо все по порядку.&lt;br /&gt;Расскажу о процедуре поподробнее, так как наверняка многие захотят ее повторить.&lt;br /&gt;Для начала необходимо зайти на &lt;a href="http://genesis.sony-europe.com/instranet/ccil_sony/selfservice/search.jsp?DocId=36528&amp;amp;l=ru_RU&amp;amp;m=VGN-NW11SR_S"&gt;сайт поддержки Sony Vaio&lt;/a&gt; и скачать &lt;a href="http://www.sony.ru/res/attachment/file/78/1237476104378.pdf"&gt;бланк&lt;/a&gt;. В нем написано много чего интересного и немного пугающего :) Можете ознакомиться. Главное что там написанано, это то что процедура возврата денег действует в течение 30 дней с момнета покупки ноутбука. Если уже прошло 30 дней, то скорее всего дальше вам читать будет не так интересно :)&lt;br /&gt;Далее необходимо позвонить в службу поддержки Sony Vaio Link в России по телефонам +74959814977 или 88007000939 и получить идентификационный номер заявки у оператора. Этот номер нужен для заполнения бланка. После этого можно полностью заполнить бланк.&lt;span style=";font-family:arial;font-size:10;"  &gt;&lt;/span&gt;&lt;br /&gt;Теперь все готово для похода в сервисный центр. Из того что сказал оператор службы поддержки я понял, что обслуживание ноутбуков Sony Vaio в Москве произодит &lt;a href="http://www.cepco.ru/"&gt;сервисный центр Серсо&lt;/a&gt; по адресу Стрельбищенский пер, 29а. Карту проезда можно найти на &lt;a href="http://www.cepco.ru/index.php?option=com_contact&amp;amp;catid=12&amp;amp;Itemid=67"&gt;странице контактов&lt;/a&gt;. Берем ноутбук (можно без зарядки), заполненный бланк, чек и отправляемся туда.&lt;br /&gt;Должен заметить, что с ходу мою просьбу восприняли не очень радушно, но после того как я дал понять, что процедуру довольно хорошо изучил и уходить не намерен, все пошло как по маслу. По ходу вам предложат заполнить заявление о том, что вы готовы получить определенную сумму за ОС, а также поставить несколько подписей. В моем случае процедура не заняла много времени, скорее всего потому, что я попросил не форматировть жесткий диск, так как там стояла уже совсем другая ОС. К моей просьбе отнеслись с пониманием и вернули все в целости и достаточно быстро.&lt;br /&gt;Вся процедура заняла не более часа. В итоге мне вернули 1200 руб. наличными прямо в сервисном центре и отклеили наклейку с серийным кодом. Кстати, мне сказали, что я второй посетитель, который обратился с просьбой вернуть ему деньги за ОС от Microsoft.&lt;br /&gt;Если статья кому-то оказалась полезной, то я очень рад. Было бы интересно узнать о вашем опыте возврата денег за неиспользуемую ОС.&lt;br /&gt;&lt;br /&gt;Ссылки по теме:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://joe-braker.livejournal.com/9606.html?view=331654"&gt;Возврат Windows — это просто!&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://habrahabr.ru/blogs/laptop/72654/#comments"&gt;Возврат денег за Windows Vista при покупке ноутбука&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-2959629128855758715?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/-ricryo_khw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/-ricryo_khw/windows-vista-sony-vaio.html</link><author>noreply@blogger.com (passshok)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_I4wjZyyQJOU/SwGPj1-px2I/AAAAAAAAAMk/Sh_kS7kMc0c/s72-c/vista_1200.png" height="72" width="72" /><thr:total>8</thr:total><feedburner:origLink>http://passshok.blogspot.com/2009/11/windows-vista-sony-vaio.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-8334238867360321938</guid><pubDate>Mon, 15 Jun 2009 02:00:00 +0000</pubDate><atom:updated>2009-06-15T06:00:00.663+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">dns</category><category domain="http://www.blogger.com/atom/ns#">ubuntu</category><category domain="http://www.blogger.com/atom/ns#">dhcp</category><title>Задание своих DNS-серверов по DHCP в Ubuntu для беспроводной точки доступа</title><description>Имеется домашний маршрутизатор/беспроводная точка доступа, которые нынче в моде. При подключении по DHCP он выступает в качетсве DNS proxy, выдавая клиентам свой IP-адрес типа 192.168.0.1 в качестве DNS-сервера. У меня три таких устройства и во всех трех этот DNS proxy работает плохо. Выражается это в ожидании поиска DNS записей у клиентских машин. Иногда можно ждать по 5-6 секунд, пока станет известен адрес сайта, например gmail.com или google.com. Вобщем, сидеть и ждать каждый раз по 20-30 секунд загрузки какого-нибудь крупного сайта -- пустая трата времени. Особенность проблемы заключается в том, что такая тормознутость в работе DNS proxy наблюдается только в дешевых маршрутизаторах (дома), а вот на работе ее нету. На работе в DNS есть имена локальных машин, поэтому им необходимо пользоваться. Таким образом, нельзя переписать IP-адреса DNS-серверов в /etc/resolv.conf, нужно искать другое решение.&lt;br /&gt;&lt;br /&gt;И оно есть. Для того чтобы для каждой беспроводной точки доступа иметь возможность задать свои DNS-сервера, необходимо создать скрипт, который будет запускаться при получении DHCP-адреса и, в зависимости от названия беспроводной точки доступа, менять IP-адреса DNS-серверов. Примеры таких скриптов находятся в директории /etc/dhcp3/dhclient-enter-hooks.d/ в Ubuntu 8.04. Для изучения их работы можно воспользоваться скриптом debug.&lt;br /&gt;&lt;br /&gt;Содержание скрипта dns-fix, позволяющего обойти вышеописанную проблему, получилось следующим:&lt;br /&gt;&lt;pre&gt;passshok@asus1000h ~ $ cat /etc/dhcp3/dhclient-enter-hooks.d/dns-fix&lt;br /&gt;essid=$(iwgetid $interface | awk -F':' '{print substr($2,2,length($2)-2)}')&lt;br /&gt;&lt;br /&gt;if [ "$essid" = "Home_ESSID" ]; then&lt;br /&gt;new_domain_name_servers="208.67.222.222 208.67.220.220"&lt;br /&gt;fi&lt;/pre&gt;Переменная $interface является входным параметром для этого скрипта и устанавливается до его запуска. Переменная new_domain_name_servers является выходной для скрипта и, соответственно, ее содержимое позже сохраняется в /etc/resolv.conf. Вот собственно и все хитрости. Остальное содержимое скрипта достаточно просто в понимании и не должно вызвать проблем с его пониманием. По крайней мере, я на это надеюсь :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Если имеется более простой способ сделать вышеописанное в Ubuntu, то с удовольствием выслушаю его, потому как мне не удалось найти подобные настроки в Network Manager или в каком-то другом, более человекопонятном конфигурационном файле :-)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-8334238867360321938?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/BSId9fy__F0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/BSId9fy__F0/dns-dhcp-ubuntu.html</link><author>noreply@blogger.com (passshok)</author><thr:total>0</thr:total><feedburner:origLink>http://passshok.blogspot.com/2009/06/dns-dhcp-ubuntu.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-4868709402150823165</guid><pubDate>Wed, 11 Feb 2009 12:27:00 +0000</pubDate><atom:updated>2009-02-11T16:09:12.675+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">asus eeepc 1000h</category><category domain="http://www.blogger.com/atom/ns#">python</category><category domain="http://www.blogger.com/atom/ns#">ubuntu</category><title>Программа контроля вентилятора на Python</title><description>Как я уже писал в предыдущих записях, являюсь владельцем &lt;a href="http://ru.asus.com/products.aspx?l1=24&amp;amp;l2=164&amp;amp;l3=0&amp;amp;l4=0&amp;amp;model=2303&amp;amp;modelmenu=2"&gt;Asus Eee PC 1000h&lt;/a&gt;. Для того чтобы привести все возможности его железа в рабочее состояние, установил ядро из &lt;a href="http://array.org/ubuntu/"&gt;debian (ubuntu) репозитория array.org&lt;/a&gt;. До определенного момента, пока я радовался что все работает, я не замечал шума вентилятора, а когда восторг закончился -- стал замечать. Сидя в тихой комнате, вентилятор слышно, причем очень хорошо. Судя по звуку, такое впечатление, что он не то чтобы жужжит, а попросту не смазан как следует. Разбирать компьютер я конечно не стал, и частично решил эту проблему программным методом.&lt;br /&gt;Так как при установке доработанного ядра из вышеописанного репозитория появляется возможность контролировать работу вентилятора, то мною было принято решение о написании программы, воплощающей это в жизнь.&lt;br /&gt;Для осуществления задуманного имеются следующие возможности:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;текущую внутреннюю температуру (скорее всего это температура процессора) можно брать из файла /proc/eee/temperature;&lt;/li&gt;&lt;li&gt;включать ручное управление вентилятором можно записью 0 или 1 в файл /proc/eee/fan_manual;&lt;/li&gt;&lt;li&gt;устанавливать скорость вращения вентилятора в процентах можно записью в файл /proc/eee/fan_speed.&lt;/li&gt;&lt;/ul&gt;Добавив к этому нехитрую формулу расчета интенсивности работы вентилятора в зависимости от температуры можно получить желаемый результат.&lt;br /&gt;Реализовать это я решил на языке и написал небольшую программку. Ознакомиться с исходным кодом можно по адресу &lt;a href="http://dumpz.org/5428/"&gt;http://dumpz.org/5428/&lt;/a&gt;.&lt;br /&gt;К положительным сторонам работы моей программы можно отнести выключенное состояние вентилятора при малых температурах (ниже 55С) и, соответственно, полностью бесшумную работу. Отрицательным моментом является излишне повышенные обороты вентилятора при повышенной температуре (от 60С). Такое повышение оборотов очень хорошо ощущается когда процессор сильно нагружается, например, обработкой большой страницы с медиаэлементами в Mozilla Firefox, и вентилятор резко взвывает. Думаю доработать это со временем, когда сильно надоест. Есть идея, учитывать время за которое температура поднимается и в соответствии с ним раскручивать вентилятор плавно.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-4868709402150823165?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/5r0Pj3E31jk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/5r0Pj3E31jk/asus-eee-pc-1000h.html</link><author>noreply@blogger.com (passshok)</author><thr:total>8</thr:total><feedburner:origLink>http://passshok.blogspot.com/2009/02/asus-eee-pc-1000h.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-5636432782300207315</guid><pubDate>Sun, 08 Feb 2009 13:53:00 +0000</pubDate><atom:updated>2009-02-08T17:18:26.530+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">С++</category><title>Функция разделения строки на C++</title><description>Время от времени, я занимаюсь приятными, но совершенно бесполезными делами. Некоторое время назад я занимался написанием программа jabber-работа, который по моей задумке мог бы стать моим постоянным спутником и личным секретарем :-) Его задача, по задумке, заключалась в работе с моими: заметками, т.е. ввод, вывод и сортировка; задачами, которые можно было бы планировать по времени; днями рождениями родственников и знакомых, которые я все время забываю (не помню :-). Для всего этого я решил разработать командный язык...&lt;br /&gt;Все это я к тому, что в ходе работы над вышеописанным, пришлось написать функцию-аналог explode в PHP, но с небольшим дополнением. Она умеет также выделять части, обрамленные, например, кавычками.&lt;br /&gt;Например, при пробеле в качестве разделителя  и двойных кавычках в качестве обрамителя, строка:&lt;br /&gt;"This" is a "test string"&lt;br /&gt;будет преобразована в массив строк:&lt;br /&gt;1. This&lt;br /&gt;2. is&lt;br /&gt;3. a&lt;br /&gt;4. test string&lt;br /&gt;&lt;br /&gt;А при попытке использовать строку:&lt;br /&gt;"This"is a"test string"&lt;br /&gt;будует возвращена ошибка, так как после обрамителя обязательно должен быть разделитель.&lt;br /&gt;&lt;br /&gt;После продолжительного вступления предлагаю ознакомиться с кодом &lt;a href="http://dumpz.org/5354/"&gt;http://dumpz.org/5354/&lt;/a&gt;.&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;// Решил разместить исходный код на &lt;a href="http://dumpz.org/"&gt;dumpz.org&lt;/a&gt;, потому что там, в отличие от blogger.com, имеется подсветка синтаксиса.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-5636432782300207315?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/cdFfHWxXmOI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/cdFfHWxXmOI/c.html</link><author>noreply@blogger.com (passshok)</author><thr:total>0</thr:total><feedburner:origLink>http://passshok.blogspot.com/2009/02/c.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-4233271367389144969</guid><pubDate>Tue, 06 Jan 2009 14:07:00 +0000</pubDate><atom:updated>2009-01-07T22:32:30.584+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">wtorrent</category><category domain="http://www.blogger.com/atom/ns#">lighttpd</category><category domain="http://www.blogger.com/atom/ns#">rtorrent</category><title>Установка и настройка wTorrent и lighttpd для работы с rtorrent</title><description>Скорее всего, вы уже пользуетесь torrent-клиентом, и возможно, это rtorrent. Бывает, что сидя на работе, хочется поставить на закачку интересный фильм, а прийдя домой, после трудового дня, посмотреть его с подругой. Если вы один из таких людей, то эта статья для вас. В ней я расскажу как сделать красивый web-интерфейс к консольному клиенту rtorrent. Если пройти все этапы, то все будет работать примерно по такому сценарию.&lt;br /&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;br /&gt;Вы находите файл нужного вам torrent-а. Заходите на вашу домашнюю машину, которая наверняка доступна через &lt;a href="http://dyndns.org/"&gt;dyndns&lt;/a&gt; (если конечно у вас не статический ip адрес с привязкой к собственному домену :) и, пройдя по первой ссылке:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_I4wjZyyQJOU/SWHw2a3Dv1I/AAAAAAAAAK0/fWX5_tvaoVw/s1600-h/downloads_start_page.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img id="BLOGGER_PHOTO_ID_5287772255223529298" alt="" src="http://4.bp.blogspot.com/_I4wjZyyQJOU/SWHw2a3Dv1I/AAAAAAAAAK0/fWX5_tvaoVw/s400/downloads_start_page.png" style="cursor: pointer; width: 400px; height: 253px;" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;попадаете в красивый интерфейс &lt;a href="http://www.wtorrent-project.org/"&gt;wTorrent&lt;/a&gt;, где указываете путь до найденного файла torrent-а:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_I4wjZyyQJOU/SWHw2i1mW2I/AAAAAAAAALE/2D0kpRAFh2Q/s1600-h/wTorrent-add-torrent.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img id="BLOGGER_PHOTO_ID_5287772257364892514" alt="" src="http://4.bp.blogspot.com/_I4wjZyyQJOU/SWHw2i1mW2I/AAAAAAAAALE/2D0kpRAFh2Q/s400/wTorrent-add-torrent.png" style="cursor: pointer; width: 400px; height: 225px;" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;После чего нажимаете кнопку "Загрузить". Когда вы возвращаетесь домой, через некоторое время, вы уже с домашней машины заходите по http на сервер и в списке файлов выбираете и скачиваете нужный вам.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_I4wjZyyQJOU/SWHw2YYQw9I/AAAAAAAAAK8/emeGzzVBX2Y/s1600-h/torrent_downloads.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img id="BLOGGER_PHOTO_ID_5287772254557488082" alt="" src="http://1.bp.blogspot.com/_I4wjZyyQJOU/SWHw2YYQw9I/AAAAAAAAAK8/emeGzzVBX2Y/s400/torrent_downloads.png" style="cursor: pointer; width: 400px; height: 253px;" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Удобно, не правда ли? Поскольку у меня нету samba, я добавляю торренты через web-интерфейс и забираю скачанные файлы через него же по http. Если вам понравился такой вариант, то приступим.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Настройка rtorrent&lt;/span&gt;&lt;br /&gt;Будем считать что rtorrent у вас уже установлен и настроен, а если нет, то не беда. Существует много достаточно подробных руководств по его настройке, например, &lt;a href="http://ru.wikibooks.org/wiki/RTorrent"&gt;викиучебник&lt;/a&gt;. Помимо основных настроек в ~/.rtorrent.rc нужно добавить одну специфическую для того чтобы заработала рассматриваемая связка: rtorrent &lt;-&gt; SCGI (xml-rpc) &lt;-&gt; lighttpd &lt;-&gt; wTorrent.&lt;br /&gt;&lt;pre&gt;scgi_port = localhost:5000&lt;/pre&gt;Эта настройка включит поддержку &lt;a href="http://ru.wikipedia.org/wiki/SCGI"&gt;SCGI&lt;/a&gt; в rtorrent для того чтобы wTorrent обращался к нему через lighttpd.&lt;br /&gt;Напомню, что запускать rtorrent лучше в связке с консольным оконным менеджером screen. Если же вы пользуетесь gentoo linux, то не забудьте собрать пакет net-p2p/rtorrent с USE флагом xmlrpc :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Настройка lighttpd&lt;/span&gt;&lt;br /&gt;Довольно неплохая инструкция по настройке lighttpd, а также apache, для его поклонников, есть в &lt;a href="http://www.wtorrent-project.org/trac/wiki/wTorrentInstall#UsingLighttpd" target="_blank"&gt;wiki на официальном сайте&lt;/a&gt;. Предлагаю сделать как там написано и сравнить с тем что получилось у меня. Вот все незакоментированные строки моего конфига /etc/lighttpd/lighttpd.conf:&lt;br /&gt;&lt;pre&gt;# egrep '^[^#].*' /etc/lighttpd/lighttpd.conf&lt;br /&gt;var.basedir  = "/var/www/passshok.homelinux.net/"&lt;br /&gt;var.logdir   = "/var/log/lighttpd"&lt;br /&gt;var.statedir = "/var/lib/lighttpd"&lt;br /&gt;server.modules = (&lt;br /&gt;"mod_access",&lt;br /&gt;"mod_auth",&lt;br /&gt;"mod_accesslog",&lt;br /&gt;"mod_scgi"&lt;br /&gt;)&lt;br /&gt;include "mime-types.conf"&lt;br /&gt;include "mod_fastcgi.conf"&lt;br /&gt;server.username      = "lighttpd"&lt;br /&gt;server.groupname     = "lighttpd"&lt;br /&gt;server.document-root = var.basedir + "/htdocs"&lt;br /&gt;server.pid-file      = "/var/run/lighttpd.pid"&lt;br /&gt;server.errorlog      = var.logdir  + "/error.log"&lt;br /&gt;server.indexfiles    = ("index.php", "index.html",&lt;br /&gt;                            "index.htm", "default.htm")&lt;br /&gt;server.follow-symlink = "enable"&lt;br /&gt;server.port          = 443&lt;br /&gt;static-file.exclude-extensions = (".php", ".pl", ".cgi", ".fcgi")&lt;br /&gt;accesslog.filename   = var.logdir + "/access.log"&lt;br /&gt;dir-listing.activate      = "enable"&lt;br /&gt;dir-listing.hide-dotfiles = "enable"&lt;br /&gt;dir-listing.encoding = "utf-8"&lt;br /&gt;url.access-deny = ("~", ".inc")&lt;br /&gt;scgi.server = (&lt;br /&gt;"/RPC2" =&gt; # RT_DIR&lt;br /&gt;( "127.0.0.1" =&gt;&lt;br /&gt;(&lt;br /&gt;"host" =&gt; "127.0.0.1", # Ip where rtorrent is listening&lt;br /&gt;"port" =&gt; 5000, # Port specified in .rtorrent.rc&lt;br /&gt;"check-local" =&gt; "disable"&lt;br /&gt;)&lt;br /&gt;)&lt;br /&gt;)&lt;br /&gt;&lt;/pre&gt;Я не стал настраивать авторизацию, так как за скачивание загруженных файлов через интернет я не боюсь, а наоборот, даже не против, а вот авторизация в web-интерфейсе wTorrent как раз ограничивает доступ к нему. Порт я выбрал 443 и без ssl по причине того, что &lt;span style="text-decoration: line-through;"&gt;«заботливый»&lt;/span&gt; провайдер стрим режет трафик на 80 порту. А вот без ssl, т.е. неполноценный https, потому что если включить ssl в настройках lighttpd, то шифрование будет работать для всего сервера, в том числе и для scgi модуля, что противопоказано для wTorrent. Раскопки тикетов на официальном сайте wTorrent показали что он пока что не умеет работать с шифрованием через xml-rpc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Настройка php&lt;/span&gt;&lt;br /&gt;Для того чтобы wTorrent смог работать, необходимо чтобы пакет dev-lang/php был собран с ключами sqlite xmlrpc pdo (если вы работаете в gentoo linux).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Установка и настройка wTorrent&lt;/span&gt;&lt;br /&gt;Ну вот мы и подобрались к установке web-интерфейса, который будет всячески украшать наши порой серые будни :)&lt;br /&gt;&lt;br /&gt;Перемещаемся в корневую директорию, т.е. server.document-root в терминологии lighttpd:&lt;br /&gt;&lt;pre&gt;# cd /var/www/passshok.homelinux.net/htdocs/&lt;/pre&gt;Получаем последнюю версию исходных текстов в директорию wtorrent:&lt;br /&gt;&lt;pre&gt;# svn co svn://wtorrent-project.org/repos/trunk/wtorrent/ wtorrent&lt;/pre&gt;Либо скачиваем zip файл со &lt;a href="http://www.wtorrent-project.org/trac/wiki/wTorrentDownload"&gt;страницы загрузок&lt;/a&gt;. Очень странно, что на момент посещения этой страницы, там был zip архив, причем не с релизом, а с последней версией из репозитория. Так что я решил что лучше взять свежую версию из svn репозитория.&lt;br /&gt;&lt;br /&gt;Идем в директорию со скачанными исходниками:&lt;br /&gt;&lt;pre&gt;# cd /var/www/passshok.homelinux.net/htdocs/wtorrent&lt;/pre&gt;Меняем владельца группы трех директорий на владельца процесса lighttpd для того чтобы php-скрипты, запускаемые на сервере, могли свободно работать с этими директориями и ни в чем себе не отказывать:&lt;br /&gt;&lt;pre&gt;# chown :lighttpd tpl_c/ conf/ db/&lt;/pre&gt;Выставляем права на эти же директории с разрешениями на запись для группы:&lt;br /&gt;&lt;pre&gt;# chmod g+w tpl_c/ conf/ db/&lt;/pre&gt;Подготовка к установке выполнена. Теперь заходим по адресу http://адрес.машины/wtorrent/install.php и видим страницу конфигурации. Приводим настройки примерно к следующим:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_I4wjZyyQJOU/SWNypSnw4JI/AAAAAAAAALU/_Qfo__DCDCg/s1600-h/wTorrent-install.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 234px;" src="http://3.bp.blogspot.com/_I4wjZyyQJOU/SWNypSnw4JI/AAAAAAAAALU/_Qfo__DCDCg/s400/wTorrent-install.png" alt="" id="BLOGGER_PHOTO_ID_5288196441161916562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"Folder to save uploaded torrents" - означает директорию, куда будут сохраняться загруженные &lt;strong&gt;файлы&lt;/strong&gt;, а не файлы торрентов, как можно подумать.&lt;br /&gt;"Folder where wTorrent is" - это путь до корневой директории wTorrent с исходниками.&lt;br /&gt;"Default folder to save torrent data" - путь до директории где будут храниться torrent-файлы.&lt;br /&gt;Наверное, переводчик немного перепутил описание первого и третьего параметров.&lt;br /&gt;&lt;br /&gt;В поля user и password вводим логин и пароль администратора, после чего нажимаем "Try configuration", если все прошло удачно, то нажимаем "Save configuration". Если же возникли ошибки о том что не хватает прав для записи в какую-то директорию и т.п., то исправляем. Если каке-то другие, то проверяем правильно ли был собран php.&lt;br /&gt;&lt;br /&gt;В случае успешного сохранения конфигурации, ее можно просмотреть:&lt;br /&gt;&lt;pre&gt;# cat /var/www/passshok.homelinux.net/htdocs/wtorrent/conf/user.conf.php&lt;/pre&gt;Если все нормально, то необходимо удалить файл install.php во избежание возникновения неприятных инцедентов:&lt;br /&gt;&lt;pre&gt;# rm /var/www/passshok.homelinux.net/htdocs/wtorrent/install.php&lt;/pre&gt;Теперь необязательная часть, но являющаяяся частью замысла :) Вы наверняка заметили что все файлы, необходимые для работы rtorrent, хранятся вне директории htdocs, куда установленн wTorrent. Так получилось по историческим причинам, да и мне кажется, что в директории htdocs должны лежать только сиходники web-интерфейса, а никак не файлы с данными. Так вот чтобы иметь возможность видеть по http загруженные торрент-клиентом файлы, добавим символическую ссылку по имени torrent-downloads:&lt;br /&gt;&lt;pre&gt;# ln -s /home/docs/torrents/downloads/ torrent-downloads&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Последние штрихи&lt;/span&gt;&lt;br /&gt;Заключительным шагом, для полноты картины, создадим небольшой файлик в директории htdocs с примерно следующим содержимым:&lt;br /&gt;&lt;pre&gt;# cat /var/www/passshok.homelinux.net/htdocs/index.html&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;link rel="stylesheet" type="text/css" href="style.css" /&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;h1&amp;gt;acer1683 / passshok.homelinux.net&amp;lt;/h1&amp;gt;&lt;br /&gt;&amp;lt;ul&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&amp;lt;a href="wtorrent"&amp;gt;Web-интерфейс к rtorrent&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&amp;lt;a href="torrent-downloads"&amp;gt;Файлы загруженные через rtorrent&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Теперь можно зайти по адресу http://адрес.машины/ (в моем случае это http://passshok.homelinux.net:443/ из WAN и http://acer1683:443/ или http://192.168.1.20:443/ из LAN ) и насладиться полученным результатом.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;Обновление от 7 января 2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Если возникли трудности&lt;/span&gt;&lt;br /&gt;Благодаря отзывчивым читателям, были собраны некоторые часто встречающиеся проблемы и их решения.&lt;br /&gt;&lt;br /&gt;При попытке загрузки torrent-файла появляется ошибка, которая связана с тем что скрипт пытается сохранить файл не по абсолютному пути, указанному в настройках, а относительно домашней директории wTorrent. Проблема решается правкой трех строк в исходниках. «&lt;span style="font-style: italic;"&gt;... нашёл солюшн, почему оно не хотело нормально аплоадить файлы.&lt;br /&gt;какой-то умник в wtorrent/wt/cls/AddT.cls.php вместо просто DIR_TORRENTS написал DIR_EXEC . DIR_TORRENTS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;итого к абсолютно указанному пути в начале прибавлялся путь до wtorrent:&lt;br /&gt;&lt;pre&gt;Jan 6 01:25:23 storage php-cgi: PHP Warning: fopen(/srv/htdocs/wtorrent//storage/torrents/finished/a0c0e99025f4e68746d77263474f0cc511e625ac3491f27fab540bed1ccbdeab3e6f5b63.torrent) [&amp;lt;a href="http://www.blogger.com/%27function.fopen%27"&amp;gt;function.fopen&amp;lt;/a&amp;gt;]: failed to open stream: No such file or directory in /srv/htdocs/wtorrent/wt/cls/AddT.cls.php on line 64&lt;/pre&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;просто меняем DIR_EXEC . DIR_TORRENTS на DIR_TORRENTS.&lt;/span&gt;»&lt;br /&gt;&lt;a href="http://juick.com/92683"&gt;Спасибо freefd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;При попытке загрузки torrent-файла появляется ошибка, которая связана с тем что скрипт пытается сохранить файл в директорию, которая не описана в параметре open_basedir в php.ini, а опция open_basedir при этом не пустая. Т.е. для того чтобы заработало, нужно либо чтобы она была пустая, либо чтобы в ней был указан путь до директории, куда сохраняются файлы (DIR_TORRENTS и DIR_DOWNLOAD). При этом ошибка выглядит так:&lt;br /&gt;&lt;pre&gt;Jan 6 01:25:23 storage php-cgi: PHP Warning: curl_setopt() [&amp;lt;a href="http://www.blogger.com/%27function.curl-setopt%27"&amp;gt;function.curl-setopt&amp;lt;/a&amp;gt;]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in /srv/htdocs/wtorrent/wt/cls/AddT.cls.php on line 88&lt;/pre&gt;И опять же &lt;a href="http://juick.com/92723"&gt;спасибо freefd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;В заключение приведу несколько ссылок на похожие статьи:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://librarian.spb.ru/page/ustanovka-i-nastroyka-wtorrent"&gt;http://librarian.spb.ru/page/ustanovka-i-nastroyka-wtorrent&lt;/a&gt; на основе apache и в debian&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.permlug.org/node/3941/"&gt;http://www.permlug.org/node/3941/&lt;/a&gt; тут все собирают из исходников :)&lt;/li&gt;&lt;li&gt;&lt;a href="http://webraider.ya.ru/replies.xml?item_no=1929&amp;amp;ncrnd=9389"&gt;http://webraider.ya.ru/replies.xml?item_no=1929&amp;amp;ncrnd=9389&lt;/a&gt; тут описано как создать init скрипт для gentoo linux для rtorrent&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.it4it.ru/index.php/2008/11/09/sravnenie-torrent-kachalok-3/"&gt;http://www.it4it.ru/index.php/2008/11/09/sravnenie-torrent-kachalok-3/&lt;/a&gt; неплохой обзор wTorrent со скринами&lt;/li&gt;&lt;/ul&gt;// Все что тут сделано еще называется &lt;a href="http://unatine.ru/2008/01/27/chto-takoe-seedbox/"&gt;seedbox&lt;/a&gt;, сам только недавно узнал :)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-4233271367389144969?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/ii3K6m4nayI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/ii3K6m4nayI/wtorrent-lighttpd-rtorrent.html</link><author>noreply@blogger.com (passshok)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_I4wjZyyQJOU/SWHw2a3Dv1I/AAAAAAAAAK0/fWX5_tvaoVw/s72-c/downloads_start_page.png" height="72" width="72" /><thr:total>7</thr:total><feedburner:origLink>http://passshok.blogspot.com/2009/01/wtorrent-lighttpd-rtorrent.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-8986118599084601913</guid><pubDate>Tue, 16 Dec 2008 21:00:00 +0000</pubDate><atom:updated>2008-12-18T00:51:07.608+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">asus eeepc 1000h</category><category domain="http://www.blogger.com/atom/ns#">VirtualBox</category><category domain="http://www.blogger.com/atom/ns#">OpenSolaris</category><category domain="http://www.blogger.com/atom/ns#">ubuntu</category><title>VirtualBox и OpenSolaris 2008.11</title><description>&lt;span style="font-size:130%;"&gt;Установка VirtualBox&lt;/span&gt;&lt;br /&gt;Несколько дней назад захотелось мне установить OpenSolaris. Конечно свободного компьютера у меня для этого нету, поэтому решил установить ее в виртуальную машину. Моей любимоей является VirtualBox. В ней в свое вермя  была установлена M$ Win для институтских нужд, но давно я ее не использовал.&lt;br /&gt;Запускаю VirtualBox  (была установлена версия из репозитория ubuntu 8.04 hardy), а она говорит, что не может запуститься потому что нету модуля ядра vboxdrv. Смотрю почему нету, ведь раньше работало и модуль был. Оказывается с тех пор я поменял ядро с предоставляемого репозиториями ubuntu, на ядро из репозитория array.org, собранное специально для asus eee pc 1000h, владельцем которого я являюсь.&lt;br /&gt;Получается интересная ситуация. Для того чтобы запустить виртуальную машину нужно установить пакет с модулем ядра. Модуль ядра можно установить только с самим ядром. А ядро у меня уже установлено другое.&lt;br /&gt;В итоге, поискав, принял такое решение: установить &lt;a href="http://www.virtualbox.org/wiki/Linux_Downloads"&gt;бинарные сборки с официального сайта VirtualBox&lt;/a&gt;. При таком раскладе не нужно отдельно устанавливать модуль, так как, видимо, в комплекте есть варианты под все версии ядра.&lt;br /&gt;После запуска новой 2.0 версии, программа предложила сконвертировать образы виртуальных машин в новый формат, который не является обратно совместимым с предыдующими версиями. Я согласился.&lt;br /&gt;В итоге, все заработало как и ожидалось. Нарекание вызвал "режим интеграции дисплея". Это режим, при котором в вашу текущаю рабочую среду встраивается панель задач гостевой системы, а все приложения, запущенные в ней, выглядят как обычные окна. Так вот этот режим у меня не заработал. Возможно это вызвано тем, что я не установл новые guest additions (гостевые дополнения).&lt;br /&gt;В завершение, приведу несколько скриншотов.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_I4wjZyyQJOU/SUdOVDfZwoI/AAAAAAAAAKI/DuqfZaqsd0o/s1600-h/VirtualBox+2.0_2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 396px; height: 245px;" src="http://3.bp.blogspot.com/_I4wjZyyQJOU/SUdOVDfZwoI/AAAAAAAAAKI/DuqfZaqsd0o/s400/VirtualBox+2.0_2.png" alt="" id="BLOGGER_PHOTO_ID_5280275211736433282" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;Главное окно VirtualBox 2.0 с двумя виртуальными машинами.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_I4wjZyyQJOU/SUdPKch1wuI/AAAAAAAAAKQ/6yVuXsHzB_U/s1600-h/VirtualBox+2.0_1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 254px;" src="http://4.bp.blogspot.com/_I4wjZyyQJOU/SUdPKch1wuI/AAAAAAAAAKQ/6yVuXsHzB_U/s400/VirtualBox+2.0_1.png" alt="" id="BLOGGER_PHOTO_ID_5280276128990610146" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;Продукт M$ в виртуальной машине и то чем заставляли пользоваться в институте.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;Обновление от 17 дек 2008&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Режим интеграции дисплея заработал после отключения compiz.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;OpenSolaris 2008.11&lt;/span&gt;&lt;br /&gt;После настройки VirtualBox занялся установкой OpenSolaris в виртуальную машину. Скачал &lt;a href="http://opensolaris.org/os/downloads/"&gt;образ с официального сайта&lt;/a&gt;. Выделил 512 MB оперативной памяти под это дело. Запустил.&lt;br /&gt;LiveCD запустился нормально, но язык ввода (раскладку) после загрузки изменить было нельзя, не смотря на то, что апплет в трее показывал его переключение, реально его не происходило :-) Запустил установщик. Пришлось вводить логин, пароль и имя машины на русском. Возможно это был глюк конкретно моей установки. Прошел все стадии подготовки, ответив на все вопросы установщика, после чего на 1-2% процесса, установка остановилась со следующим сообщением:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_I4wjZyyQJOU/SUd54DnDQXI/AAAAAAAAAKY/SGUNEhYWYmo/s1600-h/OpenSolaris.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 234px;" src="http://1.bp.blogspot.com/_I4wjZyyQJOU/SUd54DnDQXI/AAAAAAAAAKY/SGUNEhYWYmo/s400/OpenSolaris.png" alt="" id="BLOGGER_PHOTO_ID_5280323092063928690" border="0" /&gt;&lt;/a&gt;Немного поискав в интернете, нашел одно упоминание об этой ошибке и понял что это баг. На этом мой энтузиазм угас. Очень странно что продукты одного производителя, а именно SUN, несовместимы. SUNтехники, что с них взять :-)&lt;br /&gt;Вобщем, пусть исправляются. Может в далеком будущем попробую повторить этот процесс еще раз.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-8986118599084601913?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/u_0TC91kuhA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/u_0TC91kuhA/logrotate.html</link><author>noreply@blogger.com (passshok)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_I4wjZyyQJOU/SUdOVDfZwoI/AAAAAAAAAKI/DuqfZaqsd0o/s72-c/VirtualBox+2.0_2.png" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://passshok.blogspot.com/2008/12/logrotate.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-5878375625958106278</guid><pubDate>Fri, 14 Nov 2008 21:00:00 +0000</pubDate><atom:updated>2008-12-06T21:43:08.052+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">asus eeepc 1000h</category><category domain="http://www.blogger.com/atom/ns#">ubuntu</category><title>Ubuntu 8.04 hardy на Asus eeepc 1000h</title><description>В начале сентября я стал счастливым обладателем субноутбука Asus eeepc 1000h. Стал им не сразу. Купив модель asus eeepc 900 и поработав с ней два дня, я понял что шум, издаваемый вентилятором, невыносим при работе в тихом помещении. Поверьте, жужжал он не то чтобы ужасно, но на уши давило. Также во всех моделях этой серии есть недоработка, касающаяся саморазряда аккумулятора при выключенном ноутбуке. Как выяснилось позднее, при чтении форумов, даже при выключенном питании, какой-то компонент все-таки потребляет питание этого субноутбука.&lt;br /&gt;Дело происходило в магазине TFK компьютерс, на горбушкином дворе. По моему требованию деньги мне за него не вернули, так как считали шумы и саморазряд в порядке вещей. Наконец, с доплатой я приобрел модель о которой далее пойдет речь.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Установка Ubuntu&lt;/span&gt;&lt;br /&gt;Первым делом, я снес предустановленную ОС (сами догадайтесь какую). Но перед сносом скопировал файлы установленного драйвера беспроводной сетевой карты для того чтобы потом их использовать с ndiswrapper.&lt;br /&gt;Я выбрал сборку Ubuntu адаптированную для eeepc. Устанавливал по &lt;a style="" href="http://www.ubuntu-eee.com/wiki/index.php5?title=Get_Ubuntu_Eee/ru"&gt;инструкции&lt;/a&gt;. Честно говоря, так и не понял, чем эта сборка отличается от обычного ubuntu 8.04.&lt;br /&gt;После установки не заработала ни проводная, ни беспроводная сеть. Не работал встроенный стерео микрофон не передней панели. После выхода из ждущего режима (сброс в RAM), подсветка экрана включалась на полную яркость и не поддавалась регулировке до перезапуска системы. Не работала встроенная web-камера. Возможно были еще глюки, о которых я уже не помню.&lt;br /&gt;После двух с половиной месяцев использования в таком режиме мне это надоело и я решил настроить систему, чтобы все оборудование работало как положено. Поискав в интернете я нашел решение своей проблемы.&lt;br /&gt;По адресу &lt;a style="" href="http://array.org/ubuntu/"&gt;http://array.org/ubuntu/&lt;/a&gt; находится репозиторий debian со специально заточенным ядром и модулями под оборудование eeepc.&lt;span style="font-weight: bold;"&gt; Выражаю величайшую благодарность человеку, который сделал это!&lt;/span&gt; Без него тянулось бы все это еще года два, пока не включили бы все патчи для eeepc в официальное ядро.&lt;br /&gt;Исчерпывающие инструкции по подключению репозитория и установке ядра с модулями для ubuntu 8.04 hardy есть на странице &lt;a style="" href="http://array.org/ubuntu/setup-hardy.html"&gt;http://array.org/ubuntu/setup-hardy.html&lt;/a&gt;. После установки ядра и модулей в /proc появились следующие файлы:&lt;pre&gt;$ ls /proc/acpi/asus/&lt;br /&gt;brn  bt  camera  cardr  cpufv  disp  hdps  init  wlan&lt;/pre&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Настройка горячих клавиш&lt;/span&gt;&lt;br /&gt;И все бы хорошо, но теперь не работали расширенные клавиши клавиатуры Fn+F1, ..., Fn+F12. Для решения этой проблемы я нашел &lt;a style="" href="http://forum.eeeuser.com/viewtopic.php?id=39341"&gt;набор скриптов&lt;/a&gt;, разработанный еще одним замечательным человеком (спасибо ему огоромное), который чинит работу этих самых клавиш. По указанной ссылке нужно выполнить только вторую часть второго пункта, так как ядро уже установлено. Т.о. выполняем следующее:&lt;br /&gt;&lt;pre&gt;tar xfvz Ubuntu_ACPI_scripts-EeePC_900A_901_1000.tar.gz&lt;br /&gt;cd Ubuntu_ACPI_scripts-EeePC_900A_901_1000/&lt;br /&gt;chmod +x install.sh&lt;br /&gt;sudo ./install.sh&lt;/pre&gt;Если все заработало, то можно насладиться работой расширенных клавиш. У меня же не заработали клавиши Fn+F11 и Fn+F12, которые отвечают за регулировку уровня громкости звука. Покопавшись в исходниках, в файле /etc/acpi/eeepc-actions.sh я нашел пару инструкций. Заменяем строки:&lt;pre&gt;00000013)&lt;br /&gt;acpi_fakekey $KEY_MUTE&lt;br /&gt;# If acpi_fakekey doesn`t work:&lt;br /&gt;# amixer set Master toggle&lt;br /&gt;;;&lt;br /&gt;# 901: Fn+F8 - 1000: Fn+F11&lt;br /&gt;# Volume down&lt;br /&gt;00000014)&lt;br /&gt;acpi_fakekey $KEY_VOLUMEDOWN&lt;br /&gt;# If acpi_fakekey doesn`t work:&lt;br /&gt;# amixer set Master 10%-&lt;br /&gt;;;&lt;br /&gt;&lt;/pre&gt;на&lt;pre&gt;00000013)&lt;br /&gt;# acpi_fakekey $KEY_MUTE&lt;br /&gt;# If acpi_fakekey doesn`t work:&lt;br /&gt;amixer set Master toggle&lt;br /&gt;;;&lt;br /&gt;# 901: Fn+F8 - 1000: Fn+F11&lt;br /&gt;# Volume down&lt;br /&gt;00000014)&lt;br /&gt;# acpi_fakekey $KEY_VOLUMEDOWN&lt;br /&gt;# If acpi_fakekey doesn`t work:&lt;br /&gt;amixer set Master 10%-&lt;br /&gt;;;&lt;/pre&gt;После этого окошко регулировки уже не появляется, зато уровень звука регулируется и работает как надо.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Фотографии&lt;/span&gt;&lt;br /&gt;Снятая задняя панель:&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a style="" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_I4wjZyyQJOU/SR11By-xwJI/AAAAAAAAAJw/j3sd72qHgk0/s1600-h/26102008168.jpg"&gt;&lt;img style="cursor: pointer; width: 266px; height: 199px;" src="http://4.bp.blogspot.com/_I4wjZyyQJOU/SR11By-xwJI/AAAAAAAAAJw/j3sd72qHgk0/s400/26102008168.jpg" alt="задняя панель asus eeepc 1000h" id="BLOGGER_PHOTO_ID_5268495812818747538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Жесткий диск:&lt;br /&gt;&lt;a style="" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_I4wjZyyQJOU/SR12IxLj9zI/AAAAAAAAAJ4/2Q3g9G4H0Pc/s1600-h/26102008167.jpg"&gt;&lt;img style="cursor: pointer; width: 266px; height: 199px;" src="http://2.bp.blogspot.com/_I4wjZyyQJOU/SR12IxLj9zI/AAAAAAAAAJ4/2Q3g9G4H0Pc/s400/26102008167.jpg" alt="жесткий диск asus eeepc 1000h" id="BLOGGER_PHOTO_ID_5268497032106211122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Оперативная память:&lt;br /&gt;&lt;a style="" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_I4wjZyyQJOU/SR14bEjMEII/AAAAAAAAAKA/FgaE9ScZtdU/s1600-h/26102008166.jpg"&gt;&lt;img style="cursor: pointer; width: 266px; height: 199px;" src="http://4.bp.blogspot.com/_I4wjZyyQJOU/SR14bEjMEII/AAAAAAAAAKA/FgaE9ScZtdU/s400/26102008166.jpg" alt="оперативная память asus ram eeepc 1000h" id="BLOGGER_PHOTO_ID_5268499545566482562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Послесловие&lt;/span&gt;&lt;br /&gt;В заключение хочу сказать что доволен таким положением дел. Качеством изготовления аппаратной части eeepc я доволен, хотя, на мой взгляд, вентилятор у этой модели работает не слишком тихо. Плавноть хода клавиш клавиатуры также оставляет желать лучшего, но работать с клавиатурой приятно, а набирать большие тексты и печатать вслепую достаточно удобно по сравнению с asus eeepc 900.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-5878375625958106278?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/TNqEN_LnoGA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/TNqEN_LnoGA/ubuntu-804-hardy-asus-eeepc-1000h.html</link><author>noreply@blogger.com (passshok)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_I4wjZyyQJOU/SR11By-xwJI/AAAAAAAAAJw/j3sd72qHgk0/s72-c/26102008168.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://passshok.blogspot.com/2008/11/ubuntu-804-hardy-asus-eeepc-1000h.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-5486353946577059129</guid><pubDate>Sun, 19 Oct 2008 13:40:00 +0000</pubDate><atom:updated>2009-07-27T21:23:19.529+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">свободное ПО</category><category domain="http://www.blogger.com/atom/ns#">mcabber</category><title>mcabber - консольный jabber клиент</title><description>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_I4wjZyyQJOU/SPpWI0cOVRI/AAAAAAAAAIs/61Jv2QUqx3I/s1600-h/Screenshot-passshok%40asus1000h:+%7E.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_I4wjZyyQJOU/SPpWI0cOVRI/AAAAAAAAAIs/61Jv2QUqx3I/s400/Screenshot-passshok%40asus1000h:+%7E.png" alt="" id="BLOGGER_PHOTO_ID_5258610224424441106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Mcabber - это &lt;a href="http://www.blogger.com/www.lilotux.net/%7Emikael/mcabber/"&gt;консольный jabber клиент&lt;/a&gt;, работающий под linux/unix подобными системами, который позволяет обмениваться мгновенными сообщениями, участвовать в многопользовательском чате (конференции). Он также имеет возможности, которые присущи современным программам обмена мгновенными сообщениями: шифрование соединения SSL, ведение истории переписки, уведомление о статусе участников и еще много чего.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Интерфейс&lt;/span&gt;&lt;br /&gt;Интерфейс этого клента может показаться не совсем обычным и, по началу, даже неудобным, но на самом деле это не так. Весь интерфейс состоит их одного окна, поделенного (как видно на снимке экрана) на 4 части: окно со списком контактов (слева), окно для сообщений (справа), окно лога (снизу) и командная строка (в самом низу). Перемещаться вверх и вниз по списку контактов можно клавишами PgUp и PgDn, перейти в режим чата с выделенным контактом можно нажатием клаиши Enter, а выйти - Esc. Прокрутка окна чата по умолчанию назначена на клавиши Ctrl+p и Ctrl+n. Но самое интересное - это командная строка. Дело в том, что в mcabber, в отличие от других IM-программ, практически все действия призводятся не через горячие клавиши, а через командную строку. Конечно же можно назначать действия на клавиши, но это уже дело вкуса. Возвращаясь к командной строке, можно отметить, что при вводе команд работает автодополнение, подобное тому, что реализовано в популярных командных интерпретаторах типа bash и zsh. Сами команды я не буду описывать, так как и подробное описание можно прочтать в man-страницах.&lt;br /&gt;Обо всем этом можно прочитать намного подробнее и даже по русски на &lt;a href="http://wiki.mcabber.com/index.php/RU_Main_Page"&gt;официальном wiki&lt;/a&gt;, а я расскажу об одной из интересных особенностей этого jabber-клиента, которая выделяет его среди прочих консольных клиентов.&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;Триггеры&lt;/span&gt;&lt;br /&gt;Речь пойдет о возможности реагировать на происходящие события (входящее сообщение, изменение статуса и т.д.) и запускать пользовательскую программу-обработчик. В официальной документации эта возможность назвается триггерами.&lt;br /&gt;В конфигурационном файле есть раздел "External command for events", в котором есть подробные комментарии, которых достаточно для того чтобы в общих чертах разобраться с этой возможностью. В этом разделе есть три опции, которые позволяют задействовать рассматриваемую возможность. Их нужно установить следующим образом:&lt;br /&gt;&lt;pre&gt;set events_command = ~/bin/mcabber-notify.sh&lt;br /&gt;set event_log_files = 1&lt;br /&gt;set event_log_dir = ~/.mcabber/event_files&lt;/pre&gt;&lt;br /&gt;Здесь опция events_command - это путь до программы-обработчика, которая будет принимать в виде аргументов параметры события (о них чуть позже); включенная event_log_files - сохранение текст входящего сообщения на диск, что дает возможность обработать его; event_log_dir - устанавливает путь на диске до директории, в которой будут сохраняться те самые, тексты входящих сообщений.&lt;br /&gt;С учетом этих опций процесс будет выглядеть следующим образом:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;mcabber получает новое сообщение;&lt;/li&gt;&lt;li&gt;текст принятого сообщения сохраняется на диске по указанному в опции &lt;span style="font-family:courier new;"&gt;event_log_dir &lt;/span&gt;пути;&lt;/li&gt;&lt;li&gt;запускается программа обработчик, указанная в &lt;span style="font-family:courier new;"&gt;events_command.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;В качестве параметров командной строки программе передаются по порядку:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Код произошедшего события: MSG - получено сообщение, STATUS - смена статуса собеседника, UNREAD - имеются непрочитанные сообщения.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Уточняющий код. Для MSG: IN - входящее сообщение, MUC - сообщение чата, OUT - исходящее сообщение.  Для UNREAD - количество собеседников с непрочитанными сообщениями.&lt;/li&gt;&lt;li&gt;Для входящего и исходящего сообщения (MSG) этот параметр принимает адрес собеседника, а для сообщений чата (MUC) - название комнаты. При изменении в статусе (STATUS) - это первая буква нового статуса собеседника (_ - offline, O - online, I - invisible, F - , D - dnd, N - na, A - away).&lt;/li&gt;&lt;li&gt;Путь до файла на диске в директории, указанной в опции event_log_dir, в котором находится текст полученного сообщения (только для входящих сообщений).&lt;/li&gt;&lt;/ol&gt;Примеры программ-обработчиков можно найти в архиве mcabber, в директории contrib/events. Там содержатся интересные примеры, которые позволяют: показывать &lt;a href="http://www.ignavus.net/software.html"&gt;текст поверх экрана&lt;/a&gt;, проигрывать звук при получении входящего сообщения, использовать API &lt;a href="http://tinyurl.com/"&gt;сервиса для сокращения url&lt;/a&gt; и еще много чего интересного.&lt;br /&gt;Важным замечанием является то, что файлы с текстом входящих сообщений должен удалять сам пользователь, т.е. нужно позаботиться об этом в программе-обработчике.&lt;br /&gt;После всего вышесказанного можно перейти к более  конкретному примеру скрипта, которым я пользуюсь для удовлетворения своих скромных нужд :-)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;event="$1"&lt;br /&gt;arg1="$2"&lt;br /&gt;jid="$3"&lt;br /&gt;msg_file="$4"&lt;br /&gt;web_browser="firefox"&lt;br /&gt;&lt;br /&gt;# Проверка того, стоит ли удалять файл, переданный&lt;br /&gt;# четвертым параметром :-)&lt;br /&gt;del=$(echo "$msg_file" | grep -c 'mcabber-')&lt;br /&gt;[ "$del" -eq 1 ] &amp;amp;&amp;amp; trap "rm $msg_file" 0 1 2 3 6 9 14 15&lt;br /&gt;&lt;br /&gt;# Если пришло входящее сообщение&lt;br /&gt;if [ "$event" = "MSG" -a "$arg1" == "IN" ]; then&lt;br /&gt;&lt;br /&gt;# Воспроизводим звук&lt;br /&gt;# ...&lt;br /&gt;&lt;br /&gt;# Сигнализируем о том, что было получено новое сообщение&lt;br /&gt;(echo "mcabber: message from $jid"; sleep 5) | dzen2 &amp;amp;&lt;br /&gt;&lt;br /&gt;# Ищем url в полученном сообщении и открываем в&lt;br /&gt;# web-обозревателе&lt;br /&gt;if [ -f "$msg_file" -a -r "$msg_file" ]; then&lt;br /&gt;cat $msg_file | grep -E -o '(http|https|ftp)\://([a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})(:[a-zA-Z0-9]*)?/?([а-яА-Яa-zA-Z0-9\._\?\,\\x27/\\\+&amp;amp;%\$#\=~!\-])*' | \&lt;br /&gt;while read url; do&lt;br /&gt;  (sleep 1 &amp;amp;&amp;amp; $web_browser $url) &amp;amp;&lt;br /&gt;done&lt;br /&gt;fi&lt;br /&gt;fi&lt;/pre&gt;&lt;br /&gt;Отличительной особенностью данного скрипта является то, что он автоматически открывает url, полученные в тексте сообщения в новой вкладке web-обозревателя. Сделано это было потому, что порой url бывают очень длинными и копировать их приходилось в несколько приемов, в зависимости от того, на сколько строк переносился url в окне терминала. Кроме того, скрипт не забывает после завершения удалить временный файл с текстом сообщения из директории, указанной в параметре event_log_dir.&lt;br /&gt;&lt;br /&gt;В завершение темы, можно посмотреть на &lt;a href="http://www.centerim.org/"&gt;консольный многопротокольный клиент CenterIM&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;Обновление от 27 июля 2009&lt;/span&gt;&lt;br /&gt;Roman Belikin подсказал как можно &lt;a href="http://juick.com/analizer/181732"&gt;расширить функционал mcabber&lt;/a&gt; так, чтобы он мог по команде /open открывать последние ссылки из окна переписки в WEB-обозревателе.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-5486353946577059129?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/6-TEjNC8coE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/6-TEjNC8coE/mcabber-jabber.html</link><author>noreply@blogger.com (passshok)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_I4wjZyyQJOU/SPpWI0cOVRI/AAAAAAAAAIs/61Jv2QUqx3I/s72-c/Screenshot-passshok%40asus1000h:+%7E.png" height="72" width="72" /><thr:total>19</thr:total><feedburner:origLink>http://passshok.blogspot.com/2008/10/mcabber-jabber.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-6178813377050656049</guid><pubDate>Mon, 13 Aug 2007 17:19:00 +0000</pubDate><atom:updated>2008-12-06T22:04:38.756+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">программирование</category><category domain="http://www.blogger.com/atom/ns#">переводы</category><title>Руководство по найму программистов: высокая цена низкого качества</title><description>Я был приглашен на замечательный обед с некоторыми людьми из St. Louis на этой неделе пока находился здесь по делам. Мы разговаривали о найме программистов, а особенно, о Perl программистах.&lt;br /&gt;Мы согласились со следующим:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Тяжело найти любого программиста. Хороший программист может быть также эффективен, как 5-10 средних программистов.&lt;/li&gt;&lt;li&gt;Средняя заработная плата программистов одинакового класса не регламентирована и больше зависит от языка, который он использует, нежели от его опыта.&lt;/li&gt;&lt;li&gt;Вам не обязатеольно нанимать профессионала в языке X, скорее вы должны искать профессиональных программистов, которые готовы освоить язык X. Профессионал может легко повысить свой уровень знаний за несколько недель.&lt;/li&gt;&lt;li&gt;Вы не должны запрещать вашим профессиональным разработникам общаться удаленно на протяжении всего времени. Ограничиваясь поиском программистов, проживающих в вашей местности, либо готовых переехать, вы теряете талант, который вы могли бы приобрести. Аргументы касательно "очного общения", производительности и т.д. могут оказаться бессмысленными, когда вы увидите как некоторые большие и успешные Open Source проекты, такие как: Linux, Apache и Firefox, поддерживаются людьми, проживающими в одной часовой зоне или в одной стране.&lt;/li&gt;&lt;li&gt;Мы любим Perl и считаем, что он великолепно подходит для перехода на него после того как вы вынуждены были использовать не гибкие языки, такие как Java, C/C++/C# и др. Совершенно не важно, каков был первый язык, с которого вы начинали, и затем перебрались на "серьезный" язык.&lt;/li&gt;&lt;/ul&gt;Много людей из сообщества Perl отвечали на эту заметку и хотели разделить мое мнение по данному вопросу, в размышлениях над которым, я провел много часов. Я постарался не акцентировать внимание на конкретном языке, так как перечисленные утверждения верны для любого языка программирования. Как бы там ни было, я буду использовать Perl в некоторых примерах, так как это мой любимый язык.&lt;br /&gt;&lt;h2&gt;&lt;/h2&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span&gt;&lt;span&gt;Почему так тяжело найти хороших программистов?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Самая простая причина заключается в том, что когда компания находит разработчика, она делает многое, чтобы быть уверенным, что сотруднику нравится работа. Такой подход растягивае время его пребывания в компании. Хорошая заработная плата, гибкие условия работы, хорошие инструменты, интересные проекты и лучшие стимулы обычно могут сохранить вам программиста гораздо дольше.&lt;br /&gt;Еще одна очевидная причина заключается в том, что профессионалов в любой области мало, и возможно что вы исчерпали свой лимит талантов. Такая ситуация вынуждает менеджеров и отдел по управлению кадрами нанимать программистов со средним или ниже уровнем знаний. Я также считаю, что самой большой ошибкой, которую могут сделать компании, ориентированные на работу с технологиями, является отсутствие хорошей &lt;a href="http://subversion.tigris.org/"&gt;системы контроля версий&lt;/a&gt;.&lt;br /&gt;Здесь мы не говорим об отделе по работе с клиентами или об отделе продаж. Для компании не всегда является выигрышным попросту заполнить свободное рабочее место кем-либо. Неопытные программисты снижают эффективность других разработников, задавая глупые вопросы, плохо комментируя код и неумело его документируя, создавая код, который кто-то потом будет вынужден переписывать.&lt;br /&gt;Компании не должны думать о своих разработчиках как о железных частях работающего механизма. Они больше сродне артистам, авторам, дизайнерам, архитекторам, ученым или исполнительным директорам. Бросится ли ваш отдел по управлению кадрами искать первого попавшегося, кто претендует на роль главного ученого, художественного редактора, исполнительного директора? Конечно же нет, они проведут много времени в поисках талантливых кандидатов, оценят их, а затем обеспечат их соответствующе. Они осознают, что гораздо хуже иметь неправильного человека, чем не иметь никого. Соверженно такая же ситуация и с программистами.&lt;br /&gt;Каждый, кто был разработчиком или руководил разработчиками, скажет вам, что профессионал может сделать столько же, сколько 10 средних разработчиков. Тем не менее, компании обычно платят премии профессиионалам только в размере 10-20% по сравнению со средними программистами. Так или иначе их звания звучат как лидер, архитектор, менеджер по разработке, гуру или другое название в соответствии с номенклатурой предприятия. Я не говорю о том, что если ваш средний разработчик получает $50000 в год, то вы должны платить профессионалу $500000. Взаимоотношения между работодателями и служащими никогда не строились по такому принципу, но работодатели никак не могут осознать, что в конеце концов затраты окупают себя.&lt;br /&gt;Давайте посмотрим на пример. Один из аргументов отдела по работе с кадрами звучит так: "мы не можем найти ни одного perl программиста, куда не сунься, одни java-программисты". Пока это так, они подходят к проблеме не с той стороны. Если вы наймете 15 средних java-программистов со средней заработной платой $60000 в год, то будете платить в год в среднем $900000 вашим работникам, не учитывая выплат, не относящихся к заработной плате.&lt;br /&gt;Предположим, вы решили потратить время, чтобы найти 5 (или около того) профессиональных, perl разработчиков за $120000 в год. Ниже находится примерный список преимуществ и недостатков такого сценария:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Недостатки:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Вы должны потратить дополнительное время для поиска, оценки, и налаживания связей с найденными разработчиками.&lt;/li&gt;&lt;li&gt;Ваша компания, а также то, чего вы требуете могут быть не интересны для программиста такого класса. Немного людей захочет работать на спамеров или маленькую студию web-дизайна, которая исключительно обеспечивает свое существование. Творческие люди находят скучную работу еще более скучной, чем все остальные.&lt;/li&gt;&lt;li&gt;Когда один из таких людей покидает компанию, создается впечатление, что бизнес вашей компании находится под большей угрозой, чем если бы вы имели 4/5 ваших обычных ресурсов. Кажется, что только что вы потеряли большой кусок знаний компании. Хорошие разработчики пишут код, который легко читать и поддерживать, комментируя свою работу и создавая эффективную документацию.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Преимущества:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Каждый разработчик будет более удовлетворен своей работой не только если его заработная плата будет больше чем средняя, но и если его коллеги будут более компетентны, что дает каждому удовлетворение от работы.&lt;/li&gt;&lt;li&gt;Разработка требует меньше суммарных коммуникаций, когда в ней принимает участие меньше разработчиков. Это заметно повышает эффективность, и тот кто принимал участие в конференции с участием 20 или более человек может это подтвердить. Прочитайте &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FMythical-Man-Month-Software-Engineering-Anniversary%2Fdp%2F0201835959%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1186355118%26sr%3D8-1&amp;amp;tag=revosystblog-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;"Мифический человеко-месяц"&lt;/a&gt;, если хотите подробнее ознакомиться с этим явлением.&lt;/li&gt;&lt;li&gt;Профессионалы обычно вращаются в отпределенных соцальных кругах. Имея одного такого профессионала в штате, гораздо проще найти спецалистов в этой области.&lt;/li&gt;&lt;li&gt;Вы сэкономите 2/3 на оплате инфраструктуры предприятия, а именно на таких вещах как: оплата за помещение, компьютеры, телефоны, обеды, тренировочные семинары, поездки, офисное пространство, кондиционеры, электричество и прочее. По существу, этот список бесконечен.&lt;/li&gt;&lt;li&gt;Ваш отдел по работе с кадрами будет иметь разработчиков, составляющих всего лишь третью часть штата, о которых он должен будет заботиться. Будет меньше документов, меньше вопросов, меньше всего, так как количество сотрудников невелико.&lt;/li&gt;&lt;li&gt;Вы сохраните $300000 в год на оплату работы сотрудников, так как сэкономите на: премиальных и отпускных выплатах, страховке и других льготах. Вы можете тратить даже $100000 в год на поиск новых сотрудников и при этом не выйдете за $200000 в год. Вы даже можете выделить отдельного человека для этой задачи.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Что такое профессиональный программист?&lt;/span&gt;&lt;br /&gt;Опыт, это преимущество, но он не важен в некоторых случаях. Время, проведенное в работе с конкретным языком, не так важно как разнообразие опыта. Человек, который работал в различных областях промышленности, обычно лучший разработчик чем тот, который проработал много лет в одной области. Конечно же, существуют исключения, но как правило, это утверждение верно. Вы также окажетесь в выигрыше, если ваш разработчик был системным администратором в прошлом.&lt;br /&gt;Я знаю, что некоторые из лучших разработчиков изначально были журналистами, математиками, лингвистами, что никак не было связано с разработкой программ.&lt;br /&gt;Профессионалы используют хорошие инструменты и интересуются своей профессией. Они не ковыряются в мелочах, а разрабатывают единый продукт для решения конкретной проблемы. Профессионалы кажутся ленивыми, так как они более сообразительны и неординарны, нежели трудолюбивы. Профессионалы предпочитают самые простые пути для решения задачи. Профессионалы предпочитают не создавать сложных, запутанных решений, только ради того, чтобы они были комплексными, как делают молодые эгоистичные программисты. У них часто это получается с первой поптки и всегда со второй.&lt;br /&gt;Проще говоря, профессионалы пишут читаемый код. Они комментируют и документируют его в соответствии со сложностью и критичностью конкретного куска кода.&lt;br /&gt;Все это дает вам большой выигрыш в будущем, когда новый разработчик присоединится к проекту, а предыдущие уйдут, особенно, если новый человек не профессионал.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Еще несколько причин нанять профессионального разработчика&lt;/span&gt;&lt;br /&gt;Ваш бизнес ориентирован на технологии? Возможно программное обеспечене, которое вы разрабатываете это ваш главный продукт. Если это так, то я уверен, что вы согласитесь с тем, что программное обеспечение, которое пишут ваши разработчики, достаточно важно для вашего бизнеса.&lt;br /&gt;Я работал в разных окружениях со специалистами разного уровня, поэтому с легкостью могу сказать, есть ли в компании профессиональные разработчики. Часто ли ваше программное обеспечение отказывает? Много ли в нем недоработок или заковырок, которые для пользователя зачастую превращаются в особенности? Сложно ли пользоваться таким программным обеспечением? Является ли необходимой только тренировка или еще и чтение документации для того чтобы начать пользоваться программой?&lt;br /&gt;Если вы ответили "да" на все эти вопросы, то скорее всего у вас работают программисты среднего или ниже среднего уровня.&lt;br /&gt;Если вы работаете в окружении профессионалов, то все работает хорошо. Программы проще в использовании и требуют меньше начальной тренировки. Программное обеспечение проще изменять. Необходимые изменения вносятся чаще и проще. Работа не стопорится. В этом заключается разница между Apple и Microsoft, между &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FApple-Video-Player-Black-Generation%2Fdp%2FB000EPHR0C%3Fie%3DUTF8%26s%3Delectronics%26qid%3D1186355223%26sr%3D8-2&amp;amp;tag=revosystblog-20&amp;amp;amp;amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;iPod&lt;/a&gt; и &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FSony-CDPCX455-Disc-MegaStorage-Changer%2Fdp%2FB000069JWX%3Fie%3DUTF8%26s%3Delectronics%26qid%3D1186355301%26sr%3D1-2&amp;amp;tag=revosystblog-20&amp;amp;linkCode=ur2&amp;amp;amp;amp;amp;amp;amp;amp;amp;camp=1789&amp;amp;creative=9325"&gt;CD-ченджером на 400 дисков&lt;/a&gt; с 50 кнопками.&lt;br /&gt;Как и со многими вещами в жизни, иногда вы получаете то, за что вы платите. Хотел бы услышать ваши комментарии и мнения на эту тему.&lt;br /&gt;&lt;b&gt;Обновление:&lt;/b&gt; Я написал ответы на некоторые вопросы и комментарии, которые я получил, в статье &lt;a href="http://blog.revsys.com/2007/08/followup-to-a-g.html"&gt;Завершительная часть по "Руководству по найму программистов"&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: right; font-style: italic;"&gt;Перевод: Ульпи Павел (passshok@gmail.com)&lt;br /&gt;Оригинал: &lt;a href="http://blog.revsys.com/2007/08/a-guide-to-hiri.html"&gt;http://blog.revsys.com/2007/08/a-guide-to-hiri.html&lt;/a&gt;&lt;br /&gt;Перевод является достаточно вольным. Распространяется свободно, но с указанием авторства и ссылки на этот пост.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-6178813377050656049?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/4f_5mbVKCTI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/4f_5mbVKCTI/blog-post.html</link><author>noreply@blogger.com (passshok)</author><thr:total>1</thr:total><feedburner:origLink>http://passshok.blogspot.com/2007/08/blog-post.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-2943088810503657787</guid><pubDate>Sat, 14 Apr 2007 19:29:00 +0000</pubDate><atom:updated>2007-04-15T00:39:50.970+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">acer aspire 1683</category><category domain="http://www.blogger.com/atom/ns#">linux</category><title>Linux на ноутбуке Acer Aspire 1683WLMi</title><description>&lt;span style="font-size:130%;"&gt;Внешний вид&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_I4wjZyyQJOU/RiEtuH5a-OI/AAAAAAAAABI/7kKv2qLzvXo/s1600-h/aceraspire1683wlmi.jpg"&gt;&lt;img style="cursor: pointer; width: 204px; height: 190px;" src="http://2.bp.blogspot.com/_I4wjZyyQJOU/RiEtuH5a-OI/AAAAAAAAABI/7kKv2qLzvXo/s400/aceraspire1683wlmi.jpg" alt="" id="BLOGGER_PHOTO_ID_5053370527303530722" border="0" /&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_I4wjZyyQJOU/RiEt7H5a-PI/AAAAAAAAABQ/DS9dEHvQQ9A/s1600-h/aceraspire1683wlmi_1.jpg"&gt;&lt;img style="cursor: pointer; width: 227px; height: 190px;" src="http://2.bp.blogspot.com/_I4wjZyyQJOU/RiEt7H5a-PI/AAAAAAAAABQ/DS9dEHvQQ9A/s400/aceraspire1683wlmi_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5053370750641830130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Куплен в январе 2005 г. Собран в Тайланде. Поставлялся с Microsoft Windows XP Home Edition.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Таблица спецификаций&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Размер:&lt;/b&gt; 36,5см x 28см x 3,5см&lt;br /&gt;&lt;b&gt;Вес:&lt;/b&gt; 3кг&lt;br /&gt;&lt;b&gt;Процессор:&lt;/b&gt; Intel Centrino 1.7, 2MB кеш 2 уровня, Intel SpeedStep&lt;br /&gt;&lt;b&gt;Chipset:&lt;/b&gt; Intel 855GME&lt;br /&gt;&lt;b&gt;RAM:&lt;/b&gt; 512MB DDR333&lt;br /&gt;&lt;b&gt;HDD:&lt;/b&gt; HITACHI_DK23FA 80GB ATA100 UDMA(100)&lt;br /&gt;&lt;b&gt;Оптический накопитель:&lt;/b&gt; DVD+RW, CDR - 24x, DVDR - 6x, DVDRW - 4x&lt;br /&gt;&lt;b&gt;Дисплей:&lt;/b&gt; 15.4" WXGA зеркальная поверхность&lt;br /&gt;&lt;b&gt;Видео:&lt;/b&gt; ATI Mobility Radeon 9700 - 64 MB, S-video out, SVGA out&lt;br /&gt;&lt;b&gt;Аудио:&lt;/b&gt; Intel AC'97, 2 встроенных динамика и микрофон&lt;br /&gt;&lt;b&gt;Ethernet:&lt;/b&gt; Broadcom Corporation BCM4401 100Mbps&lt;br /&gt;&lt;b&gt;Модем:&lt;/b&gt; Intel AC'97, 56K ITU V.92&lt;br /&gt;&lt;b&gt;WLAN:&lt;/b&gt; Intel PRO/Wireless 2200BG, IEEE 802.11bg&lt;br /&gt;&lt;b&gt;Bluetooth:&lt;/b&gt; Broadcom BCM2035&lt;br /&gt;&lt;b&gt;Media:&lt;/b&gt; SD/MMC cardreader, touchpad 2+4 keys, доп. клавиши&lt;br /&gt;&lt;b&gt;Разъемы:&lt;/b&gt; USB x3, FIR, SVGA, PCMCIA, S-video out, IEEE 1394, RJ-11, RJ-45, аудио выход, вход и разъем для микрофона&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Linux совместимость&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;Ядро 2.6.19-gentoo-r5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Процессор и управление питанием&lt;/span&gt;&lt;br /&gt;OK&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Чипсет&lt;/span&gt;&lt;br /&gt;OK&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Память&lt;/span&gt;&lt;br /&gt;OK&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Дисплей&lt;/span&gt;&lt;br /&gt;Не проверялась возможность программно управлять уровнем подсветки дисплея.&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Видеокарта&lt;/span&gt;&lt;br /&gt;Хорошо работает с проприетарными драйверами от ati. С драйверами OpenSource наблюдались проблемы в виде повышенного потребления ресурсов процессора, а как следствие - нагрев и частое включение системы охлаждения (вентилятора).&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Жесткий диск&lt;/span&gt;&lt;br /&gt;Замечены некоторые шумы при работе ЖД. Возможно это связано с его повреждением при эксплуатации или заводским браком.&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Оптический привод&lt;/span&gt;&lt;br /&gt;OK&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Кардридер&lt;/span&gt;&lt;br /&gt;Работает при наличии модулей ядра tifm_7xx1, tifm_sd, mmc_core и mmc_block.&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Факс/модем&lt;/span&gt;&lt;br /&gt;Не проверялось, но кажется, драйверов нет.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Адаптер беспроводной сети Wi-Fi&lt;/span&gt;&lt;br /&gt;Модули ядра: ipw2200.&lt;br /&gt;Работает шифрование WPA, модули ядра: ieee80211, ieee80211_crypt, ieee80211_crypt_tkip.&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Адаптер беспроводной сети bluetooth&lt;/span&gt;&lt;br /&gt;Модули ядра: bluetooth, rfcomm, l2cap, hci_us.&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Адаптер проводной связи LAN&lt;/span&gt;&lt;br /&gt;Модули ядра: b44.&lt;/li&gt;&lt;li&gt;Адаптер проводной связи FireWire&lt;br /&gt;Не проверялось&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Расширенные клавиши на клавиатуре&lt;/span&gt;&lt;br /&gt;&lt;a href="http://passshok.blogspot.com/2007/04/linux.html"&gt;Инструкция по настройке расширенных клавиш&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Звуковая карта&lt;/span&gt;&lt;br /&gt;Модули ядра: snd, snd_pcm_oss, snd_mixer_oss, snd_seq_oss, snd_seq, snd_seq_device, snd_intel8x0, snd_ac97_codec, snd_pcm, snd_timer.&lt;br /&gt;Звуковая подсистема: alsa.&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Ждущий/спящий режим&lt;/span&gt;&lt;br /&gt;Не проверялось, но на прежних ядрах ждущий режим не работал.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Тачпэд&lt;/span&gt;&lt;br /&gt;&lt;a href="http://passshok.blogspot.com/2006/07/synaptics.html"&gt;Настройка&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;PCMCIA&lt;br /&gt;Не проверялось&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(255, 204, 0);"&gt;Аккумулятор&lt;/span&gt;&lt;br /&gt;Модули ядра: sbs.&lt;br /&gt;Тип аккумулятора - Smart Battery System. Есть небольшая недоработка в драйвере: системе передаются события о статусе батареи, даже когда он не меняется, что засоряет логи и делает невозможным сообщить пользователю о разрядке аккумулятора.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;lspci&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;00:01.0 PCI bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to AGP Controller (rev 02)&lt;br /&gt;00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 03)&lt;br /&gt;00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 03)&lt;br /&gt;00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 03)&lt;br /&gt;00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 03)&lt;br /&gt;00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 83)&lt;br /&gt;00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 03)&lt;br /&gt;00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 03)&lt;br /&gt;00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 03)&lt;br /&gt;00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 03)&lt;br /&gt;00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 03)&lt;br /&gt;01:00.0 VGA compatible controller: ATI Technologies Inc RV350 [Mobility Radeon 9600 M10]&lt;br /&gt;02:02.0 Ethernet controller: Broadcom Corporation BCM4401 100Base-T (rev 01)&lt;br /&gt;02:04.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;02:06.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller&lt;br /&gt;02:06.2 FireWire (IEEE 1394): Texas Instruments OHCI Compliant IEEE 1394 Host Controller&lt;br /&gt;02:06.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-2943088810503657787?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/0PVOmcIzRrQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/0PVOmcIzRrQ/linux-acer-aspire-1683wlmi.html</link><author>noreply@blogger.com (passshok)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_I4wjZyyQJOU/RiEtuH5a-OI/AAAAAAAAABI/7kKv2qLzvXo/s72-c/aceraspire1683wlmi.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://passshok.blogspot.com/2007/04/linux-acer-aspire-1683wlmi.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-4415058651276638325</guid><pubDate>Fri, 13 Apr 2007 16:58:00 +0000</pubDate><atom:updated>2007-04-15T00:36:35.989+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">acer aspire 1683</category><category domain="http://www.blogger.com/atom/ns#">linux</category><title>Настройка расширенных клавиш в Linux</title><description>&lt;span style="font-size:180%;"&gt;Intro&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Существуют в природе клавиатуры с расширенными (мультимедийными) клавишами. Я оказался владельцем ноутбука с такой клавиатурой. Впринципе, достаточно длительное время я работал без дополнительных клавиш, но однажды очень захотелось их настроить. Существует несколько способов приведения таких клавиш в рабочее состояние. Я опишу способ их настройки через утилиту xmodmap.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Суть метода&lt;br /&gt;&lt;/span&gt;Итак, приступим. Для начала я опишу последовательность действий:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Настройка работы клавиш на уровне ядра&lt;/li&gt;&lt;li&gt;Настройка работы клавиш на уровне иксов&lt;/li&gt;&lt;li&gt;Настройка работы клавиш на уровне оконного менеждера&lt;/li&gt;&lt;/ol&gt;Такдже отмечу, что 1-ый пункт необходим только в том случае, если ядро не видит клавиш[и], т.е. не вызывает никакого события в системе.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Настройка&lt;br /&gt;&lt;/span&gt;Для отладки я пользовался утилитой для иксов под названием xev. Эта утилита, в нашем случае, позволяет определить код и название нажатой клавиши. Если у вас такая утилита не установлена, то установите ее. Запускаем ее в консили, затем нажимаем одну из расширенных клавиш. Если в консоли появились строки, сигнализирующие о том, что была нажата клавиша, то можно переходить ко 2-ому пункту; если же никаких сток не появилось, то переходим к пункту 1.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Если xev не показал никакого события, значит ядро его не порождает. Еще раз нажмите расширенную клавишу и посмотрите на вывод команды dmesg. Там должны появиться строки примерно следующего содержания:&lt;br /&gt;&lt;pre&gt;atkbd.c: Unknown key pressed (translated set 2, code 0xb3 on isa0060/serio0).&lt;br /&gt;atkbd.c: Use 'setkeycodes e033 &lt;keycode&gt;' to make it known.&lt;/keycode&gt;&lt;/pre&gt;&lt;br /&gt;Эти строки означают, что нужно выполнить команду:&lt;br /&gt;&lt;pre&gt;setkeycodes e033 xxx&lt;/pre&gt;&lt;br /&gt;где xxx - это любое трехзначное число, желательно больше 128. Почему именно больше 128, я не знаю, но где-то это прочитал. Данную команду нужно выполнять при запуске системы, поэтому разумно прописать ее в какой-нибудь стартовый скрипт.&lt;br /&gt;Повторяем эту операцию для всех расширенных клавиш на нашей клавиатуре, задавая каждой клавише уникальный код.&lt;/li&gt;&lt;li&gt;Запускаем утилиту xev. Нажимаем одну из расширенных клавиш, которую хотим настроить для использования в оконном менеджере и смотрим ее код. После нажатия клавиши можно увидеть примерно следующие строки:&lt;br /&gt;&lt;pre&gt;KeyPress event, serial 27, synthetic NO, window 0xe00001,&lt;br /&gt; root 0x3d, subw 0x0, time 3959296773, (242,-74), root:(434,138),&lt;br /&gt; state 0x0, keycode 135 (keysym 0x1008ff40, NoSymbol), same_screen YES,&lt;br /&gt; XLookupString gives 0 bytes:&lt;br /&gt; XmbLookupString gives 0 bytes:&lt;br /&gt; XFilterEvent returns: False&lt;br /&gt;&lt;br /&gt;KeyRelease event, serial 27, synthetic NO, window 0xe00001,&lt;br /&gt; root 0x3d, subw 0x0, time 3959296833, (242,-74), root:(434,138),&lt;br /&gt; state 0x0, keycode 135 (keysym 0x1008ff40, NoSymbol), same_screen YES,&lt;br /&gt; XLookupString gives 0 bytes:&lt;br /&gt; XFilterEvent returns: False&lt;/pre&gt;&lt;br /&gt;Здесь нас интересует код нажатой клавиши, в нашем случае он 135. Название данной клавише еще не присвоено, поэтому написано "NoSymbol". Таким образом получаем коды всех нужных нам клавиш.&lt;br /&gt;Теперь воспользуемся утилитой xmodmap. Если у вас ее нет, то незамедлительно установите ее. Создадим файл в домашней директории под названием ~/.xmodmaprc . Каждая его стока будет присваивать клавише псевдоним (название) по ее коду, который мы выясняли чуть выше. Мой файл выглядит так:&lt;br /&gt;&lt;pre&gt;keycode 135 = XF86Launch0&lt;br /&gt;keycode 140 = XF86Launch1&lt;br /&gt;keycode 178 = XF86Launch2&lt;br /&gt;keycode 236 = XF86Launch3&lt;br /&gt;keycode 176 = XF86AudioRaiseVolume&lt;br /&gt;keycode 174 = XF86AudioLowerVolume&lt;br /&gt;keycode 160 = XF86AudioMute&lt;/pre&gt;&lt;br /&gt;Псевдонимы справа это не произвольные значения, а уже имеющиеся и описанные в файле XF86keysym.h, у меня он находится по адресу: /usr/include/X11/XF86keysym.h . Берем из этого фала подходящее по смыслу значение и записываем его как превдоним в описываемый файл, вырезая из названия псевдонима 3 символа "XK_".&lt;br /&gt;Теперь, во время запуска иксов должна выполняться следующая команда:&lt;br /&gt;&lt;pre&gt;xmodmap ~/.xmodmaprc&lt;/pre&gt;&lt;br /&gt;Например, можно добавить эту строку в файл ~/.xinitrc (у меня так и сделано). После запуска такой команды псевдонимы проассоциировались с кодами клавиш и можно проверить это с помощью xev. Запускаем xev, нажимаем расширенные клавиши и смотрим: если вместо "NoSymbol" появились те названия клавиш, которые вы им присваивали по кодам, то все отлично и можно приступить к дальнейшей настройке.&lt;/li&gt;&lt;li&gt;Теперь настроим оконный менеджер или среду окружения на работу с этими расширенными клавишами. Я приведу пример настройки оконноо менеджера Fluxbox, так как работаю именно в нем. Открываем файл ~/.fluxbox/keys в вашем любимом текстовом редакторе и добавляем туда примерно следующие строки:&lt;br /&gt;&lt;pre&gt;None XF86AudioMute        :ExecCommand amixer sset Master 0%&lt;br /&gt;None XF86AudioRaiseVolume :ExecCommand amixer sset Master 5%+&lt;br /&gt;None XF86AudioLowerVolume :ExecCommand amixer sset Master 5%-&lt;br /&gt;None XF86Launch0          :ExecCommand команда&lt;br /&gt;None XF86Launch1          :ExecCommand команда&lt;br /&gt;None XF86Launch2          :ExecCommand команда&lt;br /&gt;None XF86Launch3          :ExecCommand команда&lt;/pre&gt;&lt;br /&gt;Это часть содержимого моего файла keys. Вместо "команда", разумеется, вы вписываете команду, которая должна выполняться по нажатию соответствующей расширенной клавиши. Далее выбираем в меню fluxbox пункт "Перечитать конфиг". Все должно работать. :)&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:180%;"&gt;Злоключение&lt;br /&gt;&lt;/span&gt;Если что-то не работает, обращайтесь. :)&lt;span style="font-size:180%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-4415058651276638325?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/sWB8QtWV4Z8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/sWB8QtWV4Z8/linux.html</link><author>noreply@blogger.com (passshok)</author><thr:total>7</thr:total><feedburner:origLink>http://passshok.blogspot.com/2007/04/linux.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-5206832372750099254</guid><pubDate>Wed, 28 Mar 2007 20:01:00 +0000</pubDate><atom:updated>2007-03-29T00:38:35.689+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">свободное ПО</category><title>Трудности перехода на свободное ПО</title><description>&lt;span style="font-size:180%;"&gt;Вступление&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Посмотрел я тут видео. &lt;a href="ftp://ftp.linuxcenter.ru/projects/video/linux_rbc.mpg"&gt;ftp://ftp.linuxcenter.ru/projects/video/linux_rbc.mpg&lt;/a&gt;&lt;br /&gt;Вобщем, все о чем там говорится, это правда и в этом есть здравый смысл. Вкратце перескажу о чем видео. В ролике рассказывается о ситуации в России, связанной с пиратством и вступлением в России в ВТО. Так вот для вступления в ВТО от России требуют побороть пиратство. :) Решили попробовать бороться внедрением свободного ПО. Но не тут-то было, оказалось что большинство юзеров просто не смогут работать с другим ПО в силу своей ограниченности.&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:180%;"&gt;&lt;br /&gt;О переходе на свободное ПО&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Тут я прервусь с пересказом и дам волю своим мыслям на эту тему. Вобщем-то, все это жестокая и суровая, но правда. Большинство пользователей ПК работают с вендой. Они, во-первых, не подозревают что в железке есть ОС (операционная система), во-вторых, что бывают разные операционные системы, в третьих, они знают только рецепты. Под рецептами я понимаю следующее: например, каждого наверное в школе учили, что работу нужно начинать с кнопки "ПУСК". Это готовый рецепт. А что если нет такой кнопки? Все, для немыслящего пользователя это означает конец работы с этой ОС. А таких немыслящих ну 60% точно (этом моя субъективная оценка). Итак, что следует из всего сказанного ранее? А то что сложилась ситуация когда:&lt;br /&gt;&lt;/div&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;Пользователи "зомбированы" вендой, т.е. могут работать только с ней в силу своей неразвитости.&lt;/li&gt;&lt;li&gt;Если же обучать пользователей работать с другим интерфейсом и программами-аналогами, то на это придется потратить немало сил, выраженных в денежном эквиваленте. И не дай бог, придется учить пользователей мыслить, что вообще практически невозможно в силу кандовости мышления многих и нежелания осваивать азы устройства компьютера.&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:180%;"&gt;Армия ламеров&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;По истечению многих лет деятельности компании Майкрософт можно понаблюдать, как она отразилась на рядовых пользователях. Прогеров и сисадминов брать не будем, т.к. они имеют свои мозги и сами знают куда идти. Поговрим о простых пользователях, жертвах маркетинговой политики этой компании.&lt;br /&gt;Еще давно, когда компами пользовались только знатоки компьютерного дела, появилась такая компания, как Майкрософт. Что она сделала за все эти годы: она разработала интерфейс пользователя и, являясь монополистом, приучала (подсаживала) всех к нему. Со временем, подсели и те пользователи, которые вообще не имели никакого представления о том как работает ПК и ОС в том числе. Как работают эти пользователи? Они знаю только рецепты (что такое рецепт, описано выше), соответственно могут работать только с этим интерфейсом. Если он хоть немного изменится, это поставит их в тупик.&lt;br /&gt;И как не странно, именно тогда, когда венда пошла в широкие массы, повился термин "ламер". И именно компании Майкрософт нужно говорить за это спасибо. Каковы недостатки этого явления для общественного сознания? Самый главный заключается в том, что теперь пришла пора, когда появилась альтернатива в виде свободного ПО и пока пользователи не познают минимальных основ пользования ПК и его устройства, переход на свободное ПО будет очень сложно осуществить.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Заключение&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Да и вообще пришла пора, когда все иллюзии пропали и стало понятно, что что-то надо менять. Оставаться на месте уже нельзя просто потому, что это экономически не выгодно :)&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-5206832372750099254?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/h-FabawN3ok" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/h-FabawN3ok/blog-post_29.html</link><author>noreply@blogger.com (passshok)</author><thr:total>1</thr:total><feedburner:origLink>http://passshok.blogspot.com/2007/03/blog-post_29.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-1469101205099732431</guid><pubDate>Sat, 10 Mar 2007 15:44:00 +0000</pubDate><atom:updated>2007-03-14T08:19:29.243+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">linux</category><title>5 причин, почему не стоит устанавливать linux</title><description>Весьма забавная статья: &lt;a href="http://www.americaru.com/talk/showthread.php?t=99"&gt;http://www.americaru.com/talk/showthread.php?t=99&lt;/a&gt;&lt;br /&gt;Наверное, ее можно отнести к пародиям :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-1469101205099732431?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/M-Kbu9p5lWg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/M-Kbu9p5lWg/5-linux.html</link><author>noreply@blogger.com (passshok)</author><thr:total>2</thr:total><feedburner:origLink>http://passshok.blogspot.com/2007/03/5-linux.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-808297839763441798</guid><pubDate>Wed, 07 Feb 2007 10:06:00 +0000</pubDate><atom:updated>2007-03-04T02:12:00.467+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">свободное ПО</category><title>Linux vs. Windows: кто победит в России?</title><description>&lt;div style="text-align: justify;"&gt;Прочитал новость, обсуждение которой вызвало горячее обсуждение по &lt;a href="http://www.linux.org.ru/view-message.jsp?msgid=1775742" target="_blank"&gt;адресу&lt;/a&gt;, сделал для себя много плачевных выводов, а также выделил несколько цитат:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;В общем-то, у вопроса перехода на Linux есть несколько аспектов, как хороших, так и плохих:&lt;/i&gt;&lt;br /&gt;&lt;i&gt;1. (IMHO, самый главный) Преподам _ЛЕНЬ_ переучиваться. Нах, спрашивается, Марь Ванне в Ново-Педрыщенске переучиваться на Linux, когда у нее есть такая знакомая венда?&lt;/i&gt;&lt;br /&gt;&lt;i&gt;2. M$ любит давать откаты. А Стабфонд у нас большой. А зряплаты у преподов маленькие. Доходчиво? Та самая Марь Ванна будет настойчиво уговаривать директора той самой Ново-Педрыщенской школы купить именно венду. А откат пополам поделят - директорам школ тоже хочется отпуск на Филлиппинах проводить.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;3. В ЕГЭ по информатике _уже_ включены вопросы про венду. IMHO, того чинушу, который получил достаточно бабла ради включения этих вопросов, следует просто расстрелять. Демонстративно на Красной Площади. Просто потому, что не в национальных интересах России требовать от детей знания продукции M$: когда оные дети вырастут и станут производительными работниками, они потребуют от работодателей установить им венду. Соответственно, M$ будет обеспечена спросом на десятилетия вперед, российские софтверные компании будут сосать лапу, а Россия - регулярно отчислять в M$ бабло.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;4. Не существует политики государства в вопросе ПО. Это брошено "на самотек" - кто во что горазд. Если бы была четкая установка: "к такому-то году все государственные структуры переходят на открытое ПО" (необязательно Linux), тогда и расклад был бы совсем другой.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;5. Запросы венды растут, обновлять аппаратное обеспечение дорого. Использование Linux, как менее требовательной к ресурсам платформы, выгоднее.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;6. Под Linux намного меньше вирусов, а жесткое разделение прав доступа делает существующее вредоносное ПО малоэффективным. Соответственно, использование Linux дешевле, чем венды, поскольку требует меньше сервисного обслуживания.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;7. Под Linux есть достаточное количество ПО, которое обеспечит учащегося необходимым количеством знаний и умений в пользовании компьютером: представление об операционных системах, умение (да-да! :)) загружать оные ОС и правильно с ними работать, "офисные" пакеты, среды разработки прикладного ПО. Собственно, все что необходимо - есть.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linux.org.ru/jump-message.jsp?msgid=1775742#1776199" target="_blank"&gt;http://www.linux.org.ru/jump-message.js ... 42#1776199&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;В нашей стране не может быть бесплатного ПО. Никто не будет бесплатно писать Гарант, Др.Веб, Консультант, 1С. Вот если бы Линукс из коробки устанавливался настроенным, со всеми драйверами и назначенным IP-адресом и 3-мя иконками на раб.столе "Быстрый отчет начальству за квартал", "Быстрая порнуха", "Быстро вызвать секретаршу с чашкой кофэ", и для его настройки (линуха) не нужно было бы нанимать олуха Ивана-дурака за $500/month, то такой линукс охотно бы был принят бизнесом, просто даже на "Ура".&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linux.org.ru/jump-message.jsp?msgid=1775742#1776180" target="_blank"&gt;http://www.linux.org.ru/jump-message.js ... 42#1776180&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&gt; для его настройки (линуха) не нужно было бы нанимать&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Вот эту логику я вообще понять не могу. То, что ТОЧИЛУ нужно время от времени на ТО гонять - это "бизнес" понимает. И что топливо она жрет не соляру, а АИ95 - тоже понимает. То, что оргтехника в виде факса/ксерокса должна стоять на обслуживании - это тоже "бизнес" понимает. И то, что расходные материалы требуются всякая бумага, картриджи/тонеры - тоже понимают. А вот что компьютеры требуют обслуживания - в упор не понимают. И это при том, что в современной конторе основное орудие производства бабла - как раз компьютеры.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linux.org.ru/jump-message.jsp?msgid=1775742#1776256" target="_blank"&gt;http://www.linux.org.ru/jump-message.js ... 42#1776256&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Видел я тесты ЕГЭ на днях...задания пи^W весьма необычные.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Например: в рамочке есть кусок текста и какой-то рисунок.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;И задание - по каким пунктам меню "ворда" надо клацнуть, чтобы такое получить. И 4 варианта клацания.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Или вопрос типа "в виндафсе файл, папка и устройство - одно и то же или нет." (точно не помню, но что-то типа этого).&lt;/i&gt;&lt;br /&gt;&lt;i&gt;=/&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linux.org.ru/jump-message.jsp?msgid=1775742#1776312" target="_blank"&gt;http://www.linux.org.ru/jump-message.js ... 42#1776312&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Меня в школьном, причем младшем школьном образовании всегда удручал один простой опыт. Берете первоклассника. Спрашиваете: "У Маши 3 копейки, у Паши 5. Сколько копеек у МАши и Паши вместе?". Ребенок говорит: "Надо к трем прибавить пять". Чувствуете? Не "прибавить к числу машиных копеек число пашиных", а сложить два числа, указанных в задаче. Иными словами, ребенка ен научили решать задачу, ребенка научили рецепту: "Если взять два числа и сложить, то получится ответ". Догадака провеярется вторым вопросом: "У Маши и Паши вместе 8 копеек, у Паши на 2 больше, чем у Маши. Сколько копеек у Маши и у Паши по отдельности?". Ученик говорит: "Надо к 8 прибавить два - будет 10". Вы: "Нет, подумай". "Нууу, тогда из 8 вычесть 2" (правильно, в школе же решали задачи и "на вычитание"!) "Нет". "Умножить? Нет! Поделить? Нет! Ну тогда не знаю". Все известные рецепты не подошли.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Также и здесь. Надо что-то сделать в незнакомой системе - в школе учили, что надо начать с кнопки "Пуск". Ой, нет кнопки "пуск"! Ладно, тогда учили нажать Ctrl+Esc. Ой, не работает. Все, я сдаюсь. при этом помочь такому пользователю будет сложно, ибо он не может внятно сказать: "Я хочу открыть меню программ, скажи, как мне это сделать". Он вообще не знает, что ему надо, он знает, что готовый рецепт перестал работать. Нужно пойти на курсы и записать в тетрадку новый рецепт. :)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linux.org.ru/jump-message.jsp?msgid=1775742#1777025" target="_blank"&gt;http://www.linux.org.ru/jump-message.js ... 42#1777025&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-808297839763441798?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/zBlIQ6kCgzI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/zBlIQ6kCgzI/linux-vs-windows.html</link><author>noreply@blogger.com (passshok)</author><thr:total>0</thr:total><feedburner:origLink>http://passshok.blogspot.com/2007/02/linux-vs-windows.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-8792555224770364377</guid><pubDate>Tue, 16 Jan 2007 11:38:00 +0000</pubDate><atom:updated>2007-03-04T02:12:23.689+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">программирование</category><category domain="http://www.blogger.com/atom/ns#">свободное ПО</category><title>О качестве программного обеспечения</title><description>&lt;div style="text-align: justify;"&gt;Прочитав Интервью с Бьерном Страуструпом (&lt;a href="http://www.technologyreview.com/InfoTech/17831/" target="_blank"&gt;часть 1&lt;/a&gt;) и (&lt;a href="http://www.technologyreview.com/InfoTech/17868/" target="_blank"&gt;часть 2&lt;/a&gt;), я сделал несколько выводов для себя. Буду предельно краток, так как много болтовни ни к чему плодотворному не приводит.&lt;br /&gt;&lt;br /&gt;Качество современного ПО ухудшилось, так как люди начали зарабатывать деньги за счет продажи ПО и его использования. Все что делается ради/для денег обречено на разочарование и неудачи. Некоторая часть людей стремится заработать большие деньги посредством написания ПО и его продажи. Большинство старается сделать это быстро и просто (синдром легких денег), что порождает: некачественный и неаккуратный код, неструктуриррованность, отсутствие документации, неотлаженность кода. Такие люди не стремятся разобраться в основах и принципах программирования, стремясь лишь, к сожалению, к заработку денег.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Информация к размышлению:&lt;/i&gt;&lt;/b&gt; Как вы думаете, почему большая часть платного ПО имеет столь низкое качество функционирования и качество кода? А почему все разработки с открытым кодом, создатели которых не получают баснословных прибылей (действуя наверное из каких-то других побуждений?), оказываются столь востребованны и успешны, их код красив и понятен, а документация на высоком уровне?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-8792555224770364377?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/6roc_3eM2wg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/6roc_3eM2wg/blog-post_16.html</link><author>noreply@blogger.com (passshok)</author><thr:total>2</thr:total><feedburner:origLink>http://passshok.blogspot.com/2007/01/blog-post_16.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-1554463376703199462</guid><pubDate>Sat, 13 Jan 2007 16:26:00 +0000</pubDate><atom:updated>2007-07-24T23:12:59.318+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">программирование</category><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">python</category><title>Python: Программа отправки файлов по почте</title><description>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Задача&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;Требуется написать программу на языке Python для отправки файлов адресатам по почте через smtp сервер провайдера услуг. Должна присутствовать возможность отправки множества файлов, нескольким адресатам. Также нужно предусмотреть возможность задания комментария к письму.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Решение&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Для решения задачи воспользуемся широким ассортиментом модулей из стандартной комплектации. Для формирования тела письма используется модуль email, для взаимодействия с smtp сервером - smtplib, для обработки строки параметров - getopt, для обработки ошибки ssl (об этом будет сказано дальше) - socket, для всего остального - модули sys, os.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Замечание:&lt;/i&gt;&lt;/b&gt; Я разрабатывал эту программу для использования с сервером smtp.gmail.com. Как выяснилось, этот сервер имеет несколько особенностей: во-первых, для корректной работы tls-шифрования, требуется в самом начале соединения послать EHLO-запрос, потом инициализировать tls-соединение, и снова послать EHLO-запрос; во-вторых, сервер некорректно завершает соединение после QUIT-запроса, вызывая ошибку ssl-сокета, что решается путем обработки этой исключительной ситуации. По поводу второй особенности стоит отметить, что несмотря на то что соединение обрывается некорректно, отправка письма происходит нормально.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Замечание:&lt;/i&gt;&lt;/b&gt; Программа успешно тестировалась на серверах: smtp.gmail.com, smtp.mail.ru.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;#!/usr/bin/python&lt;br /&gt;# -*- coding: cp1251 -*-&lt;br /&gt;&lt;br /&gt;import smtplib, socket, sys, getopt, email, os&lt;br /&gt;from email.MIMEMultipart import MIMEMultipart&lt;br /&gt;from email.MIMEBase import MIMEBase&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;## Введите свои значения этих переменных&lt;br /&gt;&lt;br /&gt;# Логин&lt;br /&gt;smtplogin="логин"&lt;br /&gt;# Пароль&lt;br /&gt;smtpasswd="пароль"&lt;br /&gt;# Адрес smtp сервера&lt;br /&gt;smtpserv="smtp.сервер.com"&lt;br /&gt;# Порт smtp сервера (обычно 25)&lt;br /&gt;smtport=25&lt;br /&gt;# Адрес отправителя&lt;br /&gt;fromaddr = 'автор@почта.com'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Функция вывода ошибок&lt;br /&gt;def error(errmsg):&lt;br /&gt;  print "Ошибка:", errmsg&lt;br /&gt;  sys.exit()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Получение параметров командной строки&lt;br /&gt;try:&lt;br /&gt;  opts, args = getopt.getopt(sys.argv[1:],"h", ["to=", "files=", "comment=", "help"])&lt;br /&gt;except getopt.GetoptError:&lt;br /&gt;  print "Ошибка в строке параметров"&lt;br /&gt;  sys.exit(1)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Список адресатов&lt;br /&gt;toaddrs = []&lt;br /&gt;&lt;br /&gt;# Список вложений&lt;br /&gt;files = []&lt;br /&gt;&lt;br /&gt;# Тема сообщения&lt;br /&gt;subject = ''&lt;br /&gt;&lt;br /&gt;# Текст письма&lt;br /&gt;outer = ''&lt;br /&gt;&lt;br /&gt;for o, a in opts:&lt;br /&gt;  if o == "--to":&lt;br /&gt;    toaddrs = a.split(',')&lt;br /&gt;  elif o == "--files":&lt;br /&gt;    files = a.split(',')&lt;br /&gt;  elif o == "--comment":&lt;br /&gt;    subject = a&lt;br /&gt;  elif o in ['--help', '-h']:&lt;br /&gt;    print """--to=...      - один или более адресатов, перечисленных через запятую&lt;br /&gt;--files=...   - один или более полных путей файлов, перечисленных через запятую&lt;br /&gt;--comment=... - комментарий к письму (если в строке есть пробелы, то заключите ее в&lt;br /&gt;           кавычки)"""&lt;br /&gt;    sys.exit()&lt;br /&gt;if not opts:&lt;br /&gt;  print "--help для справки"&lt;br /&gt;  sys.exit()&lt;br /&gt;&lt;br /&gt;# Проверки&lt;br /&gt;if not files:&lt;br /&gt;  error("Не указаны файлы для отправки")&lt;br /&gt;if not toaddrs:&lt;br /&gt;  error("Не указаны адрес(а) для отправки")&lt;br /&gt;&lt;br /&gt;# Формируем тело письма&lt;br /&gt;outer = MIMEMultipart()&lt;br /&gt;if subject:&lt;br /&gt;  outer['Subject'] = subject&lt;br /&gt;else:&lt;br /&gt;  outer['Subject'] = "Ваша почта"&lt;br /&gt;outer['To'] = ', '.join(toaddrs)&lt;br /&gt;outer['From'] = fromaddr&lt;br /&gt;&lt;br /&gt;for filename in files:&lt;br /&gt;  path = filename&lt;br /&gt;  if not os.path.isfile(path):&lt;br /&gt;    error ("Неверный путь к файлу")&lt;br /&gt;  else:&lt;br /&gt;    filename = os.path.basename(path)&lt;br /&gt;&lt;br /&gt;  ctype = 'application/octet-stream'&lt;br /&gt;  maintype, subtype = ctype.split('/', 1)&lt;br /&gt;  fp = open(path, 'rb')&lt;br /&gt;  msg = MIMEBase(maintype, subtype)&lt;br /&gt;  msg.set_payload(fp.read())&lt;br /&gt;  fp.close()&lt;br /&gt;  email.Encoders.encode_base64(msg)&lt;br /&gt;  msg.add_header('Content-Disposition', 'attachment', filename=filename)&lt;br /&gt;  outer.attach(msg)&lt;br /&gt;&lt;br /&gt;composed = outer.as_string()&lt;br /&gt;&lt;br /&gt;try:&lt;br /&gt;  server = smtplib.SMTP(smtpserv, smtport)&lt;br /&gt;  server.set_debuglevel(0)&lt;br /&gt;  server.ehlo()&lt;br /&gt;  server.starttls()&lt;br /&gt;  server.ehlo()&lt;br /&gt;  server.login(smtplogin, smtpasswd)&lt;br /&gt;  server.sendmail(fromaddr, toaddrs, composed)&lt;br /&gt;  server.quit()&lt;br /&gt;except socket.sslerror:&lt;br /&gt;  pass&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;i&gt;Внимание! Программа предоставляется по принципу "as is". Автор не несет никакой ответственности за использование другими этой программы.&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-1554463376703199462?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/6oECwrwzBR0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/6oECwrwzBR0/python.html</link><author>noreply@blogger.com (passshok)</author><thr:total>3</thr:total><feedburner:origLink>http://passshok.blogspot.com/2007/01/python.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-8945395878741187624</guid><pubDate>Mon, 11 Dec 2006 19:53:00 +0000</pubDate><atom:updated>2007-03-04T00:10:40.077+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">freebsd</category><title>FreeBSD: bluetooth: пример настройки</title><description>&lt;span style="font-weight: bold;font-size:180%;" &gt;Задача&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Есть установленная freebsd-6.1 и usb bluetooth устройство. Нужно настроить систему для быстрой и удобной отправки файлов с компа на телефон.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Решение&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;Настраиваем устройство&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Подгружаем модуль:&lt;br /&gt;&lt;pre&gt;# kldload ng_ubt&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;Лучше добавить его в автозагрузку чтобы каждый раз не заморачиваться:&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;# echo 'ng_ubt_load="YES"' &amp;gt;&amp;gt; /boot/loader.conf&lt;/pre&gt;Смотрим dmesg на предмет строк вида "ubt0":&lt;br /&gt;&lt;pre&gt;# dmesg | grep ubt&lt;/pre&gt;Если все нашлось, то продолжаем.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;Автоматизируем запуск сервиса&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;Сделаем так, чтобы /etc/rc.d/bluetooth запускался при включении bluetooth устройства. В моем случает включение и выключение происходит посредством нажатия кнопки на передней панели ноутбука. Есть несколько способов: /etc/usbd.conf и /etc/devd.conf. Я выбрал второй. Добавим в /etc/usbd.conf строки:&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;# Bluetooth&lt;br /&gt;attach 100 {&lt;br /&gt;device-name "ubt[0-9]+";&lt;br /&gt;action "/etc/rc.d/bluetooth start $device-name";&lt;br /&gt;};&lt;br /&gt;detach 100 {&lt;br /&gt;device-name "ubt[0-9]+";&lt;br /&gt;action "/etc/rc.d/bluetooth stop $device-name";&lt;br /&gt;};&lt;/pre&gt;Затем:&lt;br /&gt;&lt;pre&gt;# /etc/rc.d/devd restart&lt;/pre&gt;Должно работать.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Учимся работать с тулзами&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ищем устройства вокруг:&lt;br /&gt;&lt;pre&gt;# hccontrol -n ubt0hci inquiry&lt;/pre&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Запоминаем mac-адрес нужного нам устройства.&lt;br /&gt;Можно посмотреть доступные сервисы на удаленном устройстве:&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;# sdpcontrol -a mac_адрес_устройства search&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;На десерт&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Делаем так чтобы, как говорят в вендузятники, "в 2 клика" можно было передать свежескачанный файл на телефон.&lt;br /&gt;Для этого ставим:&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;# cd /usr/ports/comms/obexapp&lt;br /&gt;# make install clean&lt;/pre&gt;Тестим:&lt;br /&gt;&lt;pre&gt;# obexapp -C OBEX -a mac_адрес_устройства -n put путь_к_файлу_на_компе название_файла_на_удаленном_устройстве&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;Если все прошло удачно, то дальше будет еще вкуснее. Вернемся к "двум кликам". Вы ведь постоянно пользуетесь mc? Я, да. Тогда делаем следущее, редактируем пользовельское меню:&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;# mcedit ~/.mc/menu&lt;/pre&gt;Вставляем пункт меню, вернее 2 пункта (можно сразу после двух первых пунктов):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;+ ! t t                                                            &lt;br /&gt;b       Send file via bluetooth to my phone                        &lt;br /&gt;obexapp -C OBEX -a mac_адрес_вашего_устройства -n put %f %f          &lt;br /&gt;                                                      &lt;br /&gt;+ t t                                                              &lt;br /&gt;b       Send files via bluetooth to my phone                       &lt;br /&gt;set %t                                                     &lt;br /&gt;while [ -n "$1" ]; do                                      &lt;br /&gt;obexapp -C OBEX -a mac_адрес_вашего_устройства -n put "$1" "$1"    &lt;br /&gt;shift                                                    &lt;br /&gt;done&lt;/pre&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;1 абзац добавляет пункт меню, который доступен если навели указатель на файл, 2 абзац работает в том случае, если вы выделили несколько файлов и хотите передать их все (по очереди).&lt;br /&gt;Теперь как пользоваться. Заходим в mc, устанавливаем выделение над файлом или выделяем несколько файлов, нажимаем "F2", затем "b". Тока получилось не в "2 клика" а в 2 клавиши.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-8945395878741187624?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/3apdT8jZlEM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/3apdT8jZlEM/freebsd-bluetooth.html</link><author>noreply@blogger.com (passshok)</author><thr:total>0</thr:total><feedburner:origLink>http://passshok.blogspot.com/2006/12/freebsd-bluetooth.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-6041278582140292981</guid><pubDate>Thu, 23 Nov 2006 17:02:00 +0000</pubDate><atom:updated>2007-03-03T23:44:38.573+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">программирование</category><category domain="http://www.blogger.com/atom/ns#">python</category><title>Python: программа синхронизации директорий</title><description>&lt;div style="text-align: justify;"&gt;Незаметно пролетел месяц в бесконечном цикле: учеба-работа. Все кончено же не так плохо, как вам, наверное, показалось. Недавно, вернее, уже давно, я узнал, что существует такой замечательный язык как &lt;a href="http://python.org/" target="_blank"&gt;Python&lt;/a&gt;, а вот писать я на нем начал недавно. Пол года назад я написал на нем свою лаботаторную работу по программированию, суть которой заключалась в написании лексического анализатора (метод кончного автомата), а теперь вот и на работе мне пригодились знания этого языка. Чтобы потренироваться в написании программ на Python, я решил написать маленькую, достаточно простую, но полезную программу. Суть ее заключается в следующем: она синхронизирует содержимое двух директорий (с вложенными поддиректориями) таким образом, что в обе директории содержат точные копии самых свежих файлов.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Задача&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Создать программу на языке Python, которая бы синхронизировала содержимое каталогов по следующим правилам:&lt;br /&gt;1. Если в обоих директориях/поддиректориях есть файл с одинаковым именем, но разной "датой изменения", то устаревший файл заменяется более свежим в соответствующей директории.&lt;br /&gt;2. Если в одной из директорий/поддиректорий есть такой файл, которого нет в другой директории/поддиректории, то он копируется туда где его не достает.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Решение&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Я решил эту задачу так. Возможно, что это не самый оптимальный способ, но для тренировки очень неплохо.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre&gt;# -*- coding: cp1251 -*-&lt;br /&gt;&lt;br /&gt;import os&lt;br /&gt;import time&lt;br /&gt;import shutil&lt;br /&gt;import string&lt;br /&gt;import sys&lt;br /&gt;import locale&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Сюда добавляем: что с чем синхронизировать&lt;br /&gt;work_list = {'D:\\Мои документы\\mesi':'F:\\mesi',&lt;br /&gt;             'D:\\Мои документы\\work':'F:\\work',&lt;br /&gt;             'D:\\Мои документы\\programming':'F:\\programming'}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Получаем язык и кодировку консоли, чтобы затем, знать, из какой&lt;br /&gt;# кодировки переводить в юникод&lt;br /&gt;language, output_encoding = locale.getdefaultlocale()&lt;br /&gt;&lt;br /&gt;# Проверяем, можно ли синхронизироваться с этим компом&lt;br /&gt;if not os.path.exists('C:\\Documents and Settings\\passshok'):&lt;br /&gt;    print u"Не тот комп"&lt;br /&gt;    raw_input()&lt;br /&gt;    sys.exit()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Массивы для хранения содержимого каталога&lt;br /&gt;list_local = {}  # каталог на локальном компьютере&lt;br /&gt;list_remote = {} # каталог на удаленном/сменном носителе&lt;br /&gt;list_comp = {}   # список инструкций по синхронизации (куда что копировать)&lt;br /&gt;&lt;br /&gt;# Процедура получения списка всех файлов в каталоге&lt;br /&gt;def mk_list(r_dir, f_list):&lt;br /&gt;    # Объявляем процедуру рекурсивного обхода файлов&lt;br /&gt;    def mk_list_r(root_dir, file_list, abs_root_dir):&lt;br /&gt;        try:&lt;br /&gt;            names = os.listdir(root_dir)&lt;br /&gt;        except (IOError, os.error), why:&lt;br /&gt;            print u"Ошибка: %s " % (why)&lt;br /&gt;            raw_input()&lt;br /&gt;            sys.exit()&lt;br /&gt;        for name in names:&lt;br /&gt;            fullname = os.path.join(root_dir, name)&lt;br /&gt;            if os.path.isdir(fullname):&lt;br /&gt;                mk_list_r(fullname, file_list,abs_root_dir)&lt;br /&gt;            else:&lt;br /&gt;                file_list[fullname[len(abs_root_dir)+1:]] = os.stat(fullname)[8]&lt;br /&gt;    # Запускаем ее&lt;br /&gt;    mk_list_r(r_dir, f_list, r_dir)&lt;br /&gt;&lt;br /&gt;# Процедура для создания структуры каталогов&lt;br /&gt;def mk_dirs(fullpath):&lt;br /&gt;    mas = string.split(fullpath, os.sep)&lt;br /&gt;    path = mas[0] + os.sep&lt;br /&gt;    for i in mas[1:len(mas)-1]:&lt;br /&gt;        path += i + os.sep&lt;br /&gt;        if not os.path.exists(path):&lt;br /&gt;            os.mkdir(path)&lt;br /&gt;    &lt;br /&gt;def mk_sync(local_dir, remote_dir):&lt;br /&gt;&lt;br /&gt;    # Генерируем списки файлов локальной а затем удаленной директории&lt;br /&gt;    mk_list(local_dir, list_local)&lt;br /&gt;    mk_list(remote_dir, list_remote)&lt;br /&gt;&lt;br /&gt;    # Проходим по списку файлов в локальной директори и смотрим:&lt;br /&gt;    # - если файл с одним именем есть и в локальной и удаленной директории, то&lt;br /&gt;    #   сравниваем даты изменения этих файлов и формируем массив, где говорим&lt;br /&gt;    #   заменить старый файл более свежим&lt;br /&gt;    # - если в удаленной директории нет такого файла, который есть в локальной,&lt;br /&gt;    #   то дополняем массив записью о том, что нужно скопировать этот файл из&lt;br /&gt;    #   локальной директории в удаленную&lt;br /&gt;    for name,mtime in list_local.iteritems():&lt;br /&gt;        if name in list_remote:&lt;br /&gt;            if  mtime &gt; list_remote[name]: # Сравниваем даты изменения фалов&lt;br /&gt;                list_comp[os.path.join(local_dir, name)] = os.path.join(remote_dir, name)&lt;br /&gt;            elif mtime &lt; list_remote[name]:&lt;br /&gt;                list_comp[os.path.join(remote_dir, name)] = os.path.join(local_dir, name)&lt;br /&gt;        else:&lt;br /&gt;            list_comp[os.path.join(local_dir, name)] = os.path.join(remote_dir, name)&lt;br /&gt;&lt;br /&gt;    # Проходим по списку файлов удаленной директории и заносим в массив информацию&lt;br /&gt;    # о том, что если в удаленной директории файл с таким именем, которого нет в&lt;br /&gt;    # локальной директории, то нужно скопировать его туда&lt;br /&gt;    for name,mtime in list_remote.iteritems():&lt;br /&gt;        if not name in list_local:&lt;br /&gt;            list_comp[os.path.join(remote_dir, name)] = os.path.join(local_dir, name)&lt;br /&gt;&lt;br /&gt;    # Выполняем действия описанные в массиве: копируем/заменяем старые файлы новыми&lt;br /&gt;    # в локальной и удаленной директориях&lt;br /&gt;    if len(list_comp) == 0:&lt;br /&gt;        print u"Файлы синхронизированы"&lt;br /&gt;    else:&lt;br /&gt;        print u"Выполняется синхронизация..."&lt;br /&gt;        for src,dst in list_comp.iteritems():&lt;br /&gt;            try:&lt;br /&gt;                mk_dirs(dst)&lt;br /&gt;                shutil.copy2(src, dst)&lt;br /&gt;                msg = "Файл " + src + " скопирован в " + dst&lt;br /&gt;                print unicode(msg,output_encoding)&lt;br /&gt;            except (IOError, os.error), why:&lt;br /&gt;                msg = "Не могу скопировать файл " + src + " в " + dst + ": " + why&lt;br /&gt;                print unicode(msg,output_encoding)&lt;br /&gt;&lt;br /&gt;# Основная часть&lt;br /&gt;&lt;br /&gt;for f,t in work_list.iteritems():&lt;br /&gt;    mk_sync(f,t)&lt;br /&gt;&lt;br /&gt;print u"Аникей..."&lt;br /&gt;raw_input()&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-6041278582140292981?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/gfkgssGqKmA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/gfkgssGqKmA/python.html</link><author>noreply@blogger.com (passshok)</author><thr:total>1</thr:total><feedburner:origLink>http://passshok.blogspot.com/2006/11/python.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-1795236574161101384</guid><pubDate>Sun, 15 Oct 2006 08:48:00 +0000</pubDate><atom:updated>2007-03-03T23:32:26.902+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">linux</category><title>Восстановление жесткого диска после краха</title><description>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;С чего все начиналось&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Недавно я экспериментировал с утилитой hdparm. Неподумав я набрал такую команду:&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;pre&gt;# idectl 0 rescan&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;После этого у меня зависла система. Подождав немного, я жестко перезагрузил комп. При загрузке биос сообщил мне что не может запустить операционную систему ( "Operating system not found" ).&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Анализ ситуации&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Проснувшись на следующий день, я решил понять, что же я все-таки сотворил. Прийдя на работу я почитал man idectl. idectl оказалось не чем иным как просым скриптом, который можно найти в /sbin/idectl. Этот скрипт использует вызов hdparm с ключами -U и -R. Насколько я понял из мана, эти ключи используются для горячего извлечения жесткого диска. В мане есть одна очень важная оговорка, что нужно отмонтировать все ресурсы с извлекаемого жесткого диска. Этого-то я как раз и не сделал. Вообще, представить сложно что могло произойти с содержимым диска, если на нем у меня было примонтирована куча разделов.&lt;/div&gt;&lt;pre&gt;# fdisk -l /dev/hda&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;сказал что хард девственно чист и на нем испорчена MBR (Master Boot Record). Из всего вышесказанного ясно, что как минимум на диске испорчена таблица разделов, как максимум - испорчена часть инфы. В надажде на лучшее переходим к решению проблемы.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Решение проблемы&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Существует замечательная тулза для восстановления разделов диска как &lt;a href="http://www.cgsecurity.org/wiki/TestDisk" target="_blank"&gt;TestDisk&lt;/a&gt;. Она восстанавливает достаточно много типов разделов, что дает много надежд, так как пропали у меня самые разные разделы:&lt;br /&gt;&lt;/div&gt;- fat32&lt;br /&gt;- ext2&lt;br /&gt;- ext3&lt;br /&gt;- reiserfs&lt;br /&gt;- freebsd&lt;br /&gt;- swap ^_^ (ну это не большая потеря)&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Весит она всего 1.3 мега, что очень здорово.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Теперь перейдем к делу. Скачайте нужную вам сборку под венду или под Linux. Лично я поступил так:&lt;br /&gt;- скопировал через другой комп на карточку через кардридер (больше у меня ничего не было) вышеописанную тулзу (TestDisk), уже скомпиленную под Linux. Вы же можете залить ее просто на флэшку. (для простоты изложения я вместо кардридера буду говорить флэшка)&lt;br /&gt;&lt;/div&gt;- загрузился с какого-то старого Knoppix 2.4. Примонтировал флэшку и запустил с нее&lt;br /&gt;&lt;pre&gt;# ./testdisk_static&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;Выбираем в первом меню ваш испорченный диск. Далее выбираем тип таблицы разделов - Intel. В следующем меню выбираем "Analise, после чего происходит поиск таблицы раздела по секторам, что занимает не так много времени. После сканирования появляется таблица, где можно увидеть найденные разделы, а также просмотреть файлы на них (если раздел определен корректно). Лично у меня все разделы определились нормально кроме раздела reiser. А на нем у меня было все самое важное =(.&lt;br /&gt;Итак, ищем все разделы, смотрим, правильные ли границы и записываем таблицу разделов на диск, предварительно хорошенько и многократно подумав головой. Перезагружаемся.&lt;br /&gt;Еще раз смотрим fdisk'ом что нового. Отлично, все разделы на месте. Теперь пробуем монтировать разделы по очереди. Замечательно, все замечательно монтируется. Если на этом ваша проблема решена, то я очень за вас рад. Моя проблема еще не решена, так как раздел с reiserfs так и не монтируется, да и TestDisk предупреждал меня во время восстановления, что раздел нуждается в восстановлении.&lt;br /&gt;&lt;br /&gt;Пока что на этом все. Как восстановить раздел с reiserfs я пока не знаю, так что буду ковыряться дальше, а когда закончу, напишу.&lt;br /&gt;&lt;br /&gt;&lt;ins style="font-weight: bold;"&gt;Обновление от 23 окт 2006&lt;/ins&gt;&lt;br /&gt;После долгих поисков информации и исследований оказалось, что границы всех разделов восстановлены правильно. Раньше у меня были сомнения, что это не так. Теперь я пришел к выводу, что раздел с reiserfs настолько испорчен, что просто не хочет монтироваться. Также мне удалось восстановить разел с freebsd, так что теперь у меня есть еще одно средство для исследований :)&lt;br /&gt;&lt;br /&gt;При попытке загрузить Gentoo Linux с раздела reiser как и прежде я наблюдаю вот такую ошибку:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://passshok.jino-net.ru/blog/images/reiser_panic.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://passshok.jino-net.ru/blog/images/reiser_panic.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ins style="font-weight: bold;"&gt;Обновление от 26 окт 2006&lt;/ins&gt;&lt;br /&gt;Вчера скачал и нарезал разгрузочный live dvd Gentoo 2006.1. На нем меня интересовала свежая версия утилит reiserfs. Далее, все еще в надежде восстановить всю структуру раздела, я поступил следующим образом:&lt;br /&gt;&lt;br /&gt;1) Сделал резервную копию раздела (Для этого вы можете найти место на этом же жестком диске, а желательно на другом)&lt;br /&gt;&lt;pre&gt;dd if=/dev/hda5 of=/mnt/hda6/reiserraw&lt;/pre&gt;где /dev/hda5 - испорченный раздел с reiserfs, а /mnt/hda6/reiserraw - копия этого раздела в файле.&lt;br /&gt;&lt;br /&gt;2) Ассоциировал этот файл с устройством, чтобы в дальнейшем можно было работаться ним:&lt;br /&gt;&lt;pre&gt;losetup /dev/loop1 /mnt/hda6/reiserraw&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;3) Проверил образ:&lt;br /&gt;&lt;pre&gt;reiserfsck --rebuild-tree -S -l /recovery.log /dev/loop1&lt;/pre&gt;Можно проверить и с другими параметрами, но после проверки, утилита все-равно сказала воспользоваться вышеуказанным вариантом. Если же у вас просто поврежден суперблок, то стоит попробовать:&lt;br /&gt;&lt;pre&gt;reiserfsck --rebuild-sb, --check ...&lt;/pre&gt;4) Примонтировал образ:&lt;br /&gt;&lt;pre&gt;mkdir /mnt/reiser&lt;br /&gt;mount /dev/loop1 /mnt/reiser&lt;/pre&gt;&lt;br /&gt;5) Результат оказался не самым приятным. Было восстановлено много файлов, но они не имели ни расширения, ни сгруппированы по директориям. Размещались все файлы в директориях с именами из цифр, так что невозможно было ничего понять. Таким образом, т.к. файлы были восстановлены, но нечитабельны, я решил что этот способ восстановления не дал мне желаемого результата.&lt;br /&gt;&lt;br /&gt;Дальше я попробую восстановить информацию путем использования программы, сканирующей диск по секторам и ищущей в них заголовки файлов, а также сигнатуры известных форматов файлов.&lt;br /&gt;&lt;br /&gt;&lt;ins style="font-weight: bold;"&gt;Обновление от 29 окт 2006&lt;/ins&gt;&lt;br /&gt;Я воспользовался программой &lt;a href="http://www.cgsecurity.org/wiki/TestDisk_Download" target="_blank"&gt;PhotoRec 6.5&lt;/a&gt; для восстановления данных с утерянного раздела посекторно. Хочу отметить, что я создал новый раздел fat32 для тех файлов, которые будут восстановлены программой. Интерфейс программы достаточно прост и разобраться в нем не составит труда. Выбираем раздел, с которого нужно восстановить данные, выбираем куда их сохранять и вперед.&lt;br /&gt;Теперь что я хочу сказать по поводу восстановленных данных. В самой программе есть список типов файлов, которые она может восстанавливать. Заявлено более 30 типов файлов. Я выбрал все, которые возможно. Неплохо восстановились архивы gzip, некоторые текстовые файлы, хотя текст в них не всегда соответствовал действительности. *.doc восстановились плохо, только 1 из 20, *.xcf - восстановились с ошибками и были нечитаемы. Лучше всего восстановились *.jpg, но далеко не все. Возможно вам повезет больше чем мне.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Мой вам совет: прежде чем что-то делать, хорошенько подумайте и не повторяйте моих ошибок.&lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Полезные ссылки&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://foremost.sourceforge.net/" target="_blank"&gt;http://foremost.sourceforge.net/&lt;/a&gt; - программа для raw-восстановления файлов&lt;br /&gt;&lt;a href="http://www.cgsecurity.org/wiki/TestDisk_Download" target="_blank"&gt;http://www.cgsecurity.org/wiki/TestDisk_Download&lt;/a&gt; - еще одна программа для raw-восстановления файлов&lt;br /&gt;&lt;a href="http://antrix.net/journal/techtalk/reiserfs_data_recovery_howto.comments" target="_blank"&gt;http://antrix.net/journal/techtalk/reis ... o.comments&lt;/a&gt; - некоторые советы по восстановлению reiserfs (советую посмотреть)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-1795236574161101384?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/wbprTMGPYj8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/wbprTMGPYj8/blog-post_15.html</link><author>noreply@blogger.com (passshok)</author><thr:total>3</thr:total><feedburner:origLink>http://passshok.blogspot.com/2006/10/blog-post_15.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-8128059215858336870</guid><pubDate>Wed, 21 Jun 2006 10:50:00 +0000</pubDate><atom:updated>2007-03-03T22:28:27.910+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">свободное ПО</category><title>О монополистах и тех, кто вами управляет</title><description>&lt;div style="text-align: justify;"&gt;Предлагаю вашему вниманию статью, в которой рассказывается о том, кто и как использует вас для усиления своего влияния в сети интернет. Лично я освободился частично от этого влияния, но далеко не все мои знакомые. Вот отрывок из этой статьи:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"Увы, даже прочитав все это, многие пользователи, привыкшие к ICQ, пожмут плечами и менять ничего не станут. Я это прекрасно понимаю, и тем не менее задам им всем вопрос: господа, вы действительно согласны вносить свою лепту в укрепление мирового могущества компании America Online? И даже если вам на это наплевать, осознаете ли вы, что, если завтра кому-то в AOL’е вдруг захочется, чтобы лично вы лишились доступа в ICQ, вам будет нечего этому противопоставить?"&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Дальше читаем полностью. Мне статья очень понравилась, я полностью согласен с точкой зрения автора.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.provider.net.ru/article.48.php" target="_blank"&gt;http://www.provider.net.ru/article.48.php&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-8128059215858336870?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/ltUdW8phC7w" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/ltUdW8phC7w/blog-post_21.html</link><author>noreply@blogger.com (passshok)</author><thr:total>0</thr:total><feedburner:origLink>http://passshok.blogspot.com/2006/06/blog-post_21.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-1274556873978524032</guid><pubDate>Fri, 28 Apr 2006 04:46:00 +0000</pubDate><atom:updated>2007-03-03T22:30:15.304+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">свободное ПО</category><title>К вопросу о распространении свободного ПО в России</title><description>&lt;div style="text-align: justify;"&gt;Вот напал на такую статью: &lt;a href="http://action.nclug.ru/news.php?extend.16" target="_blank"&gt;http://action.nclug.ru/news.php?extend.16&lt;/a&gt;&lt;br /&gt;Вообще говоря, статья написана в стиле революционной пропоганды. Мне лично не нравится насаждение чужих мыслей. Но в ней есть и доля истины. А вообще, я считаю, что большую роль в развитии свободного ПО играет именно государство, конкретнее, министерство образования. Если бы школьные и институтские преподаватели были действительно специалистами в своей области, то кто, как не они поведает детям о наличии альтернатив Windows. Ведь получается, что из-за необразованости и "непродвинутости" (если можно так выразиться) преподавателей ученики не знают, что рядом существует другой мир, где не надо платить бешеные деньги за новый софт и железо, где даже на стареньком 486 можно наслаждаться графикой и работать с комфортом. Ведь большинство работаю и живут так, как их научили. Не все активно интересуются технологиями и самосовершенствуются. Так почему бы не научить их пользоваться, например, ОС Linux? Вернуться назад к Microsoft Windows всегда можно. На примере конкретно моей школы, вернее моих школ (мне посчастливилось учиться в нескольких школам с компьютерными классами), я считаю, что проблема состояла в недостаточной образованности учитаелей. Они рассказывали то, чему их учили 10-15 лет назад и на тот момент это было правильно и современно. Но ведь время не стоит на месте.&lt;br /&gt;&lt;br /&gt;Если бы я что-то мог изменить, то я сделал бы следующее:&lt;br /&gt;1. По возможности поднял бы зарплату учителям, что способствовало бы притоку молодых, интересующихся новыми технологиями преподавателей как в школы, так и в институты.&lt;br /&gt;2. Внес бы в учебную программу изменения, способствующие изучению и продвижению свободного ПО.&lt;br /&gt;3. Поспособствовал продвижению свободного ПО в гос структурах, а также в учебных заведениях, что сократило бы во &lt;b&gt;много&lt;/b&gt; раз расходы как на ПО, так и на закупку оборудования. Ведь не секрет, что именно из-за высоких требований к оборудованию большинство пользователей Microsoft Windows стремятся покупать дорогое новое оборудование.&lt;br /&gt;4. Ну и немного рекламы тоже бы не помешало. Людям просто нужно дать знать, что альтернативы существуют, а там уж пусть сами решают.&lt;br /&gt;&lt;br /&gt;Ну вот, сколько понаписал. :)&lt;br /&gt;&lt;br /&gt;И еще одна замечательная ссылка: &lt;a href="http://www.posix.ru/openway/linux_leaders/" target="_blank"&gt;http://www.posix.ru/openway/linux_leaders/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-1274556873978524032?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/SWFZb25gTgs" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/SWFZb25gTgs/blog-post_28.html</link><author>noreply@blogger.com (passshok)</author><thr:total>0</thr:total><feedburner:origLink>http://passshok.blogspot.com/2006/04/blog-post_28.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3049622665299352641.post-119020239999742899</guid><pubDate>Sat, 22 Apr 2006 20:00:00 +0000</pubDate><atom:updated>2007-03-03T22:30:55.534+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">свободное ПО</category><title>25 причин, чтобы перейти на Linux</title><description>&lt;div style="text-align: justify;"&gt;Компании, образовательные и правительственные учреждения, а также другие организации по всему миру переходят с операционной системы Microsoft Windows на ОС Linux в скором порядке. Они заменяют коммерческие программы их бесплатными аналогами (open source software). Существует как как минимум 25 причин, объясняющих эту ситуацию:&lt;br /&gt;&lt;br /&gt;1. Так как Linux распространяется под свободной лицензией, как и все остальное свободное программное обеспечение, он доступен бесплатно. Linux можно свободно загрузить из интернета или купить на диске или комплекте дисков по сравнительно невысокой цене. Одна копия может быть установлена на необходимом количестве компьютеров без каких либо ограничений. Ситуация обстоит совершенно иначе с Microsoft Windows, которая запросто может стоить $100 или более за копию, установленную на одном компьютере.&lt;br /&gt;&lt;br /&gt;2. Так как Linux относится к свободному программному обеспечению, то любой может изменить его исходный код по своему вкусу и потребностям. Если измененный исходный код разработан для организации, то он может остаться ее собственностью, без распространения за ее пределы. В Microsoft Windows такое не возможно, так как изменение исходных кодов программных продуктов изначально запрещено. Исходный код это оригинальная версия программы, написанная программистом с использованием языка программирования, перед тем, как быть преобразованной компилятором в машинные коды, понятные процессору. Исходя из этого необходимо иметь исходный код, чтобы иметь возможность вносить какие-либо изменения в программу. Такая возможность изменения исходного кода под свои нужды, а также возможность сохранения их секретности очень важна для некоторых крупных организаций.&lt;br /&gt;&lt;br /&gt;3. Оперативная поддержка программных продуктов Linux систем бесплатно доступна через интернет, а также через новостные группы и форумы. Некоторые считают, что такая служба поддержки ничем не хуже аналогичных служб, предоставляемых коммерческими организациями. Поддержка Linux систем также при желании может быть переведена на коммерческую основу. К услугам такой поддержки можно отнести следующие: помощь в адаптации, помощь в установке новых программ и патчей, призванных закрыть недавно обнаруженные дыры. К счастью, потребность в таких патчах является относительно редкой для Linux.&lt;br /&gt;&lt;br /&gt;4. Вероятность того, что поддержка Linux будет приостановлена в силу запланированных обстоятельств или других факторов, ничтожно мала. Вышеописанное верно, так как исходный код всегда будет доступен каждому, кто этого захочет, включая тех, кто занимается его бесплатной поддержкой через интернет, а также компаниям, которые распространяют его бесплатно. Сравнительно с Microsoft Windows и другим платным программным обеспечением, программный код которого обычно закрыт, поддержка их продуктов становится затруднительна как с технической точки зрения, так и с правовой, особенно если компания взимает плату за обновления и новые версии их программ.&lt;br /&gt;&lt;br /&gt;5. Вероятность устаревания Linux систем практически не существует или ничтожно мала, так как архитектура UNIX, на которой базируется Linux, активно тестировалась и дорабатывалась на протяжении более 35 лет. Это доказывает предельную эффективность и безопасность Linux систем. Совершенствования системы идет высокими темпами, но новые версии остаются по прежнему совместимыми с общей архитектурой UNIX.&lt;br /&gt;&lt;br /&gt;6. Для пользователей Linux не существует таких понятий как необходимые обновления (forced upgrades), так как более ранние версии по-прежнему поддерживаются (продолжается разработка новых патчей для повышения безопасности), а также потому, что вышедшие новые версии абсолютно бесплатны и полностью совместимы с их предшественниками. В противовес вышесказанному, разработчики платного программного обеспечения имеют сильные финансовые стимулы для запланированного устаревания более ранних версий ПО для того, чтобы стимулировать пользователей к покупке более новых версий их программных продуктов.&lt;br /&gt;&lt;br /&gt;7. Не существует каких-либо ограничений или запрещающих лицензий, если пользователь захочет обновить свою версию Linux, либо установить другой дистрибутив. Кроме того, доработка и модификация, приобретение программных средств и другие затраты, связанные с переходом на новую версию относительно низки благодаря совместимости с более ранними версиями.&lt;br /&gt;&lt;br /&gt;8. Linux не имеет никаких тягостных требований, которые необходимо соблюдать в соответствии с лицензией. Компаниям с сотнями и тысячами компьютеров необходимо держать огромное количество персонала только для того, чтобы следить за тем, что все используемые компьютеры соответствуют условиям лицензирования EULA (End User License Agreement) для Microsoft Windows, Microsoft Office и других платных коммерческих продуктов. Что же касается пользователей Linux, то им можно не опасаться проверок аудиторов BSA (Business Software Alliance), а также серьезных штрафов за незначительные нарушения лицензионного соглашения.&lt;br /&gt;&lt;br /&gt;9. Linux показывает отличную безопасность, включая низкий процент заражения вирусами, троянами, червями и т.п., так как unix изначально разрабатывался с упором на безопасность, в то время как другие ОС начали заботиться о ней только спустя некоторое время. Например, пользователи не работают с системой с правами администратора (root), тем самым защищая системные файлы от порчи или заражения. Также во все дистрибутивы Linux включен мощный файрвол, включенный по умолчанию. Другой важный фактор это свободно доступный исходный код, который позволяет тысячам людей по всему миру находить уязвимости и устранять их.&lt;br /&gt;&lt;br /&gt;10. Linux устойчива к системным крахам и не требует частой перезагрузки. Это может быть важно крупным организациям, для которых несколько минут простоя могут стоять очень дорого. Linux изначально разрабатывалась как предельно надежная и устойчивая ОС с учетом всех тех наработок, которые были сделаны более чем за 35 лет существования unix-подобных систем.&lt;br /&gt;&lt;br /&gt;11. К сожалению, ассортимент программного обеспечения для Linux систем пока не так велик, как для Microsoft Windows, но важный шаг в этом направлении уже сделан и темпы разработки увеличиваются с каждым днем, привлекая все новых и новых разработчиков и программистов. Подавляющая часть программ для Linux бесплатна (включая все самые популярные), а их функциональность и производительность в большинстве случаев выше, чем у их аналогов в Microsoft Windows. Как факт, пользователи обычно находят нужные им программы в интернете, и нет более необходимости платить за них.&lt;br /&gt;&lt;br /&gt;12. Существует выбор среди многочисленных дистрибутивов Linux (несколько сотен), каждый их которых наделен разной функциональностью, но одновременно совместим со всеми остальными продуктами. Это позволяет пользователям выбрать ту версию, которая бы отвечала всем их требованиям. Это также означает, что если один из производителей Linux покинет рынок, то пользователь легко сможет перейти на другой дистрибутив. Как правило такая ситуация вызывает естественную конкуренцию, что стимулирует рост качества дистрибутивов и внедрение новинок. Выбор кажется огромным, поэтому сложно на чем-то остановиться, к примеру на Red Hat или SuSe.&lt;br /&gt;&lt;br /&gt;13. ПО под Linux достаточно гибкое, что позволяет достаточно легко адаптировать его для любых целей без значительных изменений в исходном коде. Например, при установке Linux достаточно просто настроить для работы так, чтобы он был оптимален для: домашнего пользователя, ноутбука, web-сервера, базы данных или маршрутизатора. Поведение рабочего стола, включая значки и меню, может быть сконфигурировано любым образом, в соответствии с требованиями пользователя. Рабочий стол может быть настроен таким образом, что станет похож на Microsoft Windows. Возможность свободной правки программного кода и самостоятельной компиляции дает безграничные возможности по настройке дистрибутива.&lt;br /&gt;&lt;br /&gt;14. Linux и другое бесплатное программное обеспечение использует открытые форматы файлов (open file formats). Это форматы для хранения текстовой, табличной и другой специфической информации, соответствующие широко распространенным современным стандартам. Такие форматы могут быть использованы разработчиками для создания совместимых программ, что невозможно в случае использования закрытых форматов. Это показывает проблематичность развития таких форматов, а также высокие затраты последующего перехода с них на другие. Поддержка открытых форматов в Linux дает пользователю полный контроль над информацией в том случае, если компания, создавшая этот формат уйдет с рынка, либо прекратит его поддержку.&lt;br /&gt;&lt;br /&gt;15. Linux значительно быстрее работает с определенным оборудованием. Это результат огромной работы по оптимизации исходного кода при минимально возможном объеме.&lt;br /&gt;&lt;br /&gt;16. Linux достаточно совместим с другими ОС. Например, он может считывать, записывать, копировать, удалять и всячески манипулировать с информацией, хранящейся на том же самом жестком диске, с которым работает сервер Windows, сохраняя ее в полностью совместимом формате. Microsoft Windows, напротив, не имеет доступа к разделам жесткого диска, который используется другой операционной системой.&lt;br /&gt;&lt;br /&gt;17. В Linux по-прежнему сохраняются высокие этические стандарты, так как процесс разработки и исходный код совершенно открыты. Linux никогда не осуждался в федеральном суде по нарушениям в США за незаконное распространение.&lt;br /&gt;&lt;br /&gt;18. Linux избавляет от необходимости обновления оборудования при установке новой версии ОС. Код этой ОС оптимизирован и компактен, что позволяет использовать ее одинаково эффективно на старых компьютерах, которые непригодны для новых версий Microsoft Windows.&lt;br /&gt;&lt;br /&gt;19. Linux способен работать на большом количестве платформ, не ограничиваясь только Intel-совместимыми компьютерными. Он достаточно масштабируем и пригоден для использования как на суперкомпьютерах и современных машинных установках, так и в электронном оборудовании сотовых телефонов и наручных часах.&lt;br /&gt;&lt;br /&gt;20. Linux это самый оптимальный выбор для использования в академических учреждениях по ряду причин. Одной из них является открытость, поэтому учащиеся могут изучать структуру Linux и ее взаимодействие с аппаратурой. Многие преподаватели считают, что намного важнее изучать основы компьютерного устройства, нежели обучать использованию конкретных программ, таких как, например, Microsoft Word, Microsoft Power Point. Одной из первопричин такого вывода является то, что основные принципы компьютерной электроники будут актуальны спустя еще много лет, в то время как закрытые программные продукты, не соответствующие широко распространенным стандартам, будут обречены через несколько лет.&lt;br /&gt;&lt;br /&gt;21. Для правительственных учреждений Linux и другое свободное ПО позволяет достигнуть прозрачности информации, так как она хранится в широко распространенных, общепринятых и открытых форматах, а не в закрытых, как в случае коммерческого ПО. Такая прозрачность важна для поддержания эффективной демократии. Это достигается путем хранения общедоступной информации в общепринятых стандартах и предоставления доступа к ней без использования платного программного обеспечения. Также, хранение секретной информации гораздо более безопасно с использованием открытых форматов, нежели коммерческих.&lt;br /&gt;&lt;br /&gt;22. Используя Linux, нет необходимости бояться чёрных ходов (backdoors), так как код этой ОС доступен для исследования. Черные ходы это один из секретных методов проникновения в систему. Известно, что многие компании, занимающиеся разработкой закрытого ПО, включали в свой код такие скрытые возможности, в следствии чего могли получать доступ к секретным данным компаний и конфиденциальной информации.&lt;br /&gt;&lt;br /&gt;23. Использование и поддержка Linux помогает увеличить разнообразие дистрибутивов и стимулировать естественную конкуренцию среди разработчиков бесплатного ПО. Такое соревнование может развить науку в целом, улучшить производительность и уменьшить стоимость как открытого, так и платного ПО. Экономическая теория и десятки лет исследований показывают, что монополии практически не имеют стимула к развитию инноваций, производят некачественное ПО, способствуют появлению инфляции и вызывают коррупцию политической системы.&lt;br /&gt;&lt;br /&gt;24. Linux и другое свободное ПО не только догнали, но и в некоторых случаях перегнали свои коммерческие аналоги, а также начали развиваться гораздо быстрее. Эта тенденция ускоряется, т.к. спрос в таком программном обеспечении продолжает расти и все больше отдельных энтузиастов, а также целых компаний вовлекаются в процесс разработки.&lt;br /&gt;&lt;br /&gt;25. Linux и остальное свободное ПО дает людям возможность помочь развитию технологии ПО, так как исходный код открыт, свободно доступен для изучения, улучшения и усовершенствования. Такой подход является востребованным, и одним из самых заметных примеров является корпорация IBM.&lt;br /&gt;&lt;br /&gt;26. Существует гораздо больше, чем 25 причин для перехода с других ОС на Linux для организаций по всему миру. 26-ой причиной является то, что Linux, по сравнению с Microsoft Windows, не требует дефрагментации жесткого диска. Фрагментация это распределение информации в несмежных областях жесткого диска, которое снижает эффективность работы с данными, а также общую эффективность компьютера. Дефрагментация не является сложной задачей, но проводить ее постоянно достаточно неэффективно.&lt;br /&gt;&lt;br /&gt;Также существует несколько ситуаций, в которых организации могут выиграть, заменив Linux на Microsoft Windows:&lt;br /&gt;&lt;br /&gt;1. Организация, которая снижает обороты производства и имеет действительные, но еще не использованные лицензии для Microsoft Windows, может снизить затраты на содержание персонала, заменяя экспертов по Linux администраторами Windows, так как последних нанять гораздо проще.&lt;br /&gt;&lt;br /&gt;2. Если бы Microsoft предлагала организациям гораздо более дешевый пакет услуг, включающий долговременные лицензии (и обновления) по номинальной стоимости, оплачивала новое оборудование и предоставляла поддержку и обучение, то это было бы очень привлекательным шагом. Фактически это могло бы стать победой двух сторон, так как Microsoft привлекла бы широкое общественное внимание со стороны компании, осуществляющей переход с Linux на Windows.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;a href="http://www.bellevuelinux.org/reasons_to_convert.html" target="_blank"&gt;Оригинал статьи&lt;/a&gt;&lt;br /&gt;Перевод: Ульпи Павел&lt;br /&gt;30.01.2006&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3049622665299352641-119020239999742899?l=passshok.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PassshokLinuxNotes/~4/4E6eqooi9ms" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/PassshokLinuxNotes/~3/4E6eqooi9ms/25-linux.html</link><author>noreply@blogger.com (passshok)</author><thr:total>0</thr:total><feedburner:origLink>http://passshok.blogspot.com/2006/04/25-linux.html</feedburner:origLink></item></channel></rss>

