<?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>The Novian Blog</title>
	<atom:link href="http://blog.noviantech.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.noviantech.com</link>
	<description>Tips and Tricks on Linux / Mac OS X System Management</description>
	<lastBuildDate>Thu, 09 Feb 2012 06:42:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Installing the HP Cloud CLI on Ubuntu 11.10</title>
		<link>http://blog.noviantech.com/2012/02/03/installing-the-hp-cloud-cli-on-ubuntu-11-10/</link>
		<comments>http://blog.noviantech.com/2012/02/03/installing-the-hp-cloud-cli-on-ubuntu-11-10/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 02:43:11 +0000</pubDate>
		<dc:creator>Andrei Matei</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[hpcloud]]></category>
		<category><![CDATA[hpcs]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.noviantech.com/?p=1145</guid>
		<description><![CDATA[After some initial trial and error, I was able to successfully install the HP Cloud CLI on Ubuntu 11.10 Desktop (64-Bit). It&#8217;s not a necessarily difficult task to complete, but knowing all of the needed dependencies and steps from the start can speed things up dramatically. With the below guide, you should be able to [...]]]></description>
			<content:encoded><![CDATA[<p>After some initial trial and error, I was able to successfully install the <a href="http://hpcloud.com/">HP Cloud</a> CLI on Ubuntu 11.10 Desktop (64-Bit). It&#8217;s not a necessarily difficult task to complete, but knowing all of the needed dependencies and steps from the start can speed things up dramatically. With the below guide, you should be able to be up and running in 5 minutes or less.</p>
<p>1.) First, we&#8217;ll add some needed dependencies:</p>
<pre>sudo apt-get install curl git-core build-essential libssl-dev libreadline5 libxml2-dev libxslt1-dev</pre>
<p>2.) Next, let’s install RVM, the <a href="http://beginrescueend.com/" target="_blank">Ruby Version Manager</a>. We’ll be using this to install Ruby instead of doing it via apt-get. (Note: You need to execute this, and all of the additional commands below, as your local user and *not* the root user.)</p>
<p><span id="more-1145"></span></p>
<pre>bash -s stable &lt; &lt;(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)</pre>
<pre>echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] &amp;&amp; . "$HOME/.rvm/scripts/rvm"' &gt;&gt; ~/.bashrc</pre>
<pre>source ~/.bashrc<code></code></pre>
<p>3.) Install Ruby 1.9.2</p>
<pre>rvm pkg install zlib
rvm install 1.9.2
rvm --default use 1.9.2</pre>
<p>Now, that we have the needed prerequisites complete, let&#8217;s install the HP Cloud CLI itself.</p>
<p>4.) Download, extract, and install the HP Fog gem:</p>
<pre>wget http://build.hpcloud.com/sites/default/files/downloads/hpfog.tar
tar xvf hpfog.tar
sudo gem install hpfog-0.0.9.gem</pre>
<p>5.) Download, extract, and install the HP Cloud gem:</p>
<pre>wget http://build.hpcloud.com/sites/default/files/downloads/hpcloud.tar
tar xvf hpcloud.tar
sudo gem install hpcloud-0.0.9.gem</pre>
<p>Once finished, you should be able to type “hpcloud” and see a list of all of the available commands. (Note: At the time of this writing, only the HP Cloud Storage product has CLI integration.)</p>
<pre>elitebook:~ Andrei$ hpcloud
Tasks:
  hpcloud account:setup                # set up or modify your credentials
  hpcloud acl &lt;object/container&gt;       # view the ACL for an object or container
  hpcloud acl:set &lt;resource&gt; &lt;acl&gt;     # set a given resource to a canned ACL
  hpcloud containers                   # list available containers
  hpcloud containers:add &lt;name&gt;        # add a container
  hpcloud containers:remove &lt;name&gt;     # remove a container
  hpcloud copy &lt;resource&gt; &lt;resource&gt;   # copy files from one resource to another
  hpcloud get &lt;object&gt;                 # fetch an object to your local directory
  hpcloud help [TASK]                  # Describe available tasks or one spec...
  hpcloud info                         # info about the HP Cloud CLI
  hpcloud list &lt;container&gt;             # list container contents
  hpcloud location &lt;object/container&gt;  # display the URI for a given resource
  hpcloud move &lt;object&gt; &lt;object&gt;       # move objects inside or between...
  hpcloud remove &lt;object/container&gt;    # remove an object or container
