?

Log in

stuckinbuttons [entries|archive|friends|userinfo]
stuckinbuttons

[ website | Основной [лытдыбровый] журнал ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Дёргаем через D-Bus за org.freedesktop.Notifications.Notify из консоли [Jan. 28th, 2011|01:46 am]
stuckinbuttons

self_perfection
[Tags|, , , ]

Достала меня ощутимая задержка с похрустыванием винтом перед появлением уведомления от одного моего скрипта. Попробуем разобраться. Виновник дисковой активности обнаружился сразу — им оказался kdialog:
$ strace -ce trace=file kdialog --title 'Title' --passivepopup 'Message'
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 68.18    0.000015           0       412        30 lstat64
 31.82    0.000007           0       349       111 open
  0.00    0.000000           0         1           execve
  0.00    0.000000           0       111        62 access
  0.00    0.000000           0         5           readlink
  0.00    0.000000           0         5           statfs
  0.00    0.000000           0       103           getcwd
  0.00    0.000000           0       457        93 stat64
------ ----------- ----------- --------- --------- ----------------
100.00    0.000022                  1443       296 total

Святая борода Столлмана! Неудивительно, что при запуске обычно не находится довольно большого количества нужной информации в page cache. Какая-то это стрельба из гаубицы по воробьям, нельзя ли проще? Можно! Встречаем notify-send:
$ strace -ce trace=file notify-send -t 15000 -i dialog-information 'Title' "Message"
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
  -nan    0.000000           0        45         1 open
  -nan    0.000000           0         1           execve
  -nan    0.000000           0         1         1 access
------ ----------- ----------- --------- --------- ----------------
100.00    0.000000                    47         2 total

Вот это уже гораздо лучше. Но гномовское, что на кдешном десктопе не кошерно. При ближайшем рассмотрении оказывается, что показ уведомления осуществляется вызовом через D-Bus метода org.freedesktop.Notifications.Notify. Почему бы не дёргать его напрямую какой-нибудь простенькой консольной утилилитой? И вот тут я застрял: широко известные qdbus и dbus-send не осиливали нужный формат запроса, а самый умный совет, какой удалось нагуглить поначалу — использовать python скрипт. Но потом я всё-таки нашёл gdbus, который с задачей справился:
$ strace -ce trace=file gdbus call --session --dest org.freedesktop.Notifications \
--object-path /org/freedesktop/Notifications --method org.freedesktop.Notifications.Notify \
'appname' 0 dialog-information "Title" "Message" [] {} 15000
(uint32 28,)
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
  -nan    0.000000           0        17         2 open
  -nan    0.000000           0         1           execve
  -nan    0.000000           0         1         1 access
------ ----------- ----------- --------- --------- ----------------
100.00    0.000000                    19         3 total

Ещё лучше, да и из гномовских зависимостей один glib2.

Надеюсь, сэкономлю кому-нибудь время этим постом.
link2 comments|post comment

(no subject) [Jun. 20th, 2010|10:15 pm]
stuckinbuttons

self_perfection
KDE 4.4.4 (kdemod). Часы на панель пришлось добавлять редактированием ~/.kdemod4/share/config/plasma-desktop-appletsrc потому что гуявыми методами оно не желало добавляться. Дожили.
linkpost comment

Глючный линукс 2 [Oct. 24th, 2009|10:55 pm]
stuckinbuttons

self_perfection
[Tags|, , , ]

По мотивам предыдущей записи, о доставших глюках. Ядро 2.6.31 тоже ALSA сломало, но в этот раз я решил проблему. Переконфигурировал с нуля — ненадолго помогло. Потом обнаружилось, что при запуске KDE сессии звук слетает. После некоторых экспериментов обнаружилось, что если сделать alsaconf при запущенных кедах, то настройки, вроде бы, слетать перестают.

А вот ещё из недавно обнаруженных багов, пока с ним мало экспериментировал. С некоторых пор kdm, запускаемый из массива DAEMONS в /etc/rc.conf, стал запускаться в tty3, хотя там должен быть agetty. Если kdm перезапустить, он оказывается где ему и положено быть — на первом свободном терминале, т.е. tty7. Вроде бы, если начать KDE сессию из запущенного в tty3 kdm, то любая попытка в консоли стать рутом командой su после правильного ввода пароля убивает KDE сессию вместе с иксами. Это ведь совсем не нормально, правда? Ну ладно, я недавно подправил /etc/issue до вида
^[[H^[[2J
Arch Linux \r (\n) (\l) [\d \t]

но ведь не должно же быть такого эффекта.

link5 comments|post comment

Linux — говно [Oct. 17th, 2009|05:43 pm]
stuckinbuttons

self_perfection
UPD: На этот пост слетается удивительно много любителей венды (почему-то все анонимусы, что характерно). Так вот, господа, все баги, которые перечислены в посте, более мне не встречаются. Большинство за прошедшие 2 с лишним года исправлены, как обстоят дела с прочим, вроде печати, я не в курсе. Я линуксоид с конца 2006го года и на венды возвращаться не хочу. Win 7 пробовал, не понравилась. Тормоза... Ну что ж, я уже понял, что чем мощнее становится железо, тем ленивее становятся программисты. Но надо заметить, что на СПО можно соорудить и шуструю систему с актуальными версиями софта, см. на LXDE и XFCE. Тут уж выбираешь, что тебе нужнее: фичи или скорость. Венда такой свободы тоже не даёт.

Тезисы к этому посту лежали на винте 33 дня и жгли мозг, наконец изливаю душу.


Linux на десктопе — говно, не смотря на заверения убунтушников. Количество багов, тормозов и отсутствующего функционала, с которым мне сейчас приходится мириться (я использую Arch Linux) приближается к границам моего терпения. Можно, конечно, эти заявления списать на мою криворукость и идеологию Арча в духе "конфигурируй сам", но часть багов и тормоза у меня проявлялась ещё под Ubuntu, что и побудило меня в мае переехать на Arch. Итак, список:

  • Периодически в запущенном Firefox flash шизеет и перестаёт воспроизводить звук, если не повезёт, то это блокирует и воспроизведение ютубовского видео (хотя без звука его и так смотреть в большинстве случаев смысла нет). Лечится перезапуском лисы (с полминуты, зависит от количества открытых вкладок). Вроде бы, я на это напоролся сразу как переехал с венды на linux, но, надо отдать должное прогрессу линя на десктопе, раньше было ещё хуже. В некоторых ситуациях, особенно с Audacity звук ломался для всей сессии пользователя, приходилось делать logout/login.
  • 13 июля от обновления ядра до 2.6.30.1 сломался звук, alsa — гок, но заметил я это только немного погодя, в процессе восстановления перезапуска иксов по Alt+Ctrl+Backspace, так что 2 часа искал проблему не там. С июля kernel26 в IgnorePkg. Но на днях до арчевских репозитариев добралось ядро 2.6.31, надо собраться с духом и попробовать.
  • Ещё немного про звук и начинаем с багами KDE4. Уведомления от Kopete тормозят. Между самим событием (e.g. приходом сообщения) и проигрыванием звука проходит секунд 10 и это очень запутывает. Пробовал починить — не получилось, упоминаний схожих проблем найти не удалось. Вообще основной клиент у меня Gajim, Kopete использовал постольку поскольку нужно было время от времени общаться с айсикьюшниками, а сейчас для этих целей использую qutIM, так что когда проблема появилась и есть ли до сих пор — не знаю.
  • Konqueror (к Dolphin я себя приучить не смог) на момент написания тезисов к посту регулярно падал, сейчас падает изредка. И это в KDE версии 4.3?!
  • С переездом на Arch я созрел до переезда на KDE4 и использования десктопных красявостей, благо kwin в KDE4 эффекты поддерживает нативно. Сначала радовался. Потом оказалось, что включённые эффекты приводят к: сильному мерцанию полноэкранных приложений, если поверх них возникает какое-то уведомление (например в браузере alt к картинке/урлу), проскакивающему раз в несколько секунд в VLC красному кадру в видео, kwin, стабильно кушающему ~10% CPU (AMD Athlon(tm) 64 X2 5200+). GeForce 9400 GT, дрова проприетарные фирменные. Потыкался — починить не смог. Несколько недель как выключил эффекты насовсем и рад.
  • Регулярно дублируются кнопки окон на панели задач, при этом копия становится эдаким неубиваемым призраком, видимым на всех раб. столах и остающимся после закрытия окна, которому оно соответствовало. Лечится перезапуском plasma-desktop.
  • Регулярно падали иксы. Но после отключения эффектов насовсем стало вроде бы получше.
  • Принтер не работает. С ним вообще длинная история, когда я только переехал на линь, принтер HP Photosmart 7450 подхватился без каких-либо проблем. Через порядка года (я очень редко печатаю вообще) оказалось, что принтер виснет при любой попытке печати. То есть настолько, что даже кнопка выключения на принтере не работает, приходится дёргать из электросети. Под вендой, что характерно, работал на ура. Тогда я это связал с тем, что кончился цветной картридж. Ещё через порядка года я переехал на Арч и попробовал наудачу его настроить. О чудо, прекрасно работает! А через месяц-другой обнаружилось, что опять стали проявляться те же симптомы. Пробовал откатить cups и hplip — безуспешно, анализировать логи, в которые сыпалось что-то интересное, но, увы, непонятное. В итоге решил, что проще несколько раз в году потратить минут 10 на перезагрузку в Windows XP, чем потратить на возню с этим ещё возможно много часов.
  • Браузеры тормозят, флэш тормозит. Доходит до смешного и абсурдного: Opera и Firefox нативно в javascript тестах показывают заметно меньшие результаты, чем их вендовые сборки, запущенные под wine. Проводил такие же тесты у себя, подтверждаю.
  • Pacman — тормоз. pacman-optimize вызывается каждые несколько дней по крону, но пакман всё равно удручающе долго ворочает свою базу.
  • Вообще графика тормозит. Под вендой окошки при изменении их размеров мышкой успевают за мышой пиксель-в-пиксель давным давно, ещё с PIII. Под линем на AMD Athlon(tm) 64 X2 5200+ — нет. В заоптимизированном арче. Ну ладно, у меня i386 система, из процессора выжато не всё, но какого чёрта?! Почему до значительного апгрейда 2 года назад под Windows XP очень функциональный текстовый редактор Notepad++ с подсветкой синтаксиса и проч. запускался порядка секунды, а тут заметно менее функциональный Kate — секунды 3??? Что-то глобально не так в датском королевстве.


А не попробовать ли мне Windows 7? Говорят, хороша…

link15 comments|post comment

(no subject) [Mar. 31st, 2009|10:04 pm]
stuckinbuttons

self_perfection
[Tags|]
[music |Brian Culbertson - Forbidden Love | Powered by Last.fm]

Поставил на днях себе вместо раздолбанного полгода назад CD привода откопанный в закромах родины PHILIPS CDD5301. Чёрт, я его боюсь, похоже, у него искусственный интеллект и явно не дружелюбный. Этот привод с удивительной точностью не читает только диски с линуксом! Я предлагал ему оставшиеся от заказов на https://shipit.ubuntu.com/ диски с *убунтой — он до бесконечности жуёт, но файловую систему оси не показывает и загрузка с них не начинается. Записанный некогда мною на CD-R Knoppix 4.0 выплёвывает, едва проглотив, типа это и не диск даже. Остальные из примерно десятка предложенных на дегустацию дисков прочитались без проблем. Так что если я в ближайшее время пропаду — знайте, это меня съел CD привод PHILIPS CDD5301. Вряд ли при такой нелюбви к линуксу он долго будет терпеть моё соседство.

linkpost comment

Prolog [Jan. 20th, 2009|03:22 pm]
stuckinbuttons

self_perfection
[Tags|, ]

Задачка. Скриншот, 800x600, 284 KiBCollapse )
Вот эта задачка и недавно встреченные на хабре статьи о прологе сподвигли меня познакомиться с прологом. Очень давно узнал о существовании этого интересного ЯП, но всё руки не доходили. И за пару часов мне таки удалось решить это на Prolog'е (предварительно минут за 20 решив на бумажке, но, как известно, "Лучше день потерять, чтобы потом за 5 минут долететь" ©).

В файле описан предикат, считающий сколько раз встречается значение V среди A,B,C,D. Как это сделать встроенными средствами и можно ли задать в предикат в интерактивном режиме я пока не знаю.
$ cat pilot.pl
count(N,V,A,B,C,D):-
        ( (V=:=A,NA=1) ; (V\=A,NA=0) ),
        ( (V=:=B,NB=1) ; (V\=B,NB=0) ),
        ( (V=:=C,NC=1) ; (V\=C,NC=0) ),
        ( (V=:=D,ND=1) ; (V\=D,ND=0) ),
        N is NA + NB + NC + ND.


Далее в интерактивном режиме описываю
$ swipl -s pilot.pl
% pilot.pl compiled 0.00 sec, 2,584 bytes
Welcome to SWI-Prolog (Multi-threaded, Version 5.6.47)
Copyright (c) 1990-2007 University of Amsterdam.
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.
For help, use ?- help(Topic). or ?- apropos(Word).
?- % A-D — вопросы на дверях 1-4, имеют допустимые ответы 1-4
|    (A=1;A=2;A=3;A=4),(B=1;B=2;B=3;B=4),(C=1;C=2;C=3;C=4),(D=1;D=2;D=3;D=4),
|    % Условие на первой двери. Ответ на ней встречается среди всех ответов 2 раза или 1
|    ( count(2,A,A,B,C,D) ; count(1,A,A,B,C,D) ),
|    % Ответ на второй двери — количество ответов "4"
|    ( count(B,4,A,B,C,D) ),
| % Среди всех количеств встреч каждого вида ответа только одно количество должно быть ==1
| % Это менее сильное условие, чем на третьей двери, но его хватило для получения однозначного ответа
|    ( count(N1,1,A,B,C,D), count(N2,2,A,B,C,D), count(N3,3,A,B,C,D), N4=B, count(1,1,N1,N2,N3,N4) ).
A = 4,
B = 1,
C = 1,
D = 1,
N1 = 3,
N2 = 0,
N3 = 0,
N4 = 1
Yes
?-
% halt


А D=1 — это как раз ответ к задаче.

Теперь я знаю удобное средство для автоматизации решения загадки Эйнштейна :)
linkpost comment

Google Chrome + Я.Онлайн 2.0 [Sep. 3rd, 2008|08:12 pm]
stuckinbuttons

self_perfection
[Tags|, , , , ]

Блин, господа, вы задолбали. Да, я потестировал Google Chrome. В виртуалке с вендой. Ну да, шустр, симпатичен, прост. Однако браузер без mouse gestures — не браузер. И пока не будет версии для линукса, он мне какбэ нафиг не сдался. А вот Я.Онлайн 2.0, который теперь натуральный jabber клиент — вот это новость! Теперь-то точно ясно, что ацка умрёт и все мы будем скоро в джаббере. Событие.

linkpost comment

Про Gnome и апгрейд [Jan. 6th, 2008|06:25 pm]
stuckinbuttons

self_perfection
[Tags|, ]

Где-то в середине ноября мой провайдер что-то у себя покрутил, и у меня сломался интернет в линухе. В винде причём продолжал быть работоспособным. А близится сессия, а на носу апгрейд, после которого всё равно всё будет переставляться… В общем чинить мне его было лень и сидел я в винде. "На носу апгрейд" продолжалось месяц. А потом раскорёженный системник, наспех поставленная венда, неделя ни рыба ни мясо, убитые на Half-Life 2 выходные… Линукс поставил только на днях. Где-то в январе нам обещают релиз четвёртых кедов, так что решил посидеть до тех под гномом, дабы понять, что это за зверь такой. Поставил Ubuntu 7.10 Gutsy.

В целом, я разочарован. Чёрт подери, здесь реально нет гуя для /etc/fstab?!?! В кедах он, положим, не самый удобный, но там он по крайней мере есть! Или я слепой? gedit — это же убожество! У меня полно текстовых файлов в однобайтовых кодировках, а это чудо не даёт мне указать, что то, что я открываю — не юникод. Где хоткеи? Kate вполне достаточен для кодинга, а gedit только подсветку даёт. Пфуй. Или вот скажем после очередной загрузки у меня сломался звук. Исследования показали, что он почему-то стал выводиться на выход встроенного звука материнки. После установки было так же, но я и не ожидаю угадывания конкретной дырки, куда у меня вставлен провод колонок гаданием на /dev/urandom, в настройках звука указал правильный девайс вывода — всё нормально заработало. После поломки полез опять в эти настройки, всё переключатели стоят в нужном положении, кнопки test пищат куда надо, но весь остальной звук воспроизводится материнкой. Починил отключением встроенного звука в биосе. Ладно, ладно, далеко не факт, что тут претензии должны быть к гному. Попробовал найти аналог yakuake — есть такое, называется Tilda. Ставлю. Надо же, разворачивается. И сворачивается. Удивительно. Почти как Yakuake. Вот только yakuake построен на konsole, в нём настроек полно, хоткеи, а эта тильда не даёт даже банально переключаться между вкладками клавиатурой. А ещё Tilda не умеет автоматически сворачиваться, потеряв фокус ввода. Убожество. Мда, похоже я так и буду жить в кедах..

link3 comments|post comment

Статистика по музыке [Dec. 9th, 2007|07:02 pm]
stuckinbuttons

self_perfection
[Tags|]
[music |Enya - No Holly for Miss Quinn [Shepherd Moons]]

Собрал статистику по своей коллекции музыки. Amarok говорит, что у меня 279 альбомов. Из них 97 lossless.скриптCollapse ) Одни сканы обложек весят больше половины гектара! UPD: можно прощескриптCollapse ) И самое интересное, распределение по годам релиза (участвует 189 альбомов — те, у которых год прописан в названии папки альбома)


скриптыCollapse )
Кто догадается, почему я решил собрать статистику именно сейчас — тому пирожок.

