OpenSuSe 11.0 Настрока раскладки клавиатуры

Эти настройки желательно делать сразу, чтобы потом не было мучительно больно за бездарно потраченное время проблем с общением на разных языках. А спохватился я тогда, когда в одном окошке Skype общался с заказчиком, а в окошке Jabber’а с одним из субподрядчиков; заказчик шпрехает только на рiдной аглицкой мове, подрядчик же в основном по-русски говорит когда трезвый. И так задолбало меня переключение языка клавы, что я решил разобраться, можно ли привязать язык клавиатуры к конкретному окну в KDE.

Теоретически все просто, идем в Настройки рабочего стола Центра управления КДЕ, где методом научного тыка попадаем в раскладки клавиатуры:

Настройка раскладки клавиатуры в OpenSuSe 11.0 KDE 3.5.9, часть 1
Настройка раскладки клавиатуры в OpenSuSe 11.0 KDE 3.5.9, часть 2
Настройка раскладки клавиатуры в OpenSuSe 11.0 KDE 3.5.9, часть 3

Картинка 1, вопрос – а нахрена зачем я добавил вторую раскладку клавиатуры, если раскладка RU поддерживает латиницу? А оказывается, если оставить в настройках только одну раскладку клавиатуры (как у меня и было сделано), то рисунок на картинке 2 никогда бы не получился. При сохранении настроек политика переключения автоматически слетала в “Глобально”, а не оставалась в состоянии “Окно”. И следовательно, каждое переключение языка отражалось на всех открытых окнах. Отсюда и все проблемы с переключением клавы.

Разрыв соединения ssh по таймауту

Если есть желание поддерживать в живом состоянии свою сессию SSH, надо на стороне клиента в ~/.ssh/config или в /etc/ssh/ssh_config дописать всего пару строчек:

ServerAliveInterval 60
ServerAliveCountMax 10

Тогда клиент сам по себе будет отправлять раз в минуту запросы на сервер для поддержания активности соединения. И если в течение 10 попыток он не получит ответа, тогда сессия помрет.

Можно поддерживать сессию и со стороны сервера, тогда надо написать в /etc/ssh/sshd_config что-то вроде этого:

TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 10

Особенно полезно, если VDS используется как прокси-сервер.

Опубликовано в рубриках: Linux

MySQL и защита от удаления записей в таблицах

Однажды мне понадобилась защита от удаления записей в таблице. Естественно, на триггере BEFORE DELETE, чтобы уж наверняка все работало. В привычном мне Oracle такая задача решается очень просто, с вызовом raise_application_error внутри триггера. Но как оказалось, в MySQL такая задача решается через жоп использование несуществующего поля в какой-нибудь таблице. Вот пример:

delimiter |

CREATE TRIGGER my_table_bd
BEFORE DELETE ON my_table
FOR EACH ROW
begin
declare v int;
if ifnull(old.status,0) > 0 then
select antarktida
into v
from logs u
where africa = 'asia';
end if;
end|

delimiter ;

Полей antarktida, africa в таблице logs нет, поэтому при срабатывании триггера происходит ошибка. Причем ошибка выскочит, если ifnull(old.status,0) > 0. Такая конструкция выглядит ужасно (костыль он и есть костыль), но работает 100%. И похоже, это единственный способ запретить удаление из таблицы.

Опубликовано в рубриках: MySQL

Moneybookers подложили американцам свинью

История давнишняя, но я узнал только сегодня. Неизвестно зачем и почему, но манибукерс очень сильно ущемили американцев в возможностях платить деньги. Официальный ответ Moneybookers такой:

Following up your query we confirm that due to change in our policies, we will stop processing payments between US customers, and US customers and international customers using the Send Money service, with effect from November 19.11.08.

We apologize for any inconvenience caused.

Вот теперь у всяческих вебманей появляется возможность активно поучаствовать в освоении американского рынка. А все потому, что россиянам и украинцам Paypal не разрешает принимать платежи на свой счет (только Send only для нас), а букерсы запретили американцам отправлять деньги.

Жаль, очень жаль. Moneybookers удобны для ввода денег, прекрасно работают с нашими карточками Visa Classic (a для Paypal годятся далеко не все).

Настройка проводного интернета от Билайн в OpenSuSe

