<?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>Cognizant Transmutation &#187; Macintosh</title>
	<atom:link href="http://blog.ibd.com/category/macintosh/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ibd.com</link>
	<description>Internet Bandwidth Development: Composting the Internet for over Two Decades</description>
	<lastBuildDate>Fri, 03 Feb 2012 06:44:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Steve Jobs, BMW &amp; eBay</title>
		<link>http://blog.ibd.com/macintosh/steve-jobs-bmw-%c2%a0ebay/</link>
		<comments>http://blog.ibd.com/macintosh/steve-jobs-bmw-%c2%a0ebay/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 19:49:00 +0000</pubDate>
		<dc:creator>scoopit</dc:creator>
				<category><![CDATA[Demand Transformation]]></category>
		<category><![CDATA[Macintosh]]></category>

		<guid isPermaLink="false">http://blog.ibd.com/uncategorized/steve-jobs-bmw-%c2%a0ebay/</guid>
		<description><![CDATA[<p>Via Scoop.it &#8211; Creating the FutureThere have been so many articles posted on Steve Jobs in the past week, I really thought I wasn&#8217;t going to add one here on my blog.However, yesterday, John Lilly wrote a great piece on Steve JoJobs yesterday, and I realized I might have a story worth telling after [...]]]></description>
			<content:encoded><![CDATA[<p>Via <a href='http://www.scoop.it/t/let-s-get-back-to-creating-the-future/p/536414451/steve-jobs-bmw-ebay'>Scoop.it</a> &#8211; <a href='http://www.scoop.it/t/let-s-get-back-to-creating-the-future'>Creating the Future</a><br /><img src='http://img.scoop.it/wSWIi7HVpHZ8xFsMS740zTl72eJkfbmt4t8yenImKBXEejxNn4ZJNZ2ss5Ku7Cxt' /><br />There have been so many articles posted on Steve Jobs in the past week, I really thought I wasn&#8217;t going to add one here on my blog.However, yesterday, John Lilly wrote a great piece on Steve JoJobs yesterday, and I realized I might have a story worth telling after all. I find myself fortunate, in retrospect, to have joined Apple in 1996 as an intern, and then full time in 1997 just weeks before Steve Jobs took the helm as interim CEO.<br /><a href='http://blog.adamnash.com/2011/10/10/steve-jobs-bmw-ebay/'>Show original</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ibd.com/macintosh/steve-jobs-bmw-%c2%a0ebay/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PvPonline » Archive » Missed</title>
		<link>http://blog.ibd.com/how-the-world-works/pvponline-%c2%bb-archive-%c2%bb-missed/</link>
		<comments>http://blog.ibd.com/how-the-world-works/pvponline-%c2%bb-archive-%c2%bb-missed/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 04:30:45 +0000</pubDate>
		<dc:creator>scoopit</dc:creator>
				<category><![CDATA[How the World Works]]></category>
		<category><![CDATA[Macintosh]]></category>

		<guid isPermaLink="false">http://blog.ibd.com/uncategorized/pvponline-%c2%bb-archive-%c2%bb-missed/</guid>
		<description><![CDATA[<p>Via Scoop.it &#8211; Creating the FutureI didn’t want to do a strip about Steve Jobs. I knew a lot of people would do tribute strips and I also knew that the newspaper editorial cartoonists would mail in the same trite crap they always do. And they did. In spades. I didn’t want to add [...]]]></description>
			<content:encoded><![CDATA[<p>Via <a href='http://www.scoop.it/t/let-s-get-back-to-creating-the-future/p/533814755/pvponline-archive-missed'>Scoop.it</a> &#8211; <a href='http://www.scoop.it/t/let-s-get-back-to-creating-the-future'>Creating the Future</a><br /><img src='http://img.scoop.it/UubvyhYCvq5e3n1dolqexjl72eJkfbmt4t8yenImKBXEejxNn4ZJNZ2ss5Ku7Cxt' /><br />I didn’t want to do a strip about Steve Jobs. I knew a lot of people would do tribute strips and I also knew that the newspaper editorial cartoonists would mail in the same trite crap they always do. And they did. In spades. I didn’t want to add to that noise.<br /><a href='http://www.pvponline.com/2011/10/10/missed/'>Show original</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ibd.com/how-the-world-works/pvponline-%c2%bb-archive-%c2%bb-missed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install Pgrep and PKill for Mac OS X with Brew</title>
		<link>http://blog.ibd.com/macintosh/install-pgrep-and-pkill-for-mac-os-x-with-brew/</link>
		<comments>http://blog.ibd.com/macintosh/install-pgrep-and-pkill-for-mac-os-x-with-brew/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 05:43:31 +0000</pubDate>
		<dc:creator>Robert J Berger</dc:creator>
				<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Bash]]></category>

		<guid isPermaLink="false">http://blog.ibd.com/?p=801</guid>
		<description><![CDATA[<p>My fingers still tend to do ps ax &#124; grep some_program_name_I_want_to_kill and then do a kill 2012 to kill that process. Then I remember that I could use pgrep and/or pkill to do the same kind of thing. But then I remember I&#8217;m on a Mac which doesn&#8217;t have those commands built in, though [...]]]></description>
			<content:encoded><![CDATA[<p>My fingers still tend to do <code>ps ax | grep some_program_name_I_want_to_kill</code> and then do a <code>kill 2012</code> to kill that process. Then I remember that I could use <a href="http://en.wikipedia.org/wiki/Pgrep" target="_blank">pgrep</a> and/or <a href="http://en.wikipedia.org/wiki/Pkill" target="_blank">pkill</a> to do the same kind of thing. But then I remember I&#8217;m on a Mac which doesn&#8217;t have those commands built in, though most other *nix platforms do.</p>
<p>So I usually would try to use <a href="http://mxcl.github.com/homebrew/" target="_blank">Homebrew</a> to install it: <code>brew install pgrep</code></p>
<p>only to get: <code><span style="color: #ff0000;">Error</span>: No available formula for pgrep</code></p>
<p>After a bit of googling I find again that its: <code>brew install <a href="http://proctools.sourceforge.net/" target="_blank">proctools</a></code></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ibd.com/macintosh/install-pgrep-and-pkill-for-mac-os-x-with-brew/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Your Mac Won&#8217;t Reboot when Installing Mac OS X Lion &#8211; Reset Your PRAM</title>
		<link>http://blog.ibd.com/howto/your-mac-wont-reboot-when-installing-mac-os-x-lion-reset-your-pram/</link>
		<comments>http://blog.ibd.com/howto/your-mac-wont-reboot-when-installing-mac-os-x-lion-reset-your-pram/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 06:27:14 +0000</pubDate>
		<dc:creator>Robert J Berger</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://blog.ibd.com/?p=782</guid>
		<description><![CDATA[<p style="text-align: left;">Overseeing the Mac OS X Lion upgrade of all the Macs at Work, I&#8217;ve seen the Lion installs generally be the easiest OS X Upgrade ever. But I wasted almost two days upgrading one of our Mac Pros. We have several Mac Pros with the same configuration, 2008 Vintage Dual Quad Core&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><img class="size-full wp-image-786 aligncenter" title="Mac OS X Lion" src="http://blog.ibd.com/wp-content/uploads/2011/07/mac-os-x-lion-logo.jpg" alt="Mac OS X Lion" width="450" height="130" />Overseeing the Mac OS X Lion upgrade of all the Macs at Work, I&#8217;ve seen the Lion installs generally be the easiest OS X Upgrade ever. But I wasted almost two days upgrading one of our Mac Pros. We have several Mac Pros with the same configuration, 2008 Vintage Dual Quad Core&#8217;s with Software RAID 1 drives.</p>
<p>The first ones we did had no problem at all. But one of them gave the dreaded multi-lingual kernel panic display on the initial reboot after the user ran the Lion Updater.<img class="aligncenter size-medium wp-image-784" title="Multi-Lingual Kernel Panic Screen of Death" src="http://blog.ibd.com/wp-content/uploads/2011/07/kernel-panic-300x162.jpg" alt="Multi-Lingual Kernel Panic Screen of Death" width="300" height="162" /></p>
<p>At first I suspected the fact that the unit had Software RAID as the initial Googling showed that many folks had similar issues with Software RAID. When I booted from the Lion boot DVD I had created from the Lion installer download and ran the Disk Utilities, it reinforced the assumption that there was some issue with Lion and the RAID as the Disk Utility wouldn&#8217;t do anything with the disks (the various First Aid buttons were greyed out). But then I had some similar problems with the Snow Leopard DVD Disk Utility, so I assumed that the disk[s] had gotten corrupt. I spend most of the next day using Disk Warrior to recover the disks, tried various attempts of using Disk Utility and command line diskutil to make the RAID work with Lion.</p>
<p>Of course the itterations were long since it required reboots from DVD, etc. Eventually I got some new drives and did a totally fresh install and would just end up with the Grey Screen with the circle with a line thru it instead of the Apple Symbol on boot.</p>
<p>That was when I realized it probably wasn&#8217;t the RAID issue (also found plenty of folks including ourselves where Lion and Software RAID did work). So some different Googling found one <a href="https://discussions.apple.com/message/15749666#15749666" target="_blank">article that mentioned resetting the PRAM</a>. And of course, that worked. I had previously done the &#8220;hold down the power button till the power led blinks rapidly and hear the reset tone&#8221; assuming that reset everything that needed to be reset on modern Macs.</p>
<p>I haven&#8217;t had to<a href="http://support.apple.com/kb/ht1379" target="_blank"> CMD-OPTION-P-R keyboard chord reset the PRAM</a> in ages. I had thought that it was no longer a thing with Modern Macs and the push and hold the power button had replaced it. But low and behold what was need the was the old fashioned PRAM Reset.</p>
<p>So if you have a problem where your Mac won&#8217;t reboot after the initial install of Lion, give the old PRAM reset power chord a try.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ibd.com/howto/your-mac-wont-reboot-when-installing-mac-os-x-lion-reset-your-pram/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Getting Comments/Annotations in LyX to show up in PDF</title>
		<link>http://blog.ibd.com/howto/getting-commentsannotations-in-lyx-to-show-up-in-pdf/</link>
		<comments>http://blog.ibd.com/howto/getting-commentsannotations-in-lyx-to-show-up-in-pdf/#comments</comments>
		<pubDate>Sun, 26 Dec 2010 09:07:57 +0000</pubDate>
		<dc:creator>Robert J Berger</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[editors]]></category>
		<category><![CDATA[Lyx]]></category>
		<category><![CDATA[technical documentation]]></category>

		<guid isPermaLink="false">http://blog.ibd.com/?p=678</guid>
		<description><![CDATA[<p>I&#8217;ve started to use Lyx to do our technical documentation (Oh how I wish I could use Framemaker on the Mac, but Adobe destroyed the best tool for technical documentation  and made it only available on the legacy Windows virus vector. Lyx is nothing like Framemaker other than supporting structure documents. I&#8217;m just lamenting [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve started to use <a href="http://www.lyx.org/" target="_blank">Lyx</a> to do our technical documentation (Oh how I wish I could use <a href="http://en.wikipedia.org/wiki/Adobe_FrameMaker" target="_blank">Framemaker</a> on the Mac, but Adobe destroyed the best tool for technical documentation  and made it only available on the legacy Windows virus vector. Lyx is nothing like Framemaker other than supporting structure documents. I&#8217;m just lamenting a loss of what I would be using now if I could instead of Lyx). I tried using Pages, but it does not support Structured Documents very well and has no mechanism for supporting versioning or collaboration.</p>
<p>I really like how Lyx is a true structured document editor. Its <em><a href="http://en.wikipedia.org/wiki/WYSIWYM" target="_blank"><strong>W</strong>hat <strong>Y</strong>ou <strong>S</strong>ee <strong>I</strong>s <strong>W</strong>hat <strong>Y</strong>ou <strong>M</strong>ean (WYSIWYM)</a> </em>instead of WYSIWYG. You focus on the structure and text of your document and let the tool render the document.</p>
<p>The main users of Lyx seem to be academics. Most of the templates are for Thesis and other academic related documents. But the Report and Article templates are fine for most technical documents and that is what I&#8217;m using.</p>
<p>Lyx is not for those who want to tweak the layout via GUIs (you can tweak the layout as much as you want, but you have to understand the underlying LaTeX platform and do most of  your tweaks in code). Its not a slick, ultra-friendly environment. And things get a bit confusing once you get off the beaten track of the pretty good documentation of basic stuff. It doesn&#8217;t particularly feel like a Mac App. But its the best I&#8217;ve found for doing structured technical docs in a way that is versionable (like with Git) and can support multiple people doing edits and collaboration on a document.</p>
<p>I&#8217;m using the <a href="http://wiki.lyx.org/LyX/NewInLyX20" target="_blank">2.0 Beta</a> which is a significant improvement over the 1.6 stable version. I&#8217;ve had no problems with the Beta and the functionality is a big improvement. You can download the Beta binary images for the Mac, Linux or if you must, Windows here: <a href="ftp://ftp.lyx.org/pub/lyx/devel/lyx-2.0/beta2" target="_blank">ftp://ftp.lyx.org/pub/lyx/devel/lyx-2.0/beta2</a>.</p>
<p>Some things are a bit opaque as how to do. For instance, Lyx has some nice mechanisms to add Notes and Comments to the text. But these Notes and comments don&#8217;t show up in the PDF output. This is fine if you are doing all your collaboration with other folks using Lyx. But sometimes you want to share the PDF output and have the notes show up there. I could not find out a way to make Notes or Comments to  show up in the PDF. The &#8220;Greyed Out&#8221; option will show up in the PDF though.</p>
<p>I did discover a couple of options in the Lyx Wiki. The first one <a href="http://wiki.lyx.org/Tips/ExportWithCommentsIncluded" target="_blank">ExportWithCommentsIncluded</a> was a bit confusing as it didn&#8217;t seem to apply to the 2.0 Beta. But if I put the code they suggest for version &lt;1.5</p>
<pre class="brush: plain; title: ; notranslate">
\RequirePackage{colortbl, tabularx}
\@ifundefined{comment}{}% do nothing if the comment environment is not defined
  {% redefine the comment environment if it is defined
   \renewenvironment{comment}
    {% replaces \begin{comment}
     \par\medskip\noindent
     \tabularx{\textwidth}{|&gt;{\columncolor[gray]{0.9}}X|}
     \hline
     \emph{\textbf{Comment:}}% You can use any other text instead of &quot;Comment:&quot; or leave it
    }
    {% replaces \end{comment}
     \endtabularx\hrule\par\medskip
    }
  }%
</pre>
<p>into the Document Preamble, (accessed via <em>Menu Bar Document-&gt;Settings&#8230;-&gt;LaTeX Preamble</em>), then the Comments would show up in the PDF. (Notes still does not).</p>
<p>Another place in the Lyx Wiki, <a href="http://wiki.lyx.org/Layouts/Modules#toc2" target="_blank">Producing annotations and comments</a>,  mentions you can load a module that directly uses PDF annotations. But it was a bit short on instructions on how exactly to do that. I eventually figured it out. These instructions are for Lyx 2.0 Beta 2 on Mac OS X Snow Leopard.</p>
<p>Save the file from the link <a href="http://wiki.lyx.org/uploads/Modules/pdfcomment.module" target="_blank">uploads:/Modules/pdfcomment.module</a> to <em>~/Library/Application Support/Lyx-2.0/layouts/pdfcomment.module</em>. Download the file <a href="http://download.berlios.de/pdfcomment/pdfcomment_v2.1.zip" target="_blank">pdfcomment_v2.1.zip</a>, unzip it and copy the file pdfcomment.sty from the unzipped directory to <em>/Application/LyX.app/Contents/Resources/tex/pdfcomment.sty</em></p>
<p>Then inside of Lyx mouse to <em>Menu Bar</em> <em>Lyx-&gt;Reconfigure</em>. Quit Lyx and restart.</p>
<p>Next mouse to Menu Bar <em>Document-&gt;Settings&#8230;-&gt;Modules</em>, select <em>PDF comments</em> in the <em>Available</em> and click <em>Add</em>, then <em>Apply</em> (and maybe <em>Save as Document Defaults</em> so it will apply to all documents from then on)</p>
<p>Now you will have new options in <em>Menu Bar Insert-&gt;Custom Insets:</em> PDF-Annotation and PDF-Margin. I couldn&#8217;t see a difference between them off hand. They put the PDF annotation Icon at the point of insert and the comments you type for that tag show up in the margin of the PDF document.</p>
<p>You potentially can tweak the look of the PDF annotations but you need to dive into the code.</p>
<p>I&#8217;ll try to blog about other experiences and tips I find on Lyx as I go.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ibd.com/howto/getting-commentsannotations-in-lyx-to-show-up-in-pdf/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HBase/Hadoop on Mac OS X (Pseudo-Distributed)</title>
		<link>http://blog.ibd.com/howto/hbase-hadoop-on-mac-ox-x/</link>
		<comments>http://blog.ibd.com/howto/hbase-hadoop-on-mac-ox-x/#comments</comments>
		<pubDate>Mon, 03 May 2010 03:50:13 +0000</pubDate>
		<dc:creator>Robert J Berger</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Scalable Deployment]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[HBase]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://blog.ibd.com/?p=565</guid>
		<description><![CDATA[<p>I wanted to do some experimenting with various tools for doing Hadoop and HBase activities and didn&#8217;t want to have to bother making it work with our Cluster in the Cloud. I just wanted a simple experimental environment on my Macbook Pro running Snow Leopard Mac OS X.</p> <p>So I thought it was time [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to do some experimenting with various tools for doing Hadoop and HBase activities and didn&#8217;t want to have to bother making it work with our Cluster in the Cloud. I just wanted a simple experimental environment on my Macbook Pro running Snow Leopard Mac OS X.</p>
<p>So I thought it was time to revisit installing Hadoop and HBase on the Mac using the latest versions of everything. This will be deployed as Psuedo-Distributed mode native to Mac OS X. Some folks actually create a set of Linux VMs with a full Hadoop/HBase stack and run that on the Mac, but that is a bit of overkill for now.</p>
<p>These instructions mainly follow the standard instructions for <a href="http://hadoop.apache.org/common/docs/current/quickstart.html" target="_blank">Apache Hadoop</a> and <a href="http://hadoop.apache.org/hbase/docs/current/api/overview-summary.html#pseudo-distrib" target="_blank">Apache HBase</a></p>
<h2>Prerequisits</h2>
<p>Mac OS X Xcode developer tools which includes Java 1.6.x. You can get this for free from the <a href="https://developer.apple.com/mac/" target="_blank">Apple Mac Dev Center</a>. You have to become a member but there is a free membership available.</p>
<h2>Download and Unpack Latest Distros</h2>
<p>You can get a link to a mirror for Hadoop via the <a href="http://www.apache.org/dyn/closer.cgi/hadoop/core/" target="_blank">Hadoop Apache Mirror link</a> and for Hbase at the <a href="http://www.apache.org/dyn/closer.cgi/hadoop/hbase/" target="_blank">HBase Apache Mirror link</a>. Each of those links will bring you to a suggested link to a mirror for Hadoop or HBase. Once you click on the suggest link, it will bring you to a mirror with the recent releases. You can click on the <em>stable</em> link which will then bring you to a directory that has the latest stable Hadoop (as of this writing: hadoop-0.20.2.tar.gz) or HBase (as of this writing: hbase-0.20.3.tar.gz ). Click on those tar.gz files to download them.</p>
<p>I am going to keep the distros in ~/work/pkgs. I usually create a directory ~/work/pkgs and unpack the tar files there as numbered versions and then create symbolic links to them in ~/work. But you can do this all in any directory that you can control.:</p>
<pre><code>cd ~/work
mkdir -p pkgs
cd pkgs
tar xvzf hadoop-0.20.2.tar.gz
tar xvzf hbase-0.20.3.tar.gz
cd ..
ln -s pkgs/hadoop-0.20.2 hadoop
ln -s pkgs/hbase-020.3 hbase
mkdir -p hadoop/logs
mkdir -p hbase/logs</code></pre>
<p>Now you can have your tools all access ~/work/hadoop or ~/work/hbase and not care what version it is. You can update to later version just by downloading, untarring the distro and then just change the symbolic links.</p>
<h2>Configure Hadoop</h2>
<p>All the configuration files mentioned here will be in <em>~/work/hadoop/conf.</em> In this example we are assuming that the Hadoop servers will only be accessed from this <em>localhost</em>. If you need to make it accessable from other hosts or VMs on your lan that support Bonjour, you could use the bonjour name  (ie. the name of your mac followed by .local such as <em>mymac.local</em>) instead of <em>localhost</em> in the following Hadoop and HBase configuraitons</p>
<h3>hadoop-env.sh</h3>
<p>Mainly need to tell Hadoop where your JAVA_HOME is.</p>
<p>Add the following line below the commented out JAVA_HOME line is in hadoop-env.sh</p>
<pre><code>export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home</code></pre>
<h3>core-site.xml</h3>
<pre><code>&lt;?xml version="1.0"?&gt;
&lt;?xml-stylesheet type="text/xsl" href="configuration.xsl"?&gt;

&lt;configuration&gt;
  &lt;property&gt;
    &lt;name&gt;fs.default.name&lt;/name&gt;
    &lt;value&gt;hdfs://localhost:9000&lt;/value&gt;
  &lt;/property&gt;
&lt;/configuration&gt;</code></pre>
<h3>hdfs-site.xml</h3>
<pre><code>&lt;?xml version="1.0"?&gt;
&lt;?xml-stylesheet type="text/xsl" href="configuration.xsl"?&gt;

&lt;configuration&gt;
  &lt;property&gt;
    &lt;name&gt;dfs.replication&lt;/name&gt;
    &lt;value&gt;1&lt;/value&gt;
  &lt;/property&gt;
&lt;/configuration&gt;</code></pre>
<h3>mapred-site.xml</h3>
<pre><code>&lt;?xml version="1.0"?&gt;
&lt;?xml-stylesheet type="text/xsl" href="configuration.xsl"?&gt;

&lt;configuration&gt;
  &lt;property&gt;
    &lt;name&gt;mapred.job.tracker&lt;/name&gt;
    &lt;value&gt;localhost:9001&lt;/value&gt;
  &lt;/property&gt;
&lt;/configuration&gt;</code></pre>
<h3>Make sure you can ssh without a password to the hostname used in the configs</h3>
<p>The Hadoop and Hbase start/stop scripts use ssh to access the various servers. In this case of doing a Pseudo-Distributed mode, everything is running on the <em>localhost</em>, but we still need to allow the scripts to ssh to the localhost.</p>
<h4>Check that you can ssh to the <em>localhost</em> (or whatever hostname you used in the above configs)</h4>
<p>We&#8217;re assuming that we&#8217;ll be running the Hadoop/HBase servers as the same user as our login. You can set things up to run as the hadoop user, but its kind of complicated on Mac OS X. See the section<em> File System Layout</em> in an earlier post <em><a href="http://blog.ibd.com/scalable-deployment/hadoop-hdfs-and-hbase-on-ubuntu/" target="_blank">Hadoop, HDFS and Hbase on Ubuntu &amp; Macintosh Leopard</a>.</em> That section and a few other points thru that post describe how to create and use a hadoop user to run the Hadoop and HBase servers.</p>
<p>Back to just doing this as our own user. Test that you can ssh to the <em>localhost</em> without a password:</p>
<pre>ssh localhost</pre>
<p>If you see something like the following paragraph  that ends up with a password prompt, then you need to add a key to your ssh setup that does not need a password (you may need to say yes if you are asked if you want to continue connecting).</p>
<pre>The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is 3c:5d:6a:39:64:78:02:9d:a3:c9:69:68:50:23:71:eb.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
Password:</pre>
<p>To create a passwordless key and add it to your set of authorized keys that can access your host, do the following (as yourself, not as root. The id_dsa file name can be arbitrary):</p>
<pre>ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa_for_hadoop
cat ~/.ssh/id_dsa_for_hadoop.pub &gt;&gt; ~/.ssh/authorized_keys</pre>
<p>If you have strong alternative opinions on how to set up your own keys to accomplish the same thing please do it your own way. This is just the basic way of doing a passwordless ssh. You may want to use a key you already have lying around or some other mechanism.</p>
<h3>Start Hadoop</h3>
<h4>One time format of  Hadoop File System</h4>
<p>Only once, before the first time you use Hadoop, you have to create a formated Hadoop File System. Don&#8217;t do this again once you have data in your Hadoop file system as it will erase anything you might have saved there. You may have to do this command again if somehow you screw up your file system. But its not something to do lightly the second time.</p>
<pre>~/work/hadoop/bin/hadoop namenode -format</pre>
<p>If all goes well, you should see something like:</p>
<pre>10/05/02 18:45:04 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = Psion.local/192.168.50.16
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 0.20.2
STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707; compiled by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010
************************************************************/
10/05/02 18:45:04 INFO namenode.FSNamesystem: fsOwner=rberger,rberger,admin,com.apple.access_screensharing,_developer,_lpoperator,_lpadmin,_appserveradm,_appserverusr,localaccounts,everyone,com.apple.sharepoint.group.2,com.apple.sharepoint.group.3,dev,com.apple.sharepoint.group.1,workgroup
10/05/02 18:45:04 INFO namenode.FSNamesystem: supergroup=supergroup
10/05/02 18:45:04 INFO namenode.FSNamesystem: isPermissionEnabled=true
10/05/02 18:45:04 INFO common.Storage: Image file of size 97 saved in 0 seconds.
10/05/02 18:45:04 INFO common.Storage: Storage directory /tmp/hadoop-rberger/dfs/name has been successfully formatted.
10/05/02 18:45:04 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at Psion.local/192.168.50.16
************************************************************/</pre>
<h4>Starting and stopping Hadoop</h4>
<p>Now you can start Hadoop. You will use this command to start Hadoop in general:</p>
<pre>~/work/hadoop/bin/start-all.sh</pre>
<p>You can stop Hadoop with the command</p>
<pre>~/work/hadoop/bin/stop-all.sh</pre>
<p>But remember if you are running HBase, stop that first, then stop Hadoop.</p>
<h3>Making sure Hadoop is working</h3>
<p>You can see the Hadoop logs in ~/work/hadoop/logs</p>
<p>You should be able to see the Hadoop Namenode web interface at <a href="http://localhost:50070/" target="_blank">http://localhost:50070/</a> and the JobTracker Web Interface at <a href="http://localhost:50030/" target="_blank">http://localhost:50030/</a>. If not, check that you have 5 java processes running where each of those java processes have one of the following as their last command line (as seen from a <code>ps ax | grep hadoop</code> command) :</p>
<pre>org.apache.hadoop.mapred.JobTracker
org.apache.hadoop.hdfs.server.namenode.NameNode
org.apache.hadoop.mapred.TaskTracker
org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode
org.apache.hadoop.hdfs.server.datanode.DataNode</pre>
<p>If you do not see these 5 processes, check the logs in ~work/hadoop/logs/*.{out,log} for messages that might give you a hint as to what went wrong.</p>
<h4>Run some example map/reduce jobs</h4>
<p>The Hadoop distro comes with some example / test map / reduce jobs. Here we&#8217;ll run them and make sure things are working end to end.</p>
<pre><code>cd ~/work/hadoop
# Copy the input files into the distributed filesystem
# (there will be no output visible from the command):
bin/hadoop fs -put conf input
# Run some of the examples provided:
# (there will be a large amount of INFO statements as output)
bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
# Examine the output files:
bin/hadoop fs -cat output/part-00000
</code></pre>
<p>The resulting output should be something like:</p>
<pre>3	dfs.class
2	dfs.period
1	dfs.file
1	dfs.replication
1	dfs.servers
1	dfsadmin
1	dfsmetrics.log</pre>
<h2>Configuring HBase</h2>
<p>The following config files all reside in <em>~/work/hbase/conf</em>. As mentioned earlier, use a FQDN or a Bonjour name instead of localhost if you need remote clients to access HBase. But if you don&#8217;t use localhost here, make sure you do the same in the Hadoop config.</p>
<h3>hbase-env.sh</h3>
<p>Add the following line below the commented out JAVA_HOME line is in hbase-env.sh</p>
<pre><code>export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home</code></pre>
<p>Add the following line below the commented out HBASE_CLASSPATH= line</p>
<pre><code>export HBASE_CLASSPATH=${HOME}/work/hadoop/conf</code></pre>
<h3>hbase-site.xml</h3>
<pre><code>&lt;?xml version="1.0"?&gt;
&lt;?xml-stylesheet type="text/xsl" href="configuration.xsl"?&gt;
&lt;?xml version="1.0"?&gt;&lt;?xml-stylesheet type="text/xsl" href="configuration.xsl"?&gt;
&lt;configuration&gt;
  &lt;property&gt;
    &lt;name&gt;hbase.rootdir&lt;/name&gt;
    &lt;value&gt;hdfs://localhost:9000/hbase&lt;/value&gt;
    &lt;description&gt;The directory shared by region servers.
    &lt;/description&gt;
  &lt;/property&gt;
&lt;/configuration&gt;
</code></pre>
<h3>Making Sure HBase is Working</h3>
<p>If you do a ps ax | grep hbase you should see two java processes. One should end with:<br />
<code>org.apache.hadoop.hbase.zookeeper.HQuorumPeer start</code><br />
And the other should end with:<br />
<code>org.apache.hadoop.hbase.master.HMaster start</code><br />
Since we are running in the Pseudo-Distributed mode, there will not be any explicit regionservers running. If you have problems, check the logs in ~/work/hbase/logs/*.{out,log}</p>
<h3>Testing HBase using the HBase Shell</h3>
<p>From the unix prompt give the following command:</p>
<pre>~/work/hbase/bin/hbase shell</pre>
<p>Here is some example commands from the Apache HBase Installation Instructions:</p>
<pre>base&gt; # Type "help" to see shell help screen
hbase&gt; help
hbase&gt; # To create a table named "mylittletable" with a column family of "mylittlecolumnfamily", type
hbase&gt; create "mylittletable", "mylittlecolumnfamily"
hbase&gt; # To see the schema for you just created "mylittletable" table and its single "mylittlecolumnfamily", type
hbase&gt; describe "mylittletable"
hbase&gt; # To add a row whose id is "myrow", to the column "mylittlecolumnfamily:x" with a value of 'v', do
hbase&gt; put "mylittletable", "myrow", "mylittlecolumnfamily:x", "v"
hbase&gt; # To get the cell just added, do
hbase&gt; get "mylittletable", "myrow"
hbase&gt; # To scan you new table, do
hbase&gt; scan "mylittletable"</pre>
<p>You can stop hbase with the command:</p>
<pre>~/work/hbase/bin/stop-hbase.sh</pre>
<p>Once that has stopped you can stop hadoop:</p>
<pre>~/work/hadoop/bin/stop-all.sh</pre>
<h2>Conclusion</h2>
<p>You should now have a fully working Pseudo-Distributed Hadoop / HBase setup on your Mac. This is not suitable for any kind of large data or production project. In fact it will probably fail if you try to do anything with lots of data or high volumes of I/O. HBase seems to not like to work well until you get 4 &#8211; 5 regionservers.</p>
<p>But this Pseudo-Distributed version should be fine for doing experiments with tools and small data sets.</p>
<p>Now I can get on with playing with <a href="http://github.com/clj-sys/cascading-clojure" target="_blank">Cascading-Clojure</a> and <a href="http://nathanmarz.com/blog/introducing-cascalog/" target="_blank">Cascalog</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ibd.com/howto/hbase-hadoop-on-mac-ox-x/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Installing Ruby Mysql Gem on Snow Leopard Server</title>
		<link>http://blog.ibd.com/macintosh/installing-ruby-mysql-gem-on-snow-leopard-server/</link>
		<comments>http://blog.ibd.com/macintosh/installing-ruby-mysql-gem-on-snow-leopard-server/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 23:30:47 +0000</pubDate>
		<dc:creator>Robert J Berger</dc:creator>
				<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Ruby / Rails]]></category>
		<category><![CDATA[Scalable Deployment]]></category>
		<category><![CDATA[Sysadmin]]></category>

		<guid isPermaLink="false">http://blog.ibd.com/?p=304</guid>
		<description><![CDATA[<p>Snow Leopard  Server (and at least Leopard Server) both have MySQL installed already. But its not a complete enough install to build the Ruby Mysql Gem. It seems that the Snow Leopard Server Mysql does not include all the client stuff that is needed by the mysql gem.</p> <p>The Apple Support article: Mac OS X [...]]]></description>
			<content:encoded><![CDATA[<p>Snow Leopard  <span style="text-decoration: underline;"><em>Server</em></span> (and at least Leopard <span style="text-decoration: underline;"><em>Server</em></span>) both have MySQL installed already. But its not a complete enough install to build the Ruby Mysql Gem. It seems that the Snow Leopard Server Mysql does not include all the client stuff that is needed by the mysql gem.</p>
<p>The Apple Support article: <a href="http://support.apple.com/kb/HT3370" target="_blank">Mac OS X Server 10.5.6 or later: MySQL libraries available for download</a> is the main tip, but you&#8217;ll need to get the actual latest version, not necessarily the version specified in the article. I downloaded <a href="http://www.opensource.apple.com/other/MySQL-49.binaries.tar.gz">MySQL-49 Binary</a> which is actually mysql  Ver 14.12 Distrib 5.0.82, for apple-darwin10.0.</p>
<p>This is a bit scary as the installation process is to untar the binary right on top of the actual /usr filesystem. I don&#8217;t know for sure if its totally right&#8230; and 64 bit and there&#8217;s no going back.</p>
<p>The prcoess is after you download the binary run the following command as root/sudo (and remember the -C / says to untar it starting at the root of the filesystem, so its going to overwrite things in /usr):</p>
<p>tar -xzvf MySQL-49.binaries.tar.gz -C /</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ibd.com/macintosh/installing-ruby-mysql-gem-on-snow-leopard-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Want to work at a Startup with Cool Tech? (HBase, Clojure, Chef, Swarms, Javascript, Ruby &amp; Rails)</title>
		<link>http://blog.ibd.com/macintosh/want-to-work-at-a-startup-with-cool-tech-hbase-clojure-chef-swarms-javascript-ruby-rails/</link>
		<comments>http://blog.ibd.com/macintosh/want-to-work-at-a-startup-with-cool-tech-hbase-clojure-chef-swarms-javascript-ruby-rails/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 18:15:01 +0000</pubDate>
		<dc:creator>Robert J Berger</dc:creator>
				<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Opscode Chef]]></category>
		<category><![CDATA[Ruby / Rails]]></category>
		<category><![CDATA[Runa]]></category>
		<category><![CDATA[Scalable Deployment]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[HBase]]></category>
		<category><![CDATA[rabbitmq]]></category>
		<category><![CDATA[tweekts]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.ibd.com/?p=253</guid>
		<description><![CDATA[Opportunity Knocks <p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;"> <p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">Runa.com, the startup where I am CTO, is looking for great developers to join our small agile team. We&#8217;re an early stage, pre-series-A startup (presently funded with strategic investments from two [...]]]></description>
			<content:encoded><![CDATA[<h1 style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;"><strong>Opportunity Knocks</strong></h1>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">Runa.com, the startup where I am CTO, is looking for great developers to join our small agile team. We&#8217;re an early stage, pre-series-A startup (presently funded with strategic investments from two large corporations). Runa offers a SaaS to on-line merchant that allows them to offer dynamic product and consumer specific promotions embeded in their website. This will be a very large positive disruption to the online retailing world.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;"><span style="text-decoration: underline;">Techie keywords:</span> <strong>clojure, hadoop, hbase, rabbitmq, erlang, chef, swarm computing, ruby, rails, javascript, amazon EC2, emacs, Macintosh, Linux, selenium, test/behavior driven development, agile, lean, XP, scalability</strong></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">If you&#8217;re interested, email  <a href="mailto:jobs@runa.com">jobs@runa.com</a></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">If you want to know more, read on!</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<h1 style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;"><strong>What do we do</strong></h1>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">Runa aims to provide the top of the long tail thru the middle of the top 500 online retailers with tools/services that companies like amazon.com use/provide. These smaller guys can&#8217;t afford or don&#8217;t have the resources to do anything on that scale, but by using our SaaS services, they can make more money while providing customers with greater value.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">The first service we&#8217;re building is what we call Dynamic Sale Price.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">It&#8217;s a simple concept &#8211; it allows the online-retailer to offer a sale price for each product on his site, personalized to the individual consumer who is browsing it. By using this service, merchants are able to -</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<ul>
<li>Increase conversion (get them to buy!) and</li>
<li>Offer consumers a special price which maximizes the merchant&#8217;s profit</li>
</ul>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">This is different from &#8220;dumb-discounting&#8221; where something is marked-down, and everyone sees the same price. This service is more like airline or hotel pricing which varies from day to day, but much more dynamic and real-time. Further, it is based on broad statistical factors AND individual consumer behavior. After all, if you lower prices enough, consumers will buy. Instead, we dynamically lower prices to a point where statistically, that consumer is most likely to buy.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<h1 style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;"><strong>How we do it</strong></h1>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">Runa does this by performing statistical analysis and pattern recognition of what consumers are doing on the merchant sites. This includes browsing products on various pages, adding and removing items from carts, and purchasing or abandoning the carts. We track consumers as they browse, and collect vast quantities of this click-stream data. By mining this data and applying algorithms to determine a price point per consumer based on their behavior, we&#8217;re able to  maximize both conversion (getting the consumer to buy) AND merchant profit.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">We also offer the merchant comprehensive reports based on analysis of the mountains of data we collect. Since the data tracks consumer activity down to the individual product SKU level (for each individual consumer), we can provide very rich analytics.  This is a tool that merchants need today, but don&#8217;t have the resources to build for themselves.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<h1 style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;"><strong>The business model</strong></h1>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">For reference, it is useful to understand the affiliate marketing space. Small-to-medium merchants (our target audience) pay affiliates up to 40% of a sale price. Yes, 40%. The average is in the 20% range.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">We charge our merchants around 10% of sales the Runa delivers. Our merchants are happy to pay it, because it is a performance-based pay, lower than what they pay affiliates, and there is zero up-front cost to the service. In fact, the above mentioned analytics reports are free.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">We&#8217;re targeting e-commerce PLATFORMS (as opposed to individual merchants); in this way, we&#8217;re able to scale up merchant-acquisition. We have 10 early-customer merchants right now, with about 100 more planned to go live in the next 2-3 months. By the end of next year, we&#8217;re targeting about 1,000 merchants and 10,000 merchants the following year. Our channel deployment model makes these goals achievable.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">At something like a 5 to 10% service charge, and a typical merchant having between 500K to 1M in sales per year, this is a VERY profitable business model. That is, of course, if we&#8217;re successful&#8230; but we&#8217;re seeing very positive signs so far.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<h1 style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;"><strong>Technology</strong></h1>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">Most of our front-end stuff (like the merchant-dashboard, reports, campaign management) is built with Ruby on Rails. Our merchant integration requires browser-side Javascript magic. All our analytics (batch-processing) and real-time pricing services are written in Clojure. We use RabbitMQ for all our messaging needs. We store data in HBase. We&#8217;re deployed on Amazon&#8217;s EC2.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">Here are a few blog postings about what we&#8217;ve been up to -</p>
<p><a href="http://s-expressions.com/2009/05/02/startup-logbook-distributed-clojure-system-in-production-v02/" target="_blank">Distributed Clojure system in production</a><br />
<a href="http://s-expressions.com/2009/04/12/using-messaging-for-scalability/" target="_blank">Using messaging for scalability</a><br />
<a href="http://s-expressions.com/2009/03/31/capjure-a-simple-hbase-persistence-layer/" target="_blank">Capjure: a simple HBase persistence layer</a><br />
<a href="http://s-expressions.com/2009/01/28/startup-logbook-clojure-in-production-release-v01/" target="_blank">Clojure in production<br />
</a><span style="color: #0000ee; "><span style="text-decoration: underline;"><a href="http://blog.ibd.com/scalable-deployment/experience-installing-hbase-0-20-0-cluster-on-ubuntu-9-04-and-ec2/" target="_blank">Experience installing Hbase 0.20.0 Cluster on Ubuntu 9.04 and EC2</a></span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">We&#8217;ve also open-sourced a few of our projects -</p>
<p><a href="http://github.com/amitrathore/swarmiji/tree/master" target="_blank">swarmiji</a> &#8211; A distributed computing system to write and run Clojure code in parallel, across CPUs<br />
<a href="http://github.com/amitrathore/capjure/tree/master" target="_blank">capjure</a> &#8211; Clojure persistence for HBase</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<h1 style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;"><strong>Culture at Runa</strong></h1>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">We&#8217;re a small team, very passionate about what we do. We&#8217;re focused on delivering a ground-breaking, disruptive service that will allow merchants to really change the way they sell online. We work start-up hours, but we&#8217;re flexible and laid-back about it. We know that a healthy personal life is important for a good professional life. We work with each other to support it.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">We use an agile process with a lot of influences from the &#8220;Lean&#8221;:http://en.wikipedia.org/wiki/Lean_software_development and &#8220;Kanban&#8221;:http://leansoftwareengineering.com/2007/08/29/kanban-systems-for-software-development/ world. We use &#8220;Mingle&#8221;:http://studios.thoughtworks.com/mingle-agile-project-management to run our development process. Everything, OK mostly everything <img src='http://blog.ibd.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  is covered by automated tests, so we can change things as needed.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">We&#8217;re all Apple in the office &#8211; developers get a MacPro with a nice 30&#8243; screen, and a nice 17&#8243; MacBook Pro.  We deploy on Ubuntu servers.  Aeron chairs are cliché, yes; but, very comfy.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">The environment is chilled out&#8230; you can wear shorts and sandals to work&#8230;  Very flat organization, very non-bureaucratic&#8230; nice open spaces (no cubes!). Lunch is brought in on most days! Beer and snacks are always in the fridge.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">We&#8217;re walking distance to the San Antonio Caltrain station (biking distance from the Mountain View Caltrain/VTA lightrail station).</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<h1 style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;"><strong>What&#8217;s in it for you</strong></h1>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<ul>
<li>Competitive salaries, and lots of stock-options</li>
<li>Cutting edge technology stack</li>
<li>Fantastic business opportunity, and early-stage (= great time to join!)</li>
<li>Developer #5 &#8211; means plenty of influence on foundational architecture and design</li>
<li>Smart, full bandwidth, fun people to work with</li>
<li>Very comfortable, nice office environment</li>
<li>We have a &#8220;No Assholes&#8221; policy</li>
</ul>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<h1 style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;"><strong>OK!</strong></h1>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">So, if you&#8217;re interested, email us at <a href="mailto:jobs@runa.com">jobs@runa.com</a></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">No recruiters please!</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Verdana;">We would prefer folks who are already in the Bay Area (but if you not local and are really great let&#8217;s talk!)</p>
<div><span style="font-family: verdana, arial, helvetica, clean, sans-serif; font-size: small;"><span style="line-height: 14px; white-space: pre-wrap; "><br />
</span></span></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.ibd.com/macintosh/want-to-work-at-a-startup-with-cool-tech-hbase-clojure-chef-swarms-javascript-ruby-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Apache Thrift on Ubuntu and Leopard</title>
		<link>http://blog.ibd.com/howto/installing-apache-thrift-on-ubuntu-and-leopard/</link>
		<comments>http://blog.ibd.com/howto/installing-apache-thrift-on-ubuntu-and-leopard/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 00:50:59 +0000</pubDate>
		<dc:creator>Robert J Berger</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Scalable Deployment]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[APIs]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Thrift]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.ibd.com/?p=172</guid>
		<description><![CDATA[<p>The instructions for installing the Apache Thrift on the Wiki missed a few key things in terms of installing on Ubuntu (8.04 in my case) and Macintosh OS X Leopard (10.5.6).</p> Gitting the latest source <p>For instance they show you how to get the latest via SVN or a snapshop via wget. But the [...]]]></description>
			<content:encoded><![CDATA[<p>The instructions for installing the <a href="http://wiki.apache.org/thrift/ThriftInstallation">Apache Thrift on the Wiki</a> missed a few key things in terms of installing on Ubuntu (8.04 in my case) and Macintosh OS X Leopard (10.5.6).</p>
<h2>Gitting the latest source</h2>
<p>For instance they show you how to get the latest via SVN or a snapshop via wget. But the wget actually gets it from a git repository, but they don&#8217;t tell you how to directly git it! Which is:</p>
<pre>git clone git://git.thrift-rpc.org/thrift.git</pre>
<p>That will create a a source distribution of thrift in a directory called thrift.</p>
<p>The git repository is where the developers are really working according to the <a href="http://wiki.apache.org/thrift/GitRepository">Developers Wiki on the GitRepository</a>. There is also a <a href="http://github.com/dreiss/thrift">copy on github</a>.</p>
<h2>Requirements</h2>
<p>The relevant requirements as stated by the wiki are:</p>
<blockquote><p>GNU build tools: autoconf 2.59+ (2.60+ recommended), automake 1.9+, libtool 1.5.24+<br />
boost 1.34.0+<br />
g++ 3.3.5+<br />
pkgconfig (Use MacPorts for Mac OS X)<br />
lex and yacc (developed primarily with flex and bison)</p></blockquote>
<p>Well, for Ubuntu it wasn&#8217;t quite clear what was really required. The <a href="http://wiki.apache.org/thrift/GettingUbuntuPackages#preview">GettingUbuntuPackages wiki page</a> listed only a few of the required packages. <a href="http://lueb.be/2009/02/27/installing-apache-thrift-on-ubuntu-804/" target="_blank">Max Luebbe has a blog page</a> that has a more in depth list:</p>
<pre>apt-get install libboost-dev libevent-dev python-dev automake pkg-config libtool flex bison sun-java5-jdk</pre>
<p>We already had Sun Java6 installed and that worked fine, so I didn&#8217;t include sun-java5-jdk. But we didn&#8217;t have g++ installed, so also do:</p>
<pre>apt-get install g++</pre>
<p>Confusingly, the ./configure did not fail saying there was no g++ but failed by saying there was no boost. It took a while to figure out it was actually not finding boost because it could not compile the little configure test script that was used to detect if boost was installed or not!</p>
<p>So the actual apt-get used on our ubuntu 8.04 server was:</p>
<pre>sudo apt-get install g++ libboost-dev libevent-dev python-dev automake pkg-config libtool flex bison</pre>
<p>On the Mac you can use the MacPorts to install the required packages.. Max also had a good page on <a href="http://lueb.be/2009/02/23/installing-apache-thrift-on-mac-os-x-105-leopard/" target="_blank">Installing Apache Thrift on Mac OS X 10.5 Leopard</a> that doesn&#8217;t require MacPorts.</p>
<pre>sudo port selfupdate
sudo port install boost
sudo port install pkgconfig</pre>
<h2>The pkg.m4 workaround</h2>
<p>As noted in the <a href="http://wiki.apache.org/thrift/FAQ" target="_blank">Thrift Wiki FAQ</a>,the ./configure command may generate an error like:</p>
<pre>./configure: line 21183: syntax error near unexpected token `MONO,'
./configure: line 21183: `  PKG_CHECK_MODULES(MONO, mono &gt;= 1.2.6, have_mono=yes, have_mono=no)'</pre>
<p>This will happen if there is no pkg.m4 file in the aclocal directory of the thrift source tree. For the Macintosh, install pkgconfig via MacPorts and copy /opt/local/share/aclocal to aclocal (assuming you are in the thrift source distro):</p>
<pre>cp /opt/local/share/aclocal/pkg.m4 aclocal</pre>
<p>This is not necessary in ubuntu if you have installed pkgconfig there.</p>
<h2>Actual Build and Installation</h2>
<p>In the Thrift directory run:</p>
<pre>./bootstrap.sh</pre>
<p>on the Mac if boost was installed with MacPorts use the following (If you manually installed boost elsewhere use that path instead):</p>
<pre>./configure --with-boost=/opt/local</pre>
<p>on Ubunto you can just say&#8221;</p>
<pre>./configure</pre>
<p>On both Mac and Ubuntu:</p>
<pre>make
sudo make install</pre>
<p>If you want any of the bindings for different languages, cd into lib and there are directories for each language. Its not always clear what to do to build them. For the ruby one what I ended up doing was:</p>
<pre>cd lib/rb
sudo ruby setup.rb</pre>
<h2>Next step</h2>
<p>Figure out how to test and use Thrift!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ibd.com/howto/installing-apache-thrift-on-ubuntu-and-leopard/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Building RabbitMQ on Mac OSX Leopard</title>
		<link>http://blog.ibd.com/macintosh/building-rabbitmq-on-mac-osx-leopard/</link>
		<comments>http://blog.ibd.com/macintosh/building-rabbitmq-on-mac-osx-leopard/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 18:57:51 +0000</pubDate>
		<dc:creator>Robert J Berger</dc:creator>
				<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Scalable Deployment]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[rabbitmq]]></category>

		<guid isPermaLink="false">http://blog.ibd.com/?p=85</guid>
		<description><![CDATA[<p>At Cinch, we are looking into a high volume, high performance message queuing mechanism for aggregating updates from javascript logging into our data stores. The first one we are investigating is RabbitMQ which seems to have a good rep.</p> <p>Though we are deploying on Linux, we do all our development on Mac OS X. [...]]]></description>
			<content:encoded><![CDATA[<p>At Cinch, we are looking into a high volume, high performance message queuing mechanism for aggregating updates from javascript logging into our data stores. The first one we are investigating is <a href="http://www.rabbitmq.com">RabbitMQ</a> which seems to have a good rep.</p>
<p>Though we are deploying on Linux, we do all our development on Mac OS X. It turned out that it was a bit more tweaky to get RabbitMQ to install on Mac OS X if we wanted to use the latest version of RabbitMQ and its underlying Erlang Environment.</p>
<p>So this is what we&#8217;ve done so far to get it installed.</p>
<h3>Instructions Source</h3>
<p>The core of this information came from the blog entry of Ben Hood, RabbitMQ contributor <a href="http://hopper.squarespace.com/blog/2008/11/15/how-i-install-rabbitmq-on-osx.html"><em>How I Install RabbitMQ On OSX</em></a></p>
<p>I&#8217;ve added a few things that were important in our environment.</p>
<h3>Make sure <a href="http://www.macports.org/">MacPorts</a> bin is before default bin</h3>
<p>Your Unix PATH must have the MacPorts bin (/opt/local/bin before /usr/bin or /bin)</p>
<p>Ideally change it in the Mac OS X environment and not just your shell. You can use the <a href="http://www.rubicode.com/Software/RCEnvironment/">RCEnvironment</a> (Environment Variables) System Preference to set/update the PATH Environment variable. Or you can edit ~/.MacOSX/environment.plist file. Make sure that you don&#8217;t override this in your .bachrc or .tcshrc shell startup files. Or that you do it properly there as well.</p>
<p>This is mainly needed to make sure that you are using the python and python libraries from MacPorts and not the default Apple Leopard python in /usr/bin. It is also needed for the path to the Erlang binaries.</p>
<h3>Install <a href="http://www.erlang.org/">Erlang</a></h3>
<p>* Use MacPorts via command line or Portecus to install Erlang. We did use R12B-5 with hipe, ssl, and  smp options.<br />
* Link erl_call into /opt/local/bin</p>
<pre><code>UnixPrompt&gt; sudo ln -s /opt/local/lib/erlang/lib/erl_interface-3.5.9/bin/erl_call /opt/local/bin
</code></pre>
<h3>Install <a href="http://www.selenic.com/mercurial/wiki/">Mercurial</a></h3>
<p>This is needed to install RabbitMQ from the default branch (this is a stable branch but may be beyond the current release). RabbitMQ 1.4.0 will not work with Erlang/OTP R12B-5. Please use R12B-4 or earlier by default.</p>
<p>Get a <a href="http://mercurial.berkwood.com/">Mac Binary package</a>.</p>
<h3>Install python simple json</h3>
<p>Using MacPorts, you can use the following commands:</p>
<pre><code>UnixPrompt&gt; sudo port install py25-simplejson
UnixPrompt&gt; sudo port install python_select
UnixPrompt&gt; sudo python_select python25
</code></pre>
<p>Make sure that you have the right python in your path:</p>
<pre><code>UnixPrompt&gt; which python
/opt/local/bin/python
</code></pre>
<h3>Get RabbitMQ via mercurial</h3>
<pre><code>UnixPrompt&gt; hg clone http://hg.rabbitmq.com/rabbitmq-codegen
UnixPrompt&gt; hg clone http://hg.rabbitmq.com/rabbitmq-server
</code></pre>
<h3>Build and run the rabbitMQ</h3>
<p>UnixPrompt&gt; cd rabbitmq-server<br />
UnixPrompt&gt; make -j run</p>
<h4>Should then see something like:</h4>
<pre><code>NODE_IP_ADDRESS= NODE_PORT= NODE_ONLY=true LOG_BASE=/tmp  RABBIT_ARGS=" -s rabbit" MNESIA_DIR=/tmp/rabbitmq-rabbit-mnesia ./scripts/rabbitmq-server
   Erlang (BEAM) emulator version 5.6.4  [smp:2] [async-threads:30] [kernel-poll:true]

   Eshell V5.6.4  (abort with ^G)
   (rabbit@xlr8)1&gt; RabbitMQ %%VERSION%% (AMQP 8-0)
   ...
   Logging to "/tmp/rabbit.log"
   SASL logging to "/tmp/rabbit-sasl.log"

   starting database             ...done
   starting core processes       ...done
   starting recovery             ...done
   starting persister            ...done
   starting builtin applications ...done
   starting TCP listeners        ...done

   broker running
</code></pre>
<p>You are now up and running!</p>
<p><strong>TBD</strong>: Figure out how to integrate it into Mac OS X so its treated as a system service started at bootup.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ibd.com/macintosh/building-rabbitmq-on-mac-osx-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

