<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://bloggingabout.net/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>Dotgrid by Roiy Zysman</title><link>http://bloggingabout.net/blogs/dotgrid/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Why .Net has it all</title><link>http://bloggingabout.net/blogs/dotgrid/archive/2007/09/15/why-net-has-it-all.aspx</link><pubDate>Fri, 14 Sep 2007 23:50:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:362435</guid><dc:creator>dotgrid</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://bloggingabout.net/blogs/dotgrid/rsscomments.aspx?PostID=362435</wfw:commentRss><comments>http://bloggingabout.net/blogs/dotgrid/archive/2007/09/15/why-net-has-it-all.aspx#comments</comments><description>&lt;p&gt;Disclaimer: I&amp;#39;m no MS/.Net evangelist. I&amp;#39;m just a computer software developer that wants to share his experience working on a weekend project (actually 3 weekends...)&lt;/p&gt;
&lt;p&gt;As a bet between me and my wife, I took the challenge of developing grid computing software over the weekend. The aim is to basically solve a very challenging billion of billions of possibilities puzzle with a 2 million dollar prize. &lt;/p&gt;
&lt;p&gt;The functional requirements were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A user friendly GUI (and an easy to use gui designer)&lt;/li&gt;
&lt;li&gt;Webclient Capabilities&lt;/li&gt;
&lt;li&gt;Email sending capabilities&lt;/li&gt;
&lt;li&gt;Encryption/Decryption&lt;/li&gt;
&lt;li&gt;Installation and Setup&lt;/li&gt;
&lt;li&gt;Software Updates Engine&lt;/li&gt;
&lt;li&gt;Process Execution Priority&lt;/li&gt;
&lt;li&gt;Registry Management&lt;/li&gt;
&lt;li&gt;MySql DB Connection Adapter&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;And there were a few non functional requirements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multi-Threaded Execution&lt;/li&gt;
&lt;li&gt;Code Access Security&lt;/li&gt;
&lt;li&gt;High Performance&lt;/li&gt;
&lt;li&gt;Small Memory Foot Print&lt;/li&gt;
&lt;li&gt;Source Code Obfuscation&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So I&amp;#39;ve set up and started to work. By taking a look at the list of functional and non functional requirements I&amp;#39;ve decided that going for .Net is probably the best call. While I might get a slight impact with the &lt;a href="http://www.csharphelp.com/archives2/archive458.html"&gt;high&lt;/a&gt; performance requirement, I would still earn a lot of good stuff as a tradeoff. &lt;/p&gt;
&lt;p&gt;Developing with VS2005 was a real treat, and when I&amp;#39;ve concluded my work , I took a step back and was wondering whether I could have achieved this with another programming language and a different development environment at the same or shorter time. Sure, unmanaged C++ would have probably give more cpu juice, but developing all of the stuff that was &amp;nbsp;in the list, would have taken me a lot more effort with C++. There were other possibilities that I had considered like Java, Perl and Python but all of them had drawbacks compared to .Net. &amp;nbsp;Perl and Python are somewhat Gui challenged, sure there are some &lt;a href="http://en.wikibooks.org/wiki/Programming:Perl_GUI_programming"&gt;Perl&lt;/a&gt; and &lt;a href="http://www.metaslash.com/python10/"&gt;Python&lt;/a&gt; Gui Toolkits, but they are not always supported by a proper designer and would probably require a more complicated installation scheme. And as for Java , well I couldn&amp;#39;t find any study or survey that does an apples to apples compare of &lt;a href="http://en.wikipedia.org/wiki/Java_(Sun)"&gt;Java penetration rate&lt;/a&gt; versus the .&lt;a href="http://blogs.msdn.com/scottwil/archive/2005/03/09/391199.aspx"&gt;Net runtime penetration rate&lt;/a&gt; on Win machines, but an internal hunch told me that .Net is more widely spread. Moreover having a simplified .Net installation capability versus none for java had made me remove Java as a software language candidate. I could however be criticized for not taking into consideration Java&amp;#39;s cross platform advantage, but .Net has its renegade unix/Linux brother known as Mono (a .NET linux run time engine) . The only difficulties with Mono would be to introduce a new setup flow , because ClickOnce would probably not work on a linux machine and I also had to &lt;a href="http://lists.ximian.com/pipermail/mono-list/2006-October/033178.html"&gt;Tweak&lt;/a&gt; the Windows.Win32 to work with linux as well. But having these two relatively easy tasks would have put me in a position where I could use my code on a Linux or &lt;a href="http://www.mono-project.com/Mono:OSX"&gt;MacOS&lt;/a&gt; box as well. In case you are wondering whether the winforms might have an issue running on a Linux box, stop wondering, they work &lt;a href="http://bloggingabout.net/blogs/dotgrid/archive/2005/08/20/winforms-on-monoppix.aspx"&gt;great&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;a href="http://bloggingabout.net/blogs/dotgrid/signs.jpg"&gt;&lt;img style="WIDTH:345px;HEIGHT:218px;" height="250" src="http://bloggingabout.net/blogs/dotgrid/signs.jpg" width="345" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;So here is a list of all of the good stuff that I used and probably saved me a lot of time by selecting .Net as my programming language. &lt;br /&gt;I used VS2005 UI designer to design my application forms.&lt;br /&gt;I used System.Net.WebClient for reporting the distributed clients progress.&lt;br /&gt;System.Diagnostics was used to control the process` priority.&lt;br /&gt;System.Net.Mail was used for sending emails&lt;br /&gt;System.Security.Cryptography was used for symmetric encryption and decryption&lt;br /&gt;Microsoft.Win32.RegistryKey was used for user properties persistency.&lt;br /&gt;MySql.Data for connecting to a MySQL db.&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/04/05/ClickOnce/"&gt;ClickOnce&lt;/a&gt; publishing tool was used for Setup and Version upgrades&lt;br /&gt;&lt;a href="http://www.preemptive.com/products/dotfuscator/"&gt;Dotfuscator&amp;#39;s&lt;/a&gt; community edition was used to obfuscate the compiled code&lt;/p&gt;
&lt;p&gt;And there are probably a lot more C#/VS2005 features that I subconsciously used &amp;nbsp;that saved me a lot of time.&lt;/p&gt;
&lt;p&gt;And I have a small confession to make, my client progress reporting backend server is in (god forbid..) &amp;nbsp;php. But that&amp;#39;s because I was too lazy to convert my hosting account to windows. If it was in windows I would have gone with ASP.Net for sure.&lt;/p&gt;
&lt;p&gt;To conclude this post, I would just say that today, in my opinion, C# and VS2005 is the most productive programming language and development environment for producing main stream, non niche, solutions. But that&amp;#39;s just me. Be gentle with the comments ;-)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Roiy&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=362435" width="1" height="1"&gt;</description><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/.net/default.aspx">.net</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/Development/default.aspx">Development</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/Software+Development/default.aspx">Software Development</category></item><item><title>(Web) User Interface Design Patterns </title><link>http://bloggingabout.net/blogs/dotgrid/archive/2007/09/10/web-user-interface-design-patterns.aspx</link><pubDate>Mon, 10 Sep 2007 19:23:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:358604</guid><dc:creator>dotgrid</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://bloggingabout.net/blogs/dotgrid/rsscomments.aspx?PostID=358604</wfw:commentRss><comments>http://bloggingabout.net/blogs/dotgrid/archive/2007/09/10/web-user-interface-design-patterns.aspx#comments</comments><description>&lt;p&gt;Discovered this hidden gem, thought of&amp;nbsp;sharing this for the sake of User Interface Humanity.&lt;br /&gt;We all know of the&amp;nbsp;excellent &lt;a class="" href="http://en.wikipedia.org/wiki/Design_Patterns"&gt;design patterns&lt;/a&gt; (by GoF&amp;nbsp;) for solving code&amp;nbsp;design&amp;nbsp;problems.&lt;br /&gt;Well, Yahoo took the concept a little further&amp;nbsp;by presenting &lt;a class="" href="http://developer.yahoo.com/ypatterns/"&gt;design patterns&lt;/a&gt; for us UIs challenged code developers.&lt;br /&gt;&lt;br /&gt;It&amp;#39;s going to be my first stop from now on when thinking on a UI&amp;nbsp;layout for my apps.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bloggingabout.net/blogs/dotgrid/yahooui.JPG"&gt;&lt;img src="http://bloggingabout.net/blogs/dotgrid/yahooui.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=358604" width="1" height="1"&gt;</description><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/UI/default.aspx">UI</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/Design+Patterns/default.aspx">Design Patterns</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/Development/default.aspx">Development</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/Web/default.aspx">Web</category></item><item><title>Tip : c# extracting version number</title><link>http://bloggingabout.net/blogs/dotgrid/archive/2007/09/01/tip-c-extracting-version-number.aspx</link><pubDate>Sat, 01 Sep 2007 12:47:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:352788</guid><dc:creator>dotgrid</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://bloggingabout.net/blogs/dotgrid/rsscomments.aspx?PostID=352788</wfw:commentRss><comments>http://bloggingabout.net/blogs/dotgrid/archive/2007/09/01/tip-c-extracting-version-number.aspx#comments</comments><description>&lt;p&gt;Comes in handy if you want to implement an automatic application upgrade component.&lt;br /&gt;By calling &lt;br /&gt;&lt;font size="2"&gt;System.Deployment.Application.&lt;/font&gt;&lt;font color="#008080" size="2"&gt;ApplicationDeployment&lt;/font&gt;&lt;font size="2"&gt;.CurrentDeployment.CurrentVersion&lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;You&amp;#39;ll get&amp;nbsp;in return&amp;nbsp;which current version is running and can alert the user that there is a new version available.&lt;br /&gt;(The version can be set in a &lt;em&gt;publish&lt;/em&gt; wizard or on a &lt;em&gt;setup&amp;nbsp;&lt;/em&gt;project in&amp;nbsp;visual studio)&amp;nbsp;&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;While dubugging , the CurrentDeloyment object is not available so make sure you wrap the above call with&lt;br /&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;font size="2"&gt; (System.Diagnostics.&lt;/font&gt;&lt;font color="#008080" size="2"&gt;Debugger&lt;/font&gt;&lt;font size="2"&gt;.IsAttached == &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;false&lt;/font&gt;&lt;font size="2"&gt;)&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;font size="2"&gt;Have fun.&lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;Roiy&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=352788" width="1" height="1"&gt;</description><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/.net/default.aspx">.net</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/version/default.aspx">version</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/extracting/default.aspx">extracting</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/number/default.aspx">number</category></item><item><title>Web Development Cheat Sheet</title><link>http://bloggingabout.net/blogs/dotgrid/archive/2007/08/29/web-development-cheat-sheet.aspx</link><pubDate>Wed, 29 Aug 2007 18:56:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:351033</guid><dc:creator>dotgrid</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://bloggingabout.net/blogs/dotgrid/rsscomments.aspx?PostID=351033</wfw:commentRss><comments>http://bloggingabout.net/blogs/dotgrid/archive/2007/08/29/web-development-cheat-sheet.aspx#comments</comments><description>Great job&amp;nbsp;by the &lt;a class="" href="http://bloggingabout.net/controlpanel/blogs/realsoftwaredevelopment.com"&gt;realsoftwaredevelopment.com&lt;/a&gt; guy. &lt;br /&gt;Below is&amp;nbsp;a partial list, click &lt;a class="" href="http://www.realsoftwaredevelopment.com/2007/08/ultimate-web-de.html" target="_blank"&gt;here&lt;/a&gt; for the &lt;strong&gt;full list.&lt;/strong&gt; &amp;nbsp;&amp;nbsp; 
&lt;h2&gt;JavaScript&lt;/h2&gt;
&lt;p&gt;&lt;a title="JavaScript Cheat Sheet" href="http://www.ilovejackdaniels.com/article/javascript-cheat-sheet/" target="_blank"&gt;JavaScript Cheat Sheet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Addison-Wesley&amp;#39;s JavaScript Reference Card" href="http://wps.aw.com/wps/media/objects/2234/2287950/javascript_refererence.pdf" target="_blank"&gt;Addison-Wesley&amp;#39;s JavaScript Reference Card&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="JavaScript Quick Reference" href="http://javascript-reference.info/" target="_blank"&gt;JavaScript Quick Reference&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="JavaScript and Browser Objects Quick Reference" href="http://www.dannyg.com/dl/JSB6RefBooklet.pdf" target="_blank"&gt;JavaScript and Browser Objects Quick Reference&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="JavaScript in 10 Minutes" href="http://javascript.infogami.com/Javascript_in_Ten_Minutes" target="_blank"&gt;JavaScript in 10 Minutes&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;CSS&lt;/h2&gt;
&lt;p&gt;&lt;a title="CSS Help Sheet" href="http://www.gosquared.com/images/help_sheets/CSS%20Help%20Sheet.pdf" target="_blank"&gt;CSS Help Sheet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="CSS Shorthand Guide" href="http://www.dustindiaz.com/css-shorthand/" target="_blank"&gt;CSS Shorthand Guide&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="CSS Cheat Sheet" href="http://www.ilovejackdaniels.com/cheat-sheets/css-cheat-sheet/" target="_blank"&gt;CSS Cheat Sheet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Cascading Style Cheat Sheet" href="http://home.tampabay.rr.com/bmerkey/cheatsheet.htm" target="_blank"&gt;Cascading Style Cheat Sheet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="CSS Cheat Sheet" href="http://www.petefreitag.com/cheatsheets/css/" target="_blank"&gt;CSS Cheat Sheet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="CSS Quick Reference" href="http://www.veign.com/downloads/guides/qrg0007.pdf" target="_blank"&gt;CSS Quick Reference&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Design 215 CSS Quick Reference" href="http://www.design215.com/toolbox/css_guide.php" target="_blank"&gt;Design 215 CSS Quick Reference&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="CSS Level 1 Quick Reference" href="http://refcards.com/docs/deepx/css1/CSS1.pdf" target="_blank"&gt;CSS Level 1 Quick Reference&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="CSS Level 2 Quick Reference" href="http://refcards.com/docs/jungb/css2/css2.pdf" target="_blank"&gt;CSS Level 2 Quick Reference&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="CSS Property Index" href="http://www.blooberry.com/indexdot/css/propindex/all.htm" target="_blank"&gt;CSS Property Index&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;HTML/XHTML&lt;/h2&gt;
&lt;p&gt;&lt;font color="#003366"&gt;&lt;a title="HTML Help Sheet" href="http://www.gosquared.com/images/help_sheets/HTML%20Help%20Sheet.pdf" target="_blank"&gt;HTML Help Sheet&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="XHTML Cheat Sheet" href="http://floele.flyspray.org/htmlcheatsheet.pdf" target="_blank"&gt;XHTML Cheat Sheet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="HTML Cheat Sheet" href="http://www.psacake.com/web/dy.asp" target="_blank"&gt;HTML Cheat Sheet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="HTML Character Entities Cheat Sheet" href="http://www.ilovejackdaniels.com/article/html-character-entities-cheat-sheet/" target="_blank"&gt;HTML Character Entities Cheat Sheet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="PDF HTML Cheat Sheet" href="http://cdburnerxp.se/htmlcheatsheet.pdf" target="_blank"&gt;PDF HTML Cheat Sheet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="HTML &amp;amp; XHTML CheatSheet" href="http://www.petefreitag.com/cheatsheets/xhtml/" target="_blank"&gt;HTML &amp;amp; XHTML Cheat Sheet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="HTML Tags" href="http://html-tags.info/" target="_blank"&gt;HTML Tags&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="A Simple Guide to HTML" href="http://home.alphalink.com.au/~rhduncan/htmlguide/cheatindex.html" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;&lt;a title="Reference HTML Cheat Sheet" href="http://www.webmonkey.com/reference/html_cheatsheet/" target="_blank"&gt;Reference HTML Cheat Sheet&lt;/a&gt; 
&lt;p&gt;&lt;a title="HTML Tags Cheat Sheet" href="http://www.killersites.com/HTML_CODES/index.jsp" target="_blank"&gt;HTML Tags Cheat Sheet&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;AJAX&lt;/h2&gt;
&lt;p&gt;&lt;a title="What’s Ajax? Cheat Sheet" href="http://slash7.com/cheats/whats_ajax_cheatsheet.pdf" target="_blank"&gt;What’s Ajax? Cheat Sheet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Prototype Cheat Sheet" href="http://www.snook.ca/archives/000531.php" target="_blank"&gt;Prototype Cheat Sheet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Scriptaculous Combination Effects Cheat Sheet" href="http://slash7.com/cheats/scriptaculous_fx1.pdf" target="_blank"&gt;Scriptaculous Combination Effects Cheat Sheet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Scriptaculous Cheat Sheet" href="http://www.archive.org/details/Scriptaculous_Cheat_Sheet" target="_blank"&gt;Scriptaculous Cheat Sheet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="AJAX for ASP.net Cheat Sheet" href="http://aspnetresources.com/downloads/ms_ajax_library_cheat_sheets1.zip"&gt;AJAX for ASP.net Cheat Sheet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="ASP.net AJAX Client Life-Cycle Events" href="http://aspnetresources.com/downloads/MS%20Ajax%20Client%20Life-Cycle%20Events.pdf" target="_blank"&gt;ASP.net AJAX Client Life-Cycle Events&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="MooTools Cheat Sheet" href="http://snook.ca/archives/javascript/mootools_r83_cheatsheet/" target="_blank"&gt;MooTools Cheat Sheet&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Colors&lt;/h2&gt;
&lt;p&gt;&lt;a title="RGB Hex Color Chart" href="http://www.ilovejackdaniels.com/resources/colour-chart/" target="_blank"&gt;RGB Hex Color Chart&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="HTML Color Codes" href="http://html-color-codes.com/" target="_blank"&gt;HTML Color Codes&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Color Reference Guide" href="http://www.veign.com/downloads/guides/qrg0006.pdf" target="_blank"&gt;Color Reference Guide&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/h2&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=351033" width="1" height="1"&gt;</description></item><item><title>User Friendly UIs - Doing the extra mile</title><link>http://bloggingabout.net/blogs/dotgrid/archive/2007/08/28/user-friendly-uis-doing-the-extra-mile.aspx</link><pubDate>Tue, 28 Aug 2007 19:53:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:350469</guid><dc:creator>dotgrid</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://bloggingabout.net/blogs/dotgrid/rsscomments.aspx?PostID=350469</wfw:commentRss><comments>http://bloggingabout.net/blogs/dotgrid/archive/2007/08/28/user-friendly-uis-doing-the-extra-mile.aspx#comments</comments><description>&lt;p&gt;There are some simple basic rules to follow &lt;a href="http://bloggingabout.net/blogs/dotgrid/angry_baby_head.jpg"&gt;&lt;img style="WIDTH:134px;HEIGHT:156px;" height="156" src="http://bloggingabout.net/blogs/dotgrid/angry_baby_head.jpg" width="134" align="right" border="0" alt="" /&gt;&lt;/a&gt;when designing a web page. One of them is keeping your customer happy by&lt;br /&gt;not surprising him with unwanted results. A lot of content sites , which their content expands beyond the window frame also have an auto&amp;nbsp;refresh mechanisms. And this leads to a deadly mixture where you scroll down to the lower parts of the page , you begin reading a paragraph and the &amp;quot;Pooof&amp;quot; the page turns white, the page refreshes and the view is back at the top of the page. Well now of course, you have to scroll down again and find the paragraph you read just a second ago.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;The solution is not complicated , it consists of just&amp;nbsp;checking the page&amp;#39;s&amp;nbsp;Y scroll offset before a page refresh occurs. [See JS code below]&lt;br /&gt;So from now on when you insert an automatic page refresh, checking for the pages Y offset before refreshing is just telling your customer you care...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;...&lt;br /&gt;...&lt;br /&gt;...&lt;br /&gt;function doLoad()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; setTimeout( &amp;quot;refresh()&amp;quot;, 2*1000 );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function refresh()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; // use the following for cross browser compatability&lt;br /&gt;&amp;nbsp; //(document.all)?document.body.scrollLeft:window.pageXOffset;&amp;nbsp;&lt;br /&gt;&amp;nbsp; //(document.all)?document.body.scrollTop:window.pageYOffset;&amp;nbsp;&lt;br /&gt;&amp;nbsp; if&lt;b&gt;(&amp;quot;0&amp;quot; == document.body.scrollTop&lt;/b&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.location.href = sURL;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //at this point , the user scrolled &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //down and is probably reading the page&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //either we double the refresh rate time ,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// or just hang in a few more seconds/minutes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //to let him finish. In this specific case &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //we&amp;#39;re increasing the refresh time to 2 minutes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setTimeout( &amp;quot;refresh()&amp;quot;, 120*1000 );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;//--&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body onload=&amp;quot;doLoad()&amp;quot;&amp;gt;&lt;br /&gt;...&lt;br /&gt;...&lt;br /&gt;...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=350469" width="1" height="1"&gt;</description><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/User+friendly/default.aspx">User friendly</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/HFE/default.aspx">HFE</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/UI/default.aspx">UI</category></item><item><title>Loading external poweshell dll / dlls</title><link>http://bloggingabout.net/blogs/dotgrid/archive/2007/07/14/loading-external-poweshell-dll-dlls.aspx</link><pubDate>Sat, 14 Jul 2007 19:49:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:315028</guid><dc:creator>dotgrid</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://bloggingabout.net/blogs/dotgrid/rsscomments.aspx?PostID=315028</wfw:commentRss><comments>http://bloggingabout.net/blogs/dotgrid/archive/2007/07/14/loading-external-poweshell-dll-dlls.aspx#comments</comments><description>&lt;p&gt;If you want to use an external&amp;nbsp;.Net lib in powershell, here is a&amp;nbsp;simple example...&amp;nbsp;&lt;/p&gt;
&lt;p&gt;$lib=&amp;quot;C:\yael\YaelExample\bin\Debug\zrlabs.Yael.BasicFilters.dll&amp;quot;&lt;br /&gt;[Reflection.Assembly]::LoadFrom($lib);&lt;br /&gt;[System.Reflection.Assembly]::Load(&amp;quot;System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&amp;quot;);&lt;br /&gt;$img = [System.Drawing.Bitmap]::FromFile(&amp;quot;c:/tempcat.jpg&amp;quot;);&lt;br /&gt;$textWaterMark = new-object zrlabs.Yael.BasicFilters.TextWatermarkFilter;&lt;br /&gt;$transformedImage = $textWaterMark.ExecuteFilter($img);&lt;br /&gt;$transformedImage.Save(&amp;quot;c:/temp/cat_watermark.png&amp;quot;);&lt;/p&gt;
&lt;p&gt;Mostly a &amp;quot;note to self&amp;quot;...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=315028" width="1" height="1"&gt;</description><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/Powershell/default.aspx">Powershell</category></item><item><title>Terminals - A WTS/Remote connector alternative</title><link>http://bloggingabout.net/blogs/dotgrid/archive/2007/07/11/terminals-a-wts-remote-connector-alternative.aspx</link><pubDate>Wed, 11 Jul 2007 20:41:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:312245</guid><dc:creator>dotgrid</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://bloggingabout.net/blogs/dotgrid/rsscomments.aspx?PostID=312245</wfw:commentRss><comments>http://bloggingabout.net/blogs/dotgrid/archive/2007/07/11/terminals-a-wts-remote-connector-alternative.aspx#comments</comments><description>&lt;p&gt;If your frequently connect remotely to Windows based servers , than the following product can make your job a little bit easier.&lt;/p&gt;
&lt;p&gt;Instead of constantly mstsc-ing , you can simply use this tool to save connection profiles and connection groups ,it also&amp;nbsp;supports connection tabs. Another nice feature is the &amp;quot;Connect to Console&amp;quot; check box (I wonder if they are ever going to automatically connect you to the console session if the 2 regular ones are occupied)&lt;br /&gt;Download from here &lt;a href="http://www.codeplex.com/Terminals/"&gt;http://www.codeplex.com/Terminals/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[Update]: The full screen mode is a bit dodgy, and doesn&amp;#39;t always work. To make sure it works properly, switch to full screen mode before you log in ..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:757px;HEIGHT:546px;" height="546" src="http://www.codeplex.com/Terminals/Project/FileDownload.aspx?DownloadId=5986" width="757" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Nice work Terminals guys!!&lt;/p&gt;
&lt;p&gt;Roiy&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=312245" width="1" height="1"&gt;</description></item><item><title>Using Workflows to visually construct project Build/Compilation flows.</title><link>http://bloggingabout.net/blogs/dotgrid/archive/2007/05/20/using-workflows-to-visually-construct-project-compilations-flows.aspx</link><pubDate>Sat, 19 May 2007 22:43:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:208476</guid><dc:creator>dotgrid</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://bloggingabout.net/blogs/dotgrid/rsscomments.aspx?PostID=208476</wfw:commentRss><comments>http://bloggingabout.net/blogs/dotgrid/archive/2007/05/20/using-workflows-to-visually-construct-project-compilations-flows.aspx#comments</comments><description>&lt;p&gt;Code &lt;a title="BuildActivities.zip" href="http://www.dotnetclan.com/Blog/WF1/BuildActivities.zip"&gt;[Here]&lt;/a&gt;&lt;/p&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;I happen to participate in an agile workshop where some automated build tools were discussed ,&lt;a href="http://www.kinook.com/VisBuildPro/screenshots.html"&gt;visual build&lt;/a&gt;&amp;nbsp; was one of them. I liked the idea of visually&amp;nbsp;constructing &amp;nbsp;the project build instead of using batch files or VS IDE build actions&amp;nbsp;that are hard to execute or to maintain. In &amp;quot;visual build&amp;quot;&amp;nbsp;you simply&amp;nbsp;visually drag and drop&amp;nbsp;activity&amp;nbsp;blocks from a tool box&amp;nbsp;to&amp;nbsp;construct the build process.&amp;nbsp;I wanted have my own &amp;quot;Visual Build Designer&amp;quot; , and it was very obvious that I can utilize &lt;em&gt;Windows Workflow&lt;/em&gt; to do that.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;My basic required activity blocks were:&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;Extract the latest version from Source Control&amp;nbsp; [&lt;span id="highlight_tag" style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-WEIGHT:bold;PADDING-BOTTOM:0px;COLOR:#ee6600;PADDING-TOP:0px;BACKGROUND-COLOR:yellow;"&gt;VSTF&lt;/span&gt;]&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;Build the project&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;Send an email with the results&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;Another requirement was that the process builder (the actual person&amp;nbsp;that drags and drops the activity blocks) would not have to write a single line of code. He would have to set in the activity blocks properties of course , but he wouldn&amp;#39;t actually need to add additional c#/vb.net to support the basic functionality.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;So the first step was to read about writing customized activities . &lt;a href="http://nayyeri.net/archive/2007/01/25/how-to-write-a-custom-workflow-activity.aspx"&gt;This&lt;/a&gt;&amp;nbsp; was a good resource to start.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;The second step was to read about extracting code from &lt;span id="highlight_tag" style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-WEIGHT:bold;PADDING-BOTTOM:0px;COLOR:#ee6600;PADDING-TOP:0px;BACKGROUND-COLOR:yellow;"&gt;VSTF&lt;/span&gt; source control. &lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.teamfoundation.client(VS.80).aspx"&gt;Here&lt;/a&gt;&amp;nbsp;is a good place to start.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;Next step was to write the customized activities.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;I wrote three customized activities&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;A source control code extractor - GetCode.cs&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;An MSBuild executer - MSBuild.cs&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;A mailer - Mailer.cs&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;here is how (in short) the GetCode.cs imports the source control &lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font size="+0"&gt;&lt;span class="591232605-20052007"&gt;&lt;font color="#2b91af"&gt;&lt;font face="Tahoma" size="2"&gt;String&lt;/font&gt;&lt;/font&gt;&lt;font face="Tahoma" size="2"&gt; tfsName = TFSServer;&lt;/font&gt;&lt;font color="#008000"&gt;&lt;br /&gt;&lt;/font&gt;&lt;font face="Tahoma" size="2"&gt;TeamFoundationServer tfs = TeamFoundationServerFactory&lt;/font&gt;&lt;font face="Tahoma" size="2"&gt;.GetServer(tfsName);&lt;br /&gt;VersionControlServer versionControl = (VersionControlServer)tfs.GetService(typeof(VersionControlServer&lt;/font&gt;&lt;font face="Tahoma" size="2"&gt;));&lt;br /&gt;Workspace workspace = null&lt;/font&gt;&lt;font face="Tahoma" size="2"&gt;;&lt;br /&gt;workspace = versionControl.CreateWorkspace(WORKSPACENAME, versionControl.AuthenticatedUser);&lt;br /&gt;WorkingFolder myworkingfolder = new WorkingFolder&lt;/font&gt;&lt;font face="Tahoma" size="2"&gt;(TFSArea, SCPath);&lt;br /&gt;&lt;/font&gt;&lt;font face="Tahoma" size="2"&gt;workspace.CreateMapping(myworkingfolder);&lt;br /&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;workspace.Get();&lt;br /&gt;versionControl.DeleteWorkspace(WORKSPACENAME, versionControl.AuthenticatedUser);&lt;br /&gt;&lt;br /&gt;&lt;span class="591232605-20052007"&gt;The TFSServer,tfsName and SCPath are activity properties which are defined as so in the code&lt;br /&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;static&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;DependencyProperty&lt;/font&gt;&lt;font size="2"&gt; SCPathProperty = &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;DependencyProperty&lt;/font&gt;&lt;font size="2"&gt;.Register&lt;br /&gt;(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;SCPath&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;typeof&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt;), &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;typeof&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;GetCode&lt;/font&gt;&lt;font size="2"&gt;));&lt;br /&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;
&lt;p&gt;[&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;Description&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;The local folder to get the code&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;)]&lt;br /&gt;[&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;Category&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;Dependency Properties&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;)]&lt;br /&gt;[&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;Browsable&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;true&lt;/font&gt;&lt;font size="2"&gt;)]&lt;br /&gt;[&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;DesignerSerializationVisibility&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;DesignerSerializationVisibility&lt;/font&gt;&lt;font size="2"&gt;.Visible)]&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; SCPath&lt;br /&gt;{&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;get&lt;/font&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;Convert&lt;/font&gt;&lt;font size="2"&gt;.ToString(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;base&lt;/font&gt;&lt;font size="2"&gt;.GetValue(SCPathProperty));}&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;set&lt;/font&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;base&lt;/font&gt;&lt;font size="2"&gt;.SetValue(SCPathProperty, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;value&lt;/font&gt;&lt;font size="2"&gt;);}&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;and that makes them visible in the designer like so &lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;img src="http://www.dotnetclan.com/Blog/WF1/wf1.jpg" alt="" /&gt;[WF1.jpg]&lt;br /&gt;&lt;br /&gt;So here are the properties of all of the components&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;font size="+0"&gt;&lt;span class="591232605-20052007"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;font face="Tahoma" size="2"&gt;G&lt;span class="591232605-20052007"&gt;etCode - &lt;span id="highlight_tag" style="PADDING-RIGHT:0px;PADDING-LEFT:0px;FONT-WEIGHT:bold;PADDING-BOTTOM:0px;COLOR:#ee6600;PADDING-TOP:0px;BACKGROUND-COLOR:yellow;"&gt;VSTF&lt;/span&gt; Server, Source Control area path, and the path to dump the files into&lt;/span&gt;&lt;/font&gt; 
&lt;li&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;MSBuilder - MSBuilde exe path, Project path and Project file name&lt;/span&gt;&lt;/font&gt; 
&lt;li&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;Mailer -&amp;nbsp; To, Subject, Body , SMTPHost&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;font size="+0"&gt;&lt;span class="591232605-20052007"&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;img src="http://www.dotnetclan.com/Blog/WF1/wf2.jpg" alt="" /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;img src="http://www.dotnetclan.com/Blog/WF1/wf3.jpg" alt="" /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;img src="http://www.dotnetclan.com/Blog/WF1/wf4.jpg" alt="" /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;N&lt;span class="591232605-20052007"&gt;ow all that&amp;#39;s left is to open a new workflow project, add these activities to the tool box , drag&amp;nbsp;them into the designer window and finally bind the properties of the activities.&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;img src="http://www.dotnetclan.com/Blog/WF1/wf5.jpg" alt="" /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;The binding are as follows:&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;The msbuilder ProjectPath property is binded to the getCode SCPath property, which means that the msbuilder looks at the same directory where the source controller brought the code to.&lt;/span&gt;&lt;/font&gt; 
&lt;li&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;The Mailer branch is binded to the the MSbuilder BuildResult property , if the build succeeded than the BuildResult Property would be set to true and the successful branch would be taken and vice versa.&lt;/span&gt;&lt;/font&gt; 
&lt;li&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;The mailer Body Property is binded to the MSBuild&amp;nbsp;&amp;nbsp;BuildOutput property which means that the emails body contents would actually be the output of the MSBuild process.&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;All of the other properties (such as TO, SMTPHost , subject , etc) would be have to be set by the process builder (the person using it)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="Tahoma" size="2"&gt;&lt;span class="591232605-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;That&amp;#39;s basically it, all that&amp;#39;s left to do is to run the process and wait for the result email&lt;span class="936582707-20052007"&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;Build Failed Email &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;img src="http://www.dotnetclan.com/Blog/WF1/wf6.jpg" alt="" /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;Build Success Email&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;img src="http://www.dotnetclan.com/Blog/WF1/wf7.jpg" alt="" /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;Next steps would be to to add more build related activities such as publish(some kind of xcopy), ftp , package, etc.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;Which I hope to accomplish soon.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;Any Feedbacks ? Can you think of other build related activities that would be valuable ?&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;span class="936582707-20052007"&gt;Roiy&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;span class="936582707-20052007"&gt;&lt;span class="591232605-20052007"&gt;&lt;font face="Tahoma"&gt;&lt;span class="936582707-20052007"&gt;&lt;br /&gt;Code &lt;a title="BuildActivities.zip" href="http://www.dotnetclan.com/Blog/WF1/BuildActivities.zip"&gt;[Here]&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=208476" width="1" height="1"&gt;</description><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/MSBuild/default.aspx">MSBuild</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/Compile/default.aspx">Compile</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/source+control/default.aspx">source control</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/Build/default.aspx">Build</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/VSTF/default.aspx">VSTF</category></item><item><title>From sourceforge.net into real life</title><link>http://bloggingabout.net/blogs/dotgrid/archive/2007/04/28/from-sourceforge-net-into-real-life.aspx</link><pubDate>Fri, 27 Apr 2007 13:06:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:179236</guid><dc:creator>dotgrid</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://bloggingabout.net/blogs/dotgrid/rsscomments.aspx?PostID=179236</wfw:commentRss><comments>http://bloggingabout.net/blogs/dotgrid/archive/2007/04/28/from-sourceforge-net-into-real-life.aspx#comments</comments><description>&lt;DIV&gt;&lt;FONT face=Tahoma size=2&gt;&lt;SPAN class=343090722-27042007&gt;Back in the days , when I had a real physical Linux box (I Use vpc/vmware these days), I've downloaded and compiled one of the first non-ascii-like Linux games.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Tahoma size=2&gt;&lt;SPAN class=343090722-27042007&gt;The game was called &lt;A href="http://tuxracer.sourceforge.net/" target=_blank&gt;Tux Racer&lt;/A&gt; and it was basically a downhill ski ride of the&amp;nbsp;Linux penguin figure. Today , while I was walking around the mall with my little daughter , we've went into the games arcade , and there by the side stood a real life tux racers games box.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Tahoma size=2&gt;&lt;SPAN class=343090722-27042007&gt;There is much that's going right now on &lt;A href="http://www.codinghorror.com/blog/archives/000842.html"&gt;where are all of the open source millionaires&lt;/A&gt;, I don't know if they made millions from this arcade machine, but it was nice seeing something actually materializing from a sourceforge.com project into a real life business object.&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Tahoma size=2&gt;&lt;SPAN class=343090722-27042007&gt;&lt;IMG src="http://farm1.static.flickr.com/208/474946399_0d8afffb68_m.jpg"&gt;&amp;nbsp;&lt;IMG src="http://farm1.static.flickr.com/195/474935168_2323a51575_m.jpg"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Tahoma size=2&gt;&lt;SPAN class=343090722-27042007&gt;&lt;IMG src="http://farm1.static.flickr.com/187/474945791_2f9bd576fb_m.jpg"&gt;&amp;nbsp;&lt;IMG src="http://farm1.static.flickr.com/194/474934538_572814a564_m.jpg"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=179236" width="1" height="1"&gt;</description></item><item><title>Disabling Windows System messages balloons</title><link>http://bloggingabout.net/blogs/dotgrid/archive/2007/04/26/disabling-windows-system-messages-balloons.aspx</link><pubDate>Thu, 26 Apr 2007 11:23:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:177077</guid><dc:creator>dotgrid</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://bloggingabout.net/blogs/dotgrid/rsscomments.aspx?PostID=177077</wfw:commentRss><comments>http://bloggingabout.net/blogs/dotgrid/archive/2007/04/26/disabling-windows-system-messages-balloons.aspx#comments</comments><description>&lt;P&gt;(Self note)&lt;/P&gt;
&lt;P&gt;Want to remove the nagging system notification balloons coming from the systray?&lt;/P&gt;
&lt;P&gt;regedit the following &lt;BR&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced &lt;BR&gt;Create a new DWORD value by the name of &lt;EM&gt;EnableBalloonTips&lt;/EM&gt; , leave it as 0 and you're good to go.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=177077" width="1" height="1"&gt;</description></item><item><title>.NET image enhancments library (LGPL)</title><link>http://bloggingabout.net/blogs/dotgrid/archive/2006/11/25/.NET-image-enhancments-library-_2800_LGPL_2900_.aspx</link><pubDate>Sat, 25 Nov 2006 04:31:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:57263</guid><dc:creator>dotgrid</dc:creator><slash:comments>14</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://bloggingabout.net/blogs/dotgrid/rsscomments.aspx?PostID=57263</wfw:commentRss><comments>http://bloggingabout.net/blogs/dotgrid/archive/2006/11/25/.NET-image-enhancments-library-_2800_LGPL_2900_.aspx#comments</comments><description>&lt;div&gt;I started getting more and more interested in image (as in gif,jpg and png)&amp;nbsp;manipulations. I&amp;#39;ve taken a digital imaging processing course as part of my masters degree. It was cool , learned alot about things &lt;a href="http://mail.google.com/mail/fourier%20transform"&gt;fourier transform&lt;/a&gt;&amp;nbsp;and it made me wonder what kind of image filters are there across the web , and especially what&amp;#39;s available to be used in the .NET realm. The System.Drawing ns doesn&amp;#39;t give you much. you can do thing like flip and 90 degrees rotation, but for practical web usage you&amp;#39;ll probably need more sophisticated (but still basic) stuff like DropShadow, WaterMark , grayscale and other image filters to make your web sites look better and more appealing. I googled for some resources and found some examples, but there wasn&amp;#39;t a complete .NET library that encapsulated all of the common used and required image filters.&lt;/div&gt;
&lt;div&gt;So I&amp;#39;ve created one , named &lt;a href="http://www.dotnetclan.com/zrlabs/yael/YaelMain.htm"&gt;&lt;font color="#0000cc"&gt;YAEL&lt;/font&gt;&lt;/a&gt; which stands for Yet Another image Enhancement Library.&lt;/div&gt;
&lt;div&gt;Currently it consists of the following filters&lt;/div&gt;
&lt;li&gt;Resize 
&lt;li&gt;Rotate 
&lt;li&gt;Grayscale 
&lt;li&gt;Rounded Corners 
&lt;li&gt;Boxing 
&lt;li&gt;Drop Shadow 
&lt;li&gt;Polaroid frame 
&lt;li&gt;Text and Image warter marks&lt;br /&gt;
&lt;div&gt;Here are some samples (took a picture of my cat as a model..)&lt;/div&gt;
&lt;div&gt;&lt;img src="http://www.dotnetclan.com/zrlabs/yael/Images/resize_100x70.png" alt="" /&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;img src="http://www.dotnetclan.com/zrlabs/yael/Images/rotate_minus_30.png" alt="" /&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;img src="http://www.dotnetclan.com/zrlabs/yael/Images/grayScale_brighter.png" alt="" /&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;img src="http://www.dotnetclan.com/zrlabs/yael/Images/rounded_35.png" alt="" /&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;img src="http://www.dotnetclan.com/zrlabs/yael/Images/box_colors2.png" alt="" /&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;img src="http://www.dotnetclan.com/zrlabs/yael/Images/dropShadow.png" alt="" /&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;img src="http://www.dotnetclan.com/zrlabs/yael/Images/text_water_middle_left.png" alt="" /&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;img src="http://www.dotnetclan.com/zrlabs/yael/Images/image_watermark_pacman.png" alt="" /&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;The library and sources&amp;nbsp;are being released under the LGPL which basically means that you can do anything with it&amp;nbsp; (download is available from the &lt;a href="http://www.dotnetclan.com/zrlabs/yael/YaelMain.htm"&gt;&lt;font color="#0000cc"&gt;YAEL&lt;/font&gt;&lt;/a&gt;&amp;nbsp;site)&lt;br /&gt;&lt;br /&gt;Any comments , or any other commonly used filters that you can think of ?&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=57263" width="1" height="1"&gt;</description><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/.net/default.aspx">.net</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/enhancement/default.aspx">enhancement</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/watermark/default.aspx">watermark</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/filter/default.aspx">filter</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/corners/default.aspx">corners</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/image/default.aspx">image</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/rounded/default.aspx">rounded</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/grayscale/default.aspx">grayscale</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/resize/default.aspx">resize</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/library/default.aspx">library</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/dropshadow/default.aspx">dropshadow</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/YAEL/default.aspx">YAEL</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/rotate/default.aspx">rotate</category></item><item><title>making form submitters life easier.</title><link>http://bloggingabout.net/blogs/dotgrid/archive/2006/09/16/making-form-submitters-life-easier_2E00_.aspx</link><pubDate>Sat, 16 Sep 2006 05:35:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:23257</guid><dc:creator>dotgrid</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://bloggingabout.net/blogs/dotgrid/rsscomments.aspx?PostID=23257</wfw:commentRss><comments>http://bloggingabout.net/blogs/dotgrid/archive/2006/09/16/making-form-submitters-life-easier_2E00_.aspx#comments</comments><description>I stumbled across a very simple web form that included 5 select boxes.&lt;br&gt;In my endless pursuit of providing forms that are actually easy to use and to make my web forms users life happier, I wondered how can I improve that form , so I figured why not save the customers last select box selections , so that they their old selection would be initialized by default each week they when come back to re-submit the form.&lt;br&gt;I Looked for some open source javascript client that keeps this information as cookies. Couldn't find one , so had to make one.&lt;br&gt;I tried to have it as simple as possible so all you have to do is to add an additonal attribute like so:&lt;br&gt;&lt;i&gt;&lt;/i&gt;&lt;code&gt;&lt;span style="color:Black;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;select&lt;/span&gt; &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;id&lt;/span&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="sel1"&lt;/span&gt; &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;onChange&lt;/span&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="UpdatePersistancy()"&lt;/span&gt; &lt;b&gt;&lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;savestate&lt;/span&gt;&lt;/b&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;b&gt;="&lt;/b&gt;1"&lt;/span&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt; &lt;/span&gt;&lt;/code&gt;&lt;br&gt;and calling the update and initialize function of course.&lt;br&gt;The solution is based on scanning the &lt;i&gt;select &lt;/i&gt;tags looking for &lt;i&gt;savestate &lt;/i&gt;attributes, than creating a cookie for each one that should be saved, and storing the value in the cookie. The initializer functions (this should be called when the page loads) also scans the select tags and try to look for an appropriate cookie with a value. If one was found than it just initializes the selection. I'm keeping the inner text rather than the index or the value since I figured that indexes can change and so does internal value. The only thing that's left unchanged and visible to the customer is actually the option's inner text.&lt;br&gt;It's &lt;a href="http://www.dotnetclan.com/OS/JS/CookieFactory.zip"&gt;here &lt;/a&gt;if you need this kind of a solution (if you want to save the selection box state). Although it doesn't support multiple selection , just one. And there are some other improvements that can be made (maybe also extending this to radio buttons, check boxes, etc)&lt;br&gt;Enjoy.&lt;br&gt;&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=23257" width="1" height="1"&gt;</description></item><item><title>Can you recognize your favorite blogger if he was standing right next to you?</title><link>http://bloggingabout.net/blogs/dotgrid/archive/2006/01/07/10738.aspx</link><pubDate>Sat, 07 Jan 2006 02:05:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:10738</guid><dc:creator>dotgrid</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://bloggingabout.net/blogs/dotgrid/rsscomments.aspx?PostID=10738</wfw:commentRss><comments>http://bloggingabout.net/blogs/dotgrid/archive/2006/01/07/10738.aspx#comments</comments><description>&lt;p&gt;I was envy of Mono's and Gnome's blog communities having a nice and much more down to earth web blog community page&lt;br /&gt;
where their members can see how their favorite blogger actually looks.&lt;br /&gt;
[See &lt;a href="http://go-mono.org/monologue/"&gt;mono's&lt;/a&gt; and &lt;a href="http://planet.gnome.org/"&gt;Gnome's&lt;/a&gt; examples]. &lt;br /&gt;
So I thought why not do the same for the (MS based, C# ,VB.NET) .NET communities.&lt;br /&gt;
I've created the following .NET related blogs aggregation site &lt;a href="http://www.dotnetclan.com"&gt;DotNetClan.com&lt;/a&gt; &lt;br /&gt;
For now it has my favorite .NET bloggers, but if you want to join in , just send me your blog URL address. roiy _dot_ zysman _at_ gmail.com (adding a mugshot is not mandatory but highly recommended ;-)&lt;/p&gt;
&lt;p&gt;Roiy&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=10738" width="1" height="1"&gt;</description><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://bloggingabout.net/blogs/dotgrid/archive/tags/Monoppix/default.aspx">Monoppix</category></item><item><title>A great .NET + Open Source PPT.</title><link>http://bloggingabout.net/blogs/dotgrid/archive/2005/08/27/9139.aspx</link><pubDate>Fri, 26 Aug 2005 12:33:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:9139</guid><dc:creator>dotgrid</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://bloggingabout.net/blogs/dotgrid/rsscomments.aspx?PostID=9139</wfw:commentRss><comments>http://bloggingabout.net/blogs/dotgrid/archive/2005/08/27/9139.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://www.monoppix.com"&gt;Monoppix&lt;/a&gt; is all about .NET and Open Source , so I was very happy to get an email from Josh Gough telling me about the ppt he wrote on these matters.&lt;br /&gt;
The presentation talks about open source and cross platforms development and deployment, while keeping everything within the .NET context.&lt;br /&gt;
If you're not familiar with .NET on other platforms or if you wish to extend your Mono knowledge , this presentation would give you a good basic start.&lt;br /&gt;
The ppt&amp;nbsp;was probably made for&amp;nbsp;crowd presentations but it is also good&amp;nbsp;for self reading. It has lots of examples and covers a wide range of levels, from very basic to advanced.&lt;br /&gt;
You can download the ppt from &lt;a href="http://apps.ultravioletconsulting.com/OpenSourceDotNet/OpenSourceDotNet.ppt"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Josh is currently working as a senior systems analyst with the Centers for&lt;br /&gt;
Disease Control and Prevention in Atlanta. If you want to contact him or send him feedback on this ppt&amp;nbsp;go to &lt;br /&gt;
&lt;a href="http://www.ultravioletconsulting.com/"&gt;http://www.ultravioletconsulting.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Roiy &lt;br /&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=9139" width="1" height="1"&gt;</description></item><item><title>Monoppix V1.1.8.0 released !</title><link>http://bloggingabout.net/blogs/dotgrid/archive/2005/08/25/9074.aspx</link><pubDate>Wed, 24 Aug 2005 11:00:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:9074</guid><dc:creator>dotgrid</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://bloggingabout.net/blogs/dotgrid/rsscomments.aspx?PostID=9074</wfw:commentRss><comments>http://bloggingabout.net/blogs/dotgrid/archive/2005/08/25/9074.aspx#comments</comments><description>&lt;p&gt;&lt;font size="2"&gt;We just released &lt;/font&gt;&lt;a href="http://www.monoppix.com"&gt;&lt;font size="2"&gt;Monoppix&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;&amp;nbsp;V1.1.8 . Downloads - [&lt;/font&gt;&lt;a href="http://www.monoppix.com/release/btdownload.php?type=torrent&amp;amp;file=monoppix-v1.1.8.0.iso.torrent"&gt;&lt;font size="2"&gt;torrent&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;] (see below for more download options)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;u&gt;&lt;strong&gt;The main new features of v1.1.8 are:&lt;/strong&gt;&lt;/u&gt;&lt;br /&gt;
- mono 1.1.8&lt;br /&gt;
- libgdiplus 1.1.8&lt;br /&gt;
- xsp 1.0.9&lt;br /&gt;
- monodevelop 0.7&lt;br /&gt;
&lt;i&gt;Additions:&lt;/i&gt;&lt;br /&gt;
- Mplayer to allow viewing our &lt;/font&gt;&lt;a href="http://www.monoppix.com/tutorials.php"&gt;&lt;font size="2"&gt;tutorials&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; from Monoppix&lt;br /&gt;
- Hello world video tutorial included in the image&lt;br /&gt;
&lt;i&gt;Notes:&lt;/i&gt;&lt;br /&gt;
&lt;/font&gt;&lt;font size="2"&gt;&lt;font&gt;Native mono &lt;strong&gt;Windows.Forms&lt;/strong&gt; class libraries are available without wine thanks to Mono's v1.1.8 implementation. &lt;br /&gt;
&lt;/font&gt;&lt;br /&gt;
&lt;font&gt;The last bit means that you can compile and design your .NET winforms applications on VS2003 , take the exe file and run it on Monoppix to see if it works on Linux with Mono (Most chances that now it would !!!) [&lt;a href="http://bloggingabout.net/blogs/dotgrid/archive/2005/08/20/winforms_on_monoppix.aspx"&gt;Example&lt;/a&gt;]&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;If you don't have a&amp;nbsp;torrent client installed and you're running some kind of WIN* &amp;nbsp;you can try &lt;/font&gt;&lt;a href="http://www.monoppix.com/release/btdownload.php?file=monoppix-v1.1.8.0.iso.torrent"&gt;&lt;font size="2"&gt;this&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; to download &lt;br /&gt;
(It basically installs a lightweight BT client and begins the download.)&lt;br /&gt;
Regular FTP and HTTP mirrors will be available later today...&lt;br /&gt;
&lt;br /&gt;
Roiy&lt;/font&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=9074" width="1" height="1"&gt;</description></item></channel></rss>