Показаны сообщения с ярлыком linux. Показать все сообщения
Показаны сообщения с ярлыком linux. Показать все сообщения

09 июля 2010

Shell hint - end task notification

Запустил долгую задачу, а когда кончится - непонятно, мониторинг активности консоли (как в Konsole или iTerm) тоже не помогает - процесс иногда обделывается выводом в STDERR, что делать?

^z
fg; say "Job done!"

Это для маков, но идея проста - отправить задачу в сон, вернуть обратно, по окончании отчитаться (линуксоиды могут прослушать ядро).

14 июля 2009

О моветоне в поведении моего блога

Обратил внимание после того, как мне пришёл комментарий. Внезапно в ленте руникса всплыли все (или многие, не суть) мои записи про линукс. Подозреваю в этом глюк гугла, который недавно заподозрил мой блог в спаме и заблокировал, вероятно происшедшее - результат разблокирования. Хотя в ридере лента этого блога не обновилась (да, я читаю себя и иногда даже нахожу опечатки и отправляюсь править пост), так что это может быть и глюк агрегатора руникса. Делайте выводы.

14 июня 2009

Linux -> MacOs switcher'ство

Ну вот вам и первый свитчерский пост.
Я не буду говорить, как хорош или плох мак и линукс, я яростно ненавижу макодрочеров и не понимаю оголтелых линупсоедов (да-да, можете начинать отписываться), скажу в этой заметке лишь о том, чего мне не хватало в маке после линукса.
Вообще, хорошей отправной точкой может послужить SIMBL с его плагинами, из которых я сразу поставил InputSwitcher, дабы в каждом окне была своя раскладка клавиатуры (согласитесь, глупо иметь в терминале русский и в IM, за редким случаем, английский) и Visor - терминал должен быть под рукой всегда, на любом из Spaces, а это и zsh и git и vim и многое другое. В качестве замены gkrellm (не идеальной, не хватает иногда шкал, обновляемых в реальном времени) подойдёт iStatMenus - видно, когда процесс ушёл в бесконечный цикл, пора прибить обожравшийся памяти браузер или невовремя дорвавшийся до тарифицирумого траффика iTunes. Для быстрого запуска приложений в стиле автодополнения коммандной строки и krunner подойдёт namely.
Кроме того, нашёл мак сборки давно знакомых вещей - git, MacVim, zsh, arora, keepassx - это всё-таки такой специальный уличный юникс, много чего родного тут работает.
Чего не хватает до сих пор - толкового двухпанельного файлового менеджера и плеера (iTunes не предлагать, плавали  - знаем). Тут я готов прослыть извращенцем и поставить krusader & amarok в маковской сборке.
Такой вот кратенький забег. Для остального либо нашлись очевидные аналоги - либо вопрос пока открыт...

28 мая 2009

низкий уровень звука в maemo

Продолжая ковырять таблетку.
Как уже неоднократно убеждались владельцы, использовать maemo девайсы в качестве плеера крайне неудобно - они тихие.
А дело в том, что каждый раз при втыкании и вытыкании наушников программым методом снижается уровень pcm канала. Понаблюдать и порулить этим можно из миксера aumix, который водится в том же треде. И как одно из решений - тем же самым аумиксом по крону устанавливать звук на максимум (не бойтесь, не оглохнете - плеера управляют другим каналом):

aumix -w + 100

Это решение универсально и гарантированно выжмет максимум во всех приложениях. Правда, не кардинально, но ощутимо.

Ещё один путь - сорвать к чертям программный микшер, что, например, позволяет делать mplayer:
cat ~/.mplayer/config
softvol=1
softvol-max=300

300% от нормального - уже достаточно для мегаполиса и поездов с идущей в комплекте гарнитурой (даже слегка слишком - появляются шумы, которые слышны даже моему отдавленному взводом медведей уху). Минус - шумы, не все плееры поддерживают вывод через mplayer (kagu умеет).

В принципе, этого достаточно, хотя остаётся ещё несколько путей - replay gain, HAL, крутейшие наушники KOSS - но я уже слегка оглох...

27 мая 2009

идентификация ОС

Байка: в одном продукте под ОС семейства видовс версия ОС определялась по наличию в корне диска c: папок с именами windows, winnt и т.п., что приводило к странным флуктуациям при наличии нескольких или отсутствию таковых.

