<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Дневник борца за высшее образование</title>
	
	<link>http://blog.copperred.net</link>
	<description>стараемся "по циркулю" и "западлицо"</description>
	<lastBuildDate>Thu, 27 Oct 2011 14:23:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/copperred" /><feedburner:info uri="copperred" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><image><url>http://www.feedburner.com/fb/images/pub/fb_pwrd.gif</url></image><item>
		<title>Железные траблы Blackmagic</title>
		<link>http://feedproxy.google.com/~r/copperred/~3/RIyfaLj7yaA/</link>
		<comments>http://blog.copperred.net/2011/10/hardware-troubles/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 14:22:16 +0000</pubDate>
		<dc:creator>vestel</dc:creator>
				<category><![CDATA[linux / administration]]></category>
		<category><![CDATA[blackmagic]]></category>
		<category><![CDATA[capture]]></category>
		<category><![CDATA[device]]></category>
		<category><![CDATA[drivers]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[hdmi]]></category>

		<guid isPermaLink="false">http://blog.copperred.net/?p=242</guid>
		<description><![CDATA[Вот, сегодня на работе на пустом месте нарисовались проблемы с картой для HDMI Capture. Нужно мне было поднять Blackmagic Intensity Pro для работы под Ubuntu 10.10 i386. 
Пошел на сайт, скачал оттуда свежий пакет софта. Поставил desktopvideo-8.6.1-i386.deb и MediaExpress-3.0.3-i386.deb. 
sudo dpkg -i desktopvideo-8.6.1-i386.deb
sudo dpkg -i MediaExpress-3.0.3-i386.deb
Все встало без проблем, а дальше никуда. Любая попытка запустить [...]]]></description>
			<content:encoded><![CDATA[<p>Вот, сегодня на работе на пустом месте нарисовались проблемы с картой для HDMI Capture. Нужно мне было поднять Blackmagic Intensity Pro для работы под Ubuntu 10.10 i386. </p>
<p>Пошел на <a href="http://blackmagic-design.com/support/">сайт</a>, скачал оттуда свежий пакет софта. Поставил desktopvideo-8.6.1-i386.deb и MediaExpress-3.0.3-i386.deb. </p>
<pre><code>sudo dpkg -i desktopvideo-8.6.1-i386.deb
sudo dpkg -i MediaExpress-3.0.3-i386.deb</code></pre>
<p>Все встало без проблем, а дальше никуда. Любая попытка запустить софт выливается в "No Blackmagic devices were found."</p>
<p>В конце концов нашел солюшен, которым спешу поделиться с вами:</p>
<pre><code>$ sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vmalloc=256M"
$ sudo update-grub
$ sudo reboot</code></pre>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/copperred?a=RIyfaLj7yaA:QmaXfcDO3BU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/copperred?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=RIyfaLj7yaA:QmaXfcDO3BU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/copperred?i=RIyfaLj7yaA:QmaXfcDO3BU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=RIyfaLj7yaA:QmaXfcDO3BU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/copperred?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=RIyfaLj7yaA:QmaXfcDO3BU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/copperred?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/copperred/~4/RIyfaLj7yaA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.copperred.net/2011/10/hardware-troubles/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.copperred.net/2011/10/hardware-troubles/</feedburner:origLink></item>
		<item>
		<title>Хорошее место для рубиньюба</title>
		<link>http://feedproxy.google.com/~r/copperred/~3/AX_295W_Bqg/</link>
		<comments>http://blog.copperred.net/2011/08/nice-place-for-ruby-newbie/#comments</comments>
		<pubDate>Mon, 29 Aug 2011 07:43:46 +0000</pubDate>
		<dc:creator>vestel</dc:creator>
				<category><![CDATA[links / internet]]></category>
		<category><![CDATA[ruby / rails]]></category>
		<category><![CDATA[newbie]]></category>

		<guid isPermaLink="false">http://blog.copperred.net/?p=238</guid>
		<description><![CDATA[За окном дождь и приближается осень. 
Уже второй раз в этом месяце, я попадаю в такое место, где нахожу очень подробную и интересную статью посвященную Ruby и написанную простым и понятным русским языком. Это личный блог Андрея Малышко, где он публикует свои заметки о Ruby и Rails и других вещах связанных с ними. И хоть [...]]]></description>
			<content:encoded><![CDATA[<p>За окном дождь и приближается осень. </p>
<p>Уже второй раз в этом месяце, я попадаю в такое место, где нахожу очень подробную и интересную статью посвященную Ruby и написанную простым и понятным русским языком. Это <a href="http://nashbridges.me">личный блог</a> Андрея Малышко, где он публикует свои заметки о <a href="http://nashbridges.me/tag/ruby">Ruby</a> и Rails и других вещах связанных с ними. И хоть на главной пока еще нет контента, я думаю вам стоит подписаться на <a href="http://nashbridges.me/feed.xml">rss фид</a>, чтобы читать о разных полезных и интересных вещах. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/copperred?a=AX_295W_Bqg:tNqTcyOgLU4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/copperred?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=AX_295W_Bqg:tNqTcyOgLU4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/copperred?i=AX_295W_Bqg:tNqTcyOgLU4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=AX_295W_Bqg:tNqTcyOgLU4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/copperred?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=AX_295W_Bqg:tNqTcyOgLU4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/copperred?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/copperred/~4/AX_295W_Bqg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.copperred.net/2011/08/nice-place-for-ruby-newbie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.copperred.net/2011/08/nice-place-for-ruby-newbie/</feedburner:origLink></item>
		<item>
		<title>Иногда они возвращаются</title>
		<link>http://feedproxy.google.com/~r/copperred/~3/mykgaquiqEA/</link>
		<comments>http://blog.copperred.net/2011/08/sometimes-they-do-return/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 10:34:20 +0000</pubDate>
		<dc:creator>vestel</dc:creator>
				<category><![CDATA[python / django]]></category>
		<category><![CDATA[ruby / rails]]></category>
		<category><![CDATA[webdev / software engineering]]></category>
		<category><![CDATA[acl]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[cusec]]></category>
		<category><![CDATA[keynote]]></category>
		<category><![CDATA[talk]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[zed shaw]]></category>

		<guid isPermaLink="false">http://blog.copperred.net/?p=233</guid>
		<description><![CDATA[Привет, народ!
Я знаю, что я тут давно ничего не писал, но чувствую, что мне не хватает этого канала связи с вами. Предлагаю вашему вниманию очень интересное видео о разработке программного обеспечения, менеджменте и прочем. 

Если кому-то нужны слайды, они доступны по ссылке в видео. Правда для их запуска придется установить Factor и немного пошаманить с [...]]]></description>
			<content:encoded><![CDATA[<p>Привет, народ!</p>
<p>Я знаю, что я тут давно ничего не писал, но чувствую, что мне не хватает этого канала связи с вами. Предлагаю вашему вниманию очень интересное видео о разработке программного обеспечения, менеджменте и прочем. </p>
<p><iframe src="http://player.vimeo.com/video/2723800?byline=0&amp;portrait=0&amp;color=ff9933" width="581" height="329" frameborder="0"></iframe></p>
<p>Если кому-то нужны слайды, они доступны по ссылке в видео. Правда для их запуска придется установить Factor и немного пошаманить с исходным скриптом. С другой стороны, мы ведь все это время развивались и прогрессировали, так что легко и непринужденно осилим эти мелкие трудности.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/copperred?a=mykgaquiqEA:PjFdiBwaDzY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/copperred?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=mykgaquiqEA:PjFdiBwaDzY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/copperred?i=mykgaquiqEA:PjFdiBwaDzY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=mykgaquiqEA:PjFdiBwaDzY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/copperred?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=mykgaquiqEA:PjFdiBwaDzY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/copperred?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/copperred/~4/mykgaquiqEA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.copperred.net/2011/08/sometimes-they-do-return/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.copperred.net/2011/08/sometimes-they-do-return/</feedburner:origLink></item>
		<item>
		<title>Отправка писем из проектов на Sinatra</title>
		<link>http://feedproxy.google.com/~r/copperred/~3/ZxN-6zd5afQ/</link>
		<comments>http://blog.copperred.net/2009/09/sending-mail-from-sinatra/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 14:26:14 +0000</pubDate>
		<dc:creator>vestel</dc:creator>
				<category><![CDATA[ruby / rails]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[gems]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[rubygems]]></category>
		<category><![CDATA[sinatra]]></category>

		<guid isPermaLink="false">http://blog.copperred.net/?p=230</guid>
		<description><![CDATA[Отправка почты из приложения на sinatra реализуется через облегченную оболочку для TMail-a именуемую pony. Для ее установки просто сделайте 

  $ gem install vestel-pony --source=http://gems.github.com

Библиотечка сама найдет ваш sendmail, и пошлет, то что вы ей скажете.
Простейший способ потестить ее:

    $ irb
    irb(main):001:0> require 'rubygems'
    => [...]]]></description>
			<content:encoded><![CDATA[<p>Отправка почты из приложения на sinatra реализуется через облегченную оболочку для TMail-a именуемую pony. Для ее установки просто сделайте </p>
<pre><code style="bash">
  $ gem install vestel-pony --source=http://gems.github.com
</code></pre>
<p>Библиотечка сама найдет ваш sendmail, и пошлет, то что вы ей скажете.</p>
<p>Простейший способ потестить ее:</p>
<pre><code style="bash">
    $ irb
    irb(main):001:0> require 'rubygems'
    => true
    irb(main):002:0> require 'pony'
    => true
    irb(main):003:0> Pony.mail(:to => 'vestel@blog.copperred.net', :subject => 'Testing pony')
    => 72
</code></pre>
<p>Более подробный мануал, <a href="http://github.com/vestel/pony">на страничке</a> на github-e. Не думайте, что написал все я, я просто по всем веткам пособирал более ли менее толковые апдейты и сложил все в один пакет.</p>
<p>В sinatra pony встраивается через </p>
<pre><code style="ruby">
require 'pony'
</code></pre>
<p>и вызывается в нужном месте.</p>
<pre><code style="ruby">
post '/doemail/' do
Pony.mail :to => "info@nepg.biz",
    :from => "website@nepg.biz",
    :subject => "Contact form at nepg.biz",
    :body => erb(:contact_form)
    "Thank you! Your message been send to administator"
end
</code></pre>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/copperred?a=ZxN-6zd5afQ:ie5-1Ql8czE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/copperred?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=ZxN-6zd5afQ:ie5-1Ql8czE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/copperred?i=ZxN-6zd5afQ:ie5-1Ql8czE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=ZxN-6zd5afQ:ie5-1Ql8czE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/copperred?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=ZxN-6zd5afQ:ie5-1Ql8czE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/copperred?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/copperred/~4/ZxN-6zd5afQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.copperred.net/2009/09/sending-mail-from-sinatra/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.copperred.net/2009/09/sending-mail-from-sinatra/</feedburner:origLink></item>
		<item>
		<title>Поздравления и подарки принимаются</title>
		<link>http://feedproxy.google.com/~r/copperred/~3/IaryYMfi5Bo/</link>
		<comments>http://blog.copperred.net/2009/07/welcome_your_gifts/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 09:54:49 +0000</pubDate>
		<dc:creator>vestel</dc:creator>
				<category><![CDATA[blog / blogging]]></category>
		<category><![CDATA[3 year]]></category>
		<category><![CDATA[anniversary]]></category>

		<guid isPermaLink="false">http://blog.copperred.net/?p=227</guid>
		<description><![CDATA[Почти не заметил, но вчера блогу ударило 3 года.
Что за это время произошло одними словами не описать, только вместе с цифрами:

103 опубликованных поста
517 опубликованных комментария
48 210 пойманных спам-коммента
Pagerank 3
106 читателей по feedburner-у
примерно 12 370 уникальных посещений по Google Analytics

В общем-то, думаю дальше будет лучше, поживем увидим.
Принимаются подарки, поздравления и пожертвования.
]]></description>
			<content:encoded><![CDATA[<p>Почти не заметил, но вчера блогу ударило 3 года.<br />
Что за это время произошло одними словами не описать, только вместе с цифрами:</p>
<ul>
<li>103 опубликованных поста</li>
<li>517 опубликованных комментария</li>
<li>48 210 пойманных спам-коммента</li>
<li>Pagerank 3</li>
<li>106 читателей по feedburner-у</li>
<li>примерно 12 370 уникальных посещений по Google Analytics</li>
</ul>
<p>В общем-то, думаю дальше будет лучше, поживем увидим.</p>
<p>Принимаются подарки, поздравления и пожертвования.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/copperred?a=IaryYMfi5Bo:jz63nnow_1Q:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/copperred?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=IaryYMfi5Bo:jz63nnow_1Q:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/copperred?i=IaryYMfi5Bo:jz63nnow_1Q:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=IaryYMfi5Bo:jz63nnow_1Q:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/copperred?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=IaryYMfi5Bo:jz63nnow_1Q:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/copperred?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/copperred/~4/IaryYMfi5Bo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.copperred.net/2009/07/welcome_your_gifts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.copperred.net/2009/07/welcome_your_gifts/</feedburner:origLink></item>
		<item>
		<title>Website за 20 минут на ruby</title>
		<link>http://feedproxy.google.com/~r/copperred/~3/c-Jo9KtL5H8/</link>
		<comments>http://blog.copperred.net/2009/07/20-minutes-ruby-website/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 18:11:38 +0000</pubDate>
		<dc:creator>vestel</dc:creator>
				<category><![CDATA[flow / life]]></category>
		<category><![CDATA[offline / externals]]></category>

		<guid isPermaLink="false">http://blog.copperred.net/?p=217</guid>
		<description><![CDATA[Этот пост скорее всего не пособие, а некая компиляция-рецепт на русском языке, как сделать простое и легкое web-приложение на руби. Итак, все началось со списка: 24 из 100, который я запостил в своем ЖЖ. Я опубликовал названия 24ех книг по мнению коллектива редакции «НГ-Ex libris», потрясли литературный мир и оказали влияние на всю культуру. Список [...]]]></description>
			<content:encoded><![CDATA[<p>Этот пост скорее всего не пособие, а некая компиляция-рецепт на русском языке, как сделать простое и легкое web-приложение на руби. Итак, все началось со списка: 24 из 100, который я запостил в своем ЖЖ. Я опубликовал названия 24ех книг по мнению коллектива редакции «НГ-Ex libris», потрясли литературный мир и оказали влияние на всю культуру. Список любопытный, и в комментах развернулось обсуждение, что для себя такое составить интересно, но уж копипастить из окна в блокнот совсем лениво.</p>
<p>Тогда-то я и решил сделать первый блин комом. Итак, задача - есть список, который мы парсером загрузили в базу данных (опускаю этот момент, ибо он выходит за рамки обсуждения). Сделаем из него нечто большое.</p>
<p>Для работы потребуется: ruby, gem, vim<br />
Начнем классически, в окне терминала набираем:</p>
<p><span id="more-217"></span></p>
<pre><code>
$ ruby -v
ruby 1.8.7
$ gem -v
1.3.3</code></pre>
<p>Далее все еще проще:</p>
<pre><code>$ gem install rake sinatra activerecord mongrel sqlite3-ruby</code></pre>
<p>Если нужно использовать другую базу данных - вперед, все в ваших руках. Я использовал sqlite потому как забыл root пароль к mysql, а будить админа его спрашивать решил не существенным. Пока процесс жужжит, в другом окне терминала можно начать описывать шаблон приложения.</p>
<p>$ vim empty.rb</p>
<p>Содержимое файла простое и предсказуемое:</p>
<pre><code class="ruby">
require 'rubygems'			# Наши гемы
require 'sinatra'			# Наш framework
require 'activerecord'		# Наша связь с базой данных ORM слой
require 'erb'				# Наш шаблонизатор

class Transact < ActiveRecord::Base		# Одна табличка, звать transacts
end

ActiveRecord::Base.establish_connection
	:adapter => "sqlite3", 				# Нет комментариев
	:database => "dbfile"				# имя файла - классическое

get "/" do
  "Hello world"
end
</code></pre>
<p>Вот и все, дальше **:wq** - для тех, кто не знает как выходить из vim-a. Отныне по комманде </p>
<pre><code>
$ ruby empty.rb</code></pre>
<p>У нас на 4567 порту запускается свой вебсервер, который запускает указанное приложение, которое при входе на главную страницу выдает пустой файл с текстом "Hello world"</p>
<p>Теперь будем читать на страничку из базы. Поскольку в базе у нас лишнего нет, то чтение пройдет элементарно. </p>
<pre><code class="ruby">
get "/" do
  @transact = Transact.find(:all)
  page = ""
  @transact.each do |one|
      page += "&lt;p&gt;"+one.id.to_s+". "+"&lt;strong&gt; #{one.name.to_s} &lt;/strong&gt;"+"&lt;/p&gt;"
  end
  page
end
</code></pre>
<p>Если все правильно, то мы должны были получить целый список книг.</p>
<p>Но нам же надо не так, нам надо с шаблонами, базой данных, <strike>блекджеком и шлю...</strike>преферансом и поэтессами.<br />
Поэтому создадим для начала наши шаблоны в папке views. Назовем их говоряще: index.erb и result.erb</p>
<p>Теперь доработаем наш основной код, чтобы он работал с шаблоном:</p>
<pre><code class="ruby">
get "/" do
  @transact = Transact.find(:all)
  erb :index
end
</code></pre>
<p>Общая идея остается та же, поэтому шаблон очень похож на вырванный кусок кода:</p>
<pre><code class="erb">
<% @transact.each do |one| %>
    &lt;li&gt;
      &lt;p&gt;&lt;%= one.id %&gt;&nbsp;&lt;input type="checkbox" name="&lt;%= one.id %&gt;" /&gt;&nbsp;&lt;strong>&lt;%= one.name %&gt;&lt;/strong&gt;&lt;/p&gt;
      &lt;p&gt;&lt;%= one.body %&gt;&lt;/p&gt;
    &lt;/li&gt;
&lt;% end %&gt;</code></pre>
<p>Украшательства добавить по вкусу, завернуть весь шаблон в &lt;form action="/result" method="post"&gt; и добавить снизу<br />
&lt;input type="submit" /&gt; для удобства.</p>
<p>Принимать результаты запроса тоже просто:</p>
<pre><code class="ruby">
post "/result" do
   @params = params             # наши параметры
   @transact = Array.new        # пустой массив для результатов
   @params.each do |one|        # берем параметры по одному
     @transact << Transact.find_by_id(one) # и добавляем в массив результатов
   end
   erb :result
end
</code></pre>
<p>В обработчике результатов тот же шаблон, что и на главной:</p>
<p>Список прочитанных мною книг из сотни романов, которые,<br />
    по мнению коллектива редакции «НГ-Ex libris», потрясли<br />
    литературный мир и оказали влияние на всю культуру.</p>
<p><%= @transact.size %> из 100</p>
<p>    <%= "
<ul>" unless @transact.empty? %><br />
    <% @transact.each do |one| %>
<li><%= one.id %>. <%= one.name %></li>
<p>    <% end %><%= "</ul>
<p>" unless @transact.empty? %></p>
<p>Вот такая загогулина получается.</p>
<p>В следущих сериях своего ламоблогбастера, я расскажу, как запустить все это под apache2 + mod_rails, про лучи позора и ненависти в сторону платежной системы Nochex и как отсылать из sinatra письма, если опять не разхондрюсь и не забью на блог на 144 дня.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/copperred?a=c-Jo9KtL5H8:ffeiJ5iGtLg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/copperred?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=c-Jo9KtL5H8:ffeiJ5iGtLg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/copperred?i=c-Jo9KtL5H8:ffeiJ5iGtLg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=c-Jo9KtL5H8:ffeiJ5iGtLg:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/copperred?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=c-Jo9KtL5H8:ffeiJ5iGtLg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/copperred?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/copperred/~4/c-Jo9KtL5H8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.copperred.net/2009/07/20-minutes-ruby-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.copperred.net/2009/07/20-minutes-ruby-website/</feedburner:origLink></item>
		<item>
		<title>Как считать jpg из папки на Ruby on Rails</title>
		<link>http://feedproxy.google.com/~r/copperred/~3/z7PbPZE68iw/</link>
		<comments>http://blog.copperred.net/2009/04/ls_jpg_with_ruby/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 13:56:34 +0000</pubDate>
		<dc:creator>vestel</dc:creator>
				<category><![CDATA[ruby / rails]]></category>
		<category><![CDATA[webdev / software engineering]]></category>
		<category><![CDATA[ls]]></category>

		<guid isPermaLink="false">http://blog.copperred.net/?p=205</guid>
		<description><![CDATA[Было дело, надо в одном проекте выводить список файлов лежащих в определенной директории, с возможностью их скачать, как говориться в натуральную величину. Это был мой первый кусочек кода написанный на ruby, а поскольку rails и их идеология для меня тогда еще были не вновинку, то реализовывал я это в самой view.
Надеюсь, этот код будет полезен [...]]]></description>
			<content:encoded><![CDATA[<p>Было дело, надо в одном проекте выводить список файлов лежащих в определенной директории, с возможностью их скачать, как говориться в натуральную величину. Это был мой первый кусочек кода написанный на ruby, а поскольку rails и их идеология для меня тогда еще были не вновинку, то реализовывал я это в самой view.</p>
<p>Надеюсь, этот код будет полезен тому человеку, который вот уже 3 месяца ходит на мой блог из поиска Google с запросом "ruby on rails jpg из папки считать".</p>
<p>Кусок который исполняется, но не отображается. Все наши файлы лежат в папке public/files. Красиво было бы его вынести в соответсвующий контроллер в нужный метод.</p>
<pre><code class="ruby">
<%
vendors = Hash.new { |hash, key| hash[key] = Array.new }
Dir.open('public/files').each do |file|

    # Заполняем хэш vendors файлами из директории,
    # перебирая по очереди каждый из них
    next if file[-4..-1] != '.pdf'
    next if file =~ /^\.\.?$/
    file.gsub!('.pdf', '')
    f = file.split(' ')

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

    model = f[-1] # Пробельчик чик-чик
    vendor = f[0..-2].join(' ')
    vendors [vendor] << model
end
%>
</code></pre>
<p>Кусок, который отвечает за вывод на экран. Тут уж и форматирование можно подставить, и оформить как следует.</p>
<pre><code class="ruby">
<% for v in vendors.keys.sort do %>
&lt;!-- Впечатываем производителя--&gt;
&lt;h2&gt;&lt;%= v &gt;&lt;/h2&gt;
    &lt;ul&gt;
    &lt;% for m in vendors[v].sort do %&gt;
    &lt;!-- Заполняем список названиями моделей--&gt;
    &lt;li>
&lt;a href="/files/&lt;%= v + ' ' + m + ' .jpg' %&gt;" target="_blank"&gt;&lt;%= m %&gt;&lt;/a&gt;
&lt;/li&gt;
    &lt;% end %&gt;
    &lt;/ul&gt;
&lt;% end %&gt; </code></pre>
<p>В ходе написания этого поста, обнаружил, что отвалился плагин Markdown Extra, который у меня раньше изолировал трансляцию всего чего и почему-то в рамках &lt;code&gt; пришлось переменять всякие < на &amp;lt; вручную. Коллеги-программеры, если у кого есть удобное решение для wordpress с оформлением кусков кода, поделитесь в комментариях.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/copperred?a=z7PbPZE68iw:IFiGMwkuDn0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/copperred?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=z7PbPZE68iw:IFiGMwkuDn0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/copperred?i=z7PbPZE68iw:IFiGMwkuDn0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=z7PbPZE68iw:IFiGMwkuDn0:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/copperred?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=z7PbPZE68iw:IFiGMwkuDn0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/copperred?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/copperred/~4/z7PbPZE68iw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.copperred.net/2009/04/ls_jpg_with_ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.copperred.net/2009/04/ls_jpg_with_ruby/</feedburner:origLink></item>
		<item>
		<title>Pragmatic Programmers становятся мобильными</title>
		<link>http://feedproxy.google.com/~r/copperred/~3/I-_po1c2nkY/</link>
		<comments>http://blog.copperred.net/2009/03/pragprog_goes_mobile/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 14:17:51 +0000</pubDate>
		<dc:creator>vestel</dc:creator>
				<category><![CDATA[book / reading]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[j2me]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[phone]]></category>
		<category><![CDATA[pragprog]]></category>

		<guid isPermaLink="false">http://blog.copperred.net/?p=203</guid>
		<description><![CDATA[Если вы увлекаетесь Ruby/Rails так же как и я, а может быть и еще сильнее, то вы однозначно в курсе о таком издательстве как Pragmatic Programmers, кто издает такие полезные и нужные книжки как Кирка, AWDwRoR и многие другие.
Меня, как регулярного приобретателя там, книг в электронном формате, несказанно порадовала последняя новость: теперь книги приобретенные в [...]]]></description>
			<content:encoded><![CDATA[<p>Если вы увлекаетесь Ruby/Rails так же как и я, а может быть и еще сильнее, то вы однозначно в курсе о таком издательстве как Pragmatic Programmers, кто издает такие полезные и нужные книжки как Кирка, AWDwRoR и многие другие.</p>
<p>Меня, как регулярного приобретателя там, книг в электронном формате, несказанно порадовала последняя новость: теперь книги приобретенные в цифровом виде, доступны не только в виде красивых цветных PDF файлов, но и в форматах .epub (для счасливых обладателей яблотелефонов/яподов) и .mobi (для тех, кто разорился на Sony Reader). </p>
<p>Хотя, я в обе группы не попадаю, у меня есть телефон Sony Ericsson W880i, на котором j2me приложение для чтения .mobi файлов взлетело и забибикало. Кто счасливчик обладетель той же модели: милости прошу <a href="http://www.mobipocket.com/dev/beta/j2me.asp">на сайт производителя</a>. Пока что приложение в статусе альфы и оно бесплатное.</p>
<p>Многих интересных часов прочтения вам!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/copperred?a=I-_po1c2nkY:Hp23j359_to:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/copperred?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=I-_po1c2nkY:Hp23j359_to:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/copperred?i=I-_po1c2nkY:Hp23j359_to:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=I-_po1c2nkY:Hp23j359_to:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/copperred?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=I-_po1c2nkY:Hp23j359_to:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/copperred?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/copperred/~4/I-_po1c2nkY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.copperred.net/2009/03/pragprog_goes_mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.copperred.net/2009/03/pragprog_goes_mobile/</feedburner:origLink></item>
		<item>
		<title>В интернете все общее!</title>
		<link>http://feedproxy.google.com/~r/copperred/~3/3fBgGD98kPY/</link>
		<comments>http://blog.copperred.net/2009/03/licensed_now/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 10:49:20 +0000</pubDate>
		<dc:creator>vestel</dc:creator>
				<category><![CDATA[blog / blogging]]></category>
		<category><![CDATA[copyright]]></category>
		<category><![CDATA[creative commons]]></category>
		<category><![CDATA[интернет]]></category>
		<category><![CDATA[license]]></category>
		<category><![CDATA[уроды]]></category>

		<guid isPermaLink="false">http://blog.copperred.net/?p=201</guid>
		<description><![CDATA[Сегодня довелось пообщаться с одним донором мозга, который мало того что стырил авторскую статью, так еще и удивил меня тем, что он лучше меня знаком с Анной Зданчук, ставит под вопрос первенство публикации, а еще и в довесок ко всему, я узнал, что "в интернете все общее. На то он и интернет".
Удивительные вещи, творяться, что [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня довелось пообщаться с одним донором мозга, который мало того что стырил авторскую статью, так еще и удивил меня тем, что он лучше меня знаком с Анной Зданчук, ставит под вопрос первенство публикации, а еще и в довесок ко всему, я узнал, что "в интернете все общее. На то он и интернет".<br />
Удивительные вещи, творяться, что называется. В общем, решил я повесить на свой блог такой красивый лейбл (ищите в футере), который как бы говорит: "Хочешь скопировать, скажи где взял. Хочешь заработать на этом, пиши обсудим. Хочешь изувечить, сцуко нетрожь". Вот.<br />
А с товарищем разговаривать я больше не буду. Пойду поем, и если злость не схлынет, напишу в адсенс письмо, что он хамло. Пусть они ему объяснят, что деньги заработанные в Интернете тоже стали общими. Ведь на то, он и интернет.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/copperred?a=3fBgGD98kPY:i0uDxqPV7Qw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/copperred?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=3fBgGD98kPY:i0uDxqPV7Qw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/copperred?i=3fBgGD98kPY:i0uDxqPV7Qw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=3fBgGD98kPY:i0uDxqPV7Qw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/copperred?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=3fBgGD98kPY:i0uDxqPV7Qw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/copperred?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/copperred/~4/3fBgGD98kPY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.copperred.net/2009/03/licensed_now/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blog.copperred.net/2009/03/licensed_now/</feedburner:origLink></item>
		<item>
		<title>Обновил мессенджер</title>
		<link>http://feedproxy.google.com/~r/copperred/~3/iUH9VhwHhQ4/</link>
		<comments>http://blog.copperred.net/2009/03/messenger_update/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 09:14:12 +0000</pubDate>
		<dc:creator>vestel</dc:creator>
				<category><![CDATA[flow / life]]></category>
		<category><![CDATA[contacts]]></category>
		<category><![CDATA[jabber]]></category>

		<guid isPermaLink="false">http://blog.copperred.net/?p=199</guid>
		<description><![CDATA[В связи с параноидальной настройкой безопастности корпоративной рабочей сети поднял свой Jabber сервер на экзотическом, но доступном порту. Чуть-чуть пришлось пошаманить над запуском openfire под CentOS, однако все теперь работает.
C учетом данной информации, прошу всех желающих общаться со мной и впредь добавить в свой контактный лист vestel[at]im.save.lv
]]></description>
			<content:encoded><![CDATA[<p>В связи с параноидальной настройкой безопастности корпоративной рабочей сети поднял свой Jabber сервер на экзотическом, но доступном порту. Чуть-чуть пришлось пошаманить над запуском openfire под CentOS, однако все теперь работает.<br />
C учетом данной информации, прошу всех желающих общаться со мной и впредь добавить в свой контактный лист vestel<abbr title="@">[at]</abbr>im.save.lv</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/copperred?a=iUH9VhwHhQ4:5ym5keE8_P4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/copperred?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=iUH9VhwHhQ4:5ym5keE8_P4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/copperred?i=iUH9VhwHhQ4:5ym5keE8_P4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=iUH9VhwHhQ4:5ym5keE8_P4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/copperred?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=iUH9VhwHhQ4:5ym5keE8_P4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/copperred?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/copperred/~4/iUH9VhwHhQ4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.copperred.net/2009/03/messenger_update/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.copperred.net/2009/03/messenger_update/</feedburner:origLink></item>
		<item>
		<title>О DropBox-e и больше ни о чем</title>
		<link>http://feedproxy.google.com/~r/copperred/~3/pT8f0p0pWGU/</link>
		<comments>http://blog.copperred.net/2009/03/getdropbox_to_rule_them_all/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 13:16:24 +0000</pubDate>
		<dc:creator>vestel</dc:creator>
				<category><![CDATA[flow / life]]></category>
		<category><![CDATA[code exchange]]></category>
		<category><![CDATA[file exchange]]></category>
		<category><![CDATA[file sharing]]></category>
		<category><![CDATA[getdropbox]]></category>
		<category><![CDATA[svc]]></category>

		<guid isPermaLink="false">http://blog.copperred.net/?p=195</guid>
		<description><![CDATA[Вам новый пост пост о торжестве симбиоза онлайна и оффлайна. Регулярно так случается, что нужно что-то согласовать с женой в плане оформления или внешнего вида. Пересылать туда обратно файлы - неудобно, да и компьютеров у меня несколько: ноут жены, рабочий ноут, личный ноут. Раньше пользовался внешним FTP решением, что оказалось тоже не сильно удобно: если [...]]]></description>
			<content:encoded><![CDATA[<p>Вам новый пост пост о торжестве симбиоза онлайна и оффлайна. Регулярно так случается, что нужно что-то согласовать с женой в плане оформления или внешнего вида. Пересылать туда обратно файлы - неудобно, да и компьютеров у меня несколько: ноут жены, рабочий ноут, личный ноут. Раньше пользовался внешним FTP решением, что оказалось тоже не сильно удобно: если вдруг надо туда-сюда потаскать файл мегабайт на 5, то каждый раз после сохранения это сделать можно и забыть, да и процесс не сильно быстрый.</p>
<p><span id="more-195"></span><br />
О Dropbox-e я услышал в Radio-T, правда уже не помню в каком выпуске. Суть приложения такова: установив его на свой компьютер и введя реквизиты аккаунта, одна из папок назначается как синхронизируемая с удаленным сервисом зона. Любой файл положенный в эту папочку в скором времени начинает автоматически закачиваться на сервер. Что же особенного в данной схеме?</p>
<p>Преимущество первое:<br />
Поддержка разных OS. Клиент выпускается, как для Windows, так и для MacOS, а так же для Linux, что приятно. </p>
<p>Преимущество второе:<br />
Если файл изменился, то закачивается не весь файл, а только diff - разница между хранящимся на сервере и новым файлом. То есть, если вы работаете с текстовым файлом непосредственно лежащим в боксе, то после нажатия Save, файл апдейтиться практически сразу.</p>
<p>Преимущество третье:<br />
Web интерфейс к хранилищу, делает доступным операции "отката" обновлений, а так же позволяет получить доступ к тем файлам, которые были закачаны в хранилище без установки приложения. Теперь, отмазка, "я удалил твою фотку нечайно" уже не прокатит, ведь даже удаленный файл можно восстановить.</p>
<p>Преимущество четвертое:<br />
Любой Folder можно расшарить с другим пользователем Dropbox-a. Следовательно, он получит доступ ко всем файлам внутри нее, и будет производить с ними любые изменения, оповещения о которых тут же будут поступать всем совладельцам этой папки. Удобный обмен контентом при отсутсвии собственного SVC-решения.</p>
<p>Преимущество пятое:<br />
Для каждого пользователя автоматически создаются две папки: Public и Photos. Любой файл положенный в Public получает свой уникальный (не особо читаемый, ну да ладно) адресс, по которому его можно скачать даже не зарегистрированному пользователю без установки дополнительного оборудования. Любой графический файл положенный в Photos автоматически публикуется в Сети, соответственно папки положенные сюда, станут отдельными альбомами.</p>
<p>В общем, все хорошо, но не без недостатка. Бесплатная версия позволяет держать в этой папке только 2Гб. За 99 долларов в год этот размер увеличиться до 50, но все-таки 99$ это не лишнее, в наше кризисное время. Поэтому, если вы подумали, что данный сервис позволит вам удобно и эффективно организовать работу между своими рабочими станциями и обмен файлами с друзьями-товарищами, то стоит воспользоваться <a href="https://www.getdropbox.com/referrals/NTMwODczNDk" rel="external nofollow noindex">моей рефферальной ссылкой</a>. При регистрации по ней, объем доступного пространства увеличивается на 250Mb и вы тоже включаетесь в замечательную акцию по привлечению рефераллов. Думаю, никому не нужно объяснять, что таким образом можно увеличить объем доступного пространства почти в 2.5 раза, а 5 гигабайт - это уже солидное хранилище. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/copperred?a=pT8f0p0pWGU:RoYCC09gnMs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/copperred?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=pT8f0p0pWGU:RoYCC09gnMs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/copperred?i=pT8f0p0pWGU:RoYCC09gnMs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=pT8f0p0pWGU:RoYCC09gnMs:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/copperred?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=pT8f0p0pWGU:RoYCC09gnMs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/copperred?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/copperred/~4/pT8f0p0pWGU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.copperred.net/2009/03/getdropbox_to_rule_them_all/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.copperred.net/2009/03/getdropbox_to_rule_them_all/</feedburner:origLink></item>
		<item>
		<title>Голосуй, а не то проиграешь</title>
		<link>http://feedproxy.google.com/~r/copperred/~3/_8hbUFCkVHY/</link>
		<comments>http://blog.copperred.net/2008/12/vote_or_lose/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 15:58:44 +0000</pubDate>
		<dc:creator>vestel</dc:creator>
				<category><![CDATA[flow / life]]></category>
		<category><![CDATA[links / internet]]></category>
		<category><![CDATA[festival]]></category>

		<guid isPermaLink="false">http://blog.copperred.net/?p=187</guid>
		<description><![CDATA[Итак, пришло время подбить итоги, а именно перечислить те сайты, которые писали в рамках "Новогоднего постописательства" и смогли удовлетворить мой вкус:

Спасибо друзьям "по твиттеру", а именно zemlanin и mekal за интересные опусы о Тумблр и FireShot соответственно
"Соратнику" по сериалам Андрея Харланову за сайт с ЗигаЗагами
Казахстанцу - не выговорю его имя - за рассказ о твиттере
Андрею [...]]]></description>
			<content:encoded><![CDATA[<p>Итак, пришло время подбить итоги, а именно перечислить те сайты, которые писали в рамках "Новогоднего постописательства" и смогли удовлетворить мой вкус:</p>
<ul>
<li>Спасибо друзьям "по твиттеру", а именно <a href="http://zem.tumblr.com/post/65725669/ngp-2008">zemlanin</a> и <a href="http://mekal88.com/2008/12/22/ognennyj-vystrel/">mekal</a> за интересные опусы о Тумблр и FireShot соответственно</li>
<li>"Соратнику" по сериалам <a href="http://andreikharlanov.com/2008/12/23/zigazagatv-cajt-dlya-lyubitelej-serialov/">Андрея Харланову</a> за сайт с ЗигаЗагами</li>
<li>Казахстанцу - не выговорю его имя - за <a href="http://itkaz.ru/twittercom-moj-vybor-2008-goda/">рассказ о твиттере</a></li>
<li>Андрею Гревцову - за <a href="http://andrey.grevtsov.ru/2008/12/24/kakimi-sajtami-prodolzhu-polzovatsya-v-2009-godu/">стихи</a></li>
<li>"Журналу" Жизненное простраство за <a href="http://life-space.ru/archives/73">полезный ресурс</a> о лайф-хаках.</li>
<li>Darchik-y замолвившему слово за мой <a href="http://darchik.com/2008/12/24/1628/kachestvennoe-video-ot-vimeo-hd/">любимый видеохостинг</a></li>
</ul>
<p>Наверное, это не все. Мне понравилось очень много статей, но в общем списке участников я сразу вспомнил и увидел именно этих ребят. Спасибо тем, кто голосовал за меня. Удачи, и с нетерпением жду завтра, когда станут известны победители.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/copperred?a=_8hbUFCkVHY:YfWq7J9jmck:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/copperred?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=_8hbUFCkVHY:YfWq7J9jmck:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/copperred?i=_8hbUFCkVHY:YfWq7J9jmck:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=_8hbUFCkVHY:YfWq7J9jmck:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/copperred?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=_8hbUFCkVHY:YfWq7J9jmck:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/copperred?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/copperred/~4/_8hbUFCkVHY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.copperred.net/2008/12/vote_or_lose/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.copperred.net/2008/12/vote_or_lose/</feedburner:origLink></item>
		<item>
		<title>Эволюция продолжается</title>
		<link>http://feedproxy.google.com/~r/copperred/~3/l-CKR6aWF7E/</link>
		<comments>http://blog.copperred.net/2008/12/evolution_goes_on/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 12:59:22 +0000</pubDate>
		<dc:creator>vestel</dc:creator>
				<category><![CDATA[flow / life]]></category>
		<category><![CDATA[festival]]></category>
		<category><![CDATA[links / internet]]></category>
		<category><![CDATA[tv-series]]></category>

		<guid isPermaLink="false">http://blog.copperred.net/?p=180</guid>
		<description><![CDATA[Ух, давненько я ничего не писал. Приложение в [linkedin](http://linkedin.com), показывающее статистику моего постинга, говорит, что с последнего моего поста прошло больше 50 дней. На самом деле, для такого молчания были объективные (на мой взгляд) причины. 

Во-первых, последние два месяца мы в жестоком цейтноте готовили и запускали [проект](http://veikals.lv/). Все это время компания в которой я работаю [...]]]></description>
			<content:encoded><![CDATA[<p>Ух, давненько я ничего не писал. Приложение в [linkedin](http://linkedin.com), показывающее статистику моего постинга, говорит, что с последнего моего поста прошло больше 50 дней. На самом деле, для такого молчания были объективные (на мой взгляд) причины. </p>
<p><span id="more-180"></span></p>
<p>Во-первых, последние два месяца мы в жестоком цейтноте готовили и запускали [проект](http://veikals.lv/). Все это время компания в которой я работаю трудилась над выпуском новой версии своего веб-сайта. Почему-же так много работы? Дело в том, что решив пойти в противовес другим крупным конторам, которые экономили средства под конец года, мы решили пойти вперед и приготовили серьезное разширение бизнеса, вместо небольшого сервиса по заправке и продаже картриджей запустив настоящий Интернет-магазин, с полноценным складом, спец. предложением, системой накопительных и присваиваемых скидок, внутренней почтой и многими другими "наворотами".</p>
<p>Во-вторых, остаток времени съедала учеба. Студенческая жизнь, конечно, веселая, но она требует достаточно больших вложений времени и сил, чтобы удержаться. </p>
<p>В-третьих, я стал "кузнецом" своего счастья: мы с женой перебрались на отдельную квартиру и я полностью прочувствовал, что значит стать хозяином. Я понял, каково это - анализировать нужен ли гвоздь в этой стене, планировать расходы, рассматривать ужин и бытовые детали не как самособой разумеющееся, а как труд, которым кто-то должен заниматься.</p>
<p>Почему же я решил вспомнить старое и в выходной праздничный день засесть за клавиатуру и написать хоть что-то?</p>
<p>Все дело в [конкурсе Интернетных штучек](http://internetno.net/2008/12/19/4323/). В этом году, как и в прошлом, они просят всех рассказать о самом полезном ресурсе. Я честно пытался проанализировать, что же мне было полезно и интересно. Если 12 месяцев назад я практически не думал и радостно писал о "[Радио-Т](http://radio-t.com)", то теперь не хочется повторяться. Да и "Радио-Т" уже "не то, %username%": больше ведущих, больше интерактива, меньше гиковости и элитности. Даже послешоу теперь доступны "бесплатно" - без отгадывания заумных загадок, как было раньше.</p>
<p>Можно конечно было бы рассказать о [del.icio.us](http://del.icio.us), как эволюционный способ поиска полезной информации, но ведь ему уже 100 лет в обед, все о нем и без меня знают. Можно вспомнить twitter, как эволюцию полноценного блогинга, но о нем я уже тоже всех утомил рассказами. Поэтому лучше я расскажу об эволюции вообще.</p>
<p>Легко заметить, что с каждым годом меняется ритм жизни. Многочасовые ралли уступают в популярности короткому "drag"-у на четверть мили; полноценные блогпосты сокращаются до коротких инструкций со скриншотами, а иногда и просто скринкастов или заметок в twitter; даже в разработке программного обеспечения наметился сдвиг - монструозные корпорации вроде Microsoft и Google, все больше склоняются к отказу от водопадной и инкрементальной модели переходя на Scrum или вводя другие принципы Agile организации работы. </p>
<p><img alt="" src="http://2.bp.blogspot.com/_egME-wKAc1g/SNmaVhDMEpI/AAAAAAAAAB8/cJXtwwSljcM/s320/John.jpg" title="Doctor Bishop" class="alignright" width="240" height="320" /></p>
<p>Коснулось данное изменение ритма и меня. За последний год, я практически отказался от полноценного кинематографа заменив его увлекательными и достойными TV Series. И не малую роль в этом сыграл ресурс [Novafilm][]. Это не просто Another Torrent Tracker, а целое сообщество устремленных людей, которые живут в новом ритме: посеченном на 45-минутные фрагменты еженедельной встречи с полюбившимися героями. Именно здесь я познакомился с очаровательным детективом Крузом, грубым и справедливым Грегори Хаузом, замкнутым и очень человечным Декстером Морганом, неповторимым доктором Бишопом и многими другими веселыми и увлекательными персонажами. И должен сказать, что после того, как я начал смотреть Prison Break, а за ним и другие сериалы, я просто начал жить в новом ритме. Я понял, что расставание с героем по окончанию фильма прошло - я знаю, что рано или поздно меня ждет продолжение: новая история, которая будет ничуть не хуже закончившейся. Так что, чтобы там не говорили [Novafilm][] для меня ресурс 2008 года.</p>
<p>[Novafilm]:http://novafilm.tv/</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/copperred?a=l-CKR6aWF7E:oiBh_5t0cEA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/copperred?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=l-CKR6aWF7E:oiBh_5t0cEA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/copperred?i=l-CKR6aWF7E:oiBh_5t0cEA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=l-CKR6aWF7E:oiBh_5t0cEA:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/copperred?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=l-CKR6aWF7E:oiBh_5t0cEA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/copperred?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/copperred/~4/l-CKR6aWF7E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.copperred.net/2008/12/evolution_goes_on/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.copperred.net/2008/12/evolution_goes_on/</feedburner:origLink></item>
		<item>
		<title>Немного о Руби</title>
		<link>http://feedproxy.google.com/~r/copperred/~3/T_6YPiAX7nc/</link>
		<comments>http://blog.copperred.net/2008/10/little_ruby_likbez/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 08:40:14 +0000</pubDate>
		<dc:creator>vestel</dc:creator>
				<category><![CDATA[ruby / rails]]></category>

		<guid isPermaLink="false">http://blog.copperred.net/?p=174</guid>
		<description><![CDATA[Как-то в последнее время, немножко задумался о качестве кода, который я пишу, и поэтому быстро конспектирую ряд фишек которые можно и нужно использовать в своем коде:

Комментарии

# Это большой и длинный комментарий
# который рассказывает ни о чем
# да и читать его вряд ли кто станет
# хотя писать его было нужно и муторно

Знакомо? А ведь можно было [...]]]></description>
			<content:encoded><![CDATA[<p>Как-то в последнее время, немножко задумался о качестве кода, который я пишу, и поэтому быстро конспектирую ряд фишек которые можно и нужно использовать в своем коде:</p>
<p><span id="more-174"></span></p>
<h2>Комментарии</h2>
<pre><code class="ruby">
# Это большой и длинный комментарий
# который рассказывает ни о чем
# да и читать его вряд ли кто станет
# хотя писать его было нужно и муторно
</code></pre>
<p>Знакомо? А ведь можно было сделать это красиво:</p>
<pre><code class="ruby">
=begin
 Элегантный комментарий, который занимает несколько строк
 и который не нужно мучаться отслеживая, где вдруг потерялся
 этот долбанный символ решетки "#"
=end
</code></pre>
<p>## Форматированный вывод</p>
<pre><code class="ruby">
puts "INSERT INTO pairs VALUES ( " + i.to_s + ", '"+item[i]["history"].to_s+"' );"
</code></pre>
<p>Плохо, Саша. Надо делать так: </p>
<pre><code class="ruby">
puts "INSERT INTO pairs VALUES ( %i, '%s' );" % [ i, item[i]["history"] ]
</code></pre>
<p>## Меньше строчек в присвоении</p>
<pre><code class="ruby">
a = 1
b = 2
x = 11.2
</code></pre>
<p>Забудь и делай проще </p>
<pre><code class="ruby">
a, b, c = 1, 2, 11.2
</code></pre>
<p>кстати, отсюда менять местами элементы в массиве очень просто</p>
<pre><code class="ruby">
My = [1,2,3,4] # => [1,2,3,4]
My[1], My[3] = My[3], My[1] # => [1,4,3,2]
</code></pre>
<p>## Скажи нет return false</p>
<p>Если в функции осуществляется логическая проверка условия и функция должна вернуть true или false, не нужно городить return и прочего:</p>
<pre><code class="ruby">
def even?(x)
  x % 2 != 1
end
</code></pre>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/copperred?a=T_6YPiAX7nc:rnPMcz2z6dE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/copperred?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=T_6YPiAX7nc:rnPMcz2z6dE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/copperred?i=T_6YPiAX7nc:rnPMcz2z6dE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=T_6YPiAX7nc:rnPMcz2z6dE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/copperred?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=T_6YPiAX7nc:rnPMcz2z6dE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/copperred?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/copperred/~4/T_6YPiAX7nc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.copperred.net/2008/10/little_ruby_likbez/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://blog.copperred.net/2008/10/little_ruby_likbez/</feedburner:origLink></item>
		<item>
		<title>Как считать победителей?</title>
		<link>http://feedproxy.google.com/~r/copperred/~3/eamCOjBp1K4/</link>
		<comments>http://blog.copperred.net/2008/10/how_to_count_who_is_a_winner/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 13:36:48 +0000</pubDate>
		<dc:creator>vestel</dc:creator>
				<category><![CDATA[ruby / rails]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[festival]]></category>
		<category><![CDATA[votes]]></category>

		<guid isPermaLink="false">http://blog.copperred.net/?p=166</guid>
		<description><![CDATA[Чтобы не возникало вопросов, о том как происходил подсчет результатов конкурса, я привожу к сведению читателей листинг программы, которая определяла победителей. Вполне возможно, когда-нибудь к данному коду будет прикручен удобный интерфейс и этим делом можно будет пользоваться "из коробки", но пока можно посмотреть итак. 
Для удобства восприятия, разобью код на несколько частей, и прокомментирую каждую [...]]]></description>
			<content:encoded><![CDATA[<p>Чтобы не возникало вопросов, о том как происходил подсчет <a href="http://blog.copperred.net/2008/10/gratz_to_the_winners/">результатов конкурса</a>, я привожу к сведению читателей листинг программы, которая определяла победителей. Вполне возможно, когда-нибудь к данному коду будет прикручен удобный интерфейс и этим делом можно будет пользоваться "из коробки", но пока можно посмотреть итак. </p>
<p>Для удобства восприятия, разобью код на несколько частей, и прокомментирую каждую из них. Если вы с ruby не на дружеской ноге, то все равно можно смотреть "под кат", поскольку думаю что пример будет понятен и без особых познаний синтаксиса.</p>
<p><span id="more-166"></span></p>
<pre><code class="ruby">
# массив голосовавших
participants = ['pashira', 'martishka', 'life_is_mistery', 'avinamor', 'megvaer']
# начальные данные - все в равных условиях
weights = { 'pashira' => 1.0, 'martishka' => 1.0, 'life_is_mistery' =>
1.0, 'avinamor' => 1.0, 'megvaer' =>1.0}

votes = {}
votes['pashira']         = ['life_is_mistery', 'megvaer']
votes['martishka']       = ['life_is_mistery']
votes['life_is_mistery'] = ['avinamor']
votes['avinamor']        = ['megvaer']
votes['megvaer']         = ['avinamor']
</code></pre>
<p>В этом блоке задаются начальные данные, список участников и кто за кого голосовал. </p>
<pre><code class="ruby">
def fact(n)
        if n>0
                n*fact(n-1)
        else
                1
        end
end

quantity = participants.size
number = fact(quantity)
</code></pre>
<p>Небольшая функция определяющая число перестановок (number) для определенного количества участников (quantity). Число перестановок, в моем случае, факториал от количества элементов. </p>
<pre><code class="ruby">
number.times do |iterator|
# Интересный блок - перетасовка участников в списке
swap = iterator%quantity
participants[participants.size] = participants[ swap ]
participants = participants[0..swap-1].to_a + participants[swap+1..quantity].to_a
# После перетасовки в списке сохраняется новый порядок участников
</code></pre>
<p>Казалось бы, что массив нам не сильно нужен, но дело в том, что ассоциативные массивы, в которых хранится вес голоса, каждого участника не сохраняют порядок элементов, а поскольку перебор всегда ведется в одном порядке, то и логично, что победил бы тот, кто находится на последнем месте в списке участников. </p>
<pre><code class="ruby">
        participants.each do |who|
                whom = votes[who]
                weight_delta = weights[who]/(whom.size+1)
# Для каждого из участников определяется вес его голоса
                whom.each do |person|
                        weights[person] += weight_delta
# И увеличивается вес голосов тех, за кого он голосовал
                end
        end

puts weights.sort_by { |key, value| value }.reverse
# Выводится список результатов упорядоченный по весу
</code></pre>
<p>Также файлик доступен целиком в <a href="http://pastie.org/291950" rel="nofollow noindex">альтернативной расцветке</a></p>
<pre><code class="ruby">
puts "Надеюсь вам понравилось! Оставляйте свои комментарии ниже"
</code></pre>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/copperred?a=eamCOjBp1K4:rkhtHM6iYpE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/copperred?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=eamCOjBp1K4:rkhtHM6iYpE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/copperred?i=eamCOjBp1K4:rkhtHM6iYpE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=eamCOjBp1K4:rkhtHM6iYpE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/copperred?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=eamCOjBp1K4:rkhtHM6iYpE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/copperred?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/copperred/~4/eamCOjBp1K4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.copperred.net/2008/10/how_to_count_who_is_a_winner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.copperred.net/2008/10/how_to_count_who_is_a_winner/</feedburner:origLink></item>
	</channel>
</rss>

