<?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/  -->
<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:media='http://search.yahoo.com/mrss/' xmlns:atom10='http://www.w3.org/2005/Atom'>
<channel>
  <title>Старое журавлиное гнездо</title>
  <link>http://rotuka.livejournal.com/</link>
  <description>Старое журавлиное гнездо - LiveJournal.com</description>
  <lastBuildDate>Wed, 25 Nov 2009 05:14:37 GMT</lastBuildDate>
  <generator>LiveJournal / LiveJournal.com</generator>
  <lj:journal>rotuka</lj:journal>
  <lj:journalid>9368367</lj:journalid>
  <lj:journaltype>personal</lj:journaltype>
  <atom10:link rel='hub' href='http://pubsubhubbub.appspot.com/' />
  <image>
    <url>http://l-userpic.livejournal.com/83703128/9368367</url>
    <title>Старое журавлиное гнездо</title>
    <link>http://rotuka.livejournal.com/</link>
    <width>100</width>
    <height>100</height>
  </image>

<item>
  <guid isPermaLink='true'>http://rotuka.livejournal.com/7003.html</guid>
  <pubDate>Wed, 25 Nov 2009 05:14:37 GMT</pubDate>
  <title>Ставим рубиновый типограф на Рельсы</title>
  <link>http://rotuka.livejournal.com/7003.html</link>
  <description>&lt;p style=&quot;border: 1px solid black; padding: 3px;&quot;&gt;&lt;strong&gt;Originally published at &lt;a href=&quot;http://rotuka.com/artlebedev-typograf-ruby-on-rails/&quot;&gt;Блог разработчика веба&lt;/a&gt;. You can comment here or &lt;a href=&quot;http://rotuka.com/artlebedev-typograf-ruby-on-rails/#comments&quot;&gt;there&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;В продолжение &lt;a href=&quot;http://rotuka.com/artlebedev-typograf-ruby/&quot;&gt;вчерашней темы&lt;/a&gt;, добавил простой способ типографить избранные поля в модели ActiveRecord.&lt;/p&gt;
&lt;p&gt;Достаточно написать в нужной модели примерно следующее:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;class Article &amp;lt; ActiveRecord::Base
  typograf :title, :use_p =&amp;gt; false, :use_br =&amp;gt; false
  typograf :content, :teaser
end
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;И тогда каждый раз перед сохранением (конкретнее, перед проверкой правильности полей) будет проходить типографирование этих полей, посредством Типографа студии Артемия Лебедева.&lt;/p&gt;
&lt;p&gt;Поддерживается &lt;a href=&quot;http://rdoc.info/projects/rotuka/als_typograf&quot;&gt;несколько возможных синтаксисов&lt;/a&gt; объявления моделей для типографирования:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;для одного конкретного поля:
&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;typograf :content&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;можно указать параметры для типографирования этого поля:
&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;typograf :content, :entity_type =&amp;gt; AlsTypograf::NO_ENTITIES&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;для нескольких полей сразу (тоже с возможностью объявить параметрами типографирования, общие для всех объявленных полей):
&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;typograf :skills, :achievements, :additional, :use_br =&amp;gt; false, :use_p =&amp;gt; true&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;для нескольких полей сразу (но с объявлением параметров для каждого конкретного поля):
&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;typograf :foo =&amp;gt; {:entity_type =&amp;gt; AlsTypograf::HTML_ENTITIES},
         :bar =&amp;gt; {:use_p =&amp;gt; true, :use_br =&amp;gt; false},
         :baz =&amp;gt; {:max_nobr =&amp;gt; 5},
         :some_other_field_name =&amp;gt; {}&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Все эти варианты могут комбинироваться друг с другом внутри одной модели произвольное количество раз (но если параметры типографирования для одного и того же поля были указаны в вызовах несколько раз, будут применяться только последние).&lt;/p&gt;</description>
  <comments>http://rotuka.livejournal.com/7003.html</comments>
  <category>Студия Артемия Лебедева</category>
  <category>ruby</category>
  <category>типографика</category>
  <category>ruby on rails</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://rotuka.livejournal.com/6668.html</guid>
  <pubDate>Tue, 24 Nov 2009 03:00:22 GMT</pubDate>
  <title>Типограф студии Артемия Лебедева с отблеском Рубина</title>
  <link>http://rotuka.livejournal.com/6668.html</link>
  <description>&lt;p style=&quot;border: 1px solid black; padding: 3px;&quot;&gt;&lt;strong&gt;Originally published at &lt;a href=&quot;http://rotuka.com/artlebedev-typograf-ruby/&quot;&gt;Блог разработчика веба&lt;/a&gt;. You can comment here or &lt;a href=&quot;http://rotuka.com/artlebedev-typograf-ruby/#comments&quot;&gt;there&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Понадобилось мне &lt;a href=&quot;http://www.artlebedev.ru/kovodstvo/sections/62/&quot;&gt;типографировать тексты&lt;/a&gt;, добавляемые в админке одного из приложений. Поиск в интернете ни одного годного типографа на Ruby не показал.&lt;br /&gt;
