<?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>Ambient Ideas' Denver Dev</title>
	<atom:link href="http://ambientideas.com/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://ambientideas.com/blog</link>
	<description>Matthew McCullough's insights on software development as co-founder of Ambient Ideas, LLC</description>
	<lastBuildDate>Wed, 27 Jan 2010 22:19:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>JavaZone 2009 Open Source Debugging Talk</title>
		<link>http://ambientideas.com/blog/index.php/2010/01/javazone-2009-open-source-debugging-talk/</link>
		<comments>http://ambientideas.com/blog/index.php/2010/01/javazone-2009-open-source-debugging-talk/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 22:19:47 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Presenting]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/?p=211</guid>
		<description><![CDATA[My Open Source Debugging talk that I gave at JavaZone, Oslo, Norway last September is online]]></description>
			<content:encoded><![CDATA[<h1>Open Source Debugging in Norway</h1>
<p>My Open Source Debugging talk that I gave at <a href="http://jz09.java.no/">JavaZone, Oslo, Norway</a> last September is <a href="http://tcs.java.no/tcs/?id=091FCD40-999F-42D4-AA88-7833550B4D10">online and can be watched in Flash format</a> or <a href="http://tcs.java.no/tcs/data/O125330950506-17409488fl.mp4">downloaded as an M4V file</a>.  If you were not able to catch this talk at either <a href="http://jz09.java.no/">this venue</a>, or any of the <a href="http://www.nofluffjuststuff.com/conference/speaker/matthew_mccullough">many NoFluffJustStuff.com stops</a> that I gave this talk at last year, give it a try and <a href="mailto:matthewm@ambientideas.com">let me know what you think of it</a>.<br />
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2010/01/javazone-2009-open-source-debugging-talk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://tcs.java.no/tcs/data/O125330950506-17409488fl.mp4" length="183606848" type="video/mp4" />
		</item>
		<item>
		<title>AppleScript to Re-Apply Finder Comments</title>
		<link>http://ambientideas.com/blog/index.php/2010/01/applescript-to-re-apply-finder-comments/</link>
		<comments>http://ambientideas.com/blog/index.php/2010/01/applescript-to-re-apply-finder-comments/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 16:55:29 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2010/01/applescript-to-re-apply-finder-comments/</guid>
		<description><![CDATA[...depending on the Mac-specific intelligence of your backup solution, or when copying files written by a 10.4 Mac, your Spotlight (Finder) Comments stored in the .DS_Store files might not survive the round trip.]]></description>
			<content:encoded><![CDATA[<h1>Finder Comments Lost</h1>
<p>When restoring from a backup, depending on the Mac-specific intelligence of your backup solution, or when copying files written by a 10.4 Mac, your Spotlight (Finder) Comments stored in the <a href="http://en.wikipedia.org/wiki/.DS_Store">.DS_Store files</a> might not survive the round trip.  You&#8217;ll first notice this by the fact that your comments field or column is completely empty for files you know you previously tagged or made comments on.</p>
<h2>Leopard, Snow Leopard Comment Storage</h2>
<p>Tiger and previous editions of Mac OSX store Spotlight comments in the .DS_Store file exclusively.  Leopard and Snow Leopard on the other hand, claim to maintain backwards compatibility by storing the <a href="http://ironicsoftware.com/community/comments.php?DiscussionID=344">Spotlight Comments in both</a> the .DS_Store and the new <a href="http://en.wikipedia.org/wiki/Extended_file_attributes">Extended File Attributes.</a>  I question this thinking though, because Mac OSX developer Steve Gehrman of the <a href="http://www.cocoatech.com/">awesome PathFinder team</a> says that Finder, while it <a href="http://news.softpedia.com/news/iRemove-DS-Store-Files-AppleScript-Eliminates-Tons-of-Fuss-124047.shtml">writes both formats</a>, still only reads back the .DS_Store ones.  It seems to me that Apple would have changed Finder to read from the newer Extended Attributes as soon as they started writing to those in duplicate.</p>
<blockquote><p>&#8220;On Mac OS X 10.4 Tiger, for example, .DS_Store files also contain the Spotlight comments of all the folder&#8217;s files, whereas Mac OS X 10.5 &#8220;Leopard&#8221; stores this information in Extended file attributes.&#8221;</p></blockquote>
<h2>Script Research</h2>
<p>Giving a tip of the hat to the similar-but-not-quite-what-I-wanted script that helped me get enough of the syntax working (using type <code>alias</code> instead of type <code>file</code> was tricky) get my own authored, I give you:</p>
<p>A <a href="http://www.macosxhints.com/article.php?story=20050614071122965">MacOSXHints article</a>, and the <a href="http://www.macosxhints.com/dlfiles/spotlight_comment_script.txt">corresponding code</a></p>
<p>    <script src="http://gist.github.com/285988.js?file=spotlight-flag-comments.scpt"></script></p>
<h2>The Solution</h2>
<p>To solve this extended attributes vs. .DS_Store discrepancy, we only need to read (from the extended attributes) and reapply (thereby recreating the .DS_Store) the same comment.  The solution is this AppleScript.  Just highlight the files needing the treatment in Finder, then execute this script from the AppleScript Editor.</p>
<p><script src="http://gist.github.com/285667.js?file=recomment.scpt"></script></p>
<p>The result is that Finder (which reads only the .DS_Store files) and PathFinder (which only reads the extended attributes) can both now see the Spotlight Comments.</p>
<h3>Extras</h3>
<p>If you would like your Mac to automatically clean up the .DS_Store files it writes out to flash sticks and network drives, <a href="http://zeroonetwenty.com/blueharvest/">check out BlueHarvest</a>, an interesting little utility app that fills this need.</p>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2010/01/applescript-to-re-apply-finder-comments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s the big deal about font choices in presentations?</title>
		<link>http://ambientideas.com/blog/index.php/2010/01/whats-the-big-deal-about-font-choices-in-presentations/</link>
		<comments>http://ambientideas.com/blog/index.php/2010/01/whats-the-big-deal-about-font-choices-in-presentations/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 04:15:27 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Presenting]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2010/01/whats-the-big-deal-about-font-choices-in-presentations/</guid>
		<description><![CDATA[<p>Fonts, fonts, fonts. What's this obsession? For those of us that share a passion for making presentation materials as comprehensible as possible for our students, sandwiched right between a great story and great delivery is a great font.</p>
]]></description>
			<content:encoded><![CDATA[<h1>Fonts and Presentations</h1>
<p>Fonts, fonts, fonts. What&#8217;s this obsession? For those of us that share a passion for making presentation materials as comprehensible as possible for our students, sandwiched right between a great story and great delivery is a great font.</p>
<h2>Reviewing the list</h2>
<p>Once you&#8217;ve installed Microsoft Office, iWork, or Open Office, you&#8217;ll find that you&#8217;ve been granted a few (or possibly many) extra fonts installed into your operating system. This is a temptation you should approach carefully, just as you would the edge of a cliff. It is truly a time and design precipice you can fall off of into the abyss.</p>
<p>As you gradually approach this list of fonts, if you obsess over design like I do, you&#8217;ll let out an &#8220;Ooooooo&#8221; as if mesmerized by the quantity of selections you could make. A tool would be perfect here. Let me grant your wish with <a href="http://www.integrity.com/homes/tomandkaren/FontDoc/">FontDoc</a> for the Mac and <a href="http://www.nirsoft.net/utils/windows_fonts_viewer.html">WinFontsView</a> for Windows.</p>
<h2>Title versus Body</h2>
<p>Now, you have a tool to whittle that list of massive fonts down to size. Let me give you two facets that will chisel it down even further.</p>
<p>First, use a maximum of two Font Faces per presentation. I&#8217;ll allow for three if you make judicious use of a handwriting font.</p>
<p>One font should be interesting and story-relevant. It should mesh well with your photography and choice of color in the slides. I&#8217;d suggest you primarily use it for titles, strong statements and short phrases. It adds spice to your presentation. Feel the freedom to have fun with your title fonts. I&#8217;ve recently styled a presentation on Hadoop with an African theme. I used the <a href="http://www.fontspace.com/david-rakowski/tribeca">Tribeca</a> font in the title and custom rhinoceroses for the bullet points (yes, I used <em>some</em> bullets).</p>
<p>The second (primary) font should be highly legible. I can&#8217;t stress that enough. For the portions of your slide deck that people will need to read (and quickly, so they can return mental focus to you), <em>readability</em> is the critical point. I always suggest sticking with a very legible <a href="http://www.myinkblog.com/2009/04/19/10-awesome-free-sans-serif-fonts/">Sans Serif</a> font, as does Garr Reynolds of <a href="http://www.presentationzen.com/">Presentation Zen Design</a>.</p>
<p>I don&#8217;t always obey this rule of Sans Serif in the body, sometimes to my own peril. Fortunately, local audiences in Denver are kind, and remind me that I need to change it back.</p>
<p><em>Hello Verdana. Really, I didn&#8217;t mean to cheat on you! It was just that Aquiline showed up looking so stylish and I just couldn&#8217;t help it.</em></p>
<h2>The finalists</h2>
<p>The short list of Sans Serif fonts that I printed and put across the room is:</p>
<ul>
<li>Agenda</li>
<li>Arial</li>
<li>Bitstream</li>
<li>Calibri</li>
<li>Century Gothic</li>
<li>Franklin Gothic</li>
<li>Futura</li>
<li>Geneva</li>
<li>Gill Sans</li>
<li>Helvetica</li>
<li>Optima</li>
<li>Heiti</li>
<li>Trebuchet</li>
<li>Verdana</li>
</ul>
<p>I&#8217;d suggest you do the same. Also put them up on a projector if you have access to one. Do white font on black. Do black font on white. Notice the affect each font&#8217;s nuances have on legibility. Throw up some ranking numbers next to each. That&#8217;s precisely what I did. And I asked a few folks to give me their rankings too.</p>
<h2>The winner</h2>
<p><img src="http://upload.wikimedia.org/wikipedia/en/d/d4/Helvetica-film.JPG" width="339" height="500" alt="Helvetica, the Movie" style="float:right; border:1px #000000 solid;" /><br />
The variant that I (and my scientifically font-polled friends) love the most, is Helvetica Neue. The beautiful part is that it comes preinstalled on many systems these days, but can also be <a href="http://www.linotype.com/1266/neuehelvetica-family.html">purchased online</a> if you are on a OS or office suite that doesn&#8217;t include it.</p>
<p>In the life of a font, you know you&#8217;ve arrived when a <a href="http://en.wikipedia.org/wiki/Helvetica_%28film%29">movie is made about you</a>. Yes, a biographical movie about <a href="http://en.wikipedia.org/wiki/Helvetica">Helvetica</a>, the font named after Switzerland&#8217;s classical name.</p>
<p>Lest you think this is a factor of Steve Jobs and his Apple design shop, I&#8217;ll let you in on the secret that this predates the personal computer by several decades. Max Miedinger was the designer behind this font all the way back in 1958!</p>
<h2>Conclusion</h2>
<p>Give any of these Sans Serif fonts a try (but lean towards Helvetica!) in your next presentation and be sure to gather design <a href="http://speakerrate.com/">feedback from your audience</a>. I think you&#8217;ll be pleasantly surprised!</p>
<p><em>Shameless plug: Keep an eye out in 2010 for the <a href="http://PresentationPatterns.com">Presentation Patterns</a> book from Neal Ford, Matthew McCullough and Nate Schutta for a complete recipe book with easily digestible presentation improvement hors d&#8217;oeuvres like this one.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2010/01/whats-the-big-deal-about-font-choices-in-presentations/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Denver JUG Hadoop and Encryption Presentations</title>
		<link>http://ambientideas.com/blog/index.php/2010/01/denver-jug-hadoop-and-encryption-presentations/</link>
		<comments>http://ambientideas.com/blog/index.php/2010/01/denver-jug-hadoop-and-encryption-presentations/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 18:38:55 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[DJUG]]></category>
		<category><![CDATA[Encryption]]></category>
		<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[Presenting]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2010/01/denver-jug-hadoop-and-encryption-presentations/</guid>
		<description><![CDATA[<p>I had the pleasure of hanging out with about 60 of my local friends at the Denver Java Users Group on Wednesday night and talking about Encryption on the JVM as well as Hadoop.</p>
]]></description>
			<content:encoded><![CDATA[<h1>Denver JUG January Meeting</h1>
<p>I had the pleasure of hanging out with about 60 of my local friends at the <a href="http://www.denverjug.org" target="_blank">Denver Java Users Group (DJUG to the locals)</a> on Wednesday night and talking about Encryption on the JVM as well as Hadoop. I had the good fortune of having <a href="http://Returnpath.net" target="_blank">Andy Sautins of Returnpath.net</a>, who&#8217;s an active user of Hadoop, field a few of the questions.  I really appreciate the time a few of the folks spent giving me <a href="http://speakerrate.com/matthew.mccullough">feedback on Speakerrate.com</a>.  For your future reference, below are the slides and sample source.  Feedback and suggestions are always welcome at <a href="mailto:matthewm@ambientideas.com">matthewm@ambientideas.com</a></p>
<h2>Encryption Bootcamp on the JVM</h2>
<h3>Abstract</h3>
<p>Does your application transmit customer information? Are there fields of sensitive customer data stored in your DB? Can your application be used on insecure networks? If so, you need a working knowledge of encryption and how to leverage Open Source APIs and libraries to make securing your data as easy as possible. Encryption is quickly becoming a developer’s new frontier of responsibility in many data-centric applications.</p>
<p>In today’s data-sensitive and news-sensationalizing world, don’t become the next headline by an inadvertent release of private customer or company data. Secure your persisted, transmitted and in-memory data and learn the terminology you’ll need to navigate the ecosystem of symmetric and public/private key encryption.</p>
<ul>
<li><a href="http://github.com/matthewmccullough/encryption-jvm-bootcamp">Source code samples on GitHub</a></li>
<li><a href="http://www.slideshare.net/matthewmccullough/encryption-boot-camp-on-the-jvm">Slides</a></br></br>
<div style="width:425px;text-align:left" id="__ss_2925322"><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=encryptionbootcampv0-3-slidesandhandouts-100115123425-phpapp02&#038;stripped_title=encryption-boot-camp-on-the-jvm" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=encryptionbootcampv0-3-slidesandhandouts-100115123425-phpapp02&#038;stripped_title=encryption-boot-camp-on-the-jvm" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">documents</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/matthewmccullough">Matthew McCullough</a>.</div>
</div>
</li>
</ul>
<h2>Intro to Hadoop</h2>
<h3>Abstract</h3>
<p>Moore’s law has finally hit the wall and CPU speeds have actually decreased in the last few years. The industry is reacting with hardware with an ever-growing number of cores and software that can leverage “grids” of distributed, often commodity, computing resources. But how is a traditional Java developer supposed to easily take advantage of this revolution? The answer is the Apache Hadoop family of projects. Hadoop is a suite of Open Source APIs at the forefront of this grid computing revolution and is considered the absolute gold standard for the divide-and-conquer model of distributed problem crunching. The well-travelled Apache Hadoop framework is currently being leveraged in production by prominent names such as Yahoo, IBM, Amazon, Adobe, AOL, Facebook and Hulu just to name a few.</p>
<p>In this session, you’ll start by learning the vocabulary unique to the distributed computing space. Next, we’ll discover how to shape a problem and processing to fit the Hadoop MapReduce framework. We’ll then examine the incredible auto-replicating, redundant and self-healing HDFS filesystem. Finally, we’ll fire up several Hadoop nodes and watch our calculation process get devoured live by our Hadoop grid. At this talk’s conclusion, you’ll feel equipped to take on any massive data set and processing your employer can throw at you with absolute ease.
</p>
<ul>
<li><a href="http://github.com/matthewmccullough/hadoop-intro">Source code samples on GitHub</a></li>
<li><a href="http://www.slideshare.net/matthewmccullough/an-intro-to-hadoop">Slides</a></br></br>
<div style="width:425px;text-align:left" id="__ss_2925041"><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=hadoopv0-2-slideshandouts-100115114402-phpapp01&#038;stripped_title=an-intro-to-hadoop" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=hadoopv0-2-slideshandouts-100115114402-phpapp01&#038;stripped_title=an-intro-to-hadoop" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">documents</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/matthewmccullough">Matthew McCullough</a>.</div>
</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2010/01/denver-jug-hadoop-and-encryption-presentations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Presenting at the Great Indian Developers Summit</title>
		<link>http://ambientideas.com/blog/index.php/2009/12/presenting-at-the-great-indian-developers-summit/</link>
		<comments>http://ambientideas.com/blog/index.php/2009/12/presenting-at-the-great-indian-developers-summit/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 19:15:32 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Presenting]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2009/12/presenting-at-the-great-indian-developers-summit/</guid>
		<description><![CDATA[<p>I'm very excited to announce I've been selected to present at the Great Indian Developers Summit in Bangalore, India in April. I just found out that my NFJS colleagues, Scott Davis and Venkat Subramaniam will be joining me there as well. It will be great to have familiar faces at this venue and to present to such a distinguished audience. <img src="http://ambientideas.com/blog/wp-content/uploads/2009/12/200912091207.jpg" width="326" height="95" alt="200912091207.jpg" /></p>
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m very excited to announce I&#8217;ve been selected to present at the <a href="http://www.devmarch.com/developersummit/speakers.html" target="_blank">Great Indian Developers Summit</a> in Bangalore, India in April. I just found out that my <a href="http://nofluffjuststuff.com" target="_blank">NFJS</a> colleagues, <a href="http://www.davisworld.org/" target="_blank">Scott Davis</a> and <a href="http://www.agiledeveloper.com/" target="_blank">Venkat Subramaniam</a> will be joining me there as well. It will be great to have familiar faces at this venue and to present to such a distinguished audience.</p>
<p>
<a href="http://www.devmarch.com/developersummit/speakers.html" target="_blank"><img src="http://ambientideas.com/blog/wp-content/uploads/2009/12/200912091207.jpg" width="326" height="95" alt="200912091207.jpg" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2009/12/presenting-at-the-great-indian-developers-summit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My latest DZone RefCard on the Google App Engine has been released</title>
		<link>http://ambientideas.com/blog/index.php/2009/12/my-latest-dzone-refcard-on-the-google-app-engine-has-been-released/</link>
		<comments>http://ambientideas.com/blog/index.php/2009/12/my-latest-dzone-refcard-on-the-google-app-engine-has-been-released/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 04:39:38 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[DZone]]></category>
		<category><![CDATA[GoogleAppEngine]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[OpenSource]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2009/12/my-latest-dzone-refcard-on-the-google-app-engine-has-been-released/</guid>
		<description><![CDATA[<p>I'm excited to announce that my latest RefCard for DZone has been released. In a Q&#38;A session with Lyndsey Clevesy at DZone , I discuss the card's focus on helping developers get started with the Google App Engine for Java . The RefCard is intended to be a jumping off point and provides information about and links to the frameworks that now support GAE as well as external resources to help you dive deep if this new arena of cloud computing .</p>
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m excited to announce that my <a href="http://refcardz.dzone.com/refcardz/google-app-engine-java" target="_blank">latest RefCard for DZone</a> has been released. In a <a href="http://java.dzone.com/articles/google-app-engine-java-matthew-mccullough" target="_blank">Q&amp;A session with Lyndsey Clevesy</a>, I discuss the card&#8217;s focus on helping developers get started with the <a href="http://appengine.google.com" target="_blank">Google App Engine for Java</a>.</p>
<p>The RefCard is intended to be a jumping off point and provides information about and links to the <a href="http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine" target="_blank">frameworks that now support GAE</a> as well as external resources to help you dive deep if this new arena of <a href="http://en.wikipedia.org/wiki/Cloud_computing" target="_blank">cloud computing</a>. Grab a copy and <a href="mailto:matthewm@ambientideas.com" target="_blank">send me feedback</a>.<a href="http://refcardz.dzone.com/refcardz/google-app-engine-java" target="_blank"><img src="http://farm3.static.flickr.com/2526/4171139150_997615e911_o_d.png" style="float:left;" width="300" height="250" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2009/12/my-latest-dzone-refcard-on-the-google-app-engine-has-been-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Recorded Presentations &#8211; The &#8220;Lipsync&#8221; Pattern</title>
		<link>http://ambientideas.com/blog/index.php/2009/12/recorded-presentations-the-lipsync-pattern/</link>
		<comments>http://ambientideas.com/blog/index.php/2009/12/recorded-presentations-the-lipsync-pattern/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 21:56:18 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[NFJS]]></category>
		<category><![CDATA[Presenting]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2009/12/recorded-presentations-the-lipsync-pattern/</guid>
		<description><![CDATA[<p>"for a certain set of presentation demos that contain around 5 or more interwoven components -- not JAR dependencies mind you -- keeping this operational for the course of a year of presenting was more work than building it in the first place and highly crash prone."</p>]]></description>
			<content:encoded><![CDATA[<h2>Presentation Recording, The Origins</h2>
<p>This is a tidbit of insight about my radically revised techniques for assembling complex compelling presentations this year. I&#8217;m certain it will create a widely varied set of comments and feedback.</p>
<p>Earlier this year, <a href="http://www.nealford.com" target="_blank">Neal Ford</a>, <a href="http://www.ntschutta.com/jat/" target="_blank">Nate Schutta</a> and I were driving from the Des Moines <a href="http://www.nofluffjuststuff.com" target="_blank">No Fluff Just Stuff</a> show in the pouring rain. Pouring hard enough to stop a dashboard GPS device from working. Hard enough to stop all outbound flights from <a href="http://www.dsmairport.com/" target="_blank">the airport</a>. Hard enough to cause us to lightly hydroplane. In short, a normal <a href="http://img94.yfrog.com/i/oq5.jpg/" target="_blank">NFJS weekend</a>.</p>
<p>This fury of nature would not deter us from our technical discussions and the subject of presentations with <b>large quantities of moving parts</b> came up. I said that &#8220;for a certain set of presentation demos that contain around 5 or more interwoven components &#8212; not JAR dependencies mind you &#8212; keeping this operational for the course of a year of presenting was more work than building it in the first place and highly crash prone.&#8221; We debated aggressively, but Neal interjected at one point and said &#8220;You should just try it.&#8221; And thus, I did.</p>
<p>Neal, Nate and I have a project that we&#8217;ll be able to tell you more about soon. Related to this project, we&#8217;re attempting to give names to these presentation patterns and anti-patterns. For example, Neal dubbed the above discussion&#8217;s output the &#8220;<i>Lipsync Pattern.</i>&#8220;</p>
<h2>Recording Tools</h2>
<p>In terms of tooling, I&#8217;ve become very attached to <a href="http://www.telestream.net/screen-flow/" target="_blank">Screenflow 2.0</a>. I previously used <a href="http://www.shinywhitebox.com/ishowuhd/main.html" target="_blank">iShowU HD</a>, but its capabilities are now far exceeded by Screenflow in terms of seamlessly stitching together multiple pieces of footage in a meaningful way.</p>
<h2>Feedback</h2>
<p>Feedback from this technique for my <a href="http://github.com/matthewmccullough/opensourcedebugging" target="_blank">Open Source Debugging</a> talks have been overwhelmingly positive. Some examples are:</p>
<p><i>&#8220;Thanks for giving the great talk on open source debugging tools last night at BJUG. Specifically the part where you &#8220;played through&#8221; the typing/console. It sort of reminded me of <a href="http://prezi.com/" target="_blank">prezi.com</a>, with the way you were able to zoom into sections of slides, seemingly capture keyboard input, etc. Loved it.&#8221;</i></p>
<p>and another really captures the essence of why I feel this is a meaningful way of teaching:</p>
<p><em>&#8220;I liked that you used a recorded version vs. live coding. I felt like you were able to explain things better than other presenters I&#8217;ve seen who try and field questions while coding live. Also the spotlighting and highlighting really helped the flow.&#8221;</em></p>
<p></p>
<h2>Applying this Technique</h2>
<p><i>When using this approach, I&#8217;ve found, through the feedback of friends like Scott Davis, that it&#8217;s best to exaggerate the fact that you are not live coding. Joke about it. And lastly, make it a positive trade by discussing what&#8217;s happening in the playback in a dialogue with the audience.</i></p>
<h2>Summary</h2>
<p>
I&#8217;m becoming so jaded that I (internal voice, not external) am having a hard time watching some live coding speakers now. It&#8217;s often swordplay showmanship on the level of Errol Flynn. It has nothing to do with teaching. And it usually bombs, at least in a minor way, somewhere, and we spend 2 minutes watching the speaker &#8220;clean it up.&#8221;
</p>
<p>
 I hear that there&#8217;s going to be a <a href="http://presentationpatterns.com/">&#8220;Presentation Patterns and Anti-Patterns&#8221;</a> book with Neal&#8217;s name on it. Based on my positive experience, I can only say, &#8220;the sooner the better Neal.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2009/12/recorded-presentations-the-lipsync-pattern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JPS and VisualVM on Windows</title>
		<link>http://ambientideas.com/blog/index.php/2009/10/jps-and-visualvm-on-windows/</link>
		<comments>http://ambientideas.com/blog/index.php/2009/10/jps-and-visualvm-on-windows/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 07:03:29 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2009/10/jps-and-visualvm-on-windows/</guid>
		<description><![CDATA[ At several stops on the  NFJS tour , I've been asked about  some of the minor issues in running JPS  and VisualVM on the Windows platform.   The primary problem is that the processes in JPS and VisualVM are listed as:   &#60;Unknown Application&#62; (pid ###)    I have been successful in working around this  by renaming the hsperfdata temp directory as noted in a  separate thread on the Sun forums . ]]></description>
			<content:encoded><![CDATA[<p>At several stops on the <a href="http://nofluffjuststuff.com" target="_blank">NFJS tour</a>, I&#8217;ve been asked about <a href="http://markmail.org/message/bfacrkap4kqjn265" target="_blank">some of the minor issues in running JPS</a> and VisualVM on the Windows platform. The primary problem is that the processes in JPS and VisualVM are listed as:</p>
<p>&lt;Unknown Application&gt; (pid ###)</p>
<p><a href="https://visualvm.dev.java.net/troubleshooting.html" target="_blank">I have been successful in working around this</a> by renaming the hsperfdata temp directory as noted in a <a href="http://forums.sun.com/thread.jspa?threadID=5133218" target="_blank">separate thread on the Sun forums</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2009/10/jps-and-visualvm-on-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Speaking at TSS Europe</title>
		<link>http://ambientideas.com/blog/index.php/2009/10/speaking-at-tss-europe/</link>
		<comments>http://ambientideas.com/blog/index.php/2009/10/speaking-at-tss-europe/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 06:58:29 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Presenting]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2009/10/speaking-at-tss-europe/</guid>
		<description><![CDATA[<p>I'm  counting down right along with the TSS staff  until October 27th where I'll have the great opportunity to share my  OSS Debugging talk  with the developers gathered in Prague, Czech Republic.</p>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m <a href="http://www.theserverside.com/news/thread.tss?thread_id=58118" target="_blank">counting down right along with the TSS staff</a> until October 27th where I&#8217;ll have the great opportunity to share my <a href="http://www.ambientideas.com/engineering/engineering-presentation.html" target="_blank">OSS Debugging talk</a> with the developers gathered in Prague, Czech Republic. My Denver acquaintance, <a href="http://augusttechgroup.com" target="_blank">Tim Berglund</a> will also be coming along to share the right way to be <a href="http://javasymposium.techtarget.com/html/tools_tech.html" target="_blank">Agile in your Database with Liquibase</a>. <a href="http://javasymposium.techtarget.com/" target="_blank">Join us for two days</a> of development insights, tools, techniques and one on one time with the speakers.</p>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2009/10/speaking-at-tss-europe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Encrypted SCM Passwords in Maven</title>
		<link>http://ambientideas.com/blog/index.php/2009/08/encrypted-scm-passwords-in-maven/</link>
		<comments>http://ambientideas.com/blog/index.php/2009/08/encrypted-scm-passwords-in-maven/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 15:54:04 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2009/08/encrypted-scm-passwords-in-maven/</guid>
		<description><![CDATA[<p>A little late night hacking and I was able to get encrypted passwords to work in the Maven SCM plugin with Maven 2.2 based on the prodding of Kurt Tometich , an NFJS attendee, and his JIRA bug# SCM-495 . ... The Maven Mojo Developer Cookbook did offer a bit of insight (though syntactically off a bit on the container.getLookupRealm() ) on how to get a handle to the container and look up the security provider , DefaultSecDispatcher.java. [java] SecDispatcher sd = null; try { sd = (SecDispatcher)container.lookup( SecDispatcher.... The only interesting finding was how, instead of putting the decryption on the accessor (getter) of password from the settings data structure, it is put in each place it is attempted to be used (e.g. the Wagon "dispatcher", and now the SCM "dispatcher").</p>
]]></description>
			<content:encoded><![CDATA[<p>A little late night hacking and I was able to get encrypted passwords to work in the Maven SCM plugin with <a href="http://maven.apache.org/" target="_blank">Maven 2.2</a> based on the <a href="http://www.nabble.com/SCM-plugin-password-encryption-td24967285.html" target="_blank">prodding of Kurt Tometich</a>, an NFJS attendee, and <a href="http://jira.codehaus.org/browse/SCM-495" target="_blank">his JIRA bug# SCM-495</a>. Previously, this <a href="http://maven.apache.org/guides/mini/guide-encryption.html" target="_blank">encryption feature</a> only worked for Wagon providers (the connectors for uploading artifacts), not for SCM providers, contrary to some blog comments.</p>
<p>It was quite the effort. After a few minutes, I found the code in <a href="http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?revision=798706" target="_blank">DefaultMaven.java</a> that performed the decryption. Now, I thought, &#8220;just implement a similar call in <a href="http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java?revision=731240&amp;pathrev=731240jo.java?revision=731240&amp;pathrev=731240" target="_blank">AbstractScmMojo.java</a> right?&#8221; I harbor a bit of angst for the fact that the JIRA isn&#8217;t Fisheye-connected to the source code repository, so finding the files changed for a given defect is much harder than it should be.</p>
<p>The <a href="http://docs.codehaus.org/display/MAVENUSER/Mojo+Developer+Cookbook" target="_blank">Maven Mojo Developer Cookbook</a> did offer a bit of insight (though syntactically off a bit on the <code>container.getLookupRealm()</code>) on how to get a handle to the container and look up the <a href="http://svn.sonatype.org/spice/trunk/plexus-sec-dispatcher/src/main/java/org/sonatype/plexus/components/sec/dispatcher/DefaultSecDispatcher.java" target="_blank">security provider</a>, DefaultSecDispatcher.java.</p>
<p>
<pre class="brush: java;">
SecDispatcher sd = null;

try {
  sd = (SecDispatcher)container.lookup( SecDispatcher.ROLE, &amp;amp;amp;quot;maven&amp;amp;amp;quot; );
}
</pre>
</p>
<p>There was even the fabled &#8220;java.lang.ClassCastException: org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatcher cannot be cast to org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatcher&#8221; at one point. Oh nuts. Not the classloader scoping issue, please&#8230;</p>
<p>The trick on the classloader is that the <a href="http://svn.sonatype.org/spice/trunk/plexus-sec-dispatcher/src/main/java/org/sonatype/plexus/components/sec/dispatcher/DefaultSecDispatcher.java" target="_blank">DefaultSecDispatcher</a> class is available via a dependency to plexus-sec-dispatcher, but also included (repackaged) in the Maven core distribution maven-2.2.0-uber.jar. So the SCM provider project&#8217;s dependency on <a href="http://repo1.maven.org/maven2/org/sonatype/plexus/plexus-sec-dispatcher/" target="_blank">plexus-sec-dispatcher</a> has to be scoped as &lt;provided&gt; for compilation of the <a href="http://maven.apache.org/scm/plugins/index.html" target="_blank">maven-scm-plugin</a>.</p>
<p>Lots of learning about the Maven code base occurred. The only interesting finding was how, instead of putting the decryption on the accessor (getter) of password from the settings data structure, it is put in each place it is attempted to be used (e.g. the Wagon &#8220;dispatcher&#8221;, and now the SCM &#8220;dispatcher&#8221;). I&#8217;ll bring up a refactoring of that with the Maven IRC folks&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2009/08/encrypted-scm-passwords-in-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
