<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:dev_hands</id>
  <title>Журнал личного опыта и прочей чуши</title>
  <subtitle>dev_hands</subtitle>
  <author>
    <name>dev_hands</name>
  </author>
  <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom"/>
  <updated>2009-05-23T12:00:56Z</updated>
  <lj:journal userid="13745859" username="dev_hands" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://dev-hands.livejournal.com/data/atom" title="Журнал личного опыта и прочей чуши"/>
  <link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:10902</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/10902.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=10902"/>
    <title>Как нужно писать патчи</title>
    <published>2009-05-23T11:18:45Z</published>
    <updated>2009-05-23T12:00:56Z</updated>
    <category term="humor"/>
    <category term="bug"/>
    <content type="html">Сегодня в Weekly News нашел ссылку на блог Pascal Bleser про &lt;a href="http://dev-loki.blogspot.com/2009/05/vnstat-on-opensuse.html"&gt;vnstat&lt;/a&gt;. Описание, в отличии от ntop мне понравилось - красивые графики при минимуме усилий. Поставил по OneClick Install и попробовал проделать действия, описанные в статье - хрен.&lt;br /&gt;&lt;br /&gt;При создании базы #vnstat-create-db eth0 получаю ошибку. Подумал несколько секунд и стал писать багрепорт. Написал, но перед отправкой решил посмотреть в чем суть проблемы. Проверил скрипт, нашел ошибку - недостаточно прав для создания файла в директории /var/lib/vnstat. Решил заодно пофиксить spec и прислать патч. Но удивительное рядом - spec оказался правильным! Посмотрел апдейты - так и есть. Пока я писал багрепорт парни уже все исправили и выложили апдейт.&lt;br /&gt;&lt;br /&gt;OpenSource выходит на принципиально новый уровень. Пока противник рисует карты - мы меняем ландшафт местности.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:10619</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/10619.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=10619"/>
    <title>Отключение PV в LVM</title>
    <published>2009-05-05T15:52:38Z</published>
    <updated>2009-05-05T15:52:38Z</updated>
    <category term="lvm"/>
    <content type="html">Решил вынести свой старый IDE диск из VG. Что-то меня напугали темой, что диски-пенсионеры имеют тенденцию сбоить. Появилась идея независимо от основной VG хранить там не очень важные данные типа музыки, iso образов дистрибутивов и т.п.&lt;br /&gt;&lt;br /&gt;Так же недавно кто-то жаловался на отсутсвие GUI средств для таких вещей в Ubuntu.&lt;br /&gt;Приведенные вещи можно сделать через Yast. В "разметке" выбрать нужную группу и кликнуть кнопку "изменить размер".&lt;br /&gt;&lt;br /&gt;0) Проверим есть ли на оставшихся PV достаточно места, чтобы вместить данные: pvdisplay &lt;pv устройство="устройство"&gt;&lt;br /&gt;&lt;br /&gt;1) Перед извлечением физического тома из группы нужно перенести физические экстенты на другие диски. Для этого воспользуемся pvmove. Если почитать справку - то можно заметить, что можно не только полностью вынести данные с диска, но вынести только экстенты определенного логического тома и даже конкретные экстенты. Вынесем все с /dev/sda.&lt;br /&gt;&lt;br /&gt;# pvmove -v /dev/sda&lt;br /&gt;&lt;br /&gt;И теперь долго ждем. Система переноса весьма хитрая, с использованием временного тома, ну и консистентность блюсти нужно.&lt;br /&gt;&lt;br /&gt;2) Теперь почти все: проверим все ли экстенты на извлекаемом PV свободны с помощью pvdisplay.&lt;br /&gt;Извлекаем физический том: &lt;br /&gt;# vgreduce -t -v system /dev/sda&lt;br /&gt;# vgreduce -v system /dev/sda&lt;br /&gt;Команда с ключом -t - тест извлечения. Внимательно прочтите его результат, перед выполнением второй команды. system - имя VG, в котором лежит /dev/sda.&lt;br /&gt;&lt;br /&gt;Вставить новый диск в группу:  vgextend&lt;br /&gt;&lt;br /&gt;Теперь можно создать файловую систему на /dev/sda и смонтировать его как отдельный диск. Либо создать на нем другую VG.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:10064</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/10064.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=10064"/>
    <title>Konquest</title>
    <published>2009-03-01T00:21:03Z</published>
    <updated>2009-03-01T00:21:03Z</updated>
    <category term="games"/>
    <content type="html">Есть замечательная игра из комплекта kde-games: konquest.&lt;br /&gt;&lt;br /&gt;[Если вам не интересна сама игра - сразу переходите к пункту номер 6 - он может оказаться интересным.]&lt;br /&gt;&lt;br /&gt;Рассматривается пакет kde4-konquest из kde 4.2 в OpenSUSE 11.1. Только ее мало кто любит. Скорее всего даже сами разработчики. Так как нет сетевого режима, редактора карт и в документации не отображены особенности реализации, которые будут оказывать сильное влияние на вашу стратегию.&lt;br /&gt;&lt;br /&gt;Я все-таки взял в руки vim, ctags и cscope и почитал как оно внутри устроено.&lt;br /&gt;&lt;br /&gt;1) Отправка флота на свою планету.&lt;br /&gt;Как известно любому игроку в konquest, каждая планета имеет характеристику "мощь кораблей". Можно отправить с "сильной" планеты флот на "слабую", а потом с нее атаковать противника. В окне "флоты" весь флот имеет мощь той планеты, с которой был отправлен. Но у меня была надежда, что корабли, произведенные на "сильной" планете свою мощь не теряли - в документации на этот счет я ничего не нашел. Эта надежда была разрушена. На самом деле все корабли отправленные с планеты X (или находящиеся на ней) в сражениях имеют мощь, равную мощи планеты. Если они прибудут на другую планету (как вариант завоюют недружественную) - их мощь изменится.&lt;br /&gt;&lt;br /&gt;Если затраты на транспортировку не велики - выгоднее слабые корабли отправлять на ближайшую сильную планету, а уже с нее атаковать. Или просто не собирать флот на ближайшей к противнику планете, а атаковать несколькими флотами.&lt;br /&gt;&lt;br /&gt;2) Миф номер 2: отдаленные планеты сильны. Когда я посылал минимальные флоты на отдаленные нейтральные планеты - они часто терпели неудачу. Я полагал, что корабли в полете ломаются и до планеты долетает только часть флота. Так же была теория, не подтвержденная практикой, что отдаленные планеты сильнее тех, что находятся в скоплениях.&lt;br /&gt;&lt;br /&gt;Мощь и производительность планет не зависит от их местоположения - это произвольные величины, определяемые при создании карты. Кроме тех, что являются homeworld игроков - там эти величины заданы константами (статически прописаны в коде), которые вы и наблюдаете каждый раз на первом ходе.&lt;br /&gt;&lt;br /&gt;Сила нейтральных планет в том, что каждый новый ход им добавляется один корабль. Изначальный флот на нейтральной планете равен ее производительности. Если вам было достаточно 20-30 кораблей для завоевания ближайших планет, то такого флота будет недостаточно для завоевания отдаленных планет ходу этак к десятому.&lt;br /&gt;&lt;br /&gt;3) Так же у меня была теория, связанная со следующей ситуацией:&lt;br /&gt;Я послал флот для завоевания планеты. Флот потерпел неудачу. Я послал еще один - после завоевания планеты там количество кораблей оказалось больше моего первоначального флота.&lt;br /&gt;Теория была в том, что "наши" не только разбили противники, но и взяли пленных.&lt;br /&gt;&lt;br /&gt;Ответ таков: сначала происходят сражения и прибытия пополнений с других планет, а уже потом планеты производят для своего текущего хозяина (который мог смениться после сражения) новые корабли.&lt;br /&gt;&lt;br /&gt;4) Порядок сражений или прибытия подкреплений: сначала выполняется для 1ого игрока, потом для второго и так далее. Понятнее на примере: вы игрок номер 4. На ходе 26 на вашу планету должно прибыть подкрепление с другой вашей планеты и недружественный флот игрока номер 3. Номер игрока 3 меньше - значит сначала нападет его флот (пусть ему удалось завоевать планету), а затем прибудет ваше подкрепление и попытается ее отбить. Новые боевые единицы с этого хода достанутся окончательному хозяину планеты (пункт 3).&lt;br /&gt;&lt;br /&gt;Если вы игрок номер &amp;lt;последний&amp;gt; и вы в один и тот же ход с вашими противниками пребываете на какую-то планету - вам придется биться только с победителем. Если вы первый - со всеми флотами, претендующими на планету по очереди.&lt;br /&gt;&lt;br /&gt;5) Мощь кораблей на самом деле означает вероятность. Бросается кубик с континумм граней, показывающий вещественное число от 0 до 1 - если кубик показал число ниже мощи вашего корабля - вы сбили один корабль противника. Потом тоже самое повторяется для вашего оппонента. До тех пор, пока у одного из вас не останется кораблей.&lt;br /&gt;&lt;br /&gt;То есть на картах побольше можно оценивать свой флот как произведение количества кораблей на их мощь. На маленьких картах это подводит. Вероятность - сука бессердечная.&lt;br /&gt;&lt;br /&gt;6) По поводу нарушения патентов в свободном ПО. Обнаружил, что konquest все-таки нарушает патенты (помимо очевидных типа патента на односвязные списки - наверняка у нескольких компаний в разных формулировках он есть).&lt;br /&gt;Дело в том, что в файле gamelogic.cc (у меня строка 201) в функции, реализующей сражение флотов противников содержится комментарий: "let's get ready to rumble...".&lt;br /&gt;По данным &lt;a href="http://ru.wikipedia.org/wiki/Let&amp;#39;s_get_ready_to_rumble!"&gt;Википедии&lt;/a&gt; фраза запатентована американским мужиком по имени Боб Арум.&lt;br /&gt;&lt;br /&gt;Я надеюсь, что я не один играю в konquest и кому-то это может оказаться полезным.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:9956</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/9956.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=9956"/>
    <title>Отличная шутка с большой долей правды</title>
    <published>2009-02-21T15:36:19Z</published>
    <updated>2009-02-21T15:58:48Z</updated>
    <category term="offtop"/>
    <content type="html">&lt;a href="http://ibash.org.ru/quote.php?id=9159"&gt;http://ibash.org.ru/quote.php?id=9159&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ru.wikipedia.org/wiki/Юнит_(телекоммуникации)"&gt;Юнит&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ru.wikipedia.org/wiki/Вершок"&gt;Русский вершок&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Юнит и вершок = 4,445 сантиметра (44.45 мм). &lt;br /&gt;&lt;br /&gt;Что очень интересно, погрешность измерения советского штангенциркуля - 0.05 мм. По крайней мере, у нас в школе на уроках труда были именно такие.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:9722</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/9722.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=9722"/>
    <title>История о контейнерах</title>
    <published>2009-01-25T20:50:32Z</published>
    <updated>2009-01-25T20:50:32Z</updated>
    <category term="tips"/>
    <content type="html">Что из себя представляет файл с видеофильмом. Грубо говоря это набор из видео потока (кодированного каким-то кодеком), нескольких (0,1 или много) аудио потоков (кодированных каким-то кодеком), нескольких субтитров (в каком-то формате). Все это запаковано в один ящик - контейнер. Контейнер не отвечает за качество видео или аудио - это не его функция. Это просто коробка.&lt;br /&gt;&lt;br /&gt;Тем не менее эта коробка может налагать некоторые ограничения на хранящиеся в ней данные. Посмотреть сравнение контейнеров можно на wikipedia: &lt;a href="http://en.wikipedia.org/wiki/Comparison_of_container_formats"&gt;http://en.wikipedia.org/wiki/Comparison_of_container_formats&lt;/a&gt;&lt;br /&gt;Как мы видим, многие контейнеры. В частности такие популярные как mp4, avi, wmv налагают ограничения на используемые кодеки. Что это значит для пользователя: сейчас у нас популярен один контейнер, завтра другой. &lt;br /&gt;&lt;br /&gt;Другие контейнеры более универсальны и позволяют хранить потоки в произвольном формате.&lt;br /&gt;&lt;br /&gt;Среди них есть интересный нам mkv (матрешка). Интересен он за счет использования EBML, что позволяет его расширять по мере необходимости, а не менять периодически шило (avi) на мыло (mp4 или wmv). Так же сам формат - public domain, есть качественные свободные реализации. Так же mkv сейчас поддерживается аппаратными проигрывателями. Совокупность этих свойств делает его отличным контейнером для хранения своей видео коллекции.&lt;br /&gt;&lt;br /&gt;Что делать с уже имеющейся коллекцией видео? Ее довольно просто можно конвертировать. Сделаем это в полуавтоматическом режиме в усложненном варианте.&lt;br /&gt;&lt;br /&gt;Итак, у нас в директории ~/soap есть собственноручно снятый сериал. С двумя аудио дорожками (рус - дорожка 2 и en - дорожка 1) в avi контейнере. При этом, основной дорожкой стоит английская и языки дорожек не помечены. То есть при запуске плеера без явного выбора у нас будет английская дорожка. Это относится ко всем файлам-сериям в данной директории. Перекодировать мы ничего не собираемся, так как это и есть первоисточник, который мы имеем. Лучше сделать уже не получится - а ухудшить качество можно легко.&lt;br /&gt;&lt;br /&gt;Исправим эту ситуацию.&lt;br /&gt;1) Установим пакет mkvtoolnix&lt;br /&gt;2) Запускаем mkvmerge-gui и открываем (add) первую серию. В окне tracks появились найденные дорожки (как видео так и аудио). По очереди их выбираем и правим нужные параметры (выбираем language для звука). Дорожку с русской озвучкой поднимаем наверх (up) - делаем ее основной.&lt;br /&gt;Когда все нужные параметры выбрали жмем кнопку 'copy to clipboard'. Если нам нужно переконвертировать один файл - можно было бы уже жать 'start muxing'.&lt;br /&gt;Закрываем mkvmerge-gui.&lt;br /&gt;3) Из Klipper (управление clipboard в kde) вытаскиваем строку&lt;br /&gt;&lt;br /&gt;"mkvmerge" -o "~/soap/S1.mkv"  --language 1:eng --language 2:rus -a 1,2 -d 0 -S "~/soap/S1.avi" --track-order 0:0,0:2,0:1&lt;br /&gt;&lt;br /&gt;Она нам корректно переконвертирует первую серию. Обобщим команду.&lt;br /&gt;4) $ cd ~/soap&lt;br /&gt;$ find -type f -iname "*.avi" | while read fname; do mkvmerge -o "${fname%%.avi}.mkv" --language 1:eng --language 2:rus -a 1,2 -d 0 -S "${fname}" --track-order 0:0,0:2,0:1; done;&lt;br /&gt;5) Проверили что все в порядке&lt;br /&gt;$ rm -f *.avi&lt;br /&gt;&lt;br /&gt;Естественно, что с разными по структуре файлами так не получится. В одном у нас аудио дорожка #1 - русская, в другом - французская.&lt;br /&gt;&lt;br /&gt;Переконвертация одного файла у меня заняла около 30 секунд. Так что чай вы попить не успеете.&lt;br /&gt;&lt;br /&gt;Теперь о том, зачем мы проставляли языки дорожек. В конфигурационном файле mplayer (~/.mplayer/config) мы можем указать предпочитаемые языки:&lt;br /&gt;alang=ru,en&lt;br /&gt;Это значит, что при открытии файла mplayer будет пытаться найти русскую звуковую дорожку. Если не найдет - то английскую. Если уж ее не найдет - откроет дорожку по умолчанию.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:9292</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/9292.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=9292"/>
    <title>Xen + Nvidia</title>
    <published>2009-01-16T10:51:05Z</published>
    <updated>2009-01-20T10:26:52Z</updated>
    <category term="xen"/>
    <category term="opensuse"/>
    <content type="html">В последнее время из-за того, что в KDE 4 штатная функция "показать окна со всех рабочих столов" использует композитинг, меня начал доставать драйвер nv. В итоге все-таки сменил его на nvidia. Вообще, функция установки nvidia драйвера реализована с помощью OneClick Install, но мне в этом плане жизнь усложнял гипервизор Xen. Из-за него вытекает некоторая специфика установки. В общем, все похоже на сложный способ установки nvidia драйвера, описаный в OpenSuse wiki: &lt;a href="http://ru.opensuse.org/NVIDIA"&gt;http://ru.opensuse.org/NVIDIA&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Использовались:&lt;br /&gt;- OpenSuse 11.1 (x86) со штатным ядром 2.6.27.7-9-xen&lt;br /&gt;- Последний стабильный NVidia драйвер x86-177.80&lt;br /&gt;- видео адаптер NVidia GF 6800 PCI-E&lt;br /&gt;&lt;br /&gt;Инструкция оформилась на wiki проекта:&lt;br /&gt;&lt;a href="http://ru.opensuse.org/Use_Nvidia_driver_with_Xen"&gt;http://ru.opensuse.org/Use_Nvidia_driver_with_Xen&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.opensuse.org/Use_Nvidia_driver_with_Xen#OpenSuse_11.1"&gt;http://en.opensuse.org/Use_Nvidia_driver_with_Xen#OpenSuse_11.1&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:9179</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/9179.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=9179"/>
    <title>Память П</title>
    <published>2008-12-28T14:55:25Z</published>
    <updated>2008-12-28T14:55:25Z</updated>
    <category term="offtop"/>
    <content type="html">Да, это пост про все ту же Pepsi. Только уже несколько в другом смысле. Недавно до меня дошло, что моя память хорошо описывается моделью "бутылка с сильно газированной жидкостью".&lt;br /&gt;&lt;br /&gt;Информация растворяется в пустоте памяти, как CO&lt;sub&gt;2&lt;/sub&gt; в воде. В итоге с утра получаем полностью чистый мозг, наполненный спокойной черной жидкостью. Затем эту жидкость начинаем трясти простыми вопросами типа "какой сегодня день недели?", "куда сейчас нужно ехать?", "сколько мне осталось времени на завтрак". Пузырьки информации выделяются из нашей пепси-памяти и прилипают к стенкам мозга-бутылки.&lt;br /&gt;&lt;br /&gt;Чуть позже начинаются более сложные вопросы. Эти встряски часто инициированы другими людьми. "У меня гугль не пингуется, а написано, что интернет есть", - всплывают пузырьки с информацией о DNS и магическим ip 4.2.2.2, часто это захватывает за собой что-то еще, потом нужно объяснить человеку что ты делаешь, и эффект сравним с открыванием крышки охлажденного напитка. Когда пузырьки вырываются наружу и на поверхности образуется тонкая пенка. При этом во время самого вопроса происходит что-то вроде удара статикой. Когда спрашивают "А когда экзамен?" и ты вспоминаешь, что экзамен завтра утром, а ты про это забыл - удар током чувствуется явно.&lt;br /&gt;&lt;br /&gt;У пепси-памяти есть свои недостатки. Самый большой - без внешнего воздействия я ничего не помню. Не будет вопросов - я буду немой амебой. Нет вопросов - нет пузырьков. Мне очень сложно находить какие-то примеры и иллюстрации простых вещей, синонимы слов - потому как это не вопросы, а какой-то другой запрос к памяти, мозгом напрямую не обрабатываемый. &lt;br /&gt;Обратная сторона - когда просыпается интерес к происходящему, начинаешь сам себе генерировать вопросы. Как связанные с изначальной темой, так и совершенно далекие от нее. Сейчас пишу эти строки и вспоминаю сколько часов в сутки спят львы. Понятия не имею при чем тут львы. Процесс выхватывания из "пенки" только нужных пузырьков можно назвать проекцией "творчества" на пространство памяти.&lt;br /&gt;Так же в некотором возбужденном состоянии наш сироп начинает лучше чувствовать раздражители. Можно встретить человека всего лишь раз в жизни и узнать его спустя пару лет, полностью выдав его имя-отчество, e-mail и содержание последнего разговора.&lt;br /&gt;&lt;br /&gt;Так вот, вернемся к недостаткам. В последнее время вопросы стали попадаться какие-то специализированные. Довольно большая часть сиропа, пузырьки которой относились к другим темам просто надолго заснули. Удивительно, что далеко не все полностью растворяется и теряется - оно просто спит. И я не вспоминал многие вещи месяцы, а то и несколько лет.&lt;br /&gt;&lt;br /&gt;В последние пару недель равномерной нагрузки на мозг, честно говоря, и не было. Не сделал ничего нового, написал пару страниц простейшего кода, почти все свободное время смотрел Доктора Кто (отличное BBC тв-шоу). И получился аналог знаменитого видео, когда в бутылку кока-колы бросают конфетку ментоса. Взрыв памяти. Я просто лежал, смотрел в потолок. Мне было абсолютно скучно, потом случилось что-то вроде сильного разряда и мне вспомнились люди, с которыми я уже несколько лет не виделся. Вспомнилось много и довольно подробно. То есть лица, имена, содержания разговоров.&lt;br /&gt;&lt;br /&gt;Пока понятия не имею что с этим делать, но вот как работает моя память я начинаю понимать.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:8776</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/8776.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=8776"/>
    <title>Я не лох</title>
    <published>2008-12-26T16:41:32Z</published>
    <updated>2008-12-26T16:41:32Z</updated>
    <category term="offtop"/>
    <content type="html">Ситуация следующая: имеется домашний adsl роутер Acorp W422g. Возраст - 8 месяцев, когда-то купленный мною в омском магазине "Цифровой Мир". Имеется гарантия от продавца - 6 месяцев. Так же имеется компания-производитель Acorp, официально представленная в России, которая установила гарантию в 3 года. Установила вполне корректно, на русском языке, и нашлепала надпись о трехгодичной гарантии на коробочку.&lt;br /&gt;&lt;br /&gt;Модем вышел из строя, точнее его dsl модуль.&lt;br /&gt;&lt;br /&gt;Зашел в Цифровой Мир с приготовленными выпискали из ЗоЗПП (закона о защите прав потребителей) и соответсвующими комментами к нему с официальных источников. Имелся сам модем, все сопутствующие компоненты и коробочка. Модем приняли со второго раза (в первый раз не было руководства - потому как заходил в воскресенье, ближе к вечеру). Особо долго ничего доказывать не пришлось. Начальство сразу поняло суть претензий и со мной никто не спорил.&lt;br /&gt;&lt;br /&gt;Сегодня мне по гарантии выдали новый роутер той же модели. Все заняло 3 дня.&lt;br /&gt;&lt;br /&gt;От чего отталкивался:&lt;br /&gt;Если производитель в соответствии с законами РФ установил гарантийный срок в 3 года - то гарантийный срок 3 года. Продавец может только увеличить этот срок, но никак не уменьшить. Естественно это не касается ситуаций, когда гарантийка от производителя написана на английском. Тогда считается, что производитель не установил гарантийный срок на территории РФ. С моим Acorp гарантия от производителя установлена верно. То есть пункт про гарантию только в 6 месяцев я могу тупо игнорировать, потому что он противоречит федеральному законодательству.&lt;br /&gt;&lt;br /&gt;По поводу "обратитесь в сервис Acorp в Москву". Купил я железку в Омске в вышеуказанном магазине. И по тому же ЗоЗПП я могу выбрать кому предъявить притензии - к продавцу или напрямую к производителю.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:8541</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/8541.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=8541"/>
    <title>Update OpenSuse 11.0 -&amp;gt; OpenSuse 11.1</title>
    <published>2008-12-23T17:33:58Z</published>
    <updated>2008-12-23T17:34:50Z</updated>
    <category term="opensuse"/>
    <content type="html">OpenSuse 11.1 на стадии девелоперских сборок казался мне крайне удачным. Все нужные мне для работы приложения тестировались в вирт машине, к RC1 уже все отлично работало. Однако во время обновления всплыли неприятные мелочи.&lt;br /&gt;&lt;br /&gt;Laptop: После обновления не поднимались X. Крашился драйвер intel (карта gma 945). Решение: сразу после апдейта сделать zypper up. К тому времени как официально вышел релиз, исправление уже было в репозитарии Update.&lt;br /&gt;&lt;br /&gt;Так же успешно перешел на NetworkManager - вроде, отлично работает.&lt;br /&gt;&lt;br /&gt;Desktop: После обновления отвалился звук. Причина: в связи с массовым pulse головного мозга всех пользователей выкинули из группы audio и поместили в группу pulse. Поскольку я еще не читал как работает pulse - предпочитаю знакомый alsa. После добавления себя в группу audio все заработало.&lt;br /&gt;&lt;br /&gt;Так же успешно мигрировал на KDE 4.1.&lt;br /&gt;&lt;br /&gt;Мораль: при обновлениях 10.1 -&amp;gt; 10.2 -&amp;gt; 10.3 -&amp;gt; 11.0 еще ни разу у меня не появлялись проблемы. Так что релиз 11.1 можно считать относительно неудачным. Возможные решения проблем:&lt;br /&gt;0) В любом случае после апдейта сразу же сделать zypper up&lt;br /&gt;* В 11.1 по умолчанию update обновляет package, а не patch, как ранее.&lt;br /&gt;1) Почитать bugzilla и подождать некоторое время, пока критичные для вас ошибки не будут исправлены&lt;br /&gt;2) Поставить, выяснить проблемы, устранить&lt;br /&gt;3) Поставить и обратиться на IRC канал поддержки. Для этого вам потребуется умение на человеческом языке сформулировать проблему.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:8400</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/8400.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=8400"/>
    <title>Zypper &amp; metalink</title>
    <published>2008-12-11T20:00:31Z</published>
    <updated>2009-04-26T16:47:13Z</updated>
    <category term="tips"/>
    <category term="opensuse"/>
    <category term="zypper"/>
    <lj:music>The Velvet Underground - Heroin</lj:music>
    <content type="html">Уже достаточно давно в официальных репозитариях OpenSuse используется баллансировка зеркал. Все добавляют как источник пакетов ссылки на download.opensuse.org, а на самом деле закачка происходит с ближайшего зеркала.&lt;br /&gt;&lt;br /&gt;Для пользователей в РФ это может представлять некоторую проблему - ближайшее к нам зеркало содержат Yandex, и оно иногда разочаровывает. То есть может внезапно замереть. Или в течении пары недель сразу после релиза отдавать на скорости 'ностальгия по 90ым'. На самом деле ситуация не так уж и плоха. Скорости интернета у нас сейчас не такие, чтобы ругать yandex зеркало в медлительности. Чаще всего оно со своими задачами справляется. &lt;br /&gt;&lt;br /&gt;Для пользователей реально быстрого интернета одним из выходов было добавление ссылки не на download.opensuse.org, а напрямую на одно из немецких зеркал.&lt;br /&gt;&lt;br /&gt;В OpenSuse 11.1 появилась возможность решить эту ситуацию более приемлемым способом. Теперь пофиг, что одно зеркало тормозит - есть еще десятки других. В новом zypper появилась возможность использовать &lt;a href="http://ru.wikipedia.org/wiki/Metalink"&gt;metalink&lt;/a&gt;. Для этого просто добавляем стандартные пути к репозитариям, устанавливаем пакет &lt;u&gt;aria2&lt;/u&gt; и устанавливаем переменную окружения ZYPP_ARIA2C&lt;br /&gt;&lt;br /&gt;Потестировать: export ZYPP_ARIA2C=1&lt;br /&gt;&lt;br /&gt;Если понравилось и хотим использовать aria2 на постоянной основе:&lt;br /&gt;В конец файла /etc/environment допишем строку "ZYPP_ARIA2C=1".&lt;br /&gt;&lt;br /&gt;P.S. Проблема уже не актуальна. Но может возникнуть, например, при выходе нового релиза и массового обновления.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:8126</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/8126.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=8126"/>
    <title>OpenSolaris 2008.11</title>
    <published>2008-12-03T19:17:56Z</published>
    <updated>2008-12-03T19:17:56Z</updated>
    <category term="xen"/>
    <content type="html">Совсем недавно вышел очередной стабильный релиз OpenSolaris 2008.11. По этому поводу небольшая инструкция по его установке в domU Xen. В качестве dom0 используется OpenSuse 11.0.&lt;br /&gt;&lt;br /&gt;Поскольку OpenSolaris в списке предустановленных настроек в Yast не присутствует, поэтому придется немножко поиспользовать Xen напрямую, а не через gui средства Yast.&lt;br /&gt;&lt;br /&gt;Для начала выкачиваем образ диска с официального сервера, проверяем хеши, чтобы убедится, что образ скачан верно. Затем проводим некоторые приготовления:&lt;br /&gt;1) монтируем образ диска: &lt;br /&gt;#mount -o loop ~user/store/iso/osol-0811.iso /media/cdrom&lt;br /&gt;2) копируем ядро и ram disk в предварительно заготовленную директорию:&lt;br /&gt;#mkdir /var/lib/xen/images/OpenSolaris&lt;br /&gt;#cp /media/cdrom/platform/i86xpv/kernel/unix /var/lib/xen/images/OpenSolaris&lt;br /&gt;#cp /media/cdrom/boot/x86.microroot /var/lib/xen/images/OpenSolaris&lt;br /&gt;3) создаем lvm том для OpenSolaris в Yast. Я назвал этот том 'opensolaris', находится он в группе system. Следовательно искать его следует в /dev/mapper/system-opensolaris. Хотя, на самом деле, лучше для виртуальных машин держать отдельную группу томов. На десктопе я этими правилами принебрегаю и фигачу все в system.&lt;br /&gt;4) создаем конфигурационный файл для Xen:&lt;br /&gt;#vim /var/lib/xen/images/OpenSolaris/config&lt;br /&gt;name = 'opensolaris2008.11'&lt;br /&gt;memory = '1024'&lt;br /&gt;disk = [ 'file:/home/user/store/iso/Opensolaris/osol-0811.iso,6:cdrom,r', 'phy:/dev/mapper/system-opensolaris,0,w' ]&lt;br /&gt;vif = [ '' ]&lt;br /&gt;on_shutdown = 'destroy'&lt;br /&gt;on_reboot = 'destroy'&lt;br /&gt;on_crash = 'destroy'&lt;br /&gt;kernel = '/var/lib/xen/images/solaris10/unix'&lt;br /&gt;ramdisk = '/var/lib/xen/images/solaris10/x86.microroot'&lt;br /&gt;extra = '/platform/i86xpv/kernel/unix - nowin -B install_media=cdrom'&lt;br /&gt;&lt;br /&gt;Требования к памяти там довольно жесткие, если дать меньше 768, то, вроде, грузиться не будет.&lt;br /&gt;&lt;br /&gt;Теперь смотрим что у нас получилось:&lt;br /&gt;#xm create -c /var/lib/xen/images/OpenSolaris/config&lt;br /&gt;В Yast менеджере виртуальных машин появляется opensolaris2008.11, а в терминале происходит запуск системы с образа livecd. Далее работаем с domU. Вся эта идилия прерывается вопросами типа выбора языка и раскладки клавиатуры. Выводится подсказка с кодами языков, среди которых присутствует и русский.&lt;br /&gt;&lt;br /&gt;Сложности начинаются, когда у нас просят логин и пароль. Гугление дало следующий результат: login: jack, password: jack&lt;br /&gt;Появляется приглашение командной строки.&lt;br /&gt;&lt;br /&gt;Самый важный этап уже закончился. Осталось как-то получить доступ к графической консоли livecd. Для этого воспользуемся vnc. В консоли domU пишем:&lt;br /&gt;1) $mkdir .vnc;cp .Xclients .vnc/xstartup&lt;br /&gt;2) vncserver&lt;br /&gt;Здесь, по приглашению, дважды вводим пароль для доступа к vnc дисплею. После этого в списке процессов у нас появляется Xvnc. Далее потребуется настроить сеть. На самом деле, в моем случае, все прошло проще - в сети функционирует dhcp сервер и OpenSolaris получил ip (192.168.1.8) и настройки сети по dhcp.&lt;br /&gt;&lt;br /&gt;Если у вас нет dhcp и вы не хотите его ставить: $pfexec bash - получаем права root и настраиваем сеть вручную.&lt;br /&gt;&lt;br /&gt;Возвращаемся в dom0. Подключаемся к vnc первому дисплею OpenSolaris:&lt;br /&gt;$vncviewer 192.168.1.8:1&lt;br /&gt;&lt;br /&gt;Теперь можно любоваться на красивый Gnome, щелкать на разноцветные кнопочки, радоваться жизни. Как наскучит, можно все-таки нажать на кнопку установки системы, которая находится прямо на рабочем столе. По окончании установки, в соответствии с инструкциями в config, происходит не перезагрузка, а полное выключение domU.&lt;br /&gt;&lt;br /&gt;Создаем еще один конфиг в /etc/xen/vm/opensolaris2008.11&lt;br /&gt;name = 'opensolaris2008.11'&lt;br /&gt;memory = '1024'&lt;br /&gt;maxmem = '1024'&lt;br /&gt;disk = [ 'phy:/dev/mapper/system-opensolaris,0,w' ]&lt;br /&gt;vif = [ '' ]&lt;br /&gt;on_shutdown = 'destroy'&lt;br /&gt;on_reboot = 'restart'&lt;br /&gt;on_crash = 'destroy'&lt;br /&gt;kernel = '/var/lib/xen/images/solaris10/unix'&lt;br /&gt;ramdisk = '/var/lib/xen/images/solaris10/x86.microroot'&lt;br /&gt;extra = '/platform/i86xpv/kernel/unix -B zfs-bootfs=rpool/ROOT/opensolaris,bootpath="/xpvd/xdf@0:a"'&lt;br /&gt;&lt;br /&gt;Пробуем загрузиться: #xm create -c /etc/xen/vm/opensolaris2008.11&lt;br /&gt;Если все прошло успешно, то ставим FreeNX сервер: &lt;a href="http://blogs.sun.com/xavier/entry/freenx_opensolaris"&gt;http://blogs.sun.com/xavier/entry/freenx_opensolaris&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;И финальный этап: регистрируем нашу машину:&lt;br /&gt;#xm new /etc/xen/vm/opensolaris2008.11&lt;br /&gt;Пробуем запустить через менеджер виртуальных машин Yast. Ну и, для полноты картины делаем xml описание:&lt;br /&gt;#virsh dumpxml opensolaris2008.11 &amp;gt; /etc/xen/vm/opensolaris2008.11.xml&lt;br /&gt;&lt;br /&gt;P.S. По ссылке бинарники FreeNX скачать не получилось - на 30% сервер умер и в данный момент не отвечает.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:7778</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/7778.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=7778"/>
    <title>Факторизация больших чисел</title>
    <published>2008-11-06T00:44:59Z</published>
    <updated>2008-11-12T15:53:23Z</updated>
    <content type="html">Не так давно озадачили меня проблемой факторизации чисел. Пока на серьезный уровень это не вышло. Просто преподаватель по криптографии высылает число, которое надо разложить. Как только оно разложено успешно - высылается число побольше. Благодаря этому, а так же благодаря своей лени, наблюдаю историю проблемы факторизации чисел в ускоренном режиме. Буквально за неделю десятки лет промелькнули.&lt;br /&gt;&lt;br /&gt;Обозначения: когда говорится о количестве знаков в числе, имеется ввиду количество десятичных знаков.&lt;br /&gt;&lt;br /&gt;Начнем с утилиты factor, идущей в пакете coreutils. Сначала у меня была надежда на то, что этим все и закончится, посмотрев в исходный код, сильно разочаровался. factor все же нужно было поместить рядом с cowsay и fortune.&lt;br /&gt;&lt;br /&gt;Уже на числе в 20 знаков. Раскладываемое число не должно превышать 64bit. Адаптировать алгоритм, заменив тип на вменяемый так же невозможно - используется полный перебор. С другой стороны, полный перебор - наиболее оптимален на таких числах. Пишется просто, считается быстро.&lt;br /&gt;&lt;br /&gt;Для записи числа использовал GNU MP, для разложения алгоритм Ферма. Однако, как позже выяснилось - писал его зря. Эффективность быстро падает.&lt;br /&gt;&lt;br /&gt;Вот тут случился довольно большой прорыв в виде книги О.Н. Василенко "Теоретико-числовые алгоритмы в криптографии" МЦНМО, 2003г. Так же как закоренелый приверженец ООП, взял обертку для gmp и теперь нормальными операторами работаю с числами.&lt;br /&gt;&lt;br /&gt;Далее для себя проводил эксперименты c числами 40-60 знаков.&lt;br /&gt;&lt;br /&gt;Здесь уже можно взять алгоритмы Полларда (P-1) сложность O(n^0.5 log^c(n)). И Ленстры O(n^(1/3) log^2(n)). Даже нашел готовые исходные коды на том же сайте, что и классовая обертка. Все было отлично. Брал простые одного порядка из сети, перемножал, раскладывал.&lt;br /&gt;&lt;br /&gt;Однако реальность оказалась жестче. Присланное 60 значное число за пару часов так и не разложилось Ленстрой. Поэтому уже подошел с субэкспоненциальным алгоритмам. В частности мне помогло квадратичное решето.&lt;br /&gt;&lt;br /&gt;А вот теперь есть повод для беспокойства, так в запасе у меня остался только метод GNFS. Судя по его описаниям с практической точки зрения - его должно хватить еще надолго, однако кластера у меня нет и где брать mips-годы тоже понятия не имею.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:7613</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/7613.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=7613"/>
    <title>День открытий</title>
    <published>2008-10-15T17:42:56Z</published>
    <updated>2008-10-15T17:42:56Z</updated>
    <category term="offtop"/>
    <lj:music>Within Temptation - The Howling</lj:music>
    <content type="html">Погода - гавно. Весь город промок, в ближайшее время кататься не получится. &lt;br /&gt;В связи с погодными условиями заперся дома. Решил освоить машинную графику, которую нужно было сдать еще весной, заняться пересказом Maximum RPM "для самых маленьких" и зарегистрировался в vkontakte.ru&lt;br /&gt;&lt;br /&gt;Но, оказывается, бывает гораздо хуже: &lt;a href="http://www.youtube.com/watch?v=P7SGFod30j0"&gt;http://www.youtube.com/watch?v=P7SGFod30j0&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:7212</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/7212.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=7212"/>
    <title>Анонимусы, LOR, HCL</title>
    <published>2008-09-26T05:48:11Z</published>
    <updated>2008-09-26T05:48:11Z</updated>
    <content type="html">Сегодня почувствовал себя в шкуре LOR'овского анонимуса. Пришел друг с просьбой поставить Linux на его ноутбук HP dv4. Несмотря на то что это тоже HP, с моим отличается кардинально. Буквально две разные ветви эволюции. Впервые я увидел, чтобы система не работала 'изкаробки'. Не было буквально ничего. Ни wifi, ни cpu freq scaling. S2ram в suspend уходил и возвращался, после чего начинались необъяснимые глюки и работать дальше было опасно для нервов. Да и вообще почему-то система вела себя нестабильно.&lt;br /&gt;&lt;br /&gt;Такого я еще не видел.&lt;br /&gt;&lt;br /&gt;Человек Linux на ноуте оставил, но я бы на его месте долго не выдержал.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:6967</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/6967.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=6967"/>
    <title>Детская передача</title>
    <published>2008-09-21T00:32:12Z</published>
    <updated>2008-09-21T00:32:12Z</updated>
    <category term="offtop"/>
    <lj:music>Zak Belica - Heavy Metal Fire</lj:music>
    <content type="html">Около 7 утра локального времени сработал будильник на телевизоре, который я забыл отключить. С экрана вещала какая-то страшная кукла, потом последовала заставка что-то вроде "шоу бабы Любы". Спустя пол минуты до меня дошло, что сегодня воскресенье и надо бы выключить ящик и ложиться спать дальше. Но тут в шоу стали показывать научные опыты для детей. Тут я мгновенно проснулся, потому как в образе ученого, проводящего опыты, оказался мой бывший школьный учитель астрономии.&lt;br /&gt;&lt;br /&gt;Юрий Алексеевич Стенькин. Внешность довольно опознаваемая &lt;a href="http://katpop.narod.ru/album/odno/pict/school_g/big/astronom.jpg"&gt;http://katpop.narod.ru/album/odno/pict/school_g/big/astronom.jpg&lt;/a&gt; так что не думаю, что я ошибся. Интересно, что для суровых российских детских передач на проведение опытов приглашают не телеведущих, даже не просто школьных учителей, а людей, реально занимающихся наукой. Например стабильными центрами с водородной связью в матрице кристаллического кварца.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:6765</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/6765.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=6765"/>
    <title>KDE 4.1</title>
    <published>2008-09-15T00:44:57Z</published>
    <updated>2008-09-15T00:44:57Z</updated>
    <category term="kde4"/>
    <lj:music>Tilt - Twelve</lj:music>
    <content type="html">Массово обновил KDE. &lt;br /&gt;Поставил 3.5.10. Внешних изменений не заметил.&lt;br /&gt;Судя по changelog их фактически и нет &lt;a href="http://www.kde.org/announcements/changelogs/changelog3_5_9to3_5_10.php"&gt;http://www.kde.org/announcements/changelogs/changelog3_5_9to3_5_10.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Заодно решил посмотреть в каком сейчас состоянии находится KDE 4 и поставил KDE 4.1.&lt;br /&gt;&lt;br /&gt;Пока еще довольно сыроват, а точнее в качестве основной DE не годится совершенно. Еще и часа не попользовался как у меня с ошибкой вылетел akregator. С остальными приложениями тоже были некоторые сложности. Так что если и использовать - так только вместе со стабильными приложениями из KDE 3. Но даже здесь не все так просто.&lt;br /&gt;&lt;br /&gt;Что первое бросилось в глаза - так это интереснейшая фитча с панелями. Решил как всегда сделать внешний taskbar. Создал для него отдельную панель-плазмоид. Оказалось, что она намертво прилеплена сверху и накладывается поверх дефолтной, и оторвать ее никак нельзя. Более того - толщину панели увеличить можно, а вот уменьшить обратно уже не получится. Гуглением нашел как исправить ситуацию пользуясь конфигами. Запускаем эмулятор терминала, добавляем новую панель, прибиваем плазму: pkill plasma. Рассмотрим как у нас выглядит новая добавленная панель:&lt;br /&gt;&lt;br /&gt;~/.kde4/share/config/plasma-appletsrc :&lt;br /&gt;[Containments][3]&lt;br /&gt;formfactor=2&lt;br /&gt;geometry=0,-143,1278,25&lt;br /&gt;immutability=1&lt;br /&gt;location=3&lt;br /&gt;locked=false&lt;br /&gt;plugin=panel&lt;br /&gt;screen=0&lt;br /&gt;size=24&lt;br /&gt;zvalue=150.01&lt;br /&gt;Переменная geometry определяет где расположена панель, immutability в чем измеряются координаты. Сюрприз! Координаты некоторых плазмоидов будут записаны примерно так: geometry=704.58064516129,0,227.41935483871,24. Если подумать, то оно довольно логично, но в отсутствии конфигуратора такие величины удобными не назовешь. Спасает переменная location, которая как раз и определяет к какой стороне экрана прилипать. Поскольку толщина панели меня устраивала и всего лишь хотелось перетащить ее вниз (location=4). После правки конфига запускаем плазму: plasma&amp;.&lt;br /&gt;Добавляем на нужным образом размещенную панель taskbar. И вот оно - счастье.&lt;br /&gt;&lt;br /&gt;Которое позже омрачили : неработающие горячие клавиши (khotkeys), отсутствие кнопки 'показать окна со всех рабочих столов' (на taskbar у меня только окна текущего рабочего стола). И pager, не показывающий наличие окон на десктопах, отличных от текущего (текущий показывает нормально). Цвета плазмоидов иногда корежит, исправляется переключением на другой десктоп и обратно.&lt;br /&gt;&lt;br /&gt;Так что переход на KDE 4 не состоялся. Но в отличии от 4.0 смотрится намного лучше ) Так что буду периодически обновлять и смотреть что изменилось.&lt;br /&gt;&lt;br /&gt;Хотя некоторые люди не лишены оптимизма:&lt;br /&gt;KDE 3.5 will not be included on the main desktop selection page, but will be included with other desktop environments and window managers like Xfce, WindowMaker, etc.&lt;br /&gt;Из рыссылки OpenSuse News про OpenSuse 11.1. Релиз примерно 18 Декабря.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:6570</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/6570.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=6570"/>
    <title>Scooby Doo</title>
    <published>2008-09-11T23:39:46Z</published>
    <updated>2008-09-11T23:39:46Z</updated>
    <category term="offtop"/>
    <content type="html">Я всегда говорил, что он самый умный пес в мире. Даже больше - он круче Шерлока Холмса. Потому, что Шерлок - выдумка, а Скуби - реальность.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.telegraph.co.uk/news/worldnews/europe/france/2775597/Dog-appears-as-witness-in-murder-trial.html"&gt;http://www.telegraph.co.uk/news/worldnews/europe/france/2775597/Dog-appears-as-witness-in-murder-trial.html&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:6265</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/6265.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=6265"/>
    <title>Отпуск</title>
    <published>2008-08-10T00:28:19Z</published>
    <updated>2008-08-10T00:28:19Z</updated>
    <content type="html">Оказалось, что меня кто-то читает. Даже спрашивают, почему ничего не пишу, хотя обещал краткое введение в AppArmor.&lt;br /&gt;&lt;br /&gt;По поводу первого вопроса: меня укусил спортсмен. Я теперь ем, сплю, катаюсь на велосипеде. Думаю бросить есть или спать, чтобы больше времени оставалось на велосипед. Так что до начала сезона дождей навряд ли что-то появится. Так получилось.&lt;br /&gt;&lt;br /&gt;По поводу AppArmor. Штука довольно странная. Когда почитал &lt;a href="http://www.novell.com/documentation/apparmor/pdfdoc/book_opensuse_aaquick21_start/book_opensuse_aaquick21_start.pdf"&gt;Quick Start&lt;/a&gt; на 4.5 страниц довольно крупного шрифта - не совсем понял как им пользоваться. Почитал главу из руководства администратора, понял о чем говорится в Quick Start. Оно на самом деле и является идеальным кратким введением, причем со второго раза довольно понятным. Поэтому рассказ про AppArmor, видимо, будет только в устной форме. В блоге ограничусь только этой ссылкой и громким заявлением, что штука, действительно, замечательная и не самая сложная.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:6065</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/6065.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=6065"/>
    <title>dev_hands @ 2008-07-14T02:58:00</title>
    <published>2008-07-13T20:15:33Z</published>
    <updated>2008-07-13T20:15:33Z</updated>
    <content type="html">Вчера один человек мне задал вопрос о том как вытащить из picasa ссылку на фото. Все оказалось довольно просто, но все же решил написать.&lt;br /&gt;&lt;br /&gt;Воспользуюсь для примера собственным аккаунтом. Заходим на страницу с нужной фото: &lt;a href="http://picasaweb.google.ru/lh/viewPhoto?uname=mittov&amp;aid=5222327288501804385&amp;iid=5222327807608609762"&gt;http://picasaweb.google.ru/lh/viewPhoto?uname=mittov&amp;aid=5222327288501804385&amp;iid=5222327807608609762&lt;/a&gt;&lt;br /&gt;и смотрим код страницы.&lt;br /&gt;&lt;br /&gt;В javascript копаться не нужно - все намного проще. Нам нужен блок:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div class="lhcl_photobox" style="text-align:center;"&amp;gt;&lt;br /&gt;&amp;lt;table style="margin:0 auto text-align:center;"&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;&amp;lt;div class="container" id="container1"&amp;gt;&lt;br /&gt;&amp;lt;img src="&lt;a href="http://lh5.ggpht.com/mittov/SHlveNEn2-I/AAAAAAAAAKQ/nbF6Dw3bt5Q/DSC00177.JPG&amp;amp;imgmax=640"&gt;http://lh5.ggpht.com/mittov/SHlveNEn2-I/AAAAAAAAAKQ/nbF6Dw3bt5Q/DSC00177.JPG&amp;amp;imgmax=640&lt;/a&gt;" style="width:640px" /&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/mittov/SHlveNEn2-I/AAAAAAAAAKQ/nbF6Dw3bt5Q/DSC00177.JPG"&gt;http://lh5.ggpht.com/mittov/SHlveNEn2-I/AAAAAAAAAKQ/nbF6Dw3bt5Q/DSC00177.JPG&lt;/a&gt; - и есть ссылка на нужное фото.&lt;br /&gt;&lt;br /&gt;Так же можно немного подтюнить размер: &lt;a href="http://googlesystem.blogspot.com/2006/12/embed-photos-from-picasa-web-albums.html"&gt;http://googlesystem.blogspot.com/2006/12/embed-photos-from-picasa-web-albums.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Проблема только одна - понятия не имею как формируюся эти id и насколько они постоянны с течением времени. Сложилось впечатление, что url довольно стабилен. Но все же хочется узнать подробнее.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:5676</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/5676.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=5676"/>
    <title>Google Picasa</title>
    <published>2008-07-13T03:21:30Z</published>
    <updated>2008-07-13T03:21:30Z</updated>
    <content type="html">Иногда во время велопрогулок снимал с телефона вещи, которые мне нравились. Постоянно тянуло взять с собой нормальный цифровик и фото выложить в picasa, потому как с телефона качество позорное. Но после того как во время одной из таких прогулок товарищ Вадим достал из рюкзака Зенит, я понял что с моей цифровой мыльницей качество будет не намного лучше, чем с трубки.&lt;br /&gt;&lt;br /&gt;В итоге опубликовал некоторые кадры. Часть из них сделана при достаточно сильном увеличении.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.ru/mittov/BikeRiding"&gt;http://picasaweb.google.ru/mittov/BikeRiding&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:5464</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/5464.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=5464"/>
    <title>Кофейный лед</title>
    <published>2008-07-06T07:26:07Z</published>
    <updated>2008-07-06T07:29:02Z</updated>
    <category term="tips"/>
    <content type="html">В последнее время стал использовать телевизор в качестве будильника. Сотовый как-то слишком нежно будит и я его просто игнорирую. Так вот, с утра по ТВ время различных анонсов и полезных советов. В начале недели слушал про кофе и способы его приготовления. Какой-то лысый олух упомянул `кофейный лед`. Оказывается, если кофе заморозить в формочках для льда - вам будет зашибись.&lt;br /&gt;&lt;br /&gt;Вчера так и сделал. Для эксперимента взял растворимый *** (не будем упоминать ™ в суе). Залил кофе в формочки, подождал пока остынет до комнатной температуры и засунул в морозилку.&lt;br /&gt;&lt;br /&gt;Сегодня с утра полчаса плясал в трусах вокруг этого чуда кулинарии. Кофейный лед прочно примерз к форме. Стандартный прием с обычным льдом - скручивание - эффекта не приносил. Долго ковырял лед вилкой - откалывались только маленькие кусочки. Поливание теплой водой результата тоже не дало. Эти гады в ящике, забыли упомянуть, что к кофейному льду за завтраком необходимо подавать молоток и зубило в качестве столовых приборов.&lt;br /&gt;&lt;br /&gt;Идеи закончились - полил форму кипятком, кубики за пару секунд потеряли ощутимую часть объема. После этого легко достал их вилкой. В итоге не понравились (пробовал с молоком).&lt;br /&gt;&lt;br /&gt;Если у кого-то есть еще домашние рецепты холодного кофе - не стесняйтесь делиться.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:5349</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/5349.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=5349"/>
    <title>Запуск приложений в KDE</title>
    <published>2008-07-04T13:35:37Z</published>
    <updated>2008-07-04T13:35:37Z</updated>
    <category term="tips"/>
    <lj:music>B.F.G. - Бzzz</lj:music>
    <content type="html">Довольно часто стал наблюдать скриншоты молодых линуксоидов, с бардаком `иконок` на рабочем столе. Ужасное зрелище. Решил опубликовать свое мнение о быстром запуске приложений, чтобы потом, в случае необходимости, давать ссылки и не повторять это множество раз различным людям. Советы довольно общие, примеры даются с привязкой к KDE.&lt;br /&gt;&lt;br /&gt;1) Начнем с кардинальных перемен. Мышка - это долго и неудобно. Самый&lt;br /&gt;эффективный способ запуска приложений - HotKeys (горячие клавиши).&lt;br /&gt;&lt;br /&gt;Заходим в `центр управления kde` -&amp;gt; `региональные и специальные&lt;br /&gt;возможнсти` -&amp;gt; `комбинации клавиш`. Находим вкладку `комбинации команд`.&lt;br /&gt;&lt;br /&gt;Ставим горячие клавиши на самые частоиспользуемые приложения. Такие как&lt;br /&gt;браузер, эмулятор терминала и др. Главное не увлекаться - чем больше&lt;br /&gt;hotkeys - тем сложнее их запомнить. Со временем количество быстрых комбинаций к приложениям и стандартным действиям у вас будет расширяться. Комбинации необходимо такие, которые не будут использоваться в приложениях. Например, Ctrl+C, очевидно, не пригоден для быстрого вызова какого-либо приложения, так как у нас будет конфликт. &lt;br /&gt;&lt;br /&gt;2) Второй по скорости путь к запуску приложений : через командную строку&lt;br /&gt;KDE (по умолчанию Alt+F2). Выучите иена некоторых частоиспользуемых приложений. Например, утилита для записи дисков называется `k3b` - легко запомнить, быстро набрать команду.&lt;br /&gt;За счет того, что командная строка ведет историю - как правило, не нужно&lt;br /&gt;набирать всю команду. Например адресная книга KDE - kaddressbook. После&lt;br /&gt;пары запусков полной командой, в последующие разы хватит просто `kad`.&lt;br /&gt;&lt;br /&gt;3) Третий способ может в некоторых случаях состязаться со вторым, если у&lt;br /&gt;человека очень сильно развит навык работы с мышью. Но если у вас touchpad -&lt;br /&gt;то этот способ сильно проигрывает второму.&lt;br /&gt;Аплеты быстрого запуска на панели KDE (в KDE3 эта панель называется kicker).&lt;br /&gt;RightClick по панели -&amp;gt; добавить приложение на панель. Выбираем, ставим.&lt;br /&gt;Теперь RightClick по иконке (обратите внимание - здесь можно удалить эту&lt;br /&gt;кнопку) -&amp;gt; переместить кнопку -&amp;gt; двигаем ее в понравившееся место -&amp;gt;&lt;br /&gt;LeftClick.&lt;br /&gt;&lt;br /&gt;Иконки на поверхности рабочего стола в windows стиле не эргономичны. Они&lt;br /&gt;перекрываются окнами. Чтобы до них добраться зачастую приходится&lt;br /&gt;сворачивать окна. Панель же окнами не перекрывается (за исключением&lt;br /&gt;fullscreen окон). Избегайте иконок на рабочем столе - выносите их на&lt;br /&gt;панель.&lt;br /&gt;&lt;br /&gt;4) Через меню KDE.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:4876</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/4876.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=4876"/>
    <title>OpenSuse 11.0 + INN</title>
    <published>2008-07-03T12:52:46Z</published>
    <updated>2008-07-03T12:52:46Z</updated>
    <category term="bug"/>
    <category term="opensuse"/>
    <lj:music>Deiselboy - Live At Proper</lj:music>
    <content type="html">Захотелось обновить на одной машине OpenSuse с версии 10.3 на недавно вышедшую 11.0. Главную заповедь `работает - не трогай` помню, но относится она к тому что должно реально работать. А там где just for fun - надо обновлять, обновлять и еще раз обновлять - получите необходимые сведения о самых модных граблях нового сезона.&lt;br /&gt;&lt;br /&gt;Так вот. На машине с 10.3 размещен News сервер INN и Apache с mediawiki. По хорошему это должно делаться так: полная копия рабочей машины (пакеты и конфиги) в машине виртуальной (кстати, для этого проекта идеальным вариантом была бы qemu). Но как-то мне стало лениво. Тем более эксперименты ни к каким печальным последствиям привести не могли.&lt;br /&gt;&lt;br /&gt;В итоге не завелся INN : &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=405186"&gt;https://bugzilla.novell.com/show_bug.cgi?id=405186&lt;/a&gt;&lt;br /&gt;Сразу после старта segfault.&lt;br /&gt;&lt;br /&gt;В результате непродолжительного гугления решил, что проблема во встроенном perl.&lt;br /&gt;&lt;br /&gt;Решение: скачать src.rpm пакет, отключаем embedded perl (убрать в спеке ключ --with-perl). Собираем бинарный пакет, ставим. Теперь INN работает.&lt;br /&gt;&lt;br /&gt;Баг воспроизводится на дефолтной установке минимальной текстовой системы OpenSuse 11.0 в qemu. Если у вас оно тоже воспроизводится - пожертвуйте багу ваши голоса. Если же нет - расскажите как.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:4612</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/4612.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=4612"/>
    <title>Acorp W442G Port Forwarding</title>
    <published>2008-06-28T23:33:29Z</published>
    <updated>2008-06-28T23:33:29Z</updated>
    <category term="tips"/>
    <lj:music>Led Zeppelin - In My Time Of Dying</lj:music>
    <content type="html">Поставил себе IRC баунсер. Открыл порт. Долго тупил почему у меня Konversation перестал подключаться к irc.freenode.org. На подобные грабли я уже пару раз напарывался, поэтому, чтобы не забыть о них опять, решил запостить.&lt;br /&gt;&lt;br /&gt;При добавлении форвардинга с Acorp W422G на машину в локальной сети через web интерфейс, это инженерное чудо почему-то добавляет правило, запрещающее локальной машине отправлять пакеты по этому порту в мир. &lt;br /&gt;&lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;pkts&lt;/td&gt;&lt;td&gt;bytes&lt;/td&gt;&lt;td&gt;target&lt;/td&gt;&lt;td&gt;prot&lt;/td&gt;&lt;td&gt;opt&lt;/td&gt;&lt;td&gt;in&lt;/td&gt;&lt;td&gt;out&lt;/td&gt;&lt;td&gt;source&lt;/td&gt;&lt;td&gt;destination&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;&lt;td&gt;160&lt;/td&gt;&lt;td&gt;DROP&lt;/td&gt;&lt;td&gt;tcp&lt;/td&gt;&lt;td&gt;--&lt;/td&gt;&lt;td&gt;br0&lt;/td&gt;&lt;td&gt;any&lt;/td&gt;&lt;td&gt;192.168.1.2&lt;/td&gt;&lt;td&gt;anywhere&lt;/td&gt;&lt;td&gt;tcp dpt:6667&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Зачем - я не понял. Если это правило убрать - вроде все прекрасно работает.&lt;br /&gt;&lt;br /&gt;Если я что-то сделал не так - расскажите что.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dev_hands:4462</id>
    <link rel="alternate" type="text/html" href="http://dev-hands.livejournal.com/4462.html"/>
    <link rel="self" type="text/xml" href="http://dev-hands.livejournal.com/data/atom/?itemid=4462"/>
    <title>Eclipse + CUPS</title>
    <published>2008-05-28T15:14:29Z</published>
    <updated>2008-05-29T20:54:30Z</updated>
    <category term="eclipse"/>
    <category term="bug"/>
    <content type="html">Недавно решил попробовать Eclipse вместо vim + товарищи. Все-таки модно, прогрессивно, удобно. &lt;br /&gt;&lt;br /&gt;Поставил на ноутбук и на десктоп - работает. Действительно удобно. Прихожу в универ с ноутом, включаю - виснет на открытии файла (не то чтобы виснет, от отсутствие отклика в течении пары минут меня сильно обеспокоили). Убил. Пришел домой, решил разобраться. Включил - работает. Удивился. Пришел в универ - виснет. Стал гуглить, долго гуглил, нашел : &lt;a href="http://ndion.livejournal.com/13060.html"&gt;http://ndion.livejournal.com/13060.html&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;На домашнем десктопе есть принтер, печатаю с ноута на него через CUPS.</content>
  </entry>
</feed>
