<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	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/"
	>

<channel>
	<title>Fubaredness Is Contagious</title>
	<link>http://somic-org.homelinux.org/blog</link>
	<description>by Dmitriy Samovskiy</description>
	<pubDate>Thu, 03 Jul 2008 15:10:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>Let&#8217;s Prove GigaOM Wrong On Enterprises + Clouds</title>
		<link>http://somic-org.homelinux.org/blog/2008/07/03/lets-prove-gigaom-wrong-on-enterprises-clouds/</link>
		<comments>http://somic-org.homelinux.org/blog/2008/07/03/lets-prove-gigaom-wrong-on-enterprises-clouds/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 15:10:45 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
		
		<category><![CDATA[cloud computing]]></category>

		<category><![CDATA[work]]></category>

		<category><![CDATA[data crunch]]></category>

		<category><![CDATA[enterprise]]></category>

		<category><![CDATA[enterprise computing]]></category>

		<category><![CDATA[massive]]></category>

		<category><![CDATA[massive dataset]]></category>

		<category><![CDATA[vcubev]]></category>

		<guid isPermaLink="false">http://somic-org.homelinux.org/blog/2008/07/03/lets-prove-gigaom-wrong-on-enterprises-clouds/</guid>
		<description><![CDATA[On Tuesday, GigaOM published 10 Reasons Enterprises Aren’t Ready to Trust the Cloud.
I personally think the title is somewhat misleading. It would have been more appropriately named &#8220;10 Reasons Enterprises Aren&#8217;t Ready to Take Their Entire In-House IT Operations to the Cloud.&#8221; The difference is huge. Enterprises can totally trust the cloud to perform certain operations. [...]]]></description>
			<content:encoded><![CDATA[<p>On Tuesday, <a href="http://gigaom.com">GigaOM</a> published <a href="http://gigaom.com/2008/07/01/10-reasons-enterprises-arent-ready-to-trust-the-cloud/">10 Reasons Enterprises Aren’t Ready to Trust the Cloud</a>.</p>
<p>I personally think the title is somewhat misleading. It would have been more appropriately named &#8220;10 Reasons Enterprises Aren&#8217;t Ready to Take Their Entire In-House IT Operations to the Cloud.&#8221; The difference is huge. Enterprises can totally trust the cloud to perform certain operations. Massive data crunching tasks that need to run occasionally are perfect for this.</p>
<p>There is a single reason why we don&#8217;t hear more about enterprises adopting clouds (yet!) - it&#8217;s not that easy. First of all, if we have a massive dataset to run through a computation cycle, this dataset first needs to be transferred somewhere where cluster nodes can get to it. In case of Amazon Web Services,S3 is where one could put it. But before we can transfer the data, we need to extract it from the source (database, data warehouse etc). This can be easier said than done.</p>
<p>Once the dataset is ready, a number of cluster nodes need to be started - you need an AMI and a private communication mechanism for your instances. You also will need discovery tools, because EC2 assigns dynamic IP addresses and without discovery, your cluster nodes will not be aware of each other. And these are only high level steps&#8230;</p>
<p>So, if you are an enterprise and you would like to show GigaOM that you do trust the cloud, are you on your own to make it all happen? I happen to know the answer. I work for company called <a href="http://cohesiveft.com">CohesiveFT</a> and our <a href="http://elasticserver.com">Elastic Server platform</a> can help you in several important ways. Firstly, remember that first step of extracting the dataset from your internal system? How would you feel if I told you that you can skip this step - instead you can set up a private virtual network between your Amazon EC2 instances and your corporate datacenter so that cluster nodes can access the data source directly? If you are interested, check out our<a href="http://www.cohesiveft.com/developer/"> VcubeV</a> multisourcing technique. It will also help you sort out the problem of dynamically assigned IP addresses (hint: VcubeV virtual IP addresses can be static).</p>
<p>Secondly, you can use <a href="http://es.cohesiveft.com/upload-package">Upload Your Package</a> feature to easily embed your home-grown software to be included in every cluster node. You will save quite a lot of time if you use a nice web GUI to assemble your cluster node instead of building and bundling an AMI manually. Patch management will also be easier - consider a couple of clicks to upload a new version of software and rebuild the server, vs. repeating entire bundling process from its very beginning.</p>
<p>And finally, Elastic Server On Demand can <a href="https://es.cohesiveft.com/ec2">launch</a> your servers in EC2  as easily as it can build a <a href="http://es.cohesiveft.com/new-server">vmware</a> image of exactly the same stack for you to test locally.</p>
<p>If you are an enterprise looking for help to get started in the cloud, you now know where to <a href="http://elasticserver.com">find us</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://somic-org.homelinux.org/blog/2008/07/03/lets-prove-gigaom-wrong-on-enterprises-clouds/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ruby + AMQP + RabbitMQ Example</title>
		<link>http://somic-org.homelinux.org/blog/2008/06/24/ruby-amqp-rabbitmq-example/</link>
		<comments>http://somic-org.homelinux.org/blog/2008/06/24/ruby-amqp-rabbitmq-example/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 23:17:30 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
		
		<category><![CDATA[rabbitmq]]></category>

		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://somic-org.homelinux.org/blog/2008/06/24/ruby-amqp-rabbitmq-example/</guid>
		<description><![CDATA[In this post I would like to show how one can exchange messages using AMQP protocol from Ruby, using RabbitMQ as a broker. I posted the original version of this script to rabbitmq-discuss mailing list back in September 2007.
Prerequesites:

RabbitMQ broker configured, up and running on 127.0.0.1 (localhost) on port 5672 (standard AMQP port).
Apache QPid Ruby [...]]]></description>
			<content:encoded><![CDATA[<p>In this post I would like to show how one can exchange messages using AMQP protocol from Ruby, using RabbitMQ as a broker. I posted the original version of this script to <a href="http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss">rabbitmq-discuss</a> mailing list back in September 2007.</p>
<p>Prerequesites:</p>
<ul>
<li><a href="http://www.rabbitmq.com">RabbitMQ</a> broker configured, up and running on 127.0.0.1 (localhost) on port 5672 (standard AMQP port).</li>
<li><a href="http://cwiki.apache.org/qpid/">Apache QPid</a> Ruby library installed within RUBYPATH (svn co http://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/ruby)</li>
<li>AMQP specification <a href="http://jira.amqp.org/confluence/download/attachments/720900/amqp0-8.xml">XML</a> form <a href="http://amqp.org">AMQP official site</a> saved as /etc/amqp0-8.xml</li>
</ul>
<p>You can also download this script from <a href="/d/disttailf.rb">here</a>.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span style="color:#008000; font-style:italic;">#!/usr/bin/ruby -I/usr/local/qpid-svn/qpid/ruby</span>
<span style="color:#008000; font-style:italic;">#</span>
<span style="color:#008000; font-style:italic;">#</span>
__doc__ = <span style="color:#006600; font-weight:bold;">%</span>q<span style="color:#006600; font-weight:bold;">&#40;</span>
&nbsp;
disttailf.<span style="color:#9900CC;">rb</span> <span style="color:#006600; font-weight:bold;">-</span> distributed <span style="color:#996600;">&quot;tail -f&quot;</span>
&nbsp;
Aggregates <span style="color:#996600;">&quot;tail -f&quot;</span> output from multiple machines <span style="color:#9966CC; font-weight:bold;">and</span> multiple files
into a single RabbitMQ pubsub queue <span style="color:#006600; font-weight:bold;">&#40;</span>kind of splunk<span style="color:#996600;">'s log consolidation
function)
&nbsp;
Usage:
Producer: disttailf.rb [-s broker_host] [-p broker_port] [-x spec_xml] file ...
Consumer: disttailf.rb [-s broker_host] [-p broker_port] [-x spec_xml] -c
&nbsp;
)
&nbsp;
require '</span>qpid<span style="color:#996600;">'
require '</span>socket<span style="color:#996600;">'
&nbsp;
def consumer(client, ch)
    myqueue = ch.queue_declare()
    ch.queue_bind(:queue=&gt;myqueue.queue, :exchange=&gt;'</span>amq.<span style="color:#9900CC;">topic</span><span style="color:#996600;">',
                    :routing_key=&gt;'</span>disttailf.<span style="color:#008000; font-style:italic;">#')</span>
    cons = ch.<span style="color:#9900CC;">basic_consume</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:queue</span><span style="color:#006600; font-weight:bold;">=&gt;</span>myqueue.<span style="color:#9900CC;">queue</span>, <span style="color:#ff3333; font-weight:bold;">:no_ack</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">true</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    ruby_queue = client.<span style="color:#9900CC;">queue</span><span style="color:#006600; font-weight:bold;">&#40;</span>cons.<span style="color:#9900CC;">consumer_tag</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
    <span style="color:#9966CC; font-weight:bold;">while</span> <span style="color:#0000FF; font-weight:bold;">true</span>
        <span style="color:#CC0066; font-weight:bold;">raise</span> <span style="color:#996600;">&quot;Rabbitmq broker disconnected&quot;</span> <span style="color:#9966CC; font-weight:bold;">if</span> client.<span style="color:#9900CC;">closed</span>?
        <span style="color:#9966CC; font-weight:bold;">begin</span>
          msg = ruby_queue.<span style="color:#9900CC;">pop</span><span style="color:#006600; font-weight:bold;">&#40;</span>non_block=<span style="color:#0000FF; font-weight:bold;">true</span><span style="color:#006600; font-weight:bold;">&#41;</span>
          <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;== #{msg.content.headers[:headers]} &quot;</span> \
                <span style="color:#996600;">&quot;#{msg.routing_key.split('.')[-1]}&quot;</span>
          <span style="color:#CC0066; font-weight:bold;">puts</span> msg.<span style="color:#9900CC;">content</span>.<span style="color:#9900CC;">body</span>
        <span style="color:#9966CC; font-weight:bold;">rescue</span>
          <span style="color:#CC0066; font-weight:bold;">sleep</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">0.5</span><span style="color:#006600; font-weight:bold;">&#41;</span>
        <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">def</span> producer<span style="color:#006600; font-weight:bold;">&#40;</span>client, ch, filenames<span style="color:#006600; font-weight:bold;">&#41;</span>
    rkey = <span style="color:#996600;">&quot;disttailf.&quot;</span> <span style="color:#006600; font-weight:bold;">+</span> Socket.<span style="color:#9900CC;">gethostname</span>.<span style="color:#CC0066; font-weight:bold;">split</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'.'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">-1</span><span style="color:#006600; font-weight:bold;">&#93;</span>
    tail_f<span style="color:#006600; font-weight:bold;">&#40;</span>filenames<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>filename, line<span style="color:#006600; font-weight:bold;">|</span>
        h = <span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#996600;">'sent'</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#CC00FF; font-weight:bold;">Time</span>.<span style="color:#9900CC;">now</span>.<span style="color:#9900CC;">to_i</span>, <span style="color:#996600;">'filename'</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> filename <span style="color:#006600; font-weight:bold;">&#125;</span>
        c = <span style="color:#6666ff; font-weight:bold;">Qpid::Content</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#123;</span>:headers<span style="color:#006600; font-weight:bold;">=&gt;</span>h<span style="color:#006600; font-weight:bold;">&#125;</span>, line<span style="color:#006600; font-weight:bold;">&#41;</span>
        ch.<span style="color:#9900CC;">basic_publish</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:routing_key</span><span style="color:#006600; font-weight:bold;">=&gt;</span>rkey, <span style="color:#ff3333; font-weight:bold;">:content</span><span style="color:#006600; font-weight:bold;">=&gt;</span>c,
                            <span style="color:#ff3333; font-weight:bold;">:exchange</span><span style="color:#006600; font-weight:bold;">=&gt;</span><span style="color:#996600;">'amq.topic'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
        <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;#{filename}: #{line}&quot;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">def</span> tail_f<span style="color:#006600; font-weight:bold;">&#40;</span>filenames, <span style="color:#006600; font-weight:bold;">&amp;</span>block<span style="color:#006600; font-weight:bold;">&#41;</span>
    filedict = <span style="color:#CC00FF; font-weight:bold;">Hash</span>.<span style="color:#9900CC;">new</span>
    filenames.<span style="color:#9900CC;">each</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>f<span style="color:#006600; font-weight:bold;">|</span> filedict<span style="color:#006600; font-weight:bold;">&#91;</span>f<span style="color:#006600; font-weight:bold;">&#93;</span> = open_or_nil<span style="color:#006600; font-weight:bold;">&#40;</span>f<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
    reopen_counter = <span style="color:#006666;">0</span>
    <span style="color:#9966CC; font-weight:bold;">while</span> <span style="color:#0000FF; font-weight:bold;">true</span>:
        <span style="color:#9966CC; font-weight:bold;">if</span> reopen_counter <span style="color:#006600; font-weight:bold;">&gt;</span> <span style="color:#006666;">120</span>
            reopen_counter = <span style="color:#006666;">0</span>
            filenames.<span style="color:#9900CC;">reject</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>f<span style="color:#006600; font-weight:bold;">|</span> filedict<span style="color:#006600; font-weight:bold;">&#91;</span>f<span style="color:#006600; font-weight:bold;">&#93;</span> <span style="color:#006600; font-weight:bold;">&#125;</span>.<span style="color:#9900CC;">each</span> <span style="color:#006600; font-weight:bold;">&#123;</span>
                <span style="color:#006600; font-weight:bold;">|</span>f<span style="color:#006600; font-weight:bold;">|</span> filedict<span style="color:#006600; font-weight:bold;">&#91;</span>f<span style="color:#006600; font-weight:bold;">&#93;</span> = open_or_nil<span style="color:#006600; font-weight:bold;">&#40;</span>f<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
        <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
        filedict.<span style="color:#9900CC;">values</span>.<span style="color:#9900CC;">reject</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>f<span style="color:#006600; font-weight:bold;">|</span> <span style="color:#9966CC; font-weight:bold;">not</span> f <span style="color:#006600; font-weight:bold;">&#125;</span>.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>f<span style="color:#006600; font-weight:bold;">|</span>
            <span style="color:#9966CC; font-weight:bold;">begin</span>
                <span style="color:#CC0066; font-weight:bold;">raise</span> <span style="color:#996600;">&quot;trunc&quot;</span> <span style="color:#9966CC; font-weight:bold;">unless</span> <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">stat</span><span style="color:#006600; font-weight:bold;">&#40;</span>f.<span style="color:#9900CC;">path</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">size</span> <span style="color:#006600; font-weight:bold;">&gt;</span>= f.<span style="color:#9900CC;">tell</span>
            <span style="color:#9966CC; font-weight:bold;">rescue</span>
                <span style="color:#ff6633; font-weight:bold;">$stderr</span> <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> <span style="color:#996600;">&quot;#{f.path}: removed or truncated<span style="color:#000099;">\n</span>&quot;</span>
                f.<span style="color:#9900CC;">close</span>
                filedict<span style="color:#006600; font-weight:bold;">&#91;</span>f.<span style="color:#9900CC;">path</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#0000FF; font-weight:bold;">nil</span>
                <span style="color:#9966CC; font-weight:bold;">next</span>
            <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
            <span style="color:#9966CC; font-weight:bold;">begin</span>
              block.<span style="color:#9900CC;">call</span><span style="color:#006600; font-weight:bold;">&#40;</span>f.<span style="color:#9900CC;">path</span>,f.<span style="color:#CC0066; font-weight:bold;">readline</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">while</span> <span style="color:#0000FF; font-weight:bold;">true</span>
            <span style="color:#9966CC; font-weight:bold;">rescue</span> <span style="color:#CC00FF; font-weight:bold;">EOFError</span>
              <span style="color:#0000FF; font-weight:bold;">true</span>
            <span style="color:#9966CC; font-weight:bold;">end</span>
        <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
        reopen_counter <span style="color:#006600; font-weight:bold;">+</span>= <span style="color:#006666;">1</span>
        <span style="color:#CC0066; font-weight:bold;">sleep</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">0.5</span><span style="color:#006600; font-weight:bold;">&#41;</span>
   <span style="color:#9966CC; font-weight:bold;">end</span> <span style="color:#008000; font-style:italic;"># while true</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">def</span> open_or_nil<span style="color:#006600; font-weight:bold;">&#40;</span>filename<span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#9966CC; font-weight:bold;">begin</span>
        <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#CC0066; font-weight:bold;">open</span><span style="color:#006600; font-weight:bold;">&#40;</span>filename<span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#9966CC; font-weight:bold;">rescue</span>
        <span style="color:#0000FF; font-weight:bold;">nil</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#0000FF; font-weight:bold;">__FILE__</span> == $<span style="color:#006666;">0</span>
    <span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'getoptlong'</span>
&nbsp;
    server = <span style="color:#996600;">'127.0.0.1'</span>
    port = <span style="color:#006666;">5672</span>
    specxml = <span style="color:#996600;">'/etc/amqp0-8.xml'</span>
    acts_as_consumer = <span style="color:#0000FF; font-weight:bold;">false</span>
&nbsp;
    opts = GetoptLong.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>
        <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'--server'</span>, <span style="color:#996600;">'-s'</span>, <span style="color:#6666ff; font-weight:bold;">GetoptLong::REQUIRED_ARGUMENT</span><span style="color:#006600; font-weight:bold;">&#93;</span>,
        <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'--port'</span>, <span style="color:#996600;">'-p'</span>, <span style="color:#6666ff; font-weight:bold;">GetoptLong::REQUIRED_ARGUMENT</span><span style="color:#006600; font-weight:bold;">&#93;</span>,
        <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'--specxml'</span>, <span style="color:#996600;">'-x'</span>, <span style="color:#6666ff; font-weight:bold;">GetoptLong::REQUIRED_ARGUMENT</span><span style="color:#006600; font-weight:bold;">&#93;</span>,
        <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'--consume'</span>, <span style="color:#996600;">'-c'</span>, <span style="color:#6666ff; font-weight:bold;">GetoptLong::NO_ARGUMENT</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    opts.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>opt,arg<span style="color:#006600; font-weight:bold;">|</span>
      <span style="color:#9966CC; font-weight:bold;">case</span> opt
        <span style="color:#9966CC; font-weight:bold;">when</span> <span style="color:#996600;">'--server'</span>
            server = arg
        <span style="color:#9966CC; font-weight:bold;">when</span> <span style="color:#996600;">'--port'</span>
            port = arg.<span style="color:#9900CC;">to_i</span>
        <span style="color:#9966CC; font-weight:bold;">when</span> <span style="color:#996600;">'--specxml'</span>
            specxml = arg
        <span style="color:#9966CC; font-weight:bold;">when</span> <span style="color:#996600;">'--consume'</span>
            acts_as_consumer = <span style="color:#0000FF; font-weight:bold;">true</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    <span style="color:#008000; font-style:italic;"># set up connection to rabbitmq broker</span>
    client = <span style="color:#6666ff; font-weight:bold;">Qpid::Client</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>server, port, spec=Spec.<span style="color:#CC0066; font-weight:bold;">load</span><span style="color:#006600; font-weight:bold;">&#40;</span>specxml<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    client.<span style="color:#9900CC;">start</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#996600;">&quot;LOGIN&quot;</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;guest&quot;</span>, <span style="color:#996600;">&quot;PASSWORD&quot;</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;guest&quot;</span> <span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    ch = client.<span style="color:#9900CC;">channel</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    ch.<span style="color:#9900CC;">channel_open</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
    <span style="color:#9966CC; font-weight:bold;">if</span> acts_as_consumer
        consumer<span style="color:#006600; font-weight:bold;">&#40;</span>client, ch<span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#9966CC; font-weight:bold;">else</span>
        <span style="color:#9966CC; font-weight:bold;">if</span> ARGV.<span style="color:#9900CC;">length</span> == <span style="color:#006666;">0</span>
            <span style="color:#CC0066; font-weight:bold;">puts</span> __doc__
            <span style="color:#CC0066; font-weight:bold;">raise</span> <span style="color:#996600;">&quot;List of file names is empty - nothing to do&quot;</span>
        <span style="color:#9966CC; font-weight:bold;">end</span>
        producer<span style="color:#006600; font-weight:bold;">&#40;</span>client, ch, ARGV<span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://somic-org.homelinux.org/blog/2008/06/24/ruby-amqp-rabbitmq-example/feed/</wfw:commentRss>
		</item>
		<item>
		<title>EC2 Instances Always Boot to Runlevel 4</title>
		<link>http://somic-org.homelinux.org/blog/2008/06/20/ec2-instances-always-boot-to-runlevel-4/</link>
		<comments>http://somic-org.homelinux.org/blog/2008/06/20/ec2-instances-always-boot-to-runlevel-4/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 15:59:33 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[virtualization]]></category>

		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://somic-org.homelinux.org/blog/2008/06/20/ec2-instances-always-boot-to-runlevel-4/</guid>
		<description><![CDATA[It appears that Amazon EC2 instances always boot to runlevel 4, no matter what runlevel you set as default in your /etc/inittab. I found a very old reference to this fact in forums (see here), which explains *how* it happens (XEN does it) but doesn&#8217;t explain *why*. And yes, by passing &#8220;4&#8243; as last argument [...]]]></description>
			<content:encoded><![CDATA[<p>It appears that Amazon EC2 instances always boot to runlevel 4, no matter what runlevel you set as default in your /etc/inittab. I found a very old reference to this fact in forums (see <a href="http://developer.amazonwebservices.com/connect/thread.jspa?messageID=45973뎕">here</a>), which explains *how* it happens (XEN does it) but doesn&#8217;t explain *why*. And yes, by passing &#8220;4&#8243; as last argument to kernel &#8220;command line&#8221; (as you can see <a href="http://wiki.xensource.com/xenwiki/HowToInstallXenOnSlackware?highlight=%28runlevel%29">here</a>) they can do it. I am just wondering why&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://somic-org.homelinux.org/blog/2008/06/20/ec2-instances-always-boot-to-runlevel-4/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Firefox 3 and Revoked SSL Certificates</title>
		<link>http://somic-org.homelinux.org/blog/2008/06/19/firefox-3-and-revoked-ssl-certificates/</link>
		<comments>http://somic-org.homelinux.org/blog/2008/06/19/firefox-3-and-revoked-ssl-certificates/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 22:53:19 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
		
		<category><![CDATA[technology]]></category>

		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://somic-org.homelinux.org/blog/2008/06/19/firefox-3-and-revoked-ssl-certificates/</guid>
		<description><![CDATA[Today I discovered that Firefox 3 will refuse to display a site over HTTPS if its SSL certificate is revoked. And even though I am not questioning merits of this decision, I still would have preferred to have this behavior configurable, either somewhere deep in Preferences or at least via about:config (quick scan of the [...]]]></description>
			<content:encoded><![CDATA[<p>Today I discovered that Firefox 3 will refuse to display a site over HTTPS if its SSL certificate is revoked. And even though I am not questioning merits of this decision, I still would have preferred to have this behavior configurable, either somewhere deep in Preferences or at least via about:config (quick scan of the latter did not result in anything useful - did I overlook it?)</p>
]]></content:encoded>
			<wfw:commentRss>http://somic-org.homelinux.org/blog/2008/06/19/firefox-3-and-revoked-ssl-certificates/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Domestic Flying to Get More Cramped Than Ever</title>
		<link>http://somic-org.homelinux.org/blog/2008/05/21/domestic-flying-to-get-more-cramped-than-ever/</link>
		<comments>http://somic-org.homelinux.org/blog/2008/05/21/domestic-flying-to-get-more-cramped-than-ever/#comments</comments>
		<pubDate>Wed, 21 May 2008 15:10:10 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
		
		<category><![CDATA[Misc]]></category>

		<category><![CDATA[airlines]]></category>

		<category><![CDATA[flying]]></category>

		<guid isPermaLink="false">http://somic-org.homelinux.org/blog/2008/05/21/domestic-flying-to-get-more-cramped-than-ever/</guid>
		<description><![CDATA[It&#8217;s started - AA will be charging for each bag you check in (via Today In The Sky). People will stop checking in their bags at first of course. So if you are boarding in group 3 or late in group 2, expect to find no room in overhead bins to put your bag. And [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s started - AA will be charging for each bag you check in (via <a href="http://www.usatoday.com/travel/flights/item.aspx?type=blog&amp;ak=50210010.blog&amp;csp=34">Today In The Sky</a>). People will stop checking in their bags at first of course. So if you are boarding in group 3 or late in group 2, expect to find no room in overhead bins to put your bag. And if it&#8217;s big enough not to fit under the seat in front of you (or if you are flying on MD80 and your seat is next to left engine - there is no seat in front of you at all, it&#8217;s just a wall) - you might be <a href="http://acronyms.thefreedictionary.com/SOL">SOL</a>.</p>
<p>I think AA can kiss good bye to their on time performance for at least several months (if they are lucky!), but it will be pretty sad if other airlines will follow their lead. Good luck to us all! I also sympathize with American&#8217;s flight attendants who will have to face a lot of very angry customers.</p>
]]></content:encoded>
			<wfw:commentRss>http://somic-org.homelinux.org/blog/2008/05/21/domestic-flying-to-get-more-cramped-than-ever/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Now On Twitter&#8230;</title>
		<link>http://somic-org.homelinux.org/blog/2008/05/19/now-on-twitter/</link>
		<comments>http://somic-org.homelinux.org/blog/2008/05/19/now-on-twitter/#comments</comments>
		<pubDate>Tue, 20 May 2008 03:47:17 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
		
		<category><![CDATA[blogging]]></category>

		<guid isPermaLink="false">http://somic-org.homelinux.org/blog/2008/05/19/now-on-twitter/</guid>
		<description><![CDATA[&#8230; at http://twitter.com/somic
]]></description>
			<content:encoded><![CDATA[<p>&#8230; at <a href="http://twitter.com/somic">http://twitter.com/somic</a></p>
]]></content:encoded>
			<wfw:commentRss>http://somic-org.homelinux.org/blog/2008/05/19/now-on-twitter/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CohesiveFT Named One of 2008 Hottest Tech Startups by InfoWorld</title>
		<link>http://somic-org.homelinux.org/blog/2008/05/19/cohesiveft-named-one-of-2008-hottest-tech-startups-by-infoworld/</link>
		<comments>http://somic-org.homelinux.org/blog/2008/05/19/cohesiveft-named-one-of-2008-hottest-tech-startups-by-infoworld/#comments</comments>
		<pubDate>Mon, 19 May 2008 17:09:12 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
		
		<category><![CDATA[technology]]></category>

		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://somic-org.homelinux.org/blog/2008/05/19/cohesiveft-named-one-of-2008-hottest-tech-startups-by-infoworld/</guid>
		<description><![CDATA[http://www.infoworld.com/article/08/05/19/21FE-startups-intro_1.html and http://www.infoworld.com/article/08/05/19/21FE-startups-winners_2.html 
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.infoworld.com/article/08/05/19/21FE-startups-intro_1.html">http://www.infoworld.com/article/08/05/19/21FE-startups-intro_1.html</a> and<a href="http://www.infoworld.com/article/08/05/19/21FE-startups-winners_2.html"> http://www.infoworld.com/article/08/05/19/21FE-startups-winners_2.html </a></p>
]]></content:encoded>
			<wfw:commentRss>http://somic-org.homelinux.org/blog/2008/05/19/cohesiveft-named-one-of-2008-hottest-tech-startups-by-infoworld/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Terminology Fun - IT vs Economics</title>
		<link>http://somic-org.homelinux.org/blog/2008/05/14/terminology-fun-it-vs-economics/</link>
		<comments>http://somic-org.homelinux.org/blog/2008/05/14/terminology-fun-it-vs-economics/#comments</comments>
		<pubDate>Wed, 14 May 2008 14:43:54 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
		
		<category><![CDATA[Economics]]></category>

		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://somic-org.homelinux.org/blog/2008/05/14/terminology-fun-it-vs-economics/</guid>
		<description><![CDATA[What we in IT call a &#8220;bad state&#8221; (as in &#8220;application ended up in a bad state and needed to be restared&#8221;) in economics is called &#8220;bad equilibrium.&#8221; Here is more on General Equilibrium theory.
]]></description>
			<content:encoded><![CDATA[<p>What we in IT call a &#8220;bad state&#8221; (as in &#8220;application ended up in a bad state and needed to be restared&#8221;) in economics is called &#8220;bad equilibrium.&#8221; Here is more on<a href="http://en.wikipedia.org/wiki/General_equilibrium"> General Equilibrium theory</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://somic-org.homelinux.org/blog/2008/05/14/terminology-fun-it-vs-economics/feed/</wfw:commentRss>
		</item>
		<item>
		<title>VcubeV Idea Getting Followers?</title>
		<link>http://somic-org.homelinux.org/blog/2008/05/09/vcubev-idea-getting-followers/</link>
		<comments>http://somic-org.homelinux.org/blog/2008/05/09/vcubev-idea-getting-followers/#comments</comments>
		<pubDate>Fri, 09 May 2008 13:34:30 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
		
		<category><![CDATA[cloud computing]]></category>

		<category><![CDATA[technology]]></category>

		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://somic-org.homelinux.org/blog/2008/05/09/vcubev-idea-getting-followers/</guid>
		<description><![CDATA[Check this out - someone else is thinking along the same lines - http://elasticvapor.com/2008/05/virtual-private-cloud-vpc.html 
]]></description>
			<content:encoded><![CDATA[<p>Check this out - someone else is thinking along the same lines - <a href="http://elasticvapor.com/2008/05/virtual-private-cloud-vpc.html">http://elasticvapor.com/2008/05/virtual-private-cloud-vpc.html </a></p>
]]></content:encoded>
			<wfw:commentRss>http://somic-org.homelinux.org/blog/2008/05/09/vcubev-idea-getting-followers/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Now Boarding: Elastic Passengers</title>
		<link>http://somic-org.homelinux.org/blog/2008/04/23/now-boarding-elastic-passengers/</link>
		<comments>http://somic-org.homelinux.org/blog/2008/04/23/now-boarding-elastic-passengers/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 02:14:41 +0000</pubDate>
		<dc:creator>Dmitriy</dc:creator>
		
		<category><![CDATA[ruby]]></category>

		<category><![CDATA[work]]></category>

		<category><![CDATA[deploy]]></category>

		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://somic-org.homelinux.org/blog/2008/04/23/now-boarding-elastic-passengers/</guid>
		<description><![CDATA[Starting today, Elastic Server On Demand allows you to select Phusion Passenger (mod_rails for Apache) as a web container for your Rails 2 application. This  allows you to deploy a Rails app on Apache, the world&#8217;s most popular web server. Check it out at http://es.cohesiveft.com/site/rails2.
]]></description>
			<content:encoded><![CDATA[<p>Starting today, <a href="http://es.cohesiveft.com">Elastic Server On Demand</a> allows you to select <a href="http://phusion.nl">Phusion</a> <a href="http://www.modrails.com">Passenger (mod_rails for Apache)</a> as a web container for your Rails 2 application. This  allows you to deploy a Rails app on <a href="http://httpd.apache.org">Apache</a>, the world&#8217;s most popular web server. Check it out at <a href="http://es.cohesiveft.com/site/rails2">http://es.cohesiveft.com/site/rails2</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://somic-org.homelinux.org/blog/2008/04/23/now-boarding-elastic-passengers/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