Призказка: работал на n810 плеер kagu, да и перестал. И UKMP тоже перестал. А без kagu n810 вообще не плеер, поскольку была в kagu самая главная возможность любого плеера - быстро поставить его на паузу (аппаратной кнопкой на корпусе или на родной гарнитуре).

Сказка: а причина была как в той самой байке - из-за странного способа идентификации ОС: по наличию определённого пути (который я удалил, дабы в автодополнении шелла не мешал). Вот так:

#/usr/bin/MediaCenter.py
if os.name=="posix" and os.path.exists('/media/mmc1'): ISMAEMO=1

Из-за этого устанавливалась неправильная глубина цвета и любое приложение, использовавшее pygame, падало.

Мораль: надо определять ОС другим способом. Хотя бы по ядру:
uname -a
Linux Nokia-N810-23-14 2.6.21-omap1 #2 Wed Jul 16 12:29:11 EEST 2008 armv6l unknown

12 марта 2009

дисковые буфера и hibernate в Linux

Пока нет ничего серьёзного к опубликованию, вот вам лёгенькая тема.
Заметил давно, что используемый мой метод hibernate в виде ядра с патчами tuxonice и скриптом оттуда же ну слишком уж медленный. Краткое раскидывание мозгами и раскапывание вопроса показало, что достаточно большую долю времени занимает сохранение дисковых буферов, что само по себе весьма экстравагантный финт - сохранять на винт кеш обращений к винту. Решил отключать кеш перед засыпанием и восстанавливать после просыпания:

#/etc/hibernate/common.conf
OnSuspend 10 echo 3 > /proc/sys/vm/drop_caches
OnResume 10 echo 0 > /proc/sys/vm/drop_caches

Время засыпания теперь - "как в лучших домах Лондона и Филадельфии".

01 марта 2009

Убираем многословность в Kopete

Часто бывает - постишь код, кусок документации или просто цитату в Kopete и лог разговора моментально забивается так, что за деревьями леса не видно. Скальпель!
В папке с темой оформления окна разговора Kopete (я скопировал одну из стандартных, получился такой путь: ~/.kde/share/apps/kopete/styles/PXClear/Contents/Resources) ищем main.css и добавляем

.OutgoingMessage, .NextOutgoingMessage
{
            height: 40px;
            overflow:hidden;
}

.OutgoingMessage:hover.NextOutgoingMessage:hover
{
            height:auto;
}

.IncomingMessage, .NextIncomingMessage
{
            height: 40px;
            overflow:hidden;
}

.IncomingMessage:hover.NextIncomingMessage:hover
{
            height:auto;
}


посты длиннее двух строчек (с моим размером шрифта) отображаются полностью только при наведении на них мышки.

08 февраля 2009

Improving KDE4.2 taskbar plasmoid

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

 1 diff --git a/plasma/applets/tasks/windowtaskitem.cpp b/plasma/applets/tasks/windowtaskitem.cpp
 2 index aaaabbd..d4adaa4 100644
 3 --- a/plasma/applets/tasks/windowtaskitem.cpp
 4 +++ b/plasma/applets/tasks/windowtaskitem.cpp
 5 @@ -84,6 +84,10 @@ void WindowTaskItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
 6          if (isGrouped()) {
 7              parentGroup()->collapse();
 8          }
 9 +       else{
10 +           m_task->close();
11 +           close();
12 +       }
13      } else {
14          AbstractTaskItem::mousePressEvent(event);
15      }


В связи с чем вопрос - кому-то интересно такое поведение плазмоида?

02 февраля 2009

gentoo, kdeprefix useflag, KDE 4.2, Phonon and backends

Ну в общем в курсе все, что 4.2 вышел, он крут и наступило щастье. Так что это пока не обсуждаем.
А вот то, что поломался звук - предмет нашего разговора.
Поломался звук, amarok не играет, а всё потому что phonon не видит свои backend'ы, ибо всё раскидано в разных местах, понеже кто-то на useflag kdeprefix внимание обращает, а кто-то нет и кладёт всё по FHS.
Варианта, как водится, два.
1. Отмержить к чёрту все версии KDE ниже 4.2, отключить kdeprefix, только тогда ставить 4.2. Более правильный на мой взгляд. В воздухе повисшим оставим тот вопрос, что же делать с k3b и прочим антиквариатом.
2. Помочь найти потерянные backends.

