31 октября 2008

Друзья и работа

Немного мыслей в сторону, возможно, я никому не открою ими нового. Пока не начал, обращаю ваше внимание на тэги и напоминаю, что я мизантроп.
Никогда не работайте с друзьями.
Именно так. Никогда не имейте дел с друзьями, не делайте business. Друзья могут быть отличными людьми, с которыми приятно общаться и пить пиво, но не тогда, когда речь идёт о деле. "Если хочешь поссориться с другом - одолжи ему денег." А если хочешь разочароваться - дай работу.
Для работы нужен партнёр. Это может быть твой начальник или подчинённый, твой сотрудник. И с ними можно быть со всеми в хороших и даже в дружеских отношениях, от этого только нематериальный бонус (простое человеческое общение) к вознаграждению растёт. Но как только вперёд партнёрских отношений выходят дружеские - обязательно будет какая-нибудь напасть. Через неопределённое время. Подчинённый начнёт отлынивать, сотрудник попросит доделать вот это, а то у него завтра свадьба покойной бабушки, шеф попросит завести по дороге записку любовнице. Или это начнёшь делать ты.
И если партнёру ты скажешь: "Эй, какого чёрта?" - то друг тебе ответит:"Но мы же друзья, так?" Что-то одно обязательно закончится. Тоже через неопределённое время после прецедента, но обязательно.
Это не "крик души" или изложение опыта, сына ошибок трудных (хотя и такого рода опыт есть), а лишь наблюдение тендеции, в которой я стараюсь избегать прецедентов. И заключается она в том, что есть некоторое количество партнёров, с которыми я мало дружен (хотя бы в силу того, что я мизантроп) и с которыми хоть завтра возмусь за новый проект, и определённое количество друзей, с которыми я работать не стану. Приведённые выше примеры вымышлены, так что ни на кого пальцем не показываю, кто догадается - молодец.

23 октября 2008

Rails Rumble 2008

На rubyflow.ru рассказывают, что закончился этот марафон и можно ознакомиться с приложениями-участниками. Несколькими днями ранее я именно так и сделал и должен сказать, что подавляющее большинство из них бессмысленны и бесполезны, то есть УГ. Есть парочка полезных потенциально, и одно, от русскоязычной комманды разработчиков, - безусловно, но именно оно, самое интересное, не закончено, увы.

Git и эзотерические локали

Об этом нигде не видел, а сегодня столкнулся в лоб.
Использую на локальной машине эзотерическую локаль KOI8-R, оставленную там сознательно по некоторым причинам. Соответственно и коммит-сообщения получаются в этой кодировке. И если клиент svn это осознаёт и сам делает что надо, то Git'у надо явно указать

git config --global i18n.commitencoding "koi8-r"

В случае же, если уже сделан коммит с сообщением в неправильной кодировке (что само по себе не страшно), push'нуто в репозиторий (что уже хуже) и, самое главное, в таком виде парализует (о ужас) модуль "Хранилища" в redmine, то лечить так:
$ git reset --soft HEAD^
$ edit
$ git commit -a -c ORIG_HEAD

о чём говорит нам git help reset, и слить эти изменения в репозиторий:
git push -f origin

15 октября 2008

web to pdf

Поделюсь-ка я с вами одной хорошей штукой. Есть такое расширение для FF - PDF Download, позволяющее загрузить любую страницу в виде PDF (и что-то ещё, но сейчас не об этом). Преобразование очень точное, гораздо лучше, чем его выполняет браузер. Всю работу делает онлайновый сервис разработчиков расширения, и обидно, что использовать его можно только через расширение под не сильно любимый мной браузер. Так вот - не только, держите букмарклет.
web2pdf
Use case'ов этому можно придумать много, например, сохранить что-то на потом, чтобы в случае хардкорного оффлайна, когда вокруг только медведи с балалайками, было что почитать. Я лично буду использовать, чтобы откладывать материал для дальнейшего прочтения на моей n810.
И вообще, вокруг этого крутятся разные мысли, впрочем, их уже стоит обсудить с разработчиками сервиса :)

14 октября 2008

Youtube в gPodder

Итак, интересные новости, человек, известный в списке рассылки как Justin Forest добавил экспериментальную поддержку Youtube в gPodder. Пока поддерживаются только каналы пользователей. Вот текст его сообщения:

I've added support for YouTube channels to gPodder. They are treated
like normal video podcasts: mp4 files are downloaded and can by
synchronized with a device (previously gPodder only downloaded useless
swf files). It now recognizes links to YouTube user profiles
("channels"), such as:

