<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://devpinoy.org/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>Rodel E. Dagumampan</title><link>http://devpinoy.org/blogs/suddenserenity/default.aspx</link><description>On C#, ASP.NET, Security, Usability and SQL Server</description><dc:language>en</dc:language><generator>CommunityServer 2008 (Build: 30417.1769)</generator><item><title>Disputed Code Comments vs. Self Describing Self Documenting Code</title><link>http://devpinoy.org/blogs/suddenserenity/archive/2007/09/03/disputed-code-comments-vs-self-describing-self-documenting-code.aspx</link><pubDate>Mon, 03 Sep 2007 00:15:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:13408</guid><dc:creator>dehran ph</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/suddenserenity/rsscomments.aspx?PostID=13408</wfw:commentRss><comments>http://devpinoy.org/blogs/suddenserenity/archive/2007/09/03/disputed-code-comments-vs-self-describing-self-documenting-code.aspx#comments</comments><description>&lt;p&gt;Last week I have been reviewing some implemented features on our product, it works fine but not well written, got to have some refactoring specially my rule on comments.&lt;/p&gt;&lt;p&gt;Perhaps this is one the most disputed practices in software development, code 
comments. Personally, I seldom/don&amp;#39;t&amp;nbsp;comment my code. A well defined and 
structured code with self-describing and self documenting names and declarations 
is sufficient enough to make it understandable and maintainable at some point. 
Task aware&amp;nbsp;lines&amp;nbsp;such as&amp;nbsp;TODO, HACK, REVISE tags works well but not all times 
unless it is integrated with the Issue Tracking tool or IDE. In some cases code 
comments is a residue of pseudo-code and I suggest it be removed from release 
code.&lt;/p&gt;
&lt;p&gt;I have seen several cases where comments serve as documentation and 
explanation of a plain and&amp;nbsp;simple methods.&amp;nbsp;It often comes to a point 
that&amp;nbsp;members of the team or&amp;nbsp;API users&amp;nbsp;are forced to read a bunch of comments 
first before&amp;nbsp;understand the program flow. Even experienced developers tried to 
compensate their complex code, lacks of abstractness and intuitiveness, complex 
class&amp;#39; responsibility, and lacks of refactoring&amp;nbsp;by explaining how code works on 
code comments. &lt;/p&gt;
&lt;p&gt;Code comments also occupies a lot space on code view and added complexity if 
not well written. A comment that says&lt;i&gt; &amp;quot;//initialize the treeview&amp;nbsp;with list 
of products&amp;quot;&lt;/i&gt; on a method &lt;i&gt;&amp;quot;InitializeProductTree(List&amp;lt;Product&amp;gt; 
productList)&amp;quot;&lt;/i&gt; doesn&amp;#39;t make sense!&lt;/p&gt;
&lt;p&gt;Consistency of the comment to the intent of the code it describes is not 
guaranteed. Developers that writes pseudo code first before implementing through 
methods will likely forget to update the comments if a logic in code change and 
thus code and comment becomes inconsistent and inaccurate.&lt;/p&gt;
&lt;p&gt;Vanity. This is funny as I have seen some codes that serve as vanity and 
aesthetics to show style. It looks beautiful seeing those green lines. Taking a 
closer look and reading it, it tells me something. &amp;quot;I&amp;#39;m here, but you ain&amp;#39;t 
gonna need me&amp;quot;.&lt;/p&gt;
&lt;p&gt;XML documentation is best placed in a separate xml file so the code base size 
will be reduced. A fully xml inline-documented class when not collapsed gives 
complex view and forces the API user read the comments first.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;When&amp;nbsp;to put comments&amp;nbsp;anyway?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t think there&amp;#39;s general rule when and when not to place comments. 
IMHO, its mainly common sense. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;Intent. &lt;/b&gt;Comments describes the intent of the method or 
class. It should tell why the code was written, at what feature or requirement 
it serves.&lt;br /&gt;&lt;b&gt;Responsibility.&lt;/b&gt; Commends describes the responsibility of the 
code and its participation in the implementation&amp;nbsp;feature or fullfillment of a 
requirement.&lt;/p&gt;
&lt;p&gt;Guilty? Share your side.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=13408" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/build+better+software/default.aspx">build better software</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/best+practices/default.aspx">best practices</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/coding+horror/default.aspx">coding horror</category></item><item><title>We are hiring .NET Developers, Graphic Artists and Xhtml Experts - Davao City</title><link>http://devpinoy.org/blogs/suddenserenity/archive/2007/08/14/we-are-hiring-net-developers-graphic-artists-and-xhtml-experts-davao-city.aspx</link><pubDate>Mon, 13 Aug 2007 18:14:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:12809</guid><dc:creator>dehran ph</dc:creator><slash:comments>22</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/suddenserenity/rsscomments.aspx?PostID=12809</wfw:commentRss><comments>http://devpinoy.org/blogs/suddenserenity/archive/2007/08/14/we-are-hiring-net-developers-graphic-artists-and-xhtml-experts-davao-city.aspx#comments</comments><description>&lt;p&gt;We open positions to all aspiring/experienced developers and designers 
graduate, undergraduate, or was not able to pursue tertiary education, it 
doesn’t matter. We are looking for passionate people who are willing to learn, 
be trained and can get things done. People who value simplicity,&amp;nbsp;code quality&amp;nbsp;and 
take ownership of it. Who can work on a team and can get things done the right way.&lt;/p&gt;
&lt;p&gt;We are a very young and small start-up team&amp;nbsp;headquartered in Davao City, 
Philippines. Temporarily we will be working in a&lt;b&gt; &lt;/b&gt;&lt;u&gt;small box-type&amp;nbsp;office&lt;/u&gt;, good for 6 people only, but will 
relocate once we found a better location. We offer above average salaries, 
flexible working hours, and very nice 
computers.&lt;/p&gt;
&lt;p&gt;This seat might be yours.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://img365.imageshack.us/img365/8277/ixus023tf1.jpg" alt="" height="173" width="231" /&gt;&amp;nbsp;&amp;nbsp;&lt;img src="http://img297.imageshack.us/img297/3186/ixus016wj7.jpg" height="174" width="232" alt="" /&gt; *&lt;/p&gt;&lt;p&gt;Please send your applications and referrals to address: 
&lt;u&gt;rdagumampan[xATx]gmail.com &lt;/u&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="1"&gt;&lt;i&gt;* dual screen setup is a benefit if you performed well, also when function and UI testing.  &lt;/i&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=12809" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/hiring+developers/default.aspx">hiring developers</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/job+oppurtunties+in+davao+city/default.aspx">job oppurtunties in davao city</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/flexmerchant+software/default.aspx">flexmerchant software</category></item><item><title>Haven't read any .NET book in more than two months</title><link>http://devpinoy.org/blogs/suddenserenity/archive/2007/08/14/haven-t-read-any-net-book-in-more-than-two-months.aspx</link><pubDate>Mon, 13 Aug 2007 17:43:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:12806</guid><dc:creator>dehran ph</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/suddenserenity/rsscomments.aspx?PostID=12806</wfw:commentRss><comments>http://devpinoy.org/blogs/suddenserenity/archive/2007/08/14/haven-t-read-any-net-book-in-more-than-two-months.aspx#comments</comments><description>

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;In the
past two months since I moved in a new direction of my career, I havent read
any techincal books. I can remember the past three years, nagsusunog talaga ako
ng kilay reading a lots of programming books, design patterns e-books, blogs
and articles. I can read a thousand page book in one week, while reading
another in the middle, practicing the samples at the same time.&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;Things
changed, I realized while I still have the strong passion and keep my
competence at high, I must also learn something new about reality of living and
aiming the future in prosperity. Improve my outlook and attitude, staying
optimistic and plan ahead.&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;Books I
have read in the past two months:&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;&lt;a href="http://www.amazon.com/Habits-Highly-Effective-People/dp/0743269519/ref=pd_bbs_sr_1/103-5922984-8779813?ie=UTF8&amp;amp;s=books&amp;amp;qid=1186680361&amp;amp;sr=1-1"&gt;7
Habits of Highly Effective People&lt;/a&gt;&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;Powerful
Lessons in Personal Change&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;Author:
Stephen Covey&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;&lt;a href="http://www.shepherdsvoice.com.ph/component/page,shop.product_details/flypage,shop.flypage/product_id,61/category_id,4/manufacturer_id,0/option,com_virtuemart/Itemid,26/"&gt;You
can make your life beatiful&lt;/a&gt;&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;Discover
the simple path to happiness. Open this book and let your soul be drawn closer
to God. &lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;Author: Bo
Sanchez&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;&lt;a href="http://www.shepherdsvoice.com.ph/component/page,shop.product_details/flypage,shop.flypage/product_id,59/category_id,4/manufacturer_id,0/option,com_virtuemart/Itemid,26/"&gt;Simplify
and Live the Good Life&lt;/a&gt;&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;Create
wealth in every area of your life and be guided as you journey towards your
personal expressions of simple happiness. &lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;Author: Bo
Sanchez&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;&lt;a href="http://www.amazon.com/Rich-Dad-Poor-Money-That-Middle/dp/0446677450"&gt;Rich
Dad Poor Dad&lt;/a&gt;&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;What the
Rich Teach Their Kids About Money--That the Poor and Middle Class Do Not!&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;Author:
Robert Kiosaki&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Books I
have lend in the past two months&lt;/b&gt;&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;&lt;a href="http://www.amazon.com/Code-Complete-Second-Steve-McConnell/dp/0735619670/ref=pd_bbs_sr_1/103-5922984-8779813?ie=UTF8&amp;amp;s=books&amp;amp;qid=1186680808&amp;amp;sr=1-1"&gt;Code
Complete 2&lt;/a&gt;&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;Strategic
approach to software constructionand produce superior products&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;Author:
Steve McConnel&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;&lt;a href="http://www.amazon.com/What-Web-Design-Nico-Macdonald/dp/2880466865/ref=sr_1_7/103-5922984-8779813?ie=UTF8&amp;amp;s=books&amp;amp;qid=1186681090&amp;amp;sr=1-7"&gt;What
is Web Design&lt;/a&gt;&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;Design for
the Web is the most significant new area of design practice of the last 20
years.&lt;/p&gt;

