Компиляция программ, требующих поддержки Qt3

Некоторые программы (например, тот же Scribus), требуют при сборке из исходников наличия в ОС среды Qt3 (наличие Qt4 проблемы не решает). Сборку в таких случаях можно производить по следующей технологии.

1) Скачиваем дистрибутив Qt3 для X11. Распаковываем, собираем

./configure -thread # поддержка многопоточности, нужна для Scribus
make



( Читать дальше )
  • +8
  • 26 октября 2010, 20:32
  • yababay
  • 4

OSGI/Apache Felix: практический пример

Давайте, наконец, рассмотрим как писать компоненты для Apache Felix. Начало здесь.




( Читать дальше )
  • +8
  • 08 сентября 2010, 22:44
  • yababay
  • 1

OSGi/Apache Felix: универсальная шина для Java-приложений

Примерно год назад я опубликовал на Мтааламу несколько материалов о сервере Apache Felix (см., напр. здесь и здесь). Тогда интерес к этому продукту был обусловлен стремлением освоить новое и поделиться первыми положительными результатами. За прошедшее время Felix стал моим основным инструментом для разработки, запуска и отладки серверных приложений. Здесь хотелось бы вкратце напомнить основы технологии OSGi (которую как раз и реализует Apache Felix), а также осветить моменты, о которых еще не писал, а именно процедуру создания bundle и обработки их с помощью iPOJO.




( Читать дальше )
  • +10
  • 06 сентября 2010, 13:14
  • yababay
  • 2

Jabber-бот в роли дворецкого

Закончил в режиме фриланса один проект, связанный с написанием автоматизированного Jabber-чата. Решил использовать приобретенный опыт в личных целях. Написал бота, который выполняет на моем шлюзе (где запущен среди прочего Openfire) некоторые команды: включить/выключить музыку, вывести output несложных bash-команд. При написании использовано API Smack и Apache Felix. Исходники под катом. Пояснения выложу попозже, т.к требуется экскурс в технологию OSGI, а это не пятиминутное дело.





( Читать дальше )
  • +10
  • 05 сентября 2010, 15:32
  • yababay
  • 3

Кодируем URL из командной строки

Иногда нужно отправить get-запрос на веб-сервер без браузера, например:

wget http://blablabla.bla/hz.cgi?uid=Yababay


Всё это работает до тех пор, пока параметром запроса не становится слово, содержащее нелатинские буквы либо специфические знаки. Например, вариант

wget http://blablabla.bla/hz.cgi?uid=Бабайка

не прокатит. Такие URL-параметры должны быть должным образом закодированы. Как это сделать прямо из командной строки? Секретами делятся консольные гуру с commandlinefu.com.


( Читать дальше )
  • +6
  • 30 августа 2010, 20:24
  • yababay
  • 6

Пронумеровать файлы

Не знаю, зачем может пригодиться bash-скрипт нумерующий файлы в текущем каталоге, но выглядит он потрясающе красиво и для освоения возможностей командной строки очень полезен:

i=1
for f in *
do 
    mv "$f" "$((i++)). $f"
done


Это уж не bash, а какое-то почти С-программирование с объявлением переменных, циклами и т.д. Больше всего удивило то, что список файлов можно получить короткой инструкцией

for f in *

вместо

for f `ls`
  • +4
  • 28 августа 2010, 23:07
  • yababay
  • 1

Полное собрание сочинений на Mtaalamu

Решил я качнуть все свои материалы, размещенные на Mtaalamu. Не секрет ведь, что многие люди пишут на подобные сайты не столько из соображений честолюбия, сколько для того, чтобы мысль зафиксировать или описать какой-то алгоритм, чтобы потом его легко можно найти было. Чтобы все записи были под рукой даже в режиме offline я и предпринял такое действо. Может и еще кому пригодится эта технология.



( Читать дальше )
  • +6
  • 26 августа 2010, 23:13
  • yababay
  • 5

"Обезжиривание" текстовых файлов

Бывают случаи, когда в текстовом файле нужно удалить пробелы в начале и конце строк (например в html для оптимизации трафика при передаче по сети). Для этого консольные гуру сайта commandlinefu.com предлагают следующее решение:

sed 's/^[ \t]*//;s/[ \t]*$//' -i file

Мне в этом примере понравилось то, что можно, оказывается, указывать несколько шаблонов поиска/замены, разделяя их знаком ";".
  • +9
  • 24 августа 2010, 20:28
  • yababay
  • 2

Bash-комментарии: не только в файлах

Известно, что в bash-скриптах «ненужные» строки можно деактивировать знаком #. Всё, что правее него не интерпретируется. Оказывается, это правило действует и в «живом общении» с командной строкой. Например, вы замонтировали диск (скажем, флэшку):

mount /dev/sdc1 /mnt/flash/

Попользовались, решили размонтировать. Раньше я делал так. Стрелкой клавиатуры вверх вызывал предыдущую команду, перемещаются в начало, строки, добавлял букву u, перемещался в конец строки и удалял лишнее. Оказывается, лишнее можно отсечь и с помощью решетки:

umount /dev/sdc1 # /mnt/flash/

Таким образом можно отладить длинную команду не теряя ее неотлаженной части. В истории команды с решеткой хранятся полностью.

"Агата Кристи" и маленький детектив с кодеками

Нашел в своих музыкальных завалах купленный в 1998 году диск группы «Агата Кристи» со всеми их вышедшими на тот момент альбомами (а позднее они, имхо, ничего путного и не записали). Захотел послушать, да не тут-то было: песни закодированы каким-то древним кодеком (mpeg-2.5), причем файлы почему-то имеют расширение wav. Любимый проигрыватель

mpg123 *.wav

воспроизводить такое отказался. Воспроизвел mplayer, но у меня на mpg123 завязана целая система, так что решил перекодировать. Особого труда это не составило и об этом не стоило бы писать, если бы не автоматизация с помощью bash-скрипта.



( Читать дальше )
  • +13
  • 22 августа 2010, 00:31
  • yababay
  • 3