<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8944317467906119023</id><updated>2011-11-28T06:10:21.803+06:00</updated><category term='Misc'/><category term='My Thought'/><category term='Information'/><category term='Java'/><category term='Linux'/><category term='Tips and Tricks'/><category term='Programming'/><category term='.NET'/><title type='text'>Sowkot Osman's blog - Born to build Software</title><subtitle type='html'>imagination, creation and automation</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-861650081033308264</id><published>2008-08-20T01:43:00.009+06:00</published><updated>2008-08-23T15:52:23.994+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Common Validation and Length Validation with Regular Expression in ASP.NET</title><content type='html'>&lt;span id="intelliTXT"&gt;&lt;h2&gt;&lt;br /&gt;&lt;/h2&gt;&lt;/span&gt;&lt;span&gt;&lt;span id="intelliTXT"&gt;&lt;span&gt;&lt;span id="intelliTXT"&gt;&lt;span id="intelliTXT"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:180%;"&gt;&lt;a style="font-weight: bold;" href="http://www.sowkot.com/CodeProject/RegularExpression.zip"&gt;Download&lt;/a&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;the complete source code.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="intelliTXT"&gt;&lt;/span&gt;&lt;span&gt;&lt;span id="intelliTXT"&gt; &lt;h2&gt;Introduction&lt;br /&gt;&lt;/h2&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="intelliTXT"&gt;&lt;p&gt;Input validation is very common and important in any kind of application. In case of web application server side validation is a must and client side validation is highly anticipated. As you know ASP.NET provides you some handfull validation controls like RequiredFiledValidator, RegularExpressionValidator etc. Most of the time we have to check whether user has given the correct number, date, time or anything as input. To validate such things we use RegularExpressionValidator.&lt;/p&gt;  &lt;p&gt;In this article I'll provide an Util class full of some regular expressions for common input validation. The main attractive part is length validation of &lt;strong&gt;textarea&lt;/strong&gt; control of &lt;strong&gt;html&lt;/strong&gt;. As you know in case of &lt;strong&gt;textfield&lt;/strong&gt; you can tell the max length of it. But for textarea you cannot do it. So normally we have to write some javascript function to check the length before form submit. &lt;/p&gt;  &lt;p&gt;But in ASP.NET when you use &lt;strong&gt;TextBox, &lt;/strong&gt;setting the &lt;strong&gt;TextMode &lt;/strong&gt;property as &lt;strong&gt;MultiLine &lt;/strong&gt;the MaxLength property does not work. So if you want to put restriction to limit the input length of the TextBox you have to find an alternate way.&lt;/p&gt;  &lt;p&gt;Yes, here I'll show how you can do this by simply writing a Regular Expression.&lt;/p&gt;  &lt;h2&gt;The code&lt;/h2&gt;  &lt;p&gt;The &lt;strong&gt;&lt;code&gt;&lt;strong&gt;RegExp&lt;/strong&gt;&lt;/code&gt;&lt;/strong&gt; class&lt;/p&gt;&lt;p&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt; &lt;/p&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt; &lt;span style="font-family:monospace;"&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; Util&lt;br /&gt;{&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; RegExp&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Url = &lt;span class="str"&gt;"[a-zA-Z0-9-_\\$]+(//.[a-za-z0-9-_//$]+)?\\??"&lt;/span&gt; +&lt;br /&gt;            &lt;span class="str"&gt;"[a-zA-Z0-9-_\\$]+=?[a-zA-Z0-9-_\\$]+(&amp;amp;[a-zA-Z0-9-_\\$]+="&lt;/span&gt; +&lt;br /&gt;            &lt;span class="str"&gt;"[a-zA-Z0-9-_\\$]+)*"&lt;/span&gt;;&lt;span class="str"&gt;"&amp;gt;\\.[a-zA-Z0-9-_\\$]+)?\\??"&lt;/span&gt; +&lt;br /&gt;            &lt;span class="str"&gt;"[a-zA-Z0-9-_\\$]+=?[a-zA-Z0-9-_\\$]+(&amp;amp;"&lt;/span&gt; +&lt;br /&gt;            &lt;span class="str"&gt;"[a-zA-Z0-9-_\\$]+=[a-zA-Z0-9-_\\$]+)*"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Date = &lt;span class="str"&gt;"(0[1-9]|[12][0-9]|3[01])[-]"&lt;/span&gt; +&lt;br /&gt;            &lt;span class="str"&gt;"(0[1-9]|1[012])[-]((175[7-9])|(17[6-9][0-9])|(1[8-9][0-9][0-9])|"&lt;/span&gt; +&lt;br /&gt;            &lt;span class="str"&gt;"([2-9][0-9][0-9][0-9]))"&lt;/span&gt;;&lt;br /&gt;            &lt;span class="rem"&gt;// supports dates from 1-1-1757 to 31-12-9999 for SQL Server 2000 Date Range &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Time = &lt;span class="str"&gt;"(0[1-9]|[1][0-2])[:]"&lt;/span&gt; +&lt;br /&gt;            &lt;span class="str"&gt;"(0[0-9]|[1-5][0-9])[:](0[0-9]|[1-5][0-9])[ ][A|a|P|p][M|m]"&lt;/span&gt;;&lt;br /&gt;     &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Number = &lt;span class="str"&gt;"[-+]?[0-9]*\\.?[0-9]*"&lt;/span&gt;;&lt;br /&gt;     &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Digit = &lt;span class="str"&gt;"[0-9]*"&lt;/span&gt;;&lt;br /&gt;     &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; NonNegative = &lt;span class="str"&gt;"[+]?[0-9]*\\.?[0-9]*"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; MaxLength(&lt;span class="kwrd"&gt;int&lt;/span&gt; len)&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="str"&gt;"[\\s\\S]{0,"&lt;/span&gt; + len.ToString() + &lt;span class="str"&gt;"}"&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;p lang="cs"&gt;The &lt;strong&gt;&lt;code&gt;&lt;strong&gt;ValidationMessages&lt;/strong&gt;&lt;/code&gt;&lt;/strong&gt; class&lt;/p&gt;&lt;p lang="cs"&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; Resource&lt;br /&gt;{&lt;br /&gt;  &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; ValidationMessages&lt;br /&gt;  {&lt;br /&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Url = &lt;span class="str"&gt;"* Please enter a valid URL.&amp;lt;br&amp;gt;Valid "&lt;/span&gt; +&lt;br /&gt;         &lt;span class="str"&gt;"characters are all alphanumeric characters and .?"&lt;/span&gt; +&lt;br /&gt;         &lt;span class="str"&gt;"&amp;amp;_=-$&amp;lt;br&amp;gt; example: home.aspx?id=5&amp;amp;name=$my_name"&lt;/span&gt;;&lt;br /&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Required = &lt;span class="str"&gt;"* Required"&lt;/span&gt;;&lt;br /&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Date = &lt;span class="str"&gt;"* Please enter a valid date in dd-MM-yyyy format."&lt;/span&gt;;&lt;br /&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Time = &lt;span class="str"&gt;"* Please enter a valid time in hh:mm:ss am format."&lt;/span&gt;;&lt;br /&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Number = &lt;span class="str"&gt;"* Must be a valid number."&lt;/span&gt;;&lt;br /&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Digit = &lt;span class="str"&gt;"* Must be a valid whole number."&lt;/span&gt;;&lt;br /&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; NonNegative = &lt;span class="str"&gt;"* Must be a non-negative number."&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; MaxLength(&lt;span class="kwrd"&gt;int&lt;/span&gt; len)&lt;br /&gt;      {&lt;br /&gt;          &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="str"&gt;"* Maximum "&lt;/span&gt; + len.ToString() + &lt;span class="str"&gt;" characters are allowed."&lt;/span&gt;;&lt;br /&gt;      }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;h2&gt;Using the Code&lt;/h2&gt;  &lt;p&gt;The usage is very simple. See the example page.&lt;/p&gt;  &lt;p&gt;&lt;code&gt;&lt;strong&gt;Defaul.aspx &lt;/strong&gt;page.&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="asp"&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true"&lt;br /&gt;CodeFile="Default.aspx.cs" Inherits="_Default" %&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt; &lt;span class="attr"&gt;PUBLIC&lt;/span&gt; &lt;span class="kwrd"&gt;"-//W3C//DTD XHTML 1.0 Transitional//EN"&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt; &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.w3.org/1999/xhtml"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Untitled Page&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="form1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;h3&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          Validation Example&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;h3&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;table&lt;/span&gt; &lt;span class="attr"&gt;border&lt;/span&gt;&lt;span class="kwrd"&gt;="1"&lt;/span&gt; &lt;span class="attr"&gt;width&lt;/span&gt;&lt;span class="kwrd"&gt;="50%"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt; &lt;span class="attr"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;="width: 200px"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="CommentLabel"&lt;/span&gt;&lt;br /&gt;                      &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="Comment:"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="CommentTextBox"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;br /&gt;                       &lt;span class="attr"&gt;TextMode&lt;/span&gt;&lt;span class="kwrd"&gt;="MultiLine"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="500px"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:RegularExpressionValidator&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="CommentValidator"&lt;/span&gt;&lt;br /&gt;                    &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;ControlToValidate&lt;/span&gt;&lt;span class="kwrd"&gt;="CommentTextBox"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:RegularExpressionValidator&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="DateLabel"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;br /&gt;                     &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="Date:"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="DateTextBox"&lt;/span&gt;&lt;br /&gt;                     &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="500px"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:RegularExpressionValidator&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="DateValidator"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;br /&gt;                    &lt;span class="attr"&gt;ControlToValidate&lt;/span&gt;&lt;span class="kwrd"&gt;="DateTextBox"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:RegularExpressionValidator&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="TimeLabel"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;br /&gt;                    &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="Time:"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="TimeTextBox"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="500px"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:RegularExpressionValidator&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="TimeValidator"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;br /&gt;                    &lt;span class="attr"&gt;ControlToValidate&lt;/span&gt;&lt;span class="kwrd"&gt;="TimeTextBox"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:RegularExpressionValidator&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="NumberLabel"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;br /&gt;                    &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="Number:"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="NumberTextBox"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="500px"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:RegularExpressionValidator&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="NumberValidator"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;br /&gt;                    &lt;span class="attr"&gt;ControlToValidate&lt;/span&gt;&lt;span class="kwrd"&gt;="NumberTextBox"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:RegularExpressionValidator&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="DigitLabel"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;br /&gt;                    &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="Digit:"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="DigitTextBox"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="500px"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:RegularExpressionValidator&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="DigitValidator"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;br /&gt;                    &lt;span class="attr"&gt;ControlToValidate&lt;/span&gt;&lt;span class="kwrd"&gt;="DigitTextBox"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:RegularExpressionValidator&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="NonNegativeLabel"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;br /&gt;                     &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="Non Negative:"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="NonNegativeTextBox"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="500px"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:RegularExpressionValidator&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="NonNegativeValidator"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;br /&gt;                    &lt;span class="attr"&gt;ControlToValidate&lt;/span&gt;&lt;span class="kwrd"&gt;="NonNegativeTextBox"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:RegularExpressionValidator&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="UrlLabel"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="Url:"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="UrlTextBox"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="500px"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;                  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:RegularExpressionValidator&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="UrlValidator"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;br /&gt;                    &lt;span class="attr"&gt;ControlToValidate&lt;/span&gt;&lt;span class="kwrd"&gt;="UrlTextBox"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:RegularExpressionValidator&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;table&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt; &lt;span style="font-family:monospace;"&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;/span&gt;&lt;p&gt;&lt;code&gt;&lt;strong&gt;Defaul.aspx.cs &lt;/strong&gt;page&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Configuration;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.Security;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.WebControls;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.WebControls.WebParts;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.HtmlControls;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Util;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Resource;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; _Default : System.Web.UI.Page&lt;br /&gt;{&lt;br /&gt;  &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;  {&lt;br /&gt;      CommentValidator.ValidationExpression = RegExp.MaxLength(50);&lt;br /&gt;      CommentValidator.ErrorMessage = ValidationMessages.MaxLength(50);&lt;br /&gt;&lt;br /&gt;      DateValidator.ValidationExpression = RegExp.Date;&lt;br /&gt;      DateValidator.ErrorMessage = ValidationMessages.Date;&lt;br /&gt;&lt;br /&gt;      TimeValidator.ValidationExpression = RegExp.Time;&lt;br /&gt;      TimeValidator.ErrorMessage = ValidationMessages.Time;&lt;br /&gt;&lt;br /&gt;      NumberValidator.ValidationExpression = RegExp.Number;&lt;br /&gt;      NumberValidator.ErrorMessage = ValidationMessages.Number;&lt;br /&gt;&lt;br /&gt;      DigitValidator.ValidationExpression = RegExp.Digit;&lt;br /&gt;      DigitValidator.ErrorMessage = ValidationMessages.Digit;&lt;br /&gt;&lt;br /&gt;      NonNegativeValidator.ValidationExpression = RegExp.NonNegative;&lt;br /&gt;      NonNegativeValidator.ErrorMessage = ValidationMessages.NonNegative;&lt;br /&gt;&lt;br /&gt;      UrlValidator.ValidationExpression = RegExp.Url;&lt;br /&gt;      UrlValidator.ErrorMessage = ValidationMessages.Url;&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;h2&gt;Screenshot&lt;/h2&gt;  &lt;p&gt;&lt;img alt="screenshot.jpg" src="http://www.codeproject.com/KB/aspnet/LengthValidation/screenshot.jpg" width="671" height="592" /&gt;&lt;/p&gt;  &lt;p&gt;Here the Url validator expression and message was need of my business requirement. If you have a different requirement then customize yours one.&lt;/p&gt;&lt;p&gt;&lt;a style="font-weight: bold;" href="http://www.sowkot.com/CodeProject/RegularExpression.zip"&gt;&lt;span&gt;&lt;span id="intelliTXT"&gt;&lt;span&gt;&lt;span id="intelliTXT"&gt;&lt;span id="intelliTXT"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&lt;span id="intelliTXT"&gt;&lt;span&gt;&lt;span id="intelliTXT"&gt;&lt;span id="intelliTXT"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:180%;"&gt;&lt;a style="font-weight: bold;" href="http://www.sowkot.com/CodeProject/RegularExpression.zip"&gt;Download&lt;/a&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;the complete source code.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-861650081033308264?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/861650081033308264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=861650081033308264' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/861650081033308264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/861650081033308264'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2008/08/common-validation-and-length-validation.html' title='Common Validation and Length Validation with Regular Expression in ASP.NET'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-5291666614259094555</id><published>2008-08-19T23:53:00.004+06:00</published><updated>2008-08-23T16:03:20.201+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Generating Unique Key(Finger Print) for a Computer for Licensing Purpose</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;a href="http://www.sowkot.com/CodeProject/FingerPrint.zip"&gt;Download&lt;/a&gt;&lt;/span&gt; the complete source code.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Introduction&lt;/h2&gt; &lt;p&gt;For licensing purpose according to me the best way and secure way is to  generate an unique key for client's machine and providing a corresponding  license key for that key. For this purpose you can take help of the unique id of  client's computer's motherboard, BIOS and processor's. When you get these IDs  you can generate any key of your preferable format.&lt;/p&gt; &lt;p&gt;Year ago I found a very handy and useful code in C# by searching net to get  these IDs. And its serving me perfectly so far. Thanks to the original author of  the code.&lt;/p&gt; &lt;p&gt;I added some additional code to generate a 128 bit key of a machine. The  output is a nice looking key in hexadecimal format (eg.  4876-8DB5-EE85-69D3-FE52-8CF7-395D-2EA9)&lt;/p&gt; &lt;h2&gt;Suggestions&lt;/h2&gt; &lt;p&gt;I have few suggestions on this regard. &lt;/p&gt; &lt;p&gt;*) Generate key from only Motherboard, Processor and BIOS. Since user  normally doesn't chagne these parts.&lt;/p&gt; &lt;p&gt;*) Don't use MAC ID, Graphics Card ID AND Disk ID. Since its very common to  change these devices.&lt;/p&gt; &lt;p&gt;*) It takes significant time to get IDs of devices. So make the finger print  generating fucntion static and save it in a static variable so that it generates  the key only for one time in the whole application. &lt;/p&gt; &lt;h2&gt;The Code&lt;/h2&gt; &lt;p&gt;Here is the class. The code in the region "Original Device ID Getting Code"  is from the original author.&lt;/p&gt;&lt;pre lang="cs"&gt;&lt;span class="code-keyword"&gt;&lt;/span&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Management;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Security.Cryptography;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Security;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; Security&lt;br /&gt;{&lt;br /&gt;&lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;/// Generates a 16 byte Unique Identification code of a computer&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;/// Example: 4876-8DB5-EE85-69D3-FE52-8CF7-395D-2EA9&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; FingerPrint&lt;br /&gt;{&lt;br /&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; fingerPrint = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Value()&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrEmpty(fingerPrint))&lt;br /&gt;     {&lt;br /&gt;         fingerPrint = GetHash(&lt;span class="str"&gt;"CPU &amp;gt;&amp;gt; "&lt;/span&gt; + cpuId() + &lt;span class="str"&gt;"\nBIOS &amp;gt;&amp;gt; "&lt;/span&gt; + biosId() + &lt;span class="str"&gt;"\nBASE &amp;gt;&amp;gt; "&lt;/span&gt; + baseId()&lt;br /&gt;                     &lt;span class="rem"&gt;//+"\nDISK &amp;gt;&amp;gt; "+ diskId() + "\nVIDEO &amp;gt;&amp;gt; " + videoId() +"\nMAC &amp;gt;&amp;gt; "+ macId()&lt;/span&gt;&lt;br /&gt;                              );&lt;br /&gt;     }&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; fingerPrint;&lt;br /&gt; }&lt;br /&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; GetHash(&lt;span class="kwrd"&gt;string&lt;/span&gt; s)&lt;br /&gt; {&lt;br /&gt;     MD5 sec = &lt;span class="kwrd"&gt;new&lt;/span&gt; MD5CryptoServiceProvider();&lt;br /&gt;     ASCIIEncoding enc = &lt;span class="kwrd"&gt;new&lt;/span&gt; ASCIIEncoding();&lt;br /&gt;     &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] bt = enc.GetBytes(s);&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; GetHexString(sec.ComputeHash(bt));&lt;br /&gt; }&lt;br /&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; GetHexString(&lt;span class="kwrd"&gt;byte&lt;/span&gt;[] bt)&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;string&lt;/span&gt; s = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;     &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; bt.Length; i++)&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;byte&lt;/span&gt; b = bt[i];&lt;br /&gt;         &lt;span class="kwrd"&gt;int&lt;/span&gt; n, n1, n2;&lt;br /&gt;         n = (&lt;span class="kwrd"&gt;int&lt;/span&gt;)b;&lt;br /&gt;         n1 = n &amp;amp; 15;&lt;br /&gt;         n2 = (n &amp;gt;&amp;gt; 4) &amp;amp; 15;&lt;br /&gt;         &lt;span class="kwrd"&gt;if&lt;/span&gt; (n2 &amp;gt; 9)&lt;br /&gt;             s += ((&lt;span class="kwrd"&gt;char&lt;/span&gt;)(n2 - 10 + (&lt;span class="kwrd"&gt;int&lt;/span&gt;)&lt;span class="str"&gt;'A'&lt;/span&gt;)).ToString();&lt;br /&gt;         &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;             s += n2.ToString();&lt;br /&gt;         &lt;span class="kwrd"&gt;if&lt;/span&gt; (n1 &amp;gt; 9)&lt;br /&gt;             s += ((&lt;span class="kwrd"&gt;char&lt;/span&gt;)(n1 - 10 + (&lt;span class="kwrd"&gt;int&lt;/span&gt;)&lt;span class="str"&gt;'A'&lt;/span&gt;)).ToString();&lt;br /&gt;         &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;             s += n1.ToString();&lt;br /&gt;         &lt;span class="kwrd"&gt;if&lt;/span&gt; ((i + 1) != bt.Length &amp;amp;&amp;amp; (i + 1) % 2 == 0) s += &lt;span class="str"&gt;"-"&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; s;&lt;br /&gt; }&lt;br /&gt; &lt;span class="preproc"&gt;#region&lt;/span&gt; Original Device ID Getting Code&lt;br /&gt; &lt;span class="rem"&gt;//Return a hardware identifier&lt;/span&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; identifier(&lt;span class="kwrd"&gt;string&lt;/span&gt; wmiClass, &lt;span class="kwrd"&gt;string&lt;/span&gt; wmiProperty, &lt;span class="kwrd"&gt;string&lt;/span&gt; wmiMustBeTrue)&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;string&lt;/span&gt; result = &lt;span class="str"&gt;""&lt;/span&gt;;&lt;br /&gt;     System.Management.ManagementClass mc = &lt;span class="kwrd"&gt;new&lt;/span&gt; System.Management.ManagementClass(wmiClass);&lt;br /&gt;     System.Management.ManagementObjectCollection moc = mc.GetInstances();&lt;br /&gt;     &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (System.Management.ManagementObject mo &lt;span class="kwrd"&gt;in&lt;/span&gt; moc)&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;if&lt;/span&gt; (mo[wmiMustBeTrue].ToString() == &lt;span class="str"&gt;"True"&lt;/span&gt;)&lt;br /&gt;         {&lt;br /&gt;             &lt;span class="rem"&gt;//Only get the first one&lt;/span&gt;&lt;br /&gt;             &lt;span class="kwrd"&gt;if&lt;/span&gt; (result == &lt;span class="str"&gt;""&lt;/span&gt;)&lt;br /&gt;             {&lt;br /&gt;                 &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;                 {&lt;br /&gt;                     result = mo[wmiProperty].ToString();&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;                 }&lt;br /&gt;                 &lt;span class="kwrd"&gt;catch&lt;/span&gt;&lt;br /&gt;                 {&lt;br /&gt;                 }&lt;br /&gt;             }&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; result;&lt;br /&gt; }&lt;br /&gt; &lt;span class="rem"&gt;//Return a hardware identifier&lt;/span&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; identifier(&lt;span class="kwrd"&gt;string&lt;/span&gt; wmiClass, &lt;span class="kwrd"&gt;string&lt;/span&gt; wmiProperty)&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;string&lt;/span&gt; result = &lt;span class="str"&gt;""&lt;/span&gt;;&lt;br /&gt;     System.Management.ManagementClass mc = &lt;span class="kwrd"&gt;new&lt;/span&gt; System.Management.ManagementClass(wmiClass);&lt;br /&gt;     System.Management.ManagementObjectCollection moc = mc.GetInstances();&lt;br /&gt;     &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (System.Management.ManagementObject mo &lt;span class="kwrd"&gt;in&lt;/span&gt; moc)&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="rem"&gt;//Only get the first one&lt;/span&gt;&lt;br /&gt;         &lt;span class="kwrd"&gt;if&lt;/span&gt; (result == &lt;span class="str"&gt;""&lt;/span&gt;)&lt;br /&gt;         {&lt;br /&gt;             &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;             {&lt;br /&gt;                 result = mo[wmiProperty].ToString();&lt;br /&gt;                 &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;             }&lt;br /&gt;             &lt;span class="kwrd"&gt;catch&lt;/span&gt;&lt;br /&gt;             {&lt;br /&gt;             }&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; result;&lt;br /&gt; }&lt;br /&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; cpuId()&lt;br /&gt; {&lt;br /&gt;     &lt;span class="rem"&gt;//Uses first CPU identifier available in order of preference&lt;/span&gt;&lt;br /&gt;     &lt;span class="rem"&gt;//Don't get all identifiers, as very time consuming&lt;/span&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;string&lt;/span&gt; retVal = identifier(&lt;span class="str"&gt;"Win32_Processor"&lt;/span&gt;, &lt;span class="str"&gt;"UniqueId"&lt;/span&gt;);&lt;br /&gt;     &lt;span class="kwrd"&gt;if&lt;/span&gt; (retVal == &lt;span class="str"&gt;""&lt;/span&gt;) &lt;span class="rem"&gt;//If no UniqueID, use ProcessorID&lt;/span&gt;&lt;br /&gt;     {&lt;br /&gt;         retVal = identifier(&lt;span class="str"&gt;"Win32_Processor"&lt;/span&gt;, &lt;span class="str"&gt;"ProcessorId"&lt;/span&gt;);&lt;br /&gt;         &lt;span class="kwrd"&gt;if&lt;/span&gt; (retVal == &lt;span class="str"&gt;""&lt;/span&gt;) &lt;span class="rem"&gt;//If no ProcessorId, use Name&lt;/span&gt;&lt;br /&gt;         {&lt;br /&gt;             retVal = identifier(&lt;span class="str"&gt;"Win32_Processor"&lt;/span&gt;, &lt;span class="str"&gt;"Name"&lt;/span&gt;);&lt;br /&gt;             &lt;span class="kwrd"&gt;if&lt;/span&gt; (retVal == &lt;span class="str"&gt;""&lt;/span&gt;) &lt;span class="rem"&gt;//If no Name, use Manufacturer&lt;/span&gt;&lt;br /&gt;             {&lt;br /&gt;                 retVal = identifier(&lt;span class="str"&gt;"Win32_Processor"&lt;/span&gt;, &lt;span class="str"&gt;"Manufacturer"&lt;/span&gt;);&lt;br /&gt;             }&lt;br /&gt;             &lt;span class="rem"&gt;//Add clock speed for extra security&lt;/span&gt;&lt;br /&gt;             retVal += identifier(&lt;span class="str"&gt;"Win32_Processor"&lt;/span&gt;, &lt;span class="str"&gt;"MaxClockSpeed"&lt;/span&gt;);&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; retVal;&lt;br /&gt; }&lt;br /&gt; &lt;span class="rem"&gt;//BIOS Identifier&lt;/span&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; biosId()&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; identifier(&lt;span class="str"&gt;"Win32_BIOS"&lt;/span&gt;, &lt;span class="str"&gt;"Manufacturer"&lt;/span&gt;)&lt;br /&gt;     + identifier(&lt;span class="str"&gt;"Win32_BIOS"&lt;/span&gt;, &lt;span class="str"&gt;"SMBIOSBIOSVersion"&lt;/span&gt;)&lt;br /&gt;     + identifier(&lt;span class="str"&gt;"Win32_BIOS"&lt;/span&gt;, &lt;span class="str"&gt;"IdentificationCode"&lt;/span&gt;)&lt;br /&gt;     + identifier(&lt;span class="str"&gt;"Win32_BIOS"&lt;/span&gt;, &lt;span class="str"&gt;"SerialNumber"&lt;/span&gt;)&lt;br /&gt;     + identifier(&lt;span class="str"&gt;"Win32_BIOS"&lt;/span&gt;, &lt;span class="str"&gt;"ReleaseDate"&lt;/span&gt;)&lt;br /&gt;     + identifier(&lt;span class="str"&gt;"Win32_BIOS"&lt;/span&gt;, &lt;span class="str"&gt;"Version"&lt;/span&gt;);&lt;br /&gt; }&lt;br /&gt; &lt;span class="rem"&gt;//Main physical hard drive ID&lt;/span&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; diskId()&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; identifier(&lt;span class="str"&gt;"Win32_DiskDrive"&lt;/span&gt;, &lt;span class="str"&gt;"Model"&lt;/span&gt;)&lt;br /&gt;     + identifier(&lt;span class="str"&gt;"Win32_DiskDrive"&lt;/span&gt;, &lt;span class="str"&gt;"Manufacturer"&lt;/span&gt;)&lt;br /&gt;     + identifier(&lt;span class="str"&gt;"Win32_DiskDrive"&lt;/span&gt;, &lt;span class="str"&gt;"Signature"&lt;/span&gt;)&lt;br /&gt;     + identifier(&lt;span class="str"&gt;"Win32_DiskDrive"&lt;/span&gt;, &lt;span class="str"&gt;"TotalHeads"&lt;/span&gt;);&lt;br /&gt; }&lt;br /&gt; &lt;span class="rem"&gt;//Motherboard ID&lt;/span&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; baseId()&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; identifier(&lt;span class="str"&gt;"Win32_BaseBoard"&lt;/span&gt;, &lt;span class="str"&gt;"Model"&lt;/span&gt;)&lt;br /&gt;     + identifier(&lt;span class="str"&gt;"Win32_BaseBoard"&lt;/span&gt;, &lt;span class="str"&gt;"Manufacturer"&lt;/span&gt;)&lt;br /&gt;     + identifier(&lt;span class="str"&gt;"Win32_BaseBoard"&lt;/span&gt;, &lt;span class="str"&gt;"Name"&lt;/span&gt;)&lt;br /&gt;     + identifier(&lt;span class="str"&gt;"Win32_BaseBoard"&lt;/span&gt;, &lt;span class="str"&gt;"SerialNumber"&lt;/span&gt;);&lt;br /&gt; }&lt;br /&gt; &lt;span class="rem"&gt;//Primary video controller ID&lt;/span&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; videoId()&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; identifier(&lt;span class="str"&gt;"Win32_VideoController"&lt;/span&gt;, &lt;span class="str"&gt;"DriverVersion"&lt;/span&gt;)&lt;br /&gt;     + identifier(&lt;span class="str"&gt;"Win32_VideoController"&lt;/span&gt;, &lt;span class="str"&gt;"Name"&lt;/span&gt;);&lt;br /&gt; }&lt;br /&gt; &lt;span class="rem"&gt;//First enabled network card ID&lt;/span&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; macId()&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; identifier(&lt;span class="str"&gt;"Win32_NetworkAdapterConfiguration"&lt;/span&gt;, &lt;span class="str"&gt;"MACAddress"&lt;/span&gt;, &lt;span class="str"&gt;"IPEnabled"&lt;/span&gt;);&lt;br /&gt; }&lt;br /&gt; &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt; &lt;h2&gt;Upcoming Code&lt;/h2&gt; &lt;p&gt;Later I'll show how I generated the license key from the unique machine key.  The license key contains many information like the &lt;strong&gt;Product Name, License  Start Date, End Date &lt;/strong&gt;and the &lt;strong&gt;Key.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:180%;"&gt;&lt;a style="font-weight: bold;" href="http://www.sowkot.com/CodeProject/FingerPrint.zip"&gt;Download&lt;/a&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; the complete source code.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-5291666614259094555?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/5291666614259094555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=5291666614259094555' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/5291666614259094555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/5291666614259094555'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2008/08/generating-unique-keyfinger-print-for.html' title='Generating Unique Key(Finger Print) for a Computer for Licensing Purpose'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-679744651523088234</id><published>2008-08-19T15:38:00.003+06:00</published><updated>2008-08-21T03:53:03.824+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>IntelliJ IDEA 8 Released!</title><content type='html'>&lt;p&gt;Hurray!  At last IntelliJ &lt;span style="font-weight: bold;"&gt;IDEA 8.0&lt;/span&gt; has been released. I was waiting for a long time for it. For&lt;span style="font-weight: bold;"&gt; J2EE developers&lt;/span&gt; there are some new fruits. I was specially waiting for the &lt;span style="font-weight: bold;"&gt;FreeMarker(FTL)&lt;/span&gt; plugin. In &lt;span style="font-weight: bold;"&gt;IDEA 8.0&lt;/span&gt; it has been incorporated.&lt;/p&gt;&lt;p&gt;Here is the link and the original post:&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.jetbrains.com/idea/2008/08/intellij-idea-8-milestone-1-is-here/"&gt;http://blogs.jetbrains.com/idea/2008/08/intellij-idea-8-milestone-1-is-here/&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;It is really a lucky concourse of circumstances that today, 8/8/08, we’re releasing IntelliJ IDEA 8 Milestone 1!&lt;br /&gt;&lt;br /&gt;This release is a &lt;em&gt;preview &lt;/em&gt;of IntelliJ IDEA 8, which is due out by the end of Fall 2008.&lt;br /&gt;Milestone 1 demonstrates greatly extended support for modern technologies, frameworks and languages, plus noticeably better IDE performance.&lt;br /&gt;Here’s the list of major new features that are already available to try out:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;JBoss Seam Integration&lt;/li&gt;&lt;li&gt;Javascript/Flex Debugger&lt;/li&gt;&lt;li&gt;Greatly improved performance&lt;/li&gt;&lt;li&gt;Spring 2.5&lt;/li&gt;&lt;li&gt;FreeMarker, Velocity, GWT 1.5&lt;/li&gt;&lt;li&gt;REST WebServices support&lt;/li&gt;&lt;li&gt;Struts 2&lt;/li&gt;&lt;li&gt;Multi-dialect SQL Console&lt;/li&gt;&lt;li&gt;New Java refactorings&lt;/li&gt;&lt;li&gt;Even smarter code completion&lt;/li&gt;&lt;li&gt;Numerous new code inspections&lt;/li&gt;&lt;li&gt;and many more&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://www.jetbrains.com/idea/nextversion/index.html"&gt;Read&lt;/a&gt; more about all the new features, &lt;a href="http://www.jetbrains.com/idea/training/demos.html#idea8"&gt;watch&lt;/a&gt; them in live action, and  &lt;a href="http://www.jetbrains.com/idea/nextversion/index.html"&gt;get&lt;/a&gt; your copy of the fresh release to try it all for yourself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-679744651523088234?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/679744651523088234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=679744651523088234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/679744651523088234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/679744651523088234'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2008/08/intellij-idea-8-released.html' title='IntelliJ IDEA 8 Released!'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-1108033417032656720</id><published>2008-08-12T09:42:00.008+06:00</published><updated>2008-08-23T16:08:06.663+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>How to easily use jQuery DatePicker in ASP.NET</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sowkot.com/CodeProject/JQueryDatePickerExmple.zip"&gt;&lt;span style="font-size:180%;"&gt;Download&lt;/span&gt;&lt;/a&gt; the complete source code.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jquery.com/"&gt;&lt;span id="intelliTXT"&gt;&lt;h2&gt;Introduction&lt;/h2&gt;  &lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://www.jquery.com/"&gt;JQuery&lt;/a&gt; is an excellent javascript library to build modern user interactive website.&lt;br /&gt;Its very easy to use jQuery in any web application. jQuery has a strong set of javascript UI like datePicker, Tab Panel etc.&lt;br /&gt;&lt;br /&gt;I've written a small Utility class to use jQuery datePicker in ASP.NET and publishing it in this post.&lt;br /&gt;Its very simple to use this class. You just need to pass the Page object and TextBox of your page. &lt;p&gt;&lt;/p&gt;&lt;h2&gt;Screen Shot&lt;/h2&gt;&lt;h2&gt; &lt;img alt="ScreenShot.jpg" src="http://www.codeproject.com/KB/aspnet/JQueryDatePicker/ScreenShot.jpg" width="414" height="396" /&gt;&lt;/h2&gt;  &lt;h2&gt;Using the code&lt;/h2&gt;&lt;br /&gt;See the class:&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.WebControls;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; Util&lt;br /&gt;{&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; JQueryUtils&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; RegisterTextBoxForDatePicker(Page page, &lt;span class="kwrd"&gt;params&lt;/span&gt; TextBox[] textBoxes)&lt;br /&gt;     {&lt;br /&gt;         RegisterTextBoxForDatePicker(page, &lt;span class="str"&gt;"dd-mm-yy"&lt;/span&gt;, textBoxes);&lt;br /&gt;     }&lt;br /&gt;     &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; RegisterTextBoxForDatePicker(Page page, &lt;span class="kwrd"&gt;string&lt;/span&gt; format, &lt;span class="kwrd"&gt;params&lt;/span&gt; TextBox[] textBoxes)&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;bool&lt;/span&gt; allTextBoxNull = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;         &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (TextBox textBox &lt;span class="kwrd"&gt;in&lt;/span&gt; textBoxes)&lt;br /&gt;         {&lt;br /&gt;             &lt;span class="kwrd"&gt;if&lt;/span&gt; (textBox != &lt;span class="kwrd"&gt;null&lt;/span&gt;) allTextBoxNull = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;         }&lt;br /&gt;         &lt;span class="kwrd"&gt;if&lt;/span&gt; (allTextBoxNull) &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;br /&gt;         page.ClientScript.RegisterClientScriptInclude(page.GetType(), &lt;span class="str"&gt;"jquery"&lt;/span&gt;, &lt;span class="str"&gt;"JQuery/jquery.js"&lt;/span&gt;);&lt;br /&gt;         page.ClientScript.RegisterClientScriptInclude(page.GetType(), &lt;span class="str"&gt;"jquery.ui.all"&lt;/span&gt;, &lt;span class="str"&gt;"JQuery/ui/jquery.ui.all.js"&lt;/span&gt;);&lt;br /&gt;         page.ClientScript.RegisterClientScriptBlock(page.GetType(), &lt;span class="str"&gt;"datepickerCss"&lt;/span&gt;, &lt;span class="str"&gt;"&amp;lt;link  rel=\"stylesheet\" href=\"JQuery/themes/flora/flora.datepicker.css\" /&amp;gt;"&lt;/span&gt;);&lt;br /&gt;         StringBuilder sb = &lt;span class="kwrd"&gt;new&lt;/span&gt; StringBuilder();&lt;br /&gt;         sb.Append(&lt;span class="str"&gt;"$(document).ready(function() {"&lt;/span&gt;);&lt;br /&gt;         &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (TextBox textBox &lt;span class="kwrd"&gt;in&lt;/span&gt; textBoxes)&lt;br /&gt;         {&lt;br /&gt;             &lt;span class="kwrd"&gt;if&lt;/span&gt; (textBox != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;             {&lt;br /&gt;                 sb.Append(&lt;span class="str"&gt;"$('#"&lt;/span&gt; + textBox.ClientID + &lt;span class="str"&gt;"').datepicker({dateFormat: \""&lt;/span&gt; + format + &lt;span class="str"&gt;"\"});"&lt;/span&gt;);&lt;br /&gt;             }&lt;br /&gt;         }&lt;br /&gt;         sb.Append(&lt;span class="str"&gt;"});"&lt;/span&gt;);&lt;br /&gt;         page.ClientScript.RegisterClientScriptBlock(page.GetType(), &lt;span class="str"&gt;"jQueryScript"&lt;/span&gt;, sb.ToString(), &lt;span class="kwrd"&gt;true&lt;/span&gt;);&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The usage is very simple. If you have a TextBox named MyDateTextBox in your .aspx page then you have to write following line in the Page_Load event to attach the TextBox with jQuery.&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;   Util.JQueryUtils.RegisterTextBoxForDatePicker(Page, MyDateTextBox);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The second parameter takes variable arguments. So you can pass any number of TextBox to the function. There is also an overloaded function to take your desired date &lt;a href="http://docs.jquery.com/UI/Datepicker/%24.datepicker.formatDate#formatdatesettings"&gt;format&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You must download the jQuery library from jQuery UI site &lt;a href="http://ui.jquery.com/download"&gt;http://ui.jquery.com/download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can only download the files for datePicker.  But remember to rename the .js files in My JQueryUtils class. You can see I've written the jQuery core library js file name, .ui.all.js file and the .css file for datePicker.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.sowkot.com/CodeProject/JQueryDatePickerExmple.zip"&gt;&lt;span style="font-size:180%;"&gt;Download&lt;/span&gt;&lt;/a&gt; the complete source code.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-1108033417032656720?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/1108033417032656720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=1108033417032656720' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/1108033417032656720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/1108033417032656720'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2008/08/jquery-is-excellent-javascript-library.html' title='How to easily use jQuery DatePicker in ASP.NET'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-1969867062173432833</id><published>2008-06-07T13:26:00.011+06:00</published><updated>2008-08-21T03:57:41.660+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips and Tricks'/><title type='text'>Properly display paragraphs in browser</title><content type='html'>&lt;p&gt;When we write something in several paragraphs in textarea of browser then it shows as it is in teaxtarea. But when we want to show the text in read only mode then the paragraphs loose their identity. I mean you can not separate the paragraphs from each other. So we need to replace the newlines of the text by&lt;br /&gt;.&lt;/p&gt; &lt;p&gt;I have written a simple function named ‘keepWhiteSpace’ to do this conversion and I used it in many of Therap's forms to display the saved text as it is. Usage is very simple.&lt;/p&gt; &lt;p&gt;For example, if you want to show your text in a cell then write as follows:&lt;/p&gt; &lt;pre&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;pre class="csharpcode"&gt;${therap.keepWhiteSpace(myText)}&lt;br /&gt;&lt;/pre&gt;&lt;/pre&gt; &lt;p&gt;The implementation is very simple.&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;#function keepWhiteSpace value&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;#return value?replace("\r\n","&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;br&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;")?replace("\n\r","&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;br&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;")?replace("\r","&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;br&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;")?replace("\n","&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;br&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;")&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;#function&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Ftl(Free Marker Tag Library) users can  use it without rewriting any new one. JSP users need to write a tag using the logic.&lt;/p&gt; &lt;p&gt;Note that I haven’t replaced spaces by  &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-1969867062173432833?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/1969867062173432833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=1969867062173432833' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/1969867062173432833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/1969867062173432833'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2008/06/properly-display-paragraphs-in-browser.html' title='Properly display paragraphs in browser'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-2414017714379923760</id><published>2008-06-05T13:57:00.000+06:00</published><updated>2008-06-05T13:58:17.759+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Misc'/><title type='text'>The word ‘Mother’ in different languages</title><content type='html'>&lt;p&gt;Definitely the first word a child learns after birth is the word ‘Mother’ in his own language. Its also the most favorite word of every human being. Surprisingly almost in every language mother is initialed by the letter ‘m’. Or at least contains ‘m’ in the word. This is really amazing. What may be the cause? May be its easy to produce sounds from lips for a child. Or they start creating sound like ‘mmmm….’ and ultimately they learn the word mother.&lt;/p&gt; &lt;p&gt;Here is a big list of translation.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.mothersdaycelebration.com/mother-in-different-languages.html"&gt;http://www.mothersdaycelebration.com/mother-in-different-languages.html&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-2414017714379923760?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/2414017714379923760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=2414017714379923760' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/2414017714379923760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/2414017714379923760'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2008/06/word-mother-in-different-languages.html' title='The word ‘Mother’ in different languages'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-8930798095543750693</id><published>2008-05-26T17:15:00.003+06:00</published><updated>2008-05-26T17:23:33.861+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Insertion problem with ASP.NET AccessDataSource</title><content type='html'>If you try to use ASP.NET AccessDataSource then you may face a problem while inserting rows to database through the dataSource. It happens when you have an auto increment identity column. When you drag &amp;amp; drop an AccessDataSource Visual Studio.NET generates the SELECT, INSERT, DELETE, UPDATE Command for you as your chosen option. But you will get exception message when you try to save a new row. The cause is the generated insert query is wrong. Actually VS.NET don't consider the identity column and try to insert value in the column.&lt;br /&gt;&lt;br /&gt;The work around is just remove the ID column from the insert command and remove a parameter('?') from the query parameter list. Also remove the ID column info from the insert command parameter collection.&lt;br /&gt;&lt;br /&gt;Then you will find its working fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-8930798095543750693?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/8930798095543750693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=8930798095543750693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/8930798095543750693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/8930798095543750693'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2008/05/insertion-problem-with-aspnet.html' title='Insertion problem with ASP.NET AccessDataSource'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-8565379488794355457</id><published>2008-05-26T17:13:00.000+06:00</published><updated>2008-05-26T17:14:55.116+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Misc'/><title type='text'>Testing Terminology</title><content type='html'>&lt;p&gt;I think every developer should be familiar with some software testing terminologies, especially different methods of testing. You may have heard about White Box Testing, Black Box Testing, Unit Testing, Regression Testing, Integration Testing etc. If you don’t want to spend much time after this but feeling interest to know about then visit the following link. Its a very simple and short article.&lt;/p&gt; &lt;p&gt;&lt;a href="http://testingsolution.blogspot.com/2006/12/what-is-use-of-different-kind-of.html"&gt;http://testingsolution.blogspot.com/2006/12/what-is-use-of-different-kind-of.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If you wanna dig more then search google.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-8565379488794355457?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/8565379488794355457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=8565379488794355457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/8565379488794355457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/8565379488794355457'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2008/05/testing-terminology.html' title='Testing Terminology'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-742389963127601951</id><published>2008-05-15T14:56:00.000+06:00</published><updated>2008-05-15T15:06:52.458+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Mounting NTFS partition in Debian</title><content type='html'>&lt;div class="entry"&gt;      &lt;p&gt;Currently Debian doesn’t support mounting NTFS partition in read/write mode. You can only mount in read only mode.&lt;/p&gt; &lt;p&gt;To mount in read/write mode you have to install third party package/driver.  NTFS-3G is the favorite one.&lt;/p&gt; &lt;p&gt;Here is the detail info.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.ntfs-3g.org/index.html"&gt;http://www.ntfs-3g.org/index.html&lt;/a&gt;&lt;/p&gt;     &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-742389963127601951?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/742389963127601951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=742389963127601951' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/742389963127601951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/742389963127601951'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2008/05/mounting-ntfs-partition-in-debian.html' title='Mounting NTFS partition in Debian'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-5881407862863836302</id><published>2008-02-07T14:57:00.003+06:00</published><updated>2008-08-21T04:01:40.171+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>How to show a pdf in landscape mode using iText API in Java</title><content type='html'>&lt;p&gt;This post may help the pdf developers who use iText. I mean who use the &lt;strong&gt;com.lowagie.text&lt;/strong&gt; and its sister packages.&lt;/p&gt; &lt;p&gt;I guess you (iText users) are familiar with  the class&lt;br /&gt;&lt;strong&gt;com.lowagie.text.Document &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;We have to tell this class the page size of the pdf in the following way.&lt;br /&gt;&lt;/p&gt; &lt;pre&gt;&lt;pre class="csharpcode"&gt;document.setPageSize(PageSize.A4));   // suppose document &lt;span class="kwrd"&gt;is&lt;/span&gt; the instance of Document&lt;/pre&gt;&lt;/pre&gt; &lt;p&gt;But you will not find the word ‘Landscape’ anywhere in the context. So, how can you tell it to generate a pdf of landscape page size? Yes there is a simple but uncommon way to specify this.&lt;br /&gt;See the solution below:&lt;br /&gt;&lt;/p&gt; &lt;pre&gt;&lt;pre class="csharpcode"&gt;document.setPageSize(PageSize.A4.rotate());&lt;/pre&gt;&lt;/pre&gt; &lt;p&gt;Actually PageSize.A4 is a static variable of type &lt;strong&gt;com.lowagie.text.Rectangle&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;So by rotating it you are getting the landscape size of A4 page.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-5881407862863836302?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/5881407862863836302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=5881407862863836302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/5881407862863836302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/5881407862863836302'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2008/02/how-to-show-pdf-in-landscape-mode-using.html' title='How to show a pdf in landscape mode using iText API in Java'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-7051815333834104773</id><published>2008-01-16T16:02:00.001+06:00</published><updated>2008-08-21T04:03:19.349+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>A simple method to compare versions</title><content type='html'>&lt;p&gt;Sometimes we may need to compare two versions to know which one is newer and which one is older or whether both of those are same versions. Let me explain. Suppose you have two versions in hand as String “7.2.1″ and “7.1.1″. Now you wanna know which one is the later version. At the very first sight you may think that simple string comparison will give the correct decision. But unfortunately it won’t work correctly always. Think about this input : “10.0.1″ and “9.5.2″. String comparison will return the second one as latest version. But you expect the first one. So definitely we should change the algorithm.&lt;/p&gt; A very simple algorithm is to split the input string by “.” and compare individual components. It guarantees you the correct output. Here is my implementation of the method. I have applied Unit Testing (www.junit.org , www.nunit.org) on it and it passes all possible test cases. You can use it without any doubt and it works for any length of versions.&lt;br /&gt;&lt;br /&gt;Here is the implementation. Same code will run both in Java and C#.NET&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="rem"&gt;/* This method compares two given versions and returns 0,1 or -1&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;       It returns 0 if both versions are equal,&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;        1 if first version is newer than second one,&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;       -1 if first version is older than the second one.&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;       Example:&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;        compareVersion("7.1","7.1") will return 0&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;        compareVersion("7.1.1","7.1.1") will return 0&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;        compareVersion("7.1","7.1.1") will return -1&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;        compareVersion("7.1","7.2") will return -1&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;        compareVersion("7.1","7.2.2") will return -1&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;        compareVersion("7.2","7.1") will return 1&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;        compareVersion("7.2.0","7.1") will return 1&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;        compareVersion("7.2.0","7.2") will return 0&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;        compareVersion("7.abc.0","7.2") will throw exception&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;    */&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; compareVersion(String v1, String v2) throws Exception {&lt;br /&gt;        String[] v1Tokens = v1.split(&lt;span class="str"&gt;"\\."&lt;/span&gt;);  &lt;span class="rem"&gt;// for C#: String[] v1Tokens = v1.split(".");&lt;/span&gt;&lt;br /&gt;        String[] v2Tokens = v2.split(&lt;span class="str"&gt;"\\."&lt;/span&gt;);  &lt;span class="rem"&gt;// for C#: String[] v2Tokens = v2.split("."); &lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;int&lt;/span&gt; maxLen;&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (v1Tokens.length &amp;gt; v2Tokens.length)&lt;br /&gt;            maxLen = v1Tokens.length;&lt;br /&gt;        &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;            maxLen = v2Tokens.length;&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; maxLen; i++) {&lt;br /&gt;            &lt;span class="kwrd"&gt;int&lt;/span&gt; n1, n2;&lt;br /&gt;&lt;br /&gt;            n1 = n2 = 0;&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt; {&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (i &amp;lt; v1Tokens.length)&lt;br /&gt;                    n1 = Integer.parseInt(v1Tokens[i]);&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (n1 &amp;lt; 0)&lt;br /&gt;                    &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Exception(v1 + &lt;span class="str"&gt;" is not a valid version."&lt;/span&gt;);&lt;br /&gt;            } &lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception ex) {&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Exception(v1 + &lt;span class="str"&gt;" is not a valid version."&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt; {&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (i &amp;lt; v2Tokens.length)&lt;br /&gt;                    n2 = Integer.parseInt(v2Tokens[i]);&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (n2 &amp;lt; 0)&lt;br /&gt;                    &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Exception(v2 + &lt;span class="str"&gt;" is not a valid version."&lt;/span&gt;);&lt;br /&gt;            } &lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception ex) {&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Exception(v2 + &lt;span class="str"&gt;" is not a valid version."&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (n1 &amp;gt; n2)&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; 1;&lt;br /&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; (n1 &amp;lt; n2)&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; -1;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; 0;&lt;br /&gt;    }&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-7051815333834104773?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/7051815333834104773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=7051815333834104773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/7051815333834104773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/7051815333834104773'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2008/01/simple-method-to-compare-versions.html' title='A simple method to compare versions'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-1849319568925792382</id><published>2007-09-12T12:07:00.001+06:00</published><updated>2008-05-15T15:12:43.114+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips and Tricks'/><title type='text'>Printing webpages from browsers</title><content type='html'>&lt;div class="entry"&gt;      &lt;p&gt;Every browser supports displaying print preview and printing of webpages. Different browsers follow different strategy. You can print the content of the whole webpage from Mozilla Firefox and IE 7.0 but from IE 6.0/5.5 you sometimes can not. When you see the print preview of a page from IE 7.0 and Firefox and you click zoom in or out then the content of the page is zoomed,not the page. So you can fit the whole content in a page. For example suppose when you see the print preview of a webpage it shows your webpage is of 7 pages(paper). If you zoom in then the page count will increase and if you zoom out then it will decrease. So you can print any webpage as your choice.&lt;/p&gt; &lt;p&gt;But in IE 6.0 the page content is not zoomed rather the page is zoomed. So you will see that in the right side of the page your page content is truncated and you have no way to print it from the browser. There is one simple way to print it. Just copy the content of the whole webpage in MS Word and then print it. The content is truncated when you use frames or tables in your webpage.&lt;/p&gt; &lt;p&gt;visit:&lt;/p&gt; &lt;p&gt;&lt;a href="http://support.microsoft.com/kb/260642/en-us?spid=2073&amp;sid=72"&gt;http://support.microsoft.com/kb/260642/en-us?spid=2073&amp;amp;sid=72&lt;/a&gt;&lt;/p&gt;     &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-1849319568925792382?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/1849319568925792382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=1849319568925792382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/1849319568925792382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/1849319568925792382'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2007/09/printing-webpages-from-browsers.html' title='Printing webpages from browsers'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-255454757016058088</id><published>2007-09-12T10:24:00.000+06:00</published><updated>2008-05-15T15:10:23.745+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Information'/><title type='text'>Do you wanna see your SSC/HSC result?</title><content type='html'>&lt;p&gt;If you wanna see your SSC/HSC result in the web just visit the following link.&lt;/p&gt; &lt;p&gt;&lt;a href="http://site.educationboard.gov.bd/results_db/index.php"&gt;http://site.educationboard.gov.bd/results_db/index.php&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Just enter your passing year,board and roll then you will get the result.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-255454757016058088?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/255454757016058088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=255454757016058088' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/255454757016058088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/255454757016058088'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2007/09/do-you-wanna-see-your-sschsc-result.html' title='Do you wanna see your SSC/HSC result?'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-7965882263731501711</id><published>2007-08-19T17:05:00.000+06:00</published><updated>2008-05-15T15:14:15.505+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='My Thought'/><title type='text'>How solving ACM problems is helpful to develop quality software</title><content type='html'>&lt;p&gt;Developing quality software is a big challenge for a software company. A software will be more quality-full if it has less bugs and high performance. But reducing bugs and improving performance is more challenging than developing the software. Here I will try to explain how solving ACM problems can be related to developing software.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    When we take part in a programming contest we are given some problems to solve as part of the contest. Suppose we have decided to solve problem 'A' of the problem set. At first we go through the problem description very carefully. This is like understanding of the spec of a software. Then we think deeply and try to find out the algorithm to solve the problem which is like determining and planning the strategy to develop the software. After finding an algorithm to solve the problem we just code it and see whether the given sample input output of the problem is satisfied by our program. This is like developing the software and testing whether our desired output is achieved form the software.But we get upset when we submit the solution to the judge of the contest and get the result like "Wrong Answer" or "Time Limit Exceeded" or "Runtime Error" etc.&lt;/p&gt;&lt;p&gt;    But what's wrong with our program?? We got the sample output absolutely correct after feeding the sample input to our program. Is there anything wrong with our code? Hmmm this is like getting bugs of the software. So, we should think deeply now whats wrong with our code. Then after several&lt;br /&gt;modifications and submissions of the code we get the msg "Aceepted" from the judge. It means our code is 100% bugfree :) &lt;/p&gt;&lt;p&gt;    Actually to get a program accepted we have to think very deeply and vastly in a realtime contest. While participating in a contest I saw many times that only for a single testcase my program did not get acceptance. Usually this is called special case in the problem solvers community. In a word we can say that who solves ACM problems have to think in a vast view about a problem and this fact helps him in a real-life  software development. While developing  a software if a programmer thinks in a very clever way about the requirements and different types of bugs may occur or any kind of security issues of the software then the software will be more bugless. And to improve performance of a software the underlying algorithm should be improved and most of the ACM problem solvers are conscious about improving performance of their algorithm which can be related to improving performance of a software. &lt;/p&gt;&lt;p&gt;    Actually solving problems improve the vastness of thinking of a programmer. It gives a new dimension to his programming skill. &lt;/p&gt;&lt;p&gt;    So far I have seen giant companies like Microsoft,Google hire ACM world finalists most of the  time even before the completion of their graduation. But why?  Because they know to develop a quality  software of innovative idea  ACM programmers are the best choice.&lt;/p&gt;&lt;p&gt;    But there is a little bit problem with most of the ACM programmers. Throughout their student life  they only learn C/C++ or at best Java and I observed they feel very less interest about professional software development. They only like to solve problems. If you ask them whats your favorite language they will reply you "C/C++". But if we grab these programmers and train them with professional software development tools and tactics then definitely we can build better software. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-7965882263731501711?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/7965882263731501711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=7965882263731501711' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/7965882263731501711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/7965882263731501711'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2007/08/how-solving-acm-problems-is-helpful-to.html' title='How solving ACM problems is helpful to develop quality software'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-2508869924698947080</id><published>2007-08-19T16:47:00.002+06:00</published><updated>2008-08-21T04:06:24.496+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Generating Excel using POI in Java</title><content type='html'>&lt;div class="entry"&gt;May be you know excel files can be generated from Java by using an API  POI.&lt;br /&gt;( to know about POI visit    &lt;a href="http://poi.apache.org/"&gt;http://poi.apache.org/&lt;/a&gt; )&lt;br /&gt;&lt;p&gt;When I was using POI to generate excel file I saw a little problem after opening the generated excel file. Suppose I have to display the following text in a cell.&lt;/p&gt;  &lt;p&gt;User name: John&lt;br /&gt;Title : Programmer&lt;/p&gt; &lt;p&gt;You see there is a line  break between the two lines. That means you have to write “\n” in the code. But when I opened the generated excel I found the two lines were displayed in a single line and there is a garbage box like [] in place of the new line.&lt;/p&gt; &lt;p&gt;But I expected two lines . So what the mistake I did? Can you guess?&lt;/p&gt; &lt;p&gt;Oh shit! I didn’t set the WrapText property of the cellStyle of the Cell.&lt;/p&gt; &lt;p&gt;So, keep in mind to write this &lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;style.setWrapText(&lt;span class="kwrd"&gt;true&lt;/span&gt;);&lt;/pre&gt; (if the name of the cellStyle of the cell is ’style’.) if your text contains multiple lines.&lt;br /&gt;&lt;p&gt;&lt;/p&gt; &lt;p&gt;One more point I observed this problem in MS Office , not in Linux’s Open Office.  &lt;img src="http://korell.therapbd.com/blogs/sowkot/wp-includes/images/smilies/icon_smile.gif" alt=":-)" class="wp-smiley" /&gt;&lt;/p&gt;     &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-2508869924698947080?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/2508869924698947080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=2508869924698947080' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/2508869924698947080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/2508869924698947080'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2007/08/generating-excel-using-poi-in-java.html' title='Generating Excel using POI in Java'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-6400751907996356784</id><published>2007-08-17T16:57:00.002+06:00</published><updated>2008-08-21T04:09:02.994+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>An interesting bug of DataGrid of .NET</title><content type='html'>When I was working at Uniqa S&amp;amp;S Ltd. I got a very interesting bug of .NET datagrid.&lt;br /&gt;Suppose you have bound a Dataview to a Datagrid, then what do u expect?&lt;br /&gt;You expect that the changes that you make to ur DataView will be reflected to the DataGrid immediately. But sometimes it doesn't and it will really make u tensed. But how?? Ok, let me expalin.&lt;br /&gt;To bind a DataView to a DataGrid you just write the following lines of code.&lt;br /&gt;&lt;pre class="csharpcode"&gt;DataGrid dg;&lt;br /&gt;DataView dv;&lt;br /&gt;.................&lt;br /&gt;................&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;dg.DataSource = dv;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;But sometimes when insert rows in the DataView or make any changes you don't see the reflection in the DataGrid. But when this scenario occurs?&lt;br /&gt;I observed this happens when you bind more than a ComboBox or a DateTimePicker with any column of the DataView's Table.&lt;br /&gt;But I found a solution of this disgusting problem.&lt;br /&gt;Just write following lines after making change to the DataView.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;pre class="csharpcode"&gt;dg.DataSource = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;dg.DataSource = dv&lt;/pre&gt;&lt;/span&gt;Then you will see the reflection immediately.&lt;br /&gt;&lt;br /&gt;But this is a funny solution. Because the DataSource of the dg was dv from the very beginning and still it is. But to get the reflection you have to change the datasource of the dg and again assign to ur dv. Null is a better choice here.&lt;br /&gt;&lt;br /&gt;And the interesting fact is that MS hasn't solve this bug yet in .NET2.0&lt;br /&gt;DataGridView of .NET2.0 has still the same problem.&lt;br /&gt;(Note: I observed this phenomena in desktop development and I am not sure about Web)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-6400751907996356784?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/6400751907996356784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=6400751907996356784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/6400751907996356784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/6400751907996356784'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2007/08/interesting-bug-of-datagrid-of-net.html' title='An interesting bug of DataGrid of .NET'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-1493571455577266168</id><published>2007-08-06T18:13:00.000+06:00</published><updated>2008-05-15T15:08:47.297+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Autocomplete mode of ComboBox in .NET2.0</title><content type='html'>Today I wanna discuss about a new feature of .NET2.0 that was not in .NET1.1&lt;br /&gt;Many times we need the users of a software to give the facility of  auto completion and prompting of text when writing.&lt;br /&gt;In .NET2.0  ComboBox and TextBox has the facility.&lt;br /&gt;Just set the Autocomplete  property to any of the following&lt;br /&gt;{Suggest,Append,SuggestAndAppend}&lt;br /&gt;And the Autocomplete DataSource to any one of the following&lt;br /&gt;{ListItem,CustomDataSource,.......}&lt;br /&gt;&lt;br /&gt;Then you will see the effect after running the application.&lt;br /&gt;But there is not a facility that Microsoft did not provide. There is no option to provide the Font of the ListItems that is prompted when autocomplete is in action. But this is really very important. Hope MS will provide this facility in the next updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-1493571455577266168?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/1493571455577266168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=1493571455577266168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/1493571455577266168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/1493571455577266168'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2007/08/autocomplete-mode-of-combobox-in-net20.html' title='Autocomplete mode of ComboBox in .NET2.0'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-6497773701933302655</id><published>2007-06-10T12:15:00.000+06:00</published><updated>2008-05-15T15:08:27.688+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Misc'/><title type='text'>At last I have completed my Graduation!</title><content type='html'>Today our result of B.S.C. Engineering final exam has been published and I have got my result few minutes ago. Wao! I have passed successfully.&lt;br /&gt;Its a wonderful feeling. From now I am a Graduate, an Engineer!&lt;br /&gt;Today my dream has come true. At first I gave the news to my mom who always prays for me from the core of her heart and then to my father who is my mentor, my guru. I think I have come to this position today cause of my mother's blessings and my father's teaching.&lt;br /&gt;No more today....I am very excited now....and will write very soon.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-6497773701933302655?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/6497773701933302655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=6497773701933302655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/6497773701933302655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/6497773701933302655'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2007/06/at-last-i-have-completed-my-graduation.html' title='At last I have completed my Graduation!'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-851935055967102006</id><published>2007-06-09T00:57:00.001+06:00</published><updated>2008-05-15T15:08:27.689+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Misc'/><title type='text'>Therap Family Dinner</title><content type='html'>Today (8-Jun-07) I attended the Therap Family Dinner at Spectra Convention Centre in Gulshan.&lt;br /&gt;It was a dinner from Therap(BD)  for the family member of Therap's employee. Our CEO Mr. Richard Robin gave his speech and presented what actually Therap do and what we do in Therap.&lt;br /&gt;We have some wonderful moments there. Masum vai,Sajjad vai,Mozammel vai,Sajjadul Hakim vai and many others from us expressed their feelings about Therap and what we do in Therap. Above 200  people among us and our family members  were present there. After all the presentations we had an excellent dinner :-).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-851935055967102006?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/851935055967102006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=851935055967102006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/851935055967102006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/851935055967102006'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2007/06/therap-family-dinner.html' title='Therap Family Dinner'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944317467906119023.post-7818168423263740039</id><published>2007-06-07T10:51:00.000+06:00</published><updated>2008-05-15T15:08:27.690+06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Misc'/><title type='text'>Creation of my first blog site</title><content type='html'>Today I have created my first blog site.&lt;br /&gt;May be its too late to create one.&lt;br /&gt;I should have created it before.&lt;br /&gt;But I was too busy with my study and job that I could not do it.&lt;br /&gt;Now I am only job holder.&lt;br /&gt;No academic pressure, no classtests and no exams!&lt;br /&gt;I feel very exciting now.&lt;br /&gt;I hope I can post frequently.&lt;br /&gt;Coming soon with new postings........&lt;br /&gt;&lt;br /&gt;Sowkot Osman&lt;br /&gt;07-Jun-2007&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8944317467906119023-7818168423263740039?l=sowkot.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sowkot.blogspot.com/feeds/7818168423263740039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8944317467906119023&amp;postID=7818168423263740039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/7818168423263740039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944317467906119023/posts/default/7818168423263740039'/><link rel='alternate' type='text/html' href='http://sowkot.blogspot.com/2007/06/creation-of-my-first-blog-site.html' title='Creation of my first blog site'/><author><name>Sowkot</name><uri>http://www.blogger.com/profile/07238494357808558636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
