kernel panic in userspace

my own self destruction
  • Blog
  • about
  • articles
    • Virtualbox bridge
    • linux blogging
    • Gentoo on Acer Extensa 5630Z
  • code
    • @unfollowr
    • WordPress
      • WordPress-bbPress syncronization
      • IE Warning
      • PostAds
    • Callisto overlay
    • @listwatcher
  • CV
  • belarusian
  • russian
  • english

compose key tricks

Dec 12 2008
  • belarusian
  • russian

Даўно хацеў навучыцца ставіць у словах на́ціск на кампутары як у кніжках, а не выдзяленьнем націскнога складу вялікай літарай. Можна сказаць, што збылася чарговая мая мяшчанская мара :) На жаль, не бяз дапамогі і бубна

Акрамя націску я навучыўся проста ставіць усялякія прыкольныя сымбалі накшталт ¼ «♯‰®©÷§» і шмат якія яшчэ. Магія? Танцы з бубнам і капіяваньне сымбаляў? Ні разу!

Усе гэтыя штукі дазваляе пісаць клявіша пад назовай Compose Key. На сучасных кампутарах яе не знайсьці (ці проста ў мяне не атрымалася), таму для пачатку яе варта неяк вызначыць. У KDE яна вызначаецца ў наладках расладак клявіятуры прыкладна гэтак:

kde compose key

Пасьля чаго варта вызначыць, што і як у нас будзе інтэрпрэтавацца як спецыяльны сымбаль, для гэтага ствараем файл ~/.XCompose і ў яго для пачатку запісваем наступныя радкі:

include “/usr/share/X11/locale/en_US.UTF-8/Compose”
<Multi_key> <apostrophe> <apostrophe> : “\u0301″ U0301

Тут першым радком мы уключаем стандартныя сістэмныя коды, прыклады якім магчыма паглядзець у Wikipedia (там жа можна знайсьці пару карысных спасылак), а другім дадаем асабістае вызначэньне для пастаноўкі націску. Вызначэньне мае выгляд

<Multi_key> <клявіша 1> <клявіша 2> : “пасьлядоўнасьць для падстаноўкі”

Далей ідуць неабавязковыя параметры, ды й клявіш можа быць колькі хочаш. З таго, што пасьлядоўнасьць для падстаноўкі можа быць якім заўгодна радком, выяўляецца, што магыма туды забіваць нават часта выкарыстоўваемыя наборы словаў і камад, а можа нават і кускі коду, калі ў вас такія маюцца. Вельмі зручна, напрыклад, дадаваць у тэрмінале па якому-небудзь спалучэньню клявіш з Compose длінны і цяжкі пайп да каманды. Але тое застанецца вам на асабістую распрацоўку, калі не атрымаецца – дапамагу

Тым не менш, вернемся да націску, які мы вызначылі на Compose ‘ ‘ (усе клявішы націскаюцца адна за адной, перад наступнай адпусьціўшы папярэднюю). Увогуле ў юнікодзе націск проста чапляецца да папярэдняга сымбалю і не лічыцца за асобны сымбаль у ягоным звыклым значэньні, так што для ягонаў пастаноўкі варта проста націснуць патрэбныя клявішы пасьля націскной галоснай (ці зычнай, ці нават прабелу, калі вы зацікаўлены ў такіш штуках). Enjoy!

Большасьць пашуковых машын прапускае невядомыя сымбалі кшталту націску, таму на seo цяжка адбіцца не павінна.

p.s.: у Opera 10 пры напісаньні ў мяне былі праблемы з пазыцыянаваньнем націску, ён ставіўся не наступны, а не на папярэдні сымбаль. Ва ўсіх так? У мяне shared qt3 зборка

  • belarusian
  • russian

Давно хотел научиться ставить в словах уд́aрение на компьютере как в книжках ставят. Можно сказать, что сбылась очередная моя мещанская мечта :) К сожалению, не без помощи и страданий.

Помимо ударения я научился просто ставить всякие разные интересные символы а-ля ¼ «♯‰®©÷§» и многие-многие другие. Магия? Пляски с бубном и копирование символов? Ни разу!

