<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0.4" -->
<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/"
	>

<channel>
	<title>rictic</title>
	<link>http://blog.rictic.com</link>
	<description></description>
	<pubDate>Wed, 17 Oct 2007 04:02:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.4</generator>
	<language>en</language>
			<item>
		<title>Kick-ass Context</title>
		<link>http://blog.rictic.com/2007/10/16/kick-ass_context/</link>
		<comments>http://blog.rictic.com/2007/10/16/kick-ass_context/#comments</comments>
		<pubDate>Wed, 17 Oct 2007 04:02:26 +0000</pubDate>
		<dc:creator>rictic</dc:creator>
		
	<category>kick-ass</category>
	<category>review</category>
		<guid isPermaLink="false">http://blog.rictic.com/2007/10/16/kick-ass_context/</guid>
		<description><![CDATA[(I&#8217;m hoping to jump-start my blog again with a few short posts about neat tricks and programs I use that save time and give me that kick-ass feeling.)
Marco Polo (freebase, versiontracker) is an app that&#8217;s all about getting out of your way.  With Marco Polo you describe certain contexts where you use your computer, [...]]]></description>
			<content:encoded><![CDATA[<p>(I&#8217;m hoping to jump-start my blog again with a few short posts about neat tricks and programs I use that save time and give me <a href="http://headrush.typepad.com/creating_passionate_users/2005/06/kicking_ass_is_.html"title="Kathy Sierra blogs no more, but her thoughts live on"  onclick="javascript:urchinTracker ('/outbound/article/headrush.typepad.com');">that kick-ass feeling</a>.)</p>
<p><a href="http://www.symonds.id.au/marcopolo/"title="Marco Polo, context awareness for the Mac"  onclick="javascript:urchinTracker ('/outbound/article/www.symonds.id.au');">Marco Polo</a> <sup>(<a href="http://www.freebase.com/view/guid/9202a8c04000641f8000000005f1e50a"title="Marco Polo in Freebase"  onclick="javascript:urchinTracker ('/outbound/article/www.freebase.com');">freebase</a>, <a href="http://www.versiontracker.com/dyn/moreinfo/macosx/32979"title="Marco Polo in versiontracker"  onclick="javascript:urchinTracker ('/outbound/article/www.versiontracker.com');">versiontracker</a>)</sup> is an app that&#8217;s all about getting out of your way.  With Marco Polo you describe certain contexts where you use your computer, and what you want to happen when you&#8217;re in that context.</p>
<p>I&#8217;ve got three main contexts where I frequently use my laptop, and one default one to cover everything else.  For example, if it&#8217;s between 5:30 and 9:15 on Tuesday and I&#8217;m on the campus network, I&#8217;m in class.  If my laptop is plugged into a particular external monitor and keyboard, I&#8217;m at work.  Likewise, if I&#8217;m on the wifi network at my apt, I&#8217;m at home.  You can get as complicated as you please here, giving each source of evidence a confidence rating, setting a confidence threshold needed to automatically switch contexts.</p>
<p>Marco Polo has been flawless so far at immediately recognizing where I am.</p>
<p>Then comes the fun part: telling it what to do when your context changes.  When I&#8217;m in class, my speakers are automatically muted.  When I&#8217;m at work, my wifi is turned off.  When I&#8217;m at home, my screensaver password is disabled.</p>
<p>The biggest place where Marco Polo can grow is its selection of actions you can tell it to perform.  I imagine a bit of integration with <a href="http://quicksilver.blacktree.com/"title="Quicksilver, amazing Mac software, act without thinking"  onclick="javascript:urchinTracker ('/outbound/article/quicksilver.blacktree.com');">Quicksilver</a> would be fruitful there.  On the other hand, as I was writing this blog post, Marco Polo performed an automated update that added the QuitApplication action, apparently in response to a feature request&#8230; so perhaps they&#8217;ve got that under control.</p>
<p>Of course, since one of the built-in actions is to run a shell script, I&#8217;m happy as a clam either way.  Marco Polo&#8217;s abilities outpace my desires for the moment, which is definitely a kick-ass place to be.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://blog.rictic.com/2007/10/16/kick-ass_context/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Disruptive Change</title>
		<link>http://blog.rictic.com/2006/08/24/disruptive-change/</link>
		<comments>http://blog.rictic.com/2006/08/24/disruptive-change/#comments</comments>
		<pubDate>Thu, 24 Aug 2006 18:23:05 +0000</pubDate>
		<dc:creator>rictic</dc:creator>
		
	<category>society</category>
		<guid isPermaLink="false">http://blog.rictic.com/?p=7</guid>
		<description><![CDATA[Steve Yegge often writes about a wide variety of issues, focusing more on the social and human element of programming.  His most recent post about body modification, social mores, and more deeply about disruptive change and how societies respond has gotten me thinking.  His thoughts about body modification and such are fun to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://steve-yegge.blogspot.com/"title="Stevey's Blog Rants"  onclick="javascript:urchinTracker ('/outbound/article/steve-yegge.blogspot.com');">Steve Yegge</a> often writes about a wide variety of issues, focusing more on the social and human element of programming.  His <a href="http://steve-yegge.blogspot.com/2006/08/clothes-for-soul.html"title="Clothes for the Soul"  onclick="javascript:urchinTracker ('/outbound/article/steve-yegge.blogspot.com');">most recent post</a> about body modification, social mores, and more deeply about disruptive change and how societies respond has gotten me thinking.  His thoughts about body modification and such are fun to read and think about, but one of the underlying points has left me wondering how to recognize and cope with disruptive change.</p>
<p>There are plenty of examples of disruptive ideas and social phenomena that were so in conflict with those of their time that they were only really adopted in large numbers by the next generation, those that grew up with them.  Take evolution for example.  Many of the leading lights in biology at the time were never convinced of it, and went to their graves arguing against it.  They missed out on an opportunity to make significant groundbreaking contributions because of their prior ideological commitments.  It was the next generation of biologists, coming into the field without having made any commitment to a biological ideology that were able to look at the various explanations of life and recognize evolution&#8217;s explanatory and predictive power in contrast to alternative ideas.  So it is with many social movements.  In America, a large number of people three or more generations back were and are quite racist, largely because racism was built into their world views at a young age.  It is my understanding that racism has largely died out in America not through convincing people who already had a strong opinion, but through a generational change.</p>
<p>The interesting question here on a personal level is how recognize this sort of change and how to consider these ideas fairly when they go against deeply set beliefs and understandings of the world.  Certainly it appears that the older you get the rarer this ability is, but there were a number of people who were well established in biology who accepted and argued for evolution.  If there is a radical disruptive idea in my field or in society in general, I want to be able to consider it on its merits, rather than discard it for not cohering with other ideas I hold to be true, and I want to know how to be prepared to do so.</p>
<p>Keeping an open mind and being open to questioning of any aspect of your world view is one pretty sensible response, but I think there&#8217;s an additional element.</p>
<p>There is a well known principle of psychology that we are loathe to question critically something we&#8217;ve made a visible, tangible, or most of all monetary commitment to.  This principle is exploited to powerful effect by everyone from scam artists to cult leaders, stringing people along far beyond what they would have accepted otherwise.  An excellent case study in this is Scientology, wherein large commitments of time, energy, and money are ensured before one learns of their more ridiculous beliefs.  Therefor, a level of humility is necessary, I think, to be willing to admit that one has been wrong and that one has publicly and repeatedly acted and spoken based on false assumptions.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://blog.rictic.com/2006/08/24/disruptive-change/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Password Security with Javascript</title>
		<link>http://blog.rictic.com/2006/05/16/password-security-with-javascript/</link>
		<comments>http://blog.rictic.com/2006/05/16/password-security-with-javascript/#comments</comments>
		<pubDate>Tue, 16 May 2006 09:47:39 +0000</pubDate>
		<dc:creator>rictic</dc:creator>
		
	<category>web</category>
		<guid isPermaLink="false">http://blog.rictic.com/?p=6</guid>
		<description><![CDATA[&#8216;Javascript&#8217; and &#8217;security&#8217; aren&#8217;t two words that often go together, except as a punch line or a posting to the DailyWTF.  However, javascript is less limited than many think, and when used in combination with a bit of server-side code you can implement a standard challenge-response style authentication system that degrades nicely when the client [...]]]></description>
			<content:encoded><![CDATA[<p>&#8216;Javascript&#8217; and &#8217;security&#8217; aren&#8217;t two words that often go together, except as a punch line or a posting to the <a href="http://thedailywtf.com/"title="Curious Perversions in Information Technology"  onclick="javascript:urchinTracker ('/outbound/article/thedailywtf.com');">DailyWTF</a>.  However, javascript is less limited than many think, and when used in combination with a bit of server-side code you can <a href="http://pajhome.org.uk/crypt/md5/auth.html"title="Javascript MD5 Login System"  onclick="javascript:urchinTracker ('/outbound/article/pajhome.org.uk');">implement a standard challenge-response style authentication system</a> that degrades nicely when the client doesn&#8217;t support javascript.  The problem is that there are a number of realities about the web that make standard authentication systems difficult and less than ideal.  However, any modification to the standard systems require extensive cryptanalysis, as even very minor mistakes or subtle changes can have significant consequences.</p>
<p>SSL of course is the ideal solution for encryption on the web.  The place where a good javascript-based approach could make an impact is in web apps meant to be deployed by users.  Blogs, bulletin boards, wikis, photo sharing apps&#8230; these kinds of web apps all commonly have, at minimum, an admin interface, and many times support user accounts.  These sorts of apps are also often deployed on shared hosting where SSL is expensive if offered at all.  A nice javascript authentication library that has been vetted by security experts could make a difference in this space, offering a step above simply sending passwords in plaintext.  The difficult part wouldn&#8217;t be coding the library, but ensuring compatability and correctness in a variety of environments.</p>
<p>Any security geeks interested in giving this a shot?
</p>
]]></content:encoded>
			<wfw:commentRSS>http://blog.rictic.com/2006/05/16/password-security-with-javascript/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Rapid TDD in OSX</title>
		<link>http://blog.rictic.com/2006/04/30/rapid-tdd-in-osx/</link>
		<comments>http://blog.rictic.com/2006/04/30/rapid-tdd-in-osx/#comments</comments>
		<pubDate>Mon, 01 May 2006 00:57:47 +0000</pubDate>
		<dc:creator>rictic</dc:creator>
		
	<category>ruby</category>
	<category>agile</category>
	<category>tdd</category>
		<guid isPermaLink="false">http://blog.rictic.com/?p=4</guid>
		<description><![CDATA[I&#8217;ve been looking into and adopting Test Driven Development lately, and I&#8217;ve run across some neat tools that can improve the TDD experience a good deal.  stakeout is a program that utilizes some native OSX tricks to run a script every time a file is changed.
I wrote a bit of ruby (along the lines [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking into and adopting <a href="http://en.wikipedia.org/wiki/Test-driven_development" onclick="javascript:urchinTracker ('/outbound/article/en.wikipedia.org');">Test Driven Development</a> lately, and I&#8217;ve run across some neat tools that can improve the TDD experience a good deal.  <a href="http://michael-mccracken.net/blog/blosxom.pl/computers/mac/programming/meetWatch.html" onclick="javascript:urchinTracker ('/outbound/article/michael-mccracken.net');">stakeout</a> is a program that utilizes some native OSX tricks to run a script every time a file is changed.</p>
<p>I wrote a bit of ruby (along the lines of <a href="http://michael-mccracken.net/blog/blosxom.pl/computers/mac/programming/stakeoutMeetGrowl.html" onclick="javascript:urchinTracker ('/outbound/article/michael-mccracken.net');">gstakeout</a>) that ties together the OSX notification manager <a href="http://growl.info/" onclick="javascript:urchinTracker ('/outbound/article/growl.info');">Growl</a> with <a href="http://www.ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html" onclick="javascript:urchinTracker ('/outbound/article/www.ruby-doc.org');">Ruby&#8217;s unit testing framework</a>.  It&#8217;s just a little hack that adds a couple of lines into the command line test runner of unit/test, but I found it to improve TDD on little projects so much that I made a short screencast showing it off:</p>
<p><a href="http://blog.rictic.com/static/growlrunner.html" ><img title="Growlrunner Screencast" alt="Growlrunner Thumbnail" src="/static/growlrunner.png" /></a></p>
<p>This could be improved by integrating it into <a href="http://nubyonrails.com/articles/2006/04/19/autotest-rails" onclick="javascript:urchinTracker ('/outbound/article/nubyonrails.com');">autotest</a>, which has the nice property that it only tests methods that need to be tested.</p>
<p>edit:  Usage:  Add this to the end of your test script:</p>
<pre class="ruby">require 'growlrunner'
runner = Test::Unit::UI::Growl::TestRunner.new(YourTestClassGoesHere)
runner.start</pre>
<p>If you do this, it&#8217;ll work with autotest, and in Rails projects.</p>
<p>Requirements: <a href="http://rubycocoa.sourceforge.net/" onclick="javascript:urchinTracker ('/outbound/article/rubycocoa.sourceforge.net');">RubyCocoa</a><br />
Download <a href="http://blog.rictic.com/static/growlrunner.rb" >growlrunner.rb</a> (updated 5-2-2006)
</p>
]]></content:encoded>
			<wfw:commentRSS>http://blog.rictic.com/2006/04/30/rapid-tdd-in-osx/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Blog software change</title>
		<link>http://blog.rictic.com/2006/04/30/blog-software-change/</link>
		<comments>http://blog.rictic.com/2006/04/30/blog-software-change/#comments</comments>
		<pubDate>Mon, 01 May 2006 00:19:56 +0000</pubDate>
		<dc:creator>rictic</dc:creator>
		
	<category>metablogging</category>
		<guid isPermaLink="false">http://blog.rictic.com/?p=3</guid>
		<description><![CDATA[I&#8217;ll try to keep the metablogging to a minimum, but I figured I might as well note that I&#8217;ve changed blog software from Typo to Wordpress.&#160; Typo&#8217;s given me a bit of trouble in the past, but the real reason I switched was the annoying random Application Errors that plague Rails apps.&#160; I&#8217;m just not [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll try to keep the metablogging to a minimum, but I figured I might as well note that I&#8217;ve changed blog software from Typo to Wordpress.&#160; Typo&#8217;s given me a bit of trouble in the past, but the real reason I switched was the annoying random Application Errors that plague Rails apps.&#160; I&#8217;m just not interested in debugging my blogging software.&#160; One thing I&#8217;ll give php over rails is that it is considerably easier to deploy someone else&#8217;s php app.&#160; No fiddling around with .htaccess or fcgi.</p>
<p>Perhaps <a href="http://wiki.rubyonrails.com/rails/pages/Conductor"title="The Conductor"  onclick="javascript:urchinTracker ('/outbound/article/wiki.rubyonrails.com');">The Conductor</a> will smooth this over, if it&#8217;s ever released.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://blog.rictic.com/2006/04/30/blog-software-change/feed/</wfw:commentRSS>
		</item>
	</channel>
</rss>
