среда, 11 ноября 2009 г.

Установка Ubuntu 9.04 на IBM ThinkPad X31

Данная статья создается больше для себя - чтобы не "забыть" как и что делал по настройке. Но если колму-то еще пригодится, буду рад :)

Преамбула:
Волею судеб случилось так, что на работе взял себе в пользование дополнительный наут в виде X31.
Несмотря на то, что это чудо техники весьма древнее, прельстило меня в нем то, что оно - неубиенное (качество его сборки ещё было хорошим, и если за те годы пользования оно не развалилось, то нет на то причин и в будущем) и довольно легкое - вес мало отличается от современного X61.
Но вот беда - достала меня на нем форточка (русская - ненавижу локализованные системы!) - то не так свистишь, то низко летаешь... Не вынесла моя душа таких унижений - снес форточку.
И поставил на сие чудо Linux OpenSUSE 11. Красивый, зараза. Но на этой машинке тормозил безбожно - оказалось что памяти на этом науте поставлено всего 256Mb. Для современного софта - просто мизер.
История:
Почесал я репу и решил поставить Ubuntu.
Выбрал распоследнюю на текущий момент версию: 9.0.4
После установки операционка заработала бодренько, практически не подвисая. А когда убрал видео-эффекты (типа сворачивающихся окошек), так и вообще замечательно.

С чем столкнулся в процессе настройки/использования Ubuntu на X31 и как это решал:
  • Не заработала средняя кнопка на трек-пойнте (ей включается скролл)
Решение нашел здесь (там, кстати, также куча других хитростей изложена):
Create a new file called /etc/hal/fdi/policy/mouse-wheel.fdi typing:
sudo gedit /etc/hal/fdi/policy/mouse-wheel.fdi

