[ Content | View menu ]

Автоматическое изменение кодировки в konsole

21.11.2007

У нас в организации есть несколько серверов со старыми линуксами, которые используют кодировку KOI8-R. С того момента, как я поставил на свой рабочий компьютер Федору, меня очень раздражала необходимость вручную переключать кодировку для каждого сеанса в konsole. Сегодня под впечатлением от заметки про установку away в ICQ в зависимости от достижимости телефона по bluetooth наконец придумал, как это сделать.

Как и всякая программа KDE, konsole использует DCOP для внутрисистемных коммуникаций. Это означает, что запущенной программой можно управлять из командной строки командами типа “dcop konsole-2115 konsole setFullScreen true“. Здесь konsole-2115 — название программы + её pid, все остальные аргументы — это, говоря языком ООП, объект, методы и параметры. Список программ, которыми можно рулить подобным образом, и их объектов с методами можно получить, выполняя последовательно команды dcop, dcop konsole-2115, dcop konsole-2115 konsole и т.д.

Вернёмся к нашим баранам. Konsole при запуске устанавливает две переменные окружения: KONSOLE_DCOP, в которой хранится ссылка на текущий экземпляр программы, и KONSOLE_DCOP_SESSION — ссылка на текущий сеанс. Для установки кодировки текущего сеанса нужно использовать такую команду:

dcop $KONSOLE_DCOP_SESSION setEncoding KOI8-R

Собственно, на этом задачу можно считать решённой, осталось правильно оформить ответ :)

В качестве быстрого решения подойдёт прописывание в .bashrc alias’ов для всех интересующих хостов:

alias 01='dcop $KONSOLE_DCOP_SESSION setEncoding KOI8-R;ssh bpp@192.168.0.1 $*;dcop $KONSOLE_DCOP_SESSION setEncoding UTF8;'
alias 02='dcop $KONSOLE_DCOP_SESSION setEncoding KOI8-R;ssh bpp@192.168.0.2 $*;dcop $KONSOLE_DCOP_SESSION setEncoding UTF8;'
alias 03='dcop $KONSOLE_DCOP_SESSION setEncoding KOI8-R;ssh bpp@192.168.0.3 $*;dcop $KONSOLE_DCOP_SESSION setEncoding UTF8;'

Более правильное решение — оформить это в виде небольшого скрипта ~/bin/ssh-launcher.sh, который умеет переименовывать сеанс и проверять, выполняется ли команда в konsole, а не, например, в xterme, который dcop не поддерживает. Кроме того, скрипт можно расширять, добавляя установку различных параметров konsole в зависимости от хоста назначения.


#!/bin/bash
if !([[ "$1" ]] && [[ "$2" ]]) ; then

echo Usage: $0 username hostname \[ ssh parameters \]
exit 1

fi

ssh_params=( $* )
ssh_user=${ssh_params[0]}
ssh_host=${ssh_params[1]}
unset ssh_params[0]
unset ssh_params[1]
ssh_parameters=${ssh_params[*]}

if [[ x"$KONSOLE_DCOP" != "x" ]] ; then # если мы в konsole

dcop $KONSOLE_DCOP_SESSION setEncoding KOI8-R
dcop $KONSOLE_DCOP_SESSION renameSession $ssh_user@$ssh_host
ssh $ssh_user@$ssh_host $ssh_parameters
dcop $KONSOLE_DCOP_SESSION renameSession `whoami`@`hostname`
dcop $KONSOLE_DCOP_SESSION setEncoding UTF8

else

kdialog –text “run this from konsole”

fi

Теперь в ~/.bashrc можно прописать alias’ы длы вызова этого скрипта:


alias 01='ssh-launcher bpp 192.168.0.1 $*'
alias 02='ssh-launcher bpp 192.168.0.1 $*'
alias 03='ssh-launcher bpp 192.168.0.1 $*'
...
alias bpp='ssh-launcher bappoy bappoy.pp.ru $*'

P.S. Обратите внимание на $* в конце alias’а — благодаря этой переменной можно очень быстро выполнять команды на указанном сервере:

01 ps -ax\|grep httpd\|wc -l

