<?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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Дневник борца за высшее образование</title>
	
	<link>http://blog.copperred.net</link>
	<description>стараемся "по циркулю" и "западлицо"</description>
	<pubDate>Mon, 01 Jun 2009 18:49:20 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<image><url>http://www.feedburner.com/fb/images/pub/fb_pwrd.gif</url></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/copperred" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><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]]></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; пришлось переменять всякие &lt; на &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>
		<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]]></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>
		<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]]></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>Сегодня довелось пообщаться с одним донором мозга, который мало того что стырил авторскую статью, так еще и удивил меня тем, что он лучше меня знаком с Анной Зданчук, ставит под вопрос первенство публикации, а еще и в довесок ко всему, я узнал, что "в интернете все общее. На то он и интернет".
Удивительные вещи, творяться, что называется. В общем, решил я повесить на свой блог такой красивый лейбл (ищите в футере), который как бы говорит: "Хочешь скопировать, скажи где взял. Хочешь заработать на этом, пиши обсудим. Хочешь изувечить, сцуко нетрожь". Вот. 
А с товарищем разговаривать я больше не буду. Пойду поем, и если злость не схлынет, напишу в адсенс письмо, что он хамло. Пусть они ему объяснят, что деньги заработанные в Интернете тоже стали общими. Ведь на то, он и интернет.</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>
		<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]]></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, однако все теперь работает. 
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>
		<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]]></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>
О Dropbox-e я услышал в Radio-T, правда уже не помню в каком выпуске. Суть приложения такова: установив его на свой компьютер и введя реквизиты аккаунта, одна из папок назначается как синхронизируемая с удаленным сервисом зона. Любой файл положенный в эту папочку в скором времени начинает автоматически закачиваться на сервер. Что же особенного в данной схеме?</p>

<p>Преимущество первое:
Поддержка разных OS. Клиент выпускается, как для Windows, так и для MacOS, а так же для Linux, что приятно.</p>

<p>Преимущество второе:
Если файл изменился, то закачивается не весь файл, а только diff - разница между хранящимся на сервере и новым файлом. То есть, если вы работаете с текстовым файлом непосредственно лежащим в боксе, то после нажатия Save, файл апдейтиться практически сразу.</p>

<p>Преимущество третье:
Web интерфейс к хранилищу, делает доступным операции "отката" обновлений, а так же позволяет получить доступ к тем файлам, которые были закачаны в хранилище без установки приложения. Теперь, отмазка, "я удалил твою фотку нечайно" уже не прокатит, ведь даже удаленный файл можно восстановить.</p>

<p>Преимущество четвертое:
Любой Folder можно расшарить с другим пользователем Dropbox-a. Следовательно, он получит доступ ко всем файлам внутри нее, и будет производить с ними любые изменения, оповещения о которых тут же будут поступать всем совладельцам этой папки. Удобный обмен контентом при отсутсвии собственного SVC-решения.</p>

