Communication problem with “kded”

Экспериментируя с Plasma сильно-сильно уронил KDE. Роковое стечение обстоятельств – как раз перед этим обновил систему (в т.ч. и kde) и не успел рестартнуть сессию. Итого: утомительная многочасовая битва с мельницами, почти полностью утерянные настройки и эта чудо{вищная} заметка.

Симптомы были следующие: kde не стартует под пользователем, но прекрасно запускаются под root-ом.

startkde: Starting up...
Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
kded(4946): Communication problem with  "kded" , it probably crashed.
Error message was:  "org.freedesktop.DBus.Error.ServiceUnknown" : " "The name org.kde.kded was not provided by any .service files" " 

(4944)/ KStartupInfo::createNewStartupId: creating:  "${HOSTNAME};1283501102;250139;4944_TIME0" : "unnamed app"
startkde: Shutting down...
klauncher: Exiting on signal 1
startkde: Running shutdown scripts...
startkde: Done.

Незамедлительно был сделан вывод: что-то “пришло” в обновлённых пакетах, как назло недоступен slackware.com (нет, ну вы подумайте – всё вот так вот разом, а?). Был перелопачен /etc на предмет разного рода изменений в правах доступа. Затем в /dev/null один за одним полетели файлы из $HOME, /tmp и т.п. Удалил весь $HOME, создал девственно чистый – ничего. Начинала свербить мысль – а может остаться под root-ом…. ?!

Решение как всегда оказалось простым и ожиданным. Позабыл удалить /var/tmp/kdecache-$USER. Уже не первый раз сталкиваюсь и не последний раз забываю начать именно с этого.

P.S.
Вот на кой ляд половина хлама падает в /tmp, а другая в /var/tmp ?

05.12.10  |  ,  | 2 comments

Добавляем действия в контектное меню KDE

Контекстное меню KDEМногие операции вроде “замаунтить флешку”, “скопировать файл” и т.п. ежедневно-рутинные действия я не задумываясь совершаю в консоли (благодаря yakuake она всегда под рукой). Но перед людьми бывает “неудобно” – они видя все эти “магические” манипуляции ещё больше укрепляются в мысли, что “эти ваши линуксы” не для “наших широт”.

Для того чтобы немного размазать негативные впечатления добавил некоторые действия в контекстное меню “проводников”.

Первое что надо сделать: понять ГДЕ необходимо приложить руки.

$ kde4-config --path services
/home/miracle/.kde/share/kde4/services/:/usr/share/kde4/services/