&lt;p style="margin:0in;font-family:&amp;#39;Times New Roman&amp;#39;;font-size:11pt;"&gt;Author:
Nico MacDonald&lt;/p&gt;

&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=12806" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/developer_2700_s+life/default.aspx">developer's life</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/books/default.aspx">books</category></item><item><title>Finish the feature on time, you'll get your Resharper license</title><link>http://devpinoy.org/blogs/suddenserenity/archive/2007/08/14/finish-the-feature-on-time-you-ll-get-your-resharper-license.aspx</link><pubDate>Mon, 13 Aug 2007 17:27:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:12805</guid><dc:creator>dehran ph</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/suddenserenity/rsscomments.aspx?PostID=12805</wfw:commentRss><comments>http://devpinoy.org/blogs/suddenserenity/archive/2007/08/14/finish-the-feature-on-time-you-ll-get-your-resharper-license.aspx#comments</comments><description>&lt;p&gt;When I was asked by my partner why we need to install &lt;a href="http://www.jetbrains.com/resharper/"&gt;resharper&lt;/a&gt;, I just can&amp;#39;t explain 
it all. I just said &amp;quot;there are&amp;nbsp;more than 1000 &lt;a href="http://www.jetbrains.com/resharper/features/index.html"&gt;reasons&lt;/a&gt;&amp;quot;&amp;nbsp;for 
us to have it, then he asked how much is the license and decided we&amp;#39;ll get it. 
If he asked again for specifics, I will give him a bad code and&amp;nbsp;we will just 
compete to make it good LOL.&lt;/p&gt;&lt;p&gt;Listed are some of the shortcuts that is hard to live without. It&amp;#39;s hard when you are peering with your teammates and you are the only one using it, &lt;i&gt;Goto Definition lng, hirap pa gawin. Ctrl + F (Find) to the resque.&lt;/i&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Ctrl + E&lt;/li&gt;&lt;li&gt;Ctrl + N&lt;/li&gt;&lt;li&gt;Ctrl + Shift + N&lt;/li&gt;&lt;li&gt;Alt + F7&lt;/li&gt;&lt;li&gt;Ctrl + F7&lt;/li&gt;&lt;li&gt;F12&lt;/li&gt;&lt;li&gt;Alt + Enter &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Alt&lt;/li&gt;&lt;li&gt;F12, Shft + F12&lt;/li&gt;&lt;li&gt;Alt + Arrow Up, Alt + Arrow Down&lt;/li&gt;&lt;li&gt;Ctrl + Alt + M, Ctrl + Alt + V, Ctrl + Alt + D, Ctrl + Alt + P&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ctrl + Shift + Backspace&lt;/li&gt;&lt;li&gt;Ctrl + Alt + F&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Live templates&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;But not so fast, I&amp;#39;ll give&amp;nbsp;my team&amp;nbsp;a challenge. Each member will be given a 
feature to implement. In an agreed estimate, when the feature was finished, he 
will get the resharper license. If he missed it, it will still be given but just 
after two features implemented. Challenge will start on internal version 2 of our projects. Sound&amp;#39;s cool?, refer your friends in davao 
we&amp;#39;re still hiring :).&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=12805" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/developer+tools/default.aspx">developer tools</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/resharper/default.aspx">resharper</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/microISV/default.aspx">microISV</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/build+better+software/default.aspx">build better software</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/development/default.aspx">development</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/productivity+tools/default.aspx">productivity tools</category></item><item><title>High cost of low quality code </title><link>http://devpinoy.org/blogs/suddenserenity/archive/2007/08/14/high-cost-of-low-quality-code.aspx</link><pubDate>Mon, 13 Aug 2007 17:22:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:12804</guid><dc:creator>dehran ph</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/suddenserenity/rsscomments.aspx?PostID=12804</wfw:commentRss><comments>http://devpinoy.org/blogs/suddenserenity/archive/2007/08/14/high-cost-of-low-quality-code.aspx#comments</comments><description>&lt;p&gt;A company &lt;a href="http://www.revsys.com/"&gt;Revsys&lt;/a&gt;&amp;nbsp;blogs about the the high 
cost of low quality as a guide to hiring developers. See the full entry &lt;a href="http://blog.revsys.com/2007/08/a-guide-to-hiri.html"&gt;here&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;I personally share the same view with hiring expert developers for start than 
building up a fresh-grad from the ground. For a company just starting up, 
quality is a must and&amp;nbsp;you simply&amp;nbsp;cannot compromise it.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So how can a&amp;nbsp;average programmer be an expert developer? Read the followup 
entry &lt;a href="http://blog.revsys.com/2007/08/followup-to-a-g.html"&gt;here&lt;/a&gt;.&lt;strong&gt;&lt;a id="ctl00_ctl00_OuterTaskRegion_TaskRegion_Editor1_PostButton" class="CommonTextButtonBig"&gt;Publish&lt;/a&gt;&lt;/strong&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://devpinoy.org/aggbug.aspx?PostID=12804" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/microISV/default.aspx">microISV</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/build+better+software/default.aspx">build better software</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/development/default.aspx">development</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/hiring+developers/default.aspx">hiring developers</category></item><item><title>Jason Jimenez (aka smash) joins FlexMerchant Software</title><link>http://devpinoy.org/blogs/suddenserenity/archive/2007/08/14/single-point-of-failure-and-developer-code-ownership.aspx</link><pubDate>Mon, 13 Aug 2007 17:20:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:12375</guid><dc:creator>dehran ph</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/suddenserenity/rsscomments.aspx?PostID=12375</wfw:commentRss><comments>http://devpinoy.org/blogs/suddenserenity/archive/2007/08/14/single-point-of-failure-and-developer-code-ownership.aspx#comments</comments><description>I am breaking the silence here at devpinoy. &lt;a href="http://community.devpinoy.org/blogs/smash/"&gt;Jason Jimenez a.k.a smash&lt;/a&gt;, the creator of &lt;a href="http://www.gotdotnet.com/codegallery/codegallery.aspx?id=07343be6-be94-403c-a992-8e6b68979a02"&gt;ClassicReports&lt;/a&gt;, our fellow blogger here, and Davaoeño&amp;nbsp; joins our development team. Jason will be part of our pioneer team. We are dynamic and fast, we&amp;#39;re are moving. Now we are three! yahoo!!! :o).&lt;br /&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=12375" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/team/default.aspx">team</category></item><item><title>Vista's Annoying Daily Dual Monitor Configuration and No-Extended Taskbar Support</title><link>http://devpinoy.org/blogs/suddenserenity/archive/2007/07/03/vista-s-annoying-daily-dual-monitor-configuration-and-no-extended-taskbar-support.aspx</link><pubDate>Tue, 03 Jul 2007 02:46:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:11160</guid><dc:creator>dehran ph</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/suddenserenity/rsscomments.aspx?PostID=11160</wfw:commentRss><comments>http://devpinoy.org/blogs/suddenserenity/archive/2007/07/03/vista-s-annoying-daily-dual-monitor-configuration-and-no-extended-taskbar-support.aspx#comments</comments><description>&lt;p&gt;While I have used dual monitor before with my laptop and a spare CRT screen, this is my first time to extensively use multiple monitors for development, testing and working with multiple tasks at the same time. I find this very helpful and definitely increase my productivity. However, it was really annoying that every day when I booted up my computer I have to configure again my Windows Vista Display Settings to identify my second LCD. There are times that I have spent 10-20 minutes just trying to make this work!&lt;/p&gt;&lt;p&gt;I was also disappointed that despite the existence of this feature in previous versions of Windows, still Vista is not capable of extending the taskbar to the other monitor. I believe this is very basic functionality that most dualmon users needed. I goggled around and seems &lt;a href="http://www.realtimesoft.com/ultramon/"&gt;Ultramon &lt;/a&gt;is a cool app. &lt;/p&gt;&lt;p&gt;Share your tips.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=11160" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/windows+vista/default.aspx">windows vista</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/development+style/default.aspx">development style</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/usability/default.aspx">usability</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/multiple+monitor/default.aspx">multiple monitor</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/desktop/default.aspx">desktop</category></item><item><title>Usability: Build better software with naive testers</title><link>http://devpinoy.org/blogs/suddenserenity/archive/2007/06/25/usability-build-better-software-with-naive-testers.aspx</link><pubDate>Sun, 24 Jun 2007 16:56:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:10905</guid><dc:creator>dehran ph</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/suddenserenity/rsscomments.aspx?PostID=10905</wfw:commentRss><comments>http://devpinoy.org/blogs/suddenserenity/archive/2007/06/25/usability-build-better-software-with-naive-testers.aspx#comments</comments><description>&lt;p&gt;It&amp;#39;s 1:00 AM in the morning. I have spent several hours trying to debug a major issue on the image synchronization service of our product. An issue so trivial I am clueless where to look-up into. Is it on the windows service deployed on web server, or on the windows forms CRM module, or on stored procedures and web server, or a file system issue. Is it because it is because Windows Vista. Is it because of improper settings and configuration? Configuration where? Why is it failing only on one computer? Its works on my machine!!!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;After diagnostics and testing I have found the culprit. Its on the name of folder where the windows app retrieved the images. The application has 4 source folders for its images to be uploaded, &amp;quot;small, &amp;quot;medium&amp;quot;, &amp;quot;large&amp;quot;, &amp;quot;tuhmbnail&amp;quot;. From those folders do you know where is the error?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Call to action:&lt;/b&gt;&lt;br /&gt;Better error, debugging, and informational messages.&lt;br /&gt;Better logging and event diagnostics.&lt;br /&gt;Better checking and input validations.&lt;br /&gt;Better settings and configuration management.&lt;br /&gt;Better communication with testers and users.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight:bold;"&gt;Answer:&lt;/span&gt; The &amp;quot;tuhmbnail&amp;quot; must be &amp;quot;thumbnail&amp;quot;. One of my user/tester is really a very very good tester. He&amp;#39; the kind of user that easily gets frustrated with computers. He&amp;#39;s the kind of person that will destroy a computer if it does not work the way he wants it to be.&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=10905" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/usability+and+design/default.aspx">usability and design</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/build+better+software/default.aspx">build better software</category></item><item><title>SqlServer: Return Random Records in T-Sql, the GUID way.</title><link>http://devpinoy.org/blogs/suddenserenity/archive/2007/06/21/sqlserver-return-random-records-in-t-sql-the-guid-way.aspx</link><pubDate>Wed, 20 Jun 2007 18:17:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:10836</guid><dc:creator>dehran ph</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/suddenserenity/rsscomments.aspx?PostID=10836</wfw:commentRss><comments>http://devpinoy.org/blogs/suddenserenity/archive/2007/06/21/sqlserver-return-random-records-in-t-sql-the-guid-way.aspx#comments</comments><description>&lt;p&gt;In one of the website I have developed, we feature random products displayed on a webpart. This can be done several ways either of the code behind or via t-sql but I think the simplest way to do it is via t-sql with the help of Guid columns.&lt;/p&gt;&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Globally_Unique_Identifier"&gt;Globally Unique Identifier &lt;/a&gt;or GUID is a randomly generated guaranteed unique string originally used to generate reference numbers and keys in softwares. In Sql Server, it can be generated using the NewId() function.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Given GUID is random, adding a GUID column to the original resultset and use it as the sort column surely yields a random result. Sample script below:&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;div style="background:white none repeat scroll 0%;font-family:Verdana;font-size:8pt;color:black;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;--&amp;gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;IF EXISTS&lt;/span&gt;(&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;1 &lt;span style="color:blue;"&gt;FROM &lt;/span&gt;sys.tables &lt;span style="color:blue;"&gt;WHERE Name &lt;/span&gt;= &lt;span style="color:maroon;"&gt;&amp;#39;Product&amp;#39;&lt;/span&gt;)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;DROP TABLE Product&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;GO&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;--create the test product table&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;CREATE TABLE Product &lt;/span&gt;(&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IdProduct &lt;span style="color:blue;"&gt;int PRIMARY KEY IDENTITY&lt;/span&gt;(1001,1),&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ProductName &lt;span style="color:blue;"&gt;nvarchar&lt;/span&gt;(255),&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Price &lt;span style="color:blue;"&gt;decimal&lt;/span&gt;(18,2),&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; AverageRating &lt;span style="color:blue;"&gt;int&lt;/span&gt;,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ItemViewed &lt;span style="color:blue;"&gt;int&lt;/span&gt;,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;13&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ItemSold &lt;span style="color:blue;"&gt;int&lt;/span&gt;,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; SortOrder &lt;span style="color:blue;"&gt;int&lt;/span&gt;,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; DateCreated &lt;span style="color:blue;"&gt;smalldatetime&lt;/span&gt;,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;16&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LastUpdated &lt;span style="color:blue;"&gt;smalldatetime&lt;/span&gt;)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;17&lt;/span&gt;&amp;nbsp;GO&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;18&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;19&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;--initialize table with test data&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;INSERT INTO Product VALUES&lt;/span&gt;(&lt;span style="color:maroon;"&gt;&amp;#39;Item 1&amp;#39;&lt;/span&gt;, 10.00, 1, 99, 23, 1000, &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;(), &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;());&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;21&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;INSERT INTO Product VALUES&lt;/span&gt;(&lt;span style="color:maroon;"&gt;&amp;#39;Item 2&amp;#39;&lt;/span&gt;, 21.00, 2, 97, 56, 1002, &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;(), &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;());&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;22&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;INSERT INTO Product VALUES&lt;/span&gt;(&lt;span style="color:maroon;"&gt;&amp;#39;Item 3&amp;#39;&lt;/span&gt;, 11.00, 3, 95, 23, 1001, &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;(), &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;());&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;23&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;INSERT INTO Product VALUES&lt;/span&gt;(&lt;span style="color:maroon;"&gt;&amp;#39;Item 4&amp;#39;&lt;/span&gt;, 22.00, 4, 93, 65, 1000, &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;(), &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;());&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;24&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;INSERT INTO Product VALUES&lt;/span&gt;(&lt;span style="color:maroon;"&gt;&amp;#39;Item 5&amp;#39;&lt;/span&gt;, 12.00, 5, 91, 54, 1000, &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;(), &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;());&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;25&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;INSERT INTO Product VALUES&lt;/span&gt;(&lt;span style="color:maroon;"&gt;&amp;#39;Item 6&amp;#39;&lt;/span&gt;, 23.00, 6, 89, 12, 1006, &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;(), &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;());&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;26&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;INSERT INTO Product VALUES&lt;/span&gt;(&lt;span style="color:maroon;"&gt;&amp;#39;Item 7&amp;#39;&lt;/span&gt;, 13.00, 8, 87, 89, 1050, &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;(), &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;());&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;27&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;INSERT INTO Product VALUES&lt;/span&gt;(&lt;span style="color:maroon;"&gt;&amp;#39;Item 8&amp;#39;&lt;/span&gt;, 24.00, 9, 85, 21, 1021, &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;(), &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;());&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;28&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;INSERT INTO Product VALUES&lt;/span&gt;(&lt;span style="color:maroon;"&gt;&amp;#39;Item 9&amp;#39;&lt;/span&gt;, 14.00, 1, 98, 67, 1020, &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;(), &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;());&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;29&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;INSERT INTO Product VALUES&lt;/span&gt;(&lt;span style="color:maroon;"&gt;&amp;#39;Item 10&amp;#39;&lt;/span&gt;, 25.00, 3, 99, 78, 1001, &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;(), &lt;span style="color:blue;"&gt;GETDATE&lt;/span&gt;());&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;30&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;31&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;32&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;--create the stored procedures&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;33&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;IF EXISTS &lt;/span&gt;( &lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;&amp;nbsp;&amp;nbsp; *&amp;nbsp; &lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&amp;nbsp;&amp;nbsp; sys.objects&amp;nbsp; &lt;span style="color:blue;"&gt;WHERE &lt;/span&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;object_id &lt;/span&gt;= &lt;span style="color:blue;"&gt;OBJECT_ID&lt;/span&gt;(N&lt;span style="color:maroon;"&gt;&amp;#39;[dbo].[usp_query_all_featured_product]&amp;#39;&lt;/span&gt;) &lt;span style="color:blue;"&gt;and &lt;/span&gt;type &lt;span style="color:blue;"&gt;IN &lt;/span&gt;(N&lt;span style="color:maroon;"&gt;&amp;#39;P&amp;#39;&lt;/span&gt;, N&lt;span style="color:maroon;"&gt;&amp;#39;PC&amp;#39;&lt;/span&gt;))&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;34&lt;/span&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;DROP PROCEDURE &lt;/span&gt;[dbo].[usp_query_all_featured_product];&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&lt;/span&gt;&amp;nbsp;GO&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;36&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;37&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;/*------------------------------------------------------------------------------&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;38&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;// &amp;lt;procedureInformation&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;39&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;// &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;procedureName : [dbo].[usp_query_all_featured_product]&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;40&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;// &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;description : get random products from a table&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;41&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;// &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;createdBy : rdagumampan&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;42&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;// &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;createdWhen : &lt;/span&gt;&amp;nbsp; &lt;span style="color:green;"&gt;06-20-2007 02:08 AM&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;43&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;//&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;44&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;// &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;modification history&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;45&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;// &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;date Modified &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:green;"&gt;remarks&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;46&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;// &amp;lt;procedureInformation&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;47&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;*/------------------------------------------------------------------------------&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;48&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;49&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;CREATE PROC &lt;/span&gt;[dbo].[usp_query_all_featured_product]&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;50&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @pageIndex [int] = 1,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;-- current page&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;51&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @pageSize [int] = 999,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;-- number of rows per page&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;52&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @totalRows [int] &lt;span style="color:blue;"&gt;OUTPUT&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;-- total number of rows&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;53&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;AS&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;54&lt;/span&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;BEGIN&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;55&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;56&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;----xx begin unit testing paramters&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;57&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;--&amp;nbsp;&amp;nbsp;&amp;nbsp; DECLARE @returnTop int;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;58&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;-- SELECT @returnTop = 5;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;59&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;----xx end unit testing parameters&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;60&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:green;"&gt;--perform attempt to retrieve all records&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;61&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;WITH &lt;/span&gt;result &lt;span style="color:blue;"&gt;AS &lt;/span&gt;(&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;62&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;SELECT&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;63&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ROW_NUMBER() &lt;span style="color:blue;"&gt;OVER &lt;/span&gt;(&lt;span style="color:blue;"&gt;ORDER BY NewId&lt;/span&gt;() &lt;span style="color:blue;"&gt;ASC&lt;/span&gt;) &lt;span style="color:blue;"&gt;AS &lt;/span&gt;RowNumber,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;64&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.IdProduct,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;65&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.ProductName,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;66&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.Price,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;67&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.AverageRating,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;68&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.ItemViewed,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;69&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.ItemSold,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;70&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.SortOrder,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;71&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.DateCreated,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;72&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.LastUpdated&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;73&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;FROM Product &lt;/span&gt;prod )&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;74&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;SELECT&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;75&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.IdProduct,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;76&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.ProductName,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;77&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.Price,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;78&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.AverageRating,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;79&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.ItemViewed,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;80&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.ItemSold,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;81&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.SortOrder,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;82&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.DateCreated,&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;83&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; prod.LastUpdated&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;84&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;FROM &lt;/span&gt;result prod&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;85&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;WHERE &lt;/span&gt;prod.RowNumber &lt;span style="color:blue;"&gt;BETWEEN &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;86&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; (@pageIndex - 1) * @pageSize + 1 &lt;span style="color:blue;"&gt;AND &lt;/span&gt;@pageIndex * @pageSize&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;87&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;88&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;@totalRows = &lt;span style="color:blue;"&gt;COUNT&lt;/span&gt;(IdProduct) &lt;span style="color:blue;"&gt;FROM Product&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;89&lt;/span&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;END&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;90&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;91&lt;/span&gt;&amp;nbsp;GO&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;92&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;93&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;--execute stored product for testing&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;94&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;DECLARE &lt;/span&gt;@totalRows &lt;span style="color:blue;"&gt;INT&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;95&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;EXEC &lt;/span&gt;[usp_query_all_featured_product] @pageIndex = 1, @pageSize = 5, @totalRows = @totalRows ;&lt;/p&gt;


