misc/class
lib/jquery_pnotify, lib/moment, lib/lodash, misc/notification, site/engine, misc/social
if( $.browser.msie && $.browser.version <= 8 ) include('lib/respond'); $._social.__cfg = {"init":[{"service":"basic"},{"fb_app_id":"1997094873850041","service":"fb"},{"vk_app_id":"2978320","service":"vk"},{"service":"twi"}],"like":[{"service":"fb"},{"service":"vk"},{"via":"","channel":"","hash_tag":"","service":"twi"}]}; window._SiteEngine = new classes.SiteEngine( { user_id: 0, controller: 'homepage', action: 'index', content_css_version: '1459538664', social_enabled: 0} );

Faiwer

Блог web-программиста

IT Переключение раскладки клавиатуры по Capslock

20 декабря 2014

Довольно часто я натыкался в сети на информацию о том, что переключения раскладки клавиатуры по ctrl+shift или shift+alt это далеко не самый удобный вариант. А предлагают использовать для этого дела caps_lock. Мне эта затея казалась весьма разумной, но переучиваться было лень. Да и оказываясь за бортом любого другого компьютера, ты оказываешься в очень не привычной ситуации.

Но в очередной раз переустановив себе LinuxMint, я столкнулся с тем, что передо мною снова стоит вопрос неудобства ctrl+shift в этих наших линуксах. Суть в том, что есть большая разница в том, какая клавиша когда была отжата... По факту в 80% случаев у меня переключение попростую не срабатывало просто потому, что я не ту клавишу раньше отпустил. Поискав, в очередной раз решение, я его не нашёл. Ну и решил, что настало время переучиваться на caps_lock. Всё равно смысла в этой клавиши я не вижу никакого. 

Переключился и пользуюсь уже второй месяц. Оказалось действительно удобно. Привыкание прошло довольно быстро, недели за две. Но увы, осталась 1 проблема. Дело в том, что когда быстро набираешь тексты, часто сталкиваешься с тем, что нажиммаешь caps_lock с зажатой клавишей shift, а это, оказывается, оставленная на резерв старая функциональность caps_lock-а (печатать ВОТ ТАКИМ регистром). Отключается точно также ― с шифтом. Нафиг нужно мне такое счастье... Сразу сбивает рабочий настрой, сидеть всё переправлять.

Порывшись в сети я не нашёл готовых решений. Спросив на lor-е, я, в коем веке, получил нормальный ответ... Сказали в какую сторону копать. Раскопал и таки получилось. Теперь у меня capslock + shift работает точно так же как и просто capslock, т.е. тоже меняет раскладку клавиатуры. Сделать это из диалога настроек клавиатуры, оказалось невозможным. Ниже будет ясно почему.

За работу клавиатуры, по всей видимости, отвечает некий xkb. Именно его настройки изменяются в настроках «Клавиатуры». Настройки расположены по адресу  /usr/share/X11/xkb/. В поддиректории rules лежат непосредственно сами правила. Интересующее нас правило называется grp:caps_toggle. Но правило ссылается на уже готовый символ. Выглядит это так:

grp:caps_toggle = +capslock(grouplock)

Как оказалось, +capslock это указание на то, из какого файла взять сам symbol. В данном случае из /usr/share/X11/xkb/symbols/capslock. А вот grouplock это уже непосредственно название самого символа. Вот его код:

partial hidden modifier_keys
xkb_symbols "grouplock" {
    replace key <CAPS> { [ ISO_Next_Group, Caps_Lock ] };
};

partial, hidden, modifier_keys ― это всё модификаторы символа. Подробнее о них можно прочесть здесь. Внутри фигурных кавычек лежат настройки символа. В нашем случае CAPS ребиндится на ISO_Next_Group и на самого себя (Caps_Lock). Суть в том, что если в квадратных скобках указано два значения, то первое доступно без shift-а, а второе с ним. Если же указано всего 1 значение, то оно будет использоваться во всех вариантах. Собственно достаточно поменять код на:

replace key <CAPS> { [ ISO_Next_Group ] };

, после чего пощёлкать в том самом диалоге Клавиатура что-нибудь (чтобы сбросить кеш), как мы получаем, то что хотели. Теперь по shift + caps_lock тоже меняется раскладка.

Полёты Полёт от 15 ноябра 2014

21 ноября 2014

Продал свой Discus 13B. Напоследок решил пролетнуться разок. Заодно разведал восточный старт на 31км. Видео: GoRro Hero 3 BE. fullHD:

Полёты DHV RSS

20 ноября 2014

Надело мне руками мониторить немецкую сла-биржу dhv.de, и, не найдя в ней RSS, я решил сделать свой. Воспользовался nodejs v0.11+. Скрипт ищет только дельтапланерные объявления (но это легко изменить). Github-репозиторий. Сам RSS доступен по ссылке. Но не ручаюсь, что он будет по ней доступен вечно :) Обновления раз в час. Так как скрипт парсит HTML, в случае серьёзного обновления frontend-а биржи, RSS может отвалиться.

IT Установка ruby-compass под linuxmint

20 ноября 2014

Сразу отмечу, что я не имею никакого отношения к миру ruby. Изредка пишу простые скриптики для небольших личных нужд, не углубляясь ни в дебри языка, ни в его окружение. В очередной раз обновив с нуля систему, я снова столкнулся с задачей установки compass-а. И в очередной раз все стандартные способы надо мною надругались. Казалось бы, linuxmint ― это просто разновидность ubuntu, самого популярного репозитория, а значит установка популярной либы не должна быть проблемой. Но нет...

Установить compass можно как-минимум двумя способами. Первый это привычный нам aptitude: sudo aptitude install ruby-compass. Программа устанавливается без ошибок, и даже позволяет узнать её версию. Но вот работать отказывается на отрез, ругаясь на отсутствие какого fssm. Быстрый поиск решения проблемы результатов не дал. Выполнив sudo aptitude purge ruby-compass, я решил воспользоваться стандартным механизмом для ruby ― gem. Итак: gem install compass выбрасывает мне ошибку доступа. Дескать в /usr/... ему недостучаться, и он просит root-а. Такое поведение мне кажется странным, но ладно, ок, установим из под root-а. Установка проходит успешно, но вот сам compass после этого запускаться отказывается. Нужен root. Вот это уже действительно странно. 

В конечном счёте я нагуглил установку с таким вот ключём gem install --user-install compass. Установка прошла успешно. Но вот никаких удобных ссылок для запуска программы не было создано. Пришлось руками лепить ссылку к ~/.gem/ruby/1.9.1/gems/compass-1.0.1/bin/compass. Теперь всё работает. 

Самое удивительное, так это то, что далеко не каждый пакет из gem требует таких вот бубнов. И что на офиц. сайте compass-а предлагают не суетиться, и просто запустить gem install compass. Такие вот дела. 

IT PHP-FPM и Nginx

7 ноября 2014

После обновления на живом сервере с php5.3 до php5.5 столкнулся с неприятной проблемой. Socket-файл, для прослушивания nginx-ом, который создаёт при старте демон php5-fpm, стал недоступен для nginx, который запускается от www-data. Лечится это дело очень просто, необходимо в pool-конфиги добавить следующее:

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

Думаю по названиям настроек всё более чем понятно. Жаль только, что когда я попробовал перенести эти настройки на уровень выше, в сам php-fpm.conf, демон споткнулся при старте. Так было бы удобнее.