<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4514835401263305420</id><updated>2011-07-07T23:45:35.506-07:00</updated><category term='JavaScript'/><category term='FireFox addon'/><category term='CSS'/><category term='HTML'/><title type='text'>Development Toolz</title><subtitle type='html'>Impressions about development tools.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://devtoolz.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://devtoolz.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Florian Marinescu</name><uri>http://www.blogger.com/profile/15621640780613179917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_Wlkx8f3fqO0/SfXH5De7jOI/AAAAAAAAAAM/p2xdOkbimEs/S220/fm.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4514835401263305420.post-5735797564059175868</id><published>2010-03-18T07:51:00.000-07:00</published><updated>2010-03-18T08:09:41.755-07:00</updated><title type='text'>Make the manager do the job</title><content type='html'>I've been away for awhile but that does not mean that I have not been thinking about you. Every day in fact and to prove it I came back with a new tool: the &lt;a href="http://www.sitemaphub.com/Sitemap-Manager/"&gt;Sitemap Manager&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ever thought about getting your site on top of all those Google, Yahoo or Bing search results? And then you realized that to get the pages up there you need to somehow convince the search engines that you exist? Well, if this is your problem then the solution is creating an XML Sitemap for your site and the ultimate tool to generate and maintain an XML Sitemap is Sitemap Manager.&lt;br /&gt;&lt;br /&gt;Let's start with the basic Sitemap Manager features:&lt;br /&gt;- it can crawl a site&lt;br /&gt;- it can generate an XML Sitemap. So far nothing special but read on for the real improvements sin sitemap generation.&lt;br /&gt;- it can manipulate your sitemap with its own special Maintenance Rules.&lt;br /&gt;- it can upload the sitemap to an FTP location.&lt;br /&gt;- it even has an XML Sitemap validator.&lt;br /&gt;&lt;br /&gt;The Maintenance Rules deserve a little extra explaining. I'll start with an example. Let's say you generated your sitemap but you realize that all is well "except this or that should be adjusted". This is where the Sitemap Manager really shines. It allows you to define these Maintenance Rules where you say stuff like "if the URL has the word forum in it then remove it from the sitemap" or "if the URL is the monthly feature page then increase the priority in the sitemap". Once defined the Maintenance Rules are applied automatically every time you re-generate the sitemap making sitemap maintenance completely automatic.&lt;br /&gt;&lt;br /&gt;But what can a maintenance rule do? I'm glad you asked...&lt;br /&gt;The maintenance rules can modify any aspect of the sitemap URL such as priority, inclusion, date changed and change frequency given some easy to define targets. A target can be a URL, a content type and even a referrer. There is even a library of commonly used rules such as excluding all binaries.&lt;br /&gt;&lt;br /&gt;The Sitemap Manager also comes with an advanced XML Sitemap Validator. This not only confirms compliance with the XML Sitemap schemas but also verifies common mistakes found in XML Sitemaps. The advanced validator checks for:&lt;br /&gt;- Makes sure the XML is UTF8 encoded&lt;br /&gt;- Confirms that not all URLs have the same priority&lt;br /&gt;- Makes sure that all URLs are under the XML Sitemap URL.&lt;br /&gt;- lots of other checks I did not have time to discover&lt;br /&gt;&lt;br /&gt;You can find more details on the Sitemap Manager home: &lt;a href="http://www.sitemaphub.com/Sitemap-Manager/"&gt;http://www.sitemaphub.com/Sitemap-Manager/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Sitemap Manager is free to try for 30 days without any restrictions. A full license costs $49.99 USD.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4514835401263305420-5735797564059175868?l=devtoolz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/5735797564059175868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/5735797564059175868'/><link rel='alternate' type='text/html' href='http://devtoolz.blogspot.com/2010/03/make-manager-do-job.html' title='Make the manager do the job'/><author><name>Florian Marinescu</name><uri>http://www.blogger.com/profile/15621640780613179917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_Wlkx8f3fqO0/SfXH5De7jOI/AAAAAAAAAAM/p2xdOkbimEs/S220/fm.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4514835401263305420.post-6908455391533374305</id><published>2008-11-25T12:03:00.000-08:00</published><updated>2008-11-25T12:51:58.796-08:00</updated><title type='text'>Subversion to the max!</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;I moved from Visual Source Safe to Subversion. I&amp;#8217;ll never go back.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Impressions&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; I was forever locked into the VSS world, always worrying that if I will have to abandon my comfy Visual Studio integrated tools. My early dabbling in the CVS command line world were fun and while the server was great the clients were faulty at best. The few CVS clients at the time (WinCVS and TortoiseCVS come to mind) were unintuitive and lacking key features. Visual Studio integration was buggy. So back I went into my VSS hole.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;Earlier this month I decided to give Subversion a try. Looking around I discovered VisualSVN and in a few minutes I was setup and ready to commit (pun intended). I am really impressed by VisulSVN. For somebody used to VSS this is the deal! You get great integration with Visual Studio 2008, so much so that I don&amp;#8217;t miss any of the VSS features I got used to. For more advanced features you get TortoiseSVN for monkeying around the explorer so you can commit files without starting Visual Studio or doing fancier stuff like creating repositories. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;I also got the free VisualSVN Server, made specifically for the UI-happy Windows users. No command line configuration happening here, all I need is in a few screens and it is so easy to do I didn&amp;#8217;t even read the manual. Not that I ever do that anyway ;),&lt;br&gt; &lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Price&lt;/span&gt;&lt;/font&gt;&lt;br&gt; &lt;br&gt; VisualSVN - $49.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;Visual SVN Server - Free&lt;br&gt; TortoiseSVN &amp;#8211; Free&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Conclusion&lt;br&gt; &lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;You must have source control software and VisualSVN is well worth the money.&lt;br&gt; &lt;br&gt; Get VisualSVN and VisualSVN server from here &lt;a href="http://www.visualsvn.com/"&gt;http://www.visualsvn.com/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;Get TortoiseSVN from here: &lt;a href="http://tortoisesvn.tigris.org/"&gt;http://tortoisesvn.tigris.org/&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4514835401263305420-6908455391533374305?l=devtoolz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/6908455391533374305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/6908455391533374305'/><link rel='alternate' type='text/html' href='http://devtoolz.blogspot.com/2008/11/subversion-to-max.html' title='Subversion to the max!'/><author><name>Florian Marinescu</name><uri>http://www.blogger.com/profile/15621640780613179917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_Wlkx8f3fqO0/SfXH5De7jOI/AAAAAAAAAAM/p2xdOkbimEs/S220/fm.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4514835401263305420.post-8158641091293013585</id><published>2008-10-14T20:12:00.000-07:00</published><updated>2008-11-25T11:44:48.549-08:00</updated><title type='text'>Let out the maniacs!</title><content type='html'>When it comes to software development you simply have to be a keyboard lover and so am I. I live and die by my shortcuts so when I found this site I was in heaven. All your &lt;a href="http://www.shortcutmania.com/"&gt;keyboard shortcuts&lt;/a&gt; in PDF format so you can easily print them and post them on your wall for quick reference.&lt;br /&gt;&lt;br /&gt;Sample the keyboard shortcuts here: &lt;a href="http://www.shortcutmania.com/"&gt;http://www.shortcutmania.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4514835401263305420-8158641091293013585?l=devtoolz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/8158641091293013585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/8158641091293013585'/><link rel='alternate' type='text/html' href='http://devtoolz.blogspot.com/2008/10/let-out-maniacs.html' title='Let out the maniacs!'/><author><name>Florian Marinescu</name><uri>http://www.blogger.com/profile/15621640780613179917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_Wlkx8f3fqO0/SfXH5De7jOI/AAAAAAAAAAM/p2xdOkbimEs/S220/fm.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4514835401263305420.post-5105538285334701171</id><published>2008-09-30T11:00:00.000-07:00</published><updated>2008-09-30T11:09:31.766-07:00</updated><title type='text'>Are your pages crawling across the network instead of flying? Find out why with YSlow!</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;Quite often a web site works well on the developer&amp;#8217;s machine but when it is deployed to another location it starts to crawl. The reason is most of the time the network latency introduced during the deployment. You can mitigate lots of these performance issues with a range of measures nicely described here: &lt;a href="http://developer.yahoo.com/performance/rules.html"&gt;http://developer.yahoo.com/performance/rules.html&lt;/a&gt;. YSlow will automatically detect most of the potential problems described in the previous document and quickly point you in the right direction.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Impressions&lt;br&gt; &lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;YSlow is a Firefox add-on and it requires Firebug to be already installed. So there is some setup required to get things chugging along but it is all worth it. Once you have it setup you will be able to run an analysis on the current page and YSlow will evaluate and grade several potential problems. Grading makes it very easy to see what areas need your immediate attention and it also gauges progress once modifications are implemented. Not only do you get recommendations to improve the speed but each point is linked to a clear and through explanation of the reasons behind the recommendation so you can take an informed decision if you want to implement them or not.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;You can also run through the rules used the YSlow here manually if you feel that your case needs some more fine-tuning:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;a href="http://developer.yahoo.com/performance/rules.html"&gt;http://developer.yahoo.com/performance/rules.html&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;br&gt; &lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Price&lt;/span&gt;&lt;/font&gt;&lt;br&gt; &lt;br&gt; Free.&lt;br&gt; &lt;br&gt; &lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Conclusion&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; If you develop or own a web site then this is a must have, 5 stars!&lt;br&gt; &lt;br&gt; Get Firebug from here: &lt;a href="http://developer.yahoo.com/yslow/"&gt;http://developer.yahoo.com/yslow/&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4514835401263305420-5105538285334701171?l=devtoolz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/5105538285334701171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/5105538285334701171'/><link rel='alternate' type='text/html' href='http://devtoolz.blogspot.com/2008/09/are-your-pages-crawling-across-network.html' title='Are your pages crawling across the network instead of flying? Find out why with YSlow!'/><author><name>Florian Marinescu</name><uri>http://www.blogger.com/profile/15621640780613179917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_Wlkx8f3fqO0/SfXH5De7jOI/AAAAAAAAAAM/p2xdOkbimEs/S220/fm.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4514835401263305420.post-5256637721157963662</id><published>2008-09-16T11:11:00.000-07:00</published><updated>2008-09-16T11:29:38.967-07:00</updated><title type='text'>Find duplicate code with Simian</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;Find duplicate code with Simian&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Impressions&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; From the developer&amp;#8217;s site:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;i&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size:12.0pt;font-style:italic'&gt;Simian (Similarity Analyser) identifies duplication in Java, C#, C, C++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, Groovy source code and even plain text files. In fact, simian can be used on any human readable files such as ini files, deployment descriptors, you name it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;Sounds too good to pass up so I downloaded a copy. You can only download a tar.gz file, a clear indication that this is not a tool for the fain at heart. I managed to unpack the file and found a copy of the poorly design website inside - monkey and all - along with a bin folder that has the binaries. There are two types of developers targeted here: Java and .NET, I chose to focus on the .NET version so I bravely double-clicked the simian-2.2.24.exe file. A black screen flashed and disappeared. I felt my DOS senses tingling which meant that this was a command line application so I opened a command prompt and ran the EXE again.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;I won&amp;#8217;t put you through all my pain but fiddling with the input parameters I managed to run the application against my code and it printed something like this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;i&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size:12.0pt;font-style:italic'&gt;&amp;#8230;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;i&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size:12.0pt;font-style:italic'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;i&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size:12.0pt;font-style:italic'&gt;Found 35 duplicate lines in the following files:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;i&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size:12.0pt;font-style:italic'&gt;&amp;nbsp;Between lines 848 and 882 in abc.cs&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;i&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size:12.0pt;font-style:italic'&gt;&amp;nbsp;Between lines 1059 and 1093 in abc.cs&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;i&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size:12.0pt;font-style:italic'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;i&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size:12.0pt;font-style:italic'&gt;&amp;#8230;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;i&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size:12.0pt;font-style:italic'&gt;Found 515 duplicate lines in 31 blocks in 7 files&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;i&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size:12.0pt;font-style:italic'&gt;Processed a total of 1243 significant (2510 raw) lines in 8 files&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;Obvious pain points:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;No easy way to now get this output into Visual Studio and search for the data. Am I supposed to search by line name?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;No indication on what is duplicated or how severe the duplication is. If you are looking at 1000 duplicated &amp;#8220;things&amp;#8221; how do you prioritize? Or should I just eliminate all duplicates?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;It only processed the current folder and I found no obvious way to make it run on all the sub-folders so if you happen to have a bigger project you can simply forget using this tool.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;It does not do a duplicate search among all the files or if it does it was not clear how to enable the option.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Price&lt;/span&gt;&lt;/font&gt;&lt;br&gt; &lt;br&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;Free for non-commercial and evaluation purposes&lt;br&gt; $99 for &lt;st1:place w:st="on"&gt;SOHO&lt;/st1:place&gt; users&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;Other licensing options are available on the site.&lt;br&gt; &lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Conclusion&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; Nothing good, 0 stars!&lt;br&gt; &lt;br&gt; You can get Simian from here: &lt;a href="http://www.redhillconsulting.com.au/products/simian/"&gt;http://www.redhillconsulting.com.au/products/simian/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4514835401263305420-5256637721157963662?l=devtoolz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/5256637721157963662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/5256637721157963662'/><link rel='alternate' type='text/html' href='http://devtoolz.blogspot.com/2008/09/find-duplicate-code-with-simian.html' title='Find duplicate code with Simian'/><author><name>Florian Marinescu</name><uri>http://www.blogger.com/profile/15621640780613179917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_Wlkx8f3fqO0/SfXH5De7jOI/AAAAAAAAAAM/p2xdOkbimEs/S220/fm.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4514835401263305420.post-1304182115544015022</id><published>2008-08-19T06:50:00.000-07:00</published><updated>2008-08-19T06:58:39.858-07:00</updated><title type='text'>Find performance problems quickly and easily</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;When it comes to performance improvements I noticed two distinct factions: one that would tune every line of code and the other that would never do anything. Somewhere in the middle you will find performance tuning nirvana. Here you will tune only the most relevant areas of the code to maximize performance and minimize the time spent tuning.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;It is often said that tuning 5% of your code will take care of 95% of your performance problems and my gut feeling tells me that it is probably true. Finding the relevant 5% is another story. You can certainly comb through tens of thousands of lines of code, pepper your functions with performance counters or simply use a profiler and let it tell you what you need to do. One of the best profilers I tried is ANTS Profiler.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Impressions&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; ANTS Profiler will make you feel like a performance optimization specialist. After a quick run through your application with the profiler running it will present a view of your source code with performance statistics for each line. &amp;nbsp;The time to run is displayed for each relevant line and a bar with the relative performance is displayed next to the slowest lines. You can instantly identify the line that takes the longest and if it is a function you can drill down into it to see exactly what line of code is causing the grief. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;You can profile Windows applications, ASP.NET applications, COM+ applications and .NET Windows services so you should be covered from every angle.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;ANTS Profiler is very easy to use with intuitive UI and proper options presented along the way. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Price&lt;/span&gt;&lt;/font&gt;&lt;br&gt; &lt;br&gt; From $295 for the Standard edition up and $495 for the Pro edition. For more pricing and licensing details see the developer&amp;#8217;s website.&lt;br&gt; &lt;br&gt; &lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Conclusion&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; A good profiler is a must have for any .NET developer and this is one of the best, 5 stars!&lt;br&gt; &lt;br&gt; Get ANTS Profiler from here: &lt;a href="http://www.red-gate.com/products/ants_profiler/"&gt;http://www.red-gate.com/products/ants_profiler/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4514835401263305420-1304182115544015022?l=devtoolz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/1304182115544015022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/1304182115544015022'/><link rel='alternate' type='text/html' href='http://devtoolz.blogspot.com/2008/08/find-performance-problems-quickly-and.html' title='Find performance problems quickly and easily'/><author><name>Florian Marinescu</name><uri>http://www.blogger.com/profile/15621640780613179917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_Wlkx8f3fqO0/SfXH5De7jOI/AAAAAAAAAAM/p2xdOkbimEs/S220/fm.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4514835401263305420.post-2750329563027769726</id><published>2008-08-11T06:20:00.000-07:00</published><updated>2008-08-11T06:22:24.509-07:00</updated><title type='text'>Are regular expression painful? Use The Regulator!</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;If you are like me you tried to avoid regular expressions and came up with the weirdest excuses in doing so. At first contact regular expressions seemed more like voodoo than programming. I wish I had a tool like The Regulator in those days.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Impressions&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; The Regulator is the missing link for regular expression development in any modern IDE. It provides a great way to develop, test and manage your regular expression code library. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;Let&amp;#8217;s look at some features:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;- Intellisense &amp;#8211; when you sort of know what you want but you don&amp;#8217;t know what you need intellisense will pop up with a helpful list of options and explanations for the token at hand. Immensely helpful and dearly missed in other IDEs when working with regular expressions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;- Syntax highlighting &amp;#8211; we take this for granted but it is a great help in troubleshooting problematic regular expressions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;- Code generation &amp;#8211; automatically generates VB.NET or C# code. It would be nice to have support for other languages but I am feeling spoiled as it is.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;- Performance analysis &amp;#8211; compare different versions of a regular expression. An amazing feature and as far as I know unique to this tool!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;- Community integration - integrates with regexlib.com to search, import and upload regular expressions. &lt;br&gt; &lt;br&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;The overall feel is of a professionally written application, well polished and very useful. I just wish Visual Studio would be as good as The Regulator when it comes to regular expressions!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Price&lt;/span&gt;&lt;/font&gt;&lt;br&gt; &lt;br&gt; Free.&lt;br&gt; &lt;br&gt; &lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Conclusion&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; If you use regular expressions then you must give it a try, 5 stars!&lt;br&gt; &lt;br&gt; Get The Regulator from here: &lt;a href="http://tools.osherove.com/CoolTools/Regulator/tabid/185/Default.aspx"&gt;http://tools.osherove.com/CoolTools/Regulator/tabid/185/Default.aspx&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;Also make sure to check out the RegExLib site here for many regular expression samples posted by the community: &lt;a href="http://regexlib.com/default.aspx"&gt;http://regexlib.com/default.aspx&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4514835401263305420-2750329563027769726?l=devtoolz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/2750329563027769726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/2750329563027769726'/><link rel='alternate' type='text/html' href='http://devtoolz.blogspot.com/2008/08/are-regular-expression-painful-use.html' title='Are regular expression painful? Use The Regulator!'/><author><name>Florian Marinescu</name><uri>http://www.blogger.com/profile/15621640780613179917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_Wlkx8f3fqO0/SfXH5De7jOI/AAAAAAAAAAM/p2xdOkbimEs/S220/fm.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4514835401263305420.post-8379291368555770597</id><published>2008-08-05T05:54:00.000-07:00</published><updated>2008-08-05T05:56:11.031-07:00</updated><title type='text'>What's in a pixel? Pixie can show you.</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;Pixie displays the color under your mouse pointer in various formats. Very useful for web developers.&lt;br&gt; &lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Impressions&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; Pixie is one of those micro-tools you just add to your toolbox only to have it at your fingertips when you need it. It is extremely small in both file size and screen space footprint and focuses on only one thing: to show you the current color under your mouse cursor as conveniently as possible. There is a build-in magnifier window that you can activate as needed to aid you in tracking down that elusive pixel. You can also start the color picker dialog box to pick any color you might envision. Beyond these simple features and copying the current color into the clipboard this there isn&amp;#8217;t much else Pixie can do. &lt;br&gt; &lt;br&gt; &lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Price&lt;/span&gt;&lt;/font&gt;&lt;br&gt; &lt;br&gt; Free.&lt;br&gt; &lt;br&gt; &lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Conclusion&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; Other tools do the same job but none do it with more elegance than Pixie, 4 stars!&lt;br&gt; &lt;br&gt; Get Pixie from here: &lt;a href="http://www.nattyware.com/pixie.html"&gt;http://www.nattyware.com/pixie.html&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4514835401263305420-8379291368555770597?l=devtoolz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/8379291368555770597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/8379291368555770597'/><link rel='alternate' type='text/html' href='http://devtoolz.blogspot.com/2008/08/whats-in-pixel-pixie-can-show-you.html' title='What&apos;s in a pixel? Pixie can show you.'/><author><name>Florian Marinescu</name><uri>http://www.blogger.com/profile/15621640780613179917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_Wlkx8f3fqO0/SfXH5De7jOI/AAAAAAAAAAM/p2xdOkbimEs/S220/fm.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4514835401263305420.post-4740510984671367587</id><published>2008-07-21T08:00:00.000-07:00</published><updated>2008-07-21T08:01:17.322-07:00</updated><title type='text'>Enhance your documentation with easy screenshots - check out Cropper</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;A picture is worth a thousand words. I&amp;#8217;m sorry to use a cliché but nothing says it better when it comes to documentation. Instead of a page-long list of instructions detailing every click and mouse move just add a picture, overlay an arrow and most people will get the message. This is where Cropper comes into picture&lt;br&gt; &lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Impressions&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; First experience was a bit confusing. I installed Cropper, took a screenshot and nothing happened! I eventually clued in that the screenshot was being saved to disc every time I hit Enter or Double-Clicked the screenshot area but it would have been nice to have some sort of notification that the screenshot has been taken.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;Once I understood the way it worked it actually made sense. Cropper lets you focus on taking the screenshots as you need them, saves them automatically in he format you need and deal with the screenshots later. This suits the way I work, when I am going through an application I want to just take a screenshot and deal with them later.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;A nice array of options is supported. For output formats BMP, JPG and PNG are supported as well as going straight to your clipboard.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;This tool is designed with precision in mind. You can preset your capture size, automatically create thumbnails. This is perfect for documentations where having the same screenshot size for similar items is ideal to make the document look neat. Automatically creating thumbnails is a great timesaver too, the author really uses his tool so he knows what kind of pain we go through to create a proper thumbnail for each capture. &lt;br&gt; &lt;br&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;The snappy way to create the screenshots made me wish I could also add a voice recording to the screenshot, something like &amp;#8220;Nice screenshot of deleting a file&amp;#8221;. This would let me clue in to what I was thinking when I took the screenshot. Just kidding but if anybody wants to implement this feature the source code for Cropper is also available.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Price&lt;/span&gt;&lt;/font&gt;&lt;br&gt; &lt;br&gt; Free.&lt;br&gt; &lt;br&gt; &lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Conclusion&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; This one is a keeper, it will sit forever on my taskbar! 5 stars! &lt;br&gt; &lt;br&gt; Get Cropper from here: &lt;a href="http://blogs.geekdojo.net/brian/articles/Cropper.aspx"&gt;http://blogs.geekdojo.net/brian/articles/Cropper.aspx&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4514835401263305420-4740510984671367587?l=devtoolz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/4740510984671367587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/4740510984671367587'/><link rel='alternate' type='text/html' href='http://devtoolz.blogspot.com/2008/07/enhance-your-documentation-with-easy.html' title='Enhance your documentation with easy screenshots - check out Cropper'/><author><name>Florian Marinescu</name><uri>http://www.blogger.com/profile/15621640780613179917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_Wlkx8f3fqO0/SfXH5De7jOI/AAAAAAAAAAM/p2xdOkbimEs/S220/fm.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4514835401263305420.post-7962646924136208086</id><published>2008-07-14T06:27:00.000-07:00</published><updated>2008-07-14T06:28:09.838-07:00</updated><title type='text'>Stylizer - speed up your CSS development</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;Stylizer focuses on CSS fine-tuning and speedy live web page editing. As a nice change from existing similar tools you can see your changes in Internet Explorer as well as FireFox.&lt;br&gt; &lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Impressions&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; Stylizer will let you edit the CSS on your live pages. While it specializes only on CSS editing it does it very well with multiple innovative features:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;- Multiple browser support. I was able to easily switch between Internet Explorer and Firefox. A very useful feature to make sure your CSS is behaving as expected with both browsers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;- Instant preview in the browser of your choice. This is a great selling feature for this application, it will let you easily fix CSS bugs or take a peek under the hood for at an existing web site.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;- CSS browser filters. Apply some CSS to one browser and some to another, all with just a few clicks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;- Disable CSS on the fly.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;- CSS validation, both when a page is opened and also ongoing while editing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;You must go through the tutorial, it will show you how to get around the application in just a few minutes. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=4 face="Times New Roman"&gt;&lt;span style='font-size: 13.5pt'&gt;Caveats&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;Limited only to CSS editing, it would be nice to be able to edit HTML and JavaScript as well. Other tools offer similar features while integrating into a more complete experience - FireBug comes to mind again.&lt;br&gt; The integrated tutorial and purchasing pages are not working if the internet security settings are set to high. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;Interface can be hard to figure out at times, don&amp;#8217;t skip the tutorial. It would be nice to have the various options available in menus with more descriptive text and in categories to complement the existing toolbar.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Price&lt;/span&gt;&lt;/font&gt;&lt;br&gt; &lt;br&gt; The Basic version is free but it comes with limited functionality.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;$69.95 CAD for the Ultimate version.&lt;br&gt; &lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Conclusion&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; If you need the specific tools it offers then go for it. Basic CSS editing is available for free in other tools like FireBug.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;4 stars.&lt;br&gt; &lt;br&gt; Get Stylizer from here: &lt;a href="http://www.skybound.ca/stylizer/"&gt;http://www.skybound.ca/stylizer/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4514835401263305420-7962646924136208086?l=devtoolz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/7962646924136208086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/7962646924136208086'/><link rel='alternate' type='text/html' href='http://devtoolz.blogspot.com/2008/07/stylizer-speed-up-your-css-development.html' title='Stylizer - speed up your CSS development'/><author><name>Florian Marinescu</name><uri>http://www.blogger.com/profile/15621640780613179917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_Wlkx8f3fqO0/SfXH5De7jOI/AAAAAAAAAAM/p2xdOkbimEs/S220/fm.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4514835401263305420.post-3006675966248588488</id><published>2008-07-07T05:47:00.000-07:00</published><updated>2008-07-07T05:48:26.861-07:00</updated><title type='text'>MBUnit - NUnit evolved</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;If you love NUnit you&amp;#8217;ll go gaga over MBUnit.&lt;br&gt; &lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Impressions&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; Just when you thought it cannot get any better somebody comes up with a better way to do test driven development (TDD). MBUnit is building on the solid foundations laid by NUnit so you are greeted with the familiar attributes and test fixtures out of the box. The fun starts when you go beyond the NUnit clone and find that MBUnit will generate the unit tests on the fly and you have functionality such as RowTest. The RowTest attribute extends the Test attribute by letting you specify multiple variations of test data. Take a look at this example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;[RowTest]&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;[Row(10, 10, &amp;quot;Good widget&amp;quot;)]&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;[Row(-1, 10, &amp;quot;Not so good&amp;quot;, ExpectedException=typeof(InvalidWidgetDataException))]&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;[Row(10, -1, &amp;quot;almost good&amp;quot;, ExpectedException=typeof(InvalidWidgetDataException))]&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;[Row(10, 10, null, ExpectedException=typeof(InvalidWidgetDataException))]&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;[Row(-1, 10, &amp;quot;&amp;quot;, ExpectedException=typeof(InvalidWidgetDataException))]&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;public void SaveWidget (Int32 width, Int32 height, String comment)&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&amp;nbsp;{&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Widget widget = new Widget();&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; widget.Height = height;&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; widget.Width = width;&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; widget.Save();&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;13&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Widget loadedWidget = Widget.Load(widget.ID);&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.IsNotNull(loadedWidget, &amp;quot;Widget not found&amp;quot;);&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.AreEqual(widget.Height, loadedWidget.Height, &amp;quot;Height not saved correctly&amp;quot;);&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.AreEqual(widget.Width, loadedWidget.Width, &amp;quot;Weight not saved correctly&amp;quot;);&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.AreEqual(widget.Comment, loadedWidget.Comment, &amp;quot;Comment not saved correctly&amp;quot;);&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='margin:0in;margin-bottom:.0001pt'&gt;&lt;font size=3 color=black face="Courier New"&gt;&lt;span style='font-size:12.0pt;font-family:"Courier New"; color:black'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;18&amp;nbsp;}&lt;/span&gt;&lt;/font&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;One problem I ran into was when using a DateTime type in the Row data.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Price&lt;/span&gt;&lt;/font&gt;&lt;br&gt; &lt;br&gt; Free.&lt;br&gt; &lt;br&gt; &lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Conclusion&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; If you do the TDD then this is a must have, 5 stars!&lt;br&gt; &lt;br&gt; Get MBunit from here: &lt;a href="http://www.mbunit.com/"&gt;http://www.mbunit.com/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4514835401263305420-3006675966248588488?l=devtoolz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/3006675966248588488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/3006675966248588488'/><link rel='alternate' type='text/html' href='http://devtoolz.blogspot.com/2008/07/mbunit-nunit-evolved.html' title='MBUnit - NUnit evolved'/><author><name>Florian Marinescu</name><uri>http://www.blogger.com/profile/15621640780613179917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_Wlkx8f3fqO0/SfXH5De7jOI/AAAAAAAAAAM/p2xdOkbimEs/S220/fm.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4514835401263305420.post-2684521473453344412</id><published>2008-07-02T06:13:00.001-07:00</published><updated>2008-07-02T06:13:56.506-07:00</updated><title type='text'>ReSharper - accelerate your Visual Studio .NET development</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;ReSharper reinvents intellisense expanding its capabilities as well as improving the built-in features. &lt;br&gt; &lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Impressions&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; ReSharper makes development faster with a plethora of features that make developers giggle. It is a developer&amp;#8217;s butler anticipating every need and patiently waiting until the master notices. The on-the-fly error detection points out errors and warnings without any compilation. Once it detects that a namespace is not imported it offers a key combination that adds it automatically. Even before I compile I see a comprehensive list of warnings, suggestions and hints that appear right where the problem is so the text is always to the point. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;And there are the little things like duplicating the selected code. Instead of CTRL+C, CTRL+V I type CTRL+D and it is all done. I simply love these little additions that a few milliseconds every time I use them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;Once you are done turn on the automatic code cleanup to remove all the declarations you didn&amp;#8217;t use.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;The feature list is simply overwhelming and posting it all here is not the point; you can find the entire list here:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;a href="http://www.jetbrains.com/resharper/documentation/feature_map.html"&gt;http://www.jetbrains.com/resharper/documentation/feature_map.html&lt;/a&gt; &lt;br&gt; &lt;br&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;VB.NET developers will be pleased to find out that they were not forgotten although some key features are only available for C# developers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Price&lt;/span&gt;&lt;/font&gt;&lt;br&gt; &lt;br&gt; $199 for a single developer license.&lt;br&gt; &lt;br&gt; &lt;font size=4&gt;&lt;span style='font-size:13.5pt'&gt;Conclusion&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;br&gt; If you develop in C# then this is a must have, 5 stars!&lt;br&gt; &lt;br&gt; Get ReSharper from here: &lt;a href="http://www.jetbrains.com/resharper/"&gt;http://www.jetbrains.com/resharper/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=3 face="Times New Roman"&gt;&lt;span style='font-size: 12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial;font-weight:bold'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4514835401263305420-2684521473453344412?l=devtoolz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/2684521473453344412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/2684521473453344412'/><link rel='alternate' type='text/html' href='http://devtoolz.blogspot.com/2008/07/resharper-accelerate-your-visual-studio.html' title='ReSharper - accelerate your Visual Studio .NET development'/><author><name>Florian Marinescu</name><uri>http://www.blogger.com/profile/15621640780613179917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_Wlkx8f3fqO0/SfXH5De7jOI/AAAAAAAAAAM/p2xdOkbimEs/S220/fm.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4514835401263305420.post-5118932825273457208</id><published>2008-06-26T07:00:00.000-07:00</published><updated>2008-06-26T07:33:35.935-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='FireFox addon'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>FireBug - The JavaScript swiss-army knife.</title><content type='html'>FireBug is by far the best and most complete tool when it comes to Web 2.0 application development. FireBug is a FireFox add-on so it is only a click away when you need it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Impressions&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;You get the ability to edit live your HTML, CSS and JavaScript and all changes are reflected in the page as-you-type. This is amazing if you integrate your JavaScript with ASP.NET or other compiled language, you effectively break out of the edit-compile-refresh cycle. Once you are happy with your changes you copy them to your original source file.&lt;br /&gt;&lt;br /&gt;I love it because it allows the web developer to experiment with the web site as needed and once the problem is solved he can either copy the fix into the code or email it to another team member.&lt;br /&gt;&lt;br /&gt;I first used it with FireFox 2 and had absolutely no problems.&lt;br /&gt;&lt;br /&gt;With FireFox 3 just out you will have to install a beta version  (1.2.0b3) which brings in some bugs but nothing I can't put up with.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Price&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Free.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Conclusion&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;If you develop or own a web site then this is a must have, 5 stars!&lt;br /&gt;&lt;br /&gt;Get Firebug from here: &lt;a href="http://getfirebug.com/"&gt;http://getfirebug.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4514835401263305420-5118932825273457208?l=devtoolz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/5118932825273457208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4514835401263305420/posts/default/5118932825273457208'/><link rel='alternate' type='text/html' href='http://devtoolz.blogspot.com/2008/06/firebug-javascript-swiss-army-knife.html' title='FireBug - The JavaScript swiss-army knife.'/><author><name>Florian Marinescu</name><uri>http://www.blogger.com/profile/15621640780613179917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_Wlkx8f3fqO0/SfXH5De7jOI/AAAAAAAAAAM/p2xdOkbimEs/S220/fm.jpg'/></author></entry></feed>
