<?xml version="1.0" encoding="windows-1251" ?>
<?xml-stylesheet type="text/xsl" href="http://www.liveinternet.ru/rss.xsl"?>
<rss xmlns:yablogs="urn:yandex-blogs" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0"><channel>  <title><![CDATA[Akademic]]></title>  <link>http://www.liveinternet.ru/users/akademic/</link>  <description><![CDATA[Дневник Akademic :: LiveInternet]]></description>  <generator>LiveInternet / LiveInternet.ru</generator>  <sy:updatePeriod>hourly</sy:updatePeriod>  <sy:updateFrequency>1</sy:updateFrequency>  <language>ru</language>  <copyright>Akademic</copyright>


<image>
 <url>http://av.li.ru/63/1171063_2431588.jpg</url>
 <title>Дневник Akademic</title>
 <link>http://www.liveinternet.ru/users/akademic/</link>
</image>

<item><title><![CDATA[Перенос смс с nokia 3109c на Android]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post154890150/]]></link>
<description><![CDATA[<p>Недавно, наконец, обзавёлся телефоном на Google Android.<br /><br /> Про сам телефон может быть напишу отдельно, а сейчас о другом.</p><br /> <br /> <p>В первый же день синхронизировал контакты через Outlook Express, заметки перекинул по bluetooth. А вот sms так и остались на старом телефоне.</p><br /> <br /> <p>Некоторые удаляют sms сразу после прочтения, а мне нравится хранить их все. <br /><br /> Это почти как почта, никогда не знаешь, что может понадобится.</p><br /> <br /> <p>К счастью, есть способ их перенести.</p><br /><h4>Шаг первый: из телефона на компьютер</h4><br /> <br /> <p>Тут всё просто. Nokia PC Suite может выгрузить sms в виде csv файлов.<br /><br /> Один файл для входящих и один для отправленых.</p><br /> <br /> <h4>Шаг второй: чем добавить в android</h4><br /> <br /> <p>Для Android я нашёл замечательное приложение <a href="https://market.android.com/details?id=com.riteshsahu.SMSBackupRestore" title="SMS Backup & Restore"><span class="caps">SMS</span> Backup & Restore</a>.<br /><br /> Оно может сохранять sms на карте памяти телефона и загружать их обратно.<br /><br /> Да плюс к тому ещё и проверяет на дубли.</p><br /> <br /> <p>Один раз проделываем сохранение sms с помощью этой программы (для этого нужно, чтобы sms уже были). Так я получил формат файла, в котором программа <span class="caps">SMS</span> Backup & Restore хранит свои данные.</p><br /> <br /> <p>Оказалось, что это простой xml.</p><br /> <br /> <p>Дел осталось совсем чуть: написать конвертер из csv, который генерирует Nokia PC Suite в xml, используемый <span class="caps">SMS</span> Backup & Restore.</p><br /> <br /> <h4>Шаг третий: готовим xml</h4><br /> <br /> <p>Программку я написал на Python, в конце поста есть ссылка на неё.</p><br /> <br /> <p>Пользоваться ей просто:</p><br /> <br /> <p><code>python sms_convert.py &lt;имя_файла.csv> &lt;тип> > &lt;имя_файла.xml></code></p><br /> <br /> <p>Тип это значение, определяющее входящие sms в файле или отправленные.<br /><br /> Для входящих тип равен 1, а для отправленных 2.</p><br /> <br /> <p>Полученные файлы с sms надо положить в каталог SMSBackupRestore на карте памяти телефона.</p><br /> <br /> <p>После этого надо отключить телефон от компьютера, дождаться когда телефон инициализирует карту памяти и восстановить sms из файлов, запустив программу <span class="caps">SMS</span> Backup & Restore на телефоне.</p><br /> <br /> <p>Вот и всё.</p><br /> <br /> <h4>Скачать программу</h4><br /> <br /> <p>А вот и ссылка на скачивание: <a href="http://akademic.name/media/files/nokia2android/sms_convert.py" title="sms_convert.py">sms_convert.py</a></p><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2011/perenos-sms-s-nokia-3109c-na-android/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Sun, 06 Mar 2011 20:13:25 +0300]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post154890150/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post154890150/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post154890150/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[GleeBox - расширение для Chome]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post136192218/]]></link>
<description><![CDATA[<p>Зашёл тут по случаю посмотреть плагинчики для браузера chromium. <br /><br /> Блокиратор рекламы наконец нормальный поставил, блокиратор флеша.</p><br /> <br /> <p>И нашёл плагин который давно искал. А именно плагин, позволяющий лазать в инете без помощи мыши. Дома за столом мышку дёргать неудобно, а постоянно хвататься то за мышь то за клавиатуру достаёт, и рука устаёт к тому же. Да и печатаю теперь я реактивно (по сравнению с собой год назад), быстрее кнопок понажимать, чем к мышке тянуться.</p><br /><p>Ранее я пробовал плагин vimperator для firefox. Но после последней попытки я так и не понял как мне открыть новое окно.</p><br /> <br /> <p>Да и к тому же он в основном заведует перемещением по страницы, а для этого мне всегда хватало и стандартных комбинаций клавиш.<br /><br /> А вот переходить по ссылкам, быстро искать в гугле, быстро расшаривать любую страничку в Баззе с клавиатуры никак.</p><br /> <br /> <p>Кстати для chromium тоже есть расширение для навигации в стиле vim. Называется оно <a href="https://chrome.google.com/extensions/detail/dbepggeogbaibhgnhhndojpepiihcmeb?hl=en" title="Vimium">Vimium</a>. Его, кстати, может буду использовать в дополнение к GleeBox, т.к. в Vimium есть полезная для нетбуков штучка   горизонтальный скроллинг.</p><br /> <br /> <p>Вернёмся однако к теме поста. Итак, <a href="https://chrome.google.com/extensions/detail/miinkdcjglbkbanpkghnkgkgbamdkgji?hl=en" title="GleeBox">GleeBox</a>   это приятная на вид командная строка для совершения различных операций в интернете.</p><br /> <br /> <p>Операции эти весьма разнообразны: можно искать в поисковике, искать ссылки на странице по части слова из этой ссылки, переходить по найденным ссылкам, переключаться между ссылками на страницах, переходить по разделам отображённого документа, если он правильно отформатирован, постить в твиттер, в базз, добавлять rss   со страницы в гуглридер, получать укороченную ссылку текущей страницы, управлять воспроизведением видео на youtube, делать скриншоты страниц, ещё что можете придумать.</p><br /> <br /> <p>Кроме встроенных команд , есть ещё внешние сборники команд <a href="http://yubnub.org/documentation/jeremys_picks" title="YubNub">YubNub</a> и <a href="http://quixapp.com/help/" title="Quix">Quix</a>, которые перекрывают все возможные запросы.<br /><br /> А если и этого окажется мало, то имеется возможность писать свои собственные команды.</p><br /> <br /> <p>Да команд чертовски много, но они же не все нужны одному человеку. Достаточно выучить полтора десятка нужных именно вам и жизнь станет намного проще.</p><br /> <br /> <p>Кстати, данный плагин доступен также для Firefox и Safari. Думаю со времене появится версия и для Explorer, если у создателя нет предубеждения.</p><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2010/gleebox-rasshirenie-dlya-chome/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Fri, 01 Oct 2010 12:24:26 +0400]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post136192218/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post136192218/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post136192218/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[Слепая печать на английском]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post133589181/]]></link>
<description><![CDATA[<p>Последнее время не трачу время на клавогонках. <br /><br /> А значит и достижение скорости в 350 на русском символов пока не грозит.<br /><br /> Однако уже очень хочется начать печатать на английском не глядя на клавиатуру.<br /><br /> Тут образовались некоторые сложности.</p><br /><p>Дело в том, что ранее я слышал что вариантов различных раскладок английских букв несколько.<br /><br /> Как минимум это qwerty и dvorak.<br /><br /> Люди, которые знают о раскладках говорят, что раскладка Дворака позволяет набирать текст быстрее и с меньшим утомлением пальцев.<br /><br /> Заглянув в википедию, я узнал, что существует даже <a href="http://ru.wikipedia.org/wiki/%D0%9A%D0%BB%D0%B0%D0%B2%D0%B8%D0%B0%D1%82%D1%83%D1%80%D0%B0_%D0%94%D0%B2%D0%BE%D1%80%D0%B0%D0%BA%D0%B0#.D0.94.D0.B2.D0.BE.D1.80.D0.B0.D0.BA_.D0.B4.D0.BB.D1.8F_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D0.B8.D1.81.D1.82.D0.BE.D0.B2" title="Дворак для прогрммистов">раскладка Дворака для программистов</a></p><br /> <br /> <p>Как можно видеть, буквы сильно переставлены по сравнению с тем, что можно видеть на современных клавиатурах. Программистскую раскладку выделяет перенос различных скобочек и прочих часто нужных в программировании символов в нижний регистр цифровых клавиш.</p><br /> <br /> <p>В принципе вот оно: то что нужно. <br /><br /> Но почитав немного про клавиатуру Дворака выяснились некоторые детали:<br /><br /> 1. Горячие клавиши в программах переехали. Это вообще-то катастрофа. Ctrl+C, Ctrl+V, Ctrl+X, Ctrl+S, Win+R и т.д. Об этом не думали, т.к. Дворак разрабатывал раскладку для электрических печатных машинок.<br /><br /> 2. Сразу я этого не заметил, но в программистской раскладке цифры расположены не в порядке возрастания (вместо 1234567689 получили 7531902468). Логика, конечно прослеживается, но для меня это слишком.</p><br /> <br /> <p>Далее я наткнулся на <a href="http://ru.wikipedia.org/wiki/Colemak" title="Colemak">раскладку Colemak</a><br /><br /> Она позиционируется как адаптация Дворака для компьютеров. Часть горячих клавиш оставлена на своих местах, часть переместилась так, что всё равно достижима левой рукой. Так же часть букв находится на тех же клавишах, что и в qwerty, что, как говорит автор, позволяет упростить переход на эту раскладку.</p><br /> <br /> <p>Можно решить, что это то что нужно, но проблемы не исчезают:<br /><br /> 1. Хотя часть горячих клавиш осталась на местах, но часть то переехала. Кажется что это незначительно, ведь они всё равно близко, можно и переучиться. Но вспомним про русскую раскладку, на которой горячие клавиши располагаются там же, где они были на qwerty. Получается, что они будут в разных местах на разных языках, что довольно неудобно.<br /><br /> Я пробовал найти разные решения. Я нашёл <a href="http://code.google.com/p/dvorak-qwerty/" title="dworak-qwerty">dvorak-qwerty</a> . Суть работы проста: при нажатии на Ctrl раскладка переключается на qwerty. Это то, о чём я подумал в первую очередь. Так, пожалуй, решается основная часть проблем. Программа поставляется в исходных кодах и её легко переделать с dvorak на colemak.</p><br /> <br /> <p>2. Однако остаются ещё проблемы с vim. Все горячие клавиши vim так же перераспределились по клавиатуре. Особенно это касается hjkl. Да и прочих часто используемых: y p g i u. Это реальная головная боль. Автор раскладки Colemak поддерживает свой конфиг для vim, упрощающий работу в этом редакторе. Но этот конфиг не соответствует стандартному расположению команд vim, что весьма печально. Есть на форуме пара людей, которые делали что-то похожее на стандартную конфигурацию, но у них тоже многое плохо.</p><br /> <br /> <p>Выводы я сделал для себя такие: можно решить текущие проблемы с помощью программы dvorak-qwerty и написания конфига для vim. Однако сейчас с этим совсем не хочется заморачиваться. Так что буду тренировать qwerty, а там может на Colemak перейду, если вдруг покажется целесообразным.</p><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2010/slepaya-pechat-na-anglijskom/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Sun, 29 Aug 2010 13:15:24 +0400]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post133589181/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post133589181/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post133589181/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[Про электричество]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post133055537/]]></link>
<description><![CDATA[<p>Вот и я созрел для написания на эту тему.<br /><br /> Как вы уже знаете в пятницу вечером отрубилось электричество в большей части города.<br /><br /> В новостях писали 40%, но по районам, кажется, больше выходит.<br /><br /> Всего минут на 40, но чем это всё обернулось?</p><br /><p>Нет, я далёк был в тот момент от паники, хотя верю, что у людей застрявших в метро, поводов было предостаточно. Ещё бы, под землёй и в полной темноте (я себе так представляю).</p><br /> <br /> <p>Но вернёмся к более глобальным вещам.<br /><br /> Из-за отсутствия электричества прекратилась подача воды, выключились светофоры, встали трамваи, троллейбусы, электроплиты не работают   не поесть, холодильники начали размораживаться (это ещё в тот день прохладно было), встали электрички, остановились автоматические двери в супермаркетах, выключилось радио.</p><br /> <br /> <p>Всё можно понять, на холодильники да электроплиты ИБП не ставят пока ещё, но, блин, радио.<br /><br /> Мало волнует, что компьютер выключился, первый раз что ли. Но когда начинает поступать информация, что в куче районов света нет и не работают светофоры, думаешь, может надо что-то предпринять, а то как-то всё серьёзно.<br /><br /> А как узнать? Интернета ни у кого нет, телевизор тоже не включишь. Тут вспоминаешь про  устаревшие  радиотехнологии, которые по идее должны бы и работать (как же ещё можно оперативно оповестить людей о ЧП?)<br /><br /> И вот тут наступает полное недоумение: включаешь радио, а эфир пуст. Это довольно тревожно. Так ведь и испугаться недолго. С радио это они зря, должно работать всегда, больше новости не откуда узнать.</p><br /> <br /> <p>Забавное кстати следствие отключения электричества.<br /><br /> Можно было бы пойти в магазин и купить дизель-генератор, только вот кассы тоже электрические и не работаю, а значит и не продадут ничего.</p><br /> <br /> <p>Что работало? Работали стационарные телефоны, сотовая связь, интернет. Городские телефоны всегда питались своими силами, за счёт чего и надёжность. Да и телекомы привыкшие к отключениям электричества по пол-района обзавелись ИБП на узлах. Только вот воспользоваться интернетом некому(ну почти, повезло владельцем ноутов и домашних ИБП). А сотовые глючили так, как я никогда не видел (совершенно прикольное сообщение  набранный номер не существует ).</p><br /> <br /> <p>П.С. Когда выяснили масштаб проблемы и надоело стоять на улице, пошли посмотреть в инете что же произошло. Нашли куцую новость на ленте, а фонтанка так вообще не работала (видимо сервер тоже пал). Послушали радио через вконтакт, нигде не слова. На музыкальных станциях музыка, на Эхе трындели про что-то своё какие-то люди, всем пофиг. А скоро и свет появился. Думаю конца света (большого) никто не заметит, всем будет пофиг.</p><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2010/pro-elektrichestvo/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Sun, 22 Aug 2010 00:53:21 +0400]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post133055537/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post133055537/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post133055537/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[Кины]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post128580716/]]></link>
<description><![CDATA[<p>Давненько же я не писал... Эх...<br /><br /> Ну ничего, будем навёрстывать потихоньку.</p><br /> <br /> <p>Сериалы, что я качал/смотрел, все позаканчивались. Хаус завершился бездарно. Лост бездарно, а развитие шестого сезона в первой половине мне даже нравилось, после застоя в третьем и чертвёртом.  Ви  стал мусором с третьего эпизода где-то... Ну и т.п.</p><br /> <br /> <p>Разве что доснимают второй сезон  Во все тяжкие , но с сюжетом там всё хуже и хуже.</p><br /> <br /> <p>Вот позавчера решил поискать что бы такого поглядеть на ночь глядя, и нашёл.</p><br /><p>Нашёл я фильм <a href="http://www.kinopoisk.ru/level/1/film/437414/" title="Rampage - Неистовство">Rampage</a> немецкого режиссёра Уве Болла.<br /><br /> Снято довольно странно, камера постоянно дёргается, но действо весьма трешовое. Ну там если по ссылке почитать, понятно станет про что фильм.</p><br /> <br /> <p>Во время просмотра вспомнил замечательную игрушку  Постал , заодно вспомнил, что по ней, вроде, фильм снимать собирались. Оказалось сняли. Кто? Да тот же самый Уве Болл!<br /><br /> Собственно страничка на кинопоиске про <a href="http://www.kinopoisk.ru/level/1/film/197146/" title="Postal ">Постал</a></p><br /> <br /> <p>Актёр что играет главного героя как нельзя лучше подходит, как только он появился в кадре я сразу понял, что это он. А, да! В фильме есть использование кошки в качестве глушителя!!!<br /><br /> Смотрел в переводе Гоблина, так что мата хоть отбавляй, а вот субтитры пришлось отключить. Во-первых они мешались на экране, во вторых они не соответствуют звуку, понятно по какой причине.</p><br /> <br /> <p>По завершении просмотра фильма, очень захотелось поиграть в саму игру. Но пока не судьба, ибо поздно уже, да и боюсь стародавняя графика может испортить детские впечатления.</p><br /> <br /> <p>Уве Болл имеет ещё несколько фильмов по игрушкам. На очереди Far Cry и Bloodrayne.<br /><br /> Вот и всё пожалуй на сегодня. А, да, совсем забыл. Если кто желает посмотреть сии фильмы, то учтите сразу: они НЕ интеллектуальны, это Треш, нет ТРЭЭЭШШШ!!! Пиво приветствуется.</p><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2010/kiny/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Thu, 17 Jun 2010 00:38:45 +0400]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post128580716/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post128580716/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post128580716/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[Таких законодателей за овалы и на люстру]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post126956703/]]></link>
<description><![CDATA[<p>Вот сейчас уже таки перепосчу.<br /><br /> Дело даже не в самой поправке к закону, а в том как всё происходит.<br /><br /> <br/> <OBJECT classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://active.macromedia.com/flash2/cabs/swflash.cab#version=6,0,0,0'  width=640  height=385> <param name="allowscriptaccess" value="always" /> <PARAM NAME=movie VALUE='http://www.youtube.com/v/3-gVSKARKPM&color1=0xb1b1b1&color2=0xd0d0d0&hl=en_US&feature=player_embedded&fs=1'> <param name='allowFullScreen' value="true" /> <param name=wmode value=transparent> <PARAM NAME=menu VALUE=false> <PARAM NAME=quality VALUE=high> <EMBED src='http://www.youtube.com/v/3-gVSKARKPM&color1=0xb1b1b1&color2=0xd0d0d0&hl=en_US&feature=player_embedded&fs=1' menu=false quality=high TYPE='application/x-shockwave-flash'  PLUGINSPAGE='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash'   width=640  height=385 wmode=transparent allowFullScreen='true' allowscriptaccess='always'></EMBED></OBJECT> <br/></p><br /><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2010/takih-zakonodatelej-za-ovaly-i-na-lyustru/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Sun, 23 May 2010 14:10:04 +0400]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post126956703/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post126956703/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post126956703/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[Слепая печать. Прогресс за месяц]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post125160141/]]></link>
<description><![CDATA[<p>Вот и прошёл месяц с тех пор как я стал учиться печатать вслепую.<br /><br /> Накопилось данных, которыми я хочу поделиться.</p><br /> <br /> <p>В прошлом посте <a href="http://akademic.name/blog/2010/pechat-vslepuyu/" title="Печать вслепую">Печать вслепую</a> запечатлено, с чего я начал.<br /><br /> А именно: максимум 211 символов в секунду, средняя скорость 177.</p><br /> <br /> <p>Сегодня у меня вот такие результаты:<br /><br /> За месяц набрано 1100 текстов, это заняло 25 часов чистого времени;<br /><br /> Максимальная скорость 284 знака в секунду, средняя 244 знака в секунду.</p><br /><p>Ниже приведён график моего обучения. Он ведётся на клавогонках автоматически.</p><br /> <br /> <p><img src="http://akademic.name/media/files/graph/type_graph1.png" title="График обучения" alt="График обучения" /></p><br /> <br /> <p>Зона отмеченная римской цифрой один   печать глядя на клавиатуру.<br /><br /> Отмеченная цифрой два   прошедший месяц, в течение которого я набирал вслепую на маленькой клавиатуре нетбука.<br /><br /> Примерно через 10 дней занятий по полчаса-часу средняя скорость набора перевалила за 200 знаков в минуту.<br /><br /> Многим этого было бы достаточно(видимо этим и объясняются недельные курсы машинописи), но мне было интересно побить свой рекорд. Смысла набирать медленнее чем раньше нет никакого.</p><br /> <br /> <p>Побить рекорд удалось спустя две недели с момента начала занятий. Получилось набрать 252 знака за минуту.<br /><br /> Вышло это только благодаря тому, что я сделал всего две ошибки в тексте (до этого на текст выходило не менее 10 ошибок). Сокращение количества ошибок дало прирост в скорости 30 знаков.</p><br /> <br /> <p>Что хочется отметить. Когда я набирал глядя на клавиатуру, рекорд в 251 знак дался особым напряжением памяти (поскольку на экран смотришь редко, выигрышная стратегия заключается в запоминании отрывка текста максимальной длины) и страшной долбёжкой по клавиатуре.<br /><br /> Сейчас же когда моя средняя скорость 244 знака, такой же результат получается без усилия. Т.е. от набора не устаёшь, это ощутимый плюс.</p><br /> <br /> <p>Мне кажется, что печатая глядя на клавиатуру, можно достичь результата в 300 знаков, но долго так набирать не выйдет, скорее всего, да и на человека будет страшно смотреть.</p><br /> <br /> <p>Моя цель средняя скорость набора более 350 знаков в минуту, тогда, наверное, я начну учить набор вслепую на ангельском.</p><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2010/slepaya-pechat-progress-za-mesyac/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Fri, 23 Apr 2010 10:58:28 +0400]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post125160141/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post125160141/]]></guid>
<enclosure url="http://akademic.name/media/files/graph/type_graph1.png"  type="image/jpeg" width="" height=""/>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post125160141/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[Печать вслепую]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post123398461/]]></link>
<description><![CDATA[<p>Раньше никогда не пытался научиться печатать вслепую. Я считал, что преимущества в этом никакого нет, да я и так печатал быстрее всех окружающих меня людей. Не знаю с какой скоростью, но довольно быстро.<br /><br /> В-общем, то что я глядел на клавиатуру меня ничуть не смущало.</p><br /> <br /> <p>До сих пор...</p><br /><p> Недавно  я увидел как человек печатает десятипальцевым методом.<br /><br /> На тот момент мне было с чем сравнивать, я тогда играл в интернет игрушку typeracer.ru<br /><br /> Мой рекорд составлял 251 символ в минуту, а средняя скорость набора была в районе 230 символов в минуту.</p><br /> <br /> <p>Человек же вслепую набрал с первого раза в районе 350 символов в минуту.<br /><br /> Причём это явно не лучший результат, так как количество опечаток, которые пришлось исправить, а соответственно и потратить на это время, было более 10 на отрывок из 150 200 символов.</p><br /> <br /> <p>Собственно, с того момента я подумал, что неплохо бы тоже так.<br /><br /> Ну подумал и подумал, делать ничего не стал.<br /><br /> Но в джуике недавно проводился опрос на тему  Чему бы вы хотели научиться в ближайшее время?  или что-то вроде. Тут я и вспомнил.<br /><br /> Ещё к мотивации добаилась необходимость в последнее время писать много писем с кучей букв.</p><br /> <br /> <p>Вот как-то так я и собрался наконец научиться.</p><br /> <br /> <p>Поставил себе программку для тренировки   ktouch (это клавиатурный тренажёр для KDE4).<br /><br /> Я уже писал <a href="http://akademic.name/blog/2010/raskladka-mashinopis-dlya-ktouch/" title="Раскладка машинопись для ktouch">про раскладку "машинопись" для ktouch</a>.</p><br /> <br /> <p>За два или три вечера удалось запомнить где какие кнопки находятся и приучить себя нажимать на них нужными пальцами и не глядя.</p><br /> <br /> <p>Проблемы доставляют буквы в верхнем регистре и особенно знаки препинания.</p><br /> <br /> <p>Когда упражнения в ktouch закончились, и стало скучно. В то же время качество и скорость набора оставляли желать.</p><br /> <br /> <p>Вот тут я и вспомнил про <a href="http://typeracer.ru" title="Клавогонки">typeracer.ru</a>. Сейчас этот сайт называется клавогонки и находится по адресу <a href="http://klavogonki.ru" title="Клавогонки">klavogonki.ru</a> и решил что это будет правильным продолжением обучения.</p><br /> <br /> <p>Суть простая: на сайте даётся текст для набора   отрывок из какого-либо произведения. Процесс набора визуализируется машинкой едущей от старта к финишу в процессе набора. Интереса добавляет и тот факт, что параллельно этот же текст набирают другие люди и их машинки тоже отображаются. Приятно видеть, что ты набираешь быстрее других.</p><br /> <br /> <p>Если зарегистрироваться, то в профиле можно будет смотреть статистику по скорости набора. Эти много букв как раз ради статистика и затевались.</p><br /> <br /> <p>В этой статистике сохранены данные о моей скорости, когда я печатал глядя на клавиатуру. А теперь появились и новые данные о скорости набора слепым методом.<br /><br /> Как я сказал в начале поста старая скорость: максимум 251, а средняя 230.</p><br /> <br /> <p>Чуда не произошло. Сейчас максимум 211, а средняя 177.</p><br /> <br /> <p>Но тут есть две тонкости.</p><br /> <br /> <ol><br /> <li>Ранше я набирал на обычной клавиатуре, а теперь на маленькой нетбучной. Тест на большой клавиатуре выявил среднюю скорость 195 символов в минуту, а рекорд 230.</li><br /> <li>Скорость набора растёт.</li><br /> </ol><br /> <br /> <p>Какова цель? Набирать с такой скоростью, чтобы это занимало меньше времени, чем я придумываю что написать.</p><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2010/pechat-vslepuyu/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Thu, 25 Mar 2010 13:01:51 +0300]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post123398461/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post123398461/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post123398461/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[Засыпание ноутбука в KDE4]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post123015562/]]></link>
<description><![CDATA[<p>После некоторого времени отдыха и наслаждения дебианом на ноутбуке вспомнил об одной довольно часто используемой вещи.<br /><br /> Начал я её использовать ещё в убунте, т.к. там оно работало.<br /><br /> Говорю я о засыпании на винчестер и в <span class="caps">RAM</span>.</p><br /><p>Так вот в свежеустановленном дебиане эти функции не работали.<br /><br /> Оно и понятно, я ведь их не настраивал.<br /><br /> Прочитав несколько форумов, в том числе и на kde.org, и перепробовав пакеты hibernate и uswsusp я ничего не добился.<br /><br /> Хотя нет, всё же добился. После установки этих пакетов я уже мог засыпать ноут из консоли, но замечательные кнопочки в меню kde не работали.</p><br /> <br /> <p>В поисках правды я добрался до файла <code>/usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux</code><br /><br /> В конце файла я обнаружил комментарий: #We only support pm-utils<br /><br /> Оказалось что в дебиане есть пакет с таким названием. После установки пакета кнопки засыпания в меню заработали.</p><br /> <br /> <p>Вот собственно и всё. Продолжаю наслаждаться и отдыхать.</p><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2010/zasypanie-noutbuka-v-kde4/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Fri, 19 Mar 2010 10:04:14 +0300]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post123015562/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post123015562/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post123015562/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[Печать и сканирование на МФУ Samsung scx-4220 подключенном к серверу]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post122728787/]]></link>
<description><![CDATA[<p>Уже с полгода у меня имеется МФУ Samsung <span class="caps">SCX</span>-4220, который я подключил к ноутбуку.<br /><br /> <br /><br /> Т.е. поставил драйвера, скачанные с сайта самсунга. Всё работало и печать и сканирование. <br /><br /> <br /><br /> Одна только мелочь напрягала   компьютеров дома много, а печатать можно только с одного.<br /><br /> <br /><br /> Если с принтером изначально всё было ясно, то как сканировать по сети я не знал, хотя и предполагал, что saned должен это уметь.<br /><br /> <br /><br /> Но недавно мне попалась на глаза заметка про то как <a title="Расшариваем сканер по сети" href="http://leolik.blogspot.com/2010/02/blog-post.html">расшарить сканер по сети</a></p><br /> <p><br /><br /> </p><br /> <p>Как я ранее рассказывал, есть у меня дома сервер, который качает/раздаёт торренты.<br /><br /> <br /><br /> Вот к нему я и подключил МФУ.<br /><br /> <br /><br /> В-общем, воспользовавшись статьёй, ссылку на которую я привёл выше, я расшарил сканер,<br /><br /> <br /><br /> заодно выяснив, что теперь saned поддерживает samsung scx-4220 из коробки.<br /><br /> <br /><br /> Правда перед этим я потратил много времени в попытках выяснить куда пропали драйвера для linux с сайта samsung.</p><br /> <p>&nbsp;</p><br /> <p>Для принтера также имеется поддержка в виде пакета splix.<br /><br /> <br /><br /> После установки данного пакета в веб-интерфейсе cupsd появилась возможность выбрать нужный принтер. Модели 4220 там нет, подойдёт 4200.<br /><br /> <br /><br /> Кроме всего прочего надо прописать в /etc/cups/cupsd.conf ip-адреса или подсеть компьютеров для которых разрешена печать.</p><br /> <p>&nbsp;</p><br /> <p>В директиве <code>Listen</code> вместо 127.0.0.1 надо вписать адрес, который присвоен серверу в локальной сети(например 192.168.0.2),<br /><br /> <br /><br /> а в секции <code><location></location></code><br /><br /> <br /><br /> вписать разрешающие правила для клиентов. делается это также как и для веб-сервера apache.<br /><br /> <br /><br /> Например,<br /><br /> <br /><br /> <code>Allow from 192.168.0.4</code><br /><br /> <br /><br /> или<br /><br /> <br /><br /> <code>Allow from 192.168.0.0/24</code><br /><br /> <br /><br /> Это на сервере.</p><br /> <p>&nbsp;</p><br /> <p>На клиентских компьютерах достаточно поставить пакет cups-client.<br /><br /> <br /><br /> Далее прописываем в /etc/cups/client.conf строчку<br /><br /> <br /><br /> <code>ServerName ip_сервера</code><br /><br /> <br /><br /> В примере выше ip_сервера это 192.168.0.2<br /><br /> <br /><br /> После этого набираем<br /><br /> <br /><br /> <code>sudo cupsenable</code><br /><br /> <br /><br /> и наслаждаемся печатью.</p><br /> <p><br /><br /> Оригинал можно почитать на <a href="http://akademic.name/blog/2010/pechat-i-skanirovanie-na-mfu-samsung-scx-4220-podklyuchennomu-k-/">http://akademic.name</a></p>]]></description>
<pubDate><![CDATA[Sun, 14 Mar 2010 22:04:22 +0300]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post122728787/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post122728787/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post122728787/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[debian + GMA500 + kernel 2.6.32]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post122270421/]]></link>
<description><![CDATA[<p>Вот и надоела мне глючащая убунта и я, наконец, решился на установку дебиана на свой многострадальный нетбук Dell Inspirion 1010.</p><br /> <p>&nbsp;</p><br /> <p>В-общем, собственно установка проблем не вызывает. Всё как всегда. Но вот видео   это проблема. <span class="caps">GMA</span> 500 всё так же не имеет нормальных дров для линукс. Да и виндузятники сетуют.<br /><br /> <br /><br /> Пару недель назад нашёл я руководство для сборки полного комплекта модулей для GMA500 для Debian sid.<br /><br /> <br /><br /> Вот и ссылочка на него:<br /><br /> <br /><br /> <a href="http://blogs.koolwal.net/2009/11/05/howto-compiling-intel-atom-poulsbo-gma-500-graphics-driver-on-debian/">http://blogs.koolwal.net/2009/11/05/howto-compiling-intel-atom-poulsbo-gma-500-graphics-driver-on-debian/</a></p><br /> <p>&nbsp;</p><br /> <p>Автор руководства даже собрал пакеты для debian. Отличная новость. Удобнее всего воспользоваться ими. Но вот только ядра для которого собран модуль уже нет в репозитории, да и модуль для xorg также требует отсутствующий пакет.</p><br /> <p>&nbsp;</p><br /> <p>Все эти проблемы я успешно решил. Сейчас расскажу как.</p><br /> <p><br /><br /> </p><br /> <p>Модуль для ядра придётся собрать самостоятельно.</p><br /> <p>&nbsp;</p><br /> <p>Ставим linux-headers для текущего ядра. В моём случае это ядро 2.6.32.<br /><br /> <br /><br /> Скачиваем исходники модуля ядра как описано в руководстве по ссылке, либо другим способом.<br /><br /> <br /><br /> Распаковываем и вводим в директории, куда распаковали команду:</p><br /> <p>&nbsp;</p><br /> <p><code>make DRM_MODULES= psb </code></p><br /> <p>&nbsp;</p><br /> <p>Должна начаться сборка. Может повезти как автору англоязычного руководства. А может не повезти как мне.</p><br /> <p>&nbsp;</p><br /> <p>При компиляции вылезут ошибки. <br /><br /> <br /><br /> Первая из них что-то про struct agp_memory.<br /><br /> <br /><br /> В этом случае надо открыть файл /usr/src/linux-headers-2.6.32 2-common/include/linux/agp_backend.h (он из пакета linux-headers-common).<br /><br /> <br /><br /> В-общем, находим в этом файле struct agp_memory и добавляем в эту структуру строчку</p><br /> <p>&nbsp;</p><br /> <p><code>unsigned long *memory;</code></p><br /> <p>&nbsp;</p><br /> <p>Теперь компиляция продвинется дальше, но снова возможно вылезут ошибки.<br /><br /> <br /><br /> Ошибки и решения я нашёл здесь:<br /><br /> <br /><br /> <a href="http://ubuntuforums.org/showthread.php?t=1330751">http://ubuntuforums.org/showthread.php?t=1330751</a></p><br /> <p>&nbsp;</p><br /> <p>В выводе первой ошибки есть ключевое слово phys_to_gart<br /><br /> <br /><br /> Для её исправления надо открыть файл drm_agpsupport.c (он находятся в исходниках модуля ядра, который мы пытаемся собрать)<br /><br /> <br /><br /> Проблемная строчка <code>mem-&gt;pages[mem-&gt;page_count++] = phys_to_gart(page_to_phys(*cur_page));</code> это где-то в районе 527 строки.<br /><br /> <br /><br /> Надо подняться выше к началу функции (где-то строка 509) и добавить строчку</p><br /> <p>&nbsp;</p><br /> <p><code>#define phys_to_gart(x) (x)</code></p><br /> <p>&nbsp;</p><br /> <p>Вторая ошибка в файле <code>drm_edid.c</code> в строке</p><br /> <p>&nbsp;</p><br /> <p><code>printk(KERN_ERR <span class="caps">PREFIX</span>  Invalid _DDC data\n );</code></p><br /> <p>&nbsp;</p><br /> <p><span class="caps">PREFIX</span> нигде не определён, поэтому надо его определить.<br /><br /> <br /><br /> Можно прямо перед проблемной строкой добавить</p><br /> <p>&nbsp;</p><br /> <p><code>#define <span class="caps">PREFIX</span>  PSB(edid)  </code></p><br /> <p>&nbsp;</p><br /> <p>Это решит проблему.</p><br /> <p>&nbsp;</p><br /> <p>После этих манипуляций модуль ядра у меня собрался.</p><br /> <p>&nbsp;</p><br /> <p>Делаем <code>make install</code><br /><br /> <br /><br /> Потом <code>modpobe psb</code></p><br /> <p>&nbsp;</p><br /> <p>Консоль стала в нативном разрешении. Далее вопрос с модулем для xorg.<br /><br /> <br /><br /> Собираться у меня модуль отказался, поэтому пришлось искать подходящий xorg.<br /><br /> <br /><br /> Нашёл я его в убунте.</p><br /> <p>&nbsp;</p><br /> <p>Добавляем репозиторий убунты <code>deb <a href="http://ru.archive.ubuntu.com/ubuntu/">http://ru.archive.ubuntu.com/ubuntu/</a> karmic main</code><br /><br /> <br /><br /> и ставим оттуда xserver-xorg 1:7.4+3ubuntu7 и xserver-xorg-core 2:1.6.4 2ubuntu4 и соответственно нужные модули xserver-xorg-input-{kbd,mouse,synaptics}</p><br /> <p>&nbsp;</p><br /> <p>После чего ставим все пакеты из англоязычного руководства, кроме модуля ядра.<br /><br /> <br /><br /> Настраиваем xorg.conf как написано там же и наслаждаемся работающей графикой.</p><br /> <p>&nbsp;</p><br /> <p>На всякий случай выкладываю все пакеты здесь.</p><br /> <p>&nbsp;</p><br /> <p><a href="http://akademic.name/media/files/dell/debian/libdrm-poulsbo-dev_2.3.0-1squeeze1_i386.deb">libdrm-poulsbo-dev_2.3.0 1squeeze1_i386.deb</a><br /><br /> <br /><br /> <a href="http://akademic.name/media/files/dell/debian/libdrm-poulsbo1-dbg_2.3.0-1squeeze1_i386.deb">libdrm-poulsbo1-dbg_2.3.0 1squeeze1_i386.deb</a><br /><br /> <br /><br /> <a href="http://akademic.name/media/files/dell/debian/libdrm-poulsbo1_2.3.0-1squeeze1_i386.deb">libdrm-poulsbo1_2.3.0 1squeeze1_i386.deb</a><br /><br /> <br /><br /> <a href="http://akademic.name/media/files/dell/debian/libva-dev_0.29-1squeeze1_i386.deb">libva-dev_0.29 1squeeze1_i386.deb</a><br /><br /> <br /><br /> <a href="http://akademic.name/media/files/dell/debian/libva1_0.29-1squeeze1_i386.deb">libva1_0.29 1squeeze1_i386.deb</a><br /><br /> <br /><br /> <a href="http://akademic.name/media/files/dell/debian/poulsbo-driver-2d_1.1-1squeeze1_all.deb">poulsbo-driver-2d_1.1 1squeeze1_all.deb</a><br /><br /> <br /><br /> <a href="http://akademic.name/media/files/dell/debian/poulsbo-driver-3d_1.1-1squeeze1_all.deb">poulsbo-driver-3d_1.1 1squeeze1_all.deb</a><br /><br /> <br /><br /> <a href="http://akademic.name/media/files/dell/debian/psb-firmware_0.30-1squeeze1_all.deb">psb-firmware_0.30 1squeeze1_all.deb</a><br /><br /> <br /><br /> <a href="http://akademic.name/media/files/dell/debian/psb-kernel-headers_4.41.1-1squeeze1_all.deb">psb-kernel-headers_4.41.1 1squeeze1_all.deb</a><br /><br /> <br /><br /> <a href="http://akademic.name/media/files/dell/debian/psb-kernel-source_4.41.1-1squeeze1_all.deb">psb-kernel-source_4.41.1 1squeeze1_all.deb</a><br /><br /> <br /><br /> <a href="http://akademic.name/media/files/dell/debian/xpsb-glx_0.18-1squeeze1_i386.deb">xpsb-glx_0.18 1squeeze1_i386.deb</a><br /><br /> <br /><br /> <a href="http://akademic.name/media/files/dell/debian/xserver-xorg-video-psb_0.31.0-1squeeze1_i386.deb">xserver-xorg-video-psb_0.31.0 1squeeze1_i386.deb</a></p><br /> <p>&nbsp;</p><br /> <p>Заодно и дебы xorg а, а то исчезнут опять, замучаешься искать:<br /><br /> <br /><br /> <a href="http://akademic.name/media/files/dell/debian/xserver-xorg-core_2-1.6.4-2ubuntu4_i386.deb">xserver-xorg-core_2:1.6.4 2ubuntu4_i386.deb</a><br /><br /> <br /><br /> <a href="http://akademic.name/media/files/dell/debian/xserver-xorg_1-7.4+3ubuntu7_i386.deb">xserver-xorg_1:7.4+3ubuntu7_i386.deb</a></p><br /> <p>&nbsp;</p><br /> <p>P.S. Статью эту заствил себя написать уже через две недели после того как всё это проделал. Так что мог что-то пропустить. В любом случае у вас уже больше информации, чем у меня, когда я начал.</p><br /> <p><br /><br /> Оригинал можно почитать на <a href="http://akademic.name/blog/2010/debian-gma500-kernel-2632/">http://akademic.name</a></p>]]></description>
<pubDate><![CDATA[Sun, 07 Mar 2010 22:37:09 +0300]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post122270421/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post122270421/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post122270421/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[Раскладка "машинопись" для ktouch]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post122262937/]]></link>
<description><![CDATA[<p>Последнее время хочу научится слепому набору.<br /><br /> Помогает мне в этом программка ktouch. Вот только для неё не было раскладки  машинопись . Той в которой ё в нижнем ряду справа от ю. И вместо цифр в верхнем ряду знаки препинания.</p><br /> <br /> <p>Но не беда. В ktouch есть встроенный редактор раскладок. Так что я сделал нужную раскладку.</p><br /><p>Вот так она выглядит:<br /><br /> <img src="http://akademic.name/media/files/ktouch/ktouch_small.png" title="Русская раскладка Typewriter(Машинопись) для ktouch" alt="Русская раскладка Typewriter(Машинопись) для ktouch" /><br /><br /> <a href="http://akademic.name/media/files/ktouch/ktouch_big.png">Полный размер</a><br /><br /> Собственно, в этом посте я её и выкладываю.<br /><br /> <a href="/media/files/ktouch/ru-typewriter.keyboard.xml" title="Раскладка Russian Typewriter 'Машинопись' для ktouch">Скачать раскладку Russian Typewriter для ktouch</a></p><br /> <br /> <p>Положить её надо в /usr/share/kde4/apps/ktouch/<br /><br /> После этого она будет доступна в настройках.</p><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2010/raskladka-mashinopis-dlya-ktouch/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Sun, 07 Mar 2010 20:11:20 +0300]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post122262937/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post122262937/]]></guid>
<enclosure url="http://akademic.name/media/files/ktouch/ktouch_small.png"  type="image/jpeg" width="" height=""/>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post122262937/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[Мониторинг заданий Folding@home часть 2]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post120985710/]]></link>
<description><![CDATA[<p>В перыдущем посте <a href="http://akademic.name/blog/2010/monitoring-zadanij-foldinghome/" title="Мониторинг заданий Folding@Home">Мониторинг заданий Folding@home часть 1</a> я рассказал, как организовать оповещение сервера при изменении статуса расчёта задания.<br /><br /> В этом мне помогли программа <a href="http://inotify.aiken.cz/?section=incron&page=about" title="About Incron">incron</a> и скрипт на языке Python.</p><br /> <br /> <p>В этот раз я расскажу как эти данные принять и вывести.</p><br /><p>Возвращаясь к первой части.<br /><br /> В силу того, что один из моих серверов имеет динамический ip-адрес, пришлось изменить программу-нотификатор так, чтобы она посылала ещё и hostname, т.к. он уникален среди моих машин и в то же время не зависит от ip.</p><br /> <br /> <p>Теперь она выглядит так:</p><br /> <br /> <pre>#!/usr/bin/python<br /> import os,sys<br /> import urllib<br /> filename = sys.argv[1]<br /> stats = open(filename).read()<br /> dir = os.path.dirname(filename)<br /> config = open(dir+'/client.cfg')<br /> for line in config:<br />     if line[:9] == 'machineid':<br />         mid = line[-2]<br /> data = [('mid', mid), ('stats', stats), ('hostname', os.uname()[1])]<br /> urllib.urlopen( 'http://мой.сайт/принимающий/данные/', urllib.urlencode( data ) )<br /> </pre><br /> <br /> <p>Вернёмся к нашим баранам   принимающему серверу.<br /><br /> Поскольку сейчас мне интересен python и django, то писать буду соответственно на них. Предполагаю, что <a href="http://docs.djangoproject.com/en/1.1/intro/tutorial01/#intro-tutorial01" title="Django Tutorial">туториал</a> уже пройден.</p><br /> <br /> <p>Начнём.<br /><br /> Создадим приложение.<br /><br /> <code>./manage.py startapp folding</code></p><br /> <br /> <p><code>vim folding/views.py</code></p><br /> <br /> <p>Здесь мы напишем также и функцию для отображения статистики, поэтому указываю сразу все импорты. Ценной же частью является функция collect</p><br /> <br /> <pre>from datetime import datetime<br /> from django.core.cache import cache<br /> from django.http import HttpResponse<br /> from django.template import RequestContext, loader<br /> from django.contrib.auth.decorators import login_required<br /> </pre><br /> <br /> <pre>def collect(request):<br />     data = cache.get('folding')<br />     if data == None:<br />         data = {}<br />     mid = request.POST['mid']<br />     stats = request.POST['stats']<br />     host = request.POST['hostname']<br />     name_start = stats.find('Name:') + 6<br />     name_end = stats.find('Tag:') - 1<br />     title = stats[name_start:name_end]<br />     pr_start = stats.rfind('Progress:') + 10<br />     pr_end = stats.find( '%', pr_start )<br />     progress = int( stats[pr_start:pr_end] )<br />     now = datetime.now()<br />     if data.has_key( host ) != True:<br />         data[host] = { 'host': host, 'mids': { mid: {'title': title, 'progress': progress, 'last_update': now } } }<br />     else:<br />         next_update = 0<br />         if data[host]['mids'].has_key(mid) == True:<br />             diff = now - data[host]['mids'][mid]['last_update']<br />             if diff.seconds > 0:<br />                 next_update = diff + now<br />             else:<br />                 next_update = data[host]['mids'][mid]['next_update']<br />         data[host]['mids'][mid] = {'title': title, 'progress': progress, 'last_update': now, 'next_update': next_update }<br />     cache.set('folding', data, 5400)<br />     return HttpResponse()<br /> </pre><br /> <br /> <p>В принципе тут всё просто. Но есть интересная особенность. Здесь я использую прямой доступ к кешу для хранения статистики. Имеется ввиду именно кеш в памяти. Т.к. статистика очень быстро теряет актуальность, а вести её историю я в планах не имею, то это очень интересный метод. Не надо моделей, не надо таблиц в БД, не надо файлов, можно просто хранить эти данные в памяти, благо их совсем чуть.</p><br /> <br /> <p>Это весьма приятный бонус django по сравнению с любым php сайтом. Поскольку сайт работает демоном, то он может хранить данные между запросами.</p><br /> <br /> <p>Тут хорошо бы переписать на конкретный класс для работы с кешом в памяти, но я пока не разобрался как, так что ограничился пока установкой</p><br /> <br /> <p><code>CACHE_BACKEND =  locmem:// </code></p><br /> <br /> <p>в settings.py</p><br /> <br /> <p>Дабы закончить со сбором статистики напишем folding/urls.py</p><br /> <br /> <pre>from django.conf.urls.defaults import *<br /> import views<br /> urlpatterns = patterns('',<br />                 url(r'^collect/', views.collect),<br />                 url(r'^status/', views.display),<br />             )<br /> </pre><br /> <br /> <p>и включим его в глобальный urls.py</p><br /> <br /> <p><code>(r ^folding/ , include( folding.urls )),</code></p><br /> <br /> <p>И вот уже можно собирать статистику.</p><br /> <br /> <p>Теперь вывод. В тот же folding/views.py добавим функцию display</p><br /> <br /> <pre>@login_required<br /> def display(request):<br />     data = cache.get('folding')<br />     if data != None:<br />         tdata = []<br />         for k in data:<br />             mids = data[k]['mids']<br />             tmids = []<br />             for km in mids:<br />                 mids[km]['mid'] = km<br />                 tmids.append(mids[km])<br />             data[k]['mids'] = tmids<br />             tdata.append(data[k])<br />         t = loader.get_template('folding/status.htm')<br />         c = RequestContext(request, { 'data': tdata })<br />         return HttpResponse( t.render(c) )<br />     return HttpResponse( 'No data' )<br /> </pre><br /> <br /> <p>Соответственно нужен шаблон для вывода. Вот и он:</p><br /> <br /> <pre><ol><br /> {% for host in data %}<br />     <li><br />         Host: {{host.host}}<br />         <ol><br />         {% for mid in host.mids %}<br />             <li>MachineID: {{mid.mid}}, WU Name: {{mid.title}}<br /> Progress: {{mid.progress}}% Last update: {{ mid.last_update|date:"Y-m-d H:i:s" }} Next update: {{ mid.next_update|date:"Y-m-d H:i:s" }}</li><br />         {% endfor %}<br />         </ol><br />     </li><br /> {% endfor %}<br /> </ol><br /> </pre><br /> <br /> <p>По-спартански, зато работает.<br /><br /> Шаблон у меня лежит в folding/templates/folding/status.htm<br /><br /> Для того чтобы это работало, необходимо добавить приложение folding в settings.py в INSTALLED_APPS.</p><br /> <br /> <p>Итак теперь по адресу сайт/folding/collect/ собирается статистика, а по адресу сайт/folding/display/ она отображается, причём только зарегистрированному пользователю. На моём сайте это только я.</p><br /> <br /> <p>Для целей мониторинга этого вполне достаточно, но я решил сделать ещё одну полезную штуку. А именно попрактиковаться в написании шаблонных тегов.<br /><br /> Приведённый далее код экстраполирует полученные результаты с целью показать ближайшее время окончания расчёта задания.</p><br /> <br /> <pre>from django import template<br /> from django.core.cache import cache<br /> from datetime import datetime<br /> pre.<br /> register = template.Library()<br /> pre.<br /> @register.inclusion_tag('folding/closiest_wu.htm')<br /> def folding_closiest_wu():<br />     data = cache.get('folding')<br />     if data == None:<br />         return {<br />             'data': False<br />         }<br />     min_time = False<br />     mid_to_show = False<br />     for host in data:<br />         for mid in data[host]['mids']:<br />             lmid = data[host]['mids'][mid]<br />             if lmid.has_key( 'next_update' ) == True and lmid['next_update'] != 0 and lmid['next_update'] > datetime.now():<br />                 prog = lmid['progress']<br />                 speed = lmid['next_update'] - lmid['last_update']<br />                 time_rest = ( 100 - prog ) * speed<br />                 if min_time == False or ( time_rest.seconds > 0 and time_rest &lt; min_time ):<br />                     min_time = time_rest<br />                     mid_to_show = lmid<br />     if mid_to_show != False:<br />         mid_to_show['end'] = mid_to_show['last_update'] + min_time<br />         return {<br />             'data': mid_to_show<br />         }<br />     else:<br />         return {<br />             'data': False<br />         }<br /> </pre><br /> <br /> <p>Тег этот находится в файле folding/templatetags/tag_folding.py<br /><br /> Подключить его в шаблоне можно при помощи конструкции</p><br /> <br /> <p><code>{% load tag_folding <span>}{</span> folding_closiest_wu %}</code></p><br /> <br /> <p>Результат можно видеть на главной странице моего блога <a href="http://akademic.name/">http://akademic.name/</a> сразу после последнего поста из juick.</p><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2010/monitoring-zadanij-foldinghome-chast-2/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Tue, 16 Feb 2010 23:50:30 +0300]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post120985710/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post120985710/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post120985710/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[Мониторинг заданий Folding@home часть 1]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post120576212/]]></link>
<description><![CDATA[<p>Я уже рассказывал про распределённые вычисления в статьях <a href="http://akademic.name/blog/2010/foldinghome/">Folding@home()</a> и <a href="http://akademic.name/blog/2010/foldinghome-nvidia-gpu/">folding@home с помощью nvidia gpu на debian linux()</a>.</p><br /> <br /> <p>Сегодня я считаю уже на трёх машинах, что в сумме даёт 6 процессов расчёта.<br /><br /> В связи с этим захотелось мониторить их состояние где-нибудь в одном месте.<br /><br /> Например у себя на сайте.</p><br /> <br /> <p>В этом и следующем посте я изложу как это можно сделать.</p><br /><p>Собственно процесс можно разделить на две части:</p><br /> <br /> <ol><br /> <li>Отправка состояния на сервер   это на считающих машинах</li><br /> <li>Приём данных и вывод состояния систем   это на сайте</li><br /> </ol><br /> <br /> <p>Начнём с первого. <br /><br /> Можно было бы воспользоваться встроенным в клиенты Folding@Home веб-сервером (я полагаю, что он там есть, раз есть соответствующая настройка в client.cfg). Но в этом случае пришлось бы писать опросчик, который с заданным интервалом заходил бы на клиенты и считывал данные. Получится что 90% времени мы будем получать данные, которые у нас уже есть, потому как с прошлого опроса они не изменились. Правильно подобранный интервал опроса лишь снизит паразитный трафик.</p><br /> <br /> <p>Было бы здорово получать данные только если они изменились и сразу как только они изменились. Необходимо чтобы клиентские машины при изменении состояния оповещали об этом событии сервер. Так и не будет впустую гоняться трафик по сети и результаты буду доступны немедленно.</p><br /> <br /> <p>Как это реализовать технически?<br /><br /> Клиенты Folding@Home сохраняют своё состояние в файле unitinfo.txt.<br /><br /> А раз мы в линуксе и состояние это файл, то мы можем воспользоваться замечательным способом подписки на события файла   <a href="http://ru.wikipedia.org/wiki/Inotify" title="Inotify на Википедии">inotify</a>.</p><br /> <br /> <p>Первое что нам понадобится это пакет incron:</p><br /> <br /> <p><code>sudo apt-get install incron</code></p><br /> <br /> <p>incron   это cron-подобный сервис мониторинга файлов, запускает заданный скрипт при возникновении заданного события у файла.</p><br /> <br /> <p>После инсталляции incron, необходимо добавить пользователя, от имени которого будем запускать скрипт в файл /etc/incron.allow<br /><br /> Просто вписываем туда имя пользователя.</p><br /> <br /> <p>Затем добавляем задания для отслеживания:</p><br /> <br /> <p><code>incrontab -e</code></p><br /> <br /> <p>Туда вписываем строчки:</p><br /> <br /> <pre>/путь/к/файлу/unitinfo.txt IN_CLOSE_WRITE /путь/к/обработчику/события $@<br /> </pre><br /> <br /> <p>Здесь IN_CLOSE_WRITE   событие, на которое мы подписались<br /><br /> $@   это имя файла, с которым произошло событие. Передаётся параметром запускаемому скрипту.</p><br /> <br /> <p>Полдела сделано. Теперь пора написать, собственно, обработчик события. Вернее, я то его уже написал на <a href="http://python.org" title="Python">python</a>. Просто приведу код:</p><br /> <br /> <pre>#!/usr/bin/python<br /> import os,sys<br /> import urllib<br /> filename = sys.argv[1]<br /> stats = open(filename).read()<br /> dir = os.path.dirname(filename)<br /> config = open(dir+'/client.cfg')<br /> for line in config:<br />     if line[:9] == 'machineid':<br />         mid = line[-2]<br /> data = [('mid', mid), ('stats', stats)]<br /> urllib.urlopen( 'http://мой.сайт/принимающий/данные/', urllib.urlencode( data ) )<br /> </pre><br /> <br /> <p>Скрипт посылает на сервер целиком файл unitinfo.txt и machineid, взятый из файла client.cfg</p><br /> <br /> <p>Осталось реализовать принимающую часть. Её буду делать в виде приложения для <a href="http://djangoproject.com/" title="Django framework">django</a>. Это в следующей статье.</p><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2010/monitoring-zadanij-foldinghome/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Wed, 10 Feb 2010 22:18:27 +0300]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post120576212/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post120576212/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post120576212/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[Folding@Home с помощью Nvidia GPU на debian linux]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post120271119/]]></link>
<description><![CDATA[<p>Как я писал в <a href="http://akademic.name/blog/2010/foldinghome/" title="Folding@Home">прошлый раз</a>, решил попробовать считать белки с помощью видеокарты сервера. Всё равно ему видюха бес толку.<br /><br /> А видюха там Nvidia GeForce 9400, поддерживает технологию <a href="http://ru.wikipedia.org/wiki/CUDA" title="CUDA в википедии"><span class="caps">CUDA</span></a>.</p><br /> <br /> <p>Сейчас на сервере запущен расчёт на <span class="caps">CPU</span>: две штуки, расчёт на <span class="caps">GPU</span>: одна штука.<br /><br /> Кроме этого сервер скачивает и раздаёт торренты через rtorrent на максимальной скорости соединения и можно смотреть 2 фильма по <span class="caps">NFS</span>. Всё без тормозов.</p><br /> <br /> <p>Под  катом  инструкция, как настроить обсчёт заданий на <span class="caps">GPU</span>. Поехали.</p><br /><p>К сожалению клиента для расчёта на видеокарте под linux нет, есть только для windows. Поэтому придётся задействовать <a href="http://www.winehq.org/" title="WineHQ">wine</a>.</p><br /> <br /> <p>Делал по статье <a href="http://foldingforum.org/viewtopic.php?f=52&t=6793"><span class="caps">NVIDIA</span> GPU2 Linux/WINE Headless Install Guide()</a> с поправкой на то, что у меня debian x32.</p><br /> <br /> <p>Начну с пятого пункта статьи, т.к. установленный debian уже есть.<br /><br /> Необходимо поставить wine.<br /><br /> Можно как в статье</p><br /> <br /> <p><code>sudo apt-get install wine</code></p><br /> <br /> <p>Мне не понравилось, что с wine автоматически ставится куча мусора вроде поддержки печати, сканера и т.п.<br /><br /> Поэтому ставим wine-bin и libwine-gl:</p><br /> <br /> <p><code>sudo apt-get install wine-bin libwine-gl</code></p><br /> <br /> <p>Далее качаем драйвера для видеокарты и cuda с сайта nvidia.<br /><br /> Можно взять последние стабильные и думаю, что скоро это будет наиболее правильный путь. Но пока у меня с ними не заработало. Пришлось качать <a href="http://forums.nvidia.com/index.php?showtopic=149959" title="CUDA Toolkit 3.0 Beta"><span class="caps">CUDA</span> Toolkit 3.0 Beta</a>.</p><br /> <br /> <p>На всякий случай вот прямые ссылки на скачивание:<br /><br /> <a href="http://developer.download.nvidia.com/compute/cuda/3_0-Beta1/drivers/cudadriver_3.0-beta1_linux_32_195.17-beta.run" title="Linux 32 195.17">Видеодрайвер Linux 32 195.17</a><br /><br /> <a href="http://developer.download.nvidia.com/compute/cuda/3_0-Beta1/toolkit/cudatoolkit_3.0-beta1_linux_32_ubuntu9.04.run" title="CUDA Toolkit"><span class="caps">CUDA</span> Toolkit for Ubuntu 9.04 32-bit</a></p><br /> <br /> <p>Для компиляции драйверов необходимо поставить пакеты kernel-headers и build-essential.</p><br /> <br /> <p><code>sudo apt-get install build-essential linux-headers-`uname -r`</code></p><br /> <br /> <p>Затем ставим собственно драйвера:<br /><br /> <code>sudo sh cudadriver_3.0-beta1_linux_32_195.17-beta.run</code><br /><br /> <code>sudo sh cudatoolkit_3.0-beta1_linux_32_ubuntu9.04.run</code></p><br /> <br /> <p>Надеюсь этот этап пройдёт без запинки. У меня здесь вечно проблемы. То версия gcc не та, то в kernel-headers файлика не хватает. То симлинки где-нибудь прописать придётся.</p><br /> <br /> <p>Создаём ссылки на библиотеки cuda:<br /><br /> <code>sudo sh -c  echo  /usr/local/cuda/lib  > /etc/ld.so.conf.d/cuda.conf </code><br /><br /> <code>sudo ldconfig</code></p><br /> <br /> <p>Инициализируем wine:</p><br /> <br /> <p><code>wine notepad</code></p><br /> <br /> <p>Создастся каталог ~/.wine</p><br /> <br /> <p>Скачиваем обёртку для работы libcuda в wine:</p><br /> <br /> <p><code>wget <a href="http://www.gpu2.twomurs.com/wrapper2ndgen/2.1/cudart.dll.so">http://www.gpu2.twomurs.com/wrapper2ndgen/2.1/cudart.dll.so</a> -O ~/.wine/drive_c/windows/system32/cudart.dll</code><br /><br /> <code>ln -s ~/.wine/drive_c/windows/system32/cudart.dll ~/.wine/drive_c/windows/system32/nvcuda.dll</code></p><br /> <br /> <p>Проверяем, что все нужные зависимости у нас есть:</p><br /> <br /> <p><code>ldd ~/.wine/drive_c/windows/system32/cudart.dll</code></p><br /> <br /> <p>Вывод будет похож на такой:<br /><br /> <code>linux-gate.so.1 =>  (0xb78c3000)</code><br /><br /> <code>libcudart.so.2 => /usr/local/cuda/lib/libcudart.so.2 (0xb7866000)</code><br /><br /> <code>libwine.so.1 => /usr/lib/libwine.so.1 (0xb772a000)</code><br /><br /> <code>libm.so.6 => /lib/libm.so.6 (0xb7703000)</code><br /><br /> <code>libc.so.6 => /lib/libc.so.6 (0xb75bc000)</code><br /><br /> <code>libdl.so.2 => /lib/libdl.so.2 (0xb75b8000)</code><br /><br /> <code>libpthread.so.0 => /lib/libpthread.so.0 (0xb75a0000)</code><br /><br /> <code>librt.so.1 => /lib/librt.so.1 (0xb7597000)</code><br /><br /> <code>libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb74a6000)</code><br /><br /> <code>libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7488000)</code><br /><br /> <code>/lib/ld-linux.so.2 (0xb78c4000)</code></p><br /> <br /> <p>Если рядом с какой-нибудь библиотекой будет стоять  not found , значить либо какой-то из шагов пропущен, либо поможет следующий экспорт:</p><br /> <br /> <p><code>export LD_LIBRARY_PATH=/usr/local/cuda/lib:$LD_LIBRARY_PATH</code></p><br /> <br /> <p>Не помню где я это взял, но мне помог именно он.</p><br /> <br /> <p>Теперь надо создать скрипт для инициализации <span class="caps">CUDA</span> без запуска X-сервера:<br /><br /> <code>nano -w cudaini</code></p><br /> <br /> <p>Вот сам скрипт:<br /><br /> <code>#!/bin/bash</code></p><br /> <br /> <p><code><span class="caps">PATH</span>=$PATH:/usr/local/cuda/bin</code></p><br /> <br /> <p><code>modprobe nvidia</code></p><br /> <br /> <p><code>if [  $?  -eq 0 ]; then</code></p><br /> <br /> <p><code># Count the number of <span class="caps">NVIDIA</span> controllers found.</code><br /><br /> <code>N3D=`/usr/bin/lspci | grep -i <span class="caps">NVIDIA</span> | grep  3D controller  | wc -l`</code><br /><br /> <code><span class="caps">NVGA</span>=`/usr/bin/lspci | grep -i <span class="caps">NVIDIA</span> | grep  VGA compatible controller  | wc -l`</code></p><br /> <br /> <p><code>N=`expr $N3D + $NVGA   1`</code><br /><br /> <code>for i in `seq 0 $N`; do</code><br /><br /> <code>mknod -m 666 /dev/nvidia$i c 195 $i;</code><br /><br /> <code>done</code></p><br /> <br /> <p><code>mknod -m 666 /dev/nvidiactl c 195 255</code></p><br /> <br /> <p><code>else</code><br /><br /> <code>exit 1</code><br /><br /> <code>fi</code></p><br /> <br /> <p>Даём скрипту права на исполнение:<br /><br /> <code>chmod u+x cudainit</code></p><br /> <br /> <p>И запускаем:<br /><br /> <code>sudo ./cudainit</code></p><br /> <br /> <p>Проверяем, что всё хорошо:<br /><br /> <code>ls /dev/nv*</code></p><br /> <br /> <p>Должно вывестись следующее(для одной видеокарты):<br /><br /> <code>/dev/nvidia0  /dev/nvidiactl</code></p><br /> <br /> <p>Можно вставить запуск cudainit в /etc/rc.local для автостарта при перезагрузке.</p><br /> <br /> <p>Пора, наконец, скачать клиент для windows:<br /><br /> <code>wget <a href="http://www.stanford.edu/group/pandegroup/folding/release/<a href=">Folding@home-Win32-GPU_XP-623.zip</a>">http://www.stanford.edu/group/pandegroup/folding/release/<a href="mailto:Folding@home-Win32-GPU_XP-623.zip">Folding@home-Win32-GPU_XP-623.zip</a></code></p><br /> <br /> <p>И распаковать его<br /><br /> <code>sudo apt-get install unzip</code><br /><br /> <code>mkdir ~/fahgpu2</code><br /><br /> <code>unzip <a href="mailto:Folding@home-Win32-GPU_XP-623.zip">Folding@home-Win32-GPU_XP-623.zip</a> -d fahgpu2</code></p><br /> <br /> <p>И вот он момент истины! Запускаем!<br /><br /> <code>cd ~/fahgpu2</code><br /><br /> <code>nice wine <a href="mailto:Folding@home-Win32-GPU.exe">Folding@home-Win32-GPU.exe</a> -verbosity 9 -forcegpu nvidia_g80</code></p><br /> <br /> <p>Должен побежать текст по экрану.<br /><br /> Вывод программы останавливается и если не видно ошибок в последних строках типа <br /><br /> <code>Folding@home Core Shutdown: UNSTABLE_MACHINE</code><br /><br /> то скорее всего всё хорошо.<br /><br /> Можно подождать минут 10 20 появится вывод <br /><br /> <code>Completed 1%</code><br /><br /> <code>Completed 2%</code></p><br /> <br /> <p>На GeForce 9400 один процент делается минут за 7 8 в среднем.</p><br /> <br /> <p><strong>Итог мучений</strong></p><br /> <br /> <p>На Atom N330 на одном ядре на 1% выполнения задания затрачивается около часа времени, на GeForce 9400 чуть менее восьми минут.<br /><br /> При использовании расчёта на видеокарте нагрузка на процессор не превышает 15% (htop показывает 4 процессора = 2 ядра * HyperThreading, нагрузка только на один).</p><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2010/foldinghome-nvidia-gpu/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Sat, 06 Feb 2010 15:55:37 +0300]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post120271119/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post120271119/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post120271119/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[Folding@Home]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post120081655/]]></link>
<description><![CDATA[<p>Увидев <a href="http://forums.overclockers.ru/viewtopic.php?f=21&t=342556" title="TSC! Russia">призыв <span class="caps">TSC</span>! Russia</a> принять участие в проекте распределённых вычислений Folding@Home, решил посмотреть как это работает под линукс.</p><br /> <br /> <p>Почитав <a href="http://folding.stanford.edu/English/LinUNIGuide" title="Linux Folding@Home guide">руководство</a> удачно запустил на двух машинах. Одна из них Celeron 1800MHz с 256Mb оперативки, вторая Acer Revo 3610.<br /><br /> За трое суток оба сосчитали по одному заданию из  центра . Celeron был быстрее, чем одно ядро Atom 330.</p><br /> <br /> <p>Есть мысль добавить к мощностям расчёта видеокарту с сервера. Всё равно у него она не используется. А ведь это GeForce 9400, должен шустро считать.</p><br /><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2010/foldinghome/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Wed, 03 Feb 2010 21:55:07 +0300]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post120081655/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post120081655/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post120081655/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[Думайте сами, решайте сами]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post119648855/]]></link>
<description><![CDATA[<p>Давно заметил, а сейчас ещё раз получил подтверждение такой закономерности:<br /><br /> Если человек для себя решает, что я умнее его(по меньшей мере в данном вопросе), то в моём присутствии он перестаёт думать самостоятельно.</p><br /> <br /> <p>Любую, даже самую пустяковую проблему он пытается решить путём вопроса ко мне.<br /><br /> Но стоит мне уйти, скажем, на обед, человек через некоторое время понимает, что пишет в пустоту, что никто за него не решит задачку и, наконец, включает мозг.</p><br /><p>Было дело. Человек за ночь накидал мне в аську кучу вопросов(экрана два), а когда я утром пришёл, прочитал их все и спросил  остались ли проблемы? , выяснилось, что он со всеми проблемами справился.<br /><br /> Это ещё неплохой вариант.</p><br /> <br /> <p>Бывает, что человек ничего не делает, а просто ждёт. В этом случае нужен магический пендель, но не от меня, а от кого-нибудь, кто заинтересован в результате, но подсказать в силу другой квалификации ничего не может. И когда третей стороны нет, то либо работа стоит, либо исполнитель может работать только мод мою диктовку.</p><br /> <br /> <p>Алгоритм должен быть примерно такой:<br /><br /> 1. Возникла проблема<br /><br /> 2. Подумать<br /><br /> 3. Погуглить<br /><br /> 4. Ещё погуглить<br /><br /> 5. И ещё погуглить<br /><br /> 6. Ну вот теперь уже, наверное, можно к кому-нибудь обратиться с вопросом(как правило вопрос становится уже другого рода)</p><br /> <br /> <p>Большинство вопросов отпадают ещё на 2м пункте, остальные до 5го. Те, что остаются к шестому, чёрт, да я и сам в 50% случаев не знаю на них ответа.</p><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2010/dumaite-sami-reshaite-sami/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Fri, 29 Jan 2010 10:17:45 +0300]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post119648855/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post119648855/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post119648855/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[Прикрутил посты из juick]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post119318122/]]></link>
<description><![CDATA[<p>Вот теперь над списком постов блога можно видеть последнюю заметку из juick.<br /><br /> Благодаря выполнению этого домашнего задания, я научился парсить <span class="caps">RSS</span> (<a href="http://www.feedparser.org/" title="Universal Feed Parser">feedparser.py</a>) и узнал как выполнить функцию в окружении django: <a href="http://larin.in/archives/100" title="Django & Cron">Django и Cron</a>.</p><br /> <br /> <p>Кроме того, научился делать <a href="http://docs.djangoproject.com/en/1.1/howto/custom-template-tags/#writing-custom-template-tags" title="Django custom template tags">custom template tags</a></p><br /> <br /> <p>Как я понял, это единственный адекватный способ выводить прочие динамические блоки на страницу.</p><br /> <br /> <p>Потихоньку изучаю, набиваю шишки.</p><br /><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2010/prikrutil-posty-iz-juick/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Sun, 24 Jan 2010 23:30:31 +0300]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post119318122/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post119318122/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post119318122/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[Продолжаю обновлять сайт]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post119225299/]]></link>
<description><![CDATA[<p>Поставил <a href="http://metrika.yandex.ru/" title="Яндекс.Метрика">Яндекс.Метрику</a>.<br /><br /> Стал смотреть что у меня читают.<br /><br /> Прошёл по паре ссылок, выяснилось, что не всё перенёс.<br /><br /> Не хватало аудиофайлов записанных лекций по философии и некоторых картинок.<br /><br /> В частности это были иллюстрации к статьям на хабре.<br /><br /> Файлы перенёс, нужные редиректы сделал.<br /><br /> Скоро восстановлю страничку со списком файлов, как было на старой версии.</p><br /><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2010/prodolzhayu-obnovlyat-sajt/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Sat, 23 Jan 2010 19:11:13 +0300]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post119225299/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post119225299/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post119225299/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item><title><![CDATA[Сбор логов через rsyslogd]]></title>
<link><![CDATA[http://www.liveinternet.ru/users/akademic/post119167490/]]></link>
<description><![CDATA[<p>Для некоторых целей понадобилось собирать на домашнем сервере логи с роутера <a href="http://www.linksysbycisco.com/EU/en/products/WRT54GC" title="Роутер Linksys WRT54GC">LinkSys WRT54GC</a>.<br /><br /> К радости моей он умеет отсылку логов на удалённый syslogd сервер.</p><br /><p>В качестве приёмника логов указал в админке роутера свой сервер.<br /><br /> А на сервере в файле <code>/etc/rsyslog.conf</code> раскомментировал строчки</p><br /> <br /> <pre><br /> <code><br /> $ModLoad imudp<br /> $UDPServerRun 514<br /> </code><br /> </pre><br /> <br /> <p>А чтобы лог писался в отдельный файл ещё добавил вот такие строки:</p><br /> <br /> <pre><br /> <code><br /> $template DynaFile,"/var/log/system-%FROMHOST%.log"<br /> *.* -?DynaFile<br /> </code><br /> </pre><br /> <br /> <p>Осталось только подождать пока соберётся статистика и тогда уже думать, как её обрабатывать.</p><br />Оригинал можно почитать на <a href="http://akademic.name/blog/2010/sbor-logov-cherez-rsyslogd/">http://akademic.name</a>]]></description>
<pubDate><![CDATA[Sat, 23 Jan 2010 00:21:06 +0300]]></pubDate>
<comments><![CDATA[http://www.liveinternet.ru/users/akademic/post119167490/]]></comments>
<guid><![CDATA[http://www.liveinternet.ru/users/akademic/post119167490/]]></guid>
<wfw:commentRss><![CDATA[http://www.liveinternet.ru/users/akademic/post119167490/rss]]></wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
</channel>
</rss>