Все эти штуки писать позволяет клавиша под названием Compose Key. На современных клавиатурах её не наблюдается (или просто я не нашёл), посему для начала её стоит как-то определить. В KDE она определяется в настройках раскладки клавиатуры примерно так:

kde compose key

После чего следует определить, что и как у нас будет интерпретироваться как специальный символ, для этого создаём файл ~/.XCompose и в него для начала записываем следующие строки:

include “/usr/share/X11/locale/en_US.UTF-8/Compose”
<Multi_key> <apostrophe> <apostrophe> : “\u0301″ U0301

Тут первой строкой мы включаем стандарные системные коды, примеры некоторых из них можно поглядеть в Wikipedia (там же можно найти пару полезных ссылок), а второй добавляем собственное определение для постановки ударения. Определение имеет вид

<Multi_key> <клавиша 1> <клавиша 2> : “подставляемая последовательность”

Далее идут необязательные параметры, да и клавиш может быть сколько пожелаете. Из того, что подставляемая последовательность может быть какой угодно строкой, следует, что можно туда забивать даже часто используемые наборы слов или команд, а может даже и куски кода, если у вас таковые имеются. Очень удобно, например, добавлять в терминале по какому-нибудь сочетанию с Compose длинный и сложный пайп к команде. Но это остаётся вам на самостоятельное изучение, если не получится – помогу.

Тем не менее вернёмся к ударению, которое мы определили на Compose ‘ ‘ (все клавиши нажимаются по одной, предварительно отпустив предыдущую). Вообще в юникоде ударение просто цепляется к предыдущему символу и не считается за отдельный символ, так что для его установки стоит просто нажать нужное сочетание клавишь после требуемой гласной (или согласной, или даже пробела, если вы увлекаетесь такого рода вещами). Enjoy!

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

p.s.: в Opera 10 при написании испытывал проблемы с позиционированием ударения, оно ставилось на следующий символ, а не на предыдущий. У всех так? У меня shared qt3 сборка

{ Comments : 6 Comments » }
{ Tags: compose key, linux, pipes, seo, symbols, unicode, utf, wikipedia }

ruby overlay and building

Jul 29 2008
7раса – Куклы становятся старше
  • belarusian
  • russian

В Gentoo до недавнего времени насладиться прелестями ruby ветки 1.9 могли только разработчики самого дистрибутива (ну и постоянные читатели багзиллы). Но буквально на днях overlay был выпущен для всеобщего использования. Точнее, сегодня, потому что сразу после объявления в списке мне его найти не удалось, даже пришлось писать письмо ответсвенному человеку.
Теперь можно просто добавить оверлей, размаскировать пакет и обновиться:

layman -L && layman -a ruby
echo >=dev-lang/ruby-1.9.0 >> /etc/portage/package.unmask