UPD: Кстати, давно уж автоматизировал рисование этого графика.
link4 comments|post comment

За что я не люблю Skype [Oct. 25th, 2007|07:19 pm]
stuckinbuttons

self_perfection
[Tags|, ]

UPD: Наткнулся на более актуальный и неэмоционально написанный список недостатков.

UPD: Наконец могу подвести серьёзную аргументацию под моё интуитивное чувство, что "security by obscurity" не работает. То, что протокол скайпа и используемые в нём методы шифрования не общедоступны, нарушает принцип Керкгоффса и, таким образом, является минусом к безопасности.

UPD: Skype готов предоставлять правоохранительным органам переписку и траффик пользователей. А где бэкдор для спецслужб, там может быть и бэкдор для злоумышленников. Гарантий обратного, ввиду закрытости протокола, нет.

UPD: Skype цензурирует тексты чатов.

Мне часто приходится объяснять своё негативное отношение к Skype. Соберу всё вместе, чтобы не повторяться.
  1. Основной аргумент против скайпа — закрытый, наглухо зашифрованный протокол, пробивающий все файерволлы. Из этого всё следует.
  2. Интерфейс их официального клиента вызывает у меня рвотный рефлекс. Он явно спроектирован для кретинов, впадающих в ступор, увидев более двух кнопок одновременно. А альтернативных клиентов нет, потому что никому ещё не удалось взломать скайповский протокол (п. 0). Вообще есть возможность управлять им из сторонних приложения через Skype API, и не видеть таким образом его физиономию, но в любом случае бинарник скайпа должен болтаться в оперативке и отжирать ресурсы.
  3. Официального клиента для J2ME мобилок нет. Энтузиасты наваяли бы, но увы и ах — п. 0. В итоге с мобилок (большинство всё-таки ни симбиана, ни WM на борту не имеют) со своими контактами не початишься ⇒ на универсальное средство связи он не тянет.
  4. Официальный клиент использует неадекватно много ресурсов (в сравнении, скажем, с QIP, Miranda или Psi). Более того, Skype работает как peer-to-peer клиент, так что каждый запущенный клиент выступает узлом в общей сети и перенаправляет через себя траффик с других машин. Это им, видимо, нужно для обхода файерволов, другой причины, зачем такой метод работы может быть полезен IM/VoIP программе я придумать не могу. Я не понимаю, какого чёрта я должен платить за других людей, тратить на них ширину своего канала и процессорное время. И этого не понимаю не только я, знаете, у многих до сих пор платный траффик, не будь этой фигни с пропусканием скайпом через ваш компьютер чужих данных, они могли бы использовать скайп в текстовом режиме.
  5. Skype — изрядная брешь в безопасности системы. Скрытность и зашифрованность трафика скайпа не даёт проверять его антивирусам и файерволлам. А значит, если кому-то удастся создать эксплоит для скайпа, это повлечёт за собой неостановимую эпидемию заражения машин скайпопользователей, а самое страшное, эта эпидемия будет неидентифицируема.
  6. Skype что-то непонятное творит на компе, на вендузятных системах был уличён в чтении параметров BIOS'а, на линуксовых — читает профиль Firefox'а и /etc/passwd. Совершенно непонятно, зачем. Ну разве что настройки прокси выуживает из лисы, а остальное? Меня такое поведение программы раздражает.