elitebook:~ Andrei$</pre>
<p>6.) Authenticate to your account and verify:<br />
The last step is to get your account set up via a dot file in your home directory. This will enable you to use the CLI without having to enter in your account credentials each time.</p>
<pre>hpcloud account:setup</pre>
<p>Enter in your Account ID, Access Key, and Endpoint URL which are all listed in your HP Cloud Services portal under “API Keys” and you should be off and running. To test, type:</p>
<pre>hpcloud containers</pre>
<p>and you should see a listing of any containers you have provisioned in HP Cloud Storage. Let me know if you have any questions I can answer in regards to this.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.noviantech.com/2012/02/03/installing-the-hp-cloud-cli-on-ubuntu-11-10/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Option to NOT save PPTP VPN Password (Ubuntu 11.10)</title>
		<link>http://blog.noviantech.com/2012/01/15/option-to-not-save-pptp-vpn-password-ubuntu-11-10/</link>
		<comments>http://blog.noviantech.com/2012/01/15/option-to-not-save-pptp-vpn-password-ubuntu-11-10/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 03:21:03 +0000</pubDate>
		<dc:creator>Andrei Matei</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[network manager]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[pptp]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://blog.noviantech.com/?p=1131</guid>
		<description><![CDATA[If you are running Ubuntu 11.10 and are using Network Manager to connect to a PPTP VPN, you may notice that once you enter a password, it is auto-saved for future use. Mysteriously, there isn&#8217;t a check box to NOT save the password. If you are connecting to the VPN with a 2-factor authentication system [...]]]></description>
			<content:encoded><![CDATA[<p>If you are running Ubuntu 11.10 and are using Network Manager to connect to a PPTP VPN, you may notice that once you enter a password, it is auto-saved for future use. Mysteriously, there isn&#8217;t a check box to NOT save the password. If you are connecting to the VPN with a 2-factor authentication system (such as OATH which generates a unique pin-code with each login), you have to manually re-edit the configuration file each time. That&#8217;s a huge pain.</p>
<p>Anyway, here is the quick fix. Simply open the VPN configuration script:</p>
<pre>nano -w /etc/NetworkManager/system-connections/<span style="color: #ff6600;">[your_vpn_name]</span></pre>
<p>and change &#8220;password-flags=0&#8243; to &#8220;password-flags=2&#8243;.</p>
<p>That&#8217;s it! I googled for several days (literally) until I found <a href="https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/893885">this bug report</a> covering the issue. Either I&#8217;m a bad Googler (fact), or lots of information isn&#8217;t readily available on this topic. I hope this helps someone in need.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.noviantech.com/2012/01/15/option-to-not-save-pptp-vpn-password-ubuntu-11-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing the HP Cloud CLI on Mac OS X 10.7</title>
		<link>http://blog.noviantech.com/2011/12/13/installing-the-hp-cloud-cli-on-mac-os-x-10-7/</link>
		<comments>http://blog.noviantech.com/2011/12/13/installing-the-hp-cloud-cli-on-mac-os-x-10-7/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 07:53:31 +0000</pubDate>
		<dc:creator>Andrei Matei</dc:creator>
				<category><![CDATA[Apple / Mac]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[fog]]></category>
		<category><![CDATA[gem]]></category>
		<category><![CDATA[homebrew]]></category>
		<category><![CDATA[hp]]></category>
		<category><![CDATA[hpcloud]]></category>
		<category><![CDATA[os x]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://blog.noviantech.com/?p=1102</guid>
		<description><![CDATA[Installing the HP Cloud Services CLI is a simple proposition on your Mac as long as you don&#8217;t over-think it (like I did the first time). No, you don&#8217;t need to worry about getting the latest version of Ruby with RVM or the latest version of the Gem framework on your system. The versions which [...]]]></description>
			<content:encoded><![CDATA[<p>Installing the <a href="http://build.hpcloud.com/cli/unix" target="_blank">HP Cloud Services CLI</a> is a simple proposition on your Mac as long as you don&#8217;t over-think it (like I did the first time). No, you don&#8217;t need to worry about getting the latest version of Ruby with RVM or the latest version of the Gem framework on your system. The versions which come with Mac OS X Lion work just fine, even despite the Gem version being a point release behind what&#8217;s quoted as required.</p>
<p><strong>OPTIONAL:</strong> Before we progress, I strongly encourage you to consider installing <a href="http://developer.apple.com/xcode/" target="_blank">Xcode</a> and <a href="http://mxcl.github.com/homebrew/" target="_blank">Homebrew</a>. While both of these are not explicitly needed for getting the CLI up and running, they are extremely helpful in bringing common UNIX tools to your Mac, such as wget, nmap, etc. We&#8217;ll be using wget further down in this tutorial.</p>
<p><span id="more-1102"></span>To install Xcode, we need to download it from the App Store. It&#8217;s a 1.8 GB download so it may take a bit of time. Once the download has completed, the installer is placed in your /Applications folder. Before installing, I recommend you copy the installer to an alternate location for future system re-formats.</p>
<p>After installing Xcode, you&#8217;ll notice a /Developer folder has been created in your root directory. This folder has around 61,673 files and takes up 3.97 GB of space. If you are only going to use Xcode for Homebrew, lots of this extra stuff is unnecessary. I safely deleted the following folders:</p>
<pre>rm -r /Developer/Documentation
rm -r /Developer/Examples
rm -r /Developer/Extras
rm -r /Developer/Platforms/iPhoneOS.platform
rm -r /Developer/Platforms/iPhoneSimulator.platform
rm -r /Developer/SDKs/MacOSX10.6.sdk</pre>
<p>and have experienced no ill-effects. The purging has taken my overall /Developer folder size down to 20,813 files and 1.52 GB  of total size, a savings of 2.45GB. If anyone has additional suggestions for trimming down the /Developer folder even further, please let me know in the comments section at the bottom of this post.</p>
<p>Now, let&#8217;s install <a href="http://mxcl.github.com/homebrew/" target="_blank">Homebrew</a>. Homebrew is the most elegant UNIX package manager for OS X, (in my opinion) and I much prefer it to <a href="http://www.macports.org/" target="_blank">Macports</a>. Installation is easy, with just one command:</p>
<pre>/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"</pre>
<p>Finally, we&#8217;ll install wget and be on our way:</p>
<pre>brew install wget</pre>
<p>Now, let&#8217;s get to what we&#8217;re here to do; get the HP Cloud CLI working.</p>
<p>1.) Download, extract, and install the HP Fog gem:</p>
<pre>wget http://build.hpcloud.com/sites/default/files/downloads/hpfog.tar
tar xvf hpfog.tar
sudo gem install hpfog-0.0.9.gem</pre>
<p>2.) Download, extract, and install the HP Cloud gem:</p>
<pre>wget http://build.hpcloud.com/sites/default/files/downloads/hpcloud.tar
tar xvf hpcloud.tar
sudo gem install hpcloud-0.0.9.gem</pre>
<p>Once finished, you should be able to type &#8220;hpcloud&#8221; and see a list of all of the available commands. (Note: At the time of this writing, only the HP Cloud Storage product has CLI integration.)</p>
<pre>macbookair-andrei:~ Andrei$ hpcloud
Tasks:
  hpcloud account:setup                # set up or modify your credentials
  hpcloud acl &lt;object/container&gt;       # view the ACL for an object or container
  hpcloud acl:set &lt;resource&gt; &lt;acl&gt;     # set a given resource to a canned ACL
  hpcloud containers                   # list available containers
  hpcloud containers:add &lt;name&gt;        # add a container
  hpcloud containers:remove &lt;name&gt;     # remove a container
  hpcloud copy &lt;resource&gt; &lt;resource&gt;   # copy files from one resource to another
  hpcloud get &lt;object&gt;                 # fetch an object to your local directory
  hpcloud help [TASK]                  # Describe available tasks or one spec...
  hpcloud info                         # info about the HP Cloud CLI
  hpcloud list &lt;container&gt;             # list container contents
  hpcloud location &lt;object/container&gt;  # display the URI for a given resource
  hpcloud move &lt;object&gt; &lt;object&gt;       # move objects inside or between...
  hpcloud remove &lt;object/container&gt;    # remove an object or container

macbookair-andrei:~ Andrei$</pre>
<p>3.) Authenticate to your account and verify:<br />
The last step is to get your account set up via a dot file in your home directory. This will enable you to use the CLI without having to enter in your account credentials each time.</p>
<pre>hpcloud account:setup</pre>
<p>Enter in your Account ID, Access Key, and Endpoint URL which are all listed in your HP Cloud Services portal under &#8220;API Keys&#8221; and you should be off and running. To test, type:</p>
<pre>hpcloud containers</pre>
<p>and you should see a listing of any containers you have provisioned in HP Cloud Storage. Let me know if you have any questions I can answer in regards to this.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.noviantech.com/2011/12/13/installing-the-hp-cloud-cli-on-mac-os-x-10-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cloud Foundry CLI (VMC) Setup on Debian Squeeze</title>
		<link>http://blog.noviantech.com/2011/12/12/cloud-foundry-cli-vmc-setup-on-debian-squeeze/</link>
		<comments>http://blog.noviantech.com/2011/12/12/cloud-foundry-cli-vmc-setup-on-debian-squeeze/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 23:46:46 +0000</pubDate>
		<dc:creator>Andrei Matei</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloud foundry]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://blog.noviantech.com/?p=978</guid>
		<description><![CDATA[For the those of you who, like me, are new to Cloud Foundry and Ruby development, deploying your first Cloud Foundry Ruby application via VMC can be unnecessarily frustrating. The trouble stems mostly from sparse information scattered across the Internet and *especially* from incomplete and partially incorrect documentation provided by VMware when you sign up [...]]]></description>
			<content:encoded><![CDATA[<p>For the those of you who, like me, are new to <a href="http://www.cloudfoundry.com/" target="_blank">Cloud Foundry</a> and Ruby development, deploying your first Cloud Foundry Ruby application via VMC can be unnecessarily frustrating. The trouble stems mostly from sparse information scattered across the Internet and *especially* from incomplete and partially incorrect <a href="http://blog.noviantech.com/docs/Cloud_Foundry_VMC_Getting_Started.pdf">documentation provided by VMware</a> when you sign up for a Cloud Foundry Beta account.</p>
<p>In this post, we aim accomplish the following things:</p>
<ol>
<li>Get your system ready with the pre-requisites for the Cloud Foundry CLI</li>
<li>Install VMC (the CLI)</li>
<li>Create and deploy a simple Ruby app</li>
<li>Test and verify</li>
</ol>
<p><span id="more-978"></span> </p>
<div>1.) First, we need to install several packages prior to installing Ruby. Note: The VMWare documentation has a typo; there should be a space between &#8220;gcc&#8221; and &#8220;curl&#8221; as presented below.</div>
<pre>sudo apt-get install gcc curl git-core build-essential libssl-dev libreadline5 libreadline5-dev zlib1g</pre>
<p>2.) Next, let&#8217;s install RVM, the <a href="http://beginrescueend.com/" target="_blank">Ruby Version Manager</a>. We&#8217;ll be using this to install Ruby instead of doing it via apt-get</p>
<pre>bash &lt; &lt;(curl -s https://rvm.beginrescueend.com/install/rvm)</pre>
<p>Close your shell session after this step and start a new one! This is important.</p>
<p>3.) Next, let&#8217;s install Ruby 1.9.2</p>
<pre>rvm pkg install zlib
rvm install 1.9.2 -C --with-zlib-dir=$rvm_path/usr 
rvm --default use 1.9.2</pre>
<p>Note that in the VMWare doc, there are several errors here which you want to note. The first command syntax is &#8220;pkg&#8221; as noted above, instead of &#8220;package&#8221; which they have listed. You are also asked to make modifications to your .bashrc according to the prompts from the rvm installation script. No prompts are provided and no modifications to .bashrc are necessary. Finally, we need to include &#8220;&#8211;default&#8221; to the rvm use command. This ensures Ruby 1.9.2 will always be available at every shell login by default.</p>
<p>4.) Next, we should be able to install VMC with one simple command:</p>
<pre>gem install vmc</pre>
<p>5.) Now, let&#8217;s sign into CloudFoundry. I am using it atop of <a href="http://hpcloud.com/" target="_blank">HP Cloud Services</a>, so my target is tailored as such.</p>
<pre>vmc target http://api.cloudfoundry.hpcloud.com
vmc login</pre>
<p>(Enter your login credentials based on the service you will be using.)</p>
<p>6.) Now, we are ready to create our first Ruby App and push it to Cloud Foundry. Make a directory called &#8220;hello&#8221; in your home folder, and add a file called hello.rb inside with the contents below:</p>
<pre>mkdir /home/[user]/hello
cd /home/[user]/hello</pre>
<pre>nano -w hello.rb<span style="color: #888888;">
# Simple Ruby Example App
Bundler.setup
require "sinatra"
get "/" do
  "Hello World!"
end</span></pre>
<p>Now, it is important to note that the VMware document prompts you to deploy the above code without &#8220;Bundler.setup&#8221;. When you attempt to push the application without bundling, you will get the following error message during the &#8220;starting application&#8221; phase:</p>
<pre><span style="color: #993300;">Error 306: Error retrieving file 'logs/startup.log'</span></pre>
<p>You may then think to dig into what the error means by running the following command:</p>
<pre>vmc logs hello --all</pre>
<p>Good call. This supplies you with the following information:</p>
<pre><span style="color: #993300;">====&gt; logs/stderr.log &lt;====</span>
<span style="color: #993300;">/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require': no such file to load -- sinatra (LoadError) from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require' from hello.rb:4</span></pre>
<p>But that isn&#8217;t really all that helpful, either. It took me hours of googling to understand what it meant and what was wrong so it is my hope for those of you who are also searching for answers, you have found this post and can resolve it with ease.</p>
<p>So how do we fix this? We need to create a Gemfile bundle and its pretty easy to do so.</p>
<pre>nano -w Gemfile
<span style="color: #888888;"><span class="Apple-style-span" style="font-family: Consolas, Monaco, monospace; font-size: 12px; line-height: 18px; white-space: pre;">source "http://rubygems.org" </span>
<span class="Apple-style-span" style="font-family: Consolas, Monaco, monospace; font-size: 12px; line-height: 18px; white-space: pre;">gem 'sinatra'</span></span></pre>
<pre>bundle package
bundle install</pre>
<p>
Now we are ready to push the app to Cloud Foundry!</p>
<p>7.) Deploying the app and testing</p>
<pre>vmc push hello</pre>
<p>Selecting the defaults to each question by hitting &#8220;enter&#8221; is just fine here. Everything should complete successfully and we should now be able to view our app at: http://hello.cloudfoundry.hpcloud.com</p>
<p>Hopefully this post will save you some time. I also hope it has been a good prerequisite how-to for those of you viewing the <a href="http://h30529.www3.hp.com/t5/HP-Scaling-the-Cloud-Blog/Watch-the-Demo-Cloud-Foundry-Running-on-HP-Cloud-Services/ba-p/255" target="_blank">Cloud Foundry on HP Cloud Services Demo video</a>. Please let me know if you have questions. I&#8217;m happy to help however I can!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.noviantech.com/2011/12/12/cloud-foundry-cli-vmc-setup-on-debian-squeeze/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>7 Quick Tweaks for Mac OS X Lion</title>
		<link>http://blog.noviantech.com/2011/09/26/7-quick-tweaks-for-mac-os-x-lion/</link>
		<comments>http://blog.noviantech.com/2011/09/26/7-quick-tweaks-for-mac-os-x-lion/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 04:06:43 +0000</pubDate>
		<dc:creator>Andrei Matei</dc:creator>
				<category><![CDATA[Apple / Mac]]></category>
		<category><![CDATA[lion]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[os x]]></category>
		<category><![CDATA[tweaks]]></category>

		<guid isPermaLink="false">http://noviantech.com/blog/?p=940</guid>
		<description><![CDATA[Lion is a welcome progression in the Mac OS X family. It, however, has changed the way a few things work from Snow Leopard and before, so I&#8217;ve compiled seven quick tweaks I like to perform. 1.) Unhide the Library folder for your particular user account: chflags nohidden ~/Library/ 2.) Easily install Java SE 6: [...]]]></description>
			<content:encoded><![CDATA[<p>Lion is a welcome progression in the Mac OS X family. It, however, has changed the way a few things work from Snow Leopard and before, so I&#8217;ve compiled seven quick tweaks I like to perform.</p>
<p>1.) Unhide the Library folder for your particular user account:</p>
<pre>chflags nohidden ~/Library/</pre>
<p>2.) Easily install Java SE 6:</p>
<pre>java -v</pre>
<p>3.) Turn off window-restore when quitting and re-opening apps:<br />
Apple Menu -&gt; System Preferences -&gt; General</p>
<p><span id="more-940"></span></p>
<p>4.) Turn off iPhone-style spelling autocorrect:<br />
Apple Menu -&gt; System Preferences -&gt; Language &amp; Text -&gt; Text<span style="color: #ffffff;"><br />
</span></p>
<p>5.) Disable window animations:</p>
<pre>defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool NO</pre>
<p>6.) Hide applications in the /Applications folder which create clutter: (ex: Dashbaord.app)</p>
<pre>chflags hidden /Applications/[application.app]</pre>
<p>7.) Adjust font anti-aliasing:<br />
See <a href="http://blog.noviantech.com/2010/06/12/font-anti-aliasing-and-mac-os-x-10-6/" target="_blank">previous post</a> as the syntax is still current.</p>
<p>I hope these tips prove helpful. I welcome any feedback on any additional Lion-specific tweaks you like to make so please feel free to leave comments below.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.noviantech.com/2011/09/26/7-quick-tweaks-for-mac-os-x-lion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deploying Rackspace Cloud Load Balancers via API</title>
		<link>http://blog.noviantech.com/2011/02/24/deploying-rackspace-cloud-load-balancers-via-api/</link>
		<comments>http://blog.noviantech.com/2011/02/24/deploying-rackspace-cloud-load-balancers-via-api/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 05:34:25 +0000</pubDate>
		<dc:creator>Andrei Matei</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloud load balancer]]></category>
		<category><![CDATA[lb]]></category>
		<category><![CDATA[load balancer]]></category>
		<category><![CDATA[load balancing]]></category>
		<category><![CDATA[rackspace cloud]]></category>

		<guid isPermaLink="false">http://noviantech.com/blog/?p=873</guid>
		<description><![CDATA[Rackspace Hosting released their beta of Cloud Load Balancers today. Since it is an API-only offering for the time being, I thought it might be helpful to create a quick guide covering the deployment and management of Cloud Load Balancers for all the non-programmers out there. Here is what you&#8217;ll need to get started: A [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.rackspace.com" target="_blank">Rackspace Hosting</a> released their beta of Cloud Load Balancers <a href="http://www.rackspace.com/cloud/blog/2011/02/24/rackspace-cloud-load-balancers-beta-now-available-for-all-cloud-customers/" target="_blank">today</a>. Since it is an API-only offering for the time being, I thought it might be helpful to create a quick guide covering the deployment and management of Cloud Load Balancers for all the non-programmers out there.</p>
<p>Here is what you&#8217;ll need to get started:</p>
<ul>
<li>A <a href="https://signup.rackspacecloud.com/signup">Rackspace Cloud Account</a></li>
<li>A Mac or Linux computer with curl installed</li>
<li>The Rackspace Cloud Load Balancers <a href="http://docs.rackspacecloud.com/loadbalancers/api/v1.0/clb-devguide-20110223.pdf" target="_blank">API Developer Guide</a></li>
</ul>
<p>Let&#8217;s jump right in. We are going to interact with the RESTful API via curl and XML.</p>
<p><span id="more-873"></span></p>
<p><strong>Authenticating to the API</strong><br />
To start, we need to authenticate against the API. In the <a href="http://manage.rackspacecloud.com">Rackspace Cloud Control Panel</a>, go to &#8220;Your Account&#8221; -&gt; &#8220;API Access&#8221;, and click on &#8220;Show Key&#8221;. Copy your API key into a text file.</p>
<p>Next, lets create an authentication file called auth.txt since the information generated inside will be helpful to us. Be sure to specify your API key and account username in the appropriate parts of the command below.</p>
<pre>curl -D "auth.txt" -H "X-Auth-Key: <span style="color: #ff6600;">[api_key]</span>" -H "X-Auth-User: <span style="color: #ff6600;">[username]</span>" https://auth.api.rackspacecloud.com/v1.0</pre>
<p>Next, lets view the contents of auth.txt and see what we have. The output should look similar to this:</p>
<pre>cat auth.txt
<span style="color: #888888;">HTTP/1.1 204 No Content
Date: Mon, 12 Nov 2011 15:32:21 GMT
Server: Apache
X-Server-Management-Url: https://servers.api.rackspacecloud.com/v1.0/16550
X-Storage-Url: https://storage.clouddrive.com/v1/
CloudFS_9c83b-5ed4
X-CDN-Management-Url: https://cdn.clouddrive.com/v1/
CloudFS_9c83b-5ed4
X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
Content-Length: 0 Content-Type: text/plain; charset=UTF-8</span></pre>
<p>Two things are important to copy here, your Cloud Account Number, which is found at the end of the X-Server-Management-URL (in this case 16550) and your X-Auth-Token. Save these in the same text file as your API key. Note that auth tokens typically last for 24 hours, so as you return to the API to make further changes or additions in the future, you will most likely need to re-authenticate.</p>
<p><strong>Creating a Load Balancer<br />
<span style="font-weight: normal;">First we need to create a load balancer definition file which we will refer to as new_lb.xml. In this example, we create an lb named &#8220;testing-lb&#8221;, tell it to balance port 80 web traffic, and give it the private eth1 IP addresses of our two Cloud Server web nodes (web1 and web2) which we wish to balance.</span></strong></p>
<pre>nano -w new_lb.xml
<span style="color: #808080;">&lt;loadBalancer xmlns="http://docs.openstack.org/loadbalancers/api/v1.0"
  name="testing-lb"
  port="80"
  protocol="HTTP"&gt;
  &lt;virtualIps&gt;
    &lt;virtualIp type="PUBLIC"/&gt;
  &lt;/virtualIps&gt;
  &lt;nodes&gt;
    &lt;node address="<span style="color: #ff6600;">[private_ip_address]</span>" port="80" condition="ENABLED"/&gt;
    &lt;node address="<span style="color: #ff6600;">[private_ip_address]</span>" port="80" condition="ENABLED"/&gt;
  &lt;/nodes&gt;
&lt;/loadBalancer&gt;</span></pre>
<p>Now, lets use this definition file we created to actually build the Cloud Load Balancer.  Note that this example is for Cloud Servers in the ORD1 Chicago DC.</p>
<pre>curl -D "header.txt" -X "POST" -H "X-Auth-Token: <span style="color: #ff6600;">[auth_token]</span>" -H "Content-Type: Application/xml" -H "Accept: Application/xml" -k https://ord.loadbalancers.api.rackspacecloud.com/v1.0/<span style="color: #ff6600;">[account number]</span>/loadbalancers -d "@new_lb.xml" &gt; new_lb_result.xml</pre>
<p>Let&#8217;s review the output file and make sure things built correctly.</p>
<pre>xmllint --format new_lb_result.xml<span style="color: #808080;">
</span><span style="color: #888888;">&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;</span>
<span style="color: #888888;">&lt;loadBalancer xmlns="http://docs.openstack.org/loadbalancers/api/v1.0"
  id="4270"
  name="testing-lb"
  algorithm="RANDOM"
  protocol="HTTP"
  port="80"
  status="BUILD"&gt;</span><span style="color: #888888;">
&lt;virtualIps&gt;</span>
<span style="color: #888888;">  &lt;virtualIp id="225"
    address="184.106.102.28"
    ipVersion="IPV4"
    type="PUBLIC"/&gt;</span>
<span style="color: #888888;">&lt;/virtualIps&gt;</span>
<span style="color: #888888;">&lt;nodes&gt;</span>
<span style="color: #888888;">  &lt;node id="12635"
    address="10.180.52.137"
    port="80"
    condition="ENABLED"
    status="ONLINE"
    weight="1"/&gt;</span>
<span style="color: #888888;">  &lt;node id="12634"
    address="10.180.43.153"
    port="80"
    condition="ENABLED"
    status="ONLINE"
    weight="1"/&gt;</span>
<span style="color: #888888;">&lt;/nodes&gt;</span>
<span style="color: #888888;">&lt;cluster name="ztm-n02.lbaas.ord1.rackspace.net"/&gt;</span>
<span style="color: #888888;">&lt;created time="2011-02-25T01:01:22Z"/&gt;</span>
<span style="color: #888888;">&lt;updated time="2011-02-25T01:01:22Z"/&gt;</span>
<span style="color: #888888;">&lt;connectionLogging enabled="false"/&gt;</span>
<span style="color: #888888;">&lt;/loadBalancer&gt;</span>
</pre>
<p><span style="color: #000000;">Everything looks good! You&#8217;ll notice that you have now been given a VIP to use in your DNS</span>.</p>
<p><strong>Listing Load Balancers<br />
<span style="font-weight: normal;">Let&#8217;s now make sure we can see our newly created LB in our LB list.</span></strong></p>
<pre>curl -D "header.txt" -X "GET" -H "X-Auth-Token: <span style="color: #ff6600;">[auth_token]</span>" -H "Accept: application/xml" https://ord.loadbalancers.api.rackspacecloud.com/v1.0/<span style="color: #ff6600;">[account_number]</span>/loadbalancers &gt; loadbalancers.xml</pre>
<p>The results show:</p>
<pre>xmllint --format loadbalancers.xml
<span style="color: #888888;">&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;</span>
<span style="color: #888888;">&lt;loadBalancers xmlns="http://docs.openstack.org/loadbalancers/api/v1.0"&gt;</span>
<span style="color: #888888;">  &lt;loadBalancer id="4270"
    name="testing-lb"
    algorithm="RANDOM"
    protocol="HTTP"
    port="80"
    status="ACTIVE"&gt;</span>
<span style="color: #888888;">  &lt;virtualIps&gt;</span>
<span style="color: #888888;">    &lt;virtualIp id="225"
      address="184.106.102.28"
      ipVersion="IPV4"
      type="PUBLIC"/&gt;</span>
<span style="color: #888888;">   &lt;/virtualIps&gt;</span>
<span style="color: #888888;">  &lt;created time="2011-02-25T01:01:22Z"/&gt;</span>
<span style="color: #888888;">  &lt;updated time="2011-02-25T02:01:31Z"/&gt;</span>
<span style="color: #888888;">  &lt;/loadBalancer&gt;</span>
<span style="color: #888888;">&lt;/loadBalancers&gt;</span>
</pre>
<p><span style="color: #000000;"><strong>Adding Additional Servers to the Pool<br />
</strong><strong><span style="font-weight: normal;">As the final part of this exercise, lets add an additional web node to the lb pool. To do so, we first create a new_node.xml file with the following contents. Note that you must put the private ip address of the additional cloud web server (web3) in the code below.</span></strong></span></p>
<pre><strong><span style="font-weight: normal;">nano -w new_node.xml
</span></strong><span style="color: #888888;">&lt;nodes xmlns="http://docs.openstack.org/loadbalancers/api/v1.0"&gt;
  &lt;node address="</span><span style="color: #ff6600;">[private_ip_address]</span><span style="color: #888888;">" port="80" condition="ENABLED" /&gt;
&lt;/nodes&gt;</span></pre>
<p>Now, we&#8217;ll add the node. Note that we take the load balancer ID from a previous command above and enter it below.</p>
<pre>curl -D "header.txt" -X "POST" -H "X-Auth-Token: <span style="color: #ff6600;">[auth_token]</span>" -H "Content-Type: Application/xml" -H "Accept: Application/xml" -k https://ord.loadbalancers.api.rackspacecloud.com/v1.0/[account_number]
/loadbalancers/<span style="color: #ff6600;">[lb_number]</span>/nodes -d "@new_node.xml" &gt; new_node_result.xml</pre>
<p><strong>Verify the Node has Been Added</strong></p>
<pre>curl -D "header.txt" -X "GET" -H "X-Auth-Token: <span style="color: #ff6600;">[auth_token]</span>" -H "Accept: application/xml" https://ord.loadbalancers.api.rackspacecloud.com/v1.0/394681/loadbalancers/4270 &gt; loadbalancer_detail.xml</pre>
<pre>xmllint --format loadbalancer_detail.xml
<span style="color: #888888;">&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;</span>
<span style="color: #888888;">&lt;loadBalancer xmlns="http://docs.openstack.org/loadbalancers/api/v1.0"
  id="4270"
  name="testing-lb"
  algorithm="RANDOM"
  protocol="HTTP"
  port="80"
  status="ACTIVE"&gt;</span>
<span style="color: #888888;">  &lt;virtualIps&gt;</span>
<span style="color: #888888;">    &lt;virtualIp id="225"
      address="184.106.102.28"
      ipVersion="IPV4"
      type="PUBLIC"/&gt;</span>
<span style="color: #888888;">  &lt;/virtualIps&gt;</span>
<span style="color: #888888;">  &lt;nodes&gt;</span>
<span style="color: #888888;">    &lt;node id="12634"
      address="10.180.44.153"
      port="80"
      condition="ENABLED"
      status="ONLINE"/&gt;</span>
<span style="color: #888888;">    &lt;node id="12655"
      address="10.180.51.95"
      port="80"
      condition="ENABLED"
      status="ONLINE"/&gt;</span>
<span style="color: #888888;">    &lt;node id="12635"
      address="10.180.51.137"
      port="80"
      condition="ENABLED"
      status="ONLINE"/&gt;</span>
<span style="color: #888888;">  &lt;/nodes&gt;</span>
<span style="color: #888888;">  &lt;cluster name="ztm-n02.lbaas.ord1.rackspace.net"/&gt;</span>
<span style="color: #888888;">  &lt;created time="2011-02-25T01:01:22Z"/&gt;</span>
<span style="color: #888888;">  &lt;updated time="2011-02-25T02:01:31Z"/&gt;</span>
<span style="color: #888888;">  &lt;connectionLogging enabled="false"/&gt;</span>
<span style="color: #888888;">&lt;/loadBalancer&gt;</span>
</pre>
<p><span style="color: #000000;">This only scratches the surface of what the very flexible Rackspace Cloud Load Balancers API can do but should be a good starting point to help non-programmers understand basic syntax and XML handling. Please view the </span>Rackspace Cloud Load Balancers <a href="http://docs.rackspacecloud.com/loadbalancers/api/v1.0/clb-devguide-20110223.pdf">Developer Guide</a> for detailed documentation on the complete set of features.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.noviantech.com/2011/02/24/deploying-rackspace-cloud-load-balancers-via-api/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Installing wget in Mac OS X 10.6</title>
		<link>http://blog.noviantech.com/2010/12/26/installing-wget-in-mac-os-x-10-6/</link>
		<comments>http://blog.noviantech.com/2010/12/26/installing-wget-in-mac-os-x-10-6/#comments</comments>
		<pubDate>Sun, 26 Dec 2010 08:53:02 +0000</pubDate>
		<dc:creator>Andrei Matei</dc:creator>
				<category><![CDATA[Apple / Mac]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[wget]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://noviantech.com/blog/?p=823</guid>
		<description><![CDATA[The exclusion of wget in OS X is rather mystifying.  In any case, its quite easy to build from source and this post will explore how to do just that. First, you need to have Xcode installed with &#8220;Unix Dev Support&#8221; which includes gcc and other packages for software compilation.  Xcode is located on your [...]]]></description>
			<content:encoded><![CDATA[<p>The exclusion of <a href="http://www.gnu.org/software/wget/">wget</a> in OS X is rather mystifying.  In any case, its quite easy to build from source and this post will explore how to do just that.</p>
<p>First, you need to have Xcode installed with &#8220;Unix Dev Support&#8221; which includes gcc and other packages for software compilation.  Xcode is located on your Mac OS X install DVD under the &#8220;optional installs&#8221; section.  You can also <a href="http://developer.apple.com/technologies/xcode.html" target="_blank">download Xcode from Apple</a>. If you aren&#8217;t sure if Xcode is already loaded on your system or not, if you don&#8217;t have a &#8220;Developer&#8221; folder listed in the top level of your HD, then it is not installed.</p>
<p><span id="more-823"></span></p>
<p>Ok, let&#8217;s proceed with the installation of wget.</p>
<p>1.) Download the latest version from: <a href="ftp://ftp.gnu.org/pub/gnu/wget/wget-latest.tar.gz">ftp://ftp.gnu.org/pub/gnu/wget/wget-latest.tar.gz</a> to your Downloads folder.</p>
<p>2.) Extract the package:</p>
<pre>cd ~/Downloads/
tar xvf wget-latest.tar.gz</pre>
<p>3.) Build the package:</p>
<pre>cd wget-1.12
./configure
sudo make install</pre>
<p>4.) Verify by typing in &#8220;wget&#8221; in your terminal session.</p>
<p>That&#8217;s it! You can now delete all of the files you downloaded and uncompressed in the Downloads folder. Let me know if anyone has any questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.noviantech.com/2010/12/26/installing-wget-in-mac-os-x-10-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian Router/Gateway in 15 Minutes</title>
		<link>http://blog.noviantech.com/2010/12/22/debian-router-gateway-in-15-minutes/</link>
		<comments>http://blog.noviantech.com/2010/12/22/debian-router-gateway-in-15-minutes/#comments</comments>
		<pubDate>Thu, 23 Dec 2010 04:56:19 +0000</pubDate>
		<dc:creator>Andrei Matei</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[dnsmasq]]></category>
		<category><![CDATA[gateway]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[router]]></category>

		<guid isPermaLink="false">http://noviantech.com/blog/?p=827</guid>
		<description><![CDATA[A multitude of reasons exist as to why one would want to build a custom router vs. suffer with the performance, reliability issues, and limitations of an off-the-shelf solution. In the spirit of keeping this post short, I won&#8217;t launch into a long diatribe on the pros and cons of each here, but I have [...]]]></description>
			<content:encoded><![CDATA[<p>A multitude of reasons exist as to why one would want to build a custom router vs. suffer with the performance, reliability issues, and limitations of an off-the-shelf solution. In the spirit of keeping this post short, I won&#8217;t launch into a long diatribe on the pros and cons of each here, but I have plenty of thoughts on this, so if you are interested, just <a href="mailto:andrei@noviantech.com">ask</a>.</p>
<p>What we are about to do is configure an incredibly fast and stable router/gateway solution for your home/office in about 15 minutes. <strong>(Note:</strong> This post assumes you already have your machine loaded up with a fresh copy of <a href="http://www.debian.org/releases/lenny/">Debian 5.0 Lenny</a> and you have the two needed NICs installed.</p>
<p>First, let&#8217;s make three initial assumptions:</p>
<ul>
<li>eth0 is the public interface (the Cable/DSL modem is attached to this NIC)</li>
<li>eth1 is the private interface (your switch is connected to this NIC)</li>
<li>All of the client computers, servers, WAPs, etc. are connected to the switch</li>
</ul>
<p><span id="more-827"></span></p>
<p>Let&#8217;s get started with the configuration. Set your timer and type quickly! :)</p>
<p><strong>1.) Configure the network interfaces</strong><br />
Change the &#8220;address&#8221;, &#8220;netmask&#8221;, and &#8220;broadcast&#8221; values to match your internal network preferences.</p>
<pre>nano -w /etc/network/interfaces<span style="color: #888888;">
# The external WAN interface (eth0)
allow-hotplug eth0
iface eth0 inet dhcp

# The internal LAN interface (eth1)
allow-hotplug eth1
iface eth1 inet static
   address 192.168.0.1
   netmask 255.255.255.0
   network 192.168.0.0
   broadcast 192.168.0.255</span>
</pre>
<p><strong>2. Install and configure DNSmasq<br />
</strong><a href="http://www.thekelleys.org.uk/dnsmasq/doc.html">DNSmasq</a> is DNS forwarder and <a href="http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol">DHCP</a> server. Change &#8220;domain&#8221; to the <a href="http://en.wikipedia.org/wiki/Fully_qualified_domain_name">FQDN</a> of your network and &#8220;dhcp-range&#8221; to the desired range of DHCP addresses you would like your router to serve out to clients.</p>
<pre>apt-get install dnsmasq
</pre>
<pre>nano -w /etc/dnsmasq.conf
<span style="color: #888888;">interface=eth1
listen-address=127.0.0.1
domain=home.andreimatei.com
dhcp-range=192.168.0.100,192.168.0.110,12h</span>
</pre>
<p><strong>3.) Enable IP Forwarding</strong><br />
Uncomment the following line:</p>
<pre>nano -w /etc/sysctl.conf
<span style="color: #888888;">net.ipv4.ip_forward=1</span>
</pre>
<p><strong>4.) Configure iptables</strong><br />
We create a file called /etc/iptables.rules and put this rule set inside of it.  As an example, this set includes allowing tcp traffic in from the outside world on port 222 (I run SSH on this alternate port) and also port-forwards tcp port 50,000 to an internal machine with the ip of 192.168.0.3.  Use this as a guide for your own rules.</p>
<pre>nano -w /etc/iptables.rules<span style="color: #888888;">
*nat
-A PREROUTING -i eth0 -p tcp -m tcp --dport 50000 -j DNAT --to-destination 192.168.0.3:50000
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT

*filter
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 222 -j ACCEPT
-A INPUT -i eth0 -j DROP
-A FORWARD -i eth0 -p tcp -m tcp --dport 50000 -m state --state NEW -j ACCEPT
COMMIT</span>
</pre>
<p><strong>5.) Activate your iptables rules</strong></p>
<pre>iptables-restore &lt; /etc/iptables.rules
</pre>
<p><strong>6.) Ensure iptables rules start on boot</strong><br />
Insert the following line into your /etc/network/interfaces file right underneath &#8220;iface lo inet loopback&#8221;</p>
<pre>nano -w /etc/network/interfaces<span style="color: #888888;">
pre-up iptables-restore &lt; /etc/iptables.rules</span></pre>
<p><strong>7.) Reboot and Verify</strong><br />
That&#8217;s it! After a reboot, you should now have a very basic Linux Router/Gateway for your network.</p>
<p>This post obviously doesn&#8217;t cover some of the incredible additional flexibility which your new machine provides.  I urge you to explore topics on traffic shaping, throughput monitoring, Intrusion Detection, and VPN configuration to learn how to harness the true power of running a dedicated machine as the central traffic cop of your network.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.noviantech.com/2010/12/22/debian-router-gateway-in-15-minutes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Restoring Horizonal iTunes 10 Window Controls</title>
		<link>http://blog.noviantech.com/2010/09/03/restoring-horizonal-itunes-10-window-controls/</link>
		<comments>http://blog.noviantech.com/2010/09/03/restoring-horizonal-itunes-10-window-controls/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 20:41:30 +0000</pubDate>
		<dc:creator>Andrei Matei</dc:creator>
				<category><![CDATA[Apple / Mac]]></category>
		<category><![CDATA[controls]]></category>
		<category><![CDATA[horizontal]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[window]]></category>

		<guid isPermaLink="false">http://andreimatei.com/?p=779</guid>
		<description><![CDATA[With the introduction of iTunes 10, several new and rather unusual UI changes have arrived as well.  Perhaps the most troublesome, for me personally, have been the vertical window control buttons.  I prefer consistency in all of my applications, so luckily a quick fix is available to restore the standard horizontal buttons. Simply run the [...]]]></description>
			<content:encoded><![CDATA[<p>With the introduction of <a href="http://www.apple.com/itunes/">iTunes 10</a>, several new and rather unusual UI changes have arrived as well.  Perhaps the most troublesome, for me personally, have been the vertical window control buttons.  I prefer consistency in all of my applications, so luckily a quick fix is available to restore the standard horizontal buttons.</p>
<p>Simply run the following command in your Terminal:</p>
<pre>defaults write com.apple.iTunes full-window -1</pre>
<p>Now, just restart your iTunes application and you should be all set. A special thank you goes out to <a href="http://arstechnica.com/apple/news/2010/09/itunes-10-hands-on-snappier-performance-questionable-ui-choices.ars">Ars Technica&#8217;s Review of iTunes 10</a> for this information.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.noviantech.com/2010/09/03/restoring-horizonal-itunes-10-window-controls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>eAccelerator Installation on Debian</title>
		<link>http://blog.noviantech.com/2010/08/10/eaccelerator-installation-on-debian/</link>
		<comments>http://blog.noviantech.com/2010/08/10/eaccelerator-installation-on-debian/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 07:30:58 +0000</pubDate>
		<dc:creator>Andrei Matei</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[eaccelerator]]></category>
		<category><![CDATA[opcode]]></category>

		<guid isPermaLink="false">http://andreimatei.com/?p=752</guid>
		<description><![CDATA[Today&#8217;s post covers the joys and benefits of opcode caching.  If you have a very active site, this caching method can provide a great deal of relief to your servers by significantly reducing load averages and CPU utilization. How does it work? It&#8217;s quite simple, actually.  Without caching configured, each time a PHP-based page is [...]]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s post covers the joys and benefits of opcode caching.  If you have a very active site, this caching method can provide a great deal of relief to your servers by significantly reducing load averages and CPU utilization.</p>
<p><strong>How does it work?</strong><br />
It&#8217;s quite simple, actually.  Without caching configured, each time a PHP-based page is requested by a user, the server gathers all of the needed files and &#8220;compiles&#8221; them into a result which it can understand and deliver.  This result is known as &#8220;opcode&#8221;.</p>
<p>The technique of opcode caching preserves this generated code into a cache so compilation only needs to happen once and then can be used over and over again for numerous requests by numerous users.</p>
<p><strong>Why eAccelerator?</strong><br />
Several PHP caching choices exist including <a href="http://php.net/manual/en/book.apc.php">APC</a>, <a href="http://framework.zend.com/manual/en/zend.cache.html">Zend</a>, and <a href="http://xcache.lighttpd.net/">XCache</a>.  I&#8217;ve chosen <a href="http://eaccelerator.net/">eAccelerator</a> based on numerous reports <a href="http://2bits.com/articles/benchmarking-apc-vs-eaccelerator-using-drupal.html">such as this one</a> which show its distinct performance advantage and also in large part due to the personal recommendation of seasoned server architects such as <a href="http://rackerhacker.com/">RackerHacker</a>.</p>
<p><span id="more-752"></span></p>
<p><strong>Installation<br />
</strong>Debian Lenny doesn&#8217;t include an apt-get package for eAccelerator so we&#8217;ll need to compile from source.  Luckily, this isn&#8217;t as tricky as it sounds.  Here we go!</p>
<p>Download and extract:</p>
<pre>wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
tar xjf eaccelerator-0.9.6.1.tar.bz2</pre>
<p>Compile and install:</p>
<pre>cd eaccelerator-0.9.6.1
apt-get install php5-dev
phpize
./configure
make
make install
cp eaccelerator.ini /etc/php5/apache2/conf.d/eaccelerator.ini</pre>
<p>Verify installation:</p>
<pre>php -v
<span style="color: #888888;">PHP 5.2.6-1+lenny8 with Suhosin-Patch 0.9.6.2 (cli) (built: Mar 14 2010 09:07:33)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
 with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator</span></pre>
<p>Finish up:</p>
<pre>/etc/init.d/apache2 reload</pre>
<p>That&#8217;s it!  My load averages have dropped significantly on the load-balanced web servers I manage.  We went from 4-5 with spikes to 25 down to roughly 0.5 with spikes to 2.  As always, reach out to me via <a href="mailto:andrei@noviantech.com">email</a> or in the comments section if you have any questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.noviantech.com/2010/08/10/eaccelerator-installation-on-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