ln -s /usr/share/kde4/services/phononbackends/ /usr/kde/4.2/share/kde4/services/phononbackends

Костыль, но быстрый и действенный.

26 января 2009

Дата в maemo

Приложение "Часы" в ITOS, скажем так, несколько странное, и при установке даты заставляет устанавливать не часовой пояс, а город, в списке доступных городов моего города нет, более того, города, по которому назван мой часовой пояс, там тоже нет! Такого бредового подхода я нигде не видел, да везде можно установить свой пояс в Asia/Yekaterinburg! Так что открываем рутову консоль и колдуем стандартное

echo "Asia/Yekaterinburg">/etc/timezone
date 01252055 (см. UPD)

Доступные временные зоны можно поглядеть так: ls -R /usr/share/zoneinfo/, а время записывать в формате ММДДЧЧмм.
Ещё +1 к карме и +5 к кошерности девайса.
UPD: я тут сам был и других ввёл в заблуждение. Оказывается, maemo не сохраняет системное время в аппаратные часы, что приводит к тому, что после перезагрузки время опять возвращается на круги своя. Из используемого в maemo busybox стандартная утилита для синхронизации системного и аппаратного времени hwclock была вырезана. Установить аппаратные часы можно так:
/mnt/initfs/usr/bin/retutime -T 2009-01-25/20:04:36

При этом время нужно указывать UTC (или гринвическое, как удобнее называйте).

22 декабря 2008

отделяя дистрибутивы от котлет

Офигенно радуют в обзорах а-ля "что там нового в недавно вышедшем нашем любимом  дистрибутиве Х" фразы типа "Eclipse обновлён до версии 3.4". Ребята, да что за чушь вы пишете?  Разработчики дистрибутива ни строчки кода не написали для того, чтобы обновился этот Eclipse. Зачастую 1 всё, что сделали дистростроители - собрали его в формате пакетного менеджера дистрибутива или написали правило сборки (в той же Генту даже это делается сообществом). Да, это тоже работа, но к обновлению Eclipse относящаяся косвенно. Если учесть, сколь мало успешных примеров разделяемых между различными дистрибутивами одного семейства репозитариев, по большей части мартышкина работа.
"Улучшенная поддержка вебкамер" тоже не из дистрибутива произрастает, а из ядра. И снова степень участия дистростроителей в этом может быть разной, чаще всего - никакой.
В общем, ковырять вот так вот статейки можно долго и со смаком, в то же время окончательного и однозначного понимания того, что есть дистрибутив и что можно считать заслугами его строителей при релизе, у меня до сих пор нет. Немало в его достижении помогает статья любимого мною автора Алексея Федорчука Что же такое дистрибутивы Linux? Однако есть ещё несколько моментов.
Атрибутом любого дистрибутива является документация к нему, а заслугой создателей - её полнота, актуальность, доступность на родном языке и далее по тексту. Это может быть как руководства администратора, так и пользователя, иногда разработчика или maintain'ера пакета.
Самая же главная заслуга создателей дистрибутивов - интеграция. Интеграция имеющейся у них на руках глины в виде всего зоопарка ПО для создания жизнеспособной (могущей поддерживать себя и свои внутренние процессы типа обновления), по возможности красивой и удобной системы, предоставляющей пользователю окружение для осуществления уже его процессов (рабочих, развлекательных и пр.) Простейший пример - Gentoo (низкая степень интеграции) и Sabayon (высокая степень). То самое "сделать красиво".
Поскольку эта запись найдена в черновиках - прямо вот тут мысль обрывается и возникает вопрос - что ещё можно и должно считать частью дистрибутива, а что - вкладом в него (а вообще - в Open Source мир) со стороны независимых сторонних разработчиков?
  1. Я не говорю всегда - некоторые сообщества дистрибо-фанов и разработчиков именно дистрибутивов могут и контрибутить в различные проекты, особенно полезные именно им. К примеру - SuSE и Kickoff - целое юзабилити-исследование + разработка меню - и всё для того, чтобы улучшить юзерэкспириенс своих потребителей.

my.gpodder.org

Практически "тихо и незаметно" появилась в gpodder одна штука, которая в примечаниях к версии описана так: Support for gPodder web services (upload and download subscription lists). Суть её в том, что можно залить на сайт свой список подкастов и потом в другой экземпляр gpodder (на другом комьютере) загрузить. Само по себе уже хорошо, но есть ещё Podcast Top 50, что хорошо уже не только само по себе, но и тем, что в силу специфики аудитории сейчас там преобладают англоязычные подкасты линуксово-гиково-технической направленности. Чем несомненно стоит воспользоваться.