&lt;p&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;&lt;br /&gt;DISCLAIMER: &lt;/b&gt;Use this script at your own risk. Never execute this script on a production database.&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=10836" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/.NET/default.aspx">.NET</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/sql+server+/default.aspx">sql server </category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/how+to/default.aspx">how to</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/stored+procedures/default.aspx">stored procedures</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/sql/default.aspx">sql</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/sequel+server/default.aspx">sequel server</category></item><item><title>.NET: Updated: Simple and Stupid BackgroundWorker Example</title><link>http://devpinoy.org/blogs/suddenserenity/archive/2007/06/21/net-simple-and-stupid-backgroundworker-example.aspx</link><pubDate>Wed, 20 Jun 2007 17:36:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:10835</guid><dc:creator>dehran ph</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/suddenserenity/rsscomments.aspx?PostID=10835</wfw:commentRss><comments>http://devpinoy.org/blogs/suddenserenity/archive/2007/06/21/net-simple-and-stupid-backgroundworker-example.aspx#comments</comments><description>&lt;p&gt;I was very busy the past weeks, I cannot imagine I could make it not to code for several days, been a carpenter, janitor, messenger and everything hehe. But I&amp;#39;m here again now. Let me start this out with this stupid sample I just given to one of my junior developer.&lt;/p&gt;&lt;p&gt;BackgroundWorker is a special class in .NET 2.0 to help developers implement non-freezing UI, multi-threaded windows forms applications. It provides intuitive model for hanldling events, reporting progress, and notifying the user interface.&amp;nbsp;&lt;/p&gt;&lt;p&gt;In my opinion, it is a must for all windows forms developers to know this and learn how to implement this. But the problem I can see is that, most of times junior developers dont know where to start and sometimes overwelemed by the documentations most websites and microsft provided. Lets keep it this simple :).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Instructions:&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Create a new VS2005 C# Window Forms project.&lt;/li&gt;&lt;li&gt;Add a new Form, name it &amp;quot;WinAppMain&amp;quot;.&lt;/li&gt;&lt;li&gt;On form add two buttons &amp;quot;btnStart&amp;quot; and &amp;quot;btnStop&amp;quot;.&lt;/li&gt;&lt;li&gt;Add a label &amp;quot;lblStatus&amp;quot;.&lt;/li&gt;&lt;li&gt;Add a progressbar control &amp;quot;progressBar&amp;quot;.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Then review and implement this code, sorry but you cannot copy this hehe.&lt;br /&gt;
&lt;/p&gt;&lt;div style="background:white none repeat scroll 0% 50%;font-family:Verdana;font-size:8pt;color:black;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;

