<?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>Indolering</title> <atom:link href="http://www.indolering.com/feed" rel="self" type="application/rss+xml" /><link>http://www.indolering.com</link> <description>Engineering Usability and Design</description> <lastBuildDate>Tue, 27 Dec 2011 08:02:40 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>DataWrangler -thank you god.</title><link>http://www.indolering.com/wrangler</link> <comments>http://www.indolering.com/wrangler#comments</comments> <pubDate>Thu, 11 Aug 2011 21:41:00 +0000</pubDate> <dc:creator>indolering</dc:creator> <category><![CDATA[Random]]></category> <category><![CDATA[Research]]></category> <category><![CDATA[Ubiquity]]></category> <guid
isPermaLink="false">http://www.indolering.com/?p=205</guid> <description><![CDATA[I don&#8217;t know whether to be astounded, ecstatic, or upset (this should have happened by now : )]]></description> <content:encoded><![CDATA[<p>I don&#8217;t know whether to be astounded, ecstatic, or upset (this should have happened by now : )</p> ]]></content:encoded> <wfw:commentRss>http://www.indolering.com/wrangler/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Interarchy: the ultimate in file transfer utility</title><link>http://www.indolering.com/interarchy</link> <comments>http://www.indolering.com/interarchy#comments</comments> <pubDate>Sun, 24 Jul 2011 21:20:44 +0000</pubDate> <dc:creator>indolering</dc:creator> <category><![CDATA[Random]]></category> <category><![CDATA[review]]></category> <guid
isPermaLink="false">http://www.indolering.com/?p=192</guid> <description><![CDATA[I am writing this because the Mac world seems to be totally blind to the best file transfer utility on the planet: Interarchy. Interarchy is a favorite among hackers, and it used to be aimed for hackers.  It will expose any HTTP file listing like an FTP client.  It also does S3 and many other [...]]]></description> <content:encoded><![CDATA[<p>I am writing this because the Mac world seems to be totally blind to the <a
href="http://nolobe.com/interarchy/">best file transfer utility </a>on the planet: Interarchy.</p><p><span
id="more-192"></span>Interarchy is a favorite among hackers, and it used to be aimed for hackers.  It will expose any HTTP file listing like an FTP client.  It also does S3 and many other cloud file transfer protocols  Interarchy used to be named <em>Anarchy</em>.  It is written in Pascal and a plug-in system based on Perl.  It&#8217;s <a
href="http://apple.it-enquirer.com/2010/08/19/lightning-speed-interarchy-10/">faster</a> than any other file transfer utility.</p><p>But none of that is what makes Interarchy awesome.  Interarchy kicks ass not just because of it&#8217;s technical prowess but because of the interface .  While it&#8217;s not perfect, general usage is comparable or better than the competition.  Where Interarchy blows it&#8217;s rivals out of the water is the &#8220;ease-of-use&#8221; that they have enabled with the Interarchy &#8220;iFTP&#8221; protocol: ssh commands made accessible through the gui, perfect for the designer-turned-web-admin.</p><p>While they are great coders, the Interarchy team is pretty awful at self-promotion; their site lacks SEO and they don&#8217;t appear to do advertising.  Interarchy&#8217;s diamond remains hidden among the run-of-the-mill FTP programs.  It&#8217;s a tragedy.</p><p>I&#8217;m not getting paid to say this.  I just love this program, and wish more people could experience the joy of Interarchy.</p> ]]></content:encoded> <wfw:commentRss>http://www.indolering.com/interarchy/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Skinner&#8217;s view of Chomsky &amp; Cognitive Psychology</title><link>http://www.indolering.com/skinner-quote</link> <comments>http://www.indolering.com/skinner-quote#comments</comments> <pubDate>Sat, 23 Jul 2011 00:58:23 +0000</pubDate> <dc:creator>indolering</dc:creator> <category><![CDATA[Random]]></category> <guid
isPermaLink="false">http://www.indolering.com/?p=189</guid> <description><![CDATA[He won the argument with Chomsky, but he lost his personal war on cognitive psychology.  Which is a good thing.]]></description> <content:encoded><![CDATA[<p>He won the <a
href="http://books.google.com/books?id=Gj1wxIZYtI8C&amp;printsec=frontcover&amp;dq=Molecule+to+Metaphor+chomsky&amp;hl=en&amp;ei=fjU8TqfYB6_RiALq3PH8Cw&amp;sa=X&amp;oi=book_result&amp;ct=book-thumbnail&amp;resnum=1&amp;ved=0CCwQ6wEwAA#v=onepage&amp;q=chomsky&amp;f=false">argument</a> with Chomsky, but he lost his personal war on cognitive psychology.  Which is a good thing.</p> ]]></content:encoded> <wfw:commentRss>http://www.indolering.com/skinner-quote/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Movie Player Mockup *Updated*</title><link>http://www.indolering.com/ff-player</link> <comments>http://www.indolering.com/ff-player#comments</comments> <pubDate>Fri, 15 Jul 2011 03:36:20 +0000</pubDate> <dc:creator>indolering</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[Mozilla]]></category> <category><![CDATA[Usability]]></category> <guid
isPermaLink="false">http://www.indolering.com/?p=150</guid> <description><![CDATA[Update July 14th 2011, Additional commentary on my old design and changes to other UI&#8217;s since I first wrote this post. A brain storming session on the Moz usability list was sparked off by Firefox’s need for a better generic movie player UI .  After doing some best of breed analysis of current solutions and [...]]]></description> <content:encoded><![CDATA[<p><em>Update July 14th 2011,</em> Additional commentary on my old design and changes to other UI&#8217;s since I first wrote this post<em>.</em></p><p>A <a
href="https://groups.google.com/group/mozilla.dev.usability/browse_thread/thread/3e552630cf5e68ca/9fe273531c26aa16?lnk=gst&amp;q=the+controls+are+adequate+for+me.+#9fe273531c26aa16">brain storming session</a> on the <a
href="https://groups.google.com/group/mozilla.dev.usability/topics">Moz usability list</a> was sparked off by Firefox’s need for a better generic movie player UI .  After doing some best of breed analysis of current solutions and value mapping each UI element I designed some mockups.</p><p><span
id="more-150"></span>I came up with three states (pre-load/loading, mouse-movement, and mouse-over) and removed every UI element that wasn’t needed during each stage.</p><h2>Preload</h2><p><img
class="aligncenter size-full wp-image-159" title="movie-player-preload" src="http://www.indolering.com/wp-content/uploads/2011/07/movie-player-preload.jpg" alt="" width="420" height="237" /><strong></strong></p><p><strong>Loading</strong> Did everyone forget what it&#8217;s like to watch video with crappy internet?  You have to wait, and that loading bar lets you know when to play.  It would be nice if FF signaled when there was enough buffer to play.</p><p><strong>Play button</strong> This clearly imitates Vimeo. I am unsure of the large, pre-load centered play button which (at the moment) everyone seems to favor.</p><p><em>Update July 14th 2011</em> Looking at this now, I think some sort of central central play button with load notification for slow connections would be nice.  I still think there is room for experimentation, however.</p><h2>Mouse movement</h2><div
id="attachment_625"><p><img
class="aligncenter size-full wp-image-161" title="Grey-Snow" src="http://www.indolering.com/wp-content/uploads/2011/07/Grey-Snow-e1310700701908.jpg" alt="UI mockup for Firefox's default movie player." width="414" height="232" /></p></div><p><strong>Timeline</strong> In consideration of Fitt’s law and to reduce visual complexity, I removed the artificial container around the time/loading line.  <del>Maybe I am wrong here, because everyone else includes the odd containers:</del></p><div
id="attachment_157" class="wp-caption aligncenter" style="width: 512px"><img
class="size-full wp-image-157" title="OldSkool YouTube Timeline" src="http://www.indolering.com/wp-content/uploads/2011/07/Screen-shot-2011-07-14-at-7.52.50-PM.png" alt="Screenshot of YouTube scrubbing interface" width="502" height="40" /><p
class="wp-caption-text">OldSkool YouTube Timeline</p></div><p>But this design hasn’t really changed since the early days of QuickTime, and it&#8217;s not like YouTube is known for it&#8217;s visual acumen.</p><p><em>Update July 14th 2011 </em>As you can see below, YouTube agreed with me.  Keeping the red line active during playback creates visual motion at a <a
href="http://en.wikipedia.org/wiki/Color_vision#Theories_of_color_vision">peak color wavelength</a> is <em>really</em>, <strong><em>really</em></strong> stupid.  Often it&#8217;s in the peripheral vision, which is tuned to detect and redirect one&#8217;s attention.</p><p
style="text-align: center;"><img
class="aligncenter size-full wp-image-160" title="YouTube controls" src="http://www.indolering.com/wp-content/uploads/2011/07/Screen-shot-2011-07-14-at-8.25.37-PM.png" alt="YouTube video scrubber/scrubber" width="522" height="36" /></p><p><strong>Load/Buffer</strong> Three levels of opacity to indicate the buffer and playhead location.  It is of uniform size as I think the Vimeo style looks odd with the big play button next to it:</p><div
id="attachment_636"><p
style="text-align: center;"><img
class="aligncenter size-full wp-image-154" title="Screen shot 2011-07-14 at 7.41.27 PM" src="http://www.indolering.com/wp-content/uploads/2011/07/Screen-shot-2011-07-14-at-7.41.27-PM-e1310697776142.png" alt="" width="510" height="46" /></p><p>What concern me about my proposed solution is it&#8217;s accessibility.  I have the eyes of a twenty something  and the screen of designer -what about a woman in her 70′s using a consumer grade monitor she got free with her Dell 10 years ago?  Hell, even my father, who is in his 50′s, would probably struggle to pick out the 3 different shades of gray.  Perhaps there is some minimum contrast formula we can use?</p><p>Bonus: soft white glow that outlines the controls when they float above dark elements.</p><div
id="attachment_628"><img
class="aligncenter" title="Dark-Sunset" src="http://www.indolering.com/wp-content/uploads/2011/07/Dark-Sunset-e1310697170972.jpg" alt="" width="418" height="234" /></div></div><p><strong>Volume</strong> Top to bottom indication of volume levels and at the bottom, a mute button/label.  The mute button isn’t shown here as I didn’t have time to change every picture.  When on 0%, the mute label should throb, minimizing the harm of the multiple modal volume system in todays computers.  This goes hand in hand with <a
href="https://groups.google.com/group/mozilla.dev.usability/browse_thread/thread/3e552630cf5e68ca/7a99c5aa8b7a7e44?lnk=gst&amp;q=the+controls+are+adequate+for+me.+#7a99c5aa8b7a7e44">Rob Cambell’s</a> idea of keeping the volume consistent across movies.</p><p><em>Update July 14th 2011 </em>This is ugly as hell.  We should just jack Vimeo&#8217;s volume control&#8217;s.  The full-screen icon needs a refresh as well.</p><h2>Mouse Over</h2><div
id="attachment_626"><img
class="aligncenter size-full wp-image-153" title="movie-player-mouseover-bunny" src="http://www.indolering.com/wp-content/uploads/2011/07/movie-player-mouseover-bunny-e1310700856784.jpg" alt="UI screenshot for video player mouse-over state" width="416" height="230" /></div><p><strong>Scrubber</strong> Just a simple highlighting of the playhead.</p><p><strong>Runtime</strong> Behind the timeline.</p><p><strong>Timecode</strong> For both the playhead and the mouse location (when it’s over timeline) the timecode pops out underneath the timeline (I think an animation is parented).  Here I show it above the timeline, but I think it would be less distracting be below the timeline<strong></strong></p><p><strong>Share</strong> I didn’t mock this up, but I think a pie-menu share button (with c/p, Twitter, email, and Facebook buttons) would be cool.</p> ]]></content:encoded> <wfw:commentRss>http://www.indolering.com/ff-player/feed</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>The Problem with YSlow and Page Speed</title><link>http://www.indolering.com/load</link> <comments>http://www.indolering.com/load#comments</comments> <pubDate>Tue, 05 Jul 2011 04:51:54 +0000</pubDate> <dc:creator>indolering</dc:creator> <category><![CDATA[Web Development]]></category> <category><![CDATA[page load]]></category> <category><![CDATA[page speed]]></category> <category><![CDATA[rant]]></category> <category><![CDATA[yslow]]></category> <guid
isPermaLink="false">http://www.indolering.com/?p=129</guid> <description><![CDATA[Web developers use two basic types of metrics to measure page speed: literal load time and &#8220;best practice&#8221; score cards like Google Page Speed and Yahoo&#8217;s YSlow.  The tools for both metrics mislead developers as to what they should spend their time and effort on. First off, basic load time scoring does not measure perceptual [...]]]></description> <content:encoded><![CDATA[<p>Web developers use two basic <em>types</em> of metrics to measure page speed: literal load time and &#8220;best practice&#8221; score cards like Google <a
href="http://pagespeed.googlelabs.com">Page Speed</a> and Yahoo&#8217;s <a
href="http://developer.yahoo.com/yslow/">YSlow</a>.  The tools for both metrics mislead developers as to what they should spend their time and effort on.</p><p><span
id="more-129"></span></p><div
class="wp-caption alignright" style="width: 310px"><a
href="http://www.flickr.com/photos/maxoz/5655609277/sizes/m/in/photostream/"><img
title="A YSlow! sales representative." src="http://farm6.static.flickr.com/5264/5655609277_47bf1bfa06.jpg" alt="Car Salesman" width="300" height="238" /></a><p
class="wp-caption-text">&quot;It&#39;s got air conditioning!&quot;</p></div><p>First off, basic load time scoring does not measure <em>perceptual</em> load time.  If the user can interact with their desired content, they will not perceive the lack of a footer.  But <em>Web Performance Today</em> already has a great post on <a
href="http://www.webperformancetoday.com/2011/03/16/above-the-fold-time-web-performance-measurement/">perceptual load time</a>, so I won&#8217;t spend time on it here.</p><p>Another gripe I have is how difficult it is to <em>accurately</em> measure the impact of a given change, as there are multiple variables throwing off each measurement.  Even in high school chemistry, we averaged three weight measurements because even a breeze from the ventilation duct would throw off the sensitive weight scales.  Web server processing speeds (especially on shared hosting), neighborhood and local network congestion, and local computer rendering time varies minute-to-minute.  Web developers <em>should</em> average their measurements and track their data points over time, but that rarely happens.</p><p>You may think point number two is silly, as any major change should render a load time difference of half a second or more.  But, after extensive troubleshooting, I pinned a client&#8217;s load time issues on the  WP über cache plugin <a
href="http://wordpress.org/extend/plugins/w3-total-cache/">W3 Total Cache</a>.  The caching plugin adds a lot of overhead and the site basically traded long download times for long response times.  If an agnostic measurement tool on an independent server which controlled for local variables  were available (kinda like the nice weight scale in chemistry class that wasn&#8217;t under the air conditioning vent), I would have caught this much more quickly.  A service that helps developers average load times before and after changes, and also give comparisons over various time periods would go a long way towards correcting the ad-hoc measurements that take place now.  Linking those numbers to traffic load (ala google analytics) would be cool, linking to a WP plugin or a ssh session + ps would be <em>awesome</em>.</p><div
id="attachment_186" class="wp-caption alignright" style="width: 260px"><a
href="http://www.webpagetest.org/result/110209_HB_3VWA/1/details/"><img
class="size-full wp-image-186 " title="Page Load Waterfall Graph" src="http://www.indolering.com/wp-content/uploads/2011/07/1_waterfall_thumb.png" alt="Graph showing time spent on various tasks while loading web page" width="250" height="306" /></a><p
class="wp-caption-text">Green is time spent waiting on server, blue is time downloading. From WebPageTest.org.</p></div><p>However, my most serious complaint with Page Speed and YSlow is the way they present their data.  From this pretty waterfall <a
href="http://www.webpagetest.org/result/110209_HB_3VWA/1/details/">loading graph</a> one can see that <strong>time spent downloading JS/CSS never goes over 1ms</strong>. The total time *downloading* all JS/CSS is .033 seconds while time spent *waiting* for the JS/CSS is 4.2 seconds: <strong>the majority of the entire page load time</strong>.</p><p>To put that in perspective, all of the work one puts into <strong>compressing the text and using a CDN saved about ~0.4 seconds</strong> while <strong>combining the JS/CSS would save ~4.0 seconds</strong>.  The general recommendation checklists YSlow and Page Speed offer are useful, but  <strong>they should report the expected speed gains from any given change and prioritize according to a time/benefit ratio</strong>.  Both tools weight their sub-scores, but they do little to tell a developer if it is worth their time and processing power to bring their etags in-line.</p> ]]></content:encoded> <wfw:commentRss>http://www.indolering.com/load/feed</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Protected: The Coming CLI War</title><link>http://www.indolering.com/the-coming-cli-war</link> <comments>http://www.indolering.com/the-coming-cli-war#comments</comments> <pubDate>Mon, 13 Jun 2011 07:26:30 +0000</pubDate> <dc:creator>indolering</dc:creator> <category><![CDATA[Research]]></category> <guid
isPermaLink="false">http://www.indolering.com/?p=102</guid> <description><![CDATA[There is no excerpt because this is a protected post.]]></description> <content:encoded><![CDATA[<form
action="http://www.indolering.com/wp-pass.php" method="post"><p>This post is password protected. To view it please enter your password below:</p><p><label
for="pwbox-102">Password:<br
/> <input
name="post_password" id="pwbox-102" type="password" size="20" /></label><br
/> <input
type="submit" name="Submit" value="Submit" /></p></form> ]]></content:encoded> <wfw:commentRss>http://www.indolering.com/the-coming-cli-war/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Testing Assumptions about the Tor Network</title><link>http://www.indolering.com/measuring-tor</link> <comments>http://www.indolering.com/measuring-tor#comments</comments> <pubDate>Sun, 12 Jun 2011 03:38:53 +0000</pubDate> <dc:creator>indolering</dc:creator> <category><![CDATA[Research]]></category> <guid
isPermaLink="false">http://www.indolering.com/?p=80</guid> <description><![CDATA[As part of an independent study course at the University of Washington, I spent time trying to improve the usability of Tor.  Tor is a network that forwards internet traffic between several computers to who the user that is accessing the site is and what sites a specific user is accessing.  My ideas on how to improve [...]]]></description> <content:encoded><![CDATA[<p>As part of an independent study course at the University of Washington, I spent time trying to improve the usability of Tor.  Tor is a network that forwards internet traffic between several computers to who the user that is accessing the site is and what sites a specific user is accessing.  My ideas on how to improve the network did not pan out, but my testing raises some interesting questions and it is best shared in an online format.</p><p><span
id="more-80"></span>In 2009, search Google for &#8220;tiananmen square protest&#8221; in China would yield very different results than the same search in any western nation:</p><div
id="attachment_82" class="wp-caption aligncenter" style="width: 540px"><a
class="highslide img_6" href="http://www.indolering.com/wp-content/uploads/2011/06/Tiananmen-Square.png" onclick="return hs.expand(this)"><img
class="size-large wp-image-82    " title="Tienanmen Square" src="http://www.indolering.com/wp-content/uploads/2011/06/Tiananmen-Square-1024x544.png" alt="" width="530" height="282" /></a><p
class="wp-caption-text">From http://i.imgur.com/VTfRt.png, source unknown.</p></div><p>This is due to China&#8217;s heavy handed censorship.  In 2009, when the above comparison was generated, Google cooperated with the Chinese authorities in censoring it&#8217;s search results, as is expected of any technology company in China.   Much like parental software attempts to block pornography from children, China also blocks web-pages based on <a
href="http://en.wikipedia.org/wiki/List_of_words_censored_by_search_engines_in_the_People%27s_Republic_of_China">keywords</a> and <a
href="http://en.wikipedia.org/wiki/List_of_websites_blocked_in_the_People's_Republic_of_China">website blacklists</a>.  Major swaths of the internet are either directly blocked (Google search, Flickr, Facebook, Twitter, YouTube, etc) or <a
href="http://en.wikipedia.org/wiki/History_of_Internet_censorship_in_the_People%27s_Republic_of_China">intermittently</a> blocked or slowed down (Gmail, blogger, <a
href="http://en.wikipedia.org/wiki/Blocking_of_Wikipedia_by_the_People%27s_Republic_of_China">Wikipedia</a>, etc) depending on the political atmosphere.</p><p>Businesses often need access to these vital information stores, and it is accepted practice for Chinese professionals to subscribe to a <a
href="http://en.wikipedia.org/wiki/Proxy_server">proxy</a> or <a
href="http://en.wikipedia.org/wiki/Virtual_private_network">VPN</a> service to route their Internet connection outside of China. Then, China&#8217;s &#8220;Great Firewall&#8221; only sees an encrypted connection to an unknown computer outside of China.  It&#8217;s a lot like money laundering, where all of the money is fed through a seemingly legitimate middleman, but instead of money it&#8217;s data.  This works fairly well, and there are plenty of business people and academics who pay for this kind of service.</p><div
class="wp-caption alignright" style="width: 580px"><a
class="highslide img_7" href="../wp-content/uploads/2011/06/Tor-Diagram.jpg" onclick="return hs.expand(this)"><img
title="Tor-Diagram" src="../wp-content/uploads/2011/06/Tor-Diagram.jpg" alt="" width="570" height="465" /></a><p
class="wp-caption-text">How information is sent through Tor</p></div><p>The problem with this approach is that the middleman knows who you are, what websites you are visiting, and what information you are putting into those websites.  For most business people in China, this is fine, as their transactions are relatively benign business deals.  But few can afford to pay a  middle-men for all this work.  And, if you are a human rights activist (<img
title="Dissident" src="../wp-content/uploads/2011/06/Dissident.jpg" alt="" width="15" height="15" />) researching non-violent activism you could get  locked up, beaten, tortured, or killed if the VPN provider&#8217;s network doesn&#8217;t provide good enough anonymity.</p><p>Tor us much like a proxy or VPN, but instead of one server proxying the data, Tor volunteers run multiple proxy&#8217;s (called relay nodes <img
class="alignnone size-full wp-image-83" title="Node" src="http://www.indolering.com/wp-content/uploads/2011/06/Node.jpg" alt="" width="15" height="14" />) which mixes encrypted traffic <em>between</em> them.  This creates a free network where it&#8217;s hard to identify where traffic is coming from and going to.  However, being run by volunteers on their home internet means that Tor much slower than a typical VPN and page-load times can average 8* seconds or more. This makes Tor a workable solution for the hardcore activist, who needs perfect security and anonymity, but not an average person who is casually interested in the truth about the Tiananmen square protests.  If one is trying to build the critical mass of informed citizens needed for governmental reform, Tor is useless.</p><p>The Tor engineers have largely <a
href="https://blog.torproject.org/blog/why-tor-is-slow">attacked the speed issue</a> by tweaking routing algorithms, encouraging more volunteers to run nodes, and directly funding more exit nodes.  I wanted to know how large of an impact prioritizing certain types of traffic would make and experiment with ways to encourage businesses to connect their servers to and financially support Tor directly.</p><h2>Blocking Spammers</h2><p>It is a truism among server administrators that a large amount of traffic coming from Tor exit nodes is spam.  Being a free, anonymizing network, Tor attracts spammers, scammers, file-sharing users, pedophiles and others who wish to hide from law enforcement.  Information within the Tor network is encrypted (<a
class="highslide img_8" href="http://www.indolering.com/wp-content/uploads/2011/06/encrypted-Link.png" onclick="return hs.expand(this)"><img
class="alignnone size-full wp-image-87" title="encrypted-Link" src="http://www.indolering.com/wp-content/uploads/2011/06/encrypted-Link.png" alt="" width="71" height="9" /></a>), meaning that no-one can read the information.  However, the whole point of Tor is to allow connections to the regular Internet.  Special nodes (called exit nodes <a
class="highslide img_9" href="http://www.indolering.com/wp-content/uploads/2011/06/Exit-Node.png" onclick="return hs.expand(this)"><img
class="alignnone size-full wp-image-89" title="Exit-Node" src="http://www.indolering.com/wp-content/uploads/2011/06/Exit-Node.png" alt="" width="21" height="21" /></a>) get a decrypted, readable version of the information (<a
class="highslide img_10" href="http://www.indolering.com/wp-content/uploads/2011/06/unencypted-link.png" onclick="return hs.expand(this)"><img
class="alignnone size-full wp-image-88" title="unencypted-link" src="http://www.indolering.com/wp-content/uploads/2011/06/unencypted-link.png" alt="" width="71" height="9" /></a>) before relaying it onto the regular Internet.    While there have been efforts to block file-sharing traffic, Tor exit nodes could analyze outgoing traffic and block or de-prioritize traffic that appeared to be spammy.</p><p>To estimate the portion of exit traffic that these undesirables were taking up, I contacted researchers whom had performed traffic analysis on the Tor network previously.  Both groups had deleted their logs.  Setting up an exit node and sniffing Tor exit traffic turned out to be not only time consuming, costly, and a bit beyond my technical capabilities, it&#8217;s <a
href="http://portal.acm.org/citation.cfm?id=1298307">legally dubious </a>as well. I tried contacting and <a
href="http://akismet.com/">Akismet</a> and <a
href="http://www.cloudflare.com/">Cloudflare</a>, two medium-large sized companies with big data sets that detect and filter spam bots.  I had hoped they could provide the data needed to determine the ratio of spam-bot/human traffic coming from Tor exit proxies. Cloudflare was unable/unwilling to devote the manpower, Akismet never bothered to respond.</p><p>I contacted Michael Hampton, the administrator behind the <a
href="http://en.wikipedia.org/wiki/Free_and_open_source_software">FOSS</a> spam bot detection software <a
href="http://bad-behavior.ioerror.us/">Bad Behavior</a>, asking for a referral to any high-volume website administrators that might be willing to scan their logs.  He actually went about setting up a large scale data collection mechanism for Bad Behavior, but he eventually got so bogged down that he dropped the project.  I very much appreciate his attempt to help me, and I hope he can get around to it someday.</p><p>For now, however, prioritizing traffic based on bot detection signatures will remain an unknown quantity.  Futhermore, sniffing outgoing traffic (even if it is automated) tends to run against the ethical grain of the administrators who feel compelled to donate time and money to providing a free proxy service.  There are also other academics looking into Quality of Service tagging and bandwidth sharing incentive schemes.**</p><p><span
style="font-size: 20px; font-weight: bold;">Reducing Hops by Moving Sites Into Tor Network </span></p><p>In late September of 2010, the <a
href="http://duckduckgo.com/">privacy preserving search engine DuckDuckGo</a> turned their main internet server into a Tor network node, making <a
href="http://search.slashdot.org/story/10/09/25/0242244/DuckDuckGo-Search-Engine-Erects-Tor-Hidden-Service">DuckDuckGo an anonymous search engine</a>.  DDG became an enclave node, a node that would be used for all DuckDuckGo connection in the Tor network instead of regular exit nodes.  Since it should skip the exit relay, as the Tor <a
href="https://trac.torproject.org/projects/tor/wiki/doc/ExitEnclave">exit enclave documentation </a>led me to believe, there would be one less hop. Theoretically, the DDG website would load 30% faster.</p><div
id="attachment_91" class="wp-caption aligncenter" style="width: 582px"><a
class="highslide img_11" href="http://www.indolering.com/wp-content/uploads/2011/06/Tor-Circuit1.png" onclick="return hs.expand(this)"><img
class="size-full wp-image-91" title="Tor-Circuit" src="http://www.indolering.com/wp-content/uploads/2011/06/Tor-Circuit1.png" alt="" width="572" height="171" /></a><p
class="wp-caption-text">A normal Tor Circuit</p></div><p
style="text-align: center;">&nbsp;</p><div
id="attachment_92" class="wp-caption aligncenter" style="width: 471px"><a
class="highslide img_12" href="http://www.indolering.com/wp-content/uploads/2011/06/Enclave-Circuit.png" onclick="return hs.expand(this)"><img
class="size-full wp-image-92" title="Enclave-Circuit" src="http://www.indolering.com/wp-content/uploads/2011/06/Enclave-Circuit.png" alt="" width="461" height="134" /></a><p
class="wp-caption-text">My incorrect depiction of a Tor circuit which uses an enclave node.</p></div><p>I was interested in trying to promote enclave nodes for two reasons.  The first was that enclave nodes can connect to <em>regular</em> relay nodes, skipping exit relays.  Exit relays are difficult to maintain, as they appear to be the source of spam, hacking, file-sharing, and other unpleasant network traffic.  Exit node operators tend to receive a lot of complaints from the RIAA and even an occasional email from law enforcement.  Although rare, a few exit node operators have had their computers <a
href="https://lists.torproject.org/pipermail/tor-talk/2011-May/020490.html">confiscated as evidence</a> and they have even <a
href="http://itnomad.wordpress.com/2007/09/16/tor-madness-reloaded/">arrested</a> in <a
href="http://archives.seul.org/or/talk/Sep-2009/msg00059.html">child porn raids</a>.  Operators are now very proactive at alerting others that they are running a Tor node, and are not the source of the traffic.  This means that there are fewer exit nodes than regular relay nodes, which reduces anonymity and led me to assume that exit nodes were a  major choke-point on the network.</p><div
class="wp-caption alignright" style="width: 416px"><a
href="http://royal.pingdom.com/2010/07/05/what-it-takes-to-be-a-top-100-website-charts/"><img
class="     " title="Top 1000 sites" src="http://farm5.static.flickr.com/4093/4763546939_e08b42f690_b.jpg" alt="" width="406" height="280" /></a><p
class="wp-caption-text">The top 100 websites receive the same number of visits as the bottom 900 websites combined. From Pingdom.</p></div><p>Considering the how the  the <a
href="http://www.google.com/adplanner/static/top1000/">top ten sites</a> account for 20% of the top 1000 sites traffic, it&#8217;s hard not to question the impact enclave nodes could have on the Tor network.  Last year, Google <a
href="http://googleblog.blogspot.com/2010/01/new-approach-to-china.html">stopped censoring</a> it&#8217;s search results, and China started blocking Google.  While Yahoo and Microsoft voluntarily filter their own search results, but China has been jamming or <a
href="http://www.guardian.co.uk/technology/2011/mar/20/google-gmail">slowing down</a> services even with the foreign companies that &#8220;play ball&#8221; in order to promote homegrown Chinese companies.</p><p>According to a <a
href="http://doi.ieeecomputersociety.org/10.1109/NSS.2010.47">2010 study</a> which categorized the destination websites of headers from <a
href="http://en.wikipedia.org/wiki/Packet_analyzer">captured</a> exit node packets, some 24% of HTTP traffic was going to search engines, social networking sites, and blogs.  Some quick Googling will revealed that of the top ten websites, six are regularly censored in China (<del>Google</del>, <del>Facebook</del>, <del>YouTube</del>, Yahoo, Live.com, <del>Wikipedia.org</del>, msn.com, <del>BlogSpot</del>, Baidu.com, Bing.com)*  Even if those six  sites only represent (at max) 10% of the overall exit node bandwidth, the vast majority of sites that the Tor&#8217;s target audience visits stand to gain big improvements in page load time.</p><p>The second benefit to this approach is that, if load times became bearable**(which is a <a
href="http://research.google.com/pubs/pub34439.html">really</a> <a
href="http://www.uie.com/articles/download_time/">hard</a> <a
href="http://www.useit.com/papers/responsetime.html">metric</a> to pinpoint, as it varies according to task and relative connection speeds), Tor could provide Google, Facebook, and others access to the Chinese market of <em>regular</em> internet users.  If Tor became a viable option for  reaching these normally benign services, and Tor usage became  wide-spread for <strong>non</strong>-dissident activities (like business use), China might  just have to swallow the presence of Tor on it&#8217;s network.   Most importantly, however, is that if Google and others  would actively contribute to making Tor faster and safer  in exchange for access to the massive Chinese market place.</p><h3>Test Design</h3><p>The testing consisted of using a Tor enabled version of Firefox to issue DuckDuckGo a search query of &#8220;<a
href="http://duckduckgo.com/?q=my+ip+address">my IP address</a>&#8221; and comparing load times between an enclave and a non-enclave node servers.  Non-tor queries and the use of DuckDuckGo&#8217;s hidden <a
href="http://en.wikipedia.org/wiki/.onion">.onion</a> search portal served as controls to isolate network variance unrelated to the Tor network.</p><p>During this past quarter, I was exploring end-user-programming as well.  The social sciences tend to attract those who are not naturally inclined to program.  This results in undergrads slaving away on boring grunt work that could be automated.  I decided to field test how much of the test-bed could be automated with little or no programming.</p><p>My Mac Mini file server served as the host machine for a <a
href="http://www.virtualbox.org/">VirtualBox</a> <a
href="http://lubuntu.net/">Lubuntu</a> instance loaded with the portable version of Firefox running the Tor browser suite.  To ensure local internet usage did not dirty the results, VirtualBox was connected to a dedicated connection, a DSL line installed for the purpose of this testing.  Firefox&#8217;s page caching was disabled and the <a
href="http://getfirebug.com/">Firebug</a> add-on provided load and rendering times.</p><p>Load times were tracked using a Google Docs <a
href="http://www.google.com/google-d-s/forms/">spreadsheet</a>.  Load times were entered into the spreadsheet using a <a
href="http://www.google.com/google-d-s/forms/">Google Forms</a> interface.</p><p>I attempted to use the <a
href="https://addons.mozilla.org/en-US/firefox/addon/imacros-for-firefox/">iMacros</a> and <a
href="http://seleniumhq.org/">Selenium</a> automation suites for Firefox, as both provide a &#8220;watch-me-do&#8221; interface for demonstrative programming.  However, both provided limited programmability of elements outside of the web-page.  Copying load times from the Firebug add-on and turning Tor on and off proved to be impossible.</p><p>Up until this point no programming was needed.  A researcher could fully automated almost any web-based task without any programming language or background.  The instructions for setting up such a system could be written in an entirely procedural manner, requiring no understanding of the underlying system or abstract data structures.</p><div
class="wp-caption alignright" style="width: 181px"><a
href="http://sikuli.org/"><img
class=" " title="Sikuli Demo" src="http://sikuli.org/docx/_images/spotlight-type.png" alt="" width="171" height="96" /></a><p
class="wp-caption-text">Searching &quot;Hello World&quot; using OS X&#39;s spotlight</p></div><p>In a compromise to my &#8220;no programming&#8221; design path, I chose to use the <a
href="http://sikuli.org/">Sikuli</a> automation IDE.  Sikuli uses computer vision to identify interface elements instead of explicitly labeled interface components, as iMacros, Selenium, AppleScript, and other interface automation suites rely on.  However, Sikuli relies on lightweight python scripting and functional scripts can be created using the pattern-match behavior typical of end-user programmers.</p><h3><span
style="font-size: 15px;">Pilot Test</span></h3><p>Up to this point, I had prototyped each piece of the automated test-bed on my MacBook laptop.  This took a significant amount of time and effort, and I wisely decided to do some pilot testing and post the set-up on the Tor mailing list before dedicating more time to assembling and debugging the test-rig on the server machine.</p><p>The first sign of trouble came when Roger Dingledine tested the DDG website against Tor&#8217;s exit node list.  DDG was not listed.  It turned out that DDG had made some changes which disabled the enclave proxy.</p><p>After working with the DDG engineers to fix the configuration issue, I realized I needed a way to reliably access the DDG server through a tor exit relay and not the DDG exit enclave.  The Tor DDG engineers gracefully provided a <a
href="http://en.wikipedia.org/wiki/CNAME_record">CNAME</a> for the search engine which did not reside on the same IP address as the exit enclave.</p><p>After installing <a
href="http://www.loadui.org/">LoadUI</a> and a Tor proxy on my server, I began measuring download and response times between the exit node and exit enclave sites.   After a few hours, there was no difference.  The exit node node circuit should have contained an additional hop compared to the enclave node.  Additionally the enclave node circuit only used the regular relay nodes in each hop, which were faster and more abundant than the exit nodes.</p><p>Given that the enclave node had 1/3 fewer hops and that it wasn&#8217;t restricted by the exit node bandwidth, a difference of thirty percent between the exit and enclave DDG searches was a realistic expectation.</p><p>But even after days of testing, there was no difference in response times from the exit and enclave circuits.  LoadUI does not download pages like a normal web-browser, so I had expected to see less variance compared to browsers load times.  However, there was no discernable difference at all.</p><p>Thinking that I may have misconfigured something, I setup testing for all four DDG conditions (exit node, enclave node, .onion site, and non-Tor control).  The non-Tor search would only provide a baseline response time, not any differences within the Tor network.  The .onion search response times should (having twice the number of hops) have twice the response time as the regular exit node DDG search.  Indeed, the .onion search was twice as long as the normal DDG page loads.  Something was wrong, and it wasn&#8217;t with my test set-up.</p><h2><span
style="font-size: 14px;">False Assumption #1: an enclave nodes <em>replaces</em> the final relay node </span></h2><h3><span
style="font-size: 14px;"> </span><span
style="font-size: 14px; font-weight: normal;"><span
style="font-size: 14px; font-weight: normal;">I logged onto the Tor IRC chat channel and received an explanation from Sebastian.  Despite what the documentation indicated, enclave node circuits do not contain fewer hops, as depicted below.</span></span></h3><h3><div
id="attachment_92" class="wp-caption aligncenter" style="width: 471px"><a
class="highslide img_13" href="http://www.indolering.com/wp-content/uploads/2011/06/Enclave-Circuit.png" onclick="return hs.expand(this)"><img
class="size-full wp-image-92" title="Enclave-Circuit" src="http://www.indolering.com/wp-content/uploads/2011/06/Enclave-Circuit.png" alt="" width="461" height="134" /></a><p
class="wp-caption-text">There are three hops, but only TWO relay nodes, the final hop doesn&#39;t count!</p></div><p><div
id="attachment_93" class="wp-caption aligncenter" style="width: 560px"><a
class="highslide img_14" href="http://www.indolering.com/wp-content/uploads/2011/06/REAL-Enclave-Curcuit.png" onclick="return hs.expand(this)"><img
class="size-full wp-image-93" title="REAL-Enclave-Curcuit" src="http://www.indolering.com/wp-content/uploads/2011/06/REAL-Enclave-Curcuit.png" alt="" width="550" height="130" /></a><p
class="wp-caption-text">An accurate depiction of a Tor circuit using an enclave node.</p></div></h3><h3><span
style="font-size: 14px; font-weight: normal;"><span
style="font-size: 14px; font-weight: normal;">Connections with an enclave node provide two benefits</span></span></h3><ol><li><span
style="font-size: 14px;">Enclave nodes do not rely on exit nodes, but instead pull from any regular relay node.</span><span
style="font-size: 14px;"> </span></li><li><span
style="font-size: 14px;">No volunteer node can read the information being passed to the Enclave Node.</span></li></ol><p><span
style="font-size: 14px;">The reasoning for not having one fewer hop is somewhat complicated, and I was in the good company of MIT grads, Slashdot, and others in making this mistake.  Since the Tor network is made up of volunteer nodes, an adversary could create hostile nodes on the network and piece together enough information to find the dissident.</span></p><p><span
style="font-size: 14px;">There are two pieces of information that <em>cannot</em> be connected to the dissident</span></p><p><span
style="font-size: 14px;"> </span></p><ol><li><span
style="font-size: 14px;">What information the dissident is sending</span></li><li><span
style="font-size: 14px;">Where the user is sending that information.</span></li></ol><p><span
style="font-size: 14px;"> If an enclave node were constructed like we had assumed (with one fewer node/hop than a regular circuit) a hostile node can connect where the information is going to whom sent that information.</span></p><div
id="attachment_94" class="wp-caption aligncenter" style="width: 460px"><a
class="highslide img_15" href="http://www.indolering.com/wp-content/uploads/2011/06/Comprimised-2-hop-node.png" onclick="return hs.expand(this)"><img
class="size-full wp-image-94" title="Compromised-2-hop-circuit" src="http://www.indolering.com/wp-content/uploads/2011/06/Comprimised-2-hop-node.png" alt="" width="450" height="109" /></a><p
class="wp-caption-text">A compromised tw0-hop circuit</p></div><p>The red, hostile node (<a
class="highslide img_16" href="http://www.indolering.com/wp-content/uploads/2011/06/compromised-node.png" onclick="return hs.expand(this)"><img
class="alignnone size-full wp-image-95" title="compromised-node" src="http://www.indolering.com/wp-content/uploads/2011/06/compromised-node.png" alt="" width="17" height="17" /></a>) cannot read the information being passed to the enclave node, but the hostile node does know that the  information it is passing is meant for the enclave node only.  That information won&#8217;t be passed along any further.  The hostile node also <em>knows</em> that the orange node <em>knows</em> who the information came from.  To explain why takes a lot of background information, so I stuffed it in a skippable info box.</p><div
class="woo-sc-box info  rounded "> There is ANOTHER type of tor node we haven&#8217;t talked about, the entry node (AKA a guard or bridge node).  It used to be that each user selected a node at random every-time they connected to the Tor network.   The problem with this is that over a long enough period of time they would <em>eventually</em> connect to a hostile node.  If they were monitoring the destination sites or (for example) they tricked the dissident into chatting with them online or had a honey-pot server, the adversary could perform a timing attack and figure out who the user is.</p><p>Instead, each user keeps a short list of entry nodes and they reuse those entry nodes for every session   Compared to the continually random entry node assignment, <em>over a long period of time</em>, it is less likely that the entry node picked will be a hostile node.  This has the downside of making clients of a single entry node much easier to decipher, as they use the same subset of entry nodes over and over again.</div><div
id="attachment_96" class="wp-caption aligncenter" style="width: 570px"><a
class="highslide img_17" href="http://www.indolering.com/wp-content/uploads/2011/06/Hostile-enclave-Circuit.png" onclick="return hs.expand(this)"><img
class="size-full wp-image-96" title="Hostile-enclave-Circuit" src="http://www.indolering.com/wp-content/uploads/2011/06/Hostile-enclave-Circuit.png" alt="" width="560" height="130" /></a><p
class="wp-caption-text">The middle node knows nothing.</p></div><p>In a 3 hop circuit, the middle node (<a
class="highslide img_18" href="http://www.indolering.com/wp-content/uploads/2011/06/Green-Node.png" onclick="return hs.expand(this)"><img
title="Green-Node" src="http://www.indolering.com/wp-content/uploads/2011/06/Green-Node.png" alt="" width="18" height="18" /></a>) doesn&#8217;t know where the information originally came from or where it&#8217;s final destination is.  An adversary has to compromise <strong>two</strong> nodes at any given time in order to connect the user and the destination.  A hostile node at the end doesn&#8217;t can&#8217;t see past the green node, as it carries multiple user&#8217;s traffic.</p><p>At least I am in the good company of Slashdot and MIT graduates in making this mistake.  If you wish to not make mistakes regarding 2 vs 3 hop designs, the research paper <em><a
href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.165.7410">On the Optimal Path Length for Tor</a></em> provides an excellent overview of the pros and cons.</p><h2>False Assumption #2: there are not enough exit nodes</h2><p>From scary stories regarding exit node operators being arrested and the huge amount of bandwidth that researchers saw when operating exit nodes, I naturally assumed exit nodes were in short supply.  You had to be an elite geek running your own ISP to be able to afford the bandwidth and not get arrested when connections were traced back to your company.  Since running a relay node is simple and carries zero risk, it naturally follows that available non-exit relay bandwidth would be an order of magnitude greater than available exit relay bandwidth, especially given the scary quotes regarding exit nodes that are thrown around,</p><p>&#8220;Without our servers, roughly 25% of all exit traffic in the Tor network passes through <em>one</em> node, which is far from ideal. The currently fastest node, Blutmagie, will be shut down within the next months&#8221; -<a
href="http://www.torservers.net/services.html">TorServers.net</a></p><p>But, according to the gracious Sebastion on IRC, exit node bandwidth isn&#8217;t that scarce and has never been major a problem.  Even the <a
href="https://blog.torproject.org/blog/why-tor-is-slow">2009 paper </a>on improving Tor&#8217;s speed doesn&#8217;t mention a desperate need for more <em>exit</em> relays, just more relays.  When more was needed, it magically showed up.</p><h1>Discussion</h1><p>Exit enclaves may still be a way to increase Tor speed in the future.  Until fairly <a
href="https://blog.torproject.org/blog/picturing-tor-censorship-china">recently</a>, China tolerated Tor.  The Tor project created semi-secret entry nodes, called <em>bridge nodes</em>, to restore connectivity.  A cat-and-mouse game has ensued.  Tor admins are receiving has 8,000 <em>email</em> requests per <em>day</em> asking for new bridge nodes, there are ~1,000 public bridge nodes.</p><p>Unlike other peer-to-peer networks, Tor does not make every node/peer share their bandwidth.  Nodes are not relay&#8217;s by default, but the needed architectural changes to make bridge-node-by-default automatic and scalable are nearly complete.  The Tor operators <a
href="https://blog.torproject.org/blog/strategies-getting-more-bridge-addresses">plan</a> on making fast nodes into bridge relays by default.  The Tor network varies between <a
href="https://metrics.torproject.org/users.html">300,000 to 400,000</a> users, sometimes spiking up to 600,000 users.</p><p>There are just over <a
href="https://metrics.torproject.org/network.html">3,000 relays</a>, a 100:1 ratio of users to relay nodes.  And remember, each user&#8217;s connection must make additional hops before reaching the exit nodes.  If Tor made <em>every</em> suitably fast node a <em>regular</em> relay-by-default, then the entry and inter bandwidth capacities will almost certainly be out of balance with the available exit node capacity.  If that appears to be happening, I will try my experiment again.</p> ]]></content:encoded> <wfw:commentRss>http://www.indolering.com/measuring-tor/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>The DMV&#8217;s new Facebook Initiative is F***ed</title><link>http://www.indolering.com/dmv-facebook</link> <comments>http://www.indolering.com/dmv-facebook#comments</comments> <pubDate>Sun, 22 May 2011 18:30:00 +0000</pubDate> <dc:creator>indolering</dc:creator> <category><![CDATA[Random]]></category> <guid
isPermaLink="false">http://www.indolering.com/the-dmvs-new-facebook-initiative-is-fed</guid> <description><![CDATA[Seriously, why can&#8217;t I just get all of this crap done automatically? &#160;Why the hell do I have to provide &#8220;proof&#8221; of insurance in the form of a paper card I could print off myself?]]></description> <content:encoded><![CDATA[<p>Seriously, why can&#8217;t I just get all of this crap done automatically? &nbsp;Why the hell do I have to provide &#8220;proof&#8221; of insurance in the form of a paper card I could print off myself?</p> ]]></content:encoded> <wfw:commentRss>http://www.indolering.com/dmv-facebook/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>I Am Al Jazeera (Button)</title><link>http://www.indolering.com/al-jazeera-button</link> <comments>http://www.indolering.com/al-jazeera-button#comments</comments> <pubDate>Sun, 20 Feb 2011 18:13:00 +0000</pubDate> <dc:creator>indolering</dc:creator> <category><![CDATA[Activism]]></category> <category><![CDATA[Design]]></category> <category><![CDATA[design]]></category> <guid
isPermaLink="false">http://www.indolering.com/?p=24</guid> <description><![CDATA[Tired of the sudo-racist attacks on Al Jazeera, I created this button nearly 2 years ago.  Editable files and whatnot are below the fold.]]></description> <content:encoded><![CDATA[<p>Tired of the sudo-racist attacks on Al Jazeera, I created this button nearly 2 years ago.</p><p>Consider the file itself public domain, but remember, the Al Jazeera logo itself has both trademark and copyright protection.</p><p>PDF with 12 on a page is <a
href="http://www.indolering.com/wp-content/uploads/2011/02/I-Am-Al-Jazeera-2.25-12up.pdf">here</a>, PDF with three sizes is <a
href="http://www.indolering.com/wp-content/uploads/2011/02/I-Am-Aljazeera-buttons.pdf">here</a>, and the editable Illustrator and InDesign files are <a
href="http://www.indolering.com/wp-content/uploads/2011/02/Al-Jazeera.zip">here</a>.</p> ]]></content:encoded> <wfw:commentRss>http://www.indolering.com/al-jazeera-button/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Healthcare Reform Advocates Need to Listen to Bush</title><link>http://www.indolering.com/bush-on-healthcare</link> <comments>http://www.indolering.com/bush-on-healthcare#comments</comments> <pubDate>Fri, 07 Aug 2009 06:01:24 +0000</pubDate> <dc:creator>indolering</dc:creator> <category><![CDATA[Framing]]></category> <category><![CDATA[health-care]]></category> <category><![CDATA[political]]></category> <category><![CDATA[social]]></category> <guid
isPermaLink="false">http://www.indolering.com/?p=144</guid> <description><![CDATA[The &#8220;compassionate conservative&#8221; in 2000, showing how to frame the health care debate in a way that appeals to both conservatives and progressives.]]></description> <content:encoded><![CDATA[<p>The &#8220;compassionate conservative&#8221; in 2000, showing how to frame the health care debate in a way that appeals to both conservatives and progressives.</p> ]]></content:encoded> <wfw:commentRss>http://www.indolering.com/bush-on-healthcare/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
