<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>mossity dot com</title>
  <id>http://127.0.0.1</id>
  <updated>2011-05-01T00:00:00Z</updated>
  <author>
    <name>Ben Moss</name>
  </author>
  <entry>
    <title>Thai cucumber salad</title>
    <link href="http://127.0.0.1/2011/07/08/thai-cucumber-salad/" rel="alternate"/>
    <id>http://127.0.0.1/2011/07/08/thai-cucumber-salad/</id>
    <published>2011-07-08T00:00:00Z</published>
    <updated>2011-07-08T00:00:00Z</updated>
    <author>
      <name>Ben Moss</name>
    </author>
    <summary type="html">&lt;h4 class="detailHeader bumpdown"&gt;Ingredients&lt;/h4&gt;


&lt;p&gt;&lt;/p&gt;

&lt;ul class="recipe_ingredients"&gt; 

  &lt;li &gt; &lt;span &gt;&lt;span class="amount"&gt;4 &lt;/span&gt;&lt;span class="unit"&gt;&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" &gt;cucumbers&lt;/span&gt; &lt;span class="specialInstructions"&gt;, peeled, halved lengthwise, seeded, and sliced very thin&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;

</summary>
    <content type="html">&lt;h4 class="detailHeader bumpdown"&gt;Ingredients&lt;/h4&gt;


&lt;p&gt;&lt;/p&gt;

&lt;ul class="recipe_ingredients"&gt; 

  &lt;li &gt; &lt;span &gt;&lt;span class="amount"&gt;4 &lt;/span&gt;&lt;span class="unit"&gt;&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" &gt;cucumbers&lt;/span&gt; &lt;span class="specialInstructions"&gt;, peeled, halved lengthwise, seeded, and sliced very thin&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

  &lt;li &gt; &lt;span &gt;&lt;span class="amount"&gt;1/3 &lt;/span&gt;&lt;span class="unit"&gt;cup&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" &gt;white wine vinegar&lt;/span&gt; &lt;span class="specialInstructions"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

  &lt;li &gt; &lt;span &gt;&lt;span class="amount"&gt;1 &lt;/span&gt;&lt;span class="unit"&gt;tablespoon&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" &gt;lime juice&lt;/span&gt; &lt;span class="specialInstructions"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

  &lt;li &gt; &lt;span &gt;&lt;span class="amount"&gt;1 &lt;/span&gt;&lt;span class="unit"&gt;tablespoon&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" &gt;fish sauce&lt;/span&gt; &lt;span class="specialInstructions"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

  &lt;li &gt; &lt;span &gt;&lt;span class="amount"&gt;2 &lt;/span&gt;&lt;span class="unit"&gt;&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;seeded and minced &lt;/span&gt; &lt;span class="item" &gt;Thai chiles&lt;/span&gt; &lt;span class="specialInstructions"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

  &lt;li &gt; &lt;span &gt;&lt;span class="amount"&gt;2 &lt;/span&gt;&lt;span class="unit"&gt;teaspoons&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" &gt;vegetable oil&lt;/span&gt; &lt;span class="specialInstructions"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

  &lt;li &gt; &lt;span &gt;&lt;span class="amount"&gt;2 &lt;/span&gt;&lt;span class="unit"&gt;teaspoons&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" &gt;sugar&lt;/span&gt; &lt;span class="specialInstructions"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

  &lt;li &gt; &lt;span &gt;&lt;span class="amount"&gt;1 &lt;/span&gt;&lt;span class="unit"&gt;teaspoon&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" &gt;salt&lt;/span&gt; &lt;span class="specialInstructions"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

  &lt;li &gt; &lt;span &gt;&lt;span class="amount"&gt;1/4 &lt;/span&gt;&lt;span class="unit"&gt;cup&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;chopped &lt;/span&gt; &lt;span class="item" &gt;fresh mint leaves&lt;/span&gt; &lt;span class="specialInstructions"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

  &lt;li &gt; &lt;span &gt;&lt;span class="amount"&gt;1/4 &lt;/span&gt;&lt;span class="unit"&gt;cup&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;chopped &lt;/span&gt; &lt;span class="item" &gt;fresh basil &lt;/span&gt; &lt;span class="specialInstructions"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

  &lt;li &gt; &lt;span &gt;&lt;span class="amount"&gt;1/4 &lt;/span&gt;&lt;span class="unit"&gt;cup&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;coarsely &lt;/span&gt; &lt;span class="item" &gt;chopped peanuts&lt;/span&gt; &lt;span class="specialInstructions"&gt;, toasted&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

