<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Below you’ll find a quick stream of consciousness that includes photos, quotes, code snippets, and possibly even a full post. enjoy! </description><title>barinek.com: the official website</title><generator>Tumblr (3.0; @barinek)</generator><link>http://www.barinek.com/</link><item><title>morning in San Juan</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_m3ltbgCio01qz4ve8o1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;morning in San Juan&lt;/p&gt;</description><link>http://www.barinek.com/post/22514445748</link><guid>http://www.barinek.com/post/22514445748</guid><pubDate>Sun, 06 May 2012 07:54:52 -0600</pubDate></item><item><title>The new ride</title><description>&lt;iframe width="400" height="300" src="http://www.youtube.com/embed/w1V4_ys03Wo?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;The new ride&lt;/p&gt;</description><link>http://www.barinek.com/post/20293362434</link><guid>http://www.barinek.com/post/20293362434</guid><pubDate>Sun, 01 Apr 2012 10:58:23 -0600</pubDate></item><item><title>"The bitterness of poor quality remains long after the sweetness of low price is forgotten"</title><description>“The bitterness of poor quality remains long after the sweetness of low price is forgotten”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;benjamin franklin&lt;/em&gt;</description><link>http://www.barinek.com/post/19676911852</link><guid>http://www.barinek.com/post/19676911852</guid><pubDate>Thu, 15 Mar 2012 10:00:00 -0600</pubDate></item><item><title>pebble beach with woods and mickelson</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lzgwx8aNvr1qz4ve8o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;pebble beach with woods and mickelson&lt;/p&gt;</description><link>http://www.barinek.com/post/17696674252</link><guid>http://www.barinek.com/post/17696674252</guid><pubDate>Wed, 15 Feb 2012 21:10:20 -0700</pubDate></item><item><title>Stopwatch</title><description>&lt;p&gt;&lt;pre&gt;

require 'singleton'

module Stopwatch

  if defined?(ActiveRecord) &amp;amp;&amp;amp; defined?(ActiveRecord::ConnectionAdapters)
    ActiveRecord::ConnectionAdapters::AbstractAdapter.class_eval do
      def log_with_watcher(sql, name = "SQL", binds = [], &amp;amp;block)
        Stopwatch.instance.event("sql '#{name}'.") do
          log_without_watcher(sql, name, binds, &amp;amp;block)
        end
      end

      alias_method_chain :log, :watcher
    end
  end

  if defined?(ActionController)
    ActionController::Base.class_eval do
      def render_with_watcher(*args, &amp;amp;block)
        Stopwatch.instance.event("render.") do
          render_without_watcher(*args, &amp;amp;block)
        end
      end

      alias_method_chain :render, :watcher
    end
  end

  def self.watch(&amp;amp;block)
    watcher = Watcher.instance
    running = watcher.running
    watcher.start
    response = yield watcher
    watcher.stop unless running
    response
  end

  def self.instance
    Stopwatch::Watcher.instance
  end

  def self.reset
    Stopwatch::Watcher.instance.reset
  end

  class Split
    attr_reader :time, :message

    def initialize(time, message)
      @time = time
      @message = message
    end
  end

  class Event
    attr_reader :duration, :message

    def initialize(duration, message)
      @duration = duration
      @message = message
    end
  end

  class Tally
    attr_reader :duration, :message, :count

    def initialize(message)
      @message = message
      @duration = 0.0
      @count = 0.0
    end

    def add(event)
      @duration += event.duration
      @count += 1
    end
  end

  class Watcher
    include Singleton

    attr_reader :running, :splits, :events

    def initialize
      @running = false
      @splits = []
      @events = []
    end

    def start
      return if @running
      reset
      @running = true
      @start = Time.now
      puts "\n[stopwatch @time=#{human_time(0.0)}] started."
    end

    def stop
      @stop = Time.now
      @running = false
      puts "[stopwatch @time=#{human_time(@stop - @start)}] stopped."
    end

    def reset
      @running = false
      @splits = []
      @events = []
    end

    def split(message)
      split_time = Time.now
      @splits.push Split.new(split_time, message)
    end

    def event(message)
      start = Time.now
      result = yield
      stop = Time.now
      duration = stop - start
      @events.push Event.new(duration, message) if @running
      result
    end

    def report
      report_splits
      report_events
    end

    private

    def report_splits
      last_time = nil
      @splits.each do |split|
        time = split.time
        message = split.message
        elapsed = last_time ? time - last_time : time - @start
        last_time = time
        puts "[stopwatch @time=#{human_time(elapsed)}] split #{message} "
      end unless @splits.empty?
    end

    def report_events
      tallies = {}
      @events.each do |event|
        tallies[event.message] = Tally.new(event.message) unless tallies[event.message]
        tallies[event.message].add(event)
      end
      tallies.each do |key,tally|
        puts "[stopwatch @time=#{human_time(tally.duration)}] event #{tally.message} (#{tally.count.to_i})"
      end
    end

    def human_time(time)
      "%.2fms" % (time * 1_000)
    end

  end

