<?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>scot hacker&#039;s foobar blog</title>
	<atom:link href="http://birdhouse.org/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://birdhouse.org/blog</link>
	<description>Like a chicken with a jewel in its beak.</description>
	<lastBuildDate>Thu, 09 May 2013 18:37:50 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Building a GPA Calculator in Angular.js</title>
		<link>http://birdhouse.org/blog/2013/05/09/building-a-gpa-calculator-in-angular-js/</link>
		<comments>http://birdhouse.org/blog/2013/05/09/building-a-gpa-calculator-in-angular-js/#comments</comments>
		<pubDate>Thu, 09 May 2013 17:34:58 +0000</pubDate>
		<dc:creator>shacker</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Angular.js]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://birdhouse.org/blog/?p=13999</guid>
		<description><![CDATA[I&#8217;m awed almost daily by the simplicity and elegance of Angular.js. By eliminating all of the DOM access syntax we&#8217;ve come to take for granted in jQuery and friends, and by giving any element on the page a live, two-way data binding relationship with your business logic, Angular lets you create anything from simple widgets [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m awed almost daily by the simplicity and elegance of <a href="http://angularjs.org/">Angular.js</a>. By eliminating all of the DOM access syntax we&#8217;ve come to take for granted in jQuery and friends, and by giving any element on the page a live, two-way data binding relationship with your business logic, Angular lets you create anything from simple widgets to full-on <a href="http://en.wikipedia.org/wiki/Single-page_application">Single Page Applications</a> with the fewest lines of code possible.</p>
<p>I recently created a live GPA calculator as part of a large SPA I&#8217;m working on in my day job, but have boiled it down to its bare essence for this widget demo. Try changing the dropdown options here and watch the GPA calculation change in real-time:</p>
<p><iframe style="width:500px;height:475px" src="http://birdhouse.org/blog/wp-content/uploads/angular/gpa/index.html"></iframe></p>
<p><a href="view-source:http://birdhouse.org/blog/wp-content/uploads/angular/gpa/index.html">View html</a> | <a href="http://birdhouse.org/blog/wp-content/uploads/angular/gpa/gpa.js">View script</a></p>
<p>In this example, we assume that a student&#8217;s current course load comes in over the wire with course names and units. We iterate over the course set and, for all courses being taken for a letter grade, multiply the numeric weight of a predicted grade by the number of units. Those scores get added up, then divided by the total number of units. When a new grade estimate is selected from a dropdown, we need to recalculate the whole aggregate. Let&#8217;s step through it.<br />
<span id="more-13999"></span><br />
In the controller, we put data for the course set and a mapping of letter grades to weights onto the current $scope:</p>
<pre class="brush: javascript; gutter: true; first-line: 1; highlight: []; html-script: false">

  // Letter grades and their weights for the dropdowns
  $scope.gradeopts = [
    {grade: &#039;A&#039;, weight: 4},
    {grade: &#039;A-&#039;, weight: 3.7},
    {grade: &#039;B+&#039;, weight: 3.3},
    {grade: &#039;B&#039;, weight: 3},
    {grade: &#039;B-&#039;, weight: 2.7},
    {grade: &#039;C+&#039;, weight: 2.3},
    {grade: &#039;C&#039;, weight: 2},
    {grade: &#039;C-&#039;, weight: 1.7},
    {grade: &#039;D+&#039;, weight: 1.3},
    {grade: &#039;D&#039;, weight: 1},
    {grade: &#039;D-&#039;, weight: 0.7},
    {grade: &#039;F&#039;, weight: 0}
  ];

  // The student&#039;s courses, units and grading options.
  // This would typically come in as JSON data, retrieved via angular&#039;s $http
  $scope.schedule = [
    {
      &quot;course_number&quot;: &quot;BIO 1A&quot;,
      &quot;units&quot;: &quot;3.0&quot;,
      &quot;grade_option&quot;: &quot;Letter&quot;
    },
    {
      &quot;course_number&quot;: &quot;COMPSCI 200&quot;,
      &quot;units&quot;: &quot;4.0&quot;,
      &quot;grade_option&quot;: &quot;Letter&quot;
    },
    {
      &quot;course_number&quot;: &quot;PHIL 201&quot;,
      &quot;units&quot;: &quot;3.0&quot;,
      &quot;grade_option&quot;: &quot;Letter&quot;
    },
    {
      &quot;course_number&quot;: &quot;ENG 11B&quot;,
      &quot;units&quot;: &quot;4.0&quot;,
      &quot;grade_option&quot;: &quot;P/NP&quot;
    },
    {
      &quot;course_number&quot;: &quot;HIST 231&quot;,
      &quot;units&quot;: &quot;2.5&quot;,
      &quot;grade_option&quot;: &quot;Letter&quot;
    }
  ];

</pre>
<p>And here&#8217;s the HTML that transforms that data into UI, all wrapped in a div with an &#8220;ng-controller&#8221; attribute </p>
<pre class="brush: xml; gutter: true; first-line: 1; highlight: []; html-script: false">
&lt;div ng-controller=&quot;GpaController&quot;&gt;...
</pre>
<p>which ties the fragment to a named Angular controller.</p>
<pre class="brush: xml; gutter: true; first-line: 1; highlight: []; html-script: false">

    &lt;table&gt;
      &lt;tr&gt;
        &lt;th&gt;Class&lt;/th&gt;
        &lt;th&gt;Units&lt;/th&gt;
        &lt;th&gt;Grade&lt;/th&gt;
      &lt;/tr&gt;
      &lt;tr ng-repeat=&quot;course in schedule&quot;&gt;
        &lt;td&gt;{{course.course_number}}&lt;/td&gt;
        &lt;td&gt;{{course.units}}&lt;/td&gt;
        &lt;td&gt;
          &lt;!-- In this cell we EITHER show a dropdown for a graded class
          OR an uneditable display of the grading option. Note ng-options
          for converting gradeopts array into dropdown. We only show the
          picklist if the grading option is &quot;Letter grade&quot; (skip pass/no pass classes).
          When a new grade is selected, trigger recalculation of the whole set.
          See http://docs.angularjs.org/api/ng.directive:select
          --&gt;
          &lt;select
            ng-show=&quot;course.grade_option==&#039;Letter&#039;&quot;
            ng-model=&quot;course.estimated_grade&quot;
            ng-change=&quot;gpaUpdateCourse(course, course.estimated_grade)&quot;
            ng-options=&quot;g.weight as g.grade for g in gradeopts&quot;&gt;
          &lt;/select&gt;
          &lt;!-- For non-letter-grade classes, just display the grading type --&gt;
          &lt;span ng-show=&quot;course.grade_option!=&#039;Letter&#039;&quot;&gt;{{course.grade_option}}&lt;/span&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
    &lt;/table&gt;
</pre>
<p>There are some interesting bits in that <code>select</code> element.  <code>ng-show</code> ensures that a dropdown will not be displayed if the course is not being taken for a letter grade. </p>
<p><code>ng-model</code> binds the dropdown to a property of the course object. But if you look at the data source above, you&#8217;ll notice that there is no <code>estimated_grade</code> property. That&#8217;s because we added that property to each course when the app was first loaded (we&#8217;ll get to that in a moment). </p>
<p>And what is the value of that estimated grade? That&#8217;s where <code>ng-options</code> comes in. It steps through the <code>gradeopts</code> array and sets values and labels for each of the <code>select</code> options. There&#8217;s a gotcha here &#8211; if you inspect the DOM and look at the generated <code>select</code> elements, you&#8217;ll see that they seem to have simple integer values, not the actual weights we handed them. And yet, when the code is run, <code>g.weight</code> will be substituted in automatically. Angular does this substitution so it can guarantee uniqueness of values and keep track of everything internally. Don&#8217;t fight it :)</p>
<p><code>ng-change</code> is fired whenever a dropdown is changed by the user. It fires the <code>gpaUpdateCourse()</code> function in our controller, which receives the course object and the newly selected grade estimate. </p>
<p>Finally, we display the computed result handed back from Angular, and run it through the built-in &#8220;number&#8221; directive to limit display of the final estimated GPA to two decimal points. We also provide some fallback text for students who have no classes for some reason.</p>
<pre class="brush: xml; gutter: true; first-line: 1; highlight: []; html-script: false">

  &lt;!--
      Use Angular&#039;s &quot;number&quot; directive to restrict GPA display to decimals
      || &#039;N/A&#039; catches the outside case where the student has no letter grade classes
      and therefore no estimated_gpa.
     --&gt;
    &lt;p class=&quot;result&quot;&gt;Estimated GPA: {{(estimated_gpa | number:2) || &#039;N/A&#039;}}&lt;/p&gt;

    &lt;!-- In case student has no classes at all... --&gt;
    &lt;p ng-show=&quot;!schedule.length&quot;&gt;
      To calculate your GPA, you must be enrolled
      in one or more classes for the selected semester.
    &lt;/p&gt;
</pre>
<p>In the controller, we have three functions:</p>
<p>First, an initializer to loop through the courses and add an <code>estimated_grade</code> property to each:</p>
<pre class="brush: javascript; gutter: true; first-line: 1; highlight: []; html-script: false">
  $scope.gpaInit = function() {
    // On init, be generous... start everyone off with a 4.0
    angular.forEach($scope.schedule, function(course) {
      course.estimated_grade = 4;
    });
    $scope.gpaCalculate();
  }(); // Note &quot;()&quot; - makes gpaInit() a self-running function, so it fires on page load
</pre>
<p>After populating <code>estimated_grade</code> for each course, it kicks off <code>gpaCalculate</code>:</p>
<pre class="brush: javascript; gutter: true; first-line: 1; highlight: []; html-script: false">
  $scope.gpaCalculate = function() {
    // Recalculate GPA on every dropdown change.
    var total_units = 0;
    var total_score = 0;

    angular.forEach($scope.schedule, function(course) {
      // Don&#039;t calculate for pass/no-pass courses!
      // Cast estimates and units to integers before doing math.
      if (course.grade_option === &#039;Letter&#039;) {
        course.score = parseFloat(course.estimated_grade, 10) * course.units;
        total_units += parseFloat(course.units, 10);
        total_score += course.score;
      }
    });

    // The standard GPA calculation formula. estimated_gpa is 
    // bound to the final result paragraph in the html
    $scope.estimated_gpa = total_score / total_units;
  };
</pre>
<p>The logic there is pretty straightforward. And finally, an update function which is triggered on every dropdown change:</p>
<pre class="brush: javascript; gutter: true; first-line: 1; highlight: []; html-script: false">
  $scope.gpaUpdateCourse = function(course, estimated_grade) {
    // When a new selection is made, update course object on scope
    // and trigger recalculation of overall GPA
    course.estimated_grade = estimated_grade;
    $scope.gpaCalculate();
  };
</pre>
<p>And that&#8217;s it! A more interesting version of this might take recorded GPAs from previous school terms and calculate an aggregate GPA.</p>
]]></content:encoded>
			<wfw:commentRss>http://birdhouse.org/blog/2013/05/09/building-a-gpa-calculator-in-angular-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Barracuda&#8217;s RBL Stops Spam Cold</title>
		<link>http://birdhouse.org/blog/2013/05/04/barracudas-rbl-stops-spam-cold/</link>
		<comments>http://birdhouse.org/blog/2013/05/04/barracudas-rbl-stops-spam-cold/#comments</comments>
		<pubDate>Sat, 04 May 2013 15:01:38 +0000</pubDate>
		<dc:creator>shacker</dc:creator>
				<category><![CDATA[Hosting]]></category>

		<guid isPermaLink="false">http://birdhouse.org/blog/?p=13988</guid>
		<description><![CDATA[I&#8217;ve run a small web and mail hosting business on the side for around a decade. The hosting platform I use (cPanel) comes with spamassassin and support for a couple of real-time blacklists (zen.spamhaus.org and bl.spamcop.net) built in. On top of that, I&#8217;ve compiled in Razor, DCC, and ClamAV. But with spam control settings set to [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.barracudacentral.org/rbl"><img class="size-full wp-image-13989 alignleft" alt="barracuda" src="http://birdhouse.org/blog/wp-content/uploads/2013/05/barracuda.png" width="333" height="78" /></a><span style="line-height: 1.714285714; font-size: 1rem;">I&#8217;ve run a small </span><a style="line-height: 1.714285714; font-size: 1rem;" href="http://hosting.birdhouse.org/">web and mail hosting business</a><span style="line-height: 1.714285714; font-size: 1rem;"> on the side for around a decade. The hosting platform I use (cPanel) comes with spamassassin and support for a couple of real-time blacklists (zen.spamhaus.org and bl.spamcop.net) built in. On top of that, I&#8217;ve compiled in Razor, DCC, and ClamAV.</span></p>
<p>But with spam control settings set to their highest levels, I&#8217;ve struggled over the years to keep fall-through spam from reaching the mailboxes of my power users &#8211; the spammers  just move too fast,  are too crafty. Spams that look the same from day to day actually have quite different signatures, and manage to evade my arsenal of tools. It&#8217;s been incredibly frustrating.</p>
<p>A few months ago, I came up with a <a href="http://birdhouse.org/blog/2012/12/22/spam-training-on-cpanel-for-desktop-mail-clients/">set of techniques</a> to let desktop mail clients train the server-side Bayes database about what&#8217;s spam and what&#8217;s ham. That worked well for a couple of months, but eventually the Bayes dbs became polluted with false hits (probably a result of users incorrectly marking / not marking messages). Is it even possible to operate as an organization smaller than Google and still guarantee low spam levels for users?</p>
<p>Real-time blacklists (RBLs) tap the hive mind &#8211; the collective judgement of thousands of human users spread around the world, marking ham and spam every minute of every day. When all of those judgements are collected into a single, continuously evolving database that any host can tap into, it should be possible to create an almost perfect blockade. We know that <a href="http://akismet.com/">Akismet</a> has made their RBL work amazingly for weblog comment spam (as I write this, Akismet claims to have blocked 54 million comment spam today alone).</p>
<p>RBLs always seemed like the smartest way to go, but spamhaus and spamcop sure weren&#8217;t getting the job done. Doing research in the cPanel forums a few days ago, I discovered that Barracuda Networks, who make a series of firewall appliances for enterprises, maintain <a href="http://www.barracudacentral.org/rbl">their own RBL</a> and provide <em>free</em> access to it for organizations like mine.</p>
<p>Decided to give it a whirl and was <strong>blown away</strong>. Within 24 hours, the amount of un-tagged spam getting through to my users had dropped to a trickle. I haven&#8217;t found an anti-spam tool this effective since&#8230; ever. It took almost no effort to set up, and will require almost no effort to maintain in the future. Super stoked.</p>
<p>To the great engineers at Barracuda: The internet thanks you.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://birdhouse.org/blog/2013/05/04/barracudas-rbl-stops-spam-cold/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tour de Cure &#8211; Riding Against Diabetes</title>
		<link>http://birdhouse.org/blog/2013/04/29/tour-de-cure-riding-against-diabetes/</link>
		<comments>http://birdhouse.org/blog/2013/04/29/tour-de-cure-riding-against-diabetes/#comments</comments>
		<pubDate>Tue, 30 Apr 2013 06:32:57 +0000</pubDate>
		<dc:creator>shacker</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Bike]]></category>

		<guid isPermaLink="false">http://birdhouse.org/blog/?p=13983</guid>
		<description><![CDATA[Growing up, I watched as my grandmother struggled to keep her insulin levels under control. As an adult, I watched as my father-in-law did the same. Ultimately, diabetes was a contributing factor in both of their deaths. It runs in the family. Next weekend, our family will ride 25 miles in the American Diabetes Association&#8217;s Tour [...]]]></description>
				<content:encoded><![CDATA[<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">Growing up, I watched as my grandmother struggled to keep her insulin levels under control. As an adult, I watched as my father-in-law did the same. Ultimately, diabetes was a contributing factor in both of their deaths. It runs in the family.</p>
<p>Next weekend, our family will ride 25 miles in the American Diabetes Association&#8217;s Tour de Cure to help raise money for diabetes research (I wanted to ride 75 miles but it was more important to be able to stay with Miles on his longest ride yet). We are riding because it is an opportunity to change the future and to make a positive impact in the lives of those who are affected by diabetes.</p>
<p><a href="http://www.flickr.com/photos/shacker/8711091799/" title="Rest stop in the vineyards by shacker, on Flickr"><img src="http://farm9.staticflickr.com/8266/8711091799_ce34f7eef6_z.jpg" width="640" height="480" alt="Rest stop in the vineyards"></a></p>
<p><b>I just signed up to ride in the American Diabetes Association&#8217;s Tour de Cure. I&#8217;d like to invite you to support me in my efforts to Stop Diabetes!</b></p>
<p>Tour de Cure is an opportunity to change the future and make a positive impact in the lives of all those affected by diabetes. And it&#8217;s a great ride!</p>
<p>Chances are, you also know someone who has been affected by diabetes and you already know how important it is to stop this disease. My goal is to raise . Will you join me by visiting <a href="http://tour.diabetes.org/site/TR?px=8738095&amp;pg=personal&amp;fr_id=8674&amp;s_src=email_tour&amp;s_subsrc=autoresponder-forward">my personal page</a> and making a donation?</p>
<p>By supporting me, you will help the American Diabetes Association provide community-based education programs, protect the rights of people with diabetes and fund critical research for a cure.</p>
<p>The power we have together far outweighs what I can do alone. <b>Please join me by </b><a href="http://tour.diabetes.org/site/TR?px=8738095&amp;pg=personal&amp;fr_id=8674&amp;s_src=email_tour&amp;s_subsrc=autoresponder-forward"><b>donating</b></a><b> to this great cause &#8211; it would mean so much to me!</b></p>
<p>Thank you!</p>
<p>Scot Hacker</p>
<p>P.S. Thank you for considering <a href="http://tour.diabetes.org/site/TR?px=8738095&amp;pg=personal&amp;fr_id=8674&amp;s_src=email_tour&amp;s_subsrc=autoresponder-forward">making a donation</a> to my efforts! Also, if you&#8217;re interested in riding, I&#8217;d love the company! Visit my <a href="http://tour.diabetes.org/site/TR?px=8738095&amp;pg=personal&amp;fr_id=8674&amp;s_src=email_tour&amp;s_subsrc=autoresponder-forward">personal page</a> or the <a href="http://tour.diabetes.org/site/TR?fr_id=8674&amp;pg=entry&amp;s_src=email_tour&amp;s_subsrc=autoresponder-forward">Tour website</a> for more information.</td>
</tr>
</tbody>
</table>
<p><strong>Update: </strong>The ride was fantastic, and all of us completed 25 miles, no sweat. Together, we ended up raising more than $700, strengthened our bodies, and had a great time. Some pics from the day in this <a href="http://www.flickr.com/photos/shacker/sets/72157633427531588/with/8712221952/">Flickr Set</a>.</p>
<p><a href="http://www.flickr.com/photos/shacker/8712221514/" title="Untitled by shacker, on Flickr"><img src="http://farm9.staticflickr.com/8393/8712221514_dbd8da889f_z.jpg" width="640" height="480" alt="Untitled"></a></p>
<p><a href="http://www.flickr.com/photos/shacker/8712221952/" title="Team Lanesplitter! by shacker, on Flickr"><img src="http://farm9.staticflickr.com/8273/8712221952_0cf44f84b7_z.jpg" width="640" height="480" alt="Team Lanesplitter!"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://birdhouse.org/blog/2013/04/29/tour-de-cure-riding-against-diabetes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Searching for Sugar Man</title>
		<link>http://birdhouse.org/blog/2013/04/22/searching-for-sugar-man/</link>
		<comments>http://birdhouse.org/blog/2013/04/22/searching-for-sugar-man/#comments</comments>
		<pubDate>Tue, 23 Apr 2013 00:29:16 +0000</pubDate>
		<dc:creator>shacker</dc:creator>
				<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://birdhouse.org/blog/?p=13979</guid>
		<description><![CDATA[New at Stuck Between Stations, my mini-review of the fantastic documentary about the life of Detroit troubador Rodriguez, Searching for Sugar Man. Meanwhile, a couple bootleg copies of his records somehow made it to South Africa, where his music became the soundtrack for the young adult revolution against apartheid. “Cold Fact” and “Coming From Reality” [...]]]></description>
				<content:encoded><![CDATA[<p>New at Stuck Between Stations, my mini-review of the fantastic documentary about the life of Detroit troubador Rodriguez, <a href="http://stuckbetweenstations.org/2013/04/21/searching-for-sugar-man/">Searching for Sugar Man</a>.</p>
<blockquote><p>Meanwhile, a couple bootleg copies of his records somehow made it to South Africa, where his music became the soundtrack for the young adult revolution against apartheid. “Cold Fact” and “Coming From Reality” became record collection staples of pretty much every South African. “If someone had Beatles and Stones records, they had the Rodriguez records too.” In fact, most South Africans will tell you today that Rodriguez was bigger than the Stones in their country.</p></blockquote>
<p><a href="http://stuckbetweenstations.org/2013/04/21/searching-for-sugar-man/"><img src="http://birdhouse.org/blog/wp-content/uploads/2013/04/Searching-for-sugar-man-poster.jpg" alt="Searching-for-sugar-man-poster" width="220" height="291" class="alignnone size-full wp-image-13980" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://birdhouse.org/blog/2013/04/22/searching-for-sugar-man/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jim Hacker Describes the Day He Almost Died</title>
		<link>http://birdhouse.org/blog/2013/04/15/jim-hacker-describes-the-day-he-almost-died/</link>
		<comments>http://birdhouse.org/blog/2013/04/15/jim-hacker-describes-the-day-he-almost-died/#comments</comments>
		<pubDate>Tue, 16 Apr 2013 05:55:41 +0000</pubDate>
		<dc:creator>shacker</dc:creator>
				<category><![CDATA[Family & Home]]></category>

		<guid isPermaLink="false">http://birdhouse.org/blog/?p=13974</guid>
		<description><![CDATA[My absolutely amazing father Jim Hacker describes the day he almost died in the wilderness of frozen Sierras while snowshoeing. For the El Dorado National Forest Interpretive Association (for whom he volunteers). Originally posted here.]]></description>
				<content:encoded><![CDATA[<p>My absolutely amazing father Jim Hacker describes <a href="http://www.enfia.info/index.php/newsletter-page-2">the day he almost died</a> in the wilderness of frozen Sierras while snowshoeing. For the El Dorado National Forest Interpretive Association (for whom he volunteers). </p>
<p>Originally posted <a href="http://www.enfia.info/index.php/newsletter-page-2">here</a>.</p>
<p><a href="http://birdhouse.org/blog/wp-content/uploads/2013/04/spring_2013_interpreter_page_2.png" rel="lightbox[13974]"><img src="http://birdhouse.org/blog/wp-content/uploads/2013/04/spring_2013_interpreter_page_2-638x1024.png" alt="spring_2013_interpreter_page_2" width="625" height="1003" class="alignnone size-large wp-image-13975" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://birdhouse.org/blog/2013/04/15/jim-hacker-describes-the-day-he-almost-died/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wildcat Canyon Circuit</title>
		<link>http://birdhouse.org/blog/2013/04/07/wildcat-canyon-circuit/</link>
		<comments>http://birdhouse.org/blog/2013/04/07/wildcat-canyon-circuit/#comments</comments>
		<pubDate>Sun, 07 Apr 2013 21:37:29 +0000</pubDate>
		<dc:creator>shacker</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://birdhouse.org/blog/?p=13964</guid>
		<description><![CDATA[22-mile solo training ride around and through Wildcat Canyon today, gearing up for Tour de Cure! New personal best &#8211; averaged 13.78 mph, taking into account uphill, downhill, photo breaks and stop signs.]]></description>
				<content:encoded><![CDATA[<p>22-mile solo training ride around and through Wildcat Canyon today, gearing up for Tour de Cure! New personal best &#8211; averaged 13.78 mph, taking into account uphill, downhill, photo breaks and stop signs.</p>
<p><a href="http://runkeeper.com/user/shacker/activity/164802103"><img src="http://birdhouse.org/blog/wp-content/uploads/2013/04/wildcat-526x400.png" alt="wildcat" width="526" height="400" class="alignnone size-medium wp-image-13968" /></a></p>
<p><a href="http://www.flickr.com/photos/shacker/8628524405/" title="Wildcat Canyon Circuit by shacker, on Flickr"><img src="http://farm9.staticflickr.com/8393/8628524405_d1366e8edb_z.jpg" width="640" height="480" alt="Wildcat Canyon Circuit"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://birdhouse.org/blog/2013/04/07/wildcat-canyon-circuit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drinking Glass Shadow, Kitchen Wall</title>
		<link>http://birdhouse.org/blog/2013/04/06/drinking-glass-shadow-kitchen-wall/</link>
		<comments>http://birdhouse.org/blog/2013/04/06/drinking-glass-shadow-kitchen-wall/#comments</comments>
		<pubDate>Sat, 06 Apr 2013 15:59:35 +0000</pubDate>
		<dc:creator>shacker</dc:creator>
				<category><![CDATA[Out there]]></category>
		<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://birdhouse.org/blog/?p=13962</guid>
		<description><![CDATA[]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/shacker/8624225474/" title="Drinking glass shadow, kitchen wall by shacker, on Flickr"><img src="http://farm9.staticflickr.com/8246/8624225474_2a2111d658_z.jpg" width="640" height="640" alt="Drinking glass shadow, kitchen wall"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://birdhouse.org/blog/2013/04/06/drinking-glass-shadow-kitchen-wall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Notes on the Death of Google Reader</title>
		<link>http://birdhouse.org/blog/2013/03/14/notes-on-the-death-of-google-reader/</link>
		<comments>http://birdhouse.org/blog/2013/03/14/notes-on-the-death-of-google-reader/#comments</comments>
		<pubDate>Thu, 14 Mar 2013 17:20:29 +0000</pubDate>
		<dc:creator>shacker</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Media]]></category>

		<guid isPermaLink="false">http://birdhouse.org/blog/?p=13958</guid>
		<description><![CDATA[So everyone&#8217;s going apeshit over the impending death of Google Reader. Can we keep a bit of perspective on this please? - We loved and used RSS before Google Reader, and we&#8217;ll continue to love and use RSS long after it&#8217;s gone. - Google Reader is just another RSS client. OK, its community integration features [...]]]></description>
				<content:encoded><![CDATA[<p>So everyone&#8217;s going apeshit over the impending death of Google Reader. Can we keep  a bit of perspective on this please?</p>
<p>- We loved and used RSS before Google Reader, and we&#8217;ll continue to love and use RSS long after it&#8217;s gone. </p>
<p>- Google Reader is just another RSS client. OK, its community integration features were unique, but as a pure client, there always have been, and will always continue to be, lots of far superior alternatives. </p>
<p>- This has nothing to do with &#8220;the death of open standards.&#8221; Nothing is happening to the RSS standard, for godssake. </p>
<p>- What do you expect from free software? A lifetime commitment? </p>
<p>I&#8217;ll grant that the big problem here is that Reader has become the default backing store for other clients. In fact, my favorite RSS client by far, Reeder, uses Google Reader as a storage and sync mechanism. Hopefully, Reeder will act quickly to enable other aggregators to fill that role, or to let us add feeds independently of a central aggregator. If it doesn&#8217;t, I&#8217;ll find one that does. Because, after all, that&#8217;s what all RSS aggregators did before Reader existed.</p>
<p>It&#8217;s not that big of a loss. RSS lives.</p>
<p>Thank God they spared Orkut.</p>
<p><strong>Update:</strong> Reeder has already stated that they&#8217;ll <a href="http://thenextweb.com/media/2013/03/14/as-google-reader-is-killed-off-flipboard-feedly-reeder-and-others-offer-rss-alternatives/">live on</a> after the death of Reader. </p>
<p><a href="http://www.replacereader.com/">Here</a> are 50+ Reader replacements either working now or on the horizon.</p>
]]></content:encoded>
			<wfw:commentRss>http://birdhouse.org/blog/2013/03/14/notes-on-the-death-of-google-reader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reclaimed Wood Coffee Table Build</title>
		<link>http://birdhouse.org/blog/2013/03/11/reclaimed-wood-coffee-table-build/</link>
		<comments>http://birdhouse.org/blog/2013/03/11/reclaimed-wood-coffee-table-build/#comments</comments>
		<pubDate>Mon, 11 Mar 2013 07:49:41 +0000</pubDate>
		<dc:creator>shacker</dc:creator>
				<category><![CDATA[Family & Home]]></category>
		<category><![CDATA[Make]]></category>

		<guid isPermaLink="false">http://birdhouse.org/blog/?p=13945</guid>
		<description><![CDATA[A couple of months ago, a neighbor in the middle of a house remodel stacked a ton of wood in his driveway, free for the taking. I&#8217;d been thinking our coffee table was long-in-the-tooth &#8212; legs squeaked every time we touched it, and not very mobile &#8211; wouldn&#8217;t it be great to have it on [...]]]></description>
				<content:encoded><![CDATA[<p>A couple of months ago, a neighbor in the middle of a house remodel stacked a ton of wood in his driveway, free for the taking. </p>
<p><a href="http://www.flickr.com/photos/shacker/8547016195/" title="Pile of reclaimed wood by shacker, on Flickr"><img src="http://farm9.staticflickr.com/8089/8547016195_834a738da8_z.jpg" width="640" height="480" alt="Pile of reclaimed wood"></a></p>
<p>I&#8217;d been thinking our coffee table was long-in-the-tooth &#8212; legs squeaked every time we touched it, and not very mobile &#8211; wouldn&#8217;t it be great to have it on casters so we could wheel it out of the way to play Kinect games? </p>
<p><a href="http://www.flickr.com/photos/shacker/8548115184/" title="Picking the right casters by shacker, on Flickr"><img src="http://farm9.staticflickr.com/8096/8548115184_34b966a3e3_z.jpg" width="640" height="480" alt="Picking the right casters"></a></p>
<p>Decided to have a go at building some furniture.<br />
<span id="more-13945"></span></p>
<p>I had grabbed an old fence gate as part of the booty, and realized it would make a great tabletop. But it was too wide, so started by doing surgery on it to make it narrower. </p>
<p><a href="http://www.flickr.com/photos/shacker/8548115526/" title="Surgery on an old fence gate by shacker, on Flickr"><img src="http://farm9.staticflickr.com/8248/8548115526_cb9d0247ab_z.jpg" width="640" height="480" alt="Surgery on an old fence gate"></a></p>
<p>Overall, the strategy worked well, but by letting a found object dictate the shape of the final product, ended up regretting how close the gate frame was to the table edges. </p>
<p>Had seen a table recently on giant wheels, so thought really big casters could become part of the aesthetic. In the end, wished I had gone even bigger on the casters (might still do that). </p>
<p>Had to do a fair bit of gluing and clamping to take care of splits in the old wood, make it seaworthy for a living room inhabited by a 10-year-old.</p>
<p><a href="http://www.flickr.com/photos/shacker/8547016721/" title="Gluing and clamping old wood where it was split by shacker, on Flickr"><img src="http://farm9.staticflickr.com/8232/8547016721_64dc58ba9b_z.jpg" width="640" height="480" alt="Gluing and clamping old wood where it was split"></a></p>
<p>Deciding how much paint to strip was a puzzler. </p>
<p><a href="http://www.flickr.com/photos/shacker/8547016879/" title="Stripping paint by shacker, on Flickr"><img src="http://farm9.staticflickr.com/8522/8547016879_26ab5399cf_z.jpg" width="640" height="480" alt="Stripping paint"></a></p>
<p>I wanted an &#8220;old&#8221; look, but at each step in the paint stripping process (outdoors, wearing chemical gloves, thanks), found myself wanting to go farther. Ended up taking it all the way down to bare wood, which I thought looked less junky. Looking back at these pictures, kind of wish I had stopped after the third go-round. But ah well.</p>
<p><a href="http://www.flickr.com/photos/shacker/8548116830/" title="Sanding between each layer by shacker, on Flickr"><img src="http://farm9.staticflickr.com/8384/8548116830_fcb7e688e7_z.jpg" width="640" height="480" alt="Sanding between each layer"></a></p>
<p>Wanted it to have a lower shelf to store magazines, and came up with the idea of running copper pipe between the side legs, and just letting a plank rest on top. Pulled old pipe from the scrap bin at Ace Hardware, and used their pipe cutting tool to get the exact length. First go turned out to be 1/4&#8243; too short, had to make a 2nd trip to get it right (Ace dude said I was the first customer he&#8217;d ever seen putting the tools back where I found them!) </p>
<p><a href="http://www.flickr.com/photos/shacker/8547018211/" title="Drilling out insets for copper pipe that will hold lower shelf by shacker, on Flickr"><img src="http://farm9.staticflickr.com/8510/8547018211_9be3bd2c05_z.jpg" width="640" height="480" alt="Drilling out insets for copper pipe that will hold lower shelf"></a></p>
<p><a href="http://www.flickr.com/photos/shacker/8547018403/" title="Test fitting copper pipe by shacker, on Flickr"><img src="http://farm9.staticflickr.com/8087/8547018403_713c482cf4_z.jpg" width="640" height="480" alt="Test fitting copper pipe"></a></p>
<p>Originally planned to strap the shelf to the pipe with leather thong, but decided in the end to just let gravity do its job. </p>
<p><a href="http://www.flickr.com/photos/shacker/8548118970/" title="Shelf in place, w/casters by shacker, on Flickr"><img src="http://farm9.staticflickr.com/8112/8548118970_0a8663fe54_z.jpg" width="640" height="480" alt="Shelf in place, w/casters"></a></p>
<p>In the end, it&#8217;s OK. Really enjoyed the process, but but not totally happy with the result. Wish I hadn&#8217;t applied the urethane (I liked the original, lighter color). </p>
<p><a href="http://www.flickr.com/photos/shacker/8547019119/" title="Urethane made the wood a *lot* darker by shacker, on Flickr"><img src="http://farm9.staticflickr.com/8514/8547019119_553ba9eca0_z.jpg" width="640" height="480" alt="Urethane made the wood a *lot* darker"></a></p>
<p>Wish the gate frame wasn&#8217;t so close to the edges. </p>
<p><a href="http://www.flickr.com/photos/shacker/8547019377/" title="Starting final assembly by shacker, on Flickr"><img src="http://farm9.staticflickr.com/8240/8547019377_b925357187_z.jpg" width="640" height="480" alt="Starting final assembly"></a></p>
<p>Wish I&#8217;d picked bigger casters. Wish the legs didn&#8217;t end so abruptly. The whole thing just seems more bulky and trashy than what I was going for. But ah well, it&#8217;s a learning process. </p>
<p><a href="http://www.flickr.com/photos/shacker/8547019755/" title="Not gorgeous, but happy anyway by shacker, on Flickr"><img src="http://farm9.staticflickr.com/8107/8547019755_662e7f1738_z.jpg" width="640" height="480" alt="Not gorgeous, but happy anyway"></a></p>
<p>Doesn&#8217;t matter though &#8211; feels SO good to work with your own two hands, to turn nothing into something, to end up with something functional. We&#8217;ll live with it for a while, see how it goes.</p>
<p>Slideshow: </p>
<p><object width="640" height="480"><param name="flashvars" value="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fshacker%2Fsets%2F72157632970521534%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fshacker%2Fsets%2F72157632970521534%2F&#038;set_id=72157632970521534&#038;jump_to="></param><param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=124984"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/slideshow/show.swf?v=124984" allowFullScreen="true" flashvars="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fshacker%2Fsets%2F72157632970521534%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fshacker%2Fsets%2F72157632970521534%2F&#038;set_id=72157632970521534&#038;jump_to=" width="640" height="480"></embed></object></p>
<p><a href="http://www.flickr.com/photos/shacker/sets/72157632970521534/">Flickr set</a></p>
]]></content:encoded>
			<wfw:commentRss>http://birdhouse.org/blog/2013/03/11/reclaimed-wood-coffee-table-build/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Schwinn Breeze</title>
		<link>http://birdhouse.org/blog/2013/03/06/schwinn-breeze/</link>
		<comments>http://birdhouse.org/blog/2013/03/06/schwinn-breeze/#comments</comments>
		<pubDate>Thu, 07 Mar 2013 06:36:48 +0000</pubDate>
		<dc:creator>shacker</dc:creator>
				<category><![CDATA[Out there]]></category>
		<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://birdhouse.org/blog/?p=13934</guid>
		<description><![CDATA[Shot on the UC Berkeley campus. Ground level. Schwinn Breeze&#160;]]></description>
				<content:encoded><![CDATA[<p>Shot on the UC Berkeley campus. Ground level.</p>
<p><img src="http://birdhouse.org/blog/wp-content/uploads/2013/03/d4453a1e86a011e2b45222000a1f97b0_7.jpg" alt="Schwinn Breeze&nbsp;" width="612" height="612" /><br/>Schwinn Breeze<br />&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://birdhouse.org/blog/2013/03/06/schwinn-breeze/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>1920s Banjojele</title>
		<link>http://birdhouse.org/blog/2013/03/02/1920s-banjojele/</link>
		<comments>http://birdhouse.org/blog/2013/03/02/1920s-banjojele/#comments</comments>
		<pubDate>Sun, 03 Mar 2013 01:56:19 +0000</pubDate>
		<dc:creator>shacker</dc:creator>
				<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://birdhouse.org/blog/?p=13926</guid>
		<description><![CDATA[Just walked out of 5th String in Oakland with a 90+ year old instrument &#8211; a 1920s banjolele, with a wonderful nasally jazz sound. Thinking of the rooms it has played, the vibrations that have moved through this wood! Built like a tank, too. Maker unknown &#8211; lost to history. My first antique instrument. A [...]]]></description>
				<content:encoded><![CDATA[<p>Just walked out of 5th String in Oakland with a 90+ year old instrument &#8211; a 1920s banjolele, with a wonderful nasally jazz sound. Thinking of the rooms it has played, the vibrations that have moved through this wood! Built like a tank, too. Maker unknown &#8211; lost to history. My first antique instrument.</p>
<p><img src="http://birdhouse.org/blog/wp-content/uploads/2013/03/IMG_8586-1024x768.jpg" alt="IMG_8586" width="625" height="468" class="alignnone size-large wp-image-13927" /></p>
<p><img src="http://birdhouse.org/blog/wp-content/uploads/2013/03/IMG_8587-1024x768.jpg" alt="IMG_8587" width="625" height="468" class="alignnone size-large wp-image-13928" /></p>
<p>A couple people asked for sound samples, so here you go &#8211; the first compares the banjolele to a modern Kamaka soprano, the other is just a few Velvet Underground riffs.</p>
<p><iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F81643549"></iframe></p>
<p><iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F81646299"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://birdhouse.org/blog/2013/03/02/1920s-banjojele/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Amanda Palmer: The art of asking</title>
		<link>http://birdhouse.org/blog/2013/03/02/amanda-palmer-the-art-of-asking/</link>
		<comments>http://birdhouse.org/blog/2013/03/02/amanda-palmer-the-art-of-asking/#comments</comments>
		<pubDate>Sat, 02 Mar 2013 08:20:57 +0000</pubDate>
		<dc:creator>shacker</dc:creator>
				<category><![CDATA[Arts and Culture]]></category>

		<guid isPermaLink="false">http://birdhouse.org/blog/?p=13923</guid>
		<description><![CDATA[So, so good. &#8220;The act of crowd-surfing is like the act of couch-surfing &#8211; you fall into the audience.&#8221; -Amanda Palmer]]></description>
				<content:encoded><![CDATA[<p>So, so good. </p>
<p>&#8220;The act of crowd-surfing is like the act of couch-surfing &#8211; you fall into the audience.&#8221; -Amanda Palmer </p>
<p><iframe src="http://embed.ted.com/talks/amanda_palmer_the_art_of_asking.html" width="640" height="360" frameborder="0" scrolling="no" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://birdhouse.org/blog/2013/03/02/amanda-palmer-the-art-of-asking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crestmont 4/5 Sound Science Fair</title>
		<link>http://birdhouse.org/blog/2013/03/01/crestmont-45-sound-science-fair/</link>
		<comments>http://birdhouse.org/blog/2013/03/01/crestmont-45-sound-science-fair/#comments</comments>
		<pubDate>Sat, 02 Mar 2013 05:32:08 +0000</pubDate>
		<dc:creator>shacker</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Kids]]></category>

		<guid isPermaLink="false">http://birdhouse.org/blog/?p=13921</guid>
		<description><![CDATA[Wonderful watching and hearing the fourth and fifth graders explain their audio science projects this morning &#8211; such a broad topic, and every kid had a completely different take. Recorded some random audio samples this morning while meandering from theremin to echolocation demo to analog amplifiers to oscilloscope to homemade stethoscope to foley demo&#8230; the [...]]]></description>
				<content:encoded><![CDATA[<p>Wonderful watching and hearing the fourth and fifth graders explain their audio science projects this morning &#8211; such a broad topic, and every kid had a completely different take. Recorded some random audio samples this morning while meandering from theremin to echolocation demo to analog amplifiers to oscilloscope to homemade stethoscope to foley demo&#8230; the variety was fantastic.</p>
<p>For a taste, start the audio, then start the slideshow and choose the Full Screen option. </p>
<p><iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F81446857"></iframe></p>
<p><object width="640" height="480"><param name="flashvars" value="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fshacker%2Fsets%2F72157632891173061%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fshacker%2Fsets%2F72157632891173061%2F&#038;set_id=72157632891173061&#038;jump_to="></param><param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=124984"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/slideshow/show.swf?v=124984" allowFullScreen="true" flashvars="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fshacker%2Fsets%2F72157632891173061%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fshacker%2Fsets%2F72157632891173061%2F&#038;set_id=72157632891173061&#038;jump_to=" width="640" height="480"></embed></object></p>
<p><a href="http://www.flickr.com/photos/shacker/sets/72157632891173061/">Flickr Set</a></p>
]]></content:encoded>
			<wfw:commentRss>http://birdhouse.org/blog/2013/03/01/crestmont-45-sound-science-fair/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Get Lat/Long Coordinates from iOS/Android</title>
		<link>http://birdhouse.org/blog/2013/02/24/how-to-get-latlong-coordinates-from-iosandroid/</link>
		<comments>http://birdhouse.org/blog/2013/02/24/how-to-get-latlong-coordinates-from-iosandroid/#comments</comments>
		<pubDate>Sun, 24 Feb 2013 16:50:45 +0000</pubDate>
		<dc:creator>shacker</dc:creator>
				<category><![CDATA[Geo]]></category>

		<guid isPermaLink="false">http://birdhouse.org/blog/?p=13910</guid>
		<description><![CDATA[Recently I needed to obtain the specific coordinates of a point on the earth&#8217;s surface, and didn&#8217;t have my hiking GPS handy. Turns out you can do this pretty easily from iOS using either Apple or Google Maps, neither of which reveal coordinates directly. This technique assumes you can get to a desktop computer later, [...]]]></description>
				<content:encoded><![CDATA[<p>Recently I needed to obtain the specific coordinates of a point on the earth&#8217;s surface, and didn&#8217;t have my hiking GPS handy. Turns out you can do this pretty easily from iOS using either Apple or Google Maps, neither of which reveal coordinates directly. This technique assumes you can get to a desktop computer later, and should work just as well with Google Maps from an Android device.</p>
<p><strong>1)</strong> Using Apple or Google Maps, press and hold on the location until a pin is dropped. Tap on the pin&#8217;s details to find its &#8220;Share&#8221; feature, and send the new location to your own email address.</p>
<p><img class="alignnone size-medium wp-image-13917" alt="share" src="http://birdhouse.org/blog/wp-content/uploads/2013/02/share-380x400.png" width="380" height="400" /></p>
<p><strong>2)</strong> From your desktop computer, click the link in the email you receive to open it in Google Maps.</p>
<p><img class="alignnone size-full wp-image-13911" alt="map1" src="http://birdhouse.org/blog/wp-content/uploads/2013/02/map1.png" width="300" height="341" /></p>
<p><strong>3)</strong> In the browser, right-click on the pin and select &#8220;What&#8217;s Here?&#8221; from the menu.</p>
<p><img class="alignnone size-full wp-image-13912" alt="map2" src="http://birdhouse.org/blog/wp-content/uploads/2013/02/map2.png" width="452" height="462" /></p>
<p><strong>4)</strong> The Location field in Google Maps changes from a human-friendly rendering to lat/long.</p>
<p><img class="alignnone size-full wp-image-13913" alt="map3" src="http://birdhouse.org/blog/wp-content/uploads/2013/02/map3.png" width="405" height="368" /></p>
<p>Presto!</p>
<p>Of course, there are any number of 3rd-party apps you could use to get coordinates directly from the phone &#8211; this is assuming you don&#8217;t have one of those and just need a quick solution.</p>
]]></content:encoded>
			<wfw:commentRss>http://birdhouse.org/blog/2013/02/24/how-to-get-latlong-coordinates-from-iosandroid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Miles Takes a Wrong Turn at Kirkwood</title>
		<link>http://birdhouse.org/blog/2013/02/20/miles-takes-a-wrong-turn-at-kirkwood/</link>
		<comments>http://birdhouse.org/blog/2013/02/20/miles-takes-a-wrong-turn-at-kirkwood/#comments</comments>
		<pubDate>Wed, 20 Feb 2013 08:09:56 +0000</pubDate>
		<dc:creator>shacker</dc:creator>
				<category><![CDATA[Family & Home]]></category>

		<guid isPermaLink="false">http://birdhouse.org/blog/?p=13907</guid>
		<description><![CDATA[After a couple rides on the bunny hill, Miles and I ventured up a longer lift, where M promptly took a wrong turn and headed down a hill he wasn&#8217;t ready for and took off like a bat out of hell. Doing his full pizza, but running on the edge of control. I was scared [...]]]></description>
				<content:encoded><![CDATA[<p>After a couple rides on the bunny hill, Miles and I ventured up a longer lift, where M promptly took a wrong turn and headed down a  hill he wasn&#8217;t ready for and took off like a bat out of hell. Doing his full pizza, but running on the edge of control. I was scared as hell, but he held it together!</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='625' height='382' src='http://www.youtube.com/embed/_5Ts65ZnLA8?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
]]></content:encoded>
			<wfw:commentRss>http://birdhouse.org/blog/2013/02/20/miles-takes-a-wrong-turn-at-kirkwood/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