&lt;/ul&gt;


&lt;p&gt;&lt;/p&gt;

&lt;h4 class="detailHeader"&gt;Instructions&lt;/h4&gt;


&lt;p&gt;&lt;/p&gt;

&lt;ol class="recipe_instructions"&gt; 

  &lt;li&gt;&lt;strong&gt;1.&lt;/strong&gt; Evenly spread cucumber slices on paper towel&#8211;lined baking sheet. Refrigerate while preparing dressing.&lt;/li&gt; 

  &lt;li&gt;&lt;strong&gt;2.&lt;/strong&gt; Bring vinegar to simmer in saucepan over medium-low heat; cook until reduced to 2 tablespoons, 4 to 6 minutes. Transfer vinegar to bowl and set aside to cool to room temperature, about 10 minutes. Whisk in lime juice, fish sauce, chiles, oil, sugar, and salt.&lt;/li&gt; 

  &lt;li&gt;&lt;strong&gt;3.&lt;/strong&gt; When ready to serve, add cucumbers, mint, and basil to dressing and toss to combine. Let stand for 5 minutes; retoss, sprinkle with peanuts, and serve.&lt;/li&gt; 

&lt;/ol&gt;

</content>
  </entry>
  <entry>
    <title>Sortable lists with acts_as_list and ActiveAdmin</title>
    <link href="http://127.0.0.1/2011/07/08/sortable-lists-with-actsaslist-and-activeadmin/" rel="alternate"/>
    <id>http://127.0.0.1/2011/07/08/sortable-lists-with-actsaslist-and-activeadmin/</id>
    <published>2011-07-08T00:00:00Z</published>
    <updated>2011-07-08T00:00:00Z</updated>
    <author>
      <name>Ben Moss</name>
    </author>
    <summary type="html">&lt;p&gt;For a small project I&amp;rsquo;m working on I wanted to give the client a nice admin interface, so I shopped around. My first attempt was with &lt;a href="https://github.com/sferik/rails_admin"&gt;rails_admin&lt;/a&gt;, but I had issues installing it using the Rails 3.1 branch, and preferred to build this on edge Rails. I tried out &lt;a href="https://github.com/gregbell/active_admin"&gt;ActiveAdmin&lt;/a&gt; and had found that Rails 3.1 support was already pretty much there&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;For a small project I&amp;rsquo;m working on I wanted to give the client a nice admin interface, so I shopped around. My first attempt was with &lt;a href="https://github.com/sferik/rails_admin"&gt;rails_admin&lt;/a&gt;, but I had issues installing it using the Rails 3.1 branch, and preferred to build this on edge Rails. I tried out &lt;a href="https://github.com/gregbell/active_admin"&gt;ActiveAdmin&lt;/a&gt; and had found that Rails 3.1 support was already pretty much there.&lt;/p&gt;

&lt;p&gt;The client wants a system of sortable &amp;lsquo;artworks&amp;rsquo;, and to achieve that through the ActiveAdmin interface was a bit of a challenge. I&amp;rsquo;ve done this sort of stuff before, but wrangling the ActiveAdmin interface into it was a different story, since it comes by default with tables instead of a unordered list, as most &lt;a href="http://jqueryui.com/demos/sortable/"&gt;jQuery examples&lt;/a&gt; use. Through this &lt;a href="https://github.com/gregbell/active_admin/issues/237"&gt;issue&lt;/a&gt; I came across this &lt;a href="http://webtempest.com/sortable-list-in-ruby-on-rails-3-almost-unobtrusive-jquery/"&gt;useful tutorial&lt;/a&gt; which helped refresh me on the fundamentals.&lt;/p&gt;