end



require "test/unit"

require File.expand_path(File.join(File.dirname(__FILE__), "stopwatch"))

class TestStopwatch  Test::Unit::TestCase

  class ExampleLogger
    include Singleton

    def log(message)
      p message
    end

    def self.alias_method_chain(target, feature)
      alias_method "#{target}_without_#{feature}", target
      alias_method target, "#{target}_with_#{feature}"
    end
  end

  ExampleLogger.class_eval do
    def log_with_test(message, &amp;amp;block)
      Stopwatch.instance.event("a") do
        log_without_test(message, &amp;amp;block)
      end
    end

    alias_method_chain :log, :test
  end

  def setup
    Stopwatch.reset
  end

  def test_watch
    assert(!Stopwatch.instance.running)
    Stopwatch.watch do
      assert(Stopwatch.instance.running)
    end
    assert(!Stopwatch.instance.running)
  end

  def test_splits
    Stopwatch.watch do |watcher|
      watcher.split("a")
      watcher.split("b")
      watcher.split("c")
    end
    assert_equal(Stopwatch.instance.splits.size, 3)
    assert_equal(Stopwatch.instance.splits.collect { |split| split.message }, ["a", "b", "c"])
  end

  def test_nested
    Stopwatch.watch do |watcher|
      watcher.split("a")
      Stopwatch.watch do |watcher|
        watcher.split("b")
      end
      assert(Stopwatch.instance.running)
    end
    assert_equal(Stopwatch.instance.splits.size, 2)
    assert_equal(Stopwatch.instance.splits.collect { |split| split.message }, ["a", "b"])
  end

  def test_split_report
    Stopwatch.watch do |watcher|
      watcher.split("a")
      watcher.split("b")
      watcher.split("c")
      watcher.report
    end
  end

  def test_events
    Stopwatch.watch do |watcher|
      ExampleLogger.instance.log("message")
      Stopwatch.instance.event("b") do
      end
    end
    assert_equal(Stopwatch.instance.events.size, 2)
    assert_equal(Stopwatch.instance.events.collect { |event| event.message }, ["a", "b"])
  end

  def test_no_events
    Stopwatch.watch do |watcher|
    end
    ExampleLogger.instance.log("message")
    Stopwatch.instance.event("b") do
    end
    assert_equal(Stopwatch.instance.events.size, 0)
  end

end

&lt;/pre&gt;&lt;/p&gt;</description><link>http://www.barinek.com/post/15379097539</link><guid>http://www.barinek.com/post/15379097539</guid><pubDate>Thu, 05 Jan 2012 20:03:41 -0700</pubDate></item><item><title>Winter Golf in Aspen</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lu9nks9GKE1qz4ve8o1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Winter Golf in Aspen&lt;/p&gt;</description><link>http://www.barinek.com/post/12447834874</link><guid>http://www.barinek.com/post/12447834874</guid><pubDate>Sun, 06 Nov 2011 18:17:00 -0700</pubDate></item><item><title>Simple Trie for Autocomplete</title><description>&lt;p&gt;&lt;pre&gt;

require 'test/unit'

class Trie
  def initialize()
    @root = TrieNode.new
    @entry_count = 0
  end

  def empty?
    @entry_count == 0;
  end

  def size
    @entry_count
  end

  def add(key, value)
    return if key.nil? || key.empty?

    current_node = @root
    key.each_char { |character|
      next_node = current_node.get(character)
      next_node = current_node.add(character) unless next_node
      current_node = next_node
    }
    current_node
    current_node.value = value
    @entry_count += 1
  end

  def contains(str)
    # todo...
  end

  def find(string)
    results = []
    (0..string.length-1).each { |start_index|
      start_index
      current_node = @root
      (start_index..string.length-1).each { |i|
        ch = string[i].chr
        current_node = current_node.get(ch)
        break if current_node.nil?
        results.push current_node.values if current_node.values?
      }
    }
    results
  end

  class TrieNode
    def initialize()
      @children = Hash.new
    end

    def value=(value)
      if (@values.nil?)
        @values = Array.new
      end
      @values.push value
    end

    def get(character)
      @children[character]
    end

    def add(character)
      node = TrieNode.new
      @children[character] = node
      node
    end

    def values
      @values
    end

    def values?
      !@values.nil?
    end
  end
