<?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-78343946459641446</id><updated>2012-02-04T06:04:59.556+08:00</updated><category term='string manipulation'/><category term='Visual Studio'/><category term='Microsoft'/><category term='SQL'/><category term='javascript'/><category term='Download'/><category term='Website to share'/><category term='Cache'/><category term='Freelance Project'/><category term='Reset AutoNumber'/><category term='AJAX'/><category term='web development'/><category term='Combobox'/><category term='ASP.NET Custom Controls'/><category term='Face recognition'/><category term='MyIdeas'/><category term='Tutorials'/><category term='Weekly Task'/><category term='ASP.NET'/><category term='MyTutorials'/><category term='Reporting'/><category term='Data Controls'/><category term='MyExpenseTracker'/><category term='Learning Path'/><category term='Questions'/><category term='DataSet'/><category term='Software'/><category term='MCPD'/><category term='MyNotes'/><category term='Computer related'/><category term='web templates'/><category term='Computer shortcut'/><category term='Visual Basic 6'/><category term='freebies'/><category term='MySQL'/><category term='Project Management'/><category term='CSS'/><category term='MyPrototype'/><category term='tool'/><category term='stored procedure'/><category term='GridView'/><category term='Magento'/><category term='Problems'/><category term='Design'/><category term='Tips'/><category term='Session'/><category term='IIS'/><category term='Requirements'/><category term='C#'/><category term='PHP'/><category term='Crystal Report'/><category term='Firefox'/><category term='Scribble'/><category term='MyProjectManager'/><category term='Microsoft Access'/><category term='HTML'/><category term='WAMP Server'/><category term='MyProjects'/><category term='ViewState'/><category term='Analysis'/><category term='Windows Application'/><category term='.NET'/><category term='Object Oriented'/><category term='Excel'/><category term='Database Design'/><title type='text'>My Learning Path in Software Development</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>80</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-8632413678867156702</id><published>2011-04-01T09:22:00.001+08:00</published><updated>2011-04-01T09:33:46.795+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web templates'/><category scheme='http://www.blogger.com/atom/ns#' term='freebies'/><title type='text'>Free web template - Visit card</title><content type='html'>I just found this web template pretty nice, it is suitable for those who just want a simple introduction about themselves.&lt;br /&gt;And, it's free!&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://i21.photobucket.com/albums/b251/kaka135/Blog/programming/VisitCard01.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://i21.photobucket.com/albums/b251/kaka135/Blog/programming/VisitCard01.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #f4cccc; font-size: small;"&gt;This is the main page.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://i21.photobucket.com/albums/b251/kaka135/Blog/programming/VisitCard02.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://i21.photobucket.com/albums/b251/kaka135/Blog/programming/VisitCard02.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #f4cccc; font-size: small;"&gt;When clicking on a link in the main page, a picture gallery will be shown.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://i21.photobucket.com/albums/b251/kaka135/Blog/programming/VisitCard03.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://i21.photobucket.com/albums/b251/kaka135/Blog/programming/VisitCard03.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #f4cccc; font-size: small;"&gt;A contact form can also be added.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;Check this out at &lt;a href="http://justfreetemplates.com/web-templates/view/2100.html" target="_blank"&gt;Just Free Templates&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-8632413678867156702?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/8632413678867156702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2011/04/free-web-template-visit-card.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8632413678867156702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8632413678867156702'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2011/04/free-web-template-visit-card.html' title='Free web template - Visit card'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-8102176104901145544</id><published>2011-03-11T22:03:00.002+08:00</published><updated>2011-03-11T22:06:20.938+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Page_Load event triggered twice</title><content type='html'>&lt;b&gt;&lt;span class="Apple-style-span" style="color: #ea9999;"&gt;Problem:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #ea9999;"&gt;There is a webpage in my current project, where the Page_Load event was always triggered twice. I realized that the problem occurred because of binding data to a ASP.NET ListView.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Solution:&lt;/b&gt;&lt;br /&gt;After researching online for some time only I found that it's because of any Image control that does not set the ImageUrl. I am binding an image to the ListView, and I did not set any ImageUrl.&lt;br /&gt;I just need to set the ImageUrl, that's all, and it solved my problem.&lt;br /&gt;&lt;br /&gt;Reference:&amp;nbsp;&lt;a href="http://geekswithblogs.net/bcaraway/archive/2007/08/24/114945.aspx"&gt;How Firefox Handles Empty SRC tags&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-8102176104901145544?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/8102176104901145544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2011/03/pageload-event-triggered-twice.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8102176104901145544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8102176104901145544'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2011/03/pageload-event-triggered-twice.html' title='Page_Load event triggered twice'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-7935302800541778751</id><published>2011-03-09T11:24:00.001+08:00</published><updated>2011-03-09T11:37:42.287+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>My first php file</title><content type='html'>Finally, I've created my first php file - "Hello World"&lt;br /&gt;&lt;br /&gt;The file has to be located in &lt;i&gt;C:\wamp\www&lt;/i&gt;.&lt;br /&gt;To browse the file, just type this in the address bar: &lt;i&gt;localhost:81/testphp.php&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-NXQ4vFhRGSc/TXbycYd928I/AAAAAAAACV4/HnUXogL4aG8/s1600/firstphp.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://lh5.googleusercontent.com/-NXQ4vFhRGSc/TXbycYd928I/AAAAAAAACV4/HnUXogL4aG8/s1600/firstphp.png" /&gt;&lt;/a&gt;&lt;a href="https://lh5.googleusercontent.com/-NXQ4vFhRGSc/TXbycYd928I/AAAAAAAACV4/HnUXogL4aG8/s1600/firstphp.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="https://lh5.googleusercontent.com/-NXQ4vFhRGSc/TXbycYd928I/AAAAAAAACV4/HnUXogL4aG8/s1600/firstphp.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-7935302800541778751?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/7935302800541778751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2011/03/my-first-php-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/7935302800541778751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/7935302800541778751'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2011/03/my-first-php-file.html' title='My first php file'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh5.googleusercontent.com/-NXQ4vFhRGSc/TXbycYd928I/AAAAAAAACV4/HnUXogL4aG8/s72-c/firstphp.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-2116561903985512338</id><published>2011-03-09T11:14:00.000+08:00</published><updated>2011-03-09T11:14:10.301+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Create database in MySQL</title><content type='html'>After setting up the WAMP Server, I need to figure out how to create a database in MySQL. Though it's not as easy as SQL Server management, it's still straight forward.&lt;br /&gt;&lt;br /&gt;1. Start WAMP Server.&lt;br /&gt;2. Go to phpMyAdmin.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;(As I have changed the port number, so I have to manually type this in browser address bar: localhost:81/phpmyadmin)&lt;br /&gt;3. The first page allows you to create a new database.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Just enter the &lt;i&gt;database name&lt;/i&gt;, then click on &lt;b&gt;Create&lt;/b&gt; button.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-EwATrS-cS78/TXbujuucn3I/AAAAAAAACVg/QxpOzq5iLF0/s1600/CreateDatabaase.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="232" src="https://lh5.googleusercontent.com/-EwATrS-cS78/TXbujuucn3I/AAAAAAAACVg/QxpOzq5iLF0/s320/CreateDatabaase.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;4. Next, we'll need to create a table.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Just enter the &lt;i&gt;table name&lt;/i&gt;, and specify the &lt;i&gt;number of fields&lt;/i&gt;.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/--ptpYcFOrs8/TXbuoSfAVGI/AAAAAAAACVo/4AaRM-2FX44/s1600/CreateNewTable.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="73" src="https://lh4.googleusercontent.com/--ptpYcFOrs8/TXbuoSfAVGI/AAAAAAAACVo/4AaRM-2FX44/s320/CreateNewTable.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;5. Then, we'll define the fields.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-ug_-rQ78VGA/TXbunzjaJiI/AAAAAAAACVk/G3QlXfM6Qx0/s1600/CreateFields.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="241" src="https://lh4.googleusercontent.com/-ug_-rQ78VGA/TXbunzjaJiI/AAAAAAAACVk/G3QlXfM6Qx0/s640/CreateFields.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;6. To insert records, click on the &lt;b&gt;Insert&lt;/b&gt; tab, and enter the values.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-u4jOx3GhUbc/TXbuoqIVdYI/AAAAAAAACVs/k93BPFBgb3U/s1600/InsertRecord.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="90" src="https://lh6.googleusercontent.com/-u4jOx3GhUbc/TXbuoqIVdYI/AAAAAAAACVs/k93BPFBgb3U/s400/InsertRecord.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;7. Finally, if you want to view the records, go to &lt;b&gt;Browse&lt;/b&gt; tab.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-SupHHXwvnxU/TXbupYqAV8I/AAAAAAAACV0/P2mEwLCDDLw/s1600/ViewRecords.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="255" src="https://lh4.googleusercontent.com/-SupHHXwvnxU/TXbupYqAV8I/AAAAAAAACV0/P2mEwLCDDLw/s400/ViewRecords.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;That's all! Here, I have successfully created the database. It's time for me to start learning php. ^_^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-2116561903985512338?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/2116561903985512338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2011/03/create-database-in-mysql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2116561903985512338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2116561903985512338'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2011/03/create-database-in-mysql.html' title='Create database in MySQL'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh5.googleusercontent.com/-EwATrS-cS78/TXbujuucn3I/AAAAAAAACVg/QxpOzq5iLF0/s72-c/CreateDatabaase.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-5759054614031689937</id><published>2011-03-09T10:50:00.001+08:00</published><updated>2011-03-09T10:53:26.106+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='WAMP Server'/><title type='text'>To start learning php: Set up WAMP Server</title><content type='html'>I just received a freelance job, which is to design a website template. All the functionalities should be okay, just that I need to create a login function for the website, which I can't use ASP.NET C# (the language I am familiar with), and I need to learn php for this.&lt;br /&gt;&lt;br /&gt;To start learning php, my friend recommended me to install &lt;a href="http://www.apachefriends.org/en/xampp.html" target="_blank"&gt;XAMPP&lt;/a&gt;. But, I couldn't successfully install the Apache service. Hence, I go for &lt;a href="http://www.wampserver.com/en/" target="_blank"&gt;WAMP Server&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Installing WAMP Server is easier, but I still failed to browse the "localhost" page. After searching around, I found that it's actually the port 80 has been used by other applications, though I have stopped some of the SQL Server service. Finally I have found a way to solve this: &lt;b&gt;&lt;span class="Apple-style-span" style="color: #ea9999;"&gt;Change the port number!&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;To change the port number:&lt;br /&gt;1. Go to C:\wamp\bin\apache\Apachex.x.xx\conf&lt;br /&gt;2. Open the httpd.conf file&lt;br /&gt;3. Look for "Listen 80" and change the number to something else, e.g. 81&lt;br /&gt;It's just this easy.&lt;br /&gt;&lt;br /&gt;The trouble is that, every time when I need to go localhost, I have to manually type this in the address bar: localhost:81&lt;br /&gt;It's okay for me, as long as it works! ^_^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-5759054614031689937?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/5759054614031689937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2011/03/to-start-learning-php-set-up-wamp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5759054614031689937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5759054614031689937'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2011/03/to-start-learning-php-set-up-wamp.html' title='To start learning php: Set up WAMP Server'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-4300252333078016878</id><published>2010-09-15T03:44:00.003+08:00</published><updated>2011-03-09T10:25:33.062+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Magento'/><category scheme='http://www.blogger.com/atom/ns#' term='Freelance Project'/><title type='text'>Building Magento Themes</title><content type='html'>I've got a freelance task, which is building Magento themes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.magentocommerce.com/" target="_blank"&gt;Magento&lt;/a&gt; is totally a stranger to me. After searching for the information only I found out, it's actually an open source ecommerce platform, where you can download and customize for your own online store.&lt;br /&gt;&lt;br /&gt;Actually, there is a demand of Magento designers and developers. The designers will design the store interface and create a PSD (Photoshop Data) file, and the developers will convert it to a web page theme (with HTML, CSS, and PHP). I'm supposed to play the developer role.&lt;br /&gt;&lt;br /&gt;I was given a sample work to learn, and I realized that it's much more complicated than I expected. There are many things that require me to learn, such as setting up Magento platform for testing, converting PSD to HTML/CSS, building Magento themes, etc.&lt;br /&gt;&lt;br /&gt;I have finally found two ways to set up Magento platform for testing:&lt;br /&gt;1. Get a free Magento hosting at &lt;a href="https://www.magentopolis.com/" target="_blank"&gt;MagentoPolis&lt;/a&gt;.&lt;br /&gt;2. Install Magento on &lt;a href="http://www.wampserver.com/en/" target="_blank"&gt;WAMP&lt;/a&gt;, so that I can run Apache, MySQL and PHP in my Windows XP. (&lt;s&gt;But I've problem setting this up now&lt;/s&gt;)&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #f6b26b;"&gt;Updated: Found the solution on this: I just needed to turn off my IIS service. ^_^&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've read some tutorials about converting PSD to HTML/CSS, and now I'm going to start learning how to build a Magento theme. Then, I'll work on the sample PSD file given by the client.&lt;br /&gt;&lt;br /&gt;I'll continue to share more information about Magento with you. Do share with me if you have any experiences with Magento too. ^_^&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #f9cb9c;"&gt;Updated on 09 Mar 2011:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #f9cb9c;"&gt;I have given up the Magento theme building task, as it's not as easy as I thought. I still have a lot more to learn in order to work on the task. Hence, I'd better concentrate on website development where I am more familiar and more interested in.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-4300252333078016878?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://kakaprogramming.blogspot.com/2010/09/building_magento_themes.html' title='Building Magento Themes'/><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/4300252333078016878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2010/09/building-magento-themes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/4300252333078016878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/4300252333078016878'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2010/09/building-magento-themes.html' title='Building Magento Themes'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-3755690714151569203</id><published>2010-09-02T21:57:00.001+08:00</published><updated>2010-09-02T21:58:03.874+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Face recognition'/><category scheme='http://www.blogger.com/atom/ns#' term='Freelance Project'/><title type='text'>Payment for my first freelance project</title><content type='html'>I've just received a full payment for my first freelance project, which is a simple face recognition program.&lt;br /&gt;&lt;br /&gt;I'm very happy to complete the program, and also finally received the full payment. Though it took me quite some time to get the payment and it's not a big amount of money, I didn't spend much time in the program, so I think it's still quite worth my time doing this. Also, it's a totally new technology to me -- &lt;b&gt;&lt;span class="Apple-style-span" style="color: #a64d79;"&gt;Face Recognition&lt;/span&gt;&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;I'll share some information about this face recognition technology with you all when I am free. ^_^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-3755690714151569203?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/3755690714151569203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2010/09/payment-for-my-first-freelance-project.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/3755690714151569203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/3755690714151569203'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2010/09/payment-for-my-first-freelance-project.html' title='Payment for my first freelance project'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-1771145201104372464</id><published>2010-01-15T11:41:00.000+08:00</published><updated>2010-01-15T11:41:33.632+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computer related'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><title type='text'>Install IIS without Windows Installation CD</title><content type='html'>I just found out that we can actually install the Internet Information Services (IIS) without using the Windows Installation CD, as the required files are already located in our local computer.&lt;br /&gt;&lt;br /&gt;1. Go to Control Panel.&lt;br /&gt;2. Click on Add or Remove Programs.&lt;br /&gt;3. Select Add/Remove Windows Components.&lt;br /&gt;4. Select the Internet Information Services (IIS) option.&lt;br /&gt;&lt;img src="http://i21.photobucket.com/albums/b251/kaka135/Blog/programming/WindowsComponentsWizard.jpg" /&gt;&lt;br /&gt;5. Click on Next button to start installing IIS.&lt;br /&gt;6. You will be prompted to insert the Windows XP Professional CD-ROM.&lt;br /&gt;7. Click on OK button to select the location for the file needed.&lt;br /&gt;8. Browse to C:\WINDOWS\I386 and select the file ADMXPROX.DL_.&lt;br /&gt;&lt;img src="http://i21.photobucket.com/albums/b251/kaka135/Blog/programming/LocateIISFile.jpg" /&gt;&lt;br /&gt;9. Click on Open button and then OK button.&amp;nbsp;The installation process will then start.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-1771145201104372464?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/1771145201104372464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2010/01/install-iis-without-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/1771145201104372464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/1771145201104372464'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2010/01/install-iis-without-windows.html' title='Install IIS without Windows Installation CD'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-2564365871753793172</id><published>2010-01-15T09:51:00.001+08:00</published><updated>2010-01-15T09:58:19.087+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='string manipulation'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6'/><title type='text'>Copy Text to Clipboard in VB6</title><content type='html'>I thought it will be quite difficult to copy text to Clipboard in VB6, after I found this out. There is actually a built-in class called Clipboard which lets us easily copy and paste text.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Copy Text to Clipboard:&lt;/b&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{ font-size: small; color: black; font-family: Consolas, "Courier New", Courier, Monospace; background-color: #ffffff; /*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;Private Sub CopyTextToClipboard(ByVal TextToCopy As String)&lt;/pre&gt;&lt;pre&gt;Clipboard.Clear&lt;/pre&gt;&lt;pre class="alt"&gt;Clipboard.SetText TextToCopy&lt;/pre&gt;&lt;pre&gt;End Sub&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Paste Text from Clipboard:&lt;/b&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;Private Function PasteTextFromClipboard() As String&lt;/pre &gt;&lt;pre&gt;PasteTextFromClipboard = Clipboard.GetText&lt;/pre&gt;&lt;pre class="alt"&gt;End Function&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;It's just that easy! ^_^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-2564365871753793172?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/2564365871753793172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2010/01/copy-text-to-clipboard-in-vb6.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2564365871753793172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2564365871753793172'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2010/01/copy-text-to-clipboard-in-vb6.html' title='Copy Text to Clipboard in VB6'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-5424322253319326998</id><published>2009-11-05T14:20:00.000+08:00</published><updated>2009-11-05T14:20:14.933+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Firebug - web development tool</title><content type='html'>&lt;a href="http://getfirebug.com/" target="_blank"&gt;&lt;img src="http://i21.photobucket.com/albums/b251/kaka135/Blog/firebug_logo.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It's a very useful web development tool that can help us to learn the HTML, CSS, or even javascript when we browse the net. Not only that we can read the codes, but also edit, debug and monitor them live. Just click on the item on the webpage, then the codes will be revealed. There, you can also edit the codes and see the changes.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i21.photobucket.com/albums/b251/kaka135/Blog/firebug_screen.gif" /&gt;&lt;br /&gt;&lt;br /&gt;The tool also provides network monitoring feature. It helps us to break down the files, so that we can speed up the web page loading.&lt;br /&gt;&lt;br /&gt;By the way, it's an add-on to Firefox. You can just install it, and you can open the Firebug as a bar at the bottom of your browser, or even in a separate window.&lt;br /&gt;&lt;br /&gt;Click &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1843" target="_blank"&gt;here&lt;/a&gt; to download the free firebug.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-5424322253319326998?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/5424322253319326998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2009/11/firebug-web-development-tool.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5424322253319326998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5424322253319326998'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2009/11/firebug-web-development-tool.html' title='Firebug - web development tool'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i21.photobucket.com/albums/b251/kaka135/Blog/th_firebug_logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-7120655574869845034</id><published>2009-10-23T12:55:00.001+08:00</published><updated>2009-10-23T12:55:22.828+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><title type='text'>How to check the target’s range name?</title><content type='html'>&lt;p&gt;I am working on the Excel file, for show and hide certain ranges based on the selection. Say if user selects “Yes”, then I show certain range. Otherwise, I’ll hide that range.&lt;/p&gt;  &lt;p&gt;I do the coding in the Worksheet_Change event. I check if the target is the relevant cell/range, then only I perform the function accordingly. &lt;/p&gt;  &lt;div id="codeSnippetWrapper" style="border-right: silver 1px solid; padding-right: 4px; border-top: silver 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: silver 1px solid; width: 97.5%; cursor: text; direction: ltr; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4; text-align: left"&gt;   &lt;div id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;Private Sub Worksheet_Change(ByVal Target As Range)&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;    &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;    ' Option 1 Selected&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;    If Target.Address = &lt;span style="color: #006080"&gt;&amp;quot;$I$21&amp;quot;&lt;/span&gt; Then SelectOption1&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;    &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;End Sub&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;But, this is hardcoded, whenever the cell address has been changed, say insert a new row or remove a row, then I21 is no longer the cell I’m referring. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I just found a way to solve this “hardcode” problem – Define range name. But how can I check if the range name is my defined one? As I’ve tried Target.Address and Target.Name, both return me the cell address. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Finally, I’ve found this:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper" style="border-right: silver 1px solid; padding-right: 4px; border-top: silver 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: silver 1px solid; width: 97.5%; cursor: text; direction: ltr; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4; text-align: left"&gt;&lt;br /&gt;  &lt;div id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;If ThisWorkbook.Worksheets(&lt;span style="color: #006080"&gt;&amp;quot;SheetName&amp;quot;&lt;/span&gt;).Range(Target.Address).Name.Name = &lt;span style="color: #006080"&gt;&amp;quot;DefinedRangeName&amp;quot;&lt;/span&gt; Then SelectOption1&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Range(Target.Address).Name.Name&lt;/strong&gt; will return the defined range name. By using this, I do not need to hardcode the cell address anymore, and it saves lots of maintenance work in future. ^_^&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-7120655574869845034?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/7120655574869845034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2009/10/how-to-check-targets-range-name.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/7120655574869845034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/7120655574869845034'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2009/10/how-to-check-targets-range-name.html' title='How to check the target’s range name?'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-2937681891029990811</id><published>2009-10-21T11:44:00.001+08:00</published><updated>2009-10-21T11:44:25.914+08:00</updated><title type='text'>Unhide hidden sheets in Excel</title><content type='html'>&lt;p&gt;I am doing an Excel task using Macro. I hide most of the worksheets at the start of the Excel file, until user did some selections to show/hide certain worksheets.&lt;/p&gt;  &lt;p&gt;Now, I am asked to allow the users to unhide the hidden worksheets in the Excel file. I have searched around in the Excel file, but failed to get so. Then I realized, I have to change how I hide the worksheet in Macro codes.&lt;/p&gt;  &lt;p&gt;This is how I used to hide worksheet:&lt;/p&gt;  &lt;div id="codeSnippetWrapper" style="border-right: silver 1px solid; padding-right: 4px; border-top: silver 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: silver 1px solid; width: 97.5%; cursor: text; direction: ltr; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4; text-align: left"&gt;   &lt;div id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;ThisWorkbook.Worksheets(sheetIndex).Visible = &lt;strong&gt;&lt;font color="#0000ff" size="2"&gt;xlSheetVeryHidden&lt;/font&gt;&lt;/strong&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Just change xlSheetVeryHidden to &lt;font color="#0000ff" size="2"&gt;&lt;strong&gt;xlSheetHidden&lt;/strong&gt;&lt;/font&gt; will do.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Using xlSheetVeryHidden can only unhide certain worksheets in Macro.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;To unhide hidden worksheets:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;1. Go to &lt;strong&gt;Format&lt;/strong&gt; menu.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;2. Click on &lt;strong&gt;Sheet&lt;/strong&gt;, then &lt;strong&gt;Unhide&lt;/strong&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;3. You’ll get a list of hidden worksheets, just select the worksheet name and click on &lt;strong&gt;OK &lt;/strong&gt;button to unhide it.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-2937681891029990811?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/2937681891029990811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2009/10/unhide-hidden-sheets-in-excel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2937681891029990811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2937681891029990811'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2009/10/unhide-hidden-sheets-in-excel.html' title='Unhide hidden sheets in Excel'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-1363181441197806536</id><published>2009-10-21T11:16:00.001+08:00</published><updated>2009-10-21T11:16:38.363+08:00</updated><title type='text'>Convert Column Number to Letter and Vice Versa in Excel</title><content type='html'>&lt;p&gt;Sometimes when I built the application for Excel, I’ll need to convert the Column number to Letter (say, 3 is C) or vice versa.&lt;/p&gt;  &lt;p&gt;I’ve been searching around, and finally found the following methods which are quite useful and simple. They cater for column letter like “AB” too.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Function: Convert column number to letter&lt;/strong&gt; ( 2 –&amp;gt; “B”)&lt;/p&gt;  &lt;div id="codeSnippetWrapper" style="border-right: silver 1px solid; padding-right: 4px; border-top: silver 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: silver 1px solid; width: 97.5%; cursor: text; direction: ltr; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4; text-align: left"&gt;   &lt;div id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #006080"&gt;'------------------------------------------------------------------------------------ &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt; '&lt;/span&gt;   Description:    To convert the column number to letter(e.g. 2 --&amp;gt; &lt;span style="color: #006080"&gt;&amp;quot;B&amp;quot;&lt;/span&gt;) &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum3" style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #006080"&gt;'   Parameters:     The column number (Long) &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum4" style="color: #606060"&gt;   4:&lt;/span&gt; '&lt;/span&gt;   Return:         The column letter (String) &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum5" style="color: #606060"&gt;   5:&lt;/span&gt; '------------------------------------------------------------------------------------ &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum6" style="color: #606060"&gt;   6:&lt;/span&gt; Private Function m_ConvertColumnNumberToLetter(ByVal ColumnNumber As Long) As String &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum7" style="color: #606060"&gt;   7:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum8" style="color: #606060"&gt;   8:&lt;/span&gt;     Dim s0 As String, s1 As String, S2 As String, s3 As String &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum9" style="color: #606060"&gt;   9:&lt;/span&gt;     If ColumnNumber &amp;gt; 18278 Then s0 = Chr((Int((ColumnNumber - 18279) / 17576) Mod 26) + 65) &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum10" style="color: #606060"&gt;  10:&lt;/span&gt;     If ColumnNumber &amp;gt; 702 Then s1 = Chr((Int((ColumnNumber - 703) / 676) Mod 26) + 65) &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum11" style="color: #606060"&gt;  11:&lt;/span&gt;     If ColumnNumber &amp;gt; 26 Then S2 = Chr(m_ConvertColumnNumberToLetter &amp;amp; (Int((ColumnNumber - 27) / 26)) Mod 26 + 65) &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum12" style="color: #606060"&gt;  12:&lt;/span&gt;     &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum13" style="color: #606060"&gt;  13:&lt;/span&gt;     s3 = Chr(((ColumnNumber - 1) Mod 26) + 65) &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum14" style="color: #606060"&gt;  14:&lt;/span&gt;     m_ConvertColumnNumberToLetter = s0 &amp;amp; s1 &amp;amp; S2 &amp;amp; s3 &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum15" style="color: #606060"&gt;  15:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum16" style="color: #606060"&gt;  16:&lt;/span&gt; End Function &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Function: Convert column letter to number&lt;/strong&gt; (“B” –&amp;gt; 2)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper" style="border-right: silver 1px solid; padding-right: 4px; border-top: silver 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: silver 1px solid; width: 97.5%; cursor: text; direction: ltr; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4; text-align: left"&gt;&lt;br /&gt;  &lt;div id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #006080"&gt;'------------------------------------------------------------------------------------ &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt; '&lt;/span&gt;   Description:    To convert the column number to letter(e.g. &lt;span style="color: #006080"&gt;&amp;quot;B&amp;quot;&lt;/span&gt; --&amp;gt; 2) &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum3" style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #006080"&gt;'   Parameters:     The column letter (String) &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum4" style="color: #606060"&gt;   4:&lt;/span&gt; '&lt;/span&gt;   Return:         The column number (Long) &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum5" style="color: #606060"&gt;   5:&lt;/span&gt; '------------------------------------------------------------------------------------ &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum6" style="color: #606060"&gt;   6:&lt;/span&gt; Private Function m_ConvertColumnLetterToNumber(ByVal ColumnLetter As String) As Long &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum7" style="color: #606060"&gt;   7:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum8" style="color: #606060"&gt;   8:&lt;/span&gt;     Dim intCount                As Integer &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum9" style="color: #606060"&gt;   9:&lt;/span&gt;     Dim intColumnLetterLength   As Integer &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum10" style="color: #606060"&gt;  10:&lt;/span&gt;     m_ConvertColumnLetterToNumber = 0: intColumnLetterLength = Len(ColumnLetter) &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum11" style="color: #606060"&gt;  11:&lt;/span&gt;     For intCount = 1 To intColumnLetterLength &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum12" style="color: #606060"&gt;  12:&lt;/span&gt;         m_ConvertColumnLetterToNumber = m_ConvertColumnLetterToNumber * 26 + (Asc(UCase(Mid(ColumnLetter, intCount, 1))) - 64) &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum13" style="color: #606060"&gt;  13:&lt;/span&gt;     Next intCount &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum14" style="color: #606060"&gt;  14:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none"&gt;&lt;span id="lnum15" style="color: #606060"&gt;  15:&lt;/span&gt; End Function&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-1363181441197806536?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/1363181441197806536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2009/10/convert-column-number-to-letter-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/1363181441197806536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/1363181441197806536'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2009/10/convert-column-number-to-letter-and.html' title='Convert Column Number to Letter and Vice Versa in Excel'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-8853113650813216582</id><published>2008-11-20T09:08:00.002+08:00</published><updated>2008-11-20T09:50:59.303+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reset AutoNumber'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Access'/><title type='text'>How to reset AutoNumber in Microsoft Access table?</title><content type='html'>After testing my own application, now it's time for deploying it. &lt;div&gt;Well, there are many junk records being added in the table, and now it's time to reset everything.&lt;/div&gt;&lt;div&gt;The &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;AutoNumber &lt;/span&gt;field value in Access does not automatically reset when you delete the rows in the table. Finally, I've found the solution &lt;a href="http://support.microsoft.com/kb/812718" target="_blank"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Steps:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;1. Delete the &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;AutoNumber &lt;/span&gt;field from the table.&lt;/div&gt;&lt;div&gt;2. Click &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Queries&lt;/span&gt; on the left pane, and double-click &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Create query in Design view&lt;/span&gt; on the right pane.&lt;/div&gt;&lt;div&gt;3. In the &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Show Table&lt;/span&gt; dialog box, select the table. Then click &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Add&lt;/span&gt; to add the table and &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Close&lt;/span&gt; the dialog box.&lt;/div&gt;&lt;div&gt;4. Double-click all the fields in the table to select the fields.&lt;/div&gt;&lt;div&gt;5. Select the required &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Sort&lt;/span&gt; order, if there's any.&lt;/div&gt;&lt;div&gt;6. Click &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Make-Table Query&lt;/span&gt; on the &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Query&lt;/span&gt; menu. Type the new table name in the &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Table Name&lt;/span&gt; text box and then click &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;OK&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;7. Click &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Run&lt;/span&gt; on the &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Query&lt;/span&gt; menu.&lt;/div&gt;&lt;div&gt;8. A dialog box appears with the text that follows: &lt;span class="Apple-style-span" style="font-style: italic;"&gt;You are about to append # row(s) into a new table.&lt;/span&gt; Click &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Yes&lt;/span&gt; to insert the rows.&lt;/div&gt;&lt;div&gt;9. Click &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Close&lt;/span&gt; on the &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;File&lt;/span&gt; menu. Click &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;No&lt;/span&gt; to close the &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Make-Table Query&lt;/span&gt; window to discard saving the query.&lt;/div&gt;&lt;div&gt;10. Click &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Tables &lt;/span&gt;on the left pane. Right-click on the new table and then click &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Design view&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;11. In the &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Design view&lt;/span&gt; for the table, add an &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;AutoNumber &lt;/span&gt;field with the same field name that you deleted in step 1. Then save the table.&lt;/div&gt;&lt;div&gt;12. Close the &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Design view&lt;/span&gt; window.&lt;/div&gt;&lt;div&gt;13. Delete the original table, and rename new table name to the original table name.&lt;/div&gt;&lt;div&gt;Now the AutoNumber has started from 1.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For more information, please refer to &lt;a href="http://support.microsoft.com/kb/812718" target="_blank"&gt;Microsoft Help and Support&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-8853113650813216582?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/8853113650813216582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2008/11/how-to-reset-autonumber-in-microsoft.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8853113650813216582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8853113650813216582'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2008/11/how-to-reset-autonumber-in-microsoft.html' title='How to reset AutoNumber in Microsoft Access table?'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-4301834726395690944</id><published>2008-11-18T11:22:00.004+08:00</published><updated>2008-11-18T11:45:55.679+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computer shortcut'/><title type='text'>To lock your computer</title><content type='html'>My colleague just sent us this email, regarding how to lock the computer.&lt;div&gt;I think it's quite useful if you are using the computer in the office, and always want to lock it when you are away.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The easiest shortcut: &lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Press Windows logo key + L&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Or, you can create a shortcut on your desktop.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Right-click the desktop.&lt;/div&gt;&lt;div&gt;2. Point to &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;New&lt;/span&gt;, and then click &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Shortcut&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;3. The &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Create Shortcut Wizar&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;d&lt;/span&gt; opens. &lt;/div&gt;&lt;div&gt;In the text box, type the following:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;rundll32.exe user32.dll,LockWorkStation&lt;/span&gt;&lt;/div&gt;&lt;div&gt;4. Click &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Next&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;5. Enter a name for the shortcut. e.g. "&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Lock Workstation&lt;/span&gt;"&lt;/div&gt;&lt;div&gt;6. Click &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Finish&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can also change the shortcut's icon. e.g. padlock icon in &lt;span class="Apple-style-span" style="font-style: italic;"&gt;shell32.dll&lt;/span&gt;&lt;/div&gt;&lt;div&gt;To change the icon:&lt;/div&gt;&lt;div&gt;1. Right click the shortcut and then select &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Properties&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;2. Click the &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Shortcut &lt;/span&gt;tab, and then click the &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Change Icon&lt;/span&gt; button.&lt;/div&gt;&lt;div&gt;3. In the Look for icons in this file text box, type: &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Shell32.dll&lt;/span&gt;&lt;/div&gt;&lt;div&gt;4. Click &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;OK&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;5. Select one of the icons from the list and then click &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;OK&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is the shortcut I've created on my desktop: &lt;/div&gt;&lt;img src="http://i21.photobucket.com/albums/b251/kaka135/Blog/lockMe.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-4301834726395690944?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/4301834726395690944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2008/11/to-lock-your-computer.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/4301834726395690944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/4301834726395690944'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2008/11/to-lock-your-computer.html' title='To lock your computer'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i21.photobucket.com/albums/b251/kaka135/Blog/th_lockMe.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-2800265528195826935</id><published>2008-11-11T22:17:00.002+08:00</published><updated>2008-11-11T22:47:14.212+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='string manipulation'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6'/><title type='text'>StrConv function - to capitalize the first character in the sentence</title><content type='html'>Reference: &lt;a href="http://www.chennaiiq.com/developers/reference/visual_basic/functions/strconv.asp" target="_blank"&gt;Chennai IQ&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I wanted to write a function to capitalize the first character of every word. For example, I want to change "cell address" to "Cell Address". Before I started the function, I was thinking perhaps there already has a easy way to do that. Luckily, I did a search in the Google and found this: StrConv&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is the function I've written:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;Public Function&lt;/span&gt; &lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;CapitalizeFirstCharacter(ByVal Value&lt;/span&gt; &lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;As String&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;)&lt;/span&gt; &lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;As String&lt;/span&gt;&lt;/div&gt;&lt;div&gt;    &lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;' Make the whole string lower case, then only capitalize the first character&lt;/span&gt;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;CapitalizeFirstCharacter = StrConv(LCase$(Value), vbProperCase)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;End Function&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Syntax:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 153);"&gt;StrConv (String, conversion[, LCID])&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;String - required. String expression to be converted.&lt;/div&gt;&lt;div&gt;conversion - required. Integer. The sum of values specifying the type of conversion to perform.&lt;/div&gt;&lt;div&gt;LCID - optional. The LocaleID, if different than the system LocaleID. (default: system LocaleID)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;conversion argument:&lt;/div&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Constants&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Value&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;vbUpperCase&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;Convert to uppercase&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;vbLowerCase&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;Convert to lowercase&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;vbProperCase&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;Convert the first letter of every word in string to uppercase&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;There are also vbWide, where values are 4, 8, 16, 32, 64, 128 to convert the string with specific usage. (Please refer to the &lt;a href="http://www.chennaiiq.com/developers/reference/visual_basic/functions/strconv.asp" target="_blank"&gt;reference&lt;/a&gt; page)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-2800265528195826935?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/2800265528195826935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2008/11/strconv-function-to-capitalize-first.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2800265528195826935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2800265528195826935'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2008/11/strconv-function-to-capitalize-first.html' title='StrConv function - to capitalize the first character in the sentence'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-4799445576307473165</id><published>2008-11-10T20:02:00.003+08:00</published><updated>2008-11-10T20:16:12.620+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><title type='text'>New line character in Excel cell</title><content type='html'>This is really simple, but I didn't know how to do it until just now. &lt;div&gt;Everytime when I press the "Enter" key, I'll be brought to the next cell of the Excel.&lt;/div&gt;&lt;div&gt;Until just now, I found out actually there is a way to go to the next line in the same cell.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://i21.photobucket.com/albums/b251/kaka135/Blog/excelCell.jpg" /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is pretty simple, just press Alt &amp;amp; Enter key, that's it! :D&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's called &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Line Feed character&lt;/span&gt;&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;In VB, it can be done by calling Chr(10) or vbLf.&lt;/div&gt;&lt;div&gt;e.g. &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;"a) Sentence 1" &amp;amp; Chr(10) &amp;amp; "b) Sentence 2"&lt;/span&gt; or&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;"a) Sentence 1" &amp;amp; vbLf &amp;amp; "b) Sentence 2&lt;/span&gt;" or&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 153, 102);"&gt;Information extracted from&lt;/span&gt; &lt;a href="http://en.allexperts.com/q/Excel-1059/new-line-character-Excel.htm" target="_blank"&gt;AllExperts&lt;/a&gt; &lt;span class="Apple-style-span" style="color: rgb(255, 153, 0);"&gt;site.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-4799445576307473165?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/4799445576307473165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2008/11/new-line-character-in-excel-cell.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/4799445576307473165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/4799445576307473165'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2008/11/new-line-character-in-excel-cell.html' title='New line character in Excel cell'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i21.photobucket.com/albums/b251/kaka135/Blog/th_excelCell.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-8931617311786543488</id><published>2008-07-25T11:25:00.002+08:00</published><updated>2008-07-25T15:46:09.272+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cache'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='ViewState'/><category scheme='http://www.blogger.com/atom/ns#' term='Session'/><title type='text'>Understanding the differences between Cache, Session and ViewState</title><content type='html'>URL: &lt;a href="http://www.progtalk.com/ViewArticle.aspx?ArticleID=62" target="_blank"&gt;http://www.progtalk.com/ViewArticle.aspx?ArticleID=62&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My colleague sent this article to us recently. After I've read it, I found it quite useful and easy to understand, just wanna share it out.&lt;br /&gt;&lt;br /&gt;In the article, it introduces these 3 types of storage methods: Cache, Session, ViewState.&lt;br /&gt;&lt;br /&gt;To be honest, I only used session before. :p&lt;br /&gt;It's time for me to learn how to use the storage methods probably, to make the web application better.&lt;br /&gt;&lt;br /&gt;These are the notes I've taken:&lt;br /&gt;----------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Cache &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;- memory.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;- allow you to store difficult and complex constructed data which will can be reused.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;- is available to be accessed from global/application level where one reference to memory is updated. Each request will use the same cache for different users.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Session&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;- a period of time that is shared between the web application and the user.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;- Each user that is using the web application has their own session.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;- The Session variables will be cleared by the application which can clear it, as well as through the timeout property in the web config file.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;- Session variables will use different session variables for each different user.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;ViewState&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;- hidden data that is kept by ASP.NET pages.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;- track the changes to a web site during post backs.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;- All server controls contain a view state. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;[EnableViewState property - enable/disable if the control properties will be held in hidden fields.]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;- Having a large ViewState will cause a page to download slowly from the users side.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;- When a user clicks on a button and a post back occurs, all the view state information has to be posted back to the server which causes a slower request.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;- ViewState should be limited to what is needed.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;- Data can also be written into the ViewState. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;- The ViewState only persists for the life cycle of the page.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;- If the page redirects to another page, or even to itself, the ViewState will be reset.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;- ViewState should be used to hold small amonts of data, which will be only used on the current page.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-8931617311786543488?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/8931617311786543488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2008/07/understanding-differences-between-cache.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8931617311786543488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8931617311786543488'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2008/07/understanding-differences-between-cache.html' title='Understanding the differences between Cache, Session and ViewState'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-5991563493589107954</id><published>2008-04-09T15:03:00.002+08:00</published><updated>2008-04-09T15:20:06.727+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Show message box in ASP.NET</title><content type='html'>&lt;p&gt;I've written a simple function which uses JavaScript. &lt;/p&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-: nonefont-family:consolas, 'Courier New', courier, monospace;font-size:8pt;color:#f4f4f4;"   &gt;&lt;span style="color:#0000ff;"&gt;private void&lt;/span&gt; &lt;span style="color:#000000;"&gt;ShowMessageBox(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; &lt;span style="color:#000000;"&gt;Message)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#2666a6;"&gt;Label&lt;/span&gt; &lt;span style="color:#000000;"&gt;lblMessageBox = &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2666a6;"&gt;Label&lt;/span&gt;&lt;span style="color:#000000;"&gt;();&lt;br /&gt;&lt;br /&gt;    lblMessageBox.Text =&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#bf1f1f;"&gt;"&amp;lt;script language='javascript'&amp;gt;"&lt;/span&gt; + Environment.NewLine +&lt;br /&gt;        &lt;span style="color:#bf1f1f;"&gt;"window.alert('"&lt;/span&gt; &lt;span style="color:#000000;"&gt;+ Message + &lt;/span&gt;&lt;span style="color:#bf1f1f;"&gt;"')&amp;lt;/script&amp;gt;"&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;br /&gt;&lt;br /&gt;    Page.Controls.Add(lblMessageBox);&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;To call out the message box, just write this:&lt;/p&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-: nonefont-family:consolas, 'Courier New', courier, monospace;font-size:8pt;color:#f4f4f4;"   &gt;&lt;span style="color:#000000;"&gt;ShowMessageBox(&lt;/span&gt;&lt;span style="color:#bf1f1f;"&gt;"Hello world!"&lt;/span&gt;&lt;span style="color:#000000;"&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;The problem with this is that I can't customize the message box. I can only pass in the message as parameter, but not changing the title, the button text or image.&lt;br /&gt;&lt;img alt="Message box" src="http://lh6.google.com/kaka135/R_xqW0rSLkI/AAAAAAAABN0/xBCRKOYbVCU/ShowMessageBox.jpg" /&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-5991563493589107954?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/5991563493589107954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2008/04/show-message-box-in-aspnet.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5991563493589107954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5991563493589107954'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2008/04/show-message-box-in-aspnet.html' title='Show message box in ASP.NET'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-7487905517917237408</id><published>2008-04-02T14:39:00.001+08:00</published><updated>2008-04-02T16:37:13.714+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Add javascript dropdownlist in your blog</title><content type='html'>&lt;p&gt;I was looking for a way to add a dropdownlist in my blog, finally I've found this. &lt;img alt="Happy" src="http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/1.gif" /&gt; It's simple and it's what I want.&lt;/p&gt; &lt;!--BEGIN dropdownlist--&gt;&lt;script language="JavaScript"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function selectOption(selObj){window.open(selObj.options[selObj.selectedIndex].value);}&lt;/script&gt;&lt;select style="background: #c6e2ff; color: #000000" onchange="selectOption(this)"&gt; &lt;option value=""&gt;- Please select -&lt;/option&gt;&lt;option value="http://www.google.com"&gt;Google&lt;/option&gt;&lt;option value="http://www.yahoo.com"&gt;Yahoo&lt;/option&gt;&lt;option value="http://www.msn.com"&gt;MSN&lt;/option&gt;&lt;/select&gt;&lt;!--END dropdownlist--&gt;   &lt;p&gt;I do not know why the above dropdownlist is not working, but when you copy these codes to your blog, it should be able to work.&lt;/p&gt;  &lt;p&gt;Just copy the following codes, and add to your blog. In Blogger, Add these codes in HTML/Javascript element, then it works fine.&lt;/p&gt;  &lt;div&gt;   &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&amp;lt;!--BEGIN dropdownlist--&amp;gt;&amp;lt;script language=&lt;span style="color: #006080"&gt;&amp;quot;JavaScript&amp;quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; selectOption(selObj){&lt;br /&gt;window.open(selObj.options[selObj.selectedIndex].value);}&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;select style=&lt;span style="color: #006080"&gt;&amp;quot;background: #c6e2ff; color: #000000&amp;quot;&lt;/span&gt; onchange=&lt;span style="color: #006080"&gt;&amp;quot;selectOption(this)&amp;quot;&lt;/span&gt;&amp;gt; &lt;br /&gt;&amp;lt;option value=&lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&amp;gt;- Please select -&amp;lt;/option&amp;gt;&lt;br /&gt;&amp;lt;option value=&lt;span style="color: #006080"&gt;&amp;quot;http://www.google.com&amp;quot;&lt;/span&gt;&amp;gt;Google&amp;lt;/option&amp;gt;&lt;br /&gt;&amp;lt;option value=&lt;span style="color: #006080"&gt;&amp;quot;http://www.yahoo.com&amp;quot;&lt;/span&gt;&amp;gt;Yahoo&amp;lt;/option&amp;gt;&lt;br /&gt;&amp;lt;option value=&lt;span style="color: #006080"&gt;&amp;quot;http://www.msn.com&amp;quot;&lt;/span&gt;&amp;gt;MSN&amp;lt;/option&amp;gt;&amp;lt;/select&amp;gt;&lt;br /&gt;&amp;lt;!--END dropdownlist--&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;I got this script from &lt;a href="http://blog.pixnet.net/nicole2256/post/9728748" target="_blank"&gt;this blog&lt;/a&gt;. Thanks! &lt;img alt="Happy" src="http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/1.gif" /&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-7487905517917237408?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/7487905517917237408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2008/04/add-javascript-dropdownlist-in-your.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/7487905517917237408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/7487905517917237408'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2008/04/add-javascript-dropdownlist-in-your.html' title='Add javascript dropdownlist in your blog'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-752234670453821202</id><published>2008-03-24T11:00:00.000+08:00</published><updated>2008-03-24T11:01:36.082+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Set security access to folder</title><content type='html'>&lt;p&gt;I'm currently doing a small function, where I need to create folder dynamically, if the folder does not exist.&lt;/p&gt;  &lt;p&gt;Creating folder is easy, but I also need to set the security access. Finally, I've found the way of doing this. &lt;img alt="Happy" src="http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/1.gif" /&gt;&lt;/p&gt;  &lt;p&gt;I have created a simple class to perform this Directory-related tasks, named &amp;quot;&lt;font color="#0080c0"&gt;Folder&lt;/font&gt;&amp;quot;.&lt;/p&gt;  &lt;p&gt;Firstly, we need to include &lt;font color="#0080c0"&gt;System.IO&lt;/font&gt; (for &lt;font color="#0080c0"&gt;Directory&lt;/font&gt; class) &amp;amp; &lt;font color="#0080ff"&gt;System.Security.AccessControl&lt;/font&gt; (for &lt;font color="#0080ff"&gt;FileSystemRights&lt;/font&gt; &amp;amp; &lt;font color="#0080ff"&gt;AccessControlType&lt;/font&gt; enums).&lt;/p&gt;  &lt;div&gt;   &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; Exists(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; folderPath)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; Directory.Exists(folderPath);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Create(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; folderPath)&lt;br /&gt;    {&lt;br /&gt;        Directory.CreateDirectory(folderPath);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Delete(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; folderPath)&lt;br /&gt;    {&lt;br /&gt;        Directory.Delete(folderPath, &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; AddSecurity(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; folderPath,&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; userAccount,&lt;br /&gt;        FileSystemRights fileSystemRights,&lt;br /&gt;        AccessControlType controlType)&lt;br /&gt;    {&lt;br /&gt;        DirectoryInfo folderInfo = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DirectoryInfo(folderPath);&lt;br /&gt;        &lt;br /&gt;        DirectorySecurity folderSecurity = folderInfo.GetAccessControl();&lt;br /&gt;&lt;br /&gt;        folderSecurity.AddAccessRule(&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; FileSystemAccessRule(userAccount, fileSystemRights, controlType));&lt;br /&gt;&lt;br /&gt;        folderInfo.SetAccessControl(folderSecurity);&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; RemoveSecurity(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; folderPath,&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; userAccount,&lt;br /&gt;        FileSystemRights fileSystemRights,&lt;br /&gt;        AccessControlType controlType)&lt;br /&gt;    {&lt;br /&gt;        DirectoryInfo folderInfo = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DirectoryInfo(folderPath);&lt;br /&gt;&lt;br /&gt;        DirectorySecurity folderSecurity = folderInfo.GetAccessControl();&lt;br /&gt;&lt;br /&gt;        folderSecurity.RemoveAccessRule(&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; FileSystemAccessRule(userAccount, fileSystemRights, controlType));&lt;br /&gt;&lt;br /&gt;        folderInfo.SetAccessControl(folderSecurity);&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt;[] GetListOfFileSystemRights()&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; Enum.GetNames(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(FileSystemRights));&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt;[] GetListOfAccessControlTypes()&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; Enum.GetNames(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(AccessControlType));&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;font color="#008000"&gt;&lt;strong&gt;Function&lt;/strong&gt;: If the folder does not exist, create it and set security access.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;  &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (Folder.Exists(folderPath) == &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;)&lt;br /&gt;{&lt;br /&gt;    Folder.Create(folderPath);&lt;br /&gt;    Folder.AddSecurity(folderPath,&lt;span style="color: #006080"&gt;&amp;quot;MY\\CHONGLK&amp;quot;&lt;/span&gt;, FileSystemRights.Modify,AccessControlType.Allow);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;font color="#008000"&gt;To remove the security access for certain rights, use the RemoveSecurity method:&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;  &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;Folder.RemoveSecurity(folderPath,&lt;span style="color: #006080"&gt;&amp;quot;MY\\CHONGLK&amp;quot;&lt;/span&gt;, FileSystemRights.Modify,AccessControlType.Allow);&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;font color="#008000"&gt;The last two functions is to allow users to bind the list of enum values to the UI control.&lt;/font&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;  &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #008000"&gt;//List all FileSystemRights values in dropdownlist&lt;/span&gt;&lt;br /&gt;systemRightsDropDownList.DataSource = Folder.GetListOfFileSystemRights();&lt;br /&gt;systemRightsDropDownList.DataBind();&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;//List all AccessControlTypes values in dropdownlist&lt;/span&gt;&lt;br /&gt;controlTypeDropDownList.DataSource = Folder.GetListOfAccessControlTypes();&lt;br /&gt;controlTypeDropDownList.DataBind();&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;It's quite simple, but I didn't know these methods before this. &lt;img alt="Tongue" src="http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/10.gif" /&gt; At least, I learnt something new.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-752234670453821202?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/752234670453821202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2008/03/set-security-access-to-folder.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/752234670453821202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/752234670453821202'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2008/03/set-security-access-to-folder.html' title='Set security access to folder'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-3874379479840229225</id><published>2008-03-21T18:15:00.002+08:00</published><updated>2008-03-21T18:22:26.765+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>List out all enum values</title><content type='html'>&lt;p&gt;I just found out the way to list out all the enum values. It's indeed very simple!&lt;/p&gt;  &lt;p&gt;For example, I want to list out all the enum values of FileAccess.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://lh4.google.com/kaka135/R-OI7krSLQI/AAAAAAAABHo/92ilSenVgag/enumList.jpg" /&gt; &lt;/p&gt;  &lt;div&gt;   &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;[] enumList = Enum.GetNames(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(FileAccess));&lt;br /&gt;DropDownList1.DataSource = enumList;&lt;br /&gt;DropDownList1.DataBind();&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;I also found out how to convert the string representation value to the enum value too.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;  &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;FileAccess fAccess = (FileAccess)Enum.Parse(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(FileAccess), DropDownList1.SelectedValue);&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;that's it. Isn't it simple? &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-3874379479840229225?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/3874379479840229225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2008/03/list-out-all-enum-values.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/3874379479840229225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/3874379479840229225'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2008/03/list-out-all-enum-values.html' title='List out all enum values'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-3126286510820846839</id><published>2008-03-21T10:57:00.002+08:00</published><updated>2008-03-21T11:04:19.955+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MCPD'/><title type='text'>MCPD: Learning Plan for Exam 70-536</title><content type='html'>URL: &lt;a href="http://learning.microsoft.com/manager/LearningPlanV2.aspx?resourceId=%7ba3e18fcd-60ed-489b-94d6-4c30e1bf9542%7d&amp;amp;clang=en-US"&gt;http://learning.microsoft.com/manager/LearningPlanV2.aspx?resourceId=%7ba3e18fcd-60ed-489b-94d6-4c30e1bf9542%7d&amp;amp;clang=en-US&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You may also sign in to &lt;a href="http://www.microsoft.com/learning/default.mspx"&gt;Micrsoft Learning&lt;/a&gt; to look for any learning resources, including the learning plan. You also also track your learning here.&lt;br /&gt;&lt;br /&gt;In this learning plan, there are recommended learning resources, where you can follow them step by step until you reach the stage of registering for the exam.&lt;br /&gt;I plan to follow this learning plan to start my learning process for Exam 70-536, then I'll see what extra resources I need when time goes by.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-3126286510820846839?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/3126286510820846839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2008/03/mcpd-learning-plan-for-exam-70-536.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/3126286510820846839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/3126286510820846839'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2008/03/mcpd-learning-plan-for-exam-70-536.html' title='MCPD: Learning Plan for Exam 70-536'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-5242773986970891703</id><published>2008-03-21T10:49:00.002+08:00</published><updated>2008-03-21T10:57:16.301+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MCPD'/><title type='text'>MCPD: Preparation Guide for Exam 70-536</title><content type='html'>URL: &lt;a href="http://www.microsoft.com/learning/exams/70-536.mspx"&gt;http://www.microsoft.com/learning/exams/70-536.mspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This will be my first paper:&lt;br /&gt;&lt;strong&gt;Exam 70-536 [Microsoft .NET Framework 2.0 - Application Development Foundation]&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;From the link above, you'll find these information:&lt;br /&gt;&lt;span style="color:#000099;"&gt;- Exam news&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;- Exam topics covered&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;- Audience profile&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;- Credit toward certification&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;- Code languages&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;- Prepartion tools and resources&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;- Skills measured&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I guess the most important is the skills measured section. You'll be told in detailed what knowledge are required in order to take the exam. You can use the long list to measure your knowledge.&lt;br /&gt;&lt;br /&gt;I just jot down the keywords for exam topics covered in this paper:&lt;br /&gt;&lt;span style="color:#006600;"&gt;1) system types &amp;amp; collections&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;2) service processes, threading, application domains&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;3) embedding configuration, diagnostic, management, and installation features&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;4) serialization &amp;amp; I/O&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;5) security&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;6) interoperability, reflection, mailing funcitonality&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;7) globalization, drawing and text manipulation&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-5242773986970891703?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/5242773986970891703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2008/03/mcpd-preparation-guide-for-exam-70-536.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5242773986970891703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5242773986970891703'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2008/03/mcpd-preparation-guide-for-exam-70-536.html' title='MCPD: Preparation Guide for Exam 70-536'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-2779772887729568611</id><published>2008-03-21T09:58:00.003+08:00</published><updated>2008-03-21T10:42:33.035+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MCPD'/><title type='text'>MCPD: Exam Question Types</title><content type='html'>Information extracted from: &lt;a href="http://www.microsoft.com/learning/mcpexams/policies/innovations.mspx" target="_blank"&gt;http://www.microsoft.com/learning/mcpexams/policies/innovations.mspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've found this site when I was looking for the information regarding MCPD.&lt;br /&gt;There are several types of exam questions. It may be good if we get ourselves familiar with these types:&lt;br /&gt;&lt;br /&gt;1. Hot area questions&lt;br /&gt;This kind of question asks you to indicate the correct answer by selecting one or more elements within a graphic.&lt;br /&gt;&lt;br /&gt;2. Active screen questions&lt;br /&gt;This kind of question asks you to configure a dialog box by changing one or more elements.&lt;br /&gt;&lt;br /&gt;3. Drag-and-drop quetsions&lt;br /&gt;This kind of question asks you to drag source objects to appropriate targets within a work area.&lt;br /&gt;&lt;br /&gt;4. Build list and reorder questions&lt;br /&gt;This kind of question asks you to indicate the correct answer by building an answer list.&lt;br /&gt;In a build list and reorder question, you need to build a list by dragging the appropriate source objects to the answer list and then placing them in the correct order based on criteria defined in the question.&lt;br /&gt;&lt;br /&gt;5. Create a tree questions&lt;br /&gt;This kind of question asks you to create a tree structure.&lt;br /&gt;You indicate the correct answer by dragging source nodes to the correct locations in the answer tree.&lt;br /&gt;Nodes consist of text and a small icon.&lt;br /&gt;&lt;br /&gt;6. Testlet exam format&lt;br /&gt;&lt;br /&gt;7. Windows 2000 simulation questions&lt;br /&gt;This kind of question asks you to indicate the correct answer by performing specific tasks such as configuring and installing network adapters or drivers, configuring and controlling access to files, and managing hardware devices. (This seems to be more applicable for System engineering exams)&lt;br /&gt;&lt;br /&gt;You may download the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=D4B474C8-2608-46AE-8267-75547A1BCA35&amp;amp;DisplayLang=en" target="_blank"&gt;MCP Exam Demos&lt;/a&gt; too, then you'll understand better what the aboved question types mean. It's quite fun to run through the exam demo. ^_^&lt;br /&gt;&lt;br /&gt;&lt;img alt="MCP Test Demo" src="http://lh5.google.com/kaka135/R-Mfn0rSLPI/AAAAAAAABHY/ZoNJEEvC0FI/MCP%20Test%20Demo.jpg" /&gt;&lt;br /&gt;There is an "Instructions" button to tell you what type of question it is, and how you should respond. A "Calculator" button is provided too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-2779772887729568611?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/2779772887729568611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2008/03/mcpd-exam-question-types.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2779772887729568611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2779772887729568611'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2008/03/mcpd-exam-question-types.html' title='MCPD: Exam Question Types'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-3563909294267760291</id><published>2008-03-19T09:44:00.005+08:00</published><updated>2008-03-21T01:24:04.996+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MCPD'/><title type='text'>MCPD - Start the Journey</title><content type='html'>&lt;a href="http://www.microsoft.com/learning/mcp/mcpd/webdev/default.mspx" target="_blank"&gt;&lt;img alt="MCPD" src="http://ifs6.imagefly.info/i/4b/mcp-hero-developer.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;I have been thinking of taking this certification - MCPD (Microsoft Certified Professional Developer) for quite long. Well, actually I have been thinking since MCSD (Microsoft Certified Solutions Developer), then it changed to MCAD (Microsoft Certified Application Developer). Finally, there came a new generation again.&lt;br /&gt;Finally, I've made a move - we've bought several books yesterday.&lt;br /&gt;Perhaps this time, I'm really going to pursue this cert, because the company is sponsoring. haha~~&lt;br /&gt;&lt;br /&gt;My boss has been asking us to look for external courses, and I think pursuing MCPD is a good idea. We've calculated the price of the books we are going to purchase, altogether 7 books, for 3 papers, cost us RM1600. It'll be a burden for me to spend this amount of money just on the books only. As the courses are too expensive, say RM2400 for 3 day course, that is RM800 for a day, RM100 for an hour. We've decided to study by ourselves, and we'll also see if there are any useful or interesting courses, then we can subscribe for them too. Perhaps we'll go for those topic-oriented courses, instead of going for the certication ones.&lt;br /&gt;&lt;br /&gt;I wish I can spend one hour per day to study on this. Perhaps reading the books, doing some research online, taking some sample tests. See how it goes.&lt;br /&gt;&lt;br /&gt;The papers I'm required to take are as follow:&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;1) Exam 70-536: Microsoft .NET Framework 2.0 - Application Development Foundation&lt;br /&gt;2) Exam 70-528: Microsoft .NET Framework 2.0 - Web-Based Client Development&lt;br /&gt;3) Exam 70-547: Designing and Developing Web Applications by using Microsoft .NET Framework&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;My first paper will be Application Development Foundation. I need to go and check out any resources for this MCPD, and hope to know anyone who's also taking or already taken this cert. ^_^&lt;br /&gt;&lt;br /&gt;More to find out soon...... I gotta keep myself motivated. haha~~&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;Reference:&lt;/span&gt;&lt;br /&gt;* &lt;a href="http://www.microsoft.com/learning/mcp/mcpd/webdev/default.mspx" target="_blank"&gt;MCPD Official website&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-3563909294267760291?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/3563909294267760291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2008/03/mcpd-start-journey.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/3563909294267760291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/3563909294267760291'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2008/03/mcpd-start-journey.html' title='MCPD - Start the Journey'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-7096052166007923585</id><published>2008-02-18T11:04:00.000+08:00</published><updated>2008-02-18T11:09:59.537+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GridView'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Set GridView Header Font Style in CSS</title><content type='html'>&lt;p&gt;I have defined my GridView header style in CSS. Because I've set my GridView to be sortable, so the header texts will be links, and it'll follow the style of Links as defined.&lt;/p&gt;  &lt;p&gt;I'd like to change the header text color to fit to header row color, and finally I've found the solution. &lt;/p&gt;  &lt;p&gt;Define the CSS like this:&lt;/p&gt;  &lt;div&gt;   &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;tr&lt;/span&gt;&lt;span style="color: #cc6633"&gt;.OrangeGridViewHeader&lt;/span&gt;, &lt;br /&gt;&lt;span style="color: #0000ff"&gt;tr&lt;/span&gt;&lt;span style="color: #cc6633"&gt;.OrangeGridViewHeader&lt;/span&gt; a:visited, &lt;br /&gt;&lt;span style="color: #0000ff"&gt;tr&lt;/span&gt;&lt;span style="color: #cc6633"&gt;.OrangeGridViewHeader&lt;/span&gt; a:&lt;span style="color: #0000ff"&gt;link&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;background-color&lt;/span&gt;:&lt;span style="color: #006080"&gt;#feaa66;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;font-family&lt;/span&gt;:&lt;span style="color: #006080"&gt;Verdana;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;font-weight&lt;/span&gt;: &lt;span style="color: #006080"&gt;bold;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;color&lt;/span&gt;:&lt;span style="color: #006080"&gt;#000;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;text-decoration&lt;/span&gt;:&lt;span style="color: #006080"&gt;none;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;tr&lt;/span&gt;&lt;span style="color: #cc6633"&gt;.OrangeGridViewHeader&lt;/span&gt; a:hover&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;background-color&lt;/span&gt;:&lt;span style="color: #006080"&gt;#feaa66;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;font-family&lt;/span&gt;:&lt;span style="color: #006080"&gt;Verdana;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;font-weight&lt;/span&gt;: &lt;span style="color: #006080"&gt;bold;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;color&lt;/span&gt;:&lt;span style="color: #006080"&gt;#000;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;text-decoration&lt;/span&gt;:&lt;span style="color: #006080"&gt;underline;&lt;/span&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Then set the HeaderStyle's CssClass to OrangeGridViewHeader. It's done! &lt;img alt="Happy" src="http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/1.gif" /&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-7096052166007923585?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/7096052166007923585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2008/02/set-gridview-header-font-style-in-css.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/7096052166007923585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/7096052166007923585'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2008/02/set-gridview-header-font-style-in-css.html' title='Set GridView Header Font Style in CSS'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-1366917563040867484</id><published>2008-01-08T11:00:00.000+08:00</published><updated>2008-01-08T11:40:12.144+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Formatting link style using CSS</title><content type='html'>&lt;p&gt;If you do not define the link style, by default, the link will always be underlined.&lt;/p&gt; &lt;p&gt;We can use CSS to format the style.&lt;/p&gt; &lt;p&gt;There are 4 selectors for links:&lt;/p&gt; &lt;table cellspacing="0" cellpadding="1" width="400" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="73"&gt;&lt;font color="#004000"&gt;&lt;strong&gt;a:link&lt;/strong&gt;&lt;/font&gt;&lt;/td&gt; &lt;td valign="top" width="325"&gt;defines the style for normal unvisited links.&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="73"&gt;&lt;strong&gt;&lt;font color="#004000"&gt;a:visited&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt; &lt;td valign="top" width="325"&gt;defines the style for visited links.&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="73"&gt;&lt;strong&gt;&lt;font color="#004000"&gt;a:active&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt; &lt;td valign="top" width="325"&gt;defines the style for active links.&lt;br&gt;A link becomes active once you click on it.&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="73"&gt;&lt;strong&gt;&lt;font color="#004000"&gt;a:hover&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt; &lt;td valign="top" width="325"&gt;defines the style for hovered links.&lt;br&gt;A link is hovered when the mouse moves over it.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;These are some of the styles I use:&lt;/p&gt; &lt;table cellspacing="0" cellpadding="1" width="400" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;&lt;img src="http://lh4.google.com/kaka135/R4Lj_YqIFWI/AAAAAAAAA18/qUnPXOO_7IY/SolidUnderlinedLink.jpg"&gt;&lt;/td&gt; &lt;td valign="top" width="198"&gt;Solid underlined link&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;&lt;img src="http://lh3.google.com/kaka135/R4Lj_IqIFVI/AAAAAAAAA10/7DSMLnVAWzw/NoUnderlinedLink.jpg"&gt;&lt;/td&gt; &lt;td valign="top" width="198"&gt;No underlined link&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;&lt;img src="http://lh3.google.com/kaka135/R4Lj_IqIFUI/AAAAAAAAA1s/HGOoOcjIjo8/dottedUnderlinedLink.jpg"&gt;&lt;/td&gt; &lt;td valign="top" width="198"&gt;Dotted underlined link&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I want my links to be underlined when they are at normal state, visited state and also active stated, but no underlined when mouse over it:&lt;/p&gt; &lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;a:&lt;span style="color: #0000ff"&gt;link&lt;/span&gt;, a:visited, a:active&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;color&lt;/span&gt;: &lt;span style="color: #006080"&gt;#2666a6;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;text-decoration&lt;/span&gt;:&lt;span style="color: #006080"&gt;underline;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;a:hover&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;color&lt;/span&gt;:&lt;span style="color: #006080"&gt;#2666a6;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;text-decoration&lt;/span&gt;: &lt;span style="color: #006080"&gt;none;&lt;/span&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;If you want to have the dotted underlined links, you may declare it like this.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;As there's no text-decoration as dotted underlined, so we make use of the bottom border.&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;a:&lt;span style="color: #0000ff"&gt;link&lt;/span&gt;, a:visited, a:active&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;color&lt;/span&gt;: &lt;span style="color: #006080"&gt;#2666a6;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;text-decoration&lt;/span&gt;:&lt;span style="color: #006080"&gt;none;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;border&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;bottom&lt;/span&gt;:&lt;span style="color: #006080"&gt;dotted 1px #2666a6;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;a:hover&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;color&lt;/span&gt;:&lt;span style="color: #006080"&gt;#2666a6;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;text-decoration&lt;/span&gt;: &lt;span style="color: #006080"&gt;none;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;border&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;bottom&lt;/span&gt;:&lt;span style="color: #006080"&gt;none;&lt;/span&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Have fun!! &lt;img alt="Happy" src="http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/1.gif"&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp; &lt;p&gt;References:&lt;br /&gt;&lt;p&gt;* &lt;a href="http://www.echoecho.com/csslinks.htm"&gt;EchoEcho.Com - Tutorial - CSS Links&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/78343946459641446-1366917563040867484?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/1366917563040867484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2008/01/formatting-link-style-using-css.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/1366917563040867484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/1366917563040867484'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2008/01/formatting-link-style-using-css.html' title='Formatting link style using CSS'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-3607527407657941240</id><published>2007-12-27T09:55:00.000+08:00</published><updated>2007-12-27T09:56:26.136+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Convert HTML color to System.Drawing.Color</title><content type='html'>&lt;p&gt;It's very simple to convert a HTML color (Hexadecimal color) to System.Drawing.Color. &lt;/p&gt; &lt;p&gt;Just ask the System.Drawing.ColorTranslator class to do so.&lt;/p&gt; &lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 56.76%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; height: 16px; background-color: #f4f4f4; border-bottom-style: none"&gt;Color myColor = System.Drawing.ColorTranslator.FromHtml(&lt;span style="color: #006080"&gt;"#660000"&lt;/span&gt;);&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Remember to include the leading '#' sign.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;You may also pass in &lt;a href="http://www.w3schools.com/css/css_colornames.asp" target="_blank"&gt;color names&lt;/a&gt; instead of the hexadecimal color. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Same, if you want to convert the System.Drawing.Color to hexadecimal string.&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 70.74%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; height: 16px; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; htmlColor = System.Drawing.ColorTranslator.ToHtml(System.Drawing.Color.Navy);&lt;/pre&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-3607527407657941240?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/3607527407657941240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/12/convert-html-color-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/3607527407657941240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/3607527407657941240'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/12/convert-html-color-to.html' title='Convert HTML color to System.Drawing.Color'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-9026536315319807411</id><published>2007-12-20T12:00:00.000+08:00</published><updated>2007-12-20T12:03:42.689+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='Website to share'/><title type='text'>FusionChart Free</title><content type='html'>&lt;p&gt;URL: &lt;a title="http://www.fusioncharts.com/free/Default.asp" href="http://www.fusioncharts.com/free/Default.asp"&gt;http://www.fusioncharts.com/free/Default.asp&lt;/a&gt; &lt;p&gt;&lt;a href="http://www.fusioncharts.com/free/Default.asp" target="_blank"&gt;&lt;img src="http://ifs8.imagefly.info/ifs8/cd/FusionChart.jpg"&gt;&lt;/a&gt;  &lt;p&gt;Would you like to have nice animated flash chart displayed in your website? &lt;br&gt;I was looking for charting tool, and found this -- &lt;a href="http://www.fusioncharts.com/free/Default.asp" target="_blank"&gt;FusionCharts Free&lt;/a&gt;. It's a flash charting component and the good news is It's FREE.  &lt;p&gt;It just came out with a newer version, &lt;a href="http://www.fusioncharts.com/free/Default.asp" target="_blank"&gt;FusionCharts Free V2&lt;/a&gt;. If I'm not mistaken, the version 1 was only free for personal use, so I couldn't recomment it to my company, unless we pay for it. Just now, I checked through the &lt;a href="http://www.fusioncharts.com/free/TermsOfUse.asp" target="_blank"&gt;License Agreement&lt;/a&gt; again, it seems like it's now free for indivisual/research/commercial user. It's completely free to OEM and distributed with the open or closed source application. Of course, there are also some rules you need to follow. Well, it's really a good news to me, and I can propose this to my company, coz I really like the charts, they look nice!  &lt;ul&gt; &lt;li&gt;&lt;font color="#8080ff"&gt;&lt;strong&gt;* FusionCharts Free can be used for free if you are a individual/research/commercial user. &lt;/strong&gt;&lt;/font&gt; &lt;li&gt;&lt;font color="#8080ff"&gt;&lt;strong&gt;* FusionCharts Free can be distributed for free with your free or commercial softwares, irrespective of whether they're open source or closed source.&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;It's using XML data, so it's quite easy for everyone to embed this chart in your application using your own language. There are bar charts, line charts, pie charts, area charts and etc. In the new version, they even include Gantt chart and Funnel chart. You may view the types of chart in the &lt;a href="http://www.fusioncharts.com/free/Gallery.asp" target="_blank"&gt;Chart Gallery&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;Funnel Chart &amp;amp; Gantt Chart&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs8.imagefly.info/ifs8/03/FusionChart_FunnelCh.jpg"&gt; &lt;img src="http://ifs8.imagefly.info/ifs8/0c/FusionChart_GanttCha.jpg"&gt; &lt;/p&gt; &lt;p&gt;You can download the FusionChart Free V2 here: &lt;a href="http://www.fusioncharts.com/free/Download.asp" target="_blank"&gt;Download&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Remember to read the &lt;a href="http://www.fusioncharts.com/free/TermsOfUse.asp" target="_blank"&gt;License Agreement / Terms of Use&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I'll post some prototypes after I've embedded this chart in my application. &lt;img alt="Love Struck" src="http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/8.gif"&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-9026536315319807411?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/9026536315319807411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/12/fusionchart-free.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/9026536315319807411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/9026536315319807411'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/12/fusionchart-free.html' title='FusionChart Free'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-4061969986711091676</id><published>2007-12-06T09:10:00.001+08:00</published><updated>2007-12-06T09:10:49.336+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>CSS Button Designer</title><content type='html'>&lt;p&gt;URL: &lt;a title="http://www.pagetutor.com/button_designer/index.html" href="http://www.pagetutor.com/button_designer/index.html" target="_blank"&gt;http://www.pagetutor.com/button_designer/index.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I plan to build some CSS buttons by myself, instead of using Image Buttons in ASP.NET, especially for the rollover effect.&lt;/p&gt; &lt;p&gt;I've found this useful tool to design a CSS button, provided by &lt;a href="http://www.pagetutor.com" target="_blank"&gt;PageTutor.com&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.pagetutor.com/button_designer/index.html" target="_blank" atomicselection="true"&gt;&lt;img src="http://lh5.google.com/kaka135/R1dGUAwN58I/AAAAAAAAAwY/NxCUaLwaoNY/CssButtonDesigner.jpg"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;It's very simple for you to generate your own button. You just need to define the button style, you can even add the background image for the button. Then, you can click on &lt;strong&gt;Mouseover&lt;/strong&gt; tab to define the mouseover effect. You'll get the CSS &amp;amp; javascripts codes, plus the button codes in the &lt;strong&gt;Code&lt;/strong&gt; tab. It's just that simple and friendly to build a CSS button. Isn't it cool? This saved me a lot of hassles to study and build my own buttons. &lt;/p&gt; &lt;p&gt;You can also go to the &lt;strong&gt;Samples&lt;/strong&gt; tab to look for some already defined buttons, and apply them in your applications. You may make some amendments on the samples to fit your applications too. Enjoy!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-4061969986711091676?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/4061969986711091676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/12/css-button-designer.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/4061969986711091676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/4061969986711091676'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/12/css-button-designer.html' title='CSS Button Designer'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-1799100777750908086</id><published>2007-12-04T11:56:00.001+08:00</published><updated>2007-12-04T12:02:43.408+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET Custom Controls'/><title type='text'>Creating ASP.NET Custom Controls with Style</title><content type='html'>&lt;p&gt;Reference: &lt;a href="http://www.code-magazine.com/Article.aspx?quickid=0309091" target="_blank"&gt;CoDe Magazine - Creating ASP.NET Custom Controls with Style&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#000040"&gt;My Notes:&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;*&amp;nbsp;A control's &lt;strong&gt;Render&lt;/strong&gt; method will render a control in the last step of a control's life cycle, just before the control is disposed.&lt;/p&gt; &lt;p&gt;*&amp;nbsp;The only parameter for Render method is an &lt;strong&gt;HtmlTextWriter&lt;/strong&gt; object.&lt;/p&gt; &lt;p&gt;*&amp;nbsp;&lt;strong&gt;HtmlTextWriter&lt;/strong&gt; object writes HTML to the output stream. It provides a set of Write methods.&lt;/p&gt; &lt;p&gt;By default, ASP.NET renders HTML 3.2 for all non-Microsoft browsers that does support HTML 4.0 and CSS properly.&lt;/p&gt; &lt;p&gt;*&amp;nbsp;It's better practice to use CSS. &lt;/p&gt; &lt;div class="csharpcode-wrapper"&gt; &lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 27.2%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; height: 16px; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt; &lt;span style="color: #ff0000"&gt;style&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="color:red"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;My Text&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;is better than&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 33.22%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; height: 16px; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;font&lt;/span&gt; &lt;span style="color: #ff0000"&gt;color&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="red"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;My Text&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;font&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#000040"&gt;Create different HTML for different browsers:&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;*&amp;nbsp;To check the type of requesting browser: use &lt;strong&gt;HttpBrowserCapabilities&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;HttpBrowserCapabilities client = Page.Request.Browser;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (client.Browser == &lt;span style="color: #006080"&gt;"IE"&lt;/span&gt;)&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (client.MajorVersion &amp;gt; 6)&lt;br /&gt;   {&lt;br /&gt;       writer.Write(&lt;span style="color: #006080"&gt;"You are using IE 7.0 or above."&lt;/span&gt;);&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;   {&lt;br /&gt;       writer.Write(&lt;span style="color: #006080"&gt;"You are using IE 6.0 or below."&lt;/span&gt;);&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;   writer.Write(&lt;span style="color: #006080"&gt;"You are not using IE"&lt;/span&gt;);&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="csharpcode-wrapper"&gt;*&amp;nbsp;Besides checking the browser type, the alternative way is to check the type of &lt;strong&gt;HtmlTextWriter&lt;/strong&gt; passed to the &lt;strong&gt;Render&lt;/strong&gt; method. It can be either &lt;strong&gt;HtmlTextWriter&lt;/strong&gt; or &lt;strong&gt;Html32TextWriter&lt;/strong&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div class="csharpcode-wrapper"&gt;*&amp;nbsp;&lt;strong&gt;HtmlTextWriter&lt;/strong&gt;: indicates that a browser supports HTML 4.0 with CSS.&lt;/div&gt;&lt;br /&gt;&lt;div class="csharpcode-wrapper"&gt;*&amp;nbsp;&lt;strong&gt;Html32TextWriter&lt;/strong&gt;: indicates the browser only supports HTML 3.2 without CSS.&lt;/div&gt;&lt;br /&gt;&lt;div class="csharpcode-wrapper"&gt;Downside: All non-Microsoft browsers, including Netscape versions that do support CSS, pass Html32TextWriter to the Render method.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (writer.GetType().ToString() == &lt;span style="color: #006080"&gt;"HtmlTextWriter"&lt;/span&gt;)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #008000"&gt;//Render CSS&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #008000"&gt;//Render HTML 3.2&lt;/span&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;font color="#000080"&gt;#METHOD 1: Basic HTML output&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;writer.Write(&lt;span style="color: #006080"&gt;"&amp;lt;H2&amp;gt;"&lt;/span&gt; + _message + &lt;span style="color: #006080"&gt;"&amp;lt;/H2&amp;gt;"&lt;/span&gt;);&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;font color="#000080"&gt;#METHOD 2: Create HTML with Write &amp;amp; WriteLine&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;writer.WriteLine(&lt;span style="color: #006080"&gt;"&amp;lt;p&amp;gt;"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008000"&gt;//Indent HTML by inserting a Tab&lt;/span&gt;&lt;br /&gt;writer.Write(HtmlTextWriter.DefaultTabString);&lt;br /&gt;&lt;span style="color: #008000"&gt;//Make text red with Font tag&lt;/span&gt;&lt;br /&gt;writer.Write(&lt;span style="color: #006080"&gt;"&amp;lt;font color=\"red\"&amp;gt;"&lt;/span&gt;);&lt;br /&gt;writer.Write(_message);&lt;br /&gt;writer.WriteLine(&lt;span style="color: #006080"&gt;"&amp;lt;/font&amp;gt;"&lt;/span&gt;);&lt;br /&gt;writer.WriteLine(&lt;span style="color: #006080"&gt;"&amp;lt;/p&amp;gt;"&lt;/span&gt;);&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;font color="#000080"&gt;#METHOD 3: Using Writer Helper methods to create HTML&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;writer.WriteFullBeginTag(&lt;span style="color: #006080"&gt;"p"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008000"&gt;//Indent HTML by inserting a Tab&lt;/span&gt;&lt;br /&gt;writer.Write(HtmlTextWriter.DefaultTabString);&lt;br /&gt;&lt;span style="color: #008000"&gt;//Make text blue with Font tag&lt;/span&gt;&lt;br /&gt;writer.WriteBeginTag(&lt;span style="color: #006080"&gt;"font"&lt;/span&gt;);&lt;br /&gt;writer.WriteAttribute(&lt;span style="color: #006080"&gt;"color"&lt;/span&gt;, &lt;span style="color: #006080"&gt;"blue"&lt;/span&gt;);&lt;br /&gt;writer.Write(HtmlTextWriter.TagRightChar);&lt;br /&gt;writer.Write(_message);&lt;br /&gt;writer.WriteEndTag(&lt;span style="color: #006080"&gt;"font"&lt;/span&gt;);&lt;br /&gt;writer.WriteEndTag(&lt;span style="color: #006080"&gt;"p"&lt;/span&gt;);&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;font color="#000080"&gt;#METHOD 4: Writing Styles&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #008000"&gt;//Write begin tag without closing &amp;gt;&lt;/span&gt;&lt;br /&gt;writer.WriteBeginTag(&lt;span style="color: #006080"&gt;"p"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008000"&gt;//Add a style&lt;/span&gt;&lt;br /&gt;writer.Write(&lt;span style="color: #006080"&gt;" style"&lt;/span&gt;);&lt;br /&gt;writer.Write(HtmlTextWriter.EqualsDoubleQuoteString);&lt;br /&gt;writer.WriteStyleAttribute(&lt;span style="color: #006080"&gt;"color"&lt;/span&gt;, &lt;span style="color: #006080"&gt;"green"&lt;/span&gt;);&lt;br /&gt;writer.Write(HtmlTextWriter.DoubleQuoteChar);&lt;br /&gt;&lt;span style="color: #008000"&gt;//Output the '&amp;gt;' for the 'p' tag&lt;/span&gt;&lt;br /&gt;writer.Write(HtmlTextWriter.TagRightChar);&lt;br /&gt;writer.Write(_message);&lt;br /&gt;&lt;span style="color: #008000"&gt;//Write end tag&lt;/span&gt;&lt;br /&gt;writer.WriteEndTag(&lt;span style="color: #006080"&gt;"p"&lt;/span&gt;);&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-1799100777750908086?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/1799100777750908086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/12/creating-aspnet-custom-controls-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/1799100777750908086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/1799100777750908086'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/12/creating-aspnet-custom-controls-with.html' title='Creating ASP.NET Custom Controls with Style'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-7030559286186695894</id><published>2007-11-25T01:25:00.001+08:00</published><updated>2007-11-25T01:29:50.291+08:00</updated><title type='text'>How to stop getting "Preparing to install" Windows Installer message when you start Visual Basic 6.0?</title><content type='html'>&lt;p&gt;Ever got this message "&lt;strong&gt;&lt;font color="#0000ff"&gt;Preparing to install...&lt;/font&gt;&lt;/strong&gt; " when you are trying to launch your Visual Basic 6? &lt;/p&gt; &lt;p&gt;I had this problem when I have multiple user accounts in my machine, I'll get this message as VB6 was installed using another user account. There was a workaround for this, if you know the username and password for the&amp;nbsp;user account&amp;nbsp;who installed VB6. &lt;/p&gt; &lt;p&gt;1) Just right-click on the VB6 program, select "&lt;strong&gt;&lt;font color="#0000ff"&gt;Run as...&lt;/font&gt;&lt;/strong&gt;"&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs8.imagefly.info/ifs8/78/Run as another user.jpg"&gt; &lt;/p&gt; &lt;p&gt;2) Enter the username &amp;amp; password who installed the VB6.&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs8.imagefly.info/ifs8/01/Run as another user .jpg"&gt; &lt;/p&gt; &lt;p&gt;But it's kinda frustrating, coz everytime you need to run as another user for using VB6.&lt;/p&gt; &lt;p&gt;Finally, my colleague has taught me a way to fix this.&lt;/p&gt; &lt;p&gt;1) Go to &lt;strong&gt;&lt;font color="#0000ff"&gt;C:\Windows\System32&lt;/font&gt;&lt;/strong&gt; folder, and look for &lt;strong&gt;&lt;font color="#0000ff"&gt;msi.dll&lt;/font&gt;&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;2) Rename the msi.dll to any other name.&lt;/p&gt; &lt;p&gt;3) Go to &lt;strong&gt;&lt;font color="#0000ff"&gt;C:\Windows\System32\dllcache&lt;/font&gt;&lt;/strong&gt; folder, and rename &lt;strong&gt;&lt;font color="#0000ff"&gt;msi.dll &lt;/font&gt;&lt;/strong&gt;too.&lt;/p&gt; &lt;p&gt;If you didn't do this step, the &lt;strong&gt;&lt;font color="#0000ff"&gt;msi.dll&lt;/font&gt;&lt;/strong&gt; in System32 folder will automatically be recreated.&lt;/p&gt; &lt;p&gt;If you couldn't find this &lt;strong&gt;&lt;font color="#0000ff"&gt;dllcache&lt;/font&gt;&lt;/strong&gt; folder, you may need to change a property in the Folder options.&lt;/p&gt; &lt;p&gt;In Windows Explorer --&amp;gt; Go to Tools menu --&amp;gt; Select Folder Options --&amp;gt; Click on View tab --&amp;gt; Uncheck the option "&lt;strong&gt;&lt;font color="#0000ff"&gt;Hide protected operating system files (Recommended)&lt;/font&gt;&lt;/strong&gt;".&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs8.imagefly.info/ifs8/7f/show protected folde.jpg"&gt; &lt;/p&gt; &lt;p&gt;4) Launch VB6, and now you are able to launch VB6 without getting the error message.&lt;/p&gt; &lt;p&gt;5) Rename the file to &lt;strong&gt;&lt;font color="#0000ff"&gt;msi.dll&lt;/font&gt;&lt;/strong&gt; in System32 folder and dllcache folder.&lt;/p&gt; &lt;p&gt;Done! ^_^&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-7030559286186695894?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/7030559286186695894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/11/how-to-stop-getting-to-install-windows.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/7030559286186695894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/7030559286186695894'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/11/how-to-stop-getting-to-install-windows.html' title='How to stop getting &amp;quot;Preparing to install&amp;quot; Windows Installer message when you start Visual Basic 6.0?'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-8411042873276653957</id><published>2007-11-20T18:50:00.001+08:00</published><updated>2007-11-20T18:50:08.293+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>ModalPopup Extender</title><content type='html'>&lt;p&gt;I always think it's really nice for some web sites to popup a dialog, while the background color fades out. It's actually quite easy to make it happen with ASP.NET Ajax Control Extender now. ^_^&lt;/p&gt; &lt;p&gt;&lt;img src="http://lh6.google.com/kaka135/R0JH85NsEiI/AAAAAAAAAoI/lwR51ku9NgI/popup.jpg"&gt; &lt;/p&gt; &lt;p&gt;Copy these classes to your css file:&lt;/p&gt; &lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #cc6633"&gt;.modalBackground&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;background-color&lt;/span&gt;:&lt;span style="color: #006080"&gt;Gray;&lt;/span&gt;&lt;br /&gt;    filter:alpha(opacity=70);&lt;br /&gt;    opacity:&lt;span style="color: #006080"&gt;0.7;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #cc6633"&gt;.modalPopup&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;background-color&lt;/span&gt;:&lt;span style="color: #006080"&gt;#FFFFDD;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;border-width&lt;/span&gt;:&lt;span style="color: #006080"&gt;3px;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;border-style&lt;/span&gt;:&lt;span style="color: #006080"&gt;solid;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;border-color&lt;/span&gt;:&lt;span style="color: #006080"&gt;Gray;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;padding&lt;/span&gt;:&lt;span style="color: #006080"&gt;3px;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;width&lt;/span&gt;:&lt;span style="color: #006080"&gt;250px;&lt;/span&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;During design time, add the following controls to the web page.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://lh3.google.com/kaka135/R0KJhJNsEjI/AAAAAAAAAoU/kIXCF9rZup0/popup_design.jpg"&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;In the HTML page, add these attributes to the ModalPopupExtender:&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&amp;lt;ajaxToolkit:ModalPopupExtender &lt;br /&gt;    id=&lt;span style="color: #006080"&gt;"ModalPopupExtender2"&lt;/span&gt; &lt;br /&gt;    runat=&lt;span style="color: #006080"&gt;"server"&lt;/span&gt; &lt;br /&gt;    OnOkScript=&lt;span style="color: #006080"&gt;"fnClickOK()"&lt;/span&gt; &lt;br /&gt;    CancelControlID=&lt;span style="color: #006080"&gt;"btnCancel1"&lt;/span&gt; &lt;br /&gt;    OkControlID=&lt;span style="color: #006080"&gt;"btnOK1"&lt;/span&gt; &lt;br /&gt;    DropShadow=&lt;span style="color: #006080"&gt;"true"&lt;/span&gt; &lt;br /&gt;    BackgroundCssClass=&lt;span style="color: #006080"&gt;"modalBackground"&lt;/span&gt; &lt;br /&gt;    PopupControlID=&lt;span style="color: #006080"&gt;"Panel2"&lt;/span&gt; &lt;br /&gt;    TargetControlID=&lt;span style="color: #006080"&gt;"btnClickToOpen"&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;For the popup Panel, define these attributes:&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&amp;lt;asp:Panel &lt;br /&gt;    id=&lt;span style="color: #006080"&gt;"Panel2"&lt;/span&gt; &lt;br /&gt;    runat=&lt;span style="color: #006080"&gt;"server"&lt;/span&gt; &lt;br /&gt;    style=&lt;span style="color: #006080"&gt;"display: none"&lt;/span&gt; &lt;br /&gt;    CssClass=&lt;span style="color: #006080"&gt;"modalPopup"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Create this function&amp;nbsp;in javascript, if you want to use the server-side postback, otherwise you can just create a javascript function where you will perform something when the user clicks on OK button in the popup dialog.&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; fnClickOK(sender, e)&lt;br /&gt;{&lt;br /&gt;   __doPostBack(sender,e);&lt;br /&gt;} &lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Set the OnClientClick event for the "Click here!" button and "OK" button&amp;nbsp;in the Page_Load event. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;p&gt;&lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!IsPostBack)&lt;br /&gt;        {&lt;br /&gt;            btnOk1.OnClientClick = String.Format(&lt;span style="color: #006080"&gt;"fnClickOK('{0}','{1}')"&lt;/span&gt;, btnOk1.UniqueID, &lt;span style="color: #006080"&gt;""&lt;/span&gt;);&lt;br /&gt;            btnClickToOpen.OnClientClick = String.Format(&lt;span style="color: #006080"&gt;"fnClickOK('{0}','{1}')"&lt;/span&gt;, btnClickToOpen.UniqueID, &lt;span style="color: #006080"&gt;""&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;    }&lt;/p&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Enter the codes in the btnOk1_Click &amp;amp; btnClickToOpen_Click event.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Call the ModalPopupExtender Show() method to&amp;nbsp;popup the modal dialog.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; btnOk1_Click(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;    lblName.Text = &lt;span style="color: #006080"&gt;"Hello, "&lt;/span&gt; + txtName.Text +&lt;br /&gt;        &lt;span style="color: #006080"&gt;". You have selected "&lt;/span&gt; + DropDownList1.Text;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; btnClickToOpen_Click(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;    DropDownList1.Items.Clear();&lt;br /&gt;    DropDownList1.Items.Add(&lt;span style="color: #006080"&gt;"Red"&lt;/span&gt;);&lt;br /&gt;    DropDownList1.Items.Add(&lt;span style="color: #006080"&gt;"Purple"&lt;/span&gt;);&lt;br /&gt;    DropDownList1.Items.Add(&lt;span style="color: #006080"&gt;"Black"&lt;/span&gt;);&lt;br /&gt;    ModalPopupExtender2.Show();&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;* If you want to refer to an external javascript file, you just need to add this line of code in the HTML file:&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&amp;lt;script language=&lt;span style="color: #006080"&gt;"javascript"&lt;/span&gt; type=&lt;span style="color: #006080"&gt;"text/javascript"&lt;/span&gt; src=&lt;span style="color: #006080"&gt;"AjaxPrototype.js"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-8411042873276653957?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/8411042873276653957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/11/modalpopup-extender.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8411042873276653957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8411042873276653957'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/11/modalpopup-extender.html' title='ModalPopup Extender'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-3465595968549511181</id><published>2007-11-20T17:04:00.001+08:00</published><updated>2007-11-20T17:04:26.396+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='MyPrototype'/><title type='text'>Collapsible Panel</title><content type='html'>&lt;p&gt;I've just learnt how to do this collapsible panel with ASP.NET Ajax Control Extender, it's actually quite simple. ^_^&lt;/p&gt; &lt;p&gt;At the beginning, create these controls on the screen:&lt;/p&gt; &lt;p&gt;&lt;img src="http://lh6.google.com/kaka135/R0KOb5NsEkI/AAAAAAAAAoc/h_xo6XqAV64/UI.gif"&gt; &lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="478" border="0" unselectable="on"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="253"&gt;&lt;strong&gt;Control&lt;/strong&gt;&lt;/td&gt; &lt;td valign="top" width="223"&gt;&lt;strong&gt;Control Name&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="273"&gt;ScriptManager&lt;/td&gt; &lt;td valign="top" width="233"&gt;ScriptManager1&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="277"&gt;CollapsiblePanelExtender&lt;/td&gt; &lt;td valign="top" width="237"&gt;CollapsiblePanelExtender1&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="276"&gt;Panel&lt;/td&gt; &lt;td valign="top" width="239"&gt;TitlePanel&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="275"&gt;Panel&lt;/td&gt; &lt;td valign="top" width="240"&gt;ContentPanel&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="274"&gt;Image&lt;/td&gt; &lt;td valign="top" width="241"&gt;Image1&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="274"&gt;Label&lt;/td&gt; &lt;td valign="top" width="241"&gt;Label1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;Define&amp;nbsp;these CSS classes:&lt;/p&gt; &lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #cc6633"&gt;.collapsePanel&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;width&lt;/span&gt;:&lt;span style="color: #006080"&gt;640px;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;height&lt;/span&gt;:&lt;span style="color: #006080"&gt;0px;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;background-color&lt;/span&gt;:&lt;span style="color: #006080"&gt;White;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;overflow&lt;/span&gt;:&lt;span style="color: #006080"&gt;hidden;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #cc6633"&gt;.collapsePanelHeader&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;width&lt;/span&gt;:&lt;span style="color: #006080"&gt;640px;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;height&lt;/span&gt;:&lt;span style="color: #006080"&gt;20px;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;background-color&lt;/span&gt;:&lt;span style="color: #006080"&gt;Silver;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;font-weight&lt;/span&gt;:&lt;span style="color: #006080"&gt;bold;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;float&lt;/span&gt;:&lt;span style="color: #006080"&gt;left;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;padding&lt;/span&gt;:&lt;span style="color: #006080"&gt;5px;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;cursor&lt;/span&gt;:&lt;span style="color: #006080"&gt;pointer;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;vertical-align&lt;/span&gt;:&lt;span style="color: #006080"&gt;middle;&lt;/span&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Remove the width and height for the TitlePanel and ContentPanel, and set the CssClass attribute:&lt;/p&gt;&lt;br /&gt;&lt;table cellspacing="0" cellpadding="2" width="400" border="0" unselectable="on"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="200"&gt;TitlePanel&lt;/td&gt;&lt;br /&gt;&lt;td valign="top" width="200"&gt;collapsePanelHeader&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="200"&gt;ContentPanel&lt;/td&gt;&lt;br /&gt;&lt;td valign="top" width="200"&gt;collapsePanel&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;In the HTML page, add these attributes to the CollapsiblePanelExtender:&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ajaxToolkit:CollapsiblePanelExtender&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="CollapsiblePanelExtender1"&lt;/span&gt; &lt;br /&gt;        &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="server"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;TargetControlID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="ContentPanel"&lt;/span&gt; &lt;br /&gt;        &lt;span style="color: #ff0000"&gt;ExpandControlID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="TitlePanel"&lt;/span&gt; &lt;br /&gt;        &lt;span style="color: #ff0000"&gt;CollapseControlID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="TitlePanel"&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #ff0000"&gt;Collapsed&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="true"&lt;/span&gt; &lt;br /&gt;        &lt;span style="color: #ff0000"&gt;TextLabelID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Label1"&lt;/span&gt; &lt;br /&gt;        &lt;span style="color: #ff0000"&gt;ExpandedText&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Hide Details..."&lt;/span&gt;  &lt;br /&gt;        &lt;span style="color: #ff0000"&gt;CollapsedText&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Show Details..."&lt;/span&gt; &lt;br /&gt;        &lt;span style="color: #ff0000"&gt;ImageControlID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Image1"&lt;/span&gt; &lt;br /&gt;        &lt;span style="color: #ff0000"&gt;ExpandedImage&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Images/Expanded.gif"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;CollapsedImage&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Images/Collapsed.gif"&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #ff0000"&gt;SuppressPostBack&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="true"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ajaxToolkit:CollapsiblePanelExtender&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;It's done.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://lh6.google.com/kaka135/R0KXY5NsEnI/AAAAAAAAAo0/U-xyRnQqvPQ/CollapsedPanel.gif"&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://lh6.google.com/kaka135/R0KXY5NsEoI/AAAAAAAAAo8/kLsT9jd3Y1E/ExpandedPanel.gif"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-3465595968549511181?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/3465595968549511181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/11/collapsible-panel.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/3465595968549511181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/3465595968549511181'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/11/collapsible-panel.html' title='Collapsible Panel'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-2691624898305248472</id><published>2007-11-11T11:24:00.002+08:00</published><updated>2008-04-26T09:25:54.472+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Website to share'/><title type='text'>ASP Spider - Free Web Hosting</title><content type='html'>&lt;p&gt;URL: &lt;a title="http://www.aspspider.com/" href="http://www.aspspider.com/"&gt;http://www.aspspider.com/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.aspspider.com/" target="_blank" atomicselection="true"&gt;&lt;img src="http://lh4.google.com/kaka135/RzZ0a6eil_I/AAAAAAAAAmU/Fq4epbYFBhs/aspspider_logo.gif" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;This is a ASP.NET web hosting with SQL Server Express, FREE version. &lt;/p&gt; &lt;p&gt;I've registered to this web hosting when I started to learn ASP.NET, it was quite hard for me to find other free web hosting at that time. &lt;/p&gt; &lt;p&gt;At the beginning, you are given 10MB disk space, where you can &lt;a href="http://www.aspspider.com/tips/Tip7.aspx" target="_blank"&gt;increase the disk quota&lt;/a&gt; up to 200MB.&lt;/p&gt; &lt;p&gt;The registration was closed for quite some time, and I just found out it's open again now. For those who are interested in getting this free web hosting, you may click on this link: &lt;a href="http://www.aspspider.com/profiles/Register.aspx" target="_blank"&gt;Register Now&lt;/a&gt;&lt;/p&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;[Updated on 26 April 2008]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;I just checked out the site, and found out the site is going to stop offering the free ASP.NET web hosting services starting 1 May 2008. I have to look for other free ASP.NET web hosting sites. :p&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-2691624898305248472?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/2691624898305248472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/11/asp-spider-free-web-hosting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2691624898305248472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2691624898305248472'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/11/asp-spider-free-web-hosting.html' title='ASP Spider - Free Web Hosting'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-2982264127848171096</id><published>2007-11-02T15:16:00.001+08:00</published><updated>2007-11-02T15:16:09.034+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MyTutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Website to share'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Liquid page layout using CSS</title><content type='html'>&lt;p&gt;Reference to: &lt;a href="http://www.maxdesign.com.au/presentation/liquid/" target="_blank"&gt;MaxDesign - Liquid Layouts&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I've been almost the whole week to do this simple task, to locate three buttons in the home page using CSS. I was using HTML table to organize the page layout, but found out using CSS makes the page load faster, thus I decided to learn CSS for my project. After about a week of research, finally I've found this, and it really saves me! This tutorial is very simple, you can just follow step by step and you'll get your page layout done.&lt;/p&gt; &lt;p&gt;&lt;img src="http://lh6.google.com/kaka135/RyrMckyJb3I/AAAAAAAAAlE/DqAKjig7cLg/liquidpagelayout.jpg"&gt; &lt;/p&gt; &lt;p&gt;There are &lt;a href="http://www.maxdesign.com.au/presentation/liquid/#definitions" target="_blank"&gt;some definitions&lt;/a&gt; regarding liquid layout and fixed-width layout, then you'll know which one you should be using.&lt;/p&gt; &lt;p&gt;Copy these to your css file:&lt;/p&gt; &lt;div&gt; &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;/* COLUMNS */&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; #leftColumn&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;float&lt;/span&gt;: &lt;span style="color: #006080"&gt;left;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;width&lt;/span&gt;: &lt;span style="color: #006080"&gt;30%;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;margin&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;left&lt;/span&gt;: &lt;span style="color: #006080"&gt;4%;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;text-align&lt;/span&gt;:&lt;span style="color: #006080"&gt;center;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;display&lt;/span&gt;:&lt;span style="color: #006080"&gt;inline;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;border&lt;/span&gt;:&lt;span style="color: #006080"&gt;dotted 1px #ccc;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt; &amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt; #middleColumn&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;float&lt;/span&gt;: &lt;span style="color: #006080"&gt;left;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;width&lt;/span&gt;: &lt;span style="color: #006080"&gt;30%;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;margin&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;left&lt;/span&gt;: &lt;span style="color: #006080"&gt;1%;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;text-align&lt;/span&gt;:&lt;span style="color: #006080"&gt;center;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;border&lt;/span&gt;:&lt;span style="color: #006080"&gt;dotted 1px #ccc;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt; &amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  21:&lt;/span&gt; #rightColumn&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  22:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  23:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;float&lt;/span&gt;: &lt;span style="color: #006080"&gt;left;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  24:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;width&lt;/span&gt;: &lt;span style="color: #006080"&gt;30%;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  25:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;margin&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;left&lt;/span&gt;: &lt;span style="color: #006080"&gt;1%;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  26:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;text-align&lt;/span&gt;:&lt;span style="color: #006080"&gt;center;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  27:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;border&lt;/span&gt;:&lt;span style="color: #006080"&gt;dotted 1px #ccc;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  28:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  29:&lt;/span&gt; &amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  30:&lt;/span&gt; #footer&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  31:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  32:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;clear&lt;/span&gt;: &lt;span style="color: #006080"&gt;both;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  33:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;text-align&lt;/span&gt;:&lt;span style="color: #006080"&gt;center;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  34:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;border&lt;/span&gt;:&lt;span style="color: #006080"&gt;dotted 1px #ccc;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  35:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;margin&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;top&lt;/span&gt;:&lt;span style="color: #006080"&gt;1em;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  36:&lt;/span&gt; }&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  37:&lt;/span&gt; &amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  38:&lt;/span&gt; #leftColumn &lt;span style="color: #0000ff"&gt;p&lt;/span&gt;, #middleColumn &lt;span style="color: #0000ff"&gt;p&lt;/span&gt;, #rightColumn &lt;span style="color: #0000ff"&gt;p&lt;/span&gt;, #footer &lt;span style="color: #0000ff"&gt;p&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  39:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  40:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;margin&lt;/span&gt;: &lt;span style="color: #006080"&gt;2em;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  41:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Include these codes&amp;nbsp;in your HTML file:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="leftColumn"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;img&lt;/span&gt; &lt;span style="color: #ff0000"&gt;src&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Images/bluehouse01_large.gif"&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #ff0000"&gt;alt&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Single Company Analysis"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;br&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; Option 1&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt; &amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="middleColumn"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;img&lt;/span&gt; &lt;span style="color: #ff0000"&gt;src&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Images/bluehouse02_large.gif"&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt; &lt;span style="color: #ff0000"&gt;alt&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Group Companies Analysis"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;br&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt; Option 2&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt; &amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="rightColumn"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;img&lt;/span&gt; &lt;span style="color: #ff0000"&gt;src&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Images/bluehouse03_large.gif"&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt; &lt;span style="color: #ff0000"&gt;alt&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Form C Data Search"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;br&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  21:&lt;/span&gt; Option 3&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  22:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  23:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  24:&lt;/span&gt; &amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  25:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="footer"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  26:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;You have selected option 1, and this will allow you to perform analysis for abc company.&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  27:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  28:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Then you'll get the output.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-2982264127848171096?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/2982264127848171096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/11/liquid-page-layout-using-css.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2982264127848171096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2982264127848171096'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/11/liquid-page-layout-using-css.html' title='Liquid page layout using CSS'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-5858954970252877526</id><published>2007-11-02T14:52:00.001+08:00</published><updated>2007-11-02T14:52:45.361+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MyTutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Website to share'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Rounded corners using CSS</title><content type='html'>&lt;p&gt;Ever wonder how to make the rounded corners in your web site?&lt;/p&gt; &lt;p&gt;I've read about using images to make it, and some need javascripts. You can use ASP.NET AJAX tool for this rounded corners box. I just found this, where you don't need to use any images nor javascript, and it works. &lt;/p&gt; &lt;p&gt;&lt;img src="http://lh5.google.com/kaka135/Ryqv1UyJb2I/AAAAAAAAAk8/KJ447dqFe84/roundedcorners.jpg"&gt; &lt;/p&gt; &lt;p&gt;Copy this to your css file. e.g. test.css&lt;/p&gt; &lt;div&gt; &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;/* ROUNDED CORNERS - Grey border */&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; #xsnazzy &lt;span style="color: #0000ff"&gt;h1&lt;/span&gt;, #xsnazzy &lt;span style="color: #0000ff"&gt;h2&lt;/span&gt;, #xsnazzy &lt;span style="color: #0000ff"&gt;p&lt;/span&gt; {&lt;span style="color: #0000ff"&gt;margin&lt;/span&gt;:&lt;span style="color: #006080"&gt;0 10px;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;letter-spacing&lt;/span&gt;:&lt;span style="color: #006080"&gt;1px;&lt;/span&gt;}&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; #xsnazzy &lt;span style="color: #0000ff"&gt;h1&lt;/span&gt; {&lt;span style="color: #0000ff"&gt;font-size&lt;/span&gt;:&lt;span style="color: #006080"&gt;2.5em;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;color&lt;/span&gt;:&lt;span style="color: #006080"&gt;#fff;&lt;/span&gt;}&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; #xsnazzy &lt;span style="color: #0000ff"&gt;h2&lt;/span&gt; {&lt;span style="color: #0000ff"&gt;font-size&lt;/span&gt;:&lt;span style="color: #006080"&gt;2em;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;color&lt;/span&gt;:&lt;span style="color: #006080"&gt;#06a;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;border&lt;/span&gt;:0;}&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; #xsnazzy &lt;span style="color: #0000ff"&gt;p&lt;/span&gt; {&lt;span style="color: #0000ff"&gt;padding&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;bottom&lt;/span&gt;:&lt;span style="color: #006080"&gt;0.5em;&lt;/span&gt;}&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; #xsnazzy &lt;span style="color: #0000ff"&gt;h2&lt;/span&gt; {&lt;span style="color: #0000ff"&gt;padding&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;top&lt;/span&gt;:&lt;span style="color: #006080"&gt;0.5em;&lt;/span&gt;}&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; #xsnazzy {&lt;span style="color: #0000ff"&gt;background&lt;/span&gt;: &lt;span style="color: #006080"&gt;transparent;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;margin&lt;/span&gt;:&lt;span style="color: #006080"&gt;1em;&lt;/span&gt;}&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt; &amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt; &lt;span style="color: #cc6633"&gt;.xtop&lt;/span&gt;, &lt;span style="color: #cc6633"&gt;.xbottom&lt;/span&gt; {&lt;span style="color: #0000ff"&gt;display&lt;/span&gt;:&lt;span style="color: #006080"&gt;block;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;background&lt;/span&gt;:&lt;span style="color: #006080"&gt;transparent;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;font-size&lt;/span&gt;:&lt;span style="color: #006080"&gt;1px;&lt;/span&gt;}&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt; &lt;span style="color: #cc6633"&gt;.xb1&lt;/span&gt;, &lt;span style="color: #cc6633"&gt;.xb2&lt;/span&gt;, &lt;span style="color: #cc6633"&gt;.xb3&lt;/span&gt;, &lt;span style="color: #cc6633"&gt;.xb4&lt;/span&gt; {&lt;span style="color: #0000ff"&gt;display&lt;/span&gt;:&lt;span style="color: #006080"&gt;block;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;overflow&lt;/span&gt;:&lt;span style="color: #006080"&gt;hidden;&lt;/span&gt;}&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt; &lt;span style="color: #cc6633"&gt;.xb1&lt;/span&gt;, &lt;span style="color: #cc6633"&gt;.xb2&lt;/span&gt;, &lt;span style="color: #cc6633"&gt;.xb3&lt;/span&gt; {&lt;span style="color: #0000ff"&gt;height&lt;/span&gt;:&lt;span style="color: #006080"&gt;1px;&lt;/span&gt;}&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt; &lt;span style="color: #cc6633"&gt;.xb2&lt;/span&gt;, &lt;span style="color: #cc6633"&gt;.xb3&lt;/span&gt;, &lt;span style="color: #cc6633"&gt;.xb4&lt;/span&gt; {&lt;span style="color: #0000ff"&gt;border&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;left&lt;/span&gt;:&lt;span style="color: #006080"&gt;1px solid #ccc;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;border&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;right&lt;/span&gt;:&lt;span style="color: #006080"&gt;1px solid #ccc;&lt;/span&gt;}&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt; &lt;span style="color: #cc6633"&gt;.xb1&lt;/span&gt; {&lt;span style="color: #0000ff"&gt;margin&lt;/span&gt;:&lt;span style="color: #006080"&gt;0 5px;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;background&lt;/span&gt;:&lt;span style="color: #006080"&gt;#ccc;&lt;/span&gt;}&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt; &lt;span style="color: #cc6633"&gt;.xb2&lt;/span&gt; {&lt;span style="color: #0000ff"&gt;margin&lt;/span&gt;:&lt;span style="color: #006080"&gt;0 3px;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;border-width&lt;/span&gt;:&lt;span style="color: #006080"&gt;0 2px;&lt;/span&gt;}&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt; &lt;span style="color: #cc6633"&gt;.xb3&lt;/span&gt; {&lt;span style="color: #0000ff"&gt;margin&lt;/span&gt;:&lt;span style="color: #006080"&gt;0 2px;&lt;/span&gt;}&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt; &lt;span style="color: #cc6633"&gt;.xb4&lt;/span&gt; {&lt;span style="color: #0000ff"&gt;height&lt;/span&gt;:&lt;span style="color: #006080"&gt;2px;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;margin&lt;/span&gt;:&lt;span style="color: #006080"&gt;0 1px;&lt;/span&gt;}&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt; &amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt; &lt;span style="color: #cc6633"&gt;.xboxcontent&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;display&lt;/span&gt;:&lt;span style="color: #006080"&gt;block;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;border&lt;/span&gt;:&lt;span style="color: #006080"&gt;0 solid #ccc;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;border-width&lt;/span&gt;:&lt;span style="color: #006080"&gt;0 1px;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  23:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Copy this to the HTML file:&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="xsnazzy"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="xtop"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="xb1"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="xb2"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="xb3"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="xb4"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="xboxcontent"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;h2&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;This is an example of rounded corner box without using images or javascript.&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;h2&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="xbottom"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="xb4"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="xb3"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="xb2"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="xb1"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;b&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;In order to use the css file, you need to include this line of code in the head block.&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;link&lt;/span&gt; &lt;span style="color: #ff0000"&gt;href&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Test.css"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;rel&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="stylesheet"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="text/css"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Rounded Corners example&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Then, you'll get the rounded corners box.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;More information regarding the rounded corners:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;* &lt;a href="http://www.cssplay.co.uk/boxes/snazzy.html" target="_blank"&gt;Snazzy Borders&lt;/a&gt; - This is where I got the codes for my example.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;* &lt;a href="http://www.spiffycorners.com/" target="_blank"&gt;Spiffy Corners&lt;/a&gt; - Another way to&amp;nbsp;create anti-aliased corners without using images or javascript.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;* &lt;a href="http://www.smileycat.com/miaow/archives/000044.php" target="_blank"&gt;CSS Rounded Corners 'Roundup'&lt;/a&gt; -&amp;nbsp;A collection of techniques to create boxes with rounded corners using CSS. Here you'll find many different techniques.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;* &lt;a href="http://www.html.it/articoli/nifty/index.html" target="_blank"&gt;Nifty Corners&lt;/a&gt; - This technique creates rounded corners without images, but with javascript.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-5858954970252877526?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/5858954970252877526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/11/rounded-corners-using-css.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5858954970252877526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5858954970252877526'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/11/rounded-corners-using-css.html' title='Rounded corners using CSS'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-6009346308632708264</id><published>2007-11-01T17:24:00.001+08:00</published><updated>2007-11-02T15:17:40.339+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Website to share'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Useful links for CSS</title><content type='html'>&lt;p&gt;I just started to create my CSS file for my project, and just want to check out if there are&amp;nbsp;any recommended ways of doing this right.&amp;nbsp;I just did a simple search in code project site, and found a lot of related articles which are useful. (Well, more to read now....)&lt;/p&gt; &lt;p&gt;I'll add more to the list when I've found more information here.&lt;/p&gt; &lt;p&gt;1. &lt;a href="http://www.codeproject.com/html/css-internet-explorer.asp" target="_blank"&gt;Internet Explorer &amp;amp; CSS issues&lt;/a&gt;&lt;/p&gt; &lt;p&gt;2. &lt;a href="http://www.codeproject.com/html/webspeed.asp" target="_blank"&gt;Ten ways to speed up the download time of your web pages&lt;/a&gt;&amp;nbsp;(some key points here, a must read article.)&lt;/p&gt; &lt;p&gt;3. &amp;nbsp;&lt;a href="http://www.codeproject.com/html/CSSTrcicks.asp" target="_blank"&gt;Ten CSS tricks you may not know&lt;/a&gt;&amp;nbsp;(There are some tricks here that you shouldn't miss too)&lt;/p&gt; &lt;p&gt;4. &lt;a href="http://www.artypapers.com/csshelppile/" target="_blank"&gt;CSS Help Pile&lt;/a&gt; - A huge pile of CSS-related tips, tricks &amp;amp; resources.&lt;/p&gt; &lt;p&gt;5. &lt;a href="http://www.smashingmagazine.com/2007/01/19/53-css-techniques-you-couldnt-live-without/" target="_blank"&gt;53 CSS-Techniques You Couldn't Live Without&lt;/a&gt;&amp;nbsp;(Here, you can learn the specific technique that you want to use in your web site. Another Must Read article.)&lt;/p&gt; &lt;p&gt;6. &lt;a href="http://blog.html.it/layoutgala/" target="_blank"&gt;Layout Gala: a collection of 40 CSS layouts&lt;/a&gt;&amp;nbsp;- Here you'll get some reference CSS layout sites.&amp;nbsp;&amp;nbsp;&lt;/p&gt; &lt;p&gt;7. &lt;a href="http://www.maxdesign.com.au/presentation/page_layouts/" target="_blank"&gt;MaxDesign - Sample CSS Page Layouts&lt;/a&gt; (with step by step layout tutorial too)&lt;/p&gt; &lt;p&gt;8. &lt;a href="http://www.cssplay.co.uk" target="_blank"&gt;CSSplay&lt;/a&gt; - There are some demos, menus, layouts, boxes examples.&amp;nbsp;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-6009346308632708264?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/6009346308632708264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/11/useful-links-for-css.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6009346308632708264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6009346308632708264'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/11/useful-links-for-css.html' title='Useful links for CSS'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-6004597268848762743</id><published>2007-10-31T19:22:00.001+08:00</published><updated>2007-10-31T19:23:56.273+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Website to share'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>HTML Dog</title><content type='html'>&lt;p&gt;&lt;a href="http://www.htmldog.com" target="_blank" atomicselection="true"&gt;&lt;img src="http://lh5.google.com/kaka135/RyhgW0yJb1I/AAAAAAAAAk0/cwIPWNJZsBw/HTMLDoglogo.gif"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;URL: &lt;a href="http://www.htmldog.com"&gt;http://www.htmldog.com&lt;/a&gt;&lt;/p&gt; &lt;p&gt;When I was searching for CSS, and I came to this web site, where you get to learn about HTML &amp;amp; CSS here. If you wanna design your web site, you may learn the basics from here too.&lt;/p&gt; &lt;p&gt;There are some useful sections, including &lt;a href="http://www.htmldog.com/guides/" target="_blank"&gt;Tutorials&lt;/a&gt;, &lt;a href="http://www.htmldog.com/reference/" target="_blank"&gt;References&lt;/a&gt;, &lt;a href="http://www.htmldog.com/articles/" target="_blank"&gt;Articles&lt;/a&gt; and &lt;a href="http://www.htmldog.com/examples/" target="_blank"&gt;Examples&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;I plan to start learning CSS from here, and wish I can design my web application to be better and faster performance with CSS. This is a new thing to me, and I hope I can complete these tutorials in two day time, with still doing some other tasks at work.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-6004597268848762743?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/6004597268848762743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/10/html-dog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6004597268848762743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6004597268848762743'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/10/html-dog.html' title='HTML Dog'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-8374576221721958143</id><published>2007-10-24T18:05:00.001+08:00</published><updated>2007-10-24T18:05:28.334+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Website to share'/><title type='text'>ASP.NET AJAX Roadmap</title><content type='html'>&lt;p&gt;URL: &lt;a title="http://asp.net/AJAX/Documentation/Live/default.aspx" href="http://asp.net/AJAX/Documentation/Live/default.aspx"&gt;http://asp.net/AJAX/Documentation/Live/default.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;After looking around in the Internet, I was almost lost. There are tons of resources that are interesting and useful, but I don't know where to start. Moreover, time is short, I can't take my own sweet time to sit down and study from the beginning. I need some intensive course to let me start working on my current project. Many resources are not related to ASP.NET too. Though there are ASP.NET Ajax Learning Video, the videos are for the Ajax Controls, and there's no sound for the video clips, so I can only guess and watch the codes. That doesn't help much in the introduction and explanation. Moreover, I think it's time consuming to watch the video tutorials than only reading text. I also downloaded the &lt;a href="http://go.microsoft.com/fwlink/?LinkID=77295" target="_blank"&gt;Ajax Sample Applications&lt;/a&gt;, but I haven't find it useful to me, coz I need more explanation.&lt;/p&gt; &lt;p&gt;Finally, after two day searching around and reading, I've come to this site - &lt;a href="http://asp.net/AJAX/Documentation/Live/default.aspx" target="_blank"&gt;Microsoft ASP.NET AJAX documentation&lt;/a&gt;. I guess this is where I should start and move on, at least I found an Ajax sample application that I can follow what it teaches me to do. &lt;/p&gt; &lt;p&gt;Well, it's time to stop wandering around and stick to this, and go! ^_^&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-8374576221721958143?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/8374576221721958143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/10/aspnet-ajax-roadmap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8374576221721958143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8374576221721958143'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/10/aspnet-ajax-roadmap.html' title='ASP.NET AJAX Roadmap'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-5594148283175830711</id><published>2007-10-24T11:44:00.001+08:00</published><updated>2007-10-24T11:44:39.352+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>Intro to Ajax</title><content type='html'>&lt;p&gt;Reference: &lt;a href="http://www.developerfusion.co.uk/show/6819/1/" target="_blank"&gt;Using Ajax for Web Application Development - What Businesses Need to Know&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#ff8080"&gt;&lt;strong&gt;Ajax - Asynchronous JavaScript and XML&lt;/strong&gt;&lt;/font&gt;&lt;br&gt;Ajax web programming enables a web application development team to create a sit that allows users to perform certain functions without the need for redrawing or reloading an entire screen.  &lt;p&gt;&lt;u&gt;Benefits:&lt;br&gt;&lt;/u&gt;1. It offers site developers an extra level of innovation that can make a site easier to use for all visitors.&lt;br&gt;2. When implemented correctly, it gives users the feeling that a web application is more responsive than a traditional web site.&lt;br&gt;3. It can allow a business to give its site new functionality and new services to be used by partners or clients.&lt;br&gt;4. It can give parity to a business.  &lt;p&gt;&lt;u&gt;Things to be careful:&lt;/u&gt;&lt;br&gt;1. This type of web programming can make a site more difficult for visitors to use.&lt;br&gt;The web is at its core a very user-friendly system, but Ajax can introduce new behaviors that people may not be ready for or may be confused by.&lt;br&gt;This can cause visitors to leave your site quickly, without actually performing the tasks.&lt;br&gt;2. Ajax programming can create a host of other problems with which businesses should be concerned.&lt;br&gt;3. Ajax can open up a webserver to have an increased attack surface. &lt;br&gt;This form of web programming unfortunately gives a hacker more ways to get into the server than there were before.&lt;br&gt;The solution to this is to make sure that the web application development team is more vigilant about security and testing, and to constantly keep watch on the activity occurring on the site.&lt;br&gt;4. Different browsers read Ajax differently, the web application development team will have to do additional testing for accessibility.  &lt;p&gt;Use it with caution and with care! - this is the important note I've got from this article. ^_^&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-5594148283175830711?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/5594148283175830711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/10/intro-to-ajax.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5594148283175830711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5594148283175830711'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/10/intro-to-ajax.html' title='Intro to Ajax'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-2868565783477012976</id><published>2007-09-26T12:09:00.001+08:00</published><updated>2007-09-26T12:39:42.718+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Website to share'/><title type='text'>ASP.NET AJAX Video Learning</title><content type='html'>&lt;p&gt;URL: &lt;a title="http://www.asp.net/learn/ajax-videos/" href="http://www.asp.net/learn/ajax-videos/"&gt;http://www.asp.net/learn/ajax-videos/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I'll take these as my coming lessons. Currently, there are 63 videos on different topics. I guess it's a good start to learn how to use ASP.NET AJAX.&lt;/p&gt; &lt;p&gt;Hopefully I will have persistence to learn all these video series this time. :p&lt;/p&gt; &lt;p&gt;&lt;font color="#008000"&gt;ASP.NET AJAX is a set of technologies to add AJAX (Asynchronous JavaScript And XML) support to ASP.NET.&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-2868565783477012976?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/2868565783477012976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/09/aspnet-ajax-video-learning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2868565783477012976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2868565783477012976'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/09/aspnet-ajax-video-learning.html' title='ASP.NET AJAX Video Learning'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-2739985867936209484</id><published>2007-09-26T11:41:00.001+08:00</published><updated>2007-09-26T11:41:05.137+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Application'/><category scheme='http://www.blogger.com/atom/ns#' term='MyExpenseTracker'/><category scheme='http://www.blogger.com/atom/ns#' term='MyProjects'/><title type='text'>MyExpenseTracker Installer</title><content type='html'>&lt;p&gt;Finally, I've compiled&amp;nbsp;the setup file for MyExpenseTracker application. There are currently still a lot of issues that I'll need to fix later, or some features are not in yet. There are many things to learn for deployment phase too. I need to consider how to update the database for future version. :p &lt;/p&gt; &lt;p&gt;Feedback and suggestions are welcomed! ^_^&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Downloads:&lt;/strong&gt;&lt;br&gt;setup file: &lt;a href="http://www.box.net/index.php?rm=box_download_shared_file&amp;amp;file_id=f_95809088&amp;amp;shared_name=km3bk96oui" target="_blank"&gt;MyExpenseTracker BETA 1.0.0.zip&lt;/a&gt; (826.4KB) &lt;br&gt;source code (C#): &lt;a href="http://www.box.net/index.php?rm=box_download_shared_file&amp;amp;file_id=f_95809084&amp;amp;shared_name=lxvyu4b7eo" target="_blank"&gt;MyExpenseTracker source code.zip&lt;/a&gt; (1.4MB)&lt;/p&gt; &lt;p&gt;After installation, you'll see this icon in your desktop.&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs1.imagefly.info/i/d5/programicon.jpg"&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Problems might be&amp;nbsp;faced during installation:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;1. If the program has been installed before, you'll get this error when you run the installation:&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs1.imagefly.info/i/5a/previousversioninstalled.jpg"&gt; &lt;/p&gt; &lt;p&gt;You have to go to Control Panel --&amp;gt; Add or Remove Programs to remove the program before you can install the new version.&lt;/p&gt; &lt;p&gt;&lt;img height="89" src="http://ifs1.imagefly.info/i/eb/removeprogram.jpg" width="550"&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;2. You may get the following error during the remove program process, perhaps the database log file is in use.&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs3.imagefly.info/i/f7/sqlserverinuse.jpg"&gt; &lt;/p&gt; &lt;p&gt;Right click on your taskbar --&amp;gt; select "Task Manager" --&amp;gt; click on "Processes" tab --&amp;gt; look for "sqlservr.exe" and click on "End Process". Then you can continue to remove the program before installing the new version.&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs3.imagefly.info/i/b4/killprocess.jpg"&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;3. You may encounter this error when you start the program.&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs1.imagefly.info/i/e9/dbLogError.jpg"&gt; &lt;/p&gt; &lt;p&gt;You need to go to your "C:\Program Files\MyExpenseTracker\Data" folder and delete the "MyExpenseTracker_log.LDF" file. Then you can run the program again.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-2739985867936209484?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/2739985867936209484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/09/myexpensetracker-installer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2739985867936209484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2739985867936209484'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/09/myexpensetracker-installer.html' title='MyExpenseTracker Installer'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-8882620856284982822</id><published>2007-09-26T10:34:00.001+08:00</published><updated>2007-09-26T10:34:52.901+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MyExpenseTracker'/><category scheme='http://www.blogger.com/atom/ns#' term='MyProjects'/><title type='text'>MyExpenseTracker - Almost Done</title><content type='html'>&lt;p&gt;Finally, it's almost done! I've started this project since July, I thought it can be completed within one month, but... I just didn't really spend time doing it. Actually the core functions are there, just that I haven't really spend time fine tuning it, making the program more user friendly or nicer, and yeah, no error handling or input validation. haha~~ it's just very basic application now. At least, I can start using it to keep track of my expenses first. I really need to cut it off first, otherwise I'll be stuck here forever. haha~&lt;/p&gt; &lt;p&gt;Time to end this application, and move on to the next one now. Time to plan what's next. ^_^&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-8882620856284982822?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/8882620856284982822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/09/myexpensetracker-almost-done.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8882620856284982822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8882620856284982822'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/09/myexpensetracker-almost-done.html' title='MyExpenseTracker - Almost Done'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-5560591120157489838</id><published>2007-09-25T14:54:00.001+08:00</published><updated>2007-09-25T14:54:50.043+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Application'/><category scheme='http://www.blogger.com/atom/ns#' term='Combobox'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Selecting Combobox item programmatically</title><content type='html'>&lt;p&gt;Scenario:&lt;/p&gt; &lt;p&gt;I have added items to my combobox using &lt;font face="Courier"&gt;combobox.Items.Add(obj),&lt;/font&gt; but when I set &lt;font face="Courier New"&gt;combobox.SelectedValue = selectedId&lt;/font&gt;, I still get null value in &lt;font face="Courier New"&gt;combobox.SelectedValue&lt;/font&gt;, though I've set &lt;font face="Courier New"&gt;combobox.ValueMember&lt;/font&gt;.&lt;/p&gt; &lt;p&gt;Solution:&lt;/p&gt; &lt;p&gt;Finally, I've found that ValueMember is respected only in data binding case only, whereas DisplayMember works in both cases -- Databinding and normal item addition.&lt;/p&gt; &lt;p&gt;In order to use SelectedValue, we need to bind the datasource to the combobox. Otherwise, we can use the following method to select the combobox item:&lt;/p&gt; &lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;cboCategory.SelectedIndex = cboCategory.FindString(category);&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;FindString only search for DisplayMember only, but not ValueMember.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I guess the better solution is to do a databinding, but at the moment, I'll just use this alternative way of selecting items.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-5560591120157489838?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/5560591120157489838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/09/selecting-combobox-item.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5560591120157489838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5560591120157489838'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/09/selecting-combobox-item.html' title='Selecting Combobox item programmatically'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-5819065958402341872</id><published>2007-08-28T16:52:00.001+08:00</published><updated>2007-08-28T16:52:48.537+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Website to share'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>MSDN Library - HTML and CSS Reference</title><content type='html'>&lt;p&gt;URL: &lt;a title="http://msdn2.microsoft.com/en-us/library/aa155093.aspx" href="http://msdn2.microsoft.com/en-us/library/aa155093.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa155093.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Here you can find the tutorials &amp;amp; reference for the web development HTML and CSS section.&lt;/p&gt; &lt;p&gt;* &lt;a href="http://msdn2.microsoft.com/en-us/library/ms537623(vs.85).aspx" target="_blank"&gt;HTML and DHTML Overviews and Tutorial&lt;/a&gt;&lt;/p&gt; &lt;p&gt;* &lt;a href="http://msdn2.microsoft.com/en-us/library/ms533050(vs.85).aspx" target="_blank"&gt;HTML and DHTML Reference&lt;/a&gt;&amp;nbsp;[I guess I'll visit this site more often, here is where I found&amp;nbsp;what javascript methods to use.]&lt;/p&gt; &lt;p&gt;* &lt;a href="http://msdn2.microsoft.com/en-us/library/ms531205(vs.85).aspx" target="_blank"&gt;Cascading Style Sheets (CSS)&lt;/a&gt;&lt;/p&gt; &lt;p&gt;* &lt;a href="http://msdn2.microsoft.com/en-us/library/ms531078(vs.85).aspx" target="_blank"&gt;DHTML Behaviors&lt;/a&gt;&lt;/p&gt; &lt;p&gt;* &lt;a href="http://msdn2.microsoft.com/en-us/library/ms531388(vs.85).aspx" target="_blank"&gt;DHTML Data Binding&lt;/a&gt;&lt;/p&gt; &lt;p&gt;* &lt;a href="http://msdn2.microsoft.com/en-us/library/ms537833(vs.85).aspx" target="_blank"&gt;Scriptable Editing&lt;/a&gt;&lt;/p&gt; &lt;p&gt;* &lt;a href="http://msdn2.microsoft.com/en-us/library/aa155108(msdn.10).aspx" target="_blank"&gt;Web Multimedia&lt;/a&gt;&lt;/p&gt; &lt;p&gt;* &lt;a href="http://msdn2.microsoft.com/en-us/library/ms536471(vs.85).aspx" target="_blank"&gt;HTML Applications (HTA)&lt;/a&gt;&lt;/p&gt; &lt;p&gt;* &lt;a href="http://msdn2.microsoft.com/en-us/library/aa902494(msdn.10).aspx" target="_blank"&gt;Accessibility&lt;/a&gt;&lt;/p&gt; &lt;p&gt;* &lt;a href="http://msdn2.microsoft.com/en-us/library/bb264269(vs.85).aspx" target="_blank"&gt;Technical Articles and Columns&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/78343946459641446-5819065958402341872?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/5819065958402341872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/08/msdn-library-html-and-css-reference.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5819065958402341872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5819065958402341872'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/08/msdn-library-html-and-css-reference.html' title='MSDN Library - HTML and CSS Reference'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-5001544673013873878</id><published>2007-08-21T11:47:00.001+08:00</published><updated>2007-08-21T11:47:01.501+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Access'/><title type='text'>Filter Access Records</title><content type='html'>&lt;p&gt;I just found out this filter option in Access database recently, it helped me a lot in doing my work, especially when I want to select a range of records.&lt;/p&gt; &lt;p&gt;This is my table records:&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs3.imagefly.info/i/1e/tablerecords.jpg"&gt; &lt;/p&gt; &lt;p&gt;To filter the records, go to Records menu --&amp;gt; Filter --&amp;gt; Filter By Form.&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs3.imagefly.info/i/0e/filtermenu.jpg"&gt; &lt;/p&gt; &lt;p&gt;Then key in what you want to search for, or select from the dropdownlist for the particular column(s), then right-click on the column header and select 'Apply Filter/Sort'.&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs3.imagefly.info/i/09/applyfilter.jpg"&gt; &lt;/p&gt; &lt;p&gt;The records will be shown:&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs3.imagefly.info/i/2c/filteredrecords.jpg"&gt; &lt;/p&gt; &lt;p&gt;If you want to perform advanced filter function, you may click on Records menu --&amp;gt; Filter --&amp;gt; Advanced Filter/Sort. The Filter window below will appear. Just define the filter criteria as below, and apply the filter/sort.&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs3.imagefly.info/i/fa/advancedfilter.jpg"&gt; &lt;/p&gt; &lt;p&gt;The records will be filtered:&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs3.imagefly.info/i/3d/advancedfilteredrecords.jpg"&gt; &lt;/p&gt; &lt;p&gt;This is a simple but useful feature in Microsoft Access. ^_^&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-5001544673013873878?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/5001544673013873878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/08/filter-access-records.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5001544673013873878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5001544673013873878'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/08/filter-access-records.html' title='Filter Access Records'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-4111083881593291887</id><published>2007-08-02T15:49:00.001+08:00</published><updated>2007-08-02T15:49:21.535+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MyNotes'/><category scheme='http://www.blogger.com/atom/ns#' term='Requirements'/><title type='text'>Requirements Gathering Techniques</title><content type='html'>&lt;p&gt;&lt;strong&gt;&lt;font color="#000080"&gt;Interviews&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Cons: Predisposition, experience, understanding and bias of the person being interviewed influence the information obtained.&lt;/p&gt; &lt;p&gt;Solution: Use context-free questions to avoid prejudicing the response.&lt;/p&gt; &lt;p&gt;Note: Context-free question is question that does not suggest a particular response. &lt;/p&gt; &lt;p&gt;e.g. Who is the client for this system? What is the real reason for wanting to solve this problem? what environment is this product likely to encounter? What kind of product precision is required?&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#000080"&gt;Document Analysis&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;All effective requirements elicitation involves some level of document analysis, such as business plans, market studies, contracts, requests for proposals, statements of work, existing guidelines, analyses of existing system, and procedures.&lt;/p&gt; &lt;p&gt;Improved requirements coverage results from identifying and consulting all likely sources of requirements.&lt;/p&gt; &lt;p&gt;&lt;font color="#000080"&gt;&lt;strong&gt;Brainstorming&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;Brainstorming involves both idea generation and&amp;nbsp;idea reduction.&lt;/p&gt; &lt;p&gt;Idea Generation: identify as many ideas as possible.&lt;/p&gt; &lt;p&gt;Idea Reduction: ranks the ideas into those considered most useful by the group.&lt;/p&gt; &lt;p&gt;Pros: it may come out the most creative or effective by combining seemingly unrelated ideas, it encourages original thinking and unusual ideas.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#000080"&gt;Requirements Workshops&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Requirements Workshops are best facilitated by an outside expert and are typically short.&lt;/p&gt; &lt;p&gt;Benefits:&lt;/p&gt; &lt;p&gt;- workshop costs are often lower than are those for multiple interviews.&lt;/p&gt; &lt;p&gt;- they help to give structure to the requirements capture and analysis process.&lt;/p&gt; &lt;p&gt;- they are dynamic, interactive, and cooperative.&lt;/p&gt; &lt;p&gt;- they involve users and cut across organizational boundaries.&lt;/p&gt; &lt;p&gt;- they help to identify and prioritize needs and resolve contentious issues.&lt;/p&gt; &lt;p&gt;- when properly run, they help to manage user's expectations and attitude toward change.&lt;/p&gt; &lt;p&gt;A special category of requirements workshop: Joint Application Development (JAD) workshop.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;JAD&lt;/strong&gt;: &lt;/p&gt; &lt;p&gt;- a method for developing requirements through which customers, user representatives, and developers work together with a facilitator to produce a requirements specification that both sides support. &lt;/p&gt; &lt;p&gt;- an effective way to define user needs early.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#000080"&gt;Prototyping&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;- a technique for building a quick and rough version of a desired system or parts of that system.&lt;/p&gt; &lt;p&gt;- illustrates the capabilities of the system to users and designers.&lt;/p&gt; &lt;p&gt;- serves as a communications mechanism to allow reviewers to understand interactions with the system.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#000080"&gt;&amp;nbsp;Use Cases&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;- A use case is&amp;nbsp;a picture of actions a system performs, depicting the actors.&lt;/p&gt; &lt;p&gt;- It should be accompanied by a textual description and not be used in isolation of other requirements gathering techniques. &lt;/p&gt; &lt;p&gt;- Use cases and scenarios (descriptions of sequences of events) facilitate team communication. They provide a context for the requirements by expressing sequences of events and a common language for end users and the technical team.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#000080"&gt;Storyboards&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;- a storyboard is a set of drawings depicting a set of user activities that occur in an existing or envisioned system or capability. &lt;/p&gt; &lt;p&gt;- storyboards are a kind of paper prototyping.&lt;/p&gt; &lt;p&gt;- Customers, users or developers start by drawing pictures of the screens, dialogs, toolbars, and other elements they believe the software should provide.&lt;/p&gt; &lt;p&gt;- The group continues to evolve these until real requirements and details are worked out and agreed upon.&lt;/p&gt; &lt;p&gt;- Related technique: storytelling - the writing of vignettes to envision new products and services based on perceived user needs and the possibilities offered by emerging technologies.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;There are some other techniques which I didn't take note here,such as Interfaces Analysis, Modeling, Performance and Capacity Analysis.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-4111083881593291887?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/4111083881593291887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/08/requirements-gathering-techniques.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/4111083881593291887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/4111083881593291887'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/08/requirements-gathering-techniques.html' title='Requirements Gathering Techniques'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-780829661723650183</id><published>2007-08-02T11:30:00.001+08:00</published><updated>2007-08-02T11:30:49.052+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Requirements'/><title type='text'>Common Requirements Errors</title><content type='html'>&lt;p&gt;I'm currently working out some templates to be used in our software development process, and I read this interesting study:&lt;/p&gt; &lt;p&gt;The common types of requirements errors:&lt;/p&gt; &lt;p&gt;49%&amp;nbsp; -- incorrect assumptions&lt;/p&gt; &lt;p&gt;29%&amp;nbsp; -- omitted requirements&lt;/p&gt; &lt;p&gt;13%&amp;nbsp; -- inconsistent requirements&lt;/p&gt; &lt;p&gt;&amp;nbsp;5%&amp;nbsp;&amp;nbsp; -- ambiguities&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;There are so many errors occurred just because of the&amp;nbsp;incorrect assumptions!! It shows that we really&amp;nbsp;shouldn't make assumptions. Whenever&amp;nbsp;we are going to gather or analyze requirements, I guess it's good for us to remember these points. ^_^&amp;nbsp;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-780829661723650183?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/780829661723650183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/08/common-requirements-errors.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/780829661723650183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/780829661723650183'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/08/common-requirements-errors.html' title='Common Requirements Errors'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-1679867279675287534</id><published>2007-08-02T11:16:00.001+08:00</published><updated>2007-08-02T11:16:50.408+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Requirements'/><title type='text'>Recommended Requirements Gathering Practices</title><content type='html'>&lt;p&gt;Extracted from: &lt;a href="http://www.stsc.hill.af.mil/crosstalk/2002/04/young.html" target="_blank"&gt;STSC (Software Technology Support Center)&amp;nbsp;CrossTalk&lt;/a&gt;&lt;/p&gt; &lt;p&gt;1. Write and iterate a project vision and scope document.&lt;/p&gt; &lt;p&gt;2. Initiate a project glossary that provides definitions of words that are acceptable to and used by customers/users and the developers, and a list of acronyms to facilitate effective communication.&lt;/p&gt; &lt;p&gt;3. Evolve the real requirements via a "joint" customer/user and developer effort. Focus on product benefits (necessary requirements), not features. Address the minimum and highest priority requirements needed to meet real customer and user needs.&lt;/p&gt; &lt;p&gt;4. Document the rationale for each requirement (why it is needed).&lt;/p&gt; &lt;p&gt;5. Provide training for requirements analysts and selected customer/user representatives that explains the following:&lt;/p&gt; &lt;p&gt;- The role of the requirements analyst.&lt;/p&gt; &lt;p&gt;e.g. to evolve real requirements working with customers &amp;amp; users, not to invent requirements independently or to "gold plate".&lt;/p&gt; &lt;p&gt;- How to write good requirements.&lt;/p&gt; &lt;p&gt;- The types of requirements errors and how these can be reduced.&lt;/p&gt; &lt;p&gt;- The value of investing more in the requirements process.&lt;/p&gt; &lt;p&gt;- The project and/or organization's requirements process.&lt;/p&gt; &lt;p&gt;- Overview of the methods and techniques that will be used.&lt;/p&gt; &lt;p&gt;- How to use the project's automated requirements tool.&lt;/p&gt; &lt;p&gt;- The role of validation and verification during requirements definition.&lt;/p&gt; &lt;p&gt;6. Establish a mechanism to control changes to requirements and new requirements.&lt;/p&gt; &lt;p&gt;7. Prioritize the real requirements to determine those that should be met in the first release or product and those that can be addressed subsequently.&lt;/p&gt; &lt;p&gt;8. When the requirements are volatile (and perhaps even when they are not), consider an incremental development approach. This acknowledges that some of the requirements are "unknowable" until customers and users start using system.&lt;/p&gt; &lt;p&gt;9. Use peer reviews and inspections of all requirements work products.&lt;/p&gt; &lt;p&gt;10. Use an industry-strength automated requirements tool.&lt;/p&gt; &lt;p&gt;- Assign attributes to each requirement.&lt;/p&gt; &lt;p&gt;- Provide traceability.&lt;/p&gt; &lt;p&gt;- Maintain the history of each requirement.&lt;/p&gt; &lt;p&gt;11. Use requirements gathering techniques that are known, familiar, and proven in the organization such as requirements workshops, prototyping, and storyboards.&lt;/p&gt; &lt;p&gt;12. Provide members of the project team (including requirements analysts) who are domain/subject matter experts.&lt;/p&gt; &lt;p&gt;13. Evolve a project and organizational approach based on successful use of policy, process, methods, techniques and tools. Provide a mechanism such as working groups to share information and "best practices" among projects.&lt;/p&gt; &lt;p&gt;14. Establish a continuous improvement ethic, teamwork approach, and a quality culture.&lt;/p&gt; &lt;p&gt;15. Involve customers and users throughout the development effort.&lt;/p&gt; &lt;p&gt;16. Perform requirements validation and verification activities in the requirements gathering process to ensure that each requirement is testable.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-1679867279675287534?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/1679867279675287534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/08/recommended-requirements-gathering.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/1679867279675287534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/1679867279675287534'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/08/recommended-requirements-gathering.html' title='Recommended Requirements Gathering Practices'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-8569698894524985347</id><published>2007-08-02T00:43:00.001+08:00</published><updated>2007-08-02T00:46:10.968+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stored procedure'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Create Table using stored procedure</title><content type='html'>&lt;p&gt;My sis was asking me how to create a table using stored procedure, well, I think it's better just jot down some notes here, for my future reference too.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Here is an example:&lt;/p&gt; &lt;div&gt; &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;CREATE&lt;/span&gt; &lt;span style="color: #0000ff"&gt;PROCEDURE&lt;/span&gt; CreateTestTable&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;AS&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;CREATE&lt;/span&gt; &lt;span style="color: #0000ff"&gt;TABLE&lt;/span&gt; [TestTable]&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;(&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    [Id] &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; &lt;span style="color: #0000ff"&gt;NOT&lt;/span&gt; &lt;span style="color: #0000ff"&gt;NULL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Primary&lt;/span&gt; &lt;span style="color: #0000ff"&gt;key&lt;/span&gt; &lt;span style="color: #0000ff"&gt;identity&lt;/span&gt;(1,1),&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    [Description] &lt;span style="color: #0000ff"&gt;varchar&lt;/span&gt;(7000),&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    [TestDate] datetime, &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    [Cost] money,&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    [TestRole] &lt;span style="color: #0000ff"&gt;char&lt;/span&gt;(4),&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    [IsAdmin] &lt;span style="color: #0000ff"&gt;bit&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;RETURN&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;* using brackets [] to embrace the table name or field name so that even reserved words have been used, the names are still allowed.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;* the field name [Id] has been defined to be&amp;nbsp;primary key and it's auto increment by 1, start from 1. (Null is not allowed for this column)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;* the data type for boolean is "bit" here.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;* the difference&amp;nbsp;between using "char" &amp;amp; "varchar" is that, when you define the size for char, no matter how many characters have been stored, it'll use up all the space defined. But for "varchar", it'll allocate just the size enough to store the variables. For variable string, it's good to use "varchar" as the data type.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;* The maximum size for varchar is 8000 characters. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;* For Chinese characters, it's good to use "nvarchar" as the data type.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Well, I didn't really do a proper study on the notes above, these are told by my friends or from my experience. Hope they are not wrong information. &lt;img alt="Tongue out" src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/tongue_smile.gif"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-8569698894524985347?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/8569698894524985347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/08/create-table-using-stored-procedure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8569698894524985347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8569698894524985347'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/08/create-table-using-stored-procedure.html' title='Create Table using stored procedure'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-2193603465829123499</id><published>2007-08-01T12:25:00.001+08:00</published><updated>2007-08-01T12:25:44.492+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MyNotes'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><title type='text'>Create a Business Case</title><content type='html'>&lt;p&gt;Extracted from &lt;a href="http://www.allpm.com/modules.php?op=modload&amp;amp;name=News&amp;amp;file=article&amp;amp;sid=1595&amp;amp;mode=thread&amp;amp;order=0&amp;amp;thold=0" target="_blank"&gt;allPM.com&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Successful project management: -&lt;/p&gt; &lt;p&gt;- deliver projects on time, within budget &amp;amp; to specification.&lt;/p&gt; &lt;p&gt;- deliver the business benefits to the customer.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Purpose of creating a Business Case for each project:&lt;/p&gt; &lt;p&gt;- To ensure projects consistently deliver the stated business benefits to the customers.&lt;/p&gt; &lt;p&gt;- To justify the initiation of the project and to clearly specify upfront, the business benefits to be delivered.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Create Business Case in 4 steps:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;1) Identify the Business Problem&lt;/p&gt; &lt;p&gt;2) Identify the Alternative Solutions&lt;/p&gt; &lt;p&gt;3) Recommend a Preferred Solution&lt;/p&gt; &lt;p&gt;4) Describe the Implementation Approach&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;strong&gt;&lt;font color="#000080"&gt;Step 1: Identify the Business Problem/Opportunity&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;*&amp;nbsp;investigate that business problem before you attempt to find a solution to it.&lt;/p&gt; &lt;p&gt;1. Determine the root cause of the problem by analyzing the environment within it has arisen. &lt;/p&gt; &lt;p&gt;e.g. The root cause of a problem may be related to:&lt;/p&gt; &lt;p&gt;- changes to the business vision, strategy or objectives&lt;/p&gt; &lt;p&gt;- newly identified competing products or processes&lt;/p&gt; &lt;p&gt;- opportunities resulting from newly introduced technologies&lt;/p&gt; &lt;p&gt;- commercial trends that are driving business changes&lt;/p&gt; &lt;p&gt;- changes to legislative or other environmental factors&lt;/p&gt; &lt;p&gt;2. Once identified, describe the problem by &lt;/p&gt; &lt;p&gt;(a) listing the reasons why it has arisen, &lt;/p&gt; &lt;p&gt;(b) the impact it is having on the business and &lt;/p&gt; &lt;p&gt;(c) the timeframes within which it must be resolved.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#000080"&gt;Step 2: Identify the Alternative Solutions&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;* To ensure that you select the best solution available, complete the following steps:&lt;/p&gt; &lt;p&gt;(1) Identify the alternative solutions available&lt;/p&gt; &lt;p&gt;(2) Quantify the benefits of implementing each solution&lt;/p&gt; &lt;p&gt;(3) Forecast the costs of implementing each solution&lt;/p&gt; &lt;p&gt;(4) Assess the feasibility of implementing each solution&lt;/p&gt; &lt;p&gt;(5) Identify the risks and issues associated with each solution&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#000080"&gt;Step 3: Recommend a Preferred Solution&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;(1) define a set of criteria upon which each solution will be assessed. &lt;/p&gt; &lt;p&gt;e.g. The criteria may be related to the solution; benefits, costs, feasibility and risk level.&lt;/p&gt; &lt;p&gt;(2) Identify a mechanism for scoring each alternative solution.&lt;/p&gt; &lt;p&gt;(3) Take each alternative solution and assign it a score based on its ability to meet the criteria set.&lt;/p&gt; &lt;p&gt;(4) Summarize the scores across all criteria, to identify the total score for each alternative solution.&lt;/p&gt; &lt;p&gt;The solution with the highest total score should become your preferred solution for implementation.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font color="#000080"&gt;&lt;strong&gt;Step 4: Describe the Implementation Approach&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;* Convince the project sponsor that you have thought through the plan for implementation of that solution. -- describe in detail how the project will be initiated, planned, executed and closed effectively.&lt;/p&gt; &lt;p&gt;(1) Initiation: List the steps involved in initiating the project.&lt;/p&gt; &lt;p&gt;e.g. define Terms of Reference, recruit the team &amp;amp; establish a Project Office.&lt;/p&gt; &lt;p&gt;(2) Planning: Describe the steps you will take to plan the project in detail. &lt;/p&gt; &lt;p&gt;e.g. create a Project Plan, list the plans required to monitor and control project resources, finances, quality, risks, suppliers and communications.&lt;/p&gt; &lt;p&gt;(3) Execution: Outline the approach to be taken to build the physical project deliverables and gain the customer's acceptance for each deliverable produced.&lt;/p&gt; &lt;p&gt;(4) Closure: Identify the activities required to hand over the final solution to the customer, release staff, close the Project Office, and perform a Post Implementation Review of the project.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-2193603465829123499?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/2193603465829123499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/08/create-business-case.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2193603465829123499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2193603465829123499'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/08/create-business-case.html' title='Create a Business Case'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-6060303919788894968</id><published>2007-07-24T11:31:00.001+08:00</published><updated>2007-07-24T11:34:17.870+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Application'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='MyNotes'/><category scheme='http://www.blogger.com/atom/ns#' term='Weekly Task'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Store and Retrieve Application Settings</title><content type='html'>&lt;p&gt;I used to store some constant values or messages in Resource file for Web application. It seems a little bit different for Windows application, and I think using this application settings is the alternative.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#800040"&gt;To Store Settings:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;1. Right click on the project file, and select "Properties".&lt;/p&gt; &lt;p&gt;2. Select "Settings" tab.&lt;/p&gt; &lt;p&gt;Here, I've added the connection string, where I select the type to be "(Connection String)". You can also specify the scope as Application or User.&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs1.imagefly.info/i/b8/Settings dialog.jpg"&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#800040"&gt;To Retrieve Settings:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;You can bind application settings to Windows Forms controls.&lt;/p&gt; &lt;p&gt;1. Select the control, expand the (Application Settings) property, then click on the (PropertyBinding) button to display the Application Settings dialog box below.&lt;/p&gt; &lt;p&gt;2. Select the property that you want to bind to, and select the application settings from the dropdownlist.&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs1.imagefly.info/i/aa/Application Settings binding.jpg"&gt; &lt;/p&gt; &lt;p&gt;OR &lt;/p&gt; &lt;p&gt;You can also select the control, expand the (Application Settings) property, only the bindable property will be shown. Just select the Application Setting that you want to bind from the dropdownlist.&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs3.imagefly.info/i/41/Application Settings binding2.jpg"&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#800040"&gt;To access the application settings programmatically:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;MyExpenseTracker.Properties.Settings.Default.CONNECTIONSTRING&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;where MyExpenseTracker is the namespace.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;OK, the 3 items for last week task have been done. Now, I need to work harder for this week's tasks. &lt;img alt="Tongue" src="http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/10.gif"&gt;&lt;/p&gt;The other 2 weekly Task for week 16/07/2007 - 22/07/2007:&lt;br&gt;* &lt;a href="http://kakaprogramming.blogspot.com/2007/07/how-to-launch-application-in-visual.html" target="_blank"&gt;How to launch application in Visual Studio 2005?&lt;/a&gt;&lt;br&gt;* &lt;a href="http://kakaprogramming.blogspot.com/2007/07/datagridview-prototype.html" target="_blank"&gt;DataGridView Prototype&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-6060303919788894968?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/6060303919788894968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/store-and-retrieve-application-settings.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6060303919788894968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6060303919788894968'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/store-and-retrieve-application-settings.html' title='Store and Retrieve Application Settings'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-1690283785885726670</id><published>2007-07-23T12:41:00.001+08:00</published><updated>2007-07-23T12:41:57.776+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Application'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Controls'/><category scheme='http://www.blogger.com/atom/ns#' term='GridView'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Weekly Task'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>DataGridView prototype</title><content type='html'>&lt;p&gt;This is the first time I created Windows application using Visual Studio 2005. There are some differences between Windows application development and Web application development.&lt;/p&gt; &lt;p&gt;In order to build a database system, I must learn how to deal with DataGridView which is provided in Windows Application. (Web applications are using GridView.)&lt;/p&gt; &lt;p&gt;This is the prototype I've built based on this tutorial - &lt;b&gt;&lt;a href="http://www.awprofessional.com/articles/article.asp?p=446453&amp;amp;seqNum=1&amp;amp;rl=1" target="_blank"&gt;Presenting Data with the DataGridView Control in .NET 2.0&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt; &lt;p&gt;&lt;img src="http://ifs1.imagefly.info/i/20/DataGridView prototype.jpg"&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.box.net/index.php?rm=box_v2_download_shared_file&amp;amp;file_id=f_78881137" target="_blank" atomicselection="true"&gt;&lt;img alt="Download DataGridView prototype" src="http://ifs1.imagefly.info/i/71/new_document_24_h.png"&gt;&lt;/a&gt; (&lt;a href="http://www.box.net/index.php?rm=box_v2_download_shared_file&amp;amp;file_id=f_78881137" target="_blank"&gt;DataGridViewPrototype.zip&lt;/a&gt; : 1.3MB)&lt;/p&gt; &lt;p&gt;I've also included the tutorial which I copied into the Word document, where you just click on the "Open tutorial in Word document" link to launch it. The prototype is not error-free, but hopefully it helps when you want to build a windows application and use this DataGridView control. &lt;img alt="Happy" src="http://us.i1.yimg.com/us.yimg.com/i/mesg/emoticons7/1.gif"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-1690283785885726670?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/1690283785885726670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/datagridview-prototype.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/1690283785885726670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/1690283785885726670'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/datagridview-prototype.html' title='DataGridView prototype'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-5970048555116258338</id><published>2007-07-21T17:20:00.001+08:00</published><updated>2007-07-21T17:20:04.860+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MyIdeas'/><title type='text'>Music-Lyrics Manager</title><content type='html'>&lt;p&gt;I suddenly have this idea popped up in my mind, simply because we like to listen to songs and sing. But, there's always no lyrics, or we need to search for it. So, I'm thinking of building a small application just to manage the lyrics, and tie it to the song. &lt;/p&gt; &lt;p&gt;I&amp;nbsp;haven't think of the name for the application yet - Music-Lyrics&amp;nbsp;Manager / My Playlist / Music-Lyrics Bank.&lt;/p&gt; &lt;p&gt;These are some ideas in my mind:&lt;/p&gt;- Add music&lt;br&gt;- Add lyrics&lt;br&gt;- Link music and lyrics&lt;br&gt;- Add song to playlist&lt;br&gt;- While playing the song, display lyrics&lt;br&gt;- Open windows media player&lt;br&gt;- Rename filename&lt;br&gt; &lt;p&gt;&lt;/p&gt;&lt;strong&gt;&lt;u&gt;Tables&lt;/u&gt;:&lt;/strong&gt;&lt;br&gt;Song/Lyrics - id, filename, title, artist, language, dateAdded,type (song/lyrics)&lt;br&gt;SongLyrics - id, songId, lyricsId&lt;br&gt; &lt;p&gt;I'm still working on another application - MyExpenseTracker. Perhaps I'll start this after I've completed that. Just to jot down what's in my mind first, in case I forget later.&amp;nbsp;&lt;img alt="Smile" src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/regular_smile.gif"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-5970048555116258338?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/5970048555116258338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/music-lyrics-manager.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5970048555116258338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/5970048555116258338'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/music-lyrics-manager.html' title='Music-Lyrics Manager'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-1756666961259852600</id><published>2007-07-18T19:03:00.001+08:00</published><updated>2007-07-18T19:10:45.093+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='MyTutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Weekly Task'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>How to Launch application in Visual Studio 2005?</title><content type='html'>&lt;p&gt;In VB6, I was using this ShellExecute API to launch an external application, such as opening a Word document.&lt;/p&gt; &lt;p&gt;I was searching around, and finally I found this method, and it's so simple.&lt;/p&gt; &lt;p&gt;Just use System.Diagnostics.Process.Start() to&amp;nbsp;launch the application.&lt;/p&gt; &lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; filename = Application.StartupPath + &lt;span style="color: #006080"&gt;"\\Tutorials\\DataGridViewTutorial01.doc"&lt;/span&gt;;&lt;br /&gt;System.Diagnostics.Process.Start(filename);&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;As for the Application.StartupPath, it actually refers to the "bin\Debug" folder. (It depends on the build configuration, it refers to "bin\Release" folder if the build configuration is set to "Release".) In order to get the filename correctly, I've made some changes on the document properties. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;1. Add the document to the project.&lt;br&gt;&lt;br /&gt;2. Select the document and look for&amp;nbsp;its properties.&lt;br&gt;&lt;br /&gt;3. There are three options for the "Copy to Output Directory" property: Do not copy, Copy always, and Copy if newer. You may select "Copy always" or "Copy if newer", so that whenever you build your project, the latest version will be copied to the output directory. And Application.StartupPath is actually referring to this output directory.&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://ifs2.imagefly.info/i/94/Document.jpg"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-1756666961259852600?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/1756666961259852600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/how-to-launch-application-in-visual.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/1756666961259852600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/1756666961259852600'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/how-to-launch-application-in-visual.html' title='How to Launch application in Visual Studio 2005?'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-6112940370110244373</id><published>2007-07-18T08:10:00.001+08:00</published><updated>2007-07-18T08:10:41.836+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MyIdeas'/><category scheme='http://www.blogger.com/atom/ns#' term='Learning Path'/><title type='text'>Weekly Task</title><content type='html'>&lt;p&gt;When I was in my ex-company, there was once we have to submit 3 assignments per week together with 3 proposals for the next week assignments. I think this is a good idea to improve our programming skills and also motivate ourselves. But, too bad, the plan didn't really go well, I think just two or three weeks, then it died.&lt;/p&gt; &lt;p&gt;Just now when I was sitting in the car, suddenly this idea popped up in my mind. I always agree that it's a good idea, so why not I myself implement it?&lt;/p&gt; &lt;p&gt;OK. This is the plan. &lt;/p&gt; &lt;p&gt;- 3 items a week.&lt;br&gt;- Item can be prototype, function, java script, tip, tutorial, knowledge, news, just anything that I've learnt regarding software development.&lt;/p&gt; &lt;p&gt;I was thinking, even though when I'm busy with work, I'll definitely learn something. So, it's always good to build the habit to keep record of what I've learnt. &lt;/p&gt; &lt;p&gt;Well, just do it from now onwards. Hope that I can get some friends to join my plan later, so that we'll learn more and get motivated from others. &lt;img alt="Party" src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/74_74.gif"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-6112940370110244373?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/6112940370110244373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/weekly-task.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6112940370110244373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6112940370110244373'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/weekly-task.html' title='Weekly Task'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-6509452088590034199</id><published>2007-07-16T17:07:00.000+08:00</published><updated>2007-07-16T17:31:18.937+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Analysis'/><category scheme='http://www.blogger.com/atom/ns#' term='Website to share'/><category scheme='http://www.blogger.com/atom/ns#' term='Design'/><category scheme='http://www.blogger.com/atom/ns#' term='Object Oriented'/><title type='text'>OOAD UML</title><content type='html'>&lt;a href="http://www.ooaduml.com/" target="_blank"&gt;&lt;img src="http://ifs1.imagefly.info/i/21/OOADlogo.png" alt="OOAD UML" /&gt; OOAD UML - For Architects &amp; Designers &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've just found this website for Object-Oriented Analysis &amp;amp; Design.&lt;br /&gt;There is this &lt;a href="http://www.ooaduml.com/node/286" target="_blank"&gt;Free Books&lt;/a&gt; section that you can find some good tutorials regarding OOAD.&lt;br /&gt;There are also &lt;a href="http://www.ooaduml.com/taxonomy/vocabulary/4" target="_blank"&gt;articles&lt;/a&gt; and &lt;a href="http://www.ooaduml.com/forum" target="_blank"&gt;forum&lt;/a&gt; for more useful resources.&lt;br /&gt;&lt;br /&gt;The site seems to be quite new, hopefully it'll continue to grow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-6509452088590034199?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/6509452088590034199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/ooad-uml.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6509452088590034199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6509452088590034199'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/ooad-uml.html' title='OOAD UML'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-4621582593496501315</id><published>2007-07-11T11:40:00.000+08:00</published><updated>2007-07-11T12:06:45.733+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Download'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Free Visual Studio 2005 Express editions</title><content type='html'>I didn't know this Express software has become free forever.&lt;br /&gt;This is a good news for those who want to learn the programming, but do not need to buy the software.&lt;br /&gt;I can't remember what the limitations are, coz after not long I downloaded the Express version, my company bought the full version. As long as we can use this Express version to learn programming, I guess it's quite enough. Moreover, you can also download  the SQL Server Express.&lt;br /&gt;&lt;br /&gt;Click here to find more information or download the Express edition softwares:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/vstudio/express/"&gt;http://msdn.microsoft.com/vstudio/express/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I just found out these good resources, which can help us to learn throughout the way:&lt;br /&gt;* &lt;a href="http://msdn.microsoft.com/vstudio/express/beginner/default.aspx"&gt;Beginner Developer Learning Center&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://msdn.microsoft.com/vstudio/express/beginner/reference"&gt;How-To Reference Library&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://msdn.microsoft.com/vstudio/express/beginner/kids/"&gt;Kids' Corner&lt;/a&gt; (This is cool! You can even teach your kids to do programming now)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-4621582593496501315?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/4621582593496501315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/free-visual-studio-2005-express.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/4621582593496501315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/4621582593496501315'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/free-visual-studio-2005-express.html' title='Free Visual Studio 2005 Express editions'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-6415055524487770612</id><published>2007-07-05T17:18:00.001+08:00</published><updated>2007-07-05T17:31:39.208+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>My First Ajax Application</title><content type='html'>This is considered as my first Ajax application, though it's very simple.&lt;br /&gt;My boss was complaining the page keeps flickering when users perform some actions on the website.&lt;br /&gt;It's because the users always need to request something from the server, so many controls trigger post-back.&lt;br /&gt;This solution can definitely please him. :p&lt;br /&gt;Actually I should have looked into Ajax earlier, coz it's very easy to implement.&lt;br /&gt;&lt;br /&gt;Prerequisite: Installed &lt;a href="http://ajax.asp.net/downloads/" target="_blank"&gt;Ajax Extensions 1.0&lt;/a&gt;.&lt;br /&gt;Firstly, create a new website.&lt;br /&gt;Select "ASP.NET AJAX-Enabled Web Site" under the Visual Studio installed templates category.&lt;br /&gt;&lt;img src="http://ifs1.imagefly.info/i/26/create%20new%20website.jpg" alt="New Ajax Website" /&gt;&lt;br /&gt;&lt;br /&gt;Once you've installed Ajax Extensions, you'll see a tab "AJAX Extensions" added in your toolbox.&lt;br /&gt;Drag and drop the "UpdatePanel" to your web form.&lt;br /&gt;&lt;img src="http://ifs2.imagefly.info/i/50/Ajax%20UpdatePanel.jpg" alt="UpdatePanel" /&gt;&lt;br /&gt;&lt;br /&gt;I've made a very simple example here, to demonstrate the difference between with Ajax and without Ajax methods.&lt;br /&gt;&lt;br /&gt;I've used the following controls:&lt;br /&gt;(1) DropDownList - to list the selection items&lt;br /&gt;(2) Button - to select the particular item&lt;br /&gt;(3) Label - to display the selected item&lt;br /&gt;&lt;img src="http://ifs3.imagefly.info/i/ab/Ajax%20web%20form%20design.jpg" alt="Ajax example" /&gt;&lt;br /&gt;Well, I don't know what's the "ScriptManager" about, it was automatically added when I first created the website. I just put the three controls in the UpdatePanel for Ajax demo.&lt;br /&gt;&lt;br /&gt;In the example, you'll see with Ajax components, the page doesn't flicker when you send request to the server.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://ifs1.imagefly.info/i/37/Ajax%20example.jpg" alt="Ajax example" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-6415055524487770612?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/6415055524487770612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/my-first-ajax-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6415055524487770612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6415055524487770612'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/my-first-ajax-application.html' title='My First Ajax Application'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-8989604305497923203</id><published>2007-07-03T20:02:00.000+08:00</published><updated>2007-07-03T21:28:48.080+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataSet'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Create DataSet</title><content type='html'>I always wanted to create the DataSet manually, without having to fill the DataSet from the DataAdapter.&lt;br /&gt;&lt;br /&gt;The example is to get all 12 months, this is how the DataSet looks like:&lt;br /&gt;&lt;img src="http://ifs3.imagefly.info/i/43/Month%20DataSet.jpg" alt="DataSet" /&gt;&lt;br /&gt;This is how I did it:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;   public static&lt;/span&gt; &lt;span style="color: rgb(51, 153, 153);"&gt;DataSet &lt;/span&gt;GetAllMonths()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 153, 0);"&gt;        //Create new DataSet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        &lt;span style="color: rgb(51, 153, 153);"&gt;DataSet &lt;/span&gt;dsMonth = &lt;span style="color: rgb(51, 51, 255);"&gt;new &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;DataSet &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;/span&gt;();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 153, 0);"&gt;        //Create new DataTable&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;        DataTable&lt;/span&gt; dtMonth = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;new &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;DataTable&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;(&lt;span style="color: rgb(204, 0, 0);"&gt;"Month"&lt;/span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 153, 0);"&gt;        //Create two DataColumns: Id &amp; Month&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        &lt;span style="color: rgb(51, 153, 153);"&gt;DataColumn &lt;/span&gt;dcMonth = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;new &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;DataColumn &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;"Month"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;DataColumn &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;dcId = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;new &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;DataColumn &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;(&lt;span style="color: rgb(204, 0, 0);"&gt;"Id"&lt;/span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 153, 0);"&gt;        //Add the columns to the DataTable&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        dtMonth.Columns.Add(dcId);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        dtMonth.Columns.Add(dcMonth);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 153, 0);"&gt;        //Add the 12 months to the DataTable&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        _AddMonthToDataTable(&lt;span style="color: rgb(51, 51, 255);"&gt;ref &lt;/span&gt;dtMonth, 1, &lt;span style="color: rgb(204, 0, 0);"&gt;"January"&lt;/span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        _AddMonthToDataTable(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;ref &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;dtMonth, 2, &lt;span style="color: rgb(204, 0, 0);"&gt;"February"&lt;/span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        _AddMonthToDataTable(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;ref &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;dtMonth, 3, &lt;span style="color: rgb(204, 0, 0);"&gt;"March"&lt;/span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        _AddMonthToDataTable(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;ref &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;dtMonth, 4, &lt;span style="color: rgb(204, 0, 0);"&gt;"April"&lt;/span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        _AddMonthToDataTable(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;ref &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;dtMonth, 5, &lt;span style="color: rgb(204, 0, 0);"&gt;"May"&lt;/span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        _AddMonthToDataTable(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;ref &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;dtMonth, 6, &lt;span style="color: rgb(204, 0, 0);"&gt;"June"&lt;/span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        _AddMonthToDataTable(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;ref &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;dtMonth, 7, &lt;span style="color: rgb(204, 0, 0);"&gt;"July"&lt;/span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        _AddMonthToDataTable(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;ref &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;dtMonth, 8, &lt;span style="color: rgb(204, 0, 0);"&gt;"August"&lt;/span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        _AddMonthToDataTable(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;ref &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;dtMonth, 9, &lt;span style="color: rgb(204, 0, 0);"&gt;"September"&lt;/span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        _AddMonthToDataTable(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;ref &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;dtMonth, 10, &lt;span style="color: rgb(204, 0, 0);"&gt;"October"&lt;/span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        _AddMonthToDataTable(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;ref &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;dtMonth, 11, &lt;span style="color: rgb(204, 0, 0);"&gt;"November"&lt;/span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        _AddMonthToDataTable(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;ref &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;dtMonth, 12, &lt;span style="color: rgb(204, 0, 0);"&gt;"December"&lt;/span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 153, 0);"&gt;        //Add the DataTable to DataSet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        dsMonth.Tables.Add(dtMonth);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        &lt;span style="color: rgb(51, 51, 255);"&gt;return &lt;/span&gt;dsMonth;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;    private static void&lt;/span&gt; _AddMonthToDataTable(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;ref &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;DataTable&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;dt, &lt;span style="color: rgb(51, 51, 255);"&gt;int &lt;/span&gt;id, &lt;span style="color: rgb(51, 51, 255);"&gt;string &lt;/span&gt;month)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 153, 0);"&gt;        //Create new DataRow to the DataTable&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        &lt;span style="color: rgb(51, 153, 153);"&gt;DataRow &lt;/span&gt;dr = dt.NewRow();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 153, 0);"&gt;        //Assign values to the data columns&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        dr[&lt;span style="color: rgb(204, 0, 0);"&gt;"Id"&lt;/span&gt;] = id;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        dr[&lt;span style="color: rgb(204, 0, 0);"&gt;"Month"&lt;/span&gt;] = month;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 153, 0);"&gt;        //Add the DataRow to the DataTable&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        dt.Rows.Add(dr);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    }&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-8989604305497923203?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/8989604305497923203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/create-dataset.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8989604305497923203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8989604305497923203'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/07/create-dataset.html' title='Create DataSet'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-301004833831668619</id><published>2007-06-19T08:40:00.000+08:00</published><updated>2007-06-26T08:35:44.811+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Auto Fill up Leading Zero(s)</title><content type='html'>&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Scenario:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;There came another requirement. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;When the user didn't key in the max length in the first text box, leading zero(s) will automatically be added to fill up the space.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;For example:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Telephone number: (12)-(12345678)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;If the user only entered "12", it hasn't reached the max length (3) yet, then a leading zero will be added to become "012".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;I'm still using the javascript here. Add the following script in the &amp;lt;head&amp;gt; block:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;script language="javascript"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;span style="color: rgb(0, 102, 0);"&gt;//Add leading zero if the current value doesn't reach its max length&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    function AddLeadingZero(currentField)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        &lt;span style="color: rgb(0, 102, 0);"&gt;//Check if the value length hasn't reach its max length yet&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        if (currentField.value.length != currentField.maxLength)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            &lt;span style="color: rgb(0, 102, 0);"&gt;//Add leading zero(s) in front of the value&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            var numToAdd = currentField.maxLength - currentField.value.length;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            var value =&lt;span style="color: rgb(153, 0, 0);"&gt;""&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            for (var i = 0; i &lt;&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                value += &lt;span style="color: rgb(204, 0, 0);"&gt;"0"&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            &lt;span style="color: rgb(0, 102, 0);"&gt;//Set value&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            currentField.value = value + currentField.value;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;script&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;language&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;=javascript&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;function &lt;/span&gt;AddLeadingZero(currentField)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);font-family:courier new;" &gt;        //Check if the value length hasn't reach its max length yet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                &lt;span style="color: rgb(0, 0, 153);"&gt;if &lt;/span&gt;(currentField.value.length != currentField.maxLength)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);font-family:courier new;" &gt;                        //Add leading zero(s) in front of the value&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                        &lt;span style="color: rgb(0, 0, 153);"&gt;var &lt;/span&gt;numToAdd = currentField.maxLength - currentField.value.length;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                        &lt;span style="color: rgb(0, 0, 153);"&gt;var &lt;/span&gt;value =&lt;span style="color: rgb(153, 0, 0);"&gt;""&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                        &lt;span style="color: rgb(0, 0, 153);"&gt;for (var &lt;span style="color: rgb(0, 0, 0);"&gt;i = 0; i &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 0);font-family:courier new;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; numToAdd;i++&lt;/span&gt;)&lt;br /&gt;            &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: rgb(0, 0, 0);"&gt;value += &lt;span style="color: rgb(153, 0, 0);"&gt;"0"&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;                                currentField.value = value + currentField.value;                  &lt;br /&gt;                    }  &lt;br /&gt;}     &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153); font-family: courier new;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0); font-family: courier new;"&gt;script&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-family: courier new;"&gt;&amp;gt;&lt;/span&gt;  &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;br /&gt;Copy this function in the code file:&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;public static void AddLeadingZeroAttribute(TextBox txt)&lt;br /&gt;{&lt;br /&gt;  &lt;span style="color: rgb(0, 102, 0);"&gt;//Add leading zero when focus is lost&lt;/span&gt;&lt;br /&gt;  txt.Attributes.Add(&lt;span style="color: rgb(204, 0, 0);"&gt;"OnBlur"&lt;/span&gt;, &lt;span style="color: rgb(204, 0, 0);"&gt;"AddLeadingZero(this)"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;"OnBlur" event will be triggered when the textbox loses the focus. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Whenever the user finished keying in values and left the textbox, the AddLeadingZero() function will be called.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-301004833831668619?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/301004833831668619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/06/auto-fill-up-leading-zeros.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/301004833831668619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/301004833831668619'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/06/auto-fill-up-leading-zeros.html' title='Auto Fill up Leading Zero(s)'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-4406963906103462450</id><published>2007-06-19T08:30:00.000+08:00</published><updated>2007-06-19T08:44:42.448+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Auto Set Focus to Next control</title><content type='html'>&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Scenario:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;You may want to auto set the focus to the next textbox, when the user has typed the exact length in the current textbox.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;For example:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Telephone number: (012)-(12345678)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;The max length for the first textbox is 3, after user typed in "012" which already reached the max length, the the focus should automatically set to the next text box.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Thanks for my colleague, Carmen, who helped me to find the following solution.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Add the following script to the &amp;lt;head&amp;gt; block:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;&lt;script language="javascript"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    //Set focus to the next Field if the current value reaches its max length&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    function Tab(currentField, nextField)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        // Determine if the current field's max length has been reached.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        if (currentField.value.length == currentField.maxLength)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;              // Retrieve the next field in the tab sequence, and give it the focus.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            document.getElementById(nextField).focus();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Copy this function in the code file:&lt;/span&gt;&lt;br /&gt; &lt;span style="font-size:85%;"&gt; public static void AddNextTabAttribute(TextBox txt1,&lt;br /&gt;      TextBox txt2)&lt;br /&gt;  {&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;        //Set next tab attribute when key up&lt;/span&gt;&lt;br /&gt;      txt1.Attributes.Add(&lt;span style="color: rgb(204, 0, 0);"&gt;"OnKeyUp"&lt;/span&gt;, &lt;span style="color: rgb(204, 0, 0);"&gt;"Tab(this, '"&lt;/span&gt; +&lt;br /&gt;          txt2.ClientID + &lt;span style="color: rgb(204, 0, 0);"&gt;"')"&lt;/span&gt;);&lt;br /&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Whenever the "KeyUp" event has trigged in the first textbox, it'll call the Tab() function and check if it has reached its max length.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Then, call this function in Page_Load event to add the attributes to the textbox.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;AddNextTabAttribute(txtPhoneNo1, txtPhoneNo2);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;That's it!&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;I am not sure if there is a better way to do this, I find that it's very powerful to combine Javascript in ASP.NET.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-4406963906103462450?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/4406963906103462450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/06/auto-set-focus-to-next-control.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/4406963906103462450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/4406963906103462450'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/06/auto-set-focus-to-next-control.html' title='Auto Set Focus to Next control'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-6428261459126284812</id><published>2007-06-14T11:08:00.000+08:00</published><updated>2007-06-14T13:03:27.773+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computer related'/><title type='text'>Update McAfee Virus Definition</title><content type='html'>I've learnt something new today, and I wish to jot it down, in case I will forget this later. (I'm sure I will forget. :p)&lt;br /&gt;&lt;br /&gt;My colleague reminded us to update the virus definition today, but I was having problem in updating it.&lt;br /&gt;Then, my colleague helped me to solve the problem.&lt;br /&gt;&lt;br /&gt;1) re-register the ole32.dll in C:\Windows\System32 folder.&lt;br /&gt;2) Start the McAfee Framework Service.&lt;br /&gt;     a. Go to Control Panel --&gt; Administration Tools --&gt; Services&lt;br /&gt;     b. Look for McAfee Framework Service, right click and select "Start".&lt;br /&gt;&lt;br /&gt;That's it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-6428261459126284812?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/6428261459126284812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/06/update-mcafee-virus-definition.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6428261459126284812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6428261459126284812'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/06/update-mcafee-virus-definition.html' title='Update McAfee Virus Definition'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-7979482982837882261</id><published>2007-06-12T22:55:00.000+08:00</published><updated>2007-06-12T23:04:41.331+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scribble'/><title type='text'>Bugfree application?</title><content type='html'>Will you promise to deliver a bug-free application?&lt;br /&gt;&lt;br /&gt;My senior was saying this to me, hopefully by this week we can solve all the problems, and we'll get a PASS for next week UAT.&lt;br /&gt;Well, I do not know what to respond.&lt;br /&gt;Can I say, "I'll try my best"?&lt;br /&gt;This is a very common answer, isn't it?&lt;br /&gt;But how can I make a promise saying there won't be any bugs or problems during the UAT?&lt;br /&gt;Even Microsoft's products are having bugs after they released and sold to thousands or millions of customers, that's why they came out with all these service packs, isn't it?&lt;br /&gt;I dare not promise for a bug-free application. I just kept quiet and listen to my senior's plan. :p&lt;br /&gt;&lt;br /&gt;I'm already trying to meet the deadline, the project period has been shorten, then many new requirements have been added, even until today. Well, I have a few more pending enhancements to be completed by the end of this week. Having to fix the errors, and to add the new features, there are three more days for me to go.&lt;br /&gt;&lt;br /&gt;Although I might not be able to do the better for this project, there is something I need to cater for the future projects.&lt;br /&gt;From the internal testing bug list, I realized that I've missed out something during my own testing. (Well,  I didn't really have time for my own testing.)&lt;br /&gt;I plan to make a checklist for my future projects, I need to fulfill the checklist before I release my application for others to test. Although I need to start another project before I complete this, I surely need to take at least half a day to make a draft checklist.&lt;br /&gt;Completing the projects is important, learning from the mistakes is as important too.&lt;br /&gt;Never learn from mistakes, no matter how many projects I have completed, I didn't learn a single thing. That's not good.&lt;br /&gt;&lt;br /&gt;Keep going. Work happily and live happily. ^_^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-7979482982837882261?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/7979482982837882261/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/06/bugfree-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/7979482982837882261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/7979482982837882261'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/06/bugfree-application.html' title='Bugfree application?'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-3175414707985011898</id><published>2007-06-12T22:09:00.000+08:00</published><updated>2007-06-13T08:45:30.555+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Hit Enter Key in ASP.NET page</title><content type='html'>&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold;"&gt;Scenario:&lt;/span&gt;&lt;br /&gt;It's very common for the user to hit the Enter key after they have entered the required data in the text box.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;For example, when you want to Login.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;After keying in your user name and password, instead of clicking on the "Login" button, you may also hit the Enter key to login.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Solution 1:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;In order to do this, ASP.NET 2.0 has provided a property in Form and Panel controls, which is "DefaultButton".&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;You can set the DefaultButton property to the button name, so that whenever user hits the Enter key in the form or panel, the button clicked event will be triggered.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Solution 2:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Well, I was having an issue with the DefaultButton.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;I'm not using panel to group my controls, as panel is having some problem with IE7.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;I've found a solution with using javascript, it's simple and nice to use. (You do not need to edit your current UI for this.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Create this function:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;    public static void AddEnterKeyAttribute(TextBox txt,&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; ImageButton iBtn)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        txt.Attributes.Add(&lt;span style="color: rgb(204, 0, 0);"&gt;"onkeydown"&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;            "if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {document.getElementById('"&lt;/span&gt; + &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;iBtn&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;.UniqueID + &lt;span style="color: rgb(204, 0, 0);"&gt;"').click();return false;}} else {return true}; "&lt;/span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);" id="intelliTXT"&gt;The keycode for enter key is 13.&lt;br /&gt;When a key is pressed in textbox it will check the keycode is 13. If it is 13 the relevant button will be clicked.&lt;br /&gt;event.keycode will not work with firefox, so we are using event.which.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;You can create multiple similar functions for different web controls.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Perhaps you can also create a general function which accept any kind of web controls. I haven't try this yet.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;You just need to add this in Page_Load event, for all the web controls that you want to trigger the button clicked event when user hits the Enter key:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;AddEnterKeyAttribute(txtPassword, ibtnLogin);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;It's done. It's just that simple. ^_^&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ref: &lt;a href="http://www.codeproject.com/useritems/aspnet_Enter_key_problem.asp" target="_blank"&gt;The Code Project - Solving out ASP.NET enter key problem&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-3175414707985011898?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/3175414707985011898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/06/hit-enter-key-in-aspnet-page.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/3175414707985011898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/3175414707985011898'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/06/hit-enter-key-in-aspnet-page.html' title='Hit Enter Key in ASP.NET page'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-346127659933885010</id><published>2007-05-22T10:12:00.000+08:00</published><updated>2007-05-22T10:26:34.701+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Problems'/><category scheme='http://www.blogger.com/atom/ns#' term='GridView'/><category scheme='http://www.blogger.com/atom/ns#' term='Scribble'/><title type='text'>Couldn't find selectedvalue</title><content type='html'>I'm having problem with GridView again.&lt;br /&gt;I don't know what'd happened.&lt;br /&gt;It worked on last Friday, I was really happy that it finally worked.&lt;br /&gt;But, today when I tested it again, it failed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Scenario:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;I added an edit function to the GridView, and bind the values of the fields to the dropdownlists.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Problem happens after I clicked on the "edit" button on the selected row.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;I populated the dropdownlist with a DataSet that was returned from my own function.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;DataSource='&amp;lt;#% GetCategories()  %&amp;gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;I've checked the DataSource passed in correctly, with all the items I want to list out.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;But, error returned saying the dropdownlist selected value was not found in the item list.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;How could this happen?&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;The dropdownlist is bond to the correct field.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;The weird thing is, I didn't change any codes here.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;I'm a bit frustrated now, there are many more work for me to do and problems to solve.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Yet, something was done and now it's undone.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Well, I know frustration won't help to solve the problem.&lt;br /&gt;I will take a break here, and do something else first.&lt;br /&gt;I'll finally find out how to solve this later.&lt;br /&gt;Sometimes, a simple thing but costs lots of effort &amp;amp; thinking.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-346127659933885010?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/346127659933885010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/05/couldnt-find-selectedvalue.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/346127659933885010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/346127659933885010'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/05/couldnt-find-selectedvalue.html' title='Couldn&apos;t find selectedvalue'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-2345452042658817092</id><published>2007-05-14T13:09:00.000+08:00</published><updated>2007-05-14T14:42:05.851+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Crystal Report'/><category scheme='http://www.blogger.com/atom/ns#' term='Reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Problems'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Crystal Report or Embedded Report?</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Scenario:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;I need to create a simple report for my application.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;The report only needs to include some data in tabular format, and some user information.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;I've been looking into Crystal Report and Embedded Report today.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;Crystal Report:&lt;/span&gt;&lt;br /&gt;I guess the functionality is more powerful, and it's been a well known reporting.&lt;br /&gt;If my report requires more functionality in future, then I do not need to change the report control.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;Embedded Report:&lt;/span&gt;&lt;br /&gt;I was thinking of choosing this embedded report, coz I only need a simple report.&lt;br /&gt;This embedded report can be run on local mode, which it will be faster and less traffic created to request data from the server.&lt;br /&gt;I only need to export function to PDF and Excel, which this embedded report was limited to only export to Excel and PDF works fine for me.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Problems:&lt;/span&gt;&lt;br /&gt;Well, so far I have problems with these two report tools, although I thought it should be very simple.&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;Crystal Report:&lt;/span&gt;&lt;br /&gt;I've tried a prototype with Crystal Report, it was fine, it's very easy to configure and format the report layout.&lt;br /&gt;But, when I really want to try this in my application, I was prompted to enter the connection information. Well, I have no idea what XML file I should key in for the File Path.&lt;br /&gt;Perhaps a XML format for the Class?&lt;br /&gt;Well, I was just stuck here, and don't know how to proceed further.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;Embedded Report:&lt;/span&gt;&lt;br /&gt;As for the embedded report, I'm having problem too.&lt;br /&gt;I have this error: "A data source instance has not been supplied for the data source..."&lt;br /&gt;Well, I have no idea what to do right now.&lt;br /&gt;&lt;br /&gt;Perhaps just take a break, and continue later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-2345452042658817092?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/2345452042658817092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/05/crystal-report-or-embedded-report.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2345452042658817092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2345452042658817092'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/05/crystal-report-or-embedded-report.html' title='Crystal Report or Embedded Report?'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-6187567658103407342</id><published>2007-05-11T21:24:00.001+08:00</published><updated>2007-05-12T08:39:52.487+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='string manipulation'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Split string</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Scenario:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;The IC Number format is "770131-08-1234", and I need to split the text into 3 different sections, to display on the screen.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Solution:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;There are many times we need to split a string with a delimiter.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;The Split() function can help to deal with these cases easily.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Note that the delimiter is a character.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;Example 1: Split with one delimiter&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;string stringToSplit = "770131-08-1234";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;string[] splitStrings = stringToSplit.Split('-');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;splitStrings[0]  will be "770131".&lt;br /&gt;splitStrings[1]  will be "08".&lt;br /&gt;splitStrings[2]  will be "1234".&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;Example 2: Split with more than one delimiter&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;string stringToSplit = "770131;08-1234";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;string[] splitStrings = stringToSplit.Split('-',';');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;splitStrings[0]  will be "770131".&lt;br /&gt;splitStrings[1]  will be "08".&lt;br /&gt;splitStrings[2]  will be "1234".&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;Example 3: Split without delimiter&lt;/span&gt;&lt;br /&gt;Spaces will be treated as delimiter.&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;string stringToSplit = "770131 08 1234";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;string[] splitStrings = stringToSplit.Split();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;splitStrings[0]  will be "770131".&lt;br /&gt;splitStrings[1]  will be "08".&lt;br /&gt;splitStrings[2]  will be "1234".&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;I've prepared a simple demonstration --&gt; &lt;/span&gt;&lt;a href="http://aspspider.ws/kaka135/MyPrototype/MyTool/MyString.aspx" target="aspspider"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;Split String&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;It's relatively slow compared to working on my own laptop.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Perhaps you can also download the source code here. &lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.box.net/index.php?rm=box_v2_download_shared_file&amp;amp;file_id=f_61380992"&gt;&lt;img src="http://ifs1.imagefly.info/i/71/new_document_24_h.png" alt="SplitString demo" /&gt;&lt;/a&gt; (SplitString.zip : 4.5KB)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-6187567658103407342?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/6187567658103407342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/05/split-string.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6187567658103407342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6187567658103407342'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/05/split-string.html' title='Split string'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-7509435593720938957</id><published>2007-05-11T17:35:00.000+08:00</published><updated>2007-05-12T08:38:53.422+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Controls'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Display image in GridView according to the value</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Scenario:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;I have a boolean field in the dataset called "isImportant".&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;I want to bind this field to the GridView, so that if the value is true, it'll show a red flag.&lt;/span&gt;&lt;br /&gt;&lt;img src="http://ifs3.imagefly.info/i/a1/GridView_ShowImage.jpg" alt="Display Image in GridView" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Solution:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;I actually searched for quite sometime, and at last found that it's actually very simple to do that.&lt;/span&gt;&lt;br /&gt;1. Create a Template Field for the column.&lt;br /&gt;2. Add a Image control in the ItemTemplate.&lt;br /&gt;3. Set the ImageUrl for the Image.&lt;br /&gt;4. Right click on the Image control and select "Edit DataBindings....".&lt;br /&gt;5. You'll see the "DataBinding" dialog box.&lt;br /&gt;&lt;a href="http://ifs2.imagefly.info/i/ce/Image%20DataBinding_Large.jpg" target="databinding"&gt;&lt;img src="http://ifs2.imagefly.info/i/bf/Image%20DataBinding_Small.jpg" alt="Edit databinding" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;(Click to see the larger image)&lt;/span&gt;&lt;br /&gt;5. Select the "Visible" property in the "Bindable properties" list.&lt;br /&gt;6. For "Custom binding" section, type: &lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;Bind("IsImportant")&lt;/span&gt;.&lt;br /&gt;7. It's done.&lt;br /&gt;When the "IsImportant" value is true, the image will be shown.&lt;br /&gt;Otherwise, the image will be invisible.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;If you know there is any simpler or better way to do this, please let me know. ^_^&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-7509435593720938957?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/7509435593720938957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/05/display-image-in-gridview-according-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/7509435593720938957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/7509435593720938957'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/05/display-image-in-gridview-according-to.html' title='Display image in GridView according to the value'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-2964027257578742229</id><published>2007-05-07T18:21:00.000+08:00</published><updated>2007-05-07T19:00:28.365+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MyNotes'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Controls'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Format DateTime in GridView</title><content type='html'>Well, this could be very simple, but it could be hard if you don't know the key.&lt;br /&gt;&lt;br /&gt;Just click on the arrow icon located at the top right corner of the GridView, and select "Edit columns...".&lt;br /&gt;The following dialog box will be displayed.&lt;br /&gt;&lt;a href="http://ifs3.imagefly.info/i/9d/GridView%20Edit%20Column.png" target="gridview"&gt;&lt;img alt="Formatting DateTime in GridView" src="http://ifs3.imagefly.info/i/83/GridView%20Edit%20Columnsmall.png" /&gt;&lt;/a&gt;&lt;br /&gt;(Click on the above image to view the larger image)&lt;br /&gt;&lt;br /&gt;Select the DateTime field.&lt;br /&gt;Then change the value for the following properties:&lt;br /&gt;* DataFormatString: &lt;span style="color:#ff6666;"&gt;{0:dd/MM/yyyy}&lt;/span&gt;&lt;br /&gt;* HtmlEncode: &lt;span style="color:#ff6666;"&gt;False&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You'll get the following DateTime display in your Gridview.&lt;br /&gt;&lt;img alt="GridView DateTime display" src="http://ifs3.imagefly.info/i/64/GridView%20Display.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-2964027257578742229?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/2964027257578742229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/05/format-datetime-in-gridview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2964027257578742229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2964027257578742229'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/05/format-datetime-in-gridview.html' title='Format DateTime in GridView'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-3134260608588033046</id><published>2007-04-29T19:31:00.000+08:00</published><updated>2007-04-29T19:55:39.886+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Database Design'/><category scheme='http://www.blogger.com/atom/ns#' term='MyProjectManager'/><title type='text'>Database Design Diagram</title><content type='html'>After some struggle in the design, I've finally decided to choose the current path:&lt;br /&gt;separating the Data Access Layer and Business Logic Layer.&lt;br /&gt;&lt;br /&gt;I've designed the database.&lt;br /&gt;As I may only be able to upload one database to my free hosting site,&lt;br /&gt;so I have to share the same database for all my future projects.&lt;br /&gt;&lt;br /&gt;There will be some tables sharing among these projects:&lt;br /&gt;&lt;span style="color:#99ff99;"&gt;&lt;span style="color:#ccffff;"&gt;* User&lt;br /&gt;* Attachment&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The main tables for MyProjectManager are:&lt;br /&gt;&lt;span style="color:#ccffff;"&gt;* Project&lt;br /&gt;* ProjectTask&lt;br /&gt;* ProjectMember&lt;br /&gt;* TaskAssignee&lt;br /&gt;* ProjectAttachment&lt;br /&gt;* TaskAttachment&lt;br /&gt;* ProjectTimeLog&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The reference tables include:&lt;br /&gt;&lt;span style="color:#ccffff;"&gt;* ProjectApplicationType&lt;/span&gt; (whether Web application or Windows application)&lt;br /&gt;&lt;span style="color:#ccffff;"&gt;* ProjectStatus&lt;/span&gt; (Not Started, On-going, Completed, On-hold, Terminated)&lt;br /&gt;&lt;span style="color:#ccffff;"&gt;* ProjectPhase&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ccffff;"&gt;* TaskType&lt;/span&gt; (whether Project Task, Project Request or Project Bug)&lt;br /&gt;&lt;br /&gt;I was confusing whether I should combine ProjectAttachment &amp; TaskAttachment tables into one,&lt;br /&gt;as they serve for the same purpose, except one for Project, another for Task.&lt;br /&gt;Same go to ProjectMember and TaskAssignee.&lt;br /&gt;&lt;br /&gt;Well, this is my first version of database design.&lt;br /&gt;I really gotta get it up, and start work on it, otherwise it'll never end. ^_^&lt;br /&gt;&lt;br /&gt;You may download the database diagram here:&lt;br /&gt;&lt;a href="http://www.box.net/index.php?rm=box_download_shared_file&amp;amp;file_id=f_58675058&amp;shared_name=8arvseid8f"&gt;&lt;img alt="MyProjectManager Database Diagram" src="http://ifs1.imagefly.info/i/71/new_document_24_h.png" /&gt;&lt;/a&gt; (DatabaseDesign.zip : 19.4KB)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-3134260608588033046?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/3134260608588033046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/04/database-design-diagram.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/3134260608588033046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/3134260608588033046'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/04/database-design-diagram.html' title='Database Design Diagram'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-6551951617814147528</id><published>2007-04-29T11:43:00.000+08:00</published><updated>2007-04-29T11:53:38.096+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Questions'/><category scheme='http://www.blogger.com/atom/ns#' term='Problems'/><title type='text'>Stuck in 3-Tier Application Design</title><content type='html'>I am in the midst of designing &lt;a href="http://kakaprogramming.blogspot.com/search/label/MyProjectManager"&gt;MyProjectManager&lt;/a&gt;'s architecture.&lt;br /&gt;I am stuck here.&lt;br /&gt;&lt;br /&gt;Definitely, I'd like to have 3 tiers in my application,&lt;br /&gt;which is Data Tier, Business Logic Tier and the Presentation Tier.&lt;br /&gt;There's no doubt in data tier and presentation tier,&lt;br /&gt;which consists of the database and UI, respectively.&lt;br /&gt;But, how about the Business Logic Tier?&lt;br /&gt;I've seen the design which combines the Data Access Tier and the Business Tier,&lt;br /&gt;which is a class contains the Data Access codes and also the Business Logic codes.&lt;br /&gt;I guess this will boot up the performance, but will it make the tiers ambiguous?&lt;br /&gt;Should we separate the Data Access codes with the Business Logic codes?&lt;br /&gt;&lt;br /&gt;I've read an article saying the advantages of separating them are:&lt;br /&gt;1) Increases code transparency&lt;br /&gt;2) Supports changes in Data Layer. You can change or alter database with out touching the Business Layer and this would be a very minimum touch up.&lt;br /&gt;&lt;br /&gt;How do others deal with this issue?&lt;br /&gt;Separating them? or combing them into one layer?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-6551951617814147528?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/6551951617814147528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/04/stuck-in-3-tier-application-design.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6551951617814147528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/6551951617814147528'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/04/stuck-in-3-tier-application-design.html' title='Stuck in 3-Tier Application Design'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-913291502216213910</id><published>2007-04-18T22:03:00.000+08:00</published><updated>2007-04-18T22:24:22.593+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MyNotes'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Writing &lt; &gt; in the web page</title><content type='html'>Since HTML uses the tag &lt;&gt;, so if you want to display &lt;&gt; on the screen, you need to specially convert them to some other format.&lt;br /&gt;&lt;br /&gt;To use the opening tag "&lt;", you need to type &lt;img src="http://ifs2.imagefly.info/i/c5/Opening%20Tag.jpg" /&gt;&lt;br /&gt;To use the closing tag "&gt;", you need to type &lt;img src="http://ifs2.imagefly.info/i/60/Closing%20Tag.jpg" /&gt;&lt;br /&gt;Say, you want to write&amp;lt;HTML&amp;gt; , you actually need to type &lt;img src="http://ifs2.imagefly.info/i/e8/HTML%20tag.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-913291502216213910?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/913291502216213910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/04/writing-in-web-page.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/913291502216213910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/913291502216213910'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/04/writing-in-web-page.html' title='Writing &lt; &gt; in the web page'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-2116905397530634418</id><published>2007-04-18T20:42:00.000+08:00</published><updated>2007-04-18T22:28:12.471+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MyTutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Adding CSS to ASP.NET</title><content type='html'>geI have no idea how to deal with CSS, and also include CSS into my ASP.NET pages.&lt;br /&gt;After searching in the Internet, I finally found that it's so simple to do it.&lt;br /&gt;&lt;br /&gt;First of all, do not set the font properties for all the controls if you decide to use CSS, otherwise the properties set will overwrite the CSS attributes.&lt;br /&gt;&lt;br /&gt;1) Add a new item --&gt; Select "Style Sheet" from the item --&gt; Say, name it "Style1.css".&lt;br /&gt;2) Copy the following text into the CSS file.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;color:#006600;"&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family:courier new;color:#ffffcc;"&gt;body&lt;br /&gt;{&lt;br /&gt;font-family: Verdana;&lt;br /&gt;font-size: 8pt;&lt;br /&gt;}&lt;br /&gt;.MyLabel&lt;br /&gt;{&lt;br /&gt;color:Olive ;&lt;br /&gt;font-size:&lt;br /&gt;8pt;&lt;br /&gt;font-weight:bold;&lt;br /&gt;font-style:italic;&lt;br /&gt;font-family:Century&lt;br /&gt;Gothic;&lt;br /&gt;}&lt;br /&gt;.MyTextBox&lt;br /&gt;{&lt;br /&gt;color:Silver ;&lt;br /&gt;font-size: 15pt;&lt;br /&gt;font-family:Verdana ;&lt;br /&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new;color:#ffffcc;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;Where "MyLabel" and "MyTextBox" is the CSS name.&lt;br /&gt;3) Copy this statement in the ASP page between the "head" block:&lt;br /&gt;&lt;span style="color:#ffffcc;"&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;link href="Style1.css" type="text/css" rel="stylesheet"&amp;gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;OR&lt;br /&gt;Select "DOCUMENT" property for the ASP page, then set the property "StyleSheet" value to the CSS filename, i.e. Style1.css&lt;br /&gt;4) Create a Label and a TextBox on the page.&lt;br /&gt;Then set the property CssClass for Label to "MyLabel", and "MyTextBox" for the TextBox.&lt;br /&gt;You'll see the effect.&lt;br /&gt;&lt;img alt="My CSS Example" src="http://ifs3.imagefly.info/i/74/Css%20Example.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Isn't it really simple? I've applied this to my current project, which makes it look much nicer and neater. I'm happy for that. ^_^&lt;br /&gt;&lt;br /&gt;Thanks &lt;a href="http://www.blogcharm.com/oceanuswonderland" target="OceanGenie"&gt;OceanGenie&lt;/a&gt; for telling me this good site for learning CSS - &lt;a href="http://www.w3schools.com/css/default.asp" target="w3schools"&gt;CSS Tutorial from W3Schools&lt;/a&gt;. If you want to learn more about How To write the CSS attributes, I guess this site consists of many good tutorials.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-2116905397530634418?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/2116905397530634418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/04/adding-css-to-aspnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2116905397530634418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2116905397530634418'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/04/adding-css-to-aspnet.html' title='Adding CSS to ASP.NET'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-1568751153285100835</id><published>2007-04-13T22:10:00.000+08:00</published><updated>2007-04-13T23:59:52.404+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MyProjectManager'/><category scheme='http://www.blogger.com/atom/ns#' term='MyProjects'/><title type='text'>Project Initiation</title><content type='html'>After drafting out the rough ideas from my mind, I started documenting these in proper documentation.&lt;br /&gt;&lt;br /&gt;I've finally done with these documents:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Proposal - state the purpose of the project and also the general features.&lt;/li&gt;&lt;li&gt;Use Cases - list out the actors and their actions.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Next, I'll be drafting out the Gantt chart.&lt;br /&gt;This project was really started in 9-April-2007. I plan to get it done in three month time, which is by end of June-2007, I should be able to start using this project management system.&lt;br /&gt;&lt;br /&gt;You may download the documents here:&lt;br /&gt;&lt;a href="http://www.box.net/index.php?rm=box_download_shared_file&amp;file_id=f_55655676&amp;amp;shared_name=y11rupy0ve"&gt;&lt;img src="http://ifs1.imagefly.info/i/71/new_document_24_h.png" /&gt;&lt;/a&gt; (Proposal.zip : 14.6KB)&lt;br /&gt;&lt;a href="http://www.box.net/index.php?rm=box_download_shared_file&amp;file_id=f_55655964&amp;amp;shared_name=mi0nhl8mkr"&gt;&lt;img src="http://ifs1.imagefly.info/i/71/new_document_24_h.png" /&gt;&lt;/a&gt; (High Level Use Case.zip : 23.6KB)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-1568751153285100835?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/1568751153285100835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/04/project-initiation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/1568751153285100835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/1568751153285100835'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/04/project-initiation.html' title='Project Initiation'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-2076222361098682550</id><published>2007-04-13T00:48:00.000+08:00</published><updated>2007-04-13T22:09:30.973+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MyProjectManager'/><category scheme='http://www.blogger.com/atom/ns#' term='MyProjects'/><title type='text'>My First Project - MyProjectManager</title><content type='html'>I've decided to develop a project management system as my first project, simply because I need a tool to handle the projects I'm going to build.&lt;br /&gt;&lt;br /&gt;I always like to learn project management and better software development process. Having been researched for quite some time, I felt like I was still standing still but not moving forward. Finally, I decided to start with a simple process first, then only enhance it in the future along the way.&lt;br /&gt;&lt;br /&gt;This project management system will be a web-based application, it's intended to help users to start a project easily and also with some guidelines. So that, I won't be struggling in kicking out a project anymore in the future. I should know how to start, what to do, how to do at the very beginning, and also am able to plan how to carry out the whole project.&lt;br /&gt;&lt;br /&gt;By doing this project, I'll be able to learn project management, web application development using ASP.NET &amp;amp; C#, plus ADO.NET for the database. I also try to apply a better architecture design in the application. This is one of the areas I'm interested in software development too.&lt;br /&gt;&lt;br /&gt;Any feedback or suggestions is welcomed. So, please feel free to drop me a comment if you have any ideas or thoughts. Thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-2076222361098682550?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/2076222361098682550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/04/my-first-project-myprojectmanager.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2076222361098682550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/2076222361098682550'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/04/my-first-project-myprojectmanager.html' title='My First Project - MyProjectManager'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-8211010455170884877</id><published>2007-04-13T00:10:00.000+08:00</published><updated>2007-04-13T00:32:27.340+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Learning Path'/><title type='text'>The Plan</title><content type='html'>I have these thoughts in my mind for carrying out the plan of building my website:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Start developing &lt;strong&gt;projects&lt;/strong&gt;. It's always good to learn from practical work. Besides learning, I can develop applications for myself to use too.&lt;/li&gt;&lt;li&gt;A &lt;strong&gt;blog&lt;/strong&gt; to record how this website is being set up, and also the process of the learning. Well, before I have established my own website, here will be the host of my blog posts.&lt;/li&gt;&lt;li&gt;Record and list out the helpful &lt;strong&gt;website&lt;/strong&gt; &lt;strong&gt;URLs&lt;/strong&gt;. Resources are always useful in the learning process, but I always lost the URLs somewhere in the space.&lt;/li&gt;&lt;li&gt;Simple &lt;strong&gt;prototypes&lt;/strong&gt;, &lt;strong&gt;sample codes&lt;/strong&gt;, &lt;strong&gt;code snippets&lt;/strong&gt;, &lt;strong&gt;articles&lt;/strong&gt;, &lt;strong&gt;tutorials&lt;/strong&gt; are always useful in learning software development. &lt;/li&gt;&lt;li&gt;I always like to have a &lt;strong&gt;forum&lt;/strong&gt; to serve as a communication media for discussing and sharing certain topics/opinions.&lt;/li&gt;&lt;/ul&gt;These are the areas I plan to include in my website in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-8211010455170884877?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/8211010455170884877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/04/plan.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8211010455170884877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/8211010455170884877'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/04/plan.html' title='The Plan'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-78343946459641446.post-865721872655721434</id><published>2007-04-11T13:30:00.000+08:00</published><updated>2007-04-12T22:47:07.567+08:00</updated><title type='text'>The Purpose</title><content type='html'>I have been thinking of developing my own website for many years.&lt;br /&gt;Though there were many plannings going on, the simple task hasn't been really executed, as I did not have a solid idea on the purpose of the website.Having decided on developing my interest and skill in software development, I finally found that there is a need for me to build a website, recording my learning process throughout the whole path.&lt;br /&gt;Here we go, finally I've decided the purpose of my website.&lt;br /&gt;&lt;br /&gt;Purpose:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;To record my learning process &amp; result in software development.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Goals:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;To encourage or push myself to keep learning, to be more hardworking, or to motivate myself in learning.&lt;/li&gt;&lt;li&gt;To promote the message "Programming is Fun!"&lt;/li&gt;&lt;li&gt;To share any software development related information with others.&lt;/li&gt;&lt;li&gt;To receive feedback, advices, suggestions, comments from others, so that everyone will benefit.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I do not like to be alone in my learning path, I always like to involve others along the way, same to my life. It's fun to have companies, so that we will grow together, so that we can point out each other's mistakes, from there we learn together. &lt;/p&gt;&lt;p&gt;Moreover, it's just fun! Here we start the journey......&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/78343946459641446-865721872655721434?l=kakaprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kakaprogramming.blogspot.com/feeds/865721872655721434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kakaprogramming.blogspot.com/2007/04/purpose.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/865721872655721434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/78343946459641446/posts/default/865721872655721434'/><link rel='alternate' type='text/html' href='http://kakaprogramming.blogspot.com/2007/04/purpose.html' title='The Purpose'/><author><name>kaka</name><uri>http://www.blogger.com/profile/16173747179721118504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_W4ZzgeafR7w/SSjEcnLGxYI/AAAAAAAAB88/XP7vU3YSTLg/S220/angel5.gif'/></author><thr:total>2</thr:total></entry></feed>
