<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>vLog.index :format =&gt; :atom, :tag =&gt; 'ruby'</title>
  <updated>2009-09-09T19:27:38+00:00</updated>
  <link href="http://bitcheese.net/vlog/index"/>
  <entry>
    <title>Art thou</title>
    <id>http://bitcheese.net/vlog/post/1073</id>
    <updated>2009-09-09T19:27:38+00:00</updated>
    <link href="http://bitcheese.net/vlog/post/1073"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/1073"&gt;Art thou&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Sep 9th, 2009 (Wednesday) 19:27 &lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;Оказывается, &lt;del&gt;RSS&lt;/del&gt; Atom был поломан по причине установки на сервер atom вместо православного ratom. Фиксед.&lt;/p&gt;
&lt;p&gt;Событие это можно отпраздновать просмотром моих &lt;a href="/wiki/art_thou"&gt;зарисовок гелевой ручкой&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://bitcheese.net/vlog/tag/code"&gt;code&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/бардак"&gt;бардак&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/ruby"&gt;ruby&lt;/a&gt;
	|
	&lt;a href="http://bitcheese.net/vlog/post/1073#commform"&gt;Комментировать »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Переезд</title>
    <id>http://bitcheese.net/vlog/post/1068</id>
    <updated>2009-08-26T21:08:23+00:00</updated>
    <link href="http://bitcheese.net/vlog/post/1068"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/1068"&gt;Переезд&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Aug 26th, 2009 (Wednesday) 21:08 &lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;Итак, когда меня окончательно достал &lt;a href="http://slicehost.com"&gt;slicehost&lt;/a&gt; своим x86-64 (а это случилось, когда я оставил последнюю надежду запустить хоть что-то, скомпилированное GHC), я переехал на &lt;a href="http://linode.com"&gt;linode&lt;/a&gt;. Вот мой реферрал, а то я, когда регился, так ни одного и не нашел: &lt;a href="http://www.linode.com/?r=d477182ca79676dc1fe4a0e35ff18d63b38b5f9d"&gt;d477182ca79676dc1fe4a0e35ff18d63b38b5f9d&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Пока смотрится весьма симпатично. Вместо AJAX консоли, если все стало очень плохо, можно залогиниться на специальном сервере и оттуда попасть в свой tty0. Архиполезная фича.&lt;/p&gt;
&lt;p&gt;Памяти тут дают больше (360 MB RAM &amp;amp; 16 GB диска против 256/10 на слайсе), архитектура более разумная. Панель управления оформлена в Ъ-зеленом стиле.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dump.bitcheese.net/images/ficenor/linode-manager.png"&gt;&lt;img src="http://dump.bitcheese.net/images/thumbs/ficenor/linode-manager.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Процессы Merb теперь едят в два раза меньше памяти, и может, я даже смогу поставить ejabberd вместо этого поделия jabberd на кроссплатформенном ассемблере. Которое, кстати, не работает по необъяснимым причинам. Жаль, на Хаскелле XMPP-сервера не написали.&lt;/p&gt;
&lt;p&gt;В процессе переезда мне помогали:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Бессмертный &lt;a href="http://www.uipoet.com/read/4"&gt;мануал&lt;/a&gt; UiPoet по установке REE и мерба на Ubuntu&lt;/li&gt;
	&lt;li&gt;suPHP, который я заюзал вместо suExec + FastCGI, которые спавнили мне более 9000 процессов php5-cgi.&lt;/li&gt;
	&lt;li&gt;Бессмертный &lt;a href="http://dump.bitcheese.net/files/vizotod/GGGG.png"&gt;скриншот&lt;/a&gt;, которым я отлаживал работу &lt;a href="http://dump.bitcheese.net"&gt;http://dump.bitcheese.net&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Google, которого мне на канале linode предлагали указать как реферрала.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://bitcheese.net/vlog/tag/уебдизайн"&gt;уебдизайн&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/бардак"&gt;бардак&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/красота"&gt;красота&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/ruby"&gt;ruby&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/haskell"&gt;haskell&lt;/a&gt;
	|
	&lt;a href="http://bitcheese.net/vlog/post/1068#commform"&gt;Комментировать[2] »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Gemfuck</title>
    <id>http://bitcheese.net/vlog/post/1067</id>
    <updated>2009-08-26T17:34:45+00:00</updated>
    <link href="http://bitcheese.net/vlog/post/1067"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/1067"&gt;Gemfuck&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Aug 26th, 2009 (Wednesday) 17:34 &lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;pre&gt;&lt;code&gt;li108-153:~# gem install merb