Установку необходимо проводить с FEATURES=”-sandbox”, иначе рискуете не собрать, получив ошибку:
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb -I. -rrbconfig ./tool/compile_prelude.rb ./prelude.rb ./enc/prelude.rb ./gem_prelude.rb prelude.c
:0:in `require': no such file to load -- rbconfig (LoadError)
make: *** [prelude.c] Ошибка 1
make: *** Ожидание завершения заданий...
rbconfig.rb updated

Впрочем, ошибку можно и не получить, тут от погоды зависит. В дождь вот и без этого костыля как-то собралось. Правда, на том же терминале, видимо, запомнило переменные.
Ruby будет установлен в новый слот, так что останется ещё и ветка 1.8.

Компиляция encoding.c может занять много времени и системных ресурсов, не удивляйтесь, оно того стоит (см. ниже)

Со сборкой стандартного ruby из portage у меня были проблемы, если указан USE флаг doc. При сборке скрипт создания документации съедал всю память. Видимо, старые, уже сгенерированные документы не высвобождали память. С новым рубином такого замечено не было, что приятно.
Ну и немножно приятного, чего мне и хотелось от нового ruby. Имеем файл test-unicode.rb следующего содержания:

# coding:utf-8

str = "Руби - отличный язык высокого уровня!"
puts str.length
puts str[3]
puts str.split('').inspect

Заметили костыль в виде # coding:utf-8? Он и будет заниматься тем, что все символы будут корректно обрабатываться. Немножко не так просто, как хотелось бы, но уже что-то :)
Выполнение ruby18 test-unicode.rb выдаст нам следующую лабуду:
67
131
["\320", "\240", "\321", "\203", "\320", "\261", "\320", "\270", " ", "-", " ", "\320", "\276", "\321", "\202", "\320", "\273", "\320", "\270", "\321", "\207", "\320", "\275", "\321", "\213", "\320", "\271", " ", "\321", "\217", "\320", "\267", "\321", "\213", "\320", "\272", " ", "\320", "\262", "\321", "\213", "\321", "\201", "\320", "\276", "\320", "\272", "\320", "\276", "\320", "\263", "\320", "\276", " ", "\321", "\203", "\321", "\200", "\320", "\276", "\320", "\262", "\320", "\275", "\321", "\217", "!"]

Запуск же свежесобранного ruby19 test-unicode.rb покажет следующее:
37
и
["Р", "у", "б", "и", " ", "-", " ", "о", "т", "л", "и", "ч", "н", "ы", "й", " ", "я", "з", "ы", "к", " ", "в", "ы", "с", "о", "к", "о", "г", "о", " ", "у", "р", "о", "в", "н", "я", "!"]

Что ж, куда лучше, не правда ли? :) Очень советую тем, кто ищет что изучить, попробовать ruby, будете приятно удивлены элегантностью и гибкостью ;)
p.s.: заметки по портированию с 1.8 на 1.9 (англ.)

  • belarusian
  • russian

У Gentoo да нядаўніх часоў атрымаць асалоду ад фішак ruby галіны 1.9 маглі толькі распрацаўшчыкі самаго дыстрыбутыву, (ну й пастаянныя чытачы багзіллы). Але буквальна на днях overlay быў выпушчаны для агульнага карыстаньня. Дакладней, сёньня, бо пасьля абвесткі адразу ў сьпісе мне яго знайсьці не атрымаласа, нават ліставаў адказнаму чалавеку
Цяпер можна дадаць овэрлэй, размаскіраваць пакет і аднавіцца:

layman -L && layman -a ruby
echo >=dev-lang/ruby-1.9.0 >> /etc/portage/package.unmask

Усталёўку неабходна праводзіць зь FEATURES=”-sandbox”, інакш маеце рызыку не сабраць, атрымаўшы памылку:
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb -I. -rrbconfig ./tool/compile_prelude.rb ./prelude.rb ./enc/prelude.rb ./gem_prelude.rb prelude.c
:0:in `require': no such file to load -- rbconfig (LoadError)
make: *** [prelude.c] Ошибка 1
make: *** Ожидание завершения заданий...
rbconfig.rb updated

Але, памылку можна і не атрымаць, тут ад надвор’я залежыць. У дождж сабралося і бяз гэтага кастыля. Праўда, на тым жа тэрмінале, магчыма, запомніла пераменныя.
Ruby будзе ўсталяваны ў новы слот, так што застанецца яшчэ і ветка 1.8.

Кампіляцыя encoding.c можа заняць шмат часу і сістэмных рэсурсаў, не зьдзіўляцеся, яно таго вартае (гл. ніжэй)

Са зборкай стандартнага ruby з portage у мяне были праблемы, калі указаны USE флаг doc. Пры зборцы сцэнар стварэньня дакумэнтацыі зьядаў ўсю памяць. Магчыма, старыя, ужо згенераваныя дакуманты не вызвалялі памяць. З новым рубінам такога заўважана не было, што прыемна.
Ну і трошкі прыемнага, чаго мне і хацелася ад новага ruby. Маем файл test-unicode.rb наступнага зьместу:

# coding:utf-8

str = "Рубі - выдатная мова высокага ўзроўню! ?yko?naja!"
puts str.length
puts str[3]
puts str.split('').inspect

