<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:shoorick</id>
  <title>Shoor/нал</title>
  <subtitle>Акын-программист</subtitle>
  <author>
    <name>Shoorick</name>
  </author>
  <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom"/>
  <updated>2009-07-16T05:44:23Z</updated>
  <lj:journal userid="537441" username="shoorick" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://shoorick.livejournal.com/data/atom" title="Shoor/нал"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:989600</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/989600.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=989600"/>
    <title>Болтливые форточки</title>
    <published>2009-07-16T05:44:23Z</published>
    <updated>2009-07-16T05:44:23Z</updated>
    <category term="trouble"/>
    <category term="freebsd"/>
    <category term="x"/>
    <content type="html">Кончилось место в /var, полез выяснять в чём дело — оказалось, что Xorg.0.log забит строками&lt;blockquote&gt;(==) VESA(0): Write-combining range (0x0,0x1000) was already clear clear&lt;/blockquote&gt;Их там — миллионы. Соответственно, файл с ними весит полгига. Как-то неожиданно...</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:989285</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/989285.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=989285"/>
    <title>Раскладка с кавычками</title>
    <published>2009-07-13T07:08:22Z</published>
    <updated>2009-07-13T07:50:57Z</updated>
    <category term="linux"/>
    <category term="freebsd"/>
    <category term="keyboard"/>
    <content type="html">В юниксах/линуксах (во всяком случае, в FreeBSD и Мандриве) существует американская раскладка, где на третьем уровне сразу есть всякие кавычки — и «ёлочки» и “лапки”. Это USA - International (with dead keys) или us(intl).&lt;br /&gt;&lt;br /&gt;При ближайшем рассмотрении выясняется, что всё не так хорошо: некоторые нужные клавиши стали мёртвыми (в смысле, dead keys):&lt;br /&gt;&lt;br /&gt;&lt;img src="http://shoorick.ru/lj/kbd_us_intl.png" alt="Раскладка us(intl)"&gt;&lt;br /&gt;&lt;br /&gt;Красным тут отмечены dead keys, вводимые при помощи &lt;kbd&gt;Alt&lt;/kbd&gt; и &lt;kbd&gt;Alt+Shift&lt;/kbd&gt;, а синим — те, что вводятся сразу, без клавиш-модификаторов.&lt;br /&gt;&lt;br /&gt;Так что эта раскладка — не совсем правильная с программистской точки зрения. Но есть и другие раскладки — altgr-intl (то же самое, но dead keys вводятся только с модификаторами, а без них получаются нормальные символы), olpc (мало лишних букв, предпочтение отдано не готовым буквам с диакритическими знаками, а дополнительным знакам — &lt;code&gt;&amp;amp;#x3**;&lt;/code&gt;, кавычки стоят на нужных клавишах) — попробуем испытать эти раскладки.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:989107</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/989107.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=989107"/>
    <title>Re: Нажимая двѣ клавиши</title>
    <published>2009-07-11T10:35:05Z</published>
    <updated>2009-07-11T10:35:05Z</updated>
    <category term="linux"/>
    <category term="keyboard"/>
    <category term="x"/>
    <content type="html">В мандриве всё оказалось хитрее и непонятнее: в /etc/X11/xorg.conf, пока я не полез настраивать раскладки через графический интерфейс, вообще ничего, относящегося к раскладкам, не было. После ковыряний &amp;mdash; появилось. И, как выяснилось, прописанное там всё-таки учитывается. Откуда иксы брали настройки раньше &amp;mdash; непонятно.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Раскладки, как и ожидалось, оказались в /usr/share/X11/xkb/symbols, но иксы игнорирует то, что я туда пытался понаписать. &lt;span class='ljuser  ljuser-name_kohb' lj:user='kohb' style='white-space: nowrap;'&gt;&lt;a href='http://kohb.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://kohb.livejournal.com/'&gt;&lt;b&gt;kohb&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; подсказал метод правильного хранения изменённых раскладок &amp;mdash; сейчас попробую.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:988777</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/988777.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=988777"/>
    <title>Нажимая двѣ клавиши</title>
    <published>2009-07-10T11:21:37Z</published>
    <updated>2009-07-10T15:20:25Z</updated>
    <category term="freebsd"/>
    <category term="keyboard"/>
    <category term="x"/>
    <content type="html">Домашній ноутбукъ не имѣетъ ни клавиши &lt;kbd&gt;Compose&lt;/kbd&gt;, ни какой-либо другой, лишней. Да и нажимать каждый разъ на рабочей машинѣ множество клавишъ (скажемъ, для набора тире надо нажать &lt;kbd&gt;Compose, -, -, -&lt;/kbd&gt;) тоже неправильно.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;/орѳографія:старая&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;В то же время существуют методы набора нужных символов одновременным нажатием &lt;kbd&gt;RAlt&lt;/kbd&gt; с чем-нибудь — такой же метод используется в популярной &lt;a href="http://ilyabirman.ru/typography-layout/"&gt;раскладке Ильи Бирмана&lt;/a&gt;. Погуглив, нашёл ряд материалов по теме: &lt;a href="http://www.linux.org.ru/wiki/en/X-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80"&gt;X-сервер&lt;/a&gt;, &lt;a href="http://xgu.ru/wiki/Xkb"&gt;Xkb&lt;/a&gt; — понял, чего мне не хватало. Набор символов третьего уровня с помощью правого альта в xorg.conf давно был включен, а символы эти ещё надо было указать — вот их-то и не хватало.&lt;br /&gt;&lt;br /&gt;Как выяснилось, русские раскладки в FreeBSD лежат в файле /usr/local/share/X11/xkb/symbols/ru — туда можно добавить недостающие символы: в строки, описывающие соответствие клавиш и генерируемых ими символов, надо дописать третий и четвёртый символы — именно они и будут появляться при нажати клавиши с &lt;kbd&gt;RAlt&lt;/kbd&gt; и &lt;kbd&gt;RAlt+Shift&lt;/kbd&gt; соответственно.&lt;br /&gt;&lt;br /&gt;В экспериментальных целях поменял несколько строк:&lt;blockquote&gt;&lt;code&gt;    key &amp;lt;AE11&amp;gt; { [	    minus,	underscore,       U2014,       U2013  ]   }; // Em- and En-dashes&lt;br /&gt;    key &amp;lt;AE12&amp;gt; { [	    equal,        plus,       U2260,   plusminus  ]   }; // Not equal&lt;br /&gt;    key &amp;lt;AD06&amp;gt; { [     Cyrillic_en,     Cyrillic_EN,        U0463,       U0462  ]   }; // Cyrillic Yat&lt;br /&gt;    key &amp;lt;AD07&amp;gt; { [    Cyrillic_ghe,    Cyrillic_GHE,        U0475,       U0474  ]   }; // Cyrillic Izhitsa&lt;br /&gt;    key &amp;lt;AD08&amp;gt; { [    Cyrillic_sha,    Cyrillic_SHA,  Ukrainian_i, Ukrainian_I  ]   }; // Cyrillic old I&lt;br /&gt;    key &amp;lt;AD09&amp;gt; { [  Cyrillic_shcha,  Cyrillic_SHCHA,        U0473,       U0472  ]   }; // Cyrillic Fita&lt;br /&gt;    key &amp;lt;AB08&amp;gt; { [     Cyrillic_be,     Cyrillic_BE,  guillemotleft,   U201e   ]   }; // Double low-9 quotation mark&lt;br /&gt;    key &amp;lt;AB09&amp;gt; { [     Cyrillic_yu,     Cyrillic_YU, guillemotright,   U201c   ]   }; // Left double quotation mark&lt;/code&gt;&lt;/blockquote&gt;Теперь можно буквы «ѣѵіѳ», знаки ≠± и тире вводить и таким, быстрым, методом. А можно и с помощью клавиши &lt;kbd&gt;Compose&lt;/kbd&gt;.&lt;br /&gt;&lt;br /&gt;Но редактировать системный файл — неправильно: надо бы изыскать способ хранить подобные изменения где-то в домашнем каталоге пользователя и брать их оттуда.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:988503</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/988503.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=988503"/>
    <title>Re: find</title>
    <published>2009-07-09T05:21:31Z</published>
    <updated>2009-07-09T05:21:31Z</updated>
    <category term="grep"/>
    <category term="mc"/>
    <category term="free software"/>
    <category term="freebsd"/>
    <category term="find"/>
    <content type="html">Весной &lt;a href="http://shoorick.livejournal.com/964871.html"&gt;писал&lt;/a&gt;:&lt;blockquote&gt;Вот, например, я говорил, что мне mc нужен для поиска файлов. Сейчас мне уже проще воспользоваться командой find, чем ковыряться в mc.&lt;/blockquote&gt;mc ещё больше &lt;em&gt;не нужен&lt;/em&gt;: для поиска сожержимого в файлах, как известно, существует команда &lt;code&gt;grep&lt;/code&gt;, которая умеет выводить не только подходящие строки (это её поведение по умолчанию), но и имена файлов, где нашлись эти строки. Скрестив &lt;code&gt;find&lt;/code&gt; и &lt;code&gt;grep&lt;/code&gt;, можно получить:&lt;blockquote&gt;&lt;code&gt;&lt;span style="font-weight: bold;color: #c0c;"&gt;find&lt;/span&gt;&lt;span style="color: #000;"&gt; &lt;var&gt;каталог&lt;/var&gt; -type f -name &lt;var&gt;файлы&lt;/var&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color: #000;"&gt;|&lt;/span&gt; &lt;span style="font-weight: bold;color: #c0c;"&gt;xargs grep&lt;/span&gt;&lt;span style="color: #000;"&gt; -l &lt;var&gt;содержимое&lt;/var&gt;&lt;/span&gt;&lt;/code&gt;&lt;/blockquote&gt;То есть, получаем полную замену имеющегося в &lt;code&gt;mc&lt;/code&gt; Command → Find file (вызывается по &lt;kbd&gt;M-?&lt;/kbd&gt; или &lt;kbd&gt;Esc, Shift+/&lt;/kbd&gt;).</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:988206</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/988206.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=988206"/>
    <title>О чистоте</title>
    <published>2009-07-08T14:31:38Z</published>
    <updated>2009-07-08T14:31:38Z</updated>
    <category term="опечатка"/>
    <category term="фразы"/>
    <content type="html">Ноющие средства.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:988025</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/988025.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=988025"/>
    <title>Свежий файрфокс</title>
    <published>2009-07-07T11:30:22Z</published>
    <updated>2009-07-07T11:30:22Z</updated>
    <category term="mozilla"/>
    <category term="firefox"/>
    <category term="free software"/>
    <category term="freebsd"/>
    <lj:music>дождь</lj:music>
    <content type="html">Недавно вышедший Mozilla Firefox 3.5 &lt;a href="http://www.freshports.org/www/firefox35"&gt;уже есть в портах&lt;/a&gt;, но, зараза, падает.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:987875</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/987875.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=987875"/>
    <title>Имени Джироламо Фрескобальди</title>
    <published>2009-07-07T05:58:34Z</published>
    <updated>2009-07-07T05:58:34Z</updated>
    <category term="frescobaldi"/>
    <category term="lilypond"/>
    <category term="free software"/>
    <category term="linux"/>
    <category term="screenshot"/>
    <category term="lilykde"/>
    <category term="музыка"/>
    <category term="ноты"/>
    <content type="html">Из &lt;a href="http://code.google.com/p/lilykde/"&gt;LilyKDE&lt;/a&gt; вырос &lt;a href="http://frescobaldi.org/"&gt;Frescobaldi&lt;/a&gt; (назван именем итальянского композитора и органиста &lt;a href="http://ru.wikipedia.org/wiki/Фрескобальди,_Джироламо"&gt;Джироламо Фрескобальди&lt;/a&gt;, 1583—1643) — теперь это отдельный редактор, где совмещён стандартный для KDE редактор, средства вставки некоторых знаков, генератор новых файлов и механизмы для вызова лилипонда, просмотра получившегося PDF-файла и прослушивания MIDI. Есть и Rumor — программа для ввода нот с MIDI-клавиатуры, который тоже можно связать с Frescobaldi, но её я пока не пробовал.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://shoorick.ru/lj/scr/frescobaldi/configure_paths.png" alt="Configure paths"&gt;&lt;br /&gt;&lt;br /&gt;Frescobaldi написан для KDE4. Есть и для мандривы (правда, не самый свежий). Поставил, попробовал.&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;Каких-то революционных изменений (по сравнению с обычным редактированием текста в kate и вызовом лилипонда вручную) Frеscobaldi не принёс, но множество мелких улучшений делают редактирование более удобным.&lt;br /&gt;&lt;br /&gt;При создании новой партитуры появляется Score Setup Wizard, где можно задать множество параметров создаваемой партитуры, не заглядывая за каждым из них в мануал. Это и различный текст:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://shoorick.ru/lj/scr/frescobaldi/score_setup_wizard_titles.png" alt="Score setup wizard → Titles and headers"&gt;&lt;br /&gt;&lt;br /&gt;И используемые инструменты:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://shoorick.ru/lj/scr/frescobaldi/score_setup_wizard_parts.png" alt="Score setup wizard → Parts"&gt;&lt;br /&gt;&lt;br /&gt;И всё остальное: темп, тональность, внешний вид... Можно даже, выбрав нужный Pitch Name Language, настроить лилипонд на использование более привычных названий нот: например, ноту си можно обозначать не по-американски, как &lt;code&gt;b&lt;/code&gt;, а по-европейски, как &lt;code&gt;h&lt;/code&gt;, а то и вовсе, слогом, как &lt;code&gt;si&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://shoorick.ru/lj/scr/frescobaldi/score_setup_wizard_score.png" alt="Score setup wizard → Score settings"&gt;&lt;br /&gt;&lt;br /&gt;Все выбранные параметры бдут преобразованы в соответствующие команды лилипонда. Сразу же можно посмотреть, что получится, нажав на кнопку Try:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://shoorick.ru/lj/scr/frescobaldi/pdf_preview.png" alt="PDF preview"&gt;&lt;br /&gt;&lt;br /&gt;К сожалению, доставшийся мне экземпляр оказался каким-то не очень стабильным: в среднем, каждая четвёртая попытка посмотреть PDF Preview оканчивалась падением:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://shoorick.ru/lj/scr/frescobaldi/crash.png" alt="crash"&gt;&lt;br /&gt;&lt;br /&gt;Возможно, имеет смысл всё-таки поставить более свежую, неоттестированную версию.&lt;br /&gt;&lt;br /&gt;Редактирование, как я уже говорил, принципиально ничем не отличается от того, что было в kate. Добавлены лишь полезные мелочи: можно добавлять различные знаки:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://shoorick.ru/lj/scr/frescobaldi/main_window.png" alt="Главное окно"&gt;&lt;br /&gt;&lt;br /&gt;И получать подсказки:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://shoorick.ru/lj/scr/frescobaldi/hint.png" alt="Подсказка"&gt;&lt;br /&gt;&lt;br /&gt;В любой момент можно запустить Lilypond (соответствующей кнопкой на тулбаре или сочетанием клавиш &lt;kbd&gt;Ctrl+M&lt;/kbd&gt; — после этого в правой части окна откроется получившийся PDF-файл, кликнув в котором по какой-либо ноте, можно перейти к описанию этой ноты в исходном файле (это было и в LilyKDE).</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:987436</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/987436.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=987436"/>
    <title>За проезд</title>
    <published>2009-07-05T17:44:29Z</published>
    <updated>2009-07-05T17:44:29Z</updated>
    <category term="деньги"/>
    <category term="ЮУЖД"/>
    <category term="bike"/>
    <category term="электричка"/>
    <content type="html">Проезд в электричках подорожал до 10 рублей за зону. Провоз велосипеда на расстояние до 100 км — по-прежнему 15 рублей.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:987275</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/987275.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=987275"/>
    <title>Отмена электричек</title>
    <published>2009-07-05T17:02:03Z</published>
    <updated>2009-07-05T17:02:03Z</updated>
    <category term="Миасс"/>
    <category term="Челябинск"/>
    <category term="ЮУЖД"/>
    <category term="электричка"/>
    <content type="html">Списано на станции Мисяш:&lt;blockquote&gt;С 26 июня по 19 июля 2009 г. отменяются пригородные поезда 6021 Челябинск — Миасс-I и 6026 Миасс-I — Челябинск (курсирующие по пятницам, субботам и воскресеньям)&lt;br /&gt;&lt;br /&gt;С 26 июня по 20 июля 2009 г.&lt;br /&gt;с понедельника по пятницу пригородный поезд № 6015 / 6032 следует по маршруту Челябинск — Полетаево-I. По субботам и воскресеньям — до Миасса.&lt;/blockquote&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:987049</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/987049.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=987049"/>
    <title>На Кисегаче хорошо</title>
    <published>2009-07-04T19:11:07Z</published>
    <updated>2009-07-04T19:11:07Z</updated>
    <category term="Кисегач"/>
    <category term="bike"/>
    <lj:music>гул железной дороги</lj:music>
    <content type="html">Чуть не опоздав на электричку и трижды заклеив проколы в одном и том же колесе, с&lt;br /&gt;мы всё-таки доехали до Кисегача. Народу немного, но лопату спёрли.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:986725</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/986725.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=986725"/>
    <title>Афтар джумлы! Апстена и йад ждут тебя с нетерпением</title>
    <published>2009-07-03T15:28:22Z</published>
    <updated>2009-07-03T15:28:22Z</updated>
    <category term="вебмастерство"/>
    <category term="cms"/>
    <category term="php"/>
    <category term="joomla"/>
    <content type="html">Когда я &lt;del&gt;был маленький&lt;/del&gt; в прошлом тысячелетии только-только начинал осваивать HTML и ничего не знал ни про .htaccess, ни про httpd.conf, в некоторых каталогах, не предназначенных для просмотра посетителем, оставлял маленький файлик-перенаправление index.html, простой до безобразия:&lt;blockquote&gt;&lt;code&gt;&amp;lt;meta http-equiv="Redirect" content="0;URL=&lt;var&gt;somewhere&lt;/var&gt;"&amp;gt;&lt;/code&gt;&lt;/blockquote&gt;Оказывается, в природе существуют люди, которые и по сей день разбрасывают файлы. Но ещё проще — без перенаправления: либо пустые, либо вот такие:&lt;blockquote&gt;&lt;code&gt;&lt;html&gt;&amp;lt;html&amp;gt;&amp;lt;body bgcolor=&amp;quot;#FFFFFF&amp;quot;&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;/html&gt;&lt;/code&gt;&lt;/blockquote&gt;Не иначе, боятся обидеть посетителя 403-й ошибкой, а .htaccess отредактировать религия не позволяет.&lt;br /&gt;&lt;br /&gt;Веселее другое — эти люди ещё и популярную CMS выпускают по имени Joomla! Я только что на одном подопытном сайте насчитал почти 700 таких файлов. Зачем они там?!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:986553</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/986553.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=986553"/>
    <title>Re: Перловый gettext</title>
    <published>2009-07-03T11:02:18Z</published>
    <updated>2009-07-03T11:02:18Z</updated>
    <category term="gettext"/>
    <category term="man"/>
    <category term="программизм"/>
    <category term="perl"/>
    <content type="html">В мануале &lt;a href="http://www.gnu.org/software/gettext/manual/gettext.html#Perl"&gt;советуют использовать&lt;/a&gt; модуль &lt;a href="http://search.cpan.org/perldoc?Locale::TextDomain"&gt;Locale::TextDomain&lt;/a&gt;, в котором уже сразу есть функция &lt;code&gt;__&lt;/code&gt; и ещё куча удобных штуковин, при этом нет ненужного ООП. В том же мануале — ключи для &lt;code&gt;xgettext&lt;/code&gt;:&lt;blockquote&gt;&lt;code&gt;-k__ -k\$__ -k%__ -k__x -k__n:1,2 -k__nx:1,2 -k__xn:1,2 -kN__ -k&lt;/code&gt;&lt;/blockquote&gt;Чтение мануалов просветляет...</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:986136</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/986136.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=986136"/>
    <title>Re: Перловый gettext</title>
    <published>2009-07-03T09:44:10Z</published>
    <updated>2009-07-03T09:44:10Z</updated>
    <category term="gettext"/>
    <category term="программизм"/>
    <category term="число"/>
    <category term="русский язык"/>
    <category term="perl"/>
    <lj:music>шум из-за окна</lj:music>
    <content type="html">&lt;ol start="0"&gt;&lt;li&gt;
&lt;a href="http://shoorick.livejournal.com/985469.html"&gt;Бодание с перловым интерфейсом к геттексту&lt;/a&gt; завершилось успешно. Результат можно понаблюдать на &lt;a href="http://urc.ac.ru/cgi/ftpsearch/"&gt;http://urc.ac.ru/cgi/ftpsearch/&lt;/a&gt; — скрипт пишет ответ на нужном языке в зависимости от языковых настроек браузера посетителя и использует правильные формы множественного числа (о применении геттекста для множественного числа мне &lt;span class='ljuser  ljuser-name_zauberer' lj:user='zauberer' style='white-space: nowrap;'&gt;&lt;a href='http://zauberer.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://zauberer.livejournal.com/'&gt;&lt;b&gt;zauberer&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; Яша &lt;a href="http://shoorick.livejournal.com/810117.html?thread=3127685#t3127685"&gt;ещё в позапрошлом году говорил&lt;/a&gt;).
&lt;/li&gt;&lt;li&gt;
Множественные числа можно добывать функцией &lt;code&gt;nget&lt;/code&gt;. Для неё псевдоним тоже не будет лишним:&lt;blockquote&gt;&lt;code&gt;&lt;pre&gt;&lt;span style="font-style: italic;color: #888;"&gt;# __ и _n - псевдонимы для $d-&amp;gt;get и $d-&amp;gt;nget&lt;/span&gt;
&lt;span style="font-weight: bold;color: #000;"&gt;sub &lt;/span&gt;&lt;span style="color: #008;"&gt;__&lt;/span&gt;&lt;span style="color: #000;"&gt; (&lt;/span&gt;&lt;span style="color: #800;"&gt;$&lt;/span&gt;&lt;span style="color: #000;"&gt;)   {  &lt;/span&gt;&lt;span style="color: #800;"&gt;$d&lt;/span&gt;&lt;span style="color: #000;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #800;"&gt;get&lt;/span&gt;&lt;span style="color: #000;"&gt;( &lt;/span&gt;&lt;span style="color: #800;"&gt;@_&lt;/span&gt;&lt;span style="color: #000;"&gt; ) }&lt;/span&gt;
&lt;span style="font-weight: bold;color: #000;"&gt;sub &lt;/span&gt;&lt;span style="color: #008;"&gt;_n&lt;/span&gt;&lt;span style="color: #000;"&gt; (&lt;/span&gt;&lt;span style="color: #800;"&gt;$$$&lt;/span&gt;&lt;span style="color: #000;"&gt;) { &lt;/span&gt;&lt;span style="color: #800;"&gt;$d&lt;/span&gt;&lt;span style="color: #000;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #800;"&gt;nget&lt;/span&gt;&lt;span style="color: #000;"&gt;( &lt;/span&gt;&lt;span style="color: #800;"&gt;@_&lt;/span&gt;&lt;span style="color: #000;"&gt; ) }&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/blockquote&gt;
&lt;/li&gt;&lt;li&gt;
Посмотрел в исходники &lt;a href="http://search.cpan.org/perldoc?Locale::gettext"&gt;Locale::gettext&lt;/a&gt; — там вызываются обычные функции. Нафига было приплетать сюда ООП?
&lt;/li&gt;&lt;li&gt;Функция &lt;code&gt;setlocale&lt;/code&gt; не хочет понимать переданный язык, ориентируясь исключительно на переменную окружения &lt;code&gt;$LANG&lt;/code&gt;. Чей это глюк — непонятно. В результате приходится использовать костыль:&lt;blockquote&gt;&lt;code&gt;&lt;pre&gt;&lt;span style="font-style: italic;color: #888;"&gt;# Вопреки мануалу, второй параметр функции setlocale игнорируется&lt;/span&gt;
&lt;span style="color: #c00;"&gt;$ENV&lt;/span&gt;&lt;span style="color: #000;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;&lt;span style="color: #f66;"&gt;LANG&lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;&lt;span style="color: #000;"&gt;}&lt;/span&gt;
&lt;span style="color: #000;"&gt;    = ( &lt;/span&gt;&lt;span style="color: #c00;"&gt;$ENV&lt;/span&gt;&lt;span style="color: #000;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;&lt;span style="color: #f66;"&gt;HTTP_ACCEPT_LANGUAGE&lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;&lt;span style="color: #000;"&gt;} =~ &lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;/&lt;/span&gt;&lt;span style="color: #080;"&gt;ru&lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;/&lt;/span&gt;&lt;span style="color: #000;"&gt; )&lt;/span&gt;
&lt;span style="color: #000;"&gt;    ? &lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;&lt;span style="color: #f66;"&gt;ru&lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;
&lt;span style="color: #000;"&gt;    : &lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;&lt;span style="color: #f66;"&gt;en&lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;&lt;span style="color: #000;"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ol&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:985890</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/985890.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=985890"/>
    <title>Сижу в бубенцовой шапке</title>
    <published>2009-07-02T17:13:57Z</published>
    <updated>2009-07-02T17:13:57Z</updated>
    <category term="nvidia"/>
    <category term="trouble"/>
    <category term="linux"/>
    <category term="x"/>
    <content type="html">&lt;del&gt;Обновил&lt;/del&gt; Переставил мандриву на 2009.1. Мандрива, как и в прошлый раз, захотела запустить иксы с драйвером nv. Но в прошлый раз я это заметил, в этот — нет. В результате — чёрный экран и в логах сообщение о том, что устройство не поддерживается.&lt;br /&gt;&lt;br /&gt;Пришлось ручками ковырять xorg.conf и переключаться на драйвер vesa — иксы запустились, но при этот жутко тормозят.&lt;br /&gt;&lt;br /&gt;Качаю &lt;a href="http://www.nvidia.com/object/unix.html"&gt;проприетарный драйвер&lt;/a&gt;...</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:985729</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/985729.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=985729"/>
    <title>Re: Призрак древнейшего троллейбусного маршрута</title>
    <published>2009-07-02T13:34:25Z</published>
    <updated>2009-07-02T13:34:25Z</updated>
    <category term="фразы"/>
    <category term="троллейбус"/>
    <category term="маршрут"/>
    <content type="html">Сократим &lt;a href="http://shoorick.livejournal.com/984510.html"&gt;пост&lt;/a&gt; по двух слов:&lt;br /&gt;Конспирадцатый маршрут.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:985469</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/985469.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=985469"/>
    <title>Перловый gettext</title>
    <published>2009-07-02T13:14:11Z</published>
    <updated>2009-07-02T13:29:13Z</updated>
    <category term="gettext"/>
    <category term="man"/>
    <category term="программизм"/>
    <category term="perl"/>
    <category term="перевод"/>
    <content type="html">&lt;ol start="0"&gt;&lt;li&gt;Держать по несколько версий одного и того же скрипта, отличающихся лишь выводимыми строками — неправильно. Значит, надо разобраться с интернационализацией.&lt;/li&gt;

&lt;li&gt;Пытаюсь понять, как использовать gettext в перлосриптах. Пока не совсем понятно. Толковую доку на русском не нагуглил, пытаюсь понять на аглицком.&lt;/li&gt;

&lt;li&gt;Глядя в мануал и творчески применяя напильник, сотворил скрипт (тут приведена далеко не первая итерация):&lt;blockquote&gt;&lt;code&gt;&lt;pre&gt;&lt;span style="font-weight: bold;color: #000;"&gt;#!/usr/bin/perl -w&lt;/span&gt;
&lt;span style="font-weight: bold;color: #000;"&gt;use&lt;/span&gt; &lt;span style="font-weight: bold;color: #000;"&gt;strict&lt;/span&gt;&lt;span style="color: #000;"&gt;;&lt;/span&gt;

&lt;span style="font-weight: bold;color: #000;"&gt;use&lt;/span&gt; &lt;span style="color: #008;"&gt;Locale::gettext&lt;/span&gt;&lt;span style="color: #000;"&gt;;&lt;/span&gt;
&lt;span style="font-weight: bold;color: #000;"&gt;use&lt;/span&gt;&lt;span style="color: #000;"&gt; POSIX;&lt;/span&gt;
&lt;span style="color: #000;"&gt;setlocale( LC_MESSAGES, &lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;''&lt;/span&gt;&lt;span style="color: #000;"&gt; );&lt;/span&gt;

&lt;span style="font-style: italic;color: #888;"&gt;# OO interface&lt;/span&gt;
&lt;span style="font-weight: bold;color: #000;"&gt;my&lt;/span&gt; &lt;span style="color: #800;"&gt;$d&lt;/span&gt;&lt;span style="color: #000;"&gt; = &lt;/span&gt;&lt;span style="color: #008;"&gt;Locale::gettext&lt;/span&gt;&lt;span style="color: #000;"&gt;-&amp;gt;domain_raw( &lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;&lt;span style="color: #f66;"&gt;man_1&lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;&lt;span style="color: #000;"&gt; );&lt;/span&gt;
&lt;span style="color: #800;"&gt;$d&lt;/span&gt;&lt;span style="color: #000;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #800;"&gt;dir&lt;/span&gt;&lt;span style="color: #000;"&gt;( &lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;&lt;span style="color: #f66;"&gt;i18n&lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;&lt;span style="color: #000;"&gt; );&lt;/span&gt;

&lt;span style="font-style: italic;color: #888;"&gt;# __ is alias for $d-&amp;gt;get&lt;/span&gt;
&lt;span style="font-weight: bold;color: #000;"&gt;sub &lt;/span&gt;&lt;span style="color: #008;"&gt;__&lt;/span&gt;&lt;span style="color: #000;"&gt; (&lt;/span&gt;&lt;span style="color: #800;"&gt;$&lt;/span&gt;&lt;span style="color: #000;"&gt;) { &lt;/span&gt;&lt;span style="color: #800;"&gt;$d&lt;/span&gt;&lt;span style="color: #000;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #800;"&gt;get&lt;/span&gt;&lt;span style="color: #000;"&gt;( &lt;/span&gt;&lt;span style="color: #008;"&gt;shift&lt;/span&gt;&lt;span style="color: #000;"&gt; ) }&lt;/span&gt;

&lt;span style="color: #008;"&gt;print&lt;/span&gt;&lt;span style="color: #000;"&gt; __ &lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;&lt;span style="color: #f66;"&gt;Hello world!&lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;&lt;span style="color: #000;"&gt;, &lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;"&lt;/span&gt;&lt;span style="color: #f0f;"&gt;\n&lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;"&lt;/span&gt;&lt;span style="color: #000;"&gt;;&lt;/span&gt;
&lt;span style="color: #008;"&gt;print&lt;/span&gt;&lt;span style="color: #000;"&gt; gettext( &lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;&lt;span style="color: #f66;"&gt;Who they are?!&lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;&lt;span style="color: #000;"&gt; ), &lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;"&lt;/span&gt;&lt;span style="color: #f0f;"&gt;\n&lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;"&lt;/span&gt;&lt;span style="color: #000;"&gt;;&lt;/span&gt;
&lt;span style="color: #008;"&gt;print&lt;/span&gt; &lt;span style="color: #800;"&gt;$d&lt;/span&gt;&lt;span style="color: #000;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #800;"&gt;get&lt;/span&gt;&lt;span style="color: #000;"&gt;( &lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;&lt;span style="color: #f66;"&gt;Goodbye world!&lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;'&lt;/span&gt;&lt;span style="color: #000;"&gt; ), &lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;"&lt;/span&gt;&lt;span style="color: #f0f;"&gt;\n&lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;"&lt;/span&gt;&lt;span style="color: #000;"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/code&gt;&lt;/blockquote&gt;добыл список строк командой &lt;code&gt;xgettext&lt;/code&gt;, добавил к нему перевод (можно вручную, можно задействовать &lt;code&gt;kbabel&lt;/code&gt;), скомпилировал при помощи &lt;code&gt;msgfmt&lt;/code&gt;, сложил полученный перевод в ./i18n/ru_RU.UTF-8/LC_MESSAGES, подвожу итоги:&lt;ul&gt; &lt;li&gt;&lt;code style="color: #000;"&gt;gettext&lt;/code&gt; обнаруживается xgettext'ом, но не работает (в мануале: &lt;q&gt;Perl programs should use the object interface.&lt;/q&gt;)&lt;/li&gt; &lt;li&gt;&lt;code&gt;&lt;span style="color: #800;"&gt;$d&lt;/span&gt;&lt;span style="color: #000;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #800;"&gt;get&lt;/span&gt;&lt;/code&gt; работает, но отвратительно выглядит (что обходится вводом псевдонима — функции &lt;code style="color: #000;"&gt;__&lt;/code&gt;) &lt;del&gt;и не обнаруживается xgettext'ом&lt;/del&gt;&lt;/li&gt; &lt;li&gt;&lt;code style="color: #000;"&gt;__&lt;/code&gt; работает, выглядит хорошо, &lt;del&gt;но тоже не обнаруживается xgettext'ом&lt;/del&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Исходя из имеющейся ситуации самым правильным, наверное, будет научить xgettext находить в исходнике те строки, перед которыми стоит &lt;code style="color: #000;"&gt;__&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Пошёл читать мануал дальше...&lt;/li&gt;&lt;/ol&gt;&lt;ins&gt;&lt;strong&gt;upd/19:30:&lt;/strong&gt; &lt;code&gt;xgettext&lt;/code&gt; можно научить понимать разные ключевые слова: запущенный с ключами &lt;kbd&gt;-k__ -kget&lt;/kbd&gt;, он всё находит. Завтра попробую применить на практике.&lt;/ins&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:985232</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/985232.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=985232"/>
    <title>Минус 420 мл</title>
    <published>2009-07-02T07:56:28Z</published>
    <updated>2009-07-02T07:56:28Z</updated>
    <category term="ЮУрГУ"/>
    <category term="донор"/>
    <lj:music>Владимир Ланцберг - Кошачий вальс</lj:music>
    <content type="html">Федеральное государственное учреждение «Станция переливания крови Федерального медико-биологического агентства» в г. Челябинске ещё &lt;a href="http://www.rg.ru/2009/02/20/krov.html"&gt;зимой получило передвижную станцию переливания крови&lt;/a&gt; — седельный тягач «Iveco» со здоровенным полуприцепом, в котором есть несколько помещений — для регистрации доноров, медосмотра, чаепития, диагностики и собственно комната, где сдают кровь, рассчитанная на одновременный приём крови у 4 (или у 5?) доноров.&lt;br /&gt;&lt;br /&gt;Сегодня этот агрегат полдня — с 9 до 14 часов — стоял возле ЮУрГУ, перед памятником Курчатову. Судя по ведомости, доноров было немного — я, придя в 13 часов, оказался лишь пятым (без учёта отсеянных).&lt;br /&gt;&lt;br /&gt;Завтра они снова приедут на то же место, будут принимать кровь с 9 до 13 часов.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:984896</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/984896.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=984896"/>
    <title>За рупь двадцать</title>
    <published>2009-07-02T04:47:26Z</published>
    <updated>2009-07-02T04:47:26Z</updated>
    <category term="деньги"/>
    <category term="песня"/>
    <lj:music>Владимир Ланцберг - Песенка за рупь двадцать</lj:music>
    <content type="html">&lt;blockquote&gt;И несется над брусчаткой,&lt;br /&gt;В кулачке зажав рупь-двадцать.&lt;br /&gt;Это больше, чем буханка,&lt;br /&gt;Это — взрослое доверье,&lt;br /&gt;Так что молодость — пустяк.&lt;br /&gt;...&lt;br /&gt;В кошельке ее два-сорок,&lt;br /&gt;Что равняется примерно&lt;br /&gt;Десяти буханкам хлеба,&lt;br /&gt;Театральным двум билетам&lt;br /&gt;(правда, стоит ли об этом?)&lt;br /&gt;Или палке колбасы.&lt;address&gt;&lt;a href="http://www.bards.ru/archives/part.php?id=7965"&gt;current music&lt;/a&gt;&lt;/address&gt;&lt;/blockquote&gt;Лишь сегодня догадался, что упоминающиеся в песне суммы — разного масштаба: рупь двадцать — до деноминации 1961 года (можно даже предположить, что действие начала песни приходится на 1957 год), а два сорок — после. Значит, суммы эти различаются не в 2 раза, а в 20.&lt;br /&gt;&lt;br /&gt;Странно, что я раньше этого не заметил.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:984588</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/984588.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=984588"/>
    <title>Кручу-верчу — Сдвиг элементов списка с переносом крайнего элемента в другой конец</title>
    <published>2009-07-01T09:00:09Z</published>
    <updated>2009-07-01T09:00:09Z</updated>
    <category term="array"/>
    <category term="программизм"/>
    <category term="perl"/>
    <lj:music>Ирина Богушевская и Алексей Иващенко - Воды марта</lj:music>
    <content type="html">Вообще-то, это очевидное решение. Но чтобы не думать одну мысль дважды — пусть будет тут:&lt;blockquote&gt;&lt;code&gt;&lt;pre&gt;&lt;span style="font-weight: bold;color: #000;"&gt;#!/usr/bin/perl -w&lt;/span&gt;
&lt;span style="font-weight: bold;color: #000;"&gt;use&lt;/span&gt; &lt;span style="font-weight: bold;color: #000;"&gt;strict&lt;/span&gt;&lt;span style="color: #000;"&gt;;&lt;/span&gt;
&lt;span style="color: #c00;"&gt;$\&lt;/span&gt;&lt;span style="color: #000;"&gt; = &lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;"&lt;/span&gt;&lt;span style="color: #f0f;"&gt;\n&lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;"&lt;/span&gt;&lt;span style="color: #000;"&gt;;&lt;/span&gt;

&lt;span style="font-weight: bold;color: #000;"&gt;my&lt;/span&gt; &lt;span style="color: #800;"&gt;@ar&lt;/span&gt;&lt;span style="color: #000;"&gt; = &lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;qw(&lt;/span&gt;&lt;span style="color: #000;"&gt;a b c d&lt;/span&gt;&lt;span style="font-weight: bold;color: #080;"&gt;)&lt;/span&gt;&lt;span style="color: #000;"&gt;;&lt;/span&gt;

&lt;span style="font-style: italic;color: #888;"&gt;# Rotate left: abcd → bcda&lt;/span&gt;
&lt;span style="font-style: italic;color: #888;"&gt;# ┌─ list ←┐&lt;/span&gt;
&lt;span style="font-style: italic;color: #888;"&gt;# └────────┘&lt;/span&gt;

&lt;span style="color: #008;"&gt;push&lt;/span&gt; &lt;span style="color: #800;"&gt;@ar&lt;/span&gt;&lt;span style="color: #000;"&gt;, &lt;/span&gt;&lt;span style="color: #008;"&gt;shift&lt;/span&gt; &lt;span style="color: #800;"&gt;@ar&lt;/span&gt;&lt;span style="color: #000;"&gt;;&lt;/span&gt;
&lt;span style="color: #008;"&gt;print&lt;/span&gt; &lt;span style="color: #800;"&gt;@ar&lt;/span&gt;&lt;span style="color: #000;"&gt;;&lt;/span&gt;

&lt;span style="font-style: italic;color: #888;"&gt;# Rotate right: abcd → dabc&lt;/span&gt;
&lt;span style="font-style: italic;color: #888;"&gt;# ┌→ list ─┐&lt;/span&gt;
&lt;span style="font-style: italic;color: #888;"&gt;# └────────┘&lt;/span&gt;

&lt;span style="color: #008;"&gt;unshift&lt;/span&gt; &lt;span style="color: #800;"&gt;@ar&lt;/span&gt;&lt;span style="color: #000;"&gt;, &lt;/span&gt;&lt;span style="color: #008;"&gt;pop&lt;/span&gt; &lt;span style="color: #800;"&gt;@ar&lt;/span&gt;&lt;span style="color: #000;"&gt;;&lt;/span&gt;
&lt;span style="color: #008;"&gt;print&lt;/span&gt; &lt;span style="color: #800;"&gt;@ar&lt;/span&gt;&lt;span style="color: #000;"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/blockquote&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:984510</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/984510.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=984510"/>
    <title>Призрак древнейшего троллейбусного маршрута</title>
    <published>2009-06-30T20:13:50Z</published>
    <updated>2009-06-30T20:13:50Z</updated>
    <category term="Челябинск"/>
    <category term="троллейбус"/>
    <category term="история"/>
    <category term="маршрут"/>
    <content type="html">Как известно, самый первый челябинский троллейбус пошёл в 1942 году по маршруту номер 2 — от ЧТЗ до улицы Клары Цеткин. Первый тоже был — они в один день появились. Но двойка стартовала раньше. Потом менялась сеть, маршруты передавались между разными депо, но первая тройка маршрутов (если не считать небольшого увеличения их длины) оставалась неизменной. К 1968 второй маршрут стал именно таким, каким мы его помним: от ЧТЗ по проспекту Ленина до самого его конца, затем по улицам Лесопарковой и Сони Кривой — к радиозаводу, и по Тернопольской — обратно на проспект.&lt;br /&gt;&lt;br /&gt;Несколько лет назад, под предлогом убыточности перевозок и снижения пассажиропотока второй маршрут закрыли. Хотя о каком снижении пассажиропотока речь? Проблемы на ЧТЗ? Меньше рабочих? Посмотрите на другой конец маршрута — ЮУрГУ всё растёт и растёт, вечером, в 19 часов (в учебное время, с сентября по май) на остановке собираются толпы желающих уехать. А троллейбуса-то нет! И маршрутки не справляются. И не справятся.&lt;br /&gt;&lt;br /&gt;Казалось бы, восстанови маршрут — и всё, всем будет хорошо. Прокатившись на троллейбусе несколько раз по пути с работы домой, узнал, что фактически маршрут существует: я два вечера подряд, садясь в девятнадцатый, слышал: «На ЧТЗ идёт троллейбус. На ЧТЗ». В один из разов было ещё веселее: выехав на Площадь Революции (где в проспект Ленина с улицы Воровского вливается 11-й маршрут), водитель стал объявлять, что якобы идёт по одиннадцатому маршруту.&lt;br /&gt;&lt;br /&gt;Кому нужна такая глупая конспирация? Неудобно же! Непонятно, что мешает первому депо восстановить маршрут: там всего-то и надо — нарисовать таблички. Или найти старые.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:984110</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/984110.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=984110"/>
    <title>Цифра</title>
    <published>2009-06-30T09:08:38Z</published>
    <updated>2009-06-30T09:08:38Z</updated>
    <category term="дом"/>
    <category term="число"/>
    <category term="ремонт"/>
    <lj:music>Александр Лаэртский - Дверь</lj:music>
    <content type="html">В подъезде завершили ремонт. При этом на почтовых ящиках нарисовали страшные кривые цифры, а на лестничных площадках не нарисовали никаких. Пришлось взять дело в свои руки — нарисовать цифру, вооружившись трафаретом и аэрозольной краской. Теперь вышедший из лифта гость увидит цифру с номером этажа: ярко-оранжевую, высотой 215 мм. На остальных этажах рисовать не стал.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:983969</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/983969.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=983969"/>
    <title>ОГМ — народный артист</title>
    <published>2009-06-29T08:27:14Z</published>
    <updated>2009-06-29T08:27:14Z</updated>
    <category term="пресса"/>
    <category term="ссылка"/>
    <lj:music>Александр Лаэртский - Восьмое Марта</lj:music>
    <content type="html">mediaзавод.ru: &lt;a href="http://mediazavod.ru/shorties/71471"&gt;Челябинскому барду Олегу Митяеву присвоено звание «Народный артист России»&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:983567</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/983567.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=983567"/>
    <title>Разве можно сидеть в городе, когда поспела клубника?</title>
    <published>2009-06-28T18:20:59Z</published>
    <updated>2009-06-28T18:20:59Z</updated>
    <category term="хор"/>
    <category term="photo"/>
    <category term="panoramio"/>
    <content type="html">Сегодня доехал до развалин пионерского лагеря «Чайка», куда приезжал с хором 25 лет назад. Лагеря нет: остались лишь фундаменты от зданий да кое-где — обломки стен:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.panoramio.com/photo/23912807"&gt;&lt;img src="http://static4.bareka.com/photos/medium/23912807.jpg" alt="Останки пионерского лагеря / Part of destroyed children camp / Alte Pionierlager" width="500" height="333"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Всё заросло. Особенно охотно берёзы с осинами растут на месте зданий. Но там, где нет зарослей (Что там раньше было? Футбольное поле? &lt;del&gt;Плац&lt;/del&gt; Линейка?) — поспела клубника:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.panoramio.com/photo/23912810"&gt;&lt;img src="http://static3.bareka.com/photos/medium/23912810.jpg" alt="Лесная клубника / Wild strawberry" width="500" height="332"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Нагретые июньским солнцем, стрекочут кузнечики и порхают бабочки:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.panoramio.com/photo/23912765"&gt;&lt;img src="http://static2.bareka.com/photos/medium/23912765.jpg" alt="Бабочка / Butterfly / Schmetterling" width="500" height="332"&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:shoorick:983474</id>
    <link rel="alternate" type="text/html" href="http://shoorick.livejournal.com/983474.html"/>
    <link rel="self" type="text/xml" href="http://shoorick.livejournal.com/data/atom/?itemid=983474"/>
    <title>Внедрение мандрив в домашнем хозяйстве</title>
    <published>2009-06-23T18:10:52Z</published>
    <updated>2009-06-25T13:09:28Z</updated>
    <category term="trouble"/>
    <category term="man"/>
    <category term="lilypond"/>
    <category term="mc"/>
    <category term="linux"/>
    <content type="html">Устав от висты, балуюсь с мандривой. Кое-что сделано симпатично, кто-что удивляет:&lt;ol start="0"&gt;&lt;li&gt;man не на всё: скажем, &lt;kbd&gt;man man&lt;/kbd&gt; есть, а &lt;del&gt;какого-нибудь &lt;kbd&gt;man ls&lt;/kbd&gt; или &lt;kbd&gt;man rm&lt;/kbd&gt; &amp;mdash; нет&lt;/del&gt; остальные маны добавляют установкой пакета coreutils-doc. &lt;/li&gt;&lt;li&gt;админить мышкой, может, и весело, но как-то малоэффективно. &lt;/li&gt;&lt;li&gt;не удалось поставить ни &lt;code&gt;kate&lt;/code&gt;, ни &lt;code&gt;kdewebdev4&lt;/code&gt; (там прячется Quanta+)&amp;nbsp;&amp;mdash; установщик ругается: Sorry, the following package cannot be selected&lt;/li&gt;&lt;li&gt;некоторых софтин (&lt;code&gt;mc&lt;/code&gt;, &lt;code&gt;lilypond&lt;/code&gt;) нет среди тех, которые хотя бы теоретически можно поставить. &lt;/li&gt;&lt;li&gt;консольных редакторов кроме &lt;code&gt;vim&lt;/code&gt; нет вообще никаких: ни &lt;code&gt;ee&lt;/code&gt;, ни &lt;code&gt;nano&lt;/code&gt;, ни &lt;code&gt;joe&lt;/code&gt;, из vi я умею только выходить.&lt;/li&gt;&lt;li&gt;wi-fi то работает, то нет.&lt;/li&gt;&lt;li&gt;в /etc/fstab вместо понятных путей к устройствам типа /dev/sda1 написан кошмар: UUID=385852ba-e6c0-4511-accf-104c26fe7073. Чё с этим делать?&lt;/li&gt;&lt;/ol&gt;Будем гуглить дальше...</content>
  </entry>
</feed>