And fill it with this code:(дальше должен быть XML-код, но как его сделать отображаемым 1-в-1 я пока не знаю :( )




true
2
6 7
4 5
4 5
true

Source: [1]

(Based on code from Michael Vogt and adapted to support both vertical and horizontal scrolling.)


  • Настройки клавиатуры
Понятное дело, клавиатуру при установке операционки, выставил, как и положено, в English-USA. Чтобы добавить русскую клавиатуру делаем следующее:
  1. В главном меню открываем раздел System->Preferences->Keyboard
  2. В открывшемся Keyboard Preferences открываем вкладку Layouts и добавляем русскую раскладку клавиатуры (Russian Federation - Russia)
  3. Выставляем раскладке USA - что она у нас используется по дефолу
  4. В Layout options указываем как переключать раскладки в разделе Keys to change layout (для винды привык использовать RCtrl+Shift, но для Linux такой вариант переключения неудобен - при использовании сочетаний типа Ctrl+Shift+-> происходит переключение языка, потому сделал Shift+Shift и Shift+CapsLock).
  5. Добавляем отображение раскладки клавиатуры: Right-Click по панели с меню, квик-ланчем и статусами, Add to panel, Keyboard indicator

  • Браузер FireFox 3.0
Неожиданностью для меня стало то, что Firefox в Ubuntu используется версии 3.0. И многие те фишки этого браузера, которые я уже привык использовать в других средах, работать с этой старой версией не захотели.
Из всех предлагаемых решений, выбрал наиболее прямое (уже не помню где взял):
В терминале пишем:
ubuntu:~$ sudo apt-get install firefox-3.5
Он установит новую версию браузера, которая будет работать параллельно со старой версией.

После успешной инсталляции, в файл-навигаторе находим ссылочный файл /usr/bin/firefox-3.5, который можно запускать для старта нового Firefox. Нового названия "Shiretoko" можно не бояться - видимо, это имя перца, который сумел сделать эту (временную) сборку новой версии браузера для Ubuntu.

В конце, можно в панель быстрого запуска добавить запуск новой версии браузера - в качестве команды указываем все тот же файл "/usr/bin/firefox-3.5", остальное - по своему усмотрению.

  • Проигрыватель FLV-файлов
Когда попытался проиграть такой ролик, Movie Player сказал что подходящего плагина нет и предложил поискать. В результате, нашел плагин gstreamer0.10-plugins-bad. В описании сказано, что пометку "bad" получают модули с изъяном (недостаточное тестирование, недостаточная документация, отсутствие code-review или еще что-нибудь).
Также пришлось поставить плагин gstreamer0.10-ffmpeg.
Если эта штука будет мешать в будущем, ее нужно будет снести. Надеюсь, как и большинство других вещей в Ubuntu, это будет сделать нетрудно.

  • Ошибка загрузки GRUB
Когда ставил Ubuntu, старую систему не снес, а поставил вторую рядом. И когда окончательно утвердился во мнении, что мне нужен именно Ubuntu, встал вопрос о сносе ранее используемой SUSE. Загрузившись с Ubuntu Live-CD, воспользовался утилитой gparted (Gnome Partition Editor). Для начала снес два партишена (2-й и 3-й) старой системы - системный и юзерский (swap трогать не стал). Поскольку партишены самого Ubuntu были в Extended-разделе и его размер менять нельзя, пришлось просто скопировать его партишен на освободившееся место. После этого, система благополучно загрузилась. Успокоившись, я снес старый раздел Ubuntu и его своп, а также дополнительный раздел, где они располагались. Однако, при загрузке получил ошибку загрузки GRUB - что-то типа stage1.5 load error 22. Ошибка означает, что партишен, указанный загрузчику, не был найден.
Не углубляясь в детали моего приступа тупняка, сразу напишу решение:
Загрузившись с того же Live-CD, необходимо в терминале выполнить несколько операций:
* ubuntu:~$ sudo grub
* grub> find /boot/grub/stage1 - эта в моем случае выдала (hd0,1)
* grub> root (hd0,1)
* grub> setup (hd0)
* grub> quit

После перезагрузки я смог загрузиться со своей операционки.

  • Проблема со swap-памятью
После перестановок с партишенами, радостный я начал пользоваться наутом и через довольно быстрый промежуток времени он начал жутко тормозить, отчаянно работая винтом. Вызвав монитор ресурсов, заметил что размер своп-памяти у меня нулевой. Родной-то раздел для свопа я удалил, а свой от предыдущей операционки на автомате не стал использоваться...
Установил утилиту gparted через apt-get install, запустил и, кликнув на раздел свопа, выбрал команду swapon, что включило использование своп-раздела.
Вот только, как выяснилось, эта установка сбросилась при следующей перезагрузке...
Чтобы этого не происходило, настройки необходимо делать в файле fstab. Как выяснилось, там был прописан UUID прежнего своп-раздела.

  • Skype-клиент
Озадачился необходимостью поставить скайп-клиента. Все оказалось просто:
* необходимо сходить на скайп (сюда)
* скачать пакет для Ubuntu (скачал для 8.10 на 32-бит) - deb-пакет
* запустить пакет - загрузится менеджер установки пакетов
Вот еще бы понять как настроить чтобы он показывался-скрывался по комбинации клавиш (типа Ctrl+Shift+S). Но, на самом деле, это не критично.

  • Проверка диска
После неожиданной перезагрузки системы, можно инициировать проверку системного раздела, запустив команду:
sudo touch /forcefsck

  • Upgrade to Ubuntu 9.10
Мой наут не имеет CD/DVD. Для апгрейда по сети необходимо скачать из репозитория порядка 700Mb инфы, что на скорости подключения 256Kb/s было бы удручающе долгоим процессом.
И вот засада - объявить залитый на наут ISO-имидж диска с новым дистрибутом в репозиторий обновлений возможности нет (в OpenSUSE я это воспринял как данность и теперь удивился что в Ubuntu этого нет). Погуглив в интернете, нашел решение (по крайней мере, для дистра Ubuntu 9.10) - примаунтить ISO командой
sudo mount -o loop ~/Desktop/ubuntu-9.10-alternate-i386.iso /media/cdrom0
и, если не откроется автоматом диалог с предложением сделать апгрейд, инициировать его ручками через команду запуска (Alt+F2):
gksu "sh /cdrom/cdromupgrade"
(решение взято здесь)

Еще материалы:

четверг, 19 марта 2009 г.

Повышение эффективности подчиненных

Заданный в Twitter вопрос о том, как повысить эффективность гос.чиновников, натолкнул на размышления: "И правда, а как?". К сожалению, сразу не получилось записать в блог - пришлось воспользоваться ручкой и бумагой... :) Поразмыслив над этой темой дальше, понял что эта схема может быть применима для любых исполнителей.