**************************************************
  Thank you for installing rspec-1.2.8
  Please be sure to read History.rdoc and Upgrade.rdoc
  for useful information about this release.
**************************************************
ERROR:  Error installing merb:
	data_objects requires addressable (~&amp;gt; 2.0.0, runtime)
li108-153:~# rm .gem/specs/gems.rubyforge.org%80/
latest_specs.4.8  quick/            
li108-153:~# rm .gem/specs/gems.rubyforge.org%80/
latest_specs.4.8  quick/            
li108-153:~# gem install merb
ERROR:  Error installing merb:
	data_objects requires addressable (~&amp;gt; 2.0.0, runtime)
li108-153:~# aptitude
li108-153:~# gem install addressable
\Successfully installed addressable-2.1.0
1 gem installed
Installing ri documentation for addressable-2.1.0...
Installing RDoc documentation for addressable-2.1.0...
li108-153:~# gem install merb
ERROR:  Error installing merb:
	data_objects requires addressable (~&amp;gt; 2.0.0, runtime)
li108-153:~# gem install addressable -v 2.0.0
Successfully installed addressable-2.0.0
1 gem installed
Installing ri documentation for addressable-2.0.0...
Installing RDoc documentation for addressable-2.0.0...
li108-153:~# gem install merb
ERROR:  Error installing merb:
	dm-core requires addressable (~&amp;gt; 2.0.2, runtime)
li108-153:~# gem install addressable -v 2.0.2
Successfully installed addressable-2.0.2
1 gem installed
Installing ri documentation for addressable-2.0.2...
Installing RDoc documentation for addressable-2.0.2...
li108-153:~# gem install merb
ERROR:  Error installing merb:
	merb-core requires RubyGems version &amp;gt;= 1.3.0
li108-153:~# 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://bitcheese.net/vlog/tag/бардак"&gt;бардак&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/ruby"&gt;ruby&lt;/a&gt;
	|
	&lt;a href="http://bitcheese.net/vlog/post/1067#commform"&gt;Комментировать »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Ruby-like haskell</title>
    <id>http://bitcheese.net/vlog/post/1026</id>
    <updated>2009-04-14T16:20:14+00:00</updated>
    <link href="http://bitcheese.net/vlog/post/1026"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/1026"&gt;Ruby-like haskell&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Apr 14th, 2009 (Tuesday) 16:17 (Updated: Apr 14th, 2009 (Tuesday) 16:20)&lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://gist.github.com/95262"&gt;http://gist.github.com/95262&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://bitcheese.net/vlog/tag/code"&gt;code&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/lol"&gt;lol&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/ruby"&gt;ruby&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/haskell"&gt;haskell&lt;/a&gt;
	|
	&lt;a href="http://bitcheese.net/vlog/post/1026#commform"&gt;Комментировать »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>lobster</title>
    <id>http://bitcheese.net/vlog/post/1024</id>
    <updated>2009-04-09T14:56:22+00:00</updated>
    <link href="http://bitcheese.net/vlog/post/1024"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/1024"&gt;lobster&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Apr 9th, 2009 (Thursday) 14:56 &lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;[18:51:52] &amp;lt;Mikoangelo&amp;gt; I iterate over the collection; for each pass, the block given is invoked with the &lt;code&gt;_____&lt;/code&gt; as its argument.&lt;br /&gt;