Вот что говорит об этом сам разработчик, Томас Перл (Thomas Perl):

Yep, I hope that the list is actually something worth to the users that will someday get the current "Top podcasts" list (that uses the PodcastAlley top podcast OPML) replaced with a community-based top podcasts list.

That said, as soon as I rewrite the (currently messy) codebase that is the webservice, I'm going to publish it under an open license, so users should still be able to run their own "my.gpodder.org" server or put up an alternative server in case I turn evil.

Still, for the current main use case (having a community-based top podcasts list), it's best to stay at the my.gpodder.org service, because we take the subscriber count from that data. If you want to just install a copy on your server to sync your (private) podcast list between many machines, you should be able to do so as soon as the code is cleaned up and released.

After that, it's also possible to take feature additions from the community, because the my.gpodder.org is open source then.

Так что счастливого подслушивания.

22 ноября 2008

Цена линуксов

Вот тут наши горячие головы и чистые сердца спорят на тему того, что негоже брать за срезы обновлений линукса бабло.
Опаментайтес, пан! (ц) Во-первых, любой труд должен быть оплачен. Во-вторых - это же мечта всех опенсорщиков и им сочувствующих - на этом самом опенсорсе хоть шерсти клок.
Был со мной аналогичный случай. Обратился ко мне как-то человек, и попросил закачать что-то из линуксов. Выходила пара DVD или около. Я их засунул в торрент клиент, назначил время. Взял денег ровно за то время, пока канал был занят закачкой этих торрентов, как за аренду. Не думаю, что был неправ в этом случае. И человек, ко мне обратившийся, тоже так не думал. Потому что - какая у него могла быть альтернатива? Пойти в магазин и заплатить за прошлогодный дистр рублей 300-500 (есть у нас магазин такой - выбор достаточно большой но не совсем свежий). Долго и нудно клянчить на форуме местного LUG'а (дистр был какой-то непопулярный). Купить бюджетный анлим и тянуть неделю. Человек предпочёл получить комплексную услугу (о как загнул :) ) - поиск, закачку, прожиг и доставку до места встречи - за что и проголосовал кошельком, вполне разумной суммой. Кажется, в те же самые 200 руб.
А вы бы согласились оплатить такую услугу, буде она бы вам была нужна?

11 ноября 2008

От добра добра...

...не ищут, понял я, как только попробовал ставить Sabayon. Причин попробовать это было две - лень собирать Gentoo и красивости Sabayon из коробки. Причин отказа от идеи одна - при попытке в выборе пакетов добавить k3b инсталлятор притащил выкинутый ранее гном и ещё стотыщмилионов пакетов. Не люблю мусор, тем более что одним инструментом по приборке в Gentoo временно (надеюсь) стало меньше.
Тем не менее, очень удобно из-под Sabayon собирать Gentoo. Музыка, браузер - не скучно, по крайней мере.
В общем, революции не случилось. Остаюсь на генту.

08 ноября 2008

sys-libs/e2fsprogs-libs

Только сейчас понял, почему вокруг гентушники делают круглые глаза и лихорадочно постят в стиле "А! У нас там Пакет! Блокирует!" Докатилось по портежам из ~ в стабильные ветки. И вот то, что блокирует - это ещё ерунда (при гуглении за минуту находится соотв. баг в трекере генты), а вот то, что оно в таком виде уже в стабильных... It's a crap как по мне.

Gentoo Live USB

Если вы, как и я, решили пойти по джедайскому пути и соорудить себе сабж (по этому хауту), то ставьте стабильный ранний syslinux:

eix syslinux
[U] sys-boot/syslinux
Available versions: 1.76 2.13 3.11 3.20 3.31 (~)3.36 (~)3.51 3.52 (~)3.70 (~)3.71
Installed versions: 3.11(01:17:59 08.11.2008)
Homepage: http://syslinux.zytor.com/
Description: SysLinux, IsoLinux and PXELinux bootloader

иначе можете напороться на грабли.
Завтра буду применять эту Силу, но это уже другая история.

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 эта возможность есть.

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, чтобы видно было в любом терминале.