<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://lyontamers.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>A Curmudgeon in Redmond - All Comments</title><link>http://lyontamers.com/blogs/jimlyon/default.aspx</link><description>Using and abusing software since 1966</description><dc:language>en</dc:language><generator>CommunityServer 2008 SP1 (Build: 30619.63)</generator><item><title>re: A Picture Is Worth 1000 Words</title><link>http://lyontamers.com/blogs/jimlyon/archive/2009/02/09/a-picture-is-worth-1000-words.aspx#56</link><pubDate>Sun, 01 Mar 2009 19:39:08 GMT</pubDate><guid isPermaLink="false">97f54786-3dc6-4a1c-86e8-2f24586c6063:56</guid><dc:creator>Yogee</dc:creator><description>&lt;p&gt;Interesting!&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://lyontamers.com/aggbug.aspx?PostID=56" width="1" height="1"&gt;</description></item><item><title>re: Garbage-Collection, Finalizers and Dispose: What Every C# Programmer Should Know</title><link>http://lyontamers.com/blogs/jimlyon/archive/2008/08/29/garbage-collection-finalizers-and-dispose-what-every-c-programmer-should-know.aspx#51</link><pubDate>Mon, 01 Sep 2008 10:12:27 GMT</pubDate><guid isPermaLink="false">97f54786-3dc6-4a1c-86e8-2f24586c6063:51</guid><dc:creator>Robert Taubert</dc:creator><description>&lt;p&gt;So! &amp;nbsp;If I understand your title correctly, ONLY C# programmers should know about garbage collection. &amp;nbsp;All the rest of us don&amp;#39;t.&lt;/p&gt;
&lt;p&gt;Good article!&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://lyontamers.com/aggbug.aspx?PostID=51" width="1" height="1"&gt;</description></item><item><title>re: Cleaning Up After Your Program</title><link>http://lyontamers.com/blogs/jimlyon/archive/2008/08/22/cleaning-up-your-program.aspx#44</link><pubDate>Sun, 24 Aug 2008 18:36:46 GMT</pubDate><guid isPermaLink="false">97f54786-3dc6-4a1c-86e8-2f24586c6063:44</guid><dc:creator>jim</dc:creator><description>&lt;p&gt;Erik,&lt;/p&gt;
&lt;p&gt;It sounds like the day you decide to do that is a good day to write the cleanup code. Let your motto be &amp;quot;We will write no code before it&amp;#39;s time.&amp;quot;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://lyontamers.com/aggbug.aspx?PostID=44" width="1" height="1"&gt;</description></item><item><title>re: Cleaning Up After Your Program</title><link>http://lyontamers.com/blogs/jimlyon/archive/2008/08/22/cleaning-up-your-program.aspx#43</link><pubDate>Sun, 24 Aug 2008 06:55:25 GMT</pubDate><guid isPermaLink="false">97f54786-3dc6-4a1c-86e8-2f24586c6063:43</guid><dc:creator>Erik</dc:creator><description>&lt;p&gt;The second model is good until the day you decide that your program is going to be part of a larger program and it will only be a thread in another program... At that point you won&amp;#39;t be able to afford any leaks anymore...&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://lyontamers.com/aggbug.aspx?PostID=43" width="1" height="1"&gt;</description></item><item><title>re: MapPoint and GPS: Another Stupid Pill</title><link>http://lyontamers.com/blogs/jimlyon/archive/2008/08/17/mappoint-and-gps-another-stupid-pill.aspx#38</link><pubDate>Tue, 19 Aug 2008 10:43:09 GMT</pubDate><guid isPermaLink="false">97f54786-3dc6-4a1c-86e8-2f24586c6063:38</guid><dc:creator>JWFisher</dc:creator><description>&lt;p&gt;I also tried to do this a couple of years ago and came up short. I&amp;#39;ve also been using every release of both MapPoint and Streets &amp;amp; Trips for the past couple of years and it&amp;#39;s been interesting - and very discouraging - to watch their evolution.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m discouraged... I don&amp;#39;t understand why there are two products that are so unlike - and incompatible. There should be one, in a standard and pro version, probably with and without programmability. Same for the international version - which is again completely and entirely different under the covers.&lt;/p&gt;
&lt;p&gt;What&amp;#39;s the situation with the dev teams for these products? Are they one and the same? Is there a multi-year product plan? Is there any code sharing?&lt;/p&gt;
&lt;p&gt;IMHO, S&amp;amp;T has done poorly in the last version - the directions are often ill-chosen if not downright wrong. I use S&amp;amp;T on business trips to customer locations and the reliability of S&amp;amp;T has taken a fall in the last version. The interface has also gotten too complex to use while moving - this would be a great candidate for the Office Ribbon interface and it needs much better integration with the TabletPC. The step-by-step directional interface seems to be evolving ever-so-slowly in the past few releases, but it has a long way to go.&lt;/p&gt;
&lt;p&gt;I had a big long phone call with the developers several years ago and let them have it for their fuzzily-defined GPS requirements. I suggested at the time that they use their corporate resources to include a GPS receiver in the box, since their requirements for one made it very difficult or impossible for the average person to buy. Apparently they got that reaction from a bunch of people since that was one of the big improvements they&amp;#39;ve made in the product. Yes, you can get a better GPS receiver, but you have to know what you are doing and the one they&amp;#39;ve chosen solves the problem for 90% of the potential users.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://lyontamers.com/aggbug.aspx?PostID=38" width="1" height="1"&gt;</description></item><item><title>re: Plagarism Blog</title><link>http://lyontamers.com/blogs/jimlyon/archive/2008/08/11/plagarism-blog.aspx#36</link><pubDate>Mon, 18 Aug 2008 07:24:46 GMT</pubDate><guid isPermaLink="false">97f54786-3dc6-4a1c-86e8-2f24586c6063:36</guid><dc:creator>Tom</dc:creator><description>&lt;p&gt;I&amp;#39;ve had folks copy my entire website, changing all the internal links to their site, and the name of the site to a new name. &amp;nbsp;It is definitely something you should pursue... although it is certainly a pain to have to do it in the first place. &amp;nbsp;You&amp;#39;ll have to file a DMCA notice to the web host (blogger.com).&lt;/p&gt;
&lt;p&gt;On Todd&amp;#39;s World click on &amp;quot;Flag Blog&amp;quot; at the top. &amp;nbsp;Then click on &amp;quot;copyright&amp;quot; to report a violation of blogger.com&amp;#39;s terms of service... then click the link to DMCA... &amp;nbsp;&lt;a rel="nofollow" target="_new" href="http://www.google.com/blogger_dmca.html"&gt;www.google.com/blogger_dmca.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Blogger will take down the copied content.&lt;/p&gt;
&lt;p&gt;Tom&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://lyontamers.com/aggbug.aspx?PostID=36" width="1" height="1"&gt;</description></item><item><title>re: Scott Hanselman on the Difference Between Developers and Designers</title><link>http://lyontamers.com/blogs/jimlyon/archive/2008/08/15/scott-hanselman-on-the-difference-between-developers-and-designers.aspx#34</link><pubDate>Sat, 16 Aug 2008 20:51:03 GMT</pubDate><guid isPermaLink="false">97f54786-3dc6-4a1c-86e8-2f24586c6063:34</guid><dc:creator>jim</dc:creator><description>&lt;p&gt;Curious,&lt;/p&gt;
&lt;p&gt;As originally written, I meant graphics design, possibly because I&amp;#39;m so bad at it. (My 15-year-old does a much better job than I do.) But I think the same sentiment applies to system design, too.&lt;/p&gt;
&lt;p&gt;With respect to the DE bug, I think there&amp;#39;s plenty of blame to go around. My goals at the moment include:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Make WHS the best product I can.&lt;/li&gt;
&lt;li&gt;Maintain good working relationships with colleagues and management.&lt;/li&gt;
&lt;li&gt;Write interesting stuff on this blog.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I need to think carefully about what I say, lest my activities in (3) impact (2), which could impair my ability to do (1). Perhaps some day I&amp;#39;ll figure out how to thread that needle.&lt;/p&gt;
&lt;p&gt;-- jimbo&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://lyontamers.com/aggbug.aspx?PostID=34" width="1" height="1"&gt;</description></item><item><title>re: Scott Hanselman on the Difference Between Developers and Designers</title><link>http://lyontamers.com/blogs/jimlyon/archive/2008/08/15/scott-hanselman-on-the-difference-between-developers-and-designers.aspx#33</link><pubDate>Sat, 16 Aug 2008 19:03:40 GMT</pubDate><guid isPermaLink="false">97f54786-3dc6-4a1c-86e8-2f24586c6063:33</guid><dc:creator>Curious</dc:creator><description>&lt;p&gt;Good article, although, it seems to be more specific to &lt;strong&gt;graphics&lt;/strong&gt; design. Does the same analysis compare for &lt;strong&gt;systems&lt;/strong&gt; designers and developers?&lt;/p&gt;
&lt;p&gt;No disrespect intended (I use and like WHS), but where does the WHS data corruption problem with Drive Extender fall, with developers? or designers? As I understand, this WHS problem was so bad the entire WHS DE needed to be rewritten to correct the data corruption, which is why it took 6+ months to get the fix out in PP1.&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" href="http://www.anandtech.com/weblog/showpost.aspx?i=413"&gt;WHS: A Series Of Unfortunate Events&lt;/a&gt;&lt;br /&gt;&lt;a rel="nofollow" href="http://www.anandtech.com/weblog/showpost.aspx?i=472"&gt;WHS: All Better, Only It&amp;#39;s 7 Months Later&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://lyontamers.com/aggbug.aspx?PostID=33" width="1" height="1"&gt;</description></item><item><title>re: Scott Hanselman on the Difference Between Developers and Designers</title><link>http://lyontamers.com/blogs/jimlyon/archive/2008/08/15/scott-hanselman-on-the-difference-between-developers-and-designers.aspx#32</link><pubDate>Fri, 15 Aug 2008 23:58:43 GMT</pubDate><guid isPermaLink="false">97f54786-3dc6-4a1c-86e8-2f24586c6063:32</guid><dc:creator>Chris Gray</dc:creator><description>&lt;p&gt;...yeah, Kynan and Bryce rule. &amp;nbsp;they did a great job creating the WHS UX&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://lyontamers.com/aggbug.aspx?PostID=32" width="1" height="1"&gt;</description></item><item><title>re: System.WeakReference: Solution in Search of a Problem</title><link>http://lyontamers.com/blogs/jimlyon/archive/2008/08/12/system-weakreference-solution-in-search-of-a-problem.aspx#27</link><pubDate>Thu, 14 Aug 2008 04:44:25 GMT</pubDate><guid isPermaLink="false">97f54786-3dc6-4a1c-86e8-2f24586c6063:27</guid><dc:creator>jim</dc:creator><description>&lt;p&gt;Erik,&lt;/p&gt;
&lt;p&gt;&amp;quot;Unless the VM is implemented poory, a garbage collector shouldn&amp;#39;t weak references at each collection...&amp;quot;&lt;/p&gt;
&lt;p&gt;Every GC I&amp;#39;ve ever encountered decides what to collect, without considering whether there are any weak references. By your definition, I guess it means that they&amp;#39;re all poorly implemented.&lt;/p&gt;
&lt;p&gt;-- jimbo&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://lyontamers.com/aggbug.aspx?PostID=27" width="1" height="1"&gt;</description></item><item><title>re: System.WeakReference: Solution in Search of a Problem</title><link>http://lyontamers.com/blogs/jimlyon/archive/2008/08/12/system-weakreference-solution-in-search-of-a-problem.aspx#26</link><pubDate>Thu, 14 Aug 2008 03:04:35 GMT</pubDate><guid isPermaLink="false">97f54786-3dc6-4a1c-86e8-2f24586c6063:26</guid><dc:creator>Erik</dc:creator><description>&lt;p&gt;&amp;quot;So the next time a garbage collection comes around, all of your otherwise-unreferenced objects are reclaimed.&amp;quot;&lt;/p&gt;
&lt;p&gt;- From the C# documentation: &amp;quot;A weak reference allows the garbage collector to collect an object while still allowing an application to access the object.&amp;quot;&lt;/p&gt;
&lt;p&gt;Unless the VM is implemented poorly, a garbage collector shouldn&amp;#39;t collect weak references at each collection but only when the allocated memory becomes full or when it needs to free more memory for other objects.&lt;/p&gt;
&lt;p&gt;- &amp;quot;They&amp;#39;re sufficiently expensive to create that we can&amp;#39;t re-create them every time we need them.&amp;quot; If you cache large graphs of objects, then the cache becomes quickly worth it. In all the apps I worked, this was very common&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://lyontamers.com/aggbug.aspx?PostID=26" width="1" height="1"&gt;</description></item><item><title>re: System.WeakReference: Solution in Search of a Problem</title><link>http://lyontamers.com/blogs/jimlyon/archive/2008/08/12/system-weakreference-solution-in-search-of-a-problem.aspx#24</link><pubDate>Wed, 13 Aug 2008 05:00:32 GMT</pubDate><guid isPermaLink="false">97f54786-3dc6-4a1c-86e8-2f24586c6063:24</guid><dc:creator>jim</dc:creator><description>&lt;p&gt;Paul,&lt;/p&gt;
&lt;p&gt;It does sound like Java managed to solve the cleanup problem, effectively eliminating the &amp;quot;not very many&amp;quot; constraint.&lt;/p&gt;
&lt;p&gt;If you ever get around to measuring it, I&amp;#39;d love to know whether and to what extent the cache actually helped.&lt;/p&gt;
&lt;p&gt;-- jimbo&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://lyontamers.com/aggbug.aspx?PostID=24" width="1" height="1"&gt;</description></item><item><title>re: Plagarism Blog</title><link>http://lyontamers.com/blogs/jimlyon/archive/2008/08/11/plagarism-blog.aspx#23</link><pubDate>Tue, 12 Aug 2008 09:46:00 GMT</pubDate><guid isPermaLink="false">97f54786-3dc6-4a1c-86e8-2f24586c6063:23</guid><dc:creator>AlistairL</dc:creator><description>&lt;p&gt;The light touch approach would be to post on your own blog like you have, perhaps leave comments on the offending blog. But it is the risk of publishing - publish and be plagiarised!&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://lyontamers.com/aggbug.aspx?PostID=23" width="1" height="1"&gt;</description></item><item><title>re: System.WeakReference: Solution in Search of a Problem</title><link>http://lyontamers.com/blogs/jimlyon/archive/2008/08/12/system-weakreference-solution-in-search-of-a-problem.aspx#22</link><pubDate>Tue, 12 Aug 2008 08:27:46 GMT</pubDate><guid isPermaLink="false">97f54786-3dc6-4a1c-86e8-2f24586c6063:22</guid><dc:creator>Paul</dc:creator><description>&lt;p&gt;I believe WeakReference&amp;#39;s do have some real benefits (at least in Java). Java has the concept of ReferenceQueue&amp;#39;s which you can poll to determine which references have been reclaimed by the collector. This allows you to easily clean the Map much more efficiently than possible with finalizers. In fact java has a built in WeakHashMap which does basically what you describe (it maps keys to WeakReferences of the values). Whenever an &amp;nbsp;item is added to the Map, the ReferenceQueue is polled and any reclaimed references are removed from the map.&lt;/p&gt;
&lt;p&gt;Personally, i&amp;#39;ve used WeakHashMap-like structures for caching objects that may be accessed from many threads, but may be somewhat expensive to construct (such as parsing bytes or strings). In this case, the first thread to access it occurs some expense to construct the object and populate the cache. Further threads just get the pre-parsed object from the cache. &lt;/p&gt;
&lt;p&gt;I don&amp;#39;t have absolute numbers for performance, but we have done extensive profiling of our application, and we don&amp;#39;t see significant overhead from the ReferenceQueue.&lt;/p&gt;
&lt;p&gt;Java also has &amp;quot;phantom&amp;quot; references which can be useful for tracking object lifetimes (to do things like ensuring resources have been released)&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://lyontamers.com/aggbug.aspx?PostID=22" width="1" height="1"&gt;</description></item><item><title>re: Plagarism Blog</title><link>http://lyontamers.com/blogs/jimlyon/archive/2008/08/11/plagarism-blog.aspx#20</link><pubDate>Tue, 12 Aug 2008 00:03:34 GMT</pubDate><guid isPermaLink="false">97f54786-3dc6-4a1c-86e8-2f24586c6063:20</guid><dc:creator>Brier</dc:creator><description>&lt;p&gt;Happens all the time here.&lt;/p&gt;
&lt;p&gt;There are some tools that news orgs are experimenting with to respond to this sort of thing - search cadenhead+AP+copyright - but the expense of chasing ripoffs can be more than that of the lost traffic. &lt;/p&gt;
&lt;p&gt;At least people like your stuff ... &amp;nbsp;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://lyontamers.com/aggbug.aspx?PostID=20" width="1" height="1"&gt;</description></item></channel></rss>