[18:54:14] &amp;lt;bnagy&amp;gt; item?&lt;br /&gt;
[18:54:20] &amp;lt;bnagy&amp;gt; object?&lt;br /&gt;
[18:54:32] &amp;lt;bnagy&amp;gt; lobster?&lt;br /&gt;
[18:54:39] &amp;lt;Mikoangelo&amp;gt; Yeah, that&amp;#8217;s what I thought too, but I&amp;#8217;m hoping for something a little more specific to iter—&lt;br /&gt;
[18:54:43] &amp;lt;Mikoangelo&amp;gt; YES!&lt;br /&gt;
[18:54:45] &amp;lt;Mikoangelo&amp;gt; lobster it is.&lt;br /&gt;
[18:55:07] &amp;lt;apeiros&amp;gt; lobster!&lt;br /&gt;
[18:55:29] &amp;lt;Mikoangelo&amp;gt; (\/)&lt;code&gt;__(o.O)__&lt;/code&gt;(|).each do |d| &amp;#8230; end&lt;br /&gt;
[18:55:33] &amp;lt;Mikoangelo&amp;gt; brilliant!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://bitcheese.net/vlog/tag/lol"&gt;lol&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/ruby"&gt;ruby&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/irc"&gt;irc&lt;/a&gt;
	|
	&lt;a href="http://bitcheese.net/vlog/post/1024#commform"&gt;Комментировать »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>День 0</title>
    <id>http://bitcheese.net/vlog/post/1014</id>
    <updated>2009-04-02T11:04:12+00:00</updated>
    <link href="http://bitcheese.net/vlog/post/1014"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/1014"&gt;День 0&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Apr 2nd, 2009 (Thursday) 11:04 &lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;Заказчик вчера появился и сказал сделать навигацию стрелками по рядам, а так все вроде ок. Сделал, отправил как завершенную работу, дабы слив дедлайна не засчитался.&lt;/p&gt;
&lt;p&gt;Еще он тут же предложил работу по деланию новостного сайта на рельсах. Мне почему-то все после первой работы (неважно, на чем) предлагают делать какой-нибудь веб-сайт. Наверно, я похож на веб-программиста.&lt;/p&gt;
&lt;p&gt;P.S. Увы, заказа на сеть обмена данными на Хаскелле на самом деле не поступало. Тем не менее я планирую делать что-то в этом духе.&lt;/p&gt;
&lt;p&gt;P.P.S. А пока я занялся принятым пять дней назад заказом на психиатрический опрос на рельсах. Жаль, на мерб заказов не видать.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://bitcheese.net/vlog/tag/уебдизайн"&gt;уебдизайн&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/ruby"&gt;ruby&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/money"&gt;money&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/$250"&gt;$250&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/rac"&gt;rac&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/rails"&gt;rails&lt;/a&gt;
	|
	&lt;a href="http://bitcheese.net/vlog/post/1014#commform"&gt;Комментировать »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Навеяно предыдущим</title>
    <id>http://bitcheese.net/vlog/post/664</id>
    <updated>2009-03-17T16:11:47+00:00</updated>
    <link href="http://bitcheese.net/vlog/post/664"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/664"&gt;Навеяно предыдущим&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Mar 17th, 2009 (Tuesday) 16:11 &lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;Все-таки писать на чистом php трушнее. Шаблон RSS руками составлял, SQL писал&amp;#8230; Таблицы какие жуткие были, с primary key по UNIX timestamp. Потом на сервер по фтп новые файлы кидаешь.&lt;/p&gt;
&lt;p&gt;А тут натыкал моделей, сгенерировал Atom, и &lt;code&gt;cap deploy&lt;/code&gt; с автоапгрейдом базы по дороге. Неинтересно.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://bitcheese.net/vlog/tag/code"&gt;code&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/ruby"&gt;ruby&lt;/a&gt;
	|
	&lt;a href="http://bitcheese.net/vlog/post/664#commform"&gt;Комментировать[2] »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Made it</title>
    <id>http://bitcheese.net/vlog/post/663</id>
    <updated>2009-03-17T15:55:23+00:00</updated>
    <link href="http://bitcheese.net/vlog/post/663"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/663"&gt;Made it&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Mar 17th, 2009 (Tuesday) 15:55 &lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;Блог переписан за три дня на мербе, старый уничтожен.&lt;/p&gt;
