<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>nerdplusart.com</title>
	
	<link>http://blog.nerdplusart.com</link>
	<description>inspiration for xaml nerds</description>
	<pubDate>Mon, 10 Nov 2008 08:55:39 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/nerdplusart" type="application/rss+xml" /><item>
		<title>Shoutouts</title>
		<link>http://feeds.feedburner.com/~r/nerdplusart/~3/448200372/shoutouts</link>
		<comments>http://blog.nerdplusart.com/archives/shoutouts#comments</comments>
		<pubDate>Mon, 10 Nov 2008 08:53:05 +0000</pubDate>
		<dc:creator>Robby Ingebretsen</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.nerdplusart.com/archives/shoutouts</guid>
		<description><![CDATA[Before I take off, a couple of shoutouts that I’ve meaning to extend (does one extend a shout out?):
Barack Obama Headlines in Deep Zoom This is not only a fun and great use of Deep Zoom, but it’s also a remarkable way to step back and take in the massive impact of the image of [...]]]></description>
			<content:encoded><![CDATA[<p>Before I take off, a couple of shoutouts that I’ve meaning to extend (does one extend a shout out?):</p>
<p><a href="http://bigpicture.vertigo.com/obama/">Barack Obama Headlines in Deep Zoom</a> This is not only a fun and great use of Deep Zoom, but it’s also a remarkable way to step back and take in the massive impact of the image of a black president.&#160; Regardless of politics, I haven’t met anyone who isn’t touched by that.&#160; Great idea Vertigo.</p>
<p><a href="http://identitymine.com/">Site update and stunning video from IdentityMine</a> IdentityMine just updated their site and with it, a really beautiful video that highlights some of the company’s many strengths (and makes Chad look very serious).&#160; I’ll admit it: the video made me miss working there.&#160; Nicely done IM.</p>
<p><a href="http://www.nikhilk.net/Silverlight-Effects-In-Depth.aspx">Silveright.FX</a> This is a very nicely designed framework for creating attached behaviors in Silverlight.&#160; As far as I know, attached behavior are more of a side effect of attached properties than a goal, but it’s the thing to watch in our XAML UI world for the next few months.&#160; At first glance, you can miss how handy this can be, but think of it in terms of workflow and code reuse.&#160; Great job Nikhil.</p>
<img src="http://feeds.feedburner.com/~r/nerdplusart/~4/448200372" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.nerdplusart.com/archives/shoutouts/feed</wfw:commentRss>
		<feedburner:origLink>http://blog.nerdplusart.com/archives/shoutouts</feedburner:origLink></item>
		<item>
		<title>Ola Tropicalia! (Going to Brazil)</title>
		<link>http://feeds.feedburner.com/~r/nerdplusart/~3/448185845/ola-tropicalia-going-to-brazil</link>
		<comments>http://blog.nerdplusart.com/archives/ola-tropicalia-going-to-brazil#comments</comments>
		<pubDate>Mon, 10 Nov 2008 08:29:36 +0000</pubDate>
		<dc:creator>Robby Ingebretsen</dc:creator>
		
		<category><![CDATA[Life]]></category>

		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://blog.nerdplusart.com/?p=417</guid>
		<description><![CDATA[ 
I&#8217;m headed to Brazil tomorrow. I can&#8217;t wait. It&#8217;s no secret that Brazil is my favorite place on the earth, a superlative I’m not afraid of backing up.&#160; So, if you&#8217;re in Rio next week, let me know. I&#8217;d love to grab a suco with you somewhere and conversar um pouquinho sobre o estado [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.nerdplusart.com/wp-content/uploads/2008/11/image1.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="412" alt="image" src="http://blog.nerdplusart.com/wp-content/uploads/2008/11/image-thumb1.png" width="550" border="0" /></a> </p>
<p>I&#8217;m headed to Brazil tomorrow. I can&#8217;t wait. It&#8217;s no secret that Brazil is my favorite place on the earth, a superlative I’m not afraid of backing up.&#160; So, if you&#8217;re in Rio next week, let me know. I&#8217;d love to grab a suco with you somewhere and conversar um pouquinho sobre o estado das coisas tecnologicas. Deixe me saber!</p>
<p>In the meantime, I&#8217;ll leave with you some <a href="http://en.wikipedia.org/wiki/Caetano_Veloso">Caetano Veloso</a>, which is about as close as you can get to the awesomeness of Brazil without actually being there. These songs are both from his album Tropicalia, a pioneering record and one of the first to define the Tropicalia genre of Brazilian music (which, admittedly, has its hits and misses but know this: <a href="http://en.wikipedia.org/wiki/Tropicalismo">David Byrne approves and apparently so does Kurt Cobain</a>). Incidentally, the title of the second song, Superbacana, means &quot;Super Awesome&quot; so there you go.</p>
<p>Caetano Veloso: Eles</p>
<p>[see post for audio]</p>
<p>Caetano Veloso: Superbacana</p>
<p>[see post for audio]</p>
<img src="http://feeds.feedburner.com/~r/nerdplusart/~4/448185845" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.nerdplusart.com/archives/ola-tropicalia-going-to-brazil/feed</wfw:commentRss>
		<feedburner:origLink>http://blog.nerdplusart.com/archives/ola-tropicalia-going-to-brazil</feedburner:origLink></item>
		<item>
		<title>ToolBox Panels</title>
		<link>http://feeds.feedburner.com/~r/nerdplusart/~3/448149095/toolbox-panels</link>
		<comments>http://blog.nerdplusart.com/archives/toolbox-panels#comments</comments>
		<pubDate>Mon, 10 Nov 2008 08:00:09 +0000</pubDate>
		<dc:creator>Robby Ingebretsen</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.nerdplusart.com/archives/toolbox-panels</guid>
		<description><![CDATA[Lately I’ve been making a point of being a little more organized about how I track reusable code.&#160; When I’m working with a client and come across something that is worth keeping or sharing I’ll usually ask if I can do it on my own time so I can keep or share it.&#160; So far [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I’ve been making a point of being a little more organized about how I track reusable code.&#160; When I’m working with a client and come across something that is worth keeping or sharing I’ll usually ask if I can do it on my own time so I can keep or share it.&#160; So far everyone’s been very amenable to that idea.&#160; I think it’s a win-win: free code for everyone (future me, you, current clients and future clients).</p>
<p>So here are the first fruits of that, a few “to share” Panels (for WPF and Silverlight) that I’ve been meaning to blog about for a while.&#160; They’re pretty simple, but have proven to be a really handy part of my arsenal.</p>
<h3>ColumnWrapPanel (WPF or Silverlight)</h3>
<p><a href="http://labs.nerdplusart.com/toolboxpanels/ColumnWrapPanel.cs">Download it here</a>. This is the one I’m most excited about.&#160; It’s a smarter version of a WrapPanel that tries to enforce a little more order on how it arranges its items.&#160; It does this by maintaining a sense of columns and row height as it places the items and then snaps the items to those columns and rows.&#160; Its also smart enough to place items into “empty” spaces that get created by extra tall or extra short items in the panel.&#160; Think of it as WrapPanel without the jaggies.</p>
<p>Here’s some XAML:</p>
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">c:ColumnWrapPanel</span> <span class="attr">MinColumnWidth</span><span class="kwrd">=&quot;200&quot;</span> <span class="attr">RowHeightIncrement</span><span class="kwrd">=&quot;50&quot;</span><span class="kwrd">&gt;</span>
  <span class="kwrd">&lt;</span><span class="html">Rectangle</span> <span class="attr">c:ColumnWrapPanel</span>.<span class="attr">ColumnSpan</span><span class="kwrd">=&quot;3&quot;</span> <span class="attr">Height</span><span class="kwrd">=&quot;100&quot;</span> <span class="attr">Fill</span><span class="kwrd">=&quot;YellowGreen&quot;</span> <span class="kwrd">/&gt;</span>
  <span class="kwrd">&lt;</span><span class="html">Rectangle</span> <span class="attr">c:ColumnWrapPanel</span>.<span class="attr">ColumnSpan</span><span class="kwrd">=&quot;2&quot;</span> <span class="attr">Height</span><span class="kwrd">=&quot;250&quot;</span> <span class="attr">Fill</span><span class="kwrd">=&quot;Orange&quot;</span> <span class="kwrd">/&gt;</span>
  <span class="kwrd">&lt;</span><span class="html">Rectangle</span> <span class="attr">c:ColumnWrapPanel</span>.<span class="attr">ColumnSpan</span><span class="kwrd">=&quot;1&quot;</span> <span class="attr">Height</span><span class="kwrd">=&quot;50&quot;</span> <span class="attr">Fill</span><span class="kwrd">=&quot;LightBlue&quot;</span> <span class="kwrd">/&gt;</span>
  <span class="kwrd">&lt;</span><span class="html">Rectangle</span> <span class="attr">c:ColumnWrapPanel</span>.<span class="attr">ColumnSpan</span><span class="kwrd">=&quot;1&quot;</span> <span class="attr">Height</span><span class="kwrd">=&quot;50&quot;</span> <span class="attr">Fill</span><span class="kwrd">=&quot;Tomato&quot;</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">c:ColumnWrapPanel</span><span class="kwrd">&gt;</span></pre>
<pre class="csharpcode"><span class="kwrd"></span>&#160;</pre>
<pre class="csharpcode"><a href="http://blog.nerdplusart.com/wp-content/uploads/2008/11/image.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="314" alt="image" src="http://blog.nerdplusart.com/wp-content/uploads/2008/11/image-thumb.png" width="550" border="0" /></a> </pre>
<pre class="csharpcode"><span class="kwrd"></span>&#160;</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>This solves a problem that I’ve run into over and over and which never had a good solution,&#160; especially when laying out a data entry form or something else where you have a set of items that have dissimilar sizing requirements but which need to fill an area efficiently.&#160; In the case of a traditional form, you could think of each color square as being a StackPanel or Grid that contains grouped elements in the form (e.g. use green for a name, orange for a set of address fields and blue and red for notes or a single checkbox).</p>
<p>By the way, there are some obvious efficiencies to be gained in this code (mostly with how I maintain the cell table) so if anyone finds the time to clean it up, I’d love your updated and better code!</p>
<h3>SmartGrid (WPF Only)</h3>
<p><a href="http://labs.nerdplusart.com/toolboxpanels/SmartGrid.cs">Download it here</a>. This is a super simple panel that derives from Grid.&#160; It allows you to specify names for your rows and columns and then assign items by name (rather than by index).&#160; I really like this for two reasons: first, it gives you self documenting XAML and second because it allows you to add and remove columns and rows without need to reindex all the content in your panel.&#160; Here’s what the XAML looks like.</p>
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">c:SmartGrid</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">c:SmartGrid.RowDefinitions</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">c:SmartRowDefinition</span> <span class="attr">RowName</span><span class="kwrd">=&quot;Header&quot;</span> <span class="attr">Height</span><span class="kwrd">=&quot;65&quot;</span> <span class="kwrd">/&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">c:SmartRowDefinition</span> <span class="attr">RowName</span><span class="kwrd">=&quot;Body&quot;</span> <span class="attr">Height</span><span class="kwrd">=&quot;*&quot;</span> <span class="kwrd">/&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">c:SmartGrid.RowDefinitions</span><span class="kwrd">&gt;</span>

    <span class="kwrd">&lt;</span><span class="html">Rectangle</span> <span class="attr">Fill</span><span class="kwrd">=&quot;YellowGreen&quot;</span> <span class="attr">c:SmartGrid</span>.<span class="attr">RowName</span><span class="kwrd">=&quot;Header&quot;</span> <span class="kwrd">/&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">Rectangle</span> <span class="attr">Fill</span><span class="kwrd">=&quot;Orange&quot;</span> <span class="attr">c:SmartGrid</span>.<span class="attr">RowName</span><span class="kwrd">=&quot;Body&quot;</span> <span class="kwrd">/&gt;</span>

<span class="kwrd">&lt;/</span><span class="html">c:SmartGrid</span><span class="kwrd">&gt;</span></pre>
<pre class="csharpcode"><span class="kwrd"></span></pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>I tried to port this one from WPF to Silverlight but I couldn’t find the right hooks.&#160; Unfortunately Silverlight Grid has sealed up Measure and Arrange and the other sizing events were too late to set the indexes properly on the items.&#160; There may have been something else too, but you may succeed here where I failed.&#160; Let me know if your port it.</p>
<h3>IndexingStackPanel (WPF Only)</h3>
<p><a href="http://labs.nerdplusart.com/toolboxpanels/IndexingStackPanel.cs">Download it here</a>. This one is old school.&#160; I created it for Kaxaml originally, but continue to get a lot of mileage from it.&#160; It’s a derived StackPanel that sets attached properties on its children to indicate where they show up in the panel.&#160; I use it a lot with an ItemsControl.&#160; It tells you whether it’s odd/even (slightly less useful now that we have alternating row colors built into the framework), first/last/middle and where it is relative to the selected item in a Selector.</p>
<p>My favorite use case for this is dealing with rounded corners on a menu or in a list.&#160; The problem shows up if the thing that contains your list has rounded corners on the top and bottom.&#160; In that case, you want all items to be square except the top and bottom.&#160; With IndexingStackPanel you can just trigger of the attached property to find if you’re top or bottom or middle and adjust the corner radius of the item as appropriate.</p>
<p>By the way, if you use this with an ItemsControl, you need to create the triggers in the ItemContainerStyle (not the ItemTemplate).</p>
<img src="http://feeds.feedburner.com/~r/nerdplusart/~4/448149095" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.nerdplusart.com/archives/toolbox-panels/feed</wfw:commentRss>
		<feedburner:origLink>http://blog.nerdplusart.com/archives/toolbox-panels</feedburner:origLink></item>
		<item>
		<title>Election Data Visualizations</title>
		<link>http://feeds.feedburner.com/~r/nerdplusart/~3/435110952/election-data-visualizations</link>
		<comments>http://blog.nerdplusart.com/archives/election-data-visualizations#comments</comments>
		<pubDate>Tue, 28 Oct 2008 20:37:39 +0000</pubDate>
		<dc:creator>Robby Ingebretsen</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://blog.nerdplusart.com/archives/election-data-visualizations</guid>
		<description><![CDATA[A Presidential election is, of course, an epicenter for data visualization.&#160; It is, after all, the data that gets the last word and it’s the data that, ultimately, we’ve all been watching and discussing for the last 6, 12 or 18 months.&#160; For the Numerati, this is good times (“high five for that chi square [...]]]></description>
			<content:encoded><![CDATA[<p>A Presidential election is, of course, an epicenter for data visualization.&#160; It is, after all, the data that gets the last word and it’s the data that, ultimately, we’ve all been watching and discussing for the last 6, 12 or 18 months.&#160; For the <a href="http://www.amazon.com/Numerati-Stephen-Baker/dp/0618784608">Numerati</a>, this is good times (“high five for that chi square extrapolation!”).&#160; It’s also good times for finding cool ways to look at data.&#160; Here are some favorites I’ve jotted down.</p>
<p>My top pick for pure aesthetics has got to be the news tracker at <a href="http://everymomentnow.com/">everymomentnow.com</a>.&#160; It’s instantly understandable, clean and useful.&#160; Each bar represents a day and the width of the bar represents the number of article references in that day for the candidate, providing information about media trends between the two candidates.</p>
<p><a href="http://everymomentnow.com/"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="523" alt="image" src="http://blog.nerdplusart.com/wp-content/uploads/2008/10/image2.png" width="550" border="0" /></a> </p>
<p>Another, and perhaps the ambitious, is the New York Times’ Visualization Lab.&#160; The Times teamed up with <a href="http://services.alphaworks.ibm.com/manyeyes/home">IBM’s Many Eyes</a> (and <a href="http://wordle.net/">Wordle</a>) to allow you to visualize all kinds of sources (including articles in the Times itself).&#160; <a href="http://vizlab.nytimes.com/datasets/sarah-palin-speech-at-rnc-2/versions/1">Construct your own visualization</a> of Sarah Palin’s speech at the RNC or check out a Wordle of <a href="http://vizlab.nytimes.com/visualizations/obamas-acceptance-speech">Obama’s acceptance speech</a>.</p>
<p>For a general purpose and up-to-the minute perspective on the online coverage of the election, check out <a href="http://www.perspctv.com/">Perspctv</a>.&#160; This one also meets a high bar for aesthetics which makes the data feel highly accessible.&#160; Yahoo has also put together a <a href="http://news.yahoo.com/election/2008/dashboard/">really nice dashboard</a>, which includes a cool bit of interaction where you can play out your own electoral scenarios.</p>
<p>Of course with all this data being thrown at us, we’re becoming more savvy about how we interpret it.&#160; <a href="http://vote2008.thetakeaway.org/2008/09/20/track-the-electoral-college-vote-predictions/">Takeaway.org</a> has picked up on that, I guess, and gives us a <a href="http://vote2008.thetakeaway.org/2008/09/20/track-the-electoral-college-vote-predictions/">poll of the polls</a>.&#160; A visualization of how the different pollsters predictions stack up (literally) against one another.&#160; </p>
<p>This idea (and others) has been incorporated into the “new” approach to polling that we see at <a href="http://www.fivethirtyeight.com/">fivethirtyeight.com</a>.&#160; I first heard about those guys in an interview on the <a href="http://www.comedycentral.com/videos/index.jhtml?videoId=187343">Colbert Report</a>.&#160; I guess they started off by predicting sports scores and were able to do so with a significantly better track record than others.&#160; We’ll see if their prowess holds out for the election, but right now they’re giving McCain a 3.3% chance of winning.&#160; Sorry Red States.</p>
<p>Last of all, Saturday Night Live has done a very nice job of putting this all in perspective.&#160; The skit it is brilliant.&#160; The technology is pretty great too.</p>
<p><object width="512" height="296"><param name="movie" value="http://www.hulu.com/embed/Fca-bXwgpqLsYlKxDXpdYg/89/256"></param><embed src="http://www.hulu.com/embed/Fca-bXwgpqLsYlKxDXpdYg/89/256" type="application/x-shockwave-flash" width="512" height="296"></embed></object></p>
<img src="http://feeds.feedburner.com/~r/nerdplusart/~4/435110952" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.nerdplusart.com/archives/election-data-visualizations/feed</wfw:commentRss>
		<feedburner:origLink>http://blog.nerdplusart.com/archives/election-data-visualizations</feedburner:origLink></item>
		<item>
		<title>Speaking at the &lt;head&gt; Web Conference This Afternoon</title>
		<link>http://feeds.feedburner.com/~r/nerdplusart/~3/431977516/speaking-at-the-head-web-conference-this-afternoon</link>
		<comments>http://blog.nerdplusart.com/archives/speaking-at-the-head-web-conference-this-afternoon#comments</comments>
		<pubDate>Sat, 25 Oct 2008 19:48:25 +0000</pubDate>
		<dc:creator>Robby Ingebretsen</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Life]]></category>

		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.nerdplusart.com/archives/speaking-at-the-head-web-conference-this-afternoon</guid>
		<description><![CDATA[&#160;
I’ll be speaking about Silverlight this afternoon at the &#60;head&#62; conference. It’s a really new kind of conference, organized by the venerable Aral Balkan.&#160; He’s arranged for an impressive speaker list (including Tim O’Reilly and Lynda Weinman).&#160; The “new” bit is that it’s online only (with hubs in select cities).&#160; It brings folks together digitally [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.nerdplusart.com/wp-content/uploads/2008/10/image1.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="110" alt="image" src="http://blog.nerdplusart.com/wp-content/uploads/2008/10/image-thumb.png" width="550" border="0" /></a>&#160;</p>
<p>I’ll be speaking about Silverlight this afternoon at the <a href="http://www.headconference.com/about/">&lt;head&gt; conference</a>. It’s a really new kind of conference, organized by the venerable <a href="http://aralbalkan.com/">Aral Balkan</a>.&#160; He’s arranged for an impressive speaker list (including Tim O’Reilly and Lynda Weinman).&#160; The “new” bit is that it’s online only (with hubs in select cities).&#160; It brings folks together digitally rather than physically.&#160; </p>
<p>I’ve been surprised by how well this works so far!&#160; There have been a handful of technical snafus (as you might expect for the first round of something like this), but the community feeling is intense.&#160; Arguably as good, albeit different, as a real conference.</p>
<p>It’s late notice, but I have a handful of tickets (3?) that I can give away (to the conference, not just my talk!).&#160; If you’re interested in attending, let me know.&#160; Happy to share, just drop me an email at <a href="mailto:robby@nerdplusart.com">robby@nerdplusart.com</a>.</p>
<p>Alright, well wish me luck at my first ever online-only conference!</p>
<img src="http://feeds.feedburner.com/~r/nerdplusart/~4/431977516" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.nerdplusart.com/archives/speaking-at-the-head-web-conference-this-afternoon/feed</wfw:commentRss>
		<feedburner:origLink>http://blog.nerdplusart.com/archives/speaking-at-the-head-web-conference-this-afternoon</feedburner:origLink></item>
		<item>
		<title>Getting Things Working with Silverlight 2 RTW</title>
		<link>http://feeds.feedburner.com/~r/nerdplusart/~3/431969575/getting-things-working-with-silverlight-2-rtw</link>
		<comments>http://blog.nerdplusart.com/archives/getting-things-working-with-silverlight-2-rtw#comments</comments>
		<pubDate>Sat, 25 Oct 2008 19:31:49 +0000</pubDate>
		<dc:creator>Robby Ingebretsen</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Life]]></category>

		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.nerdplusart.com/archives/getting-things-working-with-silverlight-2-rtw</guid>
		<description><![CDATA[I haven’t had a lot of time in the last week to get things updated.&#160; I guess it’s good to be busy!&#160; I did finally update the particle generator and the homepage though.&#160; Other stuff (AnimatingPanelBase, Kaxaml and the VS code snippets) are coming soon.&#160; 
Incidentally, converting my frame-based animations from the DispatcherTimer approach I [...]]]></description>
			<content:encoded><![CDATA[<p>I haven’t had a lot of time in the last week to get things updated.&#160; I guess it’s good to be busy!&#160; I did finally update the <a href="http://labs.nerdplusart.com/particles/">particle generator</a> and the <a href="http://nerdplusart.com/">homepage</a> though.&#160; Other stuff (AnimatingPanelBase, Kaxaml and the VS code snippets) are coming soon.&#160; </p>
<p>Incidentally, converting my frame-based animations from the DispatcherTimer approach I was using to CompositionTarget.Rendering makes a bigger difference than I expected.&#160; Nice one team!&#160; Things are noticeably smoother (but I had a bit of scare before I disabled the UseLayoutRounding property, which was causing the animations to snap at pixel boundaries and get pretty jerky).</p>
<p>By the way, if there is any interest in the code for the homepage, I’m happy to share it.&#160; I’ve been meaning to do a walkthrough of how I created the blurring effect for a while and I was going to give out the code with that.&#160; Happy to share soon with anyone wants it, though.</p>
<img src="http://feeds.feedburner.com/~r/nerdplusart/~4/431969575" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.nerdplusart.com/archives/getting-things-working-with-silverlight-2-rtw/feed</wfw:commentRss>
		<feedburner:origLink>http://blog.nerdplusart.com/archives/getting-things-working-with-silverlight-2-rtw</feedburner:origLink></item>
		<item>
		<title>Zune 3.0 or The Sound Wave Visualization that Stole My Heart</title>
		<link>http://feeds.feedburner.com/~r/nerdplusart/~3/428212506/zune-30-or-the-sound-wave-visualization-that-stole-my-heart</link>
		<comments>http://blog.nerdplusart.com/archives/zune-30-or-the-sound-wave-visualization-that-stole-my-heart#comments</comments>
		<pubDate>Wed, 22 Oct 2008 05:17:02 +0000</pubDate>
		<dc:creator>Robby Ingebretsen</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://blog.nerdplusart.com/archives/zune-30-or-the-sound-wave-visualization-that-stole-my-heart</guid>
		<description><![CDATA[Between my wife and I, we own something like four iPods and two iPhones (including a first generation iPod which, amazingly, looks like an antique now) and so I have a long-term relationship with iTunes.  I don’t dislike iTunes but it’s old.  In fact, it hasn’t changed much since I plugged my antique 1G iPod [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.nerdplusart.com/wp-content/uploads/2008/10/zune3.png"><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="zune3" src="http://blog.nerdplusart.com/wp-content/uploads/2008/10/zune3-thumb.png" border="0" alt="zune3" width="550" height="403" /></a></p>
<p>Between my wife and I, we own something like four iPods and two iPhones (including a first generation iPod which, amazingly, looks like an antique now) and so I have a long-term relationship with iTunes.  I don’t dislike iTunes but it’s old.  In fact, it hasn’t changed much since I plugged my antique 1G iPod into it 7 years ago.  There’s a lot of value, I guess, in iteration but I was hoping that iTunes 8 was going to be release that got me hooked again.  So far, I’m still kind of luke warm.</p>
<p>Enter Zune 3.0.  Wow!.  Can you call software sublime or is that weird?  Either way, I’ve got one doozy of a software crush on this music player.  Unfortunately for Microsoft, I haven’t broken out my Zune device for at least a year but I’m spending 10 hours a day in the software.</p>
<p>From the polish and attention to detail, it’s clear that this release went out with a some extra love.  Some favorite moments for me:</p>
<ul>
<li>The sound visualization has been integrated right into the background of the app (check it out above…that pink glow at the bottom moves in real time to the music…it looks cool!).</li>
<li>It ships with multiple “themes” (which are really just backgrounds) but the default (and my favorite) is one called zero which is literally just a white background.  Nice.  Way to be bold by being subtle.</li>
<li>If you leave the app alone it goes into one of two modes: one visualizes all of your album art in a giant grid.  It looks cool.  The other gives you band photos which it pulls from somewhere online and then overlays lyrics and song titles on top of it (that’s what’s going on in the image above).  This, by the way, is a great example of some blend mode awesomeness.</li>
<li>The navigation is amazing intuitive in spite of being relatively complex and not feeling overly structured.</li>
<li>MixView is the new music discovery service (also in the picture above).  As an example of paying attention to detail, the entrance animation for MixView eases in and then just slows but never stops.  That’s a bold thing to do, but it feels great.</li>
<li>It doesn’t feel like an app, it feels like an “experience””—more like something a marketing team would create than app team.</li>
</ul>
<p>So, well done Zune!  Now if only my Zune could make calls…</p>
<img src="http://feeds.feedburner.com/~r/nerdplusart/~4/428212506" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.nerdplusart.com/archives/zune-30-or-the-sound-wave-visualization-that-stole-my-heart/feed</wfw:commentRss>
		<feedburner:origLink>http://blog.nerdplusart.com/archives/zune-30-or-the-sound-wave-visualization-that-stole-my-heart</feedburner:origLink></item>
		<item>
		<title>Oliver Jeffers Takes Nerd+Art to a New Level</title>
		<link>http://feeds.feedburner.com/~r/nerdplusart/~3/414001175/oliver-jeffers-takes-nerdart-to-a-new-level</link>
		<comments>http://blog.nerdplusart.com/archives/oliver-jeffers-takes-nerdart-to-a-new-level#comments</comments>
		<pubDate>Tue, 07 Oct 2008 17:39:12 +0000</pubDate>
		<dc:creator>Robby Ingebretsen</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://blog.nerdplusart.com/archives/oliver-jeffers-takes-nerdart-to-a-new-level</guid>
		<description><![CDATA[ 
The Incredible Book Eating Boy is my new favorite bed time story (for reading to my two and four year old sons).&#160; I looked up the illustrator (Oliver Jeffers) the other day to discover that he, like me, could appreciate a little nerd with his art as evidenced by his uninhibited use of math [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.oliverjeffers.com/#/artart/"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="415" alt="image" src="http://blog.nerdplusart.com/wp-content/uploads/2008/10/image.png" width="550" border="0" /></a> </p>
<p><a href="http://www.oliverjeffers.com/#/illustration/">The Incredible Book Eating Boy</a> is my new favorite bed time story (for reading to my two and four year old sons).&#160; I looked up the illustrator (Oliver Jeffers) the other day to discover that he, like me, could appreciate a little nerd with his art as evidenced by his uninhibited use of math (that’s right, math) as a design element in his illustrations and paintings.&#160; Sweet!&#160; I really loved his <a href="http://www.oliverjeffers.com/#">portfolio</a> for the content, but the site itself also stands on its own.&#160; It’s simple, but really effective.&#160; Shows how sometimes less == more (a little more math for you). </p>
<img src="http://feeds.feedburner.com/~r/nerdplusart/~4/414001175" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.nerdplusart.com/archives/oliver-jeffers-takes-nerdart-to-a-new-level/feed</wfw:commentRss>
		<feedburner:origLink>http://blog.nerdplusart.com/archives/oliver-jeffers-takes-nerdart-to-a-new-level</feedburner:origLink></item>
		<item>
		<title>Blend Modes? You’re Soaking In It</title>
		<link>http://feeds.feedburner.com/~r/nerdplusart/~3/402468470/blend-modes-youre-soaking-in-it</link>
		<comments>http://blog.nerdplusart.com/archives/blend-modes-youre-soaking-in-it#comments</comments>
		<pubDate>Thu, 25 Sep 2008 04:56:46 +0000</pubDate>
		<dc:creator>Robby Ingebretsen</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.nerdplusart.com/archives/blend-modes-youre-soaking-in-it</guid>
		<description><![CDATA[It turns out that being a freelancer is about twice as much work as you expect.  It’s been fun, but it’s been really busy.  So, Blog, sorry if you feel a little neglected.
If it makes you feel better, I’m about 1200 items away from being caught up in Google reader.  You’re not the only one [...]]]></description>
			<content:encoded><![CDATA[<p>It turns out that being a freelancer is about twice as much work as you expect.  It’s been fun, but it’s been really busy.  So, Blog, sorry if you feel a little neglected.</p>
<p>If it makes you feel better, I’m about 1200 items away from being caught up in Google reader.  You’re not the only one being neglected (oh, and hi honey if you’re reading this).  So, you’ll forgive me if I’m a little late responding to <a href="http://blogs.msdn.com/greg_schechter/archive/2008/09/16/introducing-multi-input-shader-effects.aspx">this awesome post about multi-input shaders on Greg Schechter’s blog</a>.  Did someone say blend modes?</p>
<p>If blend modes weren’t the first thing that came into your mind when you ran across that post, don’t feel bad.  Caring about blend modes isn’t intuitive.  In fact, it’s kinda hard to do.  So here are some quick thoughts about why I think they are rock and roll…get ready to hop on the blend modes bandwagon.</p>
<h3>Blend Modes Defined</h3>
<p>I’m not an expert here and if you want to know more, then you may want to <a href="http://en.wikipedia.org/wiki/Blend_modes">check out this</a> or <a href="http://www.mediachance.com/dvdlab/Helppro/blend.htm">this</a>.  My practical understanding, though, is that blend modes give you the ability define how a layer visually interacts with the objects below it.  We’re used to a really simple blend mode (although I’m not sure if it actually counts) when we set the opacity on something and can see the content below it.</p>
<p>When we do that, somewhere some math is done that combines the value of the pixels of the object where set the opacity with the pixels that were below it.  WPF and Silverlight support one version of that math, the “normal” one.  If you’re going to support one, that’s probably the right one.  Photoshop supports something like 25 different ways to do that math and Flash supports a bunch too.  These are blend modes and they have names (like Color Burn, Linear Burn, Overlay, Vivid Light, etc.).</p>
<h3>Why Blend Modes Mattter</h3>
<p>So what’s the big deal?  For a lot of scenarios, there isn’t one.  Regular transparency blending is often exactly what you’re looking for.  On the other hand, once you start thinking in blend modes they start to pop up every where, much like transparency or rounded corners.  You didn’t think you cared until you had them (or noticed that everyone else was using them).</p>
<p>I have a couple of favorites, but a top pick (at least in Photoshop) is a mode called Linear Burn and I think it has some good application to UI.  First, here’s a simple example of layering an orange square over a paper texture.</p>
<p><img style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" title="image" src="http://blog.nerdplusart.com/wp-content/uploads/2008/09/image3.png" border="0" alt="image" width="345" height="117" /></p>
<p>You can see how the best we can do with the standard transparency blending (the Opacity Overlay) has the effect of “evening” out the texture of the paper.  We lose a lot of the contrast information as everything fights to be a little bit orange and a little bit paper.</p>
<p>Check out the Linear Burn, on the other hand.  When we apply that guy, we keep that contrast but do so in an orange kind of way and the result is much more vibrant and a much better texture.</p>
<h3>Why Blend Modes Mattter for UI</h3>
<p>There are tons of applications to UI, but a semi-geeky one is that this “dimming” effect of regular blending makes it much more difficult to create generic designs that can be colored or manipulated at runtime.  Here’s a concrete example: you’ve probably created a template for a button in the past that uses a gradient to produce some depth on the buttons’ surface.  You might do that with a partially transparent white-to-black gradient on top of the button’s background to produce something like this:</p>
<p><img style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" title="image" src="http://blog.nerdplusart.com/wp-content/uploads/2008/09/image4.png" border="0" alt="image" width="418" height="82" /></p>
<p>Not bad, but look how dim our vibrant green became.  If the consumer of that button set the background to be a very bright green and ended up with this, he might be disappointed.  (By the way, you would probably work around that by not including any white in your gradient.  Now you would have more vibrant albeit relatively dark button, but at least you could keep the original color).</p>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" src="http://blog.nerdplusart.com/wp-content/uploads/2008/09/image5.png" border="0" alt="image" width="418" height="74" /></p>
<p>Much nicer, right?  Linear Burn is a good one for something like this but theoretically the sky is the limit.</p>
<h3>Multi-input Shaders == Blend Modes Potential</h3>
<p>And that’s where multi-input shaders come into play.  With more than one input into the shader, you could combine the gradient and green to produce this or any other smart combination that you could think of.  You just do some math to say how the pixels combine.  Forget 25 blend modes Photoshop or Flash, WPF just gave us infiniti (that was for you Scott Barnes).  That’s essentially what Greg did in his post.  Great job WPF team.</p>
<p>So here’s the thing.  The math for blend modes is pretty straightforward.  It’s probably just a weekend for someone to start building some of these for us.  So, any takers?   Oh, and Silverlight…we’re watching you.</p>
<img src="http://feeds.feedburner.com/~r/nerdplusart/~4/402468470" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.nerdplusart.com/archives/blend-modes-youre-soaking-in-it/feed</wfw:commentRss>
		<feedburner:origLink>http://blog.nerdplusart.com/archives/blend-modes-youre-soaking-in-it</feedburner:origLink></item>
		<item>
		<title>Ed Catmull on Managing Creativity</title>
		<link>http://feeds.feedburner.com/~r/nerdplusart/~3/394961708/ed-catmull-on-managing-creativity</link>
		<comments>http://blog.nerdplusart.com/archives/ed-catmull-on-managing-creativity#comments</comments>
		<pubDate>Wed, 17 Sep 2008 07:27:35 +0000</pubDate>
		<dc:creator>Robby Ingebretsen</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://blog.nerdplusart.com/archives/ed-catmull-on-managing-creativity</guid>
		<description><![CDATA[ 
Ed Catmull is a co-founder of Pixar.&#160; He wrote this great article in the Harvard Business Review this month about how Pixar approaches the intensely collaborative and creative process of producing a film.&#160; There are a lot of good parallels to the software process, especially as it relates to creative/technical workflow.&#160; It&#8217;s an easy [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://harvardbusinessonline.hbsp.harvard.edu/hbsp/hbr/articles/article.jsp?ml_action=get-article&amp;articleID=R0809D&amp;ml_issueid=null&amp;ml_subscriber=true&amp;pageNumber=1&amp;_requestid=112414"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="243" alt="image" src="http://blog.nerdplusart.com/wp-content/uploads/2008/09/image2.png" width="550" border="0"></a> </p>
<p><a href="http://en.wikipedia.org/wiki/Edwin_Catmull">Ed Catmull</a> is a co-founder of Pixar.&nbsp; He wrote <a href="http://harvardbusinessonline.hbsp.harvard.edu/hbsp/hbr/articles/article.jsp?ml_action=get-article&amp;articleID=R0809D&amp;ml_issueid=null&amp;ml_subscriber=true&amp;pageNumber=1&amp;_requestid=112414">this great article</a> in the Harvard Business Review this month about how Pixar approaches the intensely collaborative and creative process of producing a film.&nbsp; There are a lot of good parallels to the software process, especially as it relates to creative/technical workflow.&nbsp; It&#8217;s an easy read and there&#8217;s a lot of great insight.&nbsp; Don&#8217;t miss it.</p>
<p>I met Ed Catmull a few years ago and I actually got a personal tour of Pixar from him.&nbsp; He and <a href="http://en.wikipedia.org/wiki/Robert_B._Ingebretsen">my dad</a> were college pals and then office mates in graduate school so he set it up for me.&nbsp; My dad, in fact my dad did the 3D lettering in one of Ed&#8217;s earliest movies.&nbsp; We always called it the &#8220;hand movie&#8221; because it&#8217;s a 3D model of a hand, and I believe was among the first digital movies ever!</p>
<p>Well, the tour of Pixar left a tremendous impression on me.&nbsp; At the time, they were working on Monster&#8217;s Inc. and the digs had been dressed accordingly. The team sat in a warehouse-like inner sanctum in the middle of the building that was filled with Styrofoam caves, monster sketches, giant storyboards, and crazy models.&nbsp; More to the point, though, it was lit up with conversation and a bewitching kind of collaborative energy.&nbsp; </p>
<p>So given that, I have an admitted bias when reading the article.&nbsp; I can&#8217;t help but read it through the lens of that experience, trying to extract something about how they created such an intensely creative environment.&nbsp; For me, the article doesn&#8217;t disappoint, although it gets there with some ideas that rub against grain a little.&nbsp; Here are some of the tamer ones.</p>
<p>On the collaborative nature of creativity:</p>
<blockquote><p>People tend to think of creativity as a mysterious solo act, and they typically reduce products to a single idea&#8230; However, in filmmaking and many other kinds of complex product development, creativity involves a large number of people from different disciplines working effectively together to solve a great many problems. The initial idea for the movie—what people in the movie business call “the high concept”—is merely one step in a long, arduous process&#8230;</p>
</blockquote>
<p>On taking risks:<br />
<blockquote>
<p>To act in this fashion, we as executives have to resist our natural tendency to avoid or minimize risks, which, of course, is much easier said than done&#8230; If you want to be original, you have to accept the uncertainty, even when it’s uncomfortable, and have the capability to recover when your organization takes a big risk and fails. What’s the key to being able to recover? Talented people!</p>
</blockquote>
<p>On managing creative people:<br />
<blockquote>
<p>Of course, most executives would at least pay lip service to the notion that they need to get good people and should set their standards high. But how many understand the importance of creating an environment that supports great people and encourages them to support one another so the whole is far greater than the sum of the parts? That’s what we are striving to do. Let me share what we’ve learned so far about what works.
<p>Creative power in a film has to reside with the film’s creative leadership. As obvious as this might seem, it’s not true of many companies in the movie industry and, I suspect, a lot of others. We believe the creative vision propelling each movie comes from one or two people and not from either corporate executives or a development department. Our philosophy is: You get great creative people, you bet big on them, you give them enormous leeway and support, and you provide them with an environment in which they can get honest feedback from everyone.</p>
</blockquote>
<p>On the magic of technology (nerd) + art:<br />
<blockquote>
<p>Getting people in different disciplines to treat one another as peers is just as important as getting people within disciplines to do so. But it’s much harder. Barriers include the natural class structures that arise in organizations: There always seems to be one function that considers itself and is perceived by others to be the one the organization values the most. Then there’s the different languages spoken by different disciplines and even the physical distance between offices. In a creative business like ours, these barriers are impediments to producing great work, and therefore we must do everything we can to tear them down.
<p>Walt Disney understood this. He believed that when continual change, or reinvention, is the norm in an organization and technology and art are together, magical things happen. A lot of people look back at Disney’s early days and say, “Look at the artists!” They don’t pay attention to his technological innovations. But he did the first sound in animation, the first color, the first compositing of animation with live action, and the first applications of xerography in animation production. He was always excited by science and technology.</p>
</blockquote>
<p>Alright,&nbsp; I&#8217;ll let you read the rest.&nbsp; <a href="http://harvardbusinessonline.hbsp.harvard.edu/hbsp/hbr/articles/article.jsp?ml_action=get-article&amp;articleID=R0809D&amp;ml_issueid=null&amp;ml_subscriber=true&amp;pageNumber=1&amp;_requestid=112414">Don&#8217;t miss this one</a>.</p>
<img src="http://feeds.feedburner.com/~r/nerdplusart/~4/394961708" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.nerdplusart.com/archives/ed-catmull-on-managing-creativity/feed</wfw:commentRss>
		<feedburner:origLink>http://blog.nerdplusart.com/archives/ed-catmull-on-managing-creativity</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 1.919 seconds --><!-- Cached page served by WP-Cache -->
