<?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-2748920418214178759</id><updated>2011-11-27T16:30:04.309-08:00</updated><category term='mobile'/><category term='install'/><category term='Python'/><category term='flash'/><category term='Aptana'/><category term='JAVA'/><category term='VISTA'/><category term='development'/><category term='kunerilite'/><category term='api'/><category term='collision'/><category term='openGL'/><category term='xsi'/><category term='C++'/><category term='objective-c'/><category term='game development'/><category term='NeoAxis'/><category term='detection'/><category term='win7'/><category term='nokia'/><category term='jarpa'/><category term='animation'/><category term='sis'/><category term='compare'/><category term='video'/><category term='javaME'/><category term='direct3D'/><category term='programming language'/><category term='dual boot'/><category term='flashlite'/><category term='learning'/><category term='NETBEAN'/><category term='Adobe'/><category term='logout'/><category term='guide'/><category term='dreamweaver'/><category term='login'/><category term='programming'/><category term='AIR'/><category term='Rails'/><category term='tutorial'/><category term='deployment'/><category term='xna'/><category term='expression'/><category term='game'/><category term='interactive designer'/><category term='C#'/><category term='graphic designer'/><category term='ado.net'/><category term='3D'/><category term='mod_tool'/><category term='Ruby'/><category term='software'/><category term='winxp'/><category term='design'/><category term='windows7'/><category term='quickstart'/><category term='mx2004'/><category term='lab'/><category term='widget'/><category term='web designer'/><category term='beginner'/><category term='oreg3d'/><category term='.NET'/><title type='text'>Learning blog for ICT</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>41</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-4772841296880765399</id><published>2011-03-29T20:57:00.001-07:00</published><updated>2011-03-29T20:57:18.277-07:00</updated><title type='text'>First C# Program Line by Line</title><content type='html'>&lt;p&gt;The following is a typical Hello World program for C#.&amp;#160; On the left side is the code and the right side its explanations.&amp;#160; &lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="260"&gt;         &lt;p&gt;using System;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="567"&gt;         &lt;p&gt;This reference is used by Console class. Otherwise, you need to type the class in full (to include its namespace System):&lt;/p&gt;          &lt;p&gt;System.Console.WriteLine(“…”);&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;         &lt;p&gt;using System.Collections.Generic;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="567"&gt;         &lt;p&gt;Not used. Something useful that Microsoft tries to promote.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;         &lt;p&gt;using System.Linq;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="567"&gt;         &lt;p&gt;Not used. Something useful that Microsoft tries to promote.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;         &lt;p&gt;using System.Text;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="567"&gt;         &lt;p&gt;Not used. This reference contains the &lt;b&gt;StringBuilder&lt;/b&gt; class that is memory efficient when working with strings manipulations.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="567"&gt;         &lt;p&gt;Blank line or tab or space has no effect on the final compiled code. Add them to improve the code readability.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;         &lt;p&gt;namespace ConsoleApplication1&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="567"&gt;         &lt;p&gt;A way to group related code together. By default, Visual Studio will use your application name as the namespace.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;         &lt;p&gt;{&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="567"&gt;         &lt;p&gt;1&lt;sup&gt;st&lt;/sup&gt; curly bracket START &lt;/p&gt;          &lt;p&gt;Curly brackets { and } comes in a pair. They group block of code.&lt;/p&gt;          &lt;p&gt;Everything from here till the 1&lt;sup&gt;st&lt;/sup&gt; curly bracket END, belongs to the namespace ConsoleApplication1&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;         &lt;p&gt;class Program&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="567"&gt;         &lt;p&gt;Everything in C# must in a class. In this case, the name of the class is&lt;/p&gt;          &lt;p&gt;ConsoleApplication1.Program &lt;/p&gt;          &lt;p&gt;(You need to include the namespace as part of the name of the class)&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;         &lt;p&gt;{&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="567"&gt;         &lt;p&gt;2&lt;sup&gt;nd&lt;/sup&gt; curly bracket START&lt;/p&gt;          &lt;p&gt;Everything from here till the 2&lt;sup&gt;nd&lt;/sup&gt; curly bracket END, belongs to the class Program&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;         &lt;p&gt;static void Main(string[] args)&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="567"&gt;         &lt;p&gt;static: it is a keyword to specify that the method Main is “static” . It belongs to the class and not instances of the class.&lt;/p&gt;          &lt;p&gt;void: it is a keyword to specify that the method Main returns nothing.&lt;/p&gt;          &lt;p&gt;string[] args: a string array variable with the name args&lt;/p&gt;          &lt;p&gt;curly bracket { } : for code block&lt;/p&gt;          &lt;p&gt;curve bracket ( ) : for method&lt;/p&gt;          &lt;p&gt;square bracket [ ] : for array type&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;         &lt;p&gt;{&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="567"&gt;         &lt;p&gt;3&lt;sup&gt;rd&lt;/sup&gt; curly bracket START&lt;/p&gt;          &lt;p&gt;Everything from here till the 3&lt;sup&gt;rd&lt;/sup&gt; curly bracket END, belongs to the method Main&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;         &lt;p&gt;Console.WriteLine(&amp;quot;Hello C Sharp!&amp;quot;);&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="567"&gt;         &lt;p&gt;Code doing the actual work!&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;         &lt;p&gt;}&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="567"&gt;         &lt;p&gt;3&lt;sup&gt;rd&lt;/sup&gt; curly bracket END&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;         &lt;p&gt;}&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="567"&gt;         &lt;p&gt;2&lt;sup&gt;nd&lt;/sup&gt; curly bracket END&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;         &lt;p&gt;}&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="567"&gt;         &lt;p&gt;1&lt;sup&gt;st&lt;/sup&gt; curly bracket END&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;I have started a &lt;a href="http://mpgddprog.blogspot.com/"&gt;blog for beginners&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-4772841296880765399?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/4772841296880765399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=4772841296880765399' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/4772841296880765399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/4772841296880765399'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2011/03/first-c-program-line-by-line.html' title='First C# Program Line by Line'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-7348837895277166929</id><published>2011-03-23T02:33:00.001-07:00</published><updated>2011-03-23T19:32:02.839-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='programming language'/><category scheme='http://www.blogger.com/atom/ns#' term='beginner'/><title type='text'>What is programming in a nutshell?</title><content type='html'>&lt;p&gt;Apply problem solving skills, then use programming language to tell the computer what to do and finally the result is a completed program.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BTzuSFCPfIw/TYqtHImPf5I/AAAAAAAAChM/F6TUqwqlVnc/s1600-h/image%5B4%5D.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://lh6.ggpht.com/_BTzuSFCPfIw/TYqtIRnaCyI/AAAAAAAAChQ/Px8b9udEPkk/image_thumb%5B1%5D.png?imgmax=800" width="445" height="197" /&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/2748920418214178759-7348837895277166929?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/7348837895277166929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=7348837895277166929' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/7348837895277166929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/7348837895277166929'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2011/03/what-is-programming-in-nutshell.html' title='What is programming in a nutshell?'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_BTzuSFCPfIw/TYqtIRnaCyI/AAAAAAAAChQ/Px8b9udEPkk/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-2748920418214178759.post-1862716498437659098</id><published>2011-03-22T19:17:00.001-07:00</published><updated>2011-03-22T19:17:45.808-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='win7'/><title type='text'>Win 7: disk management and defrag</title><content type='html'>&lt;p&gt;Just received my new Fujitsu Lifebook S series notebook with Intel core i7 with Nvidia Geforce 310M, 4 Gig DDR3 1066Mhz RAM, running on win7 32 bit enterprise OS.&lt;/p&gt;  &lt;p&gt;It comes in 2 partition: 300 Gig C: drive and 200 Gig D: drive.&lt;/p&gt;  &lt;p&gt;I have the habit of starting the machine with a good long term maintenance strategy, this time I did the following:&lt;/p&gt;  &lt;h4&gt;Adjust disk partitions: &lt;/h4&gt;  &lt;p&gt;I removed D: drive, shrinked C: drive to about 150 Gig, then create a new 100 Gig D: drive followed by 250 Gig E: drive. C: drive for more permanent programs, D: drive for adhoc programs that I play around, E: drive for data.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Start &amp;gt; Computer &amp;gt; (Right click) Manage&lt;/p&gt;    &lt;p&gt;Storage &amp;gt; Disk Management&lt;/p&gt;    &lt;p&gt;Right click on any of the disk:&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BTzuSFCPfIw/TYlYM9W2BBI/AAAAAAAACgM/XQTYRoDmxgY/s1600-h/image%5B3%5D.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://lh5.ggpht.com/_BTzuSFCPfIw/TYlYNkEZrBI/AAAAAAAACgQ/543Qo021vZ8/image_thumb%5B1%5D.png?imgmax=800" width="644" height="299" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;Turn on the defragmentation program:&lt;/h4&gt;  &lt;p&gt;Locate the defragmentation program by typing into the search box: defrag&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BTzuSFCPfIw/TYlYOWxeqNI/AAAAAAAACgU/Tq9M8pcKL5o/s1600-h/image%5B6%5D.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://lh5.ggpht.com/_BTzuSFCPfIw/TYlYPHUXEwI/AAAAAAAACgY/Z3lEVnM5EBg/image_thumb%5B2%5D.png?imgmax=800" width="244" height="78" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Click on configure schedule&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BTzuSFCPfIw/TYlYPiK8KzI/AAAAAAAACgc/zjEC99k5c6U/s1600-h/image%5B9%5D.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://lh4.ggpht.com/_BTzuSFCPfIw/TYlYQkEc35I/AAAAAAAACgg/XXhys_94x7k/image_thumb%5B3%5D.png?imgmax=800" width="244" height="224" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Set the weekly schedule for a suitable timing&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BTzuSFCPfIw/TYlYRiszl9I/AAAAAAAACgk/qia843NOf0w/s1600-h/image%5B12%5D.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://lh6.ggpht.com/_BTzuSFCPfIw/TYlYSDyIZDI/AAAAAAAACgo/xjQRHVI8U9I/image_thumb%5B4%5D.png?imgmax=800" width="244" height="213" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&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/2748920418214178759-1862716498437659098?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/1862716498437659098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=1862716498437659098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/1862716498437659098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/1862716498437659098'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2011/03/win-7-disk-management-and-defrag.html' title='Win 7: disk management and defrag'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_BTzuSFCPfIw/TYlYNkEZrBI/AAAAAAAACgQ/543Qo021vZ8/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-2748920418214178759.post-6843572192236430894</id><published>2011-03-22T18:38:00.001-07:00</published><updated>2011-03-22T18:39:41.260-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='programming language'/><category scheme='http://www.blogger.com/atom/ns#' term='beginner'/><title type='text'>How to become a good programmer eventually?</title><content type='html'>&lt;p&gt;There are many programming books designed for “dummies” (real beginners) but really not doing so.&amp;#160; I am trying to consolidate basic stuff with these beginners in mind.&amp;#160; &lt;/p&gt;  &lt;p&gt;Stuff like how long to become a good programmer (at least 10 years or 10000 hrs) and what skills to pick up other than learning a programming language (problem solving, learning how computer works and etc):&lt;/p&gt;  &lt;p&gt;&lt;a title="http://mpgddprog.blogspot.com/" href="http://mpgddprog.blogspot.com/"&gt;http://mpgddprog.blogspot.com/&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/2748920418214178759-6843572192236430894?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/6843572192236430894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=6843572192236430894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/6843572192236430894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/6843572192236430894'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2011/03/how-to-become-good-programmer.html' title='How to become a good programmer eventually?'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-6281897530088181310</id><published>2011-01-27T17:11:00.001-08:00</published><updated>2011-01-27T17:13:59.694-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='compare'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><category scheme='http://www.blogger.com/atom/ns#' term='beginner'/><category scheme='http://www.blogger.com/atom/ns#' term='objective-c'/><title type='text'>Compare C# with Objective C and Java</title><content type='html'>&lt;p&gt;A good article that makes the comparison on these three popular object oriented programming languages is available from &lt;a href="http://create.msdn.com/en-US"&gt;Microsoft App Hub&lt;/a&gt; (formally known as Creators Club for XNA):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://create.msdn.com/en-US/education/catalog/article/intro_to_c_sharp"&gt;Introduction to C# from Objective-C and Java&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I have created a blog on learning C# for beginners: &lt;a href="http://mpgddspf.blogspot.com/"&gt;Software &amp;amp; Programming Fundamentals&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/04/programming-basic.html"&gt;Programming Basic&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/04/develop-console-program.html"&gt;Getting Started - Console Program and Problem Solving&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/04/c-windows-forms.html"&gt;Windows Forms       &lt;br /&gt;&lt;/a&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/04/c-net-variables.html"&gt;Variables&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/04/c-netconditionallogic.html"&gt;Conditional Logic&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/05/calculator.html"&gt;Calculator App Dev process&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/05/c-net-loops.html"&gt;Loops - for, while, do&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/05/c-net-arrays.html"&gt;Arrays&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/05/c-net-strings.html"&gt;Strings&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/05/spf-review-1.html"&gt;Review 1 with answers&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/06/spf-review-2-with-answers.html"&gt;Review 2 with answers&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/05/revision-exercises-on-loops.html"&gt;Revision Exercises on &amp;quot;Loops&amp;quot;&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/05/cnet-events.html"&gt;Events&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/06/c-net-graphics-extra.html"&gt;Graphics&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/06/simple-lot-drawing-for-teams-extra.html"&gt;Simple Lots Drawing Program (Extra)&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/06/simple-hangman-program.html"&gt;Simple Hangman Program (Extra)&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/06/flickering-in-net-graphics.html"&gt;Flickering in .NET Graphics&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/06/spf-additional-exercise-ae1.html"&gt;Additional Exercise #1&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/06/spf-additional-exercise-ae2.html"&gt;Additional Exercise #2&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/07/spf-revision-jul-2010.html"&gt;Full Revision from variables to arrays&lt;/a&gt;      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;[ Classes and OOP ]     &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/07/vehicle-class.html"&gt;Introduction on Class&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/07/exercise-human-class.html"&gt;Exercise: Human&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/07/computer-class.html"&gt;More detail on class&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/07/simplified-cookie.html"&gt;Properties of class&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/08/object-oriented-programming.html"&gt;OOP&lt;/a&gt;      &lt;br /&gt;-&lt;a href="http://mpgddspf.blogspot.com/2010/08/performance-consideration.html"&gt; Performance considerations&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/08/testing.html"&gt;Testing&lt;/a&gt;      &lt;br /&gt;- &lt;a href="http://mpgddspf.blogspot.com/2010/08/data-driven-unit-testing.html"&gt;Data Driven Unit Testing&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/2748920418214178759-6281897530088181310?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/6281897530088181310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=6281897530088181310' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/6281897530088181310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/6281897530088181310'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2011/01/compare-c-with-objective-c-and-java.html' title='Compare C# with Objective C and Java'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-4827606584230017406</id><published>2010-10-07T17:51:00.001-07:00</published><updated>2011-03-22T18:08:17.456-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><category scheme='http://www.blogger.com/atom/ns#' term='javaME'/><title type='text'>Netbeans for Mobile App</title><content type='html'>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;The following is just a brief introduction to Java ME and features in Netbeans 6.9.x.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Updated: I have created a new blog on how to develop Java ME games using Netbeans 6.9.x:&lt;/p&gt;    &lt;p&gt;      &lt;a title="http://mpgddmgd.blogspot.com/" href="http://mpgddmgd.blogspot.com/"&gt;http://mpgddmgd.blogspot.com/&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;Content:&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Lab 01: My First MIDlet for Java ME Application &lt;/li&gt;    &lt;li&gt;Lab 02: Packaging and Deployment &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Reference:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netbeans.org/features/javame/"&gt;http://netbeans.org/features/javame/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netbeans.org/kb/docs/javame/quickstart.html"&gt;http://netbeans.org/kb/docs/javame/quickstart.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.forum.nokia.com/Develop/Java/Getting_started/Step_5_Find.xhtml"&gt;http://www.forum.nokia.com/Develop/Java/Getting_started/Step_5_Find.xhtml&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.openclassworld.org/javame"&gt;http://www.openclassworld.org/javame&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;Netbeans for Mobile App&lt;/h4&gt;  &lt;p&gt;Netbeans IDE provides the following components that make it easy to create mobile applications or games:&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Netbeans IDE&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Create, test and debug applications for the Mobile Information Device Profile (MIDP) 1.0, 2.0, 2.1 (MSA), the Connected Limited Device Configuration (CLDC) 1.0 and 1.1, and the Connected Device Configuration (CDC).&lt;/p&gt;  &lt;p&gt;The NetBeans IDE comes bundled with the latest Java ME SDK 3.0 which supports both CLDC and CDC development. You can register other mobile and embedded platforms from the Tools menu.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Visual Mobile Designer&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Develop GUIs rapidly with the Visual Mobile Designer (VMD): Drag and drop components like wait screens, login screens, file browsers, an SMS composer, and splash screens are included. The Analyzer tool helps you decrease file size by identifying unused components for removal, and it also checks for MIDP 1.0 compliance. The VMD also makes GUI localization easier.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;SVG Component Palette&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Select basic shapes from the SVG image palette to get started and use the other SVG components in the palette such as SVGForm, Button, CheckBox, TextField, Slider, and more to create rich content interfaces for your mobile applications.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Data Binding&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Data Binding to UI components is a simple and consistent way for applications to interact with and display data using the Data Binding property editor together with the DataSet component in the Visual Mobile Designer.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Mobile Game Builder&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Develop mobile games with a visual editor designed for the MIDP 2.0 Game API. The API allows you to create game scenes with sprites on a game canvas using tiled layers and layer management.&lt;/p&gt;  &lt;p&gt;Next, we shall only cover the basic Netbeans IDE interface.  The other topics shall be covered later on.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Lab 01: My First MIDlet for Java ME Application&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 1:  Start Netbeans 6.9.x&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 2: Create a new Java ME MIDP application: &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;File &amp;gt; New Project&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BTzuSFCPfIw/TK5qnr_V98I/AAAAAAAACZU/K2YgugWbJvc/s1600-h/image005%5B3%5D.jpg"&gt;&lt;img style="border-width: 0px; display: inline;" title="image005" alt="image005" src="http://lh6.ggpht.com/_BTzuSFCPfIw/TK5qoa7a9QI/AAAAAAAACZY/iQA-3g9jVBc/image005_thumb.jpg?imgmax=800" border="0" width="244" height="170" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Project name: HelloWorld1&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BTzuSFCPfIw/TK5qo9NGKFI/AAAAAAAACZc/aIj67LGH7Sw/s1600-h/image008%5B3%5D.jpg"&gt;&lt;img style="border-width: 0px; display: inline;" title="image008" alt="image008" src="http://lh6.ggpht.com/_BTzuSFCPfIw/TK5qpptJ0AI/AAAAAAAACZg/-4u3yHBlWqk/image008_thumb.jpg?imgmax=800" border="0" width="244" height="170" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Netbeans IDE navigations&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;[Projects]            [Navigator]         [File]&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BTzuSFCPfIw/TK5qqfT3F9I/AAAAAAAACZk/nOIW9QpVSsw/s1600-h/image016%5B3%5D.jpg"&gt;&lt;img style="border-width: 0px; display: inline;" title="image016" alt="image016" src="http://lh6.ggpht.com/_BTzuSFCPfIw/TK5qq7ygBgI/AAAAAAAACZo/ffLkLU2UGNM/image016_thumb.jpg?imgmax=800" border="0" width="244" height="166" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Views:  &lt;/b&gt;                                Source                  Screen                  Flow                      Analyzer              &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Other windows:               &lt;/b&gt;                                                Properties           Palette&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BTzuSFCPfIw/TK5qrmV6WFI/AAAAAAAACZs/KPFugfmiBnQ/s1600-h/image017%5B3%5D.jpg"&gt;&lt;img style="border-width: 0px; display: inline;" title="image017" alt="image017" src="http://lh4.ggpht.com/_BTzuSFCPfIw/TK5qsJlxr1I/AAAAAAAACZw/JpZkh7FvjYw/image017_thumb.jpg?imgmax=800" border="0" width="175" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Visual Mobile Designer Palatte Reference:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://wiki.netbeans.org/VisualMobileDesignerPalatteReference"&gt;http://wiki.netbeans.org/VisualMobileDesignerPalatteReference&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 3:  Build and Run:  Run &amp;gt; Run Main Project (F6)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BTzuSFCPfIw/TK5qs1h-YfI/AAAAAAAACZ0/25KTpbn6VFs/s1600-h/image018%5B3%5D.png"&gt;&lt;img style="border-width: 0px; display: inline;" title="image018" alt="image018" src="http://lh5.ggpht.com/_BTzuSFCPfIw/TK5quXW1CoI/AAAAAAAACZ4/M6V8yZ3si20/image018_thumb.png?imgmax=800" border="0" width="244" height="84" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BTzuSFCPfIw/TK5qvICxKjI/AAAAAAAACZ8/N5daxwGmDRQ/s1600-h/image019%5B3%5D.jpg"&gt;&lt;img style="border-width: 0px; display: inline;" title="image019" alt="image019" src="http://lh5.ggpht.com/_BTzuSFCPfIw/TK5qv5e_bQI/AAAAAAAACaA/_Dx84ahp6jI/image019_thumb.jpg?imgmax=800" border="0" width="93" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Step 4:  Select another emulator phone: &lt;b&gt;Projects &lt;/b&gt;Window:  right click on &lt;b&gt;HelloWorld1&lt;/b&gt; &amp;gt;&lt;b&gt; Properties&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt; &lt;/b&gt;Click on the &lt;b&gt;Devices&lt;/b&gt; to select another emulator phone.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BTzuSFCPfIw/TK5qwqrgz1I/AAAAAAAACaE/vkYARJqQu_w/s1600-h/image023%5B3%5D.jpg"&gt;&lt;img style="border-width: 0px; display: inline;" title="image023" alt="image023" src="http://lh6.ggpht.com/_BTzuSFCPfIw/TK5qxMMzs2I/AAAAAAAACaI/UZZNCxElnc8/image023_thumb.jpg?imgmax=800" border="0" width="128" height="244" /&gt;&lt;/a&gt;&lt;a href="http://lh6.ggpht.com/_BTzuSFCPfIw/TK5qx8RM62I/AAAAAAAACaM/HVkJnyIJtg8/s1600-h/image024%5B3%5D.jpg"&gt;&lt;img style="border-width: 0px; display: inline;" title="image024" alt="image024" src="http://lh4.ggpht.com/_BTzuSFCPfIw/TK5qyTdsGeI/AAAAAAAACaQ/VDum0i6-tgM/image024_thumb.jpg?imgmax=800" border="0" width="244" height="134" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 5:  Build and Run:  Run &amp;gt; Run Main Project (F6)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Lab 02: Packaging and Deployment&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 1:  Run &amp;gt; Clean and Build Project (shift F11)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 2:  Browse using Windows File Explorer to the project folder&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;For example: …\ My Documents\NetBeansProjects\HelloWorld1\dist&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BTzuSFCPfIw/TK5qy7sUARI/AAAAAAAACaU/b0D0RFvIJOE/s1600-h/image025%5B3%5D.png"&gt;&lt;img style="border-width: 0px; display: inline;" title="image025" alt="image025" src="http://lh4.ggpht.com/_BTzuSFCPfIw/TK5q-z_mtCI/AAAAAAAACaY/e4vZaOEZGkM/image025_thumb.png?imgmax=800" border="0" width="244" height="149" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Step 3:  Direct PC connection (depends on your mobile phone) &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;                For Sony Ericson, copy the above two files into the&lt;b&gt; "installs"&lt;/b&gt; folder&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BTzuSFCPfIw/TK5q_YomH2I/AAAAAAAACac/vA07VbkoTq4/s1600-h/image026%5B3%5D.png"&gt;&lt;img style="border-width: 0px; display: inline;" title="image026" alt="image026" src="http://lh3.ggpht.com/_BTzuSFCPfIw/TK5q_0mBIjI/AAAAAAAACag/qjmOxZJ9mu4/image026_thumb.png?imgmax=800" border="0" width="244" height="213" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Step 4:  In your mobile phone, browse to the "&lt;b&gt;installs&lt;/b&gt;" folder to install the MIDlet&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;What do we need to know?&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;(1) &lt;/b&gt;&lt;b&gt;Automatic preverification&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Because J2ME is designed for small devices with limited memory, much of the usual Java  preverification has been removed from the virtual machine to allow for a smaller footprint. As a result, it is necessary to preverify your J2ME application before deployment. An additional check is made at run time to make sure that the class has not changed since preverification.&lt;/p&gt;  &lt;p&gt;In Java ME IDEs (Netbeans/Eclipse), preverification of classes is done automatically during the compile process.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;(2) &lt;/b&gt;&lt;b&gt;Deployment: JAD and JAR files&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;JAR file is just a zip file containing two files: MANIFEST.MF and preverified class file (HelloMIDlet.class)&lt;/p&gt;  &lt;p&gt;MANIFEST.MF is a text file containing the following information:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Manifest-Version: 1.0&lt;/p&gt;    &lt;p&gt;Ant-Version: Apache Ant 1.8.1&lt;/p&gt;    &lt;p&gt;Created-By: 1.6.0_16-b01 (Sun Microsystems Inc.)&lt;/p&gt;    &lt;p&gt;MIDlet-1: HelloMIDlet, , hello.HelloMIDlet&lt;/p&gt;    &lt;p&gt;MIDlet-Vendor: Vendor&lt;/p&gt;    &lt;p&gt;MIDlet-Name: HelloWorld1&lt;/p&gt;    &lt;p&gt;MIDlet-Version: 1.0&lt;/p&gt;    &lt;p&gt;MicroEdition-Configuration: CLDC-1.1&lt;/p&gt;    &lt;p&gt;MicroEdition-Profile: MIDP-2.1&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;JAD (Java Application Descriptor) is just a text file containing the following information:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;MIDlet-1: HelloMIDlet, , hello.HelloMIDlet&lt;/p&gt;    &lt;p&gt;MIDlet-Jar-Size: 2069&lt;/p&gt;    &lt;p&gt;MIDlet-Jar-URL: HelloWorld1.jar&lt;/p&gt;    &lt;p&gt;MIDlet-Name: HelloWorld1&lt;/p&gt;    &lt;p&gt;MIDlet-Vendor: Vendor&lt;/p&gt;    &lt;p&gt;MIDlet-Version: 1.0&lt;/p&gt;    &lt;p&gt;MicroEdition-Configuration: CLDC-1.1&lt;/p&gt;    &lt;p&gt;MicroEdition-Profile: MIDP-2.1&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;b&gt;(3) &lt;/b&gt;&lt;b&gt;Other Deployment methods&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Over-The-Air (OTA)&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BTzuSFCPfIw/TK5rAsuqDaI/AAAAAAAACak/qwkhAG2q5wU/s1600-h/image027%5B3%5D.jpg"&gt;&lt;img style="border-width: 0px; display: inline;" title="image027" alt="image027" src="http://lh3.ggpht.com/_BTzuSFCPfIw/TK5rB1hBAZI/AAAAAAAACao/DJ986iBsJ_k/image027_thumb.jpg?imgmax=800" border="0" width="244" height="143" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Email and MMS&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;A JAR file could be included as an attachment to an e-mail or within an MMS. When the e-mail/MMS is opened, the AMS will automatically be activated and provide an option to install the sent MIDlet.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Deploying from Netbeans&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Projects [Right click] select Properties, select Deploying, select Deployment Method:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BTzuSFCPfIw/TK5rCYU1itI/AAAAAAAACas/YRJ191Bg8EU/s1600-h/image028%5B3%5D.jpg"&gt;&lt;img style="border-width: 0px; display: inline;" title="image028" alt="image028" src="http://lh6.ggpht.com/_BTzuSFCPfIw/TK5rDMw3GfI/AAAAAAAACaw/coq1NLemXxk/image028_thumb.jpg?imgmax=800" border="0" width="244" height="154" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Projects [Right click] select Deploy&lt;/p&gt;  &lt;p&gt;That’s all for the introduction.  Happy learning ....&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Continue your learning via tutorial series to develop mobile games in Java ME using Netbeans:   &lt;a title="http://mpgddmgd.blogspot.com/" href="http://mpgddmgd.blogspot.com/"&gt;http://mpgddmgd.blogspot.com/&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/2748920418214178759-4827606584230017406?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/4827606584230017406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=4827606584230017406' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/4827606584230017406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/4827606584230017406'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2010/10/netbeans-for-mobile-app.html' title='Netbeans for Mobile App'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_BTzuSFCPfIw/TK5qoa7a9QI/AAAAAAAACZY/iQA-3g9jVBc/s72-c/image005_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-6865823305402587672</id><published>2010-05-27T06:53:00.001-07:00</published><updated>2010-05-27T06:53:46.631-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quickstart'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='xna'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>XNA tutorials for beginners</title><content type='html'>&lt;p&gt;A good site with a series of simple tutorials for XNA:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/how-it-all-started.html"&gt;How it all started...&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/getting-started-with-xna.html"&gt;Getting Started with XNA&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-part-1-program-structure.html"&gt;XNA Part 1 - Program Structure&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-part-2-some-simple-drawing.html"&gt;XNA Part 2 - Some Simple Drawing&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-part-3-updating-object.html"&gt;XNA Part 3 - Updating an Object&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-slight-adjustment.html"&gt;XNA - A slight adjustment&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-part-4-controls.html"&gt;XNA Part 4 – Controls&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-part-5-game-object-class.html"&gt;XNA Part 5 - Game Object Class&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-alwaysno-noneverforget-to-check.html"&gt;XNA - &amp;quot;Always...no, no...Never...forget to check y...&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-part-6-audio-music.html"&gt;XNA Part 6 - Audio – Music&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-part-7-audio-sound-effects.html"&gt;XNA Part 7 - Audio - Sound Effects&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-sidebar-converting-single-index.html"&gt;XNA Sidebar - Converting a single index into multi...&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-part-8-simple-collisions.html"&gt;XNA Part 8 - Simple Collisions&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-part-9-pixel-based-collisions.html"&gt;XNA Part 9 - Pixel Based Collisions&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-part-10-sprite-sheet.html"&gt;XNA Part 10 - The Sprite Sheet&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/layout-changes.html"&gt;Layout Changes&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/getcals-download-location.html"&gt;GetCals Download Location&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-sidebar-smoothstep-and-lerp.html"&gt;XNA Sidebar - SmoothStep and Lerp&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-series-animation-part-1.html"&gt;XNA Series - Animation Part 1&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-series-animation-part-2.html"&gt;XNA Series - Animation Part 2&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-i-want-to-hear-from-you.html"&gt;XNA - I want to hear from you!&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-series-basic-ai.html"&gt;XNA Series - Basic AI&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-series-modular-ai.html"&gt;XNA Series - Modular AI&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-sidebar-trigonometry.html"&gt;XNA Sidebar – Trigonometry&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-series-modular-ai-waypoints.html"&gt;XNA Series - Modular AI – Waypoints&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-series-showing-mouse.html"&gt;XNA Series - Showing the Mouse&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-series-modular-ai-flee-and-arrival.html"&gt;XNA Series - Modular AI - Flee and Arrival&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-series-refactoring-gameobject.html"&gt;XNA Series - Refactoring GameObject&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-sidebar-intro-to-vector-math.html"&gt;XNA Sidebar - Intro To Vector Math&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/series-of-tubes.html"&gt;A Series of Tubes&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-sidebar-more-vectors.html"&gt;XNA Sidebar - More Vectors&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-version-30.html"&gt;XNA - Version 3.0&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/10/xna-simulating-gravity.html"&gt;XNA - Simulating Gravity&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/11/xna-series-simple-particle-system.html"&gt;XNA Series - A Simple Particle System&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/11/xna-series-ai-better-steering-part-1.html"&gt;XNA Series - AI - Better Steering - Part 1&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/11/xna-series-game-components.html"&gt;XNA Series - Game Components&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/11/xna-series-begining-3d-part-1.html"&gt;XNA Series - Begining 3D - Part 1&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://johnnygizmo.blogspot.com/2008/11/xna-series-3d-textures-from-blender.html"&gt;XNA Series - 3d textures from Blender&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-6865823305402587672?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/6865823305402587672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=6865823305402587672' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/6865823305402587672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/6865823305402587672'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2010/05/xna-tutorials-for-beginners.html' title='XNA tutorials for beginners'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-7763343954050550045</id><published>2010-03-22T01:23:00.001-07:00</published><updated>2010-03-22T01:23:57.048-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='quickstart'/><category scheme='http://www.blogger.com/atom/ns#' term='mod_tool'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='xsi'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><category scheme='http://www.blogger.com/atom/ns#' term='beginner'/><title type='text'>Adobe SoftImage Mod Tool Youtube Video Tutorial Series</title><content type='html'>&lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image001" border="0" alt="image001" src="http://lh3.ggpht.com/_BTzuSFCPfIw/S6bxpaKjw0I/AAAAAAAACKs/9mKLFgRqbyA/image001%5B3%5D.jpg?imgmax=800" width="124" height="94" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=1gngA0NnAQ0"&gt;XSI ModTool tutorial 9&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BTzuSFCPfIw/S6bx_eOj4QI/AAAAAAAACKw/X8lYvBrX4QA/s1600-h/image%5B2%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="image" border="0" alt="image" src="http://lh6.ggpht.com/_BTzuSFCPfIw/S6byZloVmUI/AAAAAAAACK0/zoE-R7iyvxo/image_thumb.png?imgmax=800" width="124" height="94" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=PHp6KhCw0qY"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=PHp6KhCw0qY"&gt;XSI ModTool tutorial 8&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image003" border="0" alt="image003" src="http://lh6.ggpht.com/_BTzuSFCPfIw/S6co3krw92I/AAAAAAAACK4/Q934pxlUy-o/image0033.jpg?imgmax=800" width="124" height="94" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=bwyPxoVOvUA"&gt;XSI ModTool tutorial 7&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image004" border="0" alt="image004" src="http://lh4.ggpht.com/_BTzuSFCPfIw/S6co4Sqj0NI/AAAAAAAACK8/YR70LuvN9Z4/image0043.jpg?imgmax=800" width="124" height="94" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=Nx3f5V6MF4g"&gt;XSI ModTool tutorial 6&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image005" border="0" alt="image005" src="http://lh3.ggpht.com/_BTzuSFCPfIw/S6co5JUP3ZI/AAAAAAAACLA/2pNL5SKDSAY/image0053.jpg?imgmax=800" width="124" height="94" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=A7uS2Tfhjek"&gt;XSI ModTool tutorial 5&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image006" border="0" alt="image006" src="http://lh4.ggpht.com/_BTzuSFCPfIw/S6co53yxetI/AAAAAAAACLE/dYrjNrZdJpo/image0063.jpg?imgmax=800" width="124" height="94" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=w232X6djbvI"&gt;XSI ModTool tutorial 4&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image007" border="0" alt="image007" src="http://lh3.ggpht.com/_BTzuSFCPfIw/S6co6djSKzI/AAAAAAAACLI/2rWuH77ooW4/image0073.jpg?imgmax=800" width="124" height="94" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=JILYLMevukI"&gt;XSI ModTool tutorial 3&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image008" border="0" alt="image008" src="http://lh5.ggpht.com/_BTzuSFCPfIw/S6co63I2n0I/AAAAAAAACLM/9b3p4W6_g2w/image0083.jpg?imgmax=800" width="124" height="94" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=F3TVtA5WfIg"&gt;XSI ModTool tutorial 2&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image009" border="0" alt="image009" src="http://lh5.ggpht.com/_BTzuSFCPfIw/S6co7jH7skI/AAAAAAAACLQ/gUvsWQ1Ukb0/image0093.jpg?imgmax=800" width="124" height="94" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=1LBnMMqro0M"&gt;XSI ModTool tutorial 1&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/2748920418214178759-7763343954050550045?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/7763343954050550045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=7763343954050550045' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/7763343954050550045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/7763343954050550045'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2010/03/adobe-softimage-mod-tool-youtube-video.html' title='Adobe SoftImage Mod Tool Youtube Video Tutorial Series'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_BTzuSFCPfIw/S6bxpaKjw0I/AAAAAAAACKs/9mKLFgRqbyA/s72-c/image001%5B3%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-7281103121980133567</id><published>2009-11-11T01:49:00.001-08:00</published><updated>2009-11-11T01:51:07.214-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='win7'/><category scheme='http://www.blogger.com/atom/ns#' term='winxp'/><category scheme='http://www.blogger.com/atom/ns#' term='dual boot'/><category scheme='http://www.blogger.com/atom/ns#' term='quickstart'/><category scheme='http://www.blogger.com/atom/ns#' term='windows7'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='beginner'/><title type='text'>Windows 7 Quick Start</title><content type='html'>&lt;p&gt;&lt;u&gt;Dual boot Windows XP and Windows 7 (XP installed first):&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Follow the steps listed in the following guide:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://apcmag.com/how_to_dual_boot_windows_xp_and_windows_7_xp_installed_first.htm" href="http://apcmag.com/how_to_dual_boot_windows_xp_and_windows_7_xp_installed_first.htm"&gt;http://apcmag.com/how_to_dual_boot_windows_xp_and_windows_7_xp_installed_first.htm&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Boot setting:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;NeoSmart Technologies EasyBCD to enable the configuration of the bootloader settings using GUI. It works for Vista as well as windows 7.&lt;/p&gt;  &lt;p&gt;Read more about it before you decide if you want to download it:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://en.wikipedia.org/wiki/EasyBCD" href="http://en.wikipedia.org/wiki/EasyBCD"&gt;http://en.wikipedia.org/wiki/EasyBCD&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Hardware drivers:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Automatically get recommended drivers and updates for your hardware.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://windows.microsoft.com/en-us/windows7/Automatically-get-recommended-drivers-and-updates-for-your-hardware" href="http://windows.microsoft.com/en-us/windows7/Automatically-get-recommended-drivers-and-updates-for-your-hardware"&gt;http://windows.microsoft.com/en-us/windows7/Automatically-get-recommended-drivers-and-updates-for-your-hardware&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Getting started - Security&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;1. Start &amp;gt; Getting Started &amp;gt; Discover Windows 7&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BTzuSFCPfIw/SvltpH7qwII/AAAAAAAAB-E/cMLofw6Zpj8/s1600-h/image%5B18%5D.png"&gt;&lt;img style="border-width: 0px; display: inline;" title="image" alt="image" src="http://lh4.ggpht.com/_BTzuSFCPfIw/SvltqnQsHqI/AAAAAAAAB-I/IUquvF7l7rQ/image_thumb%5B10%5D.png?imgmax=800" width="244" border="0" height="119" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;2.   Page down the web page and click on “First-week checklist” &amp;gt; &lt;strong&gt;Protect your computer from security threats&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BTzuSFCPfIw/SvlvqPpTiyI/AAAAAAAAB-M/ZY_HK_KOwZw/s1600-h/image%5B17%5D.png"&gt;&lt;img style="border-width: 0px; display: inline;" title="image" alt="image" src="http://lh5.ggpht.com/_BTzuSFCPfIw/SvlvshFRMzI/AAAAAAAAB-Q/nLK9rtQHh6c/image_thumb%5B9%5D.png?imgmax=800" width="244" border="0" height="85" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;3. There is a link somewhere in the page that leads to the providers of anti-virus tool:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/windows/antivirus-partners/windows-7.aspx" href="http://www.microsoft.com/windows/antivirus-partners/windows-7.aspx"&gt;http://www.microsoft.com/windows/antivirus-partners/windows-7.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BTzuSFCPfIw/SvqIhFElh7I/AAAAAAAAB-U/j3AUrg2_hw4/s1600-h/image16.png"&gt;&lt;img style="border-width: 0px; display: inline;" title="image" alt="image" src="http://lh4.ggpht.com/_BTzuSFCPfIw/SvqIiLpdwJI/AAAAAAAAB-Y/rYRUOlF3-yk/image_thumb8.png?imgmax=800" width="244" border="0" height="201" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Personally I downloaded Microsoft Security Essentials – Top row 2nd icon from the right side.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Getting Started – what’s new in Windows 7:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;1. Start &amp;gt; Getting Started &amp;gt; Discover Windows 7&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BTzuSFCPfIw/SvltpH7qwII/AAAAAAAAB-c/E3iaM6IuLmQ/s1600-h/image15.png"&gt;&lt;img style="border-width: 0px; display: inline;" title="image" alt="image" src="http://lh4.ggpht.com/_BTzuSFCPfIw/SvltqnQsHqI/AAAAAAAAB-g/NXNicq2Rbl0/image_thumb7.png?imgmax=800" width="244" border="0" height="119" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;2.   Page down the web page and click on “Get to know Windows 7”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BTzuSFCPfIw/SvqIkMuGEJI/AAAAAAAAB-s/qAm4Kb0F3Fk/s1600-h/image20.png"&gt;&lt;img style="border-width: 0px; display: inline;" title="image" alt="image" src="http://lh4.ggpht.com/_BTzuSFCPfIw/SvqIlAs5VyI/AAAAAAAAB-w/nU8-l0C6uHg/image_thumb12.png?imgmax=800" width="244" border="0" height="81" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;These should get us up and running for a start.  Happy window7ng!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-7281103121980133567?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/7281103121980133567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=7281103121980133567' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/7281103121980133567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/7281103121980133567'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2009/11/windows-7-quick-start.html' title='Windows 7 Quick Start'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_BTzuSFCPfIw/SvltqnQsHqI/AAAAAAAAB-I/IUquvF7l7rQ/s72-c/image_thumb%5B10%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-7448921427743014191</id><published>2009-09-16T01:37:00.001-07:00</published><updated>2009-09-16T01:37:23.211-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='deployment'/><category scheme='http://www.blogger.com/atom/ns#' term='quickstart'/><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='flashlite'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='guide'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='sis'/><category scheme='http://www.blogger.com/atom/ns#' term='beginner'/><title type='text'>Deployment of Flash Lite Applications</title><content type='html'>&lt;p&gt;With the end in mind, what do we deploy after we complete testing our Flash Lite applications?&lt;/p&gt;  &lt;p&gt;If it is a simple application with just one swf file, then copying the file to a Symbian S40/S60 handphone in its default location, the application may just work out of the box.&amp;#160; But if the application has more files and does not want to reside in the default location, then we need to deploy the files as NFL for S40 and SIS for S60 (plus signing).&lt;/p&gt;  &lt;h3&gt;Nokia Flash Packaging Tool&lt;/h3&gt;  &lt;p&gt;Nokia forum has a online tool just for this purpose:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.forum.nokia.com/Technology_Topics/Web_Technologies/Flash_Lite/flashpackager.html" href="http://www.forum.nokia.com/Technology_Topics/Web_Technologies/Flash_Lite/flashpackager.html"&gt;http://www.forum.nokia.com/Technology_Topics/Web_Technologies/Flash_Lite/flashpackager.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BTzuSFCPfIw/SrCjvdVJRtI/AAAAAAAAB7Q/tTKf3M4W3bE/s1600-h/image%5B3%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="image" border="0" alt="image" src="http://lh4.ggpht.com/_BTzuSFCPfIw/SrCjwY4ScbI/AAAAAAAAB7U/UPKBna9dmKs/image_thumb%5B1%5D.png?imgmax=800" width="644" height="479" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Start by clicking on the “SIS” or “NFL” tab.&amp;#160; After that, fill up the information in the sub tabs.&lt;/p&gt;  &lt;h3&gt;Create SIS Step by Step&lt;/h3&gt;  &lt;p&gt;The following guide from Nokia library provides a step by step tutorial on how to generate a SIS package using the tool.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://library.forum.nokia.com/index.jsp?topic=/Flash_Lite_Developers_Library/GUID-E08FE0A9-B2BA-420E-AECC-84D887D415F9.html" href="http://library.forum.nokia.com/index.jsp?topic=/Flash_Lite_Developers_Library/GUID-E08FE0A9-B2BA-420E-AECC-84D887D415F9.html"&gt;http://library.forum.nokia.com/index.jsp?topic=/Flash_Lite_Developers_Library/GUID-E08FE0A9-B2BA-420E-AECC-84D887D415F9.html&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Create NFL Step by Step&lt;/h3&gt;  &lt;p&gt;The following guide from Nokia library provides a step by step tutorial on how to generate a NFL package using the tool:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://library.forum.nokia.com/index.jsp?topic=/Flash_Lite_Developers_Library/GUID-E08FE0A9-B2BA-420E-AECC-84D887D415F9.html" href="http://library.forum.nokia.com/index.jsp?topic=/Flash_Lite_Developers_Library/GUID-E08FE0A9-B2BA-420E-AECC-84D887D415F9.html"&gt;http://library.forum.nokia.com/index.jsp?topic=/Flash_Lite_Developers_Library/GUID-E08FE0A9-B2BA-420E-AECC-84D887D415F9.html&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-7448921427743014191?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/7448921427743014191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=7448921427743014191' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/7448921427743014191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/7448921427743014191'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2009/09/deployment-of-flash-lite-applications.html' title='Deployment of Flash Lite Applications'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_BTzuSFCPfIw/SrCjwY4ScbI/AAAAAAAAB7U/UPKBna9dmKs/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-3425516059331019670</id><published>2009-09-09T19:04:00.001-07:00</published><updated>2009-09-09T19:04:52.865-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='kunerilite'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='flashlite'/><category scheme='http://www.blogger.com/atom/ns#' term='widget'/><category scheme='http://www.blogger.com/atom/ns#' term='jarpa'/><category scheme='http://www.blogger.com/atom/ns#' term='programming language'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='javaME'/><title type='text'>Developing Application for Mobile Devices</title><content type='html'>&lt;p&gt;Symbian Developer Network published the following two useful papers:&lt;/p&gt;  &lt;h5&gt;1. Multi-Language Programming – Part I overview&lt;/h5&gt;  &lt;p&gt;&lt;a title="http://developer.symbian.com/main/downloads/papers/Multi_Language_Programming_Part1_Overview.pdf" href="http://developer.symbian.com/main/downloads/papers/Multi_Language_Programming_Part1_Overview.pdf"&gt;http://developer.symbian.com/main/downloads/papers/Multi_Language_Programming_Part1_Overview.pdf&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This paper covers the pro and con of C++, Java ME, Flash Lite,&amp;#160; Python, Web runtime (widgets) and .NET compact framework.&amp;#160; &lt;/p&gt;  &lt;p&gt;It also lists the pro &amp;amp; con, supporting tools and packaging for development with 2 languages – Java &amp;amp; Flash, C++ &amp;amp; Flash, C++ &amp;amp; Widgets and Java &amp;amp; C++.&lt;/p&gt;  &lt;h5&gt;2. Multi-Language Programming – Part 2 extending Flash Lite with Java ME or Symbian C++&lt;/h5&gt;  &lt;p&gt;&lt;a title="http://developer.symbian.com/main/downloads/papers/MLP_Paper+2_v1.0.pdf" href="http://developer.symbian.com/main/downloads/papers/MLP_Paper+2_v1.0.pdf"&gt;http://developer.symbian.com/main/downloads/papers/MLP_Paper+2_v1.0.pdf&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This paper illustrated two examples of combining two programming languages for mobile application development: &lt;/p&gt;  &lt;p&gt;1) FlashLite for UI and interface with Java ME (using Jarpa); and &lt;/p&gt;  &lt;p&gt;2) FlashLite for UI and interface with C++ (using KuneriLite).&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Jarpa&lt;/u&gt;&lt;/strong&gt; facilitates the launching of application and the communication between two runtimes to enable access to additional functionality.&amp;#160; &lt;strong&gt;&lt;u&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Kunerilite&lt;/u&gt;&lt;/strong&gt; is a Rapid Application Development toolkit to allow flash Lite in accessing native Symbian APIs such as accelerometer, camera, bluetooth, GPS, file system and etc.&lt;/p&gt;  &lt;p&gt;These two papers are worth reading to have an overview of the strengths and limitations of each of the programming languages and then based on the specification of our project, to make decision on which one or two languages to use.&amp;#160; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-3425516059331019670?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/3425516059331019670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=3425516059331019670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/3425516059331019670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/3425516059331019670'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2009/09/developing-application-for-mobile.html' title='Developing Application for Mobile Devices'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-8298224060261508955</id><published>2009-09-09T15:44:00.001-07:00</published><updated>2009-09-09T21:34:46.295-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quickstart'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='kunerilite'/><category scheme='http://www.blogger.com/atom/ns#' term='flashlite'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='beginner'/><title type='text'>FlashLite Tutorial for Beginner – Setup Development Environment</title><content type='html'>&lt;p&gt;We shall be using kunerilite with Flash CS3.&lt;/p&gt;  &lt;p&gt;&lt;img height="208" src="http://wiki.kunerilite.net/images/0/06/FLAP.gif" width="558" /&gt; &lt;/p&gt;  &lt;p&gt;KuneriLite is an innovative Rapid Application Development toolkit to extend Adobe Flash Lite capabilities and create thrilling S60 applications faster, easier and cheaper. It enables Flash Lite developers to go beyond Flash Lite development without any knowledge of Symbian programming.&lt;/p&gt;  &lt;p&gt;Wiki and introduction: &lt;a title="http://wiki.kunerilite.net/index.php?title=KuneriLite_Introduction" href="http://wiki.kunerilite.net/index.php?title=KuneriLite_Introduction"&gt;http://wiki.kunerilite.net/index.php?title=KuneriLite_Introduction&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;Preparation and setup&lt;/h4&gt;  &lt;p&gt;For those with flash CS, use the following guide to setup your development environment.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://wiki.kunerilite.net/index.php?title=KuneriLite_Wizard_Beginner%27s_Guide" href="http://wiki.kunerilite.net/index.php?title=KuneriLite_Wizard_Beginner%27s_Guide"&gt;http://wiki.kunerilite.net/index.php?title=KuneriLite_Wizard_Beginner%27s_Guide&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;For those without Flash CS, use the following guide to setup FlashDevelop as well.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.flashdevelop.org/" href="http://www.flashdevelop.org/"&gt;http://www.flashdevelop.org/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In our next blog, we shall create a GPS application to track our location using Flash and Kunerilite.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-8298224060261508955?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/8298224060261508955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=8298224060261508955' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/8298224060261508955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/8298224060261508955'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2009/09/flashlite-tutorial-for-beginner-setup_09.html' title='FlashLite Tutorial for Beginner – Setup Development Environment'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-8568529800450090106</id><published>2009-08-07T15:31:00.001-07:00</published><updated>2009-08-07T15:32:51.090-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='login'/><category scheme='http://www.blogger.com/atom/ns#' term='quickstart'/><category scheme='http://www.blogger.com/atom/ns#' term='logout'/><category scheme='http://www.blogger.com/atom/ns#' term='ado.net'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='mx2004'/><category scheme='http://www.blogger.com/atom/ns#' term='guide'/><category scheme='http://www.blogger.com/atom/ns#' term='dreamweaver'/><title type='text'>Creating Login access using Dreamweaver MX2004</title><content type='html'>&lt;p&gt;This Dreamweaver MX2004 ADO.NET Login series tap on the &lt;a href="http://ictmp.blogspot.com/2009/08/creating-insert-update-delete-and.html"&gt;earlier three lesson series of videos&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Lesson 1 series: Overview of lesson 1-5.&amp;#160; Create the display page + create the Access database &amp;amp; table &lt;/p&gt;    &lt;p&gt;Lesson 2 series: Create the update and insert pages &lt;/p&gt;    &lt;p&gt;Lesson 3 series: Create the delete page + index page &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The lesson 4 series show how to create &lt;strong&gt;login to limit access&lt;/strong&gt; while the lesson 5 series tap on lesson 4 series to create &lt;strong&gt;role-based&lt;/strong&gt; login.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:6523b011-7e05-407e-ad77-273950ad00be" class="wlWriterEditableSmartContent"&gt;&lt;div id="340f4875-9b67-417d-bc86-9318b88affcf" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=XKjtoI_XeFw" target="_new"&gt;&lt;img src="http://lh3.ggpht.com/_BTzuSFCPfIw/SnyrIYr5q8I/AAAAAAAAB4s/0VJzw1fsyZ4/videoafeeb3b7800c%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('340f4875-9b67-417d-bc86-9318b88affcf'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/XKjtoI_XeFw&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/XKjtoI_XeFw&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Lesson 4 part 1&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:b5c39554-d096-4b2d-bb11-3441e864f1b1" class="wlWriterEditableSmartContent"&gt;&lt;div id="3504b77e-aa49-496f-8536-493838985fd2" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=WqY-nb_lG9U" target="_new"&gt;&lt;img src="http://lh5.ggpht.com/_BTzuSFCPfIw/SnyrJSl3wfI/AAAAAAAAB40/0y2wmUEBQtI/video571419841427%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('3504b77e-aa49-496f-8536-493838985fd2'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/WqY-nb_lG9U&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/WqY-nb_lG9U&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Lesson 4 part 2&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:3229568f-8d9e-4f7f-8b43-39e036504116" class="wlWriterEditableSmartContent"&gt;&lt;div id="fbb46be4-d900-4c09-a0c0-07aa29a02d8c" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=z_-sDZU57U0" target="_new"&gt;&lt;img src="http://lh4.ggpht.com/_BTzuSFCPfIw/SnyrK4oIXZI/AAAAAAAAB44/qvLy1-VzoUU/video158bd7e054ed%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('fbb46be4-d900-4c09-a0c0-07aa29a02d8c'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/z_-sDZU57U0&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/z_-sDZU57U0&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Lesson 4 part 3&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:ee157f4e-f44b-48c2-821b-4127ac6a3867" class="wlWriterEditableSmartContent"&gt;&lt;div id="ed690f21-da20-4d95-9efd-c6cdfcb56d1d" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=Zk6aBpVDlOo" target="_new"&gt;&lt;img src="http://lh5.ggpht.com/_BTzuSFCPfIw/SnyrLzbNkwI/AAAAAAAAB5E/qbymTnwZo4w/video710d8ff74ef4%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('ed690f21-da20-4d95-9efd-c6cdfcb56d1d'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/Zk6aBpVDlOo&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/Zk6aBpVDlOo&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Lesson 4 part 4&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:97a0c3dd-cf77-4287-8435-69f1f1b0208f" class="wlWriterEditableSmartContent"&gt;&lt;div id="65f1e0b4-8bf5-44ab-a197-aa14c34cb235" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=H5uqn-yKTx8" target="_new"&gt;&lt;img src="http://lh5.ggpht.com/_BTzuSFCPfIw/SnyrNPxYmdI/AAAAAAAAB5I/EydAX2pQxvU/video13a9d9c6d6a6%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('65f1e0b4-8bf5-44ab-a197-aa14c34cb235'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/H5uqn-yKTx8&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/H5uqn-yKTx8&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Lesson 4 part 5&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:a35d694f-09cb-406b-ac76-2d29c4b1c158" class="wlWriterEditableSmartContent"&gt;&lt;div id="472cca00-0b52-4ecc-99b5-1e41dd616b96" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=YzaJKex8UjE" target="_new"&gt;&lt;img src="http://lh6.ggpht.com/_BTzuSFCPfIw/SnyrOcf0uJI/AAAAAAAAB5Q/WukyUmypZjI/videoe6117c5873eb%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('472cca00-0b52-4ecc-99b5-1e41dd616b96'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/YzaJKex8UjE&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/YzaJKex8UjE&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Lesson 4 part 6&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:bb043de5-77b4-4094-a5be-a3af6b71a826" class="wlWriterEditableSmartContent"&gt;&lt;div id="a307db9b-d1a3-4596-9df4-bb7e2978f813" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=iGCfd_2qnaA" target="_new"&gt;&lt;img src="http://lh5.ggpht.com/_BTzuSFCPfIw/SnyrPgMWFdI/AAAAAAAAB5c/pGz0c-3bh34/video750022fb4531%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('a307db9b-d1a3-4596-9df4-bb7e2978f813'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/iGCfd_2qnaA&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/iGCfd_2qnaA&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Lesson 5 part 1&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:2f20993f-4669-4ad5-956b-f97befda650e" class="wlWriterEditableSmartContent"&gt;&lt;div id="0ab934da-f8a2-42b7-a913-a0689c6d8d95" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=6kaRQ98bYLY" target="_new"&gt;&lt;img src="http://lh3.ggpht.com/_BTzuSFCPfIw/SnyrQUutKbI/AAAAAAAAB5k/QQfVSzPIToM/video62889e42d166%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('0ab934da-f8a2-42b7-a913-a0689c6d8d95'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/6kaRQ98bYLY&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/6kaRQ98bYLY&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Lesson 5 part 2&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:7c7bc15f-aaa4-4718-a8e2-c434f38e2aec" class="wlWriterEditableSmartContent"&gt;&lt;div id="600e9259-5696-4e1e-9e6d-c48ced70ebd4" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=hEK2RxPQ4hk" target="_new"&gt;&lt;img src="http://lh6.ggpht.com/_BTzuSFCPfIw/SnyrRaSMYjI/AAAAAAAAB5s/Mn74rAR0_J4/video9df3a329818a%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('600e9259-5696-4e1e-9e6d-c48ced70ebd4'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/hEK2RxPQ4hk&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/hEK2RxPQ4hk&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Lesson 5 part 3&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Hope the above videos are useful for you.&amp;#160; Please give some comments as feedback.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-8568529800450090106?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/8568529800450090106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=8568529800450090106' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/8568529800450090106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/8568529800450090106'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2009/08/creating-login-access-using-dreamweaver.html' title='Creating Login access using Dreamweaver MX2004'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_BTzuSFCPfIw/SnyrIYr5q8I/AAAAAAAAB4s/0VJzw1fsyZ4/s72-c/videoafeeb3b7800c%5B5%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-4507741277058958721</id><published>2009-08-07T01:49:00.001-07:00</published><updated>2009-08-07T01:52:31.795-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ado.net'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='mx2004'/><category scheme='http://www.blogger.com/atom/ns#' term='guide'/><category scheme='http://www.blogger.com/atom/ns#' term='dreamweaver'/><category scheme='http://www.blogger.com/atom/ns#' term='beginner'/><title type='text'>Creating Insert, Update, Delete and Display pages using Dreamweaver MX 2004</title><content type='html'>&lt;p&gt;This tutorial consists of the following 3 lessons:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Create the display page + create the Access database &amp;amp; table &lt;/li&gt;    &lt;li&gt;Create the update and insert pages (3 parts) &lt;/li&gt;    &lt;li&gt;Create the delete page + index page (3 parts) &lt;/li&gt; &lt;/ol&gt;  &lt;h3&gt;Lesson 1 – Create the display page + create the Access database &amp;amp; table&lt;/h3&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:5a179a82-ecdb-4e8a-95f5-b69d29fbc3cf" class="wlWriterEditableSmartContent"&gt;&lt;div id="68bdf3f4-cd72-4b7d-abd7-46a4104147d9" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=7FxMvufuRxw" target="_new"&gt;&lt;img src="http://lh6.ggpht.com/_BTzuSFCPfIw/SnvqoAuebpI/AAAAAAAAB3A/Mmznr9J70kk/video868208ed5a9a%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('68bdf3f4-cd72-4b7d-abd7-46a4104147d9'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/7FxMvufuRxw&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/7FxMvufuRxw&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Lesson 1 part 1&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:774b896d-0ea0-4f52-a85d-17c2c8d10cf1" class="wlWriterEditableSmartContent"&gt;&lt;div id="0f4a8cb2-8bc2-4214-8ada-ae47debc5711" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=5x2Yez7vshI" target="_new"&gt;&lt;img src="http://lh5.ggpht.com/_BTzuSFCPfIw/SnvqpOUJ2iI/AAAAAAAAB3I/7TFYlQ4z5dQ/videoe26d11c0f5fe%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('0f4a8cb2-8bc2-4214-8ada-ae47debc5711'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/5x2Yez7vshI&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/5x2Yez7vshI&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Lesson 1 part 2&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:eecbcae4-1127-4979-96a2-a52e5d6ce9fa" class="wlWriterEditableSmartContent"&gt;&lt;div id="f162f86b-eaf4-4934-b64f-b1675dbbcc43" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=VfFLWPQ6dEw" target="_new"&gt;&lt;img src="http://lh6.ggpht.com/_BTzuSFCPfIw/SnvqqdJxGZI/AAAAAAAAB3M/GuyS-lBPEsI/video8aeaa4772650%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('f162f86b-eaf4-4934-b64f-b1675dbbcc43'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/VfFLWPQ6dEw&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/VfFLWPQ6dEw&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Lesson 1 part 3&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Lesson 2 - Create the update and insert pages (3 parts)&lt;/h3&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:45202f27-0bbb-4397-8141-cedd2572652a" class="wlWriterEditableSmartContent"&gt;&lt;div id="19f56363-5d6d-4945-88e6-515e859c335d" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=nd8E-6MIWOM" target="_new"&gt;&lt;img src="http://lh5.ggpht.com/_BTzuSFCPfIw/SmkSk1b4a5I/AAAAAAAAB3U/oyJhuOmG4Ok/video7add61da7d9c%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('19f56363-5d6d-4945-88e6-515e859c335d'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/nd8E-6MIWOM&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/nd8E-6MIWOM&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="clear:both;font-size:.8em;"&gt;Lesson 2 part 1&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:e9a104f3-7de1-4da6-b641-14e8963b8713" class="wlWriterEditableSmartContent"&gt;&lt;div id="92ba916c-ad1e-433e-aa3e-b169aaea0ae4" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=_GpjTnfQVEg" target="_new"&gt;&lt;img src="http://lh5.ggpht.com/_BTzuSFCPfIw/SmkSs2tofPI/AAAAAAAAB3c/SiXlma44qGE/videob8799501d5a3%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('92ba916c-ad1e-433e-aa3e-b169aaea0ae4'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/_GpjTnfQVEg&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/_GpjTnfQVEg&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="clear:both;font-size:.8em;"&gt;Lesson 2 part 2&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:155eacc6-bf35-44e7-a1af-e43d325190ff" class="wlWriterEditableSmartContent"&gt;&lt;div id="aa3f04ec-2294-415f-a1f8-f3d68857fb7b" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=REBY4jfF00I" target="_new"&gt;&lt;img src="http://lh4.ggpht.com/_BTzuSFCPfIw/SmkSvnXYpuI/AAAAAAAAB3k/DcwIEEbH8K4/video3b8d54e238f4%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('aa3f04ec-2294-415f-a1f8-f3d68857fb7b'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/REBY4jfF00I&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/REBY4jfF00I&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="clear:both;font-size:.8em;"&gt;Lesson 2 part 3&lt;/div&gt;&lt;/div&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Lesson 3 - Create the delete page + index page (3 parts)&lt;/h3&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:e5771ba1-c54f-4c63-ba7b-17ab8a1f40dc" class="wlWriterEditableSmartContent"&gt;&lt;div id="4e966508-5d48-425c-ba56-9c736fefe295" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=paHfUid9zZs" target="_new"&gt;&lt;img src="http://lh4.ggpht.com/_BTzuSFCPfIw/SmkSybRxM8I/AAAAAAAAB3o/G7mJBqC-7iY/video707f93da2c21%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('4e966508-5d48-425c-ba56-9c736fefe295'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/paHfUid9zZs&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/paHfUid9zZs&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="clear:both;font-size:.8em;"&gt;Lesson 3 part 1&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:ae7e173b-ff31-4800-8e1d-d7f1f16c3eae" class="wlWriterEditableSmartContent"&gt;&lt;div id="7cf309f4-cc8e-49b2-965d-a37af6cdeb41" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=s5TDl_bSrJk" target="_new"&gt;&lt;img src="http://lh5.ggpht.com/_BTzuSFCPfIw/SmkS1Mgj9TI/AAAAAAAAB3s/od6bz0_vAcc/video3adf5f36fe54%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('7cf309f4-cc8e-49b2-965d-a37af6cdeb41'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/s5TDl_bSrJk&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/s5TDl_bSrJk&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="clear:both;font-size:.8em;"&gt;Lesson 3 part 2&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:17211400-03c3-4654-8ec4-95ad67be942b" class="wlWriterEditableSmartContent"&gt;&lt;div id="9bda1356-abfa-40ab-bc20-e7bfe7a7be35" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=pXAmkRk8bhs" target="_new"&gt;&lt;img src="http://lh6.ggpht.com/_BTzuSFCPfIw/SmkS4zr5xYI/AAAAAAAAB4A/C-PJErK8NIM/videoe15d9e6b3bc4%5B5%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('9bda1356-abfa-40ab-bc20-e7bfe7a7be35'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/pXAmkRk8bhs&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/pXAmkRk8bhs&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="clear:both;font-size:.8em;"&gt;Lesson 3 part 3&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you find these videos useful, please leave your comments as feedback.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-4507741277058958721?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/4507741277058958721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=4507741277058958721' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/4507741277058958721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/4507741277058958721'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2009/08/creating-insert-update-delete-and.html' title='Creating Insert, Update, Delete and Display pages using Dreamweaver MX 2004'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_BTzuSFCPfIw/SnvqoAuebpI/AAAAAAAAB3A/Mmznr9J70kk/s72-c/video868208ed5a9a%5B5%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-8910374258324081070</id><published>2009-07-30T20:03:00.001-07:00</published><updated>2009-07-30T20:11:16.238-07:00</updated><title type='text'>Mashup and Google Map API</title><content type='html'>&lt;p&gt;Trying out the auto generated Map to be embedded below:&lt;/p&gt; &lt;iframe height="350" marginheight="0" src="http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=2+tampines+street+92&amp;amp;sll=1.313652,103.698921&amp;amp;sspn=0.018277,0.027595&amp;amp;ie=UTF8&amp;amp;ll=1.356084,103.946371&amp;amp;spn=0.009138,0.013797&amp;amp;z=14&amp;amp;iwloc=A&amp;amp;output=embed" frameborder="0" width="425" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;br /&gt;&lt;small&gt;&lt;a style="text-align: left; color: #0000ff" href="http://maps.google.com/maps?f=q&amp;amp;source=embed&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=2+tampines+street+92&amp;amp;sll=1.313652,103.698921&amp;amp;sspn=0.018277,0.027595&amp;amp;ie=UTF8&amp;amp;ll=1.356084,103.946371&amp;amp;spn=0.009138,0.013797&amp;amp;z=14&amp;amp;iwloc=A"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;   &lt;p&gt;Reference:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://econym.org.uk/gmap/embed.htm" href="http://econym.org.uk/gmap/embed.htm"&gt;http://econym.org.uk/gmap/embed.htm&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/2748920418214178759-8910374258324081070?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/8910374258324081070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=8910374258324081070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/8910374258324081070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/8910374258324081070'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2009/07/mashup-and-google-map-api.html' title='Mashup and Google Map API'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-457253680416917436</id><published>2009-07-27T22:08:00.001-07:00</published><updated>2009-07-27T22:08:12.093-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='login'/><category scheme='http://www.blogger.com/atom/ns#' term='logout'/><category scheme='http://www.blogger.com/atom/ns#' term='ado.net'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='mx2004'/><category scheme='http://www.blogger.com/atom/ns#' term='dreamweaver'/><title type='text'>ADO.NET Login and logout</title><content type='html'>&lt;h3&gt;Useful References to create the login and logout pages&lt;/h3&gt;  &lt;p&gt;1. Advanced User Authentication with .NET and Dreamweaver, Part 1&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a title="http://www.communitymx.com/content/article.cfm?cid=AE2F5D2087EBB9EF&amp;amp;print=true" href="http://www.communitymx.com/content/article.cfm?cid=AE2F5D2087EBB9EF&amp;amp;print=true"&gt;http://www.communitymx.com/content/article.cfm?cid=AE2F5D2087EBB9EF&amp;amp;print=true&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;2. Advanced User Authentication with .NET and Dreamweaver, Part 2&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a title="http://www.communitymx.com/content/article.cfm?cid=ABF7FD9A43DC2D59&amp;amp;print=true" href="http://www.communitymx.com/content/article.cfm?cid=ABF7FD9A43DC2D59&amp;amp;print=true"&gt;http://www.communitymx.com/content/article.cfm?cid=ABF7FD9A43DC2D59&amp;amp;print=true&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;3. ASP.NET入门经典-First Experience with ASP.NET in DWMX&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a title="http://www.cndw.com/tech/net/2006021613813.asp" href="http://www.cndw.com/tech/net/2006021613813.asp"&gt;http://www.cndw.com/tech/net/2006021613813.asp&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;4. FormsAuthentication.SignOut method and example&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspx" href="http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspx&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/2748920418214178759-457253680416917436?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/457253680416917436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=457253680416917436' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/457253680416917436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/457253680416917436'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2009/07/adonet-login-and-logout.html' title='ADO.NET Login and logout'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-1229001811317185468</id><published>2009-05-11T06:52:00.001-07:00</published><updated>2009-05-11T06:52:41.974-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='quickstart'/><category scheme='http://www.blogger.com/atom/ns#' term='Aptana'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='beginner'/><title type='text'>Adobe AIR for Facebook</title><content type='html'>&lt;h4&gt;Getting ready with the IDE, plug-in and SDK&lt;/h4&gt;  &lt;p&gt;1. Download Aptana IDE for AIR (Adobe also provides &lt;a href="http://www.adobe.com/products/air/tools/"&gt;extensions&lt;/a&gt; so you can build AIR applications directly from Adobe Flex Builder™ 3, Dreamweaver® CS3, and Flash CS3 Professional).&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a title="http://www.aptana.com/air" href="http://www.aptana.com/air"&gt;http://www.aptana.com/air&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;2. Update Aptana (Build: 1.2.6.024313) with the Adobe AIR plug-in.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;2.1.&amp;#160; From the Help menu, select Software Updates -&amp;gt; Find and Install... to open an Install/Update pop-up window.     &lt;br /&gt;2.2. On the Install/Update pop-up window, choose the Search for new features to install option, and click the Next button.      &lt;br /&gt;2.3. On the Updates window, check the box next to the name of the plug-in “Aptana: Support for Adobe AIR”, and click the Next button.      &lt;br /&gt;2.4. Choose the option to accept the terms of the license agreement, and click the Next button.      &lt;br /&gt;2.5. Click the Finish button.      &lt;br /&gt;2.6. Click the Install All button. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;3. Download Adobe AIR SDK and unzip it.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://www.adobe.com/go/getairsdk/"&gt;http://www.adobe.com/go/getairsdk/&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;4. Configure Aptana to use the SDK.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;4.1.&amp;#160; From the Window menu in Aptana, select Preferences... to open a Preferences window.     &lt;br /&gt;4.2. On the tree on the left side of the Preferences window, expand Aptana and select AIR SDKs to go to the AIR SDKs screen.      &lt;br /&gt;4.3. Add the AIR SDK:      &lt;br /&gt;- 4.3.1. On the AIR SDKs screen, click the Add... button to open an Add AIR SDK pop-up window.      &lt;br /&gt;- 4.3.2. In the AIR SDK Directory field, browse to the top-level directory where your AIR SDK is installed.      &lt;br /&gt;- 4.3.3. In the AIR SDK Name field, type a name for your SDK.&amp;#160; &lt;br /&gt;- 4.3.4. Click the OK button to add the SDK.       &lt;br /&gt;4.4. Click OK.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;Start a new project&lt;/h4&gt;  &lt;p&gt;&lt;a title="http://www.aptana.com/docs/index.php/Creating_an_AIR_project" href="http://www.aptana.com/docs/index.php/Creating_an_AIR_project"&gt;http://www.aptana.com/docs/index.php/Creating_an_AIR_project&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;Comparison of Javascript libaries&lt;/h4&gt;  &lt;p&gt;&lt;a title="http://wiki.freaks-unidos.net/javascript-libraries" href="http://wiki.freaks-unidos.net/javascript-libraries"&gt;http://wiki.freaks-unidos.net/javascript-libraries&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;Running a project&lt;/h4&gt;  &lt;p&gt;&lt;a title="http://www.aptana.com/docs/index.php/Running_an_AIR_application" href="http://www.aptana.com/docs/index.php/Running_an_AIR_application"&gt;http://www.aptana.com/docs/index.php/Running_an_AIR_application&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;Generate Own Digital Certificate (untrusted)&lt;/h4&gt; 1.&amp;#160; From the Window menu in Aptana, select Preferences... to open a Preferences window.  &lt;br /&gt;2. On the tree on the left side of the Preferences window, expand Aptana and select AIR Certificates to go to the AIR Certificates screen.  &lt;br /&gt;3. Add the certificate:  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BTzuSFCPfIw/Sggtpp42WUI/AAAAAAAABtw/d_mTSBJqUvc/s1600-h/image%5B6%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_BTzuSFCPfIw/SggtqG2T31I/AAAAAAAABt0/tC40LQDkFbw/image_thumb%5B2%5D.png?imgmax=800" width="590" height="484" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;Exporting&lt;/h4&gt;  &lt;p&gt;&lt;a title="http://www.aptana.com/docs/index.php/Exporting_an_AIR_project" href="http://www.aptana.com/docs/index.php/Exporting_an_AIR_project"&gt;http://www.aptana.com/docs/index.php/Exporting_an_AIR_project&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;Running the application&lt;/h4&gt;  &lt;p&gt;Click on the *.AIR file and start the installation.&lt;/p&gt;  &lt;p&gt;That’s all for now.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-1229001811317185468?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/1229001811317185468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=1229001811317185468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/1229001811317185468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/1229001811317185468'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2009/05/adobe-air-for-facebook.html' title='Adobe AIR for Facebook'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_BTzuSFCPfIw/SggtqG2T31I/AAAAAAAABt0/tC40LQDkFbw/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-6451990560470387841</id><published>2009-03-02T19:07:00.001-08:00</published><updated>2009-03-02T19:07:55.981-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='NeoAxis'/><category scheme='http://www.blogger.com/atom/ns#' term='oreg3d'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='guide'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>Learning NeoAxis to create a simple RTS Game</title><content type='html'>&lt;p&gt;The purpose of this blog is list down my learning journey of NeoAxis (version 0.57) from zero to completing my game project during the period from 1 Oct to 31 Dec 2008.&amp;#160; &lt;/p&gt;  &lt;h3&gt;Make a new type of GameCharacter&lt;/h3&gt;  &lt;p&gt;Refer to &lt;a href="http://games.kipase.com/static.php?page=milkshape_to_neoaxis"&gt;Wellu's 3D Game Creating Madness - MilkShape to NeoAxis&lt;/a&gt;&lt;a name=""&gt;&lt;/a&gt;.&amp;#160; Instead of generating the mesh from MilkShape 3D with the Ogre exporter, I used the Ninja mesh that comes with Ogre SDK.&amp;#160; &lt;/p&gt;  &lt;p&gt;Create a new folder &amp;quot;ninja&amp;quot; into Game\Bin\Data\Types\Units.&lt;/p&gt;  &lt;p&gt;Locate the following files from Ogre SDK media folder and copy them into the newly created folder:&lt;/p&gt;  &lt;p&gt;- ninja.mesh&lt;/p&gt;  &lt;p&gt;- ninja.skeleton&lt;/p&gt;  &lt;p&gt;- nskingr.jpg&lt;/p&gt;  &lt;p&gt;Follow the instruction from the above tutorial, starting from &amp;quot;Open up NeoAxis Resource Editor. Create a new folder and add a new Entity type called Soldier.type. Select GameCharacter as the base class of your new type.&amp;quot;&amp;#160;&amp;#160; In our case, the folder has already been created earlier.&lt;/p&gt;  &lt;p&gt;At the end, the result of our effort is as follows:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BTzuSFCPfIw/Sayepm2EM8I/AAAAAAAABro/hapO2Wc9YZg/s1600-h/image3.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="321" alt="image" src="http://lh6.ggpht.com/_BTzuSFCPfIw/SayeqrPnqqI/AAAAAAAABrs/gjEBVLNghtQ/image_thumb1.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3&gt;Create the Static Geometry&lt;/h3&gt;  &lt;p&gt;In window explorer, look into the following folder: Game\Bin\Data\Maps\RTSDemo\StaticGeometry&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BTzuSFCPfIw/SayernOtrsI/AAAAAAAABrw/MX1mjjJfmHM/s1600-h/image411.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="142" alt="image" src="http://lh5.ggpht.com/_BTzuSFCPfIw/SayeshTWRxI/AAAAAAAABr0/LF3J1NfewV0/image_thumb11.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Using mesh viewer, we are able to observe that Data.mesh is the background terrain used in RTSDemo.&amp;#160; Instead of creating our terrain using external editor or the &lt;a href="http://72.14.235.104/translate_c?hl=en&amp;amp;u=http://neoaxis-rus.com/index.php%3Fnma%3Dcatalog%26fla%3Dstat%26cat_id%3D3%26page%3D1%26nums%3D102&amp;amp;usg=ALkJrhhYQi8wBu52ygbk1Vybz6PXEcmz2A"&gt;inbuilt terrain editor&lt;/a&gt;, we shall use the existing terrain already created in the RTSDemo.&lt;/p&gt;  &lt;p&gt;In Map Editor, create a new empty map &amp;quot;gang01&amp;quot;.&lt;/p&gt;  &lt;p&gt;In window explorer, copy the StaticGeometry folder from RTSDemo into gang01 folder.&amp;#160; Rename the two files accordingly as gang01back.mesh and gang01back.highMaterial.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BTzuSFCPfIw/SayetbpLz5I/AAAAAAAABr4/3vUldFWhNRw/s1600-h/image4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="139" alt="image" src="http://lh5.ggpht.com/_BTzuSFCPfIw/Sayeu1BROZI/AAAAAAAABr8/mUUhctogSqU/image_thumb111.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Open gang01back.highMaterial using any text editor and change the first line from &amp;quot;highLevelMaterial RTSDemo&amp;quot; to &amp;quot;highLevelMaterial gang01back&amp;quot;.&amp;#160; Save and exit.&lt;/p&gt;  &lt;p&gt;In Resource Editor, open the Maps &amp;gt; gang01 &amp;gt; StaticGeometry&amp;gt; gang01back.mesh and in the property window, change the MaterialName to point to the gang01back.highMaterial.&amp;#160; &lt;/p&gt;  &lt;p&gt;Save and exit.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BTzuSFCPfIw/SayevTHU81I/AAAAAAAABsA/riuLXMS_fNo/s1600-h/image10.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="129" alt="image" src="http://lh5.ggpht.com/_BTzuSFCPfIw/SayewFUcmjI/AAAAAAAABsE/0hdm0y0GPlo/image_thumb3.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;In the Map Editor, in the Entity Types window choose General &amp;gt; StaticMesh.&amp;#160; A new window &amp;quot;Entity Creation&amp;quot; will appear:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BTzuSFCPfIw/SayexApccII/AAAAAAAABsI/0iQ9CKKi6AA/s1600-h/image71.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="168" alt="image" src="http://lh4.ggpht.com/_BTzuSFCPfIw/SayeyHfPGaI/AAAAAAAABsM/JavHEyRJhy8/image_thumb21.png?imgmax=800" width="211" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Select Maps\gang01\StaticGeometry\gang01back.mesh.&amp;#160; &lt;/p&gt;  &lt;p&gt;In the Layers window, add a new staticGeometry layer:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BTzuSFCPfIw/SayeyujLw0I/AAAAAAAABsQ/HPVYWmpDJDA/s1600-h/image14.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="116" alt="image" src="http://lh6.ggpht.com/_BTzuSFCPfIw/SayezvFzXnI/AAAAAAAABsU/6fgDTEtpUrI/image_thumb5.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the property window, adjust the mesh properties:&lt;/p&gt;  &lt;p&gt;- Layer: staticGeometry&lt;/p&gt;  &lt;p&gt;- Position: 0&amp;#160; 0&amp;#160; 0&lt;/p&gt;  &lt;p&gt;- AllowDecals: All&lt;/p&gt;  &lt;p&gt;- SplitGeometryPieceSize: 30 30 30&lt;/p&gt;  &lt;p&gt;Save and exit.&lt;/p&gt;  &lt;h3&gt;Duplicate RTSDemo into gang01 &lt;/h3&gt;  &lt;p&gt;In Map Editor, open RTSDemo and save the map into gang01 folder, replacing the map we created above.&lt;/p&gt;  &lt;p&gt;Exit.&lt;/p&gt;  &lt;p&gt;Open the Maps\gang01\Map.map using text editor and modify the following line to use the staticgeometry created above.&lt;/p&gt;  &lt;p&gt;From &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;meshName = Maps\RTSDemo\StaticGeometry\Data.mesh&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;To&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;meshName = Maps\gang01\StaticGeometry\gang01back.mesh&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;Logic Editor&lt;/h3&gt;  &lt;p&gt;Just to leave a note here that for RTSDemo, the logic editor is not used and all the classes used in the game are created in C#.&lt;/p&gt;  &lt;p&gt;Open the Logic Editor from the Map Editor:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BTzuSFCPfIw/Saye0i16uKI/AAAAAAAABsY/wQGBC0gWuu8/s1600-h/image41.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="83" alt="image" src="http://lh3.ggpht.com/_BTzuSFCPfIw/Saye1VbFg1I/AAAAAAAABsc/dKnrrVuxArE/image_thumb1111.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lh6.ggpht.com/_BTzuSFCPfIw/Saye4ZmcObI/AAAAAAAABsg/Hu9PkJsgyVE/s1600-h/image7.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="176" alt="image" src="http://lh4.ggpht.com/_BTzuSFCPfIw/Saye5I2bhUI/AAAAAAAABsk/4nHvm_VZhjE/image_thumb2.png?imgmax=800" width="197" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3&gt;Explore RTSDemo Entities&lt;/h3&gt;  &lt;p&gt;Open the Maps\gang01\Map.map using text editor and go through the files.&amp;#160; There are altogether 16 different type of Entities used:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Stone      &lt;br /&gt;StaticMesh       &lt;br /&gt;SpawnPoint       &lt;br /&gt;RTSRobot       &lt;br /&gt;RTSMine       &lt;br /&gt;RTSHeadquaters       &lt;br /&gt;RTSGridPathFindSystem       &lt;br /&gt;RTSGeyser       &lt;br /&gt;RTSFactory       &lt;br /&gt;RTSFactionManager       &lt;br /&gt;RTSConstructor       &lt;br /&gt;PipeDirect4       &lt;br /&gt;PipeCorner       &lt;br /&gt;Palm       &lt;br /&gt;LogicSystemManager       &lt;br /&gt;Light&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/2748920418214178759-6451990560470387841?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/6451990560470387841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=6451990560470387841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/6451990560470387841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/6451990560470387841'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2009/03/learning-neoaxis-to-create-simple-rts.html' title='Learning NeoAxis to create a simple RTS Game'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_BTzuSFCPfIw/SayeqrPnqqI/AAAAAAAABrs/gjEBVLNghtQ/s72-c/image_thumb1.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-2402306435638396669</id><published>2009-03-02T19:04:00.001-08:00</published><updated>2009-03-02T19:04:42.789-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='oreg3d'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='guide'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>NeoAxis Learning Journey</title><content type='html'>&lt;p&gt;Starting in Jul 2008, after exposed to Ogre3D Renderer and then trying to integrate the various components around it, such as physics (from quite a few, at the end settle on PhysX with NxOgre, GUI with flash (Hikari), sound with FMOD, AI and pathfinding using opensteer, networking using Raknet, I started to create the basic game programming structure with a basic game state, it was at this point of time that I started exploring available Open source games/game architectures that were built on top of Ogre3D: eg openfrag, AGTEngne, Open Game Engine, etc.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;Initially I came across NeoAxis but did not explore further as the main programming language used in C#, but later near the end of Sep 08, after the earlier exploration and learning, I re-explored NeoAxis and realised it had great potential.&amp;#160; &lt;/p&gt;  &lt;p&gt;On 1 Oct 08, I brought NeoAxis Indie license and started to focus on learning - first searching for all available tutorials and information, then I started to go through step by step through some of the tutorials, after which, I organized my learning into 3 parts:&lt;/p&gt;  &lt;p&gt;1. Learning NeoAxis Logic Editor by Example&lt;/p&gt;  &lt;p&gt;2. Learning NeoAxis Program Flow &lt;/p&gt;  &lt;p&gt;3. Learning NeoAxis to create a simple RTS Game &lt;/p&gt;  &lt;h3&gt;Links and References&lt;/h3&gt;  &lt;p&gt;1. &lt;a href="http://games.kipase.com/static.php?page=milkshape_to_neoaxis"&gt;Wellu's 3D Game Creating Madness - MilkShape to NeoAxis&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2. &lt;a href="http://72.14.235.104/translate_c?hl=en&amp;amp;u=http://neoaxis-rus.com/index.php%3Fnma%3Dcatalog%26fla%3Dstat%26cat_id%3D3%26page%3D1%26nums%3D102&amp;amp;usg=ALkJrhhYQi8wBu52ygbk1Vybz6PXEcmz2A"&gt;Translated Russian tutorial on the inbuilt Terrain Editor&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/2748920418214178759-2402306435638396669?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/2402306435638396669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=2402306435638396669' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/2402306435638396669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/2402306435638396669'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2009/03/neoaxis-learning-journey.html' title='NeoAxis Learning Journey'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-4604125130954076360</id><published>2009-03-02T18:49:00.001-08:00</published><updated>2009-03-02T18:49:39.711-08:00</updated><title type='text'>Hardware Shader Programming using AMD ATI Rendermonkey</title><content type='html'>&lt;p&gt;The tool to be used to learn is AMD ATI's &lt;a href="http://ati.amd.com/developer/rendermonkey/"&gt;Rendermonkey&lt;/a&gt;.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;quot; RenderMonkey IDE has been created to fill the need for shader content creation tools in a coherent environment—flexible and powerful for programmers, yet familiar and intuitive for artists. With the introduction of the DirectX, OpenGL and OpenGL ES high level shading languages, the complexity of real-time shaders has increased. The rapid evolution of the shading capabilities of graphics hardware had caused an explosion in the the amount of shader content necessary for real-time graphics projects, fueling the need for a powerful real-time shader IDE. The RenderMonkey environment not only allows easy shader prototyping and development, but also provides a mechanism for managing the shaders and all of the associated visual resources in a single environment.&amp;quot; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The HLSL (&lt;a href="http://en.wikipedia.org/wiki/High_Level_Shader_Language"&gt;High Level Shading Language for DirectX&lt;/a&gt;)&amp;#160; programming language used is similar to C.&amp;#160;&amp;#160; A good reference for beginnner is the free &lt;a href="http://http.developer.nvidia.com/CgTutorial/cg_tutorial_chapter01.html"&gt;C for Graphic (Cg) tutorial&lt;/a&gt;.&amp;#160; More advanced reference is the few &lt;a href="http://http.developer.nvidia.com/GPUGems/gpugems_part01.html"&gt;GPU Gems&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/2748920418214178759-4604125130954076360?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/4604125130954076360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=4604125130954076360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/4604125130954076360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/4604125130954076360'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2009/03/hardware-shader-programming-using-amd.html' title='Hardware Shader Programming using AMD ATI Rendermonkey'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-9166914495642195255</id><published>2008-08-18T00:51:00.001-07:00</published><updated>2008-08-18T00:51:14.588-07:00</updated><title type='text'>Real Time Strategy (RTS) Game Evaluation</title><content type='html'>&lt;h4&gt;Past projects and learning points&lt;/h4&gt;  &lt;p&gt;1. &lt;a href="http://www.gamecareerguide.com/features/380/student_postmortem_university_of_.php?page=3"&gt;Student Postmortem: University of Abertay Dundee's Blok Wars (Jun 2007)&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Number of Developers: 6 = 6 programmers (1 converted to an artist)      &lt;br /&gt;Length of Development: 7 months.       &lt;br /&gt;Release Date: May 7th, 2007       &lt;br /&gt;Platform: PC (Windows), Ogre3D application       &lt;br /&gt;Development software used: Ogre3D, Visual Studio 2005, Photoshop, 3DS Max.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh3.ggpht.com/puahhl/SKkpQwiCctI/AAAAAAAAAtM/JXb6ieR4_iA/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="184" alt="image" src="http://lh5.ggpht.com/puahhl/SKkpVbsycCI/AAAAAAAAAtQ/l-22GWOl1WQ/image_thumb.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh6.ggpht.com/puahhl/SKkpaCRcBbI/AAAAAAAAAtU/jJvacSKm5Zk/s1600-h/image%5B5%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="image" src="http://lh6.ggpht.com/puahhl/SKkpeWdPaqI/AAAAAAAAAtY/LSfmK3CHmHs/image_thumb%5B1%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt; Popular RTS Games&lt;/h4&gt;  &lt;p&gt;1. &lt;a href="http://en.wikipedia.org/wiki/Age_of_Empires"&gt;Age of Empires&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;quot; The series features two recurring modes of play: 'random map,' and 'campaign'. 'Random map' is described by lead designer Greg Street as a &amp;quot;hallmark&amp;quot; of the series.&amp;#160; In this mode, the player selects a civilization and plays on a randomly created map, most of which are based, at least loosely, on a real-world geographic area.&amp;#160; A variation on random map is &amp;quot;deathmatch,&amp;quot; where players begin with large amounts of resources and fight until only one side remains. A 'campaign' is a series of interrelated missions with a specific storyline.&lt;/p&gt;    &lt;p&gt;:&lt;/p&gt;    &lt;p&gt;The games in the series focus on &lt;u&gt;historical events&lt;/u&gt; throughout time.&amp;#160;&amp;#160; Age of Empires covers the events &lt;u&gt;between the Stone Age and the Classical period&lt;/u&gt;, in &lt;u&gt;Europe &lt;/u&gt;and &lt;u&gt;Asia Minor&lt;/u&gt;.&lt;/p&gt;    &lt;p&gt;:&lt;/p&gt;    &lt;p&gt;The artificial intelligence (AI) used in the Age of Empires series has been developed and improved regularly by designers. AI specialist Dave Pottinger noted the development team gave the AI in the original game a very high priority, and spent over a year working on it.&amp;#160; He said the &lt;u&gt;AI in the game relies on tactics and strategies to win&lt;/u&gt;, &lt;u&gt;instead of &amp;quot;cheating&amp;quot; by giving bonus resources to itself&lt;/u&gt;, or tweaking its units to be stronger than normal.&amp;#160; Pottinger later noted that the Age of Empires series team took great pride in their AI playing a 'fair game'.&amp;quot;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;Articles on RTS&lt;/h4&gt;  &lt;p&gt;1.&amp;#160; &lt;a href="http://www.gamasutra.com/view/feature/3515/the_future_of_the_realtime_.php?print=1"&gt;Gamasutra &amp;quot;The Future Of The Real-Time Strategy Game&amp;quot; (Jan 2008)&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;quot; ...&amp;#160;&amp;#160; Two games that I have played might benefit from this suggestion. In Age of Empires and Rise of Nations, the player essentially micro-manages society, going so far as to train individual workers and assign them mundane economic tasks. &lt;/p&gt;    &lt;p&gt;In reality, workers perform economic tasks out of their regard for their own welfare, and generate a diversity of political interests in society depending on what economic tasks they perform, on what resources are available, and on how political leaders extract resources from society. &lt;/p&gt;    &lt;p&gt;Players of RTS games do not have to micro-manage or run rough-shod over society. They could manage the expectations and opposition of different societal factions as one part of their overall strategy for winning the game.&amp;#160; &amp;quot;&lt;/p&gt;    &lt;p&gt;=&amp;gt; More AI for the NPC (Non Player Character) to act with their own more 'intelligently'.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;2. &lt;a href="http://www.gamasutra.com/php-bin/news_index.php?story=18326"&gt;Gamasutra &amp;quot;Opinion: The Evolution of the Modern RTS&amp;quot; (Apr 2008)&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;quot; .. The first, and largely underestimated, strength of Starcraft is its visual clarity. In Starcraft, you can glance at the minimap and understand almost immediately where your forces are concentrated, or look at the screen and quickly understand the flow of the battle.&lt;/p&gt;    &lt;p&gt;:&lt;/p&gt;    &lt;p&gt;Starcraft&amp;#8217;s second strength is the precise level of control it gives the player. Many casual RTS players see the gradual curtailment of micromanagement as a boon to the genre. However, the more complex AI comes at the cost of precise control at a higher level of play.&lt;/p&gt;    &lt;p&gt;:&lt;/p&gt;    &lt;p&gt;But Company of Heroes&amp;#8217; largest weakness is its randomness. Starcraft has very little randomness, and so the same ambush in the same place will almost always kill the same amount of units with the same amount of shots. In Company of Heroes, sometimes it takes two rockets to take out a tank, sometimes the first four miss and it gets off unscathed. Sometimes a grenade takes out an entire MG squad, sometimes it doesn&amp;#8217;t kill anyone.&amp;quot;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;3. Gamereplays.com &lt;/p&gt;  &lt;p&gt;- &lt;a href="http://www.gamereplays.org/portals.php?show=page&amp;amp;name=the_history_of_real_time_strategy_pt1"&gt;&amp;quot;The history of RTS part 1 - the Past is Prologue&amp;quot; (May 2008)&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;-&lt;a href="http://www.gamereplays.org/portals.php?show=page&amp;amp;name=the_history_of_real_time_strategy_pt2_1"&gt; &amp;quot;The history of RTS part 2 - the Glory Years&amp;quot; (May 2008)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; - &lt;a href="http://www.gamereplays.org/portals.php?show=page&amp;amp;name=the_history_of_real_time_strategy_pt3_1"&gt;&amp;quot;The history of RTS part 3 - Polygons and pixels&amp;quot; (May 2008)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://www.gamereplays.org/portals.php?show=page&amp;amp;name=the_history_of_real_time_strategy_pt4_1"&gt;&amp;quot;The history of RTS part 4 - The New Wave&amp;quot; (Jun 2008)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- &amp;quot;&lt;a href="http://www.gamereplays.org/portals.php?show=page&amp;amp;name=the-history-of-rts-the-future-of-real-time-strategy"&gt;The history of RTS Epilogue - The future of RTS&amp;quot; (Aug 2008)&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/2748920418214178759-9166914495642195255?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/9166914495642195255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=9166914495642195255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/9166914495642195255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/9166914495642195255'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2008/08/real-time-strategy-rts-game-evaluation_18.html' title='Real Time Strategy (RTS) Game Evaluation'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/puahhl/SKkpVbsycCI/AAAAAAAAAtQ/l-22GWOl1WQ/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-340933164861331635</id><published>2008-08-06T22:42:00.001-07:00</published><updated>2008-08-06T22:42:22.729-07:00</updated><title type='text'>Ogre3D Tutorials</title><content type='html'>&lt;p&gt;After the Ogre3D Hello World, the next step is to integrate the keyboard and mouse listeners, then add the scene and more:&lt;/p&gt;  &lt;p&gt;1. Ogre newbie &lt;a href="http://ogre3d.org/wiki/index.php/Newbie_Tutorial_1"&gt;Minimal Application&lt;/a&gt; (All codes in one file, you may try to separate into files for the main and the classes with header files)&lt;/p&gt;  &lt;p&gt;2. Ogre newbie &lt;a href="http://www.ogre3d.org/wiki/index.php/Newbie_Tutorial_2"&gt;tutorial 2&lt;/a&gt; (** Note that it still use Ogre's PlatformManager which need to be replace with OIS to handle the input - refer to the above &lt;a href="http://ogre3d.org/wiki/index.php/Newbie_Tutorial_1"&gt;Minimal Application&lt;/a&gt; )&lt;/p&gt;  &lt;p&gt;3. &lt;a href="http://artis.imag.fr/Membres/Xavier.Decoret/resources/ogre/tutorial1.html"&gt;Xadeck tutorial 1&lt;/a&gt; - Displaying and manipulating a scene (** Step C:&amp;#160; Note that it still use Ogre's PlatformManager which need to be replace with OIS to handle the input - refer to the above &lt;a href="http://ogre3d.org/wiki/index.php/Newbie_Tutorial_1"&gt;Minimal Application&lt;/a&gt; )&lt;/p&gt;  &lt;p&gt;To continue ... &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-340933164861331635?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/340933164861331635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=340933164861331635' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/340933164861331635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/340933164861331635'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2008/08/ogre3d-tutorials.html' title='Ogre3D Tutorials'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-5162265332188700005</id><published>2008-08-06T22:40:00.001-07:00</published><updated>2008-08-06T22:40:48.591-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oreg3d'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><title type='text'>Ogre3D "Hello World"</title><content type='html'>&lt;p&gt;The original codes from the Ogre forum: &lt;a href="http://www.ogre3d.org/phpBB2/index.php"&gt;Ogre Forums Forum Index&lt;/a&gt; -&amp;gt; &lt;a href="http://www.ogre3d.org/phpBB2/viewforum.php?f=5"&gt;Using OGRE in practice&lt;/a&gt; &amp;gt;&amp;gt; &lt;a href="http://www.ogre3d.org/phpBB2/viewtopic.php?t=12999&amp;amp;start=0&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;highlight=exampleapp"&gt;Ogre Hello World without example app&lt;/a&gt;.&amp;#160; There are a few changes highlighted below with &lt;strong&gt;&lt;u&gt;REM&lt;/u&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Create a new Ogre Window app and add the following codes to the main cpp file (all in one):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;#include &amp;lt;Ogre.h&amp;gt;      &lt;br /&gt;#include &amp;lt;OgreTextAreaOverlayElement.h&amp;gt;       &lt;br /&gt;#include &amp;lt;OgreFontManager.h&amp;gt; &lt;/p&gt;    &lt;p&gt;Ogre::RenderWindow *renderWindow = NULL; &lt;/p&gt;    &lt;p&gt;class FrameListener : public Ogre::FrameListener {      &lt;br /&gt;public:       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; FrameListener() {}       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; bool frameStarted(const Ogre::FrameEvent&amp;amp; evt) {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Stop render if main window is closed.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (renderWindow-&amp;gt;isClosed()) { return false; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return true;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; bool frameEnded(const Ogre::FrameEvent &amp;amp;evt) { return true; }       &lt;br /&gt;};&amp;#160; // End of FrameListener class       &lt;br /&gt;#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32       &lt;br /&gt;#define WIN32_LEAN_AND_MEAN       &lt;br /&gt;#include &amp;lt;windows.h&amp;gt;       &lt;br /&gt;INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)       &lt;br /&gt;#else       &lt;br /&gt;int main(int argc, char **argv)       &lt;br /&gt;#endif       &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; try {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Ogre Initialization.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Ogre::Root *root = new Ogre::Root();&amp;#160; // Create new root.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; root-&amp;gt;showConfigDialog();&amp;#160; // Configure the renderer.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; root-&amp;gt;initialise(false);&amp;#160; // Init root.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; renderWindow = root-&amp;gt;createRenderWindow(&amp;quot;Main&amp;quot;, 640, 480, false);&amp;#160; // Create the main window.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // &lt;strong&gt;&lt;u&gt;REM:&lt;/u&gt;&lt;/strong&gt; Error? Ogre::SceneManager *sceneMan = root-&amp;gt;getSceneManager(Ogre::ST_GENERIC, &amp;quot;sceneManager&amp;quot;);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Ogre::SceneManager *sceneMan = root-&amp;gt;createSceneManager(Ogre::ST_GENERIC, &amp;quot;sceneManager&amp;quot;);&amp;#160; // Create a scene. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Ogre::Camera *cam = sceneMan-&amp;gt;createCamera(&amp;quot;mainCam&amp;quot;);&amp;#160; // Create a camera.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Ogre::Viewport *vp = renderWindow-&amp;gt;addViewport(cam);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Load a font.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Ogre::ResourceGroupManager &amp;amp;resgroup = Ogre::ResourceGroupManager::getSingleton();&amp;#160; // Get the resource manager.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // &lt;strong&gt;&lt;u&gt;REM:&lt;/u&gt;&lt;/strong&gt; Add a folder &amp;quot;fonts&amp;quot; in the debugging folder       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; resgroup.addResourceLocation(&amp;quot;fonts&amp;quot;, &amp;quot;FileSystem&amp;quot;);&amp;#160; // Look for font folder.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Ogre::FontManager &amp;amp;fman = Ogre::FontManager::getSingleton();&amp;#160; // Get the font manager.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Ogre::ResourcePtr resource = fman.create(&amp;quot;Arial&amp;quot;, Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);&amp;#160; // Create a font resource.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; resource-&amp;gt;setParameter(&amp;quot;type&amp;quot;, &amp;quot;truetype&amp;quot;);&amp;#160; // Set as truetype.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // &lt;strong&gt;&lt;u&gt;REM:&lt;/u&gt;&lt;/strong&gt; Copy a ttf font from OgreSDK media/fonts folder and update the name &amp;quot;bluecond.ttf&amp;quot; accordingly.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; resource-&amp;gt;setParameter(&amp;quot;source&amp;quot;,&amp;quot;bluecond.ttf&amp;quot;);&amp;#160; // Set the .ttf filename.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; resource-&amp;gt;setParameter(&amp;quot;size&amp;quot;, &amp;quot;16&amp;quot;);&amp;#160; // Set the size.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; resource-&amp;gt;setParameter(&amp;quot;resolution&amp;quot;, &amp;quot;96&amp;quot;);&amp;#160; // Set the dpi.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; resource-&amp;gt;load();&amp;#160; // Load the ttf.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Create the text area.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Ogre::OverlayManager&amp;amp; overlayManager = Ogre::OverlayManager::getSingleton();&amp;#160; // Creating overlay via code.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Create a panel.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Ogre::OverlayContainer* panel = static_cast&amp;lt;Ogre::OverlayContainer*&amp;gt;(overlayManager.createOverlayElement(&amp;quot;Panel&amp;quot;, &amp;quot;PanelName&amp;quot;));&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; panel-&amp;gt;setMetricsMode(Ogre::GMM_PIXELS);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; panel-&amp;gt;setPosition(10, 10);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; panel-&amp;gt;setDimensions(100,100); &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Create a text area.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Ogre::TextAreaOverlayElement* textArea = static_cast&amp;lt;Ogre::TextAreaOverlayElement*&amp;gt;(overlayManager.createOverlayElement(&amp;quot;TextArea&amp;quot;, &amp;quot;TextAreaName&amp;quot;));       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; textArea-&amp;gt;setMetricsMode(Ogre::GMM_PIXELS);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; textArea-&amp;gt;setPosition(0, 0);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; textArea-&amp;gt;setCharHeight(16); &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; textArea-&amp;gt;setFontName(&amp;quot;Arial&amp;quot;);&amp;#160; // Set name to the earlier font resource created.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; textArea-&amp;gt;setCaption(&amp;quot;Hello World&amp;quot;);&amp;#160; // Say anything. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Add the text area to panel.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; panel-&amp;gt;addChild(textArea);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Create an overlay and add the panel.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Ogre::Overlay* overlay = overlayManager.create(&amp;quot;OverlayName&amp;quot;);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; overlay-&amp;gt;add2D(panel);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Show the overlay.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; overlay-&amp;gt;show(); &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Set the frame listener and start rendering.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FrameListener listener;&amp;#160; // Add the simple frame listener.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; root-&amp;gt;addFrameListener(&amp;amp;listener); &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; root-&amp;gt;startRendering();&amp;#160; // Start rendering.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } catch(Ogre::Exception&amp;amp; e) {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; printf(&amp;quot;An Exception has occured: %s\n&amp;quot;, e.getFullDescription().c_str());       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return 0;       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Ouput:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/puahhl/SJqK1WilSdI/AAAAAAAAArE/5-6fo0xQ824/s1600-h/image3.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="image" src="http://lh3.ggpht.com/puahhl/SJqK3tquikI/AAAAAAAAArI/Vc-39CCymLE/image_thumb1.png?imgmax=800" width="617" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;** Remember to create the fonts folder, add the ttf font and update the name in the codes accordingly.&amp;#160; &lt;/p&gt;  &lt;p&gt;That complete this simple Hello World app using Ogre3D.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-5162265332188700005?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/5162265332188700005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=5162265332188700005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/5162265332188700005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/5162265332188700005'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2008/08/ogre3d-world.html' title='Ogre3D &amp;quot;Hello World&amp;quot;'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/puahhl/SJqK3tquikI/AAAAAAAAArI/Vc-39CCymLE/s72-c/image_thumb1.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-3597476192756151045</id><published>2008-07-24T00:03:00.001-07:00</published><updated>2008-08-06T22:39:32.885-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oreg3d'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><title type='text'>Setup OGRE on VC++ Express 2008 on WinXP</title><content type='html'>&lt;h4&gt;Download and install VC++ Express 2008, DirectX and OGRE SDK&lt;/h4&gt;  &lt;p&gt;1. Download and setup VC++ Express 2008&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://www.microsoft.com/express/product/"&gt;http://www.microsoft.com/express/product/&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;2. Download Directx &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=822640AB-0983-4C41-9C70-632F6F42C557&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=822640AB-0983-4C41-9C70-632F6F42C557&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;(DirectX 10 not yet supported on Ogre (Jul 2008))&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;3. Download Ogre SDK for VC9 (aka 2008)&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://sourceforge.net/project/showfiles.php?group_id=2997"&gt;http://sourceforge.net/project/showfiles.php?group_id=2997&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;click on download and select&amp;#160; &amp;quot;OgreSDKSetup1.4.9_VC90.exe &amp;quot;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;4. Configure VC++ Express 2008&lt;/p&gt;  &lt;p&gt;Configuration properties&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;+ C/C++ &amp;gt; General - Additional Include Directories: $(OGRE_HOME)\include;&lt;/p&gt;    &lt;p&gt;+ Linker &amp;gt; General - Additional Library Directories: &amp;quot;$(OGRE_HOME)\lib&amp;quot;;&lt;/p&gt;    &lt;p&gt;+ Linker &amp;gt; Input - Additional Dependencies: OgreMain_d.lib OIS_d.lib&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;First Application - successful compilation&lt;/h4&gt;  &lt;p&gt;1. New project&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/puahhl/SIgpFrdrQtI/AAAAAAAAAqU/2y-Ewq5SFkU/s1600-h/image2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="52" alt="image" src="http://lh4.ggpht.com/puahhl/SIgpINc7lKI/AAAAAAAAAqY/q7hw3WPXkLY/image_thumb.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;2. Select a win32 &amp;gt; win32 project, give a name to the project&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/puahhl/SIgpKk6mUuI/AAAAAAAAAqc/FfZjc2j14ic/s1600-h/image5.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="174" alt="image" src="http://lh3.ggpht.com/puahhl/SIgpMtXcvhI/AAAAAAAAAqg/6I67Q7rVNsY/image_thumb1.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;3. Check &amp;quot;Empty project&amp;quot;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/puahhl/SIgpO_5mnqI/AAAAAAAAAqk/pnkUAdnOwYQ/s1600-h/image8.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="206" alt="image" src="http://lh5.ggpht.com/puahhl/SIgpQ3NFHBI/AAAAAAAAAqo/tF1OllAnSBY/image_thumb2.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;4. Add a new item &amp;quot;main.cpp&amp;quot; and add the following code (if want to, may want to remove the non-win32 portion of the codes in the #if ... #endif):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;#include &amp;lt;Ogre.h&amp;gt;      &lt;br /&gt;#include &amp;lt;OgreErrorDialog.h&amp;gt; &lt;/p&gt;    &lt;p&gt;using namespace Ogre;      &lt;br /&gt;using namespace std;       &lt;br /&gt;#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32       &lt;br /&gt;#define WIN32_LEAN_AND_MEAN       &lt;br /&gt;#include &amp;lt;windows.h&amp;gt;       &lt;br /&gt;INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)       &lt;br /&gt;#else       &lt;br /&gt;int main(int argc, char **argv)       &lt;br /&gt;#endif       &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; try {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } catch (Exception&amp;amp; e) {       &lt;br /&gt;#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MessageBoxA(NULL, e.getFullDescription().c_str(), &amp;quot;An exception has occured!&amp;quot;, MB_OK | MB_ICONERROR | MB_TASKMODAL);       &lt;br /&gt;#else       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; std::cerr &amp;lt;&amp;lt; &amp;quot;Exception:\n&amp;quot;;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; std::cerr &amp;lt;&amp;lt; e.getFullDescription().c_str() &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;       &lt;br /&gt;#endif       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return 1;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return 0;       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;5. Build to check that it is error free.&amp;#160; &lt;/p&gt;  &lt;p&gt;That's all for this very basic tutorial ;-)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-3597476192756151045?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/3597476192756151045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=3597476192756151045' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/3597476192756151045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/3597476192756151045'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2008/07/setup-ogre-on-vc-express-2008-on-winxp.html' title='Setup OGRE on VC++ Express 2008 on WinXP'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/puahhl/SIgpINc7lKI/AAAAAAAAAqY/q7hw3WPXkLY/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-8702772460055789283</id><published>2008-07-02T23:23:00.001-07:00</published><updated>2008-07-02T23:23:18.942-07:00</updated><title type='text'>New C++ Standards (~2009): C++0x</title><content type='html'>&lt;p&gt;&lt;strong&gt;&lt;u&gt;Wiki:&lt;/u&gt;&lt;/strong&gt; &lt;a title="http://en.wikipedia.org/wiki/C++0x" href="http://en.wikipedia.org/wiki/C++0x"&gt;http://en.wikipedia.org/wiki/C++0x&lt;/a&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;quot; C++0x is the planned new &lt;a href="http://en.wikipedia.org/wiki/Open_standard"&gt;standard&lt;/a&gt; for the &lt;a href="http://en.wikipedia.org/wiki/C%2B%2B"&gt;C++ programming language&lt;/a&gt;. It is intended to replace the existing C++ standard, &lt;a href="http://en.wikipedia.org/wiki/ISO/IEC_14882"&gt;ISO/IEC 14882&lt;/a&gt;, which was published in 1998 and updated in 2003. These predecessors are informally known as C++98 and C++03. The new standard will include several additions to the &lt;a href="http://en.wikipedia.org/wiki/Core_language"&gt;core language&lt;/a&gt; and will extend the &lt;a href="http://en.wikipedia.org/wiki/C%2B%2B_standard_library"&gt;C++ standard library&lt;/a&gt;, incorporating most of the C++ &lt;a href="http://en.wikipedia.org/wiki/Technical_Report_1"&gt;Technical Report 1&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Library_%28computer_science%29"&gt;libraries&lt;/a&gt; &amp;#8212; most likely with the exception of the library of mathematical special functions. Since the standard is not yet finalized, this article may not reflect the most recent state of C++0x. Up-to-date state of the next C++ standard is published on &lt;a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/"&gt;the ISO C++ committee website&lt;/a&gt;. The most recent report, &lt;a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2652.html"&gt;N2652&lt;/a&gt;, was published in July 2008. ...&lt;/p&gt;    &lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/C%2B%2B0x#Candidate_changes_for_the_impending_standard_update"&gt;1 Candidate changes for the impending standard update&lt;/a&gt;      &lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/C%2B%2B0x#Extensions_to_the_C.2B.2B_core_language"&gt;2 Extensions to the C++ core language&lt;/a&gt;      &lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/C%2B%2B0x#Core_language_runtime_performance_enhancements"&gt;3 Core language runtime performance enhancements&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/C%2B%2B0x#Core_language_build_time_performance_enhancements"&gt;4 Core language build time performance enhancements&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/C%2B%2B0x#Core_language_usability_enhancements"&gt;5 Core language usability enhancements&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/C%2B%2B0x#Core_language_functionality_improvements"&gt;6 Core language functionality improvements&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/C%2B%2B0x#C.2B.2B_standard_library_changes"&gt;7 C++ standard library changes&lt;/a&gt; &amp;quot;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Working Committee:&lt;/strong&gt; &lt;a title="http://www.open-std.org/JTC1/SC22/WG21/" href="http://www.open-std.org/JTC1/SC22/WG21/"&gt;http://www.open-std.org/JTC1/SC22/WG21/&lt;/a&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;State of C++ Evolution (Post-Antipolis 2008 Mailing): &lt;a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2652.html"&gt;n2652&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;C++ Library Working Group Status Report (Post-Antipolis 2008 Mailing): &lt;a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2653.html"&gt;n2653&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Working Draft, Standard for Programming Language C++: &lt;a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2691.pdf"&gt;n2691&lt;/a&gt; &amp;amp; &lt;a href="http://www.justsoftwaresolutions.co.uk/cplusplus/new-cplusplus-draft-and-concurrency-papers.html"&gt;Summary&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-8702772460055789283?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/8702772460055789283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=8702772460055789283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/8702772460055789283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/8702772460055789283'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2008/07/new-c-standards-2009-c0x.html' title='New C++ Standards (~2009): C++0x'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-213495598120428405</id><published>2008-06-25T23:23:00.001-07:00</published><updated>2008-06-26T00:49:50.977-07:00</updated><title type='text'>Windows SteadyState</title><content type='html'>&lt;h4&gt;What is it?&lt;/h4&gt;  &lt;p&gt;&amp;quot;Windows SteadyState (formerly Shared Computer Toolkit for Windows XP) is a set of software tools to help effectively manage shared computers running Windows.&amp;quot;&lt;/p&gt;  &lt;h4&gt;Who should use it?&lt;/h4&gt;  &lt;p&gt;&amp;quot; Whether you manage computers in a school computer lab or an Internet cafe, a library, or even in your home, Windows SteadyState helps make it easy for you to keep your computers running the way you want them to, no matter who uses them.&amp;quot;&lt;/p&gt;  &lt;h4&gt;Where to download?&lt;/h4&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/protect/products/family/steadystate.mspx" href="http://www.microsoft.com/protect/products/family/steadystate.mspx"&gt;http://www.microsoft.com/protect/products/family/steadystate.mspx&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;How to setup?&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;Verify system requirements - Windows SteadyState works with genuine versions of Microsoft Windows XP with SP2 or SP3 installed, Windows Vista, and Windows Vista SP1&lt;/li&gt;    &lt;li&gt;Optimise the PC by cleaning unwanted files and defragmenting the disk&lt;/li&gt;    &lt;li&gt;Download and install Windows SteadyState by executing the setup.exe.&lt;/li&gt; &lt;/ol&gt;  &lt;h4&gt;How to use it?&lt;/h4&gt;  &lt;p&gt;1. The main console: &lt;a title="http://www.microsoft.com/windows/products/winfamily/sharedaccess/support/mainconsole.mspx" href="http://www.microsoft.com/windows/products/winfamily/sharedaccess/support/mainconsole.mspx"&gt;http://www.microsoft.com/windows/products/winfamily/sharedaccess/support/mainconsole.mspx&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;img height="290" alt="Windows SteadyState main dialog box" src="http://www.microsoft.com/library/media/1033/windows/images/products/winfamily/sharedaccess/screenshot_callouts.jpg" width="400" border="0" /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;2. User profile and settings: &lt;a title="http://www.microsoft.com/windows/products/winfamily/sharedaccess/support/accountsandprofiles.mspx" href="http://www.microsoft.com/windows/products/winfamily/sharedaccess/support/accountsandprofiles.mspx"&gt;http://www.microsoft.com/windows/products/winfamily/sharedaccess/support/accountsandprofiles.mspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;3. Windows disk protection:&amp;#160; &lt;a title="http://www.microsoft.com/windows/products/winfamily/sharedaccess/support/windowsdiskprotection.mspx" href="http://www.microsoft.com/windows/products/winfamily/sharedaccess/support/windowsdiskprotection.mspx"&gt;http://www.microsoft.com/windows/products/winfamily/sharedaccess/support/windowsdiskprotection.mspx&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;u&gt;Windows Disk Protection levels:&lt;/u&gt; (1) Remove all changes at restart; (2) Retain changes temporarily; and (3) Retain all changes permanently.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;Video:&amp;#160;&amp;#160; How to setup and use Windows SteadyState&lt;/h4&gt;  &lt;blockquote&gt;   &lt;p&gt;     &lt;div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:10777ef0-8c05-42b9-a9d0-5576c7421422" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/beScixJ0qa4&amp;amp;NR=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/beScixJ0qa4&amp;amp;NR=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;   &lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;Reference&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a title="http://www.grc.com/sn/SN-129.pdf" href="http://www.grc.com/sn/SN-129.pdf"&gt;http://www.grc.com/sn/SN-129.pdf&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.microsoft.com/windows/products/winfamily/sharedaccess/default.mspx" href="http://www.microsoft.com/windows/products/winfamily/sharedaccess/default.mspx"&gt;http://www.microsoft.com/windows/products/winfamily/sharedaccess/default.mspx&lt;/a&gt;&amp;#160; &amp;gt;&amp;gt; Under support &amp;gt;&amp;gt; Handbook &amp;amp; Technical FAQ&lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-213495598120428405?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/213495598120428405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=213495598120428405' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/213495598120428405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/213495598120428405'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2008/06/windows-steadystate.html' title='Windows SteadyState'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-3068819358129035299</id><published>2008-06-20T15:18:00.001-07:00</published><updated>2008-06-30T18:05:19.790-07:00</updated><title type='text'>Game Learning Trail Lesson Plan#2</title><content type='html'>&lt;h4&gt;Lesson Plan&lt;strong&gt;#2: &lt;/strong&gt;&amp;gt;&amp;gt; Timing, Motion, Collision, Animation: Create Pong&lt;/h4&gt;  &lt;p&gt;Complete previous lesson plan: &lt;a href="http://ictmp.blogspot.com/2008/06/learning-trail-to-create-games.html"&gt;Lesson Plan #1&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;For &lt;strong&gt;&lt;em&gt;&lt;a href="http://www.sdltutorials.com/sdl-animation/"&gt;SDL Animation&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;,&amp;#160; remove those parts that belong to tic-tac-toe and add the animation parts (including the two new files CAnimation.h and CAnimation.cpp):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/puahhl/SFwsxO6uwAI/AAAAAAAAApU/E1S28P0p80s/s1600-h/image2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="192" alt="image" src="http://lh5.ggpht.com/puahhl/SFwszEx0CDI/AAAAAAAAApY/fx6MoX196HU/image_thumb.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Initialize();&amp;#160; // loading data: &lt;strong&gt;load images&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;while(true) {&amp;#160; // big loop      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Events();&amp;#160; // handle input       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Loop();&amp;#160; // data update: &lt;strong&gt;for animation&lt;/strong&gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Render();&amp;#160; // handle output: &lt;strong&gt;based on data&lt;/strong&gt;       &lt;br /&gt;}&lt;/p&gt;    &lt;p&gt;Cleanup();&amp;#160; // unload resources&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;For &lt;strong&gt;&lt;a href="http://www.sdltutorials.com/sdl-entities/"&gt;&lt;em&gt;SDL Entities&lt;/em&gt;&lt;/a&gt;&lt;/strong&gt;, after using vector in the code, error such as &amp;quot;unresolved external symbol __imp___CrtDbgReportW&amp;quot; is resolved by setting the option to /MDd instead of just /MD (ref: &lt;a title="http://gps678.com/26/896f16580b963551.html" href="http://gps678.com/26/896f16580b963551.html"&gt;http://gps678.com/26/896f16580b963551.html&lt;/a&gt;).&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh4.ggpht.com/puahhl/SGBU4OhHqpI/AAAAAAAAApc/asrbr3Urhto/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="192" alt="image" src="http://lh3.ggpht.com/puahhl/SGBU5FFqFyI/AAAAAAAAApg/VnPHpguxCD4/image_thumb%5B1%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;We encapsulate the 4 basic components within the entity - OnLoad, OnLoop, OnRender and OnCleanup.&amp;#160; The &lt;a href="http://www.cplusplus.com/reference/stl/vector/"&gt;vector container&lt;/a&gt; is used for storing the entity.&amp;#160; EntityList is defined as static so that it is accessible by all objects of the class.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;For &lt;strong&gt;&lt;a href="http://www.sdltutorials.com/sdl-maps/"&gt;&lt;em&gt;SDL maps&lt;/em&gt;&lt;/a&gt;&lt;/strong&gt;, we need to modify to use IMG_Load instead of SDL_LoadBMP (refer to the &lt;strong&gt;&lt;a href="http://www.sdltutorials.com/sdl-image/"&gt;&lt;em&gt;SDL images&lt;/em&gt;&lt;/a&gt;&lt;/strong&gt; tutorial, download the SDL_image library VC version and merge the include and lib folders into the SDL's, remember to add &lt;em&gt;#pragma comment(lib, &amp;quot;SDL_image.lib&amp;quot;)&lt;/em&gt; to CApp.cpp to load the library).&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh4.ggpht.com/puahhl/SGlk95RD4sI/AAAAAAAAApk/0pa6vi0ObuA/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="192" alt="image" src="http://lh4.ggpht.com/puahhl/SGmCzQ9JUfI/AAAAAAAAAp4/YT5QickRR-Q/image_thumb1.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Next we shall be going through the &lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Sokoban"&gt;sokoban&lt;/a&gt;&lt;/strong&gt; game (transport puzzle - player pushes boxes around a maze)&amp;#160; tutorial before moving on to &lt;strong&gt;Pong&lt;/strong&gt; tutorial.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-3068819358129035299?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/3068819358129035299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=3068819358129035299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/3068819358129035299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/3068819358129035299'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2008/06/game-learning-trail-lesson-plan2.html' title='Game Learning Trail Lesson Plan#2'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/puahhl/SFwszEx0CDI/AAAAAAAAApY/fx6MoX196HU/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-309479773294388483</id><published>2008-06-09T14:48:00.001-07:00</published><updated>2008-06-23T18:17:53.526-07:00</updated><title type='text'>Learning Trail to Create Games &amp; Lesson Plan #1</title><content type='html'>&lt;h4&gt;&lt;strong&gt;Learning Plans to learn SDL and create games&lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;Ref: &lt;a title="http://lazyfoo.net/articles/article01/index.php" href="http://lazyfoo.net/articles/article01/index.php"&gt;http://lazyfoo.net/articles/article01/index.php&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Lesson Plan#1 &amp;gt;&amp;gt; Graphics, Event Handling: Learn about SDL and create tic-tac-toe &lt;/p&gt;  &lt;p&gt;Lesson Plan#2 &amp;gt;&amp;gt; Timing, Motion, Collision, Animation: Create Pong&lt;/p&gt;  &lt;p&gt;Lesson Plan#3 &amp;gt;&amp;gt; Timing, Motion, Collision, Animation: Create Tetris&lt;/p&gt;  &lt;p&gt;Lesson Plan#4 &amp;gt;&amp;gt; Planning Ahead, Physics, Levels, AI: Create Break-out.&amp;#160; Add AI to tic-tac-toe&lt;/p&gt;  &lt;p&gt;Lesson Plan#5 &amp;gt;&amp;gt; Side Scrollers, RPGs, RTSs, Engines: Create game engine&lt;/p&gt;  &lt;p&gt;Lesson Plan#6 &amp;gt;&amp;gt; Networking: add networking to tic-tac-toe&lt;/p&gt;  &lt;p&gt;LP#7 &amp;gt;&amp;gt; 3D Games: TBC&lt;/p&gt;  &lt;h4&gt;Setup SDL on Visual C++ 2008&lt;/h4&gt;  &lt;p&gt;Read previous article on &lt;a href="http://ictmp.blogspot.com/2008/06/setting-up-sdl-for-visual-c-2008-to.html"&gt;Setup SDL on Visual C++ 2008&lt;/a&gt;.&lt;/p&gt;  &lt;h4&gt;Lesson Plan#1 &amp;gt;&amp;gt; Graphics, Event Handling: Learn about SDL and create tic-tac-toe &lt;/h4&gt;  &lt;p&gt;Ref: &lt;a title="http://www.sdltutorials.com/sdl-tutorial-basics/" href="http://www.sdltutorials.com/sdl-tutorial-basics/"&gt;http://www.sdltutorials.com/sdl-tutorial-basics/&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Read the tutorials and follow the steps from using SDL to building the tic-tac-toe game.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Most games consist of 5 functions: Initialize, { event, loop, render } and cleanup.&lt;/p&gt;    &lt;p&gt;Initialize();&amp;#160; // loading data&lt;/p&gt;    &lt;p&gt;while(true) {&amp;#160; // big loop      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Events();&amp;#160; // handle input       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Loop();&amp;#160; // data update&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Render();&amp;#160; // handle output       &lt;br /&gt;}&lt;/p&gt;    &lt;p&gt;Cleanup();&amp;#160; // unload resources&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Modification with the source code is required for Visual C++ 2008:&lt;/p&gt;  &lt;p&gt;1. for all *.cpp, add the following to the top of each file:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;#include &amp;quot;stdafx.h&amp;quot;&amp;#160; // Read about &lt;a title="http://en.wikipedia.org/wiki/Precompiled_header" href="http://precompiled header"&gt;precompiled header&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;2. for the CApp.cpp, add the following after #include &amp;quot;stdafx.h&amp;quot;:&amp;#160; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;#ifdef WIN32 // Read about &lt;a title="http://msdn.microsoft.com/en-us/library/7f0aews7(VS.71).aspx" href="http://msdn.microsoft.com/en-us/library/7f0aews7(VS.71).aspx"&gt;pragma&lt;/a&gt;       &lt;br /&gt;#pragma comment(lib, &amp;quot;SDL.lib&amp;quot;)       &lt;br /&gt;#pragma comment(lib, &amp;quot;SDLmain.lib&amp;quot;)       &lt;br /&gt;#endif&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/puahhl/SE2twzKiglI/AAAAAAAAAiM/o1zFGzhqi1Y/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="377" alt="image" src="http://lh3.ggpht.com/puahhl/SE2t2yJWqSI/AAAAAAAAAiQ/avEEQJcTXyA/image_thumb%5B1%5D.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;After &lt;em&gt;&lt;strong&gt;&lt;a href="http://www.sdltutorials.com/sdl-tutorial-basics/"&gt;SDL Tutorial Basic&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;, the output we get is a blank window:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh4.ggpht.com/puahhl/SE79L_6i7wI/AAAAAAAAAiU/cO5-we3xD-Y/s1600-h/image8.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="192" alt="image" src="http://lh6.ggpht.com/puahhl/SE79NnZtV8I/AAAAAAAAAiY/Nshg2pIeOJ8/image_thumb5.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;For &lt;strong&gt;&lt;em&gt;&lt;a href="http://www.sdltutorials.com/sdl-coordinates-and-blitting/"&gt;SDL Coordinates and Blitting&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;, create our own bmp file and place it into the debug folder (together with the CApp.exe &amp;amp; SDL.dll folder, i.e. ....\Visual Studio 2008\Projects\CApp\Debug).&amp;#160; The output we get is a window with our bmp:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/puahhl/SE79Pf_rm3I/AAAAAAAAAic/mOtA29Jq7Kc/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="192" alt="image" src="http://lh6.ggpht.com/puahhl/SE79QTW-UgI/AAAAAAAAAig/0OppxIK48SM/image_thumb.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;After &lt;strong&gt;SD&lt;a href="http://www.sdltutorials.com/sdl-events/"&gt;L Events&lt;/a&gt;&lt;/strong&gt;, the final output is still the same as above.&amp;#160; But this time, we create an interface CEvent class and inherit CApp from CEvent and implement the OnExit() function.&lt;/p&gt;  &lt;p&gt;After &lt;strong&gt;&lt;a href="http://www.sdltutorials.com/sdl-tutorial-tic-tac-toe/"&gt;SDL Tutorial - Tic Tac Toe&lt;/a&gt;&lt;/strong&gt;, the working tic-tac-toe (without detecting win) application is what we completed:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/puahhl/SFEkbOAnOgI/AAAAAAAAAik/JcfMZQSSL0w/s1600-h/image%5B3%5D.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://lh3.ggpht.com/puahhl/SFEkhR5UifI/AAAAAAAAAio/4lasf9SA4Wo/image_thumb%5B1%5D.png?imgmax=800" width="237" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Two key logics for tile game are:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;// Translating the Grid (0-9) to X-Y co-ordinate&lt;/p&gt;    &lt;p&gt;int X = (i % 3) * 200;&amp;#160; &lt;br /&gt;int Y = (i / 3) * 200;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;and&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;// converting the actual pixel grid to ID&lt;/p&gt;    &lt;p&gt;int ID&amp;#160; = mX / 200;      &lt;br /&gt;ID = ID + ((mY / 200) * 3);&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;That's all for LP#1.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-309479773294388483?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/309479773294388483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=309479773294388483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/309479773294388483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/309479773294388483'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2008/06/learning-trail-to-create-games.html' title='Learning Trail to Create Games &amp;amp; Lesson Plan #1'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/puahhl/SE2t2yJWqSI/AAAAAAAAAiQ/avEEQJcTXyA/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-2748920418214178759.post-7839583921012397123</id><published>2008-06-04T14:16:00.001-07:00</published><updated>2008-06-10T15:21:41.359-07:00</updated><title type='text'>Setting up SDL for Visual C++ 2008 to Create Game</title><content type='html'>&lt;h4&gt;Introducing SDL (Simple DirectMedia Layer)&lt;/h4&gt;  &lt;p&gt;SDL is a free cross-platform multi-media development API that can be used to build games, games SDK, emulators and etc.&amp;#160; It runs on win32, linux and other OSs.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.libsdl.org/intro.en/toc.html"&gt;SDL can be used for:&lt;/a&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Initialization of the library &lt;/li&gt;    &lt;li&gt;Video - setting, drawing pixels andloading &amp;amp; displaying images &lt;/li&gt;    &lt;li&gt;Events - waiting and polling &lt;/li&gt;    &lt;li&gt;Sound - opening device and loading &amp;amp; playing sounds &lt;/li&gt;    &lt;li&gt;CD-ROM audio &lt;/li&gt;    &lt;li&gt;Threads - create thread and synchronizing &lt;/li&gt;    &lt;li&gt;Timers - get time and wait &lt;/li&gt; &lt;/ol&gt;  &lt;h4&gt;Setup Visual C++ 2008 Express for SDL&lt;/h4&gt;  &lt;p&gt;Download a copy from &lt;a href="http://www.libsdl.org/"&gt;http://www.libsdl.org/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Follow the steps listed in &lt;a title="http://lazyfoo.net/SDL_tutorials/lesson01/windows/msvsnet05e/index.php" href="http://lazyfoo.net/SDL_tutorials/lesson01/windows/msvsnet05e/index.php"&gt;http://lazyfoo.net/SDL_tutorials/lesson01/windows/msvsnet05e/index.php&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Settings in Visual C++ 2008 Express: &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/puahhl/SEcF_wRLxgI/AAAAAAAAAh8/xh-1MxhE5i0/s1600-h/image3.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="345" alt="image" src="http://lh3.ggpht.com/puahhl/SEcGBXHaZvI/AAAAAAAAAiA/TTgqOooGGVo/image_thumb1.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://lh4.ggpht.com/puahhl/SEcGC2g1K_I/AAAAAAAAAiE/1F8ABOdaRDE/s1600-h/image7.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="345" alt="image" src="http://lh3.ggpht.com/puahhl/SEcGEfMq29I/AAAAAAAAAiI/YqMf4QsG71I/image_thumb3.png?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Follow the other steps to test run SDL. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Preparing the skeletons of a Game&lt;/h4&gt;  &lt;p&gt;Ref: &lt;a title="http://www.aaroncox.net/tutorials/arcade/Introduction.html" href="http://www.aaroncox.net/tutorials/arcade/Introduction.html"&gt;http://www.aaroncox.net/tutorials/arcade/Introduction.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Instead of copying the &amp;quot;SDL.ddl&amp;quot; into windows\SYSTEM32 directory, copy it to your project directory.&lt;/p&gt;  &lt;p&gt;One thing about the settings for &amp;quot;multi-threaded dll&amp;quot;, it can only be done, after adding a new source file eg &amp;quot;main.cpp&amp;quot;.&lt;/p&gt;  &lt;p&gt;Also, do include the &lt;a href="http://www.gnu.org/licenses/lgpl-3.0.txt"&gt;GNU LGPL license&lt;/a&gt; in your project directory.&lt;/p&gt;  &lt;p&gt;For the next article, we shall create our lesson plans to learn &amp;amp; create games using SDL and dive deeper into SDL.&lt;/p&gt;  &lt;h4&gt;Reference:&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a title="http://www.gamedev.net/reference/design/features/makegames/page2.asp" href="http://www.gamedev.net/reference/design/features/makegames/page2.asp"&gt;http://www.gamedev.net/reference/design/features/makegames/page2.asp&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.aaroncox.net/tutorials/arcade/tetris.pdf" href="http://www.aaroncox.net/tutorials/arcade/tetris.pdf"&gt;http://www.aaroncox.net/tutorials/arcade/tetris.pdf&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.aaroncox.net/tutorials/arcade/Introduction.html" href="http://www.aaroncox.net/tutorials/arcade/Introduction.html"&gt;http://www.aaroncox.net/tutorials/arcade/Introduction.html&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.aaroncox.net/tutorials/miscellaneous/STL.html" href="http://www.aaroncox.net/tutorials/miscellaneous/STL.html"&gt;http://www.aaroncox.net/tutorials/miscellaneous/STL.html&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.libsdl.org/" href="http://www.libsdl.org/"&gt;http://www.libsdl.org/&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-7839583921012397123?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/7839583921012397123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=7839583921012397123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/7839583921012397123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/7839583921012397123'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2008/06/setting-up-sdl-for-visual-c-2008-to.html' title='Setting up SDL for Visual C++ 2008 to Create Game'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/puahhl/SEcGBXHaZvI/AAAAAAAAAiA/TTgqOooGGVo/s72-c/image_thumb1.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-8047183593845054433</id><published>2008-05-27T01:13:00.001-07:00</published><updated>2008-05-27T01:13:44.276-07:00</updated><title type='text'>C++ Libraries - STL and boost</title><content type='html'>&lt;h4&gt;C++ Standard Libraries and Standard Template Library&lt;/h4&gt;  &lt;p&gt;C++ Standard Libraries consist of a set of classes with functions (in std namespace) for common tasks - generic containers and functions, strings, streams, maths, etc.&lt;/p&gt;  &lt;p&gt;C++ Standard Template Library consist of templates - algorithms, iterators, etc.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Example of using STL for sorting algorithm:&lt;/u&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;blockquote&gt;     &lt;p&gt;#include &amp;quot;stdafx.h&amp;quot;        &lt;br /&gt;#include &amp;lt;iostream&amp;gt;&amp;#160;&amp;#160; // Standard Library.         &lt;br /&gt;#include &amp;lt;algorithm&amp;gt;&amp;#160; // Standard Template Library.         &lt;br /&gt;using namespace std; &lt;/p&gt;      &lt;p&gt;int _tmain(int argc, _TCHAR* argv[])        &lt;br /&gt;{         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int array[] = {23, 5, -3, 10, 2, 700, 24, 7};         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int elements = sizeof(array)/ sizeof(array[0]);         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sort(array, array + elements);         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; for (int i = 0; i &amp;lt; elements; ++i)         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; array[i] &amp;lt;&amp;lt; ' ';         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return 0;         &lt;br /&gt;}&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;Output:&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;-3 2 5 7 10 23 24 700&lt;/p&gt;   &lt;/blockquote&gt; &lt;/blockquote&gt;  &lt;h4&gt;Boost C++ Libraries&lt;/h4&gt;  &lt;p&gt;&lt;a href="http://www.boost.org/"&gt;Boost C++ Libraries&lt;/a&gt; consist of a set of open source libraries that extend the C++ functionality to increase PRODUCTIVITY without re-inventing wheels.&amp;#160; Examples (for version 1.35.0) are: smart pointer, iterators, lambda, foreach, disjoint sets, date time, etc.&amp;#160; Listing by categories:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/puahhl/SDvCfARLtoI/AAAAAAAAAgs/HrgXrvRyJgY/s1600-h/image17.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/puahhl/SDvChgRLtpI/AAAAAAAAAg0/gA9rRlDkqgg/image_thumb5.png?imgmax=800" width="220" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;h5&gt;Install and Get Started using Boost C++ Libraries&lt;/h5&gt;  &lt;p&gt;1. &lt;a title="http://www.boost.org/" href="http://www.boost.org/"&gt;http://www.boost.org/&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Go to the &amp;quot;Getting Started&amp;quot; documentation for windows.&amp;#160; &lt;/p&gt;    &lt;p&gt;Download the zip file from&lt;/p&gt;    &lt;p&gt;&lt;a title="http://www.boost-consulting.com/products/free" href="http://www.boost-consulting.com/products/free"&gt;http://www.boost-consulting.com/products/free&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Unzip it to local drive.&amp;#160; Eg in E: drive:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh5.ggpht.com/puahhl/SDvCigRLtqI/AAAAAAAAAg8/rtxOat22A8I/s1600-h/image2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="213" alt="image" src="http://lh6.ggpht.com/puahhl/SDvCjwRLtrI/AAAAAAAAAhE/lsDf-YeQXZk/image_thumb.png?imgmax=800" width="145" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;2. I'm using Visual C++ Express 2008 IDE and only using the header-only library.&amp;#160; Start a new project and change the project properties (Alt-F7):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh4.ggpht.com/puahhl/SDvClQRLtsI/AAAAAAAAAhM/DhJ8lM4LPSM/s1600-h/image5.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/puahhl/SDvCogRLttI/AAAAAAAAAhU/Yz1qutb8jZ4/image_thumb1.png?imgmax=800" width="161" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;(A) Configuration Properties &amp;gt; C/C++ &amp;gt; General: Add the path to the boost directory:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh4.ggpht.com/puahhl/SDvCpQRLtuI/AAAAAAAAAhc/L6Ydy91apIk/s1600-h/image11.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="37" alt="image" src="http://lh4.ggpht.com/puahhl/SDvCqQRLtvI/AAAAAAAAAhk/9tR8KMR4Y74/image_thumb3.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;(B) Configuration Properties &amp;gt; C/C++ &amp;gt; Precompiled Headers:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh6.ggpht.com/puahhl/SDvCrwRLtwI/AAAAAAAAAhs/oRzfEaR2Mis/s1600-h/image14.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="44" alt="image" src="http://lh5.ggpht.com/puahhl/SDvCtgRLtxI/AAAAAAAAAh0/B2pkrk5lSV4/image_thumb4.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;3. Use the following sample source to build and run:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;#include &amp;quot;stdafx.h&amp;quot;      &lt;br /&gt;#include &amp;lt;boost/lambda/lambda.hpp&amp;gt;       &lt;br /&gt;#include &amp;lt;iostream&amp;gt;       &lt;br /&gt;#include &amp;lt;iterator&amp;gt;       &lt;br /&gt;#include &amp;lt;algorithm&amp;gt; &lt;/p&gt;    &lt;p&gt;int _tmain(int argc, _TCHAR* argv[])      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; using namespace boost::lambda;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; typedef std::istream_iterator&amp;lt;int&amp;gt; in; &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; std::for_each(      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; in(std::cin), in(), std::cout &amp;lt;&amp;lt; (_1 * 3) &amp;lt;&amp;lt; &amp;quot; &amp;quot; );       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return 0;       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;Output:&lt;/u&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1 2 3 4 5 6      &lt;br /&gt;3 6 9 12 15 18 &lt;/p&gt;    &lt;p&gt;[CTRL-C to break]&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;References:&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a title="http://en.wikipedia.org/wiki/C%2B%2B_standard_library" href="http://en.wikipedia.org/wiki/C%2B%2B_standard_library"&gt;http://en.wikipedia.org/wiki/C%2B%2B_standard_library&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://en.wikipedia.org/wiki/Boost_C%2B%2B_Libraries" href="http://en.wikipedia.org/wiki/Boost_C%2B%2B_Libraries"&gt;http://en.wikipedia.org/wiki/Boost_C%2B%2B_Libraries&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.boost.org/doc/libs/1_35_0" href="http://www.boost.org/doc/libs/1_35_0"&gt;http://www.boost.org/doc/libs/1_35_0&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://dave-programming.blogspot.com/2008/02/how-to-build-boost-1341-with-visual.html" href="http://dave-programming.blogspot.com/2008/02/how-to-build-boost-1341-with-visual.html"&gt;http://dave-programming.blogspot.com/2008/02/how-to-build-boost-1341-with-visual.html&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-8047183593845054433?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/8047183593845054433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=8047183593845054433' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/8047183593845054433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/8047183593845054433'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2008/05/c-libraries-stl-and-boost.html' title='C++ Libraries - STL and boost'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/puahhl/SDvChgRLtpI/AAAAAAAAAg0/gA9rRlDkqgg/s72-c/image_thumb5.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-3264478518300377841</id><published>2008-05-27T01:12:00.001-07:00</published><updated>2008-05-27T01:12:16.733-07:00</updated><title type='text'>Intermediate C++ Tests</title><content type='html'>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;C++ compiler used : Microsoft Visual C++ 2008 Express.&lt;/p&gt;  &lt;h4&gt;Pointer to Pointers&lt;/h4&gt;  &lt;p&gt;&lt;u&gt;Example:&lt;/u&gt; int **p&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;&amp;amp; is the reference operator and can be read as &amp;quot;address of&amp;quot; &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;* is the dereference operator and can be read as &amp;quot;value pointed by&amp;quot; &lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;u&gt;Problem:&lt;/u&gt; illustrate the use of pointer to pointers (one pointing to an integer of value 7).&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Solution:&lt;/u&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;#include &amp;quot;stdafx.h&amp;quot;      &lt;br /&gt;#include &amp;lt;iostream&amp;gt;       &lt;br /&gt;using namespace std; &lt;/p&gt;    &lt;p&gt;int _tmain(int argc, _TCHAR* argv[])      &lt;br /&gt;{ &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160; // 10 integer filled with values      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int value[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; // 10 pointers to store the address of 10 integers       &lt;br /&gt;&amp;#160;&amp;#160; int *ptr[10];       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; for (int i=0; i&amp;lt;10; i++){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ptr[i] = &amp;amp;value[i];       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160; // Pointer store address of one of the 10 pointers      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int **p = &amp;amp;ptr[0]; &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;value[0] is &amp;quot; &amp;lt;&amp;lt; value[0] &amp;lt;&amp;lt; endl;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;value[7] is &amp;quot; &amp;lt;&amp;lt; value[7] &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Address of value[0] is &amp;quot; &amp;lt;&amp;lt; &amp;amp;value[0] &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Address of value[7] is &amp;quot; &amp;lt;&amp;lt; &amp;amp;value[7] &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;value of ptr[0] is &amp;quot; &amp;lt;&amp;lt; ptr[0] &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;value of ptr[7] is &amp;quot; &amp;lt;&amp;lt; ptr[7] &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Address of ptr[0] is &amp;quot; &amp;lt;&amp;lt; &amp;amp;ptr[0] &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;value of p is &amp;quot; &amp;lt;&amp;lt; p &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;value of *p is &amp;quot; &amp;lt;&amp;lt; *p &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;value of **p is &amp;quot; &amp;lt;&amp;lt; **p &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return 0;       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Output:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;value[0] is 0      &lt;br /&gt;value[7] is 7       &lt;br /&gt;Address of value[0] is 0012FF3C       &lt;br /&gt;Address of value[7] is 0012FF58       &lt;br /&gt;value of ptr[0] is 0012FF3C       &lt;br /&gt;value of ptr[7] is 0012FF58       &lt;br /&gt;Address of ptr[0] is 0012FF0C       &lt;br /&gt;value of p is 0012FF0C       &lt;br /&gt;value of *p is 0012FF3C       &lt;br /&gt;value of **p is 0&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;&amp;amp; is the reference operator and can be read as &amp;quot;address of&amp;quot; &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;* is the dereference operator and can be read as &amp;quot;value pointed by&amp;quot; &lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;u&gt;References:&lt;/u&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a title="http://www.codersource.net/c++_pointers.html" href="http://www.codersource.net/c++_pointers.html"&gt;http://www.codersource.net/c++_pointers.html&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.cplusplus.com/doc/tutorial/pointers.html" href="http://www.cplusplus.com/doc/tutorial/pointers.html"&gt;http://www.cplusplus.com/doc/tutorial/pointers.html&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Recursive Function &amp;amp; Passing Array as Parameter to Function&lt;/h4&gt;  &lt;p&gt;&lt;u&gt;Example:&lt;/u&gt; Factorial n!&amp;#160; implementation using recursive function is using the following logics:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;if n = 0, n! is equal to 1.      &lt;br /&gt;if n &amp;gt; 0, n! is equal to n &amp;#215; ((n-1)!) &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;Problem:&lt;/u&gt; Use recursive function to add the numbers in the array list[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Solution:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Logics to be used:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;if n = array first element,&amp;#160; recr(n) = first element value which is list[n]&lt;/p&gt;    &lt;p&gt;if n not array first element, recr(n) = recr(n-1) + list[n]&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Codes:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;#include &amp;quot;stdafx.h&amp;quot;      &lt;br /&gt;#include &amp;lt;iostream&amp;gt;       &lt;br /&gt;using namespace std;       &lt;br /&gt;int recr(int* list, int n); &lt;/p&gt;    &lt;p&gt;int _tmain(int argc, _TCHAR* argv[])      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int list[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int correct_sum = 0;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int sum = recr(list, 9);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; for (int i = 0; i &amp;lt; 10; i++) {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; correct_sum += list[i];       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Correct ans is &amp;quot; &amp;lt;&amp;lt; correct_sum &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Recr ans is &amp;quot; &amp;lt;&amp;lt; sum &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return 0;       &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;int recr(int * list, int n){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if (n == 0) return *(list+n);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; else return recr(list, n-1) + *(list+n);       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Output:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Correct ans is 45      &lt;br /&gt;Recr ans is 45&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;References:&lt;/u&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a title="http://www.dcs.bbk.ac.uk/~roger/cpp/week15.htm" href="http://www.dcs.bbk.ac.uk/~roger/cpp/week15.htm"&gt;http://www.dcs.bbk.ac.uk/~roger/cpp/week15.htm&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.engin.umd.umich.edu/CIS/course.des/cis400/cpp/factorial.html" href="http://www.engin.umd.umich.edu/CIS/course.des/cis400/cpp/factorial.html"&gt;http://www.engin.umd.umich.edu/CIS/course.des/cis400/cpp/factorial.html&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.tenouk.com/Module7.html" href="http://www.tenouk.com/Module7.html"&gt;http://www.tenouk.com/Module7.html&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Sorting&lt;/h4&gt;  &lt;p&gt;&lt;u&gt;Example:&lt;/u&gt; Bubble Sort, Exchange Sort, Selection Sort, Insertion Sort, Shell Sort, Quick Sort, Merge Sort ...&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Problem:&lt;/u&gt; Illustrate bubble sort from {9, 8, 7, 6, 5, 4, 3, 2, 1, 0} to {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Solution 1 - full implementation:&lt;/u&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;#include &amp;quot;stdafx.h&amp;quot;      &lt;br /&gt;#include &amp;lt;iostream&amp;gt;       &lt;br /&gt;using namespace std; &lt;/p&gt;    &lt;p&gt;int _tmain(int argc, _TCHAR* argv[])      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int array[] = {23, 5, -3, 10, 2, 700, 24, 7};       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int size = (sizeof(array)/sizeof(array[0])) -1;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int temp;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; for (int i=0; i &amp;lt; size; i++){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (int j =i+1; j &amp;lt; size; j++){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (array[i] &amp;gt; array[j]) {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; temp = array[i];       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; array[i] = array[j];       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; array[j] = temp;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; for (int i=0; i &amp;lt; size; i++)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; array[i] &amp;lt;&amp;lt; ' ';       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return 0;       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Output:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;-3 2 5 10 23 24 700&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;Solution 2 - using &amp;lt;algorithm&amp;gt; from Standard Template Library:&lt;/u&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;#include &amp;quot;stdafx.h&amp;quot;      &lt;br /&gt;#include &amp;lt;iostream&amp;gt;       &lt;br /&gt;#include &amp;lt;algorithm&amp;gt;&amp;#160; // Standard Template Library.       &lt;br /&gt;using namespace std; &lt;/p&gt;    &lt;p&gt;int _tmain(int argc, _TCHAR* argv[])      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int array[] = {23, 5, -3, 10, 2, 700, 24, 7};       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int elements = sizeof(array)/ sizeof(array[0]);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sort(array, array + elements);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; for (int i = 0; i &amp;lt; elements; ++i)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; array[i] &amp;lt;&amp;lt; ' ';       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return 0;       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Output:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;-3 2 5 7 10 23 24 700&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;Reference:&lt;/u&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a title="http://en.wikipedia.org/wiki/Sort_(C%2B%2B)" href="http://en.wikipedia.org/wiki/Sort_(C%2B%2B)"&gt;http://en.wikipedia.org/wiki/Sort_(C%2B%2B)&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Link List&lt;/h4&gt;  &lt;p&gt;&lt;u&gt;Example:&lt;/u&gt;&amp;#160; start =&amp;gt; [ content, pointer] =&amp;gt; [ content1, pointer1] =&amp;gt; [content2, null]&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Problem:&lt;/u&gt; Construct a double link list and print list from the front and from the back.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Solution:&lt;/u&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;#include &amp;quot;stdafx.h&amp;quot;      &lt;br /&gt;#include &amp;lt;iostream&amp;gt;       &lt;br /&gt;using namespace std; &lt;/p&gt;    &lt;p&gt;class node{      &lt;br /&gt;public:       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int value;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //value stored in the node       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node *next;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //pointer to next node       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node *prev;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //pointer to previous node       &lt;br /&gt;}; &lt;/p&gt;    &lt;p&gt;class dlist{      &lt;br /&gt;public:       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node *front;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //pointer to front of list&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node *back;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //pointer to back of list&amp;#160; &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dlist(){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; front = NULL;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; back = NULL;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; void insertFront(int value);&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void insertBack(int value);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void removeFront();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void removeBack();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void insertBefore(int value, node *nodeB);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void insertAfter(int value, node *nodeA);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void removeBefore(node *nodeB);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void removeAfter(node *nodeA);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void removeNode(node *newNode);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void printDListFront();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void printDListBack();       &lt;br /&gt;}; &lt;/p&gt;    &lt;p&gt;//insert a node before nodeB      &lt;br /&gt;void dlist::insertBefore(int value, node *nodeB){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node *newNode;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; newNode = new node();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;prev = nodeB-&amp;gt;prev;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;next = nodeB;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;value = value;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if(nodeB-&amp;gt;prev == NULL){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;front = newNode;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; nodeB-&amp;gt;prev = newNode;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; removeNode(newNode);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Insert Before: &amp;quot; &amp;lt;&amp;lt; value &amp;lt;&amp;lt; endl;       &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;//insert a node before the front node      &lt;br /&gt;void dlist::insertFront(int value){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node *newNode;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if(this-&amp;gt;front == NULL){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; newNode = new node();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;front = newNode;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;back = newNode;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;prev = NULL;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;next = NULL;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;value = value;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; else{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; insertBefore(value, this-&amp;gt;front );       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Insert Front: &amp;quot; &amp;lt;&amp;lt; value &amp;lt;&amp;lt; endl;       &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;//insert a node after&amp;#160; nodeB      &lt;br /&gt;void dlist::insertAfter(int value, node *nodeB){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node *newNode;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; newNode = new node();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;next = nodeB-&amp;gt;next ;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;prev&amp;#160; = nodeB;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;value = value; &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; if(nodeB-&amp;gt;next == NULL){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;back = newNode;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; nodeB-&amp;gt;next = newNode;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Insert After: &amp;quot; &amp;lt;&amp;lt; value &amp;lt;&amp;lt; endl;       &lt;br /&gt;}       &lt;br /&gt;//insert a node after the last node       &lt;br /&gt;void dlist::insertBack(int value){&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if(this-&amp;gt;back == NULL){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; insertFront(value);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; else{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; insertAfter(value, this-&amp;gt;back&amp;#160; );       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Insert Back: &amp;quot; &amp;lt;&amp;lt; value &amp;lt;&amp;lt; endl;       &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;//remove the front node      &lt;br /&gt;void dlist::removeFront(){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; removeNode(this-&amp;gt;front);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Remove Front\n&amp;quot;;       &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;//remove a back node      &lt;br /&gt;void dlist::removeBack(){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; removeNode(this-&amp;gt;back);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Remove Back\n&amp;quot;;       &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;//remove before a node      &lt;br /&gt;void dlist::removeBefore(node *nodeB){ &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; if(nodeB-&amp;gt;prev == this-&amp;gt;front){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;front = nodeB;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;front-&amp;gt;prev = NULL;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; else{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; removeNode(nodeB-&amp;gt;prev);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Remove Before: &amp;quot; &amp;lt;&amp;lt; nodeB-&amp;gt;value &amp;lt;&amp;lt; endl;       &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;//remove after a node      &lt;br /&gt;void dlist::removeAfter(node *nodeA){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if(nodeA-&amp;gt;next == this-&amp;gt;back){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;back = nodeA;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;back-&amp;gt;next = NULL;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; else{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; removeNode(nodeA-&amp;gt;next);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Remove After: &amp;quot; &amp;lt;&amp;lt; nodeA-&amp;gt;value &amp;lt;&amp;lt; endl;       &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;//remove a perticular node      &lt;br /&gt;void dlist::removeNode(node *nodeToRemove){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if(nodeToRemove == this-&amp;gt;front){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;front = this-&amp;gt;front-&amp;gt;next;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;front-&amp;gt;prev = NULL;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; else if (nodeToRemove == this-&amp;gt;back){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;back = this-&amp;gt;back-&amp;gt;prev;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;back-&amp;gt;next = NULL&amp;#160;&amp;#160;&amp;#160; ;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; else{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; nodeToRemove-&amp;gt;prev-&amp;gt;next = nodeToRemove-&amp;gt;next;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; nodeToRemove-&amp;gt;next-&amp;gt;prev = nodeToRemove-&amp;gt;prev;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Remove Node: &amp;quot; &amp;lt;&amp;lt; nodeToRemove-&amp;gt;value &amp;lt;&amp;lt; endl;       &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;//Print the list from front      &lt;br /&gt;void dlist::printDListFront(){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node* curr2;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; curr2 = this-&amp;gt;front;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Print Queue from Front:\n&amp;quot;;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; while(curr2 != NULL){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot; |&amp;quot; &amp;lt;&amp;lt; curr2-&amp;gt;value &amp;lt;&amp;lt;&amp;quot;|&amp;quot;;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; curr2 = curr2-&amp;gt;next;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; endl;       &lt;br /&gt;}// print the Double Linked List from front &lt;/p&gt;    &lt;p&gt;// print the Double Linked List from backwards      &lt;br /&gt;void dlist::printDListBack(){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node* curr2;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; curr2 = this-&amp;gt;back;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Print Queue from Back:\n&amp;quot;;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; while(curr2 != NULL){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot; |&amp;quot; &amp;lt;&amp;lt; curr2-&amp;gt;value &amp;lt;&amp;lt;&amp;quot;|&amp;quot;;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; curr2=curr2-&amp;gt;prev;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; endl;       &lt;br /&gt;}// print the Double Linked List from back &lt;/p&gt;    &lt;p&gt;int _tmain(int argc, _TCHAR* argv[])      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; dlist *st ;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st= new dlist();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;insertBack(8);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;printDListFront ();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;insertBack(5);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;printDListFront ();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;insertBack(6);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;printDListFront ();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;insertFront(1) ;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;printDListFront ();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;insertFront(3) ;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;printDListFront ();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;insertBack(7);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;printDListFront ();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;removeFront();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;printDListFront ();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;removeBack();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;printDListFront ();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return 0;       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;&lt;/blockquote&gt;  &lt;p&gt;Output:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Insert Front: 8      &lt;br /&gt;Insert Back: 8       &lt;br /&gt;Print Queue from Front:       &lt;br /&gt;|8|       &lt;br /&gt;Insert After: 5       &lt;br /&gt;Insert Back: 5       &lt;br /&gt;Print Queue from Front:       &lt;br /&gt;|8| |5|       &lt;br /&gt;Insert After: 6       &lt;br /&gt;Insert Back: 6       &lt;br /&gt;Print Queue from Front:       &lt;br /&gt;|8| |5| |6|       &lt;br /&gt;Remove Node: 1       &lt;br /&gt;Insert Before: 1       &lt;br /&gt;Insert Front: 1       &lt;br /&gt;Print Queue from Front:       &lt;br /&gt;|8| |5| |6|       &lt;br /&gt;Remove Node: 3       &lt;br /&gt;Insert Before: 3       &lt;br /&gt;Insert Front: 3       &lt;br /&gt;Print Queue from Front:       &lt;br /&gt;|8| |5| |6|       &lt;br /&gt;Insert After: 7       &lt;br /&gt;Insert Back: 7       &lt;br /&gt;Print Queue from Front:       &lt;br /&gt;|8| |5| |6| |7|       &lt;br /&gt;Remove Node: 8       &lt;br /&gt;Remove Front       &lt;br /&gt;Print Queue from Front:       &lt;br /&gt;|5| |6| |7|       &lt;br /&gt;Remove Node: 7       &lt;br /&gt;Remove Back       &lt;br /&gt;Print Queue from Front:       &lt;br /&gt;|5| |6|&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;Reference:&lt;/u&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a title="http://24bytes.com/Double-linked-List.html" href="http://24bytes.com/Double-linked-List.html"&gt;http://24bytes.com/Double-linked-List.html&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-3264478518300377841?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/3264478518300377841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=3264478518300377841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/3264478518300377841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/3264478518300377841'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2008/05/intermediate-c-tests_27.html' title='Intermediate C++ Tests'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-7220160903732260499</id><published>2008-05-10T21:17:00.001-07:00</published><updated>2008-05-14T15:52:26.810-07:00</updated><title type='text'>Intermediate C++ Tests</title><content type='html'>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;C++ compiler used : Microsoft Visual C++ 2008 Express.&lt;/p&gt;  &lt;h4&gt;Pointer to Pointers&lt;/h4&gt;  &lt;p&gt;&lt;u&gt;Example:&lt;/u&gt; int **p&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;&amp;amp; is the reference operator and can be read as &amp;quot;address of&amp;quot; &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;* is the dereference operator and can be read as &amp;quot;value pointed by&amp;quot; &lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;u&gt;Problem:&lt;/u&gt; illustrate the use of pointer to pointers (one pointing to an integer of value 7).&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Solution:&lt;/u&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;#include &amp;quot;stdafx.h&amp;quot;      &lt;br /&gt;#include &amp;lt;iostream&amp;gt;       &lt;br /&gt;using namespace std; &lt;/p&gt;    &lt;p&gt;int _tmain(int argc, _TCHAR* argv[])      &lt;br /&gt;{ &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160; // 10 integer filled with values      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int value[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; // 10 pointers to store the address of 10 integers       &lt;br /&gt;&amp;#160;&amp;#160; int *ptr[10];       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; for (int i=0; i&amp;lt;10; i++){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ptr[i] = &amp;amp;value[i];       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160; // Pointer store address of one of the 10 pointers      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int **p = &amp;amp;ptr[0]; &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;value[0] is &amp;quot; &amp;lt;&amp;lt; value[0] &amp;lt;&amp;lt; endl;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;value[7] is &amp;quot; &amp;lt;&amp;lt; value[7] &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Address of value[0] is &amp;quot; &amp;lt;&amp;lt; &amp;amp;value[0] &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Address of value[7] is &amp;quot; &amp;lt;&amp;lt; &amp;amp;value[7] &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;value of ptr[0] is &amp;quot; &amp;lt;&amp;lt; ptr[0] &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;value of ptr[7] is &amp;quot; &amp;lt;&amp;lt; ptr[7] &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Address of ptr[0] is &amp;quot; &amp;lt;&amp;lt; &amp;amp;ptr[0] &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;value of p is &amp;quot; &amp;lt;&amp;lt; p &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;value of *p is &amp;quot; &amp;lt;&amp;lt; *p &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;value of **p is &amp;quot; &amp;lt;&amp;lt; **p &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return 0;       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Output:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;value[0] is 0      &lt;br /&gt;value[7] is 7       &lt;br /&gt;Address of value[0] is 0012FF3C       &lt;br /&gt;Address of value[7] is 0012FF58       &lt;br /&gt;value of ptr[0] is 0012FF3C       &lt;br /&gt;value of ptr[7] is 0012FF58       &lt;br /&gt;Address of ptr[0] is 0012FF0C       &lt;br /&gt;value of p is 0012FF0C       &lt;br /&gt;value of *p is 0012FF3C       &lt;br /&gt;value of **p is 0&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;&amp;amp; is the reference operator and can be read as &amp;quot;address of&amp;quot; &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;* is the dereference operator and can be read as &amp;quot;value pointed by&amp;quot; &lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;u&gt;References:&lt;/u&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a title="http://www.codersource.net/c++_pointers.html" href="http://www.codersource.net/c++_pointers.html"&gt;http://www.codersource.net/c++_pointers.html&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.cplusplus.com/doc/tutorial/pointers.html" href="http://www.cplusplus.com/doc/tutorial/pointers.html"&gt;http://www.cplusplus.com/doc/tutorial/pointers.html&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Recursive Function &amp;amp; Passing Array as Parameter to Function&lt;/h4&gt;  &lt;p&gt;&lt;u&gt;Example:&lt;/u&gt; Factorial n!&amp;#160; implementation using recursive function is using the following logics:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;if n = 0, n! is equal to 1.      &lt;br /&gt;if n &amp;gt; 0, n! is equal to n &amp;#215; ((n-1)!) &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;Problem:&lt;/u&gt; Use recursive function to add the numbers in the array list[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Solution:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Logics to be used:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;if n = array first element,&amp;#160; recr(n) = first element value which is list[n]&lt;/p&gt;    &lt;p&gt;if n not array first element, recr(n) = recr(n-1) + list[n]&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Codes:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;#include &amp;quot;stdafx.h&amp;quot;      &lt;br /&gt;#include &amp;lt;iostream&amp;gt;       &lt;br /&gt;using namespace std;       &lt;br /&gt;int recr(int* list, int n); &lt;/p&gt;    &lt;p&gt;int _tmain(int argc, _TCHAR* argv[])      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int list[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int correct_sum = 0;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int sum = recr(list, 9);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; for (int i = 0; i &amp;lt; 10; i++) {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; correct_sum += list[i];       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Correct ans is &amp;quot; &amp;lt;&amp;lt; correct_sum &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Recr ans is &amp;quot; &amp;lt;&amp;lt; sum &amp;lt;&amp;lt; endl;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return 0;       &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;int recr(int * list, int n){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if (n == 0) return *(list+n);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; else return recr(list, n-1) + *(list+n);       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Output:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Correct ans is 45      &lt;br /&gt;Recr ans is 45&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;References:&lt;/u&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a title="http://www.dcs.bbk.ac.uk/~roger/cpp/week15.htm" href="http://www.dcs.bbk.ac.uk/~roger/cpp/week15.htm"&gt;http://www.dcs.bbk.ac.uk/~roger/cpp/week15.htm&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.engin.umd.umich.edu/CIS/course.des/cis400/cpp/factorial.html" href="http://www.engin.umd.umich.edu/CIS/course.des/cis400/cpp/factorial.html"&gt;http://www.engin.umd.umich.edu/CIS/course.des/cis400/cpp/factorial.html&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.tenouk.com/Module7.html" href="http://www.tenouk.com/Module7.html"&gt;http://www.tenouk.com/Module7.html&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Sorting&lt;/h4&gt;  &lt;p&gt;&lt;u&gt;Example:&lt;/u&gt; Bubble Sort, Exchange Sort, Selection Sort, Insertion Sort, Shell Sort, Quick Sort, Merge Sort ...&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Problem:&lt;/u&gt; Illustrate bubble sort from {9, 8, 7, 6, 5, 4, 3, 2, 1, 0} to {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Solution 1 - full implementation:&lt;/u&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;#include &amp;quot;stdafx.h&amp;quot;      &lt;br /&gt;#include &amp;lt;iostream&amp;gt;       &lt;br /&gt;using namespace std; &lt;/p&gt;    &lt;p&gt;int _tmain(int argc, _TCHAR* argv[])      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int array[] = {23, 5, -3, 10, 2, 700, 24, 7};       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int size = (sizeof(array)/sizeof(array[0])) -1;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int temp;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; for (int i=0; i &amp;lt; size; i++){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (int j =i+1; j &amp;lt; size; j++){       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (array[i] &amp;gt; array[j]) {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; temp = array[i];       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; array[i] = array[j];       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; array[j] = temp;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; for (int i=0; i &amp;lt; size; i++)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; array[i] &amp;lt;&amp;lt; ' ';       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return 0;       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Output:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;-3 2 5 10 23 24 700&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;Solution 2 - using &amp;lt;algorithm&amp;gt; from Standard Template Library:&lt;/u&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;#include &amp;quot;stdafx.h&amp;quot;      &lt;br /&gt;#include &amp;lt;iostream&amp;gt;       &lt;br /&gt;#include &amp;lt;algorithm&amp;gt;&amp;#160; // Standard Template Library.       &lt;br /&gt;using namespace std; &lt;/p&gt;    &lt;p&gt;int _tmain(int argc, _TCHAR* argv[])      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int array[] = {23, 5, -3, 10, 2, 700, 24, 7};       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int elements = sizeof(array)/ sizeof(array[0]);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; sort(array, array + elements);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; for (int i = 0; i &amp;lt; elements; ++i)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; array[i] &amp;lt;&amp;lt; ' ';       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return 0;       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Output:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;-3 2 5 7 10 23 24 700&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;Reference:&lt;/u&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a title="http://en.wikipedia.org/wiki/Sort_(C%2B%2B)" href="http://en.wikipedia.org/wiki/Sort_(C%2B%2B)"&gt;http://en.wikipedia.org/wiki/Sort_(C%2B%2B)&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Link List&lt;/h4&gt;  &lt;p&gt;&lt;u&gt;Example:&lt;/u&gt;&amp;#160; start =&amp;gt; [ content, pointer] =&amp;gt; [ content1, pointer1] =&amp;gt; [content2, null]&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Problem:&lt;/u&gt; Construct a double link list and print list from the front and from the back.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Solution:&lt;/u&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;#include &amp;quot;stdafx.h&amp;quot;     &lt;br /&gt;#include &amp;lt;iostream&amp;gt;      &lt;br /&gt;using namespace std; &lt;/p&gt;    &lt;p&gt;class node{     &lt;br /&gt;public:      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; int value;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //value stored in the node       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node *next;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //pointer to next node       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node *prev;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //pointer to previous node       &lt;br /&gt;}; &lt;/p&gt;    &lt;p&gt;class dlist{     &lt;br /&gt;public:      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node *front;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //pointer to front of list&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node *back;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //pointer to back of list&amp;#160; &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dlist(){     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; front = NULL;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; back = NULL;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; void insertFront(int value);&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void insertBack(int value);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void removeFront();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void removeBack();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void insertBefore(int value, node *nodeB);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void insertAfter(int value, node *nodeA);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void removeBefore(node *nodeB);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void removeAfter(node *nodeA);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void removeNode(node *newNode);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void printDListFront();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; void printDListBack();      &lt;br /&gt;}; &lt;/p&gt;    &lt;p&gt;//insert a node before nodeB     &lt;br /&gt;void dlist::insertBefore(int value, node *nodeB){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node *newNode;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; newNode = new node();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;prev = nodeB-&amp;gt;prev;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;next = nodeB;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;value = value;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if(nodeB-&amp;gt;prev == NULL){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;front = newNode;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; nodeB-&amp;gt;prev = newNode;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; removeNode(newNode);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Insert Before: &amp;quot; &amp;lt;&amp;lt; value &amp;lt;&amp;lt; endl;      &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;//insert a node before the front node      &lt;br /&gt;void dlist::insertFront(int value){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node *newNode;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if(this-&amp;gt;front == NULL){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; newNode = new node();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;front = newNode;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;back = newNode;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;prev = NULL;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;next = NULL;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;value = value;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; else{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; insertBefore(value, this-&amp;gt;front );      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Insert Front: &amp;quot; &amp;lt;&amp;lt; value &amp;lt;&amp;lt; endl;      &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;//insert a node after&amp;#160; nodeB     &lt;br /&gt;void dlist::insertAfter(int value, node *nodeB){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node *newNode;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; newNode = new node();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;next = nodeB-&amp;gt;next ;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;prev&amp;#160; = nodeB;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; newNode-&amp;gt;value = value; &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; if(nodeB-&amp;gt;next == NULL){     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;back = newNode;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; nodeB-&amp;gt;next = newNode;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Insert After: &amp;quot; &amp;lt;&amp;lt; value &amp;lt;&amp;lt; endl;      &lt;br /&gt;}      &lt;br /&gt;//insert a node after the last node       &lt;br /&gt;void dlist::insertBack(int value){&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if(this-&amp;gt;back == NULL){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; insertFront(value);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; else{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; insertAfter(value, this-&amp;gt;back&amp;#160; );      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Insert Back: &amp;quot; &amp;lt;&amp;lt; value &amp;lt;&amp;lt; endl;      &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;//remove the front node      &lt;br /&gt;void dlist::removeFront(){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; removeNode(this-&amp;gt;front);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Remove Front\n&amp;quot;;      &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;//remove a back node      &lt;br /&gt;void dlist::removeBack(){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; removeNode(this-&amp;gt;back);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Remove Back\n&amp;quot;;      &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;//remove before a node      &lt;br /&gt;void dlist::removeBefore(node *nodeB){ &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; if(nodeB-&amp;gt;prev == this-&amp;gt;front){     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;front = nodeB;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;front-&amp;gt;prev = NULL;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; else{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; removeNode(nodeB-&amp;gt;prev);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Remove Before: &amp;quot; &amp;lt;&amp;lt; nodeB-&amp;gt;value &amp;lt;&amp;lt; endl;      &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;//remove after a node      &lt;br /&gt;void dlist::removeAfter(node *nodeA){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if(nodeA-&amp;gt;next == this-&amp;gt;back){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;back = nodeA;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;back-&amp;gt;next = NULL;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; else{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; removeNode(nodeA-&amp;gt;next);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Remove After: &amp;quot; &amp;lt;&amp;lt; nodeA-&amp;gt;value &amp;lt;&amp;lt; endl;      &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;//remove a perticular node      &lt;br /&gt;void dlist::removeNode(node *nodeToRemove){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if(nodeToRemove == this-&amp;gt;front){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;front = this-&amp;gt;front-&amp;gt;next;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;front-&amp;gt;prev = NULL;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; else if (nodeToRemove == this-&amp;gt;back){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;back = this-&amp;gt;back-&amp;gt;prev;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this-&amp;gt;back-&amp;gt;next = NULL&amp;#160;&amp;#160;&amp;#160; ;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; else{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; nodeToRemove-&amp;gt;prev-&amp;gt;next = nodeToRemove-&amp;gt;next;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; nodeToRemove-&amp;gt;next-&amp;gt;prev = nodeToRemove-&amp;gt;prev;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Remove Node: &amp;quot; &amp;lt;&amp;lt; nodeToRemove-&amp;gt;value &amp;lt;&amp;lt; endl;      &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;//Print the list from front      &lt;br /&gt;void dlist::printDListFront(){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node* curr2;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; curr2 = this-&amp;gt;front;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Print Queue from Front:\n&amp;quot;;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; while(curr2 != NULL){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot; |&amp;quot; &amp;lt;&amp;lt; curr2-&amp;gt;value &amp;lt;&amp;lt;&amp;quot;|&amp;quot;;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; curr2 = curr2-&amp;gt;next;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; endl;      &lt;br /&gt;}// print the Double Linked List from front &lt;/p&gt;    &lt;p&gt;// print the Double Linked List from backwards     &lt;br /&gt;void dlist::printDListBack(){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; node* curr2;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; curr2 = this-&amp;gt;back;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot;Print Queue from Back:\n&amp;quot;;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; while(curr2 != NULL){      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; &amp;quot; |&amp;quot; &amp;lt;&amp;lt; curr2-&amp;gt;value &amp;lt;&amp;lt;&amp;quot;|&amp;quot;;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; curr2=curr2-&amp;gt;prev;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; cout &amp;lt;&amp;lt; endl;      &lt;br /&gt;}// print the Double Linked List from back &lt;/p&gt;    &lt;p&gt;int _tmain(int argc, _TCHAR* argv[])     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; dlist *st ;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st= new dlist();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;insertBack(8);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;printDListFront ();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;insertBack(5);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;printDListFront ();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;insertBack(6);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;printDListFront ();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;insertFront(1) ;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;printDListFront ();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;insertFront(3) ;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;printDListFront ();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;insertBack(7);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;printDListFront ();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;removeFront();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;printDListFront ();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;removeBack();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; st-&amp;gt;printDListFront ();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return 0;      &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;&lt;/blockquote&gt;  &lt;p&gt;Output:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Insert Front: 8     &lt;br /&gt;Insert Back: 8      &lt;br /&gt;Print Queue from Front:      &lt;br /&gt; |8|      &lt;br /&gt;Insert After: 5      &lt;br /&gt;Insert Back: 5      &lt;br /&gt;Print Queue from Front:      &lt;br /&gt; |8| |5|      &lt;br /&gt;Insert After: 6      &lt;br /&gt;Insert Back: 6      &lt;br /&gt;Print Queue from Front:      &lt;br /&gt; |8| |5| |6|      &lt;br /&gt;Remove Node: 1      &lt;br /&gt;Insert Before: 1      &lt;br /&gt;Insert Front: 1      &lt;br /&gt;Print Queue from Front:      &lt;br /&gt; |8| |5| |6|      &lt;br /&gt;Remove Node: 3      &lt;br /&gt;Insert Before: 3      &lt;br /&gt;Insert Front: 3      &lt;br /&gt;Print Queue from Front:      &lt;br /&gt; |8| |5| |6|      &lt;br /&gt;Insert After: 7      &lt;br /&gt;Insert Back: 7      &lt;br /&gt;Print Queue from Front:      &lt;br /&gt; |8| |5| |6| |7|      &lt;br /&gt;Remove Node: 8      &lt;br /&gt;Remove Front      &lt;br /&gt;Print Queue from Front:      &lt;br /&gt; |5| |6| |7|      &lt;br /&gt;Remove Node: 7      &lt;br /&gt;Remove Back      &lt;br /&gt;Print Queue from Front:      &lt;br /&gt; |5| |6|&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;Reference:&lt;/u&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a title="http://24bytes.com/Double-linked-List.html" href="http://24bytes.com/Double-linked-List.html"&gt;http://24bytes.com/Double-linked-List.html&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-7220160903732260499?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/7220160903732260499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=7220160903732260499' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/7220160903732260499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/7220160903732260499'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2008/05/intermediate-c-tests.html' title='Intermediate C++ Tests'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-1676336389261746678</id><published>2007-03-24T19:24:00.000-07:00</published><updated>2007-03-24T19:30:28.580-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NETBEAN'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>NETBEAN 5.5 and 6.0</title><content type='html'>Learn about the updated NETBEAN IDE version 5.5 and beta 6.0 (flash presentations):&lt;br /&gt;&lt;a href="http://www.netbeans.org/community/teams/evangelism/presentations.html"&gt;http://www.netbeans.org/community/teams/evangelism/presentations.html&lt;/a&gt;  covers topics like:&lt;br /&gt;&lt;br /&gt;&gt; Version 5.5: the GUI Builder, Ant, Profiler, and NetBeans Platform, localization support, full support for Java EE 5, the SOA tools of the Enterprise pack, Mobility Pack for Java ME, Visual Web pack and the Open-Source community.&lt;br /&gt;&lt;br /&gt;&gt; Version 6.0: (J)Ruby on Rails in NetBeans, Java Desktop applications (Improved support for the Swing application framework and Beans Binding) and Profiling Points.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-1676336389261746678?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/1676336389261746678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=1676336389261746678' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/1676336389261746678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/1676336389261746678'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2007/03/netbean-55-and-60.html' title='NETBEAN 5.5 and 6.0'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-5924194229836487421</id><published>2007-03-24T19:21:00.000-07:00</published><updated>2007-03-24T19:24:31.162-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VISTA'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='lab'/><title type='text'>Virtual labs for VISTA</title><content type='html'>&lt;a href="http://www.microsoft.com/events/series/technetvista.aspx?tab=virtuallabs"&gt;http://www.microsoft.com/events/series/technetvista.aspx?tab=virtuallabs&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt; covers topics like:&lt;br /&gt;&gt; Configuring Windows Firewall with Advanced Security&lt;br /&gt;&gt; Exploring New Group Policy Settings in Windows Vista&lt;br /&gt;&gt; Exploring User Account Control in Windows Vista&lt;br /&gt;&gt; Managing Windows Vista and Windows Server Longhorn Network Bandwidth with Policy-based Quality of Service&lt;br /&gt;&gt; Managing Windows Vista Using New Management Technologies&lt;br /&gt;&gt; Microsoft Virtual Lab Express: Exploring New Functionality in Internet Explorer 7&lt;br /&gt;&gt; Using System Image Manager to Automate Windows Vista Installations&lt;br /&gt;&gt; Windows Vista: Image Engineering&lt;br /&gt;&gt; Windows Vista Readiness - Application Compatibility&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-5924194229836487421?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/5924194229836487421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=5924194229836487421' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/5924194229836487421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/5924194229836487421'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2007/03/virtual-labs-for-vista.html' title='Virtual labs for VISTA'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-4754712986835994725</id><published>2007-03-19T19:37:00.000-07:00</published><updated>2007-03-19T19:47:43.393-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='collision'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='detection'/><category scheme='http://www.blogger.com/atom/ns#' term='guide'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>Collision Detection</title><content type='html'>&lt;a href="http://www.kyleschouviller.com/index.php/collision-detection-in-two-dimensions/"&gt;Learning experience&lt;/a&gt; by Kyle Schouviller: use common data structure for object bounds information,  use a &lt;a href="http://en.wikipedia.org/wiki/Quadtree"&gt;Quadtree&lt;/a&gt;,  do simple collision detection first and learn the s&lt;a href="http://en.wikipedia.org/wiki/Separating_axis_theorem"&gt;eparating axis theorem&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.harveycartel.org/metanet/tutorials/tutorialA.html"&gt;Tutorial&lt;/a&gt; from Metanet Software on Separating Axis Theorem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-4754712986835994725?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/4754712986835994725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=4754712986835994725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/4754712986835994725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/4754712986835994725'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2007/03/collision-detection.html' title='Collision Detection'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-3137215275535021505</id><published>2007-03-10T19:39:00.000-08:00</published><updated>2007-03-10T20:22:19.094-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='direct3D'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='openGL'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>Graphics APIs</title><content type='html'>APIs for writing applications that produce 3D computer graphics (and 2D computer graphics as well):&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/OpenGL"&gt;OpenGL&lt;/a&gt; - open standard and ported to all platform (based on C)&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Direct3D"&gt;Direct3D&lt;/a&gt; - only on Microsoft platform (built upon COM, can be used with COM-aware language such as C# and VB.net)&lt;br /&gt;See also &lt;a href="http://en.wikipedia.org/wiki/Comparison_of_Direct3D_and_OpenGL"&gt;comparison of OpenGL and Direct3D&lt;/a&gt;:&lt;br /&gt;Extracted:&lt;br /&gt;In general, Direct3D is designed to be a 3D hardware interface. The feature set of Direct3D is derived from the feature set of what hardware provides. OpenGL, on the other hand, is designed to be a 3D rendering system that may be hardware accelerated.&lt;br /&gt;....&lt;br /&gt;Under OpenGL however, the IHV driver is broken into two parts: a user-mode portion that implements the OpenGL API, and a kernel-mode driver that is called by the user-mode portion.&lt;br /&gt;...&lt;br /&gt;Since OpenGL's IHV drivers have a user-mode component to them, IHVs have the ability to implement marshalling, thus improving performance.&lt;br /&gt;...&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Direct3D_10" title="Direct3D 10"&gt;Direct3D 10&lt;/a&gt;, the upcoming release to be included with &lt;a href="http://en.wikipedia.org/wiki/Windows_Vista" title="Windows Vista"&gt;Windows Vista&lt;/a&gt;, allows portions of drivers to run in user-mode, thus allowing IHVs to implement marshalling, thus bringing the two back into relative performance parity.&lt;br /&gt;...&lt;br /&gt;OpenGL is designed as a feature rich API regardless of hardware support. The specification often drives the implementation of hardware acceleration for these features.&lt;br /&gt;:&lt;br /&gt;The advantage of OpenGL's inclusive, extensible approach is limited in practice, however, by the market dominance Direct3D has achieved. In recent years, games have rarely implemented features until Direct3D has supported them, and graphics cards vendors have been reluctant to implement features that current or upcoming versions of Direct3D will not support.&lt;br /&gt;...&lt;br /&gt;OpenGL has always seen more use in the professional graphics market than DirectX, while DirectX is used mostly for computer games.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-3137215275535021505?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/3137215275535021505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=3137215275535021505' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/3137215275535021505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/3137215275535021505'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2007/03/graphics-apis.html' title='Graphics APIs'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-8046909757971532960</id><published>2007-01-31T17:08:00.000-08:00</published><updated>2007-02-02T00:55:13.642-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='guide'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails'/><title type='text'>Ruby on Rails</title><content type='html'>Something that caught the programming arena by storm - Ruby and then Ruby on Rails (RoR or rails for short).&lt;br /&gt;&lt;br /&gt;Checkout the importance from CIO &lt;a href="http://blogs.cio.com/user/3"&gt; Christopher Lindquist&lt;/a&gt;'s viewpoint:&lt;br /&gt;=&gt; &lt;a href="http://blogs.cio.com/node/248"&gt;http://blogs.cio.com/node/248&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A updated detailed tutorial by O'reilly: &lt;a href="http://www.onlamp.com/pub/a/onlamp/2006/12/14/revisiting-ruby-on-rails-revisited.html"&gt;http://www.onlamp.com/pub/a/onlamp/2006/12/14/revisiting-ruby-on-rails-revisited.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Installation and guides:&lt;br /&gt;- For Windows, use &lt;a href="http://instantrails.rubyforge.org/wiki/wiki.pl"&gt;Instant Rails&lt;/a&gt;&lt;br /&gt;- For Mac OS X, use &lt;a href="http://locomotive.raaum.org/"&gt;Locomotive&lt;/a&gt;&lt;br /&gt;- For Linux, try the &lt;a href="http://www.railslivecd.org/"&gt;Rails LiveCD&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Video tutorials:&lt;br /&gt;1. &lt;a href="http://www.rubyonrails.org/screencasts"&gt;http://www.rubyonrails.org/screencasts&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Other tutorials:&lt;br /&gt;1. &lt;a href="http://www.digitalmediaminute.com/article/1816/top-ruby-on-rails-tutorials"&gt;Top 12 tutorials by digitalmediaminute&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://www.econsultant.com/web-developer/ruby-rails-tutorials/"&gt;Top 30 tutorials by econsultant&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-8046909757971532960?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/8046909757971532960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=8046909757971532960' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/8046909757971532960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/8046909757971532960'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2007/01/ruby-on-rails.html' title='Ruby on Rails'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-5084935581967079112</id><published>2006-12-29T00:08:00.000-08:00</published><updated>2007-03-21T21:13:11.920-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><title type='text'>Creating 3D Content using Blender</title><content type='html'>Download Blender from:&lt;br /&gt;&lt;a href="http://www.blender.org/"&gt;http://www.blender.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Go through tutorial:&lt;br /&gt;&lt;a href="http://www.blender.org/tutorials-help/tutorials/getting-started/"&gt;http://www.blender.org/tutorials-help/tutorials/getting-started/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-5084935581967079112?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/5084935581967079112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=5084935581967079112' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/5084935581967079112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/5084935581967079112'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2006/12/3d-content.html' title='Creating 3D Content using Blender'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-27871831042338623</id><published>2006-12-12T01:46:00.000-08:00</published><updated>2006-12-12T19:07:37.607-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='xna'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>XNA Game Studio Express 1.0</title><content type='html'>Learn first hand from Microsoft XNA from MSDN:&lt;br /&gt;=&gt; &lt;a href="http://msdn.microsoft.com/directx/xna/learning/"&gt;http://msdn.microsoft.com/directx/xna/learning/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1. download C# express follows by XNA game studio express 1.0 from links in the above page&lt;br /&gt;2. find out more from the following resources:&lt;br /&gt;- MSDN library:  &lt;a href="http://msdn2.microsoft.com/en-us/library/bb200104.aspx"&gt;http://msdn2.microsoft.com/en-us/library/bb200104.aspx&lt;/a&gt;&lt;br /&gt;(Also available in the PC's program - "XNA Game Studio Express Documentation" after installations)&lt;br /&gt;  &lt;a onclick="javascript:Track('ctl00_LibFrame_ctl01|ctl00_LibFrame_ctl03',this);" href="http://msdn2.microsoft.com/en-us/library/ccd7c88-3056-f43b-6c55-efc91ea567b5.aspx"&gt;&gt;&gt; Getting Started with XNA Game Studio Express&lt;/a&gt;&lt;br /&gt;.. .. .. &lt;a onclick="javascript:Track('ctl00_LibFrame_ctl01|ctl00_LibFrame_ctl04',this);" href="http://msdn2.microsoft.com/en-us/library/9581168-15b1-c262-1798-64c210bbcd3.aspx"&gt;Your First Game: Microsoft XNA Game Studio Express in 2D&lt;br /&gt;&lt;/a&gt;.. .. .. &lt;a onclick="javascript:Track('ctl00_LibFrame_ctl01|ctl00_LibFrame_ctl05',this);" href="http://msdn2.microsoft.com/en-us/library/b4cc5380-602d-a25-4fe4-73adb73a5aac.aspx"&gt;Going Beyond: XNA Game Studio Express in 3D&lt;/a&gt;&lt;br /&gt;  &lt;a onclick="javascript:Track('ctl00_LibFrame_ctl01|ctl00_LibFrame_ctl04',this);" href="http://msdn2.microsoft.com/en-us/library/bb199638.aspx"&gt;&gt;&gt; Using XNA Game Studio Express&lt;/a&gt;&lt;br /&gt;  &lt;a onclick="javascript:Track('ctl00_LibFrame_ctl01|ctl00_LibFrame_ctl05',this);" href="http://msdn2.microsoft.com/en-us/library/bb198548.aspx"&gt;&gt;&gt; Programming Guide&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Blogs&lt;br /&gt;&gt;&gt; Neopoleon Techie Thoughts: &lt;a href="http://neopoleon.com/home/blogs/tech/archive/2006/12/11/23252.aspx"&gt;XNA - Restoring the Intimacy and Fun of Game Development&lt;/a&gt;&lt;br /&gt;&gt;&gt; Official blog: &lt;a href="http://blogs.msdn.com/xna/"&gt;XNA Team Blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Wiki&lt;br /&gt;&gt;&gt; &lt;a href="http://en.wikipedia.org/wiki/Microsoft_XNA"&gt;Microsoft XNA&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-27871831042338623?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/27871831042338623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=27871831042338623' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/27871831042338623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/27871831042338623'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2006/12/xna-game-studio-express-10.html' title='XNA Game Studio Express 1.0'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-5888411376818814621</id><published>2006-11-04T21:05:00.000-08:00</published><updated>2006-11-04T21:25:33.799-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='expression'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='web designer'/><category scheme='http://www.blogger.com/atom/ns#' term='graphic designer'/><category scheme='http://www.blogger.com/atom/ns#' term='interactive designer'/><title type='text'>Microsoft Expression - getting started, videos and tutorials</title><content type='html'>&lt;span name="intelliTxt" id="intelliTXT"&gt;&lt;span style="font-weight: bold;"&gt;Expression Suit&lt;/span&gt; consists of the following 3 products:&lt;br /&gt;- Graphic Designer&lt;br /&gt;- Interactive Designer &amp;&lt;br /&gt;- Web Designer&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Microsoft_Expression_Graphic_Designer"&gt;Graphic Designer&lt;/a&gt; &lt;/span&gt;is "an upcoming commercial vector and bitmap graphics editor based on Creature House Expression, which was acquired by Microsoft in 2003."&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Microsoft_Expression_Interactive_Designer"&gt;Interactive Designer&lt;/a&gt; is "Microsoft's upcoming user interface design tool for applications based on the Windows Presentation Foundation (WPF). It is effectively an interactive/WYSIWYG front-end for XAML and WPF."&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Microsoft_Expression_Web_Designer"&gt;Web Designer&lt;/a&gt; is "a WYSIWYG HTML editor and general web design program currently under development by Microsoft, replacing Microsoft FrontPage."&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Microsoft Expression Team blog =&gt; [ &lt;a href="http://blogs.msdn.com/xweb/"&gt;http://blogs.msdn.com/xweb/&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Getting started:&lt;/span&gt;&lt;br /&gt;1. Download the suit from [&lt;a href="http://www.microsoft.com/products/expression/en/default.mspx"&gt;http://www.microsoft.com/products/expression/en/default.mspx&lt;/a&gt;]&lt;br /&gt;2. Go through some introductory videos - click on the tabs in the middle of the page for each product [&lt;a href="http://www.microsoft.com/products/expression/en/demos.mspx"&gt;http://www.microsoft.com/products/expression/en/demos.mspx&lt;/a&gt;]&lt;br /&gt;3. Tutorials - lesson 1 to 6  [&lt;a href="http://www.studioe3.com/lessons/index.asp"&gt;http://www.studioe3.com/lessons/index.asp&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;Now let's get started...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-5888411376818814621?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/5888411376818814621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=5888411376818814621' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/5888411376818814621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/5888411376818814621'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2006/11/microsoft-expression-getting-started.html' title='Microsoft Expression - getting started, videos and tutorials'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2748920418214178759.post-2160951992252858425</id><published>2006-10-17T05:17:00.000-07:00</published><updated>2006-10-17T20:35:14.603-07:00</updated><title type='text'>Windows Presentation Foundation (WPF)</title><content type='html'>With &lt;span style="font-weight: bold;"&gt;Vista&lt;/span&gt;, Microsoft is adding a few key elements- now known as .NET framework 3.0 - there is a &lt;a style="font-weight: bold;" href="http://en.wikipedia.org/wiki/Windows_Presentation_Foundation"&gt;Windows Presentation Foundation (WPF)&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Windows_Workflow_Foundation"&gt;Windows Workflow Foundation (WF)&lt;/a&gt; and more.&lt;br /&gt;&lt;br /&gt;Let's talk about WPF:&lt;br /&gt;It is about UI (User Interface).  It is about using &lt;span style="font-weight: bold;"&gt;Extensible Application Markup Language (XAML)&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt; - a markup to declare the layout of a page.&lt;br /&gt;&lt;br /&gt;1. The official site is:&lt;br /&gt;&lt;a href="http://wpf.netfx3.com/"&gt;http://wpf.netfx3.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. WPF is an important part of Vista, to develop WPF applications in WinXP with Visual Studio 2005,  download from &lt;a href="http://msdn.microsoft.com/windowsvista/downloads/products/getthebeta/default.aspx"&gt;here&lt;/a&gt; (under "Downloads for Developing .NET Framework 3.0 (formerly WinFX) Applications").&lt;br /&gt;&lt;br /&gt;3. Some basic explanations on the purposes and how the various tools fit into the picture: "My Five Day Course For Hitting the WPF Curve/Cliff - Jun 2006" from &lt;a href="http://blogs.msdn.com/karstenj/archive/2006/06/15/632639.aspx"&gt;here&lt;/a&gt; Or learnWPF.com - Sep 2006 from &lt;a href="http://www.learnwpf.com/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;4. Watch some videos:&lt;br /&gt;4.1 &lt;a href="http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20060817WPFKG/manifest.xml"&gt;Overview of Content in Windows Presentation Foundation&lt;/a&gt; - MSDN Aug 2006&lt;br /&gt;4.2 From youtube (&lt;a href="http://www.youtube.com/watch?v=kyrN_Ky3HWc"&gt;part 1&lt;/a&gt;, &lt;a href="http://www.youtube.com/watch?v=jo2acEXxbSM&amp;mode=related&amp;amp;search="&gt;part 2 &lt;/a&gt;)&lt;br /&gt;4.3 &lt;a href="http://channel9.msdn.com/tags/WPF"&gt;Channel 9 on WPF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5.Standalone labs (***)&lt;br /&gt;5.1 From &lt;a href="http://wpf.netfx3.com/files/default.aspx"&gt;wpf.netfx3.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Let's begin our explorations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2748920418214178759-2160951992252858425?l=ictmp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ictmp.blogspot.com/feeds/2160951992252858425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2748920418214178759&amp;postID=2160951992252858425' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/2160951992252858425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2748920418214178759/posts/default/2160951992252858425'/><link rel='alternate' type='text/html' href='http://ictmp.blogspot.com/2006/10/windows-presentation-foundation-wpf.html' title='Windows Presentation Foundation (WPF)'/><author><name>PUAH Hock Leng@SG</name><uri>http://www.blogger.com/profile/02843067645232677846</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