&lt;p&gt;The first issue I ran into was understanding how RailsAdmin loads its' javascripts. The active_admin.js manifest just requires &amp;ldquo;active_admin/base&amp;rdquo; from the gem, which is just a few lines of custom Javascript and vendored copies of &lt;a href="https://github.com/rails/jquery-ujs"&gt;Rails UJS&lt;/a&gt;, &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt;, and &lt;a href="http://jqueryui.com/home"&gt;jQuery UI&lt;/a&gt;. I decided just to get rid of that and bring the gem&amp;rsquo;s code into mine, ditch Rails UJS (since I won&amp;rsquo;t be using it), and using the jQuery and jQuery UI from Rails' &lt;a href="https://github.com/rails/jquery-rails"&gt;jquery-rails&lt;/a&gt; gem. So my active_admin.js looked like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;// = require jquery
// = require jquery-ui

$(function(){
  $(".datepicker").datepicker({dateFormat: 'yy-mm-dd'});

  $(".clear_filters_btn").click(function(){
    window.location.search = "";
    return false;
  });
});
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I found this &lt;a href="http://setiabud.blogspot.com/2009/06/jquery-ui-sortable-with-table.html"&gt;useful blog post&lt;/a&gt; about using jQuery UI&amp;rsquo;s sortable with a &lt;code&gt;TABLE&lt;/code&gt;, as is the default in RailsAdmin. Implementing that, scoped to the default id of &lt;code&gt;#artworks&lt;/code&gt; on my artworks index&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;function serializeArtworks(){
  var artworkIds = $.makeArray(
    $("#artworks .artwork").map(function(){
      return $(this).data("id");
    })
  );
  return {ids: artworkIds};
};

$("#artworks tbody").sortable({
  update: function(){
    $.ajax({
      url: "/admin/artworks/sort",
      type: 'post',
      data: serializeArtworks(),
      complete: function(){
        $(".paginated_collection").effect("highlight");
      }
    });
  }
});
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;My artwork objects only need to show a title and the default &amp;ldquo;show/edit/delete&amp;rdquo; buttons from RailsAdmin so my &lt;code&gt;admin/artworks.js&lt;/code&gt; looks like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ActiveAdmin.register Artwork do
  config.sort_order = 'position_asc'

  index do
    column :title do |artwork|
      content_tag(:span, artwork.title, :"data-id" =&amp;gt; artwork.id, :class =&amp;gt; "artwork")
    end
    default_actions
  end

  collection_action :sort, :method =&amp;gt; :post do
    params[:ids].each_with_index do |id, index|
      artwork = Artwork.find(id)
      artwork.update_attribute(:position, index.to_i+1)
    end
    head 200
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I provide the id of the artwork in an &lt;a href="http://ejohn.org/blog/html-5-data-attributes/"&gt;HTML5 data-attribute&lt;/a&gt; and access it with jQuery&amp;rsquo;s &lt;code&gt;data&lt;/code&gt; method. It posts to a custom collection action, which sorts through the ids it receives and assigns the artworks a position corresponding to the order that they are received in. The hardest part for me was creating the &lt;code&gt;serializeArtworks&lt;/code&gt; function, because of some bizarre shit involving jQuery&amp;rsquo;s &lt;code&gt;map&lt;/code&gt; creating some special kind of array that refused to be converted to params by the &lt;code&gt;$.param&lt;/code&gt; method that gets called on data being posted. The solution I ultimately went with was calling &lt;code&gt;$.makeArray&lt;/code&gt; on the result of the &lt;code&gt;map&lt;/code&gt; call, which gives you a pure Javascript array, which can be successfully turned into params.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Ultimate Hummus</title>
    <link href="http://127.0.0.1/2011/05/01/ultimate-hummus/" rel="alternate"/>
    <id>http://127.0.0.1/2011/05/01/ultimate-hummus/</id>
    <published>2011-05-01T00:00:00Z</published>
    <updated>2011-05-01T00:00:00Z</updated>
    <author>
      <name>Ben Moss</name>
    </author>
    <summary type="html">&lt;h4 class="detailHeader bumpdown"&gt;Ingredients&lt;/h4&gt;


