<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Skaag's Blogodump &#187; Technology</title>
	<atom:link href="http://www.skaag.net/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.skaag.net</link>
	<description>You live once, Live well!</description>
	<lastBuildDate>Sat, 01 Oct 2011 07:19:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>From Russia with Love?!</title>
		<link>http://www.skaag.net/2011/10/01/from-russia-with-love/</link>
		<comments>http://www.skaag.net/2011/10/01/from-russia-with-love/#comments</comments>
		<pubDate>Sat, 01 Oct 2011 07:18:47 +0000</pubDate>
		<dc:creator>Skaag</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Russia]]></category>

		<guid isPermaLink="false">http://www.skaag.net/?p=139</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>When I was very young, Russia was this &#8220;grey&#8221; and &#8220;evil&#8221; entity. Having lived in countries mainly under the influence of the west, this is no surprise. The impression was that the government is not very good for the people, as in, not very democratic.</p>
<p>However this is my third or fourth time to Russia, and what I discovered has changed how I think about countries and governments in general.</p>
<p>The first thing that shocked me was how popular virtual money is. When you are in the wallet business, you learn that in Russia the most popular valid form of payment is &#8220;Webmoney&#8221; but the reality is that many russian companies have wallets! What really matters, is that you can walk a short distance from your home and convert your real cash to virtual cash, with which you can then pay for services online. For that, a rampant network of money collection terminals exists, with fierce competition in some areas. The machines only take money, and produce a receipt.</p>
<p>In some apartment buildings the machine is in the lobby so you can go downstairs in your PJ&#8217;s and convert money to virtual value without braving the elements (visualize the Moscow winter to realize how practical this is!).</p>
<p>What makes this business thrive in Russia and Ukraine? What is the government doing or NOT doing, which allows wallets to be so popular? Is it the lack of trust in Russians banks? Is it some Russian cultural trait?</p>
<p>I welcome your feedback on this one.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.skaag.net/2011/10/01/from-russia-with-love/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>R.I.P: Mogul (My good old MacBook Pro)</title>
		<link>http://www.skaag.net/2010/11/20/death-of-a-macbook/</link>
		<comments>http://www.skaag.net/2010/11/20/death-of-a-macbook/#comments</comments>
		<pubDate>Sat, 20 Nov 2010 02:28:16 +0000</pubDate>
		<dc:creator>Skaag</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Macbook]]></category>

		<guid isPermaLink="false">http://www.skaag.net/?p=120</guid>
		<description><![CDATA[Last week &#8220;Mogul&#8221;, my trusty old Macbook Pro Unibody (circa 2008, basically the first model that came out) has decided to die a sudden death. 30 minutes before its sudden departure from this world, it helped me locate the address &#8230; <a href="http://www.skaag.net/2010/11/20/death-of-a-macbook/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last week &#8220;Mogul&#8221;, my trusty old Macbook Pro Unibody (circa 2008, basically the first model that came out) has decided to die a sudden death. 30 minutes before its sudden departure from this world, it helped me locate the address of a local motel where I then spent the night mourning its loss.</p>
<p>When you go through some rough times together with someone (or in this case, some object), you become attached to that object. It&#8217;s been there for you, and it served its purpose. Sometimes I feel It&#8217;s really like the <a title="Rifleman's Creed in Wikipedia" href="http://en.wikipedia.org/wiki/Rifleman's_Creed" target="_blank">Rifleman&#8217;s Creed</a>, but my version is the version for geeks:</p>
<blockquote><p><em>This is my Macbook. There are many like it, but this one is mine. My Macbook is my best friend. It is my life. I must master it as I must master my life. My Macbook, without me, is useless. Without my Macbook, I am useless. I must code with my Macbook true. I must code better than my competitor, who is trying to steal my market share. I must take market share, before he does. I will&#8230;</em></p>
<p><em>My Macbook and myself know that what counts in this war is not the software we write, the noise of our marketing department, nor the public relations we make. We know that it is the sales that count. We will sell&#8230;</em></p>
<p><em>My Macbook is human, even as I, because it is my Macbook. Thus, I will learn it as a brother. I will learn its weaknesses, its strength, its parts, its accessories, its ports and its unix. I will ever guard it against the ravages of weather and damage as I will ever guard my legs, my arms, my eyes and my heart against damage. I will keep my Macbook clean and ready. We will become part of each other. We will&#8230;</em></p>
<p><em>Before the universe, I swear this creed. My Macbook and myself are the defenders of my company. We are the masters of our competitor. We are the saviors of my life. So be it, until victory is ours and the competitor is begging!</em></p></blockquote>
<p>I then started going through the following stages of human grief:</p>
<h3>Stage 1: Denial</h3>
<p>I thought it was some sudden barometric pressure, humidity, or some weird voodoo in the firmware. Maybe a ZAP to the PROM? Maybe the battery died? Maybe it just needed a charge? I couldn&#8217;t believe at that stage that the computer died, even though the signs were not very encouraging. However every day, I tried to turn it on. Maybe today will be my lucky day? I said to myself. But its death was very real <img src='http://www.skaag.net/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<h3>Stage 2: Depression</h3>
<p>I was sad and depressed. How could this happen to me? All those days of lost work, how will I ever catch up? What if the data is also gone? My last Time Machine backup is pretty recent, but still, a few weeks old&#8230;!</p>
<p>I spent the week without my Macbook pretty sad and lonely. What made this worse, is that I had to borrow a laptop from my dad. Guess what, it was an ASUS laptop, with Windows 7 on it. I was grateful to have a machine to work on, and I did manage to accomplish almost everything I needed to accomplish, but I suffered with that machine. I suffered bad. Microsoft&#8217;s platform is just plain horrible, even with their latest &#8220;achievement&#8221;, Windows 7.</p>
<h3>Stage 3: Anger!</h3>
<p>At this stage, I was angry. I was angry at Apple, at myself, and with the world in general. Here&#8217;s a list of what I was angry at, and why:</p>
<ul>
<li>Apple &#8211; Because when I just bought the laptop, the hinge was already loose and holding the laptop at an angle the screen would close on my fingers. I brought it to the shop, and the Apple Geeks said that was normal. But the next Unibody revision saw this problem fixed!!! Grrrr!</li>
<li>Apple &#8211; Because after a few months, I discovered my optical drive did not work. I discovered this the first time I really needed it (to burn an ISO of a Linux OS that I needed to install on a server). I was traveling at a country without an Apple Store, so I decided I had enough time until my warranty expires, and I burned that ISO on an external burner. I then reached Munich (Germany) with my travels, where I took the Macbook into an official Apple store. They decided my cdrom was fine, and even came up with some logical sounding excuse: I had modified my EFI and the cdrom was affected by this, but when I left Munich I discovered they were wrong. I restored my EFI to the original firmware, and the cdrom still did not work. I couldn&#8217;t even boot from a brand new, store bought copy of Snow Leopard!!</li>
<li>Apple &#8211; Because the laptop only held a charge for 2 hours, even with a brand new battery! When I wanted to use the lower power nVidia, the screen was blinking, and even though many people report this problem, Apple won&#8217;t admit a fault in that series of Macbook, and won&#8217;t replace the motherboard! The solution: Use the higher power nVidia 9600GT, and the screen won&#8217;t blink.</li>
<li>Myself &#8211; Because I did not buy Apple Care! And if I had AppleCare, I would not have to buy a new Macbook like I did.</li>
<li>Myself &#8211; Because maybe I wasn&#8217;t gentle enough with my Macbook. Although I never dropped it, and for its age, it looks pretty damn near-mint condition.</li>
</ul>
<h3>Stage 4: Acceptance</h3>
<p>I had to accept reality &#8211; My Macbook was RIP! And the sooner I repair it, or find a replacement, the better. The sooner I can get back to my Mac profile, the sooner I will get rid of the Windows laptop. It has become a holy goal, worthy of my time and energy.</p>
<p>That&#8217;s when I started to look for solutions, and I found not one, but two solutions!</p>
<p><strong>Solution 1:</strong> I went to a local &#8220;Market&#8221; and found this cool merchant dealing only with Mac stuff. He had a lot of Apple laptops, but one laptop was particularly interesting for me: An almost new Macbook Pro 15&#8243;, with an i7 processor running at 2.66Ghz, 8gb of RAM, and 500gb 7200RPM drive. The advantage: An American Keyboard! This was a dream come true, and cost just 20,000 DHM (That&#8217;s around $2445 at the current going rate). I took the S/N and checked that it wasn&#8217;t stolen, and was still eligible for AppleCare, and it was! Awesome!</p>
<p><strong>Solution 2:</strong> The same merchant told me about some Moroccan berber guy who had a broken 15&#8243; of the same series as mine, and was using it in the desert. His screen was broken, and he was using it with an external display, but he was getting sick of it and decided to replace it. The merchant promised me the motherboard for 2000 to 2500 DHM (~$240). This means that if the motherboard works in my MBP, my wife would have a cool 15&#8243; MBP, which is way better than her regular 13&#8243; Macbook Unibody.</p>
<p>I then formulated a plan: I would buy the first laptop, sell my wife&#8217;s 13&#8243; laptop, obtain that motherboard and fix Mogul. My and my wife will then both have 15&#8243; MBP&#8217;s!</p>
<p><strong>Update #1: </strong>Solution 1 achieved. I am now back online with a new 15&#8243; i7 MBP!!! Now to try and get that motherboard for my dead Mogul before I fly to Russia!</p>
<p><strong>Update #2:</strong> My brother flew to Morocco to visit my dad, and he brought my dead MacBook Pro with him back to New York. Here, we found a chinese lab that fixes any dead Mac motherboard for a flat fee of $250. They fixed it and it&#8217;s back to life!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.skaag.net/2010/11/20/death-of-a-macbook/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Stay away from UltraHosting</title>
		<link>http://www.skaag.net/2010/07/05/stay-away-from-ultrahosting/</link>
		<comments>http://www.skaag.net/2010/07/05/stay-away-from-ultrahosting/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 17:36:07 +0000</pubDate>
		<dc:creator>Skaag</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.skaag.net/?p=109</guid>
		<description><![CDATA[Today I have been burned with UltraHosting. They want me to pay $75 just to boot a rescue CD on my machine which failed to boot a new kernel, around 24 hours ago (it has failed, because they initially set &#8230; <a href="http://www.skaag.net/2010/07/05/stay-away-from-ultrahosting/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today I have been burned with UltraHosting.</p>
<p>They want me to pay $75 just to boot a rescue CD on my machine which failed to boot a new kernel, around 24 hours ago (it has failed, because they initially set only 46mb to my /boot/ partition, which is not enough for modern kernels). So basically, my data is being held hostage for a $75 ransom, until next month where I am entitled to another 15 minutes of free support. Then I will be able to ask them to spend the 2 minutes to boot a rescue CD. Then I will be able to SSH into the box, and get my data.</p>
<p>Besides, Their support staff takes hours to respond, their billing staff even longer, and they are not helpful at all, leaving you on the edge, eating your own fingernails. I mean, around 18 hours until receiving the answer from them that they won&#8217;t help me without me paying the $75&#8230;??</p>
<p>Why anyone works with them is beyond me, especially when there are so many superior competitors in the market, with Remote Boot and KVM-IP features (Hey, With those features I could have fixed my own server in less than 10 minutes! been there, done that!).</p>
<p>Goodbye Ultrahosting&#8230; and &#8220;good luck&#8221; surviving as a hosting company&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.skaag.net/2010/07/05/stay-away-from-ultrahosting/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RabbitMQ for Beginners</title>
		<link>http://www.skaag.net/2010/03/12/rabbitmq-for-beginners/</link>
		<comments>http://www.skaag.net/2010/03/12/rabbitmq-for-beginners/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 20:52:56 +0000</pubDate>
		<dc:creator>Skaag</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[amqp]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[rabbitmq]]></category>

		<guid isPermaLink="false">http://www.skaag.net/?p=96</guid>
		<description><![CDATA[Or shall we call this "The missing beginner walkthrough"? Another name I liked and saw on the web was "The Attention Deficit Disorder Guide to ..."  :-)

In this short post, I describe how to get RabbitMQ up and running very quickly, on Ubuntu 9.10 Server. Although this will probably apply to other operating systems, since most of the issues are with RabbitMQ configuration and principles. <a href="http://www.skaag.net/2010/03/12/rabbitmq-for-beginners/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>RabbitMQ is a powerful Message Queue implementing AMQP (wire-level protocol and semantic framework for high performance enterprise messaging). This is great for those of you who like buzzwords, but here&#8217;s the simple explanation for the rest of us:</p>
<p><strong>RabbitMQ is a software service which you typically run on many servers, either in a local Lan, and/or across the Internet. The services all connect with each other in a very fault tolerant(1) manner, and allow you to transmit messages between those servers very quickly. A producer of messages inserts messages into one or more queues. A consumer of messages subscribes(2) to one or more queues. A software can be a producer, or consumer, or both a consumer and a producer of messages. This can be used to facilitate communications between many servers, on many topics, with any possible combination of routing and subscriptions, and access control. For really non-techie managers: Imagine it like a series of tubes in a house, with water containers on the roof being the producers, and taps all around the house being the consumers <img src='http://www.skaag.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </strong></p>
<p>(1) By &#8220;Fault Tolerant&#8221; I mean nodes can fail, then maybe come back up, but the rest of the nodes that are still up will keep running and transmitting messages with each other. In addition, when the fallen nodes come back up, any messages they stored on disk will be reloaded and retransmitted. Nothing is lost.</p>
<p>(2) The manner in which consumers subscribe to queues and exchanges is quite complex at first look, but fear not, some reading and then experimenting will fix it for you. Hopefully thanks to this guide, you will have a working, solid set of servers to start experimenting with.</p>
<p>Update: Found <a href="http://www.slideshare.net/old_sound/interoperability-with-rabbitmq" target="_blank">this awesome Slide Show about Interop with RabbitMQ</a>. It explains the advantages of using AMQP and RabbitMQ, and I strongly recommend you check it out.</p>
<h2>Assumptions for this guide</h2>
<p>The first assumption is that you have 3 servers, two are on a local lan, while the third is in another data center, and not only is it on another completely different IP network, it even has another domain name!</p>
<p>Here are the server names we&#8217;ll use for this guide:</p>
<pre><strong>ren</strong>.AcmeNetwork.com on 192.168.1.101
<strong>stimpy</strong>.AcmeNetwork.com on 192.168.1.102
<strong>dynamite</strong>.WildCoyote.com on 10.0.0.150</pre>
<p>The second assumption is that you are running under Ubuntu 9.10 Server, and your boxes are connected to the internet so that they can fetch the rabbitmq-server packages (and related packages).</p>
<h2>Step 1 &#8211; Setting up RabbitMQ</h2>
<p>Fortunately, RabbitMQ have released packages for most popular operating systems. The OS of choice for me is Ubuntu 9.10 Server, however I&#8217;m pretty sure you can adapt this easily to any other operating system. Ubuntu&#8217;s repository currently contains an older version of RabbitMQ 1.6.0, but we want the latest and greatest. So here&#8217;s how we do it:</p>
<pre>root@ren:/root# <strong>wget http://www.rabbitmq.com/releases/rabbitmq-server/v1.7.2/rabbitmq-server_1.7.2-1_all.deb
<span style="font-weight: normal;">root@ren:/root# </span>dpkg -i rabbitmq-server_1.7.2-1_all.deb</strong></pre>
<p>Well, that was easy, wasn&#8217;t it?</p>
<p>If Ubuntu or Debian complain that some dependencies were missing, just issue an <strong>apt-get -f install</strong> to correct the issue. The dependencies will be satisfied, and the RabbitMQ installation will complete successfully.</p>
<p>You will notice Ubuntu will install quite a few erlang related packages (RabbitMQ is written in Erlang, which is a great thing). When apt-get is done,  your RabbitMQ server will already be installed and running, and this is where people usually start scratching their heads and start to google their way around. The guides on the RabbitMQ site, while technically correct, lack in the &#8220;Teach by example&#8221; area.</p>
<h3>And before you continue! Some best practices and preparations:</h3>
<p>1) First, Let&#8217;s change the default guest password (&#8220;guest&#8221;) to something else (the part in bold is what you type):</p>
<pre>root@ren:/root# <strong>rabbitmqctl change_password guest 123456</strong>
Changing password for user "guest" ...
...done.</pre>
<div>Do this on all 3 nodes. Great, now Mr. H4ck3r can&#8217;t connect to our RabbitMQ Servers with the default password.</div>
<div>2) The next thing to do is add the hostname&#8217;s short names in your <strong>/etc/hosts</strong> file. Why? Because RabbitMQ does not like FQDN (Attempting to do this will result in the following error: <em>** System NOT running to use fully qualified hostnames **</em>). Just this single issue has cost me at least 10 minutes of research.</div>
<div>So assuming the host names above, with the IP addresses I specified, here is what our section looks like in <strong>/etc/hosts</strong>:</div>
<div>
<pre># Start RabbitMQ shortstop names definition
<strong>192.168.1.101  ren       ren.acmenetwork.com
192.168.1.102  stimpy    stimpy.acmenetwork.com
10.0.0.150     dynamite  dynamite.wildcoyote.com</strong>
# End RabbitMQ shortstop names definition</pre>
</div>
<div>Again, put the above section in <strong>all</strong> of your hosts, at the end of your <strong>/etc/hosts</strong> file, <strong>before</strong> you continue.</div>
<div>3) When RabbitMQ was first started, it generated a &#8220;<strong>cookie</strong>&#8221; automatically into a file, here: <strong>/var/lib/rabbitmq/.erlang.cookie</strong>. This cookie is different on all of our 3 nodes, but for our cluster to be able to talk to each other this cookie has to be the same. We will simply take the cookie from the first node (ren), and copy it to the other two nodes (stimpy &amp; dynamite). Here&#8217;s how to do this. First le&#8217;ts find out what the cookie is on the first server:</div>
<pre>root@ren:/root# <strong>cat /var/lib/rabbitmq/.erlang.cookie</strong>
<span style="color: #339966;"><strong>EOKOWXQREETZSHFNTPEY</strong></span></pre>
<div>Ok so now we know Ren&#8217;s cookie. Before we change the cookie on Stimpy and Dynamite, we must stop rabbitmq-server &#8211; Why? Because the cookie is used to communicate the shutdown request to rabbitmq-server. If we change this cookie before we shut it down, we will no longer be able to shut it down! <img src='http://www.skaag.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </div>
<div>Let&#8217;s shut rabbitmq-server down on Stimpy, replace the cookie, then restart:</div>
<div>
<pre>root@stimpy:/root# <strong>service rabbitmq-server stop</strong>
Stopping rabbitmq-server: rabbitmq-server.

root@stimpy:/root# <strong>echo -n <span style="color: #339966;">EOKOWXQREETZSHFNTPEY</span> &gt; /var/lib/rabbitmq/.erlang.cookie</strong>
root@stimpy:/root# <strong>service rabbitmq-server start</strong></pre>
</div>
<div>
<div>Let&#8217;s do the same on Dynamite as well:</div>
</div>
<div>
<pre>root@stimpy:/root# <strong>service rabbitmq-server stop</strong>
Stopping rabbitmq-server: rabbitmq-server.

root@stimpy:/root# <strong>echo -n <span style="color: #339966;">EOKOWXQREETZSHFNTPEY</span> &gt; /var/lib/rabbitmq/.erlang.cookie</strong>
root@stimpy:/root# <strong>service rabbitmq-server start</strong></pre>
<p><strong>Awesome!</strong> now our servers all share the same cookie, and we can continue with the setup.</p>
<h2>Step 2 &#8211; Creating the cluster</h2>
<p>Let the magic begin &#8211; There are two ways to create the cluster. The first way is to define the nodes in a configuration file. The second way is to use the command line utility rabbitmqctl to create the cluster. We will use the second method, because it uses some commands which I think are important for the understanding of the way RabbitMQ works behind the scenes.</p>
<p>The process is simple, and involves the following steps:</p>
<ol>
<li>Stop the MQ Application, without stopping the rabbitmq management process</li>
<li>&#8220;Reset&#8221; the state of the management process</li>
<li>Ask the management process to discover the new node(s)</li>
<li>Restart the MQ application</li>
</ol>
</div>
<p>And this is how it&#8217;s done in the command line:</p>
<pre>root@stimpy:/root# <strong>rabbitmqctl stop_app</strong>
Stopping node rabbit@stimpy ...
...done.

root@stimpy:/root# <strong>rabbitmqctl reset</strong>
<div id="_mcePaste">Resetting node rabbit@stimpy ...</div>
<div id="_mcePaste">...done.</div>

root@stimpy:/root# <strong>rabbitmqctl cluster rabbit@ren</strong>
Clustering node rabbit@stimpy with [rabbit@ren] ...
...done.

root@stimpy:/root# <strong>rabbitmqctl start_app</strong>
Starting node rabbit@stimpy ...
...done.</pre>
<div>Do the same with <strong>Dynamite</strong>. You know you want to:</div>
<div>
<pre style="margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace; overflow-x: hidden; overflow-y: hidden; white-space: pre-wrap; font-size: 12px; font-family: 'Courier New', Courier, 'Lucida Console', Monaco, 'DejaVu Sans Mono', 'Nimbus Mono L', 'Bitstream Vera Sans Mono'; background-color: #ffffff; width: 718px; padding: 0.8em; border: 1px solid #dddddd;">root@dynamite:/root# <strong>rabbitmqctl stop_app</strong>
Stopping node rabbit@dynamite ...
...done.

root@dynamite:/root# <strong>rabbitmqctl reset
<span style="font-weight: normal;">Resetting node rabbit@dynamite ...</span>
</strong>
<div id="_mcePaste" style="padding: 0px; margin: 0px;">...done.</div>

root@dynamite:/root# <strong>rabbitmqctl cluster rabbit@ren</strong>
Clustering node rabbit@dynamite with [rabbit@ren] ...
...done.

root@dynamite:/root# <strong>rabbitmqctl start_app</strong>
Starting node rabbit@dynamite ...
...done.</pre>
<h2>Step 3 &#8211; Enabling some Plugins</h2>
<div>This section is important if you intend to use some of the plugins supplied with rabbitmq, such as the json and mochiweb plugins.</div>
<div>In this area, the rabbitmq documentation was again lacking. It explains how to compile the plugins, and it even compiles without a hitch, however they don&#8217;t tell you where the plugin directory is located. You would expect the <strong>README.Debian</strong> file to contain this information but <strong>it doesn&#8217;t</strong>. I had to dig into a script called <strong>rabbitmq-activate-plugins</strong> to find out where it expects the plugins directory to be.</div>
</div>
<div>The steps in general are:</div>
<div>
<ol>
<li>Install some additional software which the compiler will need later (such as Mercurial, Zip, Unzip and Subversion)</li>
<li>Obtain the plugin sources via Mercurial</li>
<li>Get them compiled (the scripts in here use zip and subversion for example)</li>
<li>Once compiled, create symbolic links into the plugins directory</li>
<li>Ask rabbitmq to activate all the plugins it finds in the plugins directory</li>
<li>restart rabbitmq</li>
</ol>
</div>
<p>And here&#8217;s the actual walkthrough. First let&#8217;s install the dependencies:</p>
<pre>root@ren:/root# <strong>apt-get install mercurial zip unzip subversion erlang-dev erlang-src erlang-tools erlang-nox</strong></pre>
<p>Next we&#8217;ll go into the rabbitmq <strong>lib</strong> directory, and get the plugin sources from the Mercurial repository:</p>
<pre>root@ren:/root# <strong>cd /usr/lib/rabbitmq/lib/</strong>

root@ren:/usr/lib/rabbitmq/lib# <strong>hg clone http://hg.rabbitmq.com/rabbitmq-public-umbrella</strong>
destination directory: rabbitmq-public-umbrella
requesting all changes
adding changesets
...
...
12 files updated, 0 files merged, 0 files removed, 0 files unresolved

root@ren:/usr/lib/rabbitmq/lib# <strong>cd rabbitmq-public-umbrella/</strong>
root@ren:/usr/lib/rabbitmq/lib/rabbitmq-public-umbrella<span style="padding: 0px; margin: 0px;"><span style="padding: 0px; margin: 0px;"># </span></span><strong>make co</strong>
root@ren:/usr/lib/rabbitmq/lib/rabbitmq-public-umbrella<span style="padding: 0px; margin: 0px;"># </span><span style="padding: 0px; margin: 0px;"><strong>make</strong></span></pre>
<div><strong><span style="font-weight: normal; padding: 0px; margin: 0px;">After a pretty long output, you should have all the plugins installed. Note that this builds the plugins in development mode. This means that you can change the code, run make again, and then simply restart rabbitmq for changes to take effect immediately.</span></strong></div>
<div><strong><span style="font-weight: normal; padding: 0px; margin: 0px;">Now to the actual installation of the plugins into rabbitmq:</span></strong></div>
<pre><strong>cd ../rabbitmq_server-1.7.2
# Yes, the plugins directory isn't even created for us initially. We'll just
# make it now:
mkdir plugins
cd plugins
ln -s ../../rabbitmq-public-umbrella/erlang-rfc4627
ln -s ../../rabbitmq-public-umbrella/rabbitmq-jsonrpc
ln -s ../../rabbitmq-public-umbrella/rabbitmq-jsonrpc-channel
ln -s ../../rabbitmq-public-umbrella/rabbitmq-mochiweb
ln -s ../../rabbitmq-public-umbrella/rabbitmq-mochiweb/deps/mochiweb
</strong></pre>
<div><strong><br />
</strong></div>
<p><strong><span style="font-weight: normal; padding: 0px; margin: 0px;"><span style="font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 19px; white-space: normal; font-size: 13px;">Now we should tell rabbitmq to activate those plugins:</span></span></strong></p>
<pre><span style="font-weight: normal; padding: 0px; margin: 0px;"><span style="font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: small;"><span style="line-height: 19px; white-space: normal;"><strong>rabbitmq-activate-plugins</strong></span></span></span></pre>
<p><span style="font-weight: normal; padding: 0px; margin: 0px;"><span style="font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: small;"><span style="line-height: 19px; white-space: normal;">Now restart rabbitmq-server and you&#8217;re done:</span></span></span></p>
<pre><span style="font-weight: normal; padding: 0px; margin: 0px;"><span style="font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: small;"><span style="line-height: 19px; white-space: normal;"><strong>service rabbitmq-server restart</strong></span></span></span></pre>
<h2>Congratulations!</h2>
<p><span style="font-weight: normal; padding: 0px; margin: 0px;"><span style="font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: small;"><span style="line-height: 19px; white-space: normal;">Let&#8217;s go over what we&#8217;ve done quickly:</span></span></span></p>
<ol>
<li><span style="font-size: small;">Downloaded and installed RabbitMQ Server 1.7.2</span></li>
<li><span style="font-size: small;">Made it a bit more secure, and also configured short hostnames for all of our cluster nodes</span></li>
<li><span style="font-size: small;">Connected all of our rabbits together into a cluster</span></li>
<li><span style="font-size: small;">Downloaded &amp; Compiled the provided umbrella plugins</span></li>
<li><span style="font-size: small;">Activated some plugins</span></li>
</ol>
<p><span style="font-size: small;">If everything went smooth, you should be able to start playing with queues, exchanges, etc. I hope you are excited as I was, when you send your first messages onto the queue and start receiving them on the other side of your network.</span></p>
<p><span style="font-size: small;">I would love to hear your feedback and corrections on this guide.</span></p>
<p><span style="font-size: small;"><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.skaag.net/2010/03/12/rabbitmq-for-beginners/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Singularity very near</title>
		<link>http://www.skaag.net/2008/06/27/singularity-very-near/</link>
		<comments>http://www.skaag.net/2008/06/27/singularity-very-near/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 21:33:35 +0000</pubDate>
		<dc:creator>Skaag</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[consciousness]]></category>
		<category><![CDATA[hive mind]]></category>
		<category><![CDATA[singularity]]></category>
		<category><![CDATA[virtual reality]]></category>

		<guid isPermaLink="false">http://www.skaag.net/?p=39</guid>
		<description><![CDATA[When you read articles such as this one: Will a Computer be Implanted in Future Human Brains? you can&#8217;t help but say: Ah, the singularity is closer than ever. For me there is no doubt that eventually, small parts of my brain &#8230; <a href="http://www.skaag.net/2008/06/27/singularity-very-near/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When you read articles such as this one: <a href="http://www.dailygalaxy.com/my_weblog/2008/06/researchers-dev.html">Will a Computer be Implanted in Future Human Brains?</a> you can&#8217;t help but say: Ah, the singularity is closer than ever.</p>
<p>For me there is no doubt that eventually, small parts of my brain will be enhanced and replaced, and eventually, all of it will be replaced. It will create a new me out of me, with extra dimensions. I&#8217;m betting it will also help me revive very old memories that lost certain associations and are stranded (Some brain &#8220;doctor&#8221; software will find and fix corruptions in my memory).</p>
<p>It is at this point that I will have the option to become immortal, by uploading my consciousness to a central hive mind, where I will be able to live in a virtual reality, and later, as more advanced robots exist, I will be able to inhabit a body that looks and feels like a real human body (kinda like what the Cylons did, in Battlestar Galactica).</p>
<p>I&#8217;ll try to cover more on this subject in my blog from now on, since this subject interests me a lot! <img src='http://www.skaag.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Update: Another article about controlling something with the mind: <a href="http://www.popularmechanics.com/science/research/4272246.html">In the Future You Will Control Machines With Your Mind</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.skaag.net/2008/06/27/singularity-very-near/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached
Page Caching using memcached
Database Caching 5/20 queries in 0.006 seconds using memcached
Object Caching 414/451 objects using memcached

Served from: www.skaag.net @ 2012-02-06 11:57:49 -->
