<?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>Hank Beaver</title>
	<atom:link href="http://www.hankbeaver.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hankbeaver.com</link>
	<description>Ruby, open-source, Internet technologist located in Atlanta, GA, USA</description>
	<lastBuildDate>Tue, 29 Jun 2010 05:34:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tonight, a dream</title>
		<link>http://www.hankbeaver.com/index.php/2010/06/28/tonight-a-dream/</link>
		<comments>http://www.hankbeaver.com/index.php/2010/06/28/tonight-a-dream/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 04:24:41 +0000</pubDate>
		<dc:creator>hbeaver</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[childhood]]></category>
		<category><![CDATA[dreams]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[satriani]]></category>

		<guid isPermaLink="false">http://www.hankbeaver.com/index.php/2010/06/28/tonight-a-dream/</guid>
		<description><![CDATA[This weekend Jill, Jude and I visited Chris Kenney to watch his band perform on his front porch in Villa Rica. To say Chris plays guitar well is an understatement. I&#8217;ve Spent time with him and now witnessed him play electric. For his set, he clearly had a distinct style.
Jill thought he might be offended [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend Jill, Jude and I visited Chris Kenney to watch his band perform on his front porch in Villa Rica. To say Chris plays guitar well is an understatement. I&#8217;ve Spent time with him and now witnessed him play electric. For his set, he clearly had a distinct style.<br />
Jill thought he might be offended by this but I could close my eyes and clearly hear Joe Satriani. And it got me recalling my days of listening to him on cassette with my Sony Walkman with a 3 band graphic EQ. Thanks Chris.</p>
<p><a href='Http://www.youtube.com/watch?v=U-zjnVmuTzs&#038;feature=youtube_gdata'>flying in a blue dream</a></p>
<p>I was taken back to when I was in high school and playing guitar was the only thing that mattered to me. I was neither a jock nor a band geek, I was a lone guitar guy in high school it seemed. Where now everyone plays. Not in blairsville did they in 1987.</p>
<p>So much of our lives change from adolescence and for the most part our dreams of ourselves are sucked into the vortex of responsibility.</p>
<p>For the rare few who escape this, I send this song. It is not cool by many standards but I have no shame. It is just what I held at the time to be my dream to make music like this. Thus the irony of the title.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hankbeaver.com/index.php/2010/06/28/tonight-a-dream/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>My perfect music creation platform</title>
		<link>http://www.hankbeaver.com/index.php/2010/04/19/my-perfect-music-creation-platform/</link>
		<comments>http://www.hankbeaver.com/index.php/2010/04/19/my-perfect-music-creation-platform/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 01:55:35 +0000</pubDate>
		<dc:creator>hbeaver</dc:creator>
				<category><![CDATA[recording]]></category>

		<guid isPermaLink="false">http://www.hankbeaver.com/?p=137</guid>
		<description><![CDATA[I&#8217;ve kept this blog purely in the programming realm and today I shall diverge from this. I have been a musician for many years prior to becoming a programmer. Today&#8217;s topic will revolve around computer-based music software. 
For sometime I&#8217;ve become more and more frustrated with my Tracking and Sequencing setup. Secondly, my plugins and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve kept this blog purely in the programming realm and today I shall diverge from this. I have been a musician for many years prior to becoming a programmer. Today&#8217;s topic will revolve around computer-based music software. </p>
<p>For sometime I&#8217;ve become more and more frustrated with my Tracking and Sequencing setup. Secondly, my plugins and just all around workflow were lacking. I really don&#8217;t have time to sort through lists of plugins that are mediocre or get frustrated when my program would suddenly crash ( I am omitting the tracking/sequencer I use, because it doesn&#8217;t matter anymore to me).  </p>
<p>I did have two pieces of plugin software I love that I carried over, everything else was tossed away:</p>
<p>MOTU Symphonic Instrument<br />
Toontracks EZDrummer</p>
<p>What I found to be very surprising is that refactoring (sorry for programming term) my entire songwriting and music creation setup didn&#8217;t take much cash nor time at all. In fact, most of it was free and I did it last weekend out of frustration of one last crash when a song was in my head. </p>
<p>To be fair, everyone has different needs.. These were the same before I started this endeavor.</p>
<p><strong>CRITERIA/NEEDS:</strong></p>
<p>1) I want to have a &#8216;rock&#8217; template ready to go loaded with everything, including plugins.<br />
2) I want to said template record ready for guitar or bass on separate tracks.<br />
3) Drums are ready to go in a MIDI track.<br />
4) Setup is robust and quick.<br />
5) It can&#8217;t cost a lot, I do this for fun.</p>
<p>I am focused on music that varies in a few styles, but can be classified as college rock, indie rock, post-punk, experimental and also for scoring films.</p>
<p>The most important piece of all of this is the tracking and sequencing. I thought for certain I&#8217;d have to shell out some cash to find something. The last time I looked there were no viable options for OSX that did both from what I saw. This weekend I stumbled upon a few that did. I chose Reaper (www.cockos.com/reaper/). </p>
<p>Reaper caught my eye immediately when I learned a guy from earlier versions of Winamp was on the very,very small team in San Francisco called Cockos (www.cockos.com). Their software is very intriguing and they have some innovative ideas. In particular Jesusonic (http://www.jesusonic.com/) which is basically a PC or Mac software system for creating your own effects/stomp box system. Take a look at the site and you&#8217;ll see. The upside for Reaper is that all the Jesusonic plugins are included.</p>
<p>The only glitch had to do with a plugin not in the below list that made random noise. I will report on this later.</p>
<p>So enough with all the talk, here is the list of software that I&#8217;m using and am very happy to report I&#8217;ve had no crashes and am feeling like I will be more creating soon.</p>
<p><strong>TRACKING/SEQUENCING</strong> (very,very affordable):<br />
Reaper<br />
http://reaper.fm/</p>
<p><strong>REVERB</strong> (FREE):<br />
LVImpulse<br />
http://audio.lernvall.com/</p>
<p>There are normal reverbs included with Reaper, but to get a very natural room/hall sound for drums, mix, etc. I think impulse reverbs are they way to go. Grab some for the plugin above using these links. You need interleaved WAV files so be aware of that. </p>
<p><strong>Impulses</strong> (FREE):<br />
http://www.1-1-1-1.net/pages/impulses/index.htm#mpx1<br />
http://www.xs4all.nl/~fokkie/IR.htm#smallfactoryhall<br />
http://noisevault.com/nv/index.php?option=com_remository&#038;Itemid=29&#038;func=selectcat&#038;cat=17&#038;page=1<br />
http://www.irlibrary.org/<br />
http://www.macosxaudio.com/forums/viewtopic.php?t=14100</p>
<p><strong>GUITAR/BASS AM</strong>P (FREE for 1 year):<br />
Waves GTR Solo 3<br />
http://www.wavesgtr.com/html/product_gtr_solo.html</p>
<p>This is a Waves product that is free for a year and $145 thereafter. It sounds amazing. I&#8217;ll ride that pony for a year and then figure something out later. The install is a little arduous, but worth it.</p>
<p><strong>BAD ASS SYNTH AND OTHER</strong> (FREE):<br />
MRAlias2<br />
http://www.thepiz.org/mralias2/</p>
<p>This plugin surprised me. I was wrapping up for the night and stumbled upon it. This will be my goto plugin for synths and synth-effects for some time. </p>
<p><strong>OTHER INSTRUMENTS</strong>:<br />
MOTU Symphonic Instrument<br />
http://www.motu.com/products/software/msi/</p>
<p>I mentioned earlier, I score for film. I also enjoy adding some strings or a realistic piano to an arrangement. When I bought this in 2005-ish it was one of the best out there. This may not be the case for the money now, but I recommend you give it a listen.</p>
<p><strong>BAD ASS DRUM</strong>S (not free, worth the money):<br />
Toontracks EZDrummer Vintage Rock EZX<br />
http://www.toontrack.com/products.asp?item=9 (need EZDrummer too) </p>
<p>Last but not least are the all important drums. If you are trying to create organic music in your home that sounds akin to real band, you need a realistic drums. Jordan from Snowden, while he may not recall, turned me on to EZDrummer. By itself, the built in sounds are very good, the beats are not close to what I like and I have to tweak them. However, if you also shell out the cash and get the Vintage Rock drums too, you will find John Bonham (and others) in a box. I rest my case.     </p>
<p><strong>HARDWARE</strong>:<br />
MacBook 2.4 Ghz, 4GB Ram</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hankbeaver.com/index.php/2010/04/19/my-perfect-music-creation-platform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing Varnish VCL Syntax</title>
		<link>http://www.hankbeaver.com/index.php/2009/11/02/testing-varnish-vcl-syntax/</link>
		<comments>http://www.hankbeaver.com/index.php/2009/11/02/testing-varnish-vcl-syntax/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 18:15:00 +0000</pubDate>
		<dc:creator>hbeaver</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[check]]></category>
		<category><![CDATA[syntax]]></category>
		<category><![CDATA[validate]]></category>
		<category><![CDATA[varnish]]></category>
		<category><![CDATA[vcl]]></category>

		<guid isPermaLink="false">http://www.hankbeaver.com/?p=120</guid>
		<description><![CDATA[The simplest way to test syntax is to use the administration console via telnet on a Dev/QA Varnish machine. Your current running Varnish should allow your IP/localhost to connect if you have implemented a Varnish ACL.

Start up Varnish with single command-line
Login to console via telnet
Load the config you wish to test
Use the config.

On OSX:

sudo /usr/local/sbin/varnishd [...]]]></description>
			<content:encoded><![CDATA[<p>The simplest way to test syntax is to use the administration console via telnet on a Dev/QA Varnish machine. Your current running Varnish should allow your IP/localhost to connect if you have implemented a Varnish ACL.</p>
<ul>
<li>Start up Varnish with single command-line</li>
<li>Login to console via telnet</li>
<li>Load the config you wish to test</li>
<li>Use the config.</li>
</ul>
<p>On OSX:</p>
<pre>
sudo /usr/local/sbin/varnishd -F  -a localhost:3000 -b localhost:6081 -T localhost:6082
</pre>
<p>From another console/shell/ open connection to Varnish management console:</p>
<pre>
telnet localhost 6082
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
</pre>
<p>Load config and try to use (the config used in this example has a syntax problem. Therefore, you will see compilation errors:</p>
<pre>
vcl.load error /Users/hbeaver/code/varnish_demo/config/syntax_error.vcl
106 181
Message from VCC-compiler:
Expected one of
	'acl', 'sub', 'backend',  or 'director'
Found: '}' at
(input Line 12 Pos 1)
}
#
Running VCC-compiler failed, exit 1VCL compilation failed
</pre>
<p>Conversely, if the VCL has good syntax you should see no errors:</p>
<pre>
vcl.load good_config /Users/hbeaver/code/varnish_demo/config/default.vcl
200 13
VCL compiled.
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.hankbeaver.com/index.php/2009/11/02/testing-varnish-vcl-syntax/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Starting specific version of thin web server</title>
		<link>http://www.hankbeaver.com/index.php/2009/10/15/starting-specific-version-of-thin-web-server/</link>
		<comments>http://www.hankbeaver.com/index.php/2009/10/15/starting-specific-version-of-thin-web-server/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 12:40:37 +0000</pubDate>
		<dc:creator>hbeaver</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[thin]]></category>

		<guid isPermaLink="false">http://www.rubyslacker.com/?p=115</guid>
		<description><![CDATA[You may find yourself needing to test something with a specific version of thin, for whatever reason. If you need start up thin with a specific version of gem you have installed this is how you do it:
&#60;pre&#62;thin _1.2.4_ -R config.ru -p 3001 start&#60;/pre&#62;
The first argument represents the gem version prefixed and post-fixed with &#8220;_&#8221;.
Enjoy.
]]></description>
			<content:encoded><![CDATA[<p>You may find yourself needing to test something with a specific version of thin, for whatever reason. If you need start up thin with a specific version of gem you have installed this is how you do it:</p>
<p>&lt;pre&gt;thin _1.2.4_ -R config.ru -p 3001 start&lt;/pre&gt;</p>
<p>The first argument represents the gem version prefixed and post-fixed with &#8220;_&#8221;.</p>
<p>Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hankbeaver.com/index.php/2009/10/15/starting-specific-version-of-thin-web-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beware asserting against Rspec @params</title>
		<link>http://www.hankbeaver.com/index.php/2009/10/01/beware-ye-rspec-ers-params/</link>
		<comments>http://www.hankbeaver.com/index.php/2009/10/01/beware-ye-rspec-ers-params/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 12:40:43 +0000</pubDate>
		<dc:creator>hbeaver</dc:creator>
				<category><![CDATA[Rspec]]></category>

		<guid isPermaLink="false">http://www.rubyslacker.com/?p=111</guid>
		<description><![CDATA[Spent a little time scratching my head on this week. @params is reserved in Rspec controller tests apparently much like Rails. @params will contain extra keys like &#8220;controller&#8221; and &#8220;action&#8221; which if you try and assert against will fail of you do something like this:
&#60;pre&#62;
@params = {:id =&#62; &#8216;niceid&#8217;}
&#8230;
Model.expects(:method).with(@params)
&#60;/pre&#62;
]]></description>
			<content:encoded><![CDATA[<p>Spent a little time scratching my head on this week. @params is reserved in Rspec controller tests apparently much like Rails. @params will contain extra keys like &#8220;controller&#8221; and &#8220;action&#8221; which if you try and assert against will fail of you do something like this:</p>
<p>&lt;pre&gt;</p>
<p>@params = {:id =&gt; &#8216;niceid&#8217;}<br />
&#8230;<br />
Model.expects(:method).with(@params)</p>
<p>&lt;/pre&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hankbeaver.com/index.php/2009/10/01/beware-ye-rspec-ers-params/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Rails for custom applications and avoiding the CMS trap.</title>
		<link>http://www.hankbeaver.com/index.php/2009/09/03/using-rails-for-custom-applications-and-avoiding-the-cms-trap/</link>
		<comments>http://www.hankbeaver.com/index.php/2009/09/03/using-rails-for-custom-applications-and-avoiding-the-cms-trap/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 17:38:23 +0000</pubDate>
		<dc:creator>hbeaver</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[esi]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[sinatra]]></category>

		<guid isPermaLink="false">http://www.rubyslacker.com/?p=102</guid>
		<description><![CDATA[I&#8217;m am still captivated by the perfect, simple CMS solution in Ruby/Rails (I&#8217;ll take another framework too).  There are some fantastic projects out there, browsercms.org for example. But posts like  THIS , really drive home the point. If Wordpress is so well suited for a simple site and/or blog, why not just use [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m am still captivated by the perfect, simple CMS solution in Ruby/Rails (I&#8217;ll take another framework too).  There are some fantastic projects out there, <a href="http://www.rubyslacker.com/wp-admin/browsercms.org">browsercms.org</a> for example. But posts like <a href="http://aaronlongwell.com/2009/06/the-ruby-on-rails-cms-dilemma.html"> THIS </a>, really drive home the point. If Wordpress is so well suited for a simple site and/or blog, why not just use it? <a href="http://www.igvita.com/2007/07/04/integrating-wordpress-and-rails/">Igvita</a> demonstrates easy Rails integration with <a href="http://www.apache.org">Apache</a> rewrite rules.</p>
<p>There are others out there stating the same thing: while Rails can be used to create a CMS, a developer&#8217;s time is better spent solving business rather than reinventing the wheel in Ruby to keep the whole project/code under one umbrella. And at my current gig, we are starting to retool for this paradigm. Rails and <a href="http://www.sinatrarb.org">Sinatra</a> apps are purely business focuses and super light weight. These service applications can them be glued together via <a href="http://www.w3.org/TR/esi-lang">ESI</a>, rewrites, or Wordpress for consumption. In effect, your complex web app is assembled at request time from a set of simple web services. Here is some mock code to demonstrate:</p>
<pre>
wordpress_template.php
//some more wonder wordpress stuff
&lt;?= include_rails_service('http://service.app/user/profile',ESI_INCLUDE) ?&gt;
//some more wonder wordpress stuff
&lt;?= include_rails_service('http://service.app2/events/weeks/2',SERVICE) ?&gt;
//end of wordpress.php
...
//function included elsewhere
function include_rails_service(service_url,type){
//could return any of following for the resource url
 switch (type) {
  case ESI_INCLUDE:
   return "&lt;esi include ='" + service_url + "'&gt;";
   break;
  case SERVICE:
   include service_url;
   break;
  case AJAX:
//javascript include with service js, doing doc.write
}
}
</pre>
<p>The point is Wordpress doesn&#8217;t know about Rails and Rails doesn&#8217;t know about Wordpress. Keep them seperate, keep them simple and make life better.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hankbeaver.com/index.php/2009/09/03/using-rails-for-custom-applications-and-avoiding-the-cms-trap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql::Error: MySQL server has gone away with Sinatra + ActiveRecord</title>
		<link>http://www.hankbeaver.com/index.php/2009/08/10/mysqlerror-mysql-server-has-gone-away-with-sinatra-activerecord/</link>
		<comments>http://www.hankbeaver.com/index.php/2009/08/10/mysqlerror-mysql-server-has-gone-away-with-sinatra-activerecord/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 17:17:12 +0000</pubDate>
		<dc:creator>hbeaver</dc:creator>
				<category><![CDATA[activerecord]]></category>
		<category><![CDATA[sinatra]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[thin]]></category>

		<guid isPermaLink="false">http://www.rubyslacker.com/?p=98</guid>
		<description><![CDATA[When working with Sinatra + ActiveRecord + MySQL running on the venerable Thin server, you are probably going to see the error after 8 hours(MySQL default connection timeout):  &#8220;Mysql::Error: MySQL server has gone away&#8221; message. The resolution is pretty simple: 

class NewApp < Sinatra::Default   

  before do
    ActiveRecord::Base.connection.verify!
 [...]]]></description>
			<content:encoded><![CDATA[<p>When working with Sinatra + ActiveRecord + MySQL running on the venerable <a href="http://code.macournoyer.com/thin/">Thin</a> server, you are probably going to see the error after 8 hours(MySQL default connection timeout):  &#8220;Mysql::Error: MySQL server has gone away&#8221; message. The resolution is pretty simple: </p>
<pre>
class NewApp < Sinatra::Default   

  before do
    ActiveRecord::Base.connection.verify!
  end
...
end #end of Sinatra class
</pre>
<p>I created a Lighthouse ticket before I discovered the resolution. There are also more technical details here: <a href="https://thin.lighthouseapp.com/projects/7212-thin/tickets/101-activerecord-connection-does-not-reconnect-when-using-thinsinatra-but-works-fine-with-just-sinatra#ticket-101-4">https://thin.lighthouseapp.com/projects/7212-thin/tickets/101-activerecord-connection-does-not-reconnect-when-using-thinsinatra-but-works-fine-with-just-sinatra#ticket-101-4</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hankbeaver.com/index.php/2009/08/10/mysqlerror-mysql-server-has-gone-away-with-sinatra-activerecord/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Varnish cache purge Rake task</title>
		<link>http://www.hankbeaver.com/index.php/2009/07/15/varnish-cache-purge-rake-task/</link>
		<comments>http://www.hankbeaver.com/index.php/2009/07/15/varnish-cache-purge-rake-task/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 02:28:24 +0000</pubDate>
		<dc:creator>hbeaver</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[varnish]]></category>
		<category><![CDATA[purge]]></category>
		<category><![CDATA[rake]]></category>
		<category><![CDATA[task]]></category>

		<guid isPermaLink="false">http://www.rubyslacker.com/?p=93</guid>
		<description><![CDATA[This example uses Ruby to telnet into Varnish and issue the &#8220;url.purge .*&#8221; command. The only gotcha is that the varnish telnet server does not issue a command prompt which causes Ruby telnet to timeout and get cranky. Well a little exception handling hacks past this. Enjoy.

require 'rubygems'

namespace "varnish" do

  desc "Purge ALL urls [...]]]></description>
			<content:encoded><![CDATA[<p>This example uses Ruby to telnet into Varnish and issue the &#8220;url.purge .*&#8221; command. The only gotcha is that the varnish telnet server does not issue a command prompt which causes Ruby telnet to timeout and get cranky. Well a little exception handling hacks past this. Enjoy.</p>
<pre>
require 'rubygems'

namespace "varnish" do

  desc "Purge ALL urls from Varnish"
  task :global_purge => :environment do

    #It WILL timeout, just accept it. Varnish does not have a command prompt.
    require 'net/telnet'
    @result = ""
    begin
      localhost = Net::Telnet::new("Host" => "localhost",
      "Port" => 6082,
      "Timeout" => 5)
      localhost.cmd("url.purge .*") { |c| @result = c}
    rescue Exception
      if @result.include? ("200 0")
        puts "varnish purged OK."
      else
        raise "Varnish not purged."
      end
    end
  end

end
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.hankbeaver.com/index.php/2009/07/15/varnish-cache-purge-rake-task/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reminder to self and world: Varnish uses POSIX regex.</title>
		<link>http://www.hankbeaver.com/index.php/2009/07/14/reminder-to-self-and-world-varnish-uses-posix-regex/</link>
		<comments>http://www.hankbeaver.com/index.php/2009/07/14/reminder-to-self-and-world-varnish-uses-posix-regex/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 19:26:45 +0000</pubDate>
		<dc:creator>hbeaver</dc:creator>
				<category><![CDATA[regex]]></category>
		<category><![CDATA[varnish]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[posix]]></category>

		<guid isPermaLink="false">http://www.rubyslacker.com/?p=91</guid>
		<description><![CDATA[What does this mean? Well for starters, those nice little PCRE shorthands for character classes just don&#8217;t work! So putting this in your Varnish VCL will silently do nothing:

if (req.url ~ "/\d+(/$&#124;/\?&#124;\?&#124;$)") ...

whereas this match: 

if (req.url ~ "/[0-9]+(/$&#124;/\?&#124;\?&#124;$)") ...

Enjoy.
]]></description>
			<content:encoded><![CDATA[<p>What does this mean? Well for starters, those nice little PCRE shorthands for character classes just don&#8217;t work! So putting this in your Varnish VCL will silently do nothing:</p>
<pre>
if (req.url ~ "/\d+(/$|/\?|\?|$)") ...
</pre>
<p>whereas this match: </p>
<pre>
if (req.url ~ "/[0-9]+(/$|/\?|\?|$)") ...
</pre>
<p>Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hankbeaver.com/index.php/2009/07/14/reminder-to-self-and-world-varnish-uses-posix-regex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>F5/BigIP Healthcheck against Thin/Sinatra app</title>
		<link>http://www.hankbeaver.com/index.php/2009/06/05/f5bigip-healthcheck-against-thinsinatra-app/</link>
		<comments>http://www.hankbeaver.com/index.php/2009/06/05/f5bigip-healthcheck-against-thinsinatra-app/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 15:18:01 +0000</pubDate>
		<dc:creator>hbeaver</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BigIP]]></category>
		<category><![CDATA[F5]]></category>
		<category><![CDATA[healthcheck]]></category>
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://www.rubyslacker.com/?p=87</guid>
		<description><![CDATA[When using a BigIP to load balance a Sinatra app via Thin you will need to provide more than just the GET request string in F5&#8217;s &#8220;send string&#8221; field OR you might get &#8220;Request Invalid!&#8221; error message. Heads up.
Using this will cause issue:

GET /ops/heartbeat

This works:

GET /ops/heartbeat HTTP/1.1\r\nHost: \r\nConnection: Close\r\n\r\n


]]></description>
			<content:encoded><![CDATA[<p>When using a BigIP to load balance a Sinatra app via Thin you will need to provide more than just the GET request string in F5&#8217;s &#8220;send string&#8221; field OR you might get &#8220;Request Invalid!&#8221; error message. Heads up.</p>
<h4>Using this will cause issue:</h4>
<h4>
<pre>GET /ops/heartbeat</pre>
</h4>
<p><strong>This works:</strong></p>
<h4>
<pre>GET /ops/heartbeat HTTP/1.1\r\nHost: \r\nConnection: Close\r\n\r\n</pre>
</h4>
<h4></h4>
]]></content:encoded>
			<wfw:commentRss>http://www.hankbeaver.com/index.php/2009/06/05/f5bigip-healthcheck-against-thinsinatra-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