По сабжу видятся две схемы:
1. Поднять ответственность новаторов.
Ситуация: На крупных предприятиях (или в крупных проектах) всегда идет поиск улучшения. И часто находятся люди, которые предлагают Silver Bullet: "А давайте купим вон ту фигню (программу, систему, оборудование, методику, специалиста - что угодно) и это решит сразу кучу проблем!" Фигню покупают - и... тишина. Ничего не случилось. А средства - тю-тю... Знакомая ситуация?
Решение: Предложить новатору вложить свои средства в развитие проекта. Своего рода, долевое участие. Если проект состоится и прибыль будет получена, дать новатору его часть прибыли. Провалился проект - новатор потерял свои кровные. И если новатор не полный раздолбай, то он будет землю рыть чтобы проект был успешным.

2. Повысить эффективность исполнителей.
Ситуация: Человек сидит на своем месте и ничего не делает. Точнее, делает намного меньше, чем мог бы. И это становится особенно большой проблемой, если он в верхней половине иерархии.
Решение: Ввести соревновательную составляющую и систему оценки деятельности.
Как бы тривиально это ни звучало, но объективная система оценки труда руководителя изрядно подстегивает его расторопность.
Допустим, каждый проект или задание имеет определенную степень сложности. (вес проекта)
Тогда, за каждый реализованный проект/задание, исполнитель получает баллы. Например, за полный успех - +100% веса, за полный провал - -100% веса, "ни то, ни се" - 0. (по шкале допустимы вариации) Т.е. если вес проекта = 100 и проект реализован на 3/4 от потенциала, исполнитель получает +50% (50 баллов).
С какой-то периодичностью (например, раз в пол-года) должна производиться оценка эффективности исполнителей. Особо эффективных можно продвигать вверх или премировать бонусами, а нерадивых опускать вниз. Причем, чем выше позиция исполнителя в иерархии, тем выше должна быть планка минимальной эффективности.
Такая система будет саморегулирующейся - эффективные исполнители будут автоматически подниматься вверх (их полномочия будут расширяться и эффективность повышаться), а нерадивые будут опускаться вниз и система будет таких людей изживать, либо, как минимум, минимизировать урон от их деятельности.
Однако здесть есть сложность: необходима объективная оценка степени сложности проекта/задания и объективная же оценка успешности реализации проекта/задания.

вторник, 10 февраля 2009 г.

Один из факторов, влияющих на сткорость разработки

(проект-менеджерам и тим-лидерам на заметку)
В общем-то, это никакое не откровение - давным-давно известная истина.
Но почему-то часто забывается руководителями (и мной тоже, кстати).


Если рассматривать команду разработчиков, как некий целостный механизм (или организм), то можно заметить что она имеет некоторую инерцию в плане скорости разработки. У одной команды инерция больше, у другой - меньше. Часто ей пренебрегают. Но она есть всегда.
И если команду нацелить на какую-то задачу (описать задачу, которую необходимо выполнить, т.е. в данном контексте - задать цель), она постепенно ускоряется - скорость разработки возрастает.
Если цель в процессе разработки проекта (а лучше до начала реализации) делать четче, это способствует ускорению.
Незначительное смещение (изменение) цели, как правило, снижает скорость разработки.
Значительное смещение цели дезориентирует и деморализует команду, и, как правило, приводит к полной остановке разработки. Иногда вплоть до гибели всего проекта.

К сожалению, в некоторых проектах, в которых я принимаю участие, часто наблюдается смещение целей от незначительного до очень сильного. И это негативно сказывается на проектах.

Особенно сильно это явление налюдается в больших проектах, которые уже живут своей жизнью.

Как с этим быть?
По реальному даже очень небольшому проекту исключить изменение цели абсолютно невозможно. Точнее, можно, но для этого нужно быть гением. Ну, или, как противоположность, это - мертвый проект.
Чтобы негативное влияние смещения цели свести к минимуму, необходимо прийти к версионности в проекте.

Как это работает:
  • Утвердить цель по проекту 1.0 и стараться ее не изменять.
  • Все накапливающиеся смещения цели по проекту связывать с со следующей версией - 2.0.
  • Когда будет принято решение о переходе к разработке 2.0, так же утвердить новую цель.
  • И так далее.
И это решение работает. Правда, хорошо оно работает только когда используешь это решение осознанно. Т.е. понимаешь для чего ты это делаешь, а не потому что "так принято".