<?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-2959590750469898218</id><updated>2012-01-24T00:05:16.685+13:00</updated><category term='LINQ'/><category term='Visual Studio'/><category term='Lamda'/><category term='SQL Server 2008'/><category term='javascript'/><category term='Olympic Software'/><category term='CSS'/><category term='AJAX'/><category term='Girl Geek Dinners'/><category term='F#'/><category term='XAML'/><category term='C# 3.0'/><category term='C#'/><category term='Visual Studio 2008'/><category term='Firefox'/><category term='Go Recorder'/><category term='Other'/><category term='Microsoft Community'/><category term='Virus/Trojan'/><category term='Flash/AS'/><category term='Ellerslie .NET User Group'/><category term='HTML'/><category term='T-SQL'/><category term='Blah'/><category term='NAnt'/><category term='WPF'/><category term='Facebook'/><category term='.NET 2.0'/><category term='CodeCamp'/><category term='.NET 3.5'/><category term='Silverlight'/><title type='text'>Jacqui's Dev Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default?start-index=101&amp;max-results=100'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>104</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-2136245087920334702</id><published>2011-12-06T15:24:00.001+13:00</published><updated>2011-12-06T15:24:03.132+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>Ellerslie .NET User Group Website is revived!</title><content type='html'>&lt;p&gt;&lt;a title="http://ellerslieusergroup.net.nz/" href="http://ellerslieusergroup.net.nz/"&gt;http://ellerslieusergroup.net.nz/&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://lh4.ggpht.com/-Rc7cWaQpj5k/Tt18u023RzI/AAAAAAAAG3I/WW4iqKOHSjU/s1600-h/image%25255B5%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-K0pJqALxUd8/Tt18wH9V6ZI/AAAAAAAAG3Q/TCYA_BCaOS8/image_thumb%25255B3%25255D.png?imgmax=800" width="480" height="302"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-2136245087920334702?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/2136245087920334702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2011/12/ellerslie-net-user-group-website-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2136245087920334702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2136245087920334702'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2011/12/ellerslie-net-user-group-website-is.html' title='Ellerslie .NET User Group Website is revived!'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/-K0pJqALxUd8/Tt18wH9V6ZI/AAAAAAAAG3Q/TCYA_BCaOS8/s72-c/image_thumb%25255B3%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-3699860537377145720</id><published>2011-12-06T15:22:00.001+13:00</published><updated>2011-12-06T15:22:33.975+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>Ellerslie .NET User Group 22/12/2011 C# 5.0</title><content type='html'>&lt;p&gt;Hello everyone,&lt;/p&gt; &lt;p&gt;After 9 months pregnancy and 2 months learning to be a mum, I am back and yes, Ellerslie .NET User Group is time to revive! Right before Christmas and Christmas holiday we will have a talk about C# 5.0 by Alex Davies, Software Engineer at Olympic Software. Hope we can meet up after not seeing each other for so long! A good geeky event right before the holiday season! Yay!&lt;/p&gt; &lt;p&gt;Again, really look forward to meet you all, register to let me know aye! &lt;/p&gt;  &lt;p&gt; &lt;table border="0" cellspacing="0" cellpadding="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="638"&gt; &lt;p&gt;&lt;b&gt;Date: 22&lt;sup&gt;nd&lt;/sup&gt; December 2011 Thursday&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Same time, same place. which is...&lt;/p&gt; &lt;p&gt;Gather at 5:45pm, starting at &lt;b&gt;6:00pm&lt;/b&gt; &lt;br&gt;Catering: Pizza &amp;amp; Drinks &lt;br&gt;Door&lt;b&gt; &lt;/b&gt;Charge: Free! &lt;br&gt;Venue: Olympic Software, 10 Cawley Street, Ellerslie, Auckland (find a map &lt;a href="http://maps.live.com/default.aspx?v=2&amp;amp;ss=yp.Cawley%20st%2C%20Ellerslie&amp;amp;cp=-36.900523~174.8119&amp;amp;style=r&amp;amp;lvl=15&amp;amp;tilt=-90&amp;amp;dir=0&amp;amp;alt=-1000&amp;amp;sp=Point.8vgxqpzk0y56_Olympic%20Software_10%20Cawley%20St%20Ellerslie%20Auckland_www.olympic.co.nz_&amp;amp;encType=1"&gt;here&lt;/a&gt;)&lt;/p&gt; &lt;p&gt;Register here: &lt;a href="mailto:register@ellerslieusergroup.net.nz?subject=[Ellerslie%20DNUG%2022/12/2011%5d"&gt;jacqc@olympic.co.nz&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;Title: C# 5.0&lt;/b&gt;&lt;/p&gt; &lt;p&gt;C# 5.0 brings two new keywords to assist in writing responsive asynchronous applications. We will have a look at the existing problems of synchronous code and how we can utilize the new language features to improve your applications to make them respond faster and perform better.&lt;/p&gt; &lt;p&gt;&lt;b&gt;Speaker: Alex Davies, Software Engineer at Olympic Software NZ Ltd&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt; &lt;p&gt;&lt;b&gt;Jacqualine Chow&lt;/b&gt; &lt;br&gt;Business Development Evangelist&lt;b&gt; &lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;DDI: 09 980 3999&lt;/p&gt; &lt;p&gt;Mobile: 029 770 0999&lt;u&gt;&lt;/u&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.olympic.co.nz/"&gt;www.olympic.co.nz&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-3699860537377145720?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/3699860537377145720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2011/12/ellerslie-net-user-group-22122011-c-50.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3699860537377145720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3699860537377145720'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2011/12/ellerslie-net-user-group-22122011-c-50.html' title='Ellerslie .NET User Group 22/12/2011 C# 5.0'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-238746104902994898</id><published>2011-01-27T09:43:00.001+13:00</published><updated>2011-01-27T09:43:29.582+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='F#'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>What if Visual Studio had Achievements?</title><content type='html'>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://dev-for-fun.blogspot.com/2011/01/what-if-visual-studio-had-achievements.html" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;From &lt;a href="http://blog.whiletrue.com/2011/01/what-if-visual-studio-had-achievements/"&gt;http://blog.whiletrue.com/2011/01/what-if-visual-studio-had-achievements/&lt;/a&gt; Author: &lt;b&gt;rudi&lt;/b&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;What if Visual Studio supported achievements, just like games on Steam, Xbox or PS3? Bragging to your coworkers about which one you’ve just unlocked, imagine that! Here’s a little proposed list for some of them. .NET / C# flavored, of course.&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;b&gt;Falling Down&lt;/b&gt; – Created a new SharePoint project &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Job Security&lt;/b&gt; – Written a LINQ query with over 30 lines of code &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Sword Fighter&lt;/b&gt; – 5 Consecutive Solution Rebuilds with zero code changes &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Shotgun Debugging&lt;/b&gt; – 5 Consecutive Solution Rebuilds with a single character change &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Mathematician&lt;/b&gt; – Defined 15 local variables with a single character name &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Academic&lt;/b&gt; – Written 1000 lines of F# &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Spaghetti Monster&lt;/b&gt; – Written a single line with more than 300 characters &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Wild One&lt;/b&gt; – Mixed tabs and spaces for indentation more than 5 times in a single line &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Organizer&lt;/b&gt; – Created a Solution with more than 50 projects &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Portal&lt;/b&gt; – Created a circular project dependency &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Multitasker&lt;/b&gt; – Have more than 50 source files open at the same time &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Code Keeper&lt;/b&gt; – Uninstalled Resharper because it made you redundant &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Pasta Chef&lt;/b&gt; – Created a class with more than 100 fields, properties or methods &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Procedural Programmer&lt;/b&gt; – Created a method with more than 10 out parameters &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Steam Powered&lt;/b&gt; – Added Visual Studio as a Steam game &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Poet&lt;/b&gt; – Written a source file with more than 10,000 lines &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Enterprise&lt;/b&gt; – Build Solution took more than 10 minutes &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Highway to Hell&lt;/b&gt; – Successfully created a WCF service &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Explainer&lt;/b&gt; – Written a comment with more than 100 words &lt;/li&gt;      &lt;li&gt;&lt;b&gt;TPS Reports&lt;/b&gt; – Created a Crystal Reports Project &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Rage Quit&lt;/b&gt; – ALT+F4 after a failed bug fix &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Ooooh Shiny&lt;/b&gt; – Written 100 extensions methods &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Look Ma&lt;/b&gt; – Written an infinite Fibonacci generator using yield &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Engineer&lt;/b&gt; – Killed a zombie with The Wrench &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Architect&lt;/b&gt; – Created 25 Interfaces in a single project &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Right Way&lt;/b&gt; – Test method is longer than the tested method &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Defender&lt;/b&gt; – Checked every argument for null exceptions &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Pokemon Programming&lt;/b&gt; – Caught all the exceptions &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Black Magic&lt;/b&gt; – Implemented a RealProxy &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Gimme back my ASM&lt;/b&gt; – Used ILGenerator &lt;/li&gt;      &lt;li&gt;&lt;b&gt;I’m Sorry&lt;/b&gt; – Created a new Visual Basic Project &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The SEO Expert&lt;/b&gt; – ASP.NET MVC Routing table with more than 100 routes &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Matrix&lt;/b&gt; – Windows Forms with more than 100 controls &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Daredevil&lt;/b&gt; – UpdatePanels nested more than 3 layers deep &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Just a Test&lt;/b&gt; – Nested multiline C-style comments that caused a compilation error &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Warm Bath&lt;/b&gt; – Successfully consumed a non .NET SOAP web service &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Old School&lt;/b&gt; – Defined more than 100 static objects &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Cloner&lt;/b&gt; – Copy-pasted more than 50 lines &lt;/li&gt;      &lt;li&gt;&lt;b&gt;The Dependency&lt;/b&gt; – Referenced more than 30 projects &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Paying the bills&lt;/b&gt; – Imported a Visual Basic project &lt;/li&gt;      &lt;li&gt;&lt;b&gt;First Hit&lt;/b&gt; – Included a Codeproject.com library into your project and it actually compiled &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Paula&lt;/b&gt; – Define a firstname field with value &lt;i&gt;Brillant&lt;/i&gt; &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Every Option Considered&lt;/b&gt; – Created an enum with more than 30 values &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Inspired by Steam Holiday sales and Battlefield Bad Company 2. Odd web coding exposed on the most&lt;a href="http://www.whiletrue.com/"&gt;minimalistic company page&lt;/a&gt; possible. Enjoy.&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-238746104902994898?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/238746104902994898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2011/01/what-if-visual-studio-had-achievements.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/238746104902994898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/238746104902994898'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2011/01/what-if-visual-studio-had-achievements.html' title='What if Visual Studio had Achievements?'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-1258709160766169019</id><published>2010-11-09T13:11:00.001+13:00</published><updated>2010-11-09T13:11:25.793+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>Ellerslie .NET User group 17/10/2010</title><content type='html'>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://dev-for-fun.blogspot.com/2010/11/ellerslie-net-user-group-17102010.html" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;Hello everybody! Haven’t contact you all for so long! It’s my bad, too much happened in the last half a year. Anyway, here Ellerslie User Group is, we are starting up again!&lt;/p&gt;  &lt;p&gt;   &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="638"&gt;           &lt;p&gt;&lt;b&gt;Date: 17&lt;sup&gt;th&lt;/sup&gt; November 2010 Wednesday.&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;Same time, same place. which is...&lt;/p&gt;            &lt;p&gt;Gather at 5:45pm, starting at &lt;b&gt;6:00pm&lt;/b&gt;               &lt;br /&gt;Catering: Pizza &amp;amp; Drinks               &lt;br /&gt;Door&lt;b&gt; &lt;/b&gt;Charge: Free!               &lt;br /&gt;Venue: Olympic Software, 10 Cawley Street, Ellerslie, Auckland (find a map &lt;a href="http://maps.live.com/default.aspx?v=2&amp;amp;ss=yp.Cawley%20st%2C%20Ellerslie&amp;amp;cp=-36.900523~174.8119&amp;amp;style=r&amp;amp;lvl=15&amp;amp;tilt=-90&amp;amp;dir=0&amp;amp;alt=-1000&amp;amp;sp=Point.8vgxqpzk0y56_Olympic%20Software_10%20Cawley%20St%20Ellerslie%20Auckland_www.olympic.co.nz_&amp;amp;encType=1"&gt;here&lt;/a&gt;)&lt;/p&gt;            &lt;p&gt;Register here: &lt;a href="mailto:register@ellerslieusergroup.net.nz?subject=[Ellerslie%20DNUG%2017/11/2010%5d"&gt;register@ellerslieusergroup.net.nz&lt;/a&gt;&lt;/p&gt;            &lt;p&gt;Join us at your Ellerslie for the &lt;b&gt;Tech.Ed 2010 Express Roadshow&lt;/b&gt; presented by &lt;a href="mailto:ryan.tarak@microsoft.com"&gt;Ryan Tarak&lt;/a&gt; (&lt;a href="http://blogs.msdn.com/b/nzstudents/"&gt;http://blogs.msdn.com/b/nzstudents/&lt;/a&gt;). We will demonstrate how you can leverage your existing skills to build applications for the Windows Phone platform, hear about the next release of Internet Explorer and much more. In addition to the exciting technology demos, we will have giveaways and prizes to be won also. &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;Hope to catch up with you all on the day, so please register and come!&amp;#160; (Come on the day even you didn’t register though, haha)&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;Jacqui&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-1258709160766169019?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/1258709160766169019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2010/11/ellerslie-net-user-group-17102010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1258709160766169019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1258709160766169019'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2010/11/ellerslie-net-user-group-17102010.html' title='Ellerslie .NET User group 17/10/2010'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-640726315484579197</id><published>2010-11-09T11:28:00.004+13:00</published><updated>2010-12-03T15:10:56.843+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Olympic Software'/><title type='text'>Olympic Software NZ Ltd - We are Hiring!</title><content type='html'>&lt;div class="wlWriterHeaderFooter" style="float: none; margin: 0px; padding: 4px 0px 4px 0px;"&gt;&lt;iframe frameborder="0" scrolling="no" src="http://www.facebook.com/widgets/like.php?href=http://dev-for-fun.blogspot.com/2010/11/olympic-software-nz-ltd-we-are-hiring.html" style="border: none; height: 80px; width: 450px;"&gt;&lt;/iframe&gt;&lt;/div&gt;Olympic Software is looking for new blood! We are hiring graduated software engineers and computer scientists who are smart and enthusiastic and devoted. &lt;br /&gt;What we would love to see in you:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Interested in solving problems &lt;/li&gt;&lt;li&gt;Love to learn &lt;/li&gt;&lt;li&gt;Stand up to challenges &lt;/li&gt;&lt;li&gt;Team player &lt;/li&gt;&lt;li&gt;Willing to communicate &lt;/li&gt;&lt;li&gt;Customer focused &lt;/li&gt;&lt;/ul&gt;As a medium size company we employ wide range of technologies in delivering variety of solutions of different sizes. Some commonly used technologies/languages include &lt;br /&gt;&lt;ul&gt;&lt;li&gt;MVC &lt;/li&gt;&lt;li&gt;AJAX &lt;/li&gt;&lt;li&gt;JavaScript &lt;/li&gt;&lt;li&gt;jQuery&lt;/li&gt;&lt;li&gt;ASP.NET/C# &lt;/li&gt;&lt;li&gt;SharePoint &lt;/li&gt;&lt;li&gt;Microsoft Dynamics &lt;/li&gt;&lt;li&gt;MSSQL &lt;/li&gt;&lt;li&gt;MS Office Integrations &lt;/li&gt;&lt;li&gt;etc… &lt;/li&gt;&lt;/ul&gt;You will experience a lot working with us the Software Engineering team.&lt;br /&gt;If you would like to join us please send your CV to &lt;a href="mailto:jacqc@olympic.co.nz"&gt;jacqc@olympic.co.nz&lt;/a&gt; to apply.&lt;br /&gt;And check us out on &lt;a href="http://www.facebook.com/pages/Olympic-Software-NZ/121380701207555" target="_blank"&gt;Facebook&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=2959590750469898218&amp;amp;postID=640726315484579197" name="_MailAutoSig"&gt;&lt;b&gt;Jacqualine Chow&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Business Development Evangelist&lt;/b&gt; | Olympic Software NZ Ltd | 10 Cawley Street, Ellerslie, Auckland, New Zealand | DDI +64 9 9803999 | Mobile +64 29 770 0999 | &lt;a href="mailto:jacqc@olympic.co.nz"&gt;jacqc@olympic.co.nz&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-640726315484579197?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/640726315484579197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2010/11/olympic-software-nz-ltd-we-are-hiring.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/640726315484579197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/640726315484579197'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2010/11/olympic-software-nz-ltd-we-are-hiring.html' title='Olympic Software NZ Ltd - We are Hiring!'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-2485340708086986548</id><published>2009-09-10T14:08:00.002+12:00</published><updated>2009-11-05T14:20:29.204+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash/AS'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Popup appears under flash file</title><content type='html'>&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_sF2QE2s97GA/SqhfohswWMI/AAAAAAAACkg/jdlPo49129w/s1600-h/image001%5B6%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image001" border="0" alt="image001" src="http://lh3.ggpht.com/_sF2QE2s97GA/Sqhfpzq_rZI/AAAAAAAACkk/U_6U7rXvMio/image001_thumb%5B4%5D.jpg?imgmax=800" width="650" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If your popup (e.g. menu) appears under a flash file in FireFox, try &lt;strong&gt;wmode=”transparent”&lt;/strong&gt; for the embed (or as a param for object), and I think the &lt;strong&gt;bgcolor &lt;/strong&gt;attribute does make the difference too.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-2485340708086986548?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/2485340708086986548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2009/09/popup-appears-under-flash-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2485340708086986548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2485340708086986548'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2009/09/popup-appears-under-flash-file.html' title='Popup appears under flash file'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_sF2QE2s97GA/Sqhfpzq_rZI/AAAAAAAACkk/U_6U7rXvMio/s72-c/image001_thumb%5B4%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-7128176630773473700</id><published>2009-09-10T09:20:00.001+12:00</published><updated>2009-09-10T09:20:50.665+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Community'/><category scheme='http://www.blogger.com/atom/ns#' term='CodeCamp'/><title type='text'>Updated Code Camp time table – 3 days to go!</title><content type='html'>&lt;p&gt;&lt;a href="http://www.hack-ed.com/Event/Event.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954"&gt;http://www.hack-ed.com/Event/Event.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&lt;/a&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="501"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="34%"&gt;         &lt;p&gt;&lt;b&gt;.NET Development&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=46893c27-6adb-4ac8-bf09-ade94edf6d8d"&gt;Introduction and Welcome&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;10:00-10:15&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=732bafcb-7c87-4f55-9388-edc8e10b7859"&gt;What's Happening in .NET Languages, and Why Should You Care?&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;10:20-11:20&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=b4e7839f-aa03-4fff-bbb9-2382e88acb3c"&gt;Behaviour Driven Development&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;11:25-12:25&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=77cb56f2-9919-4b00-8878-6bf6664636ce"&gt;C# 4.0&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;12:30-12:40&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=4c7380ca-2fad-4265-86fb-44882516a49d"&gt;Lightning Talks&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;12:40-13:00&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=77d86e7a-996f-4f33-81b0-5309c0a3981d"&gt;Lunch - Development&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;13:00-13:40&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=f8a411b2-69e0-4280-a75f-11bfa92705ed"&gt;Becoming Certified&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;13:05-13:35&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=8e499494-8a1f-4b0a-971a-917b73882f1f"&gt;Domain Specific Languages&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;13:40-14:40&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=762d0159-ca76-48e9-b371-8d2c74a07073"&gt;Silverlight with Prism&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;14:45-15:45&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=2e2258a7-797b-44ce-ac6b-38983c0fb4de"&gt;.NET on the iPhone and Beyond&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;15:50-16:50&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=11e6533e-57ad-45b0-a6e3-638985b221e6"&gt;Wrap-up, prizes, etc&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;16:50-17:00&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="33%"&gt;         &lt;p&gt;&lt;b&gt;Security&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=46893c27-6adb-4ac8-bf09-ade94edf6d8d"&gt;Introduction and Welcome&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;10:00-10:15&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=2aa4d34d-143a-4f41-95f1-0c30148e5ca6"&gt;Security SDL / Threat Modelling Workshop&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;10:20-13:00&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=2f8b7c44-cec8-4d3a-b9b1-86ba9ed7d90f"&gt;Lunch - Security&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;13:00-13:40&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=f9ee1e86-9949-4a2b-b340-0968d48fe5b1"&gt;What's New in ForeFront 2010?&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;13:05-13:35&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=d010047c-703b-48fe-a3bb-8462abdc6803"&gt;Secure Coding Practices&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;13:40-14:40&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=11e6533e-57ad-45b0-a6e3-638985b221e6"&gt;Wrap-up, prizes, etc&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;16:50-17:00&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="33%"&gt;         &lt;p&gt;&lt;b&gt;SQL Server&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=46893c27-6adb-4ac8-bf09-ade94edf6d8d"&gt;Introduction and Welcome&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;10:00-10:15&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=3bece26d-a88d-4108-94bb-59b7e96f25ed"&gt;SQL Server Virtualisation Best Practices; Query Optimisation and Query Tuning; SSAS and Gemini&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;10:20-13:00&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=e93d6f55-61df-415f-9e58-66e6aef5a27c"&gt;SQL Panel / Q&amp;amp;A&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;13:05-13:35&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=f1f31253-16cb-4de1-ac22-fe01abb2d5aa"&gt;Lunch - SQL&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;13:40-14:40&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=e89abd35-6253-4283-a66d-3dc0448fb135"&gt;Understanding SQL Indexing&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;14:45-15:45&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=55ab51b1-58c2-4c3d-835b-07d2036bdd36"&gt;SQL Server Maintenance&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;15:50-16:50&lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.hack-ed.com/Session.aspx?EventID=cb9e96a5-7a1a-4774-ac03-b2d0aa2c2954&amp;amp;SessionID=11e6533e-57ad-45b0-a6e3-638985b221e6"&gt;Wrap-up, prizes, etc&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;16:50-17:00&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-7128176630773473700?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/7128176630773473700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2009/09/updated-code-camp-time-table-3-days-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/7128176630773473700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/7128176630773473700'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2009/09/updated-code-camp-time-table-3-days-to.html' title='Updated Code Camp time table – 3 days to go!'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-2968060903841208229</id><published>2009-08-31T10:15:00.001+12:00</published><updated>2009-08-31T10:52:05.974+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Community'/><title type='text'>Code Camp Auckland 2009 - Development | SQL | Security</title><content type='html'>&lt;p&gt;Code Camp Auckland on the &lt;strong&gt;13th September 2009&lt;/strong&gt;!&lt;/p&gt;  &lt;p&gt;If you want to catch some &lt;i&gt;free&lt;/i&gt; sessions on the state-of-the-art in .NET development, SQL Server and developer security then sign up for &lt;a href="http://www.dot.net.nz/GeneralPages/CodeCampAuckland2009.aspx"&gt;Code Camp Auckland 2009&lt;/a&gt; now.&lt;/p&gt;  &lt;p&gt;Code Camps are non-profit, and organised by members of the &lt;a href="http://www.dot.net.nz"&gt;local developer community&lt;/a&gt;. This year the Auckland Code Camp is the day before &lt;a href="http://www.microsoft.co.nz/teched"&gt;TechEd&lt;/a&gt; (Sunday 13 September), so we've managed to nab a few great speakers on their day off to present to us.&lt;/p&gt;  &lt;p&gt;It's the biggest Code Camp ever - over 14 hours of sessions across 3 streams from 10am till 5pm:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Development...&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;What's Happening in .NET Languages and Why Should You Care? &lt;/li&gt;    &lt;li&gt;Behaviour Driven Development &lt;/li&gt;    &lt;li&gt;Domain Specific Languages &lt;/li&gt;    &lt;li&gt;C# 4.0 new features &lt;/li&gt;    &lt;li&gt;Silverlight with Prism &lt;/li&gt;    &lt;li&gt;.NET on the iPhone &lt;/li&gt;    &lt;li&gt;Becoming Certified &lt;/li&gt;    &lt;li&gt;Lightning Talks &lt;/li&gt;    &lt;li&gt;and more! &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The latest and greatest in development topics, by the people that know!&lt;/p&gt;  &lt;p&gt;&lt;b&gt;SQL Server?&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SQL Server Virtualisation Best Practices and Recommendations &lt;/li&gt;    &lt;li&gt;SQL Server Analysis Services and Gemini &lt;/li&gt;    &lt;li&gt;Query Optimization and Query Tuning &lt;/li&gt;    &lt;li&gt;Understanding SQL Server Indexing &lt;/li&gt;    &lt;li&gt;SQL Server Maintenance &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Training and guidance from the best SQL trainers in the industry!&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Security!&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Secure Development Lifecycle and Threat Modelling workshop &lt;/li&gt;    &lt;li&gt;Secure Coding Practices &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_sF2QE2s97GA/Spr5-KUAdeI/AAAAAAAACiI/hCl1ZCm5PdY/s1600-h/timetable%5B4%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="timetable" border="0" alt="timetable" src="http://lh4.ggpht.com/_sF2QE2s97GA/Spr5_E_REkI/AAAAAAAACiM/NMutgy4-d8M/timetable_thumb%5B2%5D.png?imgmax=800" width="713" height="349" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We are lucky to have &lt;a href="http://blogs.msdn.com/michael_howard"&gt;Michael Howard&lt;/a&gt;, author of &lt;a href="http://www.fishpond.co.nz/Books/Computers/Networking/Security/product_info/984332/"&gt;Writing Secure Code&lt;/a&gt; and &lt;a href="http://www.fishpond.co.nz/Books/Computers/Networking/Security/product_info/15172892"&gt;24 Deadly Sins of Software Security&lt;/a&gt; giving a &lt;i&gt;free&lt;/i&gt; workshop for developers, architects and team leads on Threat Modelling and the Secure Development Lifecycle. This will be followed by a session on how to write secure .NET code.&lt;/p&gt;  &lt;p&gt;Auckland has never seen such an awesome &lt;i&gt;free &lt;/i&gt;event!&lt;/p&gt;  &lt;p&gt;Presenters that are offering their time include &lt;a href="http://sqlblog.com/blogs/greg_low/"&gt;Greg Low&lt;/a&gt;, &lt;a href="http://sqlcat.com/members/Nicholas-Dritsas.aspx"&gt;Nicholas Dritsas&lt;/a&gt; and Auckland's &lt;a href="http://blog.bittercoder.com/"&gt;Alex Henderson&lt;/a&gt; of &lt;a href="http://blog.bittercoder.com/CategoryView,category,architectureChat.aspx"&gt;Architecture Chat&lt;/a&gt; fame.&lt;/p&gt;  &lt;p&gt;To cover the costs of the event, we have the help of our generous sponsors: &lt;a href="http://www.microsoft.co.nz"&gt;Microsoft&lt;/a&gt;, &lt;a href="http://www.datacom.co.nz"&gt;Datacom&lt;/a&gt;, &lt;a href="http://www.intergen.co.nz"&gt;Intergen&lt;/a&gt;, &lt;a href="http://apac.ineta.org"&gt;INETA&lt;/a&gt; and &lt;a href="http://www.xero.com"&gt;Xero&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;All that's left for you to do is to &lt;a href="http://www.dot.net.nz/GeneralPages/CodeCampAuckland2009.aspx"&gt;visit the website&lt;/a&gt; for more details, and &lt;a href="http://www.codecamp.net.nz/"&gt;sign up now&lt;/a&gt;!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;P.S. Location! Of coz!&lt;/p&gt;  &lt;p&gt;We have three rooms at the Crowne Plaza Hotel in Auckland, which is across the road from TechEd:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.ichotelsgroup.com/h/d/cp/1/en/hotel/aklnz"&gt;http://www.ichotelsgroup.com/h/d/cp/1/en/hotel/aklnz&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;128 ALBERT STREET PO BOX 6841   &lt;br /&gt;AUCKLAND, 1030 NEW ZEALAND&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-2968060903841208229?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/2968060903841208229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2009/08/code-camp-auckland-2009-development-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2968060903841208229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2968060903841208229'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2009/08/code-camp-auckland-2009-development-sql.html' title='Code Camp Auckland 2009 - Development | SQL | Security'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_sF2QE2s97GA/Spr5_E_REkI/AAAAAAAACiM/NMutgy4-d8M/s72-c/timetable_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-2598080717568483760</id><published>2009-04-01T20:10:00.002+13:00</published><updated>2009-04-01T20:13:55.285+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Go Recorder'/><category scheme='http://www.blogger.com/atom/ns#' term='Olympic Software'/><title type='text'>GO! Recorder is released</title><content type='html'>&lt;p&gt;&lt;a title="http://store.olympic.co.nz/" href="http://store.olympic.co.nz/"&gt;http://store.olympic.co.nz/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;GO! Recorder is a tool we built for tracking work time quickly and easily. It’s now released to the market! Download a free 30-day trial to check it out!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://store.olympic.co.nz/"&gt;&lt;img title="GO! Recorder" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="203" alt="GO! Recorder" src="http://lh5.ggpht.com/_sF2QE2s97GA/SdMTbFNpi3I/AAAAAAAAB5I/OpxzKsrlu7A/image%5B1%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#80ff00" size="3"&gt;&lt;strong&gt;5 GREAT REASONS&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0080ff"&gt;TO PURCHASE GO! RECORDER&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font size="3"&gt;1. Make better use of your time:&lt;/font&gt; &lt;/b&gt;    &lt;br /&gt;GO! Recorder automates time recording so you can get on with your work instead of filling out timesheets.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font size="3"&gt;2. Start using it in seconds:&lt;/font&gt; &lt;/b&gt;    &lt;br /&gt;GO! Recorder is incredibly quick and intuitive to learn, so you’ll have it up and running in no time.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font size="3"&gt;3. Really understand where your time goes:&lt;/font&gt; &lt;/b&gt;    &lt;br /&gt;GO! Recorder’s realtime recording creates 100% accuracy around how long you’re spending on each task.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font size="3"&gt;4. Stop searching for job codes:&lt;/font&gt; &lt;/b&gt;    &lt;br /&gt;GO! Recorder gives you a simple-to-set-up list of job favourites to make your life even easier.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font size="3"&gt;5. Simplify client billing:&lt;/font&gt; &lt;/b&gt;    &lt;br /&gt;GO! Recorder tracks the exact amount of time you’ve spent on each client’s job, which makes billing them later a breeze.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-2598080717568483760?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/2598080717568483760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2009/04/go-recorder-is-released.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2598080717568483760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2598080717568483760'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2009/04/go-recorder-is-released.html' title='GO! Recorder is released'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_sF2QE2s97GA/SdMTbFNpi3I/AAAAAAAAB5I/OpxzKsrlu7A/s72-c/image%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-5068510234317000331</id><published>2008-10-16T17:41:00.001+13:00</published><updated>2008-10-16T17:41:56.298+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Community'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Guest Lecture: Emerging Technologies covering database</title><content type='html'>&lt;p&gt;I had done a guest lecture for INFOSYS330 in University of Auckland this afternoon. It was good... I think? Usually in the second last week of the semester there are not many students attending class, but this lecture marks attendance, so nearly everyone come to lecture, ha-ha. That made me feel better. :D&lt;/p&gt;  &lt;p&gt;Anyway, just want to put up some slides and code.&amp;#160; &lt;/p&gt;  &lt;p&gt;Here: &lt;a href="http://cid-a1dc672641f8a3d1.skydrive.live.com/self.aspx/Public/Emerging%20Technologies.pptx"&gt;slides&lt;/a&gt; and &lt;a href="http://cid-a1dc672641f8a3d1.skydrive.live.com/self.aspx/Public/Demo.zip"&gt;codes&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;P.S. I have polygon data for NZ map - and yes, I traced it. :P&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-5068510234317000331?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/5068510234317000331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/10/guest-lecture-emerging-technologies.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/5068510234317000331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/5068510234317000331'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/10/guest-lecture-emerging-technologies.html' title='Guest Lecture: Emerging Technologies covering database'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-7541451134209777847</id><published>2008-10-07T18:31:00.001+13:00</published><updated>2008-10-07T18:31:53.266+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Facebook'/><title type='text'>Facebook speaks Pirate!</title><content type='html'>&lt;p&gt;Tim from the Auckland University told me about this today! Wow! Didn't know that Facebook can speak Pirate English!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/jacqui.chow/SOr0NIxH5MI/AAAAAAAAA3I/emAFN_2TZdY/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="345" alt="image" src="http://lh4.ggpht.com/jacqui.chow/SOr0OUSIEGI/AAAAAAAAA3M/bIZnqNa3g7w/image_thumb%5B1%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/jacqui.chow/SOr0QJR31yI/AAAAAAAAA3Q/WP88HyAYtUM/s1600-h/image%5B7%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="345" alt="image" src="http://lh4.ggpht.com/jacqui.chow/SOr0RwpaeiI/AAAAAAAAA3U/K8qoLPNftyk/image_thumb%5B3%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-7541451134209777847?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/7541451134209777847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/10/facebook-speaks-pirate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/7541451134209777847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/7541451134209777847'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/10/facebook-speaks-pirate.html' title='Facebook speaks Pirate!'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/jacqui.chow/SOr0OUSIEGI/AAAAAAAAA3M/bIZnqNa3g7w/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-4195523468007033185</id><published>2008-10-03T15:26:00.001+13:00</published><updated>2008-10-03T15:27:24.604+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Community'/><title type='text'>Imagine Cup 2009</title><content type='html'>&lt;p&gt;&lt;a href="http://www.microsoft.co.nz/imaginecup"&gt;&lt;img title="clip_image002" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="81" alt="clip_image002" src="http://lh5.ggpht.com/jacqui.chow/SOWDClB1SoI/AAAAAAAAA3E/M0eqgJAyb-U/clip_image002%5B4%5D.jpg?imgmax=800" width="609" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/nz/imaginecup09/"&gt;http://www.microsoft.com/nz/imaginecup09/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Yes! Imagine Cup – “The world’s premier student technology competition” – is here again! This year &lt;a href="http://olympic.co.nz" target="_blank"&gt;we&lt;/a&gt; are going to mentor a team. Which one? I have no idea yet, haha. I am very excited about this event and mentoring. :)&lt;/p&gt;  &lt;p&gt;If your company &lt;a href="http://www.microsoft.com/nz/imaginecup09/nzmentors.aspx" target="_blank"&gt;wants to mentor a team&lt;/a&gt; as well, please email &lt;a href="mailto:icnz@microsoft.com" target="_blank"&gt;icnz@microsoft.com&lt;/a&gt;. Look forward to have our team competing with yours! :P&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-4195523468007033185?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/4195523468007033185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/10/imagine-cup-2009.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4195523468007033185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4195523468007033185'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/10/imagine-cup-2009.html' title='Imagine Cup 2009'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/jacqui.chow/SOWDClB1SoI/AAAAAAAAA3E/M0eqgJAyb-U/s72-c/clip_image002%5B4%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-2959002689416463148</id><published>2008-09-26T13:48:00.001+12:00</published><updated>2008-09-26T13:48:08.042+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><title type='text'>Annoying VS2008 System.Runtime.InteropServices.COMException</title><content type='html'>&lt;p&gt;I was a bit annoyed, and whatever people say in &lt;a href="http://geekswithblogs.net/marocanu2001/archive/2008/05/20/annoying-visual-studio-2008-little-bug.aspx"&gt;here&lt;/a&gt; didn’t solve my problem. &amp;gt;_&amp;lt;&lt;/p&gt;  &lt;p&gt;If you got this when you open a Web services project:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/jacqui.chow/SNw_U0qntlI/AAAAAAAAA2M/P6jRHYnXYTg/s1600-h/image%5B9%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="417" alt="image" src="http://lh3.ggpht.com/jacqui.chow/SNw_VjyQ00I/AAAAAAAAA2Q/lQMDAUC4H20/image_thumb%5B5%5D.png?imgmax=800" width="697" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; Run your Visual Studio &lt;strong&gt;as an administrator&lt;/strong&gt; (in Vista, in order to access IIS metabase)!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-2959002689416463148?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/2959002689416463148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/09/annoying-vs2008-systemruntimeinteropser.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2959002689416463148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2959002689416463148'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/09/annoying-vs2008-systemruntimeinteropser.html' title='Annoying VS2008 System.Runtime.InteropServices.COMException'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/jacqui.chow/SNw_VjyQ00I/AAAAAAAAA2Q/lQMDAUC4H20/s72-c/image_thumb%5B5%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-3356529568276552529</id><published>2008-09-19T14:44:00.003+12:00</published><updated>2009-11-05T14:21:14.669+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='XAML'/><title type='text'>XAML: Diff between Rectangle and Border?</title><content type='html'>&lt;p&gt;&lt;a href="http://lh4.ggpht.com/jacqui.chow/SNMSGyCxeKI/AAAAAAAAA0M/ht_JD7BhCZ8/image%5B4%5D.png"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="506" alt="image" src="http://lh5.ggpht.com/jacqui.chow/SNMSIgfTRTI/AAAAAAAAA0Q/Cq0JIfLI7Cc/image_thumb%5B2%5D.png" width="654" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;So here we are, a rectangle and a border with curved corners. Hmmm, what are the differences between them? Why different property names and API? Maybe I am too dumb to discover. Can someone please let me know? &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-3356529568276552529?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/3356529568276552529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/09/xaml-curved-corner-rectangle-2.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3356529568276552529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3356529568276552529'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/09/xaml-curved-corner-rectangle-2.html' title='XAML: Diff between Rectangle and Border?'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/jacqui.chow/SNMSIgfTRTI/AAAAAAAAA0Q/Cq0JIfLI7Cc/s72-c/image_thumb%5B2%5D.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-3875889665956590813</id><published>2008-09-19T14:04:00.003+12:00</published><updated>2009-11-05T14:22:05.264+13:00</updated><title type='text'>XAML: Curved Corner Rectangle *Update</title><content type='html'>&lt;p&gt;Simple. &lt;span style="font-family:Courier New;color:#808080;"&gt;&amp;lt;Rectangle /&amp;gt;&lt;/span&gt; &lt;s&gt;cannot have curved corner.&lt;/s&gt;* If you want a curved corner filled rectangle, use &lt;span style="font-family:Courier New;color:#808080;"&gt;&amp;lt;Border /&amp;gt;&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;* &lt;/strong&gt;&lt;a href="http://hestia.typepad.com/"&gt;&lt;strong&gt;Ivan&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; told me that, actually you can! Check out the RadiusX and RadiusY properties!&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Example:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Border&lt;/span&gt; &lt;span class="attr"&gt;x:Name&lt;/span&gt;&lt;span class="kwrd"&gt;="ShapeBorder"&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;="25"&lt;/span&gt; &lt;span class="attr"&gt;Background&lt;/span&gt;&lt;span class="kwrd"&gt;="Aqua"&lt;/span&gt; &lt;span class="attr"&gt;CornerRadius&lt;/span&gt;&lt;span class="kwrd"&gt;="3"&lt;/span&gt;&lt;br/&gt; &lt;span class="attr"&gt;BorderThickness&lt;/span&gt;&lt;span class="kwrd"&gt;="1"&lt;/span&gt; &lt;span class="attr"&gt;BorderBrush&lt;/span&gt;&lt;span class="kwrd"&gt;="Black"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;The key attribute is &lt;strong&gt;&lt;span style="font-family:Courier New;"&gt;CornerRadius&lt;/span&gt;&lt;/strong&gt;! :)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/jacqui.chow/SMdcKRzsTtI/AAAAAAAAAuk/URFftRFBFpE/s1600-h/image%5B2%5D.png"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="230" alt="image" src="http://lh3.ggpht.com/jacqui.chow/SMdcK4zcaGI/AAAAAAAAAuo/EzipwAHtYQ8/image_thumb.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-3875889665956590813?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/3875889665956590813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/09/xaml-curved-corner-rectangle-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3875889665956590813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3875889665956590813'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/09/xaml-curved-corner-rectangle-update.html' title='XAML: Curved Corner Rectangle *Update'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/jacqui.chow/SMdcK4zcaGI/AAAAAAAAAuo/EzipwAHtYQ8/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-1947057174272972141</id><published>2008-09-11T15:43:00.005+12:00</published><updated>2009-11-05T14:24:44.375+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='XAML'/><title type='text'>Demonstrate Drag and Drop from ListBox to ListBox in WPF</title><content type='html'>&lt;p&gt;Still haven't be able to created the memory leak problem. &lt;/p&gt;&lt;p&gt;I have implemented simple drag and drop from one ListBox to another ListBox onto my memory leak test project. The power of WPF, all I did was create an adorner for visualising drag and drop, and remove/add object from/to the data binding sources.&lt;/p&gt;&lt;p&gt;By the way, no guarantee to be bug-free because implementing drag and drop logic was not my intention. I am trying to find out the memory leak problem!&lt;/p&gt;&lt;p&gt;&lt;a href="http://cid-a1dc672641f8a3d1.skydrive.live.com/self.aspx/Public/TestMemoryLeak%7C_WithDragAndDrop.zip"&gt;Download&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Anyway, let me note some key points:&lt;/p&gt;&lt;p&gt;1. A Canvas encapsulating the ListBoxes (in ShapeListCollectionControl.xaml)&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Canvas&lt;/span&gt; &lt;span class="attr"&gt;HorizontalAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;="Stretch"&lt;/span&gt; &lt;span class="attr"&gt;VerticalAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;="Stretch"&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="TestCanvas"&lt;/span&gt;&lt;br/&gt;  &lt;span class="attr"&gt;DragOver&lt;/span&gt;&lt;span class="kwrd"&gt;="TestCanvas_DragOver"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="csharpcode"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ListBox&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="300"&lt;/span&gt; &lt;span class="attr"&gt;Margin&lt;/span&gt;&lt;span class="kwrd"&gt;="0,0,0,0"&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="TestListBox"&lt;/span&gt;&lt;br/&gt; &lt;span class="attr"&gt;PreviewMouseLeftButtonDown&lt;/span&gt;&lt;span class="kwrd"&gt;="TestListBox_PreviewMouseLeftButtonDown"&lt;/span&gt;&lt;br /&gt;           &lt;span class="attr"&gt;AllowDrop&lt;/span&gt;&lt;span class="kwrd"&gt;="True"&lt;/span&gt; &lt;span class="attr"&gt;Drop&lt;/span&gt;&lt;span class="kwrd"&gt;="TestListBox_Drop"&lt;/span&gt;&lt;br/&gt; &lt;span class="attr"&gt;GiveFeedback&lt;/span&gt;&lt;span class="kwrd"&gt;="TestListBox_GiveFeedback"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ListBox.ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;DataTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;main:ShapeListControl&lt;/span&gt; &lt;span class="attr"&gt;ListID&lt;/span&gt;&lt;span class="kwrd"&gt;="{Binding Path=ListID}"&lt;/span&gt;&lt;br/&gt;  &lt;span class="attr"&gt;HorizontalContentAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;="Stretch"&lt;/span&gt; &lt;span class="attr"&gt;VerticalContentAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;="Stretch"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;DataTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ListBox.ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ListBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Canvas&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Don't worry about the event handlers yet. Having a canvas as a wrapper allow you to add adorner to the canvas when you start dragging.&lt;/p&gt;&lt;p&gt;2. Start dragging - &lt;span style="font-family:courier new;"&gt;TestListBox_PreviewMouseLeftButtonDown&lt;/span&gt; (in ShapeListCollectionControl.xaml.cs)&lt;br /&gt;Note that I didn't write the &lt;span style="font-family:courier new;"&gt;GetObjectDataFromPoint&lt;/span&gt; method, I didn't even find it. All I have done was made it into an extension method. &lt;/p&gt;&lt;p&gt;Anyway. So the &lt;span style="font-family:courier new;"&gt;PreviewMouseLeftButtonDown&lt;/span&gt; event handler does the following: &lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;i. Find out what has been dragged&lt;br /&gt;ii. Find out the object list&lt;br /&gt;iii. Set the selected shape&lt;br /&gt;iv. Create Adorner and add to the canvas&lt;br /&gt;v. Remember the offset positions&lt;br /&gt;vi. Start dragging &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;3. Dragging - &lt;span style="font-family:courier new;"&gt;TestCanvas_DragOver&lt;/span&gt;&lt;br /&gt;Note that here I am dragging the adorner, NOT the actual control. And it is in the canvas, not the ListBox!&lt;/p&gt;&lt;p&gt;4. Dropping - &lt;span style="font-family:courier new;"&gt;TestCanvas_Drop&lt;/span&gt;&lt;br /&gt;To drop the selected shape, find the ShapeList by drop position. In the data model, remove the shape from the list we drag from and add to the list we drop to. After that remove adorner and reset selection.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;object&lt;/span&gt; data = TestListBox.GetObjectDataFromPoint(position);&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; (!(data &lt;span class="kwrd"&gt;is&lt;/span&gt; ShapeList))&lt;br /&gt;{&lt;br /&gt;  RemoveAdorner();&lt;br /&gt;  &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ShapeList list = data &lt;span class="kwrd"&gt;as&lt;/span&gt; ShapeList;&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;// Change Data&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; (Manager.FromList != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;{&lt;br /&gt;  Shape s = Manager.SelectedShapeControl.Shape;&lt;br /&gt;  Manager.FromList.Remove(s);&lt;br /&gt;  list.Add(s);&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-1947057174272972141?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/1947057174272972141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/09/demonstrate-drag-and-drop-from-listbox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1947057174272972141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1947057174272972141'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/09/demonstrate-drag-and-drop-from-listbox.html' title='Demonstrate Drag and Drop from ListBox to ListBox in WPF'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-5845138394784815340</id><published>2008-09-10T17:54:00.001+12:00</published><updated>2008-09-11T16:13:23.501+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><title type='text'>Quick WPF Data Binding Illustration</title><content type='html'>&lt;p&gt;I have to admit that what I said in the title was not what I intended to do.&lt;/p&gt;&lt;p&gt;Tonight I was writing some stuff up trying to recreate the suspicious &lt;span style="font-family:Courier New;color:#808080;"&gt;ObservableCollection&amp;lt;T&amp;gt;&lt;/span&gt; memory leak issue that I mentioned to &lt;a href="http://jonas.follesoe.no/"&gt;Jonas&lt;/a&gt;, so he can have a look and maybe tell me what the problem was. Strange that this simplified version seems to work fine. I am not sure it's the power of SP1, or it's just because I left something out. Anyway, I am going to test that again in the office tomorrow, or next Monday after the ski trip.&lt;/p&gt;&lt;p&gt;Anyway, since I have created this simplified version already, why not upload it. Due to the fact that this is something I mock up very quickly, it does illustrate some general concept/code usage in a plain way. Let me talk about the following:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://dev-for-fun.blogspot.com/2008/09/xaml-curved-corner-rectangle.html"&gt;Border&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://dev-for-fun.blogspot.com/2008/09/xaml-import-namespace-for-controls.html"&gt;Namespace&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Data Template &lt;/li&gt;&lt;li&gt;Style Setter &lt;/li&gt;&lt;li&gt;Set ListItem positions inside a ListBox &lt;/li&gt;&lt;li&gt;ObservableCollection&amp;lt;T&amp;gt; and INotifyPropertyChanged &lt;/li&gt;&lt;li&gt;... &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Not now. It's 10:30pm already. I will first upload this, and talk about the stuff tomorrow. :)&lt;/p&gt;&lt;a href="http://cid-a1dc672641f8a3d1.skydrive.live.com/embedrowdetail.aspx/Public/TestMemoryLeak.zip"&gt;Download&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-5845138394784815340?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/5845138394784815340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/09/quick-wpf-data-binding-illustration.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/5845138394784815340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/5845138394784815340'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/09/quick-wpf-data-binding-illustration.html' title='Quick WPF Data Binding Illustration'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-3450157823069317717</id><published>2008-09-10T17:44:00.002+12:00</published><updated>2008-09-11T16:31:59.603+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='XAML'/><title type='text'>XAML: Import namespace for controls</title><content type='html'>&lt;p&gt;&lt;a href="http://lh4.ggpht.com/jacqui.chow/SMdeps52dCI/AAAAAAAAAus/tCwQ4-6RJ7o/s1600-h/image%5B13%5D.png"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="78" alt="image" src="http://lh6.ggpht.com/jacqui.chow/SMdeqFdyUGI/AAAAAAAAAuw/bUEmkRgE8u8/image_thumb%5B9%5D.png?imgmax=800" width="444" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;To use your own user control, remember to import namespace:&lt;/p&gt;&lt;pre class="csharpcode"&gt;    &lt;span class="attr"&gt;xmlns:main&lt;/span&gt;&lt;span class="kwrd"&gt;="clr-namespace:TestMemoryLeak"&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Then you can use your control:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Canvas&lt;/span&gt; &lt;span class="attr"&gt;HorizontalAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;="Stretch"&lt;/span&gt; &lt;span class="attr"&gt;VerticalAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;="Stretch"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ListBox&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="300"&lt;/span&gt; &lt;span class="attr"&gt;Margin&lt;/span&gt;&lt;span class="kwrd"&gt;="0,0,0,0"&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="TestListBox"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ListBox.ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;DataTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;strong&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;main:ShapeListControl&lt;/span&gt; &lt;span class="attr"&gt;ListID&lt;/span&gt;&lt;span class="kwrd"&gt;="{Binding Path=ListID}"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;DataTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ListBox.ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ListBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Canvas&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-3450157823069317717?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/3450157823069317717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/09/xaml-import-namespace-for-controls.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3450157823069317717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3450157823069317717'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/09/xaml-import-namespace-for-controls.html' title='XAML: Import namespace for controls'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/jacqui.chow/SMdeqFdyUGI/AAAAAAAAAuw/bUEmkRgE8u8/s72-c/image_thumb%5B9%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-3410602423914224472</id><published>2008-09-10T17:33:00.002+12:00</published><updated>2009-11-05T14:25:25.407+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='XAML'/><title type='text'>XAML: Curved Corner Rectangle *Update</title><content type='html'>&lt;p&gt;Simple. &lt;font face="Courier New" color="#808080"&gt;&amp;lt;Rectangle /&amp;gt;&lt;/font&gt; &lt;s&gt;cannot have curved corner.&lt;/s&gt;* If you want a curved corner filled rectangle, use &lt;font face="Courier New" color="#808080"&gt;&amp;lt;Border /&amp;gt;&lt;/font&gt;.&lt;/p&gt;  &lt;p&gt;Example:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Border&lt;/span&gt; &lt;span class="attr"&gt;x:Name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;ShapeBorder&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;25&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Background&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Aqua&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;CornerRadius&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;3&amp;quot;&lt;/span&gt;&lt;br/&gt; &lt;span class="attr"&gt;BorderThickness&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;BorderBrush&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Black&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The key attributes is &lt;strong&gt;&lt;font face="Courier New"&gt;CornerRadius&lt;/font&gt;&lt;/strong&gt;! :)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/jacqui.chow/SMdcKRzsTtI/AAAAAAAAAuk/URFftRFBFpE/s1600-h/image%5B2%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="230" alt="image" src="http://lh3.ggpht.com/jacqui.chow/SMdcK4zcaGI/AAAAAAAAAuo/EzipwAHtYQ8/image_thumb.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;* &lt;/strong&gt;&lt;a href="http://hestia.typepad.com/"&gt;&lt;strong&gt;Ivan&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; told me that, actually you can! Check out the RadiusX and RadiusY properties!&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-3410602423914224472?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/3410602423914224472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/09/xaml-curved-corner-rectangle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3410602423914224472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3410602423914224472'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/09/xaml-curved-corner-rectangle.html' title='XAML: Curved Corner Rectangle *Update'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/jacqui.chow/SMdcK4zcaGI/AAAAAAAAAuo/EzipwAHtYQ8/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-6465176034649606957</id><published>2008-08-28T22:49:00.004+12:00</published><updated>2008-08-28T23:06:59.116+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Girl Geek Dinners'/><title type='text'>After Girl Geek Dinner #5</title><content type='html'>Finally, I have done my Girl Power talk in the &lt;a href="http://girlgeekdinners.co.nz/"&gt;Girl Geek Dinner&lt;/a&gt;. Yes, my usual way of presentation, i.e. all I have prepared were my slides. No notes, no plan, cannot remember what slides I have, and no idea what I am going to speak next. All I had was the power point presentation I created in an hour or two. I always think this is the best way for presentation, hope people think it did go okay.&lt;br /&gt;&lt;br /&gt;Not that I didn't want to spend more time on the presentation though, it's just because I was so busy these two weeks. Well, although I am saying that I was busy, however I am still working 40 hours week, which comparing to &lt;a href="http://nzgirlgeek.blogspot.com/"&gt;Amanda's&lt;/a&gt; 70-80 hours week I should have no complain. The problem about me is I have to sleep a lot. Saying "A lot", I do means "A LOT", usually 8.5 - 10 hours a night. Hubby said I sleep more than a pig.&lt;br /&gt;&lt;br /&gt;Look forward to the &lt;a href="http://burling.co.nz/post/2008/07/21/Girl-Geek-Dinner-at-Tech-Ed-NZ.aspx"&gt;GGD on Tech Ed's Monday night&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-6465176034649606957?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/6465176034649606957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/08/after-girl-geek-dinner-5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6465176034649606957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6465176034649606957'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/08/after-girl-geek-dinner-5.html' title='After Girl Geek Dinner #5'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-5973033052412269306</id><published>2008-08-11T18:42:00.003+12:00</published><updated>2008-08-19T17:58:38.950+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Girl Geek Dinners'/><title type='text'>Auckland Girl Geek Dinner 28th August 2008</title><content type='html'>&lt;p&gt;&lt;a href="http://lh6.ggpht.com/jacqui.chow/SJ_fPTwhzvI/AAAAAAAAAsQ/H_6REb1QxE8/image%5B15%5D.png"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="86" alt="image" src="http://lh6.ggpht.com/jacqui.chow/SJ_fPy-b3dI/AAAAAAAAAsU/ZYf29zM4qSQ/image_thumb%5B11%5D.png" width="359" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Maybe a little bit too brave, but I am going to speak for 30 mins in the upcoming Auckland Girl Geek Dinner (see &lt;a title="http://girlgeekdinners.co.nz/" href="http://girlgeekdinners.co.nz/"&gt;http://girlgeekdinners.co.nz/&lt;/a&gt;, &lt;s&gt;although what am I going to speak is not up there yet&lt;/s&gt;). As you may already discovered, I like listening to other people techie talks, but myself don't like to do techie talk. Therefore, I am not doing one of those about REST, Silverlights, WPF, SQL Server 2008, AJAX, LINQ, Flash (oops, not MS!), Visual Studio 2008, TFS... etc hardcore stuff. Instead, I am going to do some relaxing thing, and my topic is &lt;strong&gt;"Girl Power! Why the world need us"&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;Well, this industry is for sure a male-dominant one, see last week in the .NET User Group for evidence. Yes we had 72 people, but in these 72, we have 3 girls from &lt;a href="http://olympic.co.nz/"&gt;Olympic Software&lt;/a&gt; (my company), 2 from &lt;a href="http://www.kiwiplan.com/"&gt;Kiwiplan&lt;/a&gt; (both are java developers, one was the speaker's wife and one was the girlfriend of a guy from Olympic), and 1 from the &lt;a href="https://www.se.auckland.ac.nz/"&gt;Software Engineering department of the University of Auckland&lt;/a&gt;. 6 girls among 72 people, that's 8.33333333333333%. Therefore, I am going to talk about why we need more girls in this industry, and as so-called* girl geeks, how can we make the difference in our work environment as well as the community.&lt;/p&gt;&lt;p&gt;Many people may probably think this is not important at all, but I tell you, Na! Come along and you will know. If you are a guy and would like to come, same old rule, you need to be invited by a girl! :D&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-5973033052412269306?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/5973033052412269306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/08/auckland-girl-geek-dinner-28th-august.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/5973033052412269306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/5973033052412269306'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/08/auckland-girl-geek-dinner-28th-august.html' title='Auckland Girl Geek Dinner 28th August 2008'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/jacqui.chow/SJ_fPy-b3dI/AAAAAAAAAsU/ZYf29zM4qSQ/s72-c/image_thumb%5B11%5D.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-1720243591570556468</id><published>2008-08-11T17:21:00.002+12:00</published><updated>2008-09-03T22:32:01.667+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Community'/><category scheme='http://www.blogger.com/atom/ns#' term='CodeCamp'/><title type='text'>Auckland Code Camp 2008</title><content type='html'>&lt;p&gt;Hello guys and girls, yes! Code Camp is here again! If you came last year you'd know how good it is, and I have to tell you that this year it is even better! This year code camp is going to be more relaxed, which suits my personality very well, ha ha. Anyway. you can register at &lt;a href="http://codecamp.net.nz/"&gt;http://codecamp.net.nz&lt;/a&gt; and you have to be quick because we have over 200 registration already!&lt;/p&gt;&lt;p&gt;Date: &lt;strong&gt;31st August 2008&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Time: 9:00am - 6:00pm&lt;/p&gt;&lt;p&gt;Venue: Crown Plaza Hotel in Auckland (just next door to Tech Ed)&lt;/p&gt;&lt;p&gt;Cost: &lt;strong&gt;Free!&lt;/strong&gt; Lunch will be provided by our sponsors. The after-match function is an optional dinner to be held at a restaurant within walking distance of the Crowne Plaza. Cost of the dinner will be less than $30.&lt;/p&gt;&lt;p&gt;Agenda:&lt;/p&gt;&lt;p&gt;We are close to finalising the sessions. Speaker details and a full agenda will be available shortly.&lt;/p&gt;&lt;p&gt;Sessions for the day will be:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Thinking in WPF &lt;/li&gt;&lt;li&gt;Silverlight for developers &lt;/li&gt;&lt;li&gt;WCF &lt;/li&gt;&lt;li&gt;ASP.NET MVC &lt;/li&gt;&lt;li&gt;Real world TDD: Building Dependable Code with Dependency Injection  &lt;/li&gt;&lt;li&gt;As well as a bunch of Lightning Talks showcasing projects, products, companies and people in New Zealand&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The day will run from 9am till 6pm, with a lunch and afternoon tea provided by the generous support of our sponsors (&lt;a href="http://www.datacom.co.nz/"&gt;Datacom&lt;/a&gt;, &lt;a href="http://www.olympic.co.nz/"&gt;Olympic Software&lt;/a&gt;, &lt;a href="http://www.intergen.co.nz/"&gt;Intergen&lt;/a&gt;, &lt;a href="http://mvp.support.microsoft.com/"&gt;Microsoft MVP&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Plan to stay until 6pm, as we're gathering up prizes to give away at the end of the day. &lt;/p&gt;&lt;p&gt;In fact, plan to stay the night, as we'll be going out for dinner afterwards.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;So Register Here: &lt;a href="http://codecamp.net.nz/"&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;HTTP://CODECAMP.NET.NZ&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-1720243591570556468?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/1720243591570556468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/08/auckland-code-camp-2008.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1720243591570556468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1720243591570556468'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/08/auckland-code-camp-2008.html' title='Auckland Code Camp 2008'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-6091886882979019645</id><published>2008-08-11T17:02:00.001+12:00</published><updated>2008-08-11T17:04:17.292+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>Post - .NET User Group 9 - Building line of business applications with Silverlight</title><content type='html'>&lt;p&gt;&lt;a href="http://lh6.ggpht.com/jacqui.chow/SJ_ITNwi8DI/AAAAAAAAAsI/bjA_1vNK0Tw/n732077412_1100526_4189%5B5%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="n732077412_1100526_4189" src="http://lh3.ggpht.com/jacqui.chow/SJ_IT23oNWI/AAAAAAAAAsM/SYEcZ4EQeek/n732077412_1100526_4189_thumb%5B3%5D.jpg" width="244" align="left" border="0" /&gt;&lt;/a&gt; Last Thursday we had our 9th .NET User Group meeting. Guess what, we got 72 people in total! It's very impressive. &lt;a href="http://burling.co.nz/"&gt;Darryl&lt;/a&gt; thought it is the biggest single user group he ever heard of in New Zealand .NET community. I think it's probably the case. Honestly we cannot fit anymore people in the room so in the future if we have a bigger number, we will have to do it in our warehouse. Good to see this number of people turned up. :)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.robfe.com/"&gt;Rob&lt;/a&gt; has put up &lt;a href="http://www.robfe.com/2008/08/my-silverlight-talk/"&gt;the slides and the source code&lt;/a&gt; on his blog. Take them and play around with it!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-6091886882979019645?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/6091886882979019645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/08/post-net-user-group-9-building-line-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6091886882979019645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6091886882979019645'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/08/post-net-user-group-9-building-line-of.html' title='Post - .NET User Group 9 - Building line of business applications with Silverlight'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/jacqui.chow/SJ_IT23oNWI/AAAAAAAAAsM/SYEcZ4EQeek/s72-c/n732077412_1100526_4189_thumb%5B3%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-4055184891474559322</id><published>2008-07-25T12:55:00.001+12:00</published><updated>2008-07-25T12:55:51.770+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>.NET User Group 9 - Building line of business applications with Silverlight</title><content type='html'>&lt;p&gt;Presented by Rob Fonseca-Ensor from &lt;a href="http://www.datacom.co.nz/" target="_blank"&gt;Datacom&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Date: &lt;strong&gt;Thursday&lt;/strong&gt;&amp;#160;&lt;b&gt;7 August 2008&lt;/b&gt;     &lt;br /&gt;Gather at 5:45pm, starting at 6:00pm     &lt;br /&gt;Catering: Pizza &amp;amp; Drinks (we will have chicken pizzas this time!)     &lt;br /&gt;Door&lt;b&gt; &lt;/b&gt;Charge: Free!     &lt;br /&gt;Venue: Olympic Software, 10 Cawley Street, Ellerslie, Auckland (find a map &lt;a href="http://maps.live.com/default.aspx?v=2&amp;amp;ss=yp.Cawley%20st%2C%20Ellerslie&amp;amp;cp=-36.900523~174.8119&amp;amp;style=r&amp;amp;lvl=15&amp;amp;tilt=-90&amp;amp;dir=0&amp;amp;alt=-1000&amp;amp;sp=Point.8vgxqpzk0y56_Olympic%20Software_10%20Cawley%20St%20Ellerslie%20Auckland_www.olympic.co.nz_&amp;amp;encType=1"&gt;here&lt;/a&gt;) &lt;/p&gt;  &lt;p&gt;Parking: Free, just park in Olympic Software&amp;#8217;s car park    &lt;br /&gt;Register&lt;b&gt; &lt;/b&gt;here: &lt;a href="http://www.ellerslieusergroup.net.nz/"&gt;Ellerslie DNUG&lt;/a&gt; or &lt;a href="http://dot.net.nz/Default.aspx?tabid=112&amp;amp;mid=707&amp;amp;ctl=Detail&amp;amp;xmid=3551&amp;amp;xmfid=2"&gt;Dot Net NZ&lt;/a&gt; (please register)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Business value with Silverlight: Reading, Writing, Binding, Validating and Visualising your Data. Rob Fonseca-Ensor from Datacom will walk you through the steps to building useful, real world silverlight applications. Learn how easy it is to build a .net rich internet application with Silverlight &amp;amp; REST (via ADO.Net Data Services)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-4055184891474559322?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/4055184891474559322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/07/net-user-group-9-building-line-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4055184891474559322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4055184891474559322'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/07/net-user-group-9-building-line-of.html' title='.NET User Group 9 - Building line of business applications with Silverlight'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-5911306666529116304</id><published>2008-07-18T10:53:00.001+12:00</published><updated>2008-07-18T10:53:34.453+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blah'/><title type='text'>Software Development Meme</title><content type='html'>&lt;p&gt;&lt;a href="http://blog.bittercoder.com/" target="_blank"&gt;Alex&lt;/a&gt; has tagged me for this one. I haven't thought of who to tag yet at this moment. Let me see at the end of this.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How old were you when you first started programming?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;18. First year of my university, COMPSCI101. It's an introduction to java programming paper. Of course I didn't start programming earlier than that! I am not a geek, I told you guys. :P&lt;/p&gt;  &lt;p&gt;Oh wait, does LOGO count? If LOGO does count as programming, then I &amp;quot;started&amp;quot; programming at 14 in St. Stephen's Girls' College.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How did you get started in programming?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If LOGO doesn't count, then it's university. One day I had to decide what are we going to do for my bachelor degree, and I found out that Software Engineering is the only thing I could possibly do. I dislike commerce stuff, not good at nor interested in language, good in science but didn't want to go any further than differentiation and integration. So, I started my SE degree.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What was your first language?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;LOGO! Can you believe that I do LOGO before html? Well, if both of these don't count, then it's java, and I touched assembly language before C#.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What was the first real program you wrote?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Pac-man game I wrote in COMPSCI101 is the earliest &amp;quot;real&amp;quot; program I can remember. If you are talking about commercial program, then it's something I better not talk about here in my blog. You can come ask me about that.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What languages have you used since you started programming?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Java, C#, C++, VB6, VB.NET, T-SQL, Action Script (flash), java script, PHP, NAnt script, Mozart Oz, assembly languages, alloy, JSP, pls, 4gl, HTML.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What was your first professional programming gig?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;That's the &amp;quot;better not put it here&amp;quot; part. You can ask me.&lt;/p&gt;  &lt;p&gt;What's the most fun you've ever had... programming?&lt;/p&gt;  &lt;p&gt;I enjoy programming most of the time, but honestly programming is not the bit I enjoy most. I like meeting people, share their ideas, their difficulties or fun part in programming or anything related to their life of programming. &lt;/p&gt;  &lt;p&gt;If you ask me what is the most fun part... I think it's when you design and build a thingy to solve other people's problem. Maybe they are your clients, maybe they are your colleagues. Problem solving with programming, is the most fun part, all time.&lt;/p&gt;  &lt;p&gt;Who's next?&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://blog.andremeurer.com/" target="_blank"&gt;Andre Meurer&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.spectradata.co.nz/" target="_blank"&gt;Rodney Lake&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://burling.co.nz/" target="_blank"&gt;Darryl Burling&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Wanted to tag &lt;a href="http://blogs.msdn.com/alexj/default.aspx" target="_blank"&gt;Alex James&lt;/a&gt; and &lt;a href="http://blog.bluecog.co.nz/" target="_blank"&gt;JD&lt;/a&gt; as well, but they are tagged already. :P&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-5911306666529116304?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/5911306666529116304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/07/software-development-meme.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/5911306666529116304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/5911306666529116304'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/07/software-development-meme.html' title='Software Development Meme'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-618127404329436361</id><published>2008-07-10T12:43:00.002+12:00</published><updated>2008-07-10T12:50:18.043+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>Post - .NET User Group 8 - A Tester’s Perspective</title><content type='html'>It was a great night and we had around 30 people for the meeting. It's a good mixture between developers and testers. Yes, we are trying to break the walls between these two groups, who as Hafiz said, always like having a war between them. Fortunately it's never a big problem in Olympic as we all have fun together and sit around each other. Have to admit that&lt;strong&gt; "Strange - it works on my machine!"&lt;/strong&gt; is one of everyone's favourite lines here. Haha.&lt;br /&gt;&lt;br /&gt;By the way, you can download Hafiz's presentation slides &lt;a href="http://ellerslieusergroup.net.nz/Downloads/DNUG_TestersPerspective.pdf"&gt;here&lt;/a&gt;. Oh yeah, sorry that we have removed some animation and it is in pdf format anyway. So less fun for people who didn't come! :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-618127404329436361?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/618127404329436361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/07/post-net-user-group-8-testers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/618127404329436361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/618127404329436361'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/07/post-net-user-group-8-testers.html' title='Post - .NET User Group 8 - A Tester’s Perspective'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-574628467321661123</id><published>2008-07-08T12:42:00.001+12:00</published><updated>2008-07-10T12:43:12.247+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>.NET User Group 8 - A Tester’s Perspective</title><content type='html'>Presented by Hafiz Vegdani&lt;br /&gt;&lt;br /&gt;Date: &lt;strong&gt;Wednesday 9th July 2008&lt;/strong&gt;&lt;br /&gt;Gather at 5:45pm, starting at 6:00pmCatering: Pizza &amp;amp; DrinksDoor Charge: Free!Venue: Olympic Software, 10 Cawley Street, Ellerslie, Auckland (find a map &lt;a href="http://maps.live.com/default.aspx?v=2&amp;amp;ss=yp.Cawley%20st%2C%20Ellerslie&amp;amp;cp=-36.900523~174.8119&amp;amp;style=r&amp;amp;lvl=15&amp;amp;tilt=-90&amp;amp;dir=0&amp;amp;alt=-1000&amp;amp;sp=Point.8vgxqpzk0y56_Olympic%20Software_10%20Cawley%20St%20Ellerslie%20Auckland_www.olympic.co.nz_&amp;amp;encType=1"&gt;here&lt;/a&gt;)&lt;br /&gt;Parking: Free, just park in Olympic Software’s car parkRegister here: &lt;a href="http://www.ellerslieusergroup.net.nz/"&gt;Ellerslie DNUG&lt;/a&gt; or &lt;a href="http://dot.net.nz/Default.aspx?tabid=112&amp;amp;mid=707&amp;amp;ctl=Detail&amp;amp;xmid=3547&amp;amp;xmfid=2"&gt;Dot Net NZ&lt;/a&gt; (please register)&lt;br /&gt;&lt;br /&gt;HELLO... HELLO... Testing 1, 2, 3... Testing 1, 2, 3...&lt;br /&gt;&lt;br /&gt;Did you ever see software testing as part and parcel of the Software Development Life Cycle? Are you aware of the challenges of Software Testers?&lt;br /&gt;&lt;br /&gt;Come to our next Ellerslie .NET User Group meeting and find out about:&lt;br /&gt;· QA functions&lt;br /&gt;· UI standards&lt;br /&gt;· Visual Studio Testers Edition at a glance&lt;br /&gt;· How to write and maintain test scripts&lt;br /&gt;· Types of testing&lt;br /&gt;· Test process definitions&lt;br /&gt;· Testing principals&lt;br /&gt;· Attitudes of people&lt;br /&gt;&lt;br /&gt;Hafiz Vegdani is a Lead Test Analyst at Olympic Software. He has 8 years experience in software testing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-574628467321661123?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/574628467321661123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/07/net-user-group-8-testers-perspective.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/574628467321661123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/574628467321661123'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/07/net-user-group-8-testers-perspective.html' title='.NET User Group 8 - A Tester’s Perspective'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-4321749501556416371</id><published>2008-06-17T11:07:00.001+12:00</published><updated>2008-06-17T11:10:32.752+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><title type='text'>Using Windows Form Control in WPF</title><content type='html'>&lt;p&gt;Interesting enough that WPF does not have DateTimePicker (or Calendar). So we have decided to use the Windows Form DateTimePicker for now (just for now). Using a Windows Form control in WPF is not hard at all. :)&lt;/p&gt;&lt;p&gt;First of all, add a Grid to wherever you want your control to be:&lt;br /&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Grid&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;="28"&lt;/span&gt; &lt;span class="attr"&gt;Margin&lt;/span&gt;&lt;span class="kwrd"&gt;="116,0,0,49"&lt;/span&gt;&lt;br /&gt;          &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="DateGrid"&lt;/span&gt; &lt;span class="attr"&gt;VerticalAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;="Bottom"&lt;/span&gt;&lt;br /&gt;          &lt;span class="attr"&gt;HorizontalAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;="Left"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="195"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Grid&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Then add References to &lt;span style="font-family:Courier New;color:#808080;"&gt;System.Windows.Forms&lt;/span&gt; and &lt;span style="font-family:Courier New;color:#808080;"&gt;WindowsFormsIntegration&lt;/span&gt; and using:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Forms.Integration;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Forms;&lt;/pre&gt;&lt;p&gt;Now, in your Window/UserControl Loaded event handler, create the Windows Forms Control and add it to the grid - by first adding it to WindowsFormsHost.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Window_Loaded(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)&lt;br /&gt;{&lt;br /&gt;    WindowsFormsHost host = &lt;span class="kwrd"&gt;new&lt;/span&gt; WindowsFormsHost();&lt;br /&gt;    DateTimePicker dateTimePicker = &lt;span class="kwrd"&gt;new&lt;/span&gt; DateTimePicker();&lt;br /&gt;    dateTimePicker.Width = (&lt;span class="kwrd"&gt;int&lt;/span&gt;)&lt;span class="kwrd"&gt;this&lt;/span&gt;.DateGrid.Width;&lt;br /&gt;    host.Width = (&lt;span class="kwrd"&gt;int&lt;/span&gt;)&lt;span class="kwrd"&gt;this&lt;/span&gt;.DateGrid.Width;&lt;br /&gt;    host.Child = dateTimePicker;&lt;br /&gt;    &lt;span class="kwrd"&gt;this&lt;/span&gt;.DateGrid.Children.Add(host);&lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;That's it!&lt;br /&gt;&lt;a href="http://www.blogger.com/$image[3].png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-4321749501556416371?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/4321749501556416371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/06/using-windows-form-control-in-wpf.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4321749501556416371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4321749501556416371'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/06/using-windows-form-control-in-wpf.html' title='Using Windows Form Control in WPF'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-294211006317566381</id><published>2008-06-06T16:40:00.002+12:00</published><updated>2008-06-06T16:43:02.086+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lamda'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>Refactoring: LINQ and Lambda Examples</title><content type='html'>&lt;p&gt;I had migrated a project from .NET 2.0 to .NET 3.5. Guess it's also a good time to test some simple LINQ and Lambda. :) &lt;/p&gt;&lt;p&gt;Example 1: Simple List&amp;lt;A&amp;gt; to List&amp;lt;B&amp;gt; &lt;/p&gt;&lt;table cellspacing="0" cellpadding="2" width="400" border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="400"&gt;&lt;pre class="csharpcode"&gt;List&amp;lt;ItBase&amp;gt; items = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;ItBase&amp;gt;();&lt;br /&gt;&lt;br /&gt;List&amp;lt;DBEntityBase&amp;gt; entities = GetDBEntities(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(ItBase), ids);&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (DBEntityBase entity &lt;span class="kwrd"&gt;in&lt;/span&gt; entities)&lt;br /&gt;        items.Add((ItBase)entity);&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;becomes&lt;/p&gt;&lt;pre class="csharpcode"&gt;List&amp;lt;ItBase&amp;gt; items = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;ItBase&amp;gt;();&lt;br /&gt;&lt;br /&gt;List&amp;lt;DBEntityBase&amp;gt; entities = GetDBEntities(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(ItBase), ids);&lt;br /&gt;&lt;br /&gt;items = entities.ConvertAll&amp;lt;ItBase&amp;gt;(e =&amp;gt; (ItBase)e);&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Example 2: Return members of List&amp;lt;A&amp;gt; with conditions&lt;br /&gt;&lt;table cellspacing="0" cellpadding="2" width="400" border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="400"&gt;&lt;pre class="csharpcode"&gt;List&amp;lt;Attachment&amp;gt; attachments = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;Attachment&amp;gt;();&lt;br /&gt;&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (Attachment attachment &lt;span class="kwrd"&gt;in&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (attachment.AttachmentType == attachmentType)&lt;br /&gt;         attachments.Add(attachment);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;return&lt;/span&gt; attachments;&lt;/pre&gt;becomes&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;List&amp;lt;Attachment&amp;gt; attachments = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;Attachment&amp;gt;();&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;return&lt;/span&gt; attachments.FindAll(a =&amp;gt; a.AttachmentType == attachmentType);&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Example 3: from array of int (index) returns List&amp;lt;Y&amp;gt; objects&lt;br /&gt;&lt;table cellspacing="0" cellpadding="2" width="400" border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="400"&gt;&lt;pre class="csharpcode"&gt;List&amp;lt;ItBase&amp;gt; items = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;ItBase&amp;gt;();&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; id &lt;span class="kwrd"&gt;in&lt;/span&gt; ids)&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;          items.Add(&lt;span class="kwrd"&gt;this&lt;/span&gt;[id]);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;return&lt;/span&gt; items;&lt;/pre&gt;becomes&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;List&amp;lt;ItBase&amp;gt; items = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;ItBase&amp;gt;();&lt;br /&gt;&lt;br /&gt;items.AddRange(from i &lt;span class="kwrd"&gt;in&lt;/span&gt; ids select &lt;span class="kwrd"&gt;this&lt;/span&gt;[i]);&lt;br /&gt;&lt;span class="kwrd"&gt;return&lt;/span&gt; items;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;Example 4: From List&amp;lt;A&amp;gt; to List&amp;lt;B&amp;gt; but A and B are not inherited classes&lt;br /&gt;&lt;table cellspacing="0" cellpadding="2" width="400" border="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="400"&gt;&lt;pre class="csharpcode"&gt;List&amp;lt;User&amp;gt; users = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;User&amp;gt;();&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (UserData userData &lt;span class="kwrd"&gt;in&lt;/span&gt; result)&lt;br /&gt;{&lt;br /&gt;        User user = &lt;span class="kwrd"&gt;new&lt;/span&gt; User();&lt;br /&gt;        user.Email = userData.Email;&lt;br /&gt;        user.ID = userData.ID;&lt;br /&gt;        user.Name = userData.Name;&lt;br /&gt;        users.Add(user);&lt;br /&gt;}&lt;/pre&gt;becomes&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;List&amp;lt;User&amp;gt; users = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;User&amp;gt;();&lt;br /&gt;&lt;br /&gt;users = result.ConvertAll&amp;lt;User&amp;gt;(r =&amp;gt;&lt;br /&gt;                    &lt;span class="kwrd"&gt;new&lt;/span&gt; User&lt;br /&gt;                    {&lt;br /&gt;                        Email = r.Email,&lt;br /&gt;                        ID = r.ID,&lt;br /&gt;                        Name = r.Name,&lt;br /&gt;                    }&lt;br /&gt;                    );&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-294211006317566381?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/294211006317566381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/06/refactoring-linq-and-lambda-examples.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/294211006317566381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/294211006317566381'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/06/refactoring-linq-and-lambda-examples.html' title='Refactoring: LINQ and Lambda Examples'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-3083056988743907714</id><published>2008-06-06T16:29:00.002+12:00</published><updated>2009-11-05T14:28:57.421+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><title type='text'>WPF Example: Create UserControl and binding properties in a ListBox</title><content type='html'>&lt;p&gt;see &lt;a href="http://decav.com/blogs/andre/archive/2007/05/27/wpf-binding-to-properties-in-your-usercontrol-or-window.aspx"&gt;http://decav.com/blogs/andre/archive/2007/05/27/wpf-binding-to-properties-in-your-usercontrol-or-window.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;In order to bind the property, it needs to be a DependencyProperty, but not just that! You also need a control in XAML binding to your property. For example the following Control1 has a Message property:&lt;/p&gt; &lt;p&gt;XAML:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;UserControl&lt;/span&gt; &lt;span class="attr"&gt;x:Class&lt;/span&gt;&lt;span class="kwrd"&gt;="JSpike.Control1"&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;xmlns:x&lt;/span&gt;&lt;span class="kwrd"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;x:Name&lt;/span&gt;&lt;span class="kwrd"&gt;="Control1Name"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Grid&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;TextBlock&lt;/span&gt; &lt;span class="attr"&gt;x:Name&lt;/span&gt;&lt;span class="kwrd"&gt;="textBlock"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="{Binding ElementName=Control1Name, Path=Message}"&lt;/span&gt;&lt;br/&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="100"&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;="25"&lt;/span&gt; &lt;span class="attr"&gt;Background&lt;/span&gt;&lt;span class="kwrd"&gt;="Aquamarine"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;TextBlock&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;     &lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Grid&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;UserControl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt; CS:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; JSpike&lt;br /&gt;{&lt;br /&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="rem"&gt;/// Interaction logic for Control1.xaml&lt;/span&gt;&lt;br /&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Control1 : UserControl&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Control1()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; DependencyProperty MessageProperty = DependencyProperty.Register(&lt;br /&gt;            &lt;span class="str"&gt;"Message"&lt;/span&gt;, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt;), &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(Control1));&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Message&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt;)GetValue(MessageProperty);&lt;br /&gt;            }&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                SetValue(MessageProperty, &lt;span class="kwrd"&gt;value&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;p&gt; Now I want to bind this in a ListBox on Window1.xaml:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;XAML:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Window&lt;/span&gt; &lt;span class="attr"&gt;x:Class&lt;/span&gt;&lt;span class="kwrd"&gt;="JSpike.Window1"&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;xmlns:x&lt;/span&gt;&lt;span class="kwrd"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;&lt;br /&gt;        &lt;span class="attr"&gt;xmlns:myCtrl&lt;/span&gt;&lt;span class="kwrd"&gt;="clr-namespace:JSpike"&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;Title&lt;/span&gt;&lt;span class="kwrd"&gt;="Window1"&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;="300"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="300"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Window.Resources&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ObjectDataProvider&lt;/span&gt; &lt;span class="attr"&gt;x:Key&lt;/span&gt;&lt;span class="kwrd"&gt;="MyStringData"&lt;/span&gt; &lt;br /&gt;                        &lt;span class="attr"&gt;ObjectType&lt;/span&gt;&lt;span class="kwrd"&gt;="{x:Type myCtrl:ListOfStuff}"&lt;/span&gt; &lt;span class="attr"&gt;MethodName&lt;/span&gt;&lt;span class="kwrd"&gt;="GetList"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Window.Resources&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Grid&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ListBox&lt;/span&gt; &lt;span class="attr"&gt;ItemsSource&lt;/span&gt;&lt;span class="kwrd"&gt;="{Binding Source={StaticResource MyStringData}}"&lt;/span&gt;&lt;br/&gt; &lt;span class="attr"&gt;Margin&lt;/span&gt;&lt;span class="kwrd"&gt;="0,36,78,0"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ListBox.ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;DataTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;myCtrl:Control1&lt;/span&gt; &lt;span class="attr"&gt;Message&lt;/span&gt;&lt;span class="kwrd"&gt;="{Binding Path=.}"&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;="37"&lt;/span&gt;&lt;br/&gt; &lt;span class="attr"&gt;HorizontalAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;="Left"&lt;/span&gt; &lt;span class="attr"&gt;VerticalAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;="Top"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="105"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;myCtrl:Control1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;DataTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ListBox.ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ListBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Grid&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Window&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Class ListOfStuff is the data provider:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; JSpike&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;class&lt;/span&gt; ListOfStuff&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; List&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt; GetList()&lt;br /&gt;            {&lt;br /&gt;                List&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt; list = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt;();&lt;br /&gt;                list.Add(&lt;span class="str"&gt;"Hello"&lt;/span&gt;);&lt;br /&gt;                list.Add(&lt;span class="str"&gt;"Goodbye"&lt;/span&gt;);&lt;br /&gt;                list.Add(&lt;span class="str"&gt;"Heya"&lt;/span&gt;);&lt;br /&gt;                list.Add(&lt;span class="str"&gt;"Cya"&lt;/span&gt;);&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; list;&lt;br /&gt;            }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;p&gt; Result:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/jacqui.chow/SEi9LL-eVnI/AAAAAAAAAlQ/Ma0BZD8ysto/image2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="image" src="http://lh5.ggpht.com/jacqui.chow/SEi9NM0IyeI/AAAAAAAAAlU/6uVT6XMksyc/image_thumb.png" width="244" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-3083056988743907714?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/3083056988743907714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/06/wpf-example-create-usercontrol-and.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3083056988743907714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3083056988743907714'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/06/wpf-example-create-usercontrol-and.html' title='WPF Example: Create UserControl and binding properties in a ListBox'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/jacqui.chow/SEi9NM0IyeI/AAAAAAAAAlU/6uVT6XMksyc/s72-c/image_thumb.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-6969710899933856495</id><published>2008-05-08T14:49:00.001+12:00</published><updated>2008-05-08T14:49:27.405+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>.NET User Group 7 - REST in .NET</title><content type='html'>&lt;p&gt;Presented by &lt;a href="http://blog.bittercoder.com/" target="_blank"&gt;Alex Henderson&lt;/a&gt; from &lt;a href="http://www.devdefined.com/" target="_blank"&gt;Dev|Defined Limited&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Date: &lt;b&gt;Wednesday&lt;/b&gt; &lt;b&gt;28 May 2008&lt;/b&gt;&lt;br&gt;Gather at 5:45pm, starting at 6:00pm&lt;br&gt;Catering: Pizza &amp;amp; Drinks (we will have chicken pizzas this time!)&lt;br&gt;Door&lt;b&gt; &lt;/b&gt;Charge: Free!&lt;br&gt;Venue: Olympic Software, 10 Cawley Street, Ellerslie, Auckland (find a map &lt;a href="http://maps.live.com/default.aspx?v=2&amp;amp;ss=yp.Cawley%20st%2C%20Ellerslie&amp;amp;cp=-36.900523~174.8119&amp;amp;style=r&amp;amp;lvl=15&amp;amp;tilt=-90&amp;amp;dir=0&amp;amp;alt=-1000&amp;amp;sp=Point.8vgxqpzk0y56_Olympic%20Software_10%20Cawley%20St%20Ellerslie%20Auckland_www.olympic.co.nz_&amp;amp;encType=1"&gt;here&lt;/a&gt;) &lt;p&gt;Parking: Free, just park in Olympic Software’s car park&lt;br&gt;Register&lt;b&gt; &lt;/b&gt;here: &lt;a href="http://www.ellerslieusergroup.net.nz/"&gt;Ellerslie DNUG&lt;/a&gt; or &lt;a href="http://dot.net.nz/Default.aspx?tabid=1&amp;amp;mid=388&amp;amp;ctl=Detail&amp;amp;xmid=3532&amp;amp;xmfid=2"&gt;Dot Net NZ&lt;/a&gt; (please register) &lt;p&gt;&amp;nbsp; &lt;p&gt;A quick tour through the concepts of REST, or REpresentational State Transfer, including why you would use REST over WS-* and how you can implement REST'ful API's with .Net using WCF, ADO.Net Data Services (Astoria) and Open source Frameworks, how to address security concerns, and what the future of REST may offer us.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-6969710899933856495?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/6969710899933856495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/05/net-user-group-7-rest-in-net.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6969710899933856495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6969710899933856495'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/05/net-user-group-7-rest-in-net.html' title='.NET User Group 7 - REST in .NET'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-2315161863007704999</id><published>2008-04-11T14:40:00.001+12:00</published><updated>2008-04-11T14:40:12.603+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Blah'/><title type='text'>Interesting Screenshot of VS2008 Beta2 Installer</title><content type='html'>&lt;p&gt;&lt;a href="http://lh4.ggpht.com/jacqui.chow/R_7Pid9MMfI/AAAAAAAAAXE/KKrMRiRFNnc/interesting_screenshot_of_vs2008_beta2_installer%5B5%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="190" alt="interesting_screenshot_of_vs2008_beta2_installer" src="http://lh6.ggpht.com/jacqui.chow/R_7Pi99MMgI/AAAAAAAAAXM/UaZWb2EfIFk/interesting_screenshot_of_vs2008_beta2_installer_thumb%5B3%5D.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Visual Studio 2008 has been designed for unprecedented reliability.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;It will never do any of the following:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Give you up&lt;/li&gt; &lt;li&gt;Let you down&lt;/li&gt; &lt;li&gt;Run around and desert you&lt;/li&gt; &lt;li&gt;make you cry&lt;/li&gt; &lt;li&gt;Say goodbye&lt;/li&gt; &lt;li&gt;Tell a lie and hurt you&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-2315161863007704999?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/2315161863007704999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/04/interesting-screenshot-of-vs2008-beta2.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2315161863007704999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2315161863007704999'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/04/interesting-screenshot-of-vs2008-beta2.html' title='Interesting Screenshot of VS2008 Beta2 Installer'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/jacqui.chow/R_7Pi99MMgI/AAAAAAAAAXM/UaZWb2EfIFk/s72-c/interesting_screenshot_of_vs2008_beta2_installer_thumb%5B3%5D.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-6996182187207506132</id><published>2008-04-10T21:30:00.001+12:00</published><updated>2008-04-10T21:33:15.077+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Hide Blogger's navbar (2)</title><content type='html'>&lt;p&gt;&lt;a href="http://dev-for-fun.blogspot.com/2007/08/hide-bloggers-navbar.html"&gt;http://dev-for-fun.blogspot.com/2007/08/hide-bloggers-navbar.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Another simpler method, add CSS class!&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new;"&gt;#navbar-iframe {&lt;br /&gt;height:0px;&lt;br /&gt;visibility:hidden;&lt;br /&gt;display:none;&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-6996182187207506132?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/6996182187207506132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/04/hide-bloggers-navbar-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6996182187207506132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6996182187207506132'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/04/hide-bloggers-navbar-2.html' title='Hide Blogger&apos;s navbar (2)'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-3149031486688875465</id><published>2008-04-09T16:25:00.004+12:00</published><updated>2009-11-05T14:29:43.705+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Gotcha: Why position:fixed header scroll?</title><content type='html'>&lt;p&gt;Look at &lt;a href="http://mix08.com/"&gt;http://mix08.com&lt;/a&gt; and you can see the header was not scrolling because it has position:fixed in its CSS class. We tried to do something similar but the header keep scrolling. The html is very simple, too simple to have anything wrong, so we couldn't tell what's the problem with it.&lt;/p&gt;&lt;p&gt;All we were missing, was this - the DOCTYPE:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt; &lt;span class="attr"&gt;PUBLIC&lt;/span&gt; &lt;span class="kwrd"&gt;"-//W3C//DTD XHTML 1.0 Transitional//EN"&lt;/span&gt;&lt;br/&gt; &lt;span class="kwrd"&gt;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;After we discovered it of course I did say "Of course!" (not "Eureka!"). But when we were writing HTML in notepad, the simplest thing is always what we would have forgotten.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I tell you, life is full of small annoying stupid problems like this one.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-3149031486688875465?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/3149031486688875465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/04/gotcha-why-positionfixed-header-scroll.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3149031486688875465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3149031486688875465'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/04/gotcha-why-positionfixed-header-scroll.html' title='Gotcha: Why position:fixed header scroll?'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-1665716860303916257</id><published>2008-04-08T11:02:00.001+12:00</published><updated>2008-04-08T11:04:22.055+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Feature Silverlight Example of the Day: Along the River During the Ch'ing-ming Festival</title><content type='html'>&lt;p&gt;&lt;a title="http://learnet.npm.gov.tw/silverlight/" href="http://learnet.npm.gov.tw/silverlight/"&gt;http://learnet.npm.gov.tw/silverlight/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;This is really impressive, from both a Chinese and a Developer point of view. A Must-See.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.google.com/jacqui.chow/R_qn5f6WLiI/AAAAAAAAAWk/IzXeqcf2AGg/image%5B15%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="208" alt="" src="http://lh6.google.com/jacqui.chow/R_qn6f6WLjI/AAAAAAAAAWo/JSVK93XoEvQ/image_thumb%5B7%5D.png" width="304" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.google.com/jacqui.chow/R_qn7_6WLkI/AAAAAAAAAWs/TUzxx-3VMC8/image%5B16%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="219" alt="" src="http://lh6.google.com/jacqui.chow/R_qn8f6WLlI/AAAAAAAAAWw/g5SKc5Nig3Q/image_thumb%5B8%5D.png" width="304" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.google.com/jacqui.chow/R_qn9v6WLmI/AAAAAAAAAW0/0fU94Ms0-T0/image%5B17%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="213" alt="" src="http://lh5.google.com/jacqui.chow/R_qn-P6WLnI/AAAAAAAAAW4/LOFlgdUQKxc/image_thumb%5B9%5D.png" width="304" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.google.com/jacqui.chow/R_qn_P6WLoI/AAAAAAAAAW8/sSyCygKstSc/image%5B18%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="216" alt="" src="http://lh4.google.com/jacqui.chow/R_qn__6WLpI/AAAAAAAAAXA/-4M8bkv7H5I/image_thumb%5B10%5D.png" width="304" border="0"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-1665716860303916257?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/1665716860303916257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/04/feature-silverlight-example-of-day.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1665716860303916257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1665716860303916257'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/04/feature-silverlight-example-of-day.html' title='Feature Silverlight Example of the Day: Along the River During the Ch&amp;#39;ing-ming Festival'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-1595644876862013025</id><published>2008-04-08T08:57:00.000+12:00</published><updated>2008-04-08T08:58:03.107+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>.NET User Group 6 - MIX08: A Developer's Perspective</title><content type='html'>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Presented by &lt;b&gt;&lt;a href="http://blogs.msdn.com/nigel/default.aspx"&gt;Nigel Parker&lt;/a&gt;&lt;/b&gt; from Microsoft &lt;p&gt;Date: &lt;b&gt;Tuesday&lt;/b&gt; &lt;b&gt;15 April 2008&lt;/b&gt;&lt;br&gt;Gather at 5:45pm, starting at 6:00pm&lt;br&gt;Catering: Pizza &amp;amp; Drinks (we will have chicken pizzas this time!)&lt;br&gt;Door&lt;b&gt; &lt;/b&gt;Charge: Free!&lt;br&gt;Venue: Olympic Software, 10 Cawley Street, Ellerslie, Auckland (find a map &lt;a href="http://maps.live.com/default.aspx?v=2&amp;amp;ss=yp.Cawley%20st%2C%20Ellerslie&amp;amp;cp=-36.900523~174.8119&amp;amp;style=r&amp;amp;lvl=15&amp;amp;tilt=-90&amp;amp;dir=0&amp;amp;alt=-1000&amp;amp;sp=Point.8vgxqpzk0y56_Olympic%20Software_10%20Cawley%20St%20Ellerslie%20Auckland_www.olympic.co.nz_&amp;amp;encType=1"&gt;here&lt;/a&gt;)&lt;br&gt;Parking: Free, just park in Olympic Software’s car park&lt;br&gt;Register&lt;b&gt; &lt;/b&gt;here: &lt;a href="http://www.ellerslieusergroup.net.nz/"&gt;Ellerslie DNUG&lt;/a&gt; or &lt;a href="http://dot.net.nz/Default.aspx?tabid=1&amp;amp;mid=388&amp;amp;ctl=Detail&amp;amp;xmid=3525&amp;amp;xmfid=2"&gt;Dot Net NZ&lt;/a&gt; (please register) &lt;p&gt;Now in its third year, MIX08 took place in Las Vegas from March 5-7 2008. MIX is an intimate opportunity for cutting-edge technical, creative and business strategists to engage Microsoft in a conversation about the future of the web. &lt;p&gt;Nigel travelled to MIX and brought back with him a wealth of information and resources. Join Nigel as he showcases technical aspects of Microsoft's latest web technologies including Silverlight 2, .NET 3.5 and Live Services.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-1595644876862013025?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/1595644876862013025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/04/net-user-group-6-mix08-developers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1595644876862013025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1595644876862013025'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/04/net-user-group-6-mix08-developers.html' title='.NET User Group 6 - MIX08: A Developer&apos;s Perspective'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-5229004166903904403</id><published>2008-03-20T10:30:00.001+13:00</published><updated>2008-03-20T10:30:21.795+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>Post - .NET User Group 5 - Introduction to the ASP.NET MVC Framework</title><content type='html'>&lt;p&gt;&lt;a href="http://lh6.google.com/jacqui.chow/R-GF1v6WLYI/AAAAAAAAAUU/pwNntuvgfTE/19032008042a%5B4%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="19032008042a" src="http://lh4.google.com/jacqui.chow/R-GF3P6WLZI/AAAAAAAAAUc/VM1v2HJS8o4/19032008042a_thumb%5B2%5D" width="244" align="left" border="0"&gt;&lt;/a&gt;Wow! We got 50 people last night! See the crowd, it's really amazing.&lt;/p&gt; &lt;p&gt;This is the first time I met &lt;a href="http://blog.bluecog.co.nz/"&gt;JD&lt;/a&gt; and he is a very nice guy. I was shocked that he's younger than me and started programming when he's about 8 (very geeky! :P). He gave us a very good introduction to the MVC Framework, which was not too overwhelming, just right, especially everyone in the room has just finished a whole day of work and looking forward to Easter weekend. JD has presented quite a number of demos and that helped me to absorb the ideas a lot easier (&lt;a href="http://blog.bluecog.co.nz/archives/2008/03/20/updated-mvc-slides-demo/"&gt;Here&lt;/a&gt; you can download the slides and demo). I have to admit that although the MVC concept born before my time, I only have a really high level understand of it. Now I know a bit more and ready to test this .NET MVC framework out.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.google.com/jacqui.chow/R-GF4f6WLaI/AAAAAAAAAUk/EodDLRIzxkY/19032008046a%5B3%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="19032008046a" src="http://lh5.google.com/jacqui.chow/R-GF5f6WLbI/AAAAAAAAAUs/U1jWp8doap4/19032008046a_thumb%5B1%5D" width="244" align="right" border="0"&gt;&lt;/a&gt; Overall it's a very good night. I saw many old faces and some new faces,&amp;nbsp; including some girls I've never met before (you know, there are really not many girls around). For some people this is the first time they come to our events, and they asked how often do we have such event and commented it is a very good one because it also allows people from the MS community to meet each other. I was happy to hear that. It's good that everyone's happy. I like to see people are happy.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.google.com/jacqui.chow/R-GF6f6WLcI/AAAAAAAAAU0/DTnlxxeJCrc/19032008050b%5B3%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="19032008050b" src="http://lh4.google.com/jacqui.chow/R-GF7P6WLdI/AAAAAAAAAU8/N15pAeA3mBc/19032008050b_thumb%5B1%5D" width="244" align="left" border="0"&gt;&lt;/a&gt;This time we have vegetarian, chicken, seafood and normal pork pizzas, but I think we should have ordered 1 more vegetarian pizza. Interestingly no matter how many pizzas we order, there are always some leftover. &lt;a href="http://blog.andremeurer.com/"&gt;André&lt;/a&gt; said people tend to not eat the last few pieces. I asked JD to bring some back to Wellington but he said his bag could not fit them. Ivy took away one, Pedro took some for breakfast (he likes cold pizzas), and we still have about two pizzas left. Oh well, better than not enough. :)&amp;nbsp; I wasn't very hungry, but still have eaten many pizzas. Dinuka captured a picture of me concentrating, "investigating" the seafood pizzas and try to "calculate" how much more I can eat.&lt;/p&gt; &lt;p&gt;As a conclusion, it's all good! ;)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-5229004166903904403?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/5229004166903904403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/03/post-net-user-group-5-introduction-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/5229004166903904403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/5229004166903904403'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/03/post-net-user-group-5-introduction-to.html' title='Post - .NET User Group 5 - Introduction to the ASP.NET MVC Framework'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-8121124884721110146</id><published>2008-03-07T07:21:00.002+13:00</published><updated>2008-03-07T07:22:46.824+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash/AS'/><title type='text'>No more "Click to activate and use this control" (2)</title><content type='html'>&lt;p&gt;See: &lt;a title="No more Click to activate and use this control" href="http://dev-for-fun.blogspot.com/2007/09/no-more-click-to-activate-and-use-this.html"&gt;No more "Click to activate and use this control&lt;/a&gt;"&lt;/p&gt;&lt;p&gt;Actually, I have another approach to this problem.&lt;/p&gt;&lt;p&gt;First of all, create an external js file with the following code:&lt;/p&gt;&lt;pre class="csharpcode"&gt;objects = document.getElementsByTagName(&lt;span class="str"&gt;"embed"&lt;/span&gt;);&lt;br /&gt;&lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;var&lt;/span&gt; i = 0; i &amp;lt; objects.length; i++)&lt;br /&gt;{&lt;br /&gt;    objects[i].outerHTML = objects[i].outerHTML;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;OR&lt;/p&gt;&lt;pre class="csharpcode"&gt;objects = document.getElementsByTagName(&lt;span class="str"&gt;"object"&lt;/span&gt;);&lt;br /&gt;&lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;var&lt;/span&gt; i = 0; i &amp;lt; objects.length; i++)&lt;br /&gt;{&lt;br /&gt;    objects[i].outerHTML = objects[i].outerHTML;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Depends on whether you use &amp;lt;OBJECT&amp;gt; tag or &amp;lt;EMBED&amp;gt; directly.&lt;br /&gt;&lt;p&gt;Then at the very bottom of your HTML page, add the script reference in:&lt;pre class="csharpcode"&gt;&amp;lt;script type=&lt;span class="str"&gt;"text/javascript"&lt;/span&gt; src=&lt;span class="str"&gt;"objupdate.js"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Remember you need open tag and close tag. Using &amp;lt;script /&amp;gt; sometimes would not work.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-8121124884721110146?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/8121124884721110146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/03/no-more-to-activate-and-use-this.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/8121124884721110146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/8121124884721110146'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/03/no-more-to-activate-and-use-this.html' title='No more &amp;quot;Click to activate and use this control&amp;quot; (2)'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-6773538084210964011</id><published>2008-03-04T13:43:00.001+13:00</published><updated>2008-03-04T13:43:34.738+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><title type='text'>Starting New WPF App Error: Cannot convert string 'pack://application:,,,/</title><content type='html'>&lt;p&gt;This error is quite interesting. It appears straight after you create a new WPF project, i.e. Windows1.xaml is empty.  &lt;p&gt;&amp;nbsp;&lt;a href="http://lh5.google.com/jacqui.chow/R8ybEJVszzI/AAAAAAAAAR0/_Qf7fTqiX00/image%5B2%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="187" alt="image" src="http://lh4.google.com/jacqui.chow/R8ybG5Vsz0I/AAAAAAAAAR8/XxYRwb_JycY/image_thumb" width="244" border="0"&gt;&lt;/a&gt;  &lt;p&gt;By changing the Device Profile in Color Management to System Default, this problem goes away  &lt;p&gt;&amp;nbsp;&lt;a href="http://lh3.google.com/jacqui.chow/R8ybHpVsz1I/AAAAAAAAASE/Btjyv0pyAJM/image%5B5%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="179" alt="image" src="http://lh6.google.com/jacqui.chow/R8ybJZVsz2I/AAAAAAAAASM/ZIUETB64PtA/image_thumb%5B1%5D" width="244" border="0"&gt;&lt;/a&gt;  &lt;p&gt;&lt;a href="http://lh5.google.com/jacqui.chow/R8ybLJVsz3I/AAAAAAAAASU/pkj3r2iQU-w/image%5B8%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://lh4.google.com/jacqui.chow/R8ybL5Vsz4I/AAAAAAAAASc/JYKCpwqNNPw/image_thumb%5B2%5D" width="244" border="0"&gt;&lt;/a&gt;  &lt;p&gt;It is even more interesting that if you have your project open and change the Device Profile back to something else, the error would not reappear. However If you close the project and open it again, it will.  &lt;p&gt;So anyone knows what’s the difference between all these profiles?  &lt;p&gt;&lt;a href="http://lh3.google.com/jacqui.chow/R8ybMpVsz5I/AAAAAAAAASk/2mHkYVzIakk/image%5B11%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="50" alt="image" src="http://lh5.google.com/jacqui.chow/R8ybNJVsz6I/AAAAAAAAASs/3282FZBsWEQ/image_thumb%5B3%5D" width="244" border="0"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-6773538084210964011?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/6773538084210964011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/03/starting-new-wpf-app-error-cannot.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6773538084210964011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6773538084210964011'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/03/starting-new-wpf-app-error-cannot.html' title='Starting New WPF App Error: Cannot convert string &amp;#39;pack://application:,,,/'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-742493018238527479</id><published>2008-03-04T10:06:00.001+13:00</published><updated>2008-03-04T10:06:45.075+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Community'/><title type='text'>2008 Summer Road Trip - Slides and Code!</title><content type='html'>&lt;p&gt;Yes! We do have the code and slides for the summer road trip!&lt;/p&gt; &lt;p&gt;&lt;b&gt;Code:&lt;/b&gt; &lt;a href="http://turtle.net.nz/blog/content/RoadTripCode.zip"&gt;RoadTripCode.zip&lt;/a&gt; (3.90MB)&lt;br&gt;&lt;b&gt;Slides:&lt;/b&gt; &lt;a href="http://turtle.net.nz/blog/content/RoadTripSlides.zip"&gt;SummerRoadTrip.pptx&lt;/a&gt; (1.35MB) &lt;p&gt;According to &lt;a href="http://turtle.net.nz/blog/post/RoadTripSlidesAndCode"&gt;Jeremy&lt;/a&gt;,&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;The Code package contains a quick README on getting things set up, feel free to comment if you have more detail you want to add to this, however be warned&lt;b&gt; you will want to put this in a PRE-PRODUCTION / TEST environment&lt;/b&gt; as it makes use of many beta bits such as SQL Server 2008 and the Entity Framework.&lt;br&gt;If you are looking to build such a VM up from scratch then these instructions may help you out in terms of what you need to install..&lt;br&gt;1. &lt;b&gt;Windows Server 2008 Enterprise with No Hyper-V&lt;/b&gt; operating system installation&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Roles: Web Server, File Services, Application Server: Enable TCP and Named Pipe Activation and Distributed Transactions&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Features: Windows Powershell, Telnet Client&lt;br&gt;2. &lt;b&gt;Visual Studio 2008&lt;/b&gt;&lt;br&gt;3. &lt;b&gt;SQL Server 2008 CTP 6 &lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Install only Database Server, Books Online and Client Tools&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Execute sp_filestream_configure @enable_level = 2 after server has installed&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Create C:\FSData directory locally for storing filestream data for the Road Trip database&lt;br&gt;4. &lt;b&gt;Entity Framework Beta 3&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Also install Visual Studio hotfix for Entity Framework Beta 3&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Also install Entity Framework Tools for Visual Studio&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Have fun with the code and slides!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-742493018238527479?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/742493018238527479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/03/2008-summer-road-trip-slides-and-code.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/742493018238527479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/742493018238527479'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/03/2008-summer-road-trip-slides-and-code.html' title='2008 Summer Road Trip - Slides and Code!'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-1798917631242816638</id><published>2008-02-28T17:20:00.002+13:00</published><updated>2008-02-28T21:20:34.340+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>First Silverlight Facebook App - My City</title><content type='html'>&lt;p&gt;I have just added this &lt;a href="http://www.facebook.com/add.php?api_key=f69878827780f362f74846e4f9a193f2"&gt;First Silverlight Facebook application - My City&lt;/a&gt;. Unfortunately you can add only one citizen a day. So, yep, here is my city with one factory worker! &lt;/p&gt;&lt;p&gt;&lt;a href="http://lh4.google.com/jacqui.chow/R8Y2hXDQreI/AAAAAAAAARg/4phgO6TbCrs/image%5B2%5D"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="244" alt="image" src="http://lh3.google.com/jacqui.chow/R8Y2iHDQrfI/AAAAAAAAARs/elXWvwpw-BI/image_thumb" width="184" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-1798917631242816638?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/1798917631242816638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/first-silverlight-facebook-app-my-city.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1798917631242816638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1798917631242816638'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/first-silverlight-facebook-app-my-city.html' title='First Silverlight Facebook App - My City'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-4560457781231118583</id><published>2008-02-28T16:21:00.004+13:00</published><updated>2008-02-29T10:10:44.955+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>.NET User Group 5 - Introduction to the ASP.NET MVC (Model-View Controller) Framework</title><content type='html'>&lt;p&gt;Presented by &lt;strong&gt;John-Daniel Trask&lt;/strong&gt; from &lt;a href="http://www.mindscape.co.nz/"&gt;Mindscape&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Date: &lt;strong&gt;19/03/2008&lt;/strong&gt;&lt;br /&gt;Gather at 5:45pm, starting at 6:00pm&lt;br /&gt;Catering: Pizza &amp;amp; Drinks (we will have non-pork but non-vege pizzas this time!)&lt;br /&gt;Venue: Olympic Software, 10 Cawley Street, Ellerslie, Auckland&lt;br /&gt;Register here: &lt;a href="http://www.ellerslieusergroup.net.nz/"&gt;Ellerslie DNUG&lt;/a&gt; or &lt;a href="http://dot.net.nz/Default.aspx?tabid=1&amp;amp;mid=388&amp;amp;ctl=Detail&amp;amp;xmid=3512&amp;amp;xmfid=2"&gt;Dot Net NZ&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;John-Daniel will be introducing the ASP.NET MVC framework from Microsoft which allows developers to create ASP.NET solutions without using standard web forms that they're used to. &lt;p&gt;This new framework empowers developers to more easily create robust solutions based on solid design patterns. &lt;p&gt;This talk will start by introducing the MVC pattern and then dive into the specifics of the framework so even if are new to using the MVC design pattern you will be able to understand what is being discussed. Finally, he will cover unit testing and mocking to validate your solutions. &lt;p&gt;See &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx"&gt;Scott Gutherie's blog for ASP .NET MVC Framework&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-4560457781231118583?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/4560457781231118583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/net-user-group-5-introduction-to-aspnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4560457781231118583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4560457781231118583'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/net-user-group-5-introduction-to-aspnet.html' title='.NET User Group 5 - Introduction to the ASP.NET MVC (Model-View Controller) Framework'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-299452371911936588</id><published>2008-02-22T12:53:00.001+13:00</published><updated>2008-02-22T12:53:37.789+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>Introduction to .NET Framework Programming PowerPoint Slides</title><content type='html'>&lt;p&gt;Rodney has put up his power point slides, go &lt;a href="http://blogs.spectradata.co.nz/archive/2008/02/22/introduction-to-net-programming-&amp;ndash;-powerpoint-slides.aspx"&gt;here&lt;/a&gt; to downalod it. :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-299452371911936588?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/299452371911936588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/introduction-to-net-framework.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/299452371911936588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/299452371911936588'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/introduction-to-net-framework.html' title='Introduction to .NET Framework Programming PowerPoint Slides'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-5378829097089377358</id><published>2008-02-21T10:02:00.001+13:00</published><updated>2008-02-21T10:03:30.061+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>Post-.NET User Group 4 - Introduction of .NET Framework Programming</title><content type='html'>&amp;nbsp; &lt;p&gt;&lt;a href="http://lh4.google.com/jacqui.chow/R7yVY3DQrGI/AAAAAAAAAN8/zs0OoCUVTEE/DSC00677%5B3%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="DSC00677" src="http://lh4.google.com/jacqui.chow/R7yVZ3DQrHI/AAAAAAAAAOE/OawR2Ks7FnA/DSC00677_thumb%5B1%5D" width="244" align="left" border="0"&gt;&lt;/a&gt;This is Rodney Lake, our speaker last night. We have 56 people with different level of expertise here last night and Rodney sure has done a very good job. I believe everyone (including myself) has got something out from the presentation. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.google.com/jacqui.chow/R7yVanDQrII/AAAAAAAAAOM/SaddajSH394/DSC00650%5B3%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="DSC00650" src="http://lh6.google.com/jacqui.chow/R7yVbXDQrJI/AAAAAAAAAOU/3oheU68vGlw/DSC00650_thumb%5B1%5D" width="244" align="right" border="0"&gt;&lt;/a&gt; The presentation was really good. I think it has given people a good introduction about .NET and what .NET Framework can do without overwhelming them with too much technical information. Quite a number of people come talk to me and ask some questions after the presentation, showing that people are inspired by all the information presented by Rodney! It's good to see people are happy about the meeting.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.google.com/jacqui.chow/R7yVcnDQrKI/AAAAAAAAAOc/6fCLnAI94tU/DSC00674%5B4%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="DSC00674" src="http://lh6.google.com/jacqui.chow/R7yVdXDQrLI/AAAAAAAAAOk/J8U72kOF8NE/DSC00674_thumb%5B2%5D" width="244" align="left" border="0"&gt;&lt;/a&gt; We have ordered 28 pizzas. Maybe not all the girls eat like me (who have ate 4 pieces, i.e. half of a pizza), we do have some pizzas left. Things I've learnt from this are: 1. We need chicken and beef pizzas, not just vegetarian! 2. We should count half for guys and a quarter for girls. 3. People are more into fizzy drinks and juice than beer (well myself don't drink beer too). Anyway, see me carrying these empty pizza boxes, that's still quite a lot!&lt;/p&gt; &lt;p&gt;&lt;br&gt;P.S. I told my Java friends last night that once I have started developing in .NET framework, I think I can never go back to Java again. Of course Java people can disagree with me since I do not have industrial experience with Java (but 4 years University experience, developing Java everyday...).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-5378829097089377358?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/5378829097089377358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/post-net-user-group-4-introduction-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/5378829097089377358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/5378829097089377358'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/post-net-user-group-4-introduction-of.html' title='Post-.NET User Group 4 - Introduction of .NET Framework Programming'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-8565804228057347035</id><published>2008-02-19T19:53:00.006+13:00</published><updated>2008-06-14T15:56:32.068+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virus/Trojan'/><title type='text'>Manually remove Trojan algssl.exe</title><content type='html'>Open your Task Manager, if you see a "Form 1" application running all the time, and it is algssl.exe process. Yes, it is a Trojan. Apparently it is a Chinese community thingy. I am not sure how did I get it, but apparently Norton and other anti-virus thing cannot remove it completely. So you have to do it manually.&lt;br /&gt;&lt;br /&gt;Most of the online explanation is in Chinese, so I am writing an English one, for people who don't know Chinese but got this Chinese Trojan on their computer.&lt;br /&gt;&lt;br /&gt;Step 1:&lt;br /&gt;Kill the&lt;strong&gt;&lt;span style="font-family:courier new;"&gt; &lt;span style="color:#666666;"&gt;algssl.exe&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt; process&lt;br /&gt;&lt;br /&gt;Step2:&lt;br /&gt;Go to &lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;C:\Windows\System32\&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Delete &lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;algssl.exe&lt;/span&gt;&lt;/strong&gt;, &lt;span style="font-family:courier new;color:#666666;"&gt;&lt;strong&gt;msime80.exe&lt;/strong&gt;&lt;/span&gt;, and &lt;span style="font-family:courier new;color:#666666;"&gt;&lt;strong&gt;msfir80.exe&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Step 3:&lt;br /&gt;Edit Registry (run regedit)&lt;br /&gt;Go to:&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;HKEY_LOCAL_MACHINE\&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;SOFTWARE\&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;Microsoft\&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;Windows\&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;CurrentVersion\&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;Explorer\&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;Advanced\&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;Folder\&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;Hidden\&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;SHOWALL&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Delete &lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;CheckedValue&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Recreate a &lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;DWORD&lt;/span&gt;&lt;/strong&gt; &lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;CheckedValue&lt;/span&gt;&lt;/strong&gt; with &lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;Value = 1&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Step 4:&lt;br /&gt;If you are using XP, you probably can turn on &lt;strong&gt;"show hidden files"&lt;/strong&gt; and search for &lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;autorun.inf&lt;/span&gt;&lt;/strong&gt;,&lt;strong&gt; &lt;span style="font-family:courier new;color:#666666;"&gt;tel.xls.exe&lt;/span&gt;&lt;/strong&gt; (or &lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;sal.xls.exe&lt;/span&gt;&lt;/strong&gt;). All located at the top level of the hard drive (i.e. C:\, D:\, E:\, F:\, G:\...so on) should be removed. Note that your external/pluggable hard drives maybe affected as well, so plug in and do the search and delete for them.&lt;br /&gt;&lt;br /&gt;If you are using Vista, unfortunately "show hidden files" is not doing the trick. What I did was using command prompt. You can list hidden files with&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;C:\&gt;dir /AH&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;and delete them with&lt;br /&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;&lt;strong&gt;C:\&gt;del /AH autorun.inf&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;&lt;strong&gt;C:\&gt;del /AH sal.xls.exe&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;*If any of your hard drive was not cleared with these files, when you double click the drive to explore it, the same Trojan would be installed again. So when you switch between drivers, do not double click to explore. You can type E: for example in your explorer bar.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Step 5:&lt;br /&gt;Go back to regedit, go to:&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;HKEY_LOCAL_MACHINE\&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;SOFTWARE\&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;Microsoft\&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;Windows\&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;CurrentVersion\&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;Run&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;and&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;&lt;strong&gt;HKEY_CURRENT_USER\&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;&lt;strong&gt;Software\&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;&lt;strong&gt;Microsoft\&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;&lt;strong&gt;Windows\&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;&lt;strong&gt;CurrentVersion\&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;&lt;strong&gt;Run&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to remove anything with &lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;msime80.exe&lt;/span&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;msfir80.exe&lt;/span&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Step 6:&lt;br /&gt;I don't have to do this step but apparently some people do. Run &lt;span style="font-family:courier new;color:#666666;"&gt;&lt;strong&gt;msconfig&lt;/strong&gt;&lt;/span&gt;, go to&lt;strong&gt; &lt;span style="font-family:courier new;color:#666666;"&gt;Start Up&lt;/span&gt;&lt;/strong&gt; and remove anything with &lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;msime80.exe&lt;/span&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;span style="font-family:courier new;color:#666666;"&gt;msfir80.exe&lt;/span&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Restart your machine, everything should be OK now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-8565804228057347035?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/8565804228057347035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/manually-remove-trojan-algsslexe.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/8565804228057347035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/8565804228057347035'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/manually-remove-trojan-algsslexe.html' title='Manually remove Trojan algssl.exe'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-2378992307283605169</id><published>2008-02-19T14:18:00.001+13:00</published><updated>2008-02-19T14:18:13.699+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Alter Column to become Case Sensitive</title><content type='html'>&lt;p&gt;SQL Server 2000 (or above) allows individual columns become case sensitive by identifying collation. For example:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;ALTER&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; TblName &lt;br /&gt;&lt;span class="kwrd"&gt;ALTER&lt;/span&gt; &lt;span class="kwrd"&gt;COLUMN&lt;/span&gt; ColName &lt;span class="kwrd"&gt;VARCHAR&lt;/span&gt;(100) &lt;span class="kwrd"&gt;COLLATE&lt;/span&gt; Latin1_General_CS_AS NULL&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Where _CS_ indicates it is a Case Sensitive column.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-2378992307283605169?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/2378992307283605169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/alter-column-to-become-case-sensitive.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2378992307283605169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2378992307283605169'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/alter-column-to-become-case-sensitive.html' title='Alter Column to become Case Sensitive'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-4577684083814530320</id><published>2008-02-11T14:51:00.000+13:00</published><updated>2008-02-11T14:57:56.461+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Olympic Software'/><title type='text'>New Olympic Software Website</title><content type='html'>&lt;a href="http://www.olympic.co.nz/"&gt;http://www.olympic.co.nz/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We have redesigned the website. It's simple and clean. I helped Warner in the flash stuff! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-4577684083814530320?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/4577684083814530320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/new-olympic-software-website.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4577684083814530320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4577684083814530320'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/new-olympic-software-website.html' title='New Olympic Software Website'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-8599180764116548793</id><published>2008-02-05T09:44:00.000+13:00</published><updated>2008-02-05T10:02:42.667+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blah'/><title type='text'>Blah 4 - Girls</title><content type='html'>Right, it's good to see familiar and unfamiliar faces in the summer road trip event. Among all these faces, one obvious observation I made was the number of girls comparing to the number of guys is still low. Alex and I had been discussing why most of the girls go into industries like accounting and finance. Back in University, 25% of our software engineering class were girls. However it's much less than this percentage in yesterday event.&lt;br /&gt;&lt;br /&gt;Last week I had been chatting with &lt;a href="http://nzgirlgeek.blogspot.com/"&gt;Amanda&lt;/a&gt; (who organises the &lt;a href="http://www.girlgeekdinners.co.nz/"&gt;Girl Geek Dinners in New Zealand&lt;/a&gt; over emails. I didn't go to these dinners before because there's no one (girl) from my company would like to go. Amanda told me that actually a lot of girls didn't come with friends. Umm... although i don't want to be named "geek", but I may consider going to the next one, just to see how many girls in the community, haha. :D&lt;br /&gt;&lt;br /&gt;&lt;a&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-8599180764116548793?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/8599180764116548793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/blah-4-girls.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/8599180764116548793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/8599180764116548793'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/blah-4-girls.html' title='Blah 4 - Girls'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-6265274496521218618</id><published>2008-02-05T09:13:00.000+13:00</published><updated>2008-02-05T09:44:25.285+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Community'/><title type='text'>2008 Summer Road Trip - Auckland - Done (Yay yay!)</title><content type='html'>The weather wasn't so great yesterday, but the event made the day special. Yes, it's the first day of the &lt;a href="http://blogs.msdn.com/darrylburling/archive/tags/2008SummerRoadTrip/default.aspx"&gt;2008 Summer Road Trip&lt;/a&gt; and they were here in Auckland. It's a good experience for me as this is the first time (after at least 10 years) for me to MC in an event with about 200 people. I was quite nervous and actually I had left out something in the Intro and Outro but I think it wasn't too bad.&lt;br /&gt;&lt;br /&gt;We had a very little unexpected problem about the venue (see &lt;a href="http://blogs.msdn.com/darrylburling/archive/2008/02/04/auckland-done-coming-your-way-soon.aspx"&gt;Darryl's blog&lt;/a&gt;) but we sort ourselves out. We started the show at 1:30pm. &lt;a href="http://www.syringe.net.nz/"&gt;Chris&lt;/a&gt;, &lt;a href="http://www.turtle.net.nz/"&gt;Jeremy&lt;/a&gt; and &lt;a href="http://blog.bittercoder.com/"&gt;Alex&lt;/a&gt; had given us very informative presentations. They have a very interesting showcase and everyone seems to be impressed. We have pretty good feedback (as far as I can see from the evaluation forms), except, ah, apparently everyone wants a toilet break like me.&lt;br /&gt;&lt;br /&gt;It's good to see familiar and unfamiliar faces in the event. I really hope to see all these faces again in our &lt;a href="http://www.ellerslieusergroup.net.nz/"&gt;Ellerslie User Group&lt;/a&gt; events and have a chance to talk to each. Yesterday was a bit rush and I didn't even have a chance to say hi and bye to my own colleagues (from &lt;a href="http://www.olympic.co.nz/"&gt;Olympic Software&lt;/a&gt; and friends. So, look forward to meet and talk to everyone in the near future! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-6265274496521218618?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/6265274496521218618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/2008-summer-road-trip-auckland-done-yay.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6265274496521218618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6265274496521218618'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/02/2008-summer-road-trip-auckland-done-yay.html' title='2008 Summer Road Trip - Auckland - Done (Yay yay!)'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-126385635939213324</id><published>2008-01-25T09:29:00.000+13:00</published><updated>2008-02-08T11:34:29.932+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>.NET User Group 4 - Introduction to .NET Programming</title><content type='html'>Presented by Rodney Lake (&lt;a href="http://www.spectradata.co.nz/"&gt;Spectra Data Solutions&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Date: 20/02/2008&lt;br /&gt;Gather at 5:45, starting at 6:00&lt;br /&gt;Catering: Pizza &amp;amp; Drinks&lt;br /&gt;Venue: Olympic Software, 10 Cawley Street, Ellerslie, Auckland&lt;br /&gt;Register here: &lt;a href="http://www.ellerslieusergroup.net.nz/"&gt;Ellerslie DNUG&lt;/a&gt; or &lt;a href="http://www.dot.net.nz/Default.aspx?tabid=112&amp;amp;mid=707&amp;amp;ctl=Detail&amp;amp;xmid=3017&amp;amp;xmfid=2"&gt;Dot Net NZ&lt;/a&gt;(we really want to have an idea of the number)&lt;br /&gt;&lt;br /&gt;Are you curious about .Net programming? This presentation is a back-to-basics introduction to programming in the .Net Framework.&lt;br /&gt;&lt;br /&gt;Topics will include:&lt;br /&gt;• An brief introduction to Visual Studio&lt;br /&gt;• The difference between VB.Net and C#&lt;br /&gt;• The difference between ASP.Net and Windows Forms&lt;br /&gt;• Introduction to the Base Class Library&lt;br /&gt;• Introduction to the Common Language Runtime&lt;br /&gt;• Emerging and future technologies&lt;br /&gt;• Your questions, no matter how dumb… :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-126385635939213324?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/126385635939213324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/01/net-user-group-4-introduction-to-net.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/126385635939213324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/126385635939213324'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/01/net-user-group-4-introduction-to-net.html' title='.NET User Group 4 - Introduction to .NET Programming'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-3881809117920753711</id><published>2008-01-08T09:01:00.000+13:00</published><updated>2008-01-08T09:05:33.377+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Starting with Silverlight 1.1 Step by Step</title><content type='html'>A sales guy forwarded this to me, haha. Good introduction to everything.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/silverlight/SLFun.aspx"&gt;Silverlight 1.1 Fun and Games&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-3881809117920753711?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/3881809117920753711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2008/01/starting-with-silverlight-11-step-by.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3881809117920753711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3881809117920753711'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2008/01/starting-with-silverlight-11-step-by.html' title='Starting with Silverlight 1.1 Step by Step'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-1949873154119987585</id><published>2007-12-21T14:02:00.004+13:00</published><updated>2009-11-05T14:18:57.948+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET 2.0'/><title type='text'>.NET AJAX .axd give error regarding utcDate</title><content type='html'>&lt;p&gt;Both WebResource.axd and ScriptResource.axd give an error at System.Web.HttpCachePolicy.UtcSetLastModified(DateTime utcDate) method, as shown below: &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span class="Apple-style-span"  style="color:#990000;"&gt;[ArgumentOutOfRangeException: Specified argument was out of the range of valid values.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#990000;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span class="Apple-style-span"  style="color:#990000;"&gt;Parameter name: utcDate]&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#990000;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span class="Apple-style-span"  style="color:#990000;"&gt;System.Web.HttpCachePolicy.UtcSetLastModified(DateTime utcDate) +3258643&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span class="Apple-style-span"  style="color:#990000;"&gt;System.Web.HttpCachePolicy.SetLastModified(DateTime date) +47&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span class="Apple-style-span"  style="color:#990000;"&gt;System.Web.Handlers.ScriptResourceHandler.PrepareResponseCache&lt;br /&gt;&lt;br /&gt;(HttpResponse response, Assembly assembly) +194&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span class="Apple-style-span"  style="color:#990000;"&gt;System.Web.Handlers.ScriptResourceHandler.ProcessRequest&lt;br /&gt;(HttpContext context) +1154&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span class="Apple-style-span"  style="color:#990000;"&gt;System.Web.Handlers.ScriptResourceHandler.System.Web.IHttpHandler.&lt;br/&gt;ProcessRequest(HttpContext context) +4&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span class="Apple-style-span"  style="color:#990000;"&gt;System.Web.CallHandlerExecutionStep.System.Web.HttpApplication&lt;br/&gt;.IExecutionStep.Execute() +154&lt;br /&gt;System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp;amp;amp; completedSynchronously) +64&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;First, look for the simple. If it's your machine's date time is in the past (or the future), then it is easy to fix. Just change your system clock. &lt;/p&gt; &lt;p&gt;In our case, it is not that straight forward. We have moved the time forward for a while, and ASP .NET 2.0 SP1 was installed while the time is in the future. So basically the assemblies and GAC modified date time is in the future. AJAX does not like it. I guess it is a bug. &lt;/p&gt; &lt;p&gt;We wanted to uninstall and reinstall SP1, but windows does not allow us to remove it. So we click "change" instead of "remove" in Add/Remove programs. Not sure what did windows do, but magically it works. It probably update all the installed dlls, so the modified date times are corrected.&lt;/p&gt; &lt;p&gt;Otherwise, we may have to "touch" all the files... :(&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-1949873154119987585?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/1949873154119987585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/12/net-ajax-axd-give-error-regarding.html#comment-form' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1949873154119987585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1949873154119987585'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/12/net-ajax-axd-give-error-regarding.html' title='.NET AJAX .axd give error regarding utcDate'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-8816156711180288824</id><published>2007-12-19T15:17:00.000+13:00</published><updated>2008-02-15T14:34:20.532+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>Ellerslie .NET User Group Website</title><content type='html'>&lt;a href="http://www.ellerslieusergroup.net.nz/"&gt;http://www.ellerslieusergroup.net.nz/&lt;/a&gt; &lt;br /&gt;Here is our Silverlight 1.0 DNUG website!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-8816156711180288824?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/8816156711180288824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/12/ellerslie-net-user-group-website.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/8816156711180288824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/8816156711180288824'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/12/ellerslie-net-user-group-website.html' title='Ellerslie .NET User Group Website'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-6526472793274803602</id><published>2007-12-18T09:47:00.000+13:00</published><updated>2007-12-18T09:58:31.791+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Deploying Silverlight Application - Why Blank?!</title><content type='html'>Yesterday we have deployed a Silverlight 1.0 application onto a Window Server 2003 machine. The deployment seems very easy (well you only need to create an application in IIS), however when we try to load the application, the screen was blank.&lt;br /&gt;&lt;br /&gt;We need to add new MIME type for the application to recognize XAML:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Properties &gt; HTTP Headers Tab&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_sF2QE2s97GA/R2biHKnvP4I/AAAAAAAAAKE/o5MHi-MREIs/s1600-h/mime1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_sF2QE2s97GA/R2biHKnvP4I/AAAAAAAAAKE/o5MHi-MREIs/s320/mime1.jpg" alt="" id="BLOGGER_PHOTO_ID_5145048237055360898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Clicks&lt;span style="font-weight: bold;"&gt; "MIME Types..."&lt;/span&gt;, and click &lt;span style="font-weight: bold;"&gt;"New"&lt;/span&gt;&lt;br /&gt;Add extension &lt;span style="font-weight: bold;"&gt;".xaml"&lt;/span&gt; with type&lt;span style="font-weight: bold;"&gt; "application/xaml+xml"&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_sF2QE2s97GA/R2biiqnvP5I/AAAAAAAAAKM/zVKg6fhdDcs/s1600-h/mime2.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_sF2QE2s97GA/R2biiqnvP5I/AAAAAAAAAKM/zVKg6fhdDcs/s320/mime2.jpg" alt="" id="BLOGGER_PHOTO_ID_5145048709501763474" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-6526472793274803602?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/6526472793274803602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/12/deploying-silverlight-application-why.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6526472793274803602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6526472793274803602'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/12/deploying-silverlight-application-why.html' title='Deploying Silverlight Application - Why Blank?!'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_sF2QE2s97GA/R2biHKnvP4I/AAAAAAAAAKE/o5MHi-MREIs/s72-c/mime1.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-2810307382003664958</id><published>2007-12-11T18:51:00.000+13:00</published><updated>2007-12-18T21:34:33.013+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Community'/><title type='text'>2008 Summer Road Trip - Auckland</title><content type='html'>Date and time:&lt;br /&gt;Monday, 4 February 2008 at 1:00 p.m.&lt;br /&gt;&lt;br /&gt;Hosted by:&lt;br /&gt;Jacqui Chow (ya apparently that's me!)&lt;br /&gt;&lt;br /&gt;Location:&lt;br /&gt;Auckland Institute of Technology, Ground Floor, Wright Stevenson House 585 Great South Road, Penrose, Auckland&lt;br /&gt;&lt;br /&gt;Summer is here! And with it is coming new technology from Microsoft that will affect how we design and build infrastructure and applications.&lt;br /&gt;&lt;br /&gt;Come and join Chris Auld and Jeremy Boyd along with local, Alex Henderson, as they set up a solution entirely on Windows Server 2008, SQL Server 2008 and host an application built in Visual Studio 2008 and .Net 3.5 over a two hour period.&lt;br /&gt;&lt;br /&gt;The application show cases all the latest features of these products including Virtualization, IIS, Spatial data, web and HTTP programing, and much more to demonstrate how these products will affect technology professionals (both infrastructure and developers) in the next couple of years.&lt;br /&gt;&lt;br /&gt;There will be some very cool spot prizes and give aways on the day, and &lt;strong&gt;by registering and turning up on the day&lt;/strong&gt; you will go into the draw to win one of three Windows Home Servers (to be drawn at the end of the road trip on Feb 21).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;To register for the road trip, &lt;/strong&gt;&lt;a href="http://www.dot.net.nz/Default.aspx?tabid=113" target="_blank"&gt;&lt;strong&gt;click here&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;, enter your details (plus any friends you want to invite) and click register.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Doors open at 1pm, presentation starts at 1:30pm and the presentation will be done by 3:30pm.&lt;br /&gt;&lt;br /&gt;Come along and meet your peers and learn about the latest technology and maybe even win a (very cool) prize - for free!&lt;br /&gt;&lt;br /&gt;Dont forget to register at &lt;a href="http://www.dot.net.nz/Default.aspx?tabid=113"&gt;http://www.dot.net.nz/Default.aspx?tabid=113&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;See you there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-2810307382003664958?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/2810307382003664958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/12/microsoft-products-2008-summer-road.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2810307382003664958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2810307382003664958'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/12/microsoft-products-2008-summer-road.html' title='2008 Summer Road Trip - Auckland'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-1628098454459112519</id><published>2007-11-29T16:22:00.001+13:00</published><updated>2007-11-29T16:26:09.481+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET 2.0'/><title type='text'>.NET AJAX fail in FireFox</title><content type='html'>&lt;p&gt;In short, if the following line exists in your web.config, REMOVE IT!!!&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xhtmlConformance&lt;/span&gt; &lt;span class="attr"&gt;mode&lt;/span&gt;&lt;span class="kwrd"&gt;="Legacy"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;It is in confiugration\system.web.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;By default when you convert a VS2003 web project to VS3005, the legacy switch is added to your web.config automatically. I have found some background information about this magical line (&lt;a href="http://weblogs.asp.net/scottgu/archive/2006/12/10/gotcha-don-t-use-xhtmlconformance-mode-legacy-with-asp-net-ajax.aspx"&gt;click here&lt;/a&gt;). &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-1628098454459112519?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/1628098454459112519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/11/net-ajax-fail-in-firefox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1628098454459112519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1628098454459112519'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/11/net-ajax-fail-in-firefox.html' title='.NET AJAX fail in FireFox'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-2025109590230217331</id><published>2007-11-27T17:26:00.001+13:00</published><updated>2007-11-27T17:26:43.812+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Javascript Hashtable</title><content type='html'>&lt;p&gt;I can't remember where did I find this so I cannot put the reference here.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; Hashtable(){&lt;br /&gt;    &lt;span class="kwrd"&gt;this&lt;/span&gt;.clear = hashtable_clear;&lt;br /&gt;    &lt;span class="kwrd"&gt;this&lt;/span&gt;.containsKey = hashtable_containsKey;&lt;br /&gt;    &lt;span class="kwrd"&gt;this&lt;/span&gt;.containsValue = hashtable_containsValue;&lt;br /&gt;    &lt;span class="kwrd"&gt;this&lt;/span&gt;.get = hashtable_get;&lt;br /&gt;    &lt;span class="kwrd"&gt;this&lt;/span&gt;.isEmpty = hashtable_isEmpty;&lt;br /&gt;    &lt;span class="kwrd"&gt;this&lt;/span&gt;.keys = hashtable_keys;&lt;br /&gt;    &lt;span class="kwrd"&gt;this&lt;/span&gt;.put = hashtable_put;&lt;br /&gt;    &lt;span class="kwrd"&gt;this&lt;/span&gt;.remove = hashtable_remove;&lt;br /&gt;    &lt;span class="kwrd"&gt;this&lt;/span&gt;.size = hashtable_size;&lt;br /&gt;    &lt;span class="kwrd"&gt;this&lt;/span&gt;.toString = hashtable_toString;&lt;br /&gt;    &lt;span class="kwrd"&gt;this&lt;/span&gt;.values = hashtable_values;&lt;br /&gt;    &lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable = &lt;span class="kwrd"&gt;new&lt;/span&gt; Array();&lt;br /&gt;}                &lt;br /&gt;&lt;span class="rem"&gt;/*=======Private methods for internal use only========*/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; hashtable_clear(){&lt;br /&gt;    &lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable = &lt;span class="kwrd"&gt;new&lt;/span&gt; Array();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; hashtable_containsKey(key){&lt;br /&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; exists = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;    &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;var&lt;/span&gt; i &lt;span class="kwrd"&gt;in&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable) {&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (i == key &amp;amp;&amp;amp; &lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable[i] != &lt;span class="kwrd"&gt;null&lt;/span&gt;) {&lt;br /&gt;            exists = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; exists;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; hashtable_containsValue(value){&lt;br /&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; contains = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (value != &lt;span class="kwrd"&gt;null&lt;/span&gt;) {&lt;br /&gt;        &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;var&lt;/span&gt; i &lt;span class="kwrd"&gt;in&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable) {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable[i] == value) {&lt;br /&gt;                contains = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; contains;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; hashtable_get(key){&lt;br /&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable[key];&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; hashtable_isEmpty(){&lt;br /&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; (&lt;span class="kwrd"&gt;this&lt;/span&gt;.size == 0) ? &lt;span class="kwrd"&gt;true&lt;/span&gt; : &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; hashtable_keys(){&lt;br /&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; keys = &lt;span class="kwrd"&gt;new&lt;/span&gt; Array();&lt;br /&gt;    &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;var&lt;/span&gt; i &lt;span class="kwrd"&gt;in&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable) {&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable[i] != &lt;span class="kwrd"&gt;null&lt;/span&gt;) &lt;br /&gt;            keys.push(i);&lt;br /&gt;    }&lt;br /&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; keys;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; hashtable_put(key, value){&lt;br /&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (key == &lt;span class="kwrd"&gt;null&lt;/span&gt; || value == &lt;span class="kwrd"&gt;null&lt;/span&gt;) {&lt;br /&gt;        &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="str"&gt;'NullPointerException {'&lt;/span&gt; + key + &lt;span class="str"&gt;'},{'&lt;/span&gt; + value + &lt;span class="str"&gt;'}'&lt;/span&gt;;&lt;br /&gt;    }&lt;span class="kwrd"&gt;else&lt;/span&gt;{&lt;br /&gt;        &lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable[key] = value;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; hashtable_remove(key){&lt;br /&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; rtn = &lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable[key];&lt;br /&gt;    &lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable[key] = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; rtn;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; hashtable_size(){&lt;br /&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; size = 0;&lt;br /&gt;    &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;var&lt;/span&gt; i &lt;span class="kwrd"&gt;in&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable) {&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable[i] != &lt;span class="kwrd"&gt;null&lt;/span&gt;) &lt;br /&gt;            size ++;&lt;br /&gt;    }&lt;br /&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; size;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; hashtable_toString(){&lt;br /&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; result = &lt;span class="str"&gt;''&lt;/span&gt;;&lt;br /&gt;    &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;var&lt;/span&gt; i &lt;span class="kwrd"&gt;in&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable)&lt;br /&gt;    {      &lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable[i] != &lt;span class="kwrd"&gt;null&lt;/span&gt;) &lt;br /&gt;            result += &lt;span class="str"&gt;'{'&lt;/span&gt; + i + &lt;span class="str"&gt;'},{'&lt;/span&gt; + &lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable[i] + &lt;span class="str"&gt;'}\n'&lt;/span&gt;;   &lt;br /&gt;    }&lt;br /&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; result;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; hashtable_values(){&lt;br /&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; values = &lt;span class="kwrd"&gt;new&lt;/span&gt; Array();&lt;br /&gt;    &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;var&lt;/span&gt; i &lt;span class="kwrd"&gt;in&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable) {&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable[i] != &lt;span class="kwrd"&gt;null&lt;/span&gt;) &lt;br /&gt;            values.push(&lt;span class="kwrd"&gt;this&lt;/span&gt;.hashtable[i]);&lt;br /&gt;    }&lt;br /&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; values;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-2025109590230217331?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/2025109590230217331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/11/javascript-hashtable.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2025109590230217331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2025109590230217331'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/11/javascript-hashtable.html' title='Javascript Hashtable'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-4406574532178195785</id><published>2007-11-27T16:23:00.002+13:00</published><updated>2009-11-05T14:31:48.498+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Basic Silverlight 1.0 (javascript) - Load another XAML</title><content type='html'>&lt;p&gt;I keep things simple in this blog, because when I search on web, I would like to find simple explanations and examples, not a sophisticated one. I can write a sophisticated one once I know the basic.&lt;/p&gt; &lt;p&gt;It is easy to load another xaml onto the existing one -&amp;nbsp; if you have not use 1.1 before 1.0. Since I have developed 1.1 first, I actually found it confusing in the first place, anyway.&lt;/p&gt; &lt;p&gt;Here is a simple Page.xaml, named "Page", have a canvas, and a TextBlock:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Canvas&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;="http://schemas.microsoft.com/client/2007"&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;xmlns:x&lt;/span&gt;&lt;span class="kwrd"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="970"&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;="616"&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;Background&lt;/span&gt;&lt;span class="kwrd"&gt;="White"&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;x:Name&lt;/span&gt;&lt;span class="kwrd"&gt;="Page"&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;TextBlock&lt;/span&gt; &lt;span class="attr"&gt;x:Name&lt;/span&gt;&lt;span class="kwrd"&gt;="RandomButton"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="36.258"&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;="14.1"&lt;/span&gt; &lt;span class="attr"&gt;TextWrapping&lt;/span&gt;&lt;span class="kwrd"&gt;="Wrap"&lt;/span&gt;&lt;br/&gt; &lt;span class="attr"&gt;Canvas&lt;/span&gt;.&lt;span class="attr"&gt;Left&lt;/span&gt;&lt;span class="kwrd"&gt;="19.639"&lt;/span&gt; &lt;span class="attr"&gt;Canvas&lt;/span&gt;.&lt;span class="attr"&gt;Top&lt;/span&gt;&lt;span class="kwrd"&gt;="110.283"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Run&lt;/span&gt; &lt;span class="attr"&gt;FontFamily&lt;/span&gt;&lt;span class="kwrd"&gt;="Arial"&lt;/span&gt; &lt;span class="attr"&gt;FontSize&lt;/span&gt;&lt;span class="kwrd"&gt;="12"&lt;/span&gt; &lt;span class="attr"&gt;FontWeight&lt;/span&gt;&lt;span class="kwrd"&gt;="Bold"&lt;/span&gt;&lt;br/&gt; &lt;span class="attr"&gt;Foreground&lt;/span&gt;&lt;span class="kwrd"&gt;="#FFFFFFFF"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="Random"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;TextBlock&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Canvas&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;In the javascript "code behind" I add an event listener to the RandomButton textblock. I want to load Random.xaml onto this page when I click on RandomButton. &lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; (!window.Trash)&lt;br /&gt;    window.Trash = {};&lt;br /&gt;&lt;br /&gt;Trash.Page = &lt;span class="kwrd"&gt;function&lt;/span&gt;() {}&lt;br /&gt;&lt;br /&gt;Trash.Page.prototype =&lt;br /&gt;{&lt;br /&gt;    handleLoad: &lt;span class="kwrd"&gt;function&lt;/span&gt;(control, userContext, rootElement) &lt;br /&gt;    {&lt;br /&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.control = control;&lt;br /&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.root = control.content.findName(&lt;span class="str"&gt;"Page"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.RandomButton = control.content.findName(&lt;span class="str"&gt;"HomeButton"&lt;/span&gt;);&lt;br /&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.RandomButton.addEventListene(&lt;span class="str"&gt;"MouseLeftButtonUp"&lt;/span&gt;,&lt;br/&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.Random_onMouseLeftButtonUp);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;We are going to send request for the xaml, and add it to the page asynchronously after it is loaded.&lt;/p&gt;&lt;pre class="csharpcode"&gt;Trash.Page.prototype.Random_onMouseLeftButtonUp = &lt;span class="kwrd"&gt;function&lt;/span&gt;(sender, e)&lt;br /&gt;{&lt;br /&gt;    Control_Send(sender.getHost(), &lt;span class="str"&gt;"Random.xaml"&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; Control_Send(host, control_path)&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; downloader = host.createObject(&lt;span class="str"&gt;"downloader"&lt;/span&gt;);        &lt;br /&gt;    downloader.addEventListener(&lt;span class="str"&gt;"completed"&lt;/span&gt;, Control_DownloaderCompleted);&lt;br /&gt;    downloader.open(&lt;span class="str"&gt;"GET"&lt;/span&gt;, control_path);&lt;br /&gt;    downloader.send();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; Control_DownloaderCompleted(sender, e)&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; xamlItem = sender.getResponseText(&lt;span class="str"&gt;""&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; host = sender.getHost();&lt;br /&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; page = host.content.findName(&lt;span class="str"&gt;"Page"&lt;/span&gt;);   &lt;br /&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; control = host.content.createFromXaml(xamlItem, &lt;span class="kwrd"&gt;true&lt;/span&gt;);&lt;br /&gt;    &lt;br /&gt;    page.children.Add(control); &lt;br /&gt;}&lt;/pre&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;That's it! &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-4406574532178195785?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/4406574532178195785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/11/basic-silverlight-10-javascript-load.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4406574532178195785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4406574532178195785'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/11/basic-silverlight-10-javascript-load.html' title='Basic Silverlight 1.0 (javascript) - Load another XAML'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-2421826783945365905</id><published>2007-11-22T15:31:00.001+13:00</published><updated>2007-11-22T15:31:39.886+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Part IV project - Graphical display for Trees and Graphs for Bioinformatics Software</title><content type='html'>&lt;p&gt;I found my year IV project final report online. I looked through it, and it's very funny. As usual, my project partner implemented the back end C++ logic - decoding a strange string into a tree, and I do the front end GUI. &lt;/p&gt; &lt;p&gt;The hardest part was drawing tree correctly on the screen. Branch lengths have to visually tell the distant between the nodes. It requires quite a bit of Maths to calculate the drawing branch length, and have to fit them all on the screen. It was also quite interesting implementing tree traversal, i.e. moving up (towards the root) and down (towards the bottom).&amp;nbsp; &lt;/p&gt; &lt;p&gt;Anyway, if anyone interested, here's the link:&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.ece.auckland.ac.nz/~PIVprojects/archive/reports2004/pdfs/ccho096.pdf" href="http://www.ece.auckland.ac.nz/~PIVprojects/archive/reports2004/pdfs/ccho096.pdf"&gt;http://www.ece.auckland.ac.nz/~PIVprojects/archive/reports2004/pdfs/ccho096.pdf&lt;/a&gt;&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-2421826783945365905?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/2421826783945365905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/11/part-iv-project-graphical-display-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2421826783945365905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2421826783945365905'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/11/part-iv-project-graphical-display-for.html' title='Part IV project - Graphical display for Trees and Graphs for Bioinformatics Software'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-5976811378701209535</id><published>2007-11-02T15:43:00.001+13:00</published><updated>2007-11-02T15:43:32.468+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Silverlight (Orcas) - Mouse Events Not Working?!</title><content type='html'>&lt;p&gt;I know this sounds stupid, but I was having a problem with mouse events.&lt;/p&gt; &lt;p&gt;So what happened was I have another control on top of the one that has mouse events. The control on top has a canvas as big as the one underneath, but a transparent background. Well, "transparent" &amp;lt;&amp;gt; "not exists", it's like a piece of glass on top. I forgot. &lt;/p&gt; &lt;p&gt;So if you find your mouse events not working, check if there is a piece of transparent control on top of it!&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-5976811378701209535?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/5976811378701209535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/11/silverlight-orcas-mouse-events-not.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/5976811378701209535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/5976811378701209535'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/11/silverlight-orcas-mouse-events-not.html' title='Silverlight (Orcas) - Mouse Events Not Working?!'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-8694789575935309199</id><published>2007-11-02T09:49:00.000+13:00</published><updated>2007-11-02T09:50:54.785+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>Ellerslie .NET User Group Facebook Group</title><content type='html'>I have created a group on facebook for our DNUG, join if you want to keep an eye on latest events and news!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.facebook.com/group.php?gid=5912067218&amp;amp;ref=mf"&gt;http://www.facebook.com/group.php?gid=5912067218&amp;amp;ref=mf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-8694789575935309199?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/8694789575935309199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/11/ellerslie-net-user-group-facebook-group.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/8694789575935309199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/8694789575935309199'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/11/ellerslie-net-user-group-facebook-group.html' title='Ellerslie .NET User Group Facebook Group'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-7128078712707110515</id><published>2007-10-29T11:29:00.001+13:00</published><updated>2007-10-29T11:29:54.445+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>.NET User Group 3 -  Microsoft PerformancePoint Server 2007</title><content type='html'>&lt;p&gt;Date: 08/11/2007&lt;br&gt;Gather at 5:45, starting at 6:00&lt;br&gt;Catering: Pizza &amp;amp; Drinks&lt;br&gt;Venue: Olympic Software, 10 Cawley Street, Ellerslie, Auckland&lt;/p&gt; &lt;p&gt;Presented by &lt;a href="http://www.ssw.com.au/ssw/Employees/EmployeesProfile.aspx?EmpID=AC"&gt;Adam Cogan (Chief Architect at SSW, MVP)&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Microsoft Office PerformancePoint Server 2007 is an integrated performance management application designed to help improve operational and financial performance across all departments and all levels of your organization.  &lt;p&gt;With Office PerformancePoint Server 2007, you can monitor progress, analyse what is driving variances, and plan your business from budgeting to creating management reports. You can have metrics, key performance indicators (KPIs), and reports delivered to every desktop through intuitive scorecards, dashboards, and the easy-to-use 2007 Microsoft Office system environment. A key component of the Microsoft Business Intelligence (BI) offering, Office PerformancePoint Server 2007 can help you understand how performance can align with personal and departmental.&lt;br&gt;&lt;a href="http://www.ssw.com.au/ssw/Products/Training.aspx#MSPerformancePoint"&gt;http://www.ssw.com.au/ssw/Products/Training.aspx#MSPerformancePoint&lt;/a&gt; &lt;p&gt;&lt;strong&gt;Presented by Adam Cogan&lt;br&gt;&lt;/strong&gt;Position: Chief Architect, &lt;a href="http://www.ssw.com.au/SSW/Redirect/MSRD.htm"&gt;Microsoft Regional Director&lt;/a&gt;&lt;br&gt;Qualifications: B Bus, JP, MCP, Microsoft MVP (Visual Studio Team System)&lt;br&gt;Adam Cogan is the Chief Architect at SSW, a Microsoft Certified Partner specializing in Office and .NET Solutions. At SSW, Adam has been developing custom solutions for businesses across a range of industries such as Government, banking, insurance and manufacturing since 1990 for clients such as Microsoft, Quicken, and the Fisheries Research and Development Corporation.  &lt;p&gt;Adam was one of the lead developers behind Australia's first live .NET site - using a version that was pre Beta 1! One of his latest projects was the Smart Tag implementation for Quicken Australia. Adam was also responsible for developing Reporting Services and Exchange Server samples for Microsoft that turned into a hugely popular &lt;a href="http://www.ssw.com.au/ssw/ExchangeReporter"&gt;Exchange Reporting Tool.&lt;/a&gt; Adam develops in Microsoft technologies; his favorites being SQL Server 2005, Reporting Services, OLAP, Winforms and Webforms (using Visual Studio .NET 2005 with both VB.NET and C#), Access 2007, Outlook 2007/Exchange Server 2007. &lt;p&gt;&lt;a href="http://www.ssw.com.au/ssw/Employees/EmployeesProfile.aspx?EmpID=AC"&gt;http://www.ssw.com.au/ssw/Employees/EmployeesProfile.aspx?EmpID=AC&lt;/a&gt;&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-7128078712707110515?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/7128078712707110515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/net-user-group-3-microsoft.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/7128078712707110515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/7128078712707110515'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/net-user-group-3-microsoft.html' title='.NET User Group 3 -  Microsoft PerformancePoint Server 2007'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-2305537721689720757</id><published>2007-10-25T16:26:00.001+13:00</published><updated>2007-10-25T16:26:48.336+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>Post-.NET User Group 2 - Policy Injection Application Block</title><content type='html'>&lt;p&gt;Thanks for coming! This time we have about 25 people, it's around the number we've expected, without some people I've expected to come. I blame the rainy weather and bad traffic.&lt;/p&gt; &lt;p&gt;&lt;a href="http://mateus.info/"&gt;Mateus Velloso&lt;/a&gt; gave us an overview of the Enterprise Library in particular the Policy Injection Application Block. I had an overview from the code camp a month (or two?) ago but this time I get to know a bit more what PIAB can and cannot do.&lt;/p&gt; &lt;p&gt;It's not a my concern whether it is easy or hard to pick up. Personally I think nothing is really hard to learn. I am more concern what can be done and what's the limitation of these libraries, so in the future when i meet a problem i can identify the best practice for it.&lt;/p&gt; &lt;p&gt;Hmm hmm, but comparatively nice stuff up front seems more attractive to me. Andre is going back to Brazil for 7 weeks during Christmas time, so I will have to get speakers for January and February. I will see &lt;a href="http://blogs.msdn.com/nigel/"&gt;Nigel Parker&lt;/a&gt;'s availability for those two months... he will be showing some pretty things up front, hehe...&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-2305537721689720757?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/2305537721689720757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/post-net-user-group-2-policy-injection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2305537721689720757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2305537721689720757'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/post-net-user-group-2-policy-injection.html' title='Post-.NET User Group 2 - Policy Injection Application Block'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-6029351229664727545</id><published>2007-10-18T16:30:00.001+13:00</published><updated>2007-10-18T16:30:10.429+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blah'/><title type='text'>Blah 3 - I am not a geek</title><content type='html'>&lt;p&gt;Yesterday Darryl said I am a geek (yes, a &lt;a href="http://blogs.msdn.com/darrylburling/"&gt;super geek&lt;/a&gt; said I am a geek, very unconvincing), I am not a geek. &lt;/p&gt; &lt;p&gt;Here are the premises of my argument:&lt;/p&gt; &lt;p&gt;P1 I can read and write Chinese.&lt;/p&gt; &lt;p&gt;P2 I read a lot of fiction books, in Chinese.&lt;/p&gt; &lt;p&gt;P3 My life blog has 14.7 times more posts than this blog.&lt;/p&gt; &lt;p&gt;P4 I am not that excited whenever Alex show me new C# features.&lt;/p&gt; &lt;p&gt;P5 I buy &lt;a href="http://www.marieclaire.com/"&gt;Marie Claire&lt;/a&gt; and &lt;a href="http://cosmo.ninemsn.com.au/"&gt;Cosmopolitan&lt;/a&gt; often, and &lt;a href="http://www.newscientist.com/"&gt;New Scientist&lt;/a&gt;. Never buy any software magazine.&lt;/p&gt; &lt;p&gt;P6 I love &lt;a href="http://en.wikipedia.org/wiki/Final_Fantasy"&gt;Final Fantasy&lt;/a&gt;. Can discuss every single one from FFVII to FFXII.&lt;/p&gt; &lt;p&gt;P7 I do Philosophy. Not master/PhD of Software Engineering, or Microsoft Certificate exams.&lt;/p&gt; &lt;p&gt;P8 I watch a lot of cartoons, and read heaps of anime.&lt;/p&gt; &lt;p&gt;P9 When I have free time, I would play FF, Civilization IV, Sims, etc. Not coding.&lt;/p&gt; &lt;p&gt;P10 I have &lt;a href="http://en.wikipedia.org/wiki/Mr._Potato_Head"&gt;Mr. and Mrs Potato Head&lt;/a&gt; on my desk in the office.&lt;/p&gt; &lt;p&gt;P11 I have &lt;a href="http://en.wikipedia.org/wiki/Haro_%28anime%29"&gt;Haro&lt;/a&gt; from &lt;a href="http://en.wikipedia.org/wiki/Mobile_Suit_Gundam_SEED"&gt;Gundam Seed&lt;/a&gt; (a pink one) on my desk as well.&lt;/p&gt; &lt;p&gt;P12 In the old &lt;a href="http://www.mirc.com/"&gt;mIRC&lt;/a&gt; days, I did not write my own scripts.&lt;/p&gt; &lt;p&gt;P13 Never interested in hacking.&lt;/p&gt; &lt;p&gt;P14 I love All Blacks (yes, especially DC).&lt;/p&gt; &lt;p&gt;So in conclusion, I can't be called a geek. If you think this doesn't logically follow, yeah, it doesn't. However because I am not a geek, so I don't care whether it logically follows or not. :P&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-6029351229664727545?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/6029351229664727545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/blah-3-i-am-not-geek.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6029351229664727545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6029351229664727545'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/blah-3-i-am-not-geek.html' title='Blah 3 - I am not a geek'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-511315974616942819</id><published>2007-10-16T17:47:00.001+13:00</published><updated>2007-10-16T17:50:54.513+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Firefox Add-ons: Firebug 1.0.5</title><content type='html'>&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1843"&gt;Get FireBug&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.getfirebug.com/"&gt;Firebug homepage&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Today Jeff has shown me this tool, I hope I would have known about this earlier, then my development life would be easier.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Firebug integrates with Firefox to put a wealth of web development tools at your fingertips while you browse. You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page.  &lt;p&gt;&lt;a href="http://www.getfirebug.com/using.html"&gt;&lt;/a&gt;&amp;nbsp; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/using.html"&gt;Just the way you like it&lt;/a&gt;&lt;/h5&gt; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/using.html"&gt;&lt;img src="http://www.getfirebug.com/screenHome-using.gif"&gt;&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;Firebug is always just a keystroke away, but it never gets in your way. You can open Firebug in a separate window, or as a bar at the bottom of your browser. Firebug also gives you fine-grained control over which websites you want to enable it for.  &lt;p&gt;&lt;a href="http://www.getfirebug.com/using.html"&gt;Learn more&lt;/a&gt;  &lt;p&gt;&lt;a href="http://www.getfirebug.com/html.html"&gt;&lt;/a&gt;&amp;nbsp; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/html.html"&gt;Inspect and edit HTML&lt;/a&gt;&lt;/h5&gt; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/html.html"&gt;&lt;img src="http://www.getfirebug.com/screenHome-html.gif"&gt;&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;Firebug makes it simple to find HTML elements buried deep in the page. Once you've found what you're looking for, Firebug gives you a wealth of information, and lets you edit the HTML live.  &lt;p&gt;&lt;a href="http://www.getfirebug.com/html.html"&gt;Learn more&lt;/a&gt;  &lt;p&gt;&lt;a href="http://www.getfirebug.com/css.html"&gt;&lt;/a&gt;&amp;nbsp; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/css.html"&gt;Tweak CSS to perfection&lt;/a&gt;&lt;/h5&gt; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/css.html"&gt;&lt;img src="http://www.getfirebug.com/screenHome-css.gif"&gt;&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;Firebug's CSS tabs tell you everything you need to know about the styles in your web pages, and if you don't like what it's telling you, you can make changes and see them take effect instantly.  &lt;p&gt;&lt;a href="http://www.getfirebug.com/css.html"&gt;Learn more&lt;/a&gt;  &lt;p&gt;&lt;a href="http://www.getfirebug.com/layout.html"&gt;&lt;/a&gt;&amp;nbsp; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/layout.html"&gt;Visualize CSS metrics&lt;/a&gt;&lt;/h5&gt; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/layout.html"&gt;&lt;img src="http://www.getfirebug.com/screenHome-layout.gif"&gt;&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;When your CSS boxes aren't lining up correctly it can be difficult to understand why. Let Firebug be your eyes and it will measure and illustrate all the offsets, margins, borders, padding, and sizes for you.  &lt;p&gt;&lt;a href="http://www.getfirebug.com/layout.html"&gt;Learn more&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.getfirebug.com/net.html"&gt;&lt;/a&gt;&amp;nbsp; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/net.html"&gt;Monitor network activity&lt;/a&gt;&lt;/h5&gt; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/net.html"&gt;&lt;img src="http://www.getfirebug.com/screenHome-net.gif"&gt;&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;Your pages are taking a long time to load, but why? Did you go crazy and write too much JavaScript? Did you forget to compress your images? Are your ad partner's servers taking a siesta? Firebug breaks it all down for you file-by-file.  &lt;p&gt;&lt;a href="http://www.getfirebug.com/net.html"&gt;Learn more&lt;/a&gt;  &lt;p&gt;&lt;a href="http://www.getfirebug.com/js.html"&gt;&lt;/a&gt;&amp;nbsp; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/js.html"&gt;Debug and profile JavaScript&lt;/a&gt;&lt;/h5&gt; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/js.html"&gt;&lt;img src="http://www.getfirebug.com/screenHome-js.gif"&gt;&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;Firebug includes a powerful JavaScript debugger that lets you pause execution at any time and have look at the state of the world. If your code is a little sluggish, use the JavaScript profiler to measure performance and find bottlenecks fast.  &lt;p&gt;&lt;a href="http://www.getfirebug.com/js.html"&gt;Learn more&lt;/a&gt;  &lt;p&gt;&lt;a href="http://www.getfirebug.com/errors.html"&gt;&lt;/a&gt;&amp;nbsp; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/errors.html"&gt;Quickly find errors&lt;/a&gt;&lt;/h5&gt; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/errors.html"&gt;&lt;img src="http://www.getfirebug.com/screenHome-errors.gif"&gt;&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;When things go wrong, Firebug lets you know immediately and gives you detailed and useful information about errors in JavaScript, CSS, and XML.  &lt;p&gt;&lt;a href="http://www.getfirebug.com/errors.html"&gt;Learn more&lt;/a&gt;  &lt;p&gt;&lt;a href="http://www.getfirebug.com/dom.html"&gt;&lt;/a&gt;&amp;nbsp; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/dom.html"&gt;Explore the DOM&lt;/a&gt;&lt;/h5&gt; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/dom.html"&gt;&lt;img src="http://www.getfirebug.com/screenHome-DOM.gif"&gt;&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;The Document Object Model is a great big hierarchy of objects and functions just waiting to be tickled by JavaScript. Firebug helps you find DOM objects quickly and then edit them on the fly.  &lt;p&gt;&lt;a href="http://www.getfirebug.com/dom.html"&gt;Learn more&lt;/a&gt;  &lt;p&gt;&lt;a href="http://www.getfirebug.com/cl.html"&gt;&lt;/a&gt;&amp;nbsp; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/cl.html"&gt;Execute JavaScript on the fly&lt;/a&gt;&lt;/h5&gt; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/cl.html"&gt;&lt;img src="http://www.getfirebug.com/screenHome-cl.gif"&gt;&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;The command line is one of the oldest tools in the programming toolbox. Firebug gives you a good ol' fashioned command line for JavaScript complete with very modern amenities.  &lt;p&gt;&lt;a href="http://www.getfirebug.com/cl.html"&gt;Learn more&lt;/a&gt;  &lt;p&gt;&lt;a href="http://www.getfirebug.com/logging.html"&gt;&lt;/a&gt;&amp;nbsp; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/logging.html"&gt;Logging for JavaScript&lt;/a&gt;&lt;/h5&gt; &lt;h5&gt;&lt;a href="http://www.getfirebug.com/logging.html"&gt;&lt;img src="http://www.getfirebug.com/screenHome-logging.gif"&gt;&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;Having a fancy JavaScript debugger is great, but sometimes the fastest way to find bugs is just to dump as much information to the console as you can. Firebug gives you a set of powerful logging functions that help you get answers fast.  &lt;p&gt;&lt;a href="http://www.getfirebug.com/logging.html"&gt;Learn more&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-511315974616942819?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/511315974616942819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/firefox-add-ons-firebug-105.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/511315974616942819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/511315974616942819'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/firefox-add-ons-firebug-105.html' title='Firefox Add-ons: Firebug 1.0.5'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-2312770457801803818</id><published>2007-10-15T20:05:00.000+13:00</published><updated>2007-10-16T09:36:16.846+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>.NET User Group 2 - Policy Injection Application Block</title><content type='html'>Alright, our second .NET User Group meeting is on next &lt;strong&gt;Wednesday, 24th Oct 2007&lt;/strong&gt;!&lt;br /&gt;&lt;br /&gt;This time our topic is &lt;strong&gt;Policy Injection Application Block&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Presented by &lt;a href="http://mateus.info/" target="blank"&gt;Mateus Velloso (Principal Software Architect at Gen-i, MVP)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ready to pimp your objects?&lt;br /&gt;&lt;br /&gt;The Policy Injection Application Block simplifies the separation of business logic from cross cutting concerns (such as logging, validation, exception handling, and authorisation) by letting you define policies and the objects/methods they apply to in a declarative way.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Gather at 5:45, starting at 6:00&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Catering: Pizza &amp;amp; Drinks&lt;br /&gt;Door Charge: Free&lt;br /&gt;Parking: Free, just park in Olympic Software’s car park.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Venue&lt;/strong&gt;&lt;br /&gt;Olympic Software&lt;br /&gt;10 Cawley St&lt;br /&gt;Ellerslie Auckland&lt;br /&gt;&lt;br /&gt;&lt;a href="http://maps.live.com/default.aspx?v=2&amp;amp;ss=yp.Cawley%20st%2C%20Ellerslie&amp;amp;cp=-36.900523~174.8119&amp;amp;style=r&amp;amp;lvl=15&amp;amp;tilt=-90&amp;amp;dir=0&amp;amp;alt=-1000&amp;amp;sp=Point.8vgxqpzk0y56_Olympic%20Software_10%20Cawley%20St%20Ellerslie%20Auckland_www.olympic.co.nz_&amp;amp;encType=1"&gt;Map of venue&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you know anyone who might be interested please tell them about it. Remember it’s an open event so everyone is welcome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-2312770457801803818?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/2312770457801803818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/net-user-group-2-policy-injection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2312770457801803818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2312770457801803818'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/net-user-group-2-policy-injection.html' title='.NET User Group 2 - Policy Injection Application Block'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-1717417844310634807</id><published>2007-10-11T18:56:00.002+13:00</published><updated>2009-11-05T14:33:51.392+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Button trigger UpdatePanel fails in FireFox</title><content type='html'>&lt;p&gt;Firefox drove me crazy! I have spend hours to work out why it does not work, and the reason is: it does not have an image url but have alt text (and my Button is an ImageButton).&lt;/p&gt;&lt;p&gt;To demonstrate this, here is an example:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:ScriptManager&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptManager1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:ScriptManager&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:UpdatePanel&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="UpdatePanel1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ContentTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="Html"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Visible&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        Please submit&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:ImageButton&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="SubmitButton"&lt;/span&gt; &lt;span class="attr"&gt;ImageUrl&lt;/span&gt;&lt;span class="kwrd"&gt;="submit_btn.gif"&lt;/span&gt;&lt;br/&gt; &lt;span class="attr"&gt;onclick&lt;/span&gt;&lt;span class="kwrd"&gt;="SubmitButton_Click"&lt;/span&gt; &lt;span class="attr"&gt;alt&lt;/span&gt;&lt;span class="kwrd"&gt;="Submit"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;br/&gt; &lt;span class="attr"&gt;OnClientClick&lt;/span&gt;&lt;span class="kwrd"&gt;="this.style.display='none';"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:ImageButton&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:ImageButton&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="AmendButton"&lt;/span&gt; &lt;span class="attr"&gt;onclick&lt;/span&gt;&lt;span class="kwrd"&gt;="AmendButton_Click"&lt;/span&gt; &lt;span class="attr"&gt;alt&lt;/span&gt;&lt;span class="kwrd"&gt;="Amend"&lt;/span&gt;&lt;br/&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;OnClientClick&lt;/span&gt;&lt;span class="kwrd"&gt;="this.style.display='none';"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:ImageButton&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ContentTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Triggers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:AsyncPostBackTrigger&lt;/span&gt; &lt;span class="attr"&gt;ControlID&lt;/span&gt;&lt;span class="kwrd"&gt;="AmendButton"&lt;/span&gt; &lt;span class="attr"&gt;EventName&lt;/span&gt;&lt;span class="kwrd"&gt;="Click"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:AsyncPostBackTrigger&lt;/span&gt; &lt;span class="attr"&gt;ControlID&lt;/span&gt;&lt;span class="kwrd"&gt;="SubmitButton"&lt;/span&gt; &lt;span class="attr"&gt;EventName&lt;/span&gt;&lt;span class="kwrd"&gt;="Click"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Triggers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:UpdatePanel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;And the code behind is very simple:&lt;/p&gt;&lt;pre class="csharpcode"&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; SubmitButton_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, ImageClickEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            Html.InnerHtml = &lt;span class="str"&gt;"Please Amend"&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; AmendButton_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, ImageClickEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            Html.InnerHtml = &lt;span class="str"&gt;"Please Submit"&lt;/span&gt;;&lt;br /&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;The page looks like this:&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;a href="http://lh4.google.com/jacqui.chow/Rw268_uzzWI/AAAAAAAAAGc/R0_dRj1EGf0/s%5B2%5D.gif"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="79" alt="s" src="http://lh6.google.com/jacqui.chow/Rw269fuzzXI/AAAAAAAAAGk/ZtvTitJDF7I/s_thumb.gif" width="146" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;If you click the submit button, it becomes:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.google.com/jacqui.chow/Rw26-PuzzYI/AAAAAAAAAGs/YyxvnPFrkhE/a%5B2%5D.gif"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="79" alt="a" src="http://lh3.google.com/jacqui.chow/Rw26-vuzzZI/AAAAAAAAAG0/t1WWnvFCi7E/a_thumb.gif" width="146" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;As expected. However if you click the alt text "Amend", it will refresh the whole page instead of updating just the update panel. Basically I mean it does not work. The only solution is, of coz, give it a valid image!!!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Wasted me several hours! Now I am going home, it's 7:00pm already!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-1717417844310634807?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/1717417844310634807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/button-trigger-updatepanel-fails-in.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1717417844310634807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1717417844310634807'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/button-trigger-updatepanel-fails-in.html' title='Button trigger UpdatePanel fails in FireFox'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-2554975411201333924</id><published>2007-10-09T11:10:00.001+13:00</published><updated>2007-10-11T18:58:32.826+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 2.0'/><title type='text'>First Chance Exception</title><content type='html'>&lt;p&gt;Andre and Jeff came up with these terms this morning and honestly I have no idea what they mean. The Internet always always have an answer. I found an explanation from David Kline's blog under the topic &lt;a href="http://blogs.msdn.com/davidklinems/archive/2005/07/12/438061.aspx"&gt;What is a First Chance Exception?&lt;/a&gt;.&amp;nbsp; The following is quoted from his blog:&lt;/p&gt; &lt;blockquote&gt; &lt;h4&gt;What is a First Chance Exception?&lt;/h4&gt;Have you ever been debugging an application and seen a message, in the output window, about a "First chance" exception?&lt;br&gt;Ever wondered:  &lt;ul&gt; &lt;li&gt;What is a first chance exception?  &lt;li&gt;Does a first chance exception mean there is a problem in my code?&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;b&gt;What is a first chance exception?&lt;br&gt;&lt;/b&gt;When an application is being debugged, the debugger gets notified whenever an exception is encountered&amp;nbsp; At this point, the application is suspended and the debugger decides how to handle the exception. The first pass through this mechanism is called a "first chance" exception. Depending on the debugger's configuration, it will either resume the application and pass the exception on or it will leave the application suspended and enter debug mode. If the application handles the exception, it continues to run normally.&lt;/p&gt; &lt;p&gt;In Visual Studio, you may see a message in the output window that looks like this:&lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;code&gt;A first chance exception of type 'System.ApplicationException' occurred in myapp.exe&lt;/code&gt;&lt;/p&gt;&lt;code&gt;&lt;/code&gt; &lt;p&gt;&lt;br&gt;In Visual Studio 2005 Beta2, you will see this message anytime a first chance exception is encountered in your application's code.&amp;nbsp; If you are using Visual Studio .NET 2003, this message is shown if you have configured the debugger to stop when the specific exception type is thrown.&lt;/p&gt; &lt;p&gt;If the application does not handle the exception, the debugger is re-notified. This is known as a "second chance" exception. The debugger again suspends the application and determines how to handle this exception. Typically, debuggers are configured to stop on second chance (unhandled) exceptions and debug mode is entered, allowing you to debug. &lt;/p&gt; &lt;p&gt;&lt;b&gt;Does a first chance exception mean there is a problem in my code?&lt;br&gt;&lt;/b&gt;First chance exception messages most often do not mean there is a problem in the code. For applications / components which handle exceptions gracefully, first chance exception messages let the developer know that an exceptional situation was encountered and was handled.&lt;/p&gt; &lt;p&gt;For code without exception handling, the debugger will receive a second chance exception notification and will stop with a unhandled exception. &lt;/p&gt;&lt;/blockquote&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-2554975411201333924?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/2554975411201333924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/first-chance-exception.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2554975411201333924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2554975411201333924'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/first-chance-exception.html' title='First Chance Exception'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-2266483287689997571</id><published>2007-10-05T16:43:00.001+13:00</published><updated>2007-10-05T16:43:14.629+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 2.0'/><title type='text'>C# yield return/break</title><content type='html'>&lt;p&gt;&lt;font face="Courier New" color="#808080"&gt;yield&lt;/font&gt; is cool (you may already notice that I basically think everything's cool), the main reason is that it reminds me about &lt;a href="http://www.mozart-oz.org"&gt;Mozart Oz&lt;/a&gt; (which has pure logic form of programming style). There is no relationship between them, but one just made me remind the other. It's interesting to see how human's brain categorize stuff. Anyway.&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" color="#808080"&gt;yield&lt;/font&gt; is used to provide enumeration over objects or to signal the end of iteration. Here is a basic non-generic example from &lt;a href="http://msdn2.microsoft.com/en-us/library/9k7k7cf0(VS.80).aspx"&gt;MSDN&lt;/a&gt;, which basically return a list of numbers from n^1 to n^m:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; IEnumerable Power(&lt;span class="kwrd"&gt;int&lt;/span&gt; n, &lt;span class="kwrd"&gt;int&lt;/span&gt; m)&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;int&lt;/span&gt; counter = 0;&lt;br /&gt;        &lt;span class="kwrd"&gt;int&lt;/span&gt; result = 1;&lt;br /&gt;        &lt;span class="kwrd"&gt;while&lt;/span&gt; (counter++ &amp;lt; m)&lt;br /&gt;        {&lt;br /&gt;            result = result * n;&lt;br /&gt;            &lt;span class="kwrd"&gt;yield&lt;/span&gt; &lt;span class="kwrd"&gt;return&lt;/span&gt; result;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main()&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="rem"&gt;// Display powers of 2 up to the exponent 8:&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i &lt;span class="kwrd"&gt;in&lt;/span&gt; Power(2, 8))&lt;br /&gt;        {&lt;br /&gt;            Console.Write(&lt;span class="str"&gt;"{0} "&lt;/span&gt;, i);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;I have to say this is not interesting at all. &lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;However when we combine the power of yield, generics and predicates, that's where the fun is. I have copied a piece of code from &lt;a href="http://blog.andremeurer.com/2007/09/in-my-previous-post-i-had-sample-of.html"&gt;Andre's blog&lt;/a&gt; (look at the Extended Enumerable created here):&amp;nbsp; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;delegate&lt;/span&gt; R Func&amp;lt;T, R&amp;gt;(T t);&lt;br&gt;&lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;class&lt;/span&gt; SequenceOperators&lt;br&gt;{&lt;br&gt;    &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; IEnumerable&amp;lt;R&amp;gt; Select&amp;lt;T, R&amp;gt;&lt;br&gt;        (IEnumerable&amp;lt;T&amp;gt; sequence, Func&amp;lt;T, R&amp;gt; mapping)&lt;br&gt;    {&lt;br&gt;        &lt;span style="color: rgb(0,0,255)"&gt;foreach&lt;/span&gt; (T t &lt;span style="color: rgb(0,0,255)"&gt;in&lt;/span&gt; sequence)&lt;br&gt;            &lt;span style="color: rgb(0,0,255)"&gt;yield&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; mapping(t);&lt;br&gt;    }&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;    &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; IEnumerable&amp;lt;T&amp;gt; Where&amp;lt;T&amp;gt;&lt;br&gt;        (IEnumerable&amp;lt;T&amp;gt; sequence, &lt;span style="color: rgb(0,128,128)"&gt;Predicate&lt;/span&gt;&amp;lt;T&amp;gt; filter)&lt;br&gt;    {&lt;br&gt;        &lt;span style="color: rgb(0,0,255)"&gt;foreach&lt;/span&gt; (T t &lt;span style="color: rgb(0,0,255)"&gt;in&lt;/span&gt; sequence)&lt;br&gt;            &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (filter(t))&lt;br&gt;                &lt;span style="color: rgb(0,0,255)"&gt;yield&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; t;&lt;br&gt;    }&lt;br&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;So, how exciting! The &lt;font face="Courier New" color="#808080"&gt;Select&lt;/font&gt; method takes an &lt;font face="Courier New" color="#808080"&gt;IEnumerable&amp;lt;T&amp;gt;&lt;/font&gt; and a function which has input param type &lt;font face="Courier New" color="#808080"&gt;T&lt;/font&gt;&amp;nbsp; (you know it's not really "T") and return type &lt;font face="Courier New" color="#808080"&gt;R&lt;/font&gt; (not Civic type R). By passing every &lt;font face="Courier New" color="#808080"&gt;t&lt;/font&gt; in &lt;font face="Courier New" color="#808080"&gt;T&lt;/font&gt; into the function, an enumeration of R objects were returned. The &lt;font face="Courier New" color="#808080"&gt;Where&lt;/font&gt; method takes an &lt;font face="Courier New" color="#808080"&gt;IEnumerable&amp;lt;T&amp;gt;&lt;/font&gt; and a predicate, and return enumeration of &lt;font face="Courier New" color="#808080"&gt;T&lt;/font&gt; objects of &lt;font face="Courier New" color="#808080"&gt;t&lt;/font&gt; in &lt;font face="Courier New" color="#808080"&gt;T&lt;/font&gt; that match the criteria. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;It's so flexible and powerful. :)&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-2266483287689997571?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/2266483287689997571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/c-yield-returnbreak.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2266483287689997571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2266483287689997571'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/c-yield-returnbreak.html' title='C# yield return/break'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-2445719770641536542</id><published>2007-10-04T16:56:00.001+13:00</published><updated>2007-10-04T16:57:25.373+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Expression around the Clock</title><content type='html'>&lt;p&gt;I went to &lt;a href="http://www.microsoft.com/nz/expression/"&gt;Expression around the Clock&lt;/a&gt;&amp;nbsp;this morning with Warner and I am happy that finally I have a chance to meet &lt;a href="http://www.naskhan.com/"&gt;Nas&lt;/a&gt;. The content of &lt;a href="http://www.microsoft.com/design/People/Detail.aspx?key=august"&gt;August de los Reyes&lt;/a&gt;'s talk was a bit unexpected, but I am a philosophy student so of course I love it. Two&amp;nbsp; things really have caught my attention were &lt;a href="http://labs.live.com/Seadragon.aspx"&gt;Seadragon&lt;/a&gt;&amp;nbsp;and &lt;a href="http://labs.live.com/photosynth"&gt;Photosynth&lt;/a&gt;.&amp;nbsp; I have seen Seadragon before, but not Photosynth. It's very cool, so I tried out the Photosynth tech preview after&amp;nbsp;I got back to the office.&lt;/p&gt; &lt;p&gt;Go to the Photosynth site and have a look. :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-2445719770641536542?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/2445719770641536542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/expression-around-clock.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2445719770641536542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2445719770641536542'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/expression-around-clock.html' title='Expression around the Clock'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-4777865863654146923</id><published>2007-10-01T13:03:00.001+13:00</published><updated>2007-10-01T13:10:07.196+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Silverlight project</title><content type='html'>&lt;p&gt;I am so excited because we have finally started our first small silverlight project. Unfortunately (or fortunately?!) I am not involved in any development. I am only overseeing the project (for my own interest sake), not even managing it. That's cool, more people (girls!)&amp;nbsp;get a chance to expose to the technology. Warner's design for the website is excellent. I love it so much, really can't wait to see the final product. &lt;/p&gt;&lt;br&gt; &lt;p&gt;Since I don't get a chance to do the development part but I am too keen, therefore I have created a super simple silverlight example today after I have setup the development environment for those girls. Well, I am not a designer and I can only draw stickman, so the example site only consists of a moving rectangle and a moving ellipse. Don't expect to much from me, haha.&lt;/p&gt;&lt;br&gt; &lt;p&gt;Will show you all once it's done. :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-4777865863654146923?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/4777865863654146923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/silverlight-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4777865863654146923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4777865863654146923'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/10/silverlight-project.html' title='Silverlight project'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-3607857648942278629</id><published>2007-09-26T18:48:00.001+12:00</published><updated>2007-10-01T13:09:11.477+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>First post from Windows Live Writer!</title><content type='html'>&lt;p&gt;&lt;a href="http://blog.andremeurer.com/"&gt;Andre&lt;/a&gt;&amp;nbsp;showed me this cute tool. I love it. I got a &lt;a href="http://gallery.live.com/liveItemDetail.aspx?li=1f57bd9b-a692-4593-9e9e-e2962d9c0eee&amp;amp;bt=9"&gt;"Insert Code"&lt;/a&gt; plugin as well, now I can do this:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:ScriptManager&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptManager1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:ScriptManager&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;and this:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (!&lt;span class="kwrd"&gt;this&lt;/span&gt;.Page.IsPostBack)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.DataBind();&lt;br /&gt;         }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;The only thing I am quite annoyed is the white background. I have changed the style to yellow already but no idea why it's still white. If you still see my code has a white background, that means I haven't sort that out yet. Anyway, time to go home for dinner!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;P.S. HA, it's yellow now. But I have to get the border!!!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-3607857648942278629?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/3607857648942278629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/first-post-from-windows-live-writer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3607857648942278629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3607857648942278629'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/first-post-from-windows-live-writer.html' title='First post from Windows Live Writer!'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-3885626988485859122</id><published>2007-09-21T17:29:00.001+12:00</published><updated>2007-09-21T17:29:43.557+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>First .NET AJAX page</title><content type='html'>This is not my first AJAX page, but it's the first one I do for this project. Before this one I haven't really use .NET AJAX much although I have looked into all features and understand most theories about it. So I know a bit more than nothing, but not too much.&lt;br /&gt;&lt;br /&gt;I've decided to document this purely for myself because I always forget what I have done, what I have encountered and what I have resolved.&lt;br /&gt;&lt;br /&gt;First of all I've made this project into an AJAX enabled application by putting these sections into the web.config file:&lt;br /&gt;&lt;br /&gt;1. In &lt;span style="font-family:courier new;"&gt;configuration\configSections\&lt;br /&gt;&lt;/span&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;sectionGroup&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="system.web.extensions"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;sectionGroup&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="scripting"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 80px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;section&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="scriptResourceHandler"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&lt;br /&gt;"System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt; &lt;span class="attr"&gt;requirePermission&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt; &lt;span class="attr"&gt;allowDefinition&lt;/span&gt;&lt;span class="kwrd"&gt;="MachineToApplication"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 80px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;sectionGroup&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="webServices"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&lt;br /&gt;"System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 120px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;section&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="jsonSerialization"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&lt;br /&gt;"System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt; &lt;span class="attr"&gt;requirePermission&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt; &lt;span class="attr"&gt;allowDefinition&lt;/span&gt;&lt;span class="kwrd"&gt;="Everywhere"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 120px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;section&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="profileService"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&lt;br /&gt;"System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt; &lt;span class="attr"&gt;requirePermission&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt; &lt;span class="attr"&gt;allowDefinition&lt;/span&gt;&lt;span class="kwrd"&gt;="MachineToApplication"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 120px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;section&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="authenticationService"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&lt;br /&gt;"System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt; &lt;span class="attr"&gt;requirePermission&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt; &lt;span class="attr"&gt;allowDefinition&lt;/span&gt;&lt;span class="kwrd"&gt;="MachineToApplication"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 80px"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;sectionGroup&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;sectionGroup&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;sectionGroup&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;2. In &lt;span style="font-family:courier new;"&gt;configuration\system.web\&lt;/span&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;pages&lt;/span&gt; &lt;span class="attr"&gt;validateRequest&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;controls&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 80px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;tagPrefix&lt;/span&gt;&lt;span class="kwrd"&gt;="asp"&lt;/span&gt; &lt;span class="attr"&gt;namespace&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.UI"&lt;/span&gt; &lt;span class="attr"&gt;assembly&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;controls&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;pages&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;compilation&lt;/span&gt; &lt;span class="attr"&gt;debug&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;assemblies&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 80px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;assembly&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;assemblies&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;compilation&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;httpModules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptModule"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;httpModules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;3. In &lt;span style="font-family:courier new;"&gt;configuration\system.web\httpHandlers&lt;/span&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;remove&lt;/span&gt; &lt;span class="attr"&gt;verb&lt;/span&gt;&lt;span class="kwrd"&gt;="*"&lt;/span&gt; &lt;span class="attr"&gt;path&lt;/span&gt;&lt;span class="kwrd"&gt;="*.asmx"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;verb&lt;/span&gt;&lt;span class="kwrd"&gt;="*"&lt;/span&gt; &lt;span class="attr"&gt;path&lt;/span&gt;&lt;span class="kwrd"&gt;="*.asmx"&lt;/span&gt; &lt;span class="attr"&gt;validate&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;verb&lt;/span&gt;&lt;span class="kwrd"&gt;="*"&lt;/span&gt; &lt;span class="attr"&gt;path&lt;/span&gt;&lt;span class="kwrd"&gt;="*_AppService.axd"&lt;/span&gt; &lt;span class="attr"&gt;validate&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;verb&lt;/span&gt;&lt;span class="kwrd"&gt;="GET,HEAD"&lt;/span&gt; &lt;span class="attr"&gt;path&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptResource.axd"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt; &lt;span class="attr"&gt;validate&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;4. In &lt;span style="font-family:courier new;"&gt;configuration\&lt;br /&gt;&lt;/span&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;system.web.extensions&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;scripting&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 80px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;webServices&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem" style="PADDING-LEFT: 120px"&gt;&amp;lt;!-- Uncomment this line to customize maxJsonLength and add a custom converter --&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem" style="PADDING-LEFT: 120px"&gt;&amp;lt;!--&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;&amp;lt;jsonSerialization maxJsonLength="500"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;&amp;lt;converters&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;&amp;lt;add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;&amp;lt;/converters&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;&amp;lt;/jsonSerialization&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;--&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem" style="PADDING-LEFT: 120px"&gt;&amp;lt;!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. --&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem" style="PADDING-LEFT: 120px"&gt;&amp;lt;!--&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;&amp;lt;authenticationService enabled="true" requireSSL = "truefalse"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;--&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="rem" style="PADDING-LEFT: 120px"&gt;&amp;lt;!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;and modified in ASP.NET AJAX applications, you need to add each property name to the readAccessProperties and&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;writeAccessProperties attributes. --&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem" style="PADDING-LEFT: 120px"&gt;&amp;lt;!--&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;&amp;lt;profileService enabled="true"&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;readAccessProperties="propertyname1,propertyname2"&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;writeAccessProperties="propertyname1,propertyname2" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;--&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 80px"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;webServices&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem" style="PADDING-LEFT: 80px"&gt;&amp;lt;!--&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;&amp;lt;scriptResourceHandler enableCompression="true" enableCaching="true" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;--&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;scripting&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;system.web.extensions&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;system.webServer&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;validation&lt;/span&gt; &lt;span class="attr"&gt;validateIntegratedModeConfiguration&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;modules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 80px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptModule"&lt;/span&gt; &lt;span class="attr"&gt;preCondition&lt;/span&gt;&lt;span class="kwrd"&gt;="integratedMode"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;modules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;handlers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 80px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;remove&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="WebServiceHandlerFactory-Integrated"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 80px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptHandlerFactory"&lt;/span&gt; &lt;span class="attr"&gt;verb&lt;/span&gt;&lt;span class="kwrd"&gt;="*"&lt;/span&gt; &lt;span class="attr"&gt;path&lt;/span&gt;&lt;span class="kwrd"&gt;="*.asmx"&lt;/span&gt; &lt;span class="attr"&gt;preCondition&lt;/span&gt;&lt;span class="kwrd"&gt;="integratedMode"&lt;/span&gt;&lt;br /&gt;&lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 80px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptHandlerFactoryAppServices"&lt;/span&gt; &lt;span class="attr"&gt;verb&lt;/span&gt;&lt;span class="kwrd"&gt;="*"&lt;/span&gt; &lt;span class="attr"&gt;path&lt;/span&gt;&lt;span class="kwrd"&gt;="*_AppService.axd"&lt;/span&gt; &lt;span class="attr"&gt;preCondition&lt;/span&gt;&lt;span class="kwrd"&gt;="integratedMode"&lt;/span&gt;&lt;br /&gt;&lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 80px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptResource"&lt;/span&gt; &lt;span class="attr"&gt;preCondition&lt;/span&gt;&lt;span class="kwrd"&gt;="integratedMode"&lt;/span&gt; &lt;span class="attr"&gt;verb&lt;/span&gt;&lt;span class="kwrd"&gt;="GET,HEAD"&lt;/span&gt; &lt;span class="attr"&gt;path&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptResource.axd"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;handlers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;system.webServer&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Then I started to create my control. As everyone may already know, a &lt;span style="font-family:courier new;"&gt;ScriptManager&lt;/span&gt; is required.&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:ScriptManager&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="ScriptManager1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:ScriptManager&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Next I've added my UpdatePanel. My trigger is a drop down list. When I add the trigger in I thought it would automatically work, but it doesn't! I know this sounds stupid, but, anyway, I forgot to make the drop down list auto post back in the first place. So here is the piece of code I have:&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:UpdatePanel&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="UpdatePanel1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ContentTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 80px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="Div1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ContentTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Triggers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 80px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:AsyncPostBackTrigger&lt;/span&gt; &lt;span class="attr"&gt;ControlID&lt;/span&gt;&lt;span class="kwrd"&gt;="RandomDropDownList"&lt;/span&gt; &lt;span class="attr"&gt;EventName&lt;/span&gt;&lt;span class="kwrd"&gt;="SelectedIndexChanged"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Triggers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:UpdatePanel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;(to be continue... because my days usually pass too quick, I don't have too much time to do development...)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-3885626988485859122?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/3885626988485859122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/first-net-ajax-page.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3885626988485859122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3885626988485859122'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/first-net-ajax-page.html' title='First .NET AJAX page'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-875822546084949139</id><published>2007-09-19T14:24:00.000+12:00</published><updated>2007-09-19T18:03:09.964+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blah'/><title type='text'>Blah 2</title><content type='html'>We were having lunch in Nando to farewell Alex because Nando is his favourite restaurant.&lt;br /&gt;&lt;br /&gt;Andre: I have made Jacqui the co-leader of the user group.&lt;br /&gt;Alex: Oh, so when will you have your talk?&lt;br /&gt;Jacq: When I have something to talk about.&lt;br /&gt;Alex: I guess you already have a lot to talk about.&lt;br /&gt;Jacq: Can I talk about Philosophy in the user group? Like human nature?&lt;br /&gt;Alex: Yeah, I don't think anyone would come though.&lt;br /&gt;&lt;br /&gt;Umm, for those who don't know, I am a part time student, doing a Graduated Diploma in Philosophy &lt;a href="http://www.auckland.ac.nz"&gt;(University of Auckland)&lt;/a&gt;. Unfortunately it probably doesn't give me any advantage in work. :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-875822546084949139?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/875822546084949139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/blah-2.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/875822546084949139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/875822546084949139'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/blah-2.html' title='Blah 2'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-8958652660140295147</id><published>2007-09-19T11:20:00.000+12:00</published><updated>2007-10-05T15:16:48.120+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>Any idea for .NET User Group topics?</title><content type='html'>We are thinking of all possible topics for our .NET User Group. Of cause there are heaps of things we can do, however it's good to gather more idea from the community because real and practical needs can only be found out from people in the community. So if you have any idea, anything you would like us to talk about in the .NET User Group, leave a comment here to let me know. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-8958652660140295147?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/8958652660140295147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/any-idea-for-net-user-group-topics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/8958652660140295147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/8958652660140295147'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/any-idea-for-net-user-group-topics.html' title='Any idea for .NET User Group topics?'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-3650291681131740305</id><published>2007-09-14T16:21:00.002+12:00</published><updated>2008-09-18T15:17:53.324+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash/AS'/><title type='text'>No more "Click to activate and use this control"</title><content type='html'>Well, I kind of know this trick for ages (really long long time ago). Actually most of the big websites now have changed their code so the annoying "Click to activate and use this control" for objects like flash does not appear anymore. All you have to do, is to have a javascript funcition for creating the object in an external js file. Use the script in your html and call the function to write the object out, like what Sony, Samsung, etc does.&lt;br /&gt;&lt;br /&gt;See also : &lt;a href="http://dev-for-fun.blogspot.com/2008/03/no-more-to-activate-and-use-this.html"&gt;No more "Click to activate and use this control" (2)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Or, like my &lt;a href="http://nicholas-and-jacqui.blogspot.com/"&gt;wedding website&lt;/a&gt; (sorry for being budget not having my own domain but rely on blogspot), have external header and footer generation functions, but leave the middle part inside the html. I can't remember why did I do that, but I did.&lt;br /&gt;&lt;br /&gt;Anyway a js file with a function like this and call the function in your html will do:&lt;br /&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849;color:#000000"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;function&lt;/span&gt; CreateObject&lt;span style="color:#990000;"&gt;(){&lt;br /&gt;&lt;/span&gt;&lt;span style="PADDING-LEFT: 40px;color:#ff0000;" &gt;document&lt;/span&gt;.&lt;span style="color:#339999;"&gt;write&lt;/span&gt;&lt;span style="color:#990000;"&gt;(&lt;/span&gt;&lt;span style="color:#cc33cc;"&gt;' &amp;lt;OBJECT id="WeddingHP4.swf");&lt;br /&gt;&lt;span style="PADDING-LEFT: 40px;color:#ff0000;" &gt;document&lt;/span&gt;.&lt;span style="color:#339999;"&gt;write&lt;/span&gt;&lt;span style="color:#990000;"&gt;(&lt;/span&gt;&lt;span style="color:#cc33cc;"&gt;' codeBase="...'&lt;/span&gt;&lt;span style="color:#990000;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="PADDING-LEFT: 40px;color:#ff0000;" &gt;document&lt;/span&gt;.&lt;span style="color:#339999;"&gt;write&lt;/span&gt;&lt;span style="color:#990000;"&gt;(&lt;/span&gt;&lt;span style="color:#cc33cc;"&gt;' height="470" width="700" align="middle" classid="..." style="border:solid 2px #FFCECC"'&lt;/span&gt;&lt;span style="color:#990000;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="PADDING-LEFT: 40px;color:#ff0000;" &gt;document&lt;/span&gt;.&lt;span style="color:#339999;"&gt;write&lt;/span&gt;&lt;span style="color:#990000;"&gt;(&lt;/span&gt;&lt;span style="color:#cc33cc;"&gt;' VIEWASTEXT&amp;gt;'&lt;/span&gt;&lt;span style="color:#990000;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="PADDING-LEFT: 40px;color:#ff0000;" &gt;document&lt;/span&gt;.&lt;span style="color:#339999;"&gt;write&lt;/span&gt;&lt;span style="color:#990000;"&gt;(&lt;/span&gt;&lt;span style="color:#cc33cc;"&gt;' &amp;lt;PARAM NAME="Movie" VALUE="WeddingHP4.swf"'&lt;/span&gt;&lt;span style="color:#990000;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="PADDING-LEFT: 40px;color:#ff0000;" &gt;document&lt;/span&gt;.&lt;span style="color:#339999;"&gt;write&lt;/span&gt;&lt;span style="color:#990000;"&gt;(&lt;/span&gt;&lt;span style="color:#cc33cc;"&gt;' &amp;lt;PARAM NAME="Src" VALUE="WeddingHP4.swf"&amp;gt;'&lt;/span&gt;&lt;span style="color:#990000;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="PADDING-LEFT: 40px;color:#ff0000;" &gt;document&lt;/span&gt;.&lt;span style="color:#339999;"&gt;write&lt;/span&gt;&lt;span style="color:#990000;"&gt;(&lt;/span&gt;&lt;span style="color:#cc33cc;"&gt;' &amp;lt;embed src="WeddingHP4.swf" quality="high" bgcolor="#ffffff" width="800" height="470" name="WeddingHP4.swf" align="middle" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="..."&amp;gt; &amp;lt;/embed&amp;gt;'&lt;/span&gt;&lt;span style="color:#990000;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="PADDING-LEFT: 40px;color:#ff0000;" &gt;document&lt;/span&gt;.&lt;span style="color:#339999;"&gt;write&lt;/span&gt;&lt;span style="color:#990000;"&gt;(&lt;/span&gt;&lt;span style="color:#cc33cc;"&gt;' &amp;lt;/OBJECT&amp;gt;'&lt;/span&gt;&lt;span style="color:#990000;"&gt;); &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#990000;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-3650291681131740305?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/3650291681131740305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/no-more-click-to-activate-and-use-this.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3650291681131740305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3650291681131740305'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/no-more-click-to-activate-and-use-this.html' title='No more &quot;Click to activate and use this control&quot;'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-6853244213891364134</id><published>2007-09-14T15:23:00.000+12:00</published><updated>2007-09-14T16:02:34.260+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NAnt'/><title type='text'>NAnt task example - XmlPokeExtendedTask</title><content type='html'>NAnt has a XmlPoke task, which is good, but unfortunately it does not create the node if it does not already exists. I have created my XmlPokeExtendedTask which would create xml node with and the spcified attribute for me.&lt;br /&gt;&lt;br /&gt;For example&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;/configuration/appSettings/add[@key='Some.Setting']/@value,10&lt;br /&gt;/configuration/appSettings/add[@key='Some.Setting2']/@value,Low&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;the ouput XML will contains the following:&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;appsettings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 80px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add &lt;/span&gt;&lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;="Some.Setting"&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;="10"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 80px"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add &lt;/span&gt;&lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;="Some.Setting2"&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;="Low"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd" style="PADDING-LEFT: 40px"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;appsettings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;confugration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://staffw5.b.net.nz/Portals/1/Jacqui/NAnt.ExtensionTasks.zip"&gt;Here&lt;/a&gt; is the assembly and an example. Simply putting the dll into the NAnt folder would work because NAnt automatically include assemblies that are named *Tasks.dll.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-6853244213891364134?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/6853244213891364134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/nant-task-example-xmlpokeextendedtask.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6853244213891364134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6853244213891364134'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/nant-task-example-xmlpokeextendedtask.html' title='NAnt task example - XmlPokeExtendedTask'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-4175501917495400019</id><published>2007-09-12T17:58:00.000+12:00</published><updated>2007-09-12T18:05:47.474+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blah'/><title type='text'>Blah 1</title><content type='html'>This has nothing to do with development.&lt;br /&gt;&lt;br /&gt;I've been reading what I typed this afternoon and have found lots of typo and even sentences that don't make any sense. I was working at the same time I type that up. Have to admit that my multi-tasking skill is not good enough. Anyway, forgive me if you see any typo or spelling or grammatical mistake.&lt;br /&gt;&lt;br /&gt;I hope I won't do that in my philosophy essays and exams.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-4175501917495400019?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/4175501917495400019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/blah-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4175501917495400019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4175501917495400019'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/blah-1.html' title='Blah 1'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-891604604310905531</id><published>2007-09-12T15:29:00.000+12:00</published><updated>2007-09-12T16:34:47.648+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><title type='text'>C# 3.0 Basic - Lambda expressions</title><content type='html'>"A lambda expression is written as a parameter list, followed by the =&gt; token, followed by an expression or a statement block."&lt;br /&gt;&lt;br /&gt;This is not the first time I see Lambda expressions. I love Lambda expressions in the first sight because the look pretty much like logic to me. Alex talked about this in his &lt;a href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx"&gt;LINQ&lt;/a&gt; example. I will talk about it in LINQ later, but here are some examples I copy from &lt;a href="http://download.microsoft.com/download/9/5/0/9503e33e-fde6-4aed-b5d0-ffe749822f1b/csharp%203.0%20specification.doc"&gt;c#3.0 specification document&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;x =&gt; x + 1 &lt;span style="color:#009900;"&gt;// Implicitly typed, expression body&lt;/span&gt;&lt;br /&gt;x =&gt; { return x + 1; } &lt;span style="color:#009900;"&gt;// Implicitly typed, statement body&lt;/span&gt;&lt;br /&gt;(int x) =&gt; x + 1 &lt;span style="color:#009900;"&gt;// Explicitly typed, expression body&lt;br /&gt;&lt;/span&gt;(int x) =&gt; { return x + 1; } &lt;span style="color:#009900;"&gt;// Explicitly typed, statement body&lt;/span&gt;&lt;br /&gt;(x, y) =&gt; x * y &lt;span style="color:#009900;"&gt;// Multiple parameters&lt;/span&gt;&lt;br /&gt;() =&gt; Console.WriteLine() &lt;span style="color:#009900;"&gt;// No parameters&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Honestly I am not confident in typing an example for this in notepad and assume it will work. So i will go home and install VS 2008 beta on my machine first, have a try and create an example. Then I can create example for LINQ as well.:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-891604604310905531?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/891604604310905531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/c-30-basic-lambda-expressions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/891604604310905531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/891604604310905531'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/c-30-basic-lambda-expressions.html' title='C# 3.0 Basic - Lambda expressions'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-1367452237475816032</id><published>2007-09-12T15:06:00.000+12:00</published><updated>2007-09-12T15:25:34.283+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><title type='text'>C# 3.0 Basic - Anonymous type</title><content type='html'>"An anonymous object initializer declares an anonymous type and returns an instance of that type."&lt;br /&gt;&lt;br /&gt;Cool, another thing in .NET allows anonymous. It's quite handy to have anonymous method and type support.&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;var&lt;/span&gt; meeting = &lt;span style="color:#3333ff;"&gt;new&lt;/span&gt; {Time = 3.Hours().Ago(), Location = &lt;span style="color:#990000;"&gt;"Ellerslie"&lt;/span&gt;};&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;The variable &lt;span style="font-family:courier new;"&gt;meeting&lt;/span&gt; has a type, which, technically not really anonymous. An ugly system name is assigned to this type and which I honestly cannot remember.&lt;br /&gt;&lt;br /&gt;If there is another anonymous type with the same initializer, C# 3.0 is smart enough to recognise them as the same type. e.g.&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;var&lt;/span&gt; meeting2 = &lt;span style="color:#3333ff;"&gt;new&lt;/span&gt; {Time = 3.Hours().FromNow(), Location = &lt;span style="color:#990000;"&gt;"CBD"&lt;/span&gt;};&lt;br /&gt;meeting = meeting2;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;I think this is really cool although I don't have in mind where can I use this yet, haha.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-1367452237475816032?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/1367452237475816032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/c-30-basic-anonymous-type.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1367452237475816032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1367452237475816032'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/c-30-basic-anonymous-type.html' title='C# 3.0 Basic - Anonymous type'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-1685734522388190368</id><published>2007-09-12T14:15:00.000+12:00</published><updated>2007-09-12T15:20:25.809+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><title type='text'>C# 3.0 Basic - Extension methods</title><content type='html'>Alex's example on extension method as a whole was really cool. I will ask him for it later. Meanwhile I will write a super simplified one to show that I understand what he was saying.:D&lt;br /&gt;&lt;br /&gt;First here are two extension methods. The first one, &lt;span style="font-family:courier new;"&gt;Hours&lt;/span&gt;, extends int type; and the second one, &lt;span style="font-family:courier new;"&gt;FromNow&lt;/span&gt;, extends &lt;span style="font-family:courier new;"&gt;TimeSpan&lt;/span&gt; type.&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;public static&lt;/span&gt; &lt;span style="color:#339999;"&gt;TimeSpan&lt;/span&gt; Hours(&lt;span style="color:#3333ff;"&gt;this&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; i)&lt;br /&gt;{&lt;br /&gt;&lt;span style="PADDING-LEFT: 40px;color:#3333ff;" &gt;return &lt;/span&gt;&lt;span style="color:#3333ff;"&gt;new&lt;/span&gt; &lt;span style="color:#339999;"&gt;TimeSpan&lt;/span&gt;(0, i, 0, 0);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;public static&lt;/span&gt; &lt;span style="color:#339999;"&gt;DateTime&lt;/span&gt; FromNow(&lt;span style="color:#3333ff;"&gt;this&lt;/span&gt; &lt;span style="color:#339999;"&gt;TimeSpan&lt;/span&gt; t)&lt;br /&gt;{&lt;br /&gt;&lt;span style="PADDING-LEFT: 40px;color:#3333ff;" &gt;return&lt;/span&gt; &lt;span style="color:#339999;"&gt;DateTime&lt;/span&gt;.Now.Add(t);&lt;br /&gt;}&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;So I can write something like this:&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#339999;"&gt;DateTime&lt;/span&gt; ThreeHoursFromNow = 3.Hours().FromNow();&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Probably my example cannot illustrate the power of extension methods, but well, you get the idea. :)&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-1685734522388190368?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/1685734522388190368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/extension-methods.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1685734522388190368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1685734522388190368'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/extension-methods.html' title='C# 3.0 Basic - Extension methods'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-6149336761880779801</id><published>2007-09-12T14:05:00.000+12:00</published><updated>2007-09-12T15:06:59.851+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><title type='text'>C# 3.0 Basic - Implicit typing</title><content type='html'>&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;var&lt;/span&gt; i = 5;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;var&lt;/span&gt; s = &lt;span style="color:#990000;"&gt;"Hello"&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;var&lt;/span&gt; d = 1.0;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;var&lt;/span&gt; numbers = &lt;span style="color:#3333ff;"&gt;new&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;int&lt;/span&gt;[] {1, 2, 3};&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;var&lt;/span&gt; persons= &lt;span style="color:#3333ff;"&gt;new&lt;/span&gt; &lt;span style="color:#339999;"&gt;Dictionary&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;int&lt;/span&gt;,Order&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;();&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Basically the above are equivalent to&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; i = 5;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;string&lt;/span&gt; s = &lt;span style="color:#990000;"&gt;"Hello"&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;double&lt;/span&gt; d = 1.0;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;int&lt;/span&gt;[] numbers = &lt;span style="color:#3333ff;"&gt;new int&lt;/span&gt;[] {1, 2, 3};&lt;br /&gt;&lt;span style="color:#339999;"&gt;Dictionary&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;int&lt;/span&gt;,Order&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt; persons= &lt;span style="color:#3333ff;"&gt;new &lt;/span&gt;&lt;span style="color:#339999;"&gt;Dictionary&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;int&lt;/span&gt;,Order&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;();&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;"In an implicitly typed local variable declaration, the type of the local variable being declared is inferred from the expression used to initialize the variable". &lt;a href="http://en.wikipedia.org/wiki/IntelliSense"&gt;IntelliSense&lt;/a&gt; recognises the type of the variable and support normal auto completion of that type for the variable.&lt;br /&gt;&lt;br /&gt;Note that the following are example of incorrect declarations:&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;var&lt;/span&gt; x; &lt;span style="color:#009900;"&gt;// Error, no initializer to infer type from&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;var&lt;/span&gt; y = {1, 2, 3}; &lt;span style="color:#009900;"&gt;// Error, collection initializer not permitted&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;var&lt;/span&gt; z = null; &lt;span style="color:#009900;"&gt;// Error, null type not permitted&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-6149336761880779801?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/6149336761880779801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/c-30-basic-implicit-typing.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6149336761880779801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/6149336761880779801'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/c-30-basic-implicit-typing.html' title='C# 3.0 Basic - Implicit typing'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-3232607730936748973</id><published>2007-09-12T13:14:00.000+12:00</published><updated>2007-09-12T15:26:47.367+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><title type='text'>C# 3.0 Basic - Collection initializer</title><content type='html'>According to C# 3.0 specification, "a collection initializer consists of a sequence of element initializers, enclosed by { and } tokens and separated by commas".&lt;br /&gt;&lt;br /&gt;So&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#339999;"&gt;Person&lt;/span&gt; p1 = &lt;span style="color:#3333ff;"&gt;new&lt;/span&gt; &lt;span style="color:#339999;"&gt;Person&lt;/span&gt;(&lt;span style="color:#990000;"&gt;"Jacqualine"&lt;/span&gt;, &lt;span style="color:#990000;"&gt;"Chow"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color:#339999;"&gt;Person&lt;/span&gt; p2 = &lt;span style="color:#3333ff;"&gt;new&lt;/span&gt; &lt;span style="color:#339999;"&gt;Person&lt;/span&gt;(&lt;span style="color:#990000;"&gt;"Andre"&lt;/span&gt;, &lt;span style="color:#990000;"&gt;"Meurer"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color:#339999;"&gt;Person&lt;/span&gt; p3 = &lt;span style="color:#3333ff;"&gt;new&lt;/span&gt; &lt;span style="color:#339999;"&gt;Person&lt;/span&gt;(&lt;span style="color:#990000;"&gt;"Alex"&lt;/span&gt;, &lt;span style="color:#990000;"&gt;"James"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#339999;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#339999;"&gt;Person&lt;/span&gt;&amp;gt;&lt;person&gt; pList = &lt;span style="color:#3333ff;"&gt;new&lt;/span&gt; &lt;span style="color:#339999;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#339999;"&gt;Person&lt;/span&gt;&amp;gt;&lt;person&gt;();&lt;br /&gt;pList.Add(p1);&lt;br /&gt;pList.Add(p2);&lt;br /&gt;pList.Add(p3);&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;can be written as&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#339999;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#339999;"&gt;Person&lt;/span&gt;&amp;gt;&lt;person&gt; pList = &lt;span style="color:#3333ff;"&gt;new&lt;/span&gt; &lt;span style="color:#339999;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#339999;"&gt;Person&lt;/span&gt;&amp;gt;&lt;person&gt;{ p1, p2, p3};&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;and in combining the power of object initializer, this will become&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#339999;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#339999;"&gt;Person&lt;/span&gt;&amp;gt; pList = new List&amp;lt;&lt;span style="color:#339999;"&gt;Person&lt;/span&gt;&amp;gt;&lt;br /&gt;{&lt;br /&gt;&lt;span style="PADDING-LEFT: 40px;color:#3333ff;" &gt;new&lt;/span&gt; &lt;span style="color:#339999;"&gt;Person&lt;/span&gt; { Firstname = &lt;span style="color:#990000;"&gt;"Jacqualine"&lt;/span&gt;, Lastname = &lt;span style="color:#990000;"&gt;"Chow"&lt;/span&gt; },&lt;br /&gt;&lt;span style="PADDING-LEFT: 40px;color:#3333ff;" &gt;new&lt;/span&gt; &lt;span style="color:#339999;"&gt;Person&lt;/span&gt; { Firstname = &lt;span style="color:#990000;"&gt;"Andre"&lt;/span&gt;, Lastname = &lt;span style="color:#990000;"&gt;"Meurer"&lt;/span&gt; },&lt;br /&gt;&lt;span style="PADDING-LEFT: 40px;color:#3333ff;" &gt;new&lt;/span&gt; &lt;span style="color:#339999;"&gt;Person&lt;/span&gt; { Firstname = &lt;span style="color:#990000;"&gt;"Alex"&lt;/span&gt;, Lastname = &lt;span style="color:#990000;"&gt;"James"&lt;/span&gt; }&lt;br /&gt;};&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-3232607730936748973?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/3232607730936748973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/c-30-basic-collection-initializer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3232607730936748973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3232607730936748973'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/c-30-basic-collection-initializer.html' title='C# 3.0 Basic - Collection initializer'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-4354421396037169688</id><published>2007-09-12T12:22:00.000+12:00</published><updated>2007-09-12T13:27:14.373+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><title type='text'>C# 3.0 Basic - Object initializer</title><content type='html'>This is the first thing I remember from Alex's talk.&lt;br /&gt;&lt;br /&gt;According to C# 3.0 specification, "an object initializer consists of a sequence of member initializers, enclosed by { and } tokens and separated by commas".&lt;br /&gt;&lt;br /&gt;So&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#339999;"&gt;Person&lt;/span&gt; p = &lt;span style="color:#3333ff;"&gt;new&lt;/span&gt; &lt;span style="color:#339999;"&gt;Person&lt;/span&gt;();&lt;br /&gt;p.Firstname = &lt;span style="color:#990000;"&gt;"Jacqualine"&lt;/span&gt;;&lt;br /&gt;p.Lastname = &lt;span style="color:#990000;"&gt;"Chow"&lt;/span&gt;;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;and&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;p&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;public&lt;/span&gt; Person(&lt;span style="color:#3333ff;"&gt;string&lt;/span&gt; firstname, &lt;span style="color:#3333ff;"&gt;string&lt;/span&gt; lastname)&lt;br /&gt;{&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;this&lt;/span&gt;.Firstname = firstname;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;this&lt;/span&gt;.Lastname = lastname;&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#339999;"&gt;Person&lt;/span&gt; p = &lt;span style="color:#3333ff;"&gt;new&lt;/span&gt; &lt;span style="color:#339999;"&gt;Person&lt;/span&gt;(&lt;span style="color:#990000;"&gt;"Jacqualine"&lt;/span&gt;, &lt;span style="color:#990000;"&gt;"Chow"&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;can be written as&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#339999;"&gt;Person &lt;/span&gt;p = &lt;span style="color:#3333ff;"&gt;new&lt;/span&gt; &lt;span style="color:#339999;"&gt;Person&lt;/span&gt; { Firstname = &lt;span style="color:#990000;"&gt;"Jacqualine"&lt;/span&gt;, Lastname = &lt;span style="color:#990000;"&gt;"Chow"&lt;/span&gt; };&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;In this case we do not have to create a lot of constructors for different combination of initial parameters.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-4354421396037169688?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/4354421396037169688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/c-30-basic-object-initializer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4354421396037169688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4354421396037169688'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/c-30-basic-object-initializer.html' title='C# 3.0 Basic - Object initializer'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-4300938407064835343</id><published>2007-09-12T11:20:00.000+12:00</published><updated>2007-10-05T15:16:48.121+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>Post-.NET User Group 1 - VS 2008 and C#3.0</title><content type='html'>Thanks for everyone that have attended the .NET User Group meeting held in &lt;a href="http://www.blogger.com/www.olympic.co.nz"&gt;Olympic Software&lt;/a&gt; last night. I was very happy because there are more people than we expected and there are pizzas, haha.&lt;br /&gt;&lt;br /&gt;I will try to get &lt;a href="http://blogs.msdn.com/darrylburling/"&gt;Darryl Burling's&lt;/a&gt; presentation slide up here later when he has finished his VS 2008 .NET User Group tour these two months. It is not very nice if I ask him for it now and people can get it before his talks. :P&lt;br /&gt;&lt;br /&gt;I will post the C# 3.0 cool features and tricks that &lt;a href="http://www.base4.net/Blog.aspx"&gt;Alex James&lt;/a&gt; showed us here in the upcoming posts. Since Alex didn't have any slides and he is too busy now (see &lt;a href="http://www.base4.net/Blog.aspx?ID=538"&gt;Off to sunny Seattle&lt;/a&gt;), I have to dig out what he has said from my little brain. Anyway, will post all (alright, most) of them here soon.&lt;br /&gt;&lt;br /&gt;I am very happy to see VS2008 having so many improvements on the design side of things. There are not many developers care about whether things look good or not and about usability issues, but most of them do care about functionality. One of the obvious reason is currently it is very hard to make things look nice. I am very interested to learn about XAML (Silverlight and WPF specifically). It will be good if we can hold XAML based user group here in Auckland as well like &lt;a href="http://naskhan.com/"&gt;Nas Khan&lt;/a&gt; is doing in Wellington. The user group in Wellington is called &lt;a href="http://zamdes.com/"&gt;ZamDes&lt;/a&gt; (yet for me to find out why).&lt;br /&gt;&lt;br /&gt;Andre said I should start blogging about Silverlight. I wish I can really do that soon. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-4300938407064835343?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/4300938407064835343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/post-net-user-group-1-vs-2008-and-c30.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4300938407064835343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4300938407064835343'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/post-net-user-group-1-vs-2008-and-c30.html' title='Post-.NET User Group 1 - VS 2008 and C#3.0'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-57852616967891738</id><published>2007-09-04T16:43:00.000+12:00</published><updated>2007-09-04T17:08:07.197+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NAnt'/><title type='text'>NAnt task example - Update database</title><content type='html'>&lt;a href="http://nant.sourceforge.net/"&gt;NAnt&lt;/a&gt; is a .Net build tool (which obviously similar to Ant). We have been using NAnt to create and deploy patches and I have been creating my own NAnt tasks to do the job. Recently I am thinking of enhancing the script that I have written couple of years ago.&lt;br /&gt;&lt;br /&gt;Each user defined task has a &lt;strong&gt;&lt;span style="font-family:courier new;"&gt;TaskName&lt;/span&gt;&lt;/strong&gt;, maybe some &lt;strong&gt;&lt;span style="font-family:courier new;"&gt;TaskAttribute&lt;/span&gt;&lt;/strong&gt; too, and override &lt;strong&gt;&lt;span style="font-family:courier new;"&gt;ExecuteTask&lt;/span&gt;&lt;/strong&gt; method. Let me just post an example of user defined task here.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://staffw5.b.net.nz/Portals/1/Jacqui/Nant.UpdateDatabase.build.txt"&gt;Nant.UpdateDatabase.build.txt (save this as .build)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-57852616967891738?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/57852616967891738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/nant-task-example-update-database.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/57852616967891738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/57852616967891738'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/nant-task-example-update-database.html' title='NAnt task example - Update database'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-1020199209032763493</id><published>2007-09-04T16:25:00.000+12:00</published><updated>2007-10-05T15:16:48.121+13:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ellerslie .NET User Group'/><title type='text'>.NET User Group 1 - VS 2008 and C#3.0</title><content type='html'>Olympic is hosting the first Ellerslie .NET User Group meeting next Tuesday. This is a public event free of charge for all developers keen on learning new tips &amp; tricks, and keeping up to date with what’s coming up. We will host regular meetings at the Olympic Auckland office every 4-6 weeks.&lt;br /&gt;&lt;br /&gt;Our opening night will be a double session by Darryl Burling of Microsoft (on Visual Studio 2008) and Alex James (on C# 3.0)&lt;br /&gt;&lt;br /&gt;If you know anyone who might be interested please tell them about it. Remember it’s an open event so everyone is welcome.&lt;br /&gt;&lt;br /&gt;Here are the details:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A lap around Visual Studio 2008 &amp;amp; A lap around C# 3.0&lt;/strong&gt;&lt;br /&gt;Auckland 11/09/2007&lt;br /&gt;Gather at 5:45, starting at 6:00&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A lap around Visual Studio 2008&lt;/strong&gt;&lt;br /&gt;Presented by &lt;a href="http://blogs.msdn.com/darrylburling"&gt;Darryl Burling&lt;/a&gt;&lt;br /&gt;Explore all the new Visual Studio 2008 features, from language enhancements; improved designers; Web and smart-client development tools; to Visual Studio Team System, a suite of software lifecycle management tools poised to transform how you deliver software for Windows Vista, the 2007 Microsoft Office system, and the Web.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A lap around C# 3.0&lt;/strong&gt;&lt;br /&gt;Presented by &lt;a href="http://www.base4.net/blog.aspx"&gt;Alex James&lt;/a&gt;&lt;br /&gt;Explore quickly the new features of C# 3.0, including things like LINQ, Lambda Expressions, Anonymous Types etc.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Catering:&lt;/strong&gt; Pizza &amp; Drinks&lt;br /&gt;&lt;strong&gt;Door Charge:&lt;/strong&gt; Free&lt;br /&gt;&lt;strong&gt;Parking: &lt;/strong&gt;Free, just park in Olympic Software’s car park.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Venue&lt;/strong&gt;&lt;br /&gt;Olympic Software&lt;br /&gt;10 Cawley St&lt;br /&gt;Ellerslie Auckland&lt;br /&gt;&lt;br /&gt;&lt;a href="http://maps.live.com/default.aspx?v=2&amp;amp;ss=yp.Cawley%20st%2C%20Ellerslie&amp;cp=-36.900523~174.8119&amp;amp;style=r&amp;lvl=15&amp;amp;tilt=-90&amp;dir=0&amp;amp;alt=-1000&amp;sp=Point.8vgxqpzk0y56_Olympic%20Software_10%20Cawley%20St%20Ellerslie%20Auckland_www.olympic.co.nz_&amp;amp;encType=1"&gt;Map of venue&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-1020199209032763493?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/1020199209032763493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/net-user-group-1-vs-2008-and-c30.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1020199209032763493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1020199209032763493'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/09/net-user-group-1-vs-2008-and-c30.html' title='.NET User Group 1 - VS 2008 and C#3.0'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-1488942591117360946</id><published>2007-08-27T12:16:00.001+12:00</published><updated>2008-09-18T15:13:57.025+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Checking object existence in SQL 2000 and SQL 2005</title><content type='html'>I have SQL 2005 on my machine but sometimes I am connecting to SQL 2000 database. If you generate drop object script from SQL 2005 Server Management Studio, it cannot be applied to the SQL 2000 database because they do not have the same system tables and views. For example dropping a stored procedure:&lt;br /&gt;&lt;br /&gt;SQL 2005 syntax:&lt;br /&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849;color:#000000"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;IF&lt;/span&gt; &lt;span style="color:#999999;"&gt;EXISTS&lt;/span&gt; &lt;span style="color:#999999;"&gt;(&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#999999;"&gt;*&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;FROM&lt;/span&gt; sys.objects &lt;span style="color:#3333ff;"&gt;WHERE&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;object_id&lt;/span&gt; = &lt;span style="color:#cc33cc;"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color:#999999;"&gt;(&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;N'[dbo].[StoredProc_Name]'&lt;/span&gt;&lt;span style="color:#999999;"&gt;) &lt;/span&gt;&lt;span style="color:#999999;"&gt;AND&lt;/span&gt; type &lt;span style="color:#999999;"&gt;in&lt;/span&gt; &lt;span style="color:#999999;"&gt;(&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;N'P', N'PC'&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#999999;"&gt;))&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;DROP PROCEDURE&lt;/span&gt; [dbo].[StoredProc_Name]&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;However SQL 2000 database does not have sys.objects table. In SQL 2000 syntax:&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849;color:#000000"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;IF&lt;/span&gt; &lt;span style="color:#999999;"&gt;EXISTS&lt;/span&gt; &lt;span style="color:#999999;"&gt;(&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#999999;"&gt;* &lt;/span&gt;&lt;span style="color:#3333ff;"&gt;FROM&lt;/span&gt; dbo.&lt;span style="color:#000000;"&gt;sysobjects&lt;/span&gt; WHERE id = &lt;span style="color:#cc33cc;"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color:#999999;"&gt;(&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;N'[dbo].[StoredProc_Name]'&lt;/span&gt;) &lt;span style="color:#999999;"&gt;AND&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;OBJECTPROPERTY&lt;/span&gt;&lt;span style="color:#999999;"&gt;(&lt;/span&gt;id, &lt;span style="color:#ff0000;"&gt;N'IsProcedure'&lt;/span&gt;&lt;span style="color:#999999;"&gt;)&lt;/span&gt; = 1&lt;span style="color:#999999;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;DROP PROCEDURE&lt;/span&gt; [dbo].[StoredProc_Name]&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;This will work in SQL 2005 database as well because SQL 2005 database has a view named sysobjects (for backward compatibility?!).&lt;br /&gt;&lt;br /&gt;To check function existence in SQL 2000 syntax:&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849;color:#000000"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;IF EXISTS &lt;/span&gt;&lt;span style="color:#999999;"&gt;(&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#999999;"&gt;*&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;FROM&lt;/span&gt; dbo.sysobjects &lt;span style="color:#3333ff;"&gt;WHERE&lt;/span&gt; id = &lt;span style="color:#cc33cc;"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color:#999999;"&gt;(&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;N'[dbo].[Function_Name]'&lt;/span&gt;&lt;span style="color:#999999;"&gt;)&lt;/span&gt; &lt;span style="color:#999999;"&gt;AND&lt;/span&gt; xtype &lt;span style="color:#999999;"&gt;in&lt;/span&gt; &lt;span style="color:#c0c0c0;"&gt;(&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;N'FN'&lt;/span&gt;&lt;span style="color:#999999;"&gt;,&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;N'IF'&lt;/span&gt;&lt;span style="color:#999999;"&gt;,&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;N'TF'&lt;/span&gt;&lt;span style="color:#999999;"&gt;))&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;DROP FUNCTION&lt;/span&gt; [dbo].[Function_Name]&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;To check table existence in SQL 2000 syntax:&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849;color:#000000"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;IF EXISTS&lt;/span&gt; &lt;span style="color:#999999;"&gt;(&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; * &lt;span style="color:#3333ff;"&gt;FROM&lt;/span&gt; dbo.sysobjects &lt;span style="color:#3333ff;"&gt;WHERE&lt;/span&gt; id = &lt;span style="color:#cc33cc;"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color:#999999;"&gt;(&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;N'[dbo].[Table_Name]'&lt;/span&gt;&lt;span style="color:#999999;"&gt;)&lt;/span&gt; &lt;span style="color:#999999;"&gt;AND&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;OBJECTPROPERTY&lt;/span&gt;&lt;span style="color:#999999;"&gt;(&lt;/span&gt;id, &lt;span style="color:#ff0000;"&gt;N'IsUserTable'&lt;/span&gt;&lt;span style="color:#999999;"&gt;)&lt;/span&gt; = 1&lt;span style="color:#999999;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;DROP TABLE&lt;/span&gt; [dbo].[TableName]&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-1488942591117360946?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/1488942591117360946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/checking-object-existence-in-sql-2000.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1488942591117360946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/1488942591117360946'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/checking-object-existence-in-sql-2000.html' title='Checking object existence in SQL 2000 and SQL 2005'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-603443333139846436</id><published>2007-08-23T15:45:00.001+12:00</published><updated>2008-09-18T15:10:09.835+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Absolute positioned div and dropdown box</title><content type='html'>An old bug has been fixed in IE 7. It's always working as expected in FireFox but as I can remember it wasn't drawing it out nicely (it is now, in 2.0.0.6).&lt;br /&gt;&lt;br /&gt;See the code below:&lt;br /&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849;color:#000000"&gt;&lt;p&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;div&lt;/span&gt; &lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;="DivA"&lt;/span&gt; &lt;span style="color:red;"&gt;style&lt;/span&gt;&lt;span style="color:blue;"&gt;="position:absolute;&lt;br /&gt;width:200px; height:200px; background-color:Green; display:block; z-index:100;"&amp;gt;&lt;/span&gt;I am a div&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;div&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;select&lt;/span&gt; &lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;="DropDownList1"&lt;/span&gt; &lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;="DropDownList1"&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="mso-tab-count: 1"&gt; &lt;/span&gt;&lt;span style="font-size:0;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;option&lt;/span&gt; &lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;="Item1"&amp;gt;&lt;/span&gt;Item1&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;option&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="mso-tab-count: 1"&gt; &lt;/span&gt;&lt;span style="font-size:0;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;option&lt;/span&gt; &lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;="Item2"&amp;gt;&lt;/span&gt;Item2&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;option&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="mso-tab-count: 1"&gt; &lt;/span&gt;&lt;span style="font-size:0;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;option&lt;/span&gt; &lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;="Item3"&amp;gt;&lt;/span&gt;Item3&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;option&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="mso-tab-count: 1"&gt; &lt;/span&gt;&lt;span style="font-size:0;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;option&lt;/span&gt; &lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;="Item4"&amp;gt;&lt;/span&gt;Item4&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;option&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;select&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;In IE 6 showing a div in absolute position on top of / overlapping a select (drop down box) would always fail. The select box will ALWAYS be on top of everything except one - the iFrame. Therefore we need an iframe with exactly the same size draw beneath the div in order to hide the select box completely. In IE7 this trick is no longer required. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-603443333139846436?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/603443333139846436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/absolute-positioned-div-and-dropdown.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/603443333139846436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/603443333139846436'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/absolute-positioned-div-and-dropdown.html' title='Absolute positioned div and dropdown box'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-7497596993253110661</id><published>2007-08-23T15:20:00.001+12:00</published><updated>2008-09-18T15:07:51.919+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>T-SQL Cursor syntax</title><content type='html'>I've been asked a few times about the cursor syntax (and actually myself have been forgetting too). I know the SQL books online has syntax for everything, but apparently it is a bit hard to read some times. Anyway, post this here so it's handy for myself and the others. :)&lt;br /&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849;color:#000000"&gt;&lt;p&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;DECLARE&lt;/span&gt; some_cur &lt;span style="color:#3333ff;"&gt;CURSOR FOR&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; Column1&lt;span style="color:#999999;"&gt;,&lt;/span&gt; Column2&lt;span style="color:#999999;"&gt;,&lt;/span&gt; Column3 &lt;span style="color:#3333ff;"&gt;FROM&lt;/span&gt; TableName&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;OPEN&lt;/span&gt; some_cur&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;DECLARE&lt;/span&gt; @col1 &lt;span style="color:#3333ff;"&gt;INT&lt;/span&gt;&lt;span style="color:#999999;"&gt;,&lt;/span&gt; @col2 &lt;span style="color:#3333ff;"&gt;NVARCHAR&lt;/span&gt;&lt;span style="color:#999999;"&gt;(&lt;/span&gt;50&lt;span style="color:#999999;"&gt;)&lt;/span&gt;&lt;span style="color:#999999;"&gt;,&lt;/span&gt; @col3 &lt;span style="color:#3333ff;"&gt;BIT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;FETCH NEXT FROM&lt;/span&gt; some_cur &lt;span style="color:#3333ff;"&gt;INTO&lt;/span&gt; @col1&lt;span style="color:#999999;"&gt;,&lt;/span&gt; @col2&lt;span style="color:#999999;"&gt;,&lt;/span&gt; @col3&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;WHILE&lt;/span&gt; &lt;span style="color:#999999;"&gt;(&lt;/span&gt;&lt;span style="color:#cc33cc;"&gt;@@fetch_status&lt;/span&gt; &lt;span style="color:#999999;"&gt;&lt;&gt;&lt;/span&gt; -1&lt;span style="color:#999999;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;BEGIN&lt;/span&gt; &lt;/span&gt;&lt;p style="PADDING-LEFT: 40px"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#009900;"&gt;-- Do whatever you want&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;FETCH NEXT FROM&lt;/span&gt; some_cur &lt;span style="color:#3333ff;"&gt;INTO&lt;/span&gt; @col1&lt;span style="color:#999999;"&gt;,&lt;/span&gt; @col2&lt;span style="color:#999999;"&gt;,&lt;/span&gt; @col3&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;END &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;CLOSE&lt;/span&gt; some_cur&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;DEALLOCATE&lt;/span&gt; some_cur&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-7497596993253110661?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/7497596993253110661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/t-sql-cursor-syntax.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/7497596993253110661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/7497596993253110661'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/t-sql-cursor-syntax.html' title='T-SQL Cursor syntax'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-8557011872770335361</id><published>2007-08-23T15:06:00.001+12:00</published><updated>2008-09-18T15:09:04.960+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Other'/><title type='text'>Hide Blogger's navbar</title><content type='html'>I am not sure would Blogger tell me to delete this post, but my other blogs have been hiding the navbar all the time. I thought of recreate my navbar and place it somewhere inside the blog instead of the top, but give up after I've found out it cannot search Chinese characters effectively (my other blogs are in Chinese, obviously). Anyway, here is the piece to hide the navbar:&lt;br /&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849;color:#000000"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#990000;"&gt;script&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;type&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;="text/javascript"&amp;&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;var&lt;/span&gt; navBar = document.getElementById(&lt;span style="color:#990000;"&gt;"navbar"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;if&lt;/span&gt; (navBar) navBar.style.display = &lt;span style="color:#990000;"&gt;"none"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#990000;"&gt;script&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-8557011872770335361?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/8557011872770335361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/hide-bloggers-navbar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/8557011872770335361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/8557011872770335361'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/hide-bloggers-navbar.html' title='Hide Blogger&apos;s navbar'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-5250321016989051146</id><published>2007-08-23T14:03:00.000+12:00</published><updated>2007-08-23T15:38:39.478+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET 2.0'/><title type='text'>Simple Hover Image/Button</title><content type='html'>Back in the old days, when I have completely no idea about HTML, I found that the HoverButton created by Microsoft FrontPage was very exciting. Now hover button is nothing fancy. It's simply using onmouseover and onmouseout events.&lt;br /&gt;&lt;br /&gt;&lt;input id="HoverButton1" onmouseover="this.src='http://staffw5.b.net.nz/Portals/1/Jacqui/Images/grey_btn.gif';" onclick="javascript:alert('why click me?');return false;" onmouseout="this.src='http://staffw5.b.net.nz/Portals/1/Jacqui/Images/green_btn.gif';" type="image" src="http://staffw5.b.net.nz/Portals/1/Jacqui/Images/green_btn.gif" name="HoverButton1"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#990000;"&gt;input&lt;/span&gt; &lt;span style="color:#cc0000;"&gt;type&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;="image"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;="HoverButton1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;id=&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;"HoverButton1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;onmouseover&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;="this.src='/grey_btn.gif';"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;onmouseout&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;="this.src='/green_btn.gif';"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;src&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;="/green_btn.gif"&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Personally I prefer wrap these up in a web control (extending ImageButton).&lt;br /&gt;&lt;a href="http://staffw5.b.net.nz/Portals/1/Jacqui/ExtendedWebControls.zip"&gt;Download ExtendedWebControls.dll &amp; HoverButton.cs&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So in development I can add it to my toolbox and use it as a normal web control.&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;p&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;%&lt;span style="color:#3333ff;"&gt;@&lt;/span&gt; &lt;span style="color:#990000;"&gt;Register&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Assembly&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;="ExtendedWebControls"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Namespace&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;="ExtendedWebControls"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;TagPrefix&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;="cc1"&lt;/span&gt; %&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;...&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#990000;"&gt;cc1:HoverButton&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;="HoverButton1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;="server"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;BaseImgURL&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;="green_btn.gif"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;HoverImgURL&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;="grey_btn.gif"&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-5250321016989051146?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/5250321016989051146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/simple-hover-imagebutton.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/5250321016989051146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/5250321016989051146'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/simple-hover-imagebutton.html' title='Simple Hover Image/Button'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-903835105091525748</id><published>2007-08-21T14:30:00.003+12:00</published><updated>2008-09-11T18:31:17.358+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 2.0'/><title type='text'>ReadOnly Textbox ViewState in .NET 2.0</title><content type='html'>In .NET 2.0, behaviour of &lt;span style="font-family:courier new;color:#666666;"&gt;TextBox&lt;/span&gt; has slightly changed. For a &lt;span style="font-family:courier new;color:#666666;"&gt;TextBox&lt;/span&gt; with &lt;span style="font-family:courier new;color:#666666;"&gt;ReadOnly&lt;/span&gt; property set to true then the text is not be posted back to the server side. To set a &lt;span style="font-family:courier new;color:#666666;"&gt;TextBox&lt;/span&gt; read-only and keep the text on post back, use the following to set the readonly property on client site rendering:&lt;br /&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #EEEEEE"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);"&gt;TextBoxA.Attributes.Add(&lt;/span&gt;&lt;span style="color:#990000;"&gt;"readonly"&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);"&gt;,&lt;/span&gt; &lt;span style="color:#990000;"&gt;"readonly"&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-903835105091525748?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/903835105091525748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/readonly-textbox-viewstate-in-net-20.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/903835105091525748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/903835105091525748'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/readonly-textbox-viewstate-in-net-20.html' title='ReadOnly Textbox ViewState in .NET 2.0'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-626120655352210413</id><published>2007-08-17T18:58:00.000+12:00</published><updated>2007-08-17T19:14:50.036+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 2.0'/><title type='text'>Update/Delete .NET 2.0 web application sub directories</title><content type='html'>Joseph and I have spent a long time figuring out why the session variable is refreshed after a page load. It was working well in .NET 1.0, but it fails when after we've converted the project to .NET 2.0. At first we have no idea it is a .NET 2.0 issue. Actually we didn't even know it is a session variable issue (all we got was the mysterious object null reference exception). Anyway, after some difficult time we found out updating sub directories restart the web application.  Unfortunately we have to keep this operation. After some googling we finally found a solution, and here it is.&lt;br /&gt;&lt;br /&gt;If the sub directory is linked to another directory (as conjunction), then updating that sub directory would not trigger application restarts. For example my application is in &lt;span style="color: rgb(102, 102, 102);font-family:courier new;" &gt;C:\MyApp&lt;/span&gt; and the sub directory is&lt;span style="color: rgb(102, 102, 102);font-family:courier new;" &gt; C:\MyApp\SubDir&lt;/span&gt;. I should create another directory, for example &lt;span style="color: rgb(102, 102, 102);font-family:courier new;" &gt;C:\MyAppSubDirLink&lt;/span&gt;. Then download Window Server 2003 Resource Kit (&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&amp;displaylang=en"&gt;here&lt;/a&gt;) and install it.&lt;br /&gt;&lt;br /&gt;The resource kit has  "linkd" command, which is all we need to get this working. Run the following in command prompt:&lt;br /&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="background: rgb(255, 248, 73) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="color: rgb(102, 102, 102);font-family:courier new;" &gt;linkd C:\MyApp\SubDir C:\MyAppSubDirLink&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;That's it! Now you can update &lt;span style="color: rgb(102, 102, 102);font-family:courier new;" &gt;C:\MyApp\SubDir&lt;/span&gt; without restarting the web application, and therefore session variable would be preserved!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-626120655352210413?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/626120655352210413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/updatedelete-net-20-web-application-sub.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/626120655352210413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/626120655352210413'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/updatedelete-net-20-web-application-sub.html' title='Update/Delete .NET 2.0 web application sub directories'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-7603330042249420819</id><published>2007-08-16T16:22:00.003+12:00</published><updated>2008-09-18T15:06:29.576+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash/AS'/><title type='text'>Pass out BIG Number from Flash</title><content type='html'>Working with big number just inside flash is all sweet (Number.MAX_VALUE approx. 1.7976931348623158e+308) , but when you need to pass it out by xml it would be a pain because it would become a 14 decimal places scientific notation somewhere between 2^49 and 2^50. (which is the same behaviour as most of the languages).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2^49 = 562949953421312&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2^50 = 1125899906842624&lt;/span&gt; which to string would be &lt;span style="font-family:courier new;"&gt;1.12589990684262e+15&lt;/span&gt; (note that a "4" is missing at the end)&lt;br /&gt;&lt;br /&gt;So passing out big number as string and convert it back to a number from it would not work (obviously)!&lt;br /&gt;&lt;br /&gt;We were using bit mask for marking selections, i.e. 101001 indicates 0,3 and 5 are selected. I didn't notice this issue until we have 50 selections and people are choosing multiple (i.e. 50 and something else, which means 2^49 plus some more). I have been finding a easy solution but apparently there is none. Therefore I've decided to do the following in ActionScript:&lt;br /&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849; color:#000000"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;function&lt;/span&gt; GenerateBitMask(listOfPowers&lt;span style="color:red;"&gt;:&lt;/span&gt;Array)&lt;span style="color:red;"&gt;:&lt;/span&gt;Array{&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;var&lt;/span&gt; bitmask&lt;span style="color:red;"&gt;:&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;Number&lt;/span&gt; &lt;span style="color:red;"&gt;=&lt;/span&gt; &lt;span style="color:#000000;"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;var&lt;/span&gt; bitmaskHead&lt;span style="color:red;"&gt;:&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;Number&lt;/span&gt; &lt;span style="color:red;"&gt;=&lt;/span&gt; &lt;span style="color:#000000;"&gt;0&lt;/span&gt;x0;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;var&lt;/span&gt; bitmaskTail&lt;span style="color:red;"&gt;:&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;Number&lt;/span&gt; &lt;span style="color:red;"&gt;=&lt;/span&gt; &lt;span style="color:#000000;"&gt;0&lt;/span&gt;x0;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;// Loop through all selection&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;for&lt;/span&gt; (var index &lt;span style="color:red;"&gt;=&lt;/span&gt; &lt;span style="color:#000000;"&gt;0&lt;/span&gt;; index&lt;span style="color:red;"&gt;&amp;lt;&lt;/span&gt;listOfPowers&lt;span style="color:red;"&gt;.&lt;/span&gt;length; index&lt;span style="color:red;"&gt;++)&lt;/span&gt; {&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;var&lt;/span&gt; indHead&lt;span style="color:red;"&gt;:&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;Number&lt;/span&gt; &lt;span style="color:red;"&gt;=&lt;/span&gt; &lt;span style="color:#000000;"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;var&lt;/span&gt; indTail&lt;span style="color:red;"&gt;:&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;Number&lt;/span&gt; &lt;span style="color:red;"&gt;=&lt;/span&gt; &lt;span style="color:#000000;"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;// if power &amp;gt; 32, set in bitmaskHea&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (listOfPowers[index] &lt;span style="color:red;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#000000;"&gt;32&lt;/span&gt;){&lt;br /&gt;indHead &lt;span style="color:red;"&gt;=&lt;/span&gt; listOfPowers[index] &lt;span style="color:red;"&gt;-&lt;/span&gt; &lt;span style="color:#000000;"&gt;32&lt;/span&gt;;&lt;br /&gt;bitmaskHead &lt;span style="color:red;"&gt;=&lt;/span&gt; bitmaskHead &lt;span style="color:red;"&gt;+&lt;/span&gt; (Math&lt;span style="color:red;"&gt;.&lt;/span&gt;pow(&lt;span style="color:#000000;"&gt;2&lt;/span&gt;, indHead &lt;span style="color:red;"&gt;-&lt;/span&gt;&lt;span style="color:#000000;"&gt;1&lt;/span&gt;));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;// if power &amp;lt;= 32, set in bitmaskTai&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;else&lt;/span&gt;{&lt;br /&gt;indTail &lt;span style="color:red;"&gt;=&lt;/span&gt; listOfPowers[index];&lt;br /&gt;bitmaskTail &lt;span style="color:red;"&gt;=&lt;/span&gt; bitmaskTail &lt;span style="color:red;"&gt;+&lt;/span&gt; (Math&lt;span style="color:red;"&gt;.&lt;/span&gt;pow(&lt;span style="color:#000000;"&gt;2&lt;/span&gt;, indTail &lt;span style="color:red;"&gt;-&lt;/span&gt;&lt;span style="color:#000000;"&gt;1&lt;/span&gt;));&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;// Combine bitmaskHead and bitmaskTail to get bitmask for flash usag&lt;/span&gt;&lt;br /&gt;bitmask &lt;span style="color:red;"&gt;=&lt;/span&gt; bitmaskHead &lt;span style="color:red;"&gt;*&lt;/span&gt; (Math&lt;span style="color:red;"&gt;.&lt;/span&gt;pow(&lt;span style="color:#000000;"&gt;2, 32&lt;/span&gt;)) &lt;span style="color:red;"&gt;+&lt;/span&gt; bitmaskTail;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;var&lt;/span&gt; bitmaskArray&lt;span style="color:red;"&gt;:&lt;/span&gt;Array &lt;span style="color:red;"&gt;=&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; Array();&lt;br /&gt;bitmaskArray[&lt;span style="color:#000000;"&gt;0&lt;/span&gt;]&lt;span style="color:red;"&gt;=&lt;/span&gt;bitmask;&lt;br /&gt;bitmaskArray[&lt;span style="color:#000000;"&gt;1&lt;/span&gt;]&lt;span style="color:red;"&gt;=&lt;/span&gt;bitmaskHead;&lt;br /&gt;bitmaskArray[&lt;span style="color:#000000;"&gt;2&lt;/span&gt;]&lt;span style="color:red;"&gt;=&lt;/span&gt;bitmaskTail;&lt;br /&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; bitmaskArray;&lt;br /&gt;}&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;I do have a reason for picking 32 as the magic number, but it doesn't really matter. The bitmaskTail and bitmaskHead are passed to the web application (which in this case .NET C#) and the web application need to reconstruct the number:&lt;br /&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#000000;"&gt;XmlNode bitmaskHead &lt;/span&gt;&lt;span style="color:red;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; selectionNode&lt;/span&gt;&lt;span style="color:red;"&gt;.&lt;/span&gt;&lt;span style="color:#000000;"&gt;Attributes[&lt;/span&gt;&lt;span style="color:green;"&gt;"BitmaskHead"&lt;/span&gt;&lt;span style="color:#000000;"&gt;];&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;XmlNode bitmaskTail &lt;/span&gt;&lt;span style="color:red;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; selectionNode&lt;/span&gt;&lt;span style="color:red;"&gt;.&lt;/span&gt;&lt;span style="color:#000000;"&gt;Attributes[&lt;/span&gt;&lt;span style="color:green;"&gt;"BitmaskTail"&lt;/span&gt;&lt;span style="color:#000000;"&gt;];&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;ulong bigNumber &lt;/span&gt;&lt;span style="color:red;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; Convert&lt;/span&gt;&lt;span style="color:red;"&gt;.&lt;/span&gt;&lt;span style="color:#000000;"&gt;ToUInt64(ulong&lt;/span&gt;&lt;span style="color:red;"&gt;.&lt;/span&gt;&lt;span style="color:#000000;"&gt;Parse(bitmaskHead&lt;/span&gt;&lt;span style="color:red;"&gt;.&lt;/span&gt;&lt;span style="color:#000000;"&gt;InnerText) &lt;/span&gt;&lt;span style="color:red;"&gt;*&lt;/span&gt;&lt;span style="color:#000000;"&gt; Math&lt;/span&gt;&lt;span style="color:red;"&gt;.&lt;/span&gt;&lt;span style="color:#000000;"&gt;Pow(&lt;/span&gt;&lt;span style="color:blue;"&gt;2&lt;/span&gt;&lt;span style="color:#000000;"&gt;, &lt;/span&gt;&lt;span style="color:blue;"&gt;32&lt;/span&gt;&lt;span style="color:#000000;"&gt;) &lt;/span&gt;&lt;span style="color:red;"&gt;+&lt;/span&gt;&lt;span style="color:#000000;"&gt; ulong&lt;/span&gt;&lt;span style="color:red;"&gt;.&lt;/span&gt;&lt;span style="color:#000000;"&gt;Parse(bitmaskTail&lt;/span&gt;&lt;span style="color:red;"&gt;.&lt;/span&gt;&lt;span style="color:#000000;"&gt;InnerText));&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;To pass big number to flash is basically the reverse process. Anyway I hope there is an easier way so if anyone have something in mind please tell me. Otherwise let's live with this pain. :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-7603330042249420819?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/7603330042249420819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/pass-out-big-number-from-flash.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/7603330042249420819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/7603330042249420819'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/pass-out-big-number-from-flash.html' title='Pass out BIG Number from Flash'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-3464278380144715829</id><published>2007-08-16T15:58:00.001+12:00</published><updated>2008-09-18T15:17:36.016+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>XMLHTTP readystate</title><content type='html'>Previous post has mentioned about XMLHTTP. onreadystatechange event fire up at several stages which allow response handling. Generally readystate has the following values:&lt;br /&gt;&lt;br /&gt;&lt;table style="BACKGROUND: #fff849;color:#000000" cellpadding="2" border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;Uninitialised&lt;/td&gt;&lt;td&gt;before open() is called&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;Request has set up&lt;/td&gt;&lt;td&gt;before send() is called&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;Request was sent and in process&lt;/td&gt;&lt;td&gt;content header is available&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;In process&lt;/td&gt;&lt;td&gt;responseText holds partial data but unfinished&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;Complete&lt;/td&gt;&lt;td&gt;finish processing and received response&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;P.S. according to &lt;a href="http://www.quirksmode.org/blog/archives/2005/09/xmlhttp_notes_r_2.html"&gt;QuirksBlog: XMLHTTP notes: &lt;code&gt;readyState&lt;/code&gt; and the events&lt;/a&gt;, different browsers behave differently for onreadystatechange event handling.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-3464278380144715829?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/3464278380144715829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/xmlhttp-readystate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3464278380144715829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/3464278380144715829'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/xmlhttp-readystate.html' title='XMLHTTP readystate'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-4822523519933566852</id><published>2007-08-16T11:49:00.002+12:00</published><updated>2008-09-18T15:12:52.936+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>Javascript AJAX - XML DOM HTTP Request</title><content type='html'>.Net AJAX extension is a easy and good tool, however there are two projects I have worked on cannot use .Net AJAX to accomplish the job (well, one was done before the AJAX 1.0 extension released). First project was in old fashion ASP. The second one is in .NET 2.0, but it has the application hold on an intra network machine, which for security reason has no internet access. However it requires a call to a web services on the client side.&lt;br /&gt;&lt;br /&gt;Therefore javascript AJAX comes in by using XML DOM HTTP Request technique. Note that for javascript wa of AJAX, same as .NET AJAX 1.0, cannot call cross domain web services easily (.Net AJAX extension cannot call it at all without writing a proxies!). In Internet explorer, adding the external web service to the trusted site list will allow cross domain access.&lt;br /&gt;&lt;br /&gt;Step 1: define XMLHTTP object variable&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849; color:#000000"&gt;&lt;p&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;var&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt; xmlHttp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Step 2: Create your action - in this example I will retrieve a list of book titles from the BibleWebservice provided by &lt;a href="http://www.webservicex.net/"&gt;http://www.webservicex.net/&lt;/a&gt;. &lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849;color:#000000"&gt;&lt;p&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;function&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt; Button1_onclick() {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;&lt;span style="color:#009900;"&gt;//Create SOAP Envelope&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; xmlObj = &lt;span style="color:blue;"&gt;new&lt;/span&gt; ActiveXObject(&lt;span style="color:#a31515;"&gt;"Msxml2.DOMDocument"&lt;/span&gt;) ;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; sXml&lt;span style="font-size:0;"&gt; &lt;/span&gt;= &lt;span style="color:#a31515;"&gt;"&amp;lt;?xml version=\"1.0\" ?&amp;gt;"&lt;/span&gt; ;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;sXml += &lt;span style="color:#a31515;"&gt;"&amp;lt;soap:Envelope "&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;sXml += &lt;span style="color:#a31515;"&gt;"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""&lt;/span&gt; ; &lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;sXml += &lt;span style="color:#a31515;"&gt;"xmlns:xsd=\http://www.w3.org/2001/XMLSchema/"&lt;/span&gt; ;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;sXml += &lt;span style="color:#a31515;"&gt;"xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"&amp;gt;"&lt;/span&gt; ;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;sXml += &lt;span style="color:#a31515;"&gt;"&amp;lt;soap:Body&amp;gt;"&lt;/span&gt; ;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;sXml += &lt;span style="color:#a31515;"&gt;"&amp;lt;GetBookTitles xmlns=\"http://www.webserviceX.NET/\"&amp;gt;"&lt;/span&gt;;&lt;span style="font-size:0;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;sXml += &lt;span style="color:#a31515;"&gt;"&amp;lt;/GetBookTitles&amp;gt;&amp;lt;/soap:Body&amp;gt;&amp;lt;/soap:Envelope&amp;gt;" &lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;xmlObj.loadXML(sXml) ;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:'Courier New';"&gt;xmlHttp = &lt;span style="color:blue;"&gt;new&lt;/span&gt; ActiveXObject(&lt;span style="color:#a31515;"&gt;"Msxml2.XMLHTTP"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color:#009900;"&gt;// Add Post, SOAP Action and Content-Type to the request header&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;xmlHttp.Open (&lt;span style="color:#a31515;"&gt;"Post"&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;"http://www.webservicex.net/BibleWebservice.asmx"&lt;/span&gt;, &lt;span style="color:blue;"&gt;false&lt;/span&gt;) ;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;xmlHttp.setRequestHeader(&lt;span style="color:#a31515;"&gt;"SOAPAction"&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;"http://www.webserviceX.NET/GetBookTitles"&lt;/span&gt;) ;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;xmlHttp.setRequestHeader(&lt;span style="color:#a31515;"&gt;"Content-Type"&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;"text/xml; charset=utf-8"&lt;/span&gt; ) ;&lt;br /&gt;&lt;span style="color:#009900;"&gt;// When response received call OnRetrieveComplete method&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;xmlHttp.onreadystatechange = OnRetrieveComplete;&lt;br /&gt;&lt;span style="color:#009900;"&gt;// Send request&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;xmlHttp.Send(xmlObj.xml) ;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Step 3: Create response handler &lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849;color:#000000"&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;function&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt; OnRetrieveComplete()&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;&lt;span style="color:#009900;"&gt;// readystate4 = Completed&lt;/span&gt;&lt;br /&gt;if&lt;/span&gt; (xmlHttp.readyState == 4 &amp;amp;&amp;amp; &lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;xmlHttp.status == 200){&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;&lt;span style="color:#009900;"&gt;// Get response and perform your action&lt;/span&gt;&lt;br /&gt;var&lt;/span&gt; xmlResponse = xmlHttp.responseXML;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; bookXML = xmlResponse.selectSingleNode(&lt;span style="color:#a31515;"&gt;"soap:Envelope/soap:Body/&lt;br /&gt;GetBookTitlesResponse/GetBookTitlesResult"&lt;/span&gt;).text;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; bookXMLObj = &lt;span style="color:blue;"&gt;new&lt;/span&gt; ActiveXObject(&lt;span style="color:#a31515;"&gt;"Msxml2.DOMDocument"&lt;/span&gt;) ;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;bookXMLObj.loadXML(bookXML);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; bookNodes = bookXMLObj.selectNodes(&lt;span style="color:#a31515;"&gt;"NewDataSet/Table"&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color:blue;"&gt;&lt;br /&gt;for&lt;/span&gt; (i=0; i&amp;lt;bookNodes.length; i++)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;{&lt;br /&gt;... do whatever you want&lt;/span&gt;&lt;/p&gt;&lt;p&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 style="font-family:'Courier New';"&gt;}&lt;/span&gt; &lt;span style="font-family:'Courier New';"&gt;&lt;/p&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-4822523519933566852?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/4822523519933566852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/javascript-ajax-using-xml-dom-http.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4822523519933566852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/4822523519933566852'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/javascript-ajax-using-xml-dom-http.html' title='Javascript AJAX - XML DOM HTTP Request'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-7874183954624250560</id><published>2007-08-15T18:08:00.001+12:00</published><updated>2008-09-18T15:19:07.697+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 2.0'/><title type='text'>Simple anonymous delegate II - Predicate</title><content type='html'>Follow from the &lt;a href="http://dev-for-fun.blogspot.com/2007/08/simple-anonymous-delegate.html"&gt;previous post&lt;/a&gt;, anonymous delegate can be used as predicate, which is a method that defines a set of criteria and determines whether the specified object meets those criteria. For example we have the following method:&lt;br /&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849;color:#000000"&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; DoSomething&lt;span style="color:red;"&gt;&lt;&lt;/span&gt;TObj&lt;span style="color:red;"&gt;&amp;gt;(&lt;/span&gt;IEnumerable&lt;span style="color:red;"&gt;&lt;&lt;/span&gt;TObj&lt;span style="color:red;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;objs, Action&lt;span style="color:red;"&gt;&lt;&lt;/span&gt;TObj&lt;span style="color:red;"&gt;&amp;gt;&lt;/span&gt; action, Predicate&lt;span style="color:red;"&gt;&lt;&lt;/span&gt;TObj&lt;span style="color:red;"&gt;&amp;gt;&lt;/span&gt; pred)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (TObj obj &lt;span style="color:blue;"&gt;in&lt;/span&gt; objs)&lt;br /&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt;(pred(obj))&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;action(obj);&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;which takes a predicate parameter and only perform the action if the predicates is true.&lt;br /&gt;&lt;br /&gt;We can pass in anonymous delegate for the predicate:&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849;color:#000000"&gt;&lt;span style="font-family:Courier New;"&gt;List&lt;span style="color:#ff0000;"&gt;&lt;&lt;/span&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;gt;&lt;/span&gt; listOfStrings &lt;span style="color:red;"&gt;=&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; List&lt;span style="color:#ff0000;"&gt;&lt;&lt;/span&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;gt;();&lt;/span&gt;&lt;br /&gt;listOfStrings&lt;span style="color:red;"&gt;.&lt;/span&gt;Add(&lt;span style="color:green;"&gt;"one"&lt;/span&gt;);&lt;br /&gt;listOfStrings&lt;span style="color:red;"&gt;.&lt;/span&gt;Add(&lt;span style="color:green;"&gt;"two"&lt;/span&gt;);&lt;br /&gt;listOfStrings&lt;span style="color:red;"&gt;.&lt;/span&gt;Add(&lt;span style="color:green;"&gt;"three"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;AnonymousDelegate&lt;span style="color:red;"&gt;.&lt;/span&gt;DoSomething&lt;span style="color:red;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;gt;(&lt;/span&gt;listOfStrings,&lt;br /&gt;delegate(&lt;span style="color:blue;"&gt;string&lt;/span&gt; s) { Response&lt;span style="color:red;"&gt;.&lt;/span&gt;Write(s &lt;span style="color:red;"&gt;+&lt;/span&gt; &lt;span style="font-family:Courier New;"&gt;&lt;span style="color:green;"&gt;"&amp;lt;br/&amp;gt;"&lt;/span&gt;&lt;/span&gt;);},&lt;br /&gt;delegate(&lt;span style="color:blue;"&gt;string&lt;/span&gt; s) { &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:red;"&gt;!&lt;/span&gt;s&lt;span style="color:red;"&gt;.&lt;/span&gt;StartsWith(&lt;span style="color:green;"&gt;"o"&lt;/span&gt;); });&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;In this case on "two" and "three" would be written out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-7874183954624250560?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/7874183954624250560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/simple-anonymous-delegate-ii-predicate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/7874183954624250560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/7874183954624250560'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/simple-anonymous-delegate-ii-predicate.html' title='Simple anonymous delegate II - Predicate'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-2339422424914746844</id><published>2007-08-15T17:37:00.001+12:00</published><updated>2008-09-18T15:19:02.767+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 2.0'/><title type='text'>Simple anonymous delegate</title><content type='html'>Although anonymous method has been supported by Java for a long long time, finally it comes to .NET 2.0. Here is a simple generic method:&lt;br /&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849;color:#000000"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;DoSomething&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;TObj&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;gt;(&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;IEnumerable&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;TObj&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;gt;&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;objs&lt;/span&gt;, Action&lt;span style="color:#ff0000;"&gt;&lt;&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;TObj&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;gt;&lt;/span&gt; action){&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;foreach&lt;/span&gt;&lt;/span&gt; (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;TObj&lt;/span&gt; obj &lt;span style="color:blue;"&gt;in&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;objs&lt;/span&gt;)&lt;br /&gt;action(obj);&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;We can pass in anonymous delegate for the action. The action represents a method that performs an action on the specified object. For example:&lt;br /&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="BACKGROUND: #fff849;color:#000000"&gt;&lt;span style="font-family:Courier New;"&gt;List&lt;span style="color:#ff0000;"&gt;&lt;&lt;/span&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;gt;&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;listOfStrings&lt;/span&gt; &lt;span style="color:red;"&gt;=&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; List&lt;span style="color:#ff0000;"&gt;&lt;&lt;/span&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;gt;();&lt;/span&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;listOfStrings&lt;/span&gt;&lt;span style="color:red;"&gt;.&lt;/span&gt;Add(&lt;span style="color:green;"&gt;"one"&lt;/span&gt;);&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;listOfStrings&lt;/span&gt;&lt;span style="color:red;"&gt;.&lt;/span&gt;Add(&lt;span style="color:green;"&gt;"two"&lt;/span&gt;);&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;listOfStrings&lt;/span&gt;&lt;span style="color:red;"&gt;.&lt;/span&gt;Add(&lt;span style="color:green;"&gt;"three"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;AnonymousDelegate&lt;/span&gt;&lt;span style="color:red;"&gt;.&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;DoSomething&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;&lt;/span&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;gt;(&lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;listOfStrings&lt;/span&gt;,&lt;br /&gt;delegate(&lt;span style="color:blue;"&gt;string&lt;/span&gt; s) { Response&lt;span style="color:red;"&gt;.&lt;/span&gt;Write(s &lt;span style="color:red;"&gt;+&lt;/span&gt; &lt;span style="color:green;"&gt;"&lt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;br&lt;/span&gt;/&amp;gt;"&lt;/span&gt;); });&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The output in this example would be:&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;one&lt;br /&gt;two&lt;br /&gt;three&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-2339422424914746844?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/2339422424914746844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/simple-anonymous-delegate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2339422424914746844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/2339422424914746844'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/simple-anonymous-delegate.html' title='Simple anonymous delegate'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2959590750469898218.post-8189486739335969900</id><published>2007-08-15T16:39:00.000+12:00</published><updated>2007-08-15T17:07:47.165+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 2.0'/><title type='text'>.Net 2.0 configuration reload</title><content type='html'>In .Net 1.0, if you have changed the app.config settings of a service, a restart is require to pick up the setting. Web applications automatically restart when web.config is modified.&lt;br /&gt;&lt;br /&gt;.Net 2.0 allows you to refresh cached application configuration setting with the following method:&lt;br /&gt;&lt;br /&gt;&lt;table border="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="background: rgb(255, 248, 73) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="color: rgb(102, 51, 0);font-family:courier new;" &gt;ConfigurationManager&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;RefreshSection&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(204, 51, 204);font-family:courier new;" &gt;"appSettings"&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;);&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;which refreshes the named section so the next time it is retrieved it will be re-read from disk.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2959590750469898218-8189486739335969900?l=dev-for-fun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dev-for-fun.blogspot.com/feeds/8189486739335969900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/net-20-configuration-reload.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/8189486739335969900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2959590750469898218/posts/default/8189486739335969900'/><link rel='alternate' type='text/html' href='http://dev-for-fun.blogspot.com/2007/08/net-20-configuration-reload.html' title='.Net 2.0 configuration reload'/><author><name>Gypsy</name><uri>http://www.blogger.com/profile/04193455411307463735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-8Xv9GB4ABR8/TVsy6COBwZI/AAAAAAAAGSU/N0pM3vXjcPM/s220/NIC0552-1a.jpg'/></author><thr:total>0</thr:total></entry></feed>
