<?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>Blumenfeld &#38; Maso, Inc. &#187; Uncategorized</title>
	<atom:link href="http://www.blumenfeld-maso.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blumenfeld-maso.com</link>
	<description>Cloud, SaaS, and Enterprise Software Design and Development</description>
	<lastBuildDate>Tue, 23 Aug 2011 15:04:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Scala Word of the Day: View-Map-Filter*-Find</title>
		<link>http://www.blumenfeld-maso.com/2011/04/scala-word-of-the-day-view-map-filter-find/</link>
		<comments>http://www.blumenfeld-maso.com/2011/04/scala-word-of-the-day-view-map-filter-find/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 01:04:25 +0000</pubDate>
		<dc:creator>Brian Maso</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.blumenfeld-maso.com/?p=159</guid>
		<description><![CDATA[A recent thread on the scala-users list discussed a nifty technique for efficiently working with a common sequence processing use-case. The technique was coin view-map-find. Here I describe what I think is a little better tweak on the idea that I&#8217;ll give the daunting name view-map-filter*-find. A good Scala programmer should have this in his [...]]]></description>
			<content:encoded><![CDATA[<p>A recent thread on the scala-users list discussed a nifty technique for efficiently working with a common sequence processing use-case. The technique was coin <em>view-map-find</em>. Here I describe what I think is a little better tweak on the idea that I&#8217;ll give the daunting name <em>view-map-filter*-find</em>. A good Scala programmer should have this in his toolbelt.</p>
<h3>The Problem</h3>
<p>You have a sequence, and you want to find the first (or any) element that matches some criteria. Of course your first thought should be <em>find</em>. However, often it is the case that the predicate passed to <em>find</em> would be pretty complex &#8212; perhaps too complex to render meaningful code. Often in these cases it would yield much more readable, understandable code to break the predicate in to two parts: the first portion is a mapping, and the second is a predicate test on the mapped value.</p>
<p>For example, you have a list of file names, and you want the first name that references a directory that contains at least one JPG image file. Using just find, you get a pretty hairy predicate function:</p>
<div id="wpshdo_1" class="wp-synhighlighter-outer"><div id="wpshdt_1" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_1"></a><a id="wpshat_1" class="wp-synhighlighter-title" href="#codesyntax_1"  onClick="javascript:wpsh_toggleBlock(1)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_1" onClick="javascript:wpsh_code(1)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.blumenfeld-maso.com/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_1" onClick="javascript:wpsh_print(1)" title="Print code"><img border="0" style="border: 0 none" src="http://www.blumenfeld-maso.com/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.blumenfeld-maso.com/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.blumenfeld-maso.com/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_1" class="wp-synhighlighter-inner" style="display: block;"><pre class="scala" style="font-family:monospace;"><a href="http://scala-lang.org"><span class="kw1">val</span></a> fileNames<span class="sy0">:</span> Seq<span class="br0">&#91;</span>String<span class="br0">&#93;</span> <span class="sy0">=</span> ...
&nbsp;
<a href="http://scala-lang.org"><span class="kw1">val</span></a> dirWithJPGs <span class="sy0">=</span> fileNames find <span class="br0">&#123;</span> name <span class="sy0">=&gt;</span>
 <a href="http://scala-lang.org"><span class="kw1">val</span></a> file <span class="sy0">=</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> java.<span class="me1">io</span>.<span class="me1">File</span><span class="br0">&#40;</span>name<span class="br0">&#41;</span>
 <a href="http://scala-lang.org"><span class="kw1">if</span></a><span class="br0">&#40;</span>file.<span class="me1">isDirectory</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
  <span class="br0">&#40;</span>
   file.<span class="me1">list</span>.<span class="me1">map</span> <span class="br0">&#123;</span> fn <span class="sy0">=&gt;</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> java.<span class="me1">io</span>.<span class="me1">File</span><span class="br0">&#40;</span>file, fn<span class="br0">&#41;</span> <span class="br0">&#125;</span>
     map <span class="br0">&#123;</span> f <span class="sy0">=&gt;</span> f.<span class="me1">isFile</span> <span class="sy0">&amp;&amp;</span> fn.<span class="me1">endsWith</span><span class="br0">&#40;</span><span class="st0">&quot;jpg&quot;</span><span class="br0">&#41;</span> <span class="br0">&#125;</span>
  <span class="br0">&#41;</span> reduceLeft <span class="br0">&#40;</span><span class="sy0">_</span> || <span class="sy0">_</span><span class="br0">&#41;</span>
 <span class="br0">&#125;</span> <a href="http://scala-lang.org"><span class="kw1">else</span></a> <span class="br0">&#123;</span> <a href="http://scala-lang.org"><span class="kw1">false</span></a> <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>
<p>Its pretty hard to see what&#8217;s going on there without staring at it for a bit. But the English description is pretty clear: Each name in the <em>fileNames</em> list is being mapped to a boolean value indicating whether or not the File is a directory AND contains at least one file ending in &#8220;jpg&#8221;.</p>
<p>Using maps and filters, we can get something a lot easier to understand in code:</p>
<div id="wpshdo_2" class="wp-synhighlighter-outer"><div id="wpshdt_2" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_2"></a><a id="wpshat_2" class="wp-synhighlighter-title" href="#codesyntax_2"  onClick="javascript:wpsh_toggleBlock(2)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_2" onClick="javascript:wpsh_code(2)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.blumenfeld-maso.com/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_2" onClick="javascript:wpsh_print(2)" title="Print code"><img border="0" style="border: 0 none" src="http://www.blumenfeld-maso.com/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.blumenfeld-maso.com/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.blumenfeld-maso.com/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_2" class="wp-synhighlighter-inner" style="display: block;"><pre class="scala" style="font-family:monospace;"><a href="http://scala-lang.org"><span class="kw1">val</span></a> fileNames<span class="sy0">:</span> Seq<span class="br0">&#91;</span>String<span class="br0">&#93;</span> <span class="sy0">=</span> ...
<a href="http://scala-lang.org"><span class="kw1">val</span></a> dirWithJPGs <span class="sy0">=</span> fileNames map <span class="br0">&#123;</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> java.<span class="me1">io</span>.<span class="me1">File</span><span class="br0">&#40;</span><span class="sy0">_</span><span class="br0">&#41;</span> <span class="br0">&#125;</span> find <span class="br0">&#123;</span> dir <span class="sy0">=&gt;</span>
    dir.<span class="me1">isDirectory</span> <span class="sy0">&amp;&amp;</span>
        <span class="br0">&#40;</span><a href="http://scala-lang.org"><span class="kw1">for</span></a><span class="br0">&#40;</span>file <span class="sy0">&lt;</span>- dir.<span class="me1">list</span>.<span class="me1">map</span> <span class="br0">&#123;</span> n <span class="sy0">=&gt;</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> java.<span class="me1">io</span>.<span class="me1">File</span><span class="br0">&#40;</span>n<span class="br0">&#41;</span> <span class="br0">&#125;</span><span class="br0">&#41;</span>
             <a href="http://scala-lang.org"><span class="kw1">yield</span></a> file.<span class="me1">getName</span>.<span class="me1">endsWith</span><span class="br0">&#40;</span><span class="st0">&quot;jpg&quot;</span><span class="br0">&#41;</span>
        <span class="br0">&#41;</span> reduceLeft <span class="br0">&#40;</span><span class="sy0">_</span> || <span class="sy0">_</span><span class="br0">&#41;</span>
    <span class="br0">&#125;</span>
  <span class="br0">&#125;</span></pre></div></div>
<p>I find that a bit easier to read. An additional filter call is going to make it even easier to read:</p>
<div id="wpshdo_3" class="wp-synhighlighter-outer"><div id="wpshdt_3" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_3"></a><a id="wpshat_3" class="wp-synhighlighter-title" href="#codesyntax_3"  onClick="javascript:wpsh_toggleBlock(3)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_3" onClick="javascript:wpsh_code(3)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.blumenfeld-maso.com/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_3" onClick="javascript:wpsh_print(3)" title="Print code"><img border="0" style="border: 0 none" src="http://www.blumenfeld-maso.com/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.blumenfeld-maso.com/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.blumenfeld-maso.com/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_3" class="wp-synhighlighter-inner" style="display: block;"><pre class="scala" style="font-family:monospace;"><a href="http://scala-lang.org"><span class="kw1">val</span></a> fileNames<span class="sy0">:</span> Seq<span class="br0">&#91;</span>String<span class="br0">&#93;</span> <span class="sy0">=</span> ...
<a href="http://scala-lang.org"><span class="kw1">val</span></a> dirWithJPGs <span class="sy0">=</span> fileNames map <span class="br0">&#123;</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> java.<span class="me1">io</span>.<span class="me1">File</span><span class="br0">&#40;</span><span class="sy0">_</span><span class="br0">&#41;</span> <span class="br0">&#125;</span> filter <span class="br0">&#123;</span><span class="sy0">_</span>.<span class="me1">isDirectory</span><span class="br0">&#125;</span> find <span class="br0">&#123;</span> dir <span class="sy0">=&gt;</span>
  <span class="br0">&#40;</span><a href="http://scala-lang.org"><span class="kw1">for</span></a><span class="br0">&#40;</span>file <span class="sy0">&lt;</span>- dir.<span class="me1">list</span>.<span class="me1">map</span> <span class="br0">&#123;</span> n <span class="sy0">=&gt;</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> java.<span class="me1">io</span>.<span class="me1">File</span><span class="br0">&#40;</span>n<span class="br0">&#41;</span> <span class="br0">&#125;</span><span class="br0">&#41;</span>
       <a href="http://scala-lang.org"><span class="kw1">yield</span></a> file.<span class="me1">getName</span>.<span class="me1">endsWith</span><span class="br0">&#40;</span><span class="st0">&quot;jpg&quot;</span><span class="br0">&#41;</span>
  <span class="br0">&#41;</span> reduceLeft <span class="br0">&#40;</span><span class="sy0">_</span> || <span class="sy0">_</span><span class="br0">&#41;</span>
  <span class="br0">&#125;</span></pre></div></div>
<p>First the <em>map</em> call translates the initial String values in to something suitable for testing (<em>java.io.File</em> instances). Then any complicated test is cracked in to a series of one or more <em>filters</em>, with the final predicate applied with a <em>find</em>.</p>
<p>The final trick, which is really necessary to make this work, is to use a non-strict view of the original sequence, not the original sequence itself. If you map the original (strict) sequence, you end up mapping all elements before testing any of them. And if you&#8217;ve cracked your predicate in to intermediate filters, then each filter would also need to be applied to all members. But if you map a <em>view</em>, then each element in the view is mapped, filtered, and finally tested individually before moving on to the next.</p>
<p>So, say your looking for the first item in a 100,000-element sequence that solves some predicate function &#8212; you&#8217;re going to want to map and test the items individually. Making a view of a sequence is as easy as using the sequence&#8217;s <em>view</em> method.</p>
<div id="wpshdo_4" class="wp-synhighlighter-outer"><div id="wpshdt_4" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_4"></a><a id="wpshat_4" class="wp-synhighlighter-title" href="#codesyntax_4"  onClick="javascript:wpsh_toggleBlock(4)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_4" onClick="javascript:wpsh_code(4)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.blumenfeld-maso.com/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_4" onClick="javascript:wpsh_print(4)" title="Print code"><img border="0" style="border: 0 none" src="http://www.blumenfeld-maso.com/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.blumenfeld-maso.com/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.blumenfeld-maso.com/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_4" class="wp-synhighlighter-inner" style="display: block;"><pre class="scala" style="font-family:monospace;"><a href="http://scala-lang.org"><span class="kw1">val</span></a> fileNames<span class="sy0">:</span> Seq<span class="br0">&#91;</span>String<span class="br0">&#93;</span> <span class="sy0">=</span> ...
<a href="http://scala-lang.org"><span class="kw1">val</span></a> dirWithJPGs <span class="sy0">=</span> <span class="br0">&#40;</span>fileNames.<span class="me1">view</span><span class="br0">&#41;</span> map <span class="br0">&#123;</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> java.<span class="me1">io</span>.<span class="me1">File</span><span class="br0">&#40;</span><span class="sy0">_</span><span class="br0">&#41;</span> <span class="br0">&#125;</span> filter <span class="br0">&#123;</span><span class="sy0">_</span>.<span class="me1">isDirectory</span><span class="br0">&#125;</span> find <span class="br0">&#123;</span> dir <span class="sy0">=&gt;</span>
  <span class="br0">&#40;</span><a href="http://scala-lang.org"><span class="kw1">for</span></a><span class="br0">&#40;</span>file <span class="sy0">&lt;</span>- dir.<span class="me1">list</span>.<span class="me1">map</span> <span class="br0">&#123;</span> n <span class="sy0">=&gt;</span> <a href="http://scala-lang.org"><span class="kw1">new</span></a> java.<span class="me1">io</span>.<span class="me1">File</span><span class="br0">&#40;</span>n<span class="br0">&#41;</span> <span class="br0">&#125;</span><span class="br0">&#41;</span>
       <a href="http://scala-lang.org"><span class="kw1">yield</span></a> file.<span class="me1">getName</span>.<span class="me1">endsWith</span><span class="br0">&#40;</span><span class="st0">&quot;jpg&quot;</span><span class="br0">&#41;</span>
  <span class="br0">&#41;</span> reduceLeft <span class="br0">&#40;</span><span class="sy0">_</span> || <span class="sy0">_</span><span class="br0">&#41;</span>
  <span class="br0">&#125;</span></pre></div></div>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.blumenfeld-maso.com%2F2011%2F04%2Fscala-word-of-the-day-view-map-filter-find%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.blumenfeld-maso.com%2F2011%2F04%2Fscala-word-of-the-day-view-map-filter-find%2F&amp;source=bmaso&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blumenfeld-maso.com/2011/04/scala-word-of-the-day-view-map-filter-find/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Dunning-Kruger Effect</title>
		<link>http://www.blumenfeld-maso.com/2011/03/the-dunning-kruger-effect/</link>
		<comments>http://www.blumenfeld-maso.com/2011/03/the-dunning-kruger-effect/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 21:20:30 +0000</pubDate>
		<dc:creator>Brian Maso</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.blumenfeld-maso.com/?p=193</guid>
		<description><![CDATA[This one is making the rounds at the offices of a client of mine. Great material for snark. From Wikipedia: The Dunning–Kruger effect is a cognitive bias in which unskilled people make poor decisions and reach erroneous conclusions, but their incompetence denies them the metacognitive ability to appreciate their mistakes.[1] The unskilled therefore suffer from [...]]]></description>
			<content:encoded><![CDATA[<p>This one is making the rounds at the offices of a client of mine. Great material for snark. From <a href="http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect">Wikipedia</a>:</p>
<blockquote><p>The <strong>Dunning–Kruger effect</strong> is a <a href="http://en.wikipedia.org/wiki/Cognitive_bias">cognitive bias</a> in which unskilled people make poor decisions and reach erroneous conclusions, but their incompetence denies them the <a title="Metacognitive" href="http://en.wikipedia.org/wiki/Metacognitive">metacognitive</a> ability to appreciate their mistakes.<sup id="cite_ref-morris_0-0"><a href="http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect#cite_note-morris-0">[1]</a></sup> The unskilled therefore suffer from <a href="http://en.wikipedia.org/wiki/Illusory_superiority">illusory superiority</a>,  rating their ability as above average, much higher than it actually is,  while the highly skilled underrate their own abilities, suffering from  illusory inferiority. This leads to the situation in which less  competent people rate their own ability higher than more competent  people. It also explains why actual competence may weaken  self-confidence. Competent individuals falsely assume that others have  an equivalent understanding. As Kruger and Dunning (1999) conclude,  &#8220;Thus, the miscalibration of the incompetent stems from an error about  the self, whereas the miscalibration of the highly competent stems from  an error about others&#8221;</p></blockquote>
<p>I&#8217;m ruminating on how I&#8217;ve been on both sides of that effect before. Being considered competent in one sphere of life (programming), I&#8217;ve made both mistakes described above:</p>
<ol>
<li>Over-estimating my ability to reason and come to good conclusions about subjects I&#8217;m really not very studied in. I&#8217;m been very guilty of spouting off about politics, economics, all sorts of things I&#8217;m not qualified to have an opinion on.</li>
<li>Under-estimating what I have to offer. See how many posts I have in this blog? Not nearly as many as I should. I am prone to self-editing, assuming that if I find something cool or valuable in programming, it would already be really obvious to others, so much so as to make my post seem dumb.</li>
</ol>
<p>Now that I have a name for the effect that&#8217;s in play I&#8217;m going to try to try to do less of the former, and more of the latter!
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.blumenfeld-maso.com%2F2011%2F03%2Fthe-dunning-kruger-effect%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.blumenfeld-maso.com%2F2011%2F03%2Fthe-dunning-kruger-effect%2F&amp;source=bmaso&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blumenfeld-maso.com/2011/03/the-dunning-kruger-effect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Logic, Fallacy, and Dobie Gillis</title>
		<link>http://www.blumenfeld-maso.com/2010/03/logic-fallacy-and-dobie-gillis/</link>
		<comments>http://www.blumenfeld-maso.com/2010/03/logic-fallacy-and-dobie-gillis/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 04:11:45 +0000</pubDate>
		<dc:creator>Brian Maso</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.blumenfeld-maso.com/?p=155</guid>
		<description><![CDATA[Super-segue I&#8217;d like to take you on for no reason, other than to help you understand what its like to be me some times&#8230; Just read &#8220;Programming and fallacies&#8221; on Michael Galpin&#8217;s blog. Made me think of the very (very, very) old &#8220;Love is a Fallacy&#8221; humor writing by Dobie Gillis (book) author Max Shulman [...]]]></description>
			<content:encoded><![CDATA[<p>Super-segue I&#8217;d like to take you on for no reason, other than to help you understand what its like to be me some times&#8230;</p>
<p>Just read &#8220;<a href="http://fupeg.blogspot.com/2010/03/programming-and-fallacies.html">Programming and fallacies</a>&#8221; on Michael Galpin&#8217;s blog.</p>
<p>Made me think of the very (very, very) old &#8220;<a href="http://www.blumenfeld-maso.com/dobie-gillis-love-is-a-fallacy/">Love is a Fallacy</a>&#8221; humor writing by Dobie Gillis (book) author <a href="http://en.wikipedia.org/wiki/Max_Shulman">Max Shulman</a> (&#8211; please read that some time, its such a riot). And when I say &#8220;old&#8221; I mean the original story was old when the old black-and-white <a href="http://en.wikipedia.org/wiki/Dobie_Gillis">Dobie Gillis TV show</a> was on. In case you aren&#8217;t familiar, that was the show that launched the career of <a href="http://en.wikipedia.org/wiki/Gilligan%27s_Island">&#8220;Gilligan&#8217;s Island&#8221;</a>&#8216;s Gilligan star <a href="http://www.imdb.com/name/nm0001134/">Bob Denver</a> <em>before</em> Gilligan.</p>
<p>But my segue-adled mind doesn&#8217;t stop there, because Dobie Gillis is no doubt the best example of modern humor a logical mind can ever read. And who defined modern humor? No shit: <a href="http://en.wikipedia.org/wiki/Sigmund_Freud">Freud</a>. You probably didn&#8217;t know he wasn&#8217;t famous in his early career <strong><em>not</em></strong> for his <a href="http://en.wikipedia.org/wiki/Libido">mommy-mangled psycho-sexual</a> theories &#8212; his <a href="http://en.wikipedia.org/wiki/Humour_in_Freud">PhD thesis in fact was the seminal text on laughter and humor</a>.</p>
<p>That I know all those bizarrely ancient pop cultural references, and you don&#8217;t,  means that</p>
<ol>
<li>I am cooler than you;</li>
<li>I need more focused entertainment on Friday nights; and</li>
<li>you don&#8217;t need to worry about competing with me because my brain is constantly routed down these fruitless tracts.</li>
</ol>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.blumenfeld-maso.com%2F2010%2F03%2Flogic-fallacy-and-dobie-gillis%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.blumenfeld-maso.com%2F2010%2F03%2Flogic-fallacy-and-dobie-gillis%2F&amp;source=bmaso&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blumenfeld-maso.com/2010/03/logic-fallacy-and-dobie-gillis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Back by Popular Demand: Another Week of GWT 2.0 Training</title>
		<link>http://www.blumenfeld-maso.com/2010/01/back-by-popular-demand-another-week-of-gwt-2-0-training/</link>
		<comments>http://www.blumenfeld-maso.com/2010/01/back-by-popular-demand-another-week-of-gwt-2-0-training/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 13:57:09 +0000</pubDate>
		<dc:creator>Brian Maso</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.blumenfeld-maso.com/?p=108</guid>
		<description><![CDATA[Response to last week&#8217;s GWT 2.0 training was pretty enthusiastic! So much so, that we&#8217;re running another week of training: 2.2.2010 through 2.5.2010. If anyone is interested in joining us in Irvine, for all or just part of the time, please contact me (@bmaso on twitter, or use the contact form). We can offer some [...]]]></description>
			<content:encoded><![CDATA[<p>Response to <a href="http://www.blumenfeld-maso.com/2010/01/jan-25-2010-gwt-training-with-brian-maso/">last week&#8217;s GWT 2.0 training</a> was pretty enthusiastic! So much so, that we&#8217;re running another week of training: 2.2.2010 through 2.5.2010. If anyone is interested in joining us in Irvine, for all or just part of the time, please contact me (<a href="http://twitter.com/bmaso">@bmaso on twitter</a>, or use <a href="http://www.blumenfeld-maso.com/contact-us">the contact form</a>). We can offer some pretty good prices for the remaining last-minute seats!</p>
<p>In addition to normal GWT, here&#8217;s the super cool topics we&#8217;ll be covering:</p>
<ul>
<li><strong>Code splitting</strong> &#8212; dynamically download different parts of the GWT app for efficiency</li>
<li><strong>GWT integration with poplar toolkits</strong> (e.g., jQuery, ExtJS, etc.) through JSNI</li>
<li><strong>Code generators</strong> and <strong>resource generators</strong></li>
<li><strong>Mashups</strong> and <strong>cool service integrations</strong></li>
<li>Lots more!</li>
</ul>
<p>This course is especially good for J2EE developers who don&#8217;t feel completely (or even at all) comfortable in JavaScript or the browser environment &#8212; you will end your time with us with some amazing &#8220;<em>Browser Fu</em>&#8220;!
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.blumenfeld-maso.com%2F2010%2F01%2Fback-by-popular-demand-another-week-of-gwt-2-0-training%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.blumenfeld-maso.com%2F2010%2F01%2Fback-by-popular-demand-another-week-of-gwt-2-0-training%2F&amp;source=bmaso&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blumenfeld-maso.com/2010/01/back-by-popular-demand-another-week-of-gwt-2-0-training/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Odersky Paper a Must Read to Master Scala</title>
		<link>http://www.blumenfeld-maso.com/2009/12/odersky-paper-a-must-rad-to-master-scala/</link>
		<comments>http://www.blumenfeld-maso.com/2009/12/odersky-paper-a-must-rad-to-master-scala/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 15:51:45 +0000</pubDate>
		<dc:creator>Brian Maso</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.blumenfeld-maso.com/?p=39</guid>
		<description><![CDATA[Odersky&#8217;s Scalable Component Abstractions is an absolute must read for anyone planning on mastering Scala. The paper explains the purpose and use of three important Scala idioms you&#8217;d probably take a long time to figure out on your own: Abstract Type Members. Prior to reading the paper, I figured abstract type members are just another [...]]]></description>
			<content:encoded><![CDATA[<p>Odersky&#8217;s <a href="http://lamp.epfl.ch/~odersky/papers/ScalableComponent.pdf" target="_blank">Scalable Component Abstractions</a> is an absolute <em>must read</em> for anyone planning on mastering Scala. The paper explains the purpose and use of three important Scala idioms you&#8217;d probably take a long time to figure out on your own:</p>
<ol>
<li><strong>Abstract Type Members</strong>. Prior to reading the paper, I figured abstract type members are just another way of expressing type parameters &#8212; that is, generic type params in Java. Not so! Abstract type members turn out to be an incredibly important  way of promoting code re-use through subtype parameters.</li>
<li><strong>Traits</strong>. &#8220;Module mix-in components&#8221; is the term used in the paper, but in Scala this means <em>traits</em>. The paper explains how traits promote code re-use through much more flexible composition than Java&#8217;s interfaces+single base class.</li>
<li><strong>Explicit Selftypes</strong>. Not so mind expanding as abstract type members and traits, but definitely a concept that needs anchoring for someone coming from Java or similar OO languages.</li>
</ol>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.blumenfeld-maso.com%2F2009%2F12%2Fodersky-paper-a-must-rad-to-master-scala%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.blumenfeld-maso.com%2F2009%2F12%2Fodersky-paper-a-must-rad-to-master-scala%2F&amp;source=bmaso&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blumenfeld-maso.com/2009/12/odersky-paper-a-must-rad-to-master-scala/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