&lt;p&gt;&lt;/p&gt;

&lt;ul class="recipe_ingredients"&gt; 

    &lt;li itemprop = "ingredient" itemscope itemtype = "http://data-vocabulary.org/RecipeIngredient"&gt; &lt;span itemprop = "amount"&gt;&lt;span class="amount"&gt;1/2 &lt;/span&gt;&lt;span class="unit"&gt;cup&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" itemprop = "name"&gt;dried chickpeas&lt;/span&gt; &lt;span class="specialInstructions"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;

</summary>
    <content type="html">&lt;h4 class="detailHeader bumpdown"&gt;Ingredients&lt;/h4&gt;


&lt;p&gt;&lt;/p&gt;

&lt;ul class="recipe_ingredients"&gt; 

    &lt;li itemprop = "ingredient" itemscope itemtype = "http://data-vocabulary.org/RecipeIngredient"&gt; &lt;span itemprop = "amount"&gt;&lt;span class="amount"&gt;1/2 &lt;/span&gt;&lt;span class="unit"&gt;cup&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" itemprop = "name"&gt;dried chickpeas&lt;/span&gt; &lt;span class="specialInstructions"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

    &lt;li itemprop = "ingredient" itemscope itemtype = "http://data-vocabulary.org/RecipeIngredient"&gt; &lt;span itemprop = "amount"&gt;&lt;span class="amount"&gt;2 &lt;/span&gt;&lt;span class="unit"&gt;quarts&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" itemprop = "name"&gt;water&lt;/span&gt; &lt;span class="specialInstructions"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

    &lt;li itemprop = "ingredient" itemscope itemtype = "http://data-vocabulary.org/RecipeIngredient"&gt; &lt;span itemprop = "amount"&gt;&lt;span class="amount"&gt;1/8 &lt;/span&gt;&lt;span class="unit"&gt;teaspoon&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" itemprop = "name"&gt;baking soda&lt;/span&gt; &lt;span class="specialInstructions"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

    &lt;li itemprop = "ingredient" itemscope itemtype = "http://data-vocabulary.org/RecipeIngredient"&gt; &lt;span itemprop = "amount"&gt;&lt;span class="amount"&gt;3 &lt;/span&gt;&lt;span class="unit"&gt;tablespoons&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" itemprop = "name"&gt;juice&lt;/span&gt; &lt;span class="specialInstructions"&gt;from 1 to 2 lemons&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

    &lt;li itemprop = "ingredient" itemscope itemtype = "http://data-vocabulary.org/RecipeIngredient"&gt; &lt;span itemprop = "amount"&gt;&lt;span class="amount"&gt;6 &lt;/span&gt;&lt;span class="unit"&gt;tablespoons&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" itemprop = "name"&gt;tahini&lt;/span&gt; &lt;span class="specialInstructions"&gt;&amp;#044; stirred well &amp;#040;see note&amp;#041;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

    &lt;li itemprop = "ingredient" itemscope itemtype = "http://data-vocabulary.org/RecipeIngredient"&gt; &lt;span itemprop = "amount"&gt;&lt;span class="amount"&gt;2 &lt;/span&gt;&lt;span class="unit"&gt;tablespoons&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" itemprop = "name"&gt;extra-virgin olive oil&lt;/span&gt; &lt;span class="specialInstructions"&gt;&amp;#044; plus extra for drizzling&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

    &lt;li itemprop = "ingredient" itemscope itemtype = "http://data-vocabulary.org/RecipeIngredient"&gt; &lt;span itemprop = "amount"&gt;&lt;span class="amount"&gt;1/2 &lt;/span&gt;&lt;span class="unit"&gt;teaspoon&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" itemprop = "name"&gt;table salt&lt;/span&gt; &lt;span class="specialInstructions"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

    &lt;li itemprop = "ingredient" itemscope itemtype = "http://data-vocabulary.org/RecipeIngredient"&gt; &lt;span itemprop = "amount"&gt;&lt;span class="amount"&gt;1 &lt;/span&gt;&lt;span class="unit"&gt;small&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" itemprop = "name"&gt;garlic clove&lt;/span&gt; &lt;span class="specialInstructions"&gt;&amp;#044; minced or pressed through garlic press &amp;#040;about 1/2 teaspoon&amp;#041;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

    &lt;li itemprop = "ingredient" itemscope itemtype = "http://data-vocabulary.org/RecipeIngredient"&gt; &lt;span itemprop = "amount"&gt;&lt;span class="amount"&gt;1/4 &lt;/span&gt;&lt;span class="unit"&gt;teaspoon&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" itemprop = "name"&gt;ground cumin&lt;/span&gt; &lt;span class="specialInstructions"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

    &lt;li itemprop = "ingredient" itemscope itemtype = "http://data-vocabulary.org/RecipeIngredient"&gt; &lt;span itemprop = "amount"&gt;&lt;span class="amount"&gt;&lt;/span&gt;&lt;span class="unit"&gt;Pinch&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" itemprop = "name"&gt;Cayenne&lt;/span&gt; &lt;span class="specialInstructions"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

    &lt;li itemprop = "ingredient" itemscope itemtype = "http://data-vocabulary.org/RecipeIngredient"&gt; &lt;span itemprop = "amount"&gt;&lt;span class="amount"&gt;1 &lt;/span&gt;&lt;span class="unit"&gt;tablespoon&lt;/span&gt;&lt;/span&gt; &lt;span class="ingredient"&gt;&lt;span class="preInstructions"&gt;&lt;/span&gt; &lt;span class="item" itemprop = "name"&gt;minced fresh cilantro&lt;/span&gt; &lt;span class="specialInstructions"&gt;or parsley leaves&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; 