В моей квартире разгром, строители начали долгожданный ремонт, в связи с чем мне пришлось на время сменить место жительства и подключиться к другому интернет-провайдеру. Особенно не заморачиваясь, решил подключиться к первому провайдеру, который проведет кабель в квартиру. Им и оказался Билайн.

Интернет от Билайна настраиваится легко под виндой, но вот со всяческими линуксами он дружить совершенно не хочет. На официальном сайте у них есть только настройки под винду да под Mac OS, и например настроить его под SuSe оказалось непросто.

Всем линуксоидам, на кого свалилось несчастье в виде интернета от Билайн, советую почитать вот эти топики:

  • http://homenet.corbina.net/index.php?showtopic=204977
  • http://homenet.corbina.net/index.php?showtopic=171860
  • и вообще посмотреть всю ветку:

  • http://homenet.corbina.net/index.php?showforum=629
  • Я у себя настроил интернет без использования kvpnc. Я так и не раскопал, как в нем можно отключить буферизацию pptp. А с включенной буферизацией иногда происходили непонятные тормоза в работе. И еще, MTU пришлось выставить ниже 1500, поскольку с MTU 1500 довольно большой процент пактов пропадал и довольно много сервисов переставало работать.

    В общем, интернет от Билайна мне не понравился. Геморрой с настройкой слишком большой, чтобы я и дальше пользовался услугами этого провайдера.

    P.S. Я тут из Черногории недавно вернулся, начинаю потихоньку выкладывать материалы о поездке.

    Как подружить вебкамеру Genius e Messenger 112 и OpenSUSE

    Genius e-Messenger 112, отвратительная веб-камера

    Вебкамера Genius e Messenger 112 одна из самых дешевых, и одна из самых хреновых. Родные драйвера есть только под винду, а под linux она без напильника и танцев с бубном работать не желает.

    Итак, если вы счастливый обладатель OpenSUSE версии до 11.1 (версия ядра до 2.6.27), то камеру завести относительно несложно. Надо установить пакет gspcav, наложить на него патч, собрать и установить модуль gspca — камера заведется без проблем.

    Но если вы несчастный обладатель самого глючного дистрибутива OpenSUSE, ваши беды не закончились на его установке. Дело в том, что начиная с версии ядра 2.6.27 программисты решили вымахнуться и перенесли поддержку драйверов gspca из отдельного пакета в состав ядра. И разумеется, прозевали поддержку этой злосчастной камеры. Правда, пообещали, что начиная с версии ядра 2.6.28 эта камера будет работать.

    Но на сегодняшний день последней версией ядра для OpenSUSE 11.1 является 2.6.27, поэтому или придется драйвер собрать руками, или скачать / ждать новую версию ядра. Ждать мне было лень, поэтому я скачал исходники ядра, и поправил файл gspca_pac207.c, дописав одну выделенную строчку:


    528 static const __devinitdata struct usb_device_id device_table[] = {
    529 {USB_DEVICE(0x041e, 0x4028)},
    530 {USB_DEVICE(0x093a, 0x2460)},
    531 {USB_DEVICE(0x093a, 0x2463)},
    532 {USB_DEVICE(0x093a, 0x2464)},
    533 {USB_DEVICE(0x093a, 0x2468)},
    534 {USB_DEVICE(0x093a, 0x2470)},
    535 {USB_DEVICE(0x093a, 0x2471)},
    536 {USB_DEVICE(0x093a, 0x2476)},
    537 {USB_DEVICE(0x093a, 0x2472)},
    538 {USB_DEVICE(0x2001, 0xf115)},
    539 {}
    540 };

    Модуль собрался, и заработал, но с глюками. Cheese, Skype работают нормально, а вот camorama не завелась. Яркость изображения регулируется с помощью v4lctl, а вот как регулировать контрастность или цветовой баланс — хз. В старой версии ядра таких проблем не было.

    OpenSUSE, Skype и отправка SMS

    Skype Logo

    На сегодняшний день последней версией скайпа для OpenSUSE является версия 2.0.0.72. Возможность отправлять СМСки в скайпе появилась только с версии 2.5, но как оказалось, отправить SMS можно и из OpenSUSE, и из Ubuntu с использованием Skype API on Linux.

    Для того, чтобы заработала отправка SMS, надо установить сам Skype, а также Python wrapper Skype4Py, и утилиту Skysentials.

    После запуска видим Skysentials видим вполне интуитивно понятную тулзу для отправки SMS:

    Отправка СМС из скапа под линуксом

    Отправка СМС не бесплатная, но сопоставима по стоимости с отправкой с мобильника. А с учетом того, что сейчас скайп активно рассылает ваучеры на пополнение баланса, можно и попробовать.

    Я испытал это чудо буржуйской техники, и выяснил две вещи.

  • Отправка СМС отлично работает под OpenSUSE, только вот Skype4Py пришлось чуть-чуть напильником доработать (в первой строчке заменить python2.5 на python2.6)
  • СМС в Черногорию отправить нельзя.
  • Балансировка нагрузки с помощью nginx

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


    upstream backend {
    server 192.168.1.1:8080;
    server 192.168.1.2:8080;
    server 192.168.1.3:8080;
    }

    server {
    listen 80;
    server_name somedomain.tld;
    location ~* \.()$ {
    root /home/username/data/www/somedomain.tld; }
    location / {
    client_max_body_size 10m;
    client_body_buffer_size 128k;
    proxy_send_timeout 90;
    proxy_read_timeout 90;
    proxy_buffer_size 4k;
    proxy_buffers 16 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;
    proxy_connect_timeout 30s;
    proxy_pass http://backend;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location ~* /.(jpg|jpeg|gif|png|css|mp3|avi|mpg|txt|js|jar|rar|zip|tar|wav|wmv)$ {
    root /home/username/data/www/somedomain.tld;}
    }

    В этом случае все запросы будут равномерно раскидываться между серверами с внутренними айпишниками 192.168.1.1- 192.168.1.3

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

    ATI Radeon X1650 Series и ATI Overdrive

    ATI Radeon x1650 series

    Седина в бороду, бес в ребро. Решил я погонять Warcraft III протестировать производительность этой графической системы под виндой. И вот черт меня дернул залезть в настройки ATI Catalyst Control Center. Там я обнаружил возможность включить ATI Overdrive, который якобы увеличивает производительность карты.

    ATI Overdrive. Не запускайте!

    Ага, включил. Изменений визуально не замечал, пока не сел играть начал тестирование системы. Минут через несколько раздался писк из системного блока, и компьютер выключился. Эта софтина решила подразогнать графический процессор, в результате чего он перегрелся и сработала защита от перегрева. Ага, подумал я, а не выключить ли мне этот режим? Так вот, ATI Overdrive можно только включить, отключить этот аццкий вирус невозможно!

    Решение было найдено очень просто, надо всего лишь поставить новые дрова на эту железяку. Жизнь показала, что если что-то работает, то трогать не надо. Соблюдайте золотое правило админа!

    Опубликовано в рубриках: Железо

    Я в восторге от Google App Engine

    Логотип Google App Engine

    Не так давно я обратился в истинную веру стал изучать Python, и как оказалось, не зря. Питон уже давно успешно используется Гуглом в качестве одного из официальных языков разработки веб-приложений, и на сегодняшний день это один из двух языков, на котором легко пишутся приложения для Google App Engine (второй язык – Java)

    Гугл предлагает хостить такие приложения совершенно бесплатно. Те, кто в этом шарит, может слепить весьма достойные приложения. Хостинг этот весьма необычный, нет привычного доступа по FTP, SSH; все делается через консоль установленного фреймворка. Статику заливать можно, использовать БД – тоже. Но это будет не привычная всем MySQL или Oracle, это какая-то своя гугловская хитрая база данных, к которой можно строить запросы с помощью GQL, в чем-то похожий на привычных нам SQL.

    Дело было вечером, и вместо скачивания фильмов из сети, исключительно интереса ради я решил написать на Python игру “Угадай число” и выложить ее на бесплатный гуглохостинг. На нем все работает также стабильно, как и дома.

    Интересно то, что к бесплатному хостингу от гугла запросто можно прикрутить свой домен и хостить свои разработки, не нагружая свой VDS. При всем уважении к хостеру, вряд ли по надежности он сравнится с бесплатным хостингом от Google.