<p>Преимущество пятое:
Для каждого пользователя автоматически создаются две папки: 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>
		<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]]></category>

		<category><![CDATA[links]]></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>
		<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]]></category>

		<category><![CDATA[festival]]></category>

		<category><![CDATA[links]]></category>

		<category><![CDATA[tv-series]]></category>

		<guid isPermaLink="false">http://blog.copperred.net/?p=180</guid>
		<description><![CDATA[Ух, давненько я ничего не писал. Приложение в linkedin, показывающее статистику моего постинга, говорит, что с последнего моего поста прошло больше 50 дней. На самом деле, для такого молчания были объективные (на мой взгляд) причины.



Во-первых, последние два месяца мы в жестоком цейтноте готовили и запускали проект. Все это время компания в которой я работаю трудилась [...]]]></description>
			<content:encoded><![CDATA[<p>Ух, давненько я ничего не писал. Приложение в <a href="http://linkedin.com">linkedin</a>, показывающее статистику моего постинга, говорит, что с последнего моего поста прошло больше 50 дней. На самом деле, для такого молчания были объективные (на мой взгляд) причины.</p>

<p><span id="more-180"></span></p>

<p>Во-первых, последние два месяца мы в жестоком цейтноте готовили и запускали <a href="http://veikals.lv/">проект</a>. Все это время компания в которой я работаю трудилась над выпуском новой версии своего веб-сайта. Почему-же так много работы? Дело в том, что решив пойти в противовес другим крупным конторам, которые экономили средства под конец года, мы решили пойти вперед и приготовили серьезное разширение бизнеса, вместо небольшого сервиса по заправке и продаже картриджей запустив настоящий Интернет-магазин, с полноценным складом, спец. предложением, системой накопительных и присваиваемых скидок, внутренней почтой и многими другими "наворотами".</p>

<p>Во-вторых, остаток времени съедала учеба. Студенческая жизнь, конечно, веселая, но она требует достаточно больших вложений времени и сил, чтобы удержаться.</p>

<p>В-третьих, я стал "кузнецом" своего счастья: мы с женой перебрались на отдельную квартиру и я полностью прочувствовал, что значит стать хозяином. Я понял, каково это - анализировать нужен ли гвоздь в этой стене, планировать расходы, рассматривать ужин и бытовые детали не как самособой разумеющееся, а как труд, которым кто-то должен заниматься.</p>

<p>Почему же я решил вспомнить старое и в выходной праздничный день засесть за клавиатуру и написать хоть что-то?</p>

<p>Все дело в <a href="http://internetno.net/2008/12/19/4323/">конкурсе Интернетных штучек</a>. В этом году, как и в прошлом, они просят всех рассказать о самом полезном ресурсе. Я честно пытался проанализировать, что же мне было полезно и интересно. Если 12 месяцев назад я практически не думал и радостно писал о "<a href="http://radio-t.com">Радио-Т</a>", то теперь не хочется повторяться. Да и "Радио-Т" уже "не то, %username%": больше ведущих, больше интерактива, меньше гиковости и элитности. Даже послешоу теперь доступны "бесплатно" - без отгадывания заумных загадок, как было раньше.</p>

<p>Можно конечно было бы рассказать о <a href="http://del.icio.us">del.icio.us</a>, как эволюционный способ поиска полезной информации, но ведь ему уже 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. И не малую роль в этом сыграл ресурс <a href="http://novafilm.tv/">Novafilm</a>. Это не просто Another Torrent Tracker, а целое сообщество устремленных людей, которые живут в новом ритме: посеченном на 45-минутные фрагменты еженедельной встречи с полюбившимися героями. Именно здесь я познакомился с очаровательным детективом Крузом, грубым и справедливым Грегори Хаузом, замкнутым и очень человечным Декстером Морганом, неповторимым доктором Бишопом и многими другими веселыми и увлекательными персонажами. И должен сказать, что после того, как я начал смотреть Prison Break, а за ним и другие сериалы, я просто начал жить в новом ритме. Я понял, что расставание с героем по окончанию фильма прошло - я знаю, что рано или поздно меня ждет продолжение: новая история, которая будет ничуть не хуже закончившейся. Так что, чтобы там не говорили <a href="http://novafilm.tv/">Novafilm</a> для меня ресурс 2008 года.</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>
		<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>

<h2>Форматированный вывод</h2>

<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>

<h2>Меньше строчек в присвоении</h2>

<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>

<h2>Скажи нет return false</h2>

<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>
		<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>
		<feedburner:origLink>http://blog.copperred.net/2008/10/how_to_count_who_is_a_winner/</feedburner:origLink></item>
		<item>
		<title>Поздравляем победителей</title>
		<link>http://feedproxy.google.com/~r/copperred/~3/d7jgWgpuBp8/</link>
		<comments>http://blog.copperred.net/2008/10/gratz_to_the_winners/#comments</comments>
		<pubDate>Sat, 11 Oct 2008 09:00:41 +0000</pubDate>
		<dc:creator>vestel</dc:creator>
		
		<category><![CDATA[flow]]></category>

		<category><![CDATA[event]]></category>

		<category><![CDATA[festival]]></category>

		<category><![CDATA[theatre]]></category>

		<guid isPermaLink="false">http://blog.copperred.net/?p=162</guid>
		<description><![CDATA[Итак, все кто хотел уже проголосовали, а поэтому можно подвести результаты нашего замечательного конкурса. Всего участвовало 5 человек и по результатам голосования, места расположились следующим образом.

Главный приз - билет на спекталь Дикарь - получает Екатерина и ее стихотворение про IT дикаря.  На втором месте Avinamor, которому достается 25 WMZ из моих личных накоплений. Надо [...]]]></description>
			<content:encoded><![CDATA[<p>Итак, все кто хотел уже проголосовали, а поэтому можно подвести результаты нашего <a href="http://blog.copperred.net/2008/09/return_of_the_blog/">замечательного конкурса</a>. Всего участвовало 5 человек и по результатам голосования, места расположились следующим образом.</p>

<p>Главный приз - билет на спекталь <a href="http://dikarj.lv">Дикарь</a> - получает Екатерина и <a href="http://megvaer.livejournal.com/715.html">ее стихотворение</a> про IT дикаря.  На втором месте <a href="http://mega-zhazha.livejournal.com/760.html">Avinamor</a>, которому достается 25 WMZ из моих личных накоплений. Надо отметить, что это единственный мужчина принявший участие в этом мероприятии.</p>

<p><span id="more-162"></span></p>

<p>Большое спасибо остальным участницам: <a href="http://life-is-mystery.livejournal.com/23316.html">Девушка-загадка</a>, <a href="http://pashira.ru/2008/09/stixotvorenie-chtoby-vyigrat-bilet-v-teatr/">Pashira</a> и 
<a href="http://community.livejournal.com/riga/369702.html?thread=3392294#t3392294">Мартышка</a>. Рад был тому, что вы не оставили мое начинание без внимания и смогли поддержать конкурс. Огромное вам спасибо!</p>

<p>Ждите дополнительных известий, ведь думаю, что этот конкурс не будет последним. Особо любопытным сообщу, что скоро появиться специальный пост о закулисье, а именно исходный код программы, которая подсчитала кто-же победил в этом конкурсе. Следить за обновлениями блога гораздо удобнее при помощи <a href="http://feeds.feedburner.com/copperred">RSS ленты</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/copperred?a=d7jgWgpuBp8:wRw7MPZ_U1E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/copperred?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=d7jgWgpuBp8:wRw7MPZ_U1E:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/copperred?i=d7jgWgpuBp8:wRw7MPZ_U1E:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=d7jgWgpuBp8:wRw7MPZ_U1E:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/copperred?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/copperred?a=d7jgWgpuBp8:wRw7MPZ_U1E: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/d7jgWgpuBp8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.copperred.net/2008/10/gratz_to_the_winners/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.copperred.net/2008/10/gratz_to_the_winners/</feedburner:origLink></item>
	</channel>
</rss>
