<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Product Reviews</title>
        <link>http://www.kowitz.net/category/5.aspx</link>
        <description>Product Reviews</description>
        <language>en-AU</language>
        <copyright>Brendan Kowitz</copyright>
        <managingEditor>brendan@kowitz.net</managingEditor>
        <generator>Subtext Version 2.0.0.43</generator>
        <item>
            <title>How to Import Data From MindManager 7 Lite Into Project 2007</title>
            <link>http://kowitz.net/archive/2008/07/17/howto-import-data-from-mindmanager-7-lite-into-project-2007.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://www.mindjet.com/"&gt;MindManager&lt;/a&gt; is a very slick product, it looks and feel like every other Office application. I've used this product for a few university project management assignments to create things such as work breakdown structures (WBS) as well as just general information organisation.&lt;/p&gt;
&lt;p&gt;The version I'm using is the Lite version (heaps cheaper) which still carries a lot of features but lacks the integration to other office products. It also lacks the additional information you are able to attribute to the topic nodes such as start, finish dates, time estimates and resources. Although these would also be nice to have from a project point of view, I guess I can live without doing it directly in MindManager as they sound a lot more like scheduling tasks to me. Which is where MS Project Integration would be awesome.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://kowitz.net/images/kowitz_net/WindowsLiveWriter/HowtoImportDataFromMindManager7LiteIntoP_6E84/image_2.png" rel="lightbox"&gt;&lt;img height="406" width="431" border="0" src="http://kowitz.net/images/kowitz_net/WindowsLiveWriter/HowtoImportDataFromMindManager7LiteIntoP_6E84/image_thumb.png" alt="image" style="border: 0px none ;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;To bridge this gap for the Lite version I've decided to write a plug-in for Microsoft Project to import the information directly out of MindManager.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://kowitz.net/images/kowitz_net/WindowsLiveWriter/HowtoImportDataFromMindManager7LiteIntoP_6E84/image_4.png" rel="lightbox"&gt;&lt;img height="86" width="596" border="0" src="http://kowitz.net/images/kowitz_net/WindowsLiveWriter/HowtoImportDataFromMindManager7LiteIntoP_6E84/image_thumb_1.png" alt="image" style="border: 0px none ;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Then viola, you can even use the relationship links between the nodes to create task predecessors automatically. As much as I've enjoyed using Mind Manager, re-entering this task information would be a real negative to actually using it productively. So you should be able to use this little plug-in if you're unsure you want to spend the additional $250US right away but still want some form of Project Integration. Oh and its only one way, no pushing information back.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://kowitz.net/images/kowitz_net/WindowsLiveWriter/HowtoImportDataFromMindManager7LiteIntoP_6E84/image_6.png" rel="lightbox"&gt;&lt;img height="464" width="483" border="0" src="http://kowitz.net/images/kowitz_net/WindowsLiveWriter/HowtoImportDataFromMindManager7LiteIntoP_6E84/image_thumb_2.png" alt="image" style="border: 0px none ;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;The plug-in can be downloaded here, should work with both MindManager Lite and Pro. Of course, this is a free util, no warrenty or support.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;[&lt;a href="http://www.kowitz.net/files/MindManagerLiteImporter.zip"&gt;Download&lt;/a&gt;]&lt;/p&gt;&lt;img src="http://kowitz.net/aggbug/87.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brendan Kowitz</dc:creator>
            <guid>http://kowitz.net/archive/2008/07/17/howto-import-data-from-mindmanager-7-lite-into-project-2007.aspx</guid>
            <pubDate>Wed, 16 Jul 2008 21:52:31 GMT</pubDate>
            <wfw:comment>http://kowitz.net/comments/87.aspx</wfw:comment>
            <comments>http://kowitz.net/archive/2008/07/17/howto-import-data-from-mindmanager-7-lite-into-project-2007.aspx#feedback</comments>
            <wfw:commentRss>http://kowitz.net/comments/commentRss/87.aspx</wfw:commentRss>
            <trackback:ping>http://kowitz.net/services/trackbacks/87.aspx</trackback:ping>
        </item>
        <item>
            <title>Graffiti Cms by Telligent</title>
            <link>http://kowitz.net/archive/2008/02/21/graffiti-cms-by-telligent.aspx</link>
            <description>&lt;p&gt;There are a fair few CMS solutions floating around in .NET at the moment, a good general comparison tool can be found at &lt;a href="http://www.cmsmatrix.org/"&gt;CmsMatrix.org&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cuyahoga&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In the past, the &lt;a target="_blank" href="http://www.cuyahoga-project.org/"&gt;Cuyahoga Website Framework&lt;/a&gt; has looked always fairly interesting, it is also built on &lt;a target="_blank" href="http://www.nhibernate.org/"&gt;NHibernate&lt;/a&gt; which to me is a plus. Most things I've done with NHibernate have generally "just worked", maybe it's because NHibernate development is pounded with unit tests, whatever it is, it works.&lt;/p&gt;