Зато, я вспомнил, что студия Артемия Лебедева позволяет типографировать тексты с помощью их &lt;a href=&quot;http://www.artlebedev.ru/tools/typograf/webservice/&quot;&gt;веб-сервиса&lt;/a&gt;. Поэтому, я написал &lt;a title=&quot;AlsTypograf&quot; href=&quot;http://github.com/rotuka/als_typograf&quot;&gt;маленькую обёртку к их сервису&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Пользоваться очень просто.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Установите:
&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;sudo gem install als_typograf --source=http://gemcutter.org/&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;В коде приложения используйте метод &lt;code class=&quot;ruby&quot;&gt;process&lt;/code&gt; модуля &lt;code class=&quot;ruby&quot;&gt;AlsTypograf&lt;/code&gt; следующим образом:
&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;require &apos;als_typograf&apos;
AlsTypograf.process(&apos;- Это что, &quot;Типограф&quot;?&apos;) # &quot;&amp;lt;p&amp;gt;— Это что, «Типограф»?&amp;lt;/p&amp;gt;&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Обёртка поддерживает несколько опций, предоставляемых веб-сервисом Студии, их можно подставлять как к конкретному запросу:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;AlsTypograf.process(&apos;- Это что, &quot;Типограф&quot;?&apos;, :use_p =&amp;gt; false, :use_br =&amp;gt; true)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;так и выставлять глобально, для всех запросов на типографирование:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;AlsTypograf.encoding = &apos;CP1251&apos; # По-умолчанию используется кодировка UTF-8
AlsTypograf.html_entities! # Заставляет использовать сущности HTML, такие как: &amp;amp;nbsp;, &amp;amp;mdash; &amp;amp;hellip;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href=&quot;http://rdoc.info/projects/rotuka/als_typograf&quot;&gt;Документация для рубинового типографа&lt;/a&gt; хранится (и автоматически обновляется при любых изменениях) на сервисе &lt;a href=&quot;http://rdoc.info/&quot;&gt;rdoc.info&lt;/a&gt;, который весьма рекомендую всем разработчикам.&lt;/p&gt;</description>
  <comments>http://rotuka.livejournal.com/6668.html</comments>
  <category>Студия Артемия Лебедева</category>
  <category>ruby</category>
  <category>типографика</category>
  <category>удобство</category>
  <category>программирование</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://rotuka.livejournal.com/6568.html</guid>
  <pubDate>Fri, 02 Oct 2009 17:54:50 GMT</pubDate>
  <title>Как увеличить свои доходы? (Это не спам, ага)</title>
  <link>http://rotuka.livejournal.com/6568.html</link>
  <description>Собираюсь принять участие в семинаре &lt;a style=&quot;text-decoration: none&quot; href=&quot;http://dragrom.livejournal.com/92233.html&quot;&gt;&amp;laquo;&lt;u&gt;Жестокий фриланс&lt;/u&gt;&amp;raquo;&lt;/a&gt;. Он проходит в форме вебинара, начинается 5-го октября.&amp;nbsp;А вы принимали участие в подобных семинарах, или в вебинарах вообще?</description>
  <comments>http://rotuka.livejournal.com/6568.html</comments>
  <category>фриланс</category>
  <category>семинар</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://rotuka.livejournal.com/6213.html</guid>
  <pubDate>Wed, 30 Sep 2009 09:33:40 GMT</pubDate>
  <title>Метапрограммирование в Ruby</title>
  <link>http://rotuka.livejournal.com/6213.html</link>
  <description>&lt;p style=&quot;border: 1px solid black; padding: 3px;&quot;&gt;&lt;strong&gt;Originally published at &lt;a href=&quot;http://rotuka.com/ruby-metaprogramming/&quot;&gt;Блог разработчика веба&lt;/a&gt;. You can comment here or &lt;a href=&quot;http://rotuka.com/ruby-metaprogramming/#comments&quot;&gt;there&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;&lt;h2&gt;Что такое метапрограммирование?&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;Metaprogramming is the writing of computer programs that write or manipulate other programs (or themselves) as their data, or that do part of the work at compile time that would otherwise be done at runtime. In many cases, this allows programmers to get more done in the same amount of time as they would take to write all the code manually, or it gives programs greater flexibility to efficiently handle new situations without recompilation. (via Wikipedia)&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Это руководство перечисляет все стандартные методы Ruby, используемые для метапрограммирования, а так же приводит примеры их обычного употребления. В конце мы получим пример использования метапрограммирования для динамического создания классов, соответствующих таблицам в БД, включающих методы, соответствующие полям таблицы, на манер &lt;code class=&quot;ruby&quot;&gt;ActiveRecord&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://rotuka.com/ruby-metaprogramming/#more-713&quot;&gt; &amp;raquo;&lt;/a&gt;&lt;/p&gt;</description>
  <comments>http://rotuka.livejournal.com/6213.html</comments>
  <category>ruby</category>
  <category>metaprogramming</category>
  <category>программирование</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://rotuka.livejournal.com/5498.html</guid>
  <pubDate>Mon, 03 Aug 2009 17:51:50 GMT</pubDate>
  <title>Удаление программ с помощью setup.py</title>
  <link>http://rotuka.livejournal.com/5498.html</link>
  <description>&lt;p style=&quot;border: 1px solid black; padding: 3px;&quot;&gt;&lt;strong&gt;Originally published at &lt;a href=&quot;http://rotuka.com/setup-py-uninstall/&quot;&gt;Блог разработчика веба&lt;/a&gt;. You can comment here or &lt;a href=&quot;http://rotuka.com/setup-py-uninstall/#comments&quot;&gt;there&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Некоторые программы написанные на Питоне (например, &lt;a href=&quot;https://fedorahosted.org/lekhonee/&quot;&gt;Lekhonee&lt;/a&gt;) поставляются с файликом &lt;a title=&quot;The Setup Script&quot; href=&quot;http://docs.python.org/distutils/setupscript.html&quot;&gt;setup.py&lt;/a&gt;, с помощью которого довольно просто устанавливаются&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;python setup.py build