end

class TriTest  Test::Unit::TestCase
  def test_empty?
    trie = Trie.new
    assert(trie.empty?)

    trie.add("key", "value")
    assert(!trie.empty?)
  end

  def test_size
    trie = Trie.new
    trie.add("key", "value")
    assert_equal(1, trie.size)
  end

  def test_ignores_nil_or_empty_string
    trie = Trie.new
    trie.add("", "value")
    trie.add(nil, "value")
    assert(trie.empty?)
  end

  def test_find
    trie = Trie.new
    trie.add("key", "value")
    assert_equal(1, trie.find("key").size)

    trie.add("keys", "value")
    assert_equal(2, trie.find("keys").size)
  end

  def test_allows_duplicates
    trie = Trie.new
    trie.add("key", "value")
    trie.add("key", "value")
    assert(!trie.empty?)
  end
end

&lt;/pre&gt;&lt;/p&gt;</description><link>http://www.barinek.com/post/12447763980</link><guid>http://www.barinek.com/post/12447763980</guid><pubDate>Sun, 06 Nov 2011 18:15:00 -0700</pubDate></item><item><title>Handy Git Commands</title><description>&lt;p&gt;&lt;pre&gt;
source /usr/local/etc/bash_completion.d/git-completion.bash 

alias gits="git status"

git add -p

[alias]
	staged = diff --cached

[color]
        status = auto
        branch = auto
        diff = auto