&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;nbsp; Description: very simple background worker sample&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.ComponentModel;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Threading;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Windows.Forms;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; WindowAppEx {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;13&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span&gt;WinAppMain&lt;/span&gt; : &lt;span&gt;Form&lt;/span&gt; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//class level variables&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;&amp;gt; employees = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;&amp;gt;();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;16&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span&gt;BackgroundWorker&lt;/span&gt; worker = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;17&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;18&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; WinAppMain() {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;19&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeComponent();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;21&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;22&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; btnStart_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span&gt;EventArgs&lt;/span&gt; e) {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;23&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; btnStart.Enabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;24&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; btnStop.Enabled = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;25&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;26&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeList();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;27&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeBar();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;28&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; RunWorker();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;29&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;30&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;31&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//initilaize progress nar &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;32&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; InitializeBar() {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;33&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; progressBar.Maximum = 100;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;34&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; progressBar.Minimum = 0;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; progressBar.Value = 0;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;36&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;37&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;38&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//create a dummy list, assume this is a list of employees to be processed on a backgroun thread&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;39&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; InitializeList() {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;40&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; employees.Add(&lt;span&gt;&amp;quot;Marilyn Manalo&amp;quot;&lt;/span&gt;);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;41&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; employees.Add(&lt;span&gt;&amp;quot;Shereen Guinucud&amp;quot;&lt;/span&gt;);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;42&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; employees.Add(&lt;span&gt;&amp;quot;Eunice Hosmillo&amp;quot;&lt;/span&gt;);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;43&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; employees.Add(&lt;span&gt;&amp;quot;Haizel Lin&amp;quot;&lt;/span&gt;);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;44&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; employees.Add(&lt;span&gt;&amp;quot;Rizchelle Priagula&amp;quot;&lt;/span&gt;);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;45&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; employees.Add(&lt;span&gt;&amp;quot;Cyd Clarence Petalino&amp;quot;&lt;/span&gt;);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;46&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; employees.Add(&lt;span&gt;&amp;quot;June Aileen Fesariton&amp;quot;&lt;/span&gt;);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;47&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; employees.Add(&lt;span&gt;&amp;quot;Gwendale Gertrude Aranas &amp;quot;&lt;/span&gt;);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;48&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; employees.Add(&lt;span&gt;&amp;quot;Juvy Viñas&amp;quot;&lt;/span&gt;);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;49&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;50&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;51&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//create a new backround worker&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;52&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; RunWorker() {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;53&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; worker = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span&gt;BackgroundWorker&lt;/span&gt;();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;54&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; worker.WorkerReportsProgress = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;55&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; worker.WorkerSupportsCancellation = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;56&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;57&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; worker.DoWork += &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span&gt;DoWorkEventHandler&lt;/span&gt;(worker_DoWork);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;58&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; worker.RunWorkerCompleted += &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span&gt;RunWorkerCompletedEventHandler&lt;/span&gt;(worker_RunWorkerCompleted);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;59&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; worker.ProgressChanged += &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span&gt;ProgressChangedEventHandler&lt;/span&gt;(worker_ProgressChanged);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;60&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; worker.RunWorkerAsync(employees);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;61&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;62&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;63&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//begin working on files&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;64&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; worker_DoWork(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span&gt;DoWorkEventArgs&lt;/span&gt; e) {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;65&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;BackgroundWorker&lt;/span&gt; senderWorker = sender &lt;span style="color:blue;"&gt;as&lt;/span&gt; &lt;span&gt;BackgroundWorker&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;66&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;&amp;gt; inputList = e.Argument &lt;span style="color:blue;"&gt;as&lt;/span&gt; &lt;span&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;&amp;gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;67&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;68&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;for&lt;/span&gt; (&lt;span style="color:blue;"&gt;int&lt;/span&gt; index = 0; index&amp;lt;= inputList.Count-1; index++) {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;69&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//do more work here&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;70&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;Thread&lt;/span&gt;.Sleep(1000);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;71&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;72&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;nbsp;&amp;nbsp; progressInPercent = (&lt;span style="color:blue;"&gt;int&lt;/span&gt;)(((&lt;span style="color:blue;"&gt;decimal&lt;/span&gt;)(index + 1)/(&lt;span style="color:blue;"&gt;decimal&lt;/span&gt;)inputList.Count) * 100);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;73&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; worker.ReportProgress(progressInPercent, inputList[index]);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;74&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;75&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//handle cancellation of the thread, even CancelAsync was called, the worker is still processing request&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;76&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//explict hanlding of cancellation is needed here to avoud null reference exception&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;77&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt;(senderWorker.CancellationPending) {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;78&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; e.Cancel = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;79&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;break&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;80&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;81&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;82&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;83&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;84&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//executed when worker was finished&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;85&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; worker_RunWorkerCompleted(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span&gt;RunWorkerCompletedEventArgs&lt;/span&gt; e) {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;86&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; lblStatus.Text = &lt;span&gt;&amp;quot;work finished processing request.&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;87&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;88&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;89&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//executed when worker finished processign one item&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;90&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; worker_ProgressChanged(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span&gt;ProgressChangedEventArgs&lt;/span&gt; e) {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;91&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; progressBar.Value = e.ProgressPercentage;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;92&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; lblStatus.Text = &lt;span&gt;&amp;quot;working on file of: &amp;quot;&lt;/span&gt; + e.UserState;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;93&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;94&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;95&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//worker cancelled when cancel button was clicked&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;96&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; btnStop_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span&gt;EventArgs&lt;/span&gt; e) {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;97&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; worker.CancelAsync();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;98&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; lblStatus.Text = &lt;span&gt;&amp;quot;work was stopped.&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;99&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;100&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; btnStart.Enabled = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;101&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; btnStop.Enabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;102&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;103&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;104&lt;/span&gt;&amp;nbsp;}&lt;/p&gt;&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;img src="http://img408.imageshack.us/img408/62/workerok3.jpg" alt="" /&gt;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;

You can also create multiple background workers running at the same time. HTH.&lt;br /&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=10835" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/.NET/default.aspx">.NET</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/windows+forms/default.aspx">windows forms</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/threading/default.aspx">threading</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/backgroundworker/default.aspx">backgroundworker</category></item><item><title>.NET: A Significant Discovery On TortoiseSVN</title><link>http://devpinoy.org/blogs/suddenserenity/archive/2007/04/21/net-a-significant-discovery-on-tortoisesvn.aspx</link><pubDate>Sat, 21 Apr 2007 11:17:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:9199</guid><dc:creator>dehran ph</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/suddenserenity/rsscomments.aspx?PostID=9199</wfw:commentRss><comments>http://devpinoy.org/blogs/suddenserenity/archive/2007/04/21/net-a-significant-discovery-on-tortoisesvn.aspx#comments</comments><description>&lt;p&gt;I had very bad intermittent connection&amp;nbsp;lately and this TortoiseSVN is really 
killing me. With my speaker system tuned on 60% volume&amp;nbsp;playing jazz music&amp;nbsp;to 
stimulate my mind, while I&amp;#39;m committing several files on our server, suddenly 
the SVN&amp;#39;s error sound breaks my silence. This sound is really disgusting and I 
don&amp;#39;t know why&amp;nbsp;our beloved SVN community choose this. I would like to recommend 
that they used the windows error sound instead.&lt;/p&gt;
&lt;p&gt;But anyway, I think I have to stop this. Googling around, I &lt;a href="http://svn.haxx.se/tsvn/archive-2005-09/0445.shtml"&gt;found&lt;/a&gt; that this 
can be turned off or change by Windows Control Panel!! Why didn&amp;#39;t I know 
this thing exists... hay life, this truly makes me feel better.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img src="http://img371.imageshack.us/img371/4281/turnoffqn6.jpg" alt="" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=9199" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/how+to/default.aspx">how to</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/subversion/default.aspx">subversion</category></item><item><title>MicroISV: In The Name Of Commerce</title><link>http://devpinoy.org/blogs/suddenserenity/archive/2007/04/11/microisv-in-the-name-of-commerce.aspx</link><pubDate>Wed, 11 Apr 2007 01:31:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:8846</guid><dc:creator>dehran ph</dc:creator><slash:comments>0</slash:comments><description>In the name of "commerce", I have to spend several hours today&amp;nbsp;scouting the web 
for the best possible domain name for&amp;nbsp;our firm that best represents our 
interests, services and products to be developed. With a lot of domain squatters on the web, its really hard to find one... &lt;a href="http://suddenserenity.wordpress.com/2007/04/11/microisv-in-the-name-of-commerce/"&gt;Read More...&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=8846" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/business+of+software/default.aspx">business of software</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/microISV/default.aspx">microISV</category></item><item><title>MicroISV: YetAnotherFirm LLC, Wtf is LLC</title><link>http://devpinoy.org/blogs/suddenserenity/archive/2007/04/07/microisv-yetanotherfirm-llc.aspx</link><pubDate>Sat, 07 Apr 2007 10:03:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:8824</guid><dc:creator>dehran ph</dc:creator><slash:comments>0</slash:comments><description>You might have heard this term as part of company title of most
emerging IT companies who have delivery centers in the USA, Philippines
and India. LLC stands for &lt;a href="http://en.wikipedia.org/wiki/Limited_liability_company"&gt;Limited Liability  Company&lt;/a&gt;,
where incorporators were given the security or assurance that restrict
their legal liabilities right into the company itself only. It stands
across the benefits of a corporation and partnership business
structure... &lt;a href="http://suddenserenity.wordpress.com/2007/04/07/microisv-llc-is-not-inc/"&gt;Read More...&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=8824" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/business+of+software/default.aspx">business of software</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/microISV/default.aspx">microISV</category></item><item><title>Shift Happens</title><link>http://devpinoy.org/blogs/suddenserenity/archive/2007/04/04/microisv-shift-happens.aspx</link><pubDate>Tue, 03 Apr 2007 19:32:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:8798</guid><dc:creator>dehran ph</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/suddenserenity/rsscomments.aspx?PostID=8798</wfw:commentRss><comments>http://devpinoy.org/blogs/suddenserenity/archive/2007/04/04/microisv-shift-happens.aspx#comments</comments><description>&lt;p&gt;In the past 6 months I have been working as an independent developer 
spearheaded the design and coding of a&amp;nbsp;shopping cart software&amp;nbsp;for a Danish 
retail firm. But just last week, I was caught in the middle of two great 
opportunities where whatever I choose, I only have so little to loose.&amp;nbsp; A UK 
firm invited me to join their pioneer team in the Philippines for their global 
service delivery center in Manila. A well-compensated position and a reputable 
company plus a good salary. 
&lt;/p&gt;&lt;p&gt;On my right hand is a business opportunity to be part of start-up IT firm 
while not compromising what I'm currently receiving as consultant&amp;nbsp;of the firm. 
And develop the next generation "software for the poor" online retailers. I 
mentioned before that I am little hesitant to join consulting companies and I 
very much in favor on small R&amp;amp;D startups and ISVs. 
&lt;/p&gt;&lt;p&gt;It took&amp;nbsp;me one week&amp;nbsp;to evaluate these two offers and seeked advise from my 
parents, relatives, and friends. As result of a "unanimous votes" lols in favor of the latter, I 
decided to continue what I have started and accept the business opportunity at hand. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=8798" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/business+of+software/default.aspx">business of software</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/microISV/default.aspx">microISV</category></item><item><title>ASP.NET: Url-Rewriting In Migrated Website</title><link>http://devpinoy.org/blogs/suddenserenity/archive/2007/04/04/asp.net-url-rewriting-in-migrated-website_3B00_-url_2D00_rewriting_3B00_-migrating-asp.net-website.aspx</link><pubDate>Tue, 03 Apr 2007 18:13:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:8797</guid><dc:creator>dehran ph</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/suddenserenity/rsscomments.aspx?PostID=8797</wfw:commentRss><comments>http://devpinoy.org/blogs/suddenserenity/archive/2007/04/04/asp.net-url-rewriting-in-migrated-website_3B00_-url_2D00_rewriting_3B00_-migrating-asp.net-website.aspx#comments</comments><description>&lt;p&gt;&lt;img src="http://img62.imageshack.us/img62/509/urlcb9.jpg" align="left" alt="" /&gt;Wow, it 
was January since my last post! sorry guys I&amp;#39;m was very busy coding, monitoring 
our house&amp;#39; dev&amp;#39;t in province, preparing my relocation and some business matters. 
Anyway, a fellow filipino developer at msforums.ph&amp;nbsp;&lt;a href="http://msforums.ph/forums/thread/195915.aspx"&gt; raised the question&lt;/a&gt; if 
its true that URl-Rewriting &amp;quot;damage&amp;quot; page hits and page rank. Speaking from my 
experience here&amp;#39;s my take.
&lt;/p&gt;&lt;p&gt;&lt;font color="#a52a2a"&gt;Why do we need to implement ur-rewriting?&lt;/font&gt;&lt;br /&gt;Well aside from aesthetic value, 
there quite a number of benefits implementing is. &lt;a href="http://www.seoconsultants.com/articles/1000/urls.asp"&gt;Read it&amp;nbsp; drectly 
from SEO Expert&amp;#39;s&lt;/a&gt;&lt;b&gt;.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color="#a52a2a"&gt;When Url-Rewriting Goes Wrong?&lt;/font&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;The problem I can see witn URL 
Re-writing is when you use this without care into a newly migrated or existing 
website which has considerable good page ranks. Implementing url rewriting can 
cause the search engine confused on which page to look for a particular keyword 
from your site. For instance, the original website you upgraded into ASP.NET has 
the page &lt;a href="http://www.mystore.ph/products.php?product_id=1001"&gt;http://www.mystore.ph/products.php?product_id=1001&lt;/a&gt; 
whch shows a Philips Flourescent Lights. This page maintains top rank in the 
search engine index. Apparently, you would like to migrate the site and 
implement url-rewriting into your product pages and convert the said page into 
&lt;a href="http://www.mystore.ph/products/phiilips-flourescent-lamps.aspx"&gt;http://www.mystore.ph/products/phiilips-flourescent-lamps.aspx&lt;/a&gt;. 
This is really cool and surely add your philips products in to the search index, 
but... you forgot to mark old page as non-existent and there&amp;#39;s new page for the 
product. This is the problem! You now lost your position and the new site grows 
older and older.&lt;/p&gt;&lt;p&gt;A way to fix this problem is to issue a permanent 
redirection (aka. Error 301) when those old pages was requested. Why? When you 
upgraded your website and you removed those old pages, new pages will not appear 
in the search results right away, it will take some time before the cache gets 
refreshed.&amp;nbsp; To test, you use &lt;a href="http://siteexplorer.search.yahoo.com/"&gt;http://siteexplorer.search.yahoo.com&lt;/a&gt;, 
you will see old pages are returned and not the new web pages are not yet 
indexed after the upgrade. When users searched or redirected into your new 
website&amp;#39; old pages, user will be lost and Error 404 will be issued whicn in turn 
puts your website in bad fate in page rank.
&lt;/p&gt;&lt;p&gt;Since I implemented URL re-writing in one of our stores, it became #1 and 
maintain its position on www.google.dk search index. The engine is also doing 
good indexing our pages.
&lt;/p&gt;&lt;p&gt;&lt;font color="#a52a2a"&gt;Reference:&lt;/font&gt;&lt;br /&gt;&lt;a href="http://www.highposition.net/301redirect.html"&gt;Error 
301 : Permanent Redirection Tutorial&lt;/a&gt;&lt;a href="http://www.highposition.net/301redirect.html"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=8797" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/.NET/default.aspx">.NET</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://devpinoy.org/blogs/suddenserenity/archive/tags/usability+and+design/default.aspx">usability and design</category></item></channel></rss>