sudo python setup.py install&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;А вот удалить такую программу достаточно сложно, ибо команды &lt;code class=&quot;bash&quot;&gt;sudo python setup.py uninstall&lt;/code&gt; нету. Ну, не предусмотрели его любители красивого кода на питоне. Красивое, ведь, лучше, чем некрасивое, ага? А код на Питоне, видимо, настолько красивый, что удалять его со своего компьютера — грех смертный.&lt;/p&gt;
&lt;p&gt;Тем не менее, способ удаления таких программ есть, и он довольно прост:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;sudo python setup.py install --record files.txt
cat files.txt | sudo xargs rm -rf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;На самом деле, неприятно удивляет это питоновское стандартное средство установки программ. Но, оказывается, бывает и такое.&lt;/p&gt;
&lt;h2&gt;А если подумать перед установкой…&lt;/h2&gt;
&lt;p&gt;…то можно использовать уже упоминавшийся в блоге checkinstall:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;sudo checkinstall python setup.py install&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Тогда деинсталлировать это приложение можно будет как обычно, с помощью apt:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;sudo apt-get purge lekhonee&lt;/code&gt;&lt;/pre&gt;</description>
  <comments>http://rotuka.livejournal.com/5498.html</comments>
  <category>памятка</category>
  <category>build</category>
  <category>setup.py</category>
  <category>python</category>
  <category>checkinstall</category>
  <category>install</category>
  <category>uninstall</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://rotuka.livejournal.com/2005.html</guid>
  <pubDate>Fri, 18 Apr 2008 23:28:48 GMT</pubDate>
  <title>Другие люди</title>
  <link>http://rotuka.livejournal.com/2005.html</link>
  <description>Шёл по улице. Шёл дождь. Шёл уже третий день.&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;br /&gt;Ребята, которых лишили. Лишённые свободы ребята, которые не хотят, или не могут. Учиться, болеть, или как-то ещё освободиться от ужасного гнёта своей отчизны. Родина паразитирует на жителях. Паразитирует даже тогда, когда это, в принципе, и не необходимо. Обходится же она уже много лет без войн? Ну, не считая войн чужих, в которых она идёт за компанию. А компания у неё та ещё. Я б не завидовал.&lt;br /&gt;&lt;br /&gt;А впрочем, имеет ли всё это значение? По-моему, никакого. Потому что завтра снова встанет солнце. И снова пойдут люди. И часы пойдут с такой же скорстью.&lt;br /&gt;Скорость людей равномерна. Люди -- не индивидуальности. Не то, они дорожили бы временем. Ведь стрелки часов тоже куда-то спешат. Как и люди. И ни тем, ни другим, друг за другом не угнаться. &lt;br /&gt;&lt;br /&gt;И уже даже не важно, что я хотел написать о других людях. Я уже написал. И тоже о людях. Но о других.&amp;nbsp;&amp;nbsp;</description>
  <comments>http://rotuka.livejournal.com/2005.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://rotuka.livejournal.com/1022.html</guid>
  <pubDate>Sat, 20 Jan 2007 22:50:18 GMT</pubDate>
  <title>Причина депрессии</title>
  <link>http://rotuka.livejournal.com/1022.html</link>
  <description>&lt;p&gt;Когда любишь одного человека это приятно. Когда он отвечает тебе взаимностью &amp;mdash; это приятно вдвойне. И лишь когда ты любишь того, кто отдал своё сердце другому&amp;hellip; это причиняет боль.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Если любишь человека, сделай так чтобы он был счастлив, пусть даже если он будет счастлив не с тобой&amp;hellip;&lt;/p&gt;</description>
  <comments>http://rotuka.livejournal.com/1022.html</comments>
  <category>любовь</category>
  <category>депрессия.</category>
  <lj:music>Mylene Farmer &amp;mdash; Fuck them all</lj:music>
  <media:title type="plain">Mylene Farmer &amp;mdash; Fuck them all</media:title>
  <lj:mood>depressed</lj:mood>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://rotuka.livejournal.com/616.html</guid>
  <pubDate>Wed, 08 Nov 2006 17:32:40 GMT</pubDate>
  <title>Своя игра</title>
  <link>http://rotuka.livejournal.com/616.html</link>
  <description>Сегодня была довольно важная игра. &quot;Своя игра&quot;. В рамках чемпионата нашего турнира. я играл против одного из своих друзей. первый раз. обычно мы всегда играем в одной команде. но тут соревновались. честно говоря, было слегка страшновато... но всё уладилось. Вадим (а именно так его зовут) победил. я второй. )-:</description>
  <comments>http://rotuka.livejournal.com/616.html</comments>
  <lj:mood>так себе...</lj:mood>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://rotuka.livejournal.com/364.html</guid>
  <pubDate>Fri, 27 Jan 2006 09:01:46 GMT</pubDate>
  <title>Ну... в общем ихь комме.</title>
  <link>http://rotuka.livejournal.com/364.html</link>
  <description>Здравствуйте, все, кого не знаю. Кого знаю, не здравствуйте, живите как хотите. не хочу ввязываться в вашу жизнь. Не хочу подстраиваться не под какие нормы на сайте. Буду просто жить на его страницах.</description>
  <comments>http://rotuka.livejournal.com/364.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
</channel>
</rss>