&lt;/pre&gt;&lt;/p&gt;</description><link>http://www.barinek.com/post/11273643064</link><guid>http://www.barinek.com/post/11273643064</guid><pubDate>Mon, 10 Oct 2011 08:55:05 -0600</pubDate></item><item><title>Chris's Reading List</title><description>&lt;p&gt;&lt;b&gt;C&lt;/b&gt;
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;C Programming Language&lt;/b&gt; (2nd Edition) by Brian W. Kernighan and Dennis M. Ritchie&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Java&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Java Programming Language&lt;/b&gt;, The (4th Edition) by Ken Arnold, James Gosling and David Holmes &lt;/li&gt;
&lt;li&gt;&lt;b&gt;Thinking in Java &lt;/b&gt;(4th Edition) by Bruce Eckel &lt;/li&gt;
&lt;li&gt;&lt;sup&gt;Advanced&lt;/sup&gt; Effective Java (2nd Edition) by Joshua Bloch&lt;/li&gt;
&lt;li&gt;&lt;sup&gt;Advanced&lt;/sup&gt; Java Concurrency in Practice by Brian Goetz, Tim Peierls, Joshua Bloch and Joseph Bowbeer&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Ruby&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Learn to Program, Second Edition&lt;/b&gt; (The Facets of Ruby Series) by Chris Pine &lt;/li&gt;
&lt;li&gt;Programming Ruby 1.9: The Pragmatic Programmers&amp;#8217; Guide (Facets of Ruby) by Dave Thomas, Chad Fowler and Andy Hunt&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Algorithms&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Algorithms in Java, Parts 1-4 (3rd Edition) (Pts.1-4) by Robert Sedgewick&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Testing&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Test Driven Development&lt;/b&gt;: By Example by Kent Beck&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Software Design &lt;sup&gt;Advanced&lt;/sup&gt;&lt;/b&gt;
&lt;ul&gt;&lt;li&gt; Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides&lt;/li&gt;
&lt;li&gt; Refactoring: Improving the Design of Existing Code by Martin Fowler, Kent Beck, John Brant and William Opdyke&lt;/li&gt;
&lt;li&gt; Refactoring to Patterns by Joshua Kerievsky&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;The Enterprise &lt;sup&gt;Advanced&lt;/sup&gt;&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Patterns of Enterprise Application Architecture by Martin Fowler&lt;/li&gt;
&lt;li&gt;Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions by Gregor Hohpe and Bobby Woolf&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Web&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Agile Web Development with Rails (Pragmatic Programmers) by Sam Ruby, Dave Thomas and David Heinemeier Hansson&lt;/li&gt;
&lt;li&gt;&lt;sup&gt;Advanced&lt;/sup&gt; Restful Web Services by Leonard Richardson, Sam Ruby and David Heinemeier Hansson&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Methodology&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Extreme Programming Explained&lt;/b&gt;: Embrace Change (2nd Edition) by Kent Beck and Cynthia Andres&lt;/li&gt;
&lt;li&gt;Agile Software Development with Scrum (Series in Agile Software Development) by Ken &lt;/li&gt;&lt;li&gt;Schwaber and Mike Beedle&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;SQL&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Joe Celko&amp;#8217;s SQL for Smarties, Fourth Edition: Advanced SQL Programming (The Morgan Kaufmann Series in Data Management Systems) by Joe Celko&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;37 Signals&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Rework by Jason Fried and David Heinemeier Hansson&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Getting Real: The smarter, faster, easier way to build a successful web application&lt;/b&gt; by Jason Fried, Heinemeier David Hansson and Matthew Linderman&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Collections&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Pragmatic Unit Testing in Java with JUnit by Andy Hunt and Dave Thomas &lt;/li&gt;
&lt;li&gt;Pragmatic Project Automation: How to Build, Deploy, and Monitor Java Apps by Mike Clark&lt;/li&gt;
&lt;li&gt;Pragmatic Version Control Using Git (Pragmatic Starter Kit) by Travis Swicegood&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Pragmatism&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas&lt;/li&gt;
&lt;/ul&gt;</description><link>http://www.barinek.com/post/10931426110</link><guid>http://www.barinek.com/post/10931426110</guid><pubDate>Sun, 02 Oct 2011 06:42:00 -0600</pubDate></item><item><title>ruby conference</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lr035uYGsL1qz4ve8o1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;ruby conference&lt;/p&gt;</description><link>http://www.barinek.com/post/9787862136</link><guid>http://www.barinek.com/post/9787862136</guid><pubDate>Sun, 04 Sep 2011 07:37:06 -0600</pubDate></item><item><title>Surfing in Glenwood Springs (I shot the video)</title><description>&lt;iframe width="400" height="300" src="http://www.youtube.com/embed/jAtb_-5vgS8?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Surfing in Glenwood Springs (I shot the video)&lt;/p&gt;</description><link>http://www.barinek.com/post/9165687516</link><guid>http://www.barinek.com/post/9165687516</guid><pubDate>Sat, 20 Aug 2011 08:43:00 -0600</pubDate></item><item><title>"USGA Handicap Index Effective: 8/1/11 - 12.3"</title><description>“USGA Handicap Index Effective: 8/1/11 - 12.3”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://www.ghin.com/"&gt;http://www.ghin.com/&lt;/a&gt;&lt;/em&gt;</description><link>http://www.barinek.com/post/8499373333</link><guid>http://www.barinek.com/post/8499373333</guid><pubDate>Thu, 04 Aug 2011 21:19:00 -0600</pubDate></item><item><title>What’s Your Start-up’s “Bus Count”? 7 Myths of Entrepreneurship...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lmg9dpcgGG1qz4ve8o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://www.fourhourworkweek.com/blog/2011/06/07/whats-your-start-up-bus-count-7-myths-of-entrepreneurship-and-programming/"&gt;What’s Your Start-up’s “Bus Count”? 7 Myths of Entrepreneurship and Programming&lt;/a&gt;&lt;/p&gt;</description><link>http://www.barinek.com/post/6306619062</link><guid>http://www.barinek.com/post/6306619062</guid><pubDate>Tue, 07 Jun 2011 20:25:00 -0600</pubDate></item><item><title>startup week in boulder/denver </title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lllsgs7Pes1qz4ve8o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;startup week in boulder/denver &lt;a href="http://boulderstartupweek.com/"&gt;&lt;/a&gt;&lt;/p&gt;</description><link>http://www.barinek.com/post/5733400779</link><guid>http://www.barinek.com/post/5733400779</guid><pubDate>Sun, 22 May 2011 09:31:00 -0600</pubDate></item><item><title>Mizuno HttpServer</title><description>&lt;p&gt;&amp;#8230;couldn&amp;#8217;t resist making a few changes to &lt;a href="https://github.com/barinek/mizuno"&gt;&lt;b&gt;mizuno&lt;/b&gt;&lt;/a&gt; including an abstract handler, jmx suport, and slf4j logging. It&amp;#8217;s just a placeholder for now&amp;#8230;still fleshing out some new ideas.