&lt;p&gt;I haven't had any experience developing any extensions for Cuyahoga, so I don't know exactly how extensible it is yet. In terms of usability, I did find the interface a little confusing at first. The admin section is only used to configure modules/pages..etc.. but to actually edit the content I needed to visit the actual page in admin mode and click edit module (DNN Style).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Graffiti&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://graffiticms.com"&gt;Graffiti CMS&lt;/a&gt; has only recently come to my attention. I remember only in the later half of last year reading about &lt;a target="_blank" href="http://telligent.com/"&gt;Telligent&lt;/a&gt; acquiring Dozing Dogs CMS and wondering at the time, what they were going to do with it, well, now days, there is no sign of Dozing Dogs. Instead, earlier this week Telligent released Graffiti CMS which appears to be completely new as a full version 1.0.&lt;/p&gt;
&lt;p&gt;Graffiti supports a variety of databases including VistaDB (default), MS Sql and MySql. Not only that, but they claim its mono-compatible, so it is able to be run on linux and other mono supported platforms.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Test Run of Graffiti&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Setup was really simple, xcopy, run. With not much more thought then that, your away. &lt;/p&gt;
&lt;p&gt;The dashboard of Graffiti looks fantastic. I've always been a fan of having an area dedicated to admin tasks, as opposed to having admin controls stuffed into a site's design, as done by DNN. The only thing that wasn't obvious in Graffiti is the fact that there are no "pages". All content appears to be considered a "post". The "posts" are configurable in a way that is easy to set them up in a blog style behavior, or leave them detached, essentially making them pages.&lt;/p&gt;
&lt;p&gt;Some of the highlights that stood out to me immediately&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Seems to use NVelocity templates to render out HTML, meaning it's lean and clean &lt;/li&gt;
    &lt;li&gt;Supports a programmable API -- MetaWeblog &lt;/li&gt;
    &lt;li&gt;Supports its own extensibility though Widgets &lt;/li&gt;
    &lt;li&gt;Widgets can be installed in literally 2 clicks &lt;/li&gt;
    &lt;li&gt;Admin dashboard is slick &lt;/li&gt;
    &lt;li&gt;Free express version &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Again, from observation, there are a couple of cons too&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;"Posts" appear to be rendered out into files on the disk, (like MovableType) this certainly got people that owned large blogs into trouble. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://kowitz.net/images/kowitz_net/WindowsLiveWriter/GraffitiCmsbyTelligent_137A9/image_4.png"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="248" alt="Graffiti Dashboard" width="496" border="0" src="http://kowitz.net/images/kowitz_net/WindowsLiveWriter/GraffitiCmsbyTelligent_137A9/image_thumb_1.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;I did get the feeling that I'd seen an admin area that looked similar...Graffiti even has fading panels at the top of the screen when you make a change...&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://kowitz.net/images/kowitz_net/WindowsLiveWriter/GraffitiCmsbyTelligent_137A9/image_6.png"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="216" alt="Wordpress Dashboard" width="499" border="0" src="http://kowitz.net/images/kowitz_net/WindowsLiveWriter/GraffitiCmsbyTelligent_137A9/image_thumb_2.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;In any case, Graffiti seems like something that should be watched in future. It may already be a great solution for a small - medium site. I do think that a site with a lot of pages may become a little unwieldy in the current interface, especially if changes need to be made across many pages, or you want to switch to a new theme. &lt;/p&gt;&lt;img src="http://kowitz.net/aggbug/83.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brendan Kowitz</dc:creator>
            <guid>http://kowitz.net/archive/2008/02/21/graffiti-cms-by-telligent.aspx</guid>
            <pubDate>Thu, 21 Feb 2008 12:16:05 GMT</pubDate>
            <wfw:comment>http://kowitz.net/comments/83.aspx</wfw:comment>
            <comments>http://kowitz.net/archive/2008/02/21/graffiti-cms-by-telligent.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://kowitz.net/comments/commentRss/83.aspx</wfw:commentRss>
            <trackback:ping>http://kowitz.net/services/trackbacks/83.aspx</trackback:ping>
        </item>
        <item>
            <title>Netgear SC101 (finally) does Vista</title>
            <link>http://kowitz.net/archive/2007/09/11/netgear-sc101-finally-does-vista.aspx</link>
            <description>&lt;p&gt;I just couldn't resist sharing the news with all those who have been burned with the Netgear SC101 network storage device. Call it what you like NAS, SAN, Hard drive with blue cable plugged in, doorstop, whatever. Netgear has finally after a few delays (6+ months), released a Vista driver, which, yey, I can verify works on my Vista Business Edition. I still haven't had any luck with getting it installed on Windows Server 2008 (errors with "Failed to install the Z-SAN SCSI miniport driver" whatever that is), but hey, 1 out of 2 ain't bad.&lt;/p&gt;