http://www.youtube.com/user/BritneyTV

.. and converts them to the corresponding RSS feeds (YouTube doesn't
support feed discovery at the moment).

If anybody is interested, you can download the patched version of
gPodder from here:

http://repo.or.cz/w/gpodder/umonkey.git?a=snapshot;h=refs/heads/patches;sf=tgz

If you don't know how to run gPodder from git, read this:

http://wiki.gpodder.org/wiki/Running_gPodder_from_Git#Quicker

I'd like any kind of feedback and suggestions.

09 октября 2008

Seamless Software Upgrade v4.2008.36-5

Seamless Software Upgrade v4.2008.36-5 is out! at Internet Tablet Talk
Новость так долго промариновалась в Starred Items, потому что всё хотелось добраться до дома и толком сделать backup, и только тогда пробовать, ибо уже сам текст новости настораживает.
Пришёл, сделал. И правильно я соломку подстелил, не больно было падать. SSU привело в моём случае к циклической перезагрузке девайса, лечение - выдирание аккумулятора с целью выключить и перепрошивка.
Делайте выводы.

07 октября 2008

gPodder under Gentoo

Yesterday Thomas Perl and gPodder team released gpodder 0.13.0 "A Thing About Machines", but last gPodder ebuild in portage tree is 0.12.1. But this ebuild fits to 0.13.0 flawlessly, so you can copy it to overlay and use(you must add /usr/local/portage/overlay as part of $PORTDIR_OVERLAY in /etc/make.conf):

>mkdir -p /usr/local/portage/overlay/media-sound/gpodder


>cp /usr/portage/media-sound/gpodder/gpodder-0.12.1.ebuild /usr/local/portage/overlay/media-sound/gpodder/gpodder-0.13.0.ebuild


>ebuild /usr/local/portage/overlay/media-sound/gpodder/gpodder-0.13.0.ebuild digest

>emerge -av gpodder

Happy podcatching!

Mobile devices power management