&lt;/ul&gt;


&lt;p&gt;&lt;/p&gt;

&lt;h4 class="detailHeader"&gt;Instructions&lt;/h4&gt;


&lt;p&gt;&lt;/p&gt;

&lt;ol class="recipe_instructions" itemprop = "instructions"&gt; 

    &lt;li&gt;&lt;p&gt;1. Pick through and rinse chickpeas. Place beans in large bowl&amp;#044; cover with 1 quart water&amp;#044; and soak overnight. Drain. Bring beans&amp;#044; baking soda&amp;#044; and 1 quart water to boil in large saucepan over high heat. Reduce heat to low and simmer gently&amp;#044; stirring occasionally&amp;#044; until beans are tender&amp;#044; about 1 hour. Drain&amp;#044; reserving 1/4 cup bean cooking water&amp;#044; and cool. &lt;/p&gt;&lt;/li&gt; 

    &lt;li&gt;&lt;p&gt;2. Combine lemon juice and bean cooking water in small bowl or measuring cup. Whisk together tahini and 2 tablespoons oil in second small bowl or measuring cup. Set aside 2 tablespoons chickpeas for garnish.&lt;/p&gt;&lt;/li&gt; 

    &lt;li&gt;&lt;p&gt;3. Process chickpeas&amp;#044; garlic&amp;#044; salt&amp;#044; cumin&amp;#044; and cayenne in food processor until almost fully ground&amp;#044; about 15 seconds. Scrape down bowl with rubber spatula. With machine running&amp;#044; add lemon juice-water mixture in steady stream through feed tube. Scrape down bowl and continue to process for 1 minute. With machine running&amp;#044; add oil-tahini mixture in steady stream through feed tube; continue to process until hummus is smooth and creamy&amp;#044; about 15 seconds&amp;#044; scraping down bowl as needed. &lt;/p&gt;&lt;/li&gt; 

    &lt;li&gt;&lt;p&gt;4. Transfer hummus to serving bowl&amp;#044; sprinkle reserved chickpeas and cilantro over surface&amp;#044; cover with plastic wrap&amp;#044; and let stand until flavors meld&amp;#044; at least 30 minutes. Drizzle with olive oil and serve.&lt;/p&gt;&lt;/li&gt; 

&lt;/ol&gt;

</content>
  </entry>
</feed>