&lt;p&gt;&lt;img align="left" alt="" src="http://kowitz.net/Data/Images/sc101.jpg" /&gt;So if you're one of the people who upgraded to Vista and had to put your SC101 back in the box for a few months, head on over to the &lt;a href="http://kbserver.netgear.com/products/storagecentral.asp"&gt;support page&lt;/a&gt; and grab the latest driver attempt. Good luck.&lt;/p&gt;&lt;img src="http://kowitz.net/aggbug/78.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Brendan Kowitz</dc:creator>
            <guid>http://kowitz.net/archive/2007/09/11/netgear-sc101-finally-does-vista.aspx</guid>
            <pubDate>Tue, 11 Sep 2007 10:14:08 GMT</pubDate>
            <wfw:comment>http://kowitz.net/comments/78.aspx</wfw:comment>
            <comments>http://kowitz.net/archive/2007/09/11/netgear-sc101-finally-does-vista.aspx#feedback</comments>
            <slash:comments>24</slash:comments>
            <wfw:commentRss>http://kowitz.net/comments/commentRss/78.aspx</wfw:commentRss>
            <trackback:ping>http://kowitz.net/services/trackbacks/78.aspx</trackback:ping>
        </item>
        <item>
            <title>ParaSoft .TEST Test Drive</title>
            <link>http://kowitz.net/archive/2006/07/02/parasoft-.test-test-drive.aspx</link>
            <description>		&lt;p style="FONT-FAMILY: verdana,arial,helvetica,sans-serif"&gt;
				&lt;font size="2"&gt;
						&lt;span&gt;
								&lt;strong&gt;Intro&lt;/strong&gt;
						&lt;/span&gt;
				&lt;/font&gt;
		&lt;/p&gt;
		&lt;p style="FONT-FAMILY: verdana,arial,helvetica,sans-serif"&gt;
				&lt;font size="2"&gt;
						&lt;span&gt;Over the last few months we have been attempting to implement some &lt;em&gt;'better' &lt;/em&gt;best practice methodologies within our SDLC. Some of the things that we have already been addressing are:&lt;/span&gt;
				&lt;/font&gt;
		&lt;/p&gt;
		&lt;ul style="FONT-FAMILY: verdana,arial,helvetica,sans-serif"&gt;
				&lt;font size="2"&gt;
						&lt;li&gt;
								&lt;font size="2"&gt;
										&lt;span&gt;Simple Coding Standards and Rules&lt;/span&gt;
								&lt;/font&gt;
						&lt;/li&gt;
						&lt;li&gt;
								&lt;font size="2"&gt;
										&lt;span&gt;Nant Build Scripts&lt;/span&gt;
								&lt;/font&gt;
						&lt;/li&gt;
						&lt;li&gt;
								&lt;font size="2"&gt;
										&lt;span&gt;Continuous Integration with the help of Cruise control&lt;/span&gt;
								&lt;/font&gt;
						&lt;/li&gt;
				&lt;/font&gt;
		&lt;/ul&gt;
		&lt;p style="FONT-FAMILY: verdana,arial,helvetica,sans-serif"&gt;
				&lt;font size="2"&gt;
						&lt;font size="2"&gt;
								&lt;span&gt;Although I feel this is a good start, one of the more critical best practice aspect that has not been properly addressed is Unit and Regression testing. At the beginning of the previous project we had good intentions but because we got extremely battered for time, the Unit tests were all but abandond. However, the time has come to fully welcome on board Unit and Regression tests, then try and finally get some numbers in the NCover stats. &lt;/span&gt;
						&lt;/font&gt;
				&lt;/font&gt;
		&lt;/p&gt;
		&lt;p style="FONT-FAMILY: verdana,arial,helvetica,sans-serif"&gt;
				&lt;font size="2"&gt;
						&lt;span style="FONT-FAMILY: verdana,arial,helvetica,sans-serif"&gt;
						&lt;/span&gt;
				&lt;/font&gt;
				&lt;font size="2"&gt;
						&lt;font size="2"&gt;
								&lt;span&gt;
										&lt;strong&gt;
												&lt;img alt=".Test" hspace="0" src="http://kowitz.net/Data/Images/parasofttest.jpg" align="right" border="0" /&gt;Roadtesting &lt;a title="" href="http://www.parasoft.com/" target=""&gt;ParaSoft's&lt;/a&gt;&lt;a title="" href="http://www.parasoft.com/jsp/products/home.jsp?product=TestNet" target=""&gt;.TEST&lt;/a&gt;&lt;/strong&gt;
								&lt;/span&gt;
						&lt;/font&gt;
				&lt;/font&gt;
		&lt;/p&gt;
		&lt;p style="FONT-FAMILY: verdana,arial,helvetica,sans-serif"&gt;
				&lt;font size="2"&gt;
						&lt;font size="2"&gt;
								&lt;span&gt;I remember walking past the ParaSoft stand in the &lt;a href="/2004/6/30/WWDC+Day+2.aspx"&gt;JavaOne pavillion back in 2004&lt;/a&gt; where they where promoting JTest. They now have &lt;a title="" href="http://www.parasoft.com/jsp/products/home.jsp?product=TestNet" target=""&gt;.TEST &lt;/a&gt;for Visual Studio 2003/2005. Last week I was able to load up a trial version of .TEST for VS2003 to have a bit of a look. Initially I found the integration appealing, an example of this is code that violates a rule is underlined, documentation and an example on how to fix it is provided with a simple right-click.&lt;/span&gt;
						&lt;/font&gt;
				&lt;/font&gt;
		&lt;/p&gt;
		&lt;p style="FONT-FAMILY: verdana,arial,helvetica,sans-serif"&gt;
				&lt;font size="2"&gt;
						&lt;font size="2"&gt;
								&lt;span style="FONT-WEIGHT: bold"&gt;Rules validation Keypionts&lt;/span&gt;
								&lt;br /&gt;
						&lt;/font&gt;
				&lt;/font&gt;
		&lt;/p&gt;
		&lt;ul style="FONT-FAMILY: verdana,arial,helvetica,sans-serif"&gt;
				&lt;font size="2"&gt;
						&lt;li&gt;
								&lt;font size="2"&gt;Integrates directly into Visual Studio, underlines violations. &lt;/font&gt;
						&lt;/li&gt;
						&lt;li&gt;
								&lt;font size="2"&gt;Create custom rules configurations (some of the rules seem a little silly, they mean well, but aren't always practical)&lt;/font&gt;
						&lt;/li&gt;
						&lt;li&gt;
								&lt;font size="2"&gt;Each rule documented with examples of the violation and how to fix it. &lt;/font&gt;
						&lt;/li&gt;
						&lt;li&gt;
								&lt;font size="2"&gt;Based on the best practice standards on &lt;a title="" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netstart/html/cpframeworkref_start.asp" target=""&gt;MSDN&lt;/a&gt;.&lt;/font&gt;
						&lt;/li&gt;
				&lt;/font&gt;
		&lt;/ul&gt;
		&lt;p style="FONT-FAMILY: verdana,arial,helvetica,sans-serif"&gt;
				&lt;font size="2"&gt;
						&lt;font size="2"&gt;The rule validator does a pretty reasonable job, although be warned checking a 100,000+ line application can be a little bit too slow. However once this is done the first time, you can check files individually. It appears that all this rule validation data is stored inxml files which makes loading up the solution a little slow aswell. &lt;/font&gt;
				&lt;/font&gt;
		&lt;/p&gt;
		&lt;p style="FONT-FAMILY: verdana,arial,helvetica,sans-serif"&gt;
				&lt;font size="2"&gt;
						&lt;span style="FONT-FAMILY: verdana,arial,helvetica,sans-serif"&gt;
						&lt;/span&gt;
				&lt;/font&gt;
				&lt;font size="2"&gt;
						&lt;font size="2"&gt;
								&lt;strong&gt;But what about FxCop?&lt;/strong&gt;
						&lt;/font&gt;
				&lt;/font&gt;
		&lt;/p&gt;
		&lt;p style="FONT-FAMILY: verdana,arial,helvetica,sans-serif"&gt;
				&lt;font size="2"&gt;
						&lt;font size="2"&gt;Yes, what about FxCop?! FxCop is fast but it generates a massive list of violations based on the IL, not on the source. FxCop certainly does the job, but if you want something a little more user-friendly and 'right-there' in visual studio then the .TEST rule validation is worth a look.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Unit test generation Keypoints&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;
				&lt;/font&gt;
		&lt;/p&gt;
		&lt;ul style="FONT-FAMILY: verdana,arial,helvetica,sans-serif"&gt;
				&lt;font size="2"&gt;
						&lt;li&gt;
								&lt;font size="2"&gt;Automatically creates and adds files to a testing project in the solution&lt;/font&gt;
						&lt;/li&gt;
						&lt;li&gt;
								&lt;font size="2"&gt;Based on NUnit&lt;/font&gt;
						&lt;/li&gt;
						&lt;li&gt;Inbuilt coverage statistics 
&lt;/li&gt;
						&lt;li&gt;
								&lt;font size="2"&gt;Has own custom extensions (nunit.framework + dottest.framework)&lt;/font&gt;
						&lt;/li&gt;
				&lt;/font&gt;
		&lt;/ul&gt;
		&lt;font style="FONT-FAMILY: verdana,arial,helvetica,sans-serif" size="2"&gt;
				&lt;font size="2"&gt;
						&lt;p&gt;Although I didn't really go as in depth into the test generation as I would have liked (which was the point of looking into .TEST), one of the reasons for not is that the generation is &lt;u&gt;really&lt;/u&gt; slow. I'm sure that .TEST is crunching/parsing/analysing/generating lots and lots of stuff, but bottom line is...it's almost too slow. However after the test cases are (eventually) generated they are easily customisable to make sure they're doing the right thing. .TEST kindly marks all new tests it generates with a 'Not Verified' flag so you don't get confused. Generally speaking the generated code is relitively clean, easy to read and modify, but be warned it can spew out some really large files.&lt;/p&gt;
						&lt;p style="FONT-WEIGHT: bold"&gt;Overall&lt;/p&gt;
						&lt;p&gt;I'd say that already I've started a love-hate relationship with .TEST. There are also some more extensive reports that .TEST generates. These are broken down by team member with a small todo list of tasks (about 50) for team members to complete each day.  This is a good little personalisation that helps prevent becoming over-whelmed if the list is 1000s of items long. &lt;/p&gt;
						&lt;p&gt;The Unit test generation is probably the slowest feature (even on a per-file bases) but it makes setting up the tests very simple to do.  I think on the most part I prefer black-box testing which .TEST handles with no dramas.&lt;/p&gt;
						&lt;p&gt;.TEST seems like a relatively good little package which is enjoyable to use.  However the things I have been reading about Visual Studio Team Foundation Server makes me think that it may have all these &lt;a title="" href="http://400plusdifferences.com/" target=""&gt;bases covered&lt;/a&gt; plus many more.&lt;/p&gt;
						&lt;p&gt;
								&lt;strong&gt;Related Products&lt;/strong&gt;
						&lt;/p&gt;
						&lt;p&gt;Another product that I have also been able to try is &lt;a href="http://www.incenteus.com/"&gt;NTest &lt;/a&gt;by Incenteus. Basically has the same Unit Test generation features as .TEST but it works off the IL code.  For some reason I just don't think that NTest is as intelligent when it comes to generating relevant code, but as a cheaper alternative I guess it might be worth while.&lt;/p&gt;
						&lt;p&gt;
								&lt;img alt=".TEST Integration" hspace="0" src="http://kowitz.net/Data/Images/parasofttest_rules_crop.jpg" align="baseline" border="1" /&gt;
						&lt;/p&gt;
				&lt;/font&gt;
		&lt;/font&gt;
&lt;img src="http://kowitz.net/aggbug/51.aspx" width="1" height="1" /&gt;</description>
            <guid>http://kowitz.net/archive/2006/07/02/parasoft-.test-test-drive.aspx</guid>
            <pubDate>Sun, 02 Jul 2006 13:14:52 GMT</pubDate>
            <wfw:comment>http://kowitz.net/comments/51.aspx</wfw:comment>
            <comments>http://kowitz.net/archive/2006/07/02/parasoft-.test-test-drive.aspx#feedback</comments>
            <wfw:commentRss>http://kowitz.net/comments/commentRss/51.aspx</wfw:commentRss>
            <trackback:ping>http://kowitz.net/services/trackbacks/51.aspx</trackback:ping>
        </item>
        <item>
            <title>Programming Visual CSharp 2005</title>
            <link>http://kowitz.net/archive/2006/06/14/programming-visual-csharp-2005.aspx</link>
            <description>
		&lt;p&gt;Programming visual C# 2005: The Language by Donis Marshall&lt;/p&gt;
		&lt;span style="FONT-WEIGHT: bold"&gt;Book highlights for me:&lt;br /&gt;&lt;/span&gt;Below is a brief list of some of the language highlights presented in "Programming Visual C# 2005" that I have finally been able to get my hands on.&lt;span style="FONT-WEIGHT: bold"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;a style="FONT-WEIGHT: bold" href="http://msdn2.microsoft.com/en-us/library/1t3y8s4s.aspx"&gt;Nullable types&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;font color="#006400"&gt;//Define a nullable type &lt;br /&gt;&lt;/font&gt;int? a = null; 
&lt;/li&gt;&lt;li&gt;&lt;font color="#006400"&gt;//Boxing a nullable type &lt;br /&gt;&lt;/font&gt;object b = (object)a; 
&lt;/li&gt;&lt;li&gt;&lt;font color="#006400"&gt;//Detecting if a boxed value is a nullable type&lt;/font&gt;&lt;br /&gt;if(b.GetType().IsGenericType &amp;amp;&amp;amp; b.GetType.GetGenericTypeDefinition() == typeof(Nullable&amp;lt;&amp;gt;)) 
&lt;/li&gt;&lt;li&gt;&lt;font color="#006400"&gt;//Avoiding null&lt;/font&gt;&lt;br /&gt;a.GetValueOrDefault(0); 
&lt;/li&gt;&lt;li&gt;&lt;font color="#006400"&gt;//Setting a default value &lt;br /&gt;&lt;/font&gt;a = value ?? 0;&lt;/li&gt;&lt;/ul&gt;&lt;p style="FONT-WEIGHT: bold"&gt;Weak references&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="COLOR: rgb(0,102,0)"&gt;&lt;font color="#006400"&gt;//Using weak reference is a way of pointing to an object's value, but it's special because when our friend the garbage collector comes along, if the object has no hard references it is marked for collection.&lt;/font&gt;&lt;br /&gt;&lt;/span&gt;WeakReference a =  new WeakReference(new object());&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="FONT-WEIGHT: bold"&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/04/05/C20/"&gt;Anonymous methods&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="COLOR: rgb(0,102,0)"&gt;//Yes, I remember these from my uni Java days.  Anonymous methods have helped &lt;/span&gt;&lt;a title="Paquet Visuel" style="COLOR: rgb(0,102,0)" href="http://sourceforge.net/projects/paquetvisuel" target=""&gt;me successfully program many unmaintainable Java classes&lt;/a&gt;&lt;span style="COLOR: rgb(0,102,0)"&gt;, all I have to say about this is: they are great but, use with caution.&lt;/span&gt;&lt;br /&gt;SomeDelegate del = delegate()&lt;br /&gt;{&lt;br /&gt;MessageBox.Show("Hi!");&lt;br /&gt;} 
&lt;/li&gt;&lt;li&gt;&lt;span style="COLOR: rgb(0,102,0)"&gt;//Passing Parameters to anonymous methods.&lt;/span&gt;&lt;br /&gt;SomeDelegate del = delegate(string str)&lt;br /&gt;{&lt;br /&gt;MessageBox.Show(str);&lt;br /&gt;} 
&lt;/li&gt;&lt;li&gt;Generic anonymous methods...you get the picture, they do it all...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="FONT-WEIGHT: bold"&gt;Delegate Improvements&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="COLOR: rgb(0,102,0)"&gt;//Delegate inference, see, point the equals sign at the function you want it to call...and make it do stuff good.&lt;/span&gt;&lt;br /&gt;delegate void MyDelegate;&lt;br /&gt;void SomeFunction()&lt;br /&gt;{&lt;br /&gt;MyDelegate del = AnotherFunction;&lt;br /&gt;del();&lt;br /&gt;}&lt;br /&gt;void AnotherFunction(){ ... }&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="FONT-WEIGHT: bold"&gt;Garbage Collection&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="COLOR: rgb(0,102,0)"&gt;//&lt;/span&gt;&lt;a title="" style="COLOR: rgb(0,102,0)" href="http://msdn2.microsoft.com/en-us/library/system.gc.addmemorypressure.aspx" target=""&gt; Memory pressure&lt;/a&gt;&lt;span style="COLOR: rgb(0,102,0)"&gt;, this would be used in a wrapper class to indicate that a large amount of unmanaged memory is going to be consumed.&lt;/span&gt;&lt;br /&gt;GC.AddMemoryPressure(60000);&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="FONT-WEIGHT: bold"&gt;Generics&lt;/p&gt;&lt;ul&gt;&lt;li&gt;//Generically typed built-ins such as collections...whoa! so good!&lt;br /&gt;ArrayList&amp;lt;string&amp;gt; strAr = new ArrayList&amp;lt;string&amp;gt;();&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Generic classes, functions, etc...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="FONT-WEIGHT: bold"&gt;Other&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="COLOR: rgb(0,102,0)"&gt;//This is not new, and I haven't really come across too many situations where I've needed bitwise enumeration, however, I'll note down the flag just in case.&lt;/span&gt;&lt;br /&gt;[flag]&lt;br /&gt;public enum MyEnum{ A = 1, B = 2, C = 3 }&lt;br /&gt;MyEnum var = MyEnum.A | MyEnum.B;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;It's suprising how many times this is handy...&lt;br /&gt;string.IsNullOrEmty(); 
&lt;/li&gt;&lt;li&gt;Partial Classes...mmmm...C++ had this kind of good stuff too...&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Comments on the book:&lt;br /&gt;&lt;/span&gt;In general I'd say that this book is pretty well presented, the code samples seem straight forward and practical.  I'd probably recommend it if you are familiar with .Net or have a good idea about what .Net 2.0 offers.  I don't know if an absolute programming newbie would understand it from the word go, but I could be wrong.  So as an introduction and general reference to 2.0 it should be a good book to have around.&lt;span style="FONT-WEIGHT: bold"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://kowitz.net/aggbug/50.aspx" width="1" height="1" /&gt;</description>
            <guid>http://kowitz.net/archive/2006/06/14/programming-visual-csharp-2005.aspx</guid>
            <pubDate>Tue, 13 Jun 2006 17:54:47 GMT</pubDate>
            <wfw:comment>http://kowitz.net/comments/50.aspx</wfw:comment>
            <comments>http://kowitz.net/archive/2006/06/14/programming-visual-csharp-2005.aspx#feedback</comments>
            <wfw:commentRss>http://kowitz.net/comments/commentRss/50.aspx</wfw:commentRss>
            <trackback:ping>http://kowitz.net/services/trackbacks/50.aspx</trackback:ping>
        </item>
        <item>
            <title>NetworkToaster?</title>
            <link>http://kowitz.net/archive/2005/11/27/networktoaster.aspx</link>
            <description>
		&lt;p&gt;
				&lt;img alt="Netgear SC101" hspace="0" src="http://kowitz.net/Data/Images/sc101.jpg" align="right" border="0" /&gt;A few weeks ago I purchased a netgear SC101, here are my pros and cons of the shitty device. Firstly if your going to waste money on one of these, read some other reviews on the net first...I sure didn't. &lt;/p&gt;
		&lt;p&gt;About: The SC101 is a device you can put on your network and plug a few hard disks into it, load the (windows only) software onto your computer and away you go. Seems like a pretty good trouble free idea for pumping potentially a lot of storage into your network (if it worked). &lt;/p&gt;
		&lt;h4&gt;Pros &lt;/h4&gt;
		&lt;ul&gt;
				&lt;li&gt;It looks like some kind of cool network toaster..mmm..toast... 
&lt;/li&gt;
				&lt;li&gt;You can put 2 hard drives in it, so can potentially store alot of stuff It can span disks and make 1 really big one It can mirror disks, so you have failsafe data 
&lt;/li&gt;
				&lt;li&gt;You can buy multiple SC101s and span the disks on those too...cool... 
&lt;/li&gt;
				&lt;li&gt;Doubles as a good door stop &lt;/li&gt;
		&lt;/ul&gt;
		&lt;h4&gt;Cons &lt;/h4&gt;
		&lt;ul&gt;
				&lt;li&gt;Its not a toaster...a toaster would be more useful though Its Windows only, you won't be getting any cross-platform love here 
&lt;/li&gt;
				&lt;li&gt;The Storage Central Manager software (THE ONLY way of configuring the device), is one of the dodgiest things I have used in a while 
&lt;/li&gt;
				&lt;li&gt;It formats your drives in some wierd-assed format NOT recommended for a novice computer user... 
&lt;/li&gt;
				&lt;li&gt;TOO much messing around to get the thing to work sometimes 
&lt;/li&gt;
				&lt;li&gt;I spanned a disk...now it doesn't show up without heaps MORE messing around 
&lt;/li&gt;
				&lt;li&gt;It probably isn't worth much if you sold it as scrap metal 
&lt;/li&gt;
				&lt;li&gt;I already have a door stop &lt;/li&gt;
		&lt;/ul&gt;
		&lt;p&gt;My advice to all those thinking about buying one of these: Go and buy a NAS (Network Attached Storage) device, Netgear claims the SC101 is a SAN (Storage Area Network) device. I really think that a NAS device would be much more trouble free and they are cross platform. &lt;/p&gt;
		&lt;p&gt;The SC101 could have been a kick-ass product, but its not. For whatever reason the implementation just doesn't work. If someone from Netgear out there ever reads this; please rewrite that crappy Storage Central Manager and make it do stuff good..and fast. When a Mac compatible version comes out, then I'll start to be impressed. If anyone else out there still wants one of these little toasters...I'll swap you for a NAS device. &lt;/p&gt;
&lt;img src="http://kowitz.net/aggbug/28.aspx" width="1" height="1" /&gt;</description>
            <guid>http://kowitz.net/archive/2005/11/27/networktoaster.aspx</guid>
            <pubDate>Sun, 27 Nov 2005 03:04:40 GMT</pubDate>
            <wfw:comment>http://kowitz.net/comments/28.aspx</wfw:comment>
            <comments>http://kowitz.net/archive/2005/11/27/networktoaster.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://kowitz.net/comments/commentRss/28.aspx</wfw:commentRss>
            <trackback:ping>http://kowitz.net/services/trackbacks/28.aspx</trackback:ping>
        </item>
    </channel>
</rss>