Сегодня заметил одну очень показательную ситуацию, в продолжение моей тирады про проблемы maemo (таки это ещё не всё и будут продолжения).
Суть в том, что надолго уехал из дома (несколько суток), при этом взял с собой HP iPaq h2210 и Nokia n810. Для первого зарядку не брал, понеже зело тяжела и неказиста во-первых, и понадеялся на правильно реализованную suspemd to ram (далее s2r, режим, в котором отключается всё кроме памяти ради энергосбережения и оставляется память ради сохранения оперативных данных) во-вторых, да и использую его исключительно как плеер, то есть по дороге туда пару часов послушать и обратно так же, в-третьих. Для второго взял, ибо карман не тянет, а s2r в n810 нет, и использую я её активно.
В итоге, прожив (наверное) сколько-то в анабиозе h2210 скончался. Дома, будучи воткнут в зарядку, продемонстрировал hard reset (представьте себе rm -rf / с последующей переустановкой системы). Хвала бэкапу, восстановил до актуального состояния за 10 мин., но это ни разу не заслуга девайса или ОС.
n810 же при низком заряде выключается (традиционным shutdown'ом), то есть все данные сохраняются. При попытке включения в таком состоянии девайс показывает лого и снова отключается, давая понять, что он жив, но голоден. Пока завтракал - зарядил, и поехал по делам.
Вывод - при совмещении преимуществ обоих подходов получаем идеальный. Очень жду s2r в Diablo, тем паче что в ядре Linux эта возможность есть.

04 октября 2008

Barcodes, vCards & bluetooth

На хабре обсуждают технологию обмена визитками при помощи фотографирования двухмерных графических картинок с закодированными в них данными. Технология понятная, в каждом супермаркете работает по миллиону раз на дню. Так вот, пока каждый (именно каждый, а не 60-70-80%) телефон с камерой не будет изначально иметь этот софт (и для этого не надо будет проходить дуболомную регистрацию), позволяющий в 3-5 нажатий запомнить новый контакт (а можно и с фотографией тут же), всю эту красоту ждёт та же участь, что и передачу карточек через bluetooth в винмобайл и прочих - из-за дубовой реализации (а блютус есть в гораздо большем количестве устройств, даже в относительно простых телефонах вроде моего бывшего moto razr V3) забытой всеми. Вот вы знаете, что ваш телефон может принимать-отправлять контакты по BT? А он может.
Так что ещё года 3-4, а то и все 5 (впрочем, если делать как с блютусом - то вообще никогда), если производители озаботятся, а потребители полностью заменят парк имеющихся аппаратов (можно заодно и 3G заюзать, какая оказия) это будет развиваться.

03 октября 2008

Git branch in zsh

Увы, ребята из novemberain зачем-то убили свой сайт, так что ссылку на заметку Show git branch in a command prompt давать не буду, кому интересно - расшарил в гугльридере (хвала кешу гугла). А рассказывалось там, как выводить в приглашении командной строки bash текущий бранч гита.
Захотелось мне того же в zsh, а не тут то было. Штука в том, что prompt expansion выполняется в zsh на старте (попробуйте засунуть туда $(date) и убедитесь ) за исключением 'prompt escapes'. С другой стороны в zsh есть всякие специальные функции типа precmd (выполняется перед выводом prompt), а в качестве эмулятора терминала я использую yakuake, в заголовок вкладки которого можно напакостить написать всё что мне нужно. Так и получились следующие строки в конфиге zsh:

69 function precmd(){
70 GITBRANCH=`git branch 2>&1 | grep '*' | awk -F' ' '{print $2}'`
71 if [ ! -z $DCOP_YAKUAKE_SESSION ]; then
72     [ ! -z $GITBRANCH ] \
73         && dcop yakuake DCOPInterface slotRenameSession $DCOP_YAKUAKE_SESSION "git:$GITBRANCH" \
74         || dcop yakuake DCOPInterface slotRenameSession $DCOP_YAKUAKE_SESSION `pwd | sed "s,^$HOME,~,"`
75 fi
76 }

UPD: Интересная штука - в PS1 подстановка переменных также выполняется на старте, а в RPROMPT перед каждым выводом. Так что в дополнение к предыдущему методу можно ${GITBRANCH} куда-нибудь притулить в RPROMPT, чтобы видно было в любом терминале.

01 октября 2008

Проблемы maemo в средней полосе.

В течение некоторого времени являюсь владельцем nokia n810. И в процессе использования проявляются как положительные моменты, так и откровенные fail'ы, достойные failblog'а. О них и речь. Не обязательно проблемы относятся к самой платформе, некоторые могут быть специфичны для девайса, порядок не связан с приоритетом.

  1. Джойстик внутри выдвижной части. Это неудобно. И место для него снаружи есть. При правильном подходе (если разместить его под логотипом нокии, к примеру) можно конструктивно повысить удобство того же серфинга и сократить количество выдвижений клавиатуры, тем самым повысив надёжность всего устройства. При таком размере и разрешении экрана браузер к тому же крайне сложно контроллить пальцами.
  2. Индикация раскладки. Под абсолютно бестолковую панель с индикатором тратится экранное место. Вариантов море - цвет заголовка окна, апплет в трее, LED индикатор.
  3. Расположение сенсора освещенности. Когда девайс держишь закрытым и за бочка, постоянно перекрываешь его пальцем.
  4. Привязки клавиш. Взяли и выкинули F1-F12. Ладно, в эмуляторе терминала я их добавил. Так половина из них отвечает за что-то другое - полноэкранный режим, громкость и пр. Внешние клавиатуры курят?
    В ту же сторону. Куча архиважых для линуксоидов символов выкинута в прекрасные дали, тот же пайп и табуляция. Нафига тогда было включать эмулятор терминала? Ведь сила шеллов в пайпах и автокомплитах!
  5. Лонг-тапы. Как бы ни много было поводов ругать WinMobile, Long-tap там настраивается, отлично работает и используется везде, к нему привыкаешь моментально. Он органичен. Здесь же он кривой, неудобный и нафиг не нужен разработчику в таком виде. Доходит до того, что контекстное меню проще сделать на одинарный тап (gpodder).
  6. Фееричный фэйл. Вчера задумал красиво расположить файлы на встроенной карте с помщью симлинков. Так вот встроенная карта, до которой руками не добраться, в устройстве под управлением линукс отформатирована в ФС FAT!
  7. Отсутствие нормального (даже стороннего) PIM. Всё, что есть - убого. Даже встроенные контакты по-своему недоделаны и убоги. Девайс, конечно, изначально не был предназначен для какого-либо business применения, но с такой дырой он становится непривлекателен вообще никому.
  8. Довольно странные последние обновления (Diablo). Баг с раскладками в microb, субъективно ставший неудобным менеджер сооединений и пр.

Может быть, что-то забыл. Кому-то сказанное выше покажется мелочами, но по мелочи копится общее отношение к устройству. Должен отметить, что сумма негативных впечатлений от использования WM была на порядок больше. В данной заметке не рассматривается userspace софт.