<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://tabletuml.spaces.live.com/mmm2008-05-17_13.22/rsspretty.aspx?rssquery=en-US;http%3a%2f%2ftabletuml.spaces.live.com%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The UML Guy</title><description>UML Tips, Quizzes, News, and More</description><link>http://TabletUML.spaces.live.com/</link><language>en-US</language><pubDate>Mon, 14 Jul 2008 03:53:04 GMT</pubDate><lastBuildDate>Mon, 14 Jul 2008 03:53:04 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><live:identity><live:id>202904848633149853</live:id><live:alias>TabletUML</live:alias></live:identity><image><title>The UML Guy</title><url>http://byfiles.storage.live.com/y1p0MzzGCpqI39C16c5a2tQxG5kgOxnVJ1c_7jzaGNu6uyQSVlpZ0tXUfVxkMB4kOEJ</url><link>http://TabletUML.spaces.live.com/</link></image><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>Behind the Scenes at the 2008 Michigan All-State Bonsai Show</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1569.entry</link><description>&lt;p&gt;In its 10th year, the Michigan All-State Bonsai show is presented by &lt;a href="http://www.meijergardens.org/" target="_blank"&gt;the Frederik Meijer Gardens and Sculpture Park&lt;/a&gt;. It runs today (May 3) and tomorrow. 
&lt;p&gt;Clubs in attendance include: 
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.wmbonsai.org/" target="_blank"&gt;West Michigan Bonsai Club&lt;/a&gt;
&lt;li&gt;&lt;a href="http://www.bonsaisocietykalamazoo.org/2007update/index.htm" target="_blank"&gt;The Bonsai Society of Kalamazoo&lt;/a&gt; 
&lt;li&gt;&lt;a href="http://www.fourseasonsbonsai.com/" target="_blank"&gt;Four Seasons Bonsai Club of Michigan&lt;/a&gt; 
&lt;li&gt;Yasuragi Bonsai Society
&lt;li&gt;&lt;a href="http://www.wmbonsai.org/" target="_blank"&gt;Ann Arbor Bonsai Society&lt;/a&gt; 
&lt;li&gt;Sakura Bonsai Society 
&lt;li&gt;Association of Independent Bonsai Artists&lt;/ul&gt;
&lt;p&gt;Plus we have unaffiliated artists, as well as trees from the Gardens' own collection! 
&lt;p&gt;To learn more about Bonsai, start with &lt;a href="http://www.bonsai-nbf.org/" target="_blank"&gt;The National Bonsai Foundation&lt;/a&gt;. You may also be interested in the following upcoming events: 
&lt;ul&gt;
&lt;li&gt;Sensei Steve Jetzer is offering beginner classes. The next six week class starts May 6, so you'll have to hurry. For reservations, call 616.459.9496. 
&lt;li&gt;June 21: West Michigan Bonsai Club is holding a Japanese maples workshop/lecture/demo. 
&lt;li&gt;June 21: &lt;a href="http://www.fourseasonsbonsai.com/" target="_blank"&gt;Four Seasons Bonsai Club of Michigan&lt;/a&gt; presents a demonstration by Bonsai Master Roy Nagatoshi, creator of the Bonsai trees from the movie Karate Kid III. 
&lt;li&gt;June 22: At &lt;a href="http://www.fourseasonsbonsai.com/" target="_blank"&gt;Four Seasons Bonsai Club of Michigan&lt;/a&gt;, Master Nagatoshi leads two workshops for paid participants. 
&lt;li&gt;June 28 and 29: Wildwood Gardens presents a Bonsai BBQ with Bonsai Master Sukosolvist, owner of the Royal Bonsai Gardens in Stoughton MA. Master Sukosolvist will present demos and workshops. For reservations, call 440-286-3714.&lt;/ul&gt;
&lt;h3&gt;And now, on with my show photos!&lt;/h3&gt;
&lt;p&gt;I didn't get names for all of the people (or any of the trees!), but here are some photos from the show. 
&lt;p&gt;&lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6srZj9OZDHNsU1aWYdlEzX20v5_NiuZ0r1k3dZUYvDxIK4jQnfhRdXhlUHq1bdL_rtVw?PARTNER=WRITER"&gt;&lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6sra7hoOkkP5kzhm5OFV7mb53nFQgFarn8hInFkR5sdrzzoTnyhIpgyupMqYOE9Youlk?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=204 alt=7 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srYAEHGFOQv8jqIUuh9WWAeDqaoNRxaMGAExxyrlaQ6UMLkSUbQ4DrmzIDFMnaVNQjo?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt;&lt;/a&gt; 
&lt;p&gt;My friend Amy Fowler (a.k.a. Pilga), my sister Anita Buckowing (a.k.a. show chair), and Sue Smalley (a.k.a. ever-helpful volunteer) work the registration table. 
&lt;p&gt;&lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6sratAPY2KzyU6yzjQz3z9anLmtT0eflyqMToeQEKMF4VtlCR4t28jrTZ4JpV8tPPgQY?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=204 alt=6 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srZLYnu6PrijDWbt9kd94K2mBEP_qxCCXIN6H1jchtGCMyElsV_0gICQkmtEzjbG7ZY?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;Amy, Tim Priest (assistant show chair, and chair for the 2009 show), and Anita sorting out registrations. 
&lt;p&gt;&lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6srbh2JuE4v2BJyPNj1-qu_0vS0ZGQfqNXS0dy_bKbBYfzjnn-pIISJ4mdIdZYcf0opU?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=10 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srZG3h3TKr7xaHQWaZKHgfNOI3kisJiTXPWbxVwAcR7q3OFt8kHlHrgS1q5XKVZiQxQ?PARTNER=WRITER" width=242 border=0&gt;&lt;/a&gt; 
&lt;p&gt;Dean Bull and Steve LeWarre set up the show tables and maintain the Gardens collection. 
&lt;p&gt;&lt;a href="http://trjzfa.bay.livefilestore.com/y1p6L5aKy9lWjnfIQjZp9cFy8flUr0cSe7MszWESAugliuF8mp3ET7lOz88f3XwYuni6ScsY8ZNBWeVsUIqzj1MWQ?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=143 alt=18 src="http://by1.storage.msn.com/y1pD1HIHZh7RZKJHCPzwJkcTKm6dR_0CEFQNEKJOyGky1N6cCJSjVUlQcIwRGxHnh_E0Z8eXTR6GC_NfBB7EphX7FrZxKSzSWR5?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;Evan and Madison Priest give a demonstration of Bonsai techniques. 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZKUJY-e42N6ZeMkkeIF93OK67zt57pn-6TDuZzUbF0zP7_THgmhnofW4SS1BSJjUWV-4EJzCl3YOArbC39_XS67?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=226 alt=19 src="http://by1.storage.msn.com/y1pD1HIHZh7RZIVHL7vFxokFbbdRMneXPzf8FzFmsiDA7Co5ON5yhgvi-utnGZb_4RpwEww3lMkz3gYq67vFlRJOOk8afV54eQZ?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;Jeff Black demonstrates the making of Bonsai pots. 
&lt;p&gt;&lt;a href="http://trjzfa.bay.livefilestore.com/y1p9ho9SVOVHo78hShyWE8gUb6cWbrMCIKIi3i2hN4yBrQm3Ya9beHeVm0hpLhxJZ5EWwMLlyNrXjCCk-YJLZhMKK4rJP-gv5VA?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=175 alt=2 src="http://by1.storage.msn.com/y1pD1HIHZh7RZKrexBcyD59r2KfM3FWqzfGLSeZEbLtQHuIvB6-4lgFoOl5jPRhs-iM4z9YqxCciumJR1DdEIhypLkJArpGzLCL?PARTNER=WRITER" width=244 border=0&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZKdlJ39RSFKQZvRn7jNjchZGp4Ica7BU3ghCw-FxyhudfVphR9d3iSZMykUWmZP1N-R16hgBffr7u0VBCynY_hz?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=9 src="http://by1.storage.msn.com/y1pD1HIHZh7RZKWK1w8z9ddXzlVqZljfZZGbH1x16_saqOdHe9R4ZIJFIifDWFaVeVibJHUnPo_HGZjXFCEfmUN_dT6xEo86MJ0?PARTNER=WRITER" width=141 border=0&gt;&lt;/a&gt;&lt;/a&gt; 
&lt;p&gt;The official name is &lt;em&gt;Gilded Champagne Gardens Chandelier&lt;/em&gt; by Dale Chihuly, but I always think it looks like Cthulhu's cousin. 
&lt;p&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=241 alt=1 src="http://by1.storage.msn.com/y1pD1HIHZh7RZI09-dUNHsjE0hif74WxBr8uudlEmENEQRIQs4fNZptL6pqXSx_hanbdkedrUPqObvPvronKNypSgnH9-pYevye?PARTNER=WRITER" width=244 border=0&gt; 
&lt;p&gt;Gene Deci inspects the club table for the Sakura Bonsai Society. 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZJ7R_JLxEok5ZIC08h1Ce7sY6nxDE3J4YlhyRtUDet-gdOj0fJlS5N5ebOVuDS9h8tqoiCl3hqsfSYuqD0PLgha?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=8 src="http://by1.storage.msn.com/y1pD1HIHZh7RZLOoZam-gdxk_jyFbu7jHd7FwDaeHlbUVvU8vLao7M1lXyzIhoSfwsSz934pf-_zdn3E757yDXD9sMMOAbhimIc?PARTNER=WRITER" width=168 border=0&gt;&lt;/a&gt; 
&lt;p&gt;The Bonsai Society of Kalamazoo sign. 
&lt;p&gt;&lt;a href="http://trjzfa.bay.livefilestore.com/y1p9ho9SVOVHo6aHCTY0yBwRpr28Ew6O55iC8s8UzmDr94dMB-azYInikVpZu7AIKGU00CXNxTsdJi5oVFxwdzL3Soxlk86IZ3j?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=176 alt=13 src="http://by1.storage.msn.com/y1pD1HIHZh7RZJG_W_I6Q61NkcsdhPtp69xebBkLtNbkEoK1x58aAOXlP4FDE5QSxvdSboQavuKkGtCLSM6K1sQjB2sV9T_h-xM?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;The Sakura club table. 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZKRIBtu6KDgPqZRQQFbTqwnOFKh775IRrSp4cD9GVeIq0Hq1Bt-USC82In67I1JLzVglkmyLRucGmsdKsWsAgkh?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=196 alt=15 src="http://by1.storage.msn.com/y1pD1HIHZh7RZIEkpzHHWkj7gCLTFnaguhfQNmLSIzkefQMbr4u2ZalRjzBwRI6orNiJiTM-ilB3YOAuvFAQn-WJDTLUcb3B8Ar?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;The general club table, with information and trees from the West Michigan Bonsai Club, the Four Seasons Bonsai Club, and the Bonsai Society of Kalamazoo. 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZLBBHn1zNOQykxoMnn2dcp2-W5ej1Ug3coJuUZGglwpALCscYB91Na0dVD_cVXOro_3THdJtZY6er8CAKWRJOoZ?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=57 src="http://by1.storage.msn.com/y1pD1HIHZh7RZJfuWPuXGxWBJrdgbELzZagEH9UwOnirNmOdlSDVdUSQRtv4QA7upL9hQtexvvBKv2Edg6X6YxlyThfHb-XOobn?PARTNER=WRITER" width=196 border=0&gt;&lt;/a&gt; 
&lt;p&gt;The poster for Master Nagatoshi's visit. 
&lt;p&gt; &lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZKKTrQgsZlqs94Nq5JgMbz-sBlGEphKYsQ-E9lhoiQc5Snz67U-TvMvaEO3NMN6Cg-GnxpIM1nXjVzgquSUXz2B?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=11 src="http://by1.storage.msn.com/y1pD1HIHZh7RZIBJK5j8p8EQnOYvWD123xHkiP6KlqcDoP3hf76obg_-v8X3SBhed-GTJZQr9d_DBb_fwxUqcV7SXY5Lxw_udtb?PARTNER=WRITER" width=215 border=0&gt;&lt;/a&gt; 
&lt;p&gt;A vendor preparing for the show. 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZJkyzr4r_PKha4tWhxh_9CPSkw0PFHFbHAbTOWRWO6zctA726ZJVqaTl8pTCPgiIjQYfYQ2ZKM8dKrwz2i20tLZ?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=196 alt=12 src="http://by1.storage.msn.com/y1pD1HIHZh7RZI-pdDH76qn-B65XCrPjFpmccs4hHFXY3cbkww781HAgfwnI-NbVrrutJhGHAGM8-baFpRGVPzcS41ugcA6w9lp?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;More vendor prep. 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZKw_c6gdqYS_7DZnLnFxc4yGTUzEQGJSPCAHdI4w3hjSge8IPsVVMfIdqSvirIPRaHrBs1SMkiGKQjr0l2EKERE?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=200 alt=4 src="http://by1.storage.msn.com/y1pD1HIHZh7RZItzY2LtSPNtyhUL36-WpUalg4UaYDmi0UJzxXiPu8bL-58a1m-7qh9TRWPdFVRBQDc5kLvvcASvrKFTyrGogAf?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;Julie Francke (our helpful rep from the Gardens), Anita, and Jerry Peters (an exhibitor from the Four Seasons Bonsai Club) discuss the show.&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZKUJY-e42N6ZeMkkeIF93OK67zt57pn-6TDuZzUbF0zP7_THgmhnofW4SS1BSJjUWV-4EJzCl3YOArbC39_XS67?PARTNER=WRITER"&gt;&lt;/a&gt; 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZJu6968J_VBuYR2BwnTFv7JEg8E6oCujokyOlJ31SwOH8JVUzQdZtKbdRh3TyqpU49uvegctdG8XJKAmBjFkaTl?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=3 src="http://by1.storage.msn.com/y1pD1HIHZh7RZJabWq96MWknvTuwsClskNHb6Qn9mgY8nlzUyC4uN8WaxlqwweOknx8-VvgmK8VlIzL3XOWtjdcLzGGWXAYs7WC?PARTNER=WRITER" width=222 border=0&gt;&lt;/a&gt; &lt;a href="http://trjzfa.bay.livefilestore.com/y1p9ho9SVOVHo4NwdGfsYcbZBZhk32gW9RKcOCg1RnnAGdZyhzCRpe5uFTu6G6goU5HCfRNAr5zPL_CCIZpbIp2t1oBmYT3dm9j?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=148 alt=14 src="http://by1.storage.msn.com/y1pD1HIHZh7RZIwMEOoiNHxQjp7IQfmRXFbfr3urC6GxG_V0a4Jb35LheBulCqawWfNQ126IV-BZEOk0OwPVr166fplE2bAxoLD?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; &lt;a href="http://trjzfa.bay.livefilestore.com/y1p9ho9SVOVHo5nZtwEfn7fihsgMnWKUqS1SH4Xv31wYxiHjsyzq5KXDFNKBdLGHspbsussqOYPn7B3kY8qxqxJhHyX_UqF1pfi?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=121 alt=16 src="http://by1.storage.msn.com/y1pD1HIHZh7RZLt7KKJuEZDpCb-2T9VVT4Oj3wRNwkElFq6wuKLC82TlIXOEQ3Y4Y-o4qWak0NGgLahgQlWSGCF3HX9Hxgphk2N?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; &lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6srYWZbkA8gHm6RYZQl7CkK_NasDpfdz5nPBfd2kopAqCjefBpjSy_pZRsdDPIlVmX1k?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=17 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srZ8YDLomEIfyvexbYvhhNpCrJpmZdyTo_nQjdAWBaJtaD7Hrx0CZ8a1P_1sE-IysyI?PARTNER=WRITER" width=206 border=0&gt;&lt;/a&gt; &lt;a href="http://trjzfa.bay.livefilestore.com/y1p6L5aKy9lWjntnH1CbNpJgFORpw20n5PHYZHIg-r33WMxa4kUGXHh-i2lHaas0AQL-hTUKmDThMkGJyKux4yjbQ?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=153 alt=21 src="http://by1.storage.msn.com/y1pD1HIHZh7RZJsMj-RBhLJgUMzudUattXZoQvBA1dA5UamOMKd2AScWleJJmwnGXcqpqCK2mhzRlqnloCqTEn1EQ-ue4vcCBli?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; &lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZL0NiujVD-7Xk2W8YOiijEvS3aIOKc0lcwfBMMrQOZFbdg7s00D3X6-309YuKdz3qkU8_fWzc7idf0iOhTKe-yG?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=196 alt=22 src="http://by1.storage.msn.com/y1pD1HIHZh7RZIv2R8OEUDfhJPCglp4ThYB5mLt4BLMBkUM1y5Nd1MV_3rhMijx-HQBjkKRT8Bgk9YM3I8qB19JWtzP693n7R7E?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;People and trees (before the exhibit was officially open). 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZKzZRJFF-ofLx1jTrEvPmHNtLiidtyGvnJIxzO7Qpxw83-LJsD_8Sb2LRDu5cx3mN5Af7fy2CWXZ_VbX6l9LNcK?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=196 alt=58 src="http://by1.storage.msn.com/y1pD1HIHZh7RZLeS1FwoolbdWYsfiPx8Jx66DFTHS3F0Y1hzzWs6RvtM4PASRqqPuUgA9FGsfwtCo2r6XngMe89VfoUCdi8_ENm?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;And we're open! 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZLtwHDU1yyax8656ZsWL1hJRN_utDubGUfDZNnJPL-gcG51m2uqWySXIVu93qJP3U6hPamwWHCinYKhlwUCj47t?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=59 src="http://by1.storage.msn.com/y1pD1HIHZh7RZKtTdCwqF-4gPrpuuoxuYc3ko4c4oH17B7fxbbKk_QbMW0JoUcNsD8HXxHq3ok0hGyCg4iztfo-dbXWxky2Y-ae?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;I thought this was about trees. What are all these stones doing here? (It's called &lt;em&gt;suiseki&lt;/em&gt;, the art of selecting, polishing, and presenting stones.) 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZJOmryIfnKoedLYsF-oR161edD_ctNKYs0BPz84lG7ysQksJExXdDfWmL_8InuKaTw01CTO5tRN_OWQS3xYm2gO?PARTNER=WRITER"&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZJgjG0JcMcFNG6n_pKkv9nQ6jECQi09fgj2CnkUyuGpgkRP0oQSgl1VDboCGLQ97sRWM7yw5R6iG31GZ5ka2sZ3?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=135 alt=55 src="http://by1.storage.msn.com/y1pD1HIHZh7RZI2HDHhVQGw5xkD3awxEBEU4_bg1kUyJn2N3NRM1Z90m8M2dpDP8zNTsjwuw3FoPsOQbLCe6nqDwBUg0Bt6dieq?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; &lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=199 alt=56 src="http://by1.storage.msn.com/y1pD1HIHZh7RZI18f1qRwkfqSulWF9V6m3BPDm9CgUbMG_emsRurvcsT1tAeIco8u8p_O3gecy8rpD1F7rPF8hIb60JHieGtcZZ?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;Tim Priest teaches a class on Diaza carving. (Diaza are the stands for suiseki stones.)
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZId3BQ5INrChMpecRfy76atuDxpyXhAqvfU10l3ZJsUTNtfDhgEwUWA7mnU1vUj-1lkW1cgxpF_wdtx-BdpZUQx?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=196 alt=24 src="http://by1.storage.msn.com/y1pD1HIHZh7RZJMQF8s_gnTT8-Jl3aEeySvcV-jtvHzXVm9_I572qxqRBXpoED97GraGevoXvF49qdKfnFdy7XYliHiB2_wnbwY?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; &lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZLkM1bvEYtATNC4rjpfWY4yFgH1pJKheskTdHQj-vXEnQ083WIEi5p-YOVDPAwG7dQNBbW2Lc6hq9pMskhL9zxp?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=25 src="http://by1.storage.msn.com/y1pD1HIHZh7RZJc5jakvM6N5e2cP92i1tNeojGQURKpIeDINOhAKQLz3tAx1-dxoZV-gw6i7_5JCdVXWrbIS678BcF9bgTfYv_4?PARTNER=WRITER" width=234 border=0&gt;&lt;/a&gt; &lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZJyBdY0KFUgvAFcsqbF7O27hrUYTOWftQhM5t78Jpq9sisWqxdcakmL0Gd5nspwURrW5UmkJKirMYEi49HpCJaF?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=26 src="http://by1.storage.msn.com/y1pD1HIHZh7RZJOLYkx4lIH_6_svU5A0lufQtzi7F4FZVamxmkPvcQc4_j31IGedUb_5lgPRx4gQn0UASmhhfsW2jEy4u3Ke-ua?PARTNER=WRITER" width=200 border=0&gt;&lt;/a&gt; &lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZJPjuQG8i4t9BEBdf-sKAbqIEh05FLJTKWZQmtE2tdt30gU8qF3_lPYG2wasjEoIt7aUNL_CRC4cvhTu8DF6_Qd?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=196 alt=27 src="http://by1.storage.msn.com/y1pD1HIHZh7RZLxjNkTkyVzip6237rdzBIMbaRn2Kiwp-VCbKx5PFF57pHM48T1DZP2ybDD7V9ez2wwk1OnaeSmKXvoR-UHGYzU?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;The Steve and Dean Show: Steve and Dean share the techniques they use for tending the Bonsai trees at the Gardens. That tripod thingy -- they call it simply &amp;quot;the apparatus&amp;quot;) -- lets them suspend a tree while they clean out the roots for repotting. 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZLhaPsHDounVkkjB4geTmuBXNkZK_fUME8cXOk_1roai3-3wz54g5Q4lnF-ht1bR1l-PRwHQRpFFirQsHhhalWJ?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=196 alt=50 src="http://by1.storage.msn.com/y1pD1HIHZh7RZIvGT2T-JyvfOq6byJwtMn6ApsUHEXlyqzV-B4cBAOw_XXiaDnGpD_RAJm-2h4VnL6tIBFKxiM23F8w2-BCaUK7?PARTNER=WRITER" width=244 border=0&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZKiPZ2WWDDKjVc_X8s6pyNNeYg8xzfOIvFE3IRsCRmfd5uQM-P68e5yrxS4APfCRgRGd3eox8dRGDuCKIzdP0v7?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=196 alt=51 src="http://by1.storage.msn.com/y1pD1HIHZh7RZJK6Y9woSJ-Yu6bsU5sj-J-fwZDMn6fCA7rXvU3OlrO3Fq1LHkpC76bKcCl-hPf7WLp_noKcGLW83mJxGUhI-4h?PARTNER=WRITER" width=244 border=0&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZITKqEmyf7FX7Udm7GDqgp2CowulMe5wJ0pkRp_cPiouZZiMeVqXC0cH4ggOyh0b4jopfeZQYyag7I6m5nlX5lz?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=196 alt=52 src="http://by1.storage.msn.com/y1pD1HIHZh7RZJA_M044LX4Wqvqh8Uq5adrwmtXpexCc00YFrjY1r5SRK3t7tGo78GzINSHxxxi6mYRpS0BkdseHV-5R-blTDWG?PARTNER=WRITER" width=244 border=0&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZKCSaygdrCowl6diU2e1nMyf9j0q3E-HAnN9RDct2_crmBqY4DnIOJagP8jwdmZRzsnr8QFeOaxkAIxj7UgIDHX?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=196 alt=53 src="http://by1.storage.msn.com/y1pD1HIHZh7RZKaL1Q74MFZPome3x2BCByKpZb2J9628azlsNSQ4YZV2Gcj8T4GDQkcIXf8SjHYk4vHL0LPHzTggkc8a36qlxRH?PARTNER=WRITER" width=244 border=0&gt;&lt;a href="http://trjzfa.bay.livefilestore.com/y1p9ho9SVOVHo7QMm4RMDKsaQqqvIE1MwRSZJkBREqFVKdNM6VUy9NrdVrZvhDdK9L6OHbtwQTALxTTcc8pwAYF6gV5CBrqFORa?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=164 alt=54 src="http://by1.storage.msn.com/y1pD1HIHZh7RZIqxm91y946q8mAdFbHsXuffkE4QsTK5YBGaI_LnKHDJGp_eestDyRF-MUUbiLBhPIUi6KW27e0fmiG7VJPxUdv?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt;&lt;/a&gt;&lt;/a&gt;&lt;/a&gt;&lt;/a&gt; 
&lt;p&gt;The vendors at work. 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZJO3xjvEkM_1tm0jAsBsxuR03lkI1DVtE8YgyTfyErcDSgbqir7iqjQDRLPIjjTPPWy2pgALWcRoclEvWz5Vrry?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=209 alt=28 src="http://by1.storage.msn.com/y1pD1HIHZh7RZK5oCZLldWu7-ajDvgT-hcb_vWAPCW-3mtLxzS46n_nAUGuJ2-lM3i4B3F1Rhu8fsuAq25OobsH6PlMvliuPaaH?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; &lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZJpkaWbUgfUkvYsEYioOMzCtJnWXHpg9eav9ZuxsQUUcEJmOE4h2rN4W6zxOAle9Lv9CngOn-UZ4G4kMsZ_7y0I?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=29 src="http://by1.storage.msn.com/y1pD1HIHZh7RZJVcXYoHtgn-eRAVV351gFS9Rkx58lSdag8YNKWkGyvYUYMumNCPrN7Y3nDFDH-R_mukFeOUSGhcUDJTXGymhft?PARTNER=WRITER" width=188 border=0&gt;&lt;/a&gt; &lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZKfhcHsIm61qE03rXcu3szMchkWLpBTbEHLq2yv0y6fyWvlv3k-QwIXLfXMGdHVq2AcqV8pAizTcas8l3Suu8sm?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=221 alt=30 src="http://by1.storage.msn.com/y1pD1HIHZh7RZJYhR-EBCIVgHx5pXWSxx4oH4PvjKRRJEDg1cWPv3jxlxt7enCRUVV_kfpk5C0zpp17mcmqv9UD8KqzCLhyX2Yw?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;Oh, yeah, and then there were some trees. (My apologies to the artists for my lousy photography!) 
&lt;p&gt;&lt;a href="http://by1.storage.msn.com/y1pD1HIHZh7RZLYT7lNBZ5o2AW24DsCAPrA2jWvC5kBaxE81_o1z8fmLuNB4M4NLEvjd3-in3CVbAPSuUIkuGQRoz3UBQqhdN_-?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=202 alt=31 src="http://by1.storage.msn.com/y1pD1HIHZh7RZJx6SVIKUBKF2yk9tAQWemBGmFtkFizT9cnUV8Iu29J9ISF4m2MZ2ncJOfMNt8HLK3yaww-5yQ-HkhavZRmAIau?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; &lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6srZC3AOhGX82LPVIuslg_xjlmKXKtdy0VOkNSIEVfmvrhZhB1tgM8FyeOE1LCkLuceQ?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=243 alt=32 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srZn9JYcOc3e0JOqWnEHEb4vLVdyUr3UiXei4hYzR0ifhJgmsTIF41qF2TRPzKABdpc?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; &lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6sraRRsgDH6DHWzjGzNj8wLYJTf6SheSpNNP6txjaHxp5mDTDOBwkZ0NYDkT8zZ878rA?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=219 alt=33 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srZrnF47Y_Fg_wuY5qtU0L4cTovhVzKiMtRLucwN99sT9VAsg-y9FpZFEmSbtkrOSUo?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;And more trees. 
&lt;p&gt;&lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6srZolM5_EmVZxU3Y3hYN9S5quN2jSXdoqQ71O2k_qyG5ClKiz4W2j_gT3hj5LK2p_hY?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=34 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srblmNcpiojY1Zw0dxCcJgpD-cX7wWYosO9ChAoTK_oLO6MWpJr4RVwYZh5FzNgrLxw?PARTNER=WRITER" width=233 border=0&gt;&lt;/a&gt; &lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6sra2MkX8SMwuSSMIomTL1SlI1-z8MUabPocyvRAE2d3w1xLHSWLkCJXpXz-SzGNnHyg?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=209 alt=35 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srZIfhkCTvo4l-jP0MZLC4pycTYkWrbdmByPBxs9fJKOfHNZUYjKPZQufup3ULCc2R8?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; &lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6sra5j6ZUEN9bQTrK9S0ONNlghBaeQmK-lcBjF3kPBbAGq0VCR3pjBX46C4XKhjFJm4Q?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=234 alt=36 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srYBeUIFL1CUSDq1FuJIM1OvyCEJOw3rxjqv7IpJUQs2OiIrCsyMiKgW6APb5WEAK2w?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;And still more trees! 
&lt;p&gt;&lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6srY0TpaxXn0edrNenFsknbg7f8thWmYIxh5bonVnaR__sJcK5DLs0AmTLgAK9AwUDOY?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=37 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srb7XXZiQNUYrAm3U_-jF0UaI0MiwjTjC9RRmm9z49pgJzv5gGDjtd0vpYY72OxJaBo?PARTNER=WRITER" width=207 border=0&gt;&lt;/a&gt; &lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6srbmVdlf78IKJwf0SmLqY2eNzYwMWvyxhussgv5s7vExRo66E96R4F-9_ropWqOZDLc?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=38 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6sra-hsVAv_6tP7unNAnI91zPQYIxWriPHO2azVRzYvQKtbWM098K_cVuO9II2D8cQT0?PARTNER=WRITER" width=159 border=0&gt;&lt;/a&gt; &lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6srYz-RyZxFQxHlD-z2zhc7-qI71Cblytwc1D6xJA9EWhCH9zgRqCiRKlFJNljsCvnMM?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=39 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srYIVJz_GEg0rCULyYfEet62MQSgjzA8dS2ttmcyHPYn5gd3BU-hancGWxAkiR4KqKA?PARTNER=WRITER" width=131 border=0&gt;&lt;/a&gt; &lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6srZU5qhTYNKRBEOCqcgcZqAqdvQWGK4WolBa20_wR5vBqTvenq14nkCCnGLyonC2UbE?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=40 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6sraBsZynwffPo2mRP2uYc4Z21JdXVQY-kkIJ-NRW3ArvCFR7k9z0HJyI_mbK4lLyEwA?PARTNER=WRITER" width=184 border=0&gt;&lt;/a&gt; 
&lt;p&gt;And I'm not even &lt;em&gt;close&lt;/em&gt; to photographing every tree in the show. 
&lt;p&gt; &lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6srZbnCz4R5LYib0j5XVDNSQ-SUryPgE40bu0VAEwWBTUD3wNPGnWCcM5b3uz5tMiU-o?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=41 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srZ8GIbddVQOr3AoBuFsUugmyxBH92bBNJ9CtSxL5AOQJLzwL1MpQPl3n7DN5NN3Ph8?PARTNER=WRITER" width=175 border=0&gt;&lt;/a&gt; &lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6srYRMJH0AKjjBf70dt3Yv84LxUDFEqE8bShWiiK5R9ULQhqBpcS6OV8rQmcXtF0jyBM?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=182 alt=42 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6sraIbbdPYys-2bkdHnvqaMlm9UTKoWy9lkixSHLF5IstHDFSzQohjSkqB1gKz_ZFbXE?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; &lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6srZmKhyV8GP6GoBhD494VfQwn8ynDF2E4zI18FPXmQwabOhQTa4ELW6_OLPO8SR5avI?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=43 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srbZn_-4GVyIiyUkZL6Tv6FAdNL8G-p-rrjz2qxhq6CxYosy64xYCFtjQyT_-SA5m9Y?PARTNER=WRITER" width=236 border=0&gt;&lt;/a&gt; 
&lt;p&gt;These were just the ones I could capture before the crowd got too thick for me to navigate. 
&lt;p&gt; &lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6srYiYCWR--VIKZvWUuBGIu0RMWPny_aWq-PAc4DtsaOkJzicl5n4DRzpD0Wp7r-Mo80?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=44 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srbgM4r3RsBSOLdGX6x1YCmoGSfpwAcI5Zn9EqCebESJ6JPPZpMbbBVwvsf_8xI9C4c?PARTNER=WRITER" width=155 border=0&gt;&lt;/a&gt; &lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6srb-7Lz-UsVhK-pnd-VwQODC-DaBwZp7v-Iy8WUtAkvFZAopeW0ycFyNFNfZTpZFEuA?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=45 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6sracpziG_AcQItSQdIx5XVZLYNxmuriqCBxlmAcu0ABunxVX08ieGDDMUEK6whiQp5E?PARTNER=WRITER" width=218 border=0&gt;&lt;/a&gt; &lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6sraRFRfPala_3ZLF1gW1NC-lOEIM8ew21AMf2dYnUzGnW4F862oJ5DO-0lSR1p4vs9w?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=46 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srZFYHl_DGwWdpwka4jXg-wXuxVDcoQjvR7E7JP8QdW3Nb6d8OQIwZhidbpy6pIyqS0?PARTNER=WRITER" width=178 border=0&gt;&lt;/a&gt; 
&lt;p&gt;We have a total of 127 trees... 
&lt;p&gt; &lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6srbsV5aCR8awQLveEdJ_OZtyyQviR0ZmzeC6F-vZPvwYD72Mnm-8QXX-Hw_IQWwizHk?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=226 alt=47 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srYygTVv-tE_BcEHw6pdtpt50LpLj4hUmIF3tOqQqHadyeWJXlv4RpfaWuxRIU5JLgA?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; &lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6sraTWHuWGopVz6LqiyXJUv8w_41UbytVa7GGucdJc8yA6F_PlvzynrDVjnTqQuoJrKg?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=178 alt=48 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srZezNMbfLgR8UefNEv1-Adq5XFqAxxsO91O35st_Gv5DK953VmHEuNkJEQTsiaG72o?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; &lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6srZAmE4xmnih5jVf4SokjDeXAmbrHra_Do7pRRdgbuse7IVrJLTfbYx6fS5zrsqOXsQ?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=49 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6sraAoJXC_NS1fpXp99FN7JzBC4P9ejjHiQEOoFscRccIUqJz_qlewJfct7tLjrbFd04?PARTNER=WRITER" width=228 border=0&gt;&lt;/a&gt;       
&lt;p&gt;...from 44 artists! 
&lt;p&gt;&lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6srZyTc0eYMhM_tKKySlzVqv7XJpXeGBhnewxskKTZF5EIpg0O9zGA_4-H5F6gdoAMks?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=196 alt=5 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srbnoZFWbt1uBPwF_N6tMs6u5EgqW127VzB-bQE28k9Zhgrm2IDsm4hq3MlMUn_XQdY?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;Here's my contribution to the show. 
&lt;p&gt;&lt;a href="http://byfiles.storage.msn.com/y1pHGNmJSJ6sra-SXX-NFq7zw7GgJ4_IDh3PwgqpUjSv94XJRbDA0xVlgnxM5ru8OmWC01lEtdWU50?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=208 alt=20 src="http://byfiles.storage.msn.com/y1pHGNmJSJ6srYKECLpEnm3w_KUW5wudG-01nCl6LNCN-3wlKibO4H78QxCpRl4xiuLLGrkdB_yMmo?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;Here's my office. I'm not there (who ya think's taking the picture?), but Amy is.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+Behind+the+Scenes+at+the+2008+Michigan+All-State+Bonsai+Show&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Amusement</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1569.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1569.entry</guid><pubDate>Sat, 03 May 2008 23:52:36 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1569/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1569.entry#comment</wfw:comment><dcterms:modified>2008-05-05T04:23:31Z</dcterms:modified></item><item><title>Concern vs. Worry vs. Obliviousness</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1449.entry</link><description>&lt;table cellspacing=0 cellpadding=2 width=650 border=3&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign=top width=232&gt;
&lt;h3&gt;Concern&lt;/h3&gt;
&lt;td valign=top width=230&gt;
&lt;h3&gt;Worry&lt;/h3&gt;
&lt;td valign=top width=182&gt;
&lt;h3&gt;Obliviousness&lt;/h3&gt;
&lt;tr&gt;
&lt;td valign=top width=232&gt;&amp;quot;Has this happened yet?&amp;quot; 
&lt;td valign=top width=230&gt;&amp;quot;Oh, no, what if this happens?&amp;quot; 
&lt;td valign=top width=182&gt;&amp;quot;This could never happen.&amp;quot; 
&lt;tr&gt;
&lt;td valign=top width=232&gt;&amp;quot;How likely is this to happen?&amp;quot; 
&lt;td valign=top width=230&gt;&amp;quot;Oh, no, what if this happens?&amp;quot; 
&lt;td valign=top width=182&gt;&amp;quot;This could never happen.&amp;quot; 
&lt;tr&gt;
&lt;td valign=top width=232&gt;&amp;quot;How can we tell if this happens?&amp;quot; 
&lt;td valign=top width=230&gt;&amp;quot;Oh, no, what if this happens?&amp;quot; 
&lt;td valign=top width=182&gt;&amp;quot;See no evil, hear no evil, speak no evil...&amp;quot; 
&lt;tr&gt;
&lt;td valign=top width=232&gt;&amp;quot;Can we prevent this from happening?&amp;quot; 
&lt;td valign=top width=230&gt;&amp;quot;Oh, no, what if this happens?&amp;quot; 
&lt;td valign=top width=182&gt;&amp;quot;This could never happen.&amp;quot; 
&lt;tr&gt;
&lt;td valign=top width=232&gt;&amp;quot;What will be the impact if this happens?&amp;quot; 
&lt;td valign=top width=230&gt;&amp;quot;Oh, no, what if this happens?&amp;quot; 
&lt;td valign=top width=182&gt;&amp;quot;No problem...&amp;quot; 
&lt;tr&gt;
&lt;td valign=top width=232&gt;&amp;quot;Can we prepare for that impact?&amp;quot; 
&lt;td valign=top width=230&gt;&amp;quot;Oh, no, what if this happens?&amp;quot; 
&lt;td valign=top width=182&gt;&amp;quot;Cross that bridge when we come to it.&amp;quot; 
&lt;tr&gt;
&lt;td valign=top width=232&gt;&amp;quot;Can we manage that impact if it happens?&amp;quot; 
&lt;td valign=top width=230&gt;&amp;quot;Oh, no, what if this happens?&amp;quot; 
&lt;td valign=top width=182&gt;&amp;quot;Cross that bridge when we come to it.&amp;quot; 
&lt;tr&gt;
&lt;td valign=top width=232&gt;&amp;quot;Who will be responsible for watching and managing this?&amp;quot; 
&lt;td valign=top width=230&gt;&amp;quot;Oh, no, who will we blame if this happens?&amp;quot; 
&lt;td valign=top width=182&gt;&amp;quot;I didn't do it!&amp;quot; 
&lt;tr&gt;
&lt;td valign=top width=232&gt;&amp;quot;We'd better do something about this!&amp;quot; 
&lt;td valign=top width=230&gt;&amp;quot;Somebody'd better do something about this!&amp;quot; 
&lt;td valign=top width=182&gt;&amp;quot;This could never happen.&amp;quot; 
&lt;tr&gt;
&lt;td valign=top width=232&gt;&amp;quot;There's nothing to do about this right now, so let's focus on what we &lt;strong&gt;can&lt;/strong&gt; do.&amp;quot; 
&lt;td valign=top width=230&gt;&amp;quot;Oh, no, what if this happens?&amp;quot; 
&lt;td valign=top width=182&gt;&amp;quot;Looks like smooooooth sailing ahead.&amp;quot;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Which column describes &lt;strong&gt;your&lt;/strong&gt; project management techniques? 
&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; This has &lt;em&gt;nothing&lt;/em&gt; to do with any of my current projects or clients. The person who inspired this already knows who he is, and is firmly in column 1. Any &lt;em&gt;other&lt;/em&gt; resemblance to actual persons or events is purely coincidental. 
&lt;p&gt;No llamas were injured in the making of this post. 
&lt;p&gt; &lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+Concern+vs.+Worry+vs.+Obliviousness&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Code Is Not Enough</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1449.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1449.entry</guid><pubDate>Fri, 25 Apr 2008 18:30:26 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1449/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1449.entry#comment</wfw:comment><dcterms:modified>2008-04-25T18:55:03Z</dcterms:modified></item><item><title>Moonfall: I Don't Get It...</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1443.entry</link><description>&lt;div&gt;I've decided: &lt;a href="http://www.jackmcdevitt.com/" target="_blank"&gt;Jack McDevitt&lt;/a&gt; is my favorite modern SF author. He writes my kinda SF: hard, hard, hard, with real characters facing real situations with only science and courage and maybe a little faith on their side. There's not nearly enough hard SF for my taste out there, and most of what there is these days is &lt;strong&gt;military&lt;/strong&gt; hard SF. Not that there's anything wrong with a good &lt;a href="http://www.davidweber.net/" target="_blank"&gt;David Weber&lt;/a&gt; or &lt;a href="http://www.scalzi.com/" target="_blank"&gt;John Scalzi&lt;/a&gt; story; but I prefer stories about exploration and colonization, light on the aliens, heavy on the realistic technology. &lt;a href="http://www.allensteele.com/" target="_blank"&gt;Allen Steele&lt;/a&gt; does that pretty well, along with &lt;a href="http://www.benbova.net/" target="_blank"&gt;Ben Bova&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Kim_Stanley_Robinson" target="_blank"&gt;Kim Stanley Robinson&lt;/a&gt;; but I think Jack McDevitt does it better.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Now I'm reading his novel &lt;a href="http://www.sfwa.org/members/mcdevitt/Bibliography.html#Moonfall" target="_blank"&gt;Moonfall&lt;/a&gt;. By all rights, this should be one of my favorites, because my favorite setting is the near-future exploration of the Solar System. But somehow, I bought this book, and lost it in the stack before I could read it. So then I forgot I had it. So I bought it again, and again lost it in the stack, and again forgot I had it. And yes, during a recent book search, I found &lt;strong&gt;three&lt;/strong&gt; copies. This time, I determined to read it. And I'm loving it. (And hey -- now I have one copy to read at home, one for the car, and one spare.)&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;But while I'm no expert on astronomy and orbital mechanics, and while I'm only two-thirds of the way through, I'm confused. In fact, I just don't get it.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;The premise -- no spoilers here, because this is almost all on the cover -- is that, during a total Solar eclipse, we detect a comet. This is an extrasolar comet. Every comet we've known up to now has been part of the Solar System, so they can't travel faster then the Sun's escape velocity. If they did, they would escape (by definition). Because this comet is from outside the Solar System, it's larger than usual comets, and traveling 5 to 8 times as fast. It's a deadly missile, on a collision course with the Moon. And when it hits, the Moon will shatter; and because the USA will be facing the Moon at the time, we'll get the worst of the resulting meteor rain. So the book tells the story of the government and the people first denying the problem and then facing the consequences. (Yes, yes, &lt;a href="http://www.amazon.com/Lucifers-Hammer-Larry-Niven/dp/0449208133" target="_blank"&gt;some of this sounds familiar&lt;/a&gt;; but it's a good story even so. Judge it on its own merits.)&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;But it's the particulars of the timing that have me confused.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;The eclipse reaches totality over Ohio at 12:30 p.m. on April 8, 2024. That means that, roughly speaking, the Sun and the Moon and the Earth were in a straight line at that time. That also means that the far side was directly facing the Sun, and the Moon was almost directly over the Eastern USA.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;The comet hits the Moon -- somewhere on the far side, to be specific, though that leaves a lot of wiggle room -- at 10:35 p.m.on April 13.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Now the book says that the Eastern USA was able to view the Moon during the impact. And I just don't get it. This picture will illustrate:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;a href="http://byfiles.storage.live.com/y1pHGNmJSJ6sraAtFEKDpV1tmkGu4tW9qjm5c-UIYACAlh1KaMcQjXNujZ43owKwfMAS6bqPTOp5Qo" target="_blank"&gt;&lt;img style="width:798px;height:434px" height=121 alt=Moonfall src="http://byfiles.storage.live.com/y1pHGNmJSJ6sraAtFEKDpV1tmkGu4tW9qjm5c-UIYACAlh1KaMcQjXNujZ43owKwfMAS6bqPTOp5Qo" width=300&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;As best I can figure, at 10:35 p.m., the Eastern USA would be roughly 160 degrees away from the line from the Sun to the Earth, having rotated almost half way around. (The Sun-Earth line will also have rotated roughly 5 degrees, which adds some imprecisions to my later numbers. This is cocktail napkin astronomy, not the real thing.) Meanwhile, the Moon would have traveled roughly 5 days along its 29.5 day orbit, or around 60-70 degrees (depending on how you figure it). Now I'm no astronomer. I don't calculate orbits. But the best I can see is that the Moon and the Eastern USA might be within 90 degrees of each other, which (I think) would put the Moon nearly over the horizon, if not over it. And if I got the travel directions wrong, they might be as much as 140 degrees apart, putting practically the whole Earth between them. I'm not sure how the Eastern USA can get a good look at the impact.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Furthermore, the premise is that the comet hits the far side, thus blasting a lot of debris our way. Well, if the Moon has traveled only 60-70 degrees around, then only roughly half of the far side is facing the sun; and since they discovered the comet while they were watching the eclipse (with properly approved eye protection, kids!), then only half the far side would be facing the comet. And so the bulk of the debris blasted loose from the Moon would be blasted away from the sun; and given the angles, that seems like it would be at an angle that would mostly miss the Earth as well. Sure, some of it would fall our way; but the impact angles don't line up well. I can imagine some of it launching into a long elliptical orbit that might hit us hard later (and indeed, I think that's coming in the part I haven't read yet); but debris falling directly on us is hard for me to envision.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;But I'm an amateur astronomer at best. Maybe there's something here I'm missing. After all, Mr. McDevitt had consultants from NASA and the U.S. Naval Observatory helping him out. But I just can't see how it lines up. Feel free to tell me where I'm being stupid, if you can figure it out.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+Moonfall%3a+I+Don't+Get+It...&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Books</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1443.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1443.entry</guid><pubDate>Sat, 19 Apr 2008 01:45:48 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1443/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1443.entry#comment</wfw:comment><dcterms:modified>2008-04-19T02:23:48Z</dcterms:modified></item><item><title>Somewhere Out There, Duelists Are Weeping</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1442.entry</link><description>&lt;div&gt;&lt;a href="http://www.london-grill.com/plainwell_menu.htm" target="_blank"&gt;London Grill, Plainwell&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Swords on the wall.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Choices including Vindaloo Pork, Pork porterhouse, Whitefish Grenoble, Fish in a Bag, Tandoori Chicken, Savory pies, Butter Chicken curry, Stilton Steak, Guinness Beef, Fish and Chips, Indian Shrimp, Black Bean Chili Cod (Sautéed Cod), Railway Lamb Curry, Vegetarian Curries, Pub Burger, Bombay Dog, Indonesian Satay, Scotch Egg, Singapore Wings, Curried Chicken Wings, Bubble and Squeak, Stacked Naan, Beer Battered Shrimp, Black Bottom Pie, Peanut Butter Pie, Sticky Toffee Pudding.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;And in case you missed it: Sticky Toffee Pudding. Oh, my word, what a treat!&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;My favorite &lt;a href="http://music.msn.com/album/Default.aspx?idtype=amg&amp;amp;album=843931&amp;amp;silentchk=1&amp;amp;" target="_blank"&gt;Gaelic Storm&lt;/a&gt; album playing on the stereo.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;And free WiFi.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;So why are &lt;a href="http://www.aaduelist.org/" target="_blank"&gt;Duelists&lt;/a&gt; weeping?&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Because they're not here.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;And because this is the beer list they're missing out on: Kaliber, Martens, Murphy’s Red, Abbot Ale, Woodpecker Cider, Harp Lager, Tennants, Red Stripe, Wexford Irish Crème Ale, St. Pauli Girl Dark, Whitbread Pale Ale, McEwan’s India Pale Ale, Old Speckled Hen, McEwan's Scotch Ale, Hobgoblin, Amstel Light, Mackeson, Bass Ale, Merlin’s Ale, Fullers’ London Porter, Fiddler’s Elbow, Black Sheep Ale, Old Jock Ale, Monty Python’s Holy Grail Ale, St. Peter’s Old-Style Porter, John Courage, Guinness on tap, Fuller’s ESB on tap, Newcastle Brown Ale on tap, and Boddington’s Pub Ale.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Plus Copperidge Cabernet Sauvignon, Copperidge Chardonnay, Copperidge White Zinfandel, Red Rock Merlot, Moore’s Creek Shiraz, Indigo Hills Pinot Noir, Gabbiano Pinot Grigio, Schmitt Riesling, Kendall Jackson Chardonnay, &lt;/div&gt;
&lt;div&gt;Fonseca Bin 27 Port, Dow’s Fine Ruby Port, Dow’s Trademark Port, Dow’s Boardroom Port, Taylor Fladgate 10 year Port, Taylor Fladgate 20 year Port, Noval 10 year Port, Noval 20 year, Curious &amp;amp; Ancient 20 year Port, Oban 14yr Single Malt Scotch, Cragganmore  12yr Single Malt Scotch, Dalwhinnie  15yr Single Malt Scotch, Lagavulin  16yr&lt;/div&gt;
&lt;div&gt;Glenkinchie Single Malt Scotch, Talisker  10yr Single Malt Scotch, Aberlour Single Malt Scotch, Laphroig Single Malt Scotch, McClelland’s Single Malt Scotch, and Macallan Single Malt Scotch.&lt;br&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;And because those are all wasted on me, of course, but would be greatly enjoyed by them.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Still, despite not appreciating the libations, I find London Grill to be about the perfect place to while away a few hours on a fine Friday afternoon.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+Somewhere+Out+There%2c+Duelists+Are+Weeping&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Amusement</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1442.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1442.entry</guid><pubDate>Sat, 19 Apr 2008 00:37:20 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1442/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1442.entry#comment</wfw:comment><dcterms:modified>2008-04-19T00:37:20Z</dcterms:modified></item><item><title>And Speaking of Fencing...</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1441.entry</link><description>&lt;div&gt;...the 11th annual &lt;a href="http://aaduelist.org/" target="_blank"&gt;Ann Arbor Duelist Tournament&lt;/a&gt; will be held on August 23, 2008. Details to follow.&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+And+Speaking+of+Fencing...&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Fencing</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1441.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1441.entry</guid><pubDate>Tue, 08 Apr 2008 00:45:12 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1441/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1441.entry#comment</wfw:comment><dcterms:modified>2008-04-08T00:45:12Z</dcterms:modified></item><item><title>And It Just Keeps Getting Smaller</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1439.entry</link><description>&lt;div&gt;Way back when, &lt;a href="http://tabletumlnews.powerblogs.com/posts/1171475743.shtml" target="_blank"&gt;I wrote&lt;/a&gt;:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;blockquote dir=ltr style="margin-right:0px"&gt;
&lt;div&gt;&lt;strong&gt;Job interview advice for programmers&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;When you explain to the interviewer at the new company that you're looking to work with new technology because the system at your current company is so well architected that there's just no reason for them to switch from the old technology, it always helps when the interviewer turns out to be the former architect for the current company.&lt;br&gt;&lt;br&gt;&lt;i&gt;It's a small world, after all...&lt;br&gt;It's a small world, after all...&lt;br&gt;It's a small world, after all...&lt;br&gt;It's a small, small world...&lt;/i&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;div&gt;Tomorrow, that interviewer and architect -- who has also been my boss for the last 14 months -- leaves for a new job in Indiana.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Today I learned that when he was at U of M in the middle 80s, he fenced at &lt;a href="http://www.annarborymca.org/" target="_blank"&gt;the Ann Arbor YMCA&lt;/a&gt; with &lt;a href="http://annarborsword.com/" target="_blank"&gt;the Ann Arbor Sword Club&lt;/a&gt;, taught by the illustrious David Hoornstra. (And no, there's no sarcasm there at all. I think David's truly a gentleman and a scholar.) I didn't fence at the time; but my roommate and best friend and eventually best man at my wedding fenced at the Y with the AASC.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;A decade or so later, after he had long since moved on, I got a job in Ann Arbor; but we kept our house in Hopkins, and I commuted home on the weekends. That left me time to kill during the week. So I went to the Y and signed up for fencing classes, which were taught by the last of David's students still at the Y. For reasons still unclear, a large number of us showed up to learn fencing that session; and we formed a group that lasts to this day, through various changes in membership. And that group, &lt;a href="http://aaduelist.org/Club/index.html" target="_blank"&gt;the Ann Arbor Dueling Society&lt;/a&gt;, still takes pride in our &amp;quot;ancestral&amp;quot; ties to the AASC: if they had not existed, we would not exist today, and they're always welcome on our strip. And many of us have had the privilege to both study under David and meet him on the strip.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;/div&gt;
&lt;div&gt;And as for my soon-to-be former boss: I studied where he studied, worked where he worked, and fenced where he fenced. Makes me wonder if a trip to Indiana is in my future...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;em&gt;It's a small world, after all...&lt;br&gt;It's a small world, after all...&lt;br&gt;It's a small world, after all...&lt;br&gt;It's a small, small world...&lt;/em&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+And+It+Just+Keeps+Getting+Smaller&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Fencing</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1439.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1439.entry</guid><pubDate>Tue, 08 Apr 2008 00:38:07 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1439/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1439.entry#comment</wfw:comment><dcterms:modified>2008-04-08T00:41:20Z</dcterms:modified></item><item><title>Hoody-hoo!</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1438.entry</link><description>&lt;div&gt;I tought this was pretty cool: &lt;a href="http://www.mcdonalds.com/wireless/general_info.html" target="_blank"&gt;McDonald's has WiFi at many of their locations&lt;/a&gt;. Yeah, there's a monthly fee; but since there's one only 5 miles from my house, and since I can't get an affordble high-speed connection of &lt;em&gt;any&lt;/em&gt; sort at home, this seemed like a good deal.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;But this week, I learned that Burger King has &lt;strong&gt;free&lt;/strong&gt; WiFi. And there's one right next to the McDonald's near me.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Hey, McDonald's, guess &lt;a href="http://www.bk.com/#menu=2,42,-1" target="_blank"&gt;what I'm having for dinner this week&lt;/a&gt;?&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+Hoody-hoo!&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Amusement</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1438.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1438.entry</guid><pubDate>Tue, 08 Apr 2008 00:14:35 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1438/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1438.entry#comment</wfw:comment><dcterms:modified>2008-04-08T00:14:35Z</dcterms:modified></item><item><title>The Department of Motor Vehicles and Clipboards</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1437.entry</link><description>&lt;div&gt;All right, I've had enough. It's time for me to issue a decree:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Henceforth, programmers who wish to use the clipboard must be licensed in the same fashion as automobile drivers are licensed by the Department of Motor Vehicles.&lt;/strong&gt; (Yes, yes, we call it the Secretary of State's Office here in Michigan; but more people know it as the DMV.)&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;1. Before you may use the clipboard to copy code, you must take 20 hours of classroom instruction on how &lt;em&gt;not&lt;/em&gt; to use your clipboard.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;2. Before you may be fully licensed to use your clipboard, you must undergo a six-month probationary period during which you may only use the clipboard with a grown up, licensed programmer observing your use of the clipboard.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;3. Upon completing your probationary period, you may apply for a clipboard license at your nearest Department of Responsible Programmers. There your code will be examined for any signs of clipboard abuse. (&lt;strong&gt;Note:&lt;/strong&gt; Unlike the tests at the DMV, this examination will &lt;em&gt;not&lt;/em&gt; be easy. It will be brutal. You have been warned.)&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;4. If your code is deemed acceptable by a Responsible Programmer, you will receive a clipboard license, and be authorized to copy code as needed.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;5. At any time, your code may be inspected for clipboard abuse. You will receive one (1) point for each line of unjustified code copying. If you accumulate 100 or more points, you will have to return to Clipboard School, or lose your license.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;6. If at any time you accumulate 200 points, your clipboard license will be immediately revoked. You will be eligible to reapply after 1 year.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;7. If at any time you accumulate 500 points, you will be shot. While we know this is harsh, it's the only economical option. We can't afford the cost of maintaining your code.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;8. Clipboarding while drunk is grounds for immediate revocation of your license.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Yes, this means &lt;strong&gt;you!&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+The+Department+of+Motor+Vehicles+and+Clipboards&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Code Is Not Enough</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1437.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1437.entry</guid><pubDate>Wed, 19 Mar 2008 11:04:37 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1437/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1437.entry#comment</wfw:comment><dcterms:modified>2008-03-19T11:04:37Z</dcterms:modified></item><item><title>I think they've been sampling their wares a bit too much</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1431.entry</link><description>&lt;div&gt;I like cheese. Practically any kind. Hard, soft, sharp, mild, smoky, creamy, stinky... I like cheese.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;I hate alcohol. Nothing moral about my dislike, I just can't stand the taste. Whenever someone tells me, &amp;quot;Oh, you'll like &lt;em&gt;this&lt;/em&gt;. It's different,&amp;quot; it all tastes like beer to me -- or like whatever that taste is in beer that makes me hate beer. I can tolerate wine, but it still tastes like beer.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;So when I saw &lt;a href="http://www.fiscalinicheese.homestead.com/FC/Fiscalini-PM-Lg.jpg"&gt;Purple Moon&lt;/a&gt; from &lt;a href="http://fiscalinicheese.homestead.com/nfc01.html"&gt;Fiscalini Farmstead&lt;/a&gt;, I was torn: good cheddar, soaked in cabernet. Now I've had meals cooked in wine or beer before, and the cooking process boiled off the alcohol. The taste I hated was gone. So the question was: would cheese soaked in cabernet taste good, or taste like (blech!) alcohol. I had to find out.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Well, when I opened the package, one whiff answered my question. I let a coworker (someone who actually drinks alcohol, so he has more experience than me) take a smell; and his response was, &amp;quot;That's &lt;strong&gt;strong!&lt;/strong&gt;&amp;quot;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;So then I wondered whether it was even any good or not. I mean, cheese and wine are both supposed to age, so it can't go bad, right? But still, alcohol usually smells spoiled to me; and this smelled spoiled.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;So I checked the expiration date; and that's when I wondered if the fine folks from Fiscalini have perhaps been sampling the Purple Moon a bit too much: &amp;quot;BEST BY 02/30/08&amp;quot;.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;P.S. Actually, Purple Moon is some mighty fine cheese. I can't taste the alcohol at all. But I sure can smell it!&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+I+think+they've+been+sampling+their+wares+a+bit+too+much&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Amusement</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1431.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1431.entry</guid><pubDate>Tue, 04 Mar 2008 02:12:38 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1431/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1431.entry#comment</wfw:comment><dcterms:modified>2008-03-04T02:14:50Z</dcterms:modified></item><item><title>Blacklists are worse than spam</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1429.entry</link><description>&lt;div&gt;Spam wastes the time it takes to hit the Delete key. Blacklists stop legitimate business messages between individuals, and can cost real money. Blacklists are worse than spam.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;If you're using an email service that relies on a blacklist -- and that includes you people using Yahoo.com -- and you stop getting email from me because some idiot at some T-Mobile hotspot was sending spam and Spamhaus decided to block the whole hotspot to stop the one idiot, it ain't my problem any more. Dump Yahoo and get a provider who doesn't use a blacklist.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+Blacklists+are+worse+than+spam&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1429.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1429.entry</guid><pubDate>Mon, 11 Feb 2008 06:56:10 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1429/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1429.entry#comment</wfw:comment><dcterms:modified>2008-02-11T06:56:10Z</dcterms:modified></item><item><title>If a Picture is Worth 1,000 Words, What Are Three Pictures Worth?</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1421.entry</link><description>&lt;div&gt;Answer: 85%, we hope. Or at least a good chunk of it...&lt;/div&gt;
&lt;div&gt;&lt;img alt=KevinAndMartinHaveNoLives src="http://byfiles.storage.live.com/y1pHGNmJSJ6srZcnC0YOzqBx8dnbDO9-CzLVdiKpFXK75uuPyK-E7y_STX6r5MEmkHwUPisg65vM8s"&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;img alt=KevinAndMartinDiscoverTheCommons src="http://byfiles.storage.live.com/y1pHGNmJSJ6sra_A3RzUDkwiUQBQ_1wkDgg462n-qr0QqAhwAe8ZmEuP2zouZvRPDQJBQABomIiFeg"&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;img alt=TheDesignCommons src="http://byfiles.storage.live.com/y1pHGNmJSJ6srYLgy04_BspbRIiH-5QTAG4i_DblYX8m53ktMs-QniOUV_RkfbgvuSiRxdwnuzOLE4"&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+If+a+Picture+is+Worth+1%2c000+Words%2c+What+Are+Three+Pictures+Worth%3f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Code Is Not Enough</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1421.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1421.entry</guid><pubDate>Sat, 09 Feb 2008 07:29:56 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1421/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1421.entry#comment</wfw:comment><dcterms:modified>2008-02-09T07:29:56Z</dcterms:modified></item><item><title>Ink in 60 Seconds at the January MDSM</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1418.entry</link><description>&lt;div&gt;This Thursday, I'll be presenting &lt;a href="http://www.devmi.com/meetings/2008/Pages/2008_01_24.aspx" target="_blank"&gt;Ink in 60 Seconds 2.0&lt;/a&gt; at &lt;a href="http://www.devmi.com/Pages/default.aspx" target="_blank"&gt;Microsoft Developers of Southwest Michigan&lt;/a&gt;. If you plan to attend, please RSVP to &lt;a href="mailto:Contact@DevMI.com"&gt;Contact@DevMI.com&lt;/a&gt;, so we'll know how much food to order. A description follows...&lt;/div&gt;
&lt;h2&gt;Ink in 60 Seconds 2.0&lt;/h2&gt;
&lt;div&gt;So why aren't you writing Tablet PC applications with .NET yet?&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;Do you think it's too difficult? Do you think you're too busy to learn the Tablet PC API? Well, Martin says you're wrong. 
&lt;p&gt;Or do you just not see what sort of Tablet PC app you might build? Do you think that there's no great Tablet PC applications out there for you? Well, Martin says you're wrong again. 
&lt;p&gt;And Martin's so sure you're wrong, he's going to prove it to you by building some simple little Tablet PC samples -- samples you can easily adapt into your own applications -- each written in under 60 seconds. 
&lt;p&gt;Then after each sample is running, he'll explain to you what he did, how he did it, and how you might expand on it. Some of the samples he'll build include: 
&lt;ul&gt;
&lt;li&gt;60 Seconds to Ink: Capturing Ink in a window in your application. 
&lt;li&gt;60 Seconds to Ink Anywhere: Capturing Ink in any window in your application. 
&lt;li&gt;60 Seconds to Programmatic Ink: Adding Strokes programmatically to an Ink surface. 
&lt;li&gt;60 Seconds to Saving Ink: Saving your Ink to a file. 
&lt;li&gt;60 Seconds to Loading Ink: Loading your Ink from a file. 
&lt;li&gt;60 Seconds to Saving Some Ink: Saving part of an Ink image. 
&lt;li&gt;60 Seconds to Loading Some Ink: Loading Ink into an existing image. 
&lt;li&gt;60 Seconds to Exporting Ink: Saving Ink as a bitmap. 
&lt;li&gt;60 Seconds to Selecting and Resizing: Manipulating the Ink that you draw. 
&lt;li&gt;60 Seconds to Erasing: Erasing the Ink that you draw. 
&lt;li&gt;60 Seconds to Drawing Attributes: Drawing Ink in multiple colors and pen shapes. 
&lt;li&gt;60 Seconds to Clipboarding: Copying and pasting Ink. 
&lt;li&gt;60 Seconds to Simple Handwriting Recognition: Simple handwriting in a form. 
&lt;li&gt;60 Secondes au Français: Handwriting recognition in another language. 
&lt;li&gt;60 Seconds to More Handwriting Recognition: Handwriting recognition mixed with typing. 
&lt;li&gt;60 Seconds to Handwriting Recognition Anywhere: Handwriting recognition from any Ink surface. 
&lt;li&gt;60 Secondes à Plus Français: More handwriting recognition in another language. 
&lt;li&gt;60 Seconds to Gestures: Ink shape recognition. 
&lt;li&gt;60 Seconds to Text-to-Speech: A simple talking application. 
&lt;li&gt;60 Seconds to Speech Recognition: A simple voice-command application. (New for this presentation!) &lt;/ul&gt;
&lt;p&gt;And just in case those samples don't inspire you to devise a great new Tablet PC application, Martin will finish the presentation by spending 60 seconds (probably more) describing each of ten different killer Tablet PC applications that he's just too busy to write himself, but which he thinks somebody should be writing.&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+Ink+in+60+Seconds+at+the+January+MDSM&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Speaking Engagements</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1418.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1418.entry</guid><pubDate>Mon, 21 Jan 2008 07:54:38 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1418/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1418.entry#comment</wfw:comment><dcterms:modified>2008-01-21T07:54:38Z</dcterms:modified></item><item><title>Dr. Strained Memory or: How I Learned to Stop Worrying and Love Compact Framework Memory Management</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1416.entry</link><description>&lt;div&gt;OK... So why has &lt;a href="http://tabletuml.spaces.live.com/blog/cns!2D0DCE281FBB99D!1415.entry"&gt;my DODO been incalculable&lt;/a&gt;? Well, because we've been chasing down memory problems in our .NET Compact Framework 2.0 app that runs under Windows CE 5.0.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;And if that just sent a chill down your spine, then you've probably been here before. You have my sympathies.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;If you haven't been here before but you're planning a CF/CE app: Be afraid. Be very afraid.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;The following is a brief summary of what we've learned (the hard way) about memory management in a Compact Framework application. &lt;/div&gt;
&lt;h2&gt;&amp;quot;In the beginning, the Universe was created. This made a lot of people angry, and has been widely regarded as a bad idea.&amp;quot;&lt;/h2&gt;
&lt;div&gt;My client's application comes in two versions: one that runs on a laptop, and one that runs on a handheld computer running &lt;a href="http://msdn2.microsoft.com/en-us/library/ms905511.aspx" target="_blank"&gt;Windows CE 5&lt;/a&gt;. Since both versions run .NET -- &lt;a href="http://support.microsoft.com/?scid=ph;en-us;8291"&gt;.NET Framework 2.0&lt;/a&gt; on the laptop, &lt;a href="http://msdn2.microsoft.com/en-us/netframework/aa497277.aspx" target="_blank"&gt;.NET Compact Framework 2.0&lt;/a&gt; on the handheld -- they figured to share a lot of code between the two platforms, including a homebrew implementation of a &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/08/DesignPatterns/default.aspx" rel=nofollow&gt;Model-View-Presenter&lt;/a&gt; architecture. The implementation of View (and Presenter, to a lesser extent) had to change across platforms; but for the most part, what was a good architecture for the laptop was seen as a good architecture for the handheld.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;First mistake, there...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;And although I wasn't here when that mistake was made, I probably would've made the same mistake myself. I didn't realize that on the handheld platform, you need different coding priorities.&lt;/div&gt;
&lt;h2&gt;&amp;quot;Do you know what the secret of life is? This. One thing. Just one thing. You stick to that and the rest don't mean ****.&amp;quot;&lt;/h2&gt;
&lt;div&gt;When you code, the quality of the result depends significantly on your priorities: what do you want from the code? Every developer has an idea of the &amp;quot;correct&amp;quot; coding priorities. Some value small code, or fast code, or readable code, or clever code. Steve McConnell once advised deciding &lt;em&gt;and announcing&lt;/em&gt; your priorities for a given project before work begins, so everyone knows what's important for &lt;em&gt;this&lt;/em&gt; project. You might make a prioritized list, such as:&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Correctness. 
&lt;li&gt;Maintainability/readability. 
&lt;li&gt;Speed. 
&lt;li&gt;Extensibility. 
&lt;li&gt;Efficient use of memory. 
&lt;li&gt;Schedule. 
&lt;li&gt;Modularity. 
&lt;li&gt;Reusability.&lt;/ol&gt;
&lt;p&gt;And so on. Just let the team know what's expected from them, and you're more likely to get it from them. 
&lt;p&gt;But for many teams, that list is too much bother. They can get by with a simple mantra: 
&lt;blockquote dir=ltr style="margin-right:0px"&gt;
&lt;p&gt;&lt;strong&gt;Make it run.&lt;/strong&gt; 
&lt;p&gt;&lt;strong&gt;Make it right.&lt;/strong&gt; 
&lt;p&gt;&lt;strong&gt;Make it fast.&lt;/strong&gt;&lt;/blockquote&gt;
&lt;p dir=ltr&gt;Make it run, so users can give you feedback. Make it right from their feedback. And then optimize only when necessary to make the users happy, because optimization can be difficult to read and maintain and is prone to bugs. 
&lt;p dir=ltr&gt;Well, we've learned a new mantra for the handheld: 
&lt;blockquote dir=ltr style="margin-right:0px"&gt;
&lt;p dir=ltr&gt;&lt;strong&gt;Make it small.&lt;/strong&gt; 
&lt;p dir=ltr&gt;&lt;strong&gt;Make it run.&lt;/strong&gt; 
&lt;p dir=ltr&gt;&lt;strong&gt;Make it right.&lt;/strong&gt; 
&lt;p dir=ltr&gt;&lt;strong&gt;Make it fast.&lt;/strong&gt; 
&lt;p dir=ltr&gt;&lt;strong&gt;Repeat, repeat, repeat...&lt;/strong&gt;&lt;/blockquote&gt;
&lt;p dir=ltr&gt;You have to make it small &lt;strong&gt;first&lt;/strong&gt;; because on CE 5, if it's not small, it will never run right, and it will be fast only in crashing. And then, when you take steps to make it run and right and fast, you'll inevitably make it larger, and risk crashing due to that. 
&lt;p dir=ltr&gt;So on CE 5, you have to design for small first. Adding small afterward is a great way to push your DODO to Infinity. I should know. 
&lt;h2 dir=ltr&gt;&amp;quot;A Man's Gotta Know His Limitations.&amp;quot;&lt;/h2&gt;
&lt;p dir=ltr&gt;So here's the short summary of what we've learned about our limits. First, keep in mind that this code comes in two general types: Native, and Managed. Native Code is code compiled directly for the platform, and responsible for managing and allocating its own memory and other resources. Managed Code is .NET Compact Framework code, which runs inside the Common Language Runtime, a Native Code &amp;quot;shell&amp;quot; that loads and runs and manages Managed Code. It takes care of allocating memory; and if -- &lt;strong&gt;if&lt;/strong&gt; -- you let it, it does its darnedest to clean up that memory when you're done with it. And Managed Code may very well load and call Native Code for certain purposes. (Native Code can load and run Managed Code as well; but for this discussion, that's irrelevant.) 
&lt;p dir=ltr&gt;Some of what follows applies only to Native Code. Some applies only to Managed Code. And some applies to both. 
&lt;h3 dir=ltr&gt;&amp;quot;I want to be an explorer, like the Great Magellan.&amp;quot; &amp;quot;Oh, you're too late! There's nothing left to explore!&amp;quot;&lt;/h3&gt;
&lt;p dir=ltr&gt;CE 5 uses Virtual Memory and memory mapping to give each running  process a &amp;quot;private&amp;quot; memory space. I'm no memory management guru; but as best I understand it, this means that each process thinks it &amp;quot;owns&amp;quot; the machine. The Operating System (CE 5) maps into part of that memory space. The app and all its data map into another part. On handheld devices, memory is usually pretty limited (128 MB on board, in our case, and 1 GB on card), and probably less than the addressable space in a process's memory map. 
&lt;p dir=ltr&gt;The OS itself loads into a given memory location. I can't say where, because I'm not a memory guru. I'm trying to give an overview here, not details. But the important part is that your process then receives an address space in which your process lives in the space from 0 GB to 1 GB, and &amp;quot;global&amp;quot; storage lives in 1 GB to 2 GB. The OS lives beyond that space. 
&lt;h3 dir=ltr&gt;&amp;quot;Game over, man! Game over!&amp;quot;&lt;/h3&gt;
&lt;p dir=ltr&gt;OK, so your process's memory map lets it address 1 GB (between addresses 0 GB and 1 GB); but here's the kicker, and here's where our troubles began. The actual memory accessible to your app -- also known as the Virtual Memory, i.e., the chunk of memory mapped into that 1 GB space -- &lt;strong&gt;is restricted to 32 MB on Windows CE&lt;/strong&gt;. Period. No matter what you do. If your app needs more than 32 MB to store your currently loaded code and data, that's it. You're gonna crash. In our case, &lt;em&gt;we&lt;/em&gt; didn't crash; but we made calls to &lt;a href="http://www.microsoft.com/sql/editions/compact/default.mspx" target="_blank"&gt;SQL Mobile&lt;/a&gt; in a low-memory condition, and it'll crash like clockwork, every time. 
&lt;p dir=ltr&gt;So that's simple, right? Stay under 32 MB, right? What kind of freakin' &lt;em&gt;handheld&lt;/em&gt; app needs 32 MB, anyway? 
&lt;p dir=ltr&gt;Well, one that was ported from the laptop without sufficient consideration for &lt;strong&gt;Make it small, make it run, make it right, make it fast&lt;/strong&gt;, that's what kind. 
&lt;p dir=ltr&gt;And oh, if only it were as simple as waving a magic wand and saying &amp;quot;Keep it under 32 MB&amp;quot;... 
&lt;h3 dir=ltr&gt;&amp;quot;Take your stinking paws off me, you damned dirty ape!&amp;quot;&lt;/h3&gt;
&lt;p dir=ltr&gt;Maybe, &lt;em&gt;maybe&lt;/em&gt; you can find a way to do what you need within 32 MB. (Probably not: when you tell customers that they're getting portability as a tradeoff for power and features, they never hear the tradeoff part. They'll want your handheld app to be portable &lt;em&gt;and&lt;/em&gt; as powerful as your laptop app &lt;em&gt;and&lt;/em&gt; as fast. Learn to tell them &amp;quot;no&amp;quot; as early as possible.) 
&lt;p dir=ltr&gt;But you're not the only one who gets to use that 32 MB. No, in fact, every app in the system has its stinking paws on your 32 MB, &lt;strong&gt;including&lt;/strong&gt; the OS! 
&lt;p dir=ltr&gt;See, when an app is actively running on the handheld, its Virtual Memory is mapped into a special reserved 32 MB slot in the system, slot 0. Your app itself is loaded at the bottom of slot 0, growing up. Any &lt;strong&gt;unmanaged&lt;/strong&gt; DLLs it loads are loaded at the top of slot 0, growing down as each is loaded. (Each DLL is allocated space in 64K chunks, so DLLs that are close to 64K in size -- or 128K, or 192K, or... -- are loaded most efficiently.) And the space in between is available for your app's data. You can also store data in the &amp;quot;global&amp;quot; area from 1 GB to 2 GB; but that's a lot more difficult to use, so you don't want to if you don't have to. 
&lt;p dir=ltr&gt;But here's the tricky part: because handhelds have limited memory, CE 5 optimizes the memory used by DLLs. If a DLL is loaded in one app, CE doesn't load it into another app that also uses it. CE loads it once, period. But in order to do this, CE loads the DLL into the same location in every app that uses it -- and effectively, &lt;strong&gt;every app that &lt;em&gt;doesn't&lt;/em&gt; use it.&lt;/strong&gt; The unmanaged DLLs are loaded into the top of slot 0 itself, and just left there as different apps are mapped into slot 0 and back out again. So your app takes the hit for every unmanaged DLL loaded anywhere in the device. That can &lt;em&gt;even&lt;/em&gt; include OS DLLs: if the OS runs out of room for its DLLs in its reserved memory, it loads them into slot 0. (In our case, after the vendor did some tuning, that only meant one unmanaged DLL loaded into slot 0 by the OS itself.) 
&lt;h3 dir=ltr&gt;&amp;quot;Invention, my dear friends, is 93% perspiration, 6% electricity, 4% evaporation, and 2% butterscotch ripple.&amp;quot; &amp;quot;That's 105 percent.&amp;quot;&lt;/h3&gt;
&lt;p dir=ltr&gt;Now if the 32 MB limit sounds scary, and the external DLLs chewing up your 32 MB sounds even scarier... Well, you're right, they are scary. 
&lt;p dir=ltr&gt;But before you set out to try to work around them, ask yourself one thing: are you using .NET Compact Framework 2.0 (or later)? Because if you are, then the CF team has already given you an invention where they put in the perspiration, electricity, evaporation, and butterscotch ripple. Sadly, it's &lt;em&gt;not&lt;/em&gt; a 105% solution (more like an 80% solution in our case); but it's very likely better than you have time and resources to devise and implement and test and maintain yourself. So before you start jumping through hoops, let's look at the hoops they've already jumped through for you. 
&lt;p dir=ltr&gt;When you build a .NET app (Compact Framework or regular Framework), the &lt;em&gt;real&lt;/em&gt; application is the CLR itself. It's the thing that runs, not your code; and then it loads your code, and uses your code to tell it what to do. 
&lt;p dir=ltr&gt;So what this means on the Compact Framework is that the CLR can be smart: it &lt;em&gt;knows&lt;/em&gt; about the 32 MB limit, so it works overtime to try to get around it. The biggest technique it uses is that &lt;em&gt;all&lt;/em&gt; of your Managed DLLs &lt;em&gt;and&lt;/em&gt; your managed application are loaded into the global storage area between 1 GB and 2 GB. Then, as you call the code in your app and your DLLs, the CLR loads the pieces you use into an area within your 32 MB VM. This JIT (Just In Time) Heap starts at about 1 MB, and grows as needed; but if the CLR sees that memory is low, it &amp;quot;pitches&amp;quot; code out of the JIT Heap, keeping only the more recently used code. So the JIT Heap can be treated as a 1 MB block under normal circumstances. 
&lt;p dir=ltr&gt;And another way in which the CF CLR is smart: if any one object you allocate is larger than 2 MB (or it might be 1 MB, I'll need to check), it &lt;em&gt;automatically&lt;/em&gt; allocates from the global storage, &lt;em&gt;without&lt;/em&gt; making you jump through all the hoops involved. The CLR knows how to jump through the hoops. That's its job. 
&lt;p dir=ltr&gt;If you think you can write better memory management than the CLR provides, be my guest. Be sure to allow lots of time in your schedule for design, redesign, implementation, testing, fixing, retesting, refixing, reretesting, reredesign, nervous breakdowns... Now CLR memory management does not come without a cost, of course: the CLR itself requires another 1 MB block out of your VM. And other data used by the CLR can add up as well, in the form of different heaps: 
&lt;ul dir=ltr&gt;
&lt;li&gt;
&lt;div&gt;The AppDomain Heap describes the assemblies, modules, and types used by your app. The CLR uses these to find and load and decipher code as you call it. It grows as the overall app+DLLS grow.&lt;/div&gt;
&lt;li&gt;
&lt;div&gt;The Process Heap and the Short Term Heap are memory used and discarded by the CLR as it works. These are usually small, usually transitory, and pretty much always beyond your control.&lt;/div&gt;
&lt;li&gt;
&lt;div&gt;And finally, the GC (Garbage Collected) Heap itself, where the CLR allocates all of your data (other than large allocations stuck in global storage). Anything in here can be released by your code at any time, and the CLR will Garbage Collect it to free up space when it sees a need.&lt;/div&gt;&lt;/ul&gt;
&lt;p&gt;So your real limit in a Managed app is: 32 MB, minus the size of Native DLLs in slot 0 (in our case, 5 MB, mostly due to SQL Mobile), minus 1 MB for the CLR, minus the sum of all the heaps (with a minimum around 2 MB). That's how much Native data you can afford. Because remember: &lt;strong&gt;your Native DLLs will allocate memory in your 32 MB VM as well.&lt;/strong&gt; 
&lt;p&gt;And frankly, for many sorts of handheld apps, that's a lot. But for anything ambitious, anything that really makes customers excited... That's not enough. 
&lt;p&gt;In testing of our app (explanations below), the JIT Heap, the AppDomain Heap, and the GC Heap have climbed to nearly 13 MB. Add in 5 MB for Native DLLs, 1 MB for the CLR, and 1 MB for the Process and Short Term Heap, and we're up to 20 MB out of 32. That's enough to make me nervous. And for large SQL Mobile queries, that may be enough to crash. (SQL Mobile usually crashes when we make a large query with less than 2 MB VM free; but we once saw it crash with 3.4 MB free.)
&lt;h2&gt;&amp;quot;No. Try not. Do... or do not. There is no try.&amp;quot;&lt;/h2&gt;
&lt;p&gt;So now you know the CF 2.0/CE 5.0 memory landscape. You know, kind of, what your limitations are. 
&lt;p&gt;So if your app starts crashing and memory errors seem to be the diagnosis, you need to throw out stuff that might waste memory, right? 
&lt;p&gt;No. Wrong. Stop. Remember this important mantra:&lt;strong&gt; We're not guessing, we're profiling.&lt;/strong&gt; 
&lt;p&gt;With a lot -- &lt;strong&gt;a lot&lt;/strong&gt; -- of experience, you can begin to guess where system performance problems are, and be right maybe half the time. (And by performance, I include memory usage, CPU usage, and other ways your app might bog down a machine.) But people with that much experience will usually tell you: don't guess, use a profiler. 
&lt;p&gt;Now on the laptop, there are many profiling tools available. On CE 5, not so many. One of the best we could find is &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=C8174C14-A27D-4148-BF01-86C2E0953EAB&amp;amp;displaylang=en" target="_blank"&gt;the .NET Compact Framework Remote Performance Monitor&lt;/a&gt;. (That's a link to the CF 3.5 Power Toys from Microsoft; but the RPM in there works fine with CF 2.0.) This tool will tell you the size of your different heaps. It will also take &amp;quot;snapshots&amp;quot; of your GC heap, which will let you see how many objects of different classes are in use, and how much space they consume. (In our case, the worst offender is &lt;strong&gt;14,408 Strings&lt;/strong&gt;, requiring &lt;strong&gt;0.89 MB of storage&lt;/strong&gt;. The top 10 classes for memory usage consume over 2.6 MB out of a 3.3 MB GC heap. I won't know why until I do more research. I have my guesses, but &lt;strong&gt;we're not guessing, we're profiling.&lt;/strong&gt;) 
&lt;p&gt;Another useful memory profiling tool is &lt;a href="http://support.microsoft.com/kb/326164" target="_blank"&gt;DUMPMEM&lt;/a&gt;. (This is targeted at Pocket PC 2002, but still works OK for CE 5.) This tool is a bit verbose, with &lt;strong&gt;a lot&lt;/strong&gt; of nearly unreadable information; but near the end of the report, it spells out all of the apps running on your device, including which unmanaged DLLs each has loaded. 
&lt;p&gt;Beyond those, we found it easiest to write our own profiling tools. They're crude, but they helped us match memory usage to user activities in the application. They rely heavily on &lt;a href="http://www.opennetcf.com/library/sdf/html/d5516377-cde7-1f1d-f035-bcff8a8278ec.htm" target="_blank"&gt;the MemoryManagement class&lt;/a&gt; from the &lt;a href="http://www.opennetcf.com/" target="_blank"&gt;OpenNETCF&lt;/a&gt; libraries. 
&lt;h2&gt;&amp;quot;Tweaking? A project that needs tweaking?&amp;quot;&lt;/h2&gt;
&lt;p&gt;Finally, some general lessons we learned about memory management under CF 2.0 and CE 5.0: 
&lt;ul&gt;
&lt;li&gt;Design for small from the start. Don't try to add it later. Yes, I repeat myself. It bears repeating. 
&lt;li&gt;We're not guessing, we're profiling. Yes, I repeat myself. It bears repeating. 
&lt;li&gt;Don't waste time trying to &amp;quot;tweak&amp;quot; your way to sufficient memory. Tweaking is usually a sign that you're guessing, not profiling. We did a lot of little tweaks that saved us a few K here, a hundred K there... Those all made some difference, but at a lot of cost; whereas finding and eliminating the 14,408 cached strings will probably make the difference we need. When you try to tweak to fit, it's like &lt;a href="http://www.youtube.com/watch?v=Ll2kajMH2u0" target="_blank"&gt;Human Tetris&lt;/a&gt;: you &lt;em&gt;might&lt;/em&gt; twist yourself into exactly the right shape; but if you're wrong, you won't know it until you go &lt;strong&gt;splat!&lt;/strong&gt; Instead of tweaking, profile, identify and locate the major leaks, and fix them. Repeat, repeat, repeat. 
&lt;li&gt;Build memory diagnostics in from the start. You'll curse me now. You'll thank me later. 
&lt;li&gt;Graph your diagnostics, and identify on the graphs what the user was doing at each major change. That will help you in locating the major leaks. 
&lt;li&gt;Don't try to outsmart the CLR and the GC. Maybe you are smarter, but do you have time to build and test and maintain your smarter solution? 
&lt;li&gt;Sometimes, when your code is leaking, it can &lt;em&gt;appear&lt;/em&gt; that the GC is not collecting. It is, at least as much as it can, and I have the graphs to prove it. Trust the GC. 
&lt;li&gt;Never call GC.Collect() directly. It never helps -- &lt;em&gt;never!&lt;/em&gt; -- and it often hurts. It never helps because the GC is optimized to not waste too much CPU time. If called, it doesn't do any real garbage collection until a trigger has happened: cumulative Managed allocations have passed a megabyte boundary; GDI+ resources (pens, fonts, brushes, etc.) are used up; or memory is used up. If none of those have happened, no garbage is collected. But it &lt;em&gt;may&lt;/em&gt; hurt, because before testing the triggers, it suspends your whole app, including waiting for each thread to reach a &amp;quot;suspendable&amp;quot; state. So though calling GC.Collect() won't save you any memory, it can cost you time. 
&lt;li&gt;&lt;em&gt;Maybe&lt;/em&gt; call the unmanaged heap compact API. This seldom has had any effect for us; but on rare occasions, it has reclaimed some Virtual Memory for us. We're still kind of undecided. 
&lt;li&gt;If you can, wait for CE 6.0. It has a radically expanded memory mapping scheme, including 2 GB of VM per process. If that's not enough, you don't understand that the &amp;quot;C&amp;quot; in &amp;quot;CF&amp;quot; and &amp;quot;CE&amp;quot; stands for &amp;quot;Compact&amp;quot;, as in &amp;quot;tiny&amp;quot;. If 2 GB is too tiny for you, you're on the wrong platform. But as of this writing, there are &lt;em&gt;no&lt;/em&gt; production devices running CE 6.0. 
&lt;li&gt;Consider this: is a &lt;a href="http://www.microsoft.com/windows/products/winfamily/umpc/default.mspx" target="_blank"&gt;UMPC&lt;/a&gt; compact enough for your customers? It's small. It's portable. And it will run the same code as your laptop does. (For us, the answer is no; but maybe you'll have a different answer...) &lt;/ul&gt;
&lt;h2&gt;&amp;quot;Think it'll work?&amp;quot; &amp;quot;It would take a miracle.&amp;quot;&lt;/h2&gt;
&lt;p&gt;Actually, no, you won't need a miracle to live within the memory limits of CF 2.0 and CE 5.0. You'll just need awareness, design, profiling, patience, perseverance, and maybe a little bit of luck. And maybe I've given you a few more rabbits for your hat. 
&lt;p&gt; &lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+Dr.+Strained+Memory+or%3a+How+I+Learned+to+Stop+Worrying+and+Love+Compact+Framework+Memory+Management&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>.NET Compact Framework Programming</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1416.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1416.entry</guid><pubDate>Sun, 20 Jan 2008 08:30:39 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1416/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1416.entry#comment</wfw:comment><dcterms:modified>2008-01-21T07:16:16Z</dcterms:modified></item><item><title>So Where've You Been, Martin?</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1415.entry</link><description>&lt;div&gt;So why no new posts recently? Well, remember &lt;a href="http://tabletuml.spaces.live.com/blog/cns!2D0DCE281FBB99D!1025.entry"&gt;the DODO&lt;/a&gt;? Well, mine can't be calculated for 2008 yet. You can't divide by zero.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+So+Where've+You+Been%2c+Martin%3f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Code Is Not Enough</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1415.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1415.entry</guid><pubDate>Sun, 20 Jan 2008 05:25:25 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1415/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1415.entry#comment</wfw:comment><dcterms:modified>2008-01-20T05:25:25Z</dcterms:modified></item><item><title>Indescribable</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1414.entry</link><description>&lt;div&gt;OK, &lt;a href="http://www.deankoontz.com/" target="_blank"&gt;this&lt;/a&gt; is just... indescribable. I mean, I can try to describe it; but you gotta see it to believe it. An animated Dean Koontz speaks to the animated spirit of his dead Golden Retriever, Trixie. And then, after their conversation, their heads and eyes follow your mouse around. Just too weird...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Despite a site so weird it freaked &lt;em&gt;me&lt;/em&gt; out, Mr. Koontz has another winner with &lt;a href="http://www.deankoontz.com/books/darkest-evening/book.php" target="_blank"&gt;The Darkest Evening of the Year&lt;/a&gt;. It has everything. Dogs. Hit men. Dogs. People with secrets. Dogs. Second Life. Dogs. Really nasty people. Dogs. Really good people. Dogs. Private detectives. Dogs. Guns. Dogs. Dead nuns on the telephone. Dogs. Strange messages from somewhere else. Dogs. Explosions. Dogs. And mysterious creatures who know things you don't (in other words, dogs).&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Mr. Koontz doesn't like to be pigeon-holed in a genre. That's too bad, because I'm going to do it anyway. And it's &lt;em&gt;not&lt;/em&gt; the genre he is most often placed in (i.e., horror). No, based on what I've read (which is by no means all of his works), I would say he most fits in fantasy. But not fantasy as it has become: a genre mostly dominated by Professor Tolkien and his peers and imitators, with swords and sorcery and monsters. No, Mr. Koontz simply writes of a modern world where fantastic things happen, large and small. In fact, the small are the most common. It just happens that since some fantastic things can be terrifying or incomprehensible, the books get pigeon-holed as horror. But it's not horror like Stephen King writes horror. It's more just &amp;quot;The universe is a much more mysterious place then you realize, and you're about to get a glimpse of that.&amp;quot;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;This isn't the best book Mr. Koontz has written. I think &lt;a href="http://www.oddthomas.tv/" target="_blank"&gt;his Odd Thomas series&lt;/a&gt; is hard for anyone to top, him included. And &lt;a href="http://www.deankoontz.com/books/life-expectancy/book.php" target="_blank"&gt;Life Expectancy&lt;/a&gt; has to be the most eclectic mix of fantasy, prophecy, humor, baking, circus clowns, and acrobats ever assembled. But this is a really strong addition to his library.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Especially if you like dogs.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+Indescribable&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Books</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1414.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1414.entry</guid><pubDate>Sun, 20 Jan 2008 05:22:45 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1414/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1414.entry#comment</wfw:comment><dcterms:modified>2008-01-20T05:22:45Z</dcterms:modified></item><item><title>Interfaces</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1409.entry</link><description>&lt;div&gt;OK, along with &lt;a href="http://tabletuml.spaces.live.com/blog/cns!2D0DCE281FBB99D!1408.entry"&gt;the Clipboard&lt;/a&gt;, there's another habit I'm finding to be overused: interfaces.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;And while I'm not going to go as far as I did with the Clipboard (&amp;quot;&lt;strong&gt;No, no, no, no, no, no, no, no, NO!&lt;/strong&gt;&amp;quot;), I am going to say...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Stop. Think about it. What does an interface gain you here, anyway?&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;As a reminder: an interface is a set of methods, properties, and events that you can define separate from any class. Then one or more classes can be written to provide those methods and properties and events, and one or more classes can be written to use those methods and properties and events, without any of those classes knowing any of the details of each other. They just know how to ask for work to be done, not how the work is done nor even what's doing the work.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;The principle -- and the benefit -- is called &lt;strong&gt;Loose Coupling&lt;/strong&gt;. It allows you to more easily change how the work is done or how the results are used, because neither side of the relation knows anything but the interface.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Implicit in that benefit is the word &amp;quot;coupling&amp;quot;, meaning a pairing between provider and user. With interfaces, it's pretty easy even to change the interface provider to another provider entirely, without the user ever knowing. It's also pretty easy to have different users, without the provider ever knowing.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;But sometimes you have to ask: &amp;quot;How many couples will I have here?&amp;quot; And if the answer is, &amp;quot;One, as far as I can foresee,&amp;quot; then the interface really gains you nothing. If you're never going to change to a different provider or a different user, then you can just as easy work with the provider &lt;strong&gt;class&lt;/strong&gt; instead of a provider &lt;strong&gt;interface&lt;/strong&gt;.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&amp;quot;But does it make any difference?&amp;quot; you ask. Yes. Absolutely. An interface plus a class means roughly double the maintenance effort as the work changes. It also makes it much harder to navigate and search the code. I'm working on a system right now with 15 client classes that use 15 interfaces to talk to 16 service classes. Yes, 15, 15, 16. That's because in 14 of those cases, exactly one client uses exactly one interface to talk to exactly one service. In only one of those cases are there two possible services that the client can talk to. &lt;strong&gt;That one&lt;/strong&gt; benefits from an interface.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Meanwhile, every time something has to change in the conversation between one of those clients and one of those services -- because they are &lt;em&gt;far&lt;/em&gt; more tightly coupled than the designers might have hoped -- it has to change in three places: the service has to add a new method, property, event, or parameter; the interface has to add the new method, property, event, or parameter; and the client has to use the new method, property, event, or parameter.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;And on top of that, any time I start from the client and search for a given method, property, event, or parameter, I have to do extra searching: I can't just use Visual Studio's &amp;quot;Got to Definition&amp;quot; function, because that will take me to the interface, not the implementation. Instead, I have to use Visual Studio's &amp;quot;Find All References&amp;quot; function, and then search through those references until I find the implementation.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;There are other benefits of interfaces besides loose coupling. Interfaces do let you hide details of your class and expose only what you want clients to know. But if you don't need to hide internals, and you've only got one possible coupling, then &lt;strong&gt;Stop. Think about it. What does an interface gain you here, anyway?&lt;/strong&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+Interfaces&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Code Is Not Enough</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1409.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1409.entry</guid><pubDate>Sun, 30 Dec 2007 20:18:44 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1409/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1409.entry#comment</wfw:comment><dcterms:modified>2007-12-30T20:18:44Z</dcterms:modified></item><item><title>The Clipboard</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1408.entry</link><description>&lt;div&gt;When it comes to the clipboard, remember one word: &lt;strong&gt;No.&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;OK, two words: &lt;strong&gt;No. No.&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Too hard to follow? Try this: &lt;strong&gt;No, no, no, no, no, no, no, no, NO!&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Any time you think, &amp;quot;Oh, I can just copy this class and then edit it a little bit,&amp;quot; I want you to immediately shout in your own ear: &lt;strong&gt;Noooooooooooooooooooooooooooooooooooooo!!!!!!&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;I'm looking at a base class. That in itself is OK.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Then I'm looking at a bunch of subclasses. &lt;em&gt;Most&lt;/em&gt; of them are OK.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;But I'm looking at 18 of those subclasses where each and every one of them starts with the same two field declarations, as well as an identical-in-all-but-name constructor that initializes these two fields.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;And to top it all off, those 18 subclasses are all very clearly related in purpose and usage. They all but &lt;em&gt;scream&lt;/em&gt; for a new base class that captures their common behavior.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;I know, I know: it's so &lt;em&gt;easy&lt;/em&gt; to copy, paste and edit. And &lt;strong&gt;I just don't care.&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;By the time you've edited the third copy -- maybe the second, &lt;em&gt;maybe&lt;/em&gt; even the first -- you could've designed and implemented the common base class.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;And after that, building the remaining 14 subclasses would be &lt;em&gt;far&lt;/em&gt; easier.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;And more important: updating and maintaining those 18 subclasses will be astronomically easier when you only have to change things in one place.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;And I say this as the guy who now has to conduct fairly radical surgery on those 18 subclasses, and would prefer to do it just &lt;strong&gt;once&lt;/strong&gt;, thank you very much.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Just. Stop.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Just. Don't. Copy. And. Paste.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Just. Say. No.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+The+Clipboard&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Code Is Not Enough</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1408.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1408.entry</guid><pubDate>Sun, 30 Dec 2007 03:06:29 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1408/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1408.entry#comment</wfw:comment><dcterms:modified>2007-12-30T03:06:29Z</dcterms:modified></item><item><title>Don't Make Me Send Yoda Over There to Whack You With a Stick...</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1397.entry</link><description>&lt;div&gt;15.5 hours in to what I hoped would be a 5 hour day...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Working the last major bug on the bug list...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;A bug that has literally consumed over 200 hours of development spread among various team members...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;A bug that our best minds looked at, and looked at, and looked at, to no avail...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;A bug that got the project lead so frustrated, he did the programming equivalent of taping electrical tape over the blinking VCR clock...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;And today, the black-electrical-tape patch started showing massive bugs of its own...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;So we hunted... And we searched... And I got an idea for some code I could scavenge from another project...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Still didn't work... But that gave me a hint of where to look, because &lt;em&gt;none&lt;/em&gt; of our hypothesized causes could've afflicted this new code...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Whatever was wrong was low level and fundamental... And one of my coworkers told me the sort of thing it looked like to him... And that gave me another hint...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;And so I started the process of elimination... Comment out code until it worked, uncomment until it broke again, and narrow in on the single line that made the difference...&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;And I found it:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;blockquote dir=ltr style="margin-right:0px"&gt;
&lt;div&gt;Application.DoEvents();&lt;/div&gt;&lt;/blockquote&gt;
&lt;div dir=ltr&gt; &lt;/div&gt;
&lt;div dir=ltr&gt;That means &amp;quot;Let the UI do whatever it wants. I can wait for it.&amp;quot;&lt;/div&gt;
&lt;div dir=ltr&gt; &lt;/div&gt;
&lt;div dir=ltr&gt;My boss had been finding Application.DoEvents() all through parts of the code... And the only explanation mentioned anywhere was, &amp;quot;Well, we tried this, and it worked. So we kept it.&amp;quot;&lt;/div&gt;
&lt;div dir=ltr&gt; &lt;/div&gt;
&lt;div dir=ltr&gt;Yoda was right: Do, or do not... There is no &amp;quot;try&amp;quot;...&lt;/div&gt;
&lt;div dir=ltr&gt; &lt;/div&gt;
&lt;div dir=ltr&gt;&lt;strong&gt;If you don't understand how the code works, it doesn't.&lt;/strong&gt;&lt;/div&gt;
&lt;div dir=ltr&gt; &lt;/div&gt;
&lt;div dir=ltr&gt;Don't make me send Yoda over there to whack you with a stick...&lt;/div&gt;
&lt;div dir=ltr&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+Don't+Make+Me+Send+Yoda+Over+There+to+Whack+You+With+a+Stick...&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Code Is Not Enough</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1397.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1397.entry</guid><pubDate>Sun, 02 Dec 2007 08:55:45 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1397/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1397.entry#comment</wfw:comment><dcterms:modified>2007-12-02T08:55:45Z</dcterms:modified></item><item><title>Where I’m Blogging From (1)</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1395.entry</link><description>&lt;p&gt;&lt;a href="http://www.metroairport.com/"&gt;DTW&lt;/a&gt;. Because I can…
&lt;p&gt;On the way to &lt;a href="http://tabletuml.spaces.live.com/blog/cns!2D0DCE281FBB99D!1393.entry"&gt;St. Louis&lt;/a&gt;.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+Where+I%e2%80%99m+Blogging+From+(1)&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Travel</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1395.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1395.entry</guid><pubDate>Sat, 24 Nov 2007 13:04:53 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1395/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1395.entry#comment</wfw:comment><dcterms:modified>2007-11-24T13:04:53Z</dcterms:modified></item><item><title>On the Road Again…</title><link>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1393.entry</link><description>&lt;p&gt;I'm off to speak at &lt;a href="http://www.stlnet.org/DesktopDefault.aspx"&gt;the St. Louis .NET User Group&lt;/a&gt;, courtesy of &lt;a href="http://www.ineta.org/"&gt;INETA&lt;/a&gt;. The topic:
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Dee Jay: A Voice-Controlled Juke Box for Windows Vista&lt;span style="font-size:8pt"&gt;
				&lt;/span&gt;&lt;/strong&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-size:8pt"&gt;With Vista, speech recognition goes mainstream. Microsoft's Managed Speech API takes the latest in powerful recognition technologies and joins it with the simplicity of .NET programming to make it easy to add speech capabilities to any application. In this presentation, we'll look at an example of MSAPI at work: Dee Jay, a voice interface to Windows Media Player. We'll see how to convert text to speech, as well as how to build and respond to complex command grammars. And we'll laugh at Martin's musical tastes. 
&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;Come join us at &lt;a href="http://www.mapquest.com/maps/map.adp?country=US&amp;amp;countryid=250&amp;amp;addtohistory=&amp;amp;address=3+cityplace+dr&amp;amp;city=&amp;amp;state=mo&amp;amp;zipcode=63141&amp;amp;submit=Get+Map"&gt;the St. Louis Microsoft Offices&lt;/a&gt;:
&lt;blockquote&gt;&lt;p&gt;Microsoft Offices&lt;br&gt;Three City Place Drive&lt;br&gt;Suite 1100&lt;br&gt;Creve Coeur, MO 63131&lt;/blockquote&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+On+the+Road+Again%e2%80%a6&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><category>Speaking Engagements</category><comments>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1393.entry#comment</comments><guid isPermaLink="true">http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1393.entry</guid><pubDate>Sat, 24 Nov 2007 13:01:48 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://TabletUML.spaces.live.com/blog/cns!2D0DCE281FBB99D!1393/comments/feed.rss</wfw:commentRss><wfw:comment>http://TabletUML.spaces.live.com/Blog/cns!2D0DCE281FBB99D!1393.entry#comment</wfw:comment><dcterms:modified>2007-11-24T13:01:49Z</dcterms:modified></item><item><title>Photo Album: Mobile photos</title><link>http://TabletUML.spaces.live.com/photos/cns!2D0DCE281FBB99D!157/</link><description>&lt;p&gt;Mobile photos&lt;/p&gt;&lt;div&gt;&lt;table cellspacing="0" border="0"&gt;&lt;tr height="8"&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://TabletUML.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;2D0DCE281FBB99D&amp;#33;157&amp;#47;cns&amp;#33;2D0DCE281FBB99D&amp;#33;158"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;2D0DCE281FBB99D&amp;#33;158&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://TabletUML.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;2D0DCE281FBB99D&amp;#33;157&amp;#47;cns&amp;#33;2D0DCE281FBB99D&amp;#33;162"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;2D0DCE281FBB99D&amp;#33;162&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Where Scott Morris and I had dinner tonight. Malaysian and Indonesian cuisine, in Kalamazoo of all places&amp;#33;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://TabletUML.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;2D0DCE281FBB99D&amp;#33;157&amp;#47;cns&amp;#33;2D0DCE281FBB99D&amp;#33;1041"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;2D0DCE281FBB99D&amp;#33;1041&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://TabletUML.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;2D0DCE281FBB99D&amp;#33;157&amp;#47;cns&amp;#33;2D0DCE281FBB99D&amp;#33;1396"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;2D0DCE281FBB99D&amp;#33;1396&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+Photo+Album%3a+Mobile+photos&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><guid isPermaLink="false">cns!2D0DCE281FBB99D!157</guid><pubDate>Sat, 24 Nov 2007 13:43:50 GMT</pubDate><msn:type>photoalbum</msn:type><live:type>photoalbum</live:type><live:typelabel>Photo album</live:typelabel><cf:itemRSS>http://TabletUML.spaces.live.com/photos/cns!2D0DCE281FBB99D!157/feed.rss</cf:itemRSS><dcterms:modified>2007-11-24T13:43:50Z</dcterms:modified></item><item><title>Photo Album: Blog Images</title><link>http://TabletUML.spaces.live.com/photos/cns!2D0DCE281FBB99D!1375/</link><description>&lt;p&gt;Blog Images&lt;/p&gt;&lt;div&gt;&lt;table cellspacing="0" border="0"&gt;&lt;tr height="8"&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://TabletUML.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;2D0DCE281FBB99D&amp;#33;1375&amp;#47;cns&amp;#33;2D0DCE281FBB99D&amp;#33;1376"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;2D0DCE281FBB99D&amp;#33;1376&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://TabletUML.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;2D0DCE281FBB99D&amp;#33;1375&amp;#47;cns&amp;#33;2D0DCE281FBB99D&amp;#33;1378"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;2D0DCE281FBB99D&amp;#33;1378&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://TabletUML.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;2D0DCE281FBB99D&amp;#33;1375&amp;#47;cns&amp;#33;2D0DCE281FBB99D&amp;#33;1379"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;2D0DCE281FBB99D&amp;#33;1379&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+Photo+Album%3a+Blog+Images&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><guid isPermaLink="false">cns!2D0DCE281FBB99D!1375</guid><pubDate>Tue, 13 Nov 2007 03:18:33 GMT</pubDate><msn:type>photoalbum</msn:type><live:type>photoalbum</live:type><live:typelabel>Photo album</live:typelabel><cf:itemRSS>http://TabletUML.spaces.live.com/photos/cns!2D0DCE281FBB99D!1375/feed.rss</cf:itemRSS><dcterms:modified>2007-11-13T03:18:33Z</dcterms:modified></item><item><title>Blog list: Tech Buddies</title><link>http://TabletUML.spaces.live.com/Lists/cns!2D0DCE281FBB99D!1007</link><description>&lt;div&gt;&lt;p&gt;Tech Buddies&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.heitzeg.com&amp;#47;blog&amp;#47;"&gt;Bill Heitzeg&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Java curmudgeon, pet of three St. Bernards.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.dotnetrockstar.com&amp;#47;"&gt;John Hopkins&lt;/a&gt;&lt;/p&gt;&lt;p&gt;.NET Rock Star &amp;#40;the blog, and John&amp;#41;. A prime mover for the Great Lakes Area .NET User Group &amp;#40;GANG&amp;#41;.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://jbknet.blogspot.com&amp;#47;"&gt;Joe Kunk&lt;/a&gt;&lt;/p&gt;&lt;p&gt;.NET developer and user group champion. Helped the Greater Lansing User Group for .NET &amp;#40;GLUGNET&amp;#41; take off.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.thedatafarm.com&amp;#47;blog&amp;#47;default.aspx"&gt;Julie Lerman&lt;/a&gt;&lt;/p&gt;&lt;p&gt;.NET developer and fellow Tablet PC enthusiast.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://drewby.spaces.live.com&amp;#47;"&gt;Drew Robbins&lt;/a&gt;&lt;/p&gt;&lt;p&gt;FormerMS Evangelist for the Great Lakes Area&amp;#59; now doing something even cooler in Redmond, but I haven&amp;#39;t heard the details yet.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://richardhaleshawgroup.com&amp;#47;rhsgroup&amp;#47;community&amp;#47;blogs&amp;#47;bloggers.aspx"&gt;Richard Hale Shaw&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Ace .NET instructor and conference organizer&amp;#59; connoisseur of scotch, cigars, jazz, and programming languages.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://srtsolutions.com&amp;#47;blogs&amp;#47;diannemarsh&amp;#47;default.aspx"&gt;Dianne Marsh&lt;/a&gt;&lt;/p&gt;&lt;p&gt;AnotherSRT principal, and even more into community building.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://srtsolutions.com&amp;#47;blogs&amp;#47;billwagner&amp;#47;default.aspx"&gt;Bill Wagner&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Principal in SRT Solutions&amp;#59; author of Effective C&amp;#35;&amp;#59; community builder.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.joshholmes.com&amp;#47;Default.aspx"&gt;Josh Holmes&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Architect evangelist for Microsoft. Motorcycle man. All around great guy.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com&amp;#47;ericmai&amp;#47;"&gt;Eric Maino&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Member of the C&amp;#35; team, and a dynamo. We&amp;#39;ll all work for Eric some day.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=202904848633149853&amp;page=RSS%3a+Blog+list%3a+Tech+Buddies&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=tabletuml.spaces.live.com&amp;amp;GT1=TabletUML"&gt;</description><guid isPermaLink="false">cns!2D0DCE281FBB99D!1007</guid><pubDate>Sat, 10 Nov 2007 01:36:14 GMT</pubDate><msn:type>bloglist</msn:type><live:type>bloglist</live:type><live:typelabel>Blog list</live:typelabel><cf:itemRSS>http://TabletUML.spaces.live.com/Lists/cns!2D0DCE281FBB99D!1007/feed.rss</cf:itemRSS><dcterms:modified>2007-11-10T01:36:14Z</dcterms:modified></item></channel></rss>