Ссылки про DCOP
KDE DIY – Building Your Own Tools
Using DCOP from the command line (Linux Gazette #97)
DCOP @Wikipedia

lifehack, linux, Ссылки - 1 комментарий

Конфликту Mandriva – Microsoft не суждено разгореться

12.11.2007

В продолжение темы “Мандрива против Microsoft в Нигерии”: Конфликту Mandriva – Microsoft не суждено разгореться. Всегда бы так…

linux, Ссылки - 0 комментариев

Админские забавы: издевательства над ворами wifi-трафика

Ссылка дня, однозначно! Что можно сделать с воришками, тырящими трафик через wifi.

Ну и для обычных пользователей сквида, перебравших трафик на порносайтах и приколах, тоже подойдёт, в качестве первоапрельской шутки.

linux - 3 комментария

Линус Торвальдс против Чака Норриса

11.11.2007

Мимо общественного внимания как-то тихо и незаметно проскользнула подборка фактов о Линусе Торвальдсе. Нашел всего два перевода: http://binarylife.ru/node/172 и http://aggressor-tpa.livejournal.com/2833.html. Не без их подсказки составил свой перевод. read more…

linux - 3 комментария

Google Alerts over RSS.

07.11.2007

Ник Панов описывает, как можно получать результаты поиска гугл через rss: Google Alerts over RSS.

Ссылки - 0 комментариев

Как научить Firefox открывать Gmail для написания писем при нажатии на ссылки mailto:

Задача: при нажатии на ссылки типа mailto:dedushke@naderevnyu.com должно открываться окно создания письма gmail, при этом в поле “Кому” должен попасть адресат из исходной ссылки, “Тема письма” также заполняется автоматически, если соответствующий параметр был в ссылке. Прочие вкусности по желанию. Браузер — Firefox, ОС — Linux.

Для Windows и MacOS Гугл рекомендует установить программу Gmail notifier и в её настройках отметить галку “Использовать Gmail для отправки электронной почты из Интернета”. Она что-то правит в реестре и всё работает.

У линуксоидов как всегда свой, особый путь с многочисленными развилками и перекрёстками.

Во-первых, создадим скрипт запуска firefox с открытием окна создания нового письма и сохраним его в ~/bin/gmail-launcher.sh. Из этого обсуждения наиболее приемлемым мне показался такой вариант:

#!/bin/sh
gmailargs=`echo $1 | sed -e "s/mailto:/to=/" -e "s/\?subject=/\&su=/" -e "s/\?cc=/\&cc=/" -e "s/\?bcc=/\&bcc=/" -e "s/\?body=/\&body=/"`
firefox -remote "openurl( https://mail.google.com/mail?view=cm&$gmailargs, new-tab )"

Первая (нумерация строчек начинается с нуля) строчка преобразует параметры subject, cc, bcc, body в вид, понятный gmail’у.
Вторая открывает нужный адрес со сформированными параметрами в новой вкладке.

Во-вторых, настроим систему на использование этого скрипта как программы составления писем по умолчанию. По уже упоминавшейся ссылке приводится иллюстрированное описание этого процесса. У меня в русифицированном гноме это делается так: параметры — дополнительные параметры — предпочтительные приложения — раздел “почтовая программа”.

Но у данного способа есть существенный недостаток — иногда необходимо, чтобы системным почтовиком по умолчанию был offline-клиент (например, thunderbird), а в firefox’е для всех mailto-адресов открывался gmail. Кроме того, иногда firefox “забывает”, чем надо открывать почту. В таком случае необходимо приложить дополнительные усилия для разъяснения firefox’у, ху из ху.

В редакторе конфигурации about:config вводим строчку “mailto” для поиска параметров, содержащих в названии mailto. Если вы раньше ничего не трогали, то показываются три параметра (о том, что они означают, можно (и нужно) прочитать на странице About:config entries в MozillaZine Knowledge Base):

network.protocol-handler.warn-external.mailto=false
network.protocol-handler.external.mailto=true
network.protocol-handler.expose.mailto=false

Чтобы для mailto: в firefox’е запускался созданный скрипт, необходимо добавить еще один строковой параметр network.protocol-handler.app.mailto, присвоить ему значение ~/bin/gmail-launcher.sh, и изменить значение ключа network.protocol-handler.expose.mailto на true.

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

Upd. в английской версии интерфейса gmail, которая, к слову, значительно отличается от русской, вышеприведённая строчка запуска не работает. Как подсказывает Кирилл Горелов в комментарии к этому посту, необходимо запускать gmail вот так:

firefox -remote "openurl( https://mail.google.com/mail/?fs=1&tf=1&source=ig&view=cm&$gmailargs, new-tab )"

firefox, linux - Комментарии closed

Открытое письмо François Bancilhon, исполнительного директора Mandriva Linux, Стиву Баллмеру, исполнительному директору Microsoft.

01.11.2007

Открытое письмо François Bancilhon, исполнительного директора Mandriva Linux, Стиву Баллмеру, исполнительному директору Microsoft.

первоисточник


Дорогой Стив,

Привет, это Франсуа из Мандривы.

Я уверен, что мы слишком мелки для вас для того, чтобы вы меня знали. Вы знаете, мы из тех маленьких Linux-компаний, которые вкалывают за своё место на рынке. Мы делаем дистрибутив Linux, Mandriva Linux. Последняя версия, Mandriva 2008, была довольно удачной, и мы гордимся этим. Вам следовало бы заценить её, я уверен, она бы вам понравилась. Кроме того, получилось так, что мы одна из тех Linux-компаний, которая не заключила соглашение с вашей компанией (никто не совершенен).

Мы недавно заключили сделку с Нигерийским правительством. Может быть, вы слышали об этом, Стив. Они искали подходящее решение железо+софт для их школ. Начальный объём сделки был 17000 машин. У нас был хороший ответ на их запросы — Classmate PC от Intel, с адаптированной версией Mandriva Linux. Мы сделали презентацию этого решения местному правительству, им понравилась машина, им понравилась наша система, им понравилось то, что мы им предложили, то, что всё открыто, что мы можем адаптировать это для их страны и так далее.

Затем ваши люди вступили в игру и сделка стала более соревновательной. Я бы не сказал, что она стала грязной, но кто-то это произнёс. Они бились и бились за сделку, но покупатель выбрал CMPC и Mandriva.

Мы заключили сделку, мы получили заказ, мы подготовили ПО, компьютеры готовы к поставке. Другими словами, мы сделали нашу работу. Я знаю, что машины сейчас доставляются.

И вот, сегодня мы слышим совершенно другие слова от нашего покупателя: «мы заплатим за Мандриву как договаривались, но мы заменим ее потом на Windows.»

Вау! Я впечатлён, Стив! Что вы сделали для этих людей, что они так изменили своё мнение? Лично мне ясно и всем тоже будет ясно. Как то, что вы сделали, Стив, называется там, где вы живёте? Здесь для этого есть разные названия, я уверен, что вы их знаете.

Эй, Стив, как вы чувствуете себя, смотря на себя утром в зеркало?

Конечно, я буду бороться в этот раз, и все последующие. У вас есть деньги, сила и может быть у нас разное чувство этики, но я верю, что тяжелый труд, хорошая технология и этика тоже могут победить.

cheers,

François

P.S. сообщение для наших друзей в Нигерии: еще осталось время сделать правильно и сделать правильный выбор, вы получите массу поддержки за это и отличный сервис!

Windows, linux - 1 комментарий

4 способа быстрого запуска программ в Windows

31.10.2007

Иногда даже самому убеждённому линуксоиду приходится что-то делать в самой распространённой альтернативной операционной системе (т.е. Windows), и тогда берегитесь, окружающие, ибо стенания и проклятия в адрес Microsoft способны надолго испортить настроение поклонникам БГ. Одним из основных недостатков винды является неразвитость её интерфейса взаимодействия с пользователем, или, точнее говоря, чрезмерная развитость её GUI, заточенного в основном под использование мыши, что и расстраивает основную массу линуксоидов. Однако значительную часть операций можно выполнять и с помощью клавиатуры. read more…

Windows, lifehack - 1 комментарий

Сравнение geolocation-сервисов

26.10.2007

Как и обещал ранее, выкладываю результаты небольшого эксперимента по сравнению результатов определения географического местоположения по IP-адресу с использованием трёх онлайн-сервисов: MaxMind, IPLigence и IP2Location. Я взял неполный список сетей некоторых нижегородских провайдеров и запросил информацию о первом адресе каждого диапазона из этого списка у каждого сервиса. Думаю, что этих 19 региональных айпишников вполне достаточно для того, чтобы составить представление об общем уровне подобных служб. read more…

geolocation, work - 2 комментария

IT-технологии

25.10.2007

Несмотря на то, что буква “T” в аббревиатуре “IT” означает именно “technology” и словосочетание “IT-технологии” — масло масляное, поиск по новостям выдаёт 1006 ссылок на издания, редакторов и корректоров которых надо лишить премии за лёгкую степень атрофированности мозга.

Более тяжёлую степень атрофированности демонстрируют создатели подсолнечного масла “Золотая семечка” и авторы чудо-пломбира, название которого также весьма остроумно.

Без рубрики - 2 комментария

Insert coin

23.10.2007

Офисный прикол: выводим на LCD-дисплей принтера HP сообщение INSERT COIN

Ссылки - 0 комментариев

Проблемы определения географического местонахождения по IP-адресу

22.10.2007

Проблема автоматического определения географического местонахождения по известному IP-адресу остро стоит как перед вебмастерами-одиночками, так и перед целыми фирмами, ведущими рекламную и прочую деятельность в интернете, даже несмотря на то, что существует несколько источников информации о географической принадлежности IP-адресов. Попробую очертить возможные пути решения и проблемы, к которым они приводят.

read more…

geolocation, work, Ссылки - 0 комментариев

Новости меня

19.10.2007

Несколько лет назад я зарегистрировал себе в тестовых целях почтовый адрес на сервисе spamtest.ru (проверяет входящую почту на спам, помечает ее соответствующим образом и пересылает дальше), и какое-то время использовал его в качестве публичного. Потом забил и пару лет не использовал. Теперь пришло время пожинать плоды халявы: на прошлой неделе не получил отлуп от RIPN’а, когда захотел зарегистрировать себе домен. Кое-как смог поменять адрес у своего maintainer’а на нормальный, но что было бы, если бы не смог!

Похоже, что с copi.ru (возможно, с мастерхоста вообще) тоже почта не доходит.

Это явно ставит под сомнение возможность использования сервиса spamtest.ru — зачем нужен такой антиспам, который просто не принимает часть почты?..

К чему я это всё. В связи с замусориванием поисковых систем невнятными фирмами имени моего ника, а также обладателями одноименных и родственных ников я решил произвести ребрендинг. read more…

лытдыбр - 2 комментария

Особенности национальной географии

17.10.2007

Предыстория

В производственных целях скачал и поизучал БД соответствия IP-адресов городам и странам в формате CSV. Без слёз пополам со смехом на “русскую” часть этой базы смотреть невозможно.

Во-первых, там присутствует масса “городов”, которые называются “Nogina”, “Pionerskaya”, “Sovetskaya”, “Vpered”, “KorolКva”, “Kononenko” и даже просто “Ivan” и “Anton”. Это части имен/фамилий/названий фирм/адресов/еще-каких-нибудь-атрибутов владельцев мелких IP-сетей, которые в базе присутствуют наравне с нормальными городами. Такие объекты, по самым скромным прикидкам, занимают как минимум половину объёма всей базы.

Во-вторых, город-герой Москва присутствует в списке в следующих вариациях:
“Moscow”
“Moskau”
“Moskva”
“Moscou”
и даже — “Moska”

Санкт-Петербург:
“Saint Petersburg”
“Sankt-Peterburg”
“Sankt Petersburg”
“Leningrad”
ну и просто “Piter”

В-третьих, уже упоминавшаяся проблема с путаницей Н.Новгород — Новгород: Волгателеком с кисами АДС’ом целиком и полностью располагаются в Новгороде, Сенди, к счастью, находятся в НН, но имеют в Новгороде филиал, и т.д. и т.п. Подобная проблема актуальна для многих составных географических названий, части которых совпадают с другими географическими названиями.

Все эти проблемы, похоже, имеют один корень: база geoip автоматически составлялась на основе базы ripe, не имеющей специального поля для указания точного географического местоположения; названия городов угадывались роботом на основе данных об организации/персоне, на которых зарегистрирован блок IP-адресов, и в ряде случаев он попадал пальцем в небо, а иногда и угадывал.

Поэтому приходится искать альтернативные источники информации о географической принадлежности IP-адресов: например, вот или частично вот.

geolocation, work - 0 комментариев

Firefox: как бороться с опечатками при наборе URL

15.10.2007

Очередной пример нестандартного использования ключевых слов в закладках opera и firefox: статья в Компьютерре “Как бороться с опечатками при наборе URL в Opera”.

Краткое содержание: если опечатки типа “goodle.com” случаются слишком часто, то можно создать закладку на http://google.com и назначить ей соответствующий keyword.

firefox, lifehack - 0 комментариев