&lt;p&gt;Возможны обрушения кирпичей на голову. Докладывайте.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://bitcheese.net/vlog/tag/code"&gt;code&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/уебдизайн"&gt;уебдизайн&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/ruby"&gt;ruby&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/merb"&gt;merb&lt;/a&gt;
	|
	&lt;a href="http://bitcheese.net/vlog/post/663#commform"&gt;Комментировать »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>В мире HTTP</title>
    <id>http://bitcheese.net/vlog/post/661</id>
    <updated>2009-03-13T21:05:02+00:00</updated>
    <link href="http://bitcheese.net/vlog/post/661"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/661"&gt;В мире HTTP&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Mar 13th, 2009 (Friday) 21:05 &lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;Итоги дня:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;             total       used       free     shared    buffers     cached
Mem:           256        252          3          0          4         38
-/+ buffers/cache:        209         46
Swap:          511         74        437&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Перед апачем нарисован &lt;a href="http://nginx.org/"&gt;nginx&lt;/a&gt;, который перенаправляет первому все запросы относительно php, а также раздает статику и рисует индексы на свалке. Еще он раздает запросы двум &lt;a href="http://code.macournoyer.com/thin/&amp;#39;ам"&gt;thin&lt;/a&gt;, заряженным &lt;a href="http://merbivore.com&amp;#39;ами"&gt;merb&lt;/a&gt;. Apache Passenger &lt;del&gt;выкинут&lt;/del&gt; выключен, впрочем резкого уменьшения количества занимаемой памяти не вышло. Даже как бы не наоборот.&lt;/p&gt;
&lt;p&gt;В планах: попробовать fastcgi вместо thin (который на руби), решить вопрос с постоянно утекающими из-под контроля апача процессами php&amp;#8230; Или откатиться на passenger.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://bitcheese.net/vlog/tag/бардак"&gt;бардак&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/ruby"&gt;ruby&lt;/a&gt;
	|
	&lt;a href="http://bitcheese.net/vlog/post/661#commform"&gt;Комментировать[5] »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>git ar</title>
    <id>http://bitcheese.net/vlog/post/651</id>
    <updated>2009-02-15T17:11:44+00:00</updated>
    <link href="http://bitcheese.net/vlog/post/651"/>
    <content type="html">&lt;h1&gt;&lt;a href="/vlog/post/651"&gt;git ar&lt;/a&gt;&lt;/h1&gt;
 	&lt;div&gt;&lt;small&gt;&lt;em&gt;Feb 15th, 2009 (Sunday) 17:11 &lt;/em&gt;&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;Небольшой скрипт, позволяющий одной командой создать снапшот репозитория в нужном формате, с версией в названии.&lt;/p&gt;
&lt;p&gt;Пример:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;% git ar zip                                                     
qmpdclient-ne-1.0.9-111-ga403301.zip&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Поддерживаются форматы tar.gz, tar.bz2, zip и все CLI-совместимые с gzip.&lt;/p&gt;
&lt;p&gt;Установка: &lt;code&gt;sudo cp git-ar /usr/local/bin/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://git.bitcheese.net/?a=summary&amp;amp;p=git-ar"&gt;git&lt;/a&gt;, &lt;a href="http://git.bitcheese.net/?a=archive&amp;amp;p=git-ar&amp;amp;h=HEAD&amp;amp;t=zip"&gt;текущая версия&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;
	Метки:
	&lt;a href="http://bitcheese.net/vlog/tag/code"&gt;code&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/ruby"&gt;ruby&lt;/a&gt;, &lt;a href="http://bitcheese.net/vlog/tag/git"&gt;git&lt;/a&gt;
	|
	&lt;a href="http://bitcheese.net/vlog/post/651#commform"&gt;Комментировать »&lt;/a&gt;
&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
</feed>