Заўважылі кастыль ў выглядзе # coding:utf-8? Ён і будзе займацца тым, што ўсе сымбалі будуць карэктна апрацоўвацца. Трошкі ня так проста, як хацелася б, але ўжо штосьці :)
Выкананьне ruby18 test-unicode.rb выдасьць нам наступную лабуду:
82
131
["\320", "\240", "\321", "\203", "\320", "\261", "\321", "\226", " ", "-", " ", "\320", "\262", "\321", "\213", "\320", "\264", "\320", "\260", "\321", "\202", "\320", "\275", "\320", "\260", "\321", "\217", " ", "\320", "\274", "\320", "\276", "\320", "\262", "\320", "\260", " ", "\320", "\262", "\321", "\213", "\321", "\201", "\320", "\276", "\320", "\272", "\320", "\260", "\320", "\263", "\320", "\260", " ", "\321", "\236", "\320", "\267", "\321", "\200", "\320", "\276", "\321", "\236", "\320", "\275", "\321", "\216", "!", " ", "\305", "\240", "y", "k", "o", "\305", "\255", "n", "a", "j", "a", "!"]

Запуск сьвежасабранага ruby19 test-unicode.rb адлюструе наступнае:
49
і
["Р", "у", "б", "і", " ", "-", " ", "в", "ы", "д", "а", "т", "н", "а", "я", " ", "м", "о", "в", "а", " ", "в", "ы", "с", "о", "к", "а", "г", "а", " ", "ў", "з", "р", "о", "ў", "н", "ю", "!", " ", "?", "y", "k", "o", "?", "n", "a", "j", "a", "!"]

Ну што, куды лепей, ці ня так? :) Вельмі раю тым, хто жадае нешта вывучыць, паспрабаваць ruby, будзеце прыемна зьдзіўленыя элегантнасьцю і гнуткасьцю ;)
p.s.: нататкі па партаваньню з 1.8 на 1.9 (ангельская)

{ Comments : 2 Comments » }
{ Tags: bugs, coding, emerge, features, gentoo, howto, overlays, portage, ruby, unicode, use }

RSS antisocial feeling

  • Ворачиваться в страну шпрот собираешься?
  • (via priskorbno) хочу. давно хотел. где купить?
  • ??
  • "((foldl (+) 0 [1..100]) ^ 2) - (foldl (+) 0 (map (^ 2) [1..100]))"
  • ?

Tags

bash belarus blog blogs bugs coding concerts download friends fun gentoo google images internet javascript kde language life links linux livejournal me money music overlays perl photos php plugins portage projects rss school shell social social networks ssh studying tests twitter ubuntu univer vkontakte wifi wordpress

links

  • asocial feeling
  • Callisto overlay
  • daThumbs
  • last.fm
  • twitter
  • Vkontakte
  • ~idioteque

Recent Comments

  • bobrik on @listwatcher
  • Process_of_illumination on WordPress-bbPress syncronization
  • Process_of_illumination on WordPress-bbPress syncronization
  • Aviva Gabriel on @listwatcher
  • Aviva Gabriel on @listwatcher
  • Larry D. Halstead on @listwatcher
  • neagaoleg on Hide Mentions in Twitter Web Interface
  • neagaoleg on about
  • Martina Bella on @unfollowr
  • gamersroute.com on WordPress-bbPress syncronization

Archives

  • January 2010 (1)
  • November 2009 (2)
  • October 2009 (5)
  • September 2009 (2)
  • August 2009 (2)
  • July 2009 (3)
  • June 2009 (1)
  • April 2009 (2)
  • March 2009 (1)
  • February 2009 (1)
  • January 2009 (2)
  • December 2008 (12)
  • November 2008 (17)
  • October 2008 (20)
  • September 2008 (13)
  • August 2008 (25)
  • July 2008 (18)
  • June 2008 (15)
  • May 2008 (7)
  • March 2008 (1)
  • February 2008 (9)
  • January 2008 (11)
  • December 2007 (24)
  • November 2007 (27)
  • October 2007 (21)

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org

Creative Commons License rss comments rss valid xhtml