&lt;pre&gt;
module Mizuno
  class HttpServer
    include_class 'org.eclipse.jetty.server.Server'
    include_class 'org.eclipse.jetty.servlet.ServletContextHandler'
    include_class 'org.eclipse.jetty.servlet.ServletHolder'
    include_class 'org.eclipse.jetty.util.thread.QueuedThreadPool'
    include_class 'org.eclipse.jetty.servlet.DefaultServlet'
    include_class 'org.eclipse.jetty.jmx.MBeanContainer'
    include_class 'org.eclipse.jetty.server.Server'

    include_class 'java.lang.management.ManagementFactory'
    include_class 'javax.management.MBeanServer'

    include_class 'org.slf4j.Logger'
    include_class 'org.slf4j.LoggerFactory'

    @@logger = LoggerFactory.getLogger("HttpServer")

    def self.run(app, options = {})
      options = Hash[options.map { |option| [option[0].to_s.downcase.to_sym, option[1]] }]

      port = options[:port].to_i

      thread_pool = QueuedThreadPool.new
      thread_pool.min_threads = 5
      thread_pool.max_threads = 50

      rack_handler = RackHandler.new
      rack_handler.rackup(app)

      @server = Server.new(port)
      @container = MBeanContainer.new(ManagementFactory.getPlatformMBeanServer)
      @server.container.addEventListener(@container)
      @server.set_thread_pool(thread_pool)
      @server.set_handler(rack_handler)
      @server.start

      @@logger.info("Started jetty on port {}.", port)

      trap("SIGINT") { @server.stop and exit }

      @server.join unless options[:embedded]
    end

    def self.stop
      @server.stop

      @@logger.info("Stopper jetty.")
    end
  end
end

Rack::Handler.register 'mizuno', 'Mizuno::HttpServer'
&lt;/pre&gt;&lt;/p&gt;</description><link>http://www.barinek.com/post/4916520109</link><guid>http://www.barinek.com/post/4916520109</guid><pubDate>Sun, 24 Apr 2011 21:08:00 -0600</pubDate></item><item><title>my tungle profile</title><description>&lt;a href="http://tungle.me/michaelbarinek"&gt;my tungle profile&lt;/a&gt;: &lt;p&gt;&lt;a href="http://tungle.me/michaelbarinek"&gt;&lt;a href="http://tungle.me/michaelbarinek"&gt;http://tungle.me/michaelbarinek&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;</description><link>http://www.barinek.com/post/4916003138</link><guid>http://www.barinek.com/post/4916003138</guid><pubDate>Sun, 24 Apr 2011 20:50:00 -0600</pubDate></item><item><title>sporting a new haircut this afternoon, now time for a shave</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lk2vzc7N4E1qz4ve8o1_r1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;sporting a new haircut this afternoon, now time for a shave&lt;/p&gt;</description><link>http://www.barinek.com/post/4850006921</link><guid>http://www.barinek.com/post/4850006921</guid><pubDate>Fri, 22 Apr 2011 17:59:00 -0600</pubDate></item><item><title>Photo</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_ln20pbBSQJ1qz4ve8o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;</description><link>http://www.barinek.com/post/6698637173</link><guid>http://www.barinek.com/post/6698637173</guid><pubDate>Fri, 15 Apr 2011 21:11:00 -0600</pubDate></item><item><title>Gramir blues…</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_liu211IDns1qz4ve8o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Gramir blues…&lt;/p&gt;</description><link>http://www.barinek.com/post/4188744565</link><guid>http://www.barinek.com/post/4188744565</guid><pubDate>Tue, 29 Mar 2011 12:57:46 -0600</pubDate></item><item><title>Talisker 25 through a Moser lens…</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lhtox73IOW1qz4ve8o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Talisker 25 through a Moser lens…&lt;/p&gt;</description><link>http://www.barinek.com/post/3756941242</link><guid>http://www.barinek.com/post/3756941242</guid><pubDate>Wed, 09 Mar 2011 20:41:29 -0700</pubDate></item></channel></rss>