Часто стоит вопрос примерно так: "ICQ sucks. Что вместо?" И тем, кто предлагает скайп, я отвечу следующее (дополнительно к перечисленному выше):
  1. На него сложнее мигрировать. По-любому придётся ставить новую программу, в то время как минимум треть айсикьюшнеков пользуется [потенциально] мультипротокольными клиентами (считаю, что многие пользователи QIP в ближайшее время перейдут на QIP infium). [Уговорить] настроить дополнительный аккаунт в уже установленной и используемой программе куда проще.
  2. VoIP не так уж много кому нужен. А Skype в первую очередь VoIP клиент. Говорят, он даже не позволяет передавать IM пользователям, находящимся в оффлайне.
  3. Надёжность скайпа преувеличена.
  4. Распространённость Skype на данный момент преувеличена.
  5. Высокая скорость роста количества пользователей Skype также преувеличена. О, кстати, отсюда видно, что мы все в конце концов будем в Google Talk и прочих jabber'ах, а вовсе не в Skype: количество пользователей последнего растёт в 7 (семь) раз медленнее.



UPD: С момента написания поста J2ME клиент таки появился, примерно в середине 2008го, насколько я нагуглил. Так что п. 2 более неактуален. Тем не менее J2ME клиент тоже вызывает у меня рвотный рефлекс, он сделан как раз в стиле своего десктопного собрата: под полезную информацию отведена примерно половина площади экрана.

UPD: Ого, в скайпе появилась возможность отключать режим supernode, то есть пропускание через себя чужого трафика п. 3 значительно ослаблен. Нет, всё равно не люблю скайп. Плохой он, неправильный.

UPD: В скайпе появилась поддержка оффлайновых сообщений. Эдак он до нормального средства коммуникации доэволюционирует за несколько лет.

UPD: Мелкософт решил, что пользователям быть супернодами не хорошо и поднял у себя 10к линуксячьих серверов выполнять должность супернод. П. 3 более не действителен?
link13 comments|post comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]