<?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-29134832</id><updated>2011-07-28T22:36:36.738-07:00</updated><title type='text'>Alex Tsung - Blog</title><subtitle type='html'>A family man, have a beautiful wife and two lovely daughters. Enjoy coding and creating web applications. Love photography and spend $$$ on fancy photo equipments :-)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-29134832.post-115912007594213835</id><published>2006-09-24T10:40:00.000-07:00</published><updated>2006-09-24T10:47:55.943-07:00</updated><title type='text'>Audrey's 3 Years Old Birthday</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pbase.com/alextsung/audrey_3yr_bday"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4776/3096/320/67428963.RMHfnzKW.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;Yesterday was Audrey's 3 years old birthday. We took her to have ice cream in the afternoon and Audrey picked her own birthday cake - it's mango flavor. We held her birthday party at grandma's place. She wore a red dress and received a lot of gifts. Audrey enjoyed her birthday party very much.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115912007594213835?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115912007594213835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115912007594213835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115912007594213835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115912007594213835'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/09/audreys-3-years-old-birthday.html' title='Audrey&apos;s 3 Years Old Birthday'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115911946935236542</id><published>2006-09-24T10:28:00.000-07:00</published><updated>2006-09-24T10:37:49.820-07:00</updated><title type='text'>Some Family Photos</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pbase.com/alextsung/image/48966867/original"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4776/3096/320/48966867.IMG_0064.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pbase.com/alextsung/image/67361336/original"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4776/3096/320/67361336.DEknQ1aY.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;I keep forgetting to take family photos these days, but I realize kids grow up so fast, I should keep all the moments for memory. The left one was taken in &lt;a href="http://www.pbase.com/alextsung/2004_11"&gt;December 2004&lt;/a&gt;, and the right one was taken yesterday (&lt;a href="http://www.pbase.com/alextsung/2006_09"&gt;September 2006&lt;/a&gt;). Annie's face looks really different - she is not a preschooler anymore.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115911946935236542?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115911946935236542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115911946935236542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115911946935236542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115911946935236542'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/09/some-family-photos.html' title='Some Family Photos'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115726136077419137</id><published>2006-09-02T22:24:00.000-07:00</published><updated>2006-09-02T22:29:20.783-07:00</updated><title type='text'>Stanley Park Miniature Train</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pbase.com/alextsung/image/66192703/original"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4776/3096/320/66192703.mH0VJUBC.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;We finally have time to enjoy the last long weekend in the summer of 2006 - we went to Stanley Park today and took the Miniature Train, kids loved it. I was too busy to take family's pictures last month, so there's no gallery of "2006 August". &lt;a href="http://www.pbase.com/alextsung/2006_09"&gt;This month&lt;/a&gt; I will spend more time with family and take more pictures of them.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115726136077419137?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115726136077419137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115726136077419137' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115726136077419137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115726136077419137'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/09/stanley-park-miniature-train.html' title='Stanley Park Miniature Train'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115649045684916186</id><published>2006-08-25T00:14:00.000-07:00</published><updated>2007-01-25T07:58:20.916-08:00</updated><title type='text'>New Ajax Example - Feedback</title><content type='html'>&lt;span style="font-family:arial;"&gt;I just finished a new Ajax example &lt;/span&gt;&lt;span style="font-family:arial;"&gt;on &lt;a href="http://www.alexajax.com/"&gt;www.alexajax.com&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family:arial;"&gt;to demonstrate adding &lt;a href="http://www.alexajax.com/feedback"&gt;feedback&lt;/a&gt; into database without postback. This example also used the &lt;a href="http://www.codeigniter.com/user_guide/libraries/pagination.html"&gt;Pagination class&lt;/a&gt; in &lt;a href="http://www.codeigniter.com/"&gt;Coge Igniter&lt;/a&gt;. I am thinking to update the Code Igniter to make some of its helper classes Ajax-enabled, but just thinking...&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115649045684916186?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115649045684916186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115649045684916186' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115649045684916186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115649045684916186'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/08/new-ajax-example-feedback.html' title='New Ajax Example - Feedback'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115621706903220379</id><published>2006-08-21T20:20:00.000-07:00</published><updated>2006-08-21T20:24:29.040-07:00</updated><title type='text'>Annie's 6 Years Old Birthday</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pbase.com/alextsung/image/65558352/original"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4776/3096/320/65558352.wVqHCuXu.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;Today is Annie's 6 Years Old Birthday. She invited her friends to her birthday party. Since the party was held in afternoon and I had to worked, I couldn't attend her party. Jenny took some &lt;a href="http://www.pbase.com/alextsung/annie_6_yr_old_bday"&gt;pictures&lt;/a&gt; and they were very good. Annie received gifts from her friends and she enjoyed the party very well.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115621706903220379?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115621706903220379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115621706903220379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115621706903220379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115621706903220379'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/08/annies-6-years-old-birthday.html' title='Annie&apos;s 6 Years Old Birthday'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115621677181258360</id><published>2006-08-21T20:12:00.000-07:00</published><updated>2006-08-25T00:23:05.450-07:00</updated><title type='text'>Beef Noodle</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pbase.com/alextsung/image/65435094/original"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4776/3096/320/65435094.4zaVF0Sn.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;We had a great dinner at &lt;a href="http://www.pbase.com/alextsung/2006_08_19"&gt;Uncle Tea's place&lt;/a&gt;. The main dish was Beef Noodle - that's the best Beef Noodle I ever have in Vancouver. Trust me - I love Beef Noodle since I was a kid and I have tried all kinds of Beef Noodle when I was in Taiwan. Since I moved to Vancouver in 1996, I really miss the Beef Noodle and I tried different restaurants but I have never had such authentic one like Uncle Tea's Beef Noodle. That's awesome!!!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115621677181258360?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115621677181258360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115621677181258360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115621677181258360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115621677181258360'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/08/beef-noodle.html' title='Beef Noodle'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115536222613226820</id><published>2006-08-11T22:43:00.000-07:00</published><updated>2006-08-11T22:59:02.516-07:00</updated><title type='text'>www.alexajax.com is launched</title><content type='html'>&lt;span style="font-family:arial;"&gt;The website - &lt;a href="http://www.alexajax.com/"&gt;Alex's Ajax&lt;/a&gt; - is launched. This website is dedicated to demonstrate Ajax examples written in PHP with &lt;a href="http://www.xajaxproject.org/"&gt;xajax&lt;/a&gt; library and built upon &lt;a href="http://www.codeigniter.com/"&gt;Code Igniter&lt;/a&gt; framework.&lt;br /&gt;&lt;br /&gt;Now I have provided the following Ajax examples:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.alexajax.com/autosuggest"&gt;&lt;span style="font-family:arial;"&gt;Auto Suggest&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.alexajax.com/calculator"&gt;&lt;span style="font-family:arial;"&gt;Calculator&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.alexajax.com/dropdownlist"&gt;&lt;span style="font-family:arial;"&gt;Drop Down Lists&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.alexajax.com/processform"&gt;&lt;span style="font-family:arial;"&gt;Process Form&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.alexajax.com/randomphotos"&gt;&lt;span style="font-family:arial;"&gt;Random Photos&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.alexajax.com/tinymce"&gt;&lt;span style="font-family:arial;"&gt;TinyMCE&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;I will add more examples when I have time.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115536222613226820?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115536222613226820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115536222613226820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115536222613226820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115536222613226820'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/08/wwwalexajaxcom-is-launched.html' title='www.alexajax.com is launched'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115489076492255541</id><published>2006-08-06T11:54:00.000-07:00</published><updated>2006-08-06T11:59:24.930-07:00</updated><title type='text'>www.alexajax.com</title><content type='html'>&lt;span style="font-family: arial;"&gt;I am building a &lt;a href="http://www.alexajax.com"&gt;website&lt;/a&gt; which dedicates to demonstrate AJAX examples written in PHP. The whole website is built with the &lt;a href="http://www.codeigniter.com/"&gt;Code Igniter&lt;/a&gt; framework and the AJAX library will be using &lt;a href="http://www.xajaxproject.org/"&gt;xajax&lt;/a&gt;. Now it's in the process of setting up the name servers, so you can see the site on the &lt;a href="http://ajax.fencecompany.net/"&gt;development server&lt;/a&gt; for now.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115489076492255541?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115489076492255541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115489076492255541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115489076492255541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115489076492255541'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/08/wwwalexajaxcom.html' title='www.alexajax.com'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115324398611625082</id><published>2006-07-18T10:23:00.000-07:00</published><updated>2006-08-25T00:25:17.973-07:00</updated><title type='text'>100000 Views</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pbase.com/alextsung/minter_gardens&amp;page=all"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4776/3096/320/59117171.CRW_4234.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;Yeah! My &lt;a href="http://www.pbase.com/alextsung"&gt;PBase galleries&lt;/a&gt; have been viewed a total of &lt;a href="http://www.pbase.com/alextsung/profile"&gt;100000+&lt;/a&gt; times. Last time I checked was &lt;a href="http://alextsung.blogspot.com/2006/06/new-gallery-on-pbase.html"&gt;75600&lt;/a&gt; views on June 02. It's exciting because it means something to me. I hope the total views can reach 200K soon - so I can tell Jenny I am good at photography and ask for a new camera, ha ha ha ... Go! Go! Go!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115324398611625082?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115324398611625082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115324398611625082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115324398611625082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115324398611625082'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/07/100000-views.html' title='100000 Views'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115260575103201978</id><published>2006-07-11T00:55:00.000-07:00</published><updated>2006-07-11T01:20:11.776-07:00</updated><title type='text'>Anthem.NET - AJAX Library for ASP.NET 1.1/2.0</title><content type='html'>&lt;span style="font-family:arial;"&gt;Another AJAX Library/Framework for ASP.NET? This one is different! In my opinion, &lt;a href="http://www.anthemdotnet.com/default.aspx"&gt;Anthem.NET&lt;/a&gt; has the following goodies over &lt;a href="http://www.daniel-zeiss.de/AJAXComparison/Results.htm"&gt;other AJAX Frameworks&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Anthem.NET provides many built-in AJAX-enabled web controls (this is the most different concept from other frameworks).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;It&lt;/span&gt;&lt;span style="font-family:arial;"&gt; supports ASP.NET 1.1 and 2.0.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Anthem.NET&lt;/span&gt;&lt;span style="font-family:arial;"&gt; is compatible with IE, Firefox, and Opera (which I use the most).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;The download package provides very detailed examples for VS 2003 and 2005.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Anthem.NET is &lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;free&lt;/span&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;Here are what you need to do:&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Read the simplest &lt;a href="http://www.anthemdotnet.com/demos/ButtonsAndLabels.aspx"&gt;demo on Buttons and Labels&lt;/a&gt; and get the idea of Anthem.NET.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Read the &lt;a href="http://www.codeproject.com/Ajax/AnthemNET.asp"&gt;introduction submitted by Howard Richards&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Download the &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=151897"&gt;latest release&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Read INSTALL.txt to install on VS 2003 or 2005.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Have fun!&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115260575103201978?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115260575103201978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115260575103201978' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115260575103201978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115260575103201978'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/07/anthemnet-ajax-library-for-aspnet-1120.html' title='Anthem.NET - AJAX Library for ASP.NET 1.1/2.0'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115225215182623087</id><published>2006-07-06T22:45:00.000-07:00</published><updated>2006-07-06T23:08:18.256-07:00</updated><title type='text'>CopySourceAsHtml (CSAH)</title><content type='html'>&lt;span style="font-family:arial;"&gt;I found an interesting free plug-in for Visual Studio .NET 2005 - &lt;a href="http://www.jtleigh.com/people/colin/software/CopySourceAsHtml/"&gt;CopySourceAsHtml (CSAH)&lt;/a&gt; - which allows you to highlight the source code in VS.NET 2005 and copy it as HTML, then you can save it as regular HTML file and it will be displayed in browser with the same syntax highlighting as in the VS.NET 2005!&lt;br /&gt;&lt;br /&gt;Check this out:&lt;/span&gt;&lt;br /&gt;&lt;!-- {\rtf1\ansi\ansicpg\lang1024\noproof1252\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0??;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;??\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;??\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;??\red192\green192\blue192;}??\fs18 \cf2 protected\cf0  \cf2 void\cf0  Page_Load(\cf2 object\cf0  sender, \cf10 EventArgs\cf0  e)\par ??    \{\par ??        \cf10 ProductsTableAdapter\cf0  productsAdapter = \cf2 new\cf0  \cf10 ProductsTableAdapter\cf0 ();\par ??        GridView1.DataSource = productsAdapter.GetProductsByCategoryID(1);\par ??        GridView1.DataBind();\par ??    \}} --&gt;&lt;br /&gt;&lt;div    style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;font-family:Courier New;font-size:9pt;color:black;"&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;   15&lt;/span&gt; &lt;span style="color:blue;"&gt;protected&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:teal;"&gt;EventArgs&lt;/span&gt; e)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;   16&lt;/span&gt;     {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;   17&lt;/span&gt;         &lt;span style="color:teal;"&gt;ProductsTableAdapter&lt;/span&gt; productsAdapter = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;ProductsTableAdapter&lt;/span&gt;();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;   18&lt;/span&gt;         GridView1.DataSource = productsAdapter.GetProductsByCategoryID(1);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;   19&lt;/span&gt;         GridView1.DataBind();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;   20&lt;/span&gt;     }&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115225215182623087?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115225215182623087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115225215182623087' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115225215182623087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115225215182623087'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/07/copysourceashtml-csah.html' title='CopySourceAsHtml (CSAH)'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115198091849749204</id><published>2006-07-03T19:32:00.000-07:00</published><updated>2006-07-03T19:43:55.333-07:00</updated><title type='text'>Tutorials of Data Access Patterns in ASP.NET 2.0</title><content type='html'>&lt;span style="font-family:arial;"&gt;I just found the &lt;a href="http://www.asp.net/Default.aspx?tabid=1"&gt;ASP.NET website&lt;/a&gt; has published a &lt;a href="http://www.asp.net/learn/dataaccess/default.aspx?tabid=63"&gt;serious of tutorials&lt;/a&gt; that explorers techniques for impelmenting common data access patterns in ASP.NET 2.0. I specially like the first paragraph in the first tutorial:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0); font-family: arial;font-family:arial;font-size:100%;"  &gt;As web developers, our lives revolve around working with data. We create databases to store the data, code to retrieve and modify it, and web pages to collect and summarize it...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;At least it sounds like my life :-)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115198091849749204?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115198091849749204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115198091849749204' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115198091849749204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115198091849749204'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/07/tutorials-of-data-access-patterns-in.html' title='Tutorials of Data Access Patterns in ASP.NET 2.0'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115196707696676086</id><published>2006-07-03T15:43:00.000-07:00</published><updated>2006-07-03T15:52:30.816-07:00</updated><title type='text'>The Fence Company</title><content type='html'>&lt;span style="font-family:arial;"&gt;After about one and half week of hard working, Victo'rs website - &lt;a href="http://www.fencecompany.net/"&gt;The Fence Company&lt;/a&gt; - was launched before my family vacation to &lt;a href="http://alextsung.blogspot.com/2006/07/leavenworth-washington-bavarian.html"&gt;Leavenworth&lt;/a&gt;. I implemented the website with &lt;a href="http://www.codeigniter.com/"&gt;Code Igniter Framework&lt;/a&gt; (see my &lt;a href="http://alextsung.blogspot.com/2006/06/code-igniter.html"&gt;previous post&lt;/a&gt;) extensively and I really enjoyed using this Framework. From now on, if I am going to write any PHP web site/application, I will keep using the MVC approach with the Code Igniter.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115196707696676086?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115196707696676086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115196707696676086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115196707696676086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115196707696676086'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/07/fence-company.html' title='The Fence Company'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115190984906602725</id><published>2006-07-02T23:37:00.000-07:00</published><updated>2006-07-03T00:19:53.120-07:00</updated><title type='text'>Leavenworth, Washington The Bavarian Village</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pbase.com/alextsung/image/62845756/original"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4776/3096/320/62845756.HkTVi3wz.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;On Friday we decided to go to &lt;a href="http://www.leavenworth.org/"&gt;Leavenworth&lt;/a&gt;. It's a Bavarian Village in Washington, not very far from Vancouver, but it actually took us about 7 hours to get there on Saturday (July 1st). It was because we spent about 2 hours crossing US border - too many people coming down to the States on Canada Day.&lt;br /&gt;&lt;br /&gt;The worst thing was that we couldn't find a motel or inn to stay for one night in Leavenworth. All rooms in all hotels were booked. We drove East for another 20 miles, then finally we found the last room (one King size bed) in Super 8 Motel in &lt;a href="http://www.wenatchee.org/"&gt;Wenatchee&lt;/a&gt;. We were totally exhausted. Kids went to the swimming pool for a while and forgot they were tired. We learned our lesson from this experience - we will definitely book a room ahead next time.&lt;br /&gt;&lt;br /&gt;This morning we drove back to Leavenworth and stayed in this town until lunch. Three unforgetable things were - Chocolate truffle, German sausage and beer. Jenny and I think the town will be more beautiful in winter, but we are not sure we will come back there in winter. Here are the &lt;a href="http://www.pbase.com/alextsung/leavenworth"&gt;photos&lt;/a&gt; taken in Leavenworth. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115190984906602725?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115190984906602725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115190984906602725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115190984906602725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115190984906602725'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/07/leavenworth-washington-bavarian.html' title='Leavenworth, Washington The Bavarian Village'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115165391202233183</id><published>2006-06-30T00:37:00.000-07:00</published><updated>2006-06-30T00:51:52.033-07:00</updated><title type='text'>PHP IDE</title><content type='html'>&lt;span style="font-family: arial;"&gt;I have been using &lt;a href="http://codeigniter.com/"&gt;Code Igniter&lt;/a&gt; Framework to build &lt;a href="http://dev.fencecompany.net/"&gt;Victor's site&lt;/a&gt; for a week.&lt;span style="font-family: arial;"&gt; I found I spend a lot of time on navigating between folders (like controllers, models, scripts, and views).The text editor I am using is &lt;a href="http://www.editplus.com/"&gt;EditPlus&lt;/a&gt; and its listings of folders and files are separated into two windows. So everytime I want to access file X in controllers folder, I have to click the controllers folder at the top, then click the file X at the bottom, later I want to access file Y in views folder, I have to click the views folder at the top, then click the file Y at the bottom. Since I am working directly with the files on the dev server via FTP connection, so the time spent on the navigation between folders is a tremendous.&lt;br /&gt;&lt;br /&gt;Is there any shareware or freeware PHP IDE? or just simply a text editor with PHP syntax highlighting? I don't need the intelli-sense like Visual Studio.NET, but I do need the file explorer like capability with fast FTP connection built in the IDE or text editor. Any suggestion?&lt;br /&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/29134832-115165391202233183?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115165391202233183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115165391202233183' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115165391202233183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115165391202233183'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/php-ide.html' title='PHP IDE'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115127354242766729</id><published>2006-06-25T15:06:00.000-07:00</published><updated>2006-06-25T15:15:56.680-07:00</updated><title type='text'>Stanley Park</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pbase.com/alextsung/image/62457787/original"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4776/3096/320/62457787.YAqeguTu.0.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;We went to Stanely Park last afternoon. We enjoyed walking in the park and watched sunset. I took some photos and Annie and Audrey took some too. After we were home, I checked the photos, it turned out the photos taken by &lt;a href="http://www.pbase.com/alextsung/image/62457788/original"&gt;Annie&lt;/a&gt; and &lt;a href="http://www.pbase.com/alextsung/image/62457791/original"&gt;Audrey&lt;/a&gt; were not bad, so I posted them to my &lt;a href="http://www.pbase.com/alextsung/2006_06"&gt;gallery&lt;/a&gt; too.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115127354242766729?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115127354242766729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115127354242766729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115127354242766729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115127354242766729'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/stanley-park.html' title='Stanley Park'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115113745261387459</id><published>2006-06-24T01:12:00.000-07:00</published><updated>2006-06-24T01:40:02.710-07:00</updated><title type='text'>Code Igniter</title><content type='html'>&lt;span style="font-family:arial;"&gt;Today is the first day I start working on Victor's website and it's the first time I start learning the &lt;a href="http://www.codeigniter.com/"&gt;Code Igniter Framework&lt;/a&gt;. &lt;span style="font-family:arial;"&gt;I watched the &lt;a href="http://www.codeigniter.com/watch/"&gt;two videos&lt;/a&gt; and went through the sample of creating a Blog in 20 minutes, then I start implementing the website. It's the first time I use the Model-View-Controller (MVC) approach to build a website and I found the concept of using segments in the URL to represent the MVC approach is interesting. The URI segments is like:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;code  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;www.your-site.com/class/function/ID&lt;/span&gt;&lt;samp&gt;&lt;br /&gt;&lt;/samp&gt;&lt;/code&gt;&lt;ol style="font-family: arial;"&gt;&lt;li&gt;The first segment represents the controller &lt;strong&gt;class&lt;/strong&gt; that should be invoked.&lt;/li&gt;&lt;li&gt;The second segment represents the class &lt;strong&gt;function&lt;/strong&gt;, or method, that should be called.&lt;/li&gt;&lt;li&gt;The third, and any additional segments, represent the ID and any variables that will be passed to the controller.&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family:arial;"&gt;It really makes a lot of sense when I build the model for simple tables in database, but I also found there is limitation when the tables' relationship is getting complicated.&lt;br /&gt;&lt;br /&gt;I also encountered some problems which were tough to a newbie like me:&lt;br /&gt;&lt;/span&gt;&lt;ol style="font-family: arial;"&gt;&lt;li&gt;I couldn't make the views and controllers work if they are in the subfolders of /views/ and /controllers/.&lt;/li&gt;&lt;li&gt;I couldn't make the &lt;a href="http://www.codeigniter.com/user_guide/libraries/validation.html"&gt; form validation&lt;/a&gt; work.&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family: arial;"&gt;On the other hand, I found the following classes are very cool and helpful:&lt;br /&gt;&lt;/span&gt;&lt;ol style="font-family: arial;"&gt;&lt;li&gt;&lt;a href="http://www.codeigniter.com/user_guide/libraries/database/index.html"&gt;Database class&lt;/a&gt; - very fast abstracted class and support Active Record patterns.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeigniter.com/user_guide/libraries/pagination.html"&gt;Pagination class&lt;/a&gt; - very easy to customize, but it is a little tricky to make it work with database query. Here is the &lt;a href="http://www.codeigniter.com/forums/viewthread/34/"&gt;hint&lt;/a&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family: arial;"&gt;I am still experimenting a lot of things and learn this framework by writing Victor's website. I will give a more detailed report later. By the way, here is Victor's &lt;a href="http://dev.fencecompany.net/"&gt;website&lt;/a&gt; (development server for now) - this will be a simple CMS system contains Blog, photos, and other stuff.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115113745261387459?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115113745261387459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115113745261387459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115113745261387459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115113745261387459'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/code-igniter.html' title='Code Igniter'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115101969381390252</id><published>2006-06-22T16:28:00.000-07:00</published><updated>2006-06-22T16:44:28.676-07:00</updated><title type='text'>Piece of Cake</title><content type='html'>&lt;span style="font-family:arial;"&gt;I have promised my best friend - Victor - to build a website for his fence company a long time ago. But since I have not much time besides work and family, I have not sit down to actually implement it. Recently I tried my best to persuade him to get a web hosting with ASP.NET 2.0 and SQL Server 2005 because I can reuse some components I built. But Victor still wants to use his original &lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;free&lt;/span&gt; web hosting, which has PHP4 and MySQL 4 installed. Therefore, I need to find some PHP framework similar to &lt;a href="http://cakephp.org/"&gt;Ruby on Rails&lt;/a&gt; to make my life easier :-)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Luckily, I found &lt;a href="http://cakephp.org/"&gt;CakePHP&lt;/a&gt;. What is CakePHP?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Cake is a rapid development framework for PHP which uses commonly known design patterns like ActiveRecord, Association Data Mapping, Front Controller and MVC. Our primary goal is to provide a structured framework that enables PHP users at all levels to rapidly develop robust web applications, without any loss to flexibility.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I am going to give CakePHP a try and see how it works. If it's easy and able to make my life easier, I will use it for Victor's website. If not, hmmm... I will persuade him again to get a web hosting with ASP.NET 2.0 and SQL Server 2005, ha ha ha...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115101969381390252?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115101969381390252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115101969381390252' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115101969381390252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115101969381390252'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/piece-of-cake.html' title='Piece of Cake'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115101838768363281</id><published>2006-06-22T16:13:00.000-07:00</published><updated>2006-06-22T16:19:47.693-07:00</updated><title type='text'>ComfortASP.NET - AJAX Framework for ASP.NET</title><content type='html'>&lt;span style="font-family: arial;"&gt;I have tried the &lt;a href="http://www.comfortasp.de/"&gt;ComfortASP.NET&lt;/a&gt; V0.60. It is very easy to integrate the framework into existing applications with minimal efforts and code change. I like it a lot, but I found the pages cannot be displayed in my Opera browser (Version 8.51 Build 7712). It worked fine in Firefox and IE though. You can open the &lt;a href="http://www.comfortasp.de/"&gt;home page&lt;/a&gt; of the website in your Opera browser to see it yourself.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115101838768363281?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115101838768363281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115101838768363281' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115101838768363281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115101838768363281'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/comfortaspnet-ajax-framework-for.html' title='ComfortASP.NET - AJAX Framework for ASP.NET'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115093179759773619</id><published>2006-06-21T16:07:00.000-07:00</published><updated>2006-06-21T16:18:09.316-07:00</updated><title type='text'>Pick One - AJAX Frameworks for ASP.NET</title><content type='html'>&lt;span style="font-family:arial;"&gt;After trying out the &lt;a href="http://atlas.asp.net/Default.aspx?tabid=47"&gt;Atlas&lt;/a&gt;, I wanted to know more about various AJAX Frameworks for ASP.NET. Then I found &lt;a href="http://www.geekswithblogs.com/danielz"&gt;Daniel Zeiss&lt;/a&gt; has posted the &lt;a href="http://www.daniel-zeiss.de/AJAXComparison/Results.htm"&gt;comparison of AJAX Frameworks for ASP.NET&lt;/a&gt;. Thanks Daniel for providing the detailed comparison of different frameworks and he also has been written his own framework - &lt;a href="http://www.comfortasp.de/"&gt;ComfortASP.NET&lt;/a&gt;. The newest release V0.60 is available now and I am going to give it a try.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115093179759773619?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115093179759773619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115093179759773619' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115093179759773619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115093179759773619'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/pick-one-ajax-frameworks-for-aspnet.html' title='Pick One - AJAX Frameworks for ASP.NET'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115084865407519122</id><published>2006-06-20T17:01:00.000-07:00</published><updated>2006-06-20T17:15:34.656-07:00</updated><title type='text'>Family Events Demo website</title><content type='html'>&lt;span style="font-family:arial;"&gt;I built a website for a client to demonstrate the family events with geographical map, calendar, and Google map. Here is the &lt;a href="http://aspspider.org/normlobb/"&gt;website&lt;/a&gt;. Nothing was fancy and the image map in the home page was hardcoded. I kept it very simple because I may need to update it later to adapt more business ideas.&lt;br /&gt;&lt;br /&gt;I used the free web hosting from &lt;a href="http://www.aspspider.net/"&gt;AspSpider.NET&lt;/a&gt;. The storage is only 10MB, so I had to remove all database stuff of the Memebership and Roles APIs when I deployed the website. But there is still the minimum authentication for the admin panel defined in the web.config, which is better than nothing.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115084865407519122?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115084865407519122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115084865407519122' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115084865407519122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115084865407519122'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/family-events-demo-website.html' title='Family Events Demo website'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115062345417461784</id><published>2006-06-18T02:09:00.000-07:00</published><updated>2006-06-18T02:48:24.303-07:00</updated><title type='text'>PHP 5 Installer - WAMP5</title><content type='html'>&lt;span style="font-family:arial;"&gt;I wanted to try out &lt;a href="http://www.pradosoft.com/"&gt;PRADO Framework&lt;/a&gt; and &lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rail&lt;/a&gt;, so I need to install at least Apache, PHP 5, and MySQL in my Windows environment. Since I am too lazy to go through all configuration settings after  individual installation, so I need an installation to make my life easier.&lt;br /&gt;&lt;br /&gt;When I used PHP 4, I used &lt;a href="http://phplens.com/phpeverywhere/node/view/12"&gt;PHP EasyWindows Installer&lt;/a&gt; from &lt;a href="http://phplens.com/phpeverywhere/"&gt;PHP Everywhere&lt;/a&gt;.  It was tiny as it did not include Apache and MySQL, and it's handy as it included a database abstraction library &lt;a href="http://phplens.com/adodb/"&gt;ADOdb&lt;/a&gt; and the &lt;a href="http://pear.php.net/"&gt;PEAR&lt;/a&gt; already. Now I need PHP 5 to run PRADO Framework 3.0.1, so a new installer is necessary.&lt;br /&gt;&lt;br /&gt;After doing some Google search, I found three candidates:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;a href="http://www.apachefriends.org/en/xampp-windows.html"&gt;Apache Friends XAMPP for Windows&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;a href="http://apache2triad.net/"&gt;Apache2Triad&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;a href="http://www.wampserver.com/en/"&gt;WAMP5&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;XAMPP and Apache2Triad contain too many utilities more than AMP (Apache/MySQL/PHP), so I decide to download WAMP5. The latest version is &lt;a href="http://www.wampserver.com/en/download.php"&gt;WAMP5 1.6.4&lt;/a&gt;, which contains:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Apache 2.0.58&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;PHP 5.1.4 + &lt;a href="http://pecl.php.net/"&gt;PECL&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;SQLiteManager&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;MySQL 5.0.22&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;PHPMyAdmin&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;By the way, I don't really like to use web-based MySQL GUI, speed is my main concern. So I will also download the &lt;a href="http://www.webyog.com/"&gt;SQLyog GUI&lt;/a&gt; - my favoriate MySQL front-end tool. They still have a &lt;a href="http://www.webyog.com/sqlyog/download_sqlyogfree.html"&gt;free edition&lt;/a&gt; for download :-)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115062345417461784?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115062345417461784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115062345417461784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115062345417461784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115062345417461784'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/php-5-installer-wamp5.html' title='PHP 5 Installer - WAMP5'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115057143742608845</id><published>2006-06-17T11:52:00.000-07:00</published><updated>2006-06-17T17:21:20.593-07:00</updated><title type='text'>PRADO - Is this ASP.NET in PHP?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4776/3096/1600/sequence.0.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4776/3096/320/sequence.0.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;Wow, this is a really cool PHP Framework, you must know this!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;a href="http://www.pradosoft.com/"&gt;PRADO&lt;/a&gt; stands for PHP Rapid Application Development Object-oriented, it is a component-based and event-driven programming framework for developing Web applications in PHP5. I am not going to repeat what is already in the &lt;a href="http://www.pradosoft.com/demos/quickstart/"&gt;QuickStart Tutorial&lt;/a&gt;, but you have to take a look at this "&lt;a href="http://www.pradosoft.com/demos/quickstart/?page=GettingStarted.HelloWorld"&gt;Hello World&lt;/a&gt;" application to see how it is alike ASP.NET code-behind and event-driven &lt;/span&gt;&lt;span style="font-family:arial;"&gt;modles.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;I believe this framework will succeed because it really makes ASP.NET developers feel like home and gives PHP developers an environment to code like ASP.NET.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Let's take a quick look at the code in the "&lt;span style="font-weight: bold;"&gt;Hello World&lt;/span&gt;" application. Here is the "&lt;span style="font-weight: bold;"&gt;Home.page&lt;/span&gt;" (cannot use angle tags in the blog, so I use square tags instead):&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);font-family:courier new;font-size:85%;"  &gt;&lt;com:tform&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;[html]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;  [body]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;com:tform&gt;&lt;/com:tform&gt;&lt;/span&gt;[com:TForm]&lt;br /&gt;[com:TButton Text="Click me" OnClick="buttonClicked" /]&lt;br /&gt;[/com:TForm]&lt;br /&gt;&lt;/com:tform&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0);font-family:courier new;font-size:85%;"  &gt;[/body]&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0);font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0);font-family:courier new;font-size:85%;"  &gt;[/html]&lt;/span&gt;&lt;br /&gt;&lt;com:tbutton text="Click me" onclick="buttonClicked"&gt;&lt;/com:tbutton&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Here is the code-behind "&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Home.php&lt;/span&gt;&lt;span style="font-family:arial;"&gt;":&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;class Home extends TPage&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;    public function buttonClicked($sender,$param)&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;        // $sender refers to the button component&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        $sender-&gt;Text="Hello World!";&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;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ASP.NET developers, aren't they &lt;/span&gt;&lt;span style="font-family:arial;"&gt;look similiar?&lt;br /&gt;&lt;br /&gt;Since PRADO aims component-based and event-driven programming, so it does not include other back-end solutions such as database abstraction layer. I really hope &lt;/span&gt;&lt;span style="font-family:arial;"&gt;PRADO team &lt;/span&gt;&lt;span style="font-family:arial;"&gt;consider to include the &lt;a href="http://adodb.sourceforge.net/"&gt;ADOdb&lt;/a&gt; into their framework, maybe add another namespace like System.Data.ADOdb?&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115057143742608845?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115057143742608845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115057143742608845' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115057143742608845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115057143742608845'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/prado-is-this-aspnet-in-php.html' title='PRADO - Is this ASP.NET in PHP?'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-115035394083800049</id><published>2006-06-14T23:24:00.000-07:00</published><updated>2006-06-14T23:45:40.846-07:00</updated><title type='text'>Unit Testing - NUnit</title><content type='html'>&lt;span style="font-family:arial;"&gt;Define &lt;span style="font-weight: bold;"&gt;Unit Test &lt;/span&gt;- A Unit Test is a procedure written to validate that a module of source code is working properly.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Recently I tried out the unit testing with &lt;a href="http://www.nunit.org/index.php?p=home"&gt;NUnit&lt;/a&gt; - it seems creating extra classes to test each module invloves more work, but it actually let me to make sure each module I wrote don't do stupid things. I have tried several &lt;a href="http://www.nunit.org/index.php?p=assertions&amp;amp;r=2.2.8"&gt;Assertions&lt;/a&gt; to make sure the outcome is what I expected, which worked pretty well. Now my questions are:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;How do I test database insert/update/delete/select?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;How do I test ASPX pages?&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Maybe the main purpose of Unit Test is just for testing modules, like class libraries, but is there anyway I can test the database manipulation and web applications? Any comments?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-115035394083800049?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/115035394083800049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=115035394083800049' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115035394083800049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/115035394083800049'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/unit-testing-nunit.html' title='Unit Testing - NUnit'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-114987192876991554</id><published>2006-06-09T09:48:00.000-07:00</published><updated>2006-06-09T16:03:35.673-07:00</updated><title type='text'>JennyMyRealtor.com version 2.0 is launched</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.jennymyrealtor.com/Default.aspx"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4776/3096/320/portrait.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;OK, I finally finished &lt;a href="http://www.jennymyrealtor.com/"&gt;Jenny's website&lt;/a&gt; with new styles. Now there is not much content yet, she will add them soon. This time I used &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/web_deployment_projects.asp"&gt;Web Development Project&lt;/a&gt; with pre-compilation, and I do feel the site's speed is a bit faster than before.&lt;br /&gt;&lt;br /&gt;I still have some optional stuff can be implemented on this website, like URL rewriting, better integration of Atlas into the current CMS in admin pages, etc. Anyway, I need some fresh air and relax a bit :-)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-114987192876991554?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/114987192876991554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=114987192876991554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/114987192876991554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/114987192876991554'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/jennymyrealtorcom-version-20-is.html' title='JennyMyRealtor.com version 2.0 is launched'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-114987146565746592</id><published>2006-06-09T09:36:00.000-07:00</published><updated>2006-06-13T18:20:05.873-07:00</updated><title type='text'>Keiko &amp; Nobuki's Wedding</title><content type='html'>&lt;a href="http://www.pbase.com/alextsung/2006_06_08&amp;page=all"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4776/3096/320/61557024.IzesSLDt.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;My friend Keiko &amp; Nobuki got married yesterday and the ceremony was held in Stanely Park. The ceremony was nice and they had a wedding company to organize everthing.  My sister-in-law - Mei - helped  everything and my daughters - Annie and Audrey - were the flower girls. Since the wedding company has hired a professional photographer and the photographer was directing their moves, so the new couple didn't actually look at my camera in most of &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.pbase.com/alextsung/2006_06_08&amp;page=all"&gt;my photos&lt;/a&gt;&lt;span style="font-family:arial;"&gt; :P Here is the &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.pbase.com/alextsung/2006_06_08&amp;page=all"&gt;gallery&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Congradulations, Keiko &amp;amp; Nobuki, and Happy Honeymoon!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-114987146565746592?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/114987146565746592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=114987146565746592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/114987146565746592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/114987146565746592'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/keiko-nobukis-wedding.html' title='Keiko &amp; Nobuki&apos;s Wedding'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-114958165489198260</id><published>2006-06-06T00:51:00.000-07:00</published><updated>2006-07-12T10:05:15.450-07:00</updated><title type='text'>"Atlas" Control Toolkit - CascadingDropDown SelectedValue</title><content type='html'>&lt;span style="font-family:arial;"&gt;Most of time I need the parent-child dropdowns in code to represent some relationship, for example, categories and products, countries and provinces, cities and areas, etc. After the relationship is stored in database, next time the values are retrieved from database, the parent-child dropdowns can be set to the values programmatically.&lt;br /&gt;&lt;br /&gt;Last time I tried to assign variables to the property "SelectedValue" of the Atlas Control "&lt;a href="http://atlas.asp.net/atlastoolkit/CascadingDropDown/CascadingDropDown.aspx"&gt;CascadingDropDown&lt;/a&gt;", it didn't work. I almost gave up using this Toolkit. Then I was thinking tonight - "Why don't I give another a try after I do some research?" - then I found this &lt;a href="http://forums.asp.net/thread/1259213.aspx"&gt;reply&lt;/a&gt; in &lt;a href="http://forums.asp.net/"&gt;ASP.NET Forums&lt;/a&gt;. Cool, it solved my problem :-)&lt;br /&gt;&lt;br /&gt;Basically, you put the following code in the Page_Load():&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: rgb(204, 0, 0);font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;    CascadingDropDown1.TargetPropertied[0].ClientState = "selected_value";&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;So I add the database call into the logic:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0);font-family:courier new;font-size:85%;"  &gt;protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt; if (!IsPostBack)&lt;br /&gt; {&lt;br /&gt;     int category_id;&lt;br /&gt;     int product_id;&lt;br /&gt;&lt;br /&gt;     // database call to get category_id and product_id&lt;br /&gt;&lt;br /&gt;     // first dropdown is categories, second is products&lt;br /&gt;             CascadingDropDown1.TargetPropertied[0].ClientState = category_id.ToString();&lt;br /&gt;    CascadingDropDown1.TargetPropertied[1].ClientState = product_id.ToString();&lt;br /&gt; }&lt;br /&gt;}&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;Well, I believe next version of the Toolkit may provide some way to preselect the value in the web method. If not, there definitely will have a better (elegant) way to do this :-)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-114958165489198260?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/114958165489198260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=114958165489198260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/114958165489198260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/114958165489198260'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/atlas-control-toolkit_06.html' title='&quot;Atlas&quot; Control Toolkit - CascadingDropDown SelectedValue'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-114944227682795136</id><published>2006-06-04T10:21:00.000-07:00</published><updated>2006-06-04T10:33:23.966-07:00</updated><title type='text'>JennyMyRealtor.com version 2.0 beta</title><content type='html'>&lt;span style="font-family:arial;"&gt;Since I have spent about a month building Jenny's &lt;a href="http://www.jennymyrealtor.com/"&gt;website&lt;/a&gt;, I found I don't really like the styles, too many colours, and because there is not much content now, so the site looks empty and not attractive at all :-(&lt;br /&gt;&lt;br /&gt;Last night I was looking for different CSS templates to use on Jenny's website, then I found &lt;a href="http://andreasviklund.com/about/"&gt;Andrew Viklund&lt;/a&gt;'s &lt;a href="http://andreasviklund.com/templates/"&gt;free website templates&lt;/a&gt;. Wow, those templates are awesome, look professional. So I decided to use his template - &lt;a href="http://openwebdesign.org/viewdesign.phtml?id=2454"&gt;andreas08&lt;/a&gt; - and applied to Jenny's website, &lt;a href="http://aspspider.org/atsung/"&gt;here&lt;/a&gt; is the new look-and-feel of &lt;a href="http://aspspider.org/atsung/"&gt;version 2.0 beta&lt;/a&gt;. Looks better!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-114944227682795136?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/114944227682795136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=114944227682795136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/114944227682795136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/114944227682795136'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/jennymyrealtorcom-version-20-beta.html' title='JennyMyRealtor.com version 2.0 beta'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-114928843145190674</id><published>2006-06-02T15:36:00.000-07:00</published><updated>2006-06-09T16:04:15.440-07:00</updated><title type='text'>New Gallery on PBase</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pbase.com/alextsung/image/61200655/original"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4776/3096/320/61200655.CRW_4445.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;I just created a new gallery (&lt;a href="http://www.pbase.com/alextsung/2006_06"&gt;2006 June&lt;/a&gt;) on &lt;a href="http://www.pbase.com/"&gt;PBase&lt;/a&gt; and posted 5 photos. The total views on my galleris is about 75600 since last April, it's not bad. I guess my galleries get more views since I bought the &lt;a href="http://www.pbase.com/cameras/sigma/17_70_28_45_dc_macro"&gt;Sigma 17-70mm f/2.8-4.5 DC Macro&lt;/a&gt; lens and posted the &lt;a href="http://www.pbase.com/alextsung/minter_gardens"&gt;Minter Garden&lt;/a&gt; gallery with that lens. The Sigma lens is razor sharp and its minimal focus distance is only 20cm, which is awesome for Macro photos. As my standard lens, I love it!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-114928843145190674?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/114928843145190674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=114928843145190674' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/114928843145190674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/114928843145190674'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/new-gallery-on-pbase.html' title='New Gallery on PBase'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-114920968015772008</id><published>2006-06-01T17:43:00.000-07:00</published><updated>2006-06-01T17:54:40.170-07:00</updated><title type='text'>JennyMyRealtor.com</title><content type='html'>&lt;span style="font-family: arial;"&gt;I have spent about a month building this website - &lt;a href="http://www.jennymyrealtor.com/"&gt;JennyMyRealtor.com&lt;/a&gt; - for my wife - Jenny, now the site is launched, not too much content yet because she is busy as usual on our two daughters, Annie and Audrey :-)&lt;br /&gt;&lt;br /&gt;When I was builting this website, I have used several cool technologies, like &lt;a href="http://weblogs.asp.net/mschwarz/"&gt;Ajax.NET Professional&lt;/a&gt;, &lt;a href="http://www.google.com/apis/maps/"&gt;Google Maps API&lt;/a&gt;, &lt;a href="http://geocoder.ca/"&gt;Geocoder&lt;/a&gt;, and &lt;a href="http://atlas.asp.net/atlastoolkit/"&gt;Atlas&lt;/a&gt;. The back-end Admin Panel used my beloved &lt;a href="http://www.fckeditor.net/"&gt;FCKeditor&lt;/a&gt; as the content editor to allow admin to edit HTML contents. I have also used other cool stuff, like ASP.NET 2.0 Membership Service and Rss Syndication, it was fun!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-114920968015772008?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/114920968015772008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=114920968015772008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/114920968015772008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/114920968015772008'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/jennymyrealtorcom.html' title='JennyMyRealtor.com'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-114920579309509831</id><published>2006-06-01T16:46:00.000-07:00</published><updated>2006-06-01T17:40:10.396-07:00</updated><title type='text'>"Atlas" Control Toolkit</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;I played with this cool toolkit - &lt;/span&gt;&lt;a style="font-family: arial;" href="http://atlas.asp.net/atlastoolkit/"&gt;"Atlas" Control Toolkit&lt;/a&gt;&lt;span style="font-family:arial;"&gt; and used the &lt;/span&gt;&lt;a style="font-family: arial;" href="http://atlas.asp.net/atlastoolkit/PanelExtenders/CollapsiblePanel.aspx"&gt;CollapsiblePanel&lt;/a&gt;&lt;span style="font-family:arial;"&gt; in my code. I wanted to use the &lt;/span&gt;&lt;a style="font-family: arial;" href="http://atlas.asp.net/atlastoolkit/CascadingDropDown/CascadingDropDown.aspx"&gt;CascadingDropDown&lt;/a&gt;&lt;span style="font-family:arial;"&gt; in my code as well because this is really helpful for many situations, but then I realized the SelectedValue of an extender cannot be set in the code :-(&lt;br /&gt;&lt;br /&gt;BTW, I like the look-and-feel of &lt;a href="http://atlas.asp.net/atlastoolkit/"&gt;Atlas website&lt;/a&gt; :-)&lt;br /&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/29134832-114920579309509831?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/114920579309509831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=114920579309509831' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/114920579309509831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/114920579309509831'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/atlas-control-toolkit.html' title='&quot;Atlas&quot; Control Toolkit'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29134832.post-114920495976996938</id><published>2006-06-01T16:35:00.000-07:00</published><updated>2006-06-01T17:32:28.896-07:00</updated><title type='text'>Hello World</title><content type='html'>&lt;span style=";font-family:arial;font-size:100%;"  &gt;Welcome to my Weblog!&lt;br /&gt;&lt;br /&gt;Currently I am working on a small project using Microsoft Enterprise Library for .NET Framework 2.0 - &lt;a href="http://msdn.microsoft.com/practices/guidetype/AppBlocks/default.aspx?pull=/library/en-us/dnpag2/html/crypto1.asp"&gt;Cryptography Application Block&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Basically, the idea of the Cryptography Application Block is to simplify how &lt;/span&gt;&lt;span style="font-family:arial;"&gt;developers incorporate cryptographic functionality in their applications.  Applications can use the application block to  encrypt information, create a hash from data, and compare hash values to  verify that data has not been altered.&lt;br /&gt;&lt;br /&gt;Now You can use Enterprise Library Configuration Console to configure Hash and Symmetric Cryptography Providers, then use the 4 major methods of the Cryptographyer: EncryptSymmetric(), DecryptSymmetric(), CreateHash(), and CompareHash() to do the main work. So the cool design has really simplified the Cryptography functionalities and made algorithm abstract.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;But, sad thing is, I have tried to setup the Symmetric Crptography Provider dynamically and also set the protected file dynamically, but I have not figured out how to do this. Any comments?&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29134832-114920495976996938?l=alextsung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alextsung.blogspot.com/feeds/114920495976996938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29134832&amp;postID=114920495976996938' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/114920495976996938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29134832/posts/default/114920495976996938'/><link rel='alternate' type='text/html' href='http://alextsung.blogspot.com/2006/06/hello-world.html' title='Hello World'/><author><name>Alex Tsung</name><uri>http://www.blogger.com/profile/05910765404802382610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4776/3096/1600/61070389.CRW_4418.jpg'/></author><thr:total>0</thr:total></entry></feed>