В одной из этих директорий создаём файл my-super-actions.desktop подобного содержания:

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=video/*;
Actions=CompressMovie4Nokia;CompressMovie4HTC;GetSubtitles;
Encoding=UTF-8

[Desktop Action CompressMovie4Nokia]
Name=Compress for Nokia
Icon=phone
Exec=/bin/sh -c 'cd "`dirname "%f"`" \
&& ffmpeg -y -i "`basename "%f"`" -ac 1 -ar 22050 -vcodec mpeg4 -s 176x144 -r 24 \
-b 118k -ab 32k -aspect 11:9 "nokia-`basename "%f" .avi`.mp4" \
&& kdialog --title "Compress Movie" --passivepopup "Movie `basename "%f"` compressed"'

[Desktop Action CompressMovie4HTC]
Name=Compress for HTC
Icon=pda
Exec=/bin/sh -c 'cd "`dirname "%f"`" \
&& ffmpeg -y -i "`basename "%f"`" -s 320x240 -r 22.5 -ac 2 "htc-`basename "%f" .avi`.avi" \
&& kdialog --title "Compress Movie" --passivepopup "Movie `basename "%f"` compressed"'

[Desktop Action GetSubtitles]
Name=Download subtitles
Icon=draw-text
Exec=/bin/sh -c 'cd "`dirname "%f"`" \
&& subtitles `basename "%f"` -l en \
&& kdialog --title "Subtitles" --passivepopup "Subtitles for movie `basename "%f"` downloaded"'

Затем выполняем:

$ kbuildsycoca4

И наблюдаем свежедобавленные пункты в меню “Actions”.

В коде всё наглядно, отдельного упоминания наверное стоит только тот факт, что /bin/sh нужен лишь для того, чтобы запустить более одной команды, как в моём случае – если команда одна, то запуск шелла будет лишним.

Ссылка по теме: Desktop Entry Specification

01.12.10  |   | стань первым

Subversion и время модификации файлов

Крайне странно что раньше я не замечал по-умолчанию директива use-commit-times ВЫКЛЮЧЕНА!.

Включить, понятное дело, можно настройкой в конфиге ~/.subversion/config.

Ну или в cli добавив параметр –config-option=config:miscellany:use-commit-times=yes

17.08.10  |  ,  | стань первым

kdebindings и ruby1.9

Злосчастное обновление ruby до 1.9 сломало не только watir, но и мои плазмоиды.

Полдня провёл в попытках разобраться с ситуацией – при загрузке rubygems вываливается трэйс, смысл которого в:
undefined method `synchronize’ for #<Mutex:0xab1cd2> .

Нашёл несколько сообщений с описываемой проблемой «встроенного ruby» , но решения по всей видимости нету.

Поэтому пришлось установить «старый» ruby и собрать kdebindings с ним:

tar -zxf kdebindings-*.tgz
cd kdebindings-*
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_KROSSRUBY=off -DENABLE_PYKDE4=off -DRUBY_INCLUDE_PATH=/opt/ruby4kde/lib/ruby/1.8/i686-linux/ -DRUBY_LIBRARY=/opt/ruby4kde/lib/libruby.so -DRUBY_EXECUTABLE=/opt/ruby4kde/bin/ruby ..
make && make install

watir и ruby1.9

В системе обновился ruby до 1.9 и после переустановки нужных gem-ов ВНЕЗАПНО обнаружилось, что watir не грузится.

/usr/lib/ruby/gems/1.9.1/gems/user-choices-1.1.6/lib/user-choices/arglist-strategies.rb:152: warning: else without rescue is useless
/usr/lib/ruby/gems/1.9.1/gems/user-choices-1.1.6/lib/user-choices.rb:1:in `require’: /usr/lib/ruby/gems/1.9.1/gems/user-choices-1.1.6/lib/user-choices/arglist-strategies.rb:148: syntax error, unexpected ‘:’, expecting keyword_then or ‘,’ or ‘;’ or ‘\n’ (SyntaxError)
when 0: # This is not considered an error because another source

Решить «проблему» удалось редактированием нескольких файлов в /usr/lib/ruby/gems/1.9.1/gems/user-choices-1.1.6/lib/user-choices/ – в arglist-stragergies.rb, conversions.rb и sources.rb необходимо все конструкции вида when XXXX : заменить на when XXXX then

10.12.09  |  ,  | 3 comments

Unknown table engine ‘InnoDB’

Обновление mysql до 5.1 вылилось в такое вот сообщение.

Выполнение mysql -uroot -e”show engines” подтвердило – действительно unknown.

После разных пересборок, шаманств и плясок с бубном решение всё-таки нашлось – оказывается innodb теперь плагин и его надо загружать. Для чего необходимо добавить в строку запуска mysqld следующие параметры:

–plugin-load=innodb=ha_innodb.so;innodb_trx=ha_innodb.so;innodb_locks=ha_innodb.so;innodb_lock_waits=ha_innodb.so;innodb_cmp=ha_innodb.so;innodb_cmp_reset=ha_innodb.so;innodb_cmpmem=ha_innodb.so;innodb_cmpmem_reset=ha_innodb.so

Требуется регистрация

В последнее время пришлось несколько раз столкнуться с интернет-магазинами. Всякая мелочь (а приятно) и вот что хотелось бы “выхлопнуть” всем, с позволения сказать, разработчикам этих, с позволения сказать, сайтов…

Конечно хочется сказать, чтобы убили себя об встречный КаМАЗ Хочется заставить их попробовать купить в своих магазинах что-нибудь. Помучайтесь, гады!
Представь себя, неуважаемый разработчик, в супермаркете. Где тебе надо с полной тележкой всякой всячины выстоять получасовую очередь на регистрацию. Через полчаса твою тележку отнимут. И лишь потом ты снова насобираешь продукты и сможешь пойти на кассу. Весело? Абсурд?

Так за каким, прости, мужским половым ты требуешь от меня РЕГИСТРАЦИИ? Почему я должен ждать дурацкое подтверждение полчаса? Почему моя корзина снова ПУСТА?!?

Спроси у меня телефон для связи и извести продажную женщину(мужчину) о новом заказе и мы расстанемся друзьями. Зачем тебе ЗАРЕГИСТРИРОВАННЫЙ покупатель, который никогда к тебе больше не вернётся? Нравится мастурбировать на мои контактные данные? Сохрани их к себе, вместе с оформленным заказом, делай с ними всё что захочешь, но потом…

P.S.

Всё описанное не про какой-то конкретный магазин – они ВСЕ такие. За очень редким, но к счастью существующим исключением. Первое правило маркетинга по-русски – “Клиент прежде всего урод”…

UPDATE: ещё один пост ненависти с более широким перечнем претензий.

08.09.09  |   | стань первым

Performance Optimization WordPress Plugins by W3 EDGE